matlab-proxy 0.27.0__py3-none-any.whl → 0.27.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of matlab-proxy might be problematic. Click here for more details.
- matlab_proxy/app.py +40 -27
- matlab_proxy/app_state.py +20 -24
- matlab_proxy/gui/index.html +2 -2
- matlab_proxy/gui/static/css/{index.BSVLACuY.css → index.BLxKpbak.css} +2 -2
- matlab_proxy/gui/static/js/{index.BcDShXfH.js → index.CKi3IRxe.js} +1 -1
- matlab_proxy/settings.py +4 -6
- matlab_proxy/util/__init__.py +25 -44
- matlab_proxy/util/list_servers.py +70 -25
- matlab_proxy/util/mwi/environment_variables.py +10 -0
- matlab_proxy/util/mwi/logger.py +116 -32
- matlab_proxy/util/mwi/token_auth.py +2 -2
- matlab_proxy/util/mwi/validators.py +2 -2
- {matlab_proxy-0.27.0.dist-info → matlab_proxy-0.27.3.dist-info}/METADATA +2 -1
- {matlab_proxy-0.27.0.dist-info → matlab_proxy-0.27.3.dist-info}/RECORD +17 -17
- {matlab_proxy-0.27.0.dist-info → matlab_proxy-0.27.3.dist-info}/WHEEL +0 -0
- {matlab_proxy-0.27.0.dist-info → matlab_proxy-0.27.3.dist-info}/entry_points.txt +0 -0
- {matlab_proxy-0.27.0.dist-info → matlab_proxy-0.27.3.dist-info}/licenses/LICENSE.md +0 -0
|
@@ -58,7 +58,7 @@ The error may be correlated with this previous error:
|
|
|
58
58
|
Licensed under the MIT License (MIT), see
|
|
59
59
|
http://jedwatson.github.io/classnames
|
|
60
60
|
*/var Pf;function lg(){return Pf||(Pf=1,function(r){(function(){var i={}.hasOwnProperty;function u(){for(var c="",h=0;h<arguments.length;h++){var v=arguments[h];v&&(c=d(c,s(v)))}return c}function s(c){if(typeof c=="string"||typeof c=="number")return c;if(typeof c!="object")return"";if(Array.isArray(c))return u.apply(null,c);if(c.toString!==Object.prototype.toString&&!c.toString.toString().includes("[native code]"))return c.toString();var h="";for(var v in c)i.call(c,v)&&c[v]&&(h=d(h,v));return h}function d(c,h){return h?c?c+" "+h:c+h:c}r.exports?(u.default=u,r.exports=u):window.classNames=u})()}(tu)),tu.exports}var sg=lg();const gu=Er(sg);var Af={};const ug="react-tooltip-core-styles",ag="react-tooltip-base-styles",Of={core:!1,base:!1};function jf({css:r,id:i=ag,type:u="base",ref:s}){var d,c;if(!r||typeof document>"u"||Of[u]||u==="core"&&typeof process<"u"&&(!((d=process==null?void 0:Af)===null||d===void 0)&&d.REACT_TOOLTIP_DISABLE_CORE_STYLES)||u!=="base"&&typeof process<"u"&&(!((c=process==null?void 0:Af)===null||c===void 0)&&c.REACT_TOOLTIP_DISABLE_BASE_STYLES))return;u==="core"&&(i=ug),s||(s={});const{insertAt:h}=s;if(document.getElementById(i))return;const v=document.head||document.getElementsByTagName("head")[0],S=document.createElement("style");S.id=i,S.type="text/css",h==="top"&&v.firstChild?v.insertBefore(S,v.firstChild):v.appendChild(S),S.styleSheet?S.styleSheet.cssText=r:S.appendChild(document.createTextNode(r)),Of[u]=!0}const If=async({elementReference:r=null,tooltipReference:i=null,tooltipArrowReference:u=null,place:s="top",offset:d=10,strategy:c="absolute",middlewares:h=[ng(Number(d)),og({fallbackAxisSideDirection:"start"}),rg({padding:5})],border:v})=>{if(!r)return{tooltipStyles:{},tooltipArrowStyles:{},place:s};if(i===null)return{tooltipStyles:{},tooltipArrowStyles:{},place:s};const S=h;return u?(S.push(ig({element:u,padding:5})),Rf(r,i,{placement:s,strategy:c,middleware:S}).then(({x:N,y:b,placement:k,middlewareData:j})=>{var P,O;const C={left:`${N}px`,top:`${b}px`,border:v},{x:D,y:_}=(P=j.arrow)!==null&&P!==void 0?P:{x:0,y:0},m=(O={top:"bottom",right:"left",bottom:"top",left:"right"}[k.split("-")[0]])!==null&&O!==void 0?O:"bottom",p=v&&{borderBottom:v,borderRight:v};let y=0;if(v){const g=`${v}`.match(/(\d+)px/);y=g!=null&&g[1]?Number(g[1]):1}return{tooltipStyles:C,tooltipArrowStyles:{left:D!=null?`${D}px`:"",top:_!=null?`${_}px`:"",right:"",bottom:"",...p,[m]:`-${4+y}px`},place:k}})):Rf(r,i,{placement:"bottom",strategy:c,middleware:S}).then(({x:N,y:b,placement:k})=>({tooltipStyles:{left:`${N}px`,top:`${b}px`},tooltipArrowStyles:{},place:k}))},Lf=(r,i)=>!("CSS"in window&&"supports"in window.CSS)||window.CSS.supports(r,i),Mf=(r,i,u)=>{let s=null;const d=function(...c){const h=()=>{s=null};!s&&(r.apply(this,c),s=setTimeout(h,i))};return d.cancel=()=>{s&&(clearTimeout(s),s=null)},d},Ff=r=>r!==null&&!Array.isArray(r)&&typeof r=="object",vu=(r,i)=>{if(r===i)return!0;if(Array.isArray(r)&&Array.isArray(i))return r.length===i.length&&r.every((d,c)=>vu(d,i[c]));if(Array.isArray(r)!==Array.isArray(i))return!1;if(!Ff(r)||!Ff(i))return r===i;const u=Object.keys(r),s=Object.keys(i);return u.length===s.length&&u.every(d=>vu(r[d],i[d]))},cg=r=>{if(!(r instanceof HTMLElement||r instanceof SVGElement))return!1;const i=getComputedStyle(r);return["overflow","overflow-x","overflow-y"].some(u=>{const s=i.getPropertyValue(u);return s==="auto"||s==="scroll"})},zf=r=>{if(!r)return null;let i=r.parentElement;for(;i;){if(cg(i))return i;i=i.parentElement}return document.scrollingElement||document.documentElement},fg=typeof window<"u"?$.useLayoutEffect:$.useEffect,At=r=>{r.current&&(clearTimeout(r.current),r.current=null)},dg="DEFAULT_TOOLTIP_ID",pg={anchorRefs:new Set,activeAnchor:{current:null},attach:()=>{},detach:()=>{},setActiveAnchor:()=>{}},mg=$.createContext({getTooltipData:()=>pg});function bd(r=dg){return $.useContext(mg).getTooltipData(r)}var Vr={tooltip:"core-styles-module_tooltip__3vRRp",fixed:"core-styles-module_fixed__pcSol",arrow:"core-styles-module_arrow__cvMwQ",noArrow:"core-styles-module_noArrow__xock6",clickable:"core-styles-module_clickable__ZuTTB",show:"core-styles-module_show__Nt9eE",closing:"core-styles-module_closing__sGnxF"},nu={tooltip:"styles-module_tooltip__mnnfp",arrow:"styles-module_arrow__K0L3T",dark:"styles-module_dark__xNqje",light:"styles-module_light__Z6W-X",success:"styles-module_success__A2AKt",warning:"styles-module_warning__SCK0X",error:"styles-module_error__JvumD",info:"styles-module_info__BWdHW"};const hg=({forwardRef:r,id:i,className:u,classNameArrow:s,variant:d="dark",anchorId:c,anchorSelect:h,place:v="top",offset:S=10,events:N=["hover"],openOnClick:b=!1,positionStrategy:k="absolute",middlewares:j,wrapper:P,delayShow:O=0,delayHide:C=0,float:D=!1,hidden:_=!1,noArrow:m=!1,clickable:p=!1,closeOnEsc:y=!1,closeOnScroll:g=!1,closeOnResize:L=!1,openEvents:x,closeEvents:A,globalCloseEvents:B,imperativeModeOnly:V,style:Q,position:G,afterShow:W,afterHide:ee,disableTooltip:me,content:Ee,contentWrapperRef:pe,isOpen:ge,defaultIsOpen:Ne=!1,setIsOpen:je,activeAnchor:Te,setActiveAnchor:Ge,border:Ve,opacity:q,arrowColor:T,role:z="tooltip"})=>{var K;const J=$.useRef(null),le=$.useRef(null),fe=$.useRef(null),ae=$.useRef(null),ie=$.useRef(null),[Ae,Ye]=$.useState({tooltipStyles:{},tooltipArrowStyles:{},place:v}),[Me,jt]=$.useState(!1),[It,ve]=$.useState(!1),[we,ct]=$.useState(null),gt=$.useRef(!1),Tn=$.useRef(null),{anchorRefs:Ut,setActiveAnchor:tr}=bd(i),on=$.useRef(!1),[$t,ln]=$.useState([]),bt=$.useRef(!1),Wt=b||N.includes("click"),sn=Wt||(x==null?void 0:x.click)||(x==null?void 0:x.dblclick)||(x==null?void 0:x.mousedown),un=x?{...x}:{mouseover:!0,focus:!0,mouseenter:!1,click:!1,dblclick:!1,mousedown:!1};!x&&Wt&&Object.assign(un,{mouseenter:!1,focus:!1,mouseover:!1,click:!0});const kn=A?{...A}:{mouseout:!0,blur:!0,mouseleave:!1,click:!1,dblclick:!1,mouseup:!1};!A&&Wt&&Object.assign(kn,{mouseleave:!1,blur:!1,mouseout:!1});const ft=B?{...B}:{escape:y||!1,scroll:g||!1,resize:L||!1,clickOutsideAnchor:sn||!1};V&&(Object.assign(un,{mouseenter:!1,focus:!1,click:!1,dblclick:!1,mousedown:!1}),Object.assign(kn,{mouseleave:!1,blur:!1,click:!1,dblclick:!1,mouseup:!1}),Object.assign(ft,{escape:!1,scroll:!1,resize:!1,clickOutsideAnchor:!1})),fg(()=>(bt.current=!0,()=>{bt.current=!1}),[]);const Fe=X=>{bt.current&&(X&&ve(!0),setTimeout(()=>{bt.current&&(je==null||je(X),ge===void 0&&jt(X))},10))};$.useEffect(()=>{if(ge===void 0)return()=>null;ge&&ve(!0);const X=setTimeout(()=>{jt(ge)},10);return()=>{clearTimeout(X)}},[ge]),$.useEffect(()=>{if(Me!==gt.current)if(At(ie),gt.current=Me,Me)W==null||W();else{const X=(se=>{const de=se.match(/^([\d.]+)(ms|s)$/);if(!de)return 0;const[,$e,Ke]=de;return Number($e)*(Ke==="ms"?1:1e3)})(getComputedStyle(document.body).getPropertyValue("--rt-transition-show-delay"));ie.current=setTimeout(()=>{ve(!1),ct(null),ee==null||ee()},X+25)}},[Me]);const br=X=>{Ye(se=>vu(se,X)?se:X)},ut=(X=O)=>{At(fe),It?Fe(!0):fe.current=setTimeout(()=>{Fe(!0)},X)},Vt=(X=C)=>{At(ae),ae.current=setTimeout(()=>{on.current||Fe(!1)},X)},dt=X=>{var se;if(!X)return;const de=(se=X.currentTarget)!==null&&se!==void 0?se:X.target;if(!(de!=null&&de.isConnected))return Ge(null),void tr({current:null});O?ut():Fe(!0),Ge(de),tr({current:de}),At(ae)},an=()=>{p?Vt(C||100):C?Vt():Fe(!1),At(fe)},bn=({x:X,y:se})=>{var de;const $e={getBoundingClientRect:()=>({x:X,y:se,width:0,height:0,top:se,left:X,right:X,bottom:se})};If({place:(de=we==null?void 0:we.place)!==null&&de!==void 0?de:v,offset:S,elementReference:$e,tooltipReference:J.current,tooltipArrowReference:le.current,strategy:k,middlewares:j,border:Ve}).then(Ke=>{br(Ke)})},Lt=X=>{if(!X)return;const se=X,de={x:se.clientX,y:se.clientY};bn(de),Tn.current=de},Cn=X=>{var se;if(!Me)return;const de=X.target;de.isConnected&&(!((se=J.current)===null||se===void 0)&&se.contains(de)||[document.querySelector(`[id='${c}']`),...$t].some($e=>$e==null?void 0:$e.contains(de))||(Fe(!1),At(fe)))},Nn=Mf(dt,50),He=Mf(an,50),at=X=>{He.cancel(),Nn(X)},ue=()=>{Nn.cancel(),He()},xe=$.useCallback(()=>{var X,se;const de=(X=we==null?void 0:we.position)!==null&&X!==void 0?X:G;de?bn(de):D?Tn.current&&bn(Tn.current):Te!=null&&Te.isConnected&&If({place:(se=we==null?void 0:we.place)!==null&&se!==void 0?se:v,offset:S,elementReference:Te,tooltipReference:J.current,tooltipArrowReference:le.current,strategy:k,middlewares:j,border:Ve}).then($e=>{bt.current&&br($e)})},[Me,Te,Ee,Q,v,we==null?void 0:we.place,S,k,G,we==null?void 0:we.position,D]);$.useEffect(()=>{var X,se;const de=new Set(Ut);$t.forEach(Ce=>{me!=null&&me(Ce)||de.add({current:Ce})});const $e=document.querySelector(`[id='${c}']`);$e&&!(me!=null&&me($e))&&de.add({current:$e});const Ke=()=>{Fe(!1)},vt=zf(Te),yt=zf(J.current);ft.scroll&&(window.addEventListener("scroll",Ke),vt==null||vt.addEventListener("scroll",Ke),yt==null||yt.addEventListener("scroll",Ke));let Ze=null;ft.resize?window.addEventListener("resize",Ke):Te&&J.current&&(Ze=tg(Te,J.current,xe,{ancestorResize:!0,elementResize:!0,layoutShift:!0}));const rt=Ce=>{Ce.key==="Escape"&&Fe(!1)};ft.escape&&window.addEventListener("keydown",rt),ft.clickOutsideAnchor&&window.addEventListener("click",Cn);const Oe=[],Dn=Ce=>{Me&&(Ce==null?void 0:Ce.target)===Te||dt(Ce)},nr=Ce=>{Me&&(Ce==null?void 0:Ce.target)===Te&&an()},rr=["mouseover","mouseout","mouseenter","mouseleave","focus","blur"],fn=["click","dblclick","mousedown","mouseup"];Object.entries(un).forEach(([Ce,Ct])=>{Ct&&(rr.includes(Ce)?Oe.push({event:Ce,listener:at}):fn.includes(Ce)&&Oe.push({event:Ce,listener:Dn}))}),Object.entries(kn).forEach(([Ce,Ct])=>{Ct&&(rr.includes(Ce)?Oe.push({event:Ce,listener:ue}):fn.includes(Ce)&&Oe.push({event:Ce,listener:nr}))}),D&&Oe.push({event:"pointermove",listener:Lt});const Cr=()=>{on.current=!0},Zr=()=>{on.current=!1,an()};return p&&!sn&&((X=J.current)===null||X===void 0||X.addEventListener("mouseenter",Cr),(se=J.current)===null||se===void 0||se.addEventListener("mouseleave",Zr)),Oe.forEach(({event:Ce,listener:Ct})=>{de.forEach(Nr=>{var Rn;(Rn=Nr.current)===null||Rn===void 0||Rn.addEventListener(Ce,Ct)})}),()=>{var Ce,Ct;ft.scroll&&(window.removeEventListener("scroll",Ke),vt==null||vt.removeEventListener("scroll",Ke),yt==null||yt.removeEventListener("scroll",Ke)),ft.resize?window.removeEventListener("resize",Ke):Ze==null||Ze(),ft.clickOutsideAnchor&&window.removeEventListener("click",Cn),ft.escape&&window.removeEventListener("keydown",rt),p&&!sn&&((Ce=J.current)===null||Ce===void 0||Ce.removeEventListener("mouseenter",Cr),(Ct=J.current)===null||Ct===void 0||Ct.removeEventListener("mouseleave",Zr)),Oe.forEach(({event:Nr,listener:Rn})=>{de.forEach($o=>{var dn;(dn=$o.current)===null||dn===void 0||dn.removeEventListener(Nr,Rn)})})}},[Te,xe,It,Ut,$t,x,A,B,Wt,O,C]),$.useEffect(()=>{var X,se;let de=(se=(X=we==null?void 0:we.anchorSelect)!==null&&X!==void 0?X:h)!==null&&se!==void 0?se:"";!de&&i&&(de=`[data-tooltip-id='${i.replace(/'/g,"\\'")}']`);const $e=new MutationObserver(Ke=>{const vt=[],yt=[];Ke.forEach(Ze=>{if(Ze.type==="attributes"&&Ze.attributeName==="data-tooltip-id"&&(Ze.target.getAttribute("data-tooltip-id")===i?vt.push(Ze.target):Ze.oldValue===i&&yt.push(Ze.target)),Ze.type==="childList"){if(Te){const rt=[...Ze.removedNodes].filter(Oe=>Oe.nodeType===1);if(de)try{yt.push(...rt.filter(Oe=>Oe.matches(de))),yt.push(...rt.flatMap(Oe=>[...Oe.querySelectorAll(de)]))}catch{}rt.some(Oe=>{var Dn;return!!(!((Dn=Oe==null?void 0:Oe.contains)===null||Dn===void 0)&&Dn.call(Oe,Te))&&(ve(!1),Fe(!1),Ge(null),At(fe),At(ae),!0)})}if(de)try{const rt=[...Ze.addedNodes].filter(Oe=>Oe.nodeType===1);vt.push(...rt.filter(Oe=>Oe.matches(de))),vt.push(...rt.flatMap(Oe=>[...Oe.querySelectorAll(de)]))}catch{}}}),(vt.length||yt.length)&&ln(Ze=>[...Ze.filter(rt=>!yt.includes(rt)),...vt])});return $e.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-tooltip-id"],attributeOldValue:!0}),()=>{$e.disconnect()}},[i,h,we==null?void 0:we.anchorSelect,Te]),$.useEffect(()=>{xe()},[xe]),$.useEffect(()=>{if(!(pe!=null&&pe.current))return()=>null;const X=new ResizeObserver(()=>{setTimeout(()=>xe())});return X.observe(pe.current),()=>{X.disconnect()}},[Ee,pe==null?void 0:pe.current]),$.useEffect(()=>{var X;const se=document.querySelector(`[id='${c}']`),de=[...$t,se];Te&&de.includes(Te)||Ge((X=$t[0])!==null&&X!==void 0?X:se)},[c,$t,Te]),$.useEffect(()=>(Ne&&Fe(!0),()=>{At(fe),At(ae)}),[]),$.useEffect(()=>{var X;let se=(X=we==null?void 0:we.anchorSelect)!==null&&X!==void 0?X:h;if(!se&&i&&(se=`[data-tooltip-id='${i.replace(/'/g,"\\'")}']`),se)try{const de=Array.from(document.querySelectorAll(se));ln(de)}catch{ln([])}},[i,h,we==null?void 0:we.anchorSelect]),$.useEffect(()=>{fe.current&&(At(fe),ut(O))},[O]);const tt=(K=we==null?void 0:we.content)!==null&&K!==void 0?K:Ee,cn=Me&&Object.keys(Ae.tooltipStyles).length>0;return $.useImperativeHandle(r,()=>({open:X=>{if(X!=null&&X.anchorSelect)try{document.querySelector(X.anchorSelect)}catch{return void console.warn(`[react-tooltip] "${X.anchorSelect}" is not a valid CSS selector`)}ct(X??null),X!=null&&X.delay?ut(X.delay):Fe(!0)},close:X=>{X!=null&&X.delay?Vt(X.delay):Fe(!1)},activeAnchor:Te,place:Ae.place,isOpen:!!(It&&!_&&tt&&cn)})),It&&!_&&tt?Jt.createElement(P,{id:i,role:z,className:gu("react-tooltip",Vr.tooltip,nu.tooltip,nu[d],u,`react-tooltip__place-${Ae.place}`,Vr[cn?"show":"closing"],cn?"react-tooltip__show":"react-tooltip__closing",k==="fixed"&&Vr.fixed,p&&Vr.clickable),onTransitionEnd:X=>{At(ie),Me||X.propertyName!=="opacity"||(ve(!1),ct(null),ee==null||ee())},style:{...Q,...Ae.tooltipStyles,opacity:q!==void 0&&cn?q:void 0},ref:J},tt,Jt.createElement(P,{className:gu("react-tooltip-arrow",Vr.arrow,nu.arrow,s,m&&Vr.noArrow),style:{...Ae.tooltipArrowStyles,background:T?`linear-gradient(to right bottom, transparent 50%, ${T} 50%)`:void 0},ref:le})):null},gg=({content:r})=>Jt.createElement("span",{dangerouslySetInnerHTML:{__html:r}}),Cd=Jt.forwardRef(({id:r,anchorId:i,anchorSelect:u,content:s,html:d,render:c,className:h,classNameArrow:v,variant:S="dark",place:N="top",offset:b=10,wrapper:k="div",children:j=null,events:P=["hover"],openOnClick:O=!1,positionStrategy:C="absolute",middlewares:D,delayShow:_=0,delayHide:m=0,float:p=!1,hidden:y=!1,noArrow:g=!1,clickable:L=!1,closeOnEsc:x=!1,closeOnScroll:A=!1,closeOnResize:B=!1,openEvents:V,closeEvents:Q,globalCloseEvents:G,imperativeModeOnly:W=!1,style:ee,position:me,isOpen:Ee,defaultIsOpen:pe=!1,disableStyleInjection:ge=!1,border:Ne,opacity:je,arrowColor:Te,setIsOpen:Ge,afterShow:Ve,afterHide:q,disableTooltip:T,role:z="tooltip"},K)=>{const[J,le]=$.useState(s),[fe,ae]=$.useState(d),[ie,Ae]=$.useState(N),[Ye,Me]=$.useState(S),[jt,It]=$.useState(b),[ve,we]=$.useState(_),[ct,gt]=$.useState(m),[Tn,Ut]=$.useState(p),[tr,on]=$.useState(y),[$t,ln]=$.useState(k),[bt,Wt]=$.useState(P),[sn,un]=$.useState(C),[kn,ft]=$.useState(null),[Fe,br]=$.useState(null),ut=$.useRef(ge),{anchorRefs:Vt,activeAnchor:dt}=bd(r),an=He=>He==null?void 0:He.getAttributeNames().reduce((at,ue)=>{var xe;return ue.startsWith("data-tooltip-")&&(at[ue.replace(/^data-tooltip-/,"")]=(xe=He==null?void 0:He.getAttribute(ue))!==null&&xe!==void 0?xe:null),at},{}),bn=He=>{const at={place:ue=>{var xe;Ae((xe=ue)!==null&&xe!==void 0?xe:N)},content:ue=>{le(ue??s)},html:ue=>{ae(ue??d)},variant:ue=>{var xe;Me((xe=ue)!==null&&xe!==void 0?xe:S)},offset:ue=>{It(ue===null?b:Number(ue))},wrapper:ue=>{var xe;ln((xe=ue)!==null&&xe!==void 0?xe:k)},events:ue=>{const xe=ue==null?void 0:ue.split(" ");Wt(xe??P)},"position-strategy":ue=>{var xe;un((xe=ue)!==null&&xe!==void 0?xe:C)},"delay-show":ue=>{we(ue===null?_:Number(ue))},"delay-hide":ue=>{gt(ue===null?m:Number(ue))},float:ue=>{Ut(ue===null?p:ue==="true")},hidden:ue=>{on(ue===null?y:ue==="true")},"class-name":ue=>{ft(ue)}};Object.values(at).forEach(ue=>ue(null)),Object.entries(He).forEach(([ue,xe])=>{var tt;(tt=at[ue])===null||tt===void 0||tt.call(at,xe)})};$.useEffect(()=>{le(s)},[s]),$.useEffect(()=>{ae(d)},[d]),$.useEffect(()=>{Ae(N)},[N]),$.useEffect(()=>{Me(S)},[S]),$.useEffect(()=>{It(b)},[b]),$.useEffect(()=>{we(_)},[_]),$.useEffect(()=>{gt(m)},[m]),$.useEffect(()=>{Ut(p)},[p]),$.useEffect(()=>{on(y)},[y]),$.useEffect(()=>{un(C)},[C]),$.useEffect(()=>{ut.current!==ge&&console.warn("[react-tooltip] Do not change `disableStyleInjection` dynamically.")},[ge]),$.useEffect(()=>{typeof window<"u"&&window.dispatchEvent(new CustomEvent("react-tooltip-inject-styles",{detail:{disableCore:ge==="core",disableBase:ge}}))},[]),$.useEffect(()=>{var He;const at=new Set(Vt);let ue=u;if(!ue&&r&&(ue=`[data-tooltip-id='${r.replace(/'/g,"\\'")}']`),ue)try{document.querySelectorAll(ue).forEach(se=>{at.add({current:se})})}catch{console.warn(`[react-tooltip] "${ue}" is not a valid CSS selector`)}const xe=document.querySelector(`[id='${i}']`);if(xe&&at.add({current:xe}),!at.size)return()=>null;const tt=(He=Fe??xe)!==null&&He!==void 0?He:dt.current,cn=new MutationObserver(se=>{se.forEach(de=>{var $e;if(!tt||de.type!=="attributes"||!(!(($e=de.attributeName)===null||$e===void 0)&&$e.startsWith("data-tooltip-")))return;const Ke=an(tt);bn(Ke)})}),X={attributes:!0,childList:!1,subtree:!1};if(tt){const se=an(tt);bn(se),cn.observe(tt,X)}return()=>{cn.disconnect()}},[Vt,dt,Fe,i,u]),$.useEffect(()=>{ee!=null&&ee.border&&console.warn("[react-tooltip] Do not set `style.border`. Use `border` prop instead."),Ne&&!Lf("border",`${Ne}`)&&console.warn(`[react-tooltip] "${Ne}" is not a valid \`border\`.`),ee!=null&&ee.opacity&&console.warn("[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead."),je&&!Lf("opacity",`${je}`)&&console.warn(`[react-tooltip] "${je}" is not a valid \`opacity\`.`)},[]);let Lt=j;const Cn=$.useRef(null);if(c){const He=c({content:(Fe==null?void 0:Fe.getAttribute("data-tooltip-content"))||J||null,activeAnchor:Fe});Lt=He?Jt.createElement("div",{ref:Cn,className:"react-tooltip-content-wrapper"},He):null}else J&&(Lt=J);fe&&(Lt=Jt.createElement(gg,{content:fe}));const Nn={forwardRef:K,id:r,anchorId:i,anchorSelect:u,className:gu(h,kn),classNameArrow:v,content:Lt,contentWrapperRef:Cn,place:ie,variant:Ye,offset:jt,wrapper:$t,events:bt,openOnClick:O,positionStrategy:sn,middlewares:D,delayShow:ve,delayHide:ct,float:Tn,hidden:tr,noArrow:g,clickable:L,closeOnEsc:x,closeOnScroll:A,closeOnResize:B,openEvents:V,closeEvents:Q,globalCloseEvents:G,imperativeModeOnly:W,style:ee,position:me,isOpen:Ee,defaultIsOpen:pe,border:Ne,opacity:je,arrowColor:Te,setIsOpen:Ge,afterShow:Ve,afterHide:q,disableTooltip:T,activeAnchor:Fe,setActiveAnchor:He=>br(He),role:z};return Jt.createElement(hg,{...Nn})});typeof window<"u"&&window.addEventListener("react-tooltip-inject-styles",r=>{r.detail.disableCore||jf({css:":root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9;--rt-transition-show-delay:0.15s;--rt-transition-closing-delay:0.15s}.core-styles-module_tooltip__3vRRp{position:absolute;top:0;left:0;pointer-events:none;opacity:0;will-change:opacity}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{position:absolute;background:inherit}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay)ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay)ease-in}",type:"core"}),r.detail.disableBase||jf({css:`
|
|
61
|
-
.styles-module_tooltip__mnnfp{padding:8px 16px;border-radius:3px;font-size:90%;width:max-content}.styles-module_arrow__K0L3T{width:8px;height:8px}[class*='react-tooltip__place-top']>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*='react-tooltip__place-right']>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*='react-tooltip__place-bottom']>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*='react-tooltip__place-left']>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}`,type:"base"})});function tl({children:r,transparent:i=!1}){return E.jsx("div",{id:"overlay",style:{backgroundColor:i?"transparent":null},children:r})}tl.propTypes={transparent:be.bool,children:be.oneOfType([be.node,be.arrayOf(be.node)])};var nl="NOT_FOUND";function vg(r){var i;return{get:function(s){return i&&r(i.key,s)?i.value:nl},put:function(s,d){i={key:s,value:d}},getEntries:function(){return i?[i]:[]},clear:function(){i=void 0}}}function yg(r,i){var u=[];function s(v){var S=u.findIndex(function(b){return i(v,b.key)});if(S>-1){var N=u[S];return S>0&&(u.splice(S,1),u.unshift(N)),N.value}return nl}function d(v,S){s(v)===nl&&(u.unshift({key:v,value:S}),u.length>r&&u.pop())}function c(){return u}function h(){u=[]}return{get:s,put:d,getEntries:c,clear:h}}var wg=function(i,u){return i===u};function _g(r){return function(u,s){if(u===null||s===null||u.length!==s.length)return!1;for(var d=u.length,c=0;c<d;c++)if(!r(u[c],s[c]))return!1;return!0}}function xg(r,i){var u=typeof i=="object"?i:{equalityCheck:i},s=u.equalityCheck,d=s===void 0?wg:s,c=u.maxSize,h=c===void 0?1:c,v=u.resultEqualityCheck,S=_g(d),N=h===1?vg(S):yg(h,S);function b(){var k=N.get(arguments);if(k===nl){if(k=r.apply(null,arguments),v){var j=N.getEntries(),P=j.find(function(O){return v(O.value,k)});P&&(k=P.value)}N.put(arguments,k)}return k}return b.clearCache=function(){return N.clear()},b}function Eg(r){var i=Array.isArray(r[0])?r[0]:r;if(!i.every(function(s){return typeof s=="function"})){var u=i.map(function(s){return typeof s=="function"?"function "+(s.name||"unnamed")+"()":typeof s}).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+u+"]")}return i}function Sg(r){for(var i=arguments.length,u=new Array(i>1?i-1:0),s=1;s<i;s++)u[s-1]=arguments[s];var d=function(){for(var h=arguments.length,v=new Array(h),S=0;S<h;S++)v[S]=arguments[S];var N=0,b,k={memoizeOptions:void 0},j=v.pop();if(typeof j=="object"&&(k=j,j=v.pop()),typeof j!="function")throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof j+"]");var P=k,O=P.memoizeOptions,C=O===void 0?u:O,D=Array.isArray(C)?C:[C],_=Eg(v),m=r.apply(void 0,[function(){return N++,j.apply(null,arguments)}].concat(D)),p=r(function(){for(var g=[],L=_.length,x=0;x<L;x++)g.push(_[x].apply(null,arguments));return b=m.apply(null,g),b});return Object.assign(p,{resultFunc:j,memoizedResultFunc:m,dependencies:_,lastResult:function(){return b},recomputations:function(){return N},resetRecomputations:function(){return N=0}}),p};return d}var Le=Sg(xg);const Tg=1e3,kg=60,Nd="mwi-auth-token",Bf=10,bg=r=>r.tutorialHidden,Cg=r=>r.serverStatus,Tr=r=>r.matlab.status,Ng=r=>r.matlab.versionOnPath,Dg=r=>r.matlab.supportedVersions,zo=r=>r.envConfig,Rg=r=>r.serverStatus.wsEnv,Dd=r=>r.serverStatus.isSubmitting,Pg=r=>r.serverStatus.hasFetched,Ag=r=>r.serverStatus.isFetchingServerStatus,Zn=r=>r.serverStatus.licensingInfo,Og=r=>r.serverStatus.fetchFailCount,jg=r=>r.loadUrl,Gr=r=>r.error,Ig=r=>r.warnings,Jn=r=>r.authentication.enabled,Lg=r=>r.authentication.token,kr=r=>r.authentication.status===!0,Rd=r=>r.sessionStatus.isActiveClient,al=r=>r.sessionStatus.isConcurrencyEnabled,Mg=r=>r.sessionStatus.wasEverActive,Fg=r=>r.sessionStatus.clientId,Pd=r=>r.idleTimeoutDuration,zg=r=>r.matlab.busyStatus,Bg=Le(r=>r.triggerPosition,r=>r===null?void 0:r),cl=Le(zo,r=>r!==null),Bo=Le(Gr,r=>r!==null),Cu=Le(Rd,r=>!r),Ug=Le(Og,al,Cu,(r,i,u)=>i&&u?r>=1:r>=kg),fl=Le(Tr,r=>r==="up"),Ad=Le(Tr,r=>r==="starting"),Od=Le(Tr,r=>r==="stopping"),$g=Le(Tr,r=>r==="down"),jd=Le(Tr,Bo,Jn,kr,(r,i,u,s)=>r==="up"&&!i&&(!u||s)),Wg=Le(r=>r.overlayVisibility,fl,Bo,Jn,kr,(r,i,u,s,d)=>s&&!d||!i||r||u);Le(Cg,r=>r.fetchAbortController);const Vg=Le(Dd,Ag,al,Cu,(r,i,u,s)=>r||i||u&&s?null:Tg),Nu=Le(Zn,r=>Object.prototype.hasOwnProperty.call(r,"type")),Du=Le(Zn,Nu,(r,i)=>i&&r.type==="mhlm"),Hg=Le(Zn,Du,(r,i)=>i?r.emailAddress:""),Id=Le(Du,Zn,(r,i)=>r&&i.entitlements&&i.entitlements.length>0),Ld=Le(Zn,Id,(r,i)=>i&&r.entitlementId),qg=Le(Tr,r=>r==="starting"),Md=Le(Wg,Bo,(r,i)=>r||i),Qg=Le(Jn,kr,Bo,Gr,(r,i,u,s)=>!!(r&&!i&&u&&s.type==="InvalidTokenError")),Fd=Le(Tr,Bo,Gr,Jn,Qg,(r,i,u,s,d)=>{if(i&&u.statusCode===408)return{icon:"warning",alert:"warning",label:"Unknown"};if(i&&s&&d)return{icon:"warning",alert:"warning",label:"Invalid Token supplied"};switch(r){case"up":return{label:"Running",icon:"success",alert:"success"};case"starting":return{label:"Starting. This may take several minutes.",icon:"info-reverse",alert:"info",spinner:!0};case"stopping":return{label:"Stopping",icon:"info-reverse",alert:"info",spinner:!0};case"down":{const c={label:"Not running",icon:"info-reverse",alert:"info"};return i&&(c.icon="error",c.alert="danger"),c}default:throw new Error(`Unknown MATLAB status: "${r}".`)}}),Yg=Le(zg,r=>r==="busy"),zd=Le(Pd,r=>!!r),Kg=Le(zd,Pd,(r,i)=>r?i*1e3:void 0),Xg=Le(cl,zo,(r,i)=>r?i.browserTitle:"MATLAB"),dl=Le(cl,zo,(r,i)=>r?i.extension_name==="default_configuration_matlab_proxy"?i.extension_name_short_description:`${i.extension_name_short_description} - MATLAB Integration`:""),Gg=Le(cl,zo,(r,i)=>r?i.should_show_shutdown_button:!1),Bd="SET_TRIGGER_POSITION",Ud="SET_TUTORIAL_HIDDEN",$d="SET_OVERLAY_VISIBILITY",Wd="SET_CLIENT_ID",Vd="REQUEST_SERVER_STATUS",Ot="RECEIVE_SERVER_STATUS",Hd="REQUEST_SET_LICENSING",Zg="REQUEST_UPDATE_LICENSING",qd="REQUEST_SHUTDOWN_INTEGRATION",Ru="REQUEST_STOP_MATLAB",Pu="REQUEST_START_MATLAB",_n="RECEIVE_SET_LICENSING",Jg="RECEIVE_UPDATE_LICENSING",xn="RECEIVE_SHUTDOWN_INTEGRATION",En="RECEIVE_STOP_MATLAB",Sn="RECEIVE_START_MATLAB",Uo="RECEIVE_ERROR",ev="REQUEST_ENV_CONFIG",er="RECEIVE_ENV_CONFIG",tv="RECEIVE_CONCURRENCY_CHECK",Au="SET_AUTH_STATUS",Qd="SET_AUTH_TOKEN",nv="REQUEST_SERVER_INITIALIZATION",Yd="RECEIVE_SESSION_STATUS",Kd="WAS_EVER_ACTIVE";var Yi={exports:{}};function rv(r){throw new Error('Could not dynamically require "'+r+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Ki={exports:{}};const ov={},iv=Object.freeze(Object.defineProperty({__proto__:null,default:ov},Symbol.toStringTag,{value:"Module"})),lv=nd(iv);var sv=Ki.exports,Uf;function uv(){return Uf||(Uf=1,function(r,i){(function(u,s){r.exports=s()})(sv,function(){var u=u||function(s,d){var c;if(typeof window<"u"&&window.crypto&&(c=window.crypto),typeof self<"u"&&self.crypto&&(c=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(c=globalThis.crypto),!c&&typeof window<"u"&&window.msCrypto&&(c=window.msCrypto),!c&&typeof zs<"u"&&zs.crypto&&(c=zs.crypto),!c&&typeof rv=="function")try{c=lv}catch{}var h=function(){if(c){if(typeof c.getRandomValues=="function")try{return c.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof c.randomBytes=="function")try{return c.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},v=Object.create||function(){function m(){}return function(p){var y;return m.prototype=p,y=new m,m.prototype=null,y}}(),S={},N=S.lib={},b=N.Base=function(){return{extend:function(m){var p=v(this);return m&&p.mixIn(m),(!p.hasOwnProperty("init")||this.init===p.init)&&(p.init=function(){p.$super.init.apply(this,arguments)}),p.init.prototype=p,p.$super=this,p},create:function(){var m=this.extend();return m.init.apply(m,arguments),m},init:function(){},mixIn:function(m){for(var p in m)m.hasOwnProperty(p)&&(this[p]=m[p]);m.hasOwnProperty("toString")&&(this.toString=m.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),k=N.WordArray=b.extend({init:function(m,p){m=this.words=m||[],p!=d?this.sigBytes=p:this.sigBytes=m.length*4},toString:function(m){return(m||P).stringify(this)},concat:function(m){var p=this.words,y=m.words,g=this.sigBytes,L=m.sigBytes;if(this.clamp(),g%4)for(var x=0;x<L;x++){var A=y[x>>>2]>>>24-x%4*8&255;p[g+x>>>2]|=A<<24-(g+x)%4*8}else for(var B=0;B<L;B+=4)p[g+B>>>2]=y[B>>>2];return this.sigBytes+=L,this},clamp:function(){var m=this.words,p=this.sigBytes;m[p>>>2]&=4294967295<<32-p%4*8,m.length=s.ceil(p/4)},clone:function(){var m=b.clone.call(this);return m.words=this.words.slice(0),m},random:function(m){for(var p=[],y=0;y<m;y+=4)p.push(h());return new k.init(p,m)}}),j=S.enc={},P=j.Hex={stringify:function(m){for(var p=m.words,y=m.sigBytes,g=[],L=0;L<y;L++){var x=p[L>>>2]>>>24-L%4*8&255;g.push((x>>>4).toString(16)),g.push((x&15).toString(16))}return g.join("")},parse:function(m){for(var p=m.length,y=[],g=0;g<p;g+=2)y[g>>>3]|=parseInt(m.substr(g,2),16)<<24-g%8*4;return new k.init(y,p/2)}},O=j.Latin1={stringify:function(m){for(var p=m.words,y=m.sigBytes,g=[],L=0;L<y;L++){var x=p[L>>>2]>>>24-L%4*8&255;g.push(String.fromCharCode(x))}return g.join("")},parse:function(m){for(var p=m.length,y=[],g=0;g<p;g++)y[g>>>2]|=(m.charCodeAt(g)&255)<<24-g%4*8;return new k.init(y,p)}},C=j.Utf8={stringify:function(m){try{return decodeURIComponent(escape(O.stringify(m)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(m){return O.parse(unescape(encodeURIComponent(m)))}},D=N.BufferedBlockAlgorithm=b.extend({reset:function(){this._data=new k.init,this._nDataBytes=0},_append:function(m){typeof m=="string"&&(m=C.parse(m)),this._data.concat(m),this._nDataBytes+=m.sigBytes},_process:function(m){var p,y=this._data,g=y.words,L=y.sigBytes,x=this.blockSize,A=x*4,B=L/A;m?B=s.ceil(B):B=s.max((B|0)-this._minBufferSize,0);var V=B*x,Q=s.min(V*4,L);if(V){for(var G=0;G<V;G+=x)this._doProcessBlock(g,G);p=g.splice(0,V),y.sigBytes-=Q}return new k.init(p,Q)},clone:function(){var m=b.clone.call(this);return m._data=this._data.clone(),m},_minBufferSize:0});N.Hasher=D.extend({cfg:b.extend(),init:function(m){this.cfg=this.cfg.extend(m),this.reset()},reset:function(){D.reset.call(this),this._doReset()},update:function(m){return this._append(m),this._process(),this},finalize:function(m){m&&this._append(m);var p=this._doFinalize();return p},blockSize:16,_createHelper:function(m){return function(p,y){return new m.init(y).finalize(p)}},_createHmacHelper:function(m){return function(p,y){return new _.HMAC.init(m,y).finalize(p)}}});var _=S.algo={};return S}(Math);return u})}(Ki)),Ki.exports}var av=Yi.exports,$f;function cv(){return $f||($f=1,function(r,i){(function(u,s){r.exports=s(uv())})(av,function(u){return function(s){var d=u,c=d.lib,h=c.WordArray,v=c.Hasher,S=d.algo,N=[],b=[];(function(){function P(_){for(var m=s.sqrt(_),p=2;p<=m;p++)if(!(_%p))return!1;return!0}function O(_){return(_-(_|0))*4294967296|0}for(var C=2,D=0;D<64;)P(C)&&(D<8&&(N[D]=O(s.pow(C,1/2))),b[D]=O(s.pow(C,1/3)),D++),C++})();var k=[],j=S.SHA256=v.extend({_doReset:function(){this._hash=new h.init(N.slice(0))},_doProcessBlock:function(P,O){for(var C=this._hash.words,D=C[0],_=C[1],m=C[2],p=C[3],y=C[4],g=C[5],L=C[6],x=C[7],A=0;A<64;A++){if(A<16)k[A]=P[O+A]|0;else{var B=k[A-15],V=(B<<25|B>>>7)^(B<<14|B>>>18)^B>>>3,Q=k[A-2],G=(Q<<15|Q>>>17)^(Q<<13|Q>>>19)^Q>>>10;k[A]=V+k[A-7]+G+k[A-16]}var W=y&g^~y&L,ee=D&_^D&m^_&m,me=(D<<30|D>>>2)^(D<<19|D>>>13)^(D<<10|D>>>22),Ee=(y<<26|y>>>6)^(y<<21|y>>>11)^(y<<7|y>>>25),pe=x+Ee+W+b[A]+k[A],ge=me+ee;x=L,L=g,g=y,y=p+pe|0,p=m,m=_,_=D,D=pe+ge|0}C[0]=C[0]+D|0,C[1]=C[1]+_|0,C[2]=C[2]+m|0,C[3]=C[3]+p|0,C[4]=C[4]+y|0,C[5]=C[5]+g|0,C[6]=C[6]+L|0,C[7]=C[7]+x|0},_doFinalize:function(){var P=this._data,O=P.words,C=this._nDataBytes*8,D=P.sigBytes*8;return O[D>>>5]|=128<<24-D%32,O[(D+64>>>9<<4)+14]=s.floor(C/4294967296),O[(D+64>>>9<<4)+15]=C,P.sigBytes=O.length*4,this._process(),this._hash},clone:function(){var P=v.clone.call(this);return P._hash=this._hash.clone(),P}});d.SHA256=v._createHelper(j),d.HmacSHA256=v._createHmacHelper(j)}(Math),u.SHA256})}(Yi)),Yi.exports}var fv=cv();const dv=Er(fv);function pv(r){return{type:Au,authentication:r}}function mv(r){return{type:Qd,authentication:r}}function ru(r,i){return{type:Bd,x:r,y:i}}function hv(r){return{type:Ud,hidden:r}}function rl(r){return{type:$d,visibility:r}}function gv(r){return{type:Wd,clientId:r}}function vv(){return{type:Vd}}function yv(){return{type:Kd}}function wv(r){return function(i,u){return i({type:Ot,status:r,previousMatlabPending:qg(u())})}}function _v(r){return function(i){return i({type:Yd,status:r})}}function xv(){return{type:ev}}function Ev(r){return{type:er,config:r}}function Xd(){return{type:Hd}}function Gd(r){return{type:_n,status:r}}function Sv(){return{type:Zg}}function Tv(r){return{type:Jg,status:r}}function kv(){return{type:qd}}function bv(r){return{type:xn,status:r,loadUrl:"../"}}function Cv(){return{type:Ru,status:"stopping"}}function Nv(r){return{type:En,status:r}}function Dv(){return{type:Pu,status:"starting"}}function Rv(r){return{type:Sn,status:r}}function Wf(r,i){return{type:Uo,error:r,statusCode:i}}async function rn(r,i,u={},s=1e4){const d=new AbortController,c=setTimeout(()=>d.abort(),s);try{const h=await fetch(i,{...u,signal:d.signal});return clearTimeout(c),h}catch(h){h.name==="AbortError"||h.name==="TypeError"?r(Wf("HTTP Error 408 - Request Timeout. Check your internet connection and verify that the server is running.",408)):r(Wf("Communication with server failed.",500))}}function ou(r=!1){return async function(i,u){const s=al(u()),d=Jn(u()),c=kr(u()),v=Fg(u());i(vv());let S="./get_status";if((!d||c)&&s&&(S=`${S}?IS_DESKTOP=TRUE`,s&&v)){const k=new URLSearchParams;k.append("MWI_CLIENT_ID",encodeURIComponent(v)),r&&k.append("TRANSFER_SESSION",encodeURIComponent(r)),S=S+"&"+k.toString()}const b=await(await rn(i,S,{},1e4)).json();i(wv(b)),v==null&&b.clientId&&i(gv(b.clientId)),"isActiveClient"in b&&(i(_v(b)),b.isActiveClient===!0&&i(yv()))}}function Pv(){return async function(r){r(xv());const u=await(await rn(r,"./get_env_config",{},1e4)).json();r(Ev(u))}}function Zd(r){return async function(i){const u=dv(r),s={method:"POST",headers:{[Nd]:u}},c=await(await rn(i,"./authenticate",s,15e3)).json();i(pv(c))}}function Av(){return async function(r){const s=await(await rn(r,"./get_auth_token",{method:"GET"},1e4)).json();r(mv(s))}}function ol(r){return async function(i){const u={method:"PUT",mode:"same-origin",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)};i(Xd());const d=await(await rn(i,"./set_licensing_info",u,15e3)).json();i(Gd(d))}}function Ov(r){return async function(i){const u={method:"PUT",mode:"same-origin",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)};i(Sv());const d=await(await rn(i,"./update_entitlement",u,1500)).json();i(Tv(d))}}function jv(){return async function(r){const i={method:"DELETE",mode:"same-origin",cache:"no-cache",credentials:"same-origin"};r(Xd());const s=await(await rn(r,"./set_licensing_info",i,15e3)).json();r(Gd(s))}}function Jd(){return async function(r){const i={method:"DELETE",mode:"same-origin",cache:"no-cache",credentials:"same-origin"};r(kv());const s=await(await rn(r,"./shutdown_integration",i,15e3)).json();r(bv(s))}}function Iv(){return async function(r){const i={method:"DELETE",mode:"same-origin",cache:"no-cache",credentials:"same-origin"};r(Cv());const s=await(await rn(r,"./stop_matlab",i,3e4)).json();r(Nv(s))}}function Lv(){return async function(r){const i={method:"PUT",mode:"same-origin",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({})};r(Dv());const s=await(await rn(r,"./start_matlab",i,15e3)).json();r(Rv(s))}}function Mv(){const r=Gn(),i=re(Bg),u=re(dl),[s,d]=$.useState(!1),c=$.useRef(),h=`Open the ${u} settings`;$.useEffect(()=>{const _=new IntersectionObserver(([m])=>{m.isIntersecting||r(ru(window.innerWidth/2+27,0))});return _.observe(c.current),()=>{_.disconnect()}},[r]);const v=re(Md),S=$.useCallback(()=>r(rl(!v)),[v,r]),N=re(bg),b=re(Fd),k=$.useCallback((_,m)=>{d(!0),r(ru(m.x,m.y))},[r,d]),j=$.useCallback((_,m)=>{d(!1),r(ru(m.x,m.y))},[r,d]),P=s?E.jsx(tl,{transparent:!0}):null,O=()=>{r(hv(!0))},C=N?null:E.jsxs("div",{id:"trigger-tutorial",className:"trigger-tutorial modal-content",children:[E.jsxs("p",{children:["To control the MATLAB session (for example to restart or sign out), click the ",E.jsx("span",{className:"icon-custom-trigger icon trigger-tutorial-icon",title:"tools icon"})," icon."]}),E.jsx("p",{children:"The color of the badge shows the MATLAB status."}),E.jsxs("p",{children:["To position this widget anywhere on screen, click and drag the ",E.jsx("span",{className:"drag-handle icon",title:"grab handle icon"})," icon."]}),E.jsx("button",{className:"btn btn_color_blue pull-right","data-testid":"tutorialCloseBtn",onClick:O,children:"Close"})]}),D=N?E.jsx(Cd,{id:"trigger-button-tooltip",place:"bottom",type:"info",effect:"solid"}):null;return E.jsxs(E.Fragment,{children:[P,E.jsx(Th,{position:i,onDrag:k,onStop:j,handle:".card-body",bounds:"parent",children:E.jsxs("div",{ref:c,className:`card alert-${b.alert}`,"data-testid":"overlayTrigger",children:[E.jsxs("div",{className:"card-body","data-testid":"cardBody",children:[E.jsx("span",{id:"drag-handle",className:"drag-handle"}),E.jsx("button",{type:"button",className:"trigger-btn",onClick:S,onMouseDown:_=>_.stopPropagation(),"aria-label":"Menu","data-tooltip-id":"trigger-button-tooltip","data-tooltip-content":h,"data-tooltip-variant":"info",children:E.jsx("span",{className:"icon-custom-trigger"})})]}),C]})}),D]})}function ep({url:r,iFrameRef:i,shouldListenForEvents:u,handleUserInteraction:s}){const d=re(fl);return $.useEffect(()=>{const c=i.current,h=["click","mousemove","keydown"];return c&&u&&(console.log("Adding event handlers to IFrame"),h.forEach(v=>{c.contentWindow.addEventListener(v,s,!1)})),()=>{c&&u&&(console.log("Removing event handlers from IFrame"),h.forEach(v=>{c.contentWindow.removeEventListener(v,s,!1)}))}},[u,d,i,s]),E.jsx("div",{id:"MatlabJsd",children:E.jsx("iframe",{ref:i,title:"MATLAB JSD",src:r,frameBorder:"0",allowFullScreen:!0})})}ep.propTypes={url:be.string.isRequired,iFrameRef:be.object.isRequired,shouldListenForEvents:be.bool.isRequired,handleUserInteraction:be.func.isRequired};function Fv(r){const u={event:"init",clientTransactionId:(Math.random()+"").substr(2),transactionId:"",release:"",platform:"",clientString:"desktop-jupyter",clientID:"",locale:"",profileTier:"",showCreateAccount:!1,showRememberMe:!1,showLicenseField:!1,licenseNo:"",cachedUsername:r,cachedRememberMe:!1};document.getElementById("loginframe").contentWindow.postMessage(JSON.stringify(u),"*")}function zv(r,i,u){const s={event:"load",clientTransactionId:r,transactionId:i,release:"",platform:"web",clientString:"desktop-jupyter",clientId:"",sourceId:u,profileTier:"MINIMUM",showCreateAccount:!1,showRememberMe:!1,showLicenseField:!1,entitlementId:"",showPrivacyPolicy:!0,contextualText:"",legalText:"",cachedIdentifier:"",cachedRememberMe:"",token:"",unauthorized:!1};document.getElementById("loginframe").contentWindow.postMessage(JSON.stringify(s),"*")}function tp({mhlmLicensingInfo:r=null}){const i=Gn(),u=re(Hg),s=re(Rg),d=re(Ng),c=re(Dg),[h,v]=$.useState(!1),[S,N]=$.useState(r),[b,k]=$.useState(c[c.length-1]),j=$.useMemo(()=>{let p="login";return s.includes("integ")&&(p=`${p}-${s}`),`https://${p}.mathworks.com`},[s]),P=$.useState(Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15))[0];$.useEffect(()=>{const p=y=>{if(y.origin===j){const g=JSON.parse(y.data);if(g.event==="nonce")zv(g.clientTransactionId,g.transactionId,P);else if(g.event==="login"){const L={type:"mhlm",token:g.token,profileId:g.profileId,emailAddress:g.emailAddress,sourceId:P};d?i(ol({...L,matlabVersion:d})):N(L)}}};return window.addEventListener("message",p),()=>{window.removeEventListener("message",p)}},[i,P,j,S,d]),$.useEffect(()=>{h===!0&&Fv(u)},[h,u]);const O=()=>v(!0),C=`${j}/embedded-login/v2/login.html`,D=E.jsx("div",{id:"MHLM",children:E.jsx("iframe",{id:"loginframe",title:"MathWorks Embedded Login",type:"text/html",height:"380",width:"100%",frameBorder:"0",src:C,onLoad:O,children:"Sorry your browser does not support inline frames."})}),_=p=>{p.preventDefault(),i(ol({...S,matlabVersion:b}))},m=E.jsx("div",{id:"ChooseMatlabVersion",children:E.jsx("form",{onSubmit:_,children:E.jsxs("div",{className:"form-group",children:[E.jsxs("p",{children:[E.jsx("b",{children:"Note"}),": The version of MATLAB could not be determined. Choose the version of MATLAB you are attempting to start."]}),E.jsx("br",{}),E.jsx("select",{value:b,onChange:p=>k(p.target.value),children:c.map((p,y)=>E.jsx("option",{value:p,children:p},y))}),E.jsx("br",{}),E.jsx("br",{}),E.jsx("input",{type:"submit",id:"startMatlabBtn",value:"Start MATLAB",className:"btn btn_color_blue"})]})})});return S&&!d?m:D}tp.propTypes={mhlmLicensingInfo:be.object};const Bv=/^[0-9]+[@](\w|\_|\-|\.)+/;function Uv(r){const i=r.split(/:|;|,/);for(const u of i)if(!Bv.test(u))return!1;return!0}function $v(){const r=Gn(),[i,u]=$.useState(""),[s,d]=$.useState(!1),c=Uv(i);function h(v){v.preventDefault(),r(ol({type:"nlm",connectionString:i}))}return E.jsx("div",{id:"NLM",children:E.jsxs("form",{onSubmit:h,children:[E.jsxs("div",{className:`form-group has-feedback ${s?c?"has-success":"has-error":""}`,children:[E.jsx("label",{htmlFor:"nlm-connection-string",children:"License Server Address"}),E.jsx("input",{id:"nlm-connection-string",type:"text",required:!0,placeholder:"port@hostname",className:"form-control","aria-invalid":!c,value:i,onChange:v=>{d(!0),u(v.target.value)}}),E.jsx("span",{className:"glyphicon form-control-feedback glyphicon-remove"}),E.jsx("span",{className:"glyphicon form-control-feedback glyphicon-ok"})]}),E.jsx("input",{type:"submit",id:"submit",value:"Submit",className:"btn btn_color_blue",disabled:!c})]})})}function Wv(){const r=Gn();function i(u){u.preventDefault(),r(ol({type:"existing_license"}))}return E.jsx("div",{id:"ExistingLicense",children:E.jsx("form",{onSubmit:i,children:E.jsxs("div",{className:"form-group",children:[E.jsxs("p",{children:[E.jsx("b",{children:"Note"}),": Choose this option if you already have an activated MATLAB license. This option allows you to run MATLAB on your host machine without providing additional licensing information."]}),E.jsx("br",{}),E.jsx("input",{type:"submit",id:"submit",value:"Start MATLAB",className:"btn btn_color_blue"})]})})})}function Vv(){const[r,i]=$.useState("mhlm"),u=k=>{k.preventDefault(),i("mhlm")},s=k=>{k.preventDefault(),i("nlm")},d=k=>{k.preventDefault(),i("existingLicense")},c=r==="mhlm"?"active":"",h=r==="mhlm"?"true":"false",v=r==="nlm"?"active":"",S=r==="nlm"?"true":"false",N=r==="existingLicense"?"active":"",b=r==="existingLicense"?"true":"false";return E.jsx("div",{className:"modal show",id:"setup-dialog",tabIndex:"-1",role:"dialog","aria-labelledby":"setup-dialog-title",children:E.jsx("div",{className:"modal-dialog modal-dialog-centered",role:"document",children:E.jsx("div",{className:"modal-content",children:E.jsx("div",{className:"modal-body",children:E.jsxs("div",{className:"tab-container",children:[E.jsxs("ul",{id:"setup-tabs",className:"nav nav-tabs",role:"tablist",children:[E.jsx("li",{role:"presentation",className:c,children:E.jsx("a",{href:"#mhlm",id:"mhlm-tab",onClick:u,role:"tab","aria-controls":"mhlm","aria-expanded":h,children:"Online License Manager"})}),E.jsx("li",{role:"presentation",className:v,children:E.jsx("a",{href:"#nlm",id:"nlm-tab",onClick:s,role:"tab","aria-controls":"nlm","aria-expanded":S,children:"Network License Manager"})}),E.jsx("li",{role:"presentation",className:N,children:E.jsx("a",{href:"#existingLicense",id:"existingLicense-tab",onClick:d,role:"tab","aria-controls":"existingLicense","aria-expanded":b,children:"Existing License"})})]}),E.jsxs("div",{id:"setup-tabs-content",className:"tab-content",children:[E.jsx("div",{role:"tabpanel",className:`tab-pane ${c}`,id:"mhlm","aria-labelledby":"mhlm-tab",children:E.jsx(tp,{})}),E.jsx("div",{role:"tabpanel",className:`tab-pane ${v}`,id:"nlm","aria-labelledby":"nlm-tab",children:E.jsx($v,{})}),E.jsx("div",{role:"tabpanel",className:`tab-pane ${N}`,id:"existingLicense","aria-labelledby":"existingLicense-tab",children:E.jsx(Wv,{})}),E.jsx("div",{children:E.jsxs("p",{id:"LicensingGathererNote",children:["For more details, see ",E.jsx("a",{href:"https://github.com/mathworks/matlab-proxy/blob/main/MATLAB-Licensing-Info.md",target:"_blank",rel:"noopener noreferrer",children:"MATLAB Licensing information"})]})})]})]})})})})})}const Hv={"sign-out":["NetworkLicensingError","EntitlementError","UIVisibleFatalError"],restart:["OnlineLicensingError"]};function np({callback:r}){const i=$.useRef(null),u=re(Dd),s=re(Nu),d=re(Ad),c=re(fl),h=re(Od),v=re($g),S=re(Gr),N=re(Jn),b=re(kr),k=re(Zn),j=s&&!u,P=re(Du),O=re(Ld),C=re(Gg);let D,_;switch(k==null?void 0:k.type){case"mhlm":D={label:"Sign Out",dataTip:"Sign out of MATLAB"},_="Are you sure you want to sign out of MATLAB?";break;case"nlm":D={label:"Remove License Server Address",dataTip:"Remove the network license manager server address"},_="Are you sure you want to remove the network license manager server address?";break;case"existing_license":D={label:"Stop using Existing License",dataTip:"Stop using existing license"},_="Are you sure you want to stop using an Existing License?";break;default:D={label:"None",dataTip:"None"},_=null}const m={START:{type:"confirmation",message:`Are you sure you want to ${c?"re":""}start MATLAB?`,callback:Lv},STOP:{type:"confirmation",message:"Are you sure you want to stop MATLAB?",callback:Iv},SHUTDOWN:{type:"confirmation",message:"Are you sure you want to shut down MATLAB and MATLAB Proxy?",callback:Jd},SIGN_OUT:{type:"confirmation",message:_,callback:jv},HELP:{type:"help"}};function p(y){const g="btn companion_btn ";if(S){if((Hv[y]||[]).includes(S.type))return g+"btn_color_blue"}else if(y==="start"&&N&&!b)return g+"btn_color_blue";return g+"btn_color_mediumgray"}return E.jsxs("div",{id:"controls",className:"labels-on-top",children:[E.jsxs("button",{id:"startMatlab","data-testid":"startMatlabBtn",className:p(c?"restart":"start"),onClick:()=>r(m.START),disabled:!s||d||h||N&&!b||P&&!O,"data-tooltip-id":"control-button-tooltip","data-tooltip-content":`${c?"Restart":"Start"} MATLAB`,"data-tooltip-variant":"info",children:[E.jsx("span",{className:`icon-custom-${c?"re":""}start`}),E.jsx("span",{className:"btn-label",children:`${c?"Restart":"Start"} MATLAB`})]}),E.jsxs("button",{id:"stopMatlab","data-testid":"stopMatlabBtn",className:p("stop"),onClick:()=>r(m.STOP),disabled:h||v||N&&!b,"data-tooltip-id":"control-button-tooltip","data-tooltip-content":"Stop MATLAB","data-tooltip-variant":"info",children:[E.jsx("span",{className:"icon-custom-stop"}),E.jsx("span",{className:"btn-label",children:"Stop MATLAB"})]}),E.jsxs("button",{id:"unsetLicensing","data-testid":"unsetLicensingBtn",className:p("sign-out"),onClick:()=>r(m.SIGN_OUT),disabled:!j||N&&!b,"data-tooltip-id":"control-button-tooltip","data-tooltip-content":D.dataTip,"data-tooltip-variant":"info",children:[E.jsx("span",{className:"icon-custom-sign-out"}),E.jsx("span",{className:"btn-label",children:D.label})]}),C&&E.jsxs("button",{id:"shutdownMatlabandMatlabProxy","data-testid":"shutdownBtn",className:p("shutdown"),onClick:()=>r(m.SHUTDOWN),disabled:!j||N&&!b,"data-tooltip-id":"control-button-tooltip","data-tooltip-content":"Stop MATLAB and MATLAB Proxy","data-tooltip-variant":"info",children:[E.jsx("span",{className:"icon-custom-shutdown"}),E.jsx("span",{className:"btn-label",children:"Shut Down"})]}),E.jsxs("a",{id:"feedback","data-testid":"feedbackLink",className:"btn btn_color_mediumgray companion_btn",href:"https://github.com/mathworks/matlab-proxy/issues/new/choose",target:"_blank",rel:"noreferrer","data-tooltip-id":"control-button-tooltip","data-tooltip-content":"Provide feedback (opens matlab-proxy repository on github.com in a new tab)","data-tooltip-variant":"info",children:[E.jsx("span",{className:"icon-custom-feedback"}),E.jsx("span",{className:"btn-label",children:"Feedback"})]}),E.jsxs("button",{id:"Help","data-testid":"helpBtn",className:"btn btn_color_mediumgray companion_btn",onClick:()=>r(m.HELP),"data-tooltip-id":"control-button-tooltip","data-tooltip-content":"See a description of the buttons","data-tooltip-variant":"info",children:[E.jsx("span",{className:"icon-custom-help"}),E.jsx("span",{className:"btn-label",children:"Help"})]}),E.jsx(Cd,{id:"control-button-tooltip",ref:i,place:"top",type:"info",effect:"solid"})]})}np.propTypes={confirmHandler:be.func,callback:be.func.isRequired};var $i={},Wi={},Vi={},Vf;function qv(){if(Vf)return Vi;Vf=1,Object.defineProperty(Vi,"__esModule",{value:!0});var r=Sr(),i=u(r);function u(s){if(s&&s.__esModule)return s;var d={};if(s!=null)for(var c in s)Object.prototype.hasOwnProperty.call(s,c)&&(d[c]=s[c]);return d.default=s,d}return Vi.default=function(s,d,c){return i.createElement("a",{href:s,key:c},d)},Vi}var Hi={},Hf;function Qv(){return Hf||(Hf=1,Object.defineProperty(Hi,"__esModule",{value:!0}),Hi.default=function(r){return r}),Hi}var qi={},iu,qf;function Yv(){return qf||(qf=1,iu=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/),iu}var lu,Qf;function Kv(){return Qf||(Qf=1,lu=/[\0-\x1F\x7F-\x9F]/),lu}var su,Yf;function Xv(){return Yf||(Yf=1,su=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/),su}var uu,Kf;function Gv(){return Kf||(Kf=1,uu=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/),uu}var au,Xf;function Zv(){return Xf||(Xf=1,au=function(r){var i={};i.src_Any=Yv().source,i.src_Cc=Kv().source,i.src_Z=Xv().source,i.src_P=Gv().source,i.src_ZPCc=[i.src_Z,i.src_P,i.src_Cc].join("|"),i.src_ZCc=[i.src_Z,i.src_Cc].join("|");var u="[><|]";return i.src_pseudo_letter="(?:(?!"+u+"|"+i.src_ZPCc+")"+i.src_Any+")",i.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",i.src_auth="(?:(?:(?!"+i.src_ZCc+"|[@/\\[\\]()]).)+@)?",i.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",i.src_host_terminator="(?=$|"+u+"|"+i.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+i.src_ZPCc+"))",i.src_path="(?:[/?#](?:(?!"+i.src_ZCc+"|"+u+`|[()[\\]{}.,"'?!\\-]).|\\[(?:(?!`+i.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+i.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+i.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+i.src_ZCc+`|["]).)+\\"|\\'(?:(?!`+i.src_ZCc+"|[']).)+\\'|\\'(?="+i.src_pseudo_letter+"|[-]).|\\.{2,4}[a-zA-Z0-9%/]|\\.(?!"+i.src_ZCc+"|[.]).|"+(r&&r["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+"\\,(?!"+i.src_ZCc+").|\\!(?!"+i.src_ZCc+"|[!]).|\\?(?!"+i.src_ZCc+"|[?]).)+|\\/)?",i.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',i.src_xn="xn--[a-z0-9\\-]{1,59}",i.src_domain_root="(?:"+i.src_xn+"|"+i.src_pseudo_letter+"{1,63})",i.src_domain="(?:"+i.src_xn+"|(?:"+i.src_pseudo_letter+")|(?:"+i.src_pseudo_letter+"(?:-|"+i.src_pseudo_letter+"){0,61}"+i.src_pseudo_letter+"))",i.src_host="(?:(?:(?:(?:"+i.src_domain+")\\.)*"+i.src_domain+"))",i.tpl_host_fuzzy="(?:"+i.src_ip4+"|(?:(?:(?:"+i.src_domain+")\\.)+(?:%TLDS%)))",i.tpl_host_no_ip_fuzzy="(?:(?:(?:"+i.src_domain+")\\.)+(?:%TLDS%))",i.src_host_strict=i.src_host+i.src_host_terminator,i.tpl_host_fuzzy_strict=i.tpl_host_fuzzy+i.src_host_terminator,i.src_host_port_strict=i.src_host+i.src_port+i.src_host_terminator,i.tpl_host_port_fuzzy_strict=i.tpl_host_fuzzy+i.src_port+i.src_host_terminator,i.tpl_host_port_no_ip_fuzzy_strict=i.tpl_host_no_ip_fuzzy+i.src_port+i.src_host_terminator,i.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+i.src_ZPCc+"|>|$))",i.tpl_email_fuzzy="(^|"+u+'|"|\\(|'+i.src_ZCc+")("+i.src_email_name+"@"+i.tpl_host_fuzzy_strict+")",i.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+i.src_ZPCc+"))((?![$+<=>^`||])"+i.tpl_host_port_fuzzy_strict+i.src_path+")",i.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+i.src_ZPCc+"))((?![$+<=>^`||])"+i.tpl_host_port_no_ip_fuzzy_strict+i.src_path+")",i}),au}var cu,Gf;function Jv(){if(Gf)return cu;Gf=1;function r(p){var y=Array.prototype.slice.call(arguments,1);return y.forEach(function(g){g&&Object.keys(g).forEach(function(L){p[L]=g[L]})}),p}function i(p){return Object.prototype.toString.call(p)}function u(p){return i(p)==="[object String]"}function s(p){return i(p)==="[object Object]"}function d(p){return i(p)==="[object RegExp]"}function c(p){return i(p)==="[object Function]"}function h(p){return p.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var v={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function S(p){return Object.keys(p||{}).reduce(function(y,g){return y||v.hasOwnProperty(g)},!1)}var N={"http:":{validate:function(p,y,g){var L=p.slice(y);return g.re.http||(g.re.http=new RegExp("^\\/\\/"+g.re.src_auth+g.re.src_host_port_strict+g.re.src_path,"i")),g.re.http.test(L)?L.match(g.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(p,y,g){var L=p.slice(y);return g.re.no_http||(g.re.no_http=new RegExp("^"+g.re.src_auth+"(?:localhost|(?:(?:"+g.re.src_domain+")\\.)+"+g.re.src_domain_root+")"+g.re.src_port+g.re.src_host_terminator+g.re.src_path,"i")),g.re.no_http.test(L)?y>=3&&p[y-3]===":"||y>=3&&p[y-3]==="/"?0:L.match(g.re.no_http)[0].length:0}},"mailto:":{validate:function(p,y,g){var L=p.slice(y);return g.re.mailto||(g.re.mailto=new RegExp("^"+g.re.src_email_name+"@"+g.re.src_host_strict,"i")),g.re.mailto.test(L)?L.match(g.re.mailto)[0].length:0}}},b="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",k="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function j(p){p.__index__=-1,p.__text_cache__=""}function P(p){return function(y,g){var L=y.slice(g);return p.test(L)?L.match(p)[0].length:0}}function O(){return function(p,y){y.normalize(p)}}function C(p){var y=p.re=Zv()(p.__opts__),g=p.__tlds__.slice();p.onCompile(),p.__tlds_replaced__||g.push(b),g.push(y.src_xn),y.src_tlds=g.join("|");function L(V){return V.replace("%TLDS%",y.src_tlds)}y.email_fuzzy=RegExp(L(y.tpl_email_fuzzy),"i"),y.link_fuzzy=RegExp(L(y.tpl_link_fuzzy),"i"),y.link_no_ip_fuzzy=RegExp(L(y.tpl_link_no_ip_fuzzy),"i"),y.host_fuzzy_test=RegExp(L(y.tpl_host_fuzzy_test),"i");var x=[];p.__compiled__={};function A(V,Q){throw new Error('(LinkifyIt) Invalid schema "'+V+'": '+Q)}Object.keys(p.__schemas__).forEach(function(V){var Q=p.__schemas__[V];if(Q!==null){var G={validate:null,link:null};if(p.__compiled__[V]=G,s(Q)){d(Q.validate)?G.validate=P(Q.validate):c(Q.validate)?G.validate=Q.validate:A(V,Q),c(Q.normalize)?G.normalize=Q.normalize:Q.normalize?A(V,Q):G.normalize=O();return}if(u(Q)){x.push(V);return}A(V,Q)}}),x.forEach(function(V){p.__compiled__[p.__schemas__[V]]&&(p.__compiled__[V].validate=p.__compiled__[p.__schemas__[V]].validate,p.__compiled__[V].normalize=p.__compiled__[p.__schemas__[V]].normalize)}),p.__compiled__[""]={validate:null,normalize:O()};var B=Object.keys(p.__compiled__).filter(function(V){return V.length>0&&p.__compiled__[V]}).map(h).join("|");p.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+y.src_ZPCc+"))("+B+")","i"),p.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+y.src_ZPCc+"))("+B+")","ig"),p.re.pretest=RegExp("("+p.re.schema_test.source+")|("+p.re.host_fuzzy_test.source+")|@","i"),j(p)}function D(p,y){var g=p.__index__,L=p.__last_index__,x=p.__text_cache__.slice(g,L);this.schema=p.__schema__.toLowerCase(),this.index=g+y,this.lastIndex=L+y,this.raw=x,this.text=x,this.url=x}function _(p,y){var g=new D(p,y);return p.__compiled__[g.schema].normalize(g,p),g}function m(p,y){if(!(this instanceof m))return new m(p,y);y||S(p)&&(y=p,p={}),this.__opts__=r({},v,y),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=r({},N,p),this.__compiled__={},this.__tlds__=k,this.__tlds_replaced__=!1,this.re={},C(this)}return m.prototype.add=function(y,g){return this.__schemas__[y]=g,C(this),this},m.prototype.set=function(y){return this.__opts__=r(this.__opts__,y),this},m.prototype.test=function(y){if(this.__text_cache__=y,this.__index__=-1,!y.length)return!1;var g,L,x,A,B,V,Q,G,W;if(this.re.schema_test.test(y)){for(Q=this.re.schema_search,Q.lastIndex=0;(g=Q.exec(y))!==null;)if(A=this.testSchemaAt(y,g[2],Q.lastIndex),A){this.__schema__=g[2],this.__index__=g.index+g[1].length,this.__last_index__=g.index+g[0].length+A;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(G=y.search(this.re.host_fuzzy_test),G>=0&&(this.__index__<0||G<this.__index__)&&(L=y.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))!==null&&(B=L.index+L[1].length,(this.__index__<0||B<this.__index__)&&(this.__schema__="",this.__index__=B,this.__last_index__=L.index+L[0].length))),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&(W=y.indexOf("@"),W>=0&&(x=y.match(this.re.email_fuzzy))!==null&&(B=x.index+x[1].length,V=x.index+x[0].length,(this.__index__<0||B<this.__index__||B===this.__index__&&V>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=B,this.__last_index__=V))),this.__index__>=0},m.prototype.pretest=function(y){return this.re.pretest.test(y)},m.prototype.testSchemaAt=function(y,g,L){return this.__compiled__[g.toLowerCase()]?this.__compiled__[g.toLowerCase()].validate(y,L,this):0},m.prototype.match=function(y){var g=0,L=[];this.__index__>=0&&this.__text_cache__===y&&(L.push(_(this,g)),g=this.__last_index__);for(var x=g?y.slice(g):y;this.test(x);)L.push(_(this,g)),x=x.slice(this.__last_index__),g+=this.__last_index__;return L.length?L:null},m.prototype.tlds=function(y,g){return y=Array.isArray(y)?y:[y],g?(this.__tlds__=this.__tlds__.concat(y).sort().filter(function(L,x,A){return L!==A[x-1]}).reverse(),C(this),this):(this.__tlds__=y.slice(),this.__tlds_replaced__=!0,C(this),this)},m.prototype.normalize=function(y){y.schema||(y.url="http://"+y.url),y.schema==="mailto:"&&!/^mailto:/i.test(y.url)&&(y.url="mailto:"+y.url)},m.prototype.onCompile=function(){},cu=m,cu}const ey=JSON.parse('["aaa","aarp","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac","academy","accenture","accountant","accountants","aco","actor","ad","ads","adult","ae","aeg","aero","aetna","af","afl","africa","ag","agakhan","agency","ai","aig","airbus","airforce","airtel","akdn","al","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","am","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","ao","aol","apartments","app","apple","aq","aquarelle","ar","arab","aramco","archi","army","arpa","art","arte","as","asda","asia","associates","at","athleta","attorney","au","auction","audi","audible","audio","auspost","author","auto","autos","aw","aws","ax","axa","az","azure","ba","baby","baidu","banamex","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bb","bbc","bbt","bbva","bcg","bcn","bd","be","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bf","bg","bh","bharti","bi","bible","bid","bike","bing","bingo","bio","biz","bj","black","blackfriday","blockbuster","blog","bloomberg","blue","bm","bms","bmw","bn","bnpparibas","bo","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","br","bradesco","bridgestone","broadway","broker","brother","brussels","bs","bt","build","builders","business","buy","buzz","bv","bw","by","bz","bzh","ca","cab","cafe","cal","call","calvinklein","cam","camera","camp","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","cat","catering","catholic","cba","cbn","cbre","cc","cd","center","ceo","cern","cf","cfa","cfd","cg","ch","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","ci","cipriani","circle","cisco","citadel","citi","citic","city","ck","cl","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","cm","cn","co","coach","codes","coffee","college","cologne","com","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cool","coop","corsica","country","coupon","coupons","courses","cpa","cr","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cu","cuisinella","cv","cw","cx","cy","cymru","cyou","cz","dad","dance","data","date","dating","datsun","day","dclk","dds","de","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dj","dk","dm","dnp","do","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dunlop","dupont","durban","dvag","dvr","dz","earth","eat","ec","eco","edeka","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","er","ericsson","erni","es","esq","estate","et","eu","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fi","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","fj","fk","flickr","flights","flir","florist","flowers","fly","fm","fo","foo","food","football","ford","forex","forsale","forum","foundation","fox","fr","free","fresenius","frl","frogans","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","ga","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gb","gbiz","gd","gdn","ge","gea","gent","genting","george","gf","gg","ggee","gh","gi","gift","gifts","gives","giving","gl","glass","gle","global","globo","gm","gmail","gmbh","gmo","gmx","gn","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","gov","gp","gq","gr","grainger","graphics","gratis","green","gripe","grocery","group","gs","gt","gu","gucci","guge","guide","guitars","guru","gw","gy","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hiphop","hisamitsu","hitachi","hiv","hk","hkt","hm","hn","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hotels","hotmail","house","how","hr","hsbc","ht","hu","hughes","hyatt","hyundai","ibm","icbc","ice","icu","id","ie","ieee","ifm","ikano","il","im","imamat","imdb","immo","immobilien","in","inc","industries","infiniti","info","ing","ink","institute","insurance","insure","int","international","intuit","investments","io","ipiranga","iq","ir","irish","is","ismaili","ist","istanbul","it","itau","itv","jaguar","java","jcb","je","jeep","jetzt","jewelry","jio","jll","jm","jmp","jnj","jo","jobs","joburg","jot","joy","jp","jpmorgan","jprs","juegos","juniper","kaufen","kddi","ke","kerryhotels","kerrylogistics","kerryproperties","kfh","kg","kh","ki","kia","kids","kim","kindle","kitchen","kiwi","km","kn","koeln","komatsu","kosher","kp","kpmg","kpn","kr","krd","kred","kuokgroup","kw","ky","kyoto","kz","la","lacaixa","lamborghini","lamer","lancaster","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lb","lc","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","li","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","link","lipsy","live","living","lk","llc","llp","loan","loans","locker","locus","lol","london","lotte","lotto","love","lpl","lplfinancial","lr","ls","lt","ltd","ltda","lu","lundbeck","luxe","luxury","lv","ly","ma","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","mattel","mba","mc","mckinsey","md","me","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","mg","mh","miami","microsoft","mil","mini","mint","mit","mitsubishi","mk","ml","mlb","mls","mm","mma","mn","mo","mobi","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","mp","mq","mr","ms","msd","mt","mtn","mtr","mu","museum","music","mv","mw","mx","my","mz","na","nab","nagoya","name","navy","nba","nc","ne","nec","net","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nf","nfl","ng","ngo","nhk","ni","nico","nike","nikon","ninja","nissan","nissay","nl","no","nokia","norton","now","nowruz","nowtv","np","nr","nra","nrw","ntt","nu","nyc","nz","obi","observer","office","okinawa","olayan","olayangroup","ollo","om","omega","one","ong","onl","online","ooo","open","oracle","orange","org","organic","origins","osaka","otsuka","ott","ovh","pa","page","panasonic","paris","pars","partners","parts","party","pay","pccw","pe","pet","pf","pfizer","pg","ph","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","pk","pl","place","play","playstation","plumbing","plus","pm","pn","pnc","pohl","poker","politie","porn","post","pr","pramerica","praxi","press","prime","pro","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","ps","pt","pub","pw","pwc","py","qa","qpon","quebec","quest","racing","radio","re","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","ro","rocks","rodeo","rogers","room","rs","rsvp","ru","rugby","ruhr","run","rw","rwe","ryukyu","sa","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sb","sbi","sbs","sc","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","sd","se","search","seat","secure","security","seek","select","sener","services","seven","sew","sex","sexy","sfr","sg","sh","shangrila","sharp","shell","shia","shiksha","shoes","shop","shopping","shouji","show","si","silk","sina","singles","site","sj","sk","ski","skin","sky","skype","sl","sling","sm","smart","smile","sn","sncf","so","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","sr","srl","ss","st","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","su","sucks","supplies","supply","support","surf","surgery","suzuki","sv","swatch","swiss","sx","sy","sydney","systems","sz","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tc","tci","td","tdk","team","tech","technology","tel","temasek","tennis","teva","tf","tg","th","thd","theater","theatre","tiaa","tickets","tienda","tips","tires","tirol","tj","tjmaxx","tjx","tk","tkmaxx","tl","tm","tmall","tn","to","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","tr","trade","trading","training","travel","travelers","travelersinsurance","trust","trv","tt","tube","tui","tunes","tushu","tv","tvs","tw","tz","ua","ubank","ubs","ug","uk","unicom","university","uno","uol","ups","us","uy","uz","va","vacations","vana","vanguard","vc","ve","vegas","ventures","verisign","vermögensberater","vermögensberatung","versicherung","vet","vg","vi","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vn","vodka","volvo","vote","voting","voto","voyage","vu","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","wf","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","ws","wtc","wtf","xbox","xerox","xihuan","xin","xxx","xyz","yachts","yahoo","yamaxun","yandex","ye","yodobashi","yoga","yokohama","you","youtube","yt","yun","za","zappos","zara","zero","zip","zm","zone","zuerich","zw","ελ","ευ","бг","бел","дети","ею","католик","ком","мкд","мон","москва","онлайн","орг","рус","рф","сайт","срб","укр","қаз","հայ","ישראל","קום","ابوظبي","ارامكو","الاردن","البحرين","الجزائر","السعودية","العليان","المغرب","امارات","ایران","بارت","بازار","بيتك","بھارت","تونس","سودان","سورية","شبكة","عراق","عرب","عمان","فلسطين","قطر","كاثوليك","كوم","مصر","مليسيا","موريتانيا","موقع","همراه","پاکستان","ڀارت","कॉम","नेट","भारत","भारतम्","भारोत","संगठन","বাংলা","ভারত","ভাৰত","ਭਾਰਤ","ભારત","ଭାରତ","இந்தியா","இலங்கை","சிங்கப்பூர்","భారత్","ಭಾರತ","ഭാരതം","ලංකා","คอม","ไทย","ລາວ","გე","みんな","アマゾン","クラウド","グーグル","コム","ストア","セール","ファッション","ポイント","世界","中信","中国","中國","中文网","亚马逊","企业","佛山","信息","健康","八卦","公司","公益","台湾","台灣","商城","商店","商标","嘉里","嘉里大酒店","在线","大拿","天主教","娱乐","家電","广东","微博","慈善","我爱你","手机","招聘","政务","政府","新加坡","新闻","时尚","書籍","机构","淡马锡","游戏","澳門","点看","移动","组织机构","网址","网店","网站","网络","联通","谷歌","购物","通販","集团","電訊盈科","飞利浦","食品","餐厅","香格里拉","香港","닷넷","닷컴","삼성","한국"]');var Zf;function ty(){if(Zf)return qi;Zf=1,Object.defineProperty(qi,"__esModule",{value:!0});var r=Jv(),i=d(r),u=ey,s=d(u);function d(h){return h&&h.__esModule?h:{default:h}}var c=new i.default;return c.tlds(s.default),qi.default=function(h){return c.match(h)},qi}var Qi={},Jf;function ny(){return Jf||(Jf=1,Object.defineProperty(Qi,"__esModule",{value:!0}),Qi.default=function(r){return r}),Qi}var ed;function ry(){if(ed)return Wi;ed=1,Object.defineProperty(Wi,"__esModule",{value:!0});var r=function(){function _(m,p){for(var y=0;y<p.length;y++){var g=p[y];g.enumerable=g.enumerable||!1,g.configurable=!0,"value"in g&&(g.writable=!0),Object.defineProperty(m,g.key,g)}}return function(m,p,y){return p&&_(m.prototype,p),y&&_(m,y),m}}(),i=Sr(),u=j(i),s=qv(),d=k(s),c=Qv(),h=k(c),v=ty(),S=k(v),N=ny(),b=k(N);function k(_){return _&&_.__esModule?_:{default:_}}function j(_){if(_&&_.__esModule)return _;var m={};if(_!=null)for(var p in _)Object.prototype.hasOwnProperty.call(_,p)&&(m[p]=_[p]);return m.default=_,m}function P(_,m){if(!(_ instanceof m))throw new TypeError("Cannot call a class as a function")}function O(_,m){if(!_)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return m&&(typeof m=="object"||typeof m=="function")?m:_}function C(_,m){if(typeof m!="function"&&m!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof m);_.prototype=Object.create(m&&m.prototype,{constructor:{value:_,enumerable:!1,writable:!0,configurable:!0}}),m&&(Object.setPrototypeOf?Object.setPrototypeOf(_,m):_.__proto__=m)}var D=function(_){C(m,_);function m(){return P(this,m),O(this,(m.__proto__||Object.getPrototypeOf(m)).apply(this,arguments))}return r(m,[{key:"parseString",value:function(y){var g=this;if(y==="")return y;var L=this.props.matchDecorator(y);if(!L)return y;var x=[],A=0;return L.forEach(function(B,V){B.index>A&&x.push(y.substring(A,B.index));var Q=g.props.hrefDecorator(B.url),G=g.props.textDecorator(B.text),W=g.props.componentDecorator(Q,G,V);x.push(W),A=B.lastIndex}),y.length>A&&x.push(y.substring(A)),x.length===1?x[0]:x}},{key:"parse",value:function(y){var g=this,L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return typeof y=="string"?this.parseString(y):u.isValidElement(y)&&y.type!=="a"&&y.type!=="button"?u.cloneElement(y,{key:L},this.parse(y.props.children)):Array.isArray(y)?y.map(function(x,A){return g.parse(x,A)}):y}},{key:"render",value:function(){return u.createElement(u.Fragment,null,this.parse(this.props.children))}}]),m}(u.Component);return D.defaultProps={componentDecorator:d.default,hrefDecorator:h.default,matchDecorator:S.default,textDecorator:b.default},Wi.default=D,Wi}var td;function oy(){if(td)return $i;td=1,Object.defineProperty($i,"__esModule",{value:!0});var r=ry(),i=u(r);function u(s){return s&&s.__esModule?s:{default:s}}return $i.default=i.default,$i}var iy=oy();const Xi=Er(iy);function rp({closeHandler:r,children:i}){const u=re(Zn),s=re(Gr),d=re(Ig),c=re(jd),[h,v]=$.useState(""),[S,N]=$.useState(!1),b=re(Jn),k=re(kr),j=re(Lg),P=Gn(),O=$.useRef(),[C,D]=$.useState(!1),[_,m]=$.useState(!0);let p;switch(u==null?void 0:u.type){case"mhlm":p={label:`Online License Manager (${u.emailAddress})`};break;case"nlm":p={label:`Network License Manager (${u.connectionString})`};break;case"existing_license":p={label:"Existing License"};break;default:p={label:"None"}}const y=re(Fd),g=s?E.jsxs("div",{className:"error-container alert alert-danger",children:[E.jsx("p",{children:E.jsx("strong",{children:"Error"})}),E.jsx(Xi,{children:E.jsx("div",{className:"error-text",children:E.jsx("pre",{style:{backgroundColor:"hsla(0,0%,100%,0)",border:"none",fontFamily:"inherit",fontSize:"15px"},children:s.message})})})]}):null,L=s&&s.logs!==null&&s.logs.length>0?E.jsxs("div",{className:"expand_collapse error-logs-container",children:[E.jsxs("h4",{className:`expand_trigger ${C?"expanded":"collapsed"}`,onClick:()=>D(!C),children:[E.jsx("span",{className:"icon-arrow-open-down"}),E.jsx("span",{className:"icon-arrow-open-right"}),"Error logs"]}),E.jsx("div",{id:"error-logs",className:`expand_target error-container alert alert-danger ${C?"expanded":"collapsed"}`,"aria-expanded":C,children:E.jsx(Xi,{children:E.jsx("div",{className:"error-msg",children:s.logs.join(`
|
|
61
|
+
.styles-module_tooltip__mnnfp{padding:8px 16px;border-radius:3px;font-size:90%;width:max-content}.styles-module_arrow__K0L3T{width:8px;height:8px}[class*='react-tooltip__place-top']>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*='react-tooltip__place-right']>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*='react-tooltip__place-bottom']>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*='react-tooltip__place-left']>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}`,type:"base"})});function tl({children:r,transparent:i=!1}){return E.jsx("div",{id:"overlay",style:{backgroundColor:i?"transparent":null},children:r})}tl.propTypes={transparent:be.bool,children:be.oneOfType([be.node,be.arrayOf(be.node)])};var nl="NOT_FOUND";function vg(r){var i;return{get:function(s){return i&&r(i.key,s)?i.value:nl},put:function(s,d){i={key:s,value:d}},getEntries:function(){return i?[i]:[]},clear:function(){i=void 0}}}function yg(r,i){var u=[];function s(v){var S=u.findIndex(function(b){return i(v,b.key)});if(S>-1){var N=u[S];return S>0&&(u.splice(S,1),u.unshift(N)),N.value}return nl}function d(v,S){s(v)===nl&&(u.unshift({key:v,value:S}),u.length>r&&u.pop())}function c(){return u}function h(){u=[]}return{get:s,put:d,getEntries:c,clear:h}}var wg=function(i,u){return i===u};function _g(r){return function(u,s){if(u===null||s===null||u.length!==s.length)return!1;for(var d=u.length,c=0;c<d;c++)if(!r(u[c],s[c]))return!1;return!0}}function xg(r,i){var u=typeof i=="object"?i:{equalityCheck:i},s=u.equalityCheck,d=s===void 0?wg:s,c=u.maxSize,h=c===void 0?1:c,v=u.resultEqualityCheck,S=_g(d),N=h===1?vg(S):yg(h,S);function b(){var k=N.get(arguments);if(k===nl){if(k=r.apply(null,arguments),v){var j=N.getEntries(),P=j.find(function(O){return v(O.value,k)});P&&(k=P.value)}N.put(arguments,k)}return k}return b.clearCache=function(){return N.clear()},b}function Eg(r){var i=Array.isArray(r[0])?r[0]:r;if(!i.every(function(s){return typeof s=="function"})){var u=i.map(function(s){return typeof s=="function"?"function "+(s.name||"unnamed")+"()":typeof s}).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+u+"]")}return i}function Sg(r){for(var i=arguments.length,u=new Array(i>1?i-1:0),s=1;s<i;s++)u[s-1]=arguments[s];var d=function(){for(var h=arguments.length,v=new Array(h),S=0;S<h;S++)v[S]=arguments[S];var N=0,b,k={memoizeOptions:void 0},j=v.pop();if(typeof j=="object"&&(k=j,j=v.pop()),typeof j!="function")throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof j+"]");var P=k,O=P.memoizeOptions,C=O===void 0?u:O,D=Array.isArray(C)?C:[C],_=Eg(v),m=r.apply(void 0,[function(){return N++,j.apply(null,arguments)}].concat(D)),p=r(function(){for(var g=[],L=_.length,x=0;x<L;x++)g.push(_[x].apply(null,arguments));return b=m.apply(null,g),b});return Object.assign(p,{resultFunc:j,memoizedResultFunc:m,dependencies:_,lastResult:function(){return b},recomputations:function(){return N},resetRecomputations:function(){return N=0}}),p};return d}var Le=Sg(xg);const Tg=1e3,kg=60,Nd="mwi-auth-token",Bf=10,bg=r=>r.tutorialHidden,Cg=r=>r.serverStatus,Tr=r=>r.matlab.status,Ng=r=>r.matlab.versionOnPath,Dg=r=>r.matlab.supportedVersions,zo=r=>r.envConfig,Rg=r=>r.serverStatus.wsEnv,Dd=r=>r.serverStatus.isSubmitting,Pg=r=>r.serverStatus.hasFetched,Ag=r=>r.serverStatus.isFetchingServerStatus,Zn=r=>r.serverStatus.licensingInfo,Og=r=>r.serverStatus.fetchFailCount,jg=r=>r.loadUrl,Gr=r=>r.error,Ig=r=>r.warnings,Jn=r=>r.authentication.enabled,Lg=r=>r.authentication.token,kr=r=>r.authentication.status===!0,Rd=r=>r.sessionStatus.isActiveClient,al=r=>r.sessionStatus.isConcurrencyEnabled,Mg=r=>r.sessionStatus.wasEverActive,Fg=r=>r.sessionStatus.clientId,Pd=r=>r.idleTimeoutDuration,zg=r=>r.matlab.busyStatus,Bg=Le(r=>r.triggerPosition,r=>r===null?void 0:r),cl=Le(zo,r=>r!==null),Bo=Le(Gr,r=>r!==null),Cu=Le(Rd,r=>!r),Ug=Le(Og,al,Cu,(r,i,u)=>i&&u?r>=1:r>=kg),fl=Le(Tr,r=>r==="up"),Ad=Le(Tr,r=>r==="starting"),Od=Le(Tr,r=>r==="stopping"),$g=Le(Tr,r=>r==="down"),jd=Le(Tr,Bo,Jn,kr,(r,i,u,s)=>r==="up"&&!i&&(!u||s)),Wg=Le(r=>r.overlayVisibility,fl,Bo,Jn,kr,(r,i,u,s,d)=>s&&!d||!i||r||u);Le(Cg,r=>r.fetchAbortController);const Vg=Le(Dd,Ag,al,Cu,(r,i,u,s)=>r||i||u&&s?null:Tg),Nu=Le(Zn,r=>Object.prototype.hasOwnProperty.call(r,"type")),Du=Le(Zn,Nu,(r,i)=>i&&r.type==="mhlm"),Hg=Le(Zn,Du,(r,i)=>i?r.emailAddress:""),Id=Le(Du,Zn,(r,i)=>r&&i.entitlements&&i.entitlements.length>0),Ld=Le(Zn,Id,(r,i)=>i&&r.entitlementId),qg=Le(Tr,r=>r==="starting"),Md=Le(Wg,Bo,(r,i)=>r||i),Qg=Le(Jn,kr,Bo,Gr,(r,i,u,s)=>!!(r&&!i&&u&&s.type==="InvalidTokenError")),Fd=Le(Tr,Bo,Gr,Jn,Qg,(r,i,u,s,d)=>{if(i&&u.statusCode===408)return{icon:"warning",alert:"warning",label:"Unknown"};if(i&&s&&d)return{icon:"warning",alert:"warning",label:"Invalid Token supplied"};switch(r){case"up":return{label:"Running",icon:"success",alert:"success"};case"starting":return{label:"Starting. This may take several minutes.",icon:"info-reverse",alert:"info",spinner:!0};case"stopping":return{label:"Stopping",icon:"info-reverse",alert:"info",spinner:!0};case"down":{const c={label:"Not running",icon:"info-reverse",alert:"info"};return i&&(c.icon="error",c.alert="danger"),c}default:throw new Error(`Unknown MATLAB status: "${r}".`)}}),Yg=Le(zg,r=>r==="busy"),zd=Le(Pd,r=>!!r),Kg=Le(zd,Pd,(r,i)=>r?i*1e3:void 0),Xg=Le(cl,zo,(r,i)=>r?i.browserTitle:"MATLAB"),dl=Le(cl,zo,(r,i)=>r?i.extension_name==="default_configuration_matlab_proxy"?i.extension_name_short_description:`${i.extension_name_short_description} - MATLAB Integration`:""),Gg=Le(cl,zo,(r,i)=>r?i.should_show_shutdown_button:!1),Bd="SET_TRIGGER_POSITION",Ud="SET_TUTORIAL_HIDDEN",$d="SET_OVERLAY_VISIBILITY",Wd="SET_CLIENT_ID",Vd="REQUEST_SERVER_STATUS",Ot="RECEIVE_SERVER_STATUS",Hd="REQUEST_SET_LICENSING",Zg="REQUEST_UPDATE_LICENSING",qd="REQUEST_SHUTDOWN_INTEGRATION",Ru="REQUEST_STOP_MATLAB",Pu="REQUEST_START_MATLAB",_n="RECEIVE_SET_LICENSING",Jg="RECEIVE_UPDATE_LICENSING",xn="RECEIVE_SHUTDOWN_INTEGRATION",En="RECEIVE_STOP_MATLAB",Sn="RECEIVE_START_MATLAB",Uo="RECEIVE_ERROR",ev="REQUEST_ENV_CONFIG",er="RECEIVE_ENV_CONFIG",tv="RECEIVE_CONCURRENCY_CHECK",Au="SET_AUTH_STATUS",Qd="SET_AUTH_TOKEN",nv="REQUEST_SERVER_INITIALIZATION",Yd="RECEIVE_SESSION_STATUS",Kd="WAS_EVER_ACTIVE";var Yi={exports:{}};function rv(r){throw new Error('Could not dynamically require "'+r+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Ki={exports:{}};const ov={},iv=Object.freeze(Object.defineProperty({__proto__:null,default:ov},Symbol.toStringTag,{value:"Module"})),lv=nd(iv);var sv=Ki.exports,Uf;function uv(){return Uf||(Uf=1,function(r,i){(function(u,s){r.exports=s()})(sv,function(){var u=u||function(s,d){var c;if(typeof window<"u"&&window.crypto&&(c=window.crypto),typeof self<"u"&&self.crypto&&(c=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(c=globalThis.crypto),!c&&typeof window<"u"&&window.msCrypto&&(c=window.msCrypto),!c&&typeof zs<"u"&&zs.crypto&&(c=zs.crypto),!c&&typeof rv=="function")try{c=lv}catch{}var h=function(){if(c){if(typeof c.getRandomValues=="function")try{return c.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof c.randomBytes=="function")try{return c.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},v=Object.create||function(){function m(){}return function(p){var y;return m.prototype=p,y=new m,m.prototype=null,y}}(),S={},N=S.lib={},b=N.Base=function(){return{extend:function(m){var p=v(this);return m&&p.mixIn(m),(!p.hasOwnProperty("init")||this.init===p.init)&&(p.init=function(){p.$super.init.apply(this,arguments)}),p.init.prototype=p,p.$super=this,p},create:function(){var m=this.extend();return m.init.apply(m,arguments),m},init:function(){},mixIn:function(m){for(var p in m)m.hasOwnProperty(p)&&(this[p]=m[p]);m.hasOwnProperty("toString")&&(this.toString=m.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),k=N.WordArray=b.extend({init:function(m,p){m=this.words=m||[],p!=d?this.sigBytes=p:this.sigBytes=m.length*4},toString:function(m){return(m||P).stringify(this)},concat:function(m){var p=this.words,y=m.words,g=this.sigBytes,L=m.sigBytes;if(this.clamp(),g%4)for(var x=0;x<L;x++){var A=y[x>>>2]>>>24-x%4*8&255;p[g+x>>>2]|=A<<24-(g+x)%4*8}else for(var B=0;B<L;B+=4)p[g+B>>>2]=y[B>>>2];return this.sigBytes+=L,this},clamp:function(){var m=this.words,p=this.sigBytes;m[p>>>2]&=4294967295<<32-p%4*8,m.length=s.ceil(p/4)},clone:function(){var m=b.clone.call(this);return m.words=this.words.slice(0),m},random:function(m){for(var p=[],y=0;y<m;y+=4)p.push(h());return new k.init(p,m)}}),j=S.enc={},P=j.Hex={stringify:function(m){for(var p=m.words,y=m.sigBytes,g=[],L=0;L<y;L++){var x=p[L>>>2]>>>24-L%4*8&255;g.push((x>>>4).toString(16)),g.push((x&15).toString(16))}return g.join("")},parse:function(m){for(var p=m.length,y=[],g=0;g<p;g+=2)y[g>>>3]|=parseInt(m.substr(g,2),16)<<24-g%8*4;return new k.init(y,p/2)}},O=j.Latin1={stringify:function(m){for(var p=m.words,y=m.sigBytes,g=[],L=0;L<y;L++){var x=p[L>>>2]>>>24-L%4*8&255;g.push(String.fromCharCode(x))}return g.join("")},parse:function(m){for(var p=m.length,y=[],g=0;g<p;g++)y[g>>>2]|=(m.charCodeAt(g)&255)<<24-g%4*8;return new k.init(y,p)}},C=j.Utf8={stringify:function(m){try{return decodeURIComponent(escape(O.stringify(m)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(m){return O.parse(unescape(encodeURIComponent(m)))}},D=N.BufferedBlockAlgorithm=b.extend({reset:function(){this._data=new k.init,this._nDataBytes=0},_append:function(m){typeof m=="string"&&(m=C.parse(m)),this._data.concat(m),this._nDataBytes+=m.sigBytes},_process:function(m){var p,y=this._data,g=y.words,L=y.sigBytes,x=this.blockSize,A=x*4,B=L/A;m?B=s.ceil(B):B=s.max((B|0)-this._minBufferSize,0);var V=B*x,Q=s.min(V*4,L);if(V){for(var G=0;G<V;G+=x)this._doProcessBlock(g,G);p=g.splice(0,V),y.sigBytes-=Q}return new k.init(p,Q)},clone:function(){var m=b.clone.call(this);return m._data=this._data.clone(),m},_minBufferSize:0});N.Hasher=D.extend({cfg:b.extend(),init:function(m){this.cfg=this.cfg.extend(m),this.reset()},reset:function(){D.reset.call(this),this._doReset()},update:function(m){return this._append(m),this._process(),this},finalize:function(m){m&&this._append(m);var p=this._doFinalize();return p},blockSize:16,_createHelper:function(m){return function(p,y){return new m.init(y).finalize(p)}},_createHmacHelper:function(m){return function(p,y){return new _.HMAC.init(m,y).finalize(p)}}});var _=S.algo={};return S}(Math);return u})}(Ki)),Ki.exports}var av=Yi.exports,$f;function cv(){return $f||($f=1,function(r,i){(function(u,s){r.exports=s(uv())})(av,function(u){return function(s){var d=u,c=d.lib,h=c.WordArray,v=c.Hasher,S=d.algo,N=[],b=[];(function(){function P(_){for(var m=s.sqrt(_),p=2;p<=m;p++)if(!(_%p))return!1;return!0}function O(_){return(_-(_|0))*4294967296|0}for(var C=2,D=0;D<64;)P(C)&&(D<8&&(N[D]=O(s.pow(C,1/2))),b[D]=O(s.pow(C,1/3)),D++),C++})();var k=[],j=S.SHA256=v.extend({_doReset:function(){this._hash=new h.init(N.slice(0))},_doProcessBlock:function(P,O){for(var C=this._hash.words,D=C[0],_=C[1],m=C[2],p=C[3],y=C[4],g=C[5],L=C[6],x=C[7],A=0;A<64;A++){if(A<16)k[A]=P[O+A]|0;else{var B=k[A-15],V=(B<<25|B>>>7)^(B<<14|B>>>18)^B>>>3,Q=k[A-2],G=(Q<<15|Q>>>17)^(Q<<13|Q>>>19)^Q>>>10;k[A]=V+k[A-7]+G+k[A-16]}var W=y&g^~y&L,ee=D&_^D&m^_&m,me=(D<<30|D>>>2)^(D<<19|D>>>13)^(D<<10|D>>>22),Ee=(y<<26|y>>>6)^(y<<21|y>>>11)^(y<<7|y>>>25),pe=x+Ee+W+b[A]+k[A],ge=me+ee;x=L,L=g,g=y,y=p+pe|0,p=m,m=_,_=D,D=pe+ge|0}C[0]=C[0]+D|0,C[1]=C[1]+_|0,C[2]=C[2]+m|0,C[3]=C[3]+p|0,C[4]=C[4]+y|0,C[5]=C[5]+g|0,C[6]=C[6]+L|0,C[7]=C[7]+x|0},_doFinalize:function(){var P=this._data,O=P.words,C=this._nDataBytes*8,D=P.sigBytes*8;return O[D>>>5]|=128<<24-D%32,O[(D+64>>>9<<4)+14]=s.floor(C/4294967296),O[(D+64>>>9<<4)+15]=C,P.sigBytes=O.length*4,this._process(),this._hash},clone:function(){var P=v.clone.call(this);return P._hash=this._hash.clone(),P}});d.SHA256=v._createHelper(j),d.HmacSHA256=v._createHmacHelper(j)}(Math),u.SHA256})}(Yi)),Yi.exports}var fv=cv();const dv=Er(fv);function pv(r){return{type:Au,authentication:r}}function mv(r){return{type:Qd,authentication:r}}function ru(r,i){return{type:Bd,x:r,y:i}}function hv(r){return{type:Ud,hidden:r}}function rl(r){return{type:$d,visibility:r}}function gv(r){return{type:Wd,clientId:r}}function vv(){return{type:Vd}}function yv(){return{type:Kd}}function wv(r){return function(i,u){return i({type:Ot,status:r,previousMatlabPending:qg(u())})}}function _v(r){return function(i){return i({type:Yd,status:r})}}function xv(){return{type:ev}}function Ev(r){return{type:er,config:r}}function Xd(){return{type:Hd}}function Gd(r){return{type:_n,status:r}}function Sv(){return{type:Zg}}function Tv(r){return{type:Jg,status:r}}function kv(){return{type:qd}}function bv(r){return{type:xn,status:r,loadUrl:"../"}}function Cv(){return{type:Ru,status:"stopping"}}function Nv(r){return{type:En,status:r}}function Dv(){return{type:Pu,status:"starting"}}function Rv(r){return{type:Sn,status:r}}function Wf(r,i){return{type:Uo,error:r,statusCode:i}}async function rn(r,i,u={},s=1e4){const d=new AbortController,c=setTimeout(()=>d.abort(),s);try{const h=await fetch(i,{...u,signal:d.signal});return clearTimeout(c),h}catch(h){h.name==="AbortError"||h.name==="TypeError"?r(Wf("HTTP Error 408 - Request Timeout. Check your internet connection and verify that the server is running.",408)):r(Wf("Communication with server failed.",500))}}function ou(r=!1){return async function(i,u){const s=al(u()),d=Jn(u()),c=kr(u()),v=Fg(u());i(vv());let S="./get_status";if((!d||c)&&s&&(S=`${S}?IS_DESKTOP=TRUE`,s&&v)){const k=new URLSearchParams;k.append("MWI_CLIENT_ID",encodeURIComponent(v)),r&&k.append("TRANSFER_SESSION",encodeURIComponent(r)),S=S+"&"+k.toString()}const b=await(await rn(i,S,{},1e4)).json();i(wv(b)),v==null&&b.clientId&&i(gv(b.clientId)),"isActiveClient"in b&&(i(_v(b)),b.isActiveClient===!0&&i(yv()))}}function Pv(){return async function(r){r(xv());const u=await(await rn(r,"./get_env_config",{},1e4)).json();r(Ev(u))}}function Zd(r){return async function(i){const u=dv(r),s={method:"POST",headers:{[Nd]:u}},c=await(await rn(i,"./authenticate",s,15e3)).json();i(pv(c))}}function Av(){return async function(r){const s=await(await rn(r,"./get_auth_token",{method:"GET"},1e4)).json();r(mv(s))}}function ol(r){return async function(i){const u={method:"PUT",mode:"same-origin",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)};i(Xd());const d=await(await rn(i,"./set_licensing_info",u,15e3)).json();i(Gd(d))}}function Ov(r){return async function(i){const u={method:"PUT",mode:"same-origin",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)};i(Sv());const d=await(await rn(i,"./update_entitlement",u,1500)).json();i(Tv(d))}}function jv(){return async function(r){const i={method:"DELETE",mode:"same-origin",cache:"no-cache",credentials:"same-origin"};r(Xd());const s=await(await rn(r,"./set_licensing_info",i,15e3)).json();r(Gd(s))}}function Jd(){return async function(r){const i={method:"DELETE",mode:"same-origin",cache:"no-cache",credentials:"same-origin"};r(kv());const s=await(await rn(r,"./shutdown_integration",i,15e3)).json();r(bv(s))}}function Iv(){return async function(r){const i={method:"DELETE",mode:"same-origin",cache:"no-cache",credentials:"same-origin"};r(Cv());const s=await(await rn(r,"./stop_matlab",i,3e4)).json();r(Nv(s))}}function Lv(){return async function(r){const i={method:"PUT",mode:"same-origin",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({})};r(Dv());const s=await(await rn(r,"./start_matlab",i,15e3)).json();r(Rv(s))}}function Mv(){const r=Gn(),i=re(Bg),u=re(dl),[s,d]=$.useState(!1),c=$.useRef(),h=`Open the ${u} settings`;$.useEffect(()=>{const _=new IntersectionObserver(([m])=>{m.isIntersecting||r(ru(window.innerWidth/2+27,0))});return _.observe(c.current),()=>{_.disconnect()}},[r]);const v=re(Md),S=$.useCallback(()=>r(rl(!v)),[v,r]),N=re(bg),b=re(Fd),k=$.useCallback((_,m)=>{d(!0),r(ru(m.x,m.y))},[r,d]),j=$.useCallback((_,m)=>{d(!1),r(ru(m.x,m.y))},[r,d]),P=s?E.jsx(tl,{transparent:!0}):null,O=()=>{r(hv(!0))},C=N?null:E.jsxs("div",{id:"trigger-tutorial",className:"trigger-tutorial modal-content",children:[E.jsxs("p",{children:["To control the MATLAB session (for example to restart or sign out), click the ",E.jsx("span",{className:"icon-custom-trigger icon trigger-tutorial-icon",title:"tools icon"})," icon."]}),E.jsx("p",{children:"The color of the badge shows the MATLAB status."}),E.jsxs("p",{children:["To position this widget anywhere on screen, click and drag the ",E.jsx("span",{className:"drag-handle icon",title:"grab handle icon"})," icon."]}),E.jsx("button",{className:"btn btn_color_blue pull-right","data-testid":"tutorialCloseBtn",onClick:O,children:"Close"})]}),D=N?E.jsx(Cd,{id:"trigger-button-tooltip",place:"bottom",type:"info",effect:"solid"}):null;return E.jsxs(E.Fragment,{children:[P,E.jsx(Th,{position:i,onDrag:k,onStop:j,handle:".card-body",bounds:"parent",children:E.jsxs("div",{ref:c,className:`card alert-${b.alert}`,"data-testid":"overlayTrigger",children:[E.jsxs("div",{className:"card-body","data-testid":"cardBody",children:[E.jsx("span",{id:"drag-handle",className:"drag-handle"}),E.jsx("button",{type:"button",className:"trigger-btn",onClick:S,onMouseDown:_=>_.stopPropagation(),"aria-label":"Menu","data-tooltip-id":"trigger-button-tooltip","data-tooltip-content":h,"data-tooltip-variant":"info",children:E.jsx("span",{className:"icon-custom-trigger"})})]}),C]})}),D]})}function ep({url:r,iFrameRef:i,shouldListenForEvents:u,handleUserInteraction:s}){const d=re(fl);return $.useEffect(()=>{const c=i.current,h=["click","mousemove","keydown"];return c&&u&&(console.log("Adding event handlers to IFrame"),h.forEach(v=>{c.contentWindow.addEventListener(v,s,!1)})),()=>{c&&u&&(console.log("Removing event handlers from IFrame"),h.forEach(v=>{c.contentWindow.removeEventListener(v,s,!1)}))}},[u,d,i,s]),E.jsx("div",{id:"MatlabJsd",children:E.jsx("iframe",{ref:i,title:"MATLAB JSD",src:r,allowFullScreen:!0})})}ep.propTypes={url:be.string.isRequired,iFrameRef:be.object.isRequired,shouldListenForEvents:be.bool.isRequired,handleUserInteraction:be.func.isRequired};function Fv(r){const u={event:"init",clientTransactionId:(Math.random()+"").substr(2),transactionId:"",release:"",platform:"",clientString:"desktop-jupyter",clientID:"",locale:"",profileTier:"",showCreateAccount:!1,showRememberMe:!1,showLicenseField:!1,licenseNo:"",cachedUsername:r,cachedRememberMe:!1};document.getElementById("loginframe").contentWindow.postMessage(JSON.stringify(u),"*")}function zv(r,i,u){const s={event:"load",clientTransactionId:r,transactionId:i,release:"",platform:"web",clientString:"desktop-jupyter",clientId:"",sourceId:u,profileTier:"MINIMUM",showCreateAccount:!1,showRememberMe:!1,showLicenseField:!1,entitlementId:"",showPrivacyPolicy:!0,contextualText:"",legalText:"",cachedIdentifier:"",cachedRememberMe:"",token:"",unauthorized:!1};document.getElementById("loginframe").contentWindow.postMessage(JSON.stringify(s),"*")}function tp({mhlmLicensingInfo:r=null}){const i=Gn(),u=re(Hg),s=re(Rg),d=re(Ng),c=re(Dg),[h,v]=$.useState(!1),[S,N]=$.useState(r),[b,k]=$.useState(c[c.length-1]),j=$.useMemo(()=>{let p="login";return s.includes("integ")&&(p=`${p}-${s}`),`https://${p}.mathworks.com`},[s]),P=$.useState(Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15))[0];$.useEffect(()=>{const p=y=>{if(y.origin===j){const g=JSON.parse(y.data);if(g.event==="nonce")zv(g.clientTransactionId,g.transactionId,P);else if(g.event==="login"){const L={type:"mhlm",token:g.token,profileId:g.profileId,emailAddress:g.emailAddress,sourceId:P};d?i(ol({...L,matlabVersion:d})):N(L)}}};return window.addEventListener("message",p),()=>{window.removeEventListener("message",p)}},[i,P,j,S,d]),$.useEffect(()=>{h===!0&&Fv(u)},[h,u]);const O=()=>v(!0),C=`${j}/embedded-login/v2/login.html`,D=E.jsx("div",{id:"MHLM",children:E.jsx("iframe",{id:"loginframe",title:"MathWorks Embedded Login",type:"text/html",src:C,onLoad:O,children:"Sorry your browser does not support inline frames."})}),_=p=>{p.preventDefault(),i(ol({...S,matlabVersion:b}))},m=E.jsx("div",{id:"ChooseMatlabVersion",children:E.jsx("form",{onSubmit:_,children:E.jsxs("div",{className:"form-group",children:[E.jsxs("p",{children:[E.jsx("b",{children:"Note"}),": The version of MATLAB could not be determined. Choose the version of MATLAB you are attempting to start."]}),E.jsx("br",{}),E.jsx("select",{value:b,onChange:p=>k(p.target.value),children:c.map((p,y)=>E.jsx("option",{value:p,children:p},y))}),E.jsx("br",{}),E.jsx("br",{}),E.jsx("input",{type:"submit",id:"startMatlabBtn",value:"Start MATLAB",className:"btn btn_color_blue"})]})})});return S&&!d?m:D}tp.propTypes={mhlmLicensingInfo:be.object};const Bv=/^[0-9]+[@](\w|\_|\-|\.)+/;function Uv(r){const i=r.split(/:|;|,/);for(const u of i)if(!Bv.test(u))return!1;return!0}function $v(){const r=Gn(),[i,u]=$.useState(""),[s,d]=$.useState(!1),c=Uv(i);function h(v){v.preventDefault(),r(ol({type:"nlm",connectionString:i}))}return E.jsx("div",{id:"NLM",children:E.jsxs("form",{onSubmit:h,children:[E.jsxs("div",{className:`form-group has-feedback ${s?c?"has-success":"has-error":""}`,children:[E.jsx("label",{htmlFor:"nlm-connection-string",children:"License Server Address"}),E.jsx("input",{id:"nlm-connection-string",type:"text",required:!0,placeholder:"port@hostname",className:"form-control","aria-invalid":!c,value:i,onChange:v=>{d(!0),u(v.target.value)}}),E.jsx("span",{className:"glyphicon form-control-feedback glyphicon-remove"}),E.jsx("span",{className:"glyphicon form-control-feedback glyphicon-ok"})]}),E.jsx("input",{type:"submit",id:"submit",value:"Submit",className:"btn btn_color_blue",disabled:!c})]})})}function Wv(){const r=Gn();function i(u){u.preventDefault(),r(ol({type:"existing_license"}))}return E.jsx("div",{id:"ExistingLicense",children:E.jsx("form",{onSubmit:i,children:E.jsxs("div",{className:"form-group",children:[E.jsxs("p",{children:[E.jsx("b",{children:"Note"}),": Choose this option if you already have an activated MATLAB license. This option allows you to run MATLAB on your host machine without providing additional licensing information."]}),E.jsx("br",{}),E.jsx("input",{type:"submit",id:"submit",value:"Start MATLAB",className:"btn btn_color_blue"})]})})})}function Vv(){const[r,i]=$.useState("mhlm"),u=k=>{k.preventDefault(),i("mhlm")},s=k=>{k.preventDefault(),i("nlm")},d=k=>{k.preventDefault(),i("existingLicense")},c=r==="mhlm"?"active":"",h=r==="mhlm"?"true":"false",v=r==="nlm"?"active":"",S=r==="nlm"?"true":"false",N=r==="existingLicense"?"active":"",b=r==="existingLicense"?"true":"false";return E.jsx("div",{className:"modal show",id:"setup-dialog",tabIndex:"-1",role:"dialog","aria-labelledby":"setup-dialog-title",children:E.jsx("div",{className:"modal-dialog modal-dialog-centered",role:"document",children:E.jsx("div",{className:"modal-content",children:E.jsx("div",{className:"modal-body",children:E.jsxs("div",{className:"tab-container",children:[E.jsxs("ul",{id:"setup-tabs",className:"nav nav-tabs",role:"tablist",children:[E.jsx("li",{role:"presentation",className:c,children:E.jsx("a",{href:"#mhlm",id:"mhlm-tab",onClick:u,role:"tab","aria-controls":"mhlm","aria-expanded":h,children:"Online License Manager"})}),E.jsx("li",{role:"presentation",className:v,children:E.jsx("a",{href:"#nlm",id:"nlm-tab",onClick:s,role:"tab","aria-controls":"nlm","aria-expanded":S,children:"Network License Manager"})}),E.jsx("li",{role:"presentation",className:N,children:E.jsx("a",{href:"#existingLicense",id:"existingLicense-tab",onClick:d,role:"tab","aria-controls":"existingLicense","aria-expanded":b,children:"Existing License"})})]}),E.jsxs("div",{id:"setup-tabs-content",className:"tab-content",children:[E.jsx("div",{role:"tabpanel",className:`tab-pane ${c}`,id:"mhlm","aria-labelledby":"mhlm-tab",children:E.jsx(tp,{})}),E.jsx("div",{role:"tabpanel",className:`tab-pane ${v}`,id:"nlm","aria-labelledby":"nlm-tab",children:E.jsx($v,{})}),E.jsx("div",{role:"tabpanel",className:`tab-pane ${N}`,id:"existingLicense","aria-labelledby":"existingLicense-tab",children:E.jsx(Wv,{})}),E.jsx("div",{children:E.jsxs("p",{id:"LicensingGathererNote",children:["For more details, see ",E.jsx("a",{href:"https://github.com/mathworks/matlab-proxy/blob/main/MATLAB-Licensing-Info.md",target:"_blank",rel:"noopener noreferrer",children:"MATLAB Licensing information"})]})})]})]})})})})})}const Hv={"sign-out":["NetworkLicensingError","EntitlementError","UIVisibleFatalError"],restart:["OnlineLicensingError"]};function np({callback:r}){const i=$.useRef(null),u=re(Dd),s=re(Nu),d=re(Ad),c=re(fl),h=re(Od),v=re($g),S=re(Gr),N=re(Jn),b=re(kr),k=re(Zn),j=s&&!u,P=re(Du),O=re(Ld),C=re(Gg);let D,_;switch(k==null?void 0:k.type){case"mhlm":D={label:"Sign Out",dataTip:"Sign out of MATLAB"},_="Are you sure you want to sign out of MATLAB?";break;case"nlm":D={label:"Remove License Server Address",dataTip:"Remove the network license manager server address"},_="Are you sure you want to remove the network license manager server address?";break;case"existing_license":D={label:"Stop using Existing License",dataTip:"Stop using existing license"},_="Are you sure you want to stop using an Existing License?";break;default:D={label:"None",dataTip:"None"},_=null}const m={START:{type:"confirmation",message:`Are you sure you want to ${c?"re":""}start MATLAB?`,callback:Lv},STOP:{type:"confirmation",message:"Are you sure you want to stop MATLAB?",callback:Iv},SHUTDOWN:{type:"confirmation",message:"Are you sure you want to shut down MATLAB and MATLAB Proxy?",callback:Jd},SIGN_OUT:{type:"confirmation",message:_,callback:jv},HELP:{type:"help"}};function p(y){const g="btn companion_btn ";if(S){if((Hv[y]||[]).includes(S.type))return g+"btn_color_blue"}else if(y==="start"&&N&&!b)return g+"btn_color_blue";return g+"btn_color_mediumgray"}return E.jsxs("div",{id:"controls",className:"labels-on-top",children:[E.jsxs("button",{id:"startMatlab","data-testid":"startMatlabBtn",className:p(c?"restart":"start"),onClick:()=>r(m.START),disabled:!s||d||h||N&&!b||P&&!O,"data-tooltip-id":"control-button-tooltip","data-tooltip-content":`${c?"Restart":"Start"} MATLAB`,"data-tooltip-variant":"info",children:[E.jsx("span",{className:`icon-custom-${c?"re":""}start`}),E.jsx("span",{className:"btn-label",children:`${c?"Restart":"Start"} MATLAB`})]}),E.jsxs("button",{id:"stopMatlab","data-testid":"stopMatlabBtn",className:p("stop"),onClick:()=>r(m.STOP),disabled:h||v||N&&!b,"data-tooltip-id":"control-button-tooltip","data-tooltip-content":"Stop MATLAB","data-tooltip-variant":"info",children:[E.jsx("span",{className:"icon-custom-stop"}),E.jsx("span",{className:"btn-label",children:"Stop MATLAB"})]}),E.jsxs("button",{id:"unsetLicensing","data-testid":"unsetLicensingBtn",className:p("sign-out"),onClick:()=>r(m.SIGN_OUT),disabled:!j||N&&!b,"data-tooltip-id":"control-button-tooltip","data-tooltip-content":D.dataTip,"data-tooltip-variant":"info",children:[E.jsx("span",{className:"icon-custom-sign-out"}),E.jsx("span",{className:"btn-label",children:D.label})]}),C&&E.jsxs("button",{id:"shutdownMatlabandMatlabProxy","data-testid":"shutdownBtn",className:p("shutdown"),onClick:()=>r(m.SHUTDOWN),disabled:!j||N&&!b,"data-tooltip-id":"control-button-tooltip","data-tooltip-content":"Stop MATLAB and MATLAB Proxy","data-tooltip-variant":"info",children:[E.jsx("span",{className:"icon-custom-shutdown"}),E.jsx("span",{className:"btn-label",children:"Shut Down"})]}),E.jsxs("a",{id:"feedback","data-testid":"feedbackLink",className:"btn btn_color_mediumgray companion_btn",href:"https://github.com/mathworks/matlab-proxy/issues/new/choose",target:"_blank",rel:"noreferrer","data-tooltip-id":"control-button-tooltip","data-tooltip-content":"Provide feedback (opens matlab-proxy repository on github.com in a new tab)","data-tooltip-variant":"info",children:[E.jsx("span",{className:"icon-custom-feedback"}),E.jsx("span",{className:"btn-label",children:"Feedback"})]}),E.jsxs("button",{id:"Help","data-testid":"helpBtn",className:"btn btn_color_mediumgray companion_btn",onClick:()=>r(m.HELP),"data-tooltip-id":"control-button-tooltip","data-tooltip-content":"See a description of the buttons","data-tooltip-variant":"info",children:[E.jsx("span",{className:"icon-custom-help"}),E.jsx("span",{className:"btn-label",children:"Help"})]}),E.jsx(Cd,{id:"control-button-tooltip",ref:i,place:"top",type:"info",effect:"solid"})]})}np.propTypes={confirmHandler:be.func,callback:be.func.isRequired};var $i={},Wi={},Vi={},Vf;function qv(){if(Vf)return Vi;Vf=1,Object.defineProperty(Vi,"__esModule",{value:!0});var r=Sr(),i=u(r);function u(s){if(s&&s.__esModule)return s;var d={};if(s!=null)for(var c in s)Object.prototype.hasOwnProperty.call(s,c)&&(d[c]=s[c]);return d.default=s,d}return Vi.default=function(s,d,c){return i.createElement("a",{href:s,key:c},d)},Vi}var Hi={},Hf;function Qv(){return Hf||(Hf=1,Object.defineProperty(Hi,"__esModule",{value:!0}),Hi.default=function(r){return r}),Hi}var qi={},iu,qf;function Yv(){return qf||(qf=1,iu=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/),iu}var lu,Qf;function Kv(){return Qf||(Qf=1,lu=/[\0-\x1F\x7F-\x9F]/),lu}var su,Yf;function Xv(){return Yf||(Yf=1,su=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/),su}var uu,Kf;function Gv(){return Kf||(Kf=1,uu=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/),uu}var au,Xf;function Zv(){return Xf||(Xf=1,au=function(r){var i={};i.src_Any=Yv().source,i.src_Cc=Kv().source,i.src_Z=Xv().source,i.src_P=Gv().source,i.src_ZPCc=[i.src_Z,i.src_P,i.src_Cc].join("|"),i.src_ZCc=[i.src_Z,i.src_Cc].join("|");var u="[><|]";return i.src_pseudo_letter="(?:(?!"+u+"|"+i.src_ZPCc+")"+i.src_Any+")",i.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",i.src_auth="(?:(?:(?!"+i.src_ZCc+"|[@/\\[\\]()]).)+@)?",i.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",i.src_host_terminator="(?=$|"+u+"|"+i.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+i.src_ZPCc+"))",i.src_path="(?:[/?#](?:(?!"+i.src_ZCc+"|"+u+`|[()[\\]{}.,"'?!\\-]).|\\[(?:(?!`+i.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+i.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+i.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+i.src_ZCc+`|["]).)+\\"|\\'(?:(?!`+i.src_ZCc+"|[']).)+\\'|\\'(?="+i.src_pseudo_letter+"|[-]).|\\.{2,4}[a-zA-Z0-9%/]|\\.(?!"+i.src_ZCc+"|[.]).|"+(r&&r["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+"\\,(?!"+i.src_ZCc+").|\\!(?!"+i.src_ZCc+"|[!]).|\\?(?!"+i.src_ZCc+"|[?]).)+|\\/)?",i.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',i.src_xn="xn--[a-z0-9\\-]{1,59}",i.src_domain_root="(?:"+i.src_xn+"|"+i.src_pseudo_letter+"{1,63})",i.src_domain="(?:"+i.src_xn+"|(?:"+i.src_pseudo_letter+")|(?:"+i.src_pseudo_letter+"(?:-|"+i.src_pseudo_letter+"){0,61}"+i.src_pseudo_letter+"))",i.src_host="(?:(?:(?:(?:"+i.src_domain+")\\.)*"+i.src_domain+"))",i.tpl_host_fuzzy="(?:"+i.src_ip4+"|(?:(?:(?:"+i.src_domain+")\\.)+(?:%TLDS%)))",i.tpl_host_no_ip_fuzzy="(?:(?:(?:"+i.src_domain+")\\.)+(?:%TLDS%))",i.src_host_strict=i.src_host+i.src_host_terminator,i.tpl_host_fuzzy_strict=i.tpl_host_fuzzy+i.src_host_terminator,i.src_host_port_strict=i.src_host+i.src_port+i.src_host_terminator,i.tpl_host_port_fuzzy_strict=i.tpl_host_fuzzy+i.src_port+i.src_host_terminator,i.tpl_host_port_no_ip_fuzzy_strict=i.tpl_host_no_ip_fuzzy+i.src_port+i.src_host_terminator,i.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+i.src_ZPCc+"|>|$))",i.tpl_email_fuzzy="(^|"+u+'|"|\\(|'+i.src_ZCc+")("+i.src_email_name+"@"+i.tpl_host_fuzzy_strict+")",i.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+i.src_ZPCc+"))((?![$+<=>^`||])"+i.tpl_host_port_fuzzy_strict+i.src_path+")",i.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+i.src_ZPCc+"))((?![$+<=>^`||])"+i.tpl_host_port_no_ip_fuzzy_strict+i.src_path+")",i}),au}var cu,Gf;function Jv(){if(Gf)return cu;Gf=1;function r(p){var y=Array.prototype.slice.call(arguments,1);return y.forEach(function(g){g&&Object.keys(g).forEach(function(L){p[L]=g[L]})}),p}function i(p){return Object.prototype.toString.call(p)}function u(p){return i(p)==="[object String]"}function s(p){return i(p)==="[object Object]"}function d(p){return i(p)==="[object RegExp]"}function c(p){return i(p)==="[object Function]"}function h(p){return p.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var v={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function S(p){return Object.keys(p||{}).reduce(function(y,g){return y||v.hasOwnProperty(g)},!1)}var N={"http:":{validate:function(p,y,g){var L=p.slice(y);return g.re.http||(g.re.http=new RegExp("^\\/\\/"+g.re.src_auth+g.re.src_host_port_strict+g.re.src_path,"i")),g.re.http.test(L)?L.match(g.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(p,y,g){var L=p.slice(y);return g.re.no_http||(g.re.no_http=new RegExp("^"+g.re.src_auth+"(?:localhost|(?:(?:"+g.re.src_domain+")\\.)+"+g.re.src_domain_root+")"+g.re.src_port+g.re.src_host_terminator+g.re.src_path,"i")),g.re.no_http.test(L)?y>=3&&p[y-3]===":"||y>=3&&p[y-3]==="/"?0:L.match(g.re.no_http)[0].length:0}},"mailto:":{validate:function(p,y,g){var L=p.slice(y);return g.re.mailto||(g.re.mailto=new RegExp("^"+g.re.src_email_name+"@"+g.re.src_host_strict,"i")),g.re.mailto.test(L)?L.match(g.re.mailto)[0].length:0}}},b="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",k="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function j(p){p.__index__=-1,p.__text_cache__=""}function P(p){return function(y,g){var L=y.slice(g);return p.test(L)?L.match(p)[0].length:0}}function O(){return function(p,y){y.normalize(p)}}function C(p){var y=p.re=Zv()(p.__opts__),g=p.__tlds__.slice();p.onCompile(),p.__tlds_replaced__||g.push(b),g.push(y.src_xn),y.src_tlds=g.join("|");function L(V){return V.replace("%TLDS%",y.src_tlds)}y.email_fuzzy=RegExp(L(y.tpl_email_fuzzy),"i"),y.link_fuzzy=RegExp(L(y.tpl_link_fuzzy),"i"),y.link_no_ip_fuzzy=RegExp(L(y.tpl_link_no_ip_fuzzy),"i"),y.host_fuzzy_test=RegExp(L(y.tpl_host_fuzzy_test),"i");var x=[];p.__compiled__={};function A(V,Q){throw new Error('(LinkifyIt) Invalid schema "'+V+'": '+Q)}Object.keys(p.__schemas__).forEach(function(V){var Q=p.__schemas__[V];if(Q!==null){var G={validate:null,link:null};if(p.__compiled__[V]=G,s(Q)){d(Q.validate)?G.validate=P(Q.validate):c(Q.validate)?G.validate=Q.validate:A(V,Q),c(Q.normalize)?G.normalize=Q.normalize:Q.normalize?A(V,Q):G.normalize=O();return}if(u(Q)){x.push(V);return}A(V,Q)}}),x.forEach(function(V){p.__compiled__[p.__schemas__[V]]&&(p.__compiled__[V].validate=p.__compiled__[p.__schemas__[V]].validate,p.__compiled__[V].normalize=p.__compiled__[p.__schemas__[V]].normalize)}),p.__compiled__[""]={validate:null,normalize:O()};var B=Object.keys(p.__compiled__).filter(function(V){return V.length>0&&p.__compiled__[V]}).map(h).join("|");p.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+y.src_ZPCc+"))("+B+")","i"),p.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+y.src_ZPCc+"))("+B+")","ig"),p.re.pretest=RegExp("("+p.re.schema_test.source+")|("+p.re.host_fuzzy_test.source+")|@","i"),j(p)}function D(p,y){var g=p.__index__,L=p.__last_index__,x=p.__text_cache__.slice(g,L);this.schema=p.__schema__.toLowerCase(),this.index=g+y,this.lastIndex=L+y,this.raw=x,this.text=x,this.url=x}function _(p,y){var g=new D(p,y);return p.__compiled__[g.schema].normalize(g,p),g}function m(p,y){if(!(this instanceof m))return new m(p,y);y||S(p)&&(y=p,p={}),this.__opts__=r({},v,y),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=r({},N,p),this.__compiled__={},this.__tlds__=k,this.__tlds_replaced__=!1,this.re={},C(this)}return m.prototype.add=function(y,g){return this.__schemas__[y]=g,C(this),this},m.prototype.set=function(y){return this.__opts__=r(this.__opts__,y),this},m.prototype.test=function(y){if(this.__text_cache__=y,this.__index__=-1,!y.length)return!1;var g,L,x,A,B,V,Q,G,W;if(this.re.schema_test.test(y)){for(Q=this.re.schema_search,Q.lastIndex=0;(g=Q.exec(y))!==null;)if(A=this.testSchemaAt(y,g[2],Q.lastIndex),A){this.__schema__=g[2],this.__index__=g.index+g[1].length,this.__last_index__=g.index+g[0].length+A;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(G=y.search(this.re.host_fuzzy_test),G>=0&&(this.__index__<0||G<this.__index__)&&(L=y.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))!==null&&(B=L.index+L[1].length,(this.__index__<0||B<this.__index__)&&(this.__schema__="",this.__index__=B,this.__last_index__=L.index+L[0].length))),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&(W=y.indexOf("@"),W>=0&&(x=y.match(this.re.email_fuzzy))!==null&&(B=x.index+x[1].length,V=x.index+x[0].length,(this.__index__<0||B<this.__index__||B===this.__index__&&V>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=B,this.__last_index__=V))),this.__index__>=0},m.prototype.pretest=function(y){return this.re.pretest.test(y)},m.prototype.testSchemaAt=function(y,g,L){return this.__compiled__[g.toLowerCase()]?this.__compiled__[g.toLowerCase()].validate(y,L,this):0},m.prototype.match=function(y){var g=0,L=[];this.__index__>=0&&this.__text_cache__===y&&(L.push(_(this,g)),g=this.__last_index__);for(var x=g?y.slice(g):y;this.test(x);)L.push(_(this,g)),x=x.slice(this.__last_index__),g+=this.__last_index__;return L.length?L:null},m.prototype.tlds=function(y,g){return y=Array.isArray(y)?y:[y],g?(this.__tlds__=this.__tlds__.concat(y).sort().filter(function(L,x,A){return L!==A[x-1]}).reverse(),C(this),this):(this.__tlds__=y.slice(),this.__tlds_replaced__=!0,C(this),this)},m.prototype.normalize=function(y){y.schema||(y.url="http://"+y.url),y.schema==="mailto:"&&!/^mailto:/i.test(y.url)&&(y.url="mailto:"+y.url)},m.prototype.onCompile=function(){},cu=m,cu}const ey=JSON.parse('["aaa","aarp","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac","academy","accenture","accountant","accountants","aco","actor","ad","ads","adult","ae","aeg","aero","aetna","af","afl","africa","ag","agakhan","agency","ai","aig","airbus","airforce","airtel","akdn","al","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","am","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","ao","aol","apartments","app","apple","aq","aquarelle","ar","arab","aramco","archi","army","arpa","art","arte","as","asda","asia","associates","at","athleta","attorney","au","auction","audi","audible","audio","auspost","author","auto","autos","aw","aws","ax","axa","az","azure","ba","baby","baidu","banamex","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bb","bbc","bbt","bbva","bcg","bcn","bd","be","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bf","bg","bh","bharti","bi","bible","bid","bike","bing","bingo","bio","biz","bj","black","blackfriday","blockbuster","blog","bloomberg","blue","bm","bms","bmw","bn","bnpparibas","bo","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","br","bradesco","bridgestone","broadway","broker","brother","brussels","bs","bt","build","builders","business","buy","buzz","bv","bw","by","bz","bzh","ca","cab","cafe","cal","call","calvinklein","cam","camera","camp","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","cat","catering","catholic","cba","cbn","cbre","cc","cd","center","ceo","cern","cf","cfa","cfd","cg","ch","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","ci","cipriani","circle","cisco","citadel","citi","citic","city","ck","cl","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","cm","cn","co","coach","codes","coffee","college","cologne","com","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cool","coop","corsica","country","coupon","coupons","courses","cpa","cr","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cu","cuisinella","cv","cw","cx","cy","cymru","cyou","cz","dad","dance","data","date","dating","datsun","day","dclk","dds","de","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dj","dk","dm","dnp","do","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dunlop","dupont","durban","dvag","dvr","dz","earth","eat","ec","eco","edeka","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","er","ericsson","erni","es","esq","estate","et","eu","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fi","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","fj","fk","flickr","flights","flir","florist","flowers","fly","fm","fo","foo","food","football","ford","forex","forsale","forum","foundation","fox","fr","free","fresenius","frl","frogans","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","ga","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gb","gbiz","gd","gdn","ge","gea","gent","genting","george","gf","gg","ggee","gh","gi","gift","gifts","gives","giving","gl","glass","gle","global","globo","gm","gmail","gmbh","gmo","gmx","gn","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","gov","gp","gq","gr","grainger","graphics","gratis","green","gripe","grocery","group","gs","gt","gu","gucci","guge","guide","guitars","guru","gw","gy","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hiphop","hisamitsu","hitachi","hiv","hk","hkt","hm","hn","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hotels","hotmail","house","how","hr","hsbc","ht","hu","hughes","hyatt","hyundai","ibm","icbc","ice","icu","id","ie","ieee","ifm","ikano","il","im","imamat","imdb","immo","immobilien","in","inc","industries","infiniti","info","ing","ink","institute","insurance","insure","int","international","intuit","investments","io","ipiranga","iq","ir","irish","is","ismaili","ist","istanbul","it","itau","itv","jaguar","java","jcb","je","jeep","jetzt","jewelry","jio","jll","jm","jmp","jnj","jo","jobs","joburg","jot","joy","jp","jpmorgan","jprs","juegos","juniper","kaufen","kddi","ke","kerryhotels","kerrylogistics","kerryproperties","kfh","kg","kh","ki","kia","kids","kim","kindle","kitchen","kiwi","km","kn","koeln","komatsu","kosher","kp","kpmg","kpn","kr","krd","kred","kuokgroup","kw","ky","kyoto","kz","la","lacaixa","lamborghini","lamer","lancaster","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lb","lc","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","li","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","link","lipsy","live","living","lk","llc","llp","loan","loans","locker","locus","lol","london","lotte","lotto","love","lpl","lplfinancial","lr","ls","lt","ltd","ltda","lu","lundbeck","luxe","luxury","lv","ly","ma","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","mattel","mba","mc","mckinsey","md","me","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","mg","mh","miami","microsoft","mil","mini","mint","mit","mitsubishi","mk","ml","mlb","mls","mm","mma","mn","mo","mobi","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","mp","mq","mr","ms","msd","mt","mtn","mtr","mu","museum","music","mv","mw","mx","my","mz","na","nab","nagoya","name","navy","nba","nc","ne","nec","net","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nf","nfl","ng","ngo","nhk","ni","nico","nike","nikon","ninja","nissan","nissay","nl","no","nokia","norton","now","nowruz","nowtv","np","nr","nra","nrw","ntt","nu","nyc","nz","obi","observer","office","okinawa","olayan","olayangroup","ollo","om","omega","one","ong","onl","online","ooo","open","oracle","orange","org","organic","origins","osaka","otsuka","ott","ovh","pa","page","panasonic","paris","pars","partners","parts","party","pay","pccw","pe","pet","pf","pfizer","pg","ph","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","pk","pl","place","play","playstation","plumbing","plus","pm","pn","pnc","pohl","poker","politie","porn","post","pr","pramerica","praxi","press","prime","pro","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","ps","pt","pub","pw","pwc","py","qa","qpon","quebec","quest","racing","radio","re","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","ro","rocks","rodeo","rogers","room","rs","rsvp","ru","rugby","ruhr","run","rw","rwe","ryukyu","sa","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sb","sbi","sbs","sc","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","sd","se","search","seat","secure","security","seek","select","sener","services","seven","sew","sex","sexy","sfr","sg","sh","shangrila","sharp","shell","shia","shiksha","shoes","shop","shopping","shouji","show","si","silk","sina","singles","site","sj","sk","ski","skin","sky","skype","sl","sling","sm","smart","smile","sn","sncf","so","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","sr","srl","ss","st","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","su","sucks","supplies","supply","support","surf","surgery","suzuki","sv","swatch","swiss","sx","sy","sydney","systems","sz","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tc","tci","td","tdk","team","tech","technology","tel","temasek","tennis","teva","tf","tg","th","thd","theater","theatre","tiaa","tickets","tienda","tips","tires","tirol","tj","tjmaxx","tjx","tk","tkmaxx","tl","tm","tmall","tn","to","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","tr","trade","trading","training","travel","travelers","travelersinsurance","trust","trv","tt","tube","tui","tunes","tushu","tv","tvs","tw","tz","ua","ubank","ubs","ug","uk","unicom","university","uno","uol","ups","us","uy","uz","va","vacations","vana","vanguard","vc","ve","vegas","ventures","verisign","vermögensberater","vermögensberatung","versicherung","vet","vg","vi","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vn","vodka","volvo","vote","voting","voto","voyage","vu","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","wf","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","ws","wtc","wtf","xbox","xerox","xihuan","xin","xxx","xyz","yachts","yahoo","yamaxun","yandex","ye","yodobashi","yoga","yokohama","you","youtube","yt","yun","za","zappos","zara","zero","zip","zm","zone","zuerich","zw","ελ","ευ","бг","бел","дети","ею","католик","ком","мкд","мон","москва","онлайн","орг","рус","рф","сайт","срб","укр","қаз","հայ","ישראל","קום","ابوظبي","ارامكو","الاردن","البحرين","الجزائر","السعودية","العليان","المغرب","امارات","ایران","بارت","بازار","بيتك","بھارت","تونس","سودان","سورية","شبكة","عراق","عرب","عمان","فلسطين","قطر","كاثوليك","كوم","مصر","مليسيا","موريتانيا","موقع","همراه","پاکستان","ڀارت","कॉम","नेट","भारत","भारतम्","भारोत","संगठन","বাংলা","ভারত","ভাৰত","ਭਾਰਤ","ભારત","ଭାରତ","இந்தியா","இலங்கை","சிங்கப்பூர்","భారత్","ಭಾರತ","ഭാരതം","ලංකා","คอม","ไทย","ລາວ","გე","みんな","アマゾン","クラウド","グーグル","コム","ストア","セール","ファッション","ポイント","世界","中信","中国","中國","中文网","亚马逊","企业","佛山","信息","健康","八卦","公司","公益","台湾","台灣","商城","商店","商标","嘉里","嘉里大酒店","在线","大拿","天主教","娱乐","家電","广东","微博","慈善","我爱你","手机","招聘","政务","政府","新加坡","新闻","时尚","書籍","机构","淡马锡","游戏","澳門","点看","移动","组织机构","网址","网店","网站","网络","联通","谷歌","购物","通販","集团","電訊盈科","飞利浦","食品","餐厅","香格里拉","香港","닷넷","닷컴","삼성","한국"]');var Zf;function ty(){if(Zf)return qi;Zf=1,Object.defineProperty(qi,"__esModule",{value:!0});var r=Jv(),i=d(r),u=ey,s=d(u);function d(h){return h&&h.__esModule?h:{default:h}}var c=new i.default;return c.tlds(s.default),qi.default=function(h){return c.match(h)},qi}var Qi={},Jf;function ny(){return Jf||(Jf=1,Object.defineProperty(Qi,"__esModule",{value:!0}),Qi.default=function(r){return r}),Qi}var ed;function ry(){if(ed)return Wi;ed=1,Object.defineProperty(Wi,"__esModule",{value:!0});var r=function(){function _(m,p){for(var y=0;y<p.length;y++){var g=p[y];g.enumerable=g.enumerable||!1,g.configurable=!0,"value"in g&&(g.writable=!0),Object.defineProperty(m,g.key,g)}}return function(m,p,y){return p&&_(m.prototype,p),y&&_(m,y),m}}(),i=Sr(),u=j(i),s=qv(),d=k(s),c=Qv(),h=k(c),v=ty(),S=k(v),N=ny(),b=k(N);function k(_){return _&&_.__esModule?_:{default:_}}function j(_){if(_&&_.__esModule)return _;var m={};if(_!=null)for(var p in _)Object.prototype.hasOwnProperty.call(_,p)&&(m[p]=_[p]);return m.default=_,m}function P(_,m){if(!(_ instanceof m))throw new TypeError("Cannot call a class as a function")}function O(_,m){if(!_)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return m&&(typeof m=="object"||typeof m=="function")?m:_}function C(_,m){if(typeof m!="function"&&m!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof m);_.prototype=Object.create(m&&m.prototype,{constructor:{value:_,enumerable:!1,writable:!0,configurable:!0}}),m&&(Object.setPrototypeOf?Object.setPrototypeOf(_,m):_.__proto__=m)}var D=function(_){C(m,_);function m(){return P(this,m),O(this,(m.__proto__||Object.getPrototypeOf(m)).apply(this,arguments))}return r(m,[{key:"parseString",value:function(y){var g=this;if(y==="")return y;var L=this.props.matchDecorator(y);if(!L)return y;var x=[],A=0;return L.forEach(function(B,V){B.index>A&&x.push(y.substring(A,B.index));var Q=g.props.hrefDecorator(B.url),G=g.props.textDecorator(B.text),W=g.props.componentDecorator(Q,G,V);x.push(W),A=B.lastIndex}),y.length>A&&x.push(y.substring(A)),x.length===1?x[0]:x}},{key:"parse",value:function(y){var g=this,L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return typeof y=="string"?this.parseString(y):u.isValidElement(y)&&y.type!=="a"&&y.type!=="button"?u.cloneElement(y,{key:L},this.parse(y.props.children)):Array.isArray(y)?y.map(function(x,A){return g.parse(x,A)}):y}},{key:"render",value:function(){return u.createElement(u.Fragment,null,this.parse(this.props.children))}}]),m}(u.Component);return D.defaultProps={componentDecorator:d.default,hrefDecorator:h.default,matchDecorator:S.default,textDecorator:b.default},Wi.default=D,Wi}var td;function oy(){if(td)return $i;td=1,Object.defineProperty($i,"__esModule",{value:!0});var r=ry(),i=u(r);function u(s){return s&&s.__esModule?s:{default:s}}return $i.default=i.default,$i}var iy=oy();const Xi=Er(iy);function rp({closeHandler:r,children:i}){const u=re(Zn),s=re(Gr),d=re(Ig),c=re(jd),[h,v]=$.useState(""),[S,N]=$.useState(!1),b=re(Jn),k=re(kr),j=re(Lg),P=Gn(),O=$.useRef(),[C,D]=$.useState(!1),[_,m]=$.useState(!0);let p;switch(u==null?void 0:u.type){case"mhlm":p={label:`Online License Manager (${u.emailAddress})`};break;case"nlm":p={label:`Network License Manager (${u.connectionString})`};break;case"existing_license":p={label:"Existing License"};break;default:p={label:"None"}}const y=re(Fd),g=s?E.jsxs("div",{className:"error-container alert alert-danger",children:[E.jsx("p",{children:E.jsx("strong",{children:"Error"})}),E.jsx(Xi,{children:E.jsx("div",{className:"error-text",children:E.jsx("pre",{style:{backgroundColor:"hsla(0,0%,100%,0)",border:"none",fontFamily:"inherit",fontSize:"15px"},children:s.message})})})]}):null,L=s&&s.logs!==null&&s.logs.length>0?E.jsxs("div",{className:"expand_collapse error-logs-container",children:[E.jsxs("h4",{className:`expand_trigger ${C?"expanded":"collapsed"}`,onClick:()=>D(!C),children:[E.jsx("span",{className:"icon-arrow-open-down"}),E.jsx("span",{className:"icon-arrow-open-right"}),"Error logs"]}),E.jsx("div",{id:"error-logs",className:`expand_target error-container alert alert-danger ${C?"expanded":"collapsed"}`,"aria-expanded":C,children:E.jsx(Xi,{children:E.jsx("div",{className:"error-msg",children:s.logs.join(`
|
|
62
62
|
`).trim()})})})]}):null,x=(W,ee,me)=>E.jsx("a",{href:W,target:"_blank",rel:"noopener noreferrer",children:ee},me),A=d&&d.length>0?E.jsxs("div",{className:"expand_collapse warnings-container",children:[E.jsxs("h4",{className:`expand_trigger ${_?"expanded":"collapsed"}`,onClick:()=>m(!_),children:[E.jsx("span",{className:"icon-arrow-open-down"}),E.jsx("span",{className:"icon-arrow-open-right"}),"Warnings"]}),E.jsx("div",{id:"warnings",className:`expand_target warnings-container alert alert-warning ${_?"expanded":"collapsed"}`,"aria-expanded":_,children:E.jsx(Xi,{componentDecorator:x,children:E.jsx("div",{className:"warnings-msg",children:d.map((W,ee)=>(ee+1).toString()+")"+W.trim()).join(`
|
|
63
63
|
|
|
64
64
|
`)})})})]}):null,B=W=>{W.target===W.currentTarget&&(W.preventDefault(),r())},V=()=>{j||P(Av()),N(!0)},Q=()=>{O.current.type=O.current.type==="text"?"password":"text"},G=async W=>{P(Zd(W.trim())),v("")};return E.jsx("div",{className:"modal show",id:"information",onClick:c?B:null,tabIndex:"-1",role:"dialog","aria-labelledby":"information-dialog-title","aria-describedby":"information-dialog",children:E.jsx("div",{className:"modal-dialog modal-dialog-centered",role:"document",children:E.jsxs("div",{className:`modal-content alert alert-${y.alert}`,children:[E.jsxs("div",{className:"modal-header",children:[c&&E.jsx("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":"Close",onClick:r,children:E.jsx("span",{"aria-hidden":"true",children:"×"})}),E.jsx("span",{className:`alert_icon icon-alert-${y.icon}`}),E.jsx("h4",{className:"modal-title alert_heading",id:"information-dialog-title",children:"Status Information"})]}),E.jsxs("div",{className:"modal-body",children:[E.jsxs("div",{className:"details",children:[E.jsxs("div",{className:"flex-container main-flex",children:[E.jsx("div",{className:"flex-item-1",children:"MATLAB Status:"}),E.jsxs("div",{className:"flex-item-2",children:[E.jsx("span",{id:"spinner",className:y.spinner?"show":"hidden"}),y.label]})]}),E.jsxs("div",{className:"flex-container",children:[E.jsx("div",{className:"flex-item-1",children:"Licensing:"}),E.jsx("div",{className:"flex-item-2",children:p.label})]}),E.jsx("div",{className:"flex-container",children:b&&E.jsxs(E.Fragment,{children:[E.jsxs("div",{onClick:()=>{S&&N(!1)},className:`${S?"passive-link":""} flex-item-1`,children:[E.jsx("span",{id:`${S?"offset":""}`,children:k?S?"(Hide Token)":"Authenticated!":"Please Authenticate"}),k&&!S&&E.jsx("span",{id:"icon-small",className:"alert_icon icon-alert-success flex-item-1"})]}),E.jsx(E.Fragment,{children:k?E.jsx(E.Fragment,{children:E.jsx("div",{className:"flex-item-2",children:E.jsxs("span",{onClick:V,className:`${S?"":"passive-link"} flex-item-1`,children:[" ",S?`${j}`:"(View token)"]})})}):E.jsx("div",{className:"flex-item-2",children:E.jsxs("form",{id:"token-form",onSubmit:W=>W.preventDefault(),className:"flex-container",children:[E.jsx("input",{ref:O,onBlur:Q,onFocus:Q,className:"flex-item-2",id:"token",name:"token",placeholder:"Please enter auth token",type:"password",value:h,onChange:W=>v(W.target.value)}),E.jsx("button",{onClick:()=>G(h),className:"btn btn_color_blue token-btn",children:"Submit"})]})})})]})})]}),g,L,A]}),E.jsx("div",{className:"modal-footer",children:i})]})})})}rp.propTypes={closeHandler:be.func.isRequired,children:be.oneOfType([be.node,be.arrayOf(be.node)])};function op({closeHandler:r,dismissAllHandler:i}){const u=re(jd),s=re(dl),d=v=>{v.target===v.currentTarget&&(v.preventDefault(),i())},h=re(zo).doc_url;return E.jsx("div",{className:"modal show",id:"help",onClick:u?d:null,tabIndex:"-1",role:"dialog","aria-labelledby":"help-dialog-title",children:E.jsx("div",{className:"modal-dialog modal-dialog-centered",role:"document",children:E.jsxs("div",{className:"modal-content",children:[E.jsx("div",{className:"modal-header",children:E.jsx("h4",{className:"modal-title",id:"confirmation-dialog-title",children:"Help"})}),E.jsxs("div",{className:"modal-body help",children:[E.jsxs("p",{children:["The status panel shows you options to manage the ",E.jsx("a",{href:h,target:"_blank",rel:"noopener noreferrer",children:s}),"."]}),E.jsx("p",{children:"Use the buttons in the status panel to:"}),E.jsxs("div",{children:[E.jsx("p",{className:"icon-custom-start",children:"Start your MATLAB session. Available if MATLAB is stopped."}),E.jsx("p",{className:"icon-custom-restart",children:"Restart your MATLAB session. Available if MATLAB is running or starting."}),E.jsx("p",{className:"icon-custom-stop",children:"Stop your MATLAB session. Use this option if you want to free up RAM and CPU resources. Available if MATLAB is running or starting."}),E.jsxs("p",{className:"icon-custom-sign-out",children:["Sign out of MATLAB. Use this to stop MATLAB and to sign in with an alternative account. Available if using online licensing.",E.jsx("br",{}),"Unset network license manager server address. Use this to stop MATLAB and enter new licensing information. Available if using network license manager."]}),E.jsx("p",{className:"icon-custom-shutdown",children:"Stop your MATLAB session and MATLAB Proxy. "}),E.jsx("p",{className:"icon-custom-feedback",children:`Send feedback about the ${s}. This action opens the matlab-proxy repository on github.com`})]})]}),E.jsx("div",{className:"modal-footer",children:E.jsx("button",{onClick:r,"data-testid":"backBtn",className:"btn btn_color_blue",children:"Back"})})]})})})}op.propTypes={closeHandler:be.func.isRequired,dismissAllHandler:be.func};function Hr({message:r,logs:i,children:u}){const s=i?E.jsx("p",{className:"error-msg",children:i}):null;return E.jsx("div",{className:"modal show",id:"error",tabIndex:"-1",role:"dialog","aria-labelledby":"help-dialog-title",children:E.jsx("div",{className:"modal-dialog modal-dialog-centered",role:"document",children:E.jsxs("div",{className:"modal-content alert alert-danger",children:[E.jsxs("div",{className:"modal-header",children:[E.jsx("span",{className:"alert_icon icon-alert-error"}),E.jsx("h4",{className:"modal-title alert_heading",children:"Error"})]}),E.jsxs("div",{className:"modal-body",children:[E.jsx("pre",{children:r}),E.jsx(Xi,{children:s}),u]})]})})})}Hr.propTypes={message:be.string.isRequired,logs:be.arrayOf(be.string),children:be.node};function ip({bufferTimeout:r,resumeCallback:i}){const u=Gn(),s=re(dl),[d,c]=$.useState(r);return $.useEffect(()=>{const h=setInterval(()=>{c(v=>v-1)},1e3);return()=>clearInterval(h)},[]),E.jsx("div",{className:"modal show","data-testid":"ShutdownWarning",id:"information",tabIndex:"-1",role:"dialog",children:E.jsx("div",{className:"modal-dialog modal-dialog-centered",role:"document",children:E.jsxs("div",{className:"modal-content alert alert-warning",children:[E.jsxs("div",{className:"modal-header",children:[E.jsx("span",{className:"alert_icon icon-alert-warning"}),E.jsx("h4",{className:"modal-title alert_heading",id:"information-dialog-title",children:"Warning"})]}),E.jsx("div",{className:"modal-body",children:E.jsx("div",{className:"details",children:E.jsxs("div",{children:["No activity detected. ",s," will shutdown in ",d," seconds."]})})}),E.jsx("div",{className:"modal-footer",children:E.jsx("div",{children:E.jsx("button",{className:"btn",id:"resume-button",onClick:()=>{i(),u(rl(!1))},children:E.jsx("span",{className:"btn-label",children:"Resume Session"})})})})]})})})}ip.propTypes={bufferTimeout:be.number.isRequired,resumeCallback:be.func.isRequired};const ly=""+new URL("../media/MATLAB-env-blur.NupTbPv_.png",import.meta.url).href,sy="License description unavailable";function uy(r){return r.filter(i=>i.license_number&&i.license_number.trim()!=="").map(i=>({label:`${i.license_number} - ${i.label||sy}`,value:i.id}))}function lp({options:r}){const i=Gn(),u=uy(r),[s,d]=$.useState(u[0].value);function c(h){h.preventDefault(),i(Ov({type:"mhlm",entitlement_id:s}))}return E.jsx("div",{className:"modal show",id:"entitlement-selection",tabIndex:"-1",role:"dialog","aria-labelledby":"confirmation-dialog-title",children:E.jsx("div",{className:"modal-dialog modal-dialog-centered",role:"document",children:E.jsxs("div",{className:"modal-content",children:[E.jsx("div",{className:"modal-header",children:E.jsx("h4",{className:"modal-title",id:"confirmation-dialog-title",children:"Your MathWorks account has multiple licenses. Select a license."})}),E.jsx("div",{className:"modal-body",children:E.jsx("select",{value:s,onChange:h=>d(h.target.value),children:u.map(h=>E.jsx("option",{value:h.value,children:h.label},h.label))})}),E.jsx("div",{className:"modal-footer",children:E.jsx("button",{type:"button","data-testid":"submitButton",onClick:c,children:"Submit"})})]})})})}lp.propTypes={options:be.arrayOf(be.object).isRequired};function ay(){const r=Gn(),i=re(Md),u=re(Vg),s=re(Pg),d=re(cl),c=re(Nu),h=re(Id),v=re(Ld),S=re(fl),N=re(Gr),b=re(jg),k=re(Ug),j=re(kr),P=re(Jn),O=re(Zn),C=re(Cu),D=re(Rd),_=re(al),m=re(Mg),p=re(dl),y=re(Xg),g=re(Kg),L=re(Yg),x=re(Ad),A=re(Od),B=re(zd),[V,Q]=$.useState(!1),[G,W]=$.useState(!1),ee=B&&D;function me(){x||A||L?(pe(),console.log("Resetting IDLE timer as MATLAB is either starting, stopping or busy")):ee?(r(rl(!0)),Q(!0),console.log("The IDLE timer has expired due to inactivity. Will display Shutdown Warning to the user."),console.log("The additional BUFFER timer has started.")):(Ee(),console.log("The IDLE timer has been cancelled."))}const[,Ee,pe]=gf(me,g);$.useEffect(()=>(B?pe():Ee(),()=>{Ee()}),[Ee,pe,B]);const[,ge,Ne]=gf(()=>{r(Jd()),W(!0)},Bf*1e3);$.useEffect(()=>(V?Ne():ge(),()=>{ge()}),[ge,Ne,V]);const je=$.useMemo(()=>document.URL.split(window.location.origin)[1].split("index.html")[0],[]),Te=ve=>new URLSearchParams(ve.search),Ge=$.useMemo(()=>document.URL.split("/index.html")[0],[]),Ve=()=>{let ve="index-jsd-cr.html";return ve+=`?mre=${encodeURIComponent(Ge)}`,ve},q=$.useCallback(()=>r(rl(!i)),[i,r]),[T,z]=$.useState(null),[K,J]=$.useState(!1);let le=null,fe;if(T){const ve=()=>z(null),we=()=>{ve(),q(!1)};switch(T.type){case"confirmation":{const ct=()=>{r(T.callback()),z(null)};fe=E.jsx(du,{confirm:ct,cancel:ve,children:T.message||""});break}case"help":fe=E.jsx(op,{closeHandler:ve,dismissAllHandler:we});break;default:throw new Hr(`Unknown dialog type: ${T.type}.`)}}if(k)fe=E.jsx(Hr,{message:`Either this ${p} terminated or the session ended`,children:E.jsxs("p",{children:["Attempt to ",E.jsx("a",{href:"../",children:"return to a parent app"})]})});else if(N&&N.type==="MatlabInstallError")fe=E.jsx(Hr,{message:N.message});else if((!P||j)&&C&&_){const ve=()=>{r(ou(!0)),le=null},we=()=>{J(!0)};K?le=E.jsx(Hr,{message:"Your session has been terminated. Refresh the page to restart the session."}):le=E.jsx(du,{confirm:ve,cancel:we,title:"MATLAB is currently open in another window",cancelButton:m?"Cancel":"Continue in existing window",confirmButton:m?"Confirm":"Continue in this window",children:m?"You have been disconnected because MATLAB is open in another window. Click on Confirm to continue using MATLAB here.":E.jsxs("div",{children:["MATLAB is open in another window and cannot be opened in a second window or tab at the same time.",E.jsx("br",{}),"Would you like to continue in this window?"]})})}$.useEffect(()=>{const ve=we=>{_&&!C&&s&&navigator.sendBeacon("./clear_client_id"),we.preventDefault(),we.returnValue=""};return window.addEventListener("pagehide",ve),()=>{window.removeEventListener("pagehide",ve)}},[_,C,s]),$.useEffect(()=>{d||r(Pv())},[r,d]),$.useEffect(()=>{d&&!s&&r(ou())},[r,s,d]),gh(()=>{s&&r(ou())},u),$.useEffect(()=>{b!==null&&(window.location.href=b)},[b]),$.useEffect(()=>{if(d){const we=Te(window.location).get(Nd);document.title=`${y}`,we&&r(Zd(we)),window.history.replaceState(null,"",`${je}index.html`)}},[r,je,d]);let ae;if(B&&V)if(G){const ve=`The ${p} has shutdown due to inactivity`;ae=E.jsx(Hr,{message:ve,children:" "}),console.log(`BUFFER timer has also expired, proceeding with shutting down ${p}`)}else ae=E.jsx(ip,{bufferTimeout:Bf,resumeCallback:()=>{pe(),Q(!1),ge(),W(!1),console.log("Reset IDLE timer and cancelled BUFFER timer after user resumed activity.")}});else fe?ae=fe:!c&&s&&(!P||j)?ae=E.jsx(Vv,{role:"licensing","aria-describedby":"license-window"}):h&&!v?ae=E.jsx(lp,{options:O.entitlements}):fe||(ae=E.jsx(rp,{closeHandler:q,children:E.jsx(np,{callback:ve=>z(ve)})}));const ie=i?E.jsx(tl,{children:ae}):null,Ae=`./${Ve()}`,Ye=$.useCallback(()=>{pe()},[pe]),Me=$.useRef(null);let jt=null;S&&(jt=!P||j?E.jsx(ep,{handleUserInteraction:Ye,url:Ae,iFrameRef:Me,shouldListenForEvents:ee}):E.jsx("img",{style:{objectFit:"fill"},src:ly,alt:"Blurred MATLAB environment"}));const It=i?null:E.jsx(Mv,{});return E.jsx(Jt.Fragment,{children:le?E.jsx(tl,{children:le}):E.jsxs("div",{"data-testid":"app",className:"main",children:[It,jt,ie]})})}function cy(r=!1,i){switch(i.type){case er:return i.config.authentication.enabled;default:return r}}function fy(r=null,i){switch(i.type){case er:return parseInt(i.config.idleTimeoutDuration);default:return r}}function dy(r=!1,i){switch(i.type){case er:return i.config.authentication.status;case Au:return i.authentication.status;default:return r}}function py(r=null,i){switch(i.type){case Qd:return i.authentication.token;default:return r}}function my(r=!1,i){switch(i.type){case er:case tv:return i.config.isConcurrencyEnabled;default:return r}}function hy(r={x:window.innerWidth/2+27,y:0},i){switch(i.type){case Bd:return{x:i.x,y:i.y};default:return r}}function gy(r=!1,i){switch(i.type){case Ud:return i.hidden;default:return r}}function vy(r=!1,i){switch(i.type){case $d:return i.visibility;case Ot:if(i.previousMatlabPending===!0&&i.status.matlab.status==="up")return!1;default:return r}}function yy(r={},i){switch(i.type){case Ot:case _n:case xn:case En:case Sn:return{...i.status.licensing};default:return r}}function wy(r="down",i){switch(i.type){case Ot:case _n:case xn:case En:case Sn:return i.status.matlab.status;case Ru:case Pu:return i.status;default:return r}}function _y(r=null,i){switch(i.type){case Ot:case _n:return i.status.matlab.version;case er:return i.config.matlab.version;default:return r}}function xy(r=null,i){switch(i.type){case Ot:return i.status.matlab.busyStatus;case En:case Sn:return null;default:return r}}function Ey(r=null,i){switch(i.type){case er:return i.config.matlab.supportedVersions;default:return r}}function Sy(r=!0,i){switch(i.type){case Yd:return i.status.isActiveClient;default:return r}}function Ty(r=null,i){switch(i.type){case Ot:case _n:case xn:case En:case Sn:return i.status.wsEnv;default:return r}}function ky(r=!1,i){switch(i.type){case Vd:return!0;case Ot:case Uo:return!1;default:return r}}function by(r=!1,i){switch(i.type){case Ot:case _n:case xn:case En:case Sn:return!0;default:return r}}function Cy(r=!1,i){switch(i.type){case nv:return!0;default:return r}}function Ny(r=!1,i){switch(i.type){case Kd:return!0;default:return r}}function Dy(r=!1,i){switch(i.type){case Hd:case qd:case Ru:case Pu:return!0;case _n:case xn:case En:case Sn:case Uo:return!1;default:return r}}function Ry(r=0,i){switch(i.type){case Ot:case _n:case xn:case En:case Sn:return 0;case Uo:return r+1;default:return r}}function Py(r=null,i){switch(i.type){case xn:return i.loadUrl;default:return r}}function Ay(r=null,i){switch(i.type){case Ot:{const u=i.status.warnings;return u.length>0?u:null}default:return r}}function Oy(r=null,i){var u;switch(i.type){case Au:if(((u=i==null?void 0:i.authentication)==null?void 0:u.error)!==null){const{message:s,type:d}=i.authentication.error;return{message:s,type:d,logs:null}}else return null;case Uo:return{message:i.error,statusCode:i==null?void 0:i.statusCode,logs:null};case Ot:case _n:case xn:case En:case Sn:return i.status.error?{message:i.status.error.message,logs:i.status.error.logs,type:i.status.error.type}:null;default:return r}}function jy(r=null,i){switch(i.type){case er:const{authentication:u,matlab:s,...d}=i.config;return d;default:return r}}function Iy(r=null,i){switch(i.type){case Wd:return i.clientId;default:return r}}const Ly=Io({enabled:cy,status:dy,token:py}),My=Io({status:wy,versionOnPath:_y,supportedVersions:Ey,busyStatus:xy}),Fy=Io({licensingInfo:yy,wsEnv:Ty,isFetchingServerStatus:ky,hasFetched:by,isSubmitting:Dy,fetchFailCount:Ry}),zy=Io({isActiveClient:Sy,hasClientInitialized:Cy,wasEverActive:Ny,isConcurrencyEnabled:my,clientId:Iy}),By=Io({triggerPosition:hy,tutorialHidden:gy,overlayVisibility:vy,serverStatus:Fy,sessionStatus:zy,loadUrl:Py,error:Oy,warnings:Ay,envConfig:jy,authentication:Ly,matlab:My,idleTimeoutDuration:fy}),Uy=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||cd,$y=ph(By,Uy(hh(dd)));Vm.render(E.jsx(Zm,{store:$y,children:E.jsx(ay,{})}),document.getElementById("root"));
|
matlab_proxy/settings.py
CHANGED
|
@@ -53,7 +53,7 @@ def get_process_startup_timeout():
|
|
|
53
53
|
)
|
|
54
54
|
return constants.DEFAULT_PROCESS_START_TIMEOUT
|
|
55
55
|
|
|
56
|
-
logger.
|
|
56
|
+
logger.debug(
|
|
57
57
|
f"Using {constants.DEFAULT_PROCESS_START_TIMEOUT} seconds as the default timeout value"
|
|
58
58
|
)
|
|
59
59
|
|
|
@@ -94,7 +94,7 @@ def get_matlab_executable_and_root_path():
|
|
|
94
94
|
|
|
95
95
|
if matlab_executable_path:
|
|
96
96
|
matlab_root_path = Path(matlab_executable_path).resolve().parent.parent
|
|
97
|
-
logger.
|
|
97
|
+
logger.debug(f"MATLAB root folder: {matlab_root_path}")
|
|
98
98
|
matlab_root_path = mwi.validators.validate_matlab_root_path(
|
|
99
99
|
matlab_root_path, is_custom_matlab_root=False
|
|
100
100
|
)
|
|
@@ -289,7 +289,6 @@ def get(config_name=matlab_proxy.get_default_config_name(), dev=False):
|
|
|
289
289
|
if not settings["is_windowmanager_available"]:
|
|
290
290
|
warning = " Unable to find fluxbox on the system PATH. To use Simulink Online, add Fluxbox to the system PATH and restart matlab-proxy. For details, see https://github.com/mathworks/matlab-proxy#requirements."
|
|
291
291
|
logger.warning(warning)
|
|
292
|
-
settings["warnings"].append(warning)
|
|
293
292
|
|
|
294
293
|
settings.update(get_matlab_settings())
|
|
295
294
|
|
|
@@ -500,7 +499,7 @@ def _validate_ssl_files_and_get_ssl_context(mwi_config_folder):
|
|
|
500
499
|
# Don't use SSL if the user has explicitly disabled SSL communication or not set the respective env var
|
|
501
500
|
if not is_ssl_enabled:
|
|
502
501
|
if ssl_cert_file:
|
|
503
|
-
logger.
|
|
502
|
+
logger.warning(
|
|
504
503
|
f"Ignoring provided SSL files, as {env_name_enable_ssl} is either unset or set to false"
|
|
505
504
|
)
|
|
506
505
|
return None
|
|
@@ -597,7 +596,7 @@ def generate_new_self_signed_certs(mwi_certs_dir):
|
|
|
597
596
|
f.write(cert.public_bytes(serialization.Encoding.PEM))
|
|
598
597
|
|
|
599
598
|
except Exception as ex:
|
|
600
|
-
logger.
|
|
599
|
+
logger.warning(
|
|
601
600
|
f"Failed to generate self-signed certificates, proceeding with non-secure mode! Error: {ex}"
|
|
602
601
|
)
|
|
603
602
|
cert_file = priv_key_file = None
|
|
@@ -699,7 +698,6 @@ def _get_matlab_cmd(matlab_executable_path, code_to_execute, nlm_conn_str):
|
|
|
699
698
|
"-nosplash",
|
|
700
699
|
*flag_to_hide_desktop,
|
|
701
700
|
"-softwareopengl",
|
|
702
|
-
# " v=mvm ",
|
|
703
701
|
*matlab_lic_mode,
|
|
704
702
|
"-externalUI",
|
|
705
703
|
profile_matlab_startup,
|