From 636e107e449c43b2a654633cd850a95406910b65 Mon Sep 17 00:00:00 2001 From: congqixia Date: Tue, 24 Dec 2024 13:34:48 +0800 Subject: [PATCH 01/69] fix: Remove sync task after finished (#38681) Related to #38680 Signed-off-by: Congqi Xia --- internal/flushcommon/syncmgr/sync_manager.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/flushcommon/syncmgr/sync_manager.go b/internal/flushcommon/syncmgr/sync_manager.go index e02611812ef9a..da0ee0e99a0da 100644 --- a/internal/flushcommon/syncmgr/sync_manager.go +++ b/internal/flushcommon/syncmgr/sync_manager.go @@ -124,6 +124,10 @@ func (mgr *syncManager) safeSubmitTask(ctx context.Context, task Task, callbacks func (mgr *syncManager) submit(ctx context.Context, key int64, task Task, callbacks ...func(error) error) *conc.Future[struct{}] { handler := func(err error) error { + taskKey := fmt.Sprintf("%d-%d", task.SegmentID(), task.Checkpoint().GetTimestamp()) + defer func() { + mgr.tasks.Remove(taskKey) + }() if err == nil { return nil } From c458dec2064da2dfb9aabeaeb5227597bb4e3feb Mon Sep 17 00:00:00 2001 From: MimoN Date: Tue, 24 Dec 2024 17:36:48 +0800 Subject: [PATCH 02/69] fix: [skip e2e]update webui collection and query pages (#38700) issue: #36621 * enhance collection detail page list columns * enhance query page segments state detail logic Signed-off-by: mimo.oyn --- internal/http/webui/assets/index-Bybe0GVy.js | 1502 ++++++++++++++++++ internal/http/webui/index.html | 42 +- 2 files changed, 1519 insertions(+), 25 deletions(-) create mode 100644 internal/http/webui/assets/index-Bybe0GVy.js diff --git a/internal/http/webui/assets/index-Bybe0GVy.js b/internal/http/webui/assets/index-Bybe0GVy.js new file mode 100644 index 0000000000000..a859a9f866dd5 --- /dev/null +++ b/internal/http/webui/assets/index-Bybe0GVy.js @@ -0,0 +1,1502 @@ +var z3=Object.defineProperty;var H3=(e,t,n)=>t in e?z3(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var zs=(e,t,n)=>H3(e,typeof t!="symbol"?t+"":t,n);function V3(e,t){for(var n=0;nr[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}})();var jl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function $o(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function W3(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}),n}var LS={exports:{}},of={},AS={exports:{}},Ze={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vc=Symbol.for("react.element"),U3=Symbol.for("react.portal"),G3=Symbol.for("react.fragment"),q3=Symbol.for("react.strict_mode"),K3=Symbol.for("react.profiler"),Z3=Symbol.for("react.provider"),Q3=Symbol.for("react.context"),Y3=Symbol.for("react.forward_ref"),X3=Symbol.for("react.suspense"),J3=Symbol.for("react.memo"),eT=Symbol.for("react.lazy"),fv=Symbol.iterator;function tT(e){return e===null||typeof e!="object"?null:(e=fv&&e[fv]||e["@@iterator"],typeof e=="function"?e:null)}var NS={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},DS=Object.assign,jS={};function _s(e,t,n){this.props=e,this.context=t,this.refs=jS,this.updater=n||NS}_s.prototype.isReactComponent={};_s.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};_s.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function FS(){}FS.prototype=_s.prototype;function r0(e,t,n){this.props=e,this.context=t,this.refs=jS,this.updater=n||NS}var o0=r0.prototype=new FS;o0.constructor=r0;DS(o0,_s.prototype);o0.isPureReactComponent=!0;var pv=Array.isArray,BS=Object.prototype.hasOwnProperty,i0={current:null},zS={key:!0,ref:!0,__self:!0,__source:!0};function HS(e,t,n){var r,o={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)BS.call(t,r)&&!zS.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(s===1)o.children=n;else if(1>>1,z=E[H];if(0>>1;Ho(W,B))Vo(ee,W)?(E[H]=ee,E[V]=B,H=V):(E[H]=W,E[F]=B,H=F);else if(Vo(ee,B))E[H]=ee,E[V]=B,H=V;else break e}}return L}function o(E,L){var B=E.sortIndex-L.sortIndex;return B!==0?B:E.id-L.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],c=[],u=1,d=null,f=3,p=!1,h=!1,y=!1,w=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,S=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function m(E){for(var L=n(c);L!==null;){if(L.callback===null)r(c);else if(L.startTime<=E)r(c),L.sortIndex=L.expirationTime,t(l,L);else break;L=n(c)}}function C(E){if(y=!1,m(E),!h)if(n(l)!==null)h=!0,A(_);else{var L=n(c);L!==null&&N(C,L.startTime-E)}}function _(E,L){h=!1,y&&(y=!1,v(T),T=-1),p=!0;var B=f;try{for(m(L),d=n(l);d!==null&&(!(d.expirationTime>L)||E&&!$());){var H=d.callback;if(typeof H=="function"){d.callback=null,f=d.priorityLevel;var z=H(d.expirationTime<=L);L=e.unstable_now(),typeof z=="function"?d.callback=z:d===n(l)&&r(l),m(L)}else r(l);d=n(l)}if(d!==null)var j=!0;else{var F=n(c);F!==null&&N(C,F.startTime-L),j=!1}return j}finally{d=null,f=B,p=!1}}var R=!1,k=null,T=-1,P=5,x=-1;function $(){return!(e.unstable_now()-xE||125H?(E.sortIndex=B,t(c,E),n(l)===null&&E===n(c)&&(y?(v(T),T=-1):y=!0,N(C,B-H))):(E.sortIndex=z,t(l,E),h||p||(h=!0,A(_))),E},e.unstable_shouldYield=$,e.unstable_wrapCallback=function(E){var L=f;return function(){var B=f;f=L;try{return E.apply(this,arguments)}finally{f=B}}}})(qS);GS.exports=qS;var fT=GS.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var pT=b,Jn=fT;function he(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),uh=Object.prototype.hasOwnProperty,gT=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,hv={},mv={};function hT(e){return uh.call(mv,e)?!0:uh.call(hv,e)?!1:gT.test(e)?mv[e]=!0:(hv[e]=!0,!1)}function mT(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function vT(e,t,n,r){if(t===null||typeof t>"u"||mT(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function En(e,t,n,r,o,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var cn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){cn[e]=new En(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];cn[t]=new En(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){cn[e]=new En(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){cn[e]=new En(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){cn[e]=new En(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){cn[e]=new En(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){cn[e]=new En(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){cn[e]=new En(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){cn[e]=new En(e,5,!1,e.toLowerCase(),null,!1,!1)});var s0=/[\-:]([a-z])/g;function l0(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(s0,l0);cn[t]=new En(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(s0,l0);cn[t]=new En(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(s0,l0);cn[t]=new En(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){cn[e]=new En(e,1,!1,e.toLowerCase(),null,!1,!1)});cn.xlinkHref=new En("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){cn[e]=new En(e,1,!1,e.toLowerCase(),null,!0,!0)});function c0(e,t,n,r){var o=cn.hasOwnProperty(t)?cn[t]:null;(o!==null?o.type!==0:r||!(2s||o[a]!==i[s]){var l=` +`+o[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{Lp=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ul(e):""}function yT(e){switch(e.tag){case 5:return ul(e.type);case 16:return ul("Lazy");case 13:return ul("Suspense");case 19:return ul("SuspenseList");case 0:case 2:case 15:return e=Ap(e.type,!1),e;case 11:return e=Ap(e.type.render,!1),e;case 1:return e=Ap(e.type,!0),e;default:return""}}function gh(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Pa:return"Fragment";case Ta:return"Portal";case dh:return"Profiler";case u0:return"StrictMode";case fh:return"Suspense";case ph:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case QS:return(e.displayName||"Context")+".Consumer";case ZS:return(e._context.displayName||"Context")+".Provider";case d0:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case f0:return t=e.displayName||null,t!==null?t:gh(e.type)||"Memo";case Do:t=e._payload,e=e._init;try{return gh(e(t))}catch{}}return null}function bT(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return gh(t);case 8:return t===u0?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ui(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function XS(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function xT(e){var t=XS(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Uc(e){e._valueTracker||(e._valueTracker=xT(e))}function JS(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=XS(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function ad(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function hh(e,t){var n=t.checked;return _t({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function yv(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ui(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ew(e,t){t=t.checked,t!=null&&c0(e,"checked",t,!1)}function mh(e,t){ew(e,t);var n=ui(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?vh(e,t.type,n):t.hasOwnProperty("defaultValue")&&vh(e,t.type,ui(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function bv(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function vh(e,t,n){(t!=="number"||ad(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var dl=Array.isArray;function Ua(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=Gc.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Bl(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var yl={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ST=["Webkit","ms","Moz","O"];Object.keys(yl).forEach(function(e){ST.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),yl[t]=yl[e]})});function ow(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||yl.hasOwnProperty(e)&&yl[e]?(""+t).trim():t+"px"}function iw(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=ow(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var wT=_t({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function xh(e,t){if(t){if(wT[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(he(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(he(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(he(61))}if(t.style!=null&&typeof t.style!="object")throw Error(he(62))}}function Sh(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var wh=null;function p0(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ch=null,Ga=null,qa=null;function wv(e){if(e=xc(e)){if(typeof Ch!="function")throw Error(he(280));var t=e.stateNode;t&&(t=uf(t),Ch(e.stateNode,e.type,t))}}function aw(e){Ga?qa?qa.push(e):qa=[e]:Ga=e}function sw(){if(Ga){var e=Ga,t=qa;if(qa=Ga=null,wv(e),t)for(e=0;e>>=0,e===0?32:31-(OT(e)/LT|0)|0}var qc=64,Kc=4194304;function fl(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ud(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~o;s!==0?r=fl(s):(i&=a,i!==0&&(r=fl(i)))}else a=n&~o,a!==0?r=fl(a):i!==0&&(r=fl(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&o)&&(o=r&-r,i=t&-t,o>=i||o===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function yc(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Ar(t),e[t]=n}function jT(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=xl),Mv=" ",Iv=!1;function Pw(e,t){switch(e){case"keyup":return fP.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function kw(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ka=!1;function gP(e,t){switch(e){case"compositionend":return kw(t);case"keypress":return t.which!==32?null:(Iv=!0,Mv);case"textInput":return e=t.data,e===Mv&&Iv?null:e;default:return null}}function hP(e,t){if(ka)return e==="compositionend"||!S0&&Pw(e,t)?(e=Rw(),Ou=y0=qo=null,ka=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Nv(n)}}function Iw(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Iw(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ow(){for(var e=window,t=ad();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=ad(e.document)}return t}function w0(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function _P(e){var t=Ow(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Iw(n.ownerDocument.documentElement,n)){if(r!==null&&w0(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,i=Math.min(r.start,o);r=r.end===void 0?i:Math.min(r.end,o),!e.extend&&i>r&&(o=r,r=i,i=o),o=Dv(n,i);var a=Dv(n,r);o&&a&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,$a=null,$h=null,wl=null,Eh=!1;function jv(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Eh||$a==null||$a!==ad(r)||(r=$a,"selectionStart"in r&&w0(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),wl&&Gl(wl,r)||(wl=r,r=pd($h,"onSelect"),0Ia||(e.current=Nh[Ia],Nh[Ia]=null,Ia--)}function ht(e,t){Ia++,Nh[Ia]=e.current,e.current=t}var di={},xn=mi(di),An=mi(!1),qi=di;function ns(e,t){var n=e.type.contextTypes;if(!n)return di;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in n)o[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Nn(e){return e=e.childContextTypes,e!=null}function hd(){yt(An),yt(xn)}function Uv(e,t,n){if(xn.current!==di)throw Error(he(168));ht(xn,t),ht(An,n)}function Hw(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(he(108,bT(e)||"Unknown",o));return _t({},n,r)}function md(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||di,qi=xn.current,ht(xn,e),ht(An,An.current),!0}function Gv(e,t,n){var r=e.stateNode;if(!r)throw Error(he(169));n?(e=Hw(e,t,qi),r.__reactInternalMemoizedMergedChildContext=e,yt(An),yt(xn),ht(xn,e)):yt(An),ht(An,n)}var mo=null,df=!1,Zp=!1;function Vw(e){mo===null?mo=[e]:mo.push(e)}function NP(e){df=!0,Vw(e)}function vi(){if(!Zp&&mo!==null){Zp=!0;var e=0,t=st;try{var n=mo;for(st=1;e>=a,o-=a,yo=1<<32-Ar(t)+o|n<T?(P=k,k=null):P=k.sibling;var x=f(v,k,m[T],C);if(x===null){k===null&&(k=P);break}e&&k&&x.alternate===null&&t(v,k),S=i(x,S,T),R===null?_=x:R.sibling=x,R=x,k=P}if(T===m.length)return n(v,k),xt&&Pi(v,T),_;if(k===null){for(;TT?(P=k,k=null):P=k.sibling;var $=f(v,k,x.value,C);if($===null){k===null&&(k=P);break}e&&k&&$.alternate===null&&t(v,k),S=i($,S,T),R===null?_=$:R.sibling=$,R=$,k=P}if(x.done)return n(v,k),xt&&Pi(v,T),_;if(k===null){for(;!x.done;T++,x=m.next())x=d(v,x.value,C),x!==null&&(S=i(x,S,T),R===null?_=x:R.sibling=x,R=x);return xt&&Pi(v,T),_}for(k=r(v,k);!x.done;T++,x=m.next())x=p(k,v,T,x.value,C),x!==null&&(e&&x.alternate!==null&&k.delete(x.key===null?T:x.key),S=i(x,S,T),R===null?_=x:R.sibling=x,R=x);return e&&k.forEach(function(I){return t(v,I)}),xt&&Pi(v,T),_}function w(v,S,m,C){if(typeof m=="object"&&m!==null&&m.type===Pa&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case Wc:e:{for(var _=m.key,R=S;R!==null;){if(R.key===_){if(_=m.type,_===Pa){if(R.tag===7){n(v,R.sibling),S=o(R,m.props.children),S.return=v,v=S;break e}}else if(R.elementType===_||typeof _=="object"&&_!==null&&_.$$typeof===Do&&Zv(_)===R.type){n(v,R.sibling),S=o(R,m.props),S.ref=qs(v,R,m),S.return=v,v=S;break e}n(v,R);break}else t(v,R);R=R.sibling}m.type===Pa?(S=Bi(m.props.children,v.mode,C,m.key),S.return=v,v=S):(C=zu(m.type,m.key,m.props,null,v.mode,C),C.ref=qs(v,S,m),C.return=v,v=C)}return a(v);case Ta:e:{for(R=m.key;S!==null;){if(S.key===R)if(S.tag===4&&S.stateNode.containerInfo===m.containerInfo&&S.stateNode.implementation===m.implementation){n(v,S.sibling),S=o(S,m.children||[]),S.return=v,v=S;break e}else{n(v,S);break}else t(v,S);S=S.sibling}S=rg(m,v.mode,C),S.return=v,v=S}return a(v);case Do:return R=m._init,w(v,S,R(m._payload),C)}if(dl(m))return h(v,S,m,C);if(Hs(m))return y(v,S,m,C);tu(v,m)}return typeof m=="string"&&m!==""||typeof m=="number"?(m=""+m,S!==null&&S.tag===6?(n(v,S.sibling),S=o(S,m),S.return=v,v=S):(n(v,S),S=ng(m,v.mode,C),S.return=v,v=S),a(v)):n(v,S)}return w}var os=qw(!0),Kw=qw(!1),bd=mi(null),xd=null,Aa=null,T0=null;function P0(){T0=Aa=xd=null}function k0(e){var t=bd.current;yt(bd),e._currentValue=t}function Fh(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Za(e,t){xd=e,T0=Aa=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(On=!0),e.firstContext=null)}function yr(e){var t=e._currentValue;if(T0!==e)if(e={context:e,memoizedValue:t,next:null},Aa===null){if(xd===null)throw Error(he(308));Aa=e,xd.dependencies={lanes:0,firstContext:e}}else Aa=Aa.next=e;return t}var Li=null;function $0(e){Li===null?Li=[e]:Li.push(e)}function Zw(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,$0(t)):(n.next=o.next,o.next=n),t.interleaved=n,_o(e,r)}function _o(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var jo=!1;function E0(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Qw(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function xo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ii(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Je&2){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,_o(e,n)}return o=r.interleaved,o===null?(t.next=t,$0(r)):(t.next=o.next,o.next=t),r.interleaved=t,_o(e,n)}function Au(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,h0(e,n)}}function Qv(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?o=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?o=i=t:i=i.next=t}else o=i=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Sd(e,t,n,r){var o=e.updateQueue;jo=!1;var i=o.firstBaseUpdate,a=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var l=s,c=l.next;l.next=null,a===null?i=c:a.next=c,a=l;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==a&&(s===null?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(i!==null){var d=o.baseState;a=0,u=c=l=null,s=i;do{var f=s.lane,p=s.eventTime;if((r&f)===f){u!==null&&(u=u.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var h=e,y=s;switch(f=t,p=n,y.tag){case 1:if(h=y.payload,typeof h=="function"){d=h.call(p,d,f);break e}d=h;break e;case 3:h.flags=h.flags&-65537|128;case 0:if(h=y.payload,f=typeof h=="function"?h.call(p,d,f):h,f==null)break e;d=_t({},d,f);break e;case 2:jo=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,f=o.effects,f===null?o.effects=[s]:f.push(s))}else p={eventTime:p,lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(c=u=p,l=d):u=u.next=p,a|=f;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;f=s,s=f.next,f.next=null,o.lastBaseUpdate=f,o.shared.pending=null}}while(!0);if(u===null&&(l=d),o.baseState=l,o.firstBaseUpdate=c,o.lastBaseUpdate=u,t=o.shared.interleaved,t!==null){o=t;do a|=o.lane,o=o.next;while(o!==t)}else i===null&&(o.shared.lanes=0);Qi|=a,e.lanes=a,e.memoizedState=d}}function Yv(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Yp.transition;Yp.transition={};try{e(!1),t()}finally{st=n,Yp.transition=r}}function pC(){return br().memoizedState}function BP(e,t,n){var r=si(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},gC(e))hC(t,n);else if(n=Zw(e,t,n,r),n!==null){var o=kn();Nr(n,e,r,o),mC(n,t,r)}}function zP(e,t,n){var r=si(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(gC(e))hC(t,o);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,s=i(a,n);if(o.hasEagerState=!0,o.eagerState=s,Fr(s,a)){var l=t.interleaved;l===null?(o.next=o,$0(t)):(o.next=l.next,l.next=o),t.interleaved=o;return}}catch{}finally{}n=Zw(e,t,o,r),n!==null&&(o=kn(),Nr(n,e,r,o),mC(n,t,r))}}function gC(e){var t=e.alternate;return e===Ct||t!==null&&t===Ct}function hC(e,t){Cl=Cd=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function mC(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,h0(e,n)}}var _d={readContext:yr,useCallback:fn,useContext:fn,useEffect:fn,useImperativeHandle:fn,useInsertionEffect:fn,useLayoutEffect:fn,useMemo:fn,useReducer:fn,useRef:fn,useState:fn,useDebugValue:fn,useDeferredValue:fn,useTransition:fn,useMutableSource:fn,useSyncExternalStore:fn,useId:fn,unstable_isNewReconciler:!1},HP={readContext:yr,useCallback:function(e,t){return Zr().memoizedState=[e,t===void 0?null:t],e},useContext:yr,useEffect:Jv,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Du(4194308,4,lC.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Du(4194308,4,e,t)},useInsertionEffect:function(e,t){return Du(4,2,e,t)},useMemo:function(e,t){var n=Zr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Zr();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=BP.bind(null,Ct,e),[r.memoizedState,e]},useRef:function(e){var t=Zr();return e={current:e},t.memoizedState=e},useState:Xv,useDebugValue:j0,useDeferredValue:function(e){return Zr().memoizedState=e},useTransition:function(){var e=Xv(!1),t=e[0];return e=FP.bind(null,e[1]),Zr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Ct,o=Zr();if(xt){if(n===void 0)throw Error(he(407));n=n()}else{if(n=t(),en===null)throw Error(he(349));Zi&30||eC(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Jv(nC.bind(null,r,i,e),[e]),r.flags|=2048,ec(9,tC.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Zr(),t=en.identifierPrefix;if(xt){var n=bo,r=yo;n=(r&~(1<<32-Ar(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Xl++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[eo]=t,e[Zl]=r,TC(e,t,!1,!1),t.stateNode=e;e:{switch(a=Sh(n,r),n){case"dialog":vt("cancel",e),vt("close",e),o=r;break;case"iframe":case"object":case"embed":vt("load",e),o=r;break;case"video":case"audio":for(o=0;oss&&(t.flags|=128,r=!0,Ks(i,!1),t.lanes=4194304)}else{if(!r)if(e=wd(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Ks(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!xt)return pn(t),null}else 2*Lt()-i.renderingStartTime>ss&&n!==1073741824&&(t.flags|=128,r=!0,Ks(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Lt(),t.sibling=null,n=wt.current,ht(wt,r?n&1|2:n&1),t):(pn(t),null);case 22:case 23:return W0(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Un&1073741824&&(pn(t),t.subtreeFlags&6&&(t.flags|=8192)):pn(t),null;case 24:return null;case 25:return null}throw Error(he(156,t.tag))}function QP(e,t){switch(_0(t),t.tag){case 1:return Nn(t.type)&&hd(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return is(),yt(An),yt(xn),O0(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return I0(t),null;case 13:if(yt(wt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(he(340));rs()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return yt(wt),null;case 4:return is(),null;case 10:return k0(t.type._context),null;case 22:case 23:return W0(),null;case 24:return null;default:return null}}var ru=!1,yn=!1,YP=typeof WeakSet=="function"?WeakSet:Set,_e=null;function Na(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){It(e,t,r)}else n.current=null}function Kh(e,t,n){try{n()}catch(r){It(e,t,r)}}var uy=!1;function XP(e,t){if(Mh=dd,e=Ow(),w0(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,s=-1,l=-1,c=0,u=0,d=e,f=null;t:for(;;){for(var p;d!==n||o!==0&&d.nodeType!==3||(s=a+o),d!==i||r!==0&&d.nodeType!==3||(l=a+r),d.nodeType===3&&(a+=d.nodeValue.length),(p=d.firstChild)!==null;)f=d,d=p;for(;;){if(d===e)break t;if(f===n&&++c===o&&(s=a),f===i&&++u===r&&(l=a),(p=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=p}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ih={focusedElem:e,selectionRange:n},dd=!1,_e=t;_e!==null;)if(t=_e,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,_e=e;else for(;_e!==null;){t=_e;try{var h=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(h!==null){var y=h.memoizedProps,w=h.memoizedState,v=t.stateNode,S=v.getSnapshotBeforeUpdate(t.elementType===t.type?y:kr(t.type,y),w);v.__reactInternalSnapshotBeforeUpdate=S}break;case 3:var m=t.stateNode.containerInfo;m.nodeType===1?m.textContent="":m.nodeType===9&&m.documentElement&&m.removeChild(m.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(he(163))}}catch(C){It(t,t.return,C)}if(e=t.sibling,e!==null){e.return=t.return,_e=e;break}_e=t.return}return h=uy,uy=!1,h}function _l(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var i=o.destroy;o.destroy=void 0,i!==void 0&&Kh(t,n,i)}o=o.next}while(o!==r)}}function gf(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Zh(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function $C(e){var t=e.alternate;t!==null&&(e.alternate=null,$C(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[eo],delete t[Zl],delete t[Ah],delete t[LP],delete t[AP])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function EC(e){return e.tag===5||e.tag===3||e.tag===4}function dy(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||EC(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Qh(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=gd));else if(r!==4&&(e=e.child,e!==null))for(Qh(e,t,n),e=e.sibling;e!==null;)Qh(e,t,n),e=e.sibling}function Yh(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Yh(e,t,n),e=e.sibling;e!==null;)Yh(e,t,n),e=e.sibling}var rn=null,$r=!1;function Ao(e,t,n){for(n=n.child;n!==null;)MC(e,t,n),n=n.sibling}function MC(e,t,n){if(no&&typeof no.onCommitFiberUnmount=="function")try{no.onCommitFiberUnmount(af,n)}catch{}switch(n.tag){case 5:yn||Na(n,t);case 6:var r=rn,o=$r;rn=null,Ao(e,t,n),rn=r,$r=o,rn!==null&&($r?(e=rn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):rn.removeChild(n.stateNode));break;case 18:rn!==null&&($r?(e=rn,n=n.stateNode,e.nodeType===8?Kp(e.parentNode,n):e.nodeType===1&&Kp(e,n),Wl(e)):Kp(rn,n.stateNode));break;case 4:r=rn,o=$r,rn=n.stateNode.containerInfo,$r=!0,Ao(e,t,n),rn=r,$r=o;break;case 0:case 11:case 14:case 15:if(!yn&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var i=o,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&Kh(n,t,a),o=o.next}while(o!==r)}Ao(e,t,n);break;case 1:if(!yn&&(Na(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){It(n,t,s)}Ao(e,t,n);break;case 21:Ao(e,t,n);break;case 22:n.mode&1?(yn=(r=yn)||n.memoizedState!==null,Ao(e,t,n),yn=r):Ao(e,t,n);break;default:Ao(e,t,n)}}function fy(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new YP),t.forEach(function(r){var o=sk.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function Rr(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=a),r&=~i}if(r=o,r=Lt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ek(r/1960))-r,10e?16:e,Ko===null)var r=!1;else{if(e=Ko,Ko=null,Pd=0,Je&6)throw Error(he(331));var o=Je;for(Je|=4,_e=e.current;_e!==null;){var i=_e,a=i.child;if(_e.flags&16){var s=i.deletions;if(s!==null){for(var l=0;lLt()-H0?Fi(e,0):z0|=n),Dn(e,t)}function FC(e,t){t===0&&(e.mode&1?(t=Kc,Kc<<=1,!(Kc&130023424)&&(Kc=4194304)):t=1);var n=kn();e=_o(e,t),e!==null&&(yc(e,t,n),Dn(e,n))}function ak(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),FC(e,n)}function sk(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(he(314))}r!==null&&r.delete(t),FC(e,n)}var BC;BC=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||An.current)On=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return On=!1,KP(e,t,n);On=!!(e.flags&131072)}else On=!1,xt&&t.flags&1048576&&Ww(t,yd,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ju(e,t),e=t.pendingProps;var o=ns(t,xn.current);Za(t,n),o=A0(null,t,r,e,o,n);var i=N0();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Nn(r)?(i=!0,md(t)):i=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,E0(t),o.updater=pf,t.stateNode=o,o._reactInternals=t,zh(t,r,e,n),t=Wh(null,t,r,!0,i,n)):(t.tag=0,xt&&i&&C0(t),Tn(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ju(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=ck(r),e=kr(r,e),o){case 0:t=Vh(null,t,r,e,n);break e;case 1:t=sy(null,t,r,e,n);break e;case 11:t=iy(null,t,r,e,n);break e;case 14:t=ay(null,t,r,kr(r.type,e),n);break e}throw Error(he(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:kr(r,o),Vh(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:kr(r,o),sy(e,t,r,o,n);case 3:e:{if(CC(t),e===null)throw Error(he(387));r=t.pendingProps,i=t.memoizedState,o=i.element,Qw(e,t),Sd(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){o=as(Error(he(423)),t),t=ly(e,t,r,n,o);break e}else if(r!==o){o=as(Error(he(424)),t),t=ly(e,t,r,n,o);break e}else for(Zn=oi(t.stateNode.containerInfo.firstChild),Qn=t,xt=!0,Mr=null,n=Kw(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(rs(),r===o){t=Ro(e,t,n);break e}Tn(e,t,r,n)}t=t.child}return t;case 5:return Yw(t),e===null&&jh(t),r=t.type,o=t.pendingProps,i=e!==null?e.memoizedProps:null,a=o.children,Oh(r,o)?a=null:i!==null&&Oh(r,i)&&(t.flags|=32),wC(e,t),Tn(e,t,a,n),t.child;case 6:return e===null&&jh(t),null;case 13:return _C(e,t,n);case 4:return M0(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=os(t,null,r,n):Tn(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:kr(r,o),iy(e,t,r,o,n);case 7:return Tn(e,t,t.pendingProps,n),t.child;case 8:return Tn(e,t,t.pendingProps.children,n),t.child;case 12:return Tn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,a=o.value,ht(bd,r._currentValue),r._currentValue=a,i!==null)if(Fr(i.value,a)){if(i.children===o.children&&!An.current){t=Ro(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){a=i.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(i.tag===1){l=xo(-1,n&-n),l.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var u=c.pending;u===null?l.next=l:(l.next=u.next,u.next=l),c.pending=l}}i.lanes|=n,l=i.alternate,l!==null&&(l.lanes|=n),Fh(i.return,n,t),s.lanes|=n;break}l=l.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(he(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),Fh(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Tn(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Za(t,n),o=yr(o),r=r(o),t.flags|=1,Tn(e,t,r,n),t.child;case 14:return r=t.type,o=kr(r,t.pendingProps),o=kr(r.type,o),ay(e,t,r,o,n);case 15:return xC(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:kr(r,o),ju(e,t),t.tag=1,Nn(r)?(e=!0,md(t)):e=!1,Za(t,n),vC(t,r,o),zh(t,r,o,n),Wh(null,t,r,!0,e,n);case 19:return RC(e,t,n);case 22:return SC(e,t,n)}throw Error(he(156,t.tag))};function zC(e,t){return gw(e,t)}function lk(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function gr(e,t,n,r){return new lk(e,t,n,r)}function G0(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ck(e){if(typeof e=="function")return G0(e)?1:0;if(e!=null){if(e=e.$$typeof,e===d0)return 11;if(e===f0)return 14}return 2}function li(e,t){var n=e.alternate;return n===null?(n=gr(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function zu(e,t,n,r,o,i){var a=2;if(r=e,typeof e=="function")G0(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Pa:return Bi(n.children,o,i,t);case u0:a=8,o|=8;break;case dh:return e=gr(12,n,t,o|2),e.elementType=dh,e.lanes=i,e;case fh:return e=gr(13,n,t,o),e.elementType=fh,e.lanes=i,e;case ph:return e=gr(19,n,t,o),e.elementType=ph,e.lanes=i,e;case YS:return mf(n,o,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ZS:a=10;break e;case QS:a=9;break e;case d0:a=11;break e;case f0:a=14;break e;case Do:a=16,r=null;break e}throw Error(he(130,e==null?e:typeof e,""))}return t=gr(a,n,t,o),t.elementType=e,t.type=r,t.lanes=i,t}function Bi(e,t,n,r){return e=gr(7,e,r,t),e.lanes=n,e}function mf(e,t,n,r){return e=gr(22,e,r,t),e.elementType=YS,e.lanes=n,e.stateNode={isHidden:!1},e}function ng(e,t,n){return e=gr(6,e,null,t),e.lanes=n,e}function rg(e,t,n){return t=gr(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function uk(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Dp(0),this.expirationTimes=Dp(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Dp(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function q0(e,t,n,r,o,i,a,s,l){return e=new uk(e,t,n,s,l),t===1?(t=1,i===!0&&(t|=8)):t=0,i=gr(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},E0(i),e}function dk(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(UC)}catch(e){console.error(e)}}UC(),US.exports=nr;var Y0=US.exports;const au=$o(Y0);var GC,xy=Y0;GC=xy.createRoot,xy.hydrateRoot;/** + * @remix-run/router v1.21.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function nc(){return nc=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function qC(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function vk(){return Math.random().toString(36).substr(2,8)}function wy(e,t){return{usr:e.state,key:e.key,idx:t}}function nm(e,t,n,r){return n===void 0&&(n=null),nc({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ps(t):t,{state:n,key:t&&t.key||r||vk()})}function Ed(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Ps(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function yk(e,t,n,r){r===void 0&&(r={});let{window:o=document.defaultView,v5Compat:i=!1}=r,a=o.history,s=Zo.Pop,l=null,c=u();c==null&&(c=0,a.replaceState(nc({},a.state,{idx:c}),""));function u(){return(a.state||{idx:null}).idx}function d(){s=Zo.Pop;let w=u(),v=w==null?null:w-c;c=w,l&&l({action:s,location:y.location,delta:v})}function f(w,v){s=Zo.Push;let S=nm(y.location,w,v);c=u()+1;let m=wy(S,c),C=y.createHref(S);try{a.pushState(m,"",C)}catch(_){if(_ instanceof DOMException&&_.name==="DataCloneError")throw _;o.location.assign(C)}i&&l&&l({action:s,location:y.location,delta:1})}function p(w,v){s=Zo.Replace;let S=nm(y.location,w,v);c=u();let m=wy(S,c),C=y.createHref(S);a.replaceState(m,"",C),i&&l&&l({action:s,location:y.location,delta:0})}function h(w){let v=o.location.origin!=="null"?o.location.origin:o.location.href,S=typeof w=="string"?w:Ed(w);return S=S.replace(/ $/,"%20"),Ot(v,"No window.location.(origin|href) available to create URL for href: "+S),new URL(S,v)}let y={get action(){return s},get location(){return e(o,a)},listen(w){if(l)throw new Error("A history only accepts one active listener");return o.addEventListener(Sy,d),l=w,()=>{o.removeEventListener(Sy,d),l=null}},createHref(w){return t(o,w)},createURL:h,encodeLocation(w){let v=h(w);return{pathname:v.pathname,search:v.search,hash:v.hash}},push:f,replace:p,go(w){return a.go(w)}};return y}var Cy;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Cy||(Cy={}));function bk(e,t,n){return n===void 0&&(n="/"),xk(e,t,n,!1)}function xk(e,t,n,r){let o=typeof t=="string"?Ps(t):t,i=ls(o.pathname||"/",n);if(i==null)return null;let a=KC(e);Sk(a);let s=null;for(let l=0;s==null&&l{let l={relativePath:s===void 0?i.path||"":s,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};l.relativePath.startsWith("/")&&(Ot(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let c=ci([r,l.relativePath]),u=n.concat(l);i.children&&i.children.length>0&&(Ot(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),KC(i.children,t,u,c)),!(i.path==null&&!i.index)&&t.push({path:c,score:kk(c,i.index),routesMeta:u})};return e.forEach((i,a)=>{var s;if(i.path===""||!((s=i.path)!=null&&s.includes("?")))o(i,a);else for(let l of ZC(i.path))o(i,a,l)}),t}function ZC(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return o?[i,""]:[i];let a=ZC(r.join("/")),s=[];return s.push(...a.map(l=>l===""?i:[i,l].join("/"))),o&&s.push(...a),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function Sk(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:$k(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const wk=/^:[\w-]+$/,Ck=3,_k=2,Rk=1,Tk=10,Pk=-2,_y=e=>e==="*";function kk(e,t){let n=e.split("/"),r=n.length;return n.some(_y)&&(r+=Pk),t&&(r+=_k),n.filter(o=>!_y(o)).reduce((o,i)=>o+(wk.test(i)?Ck:i===""?Rk:Tk),r)}function $k(e,t){return e.length===t.length&&e.slice(0,-1).every((r,o)=>r===t[o])?e[e.length-1]-t[t.length-1]:0}function Ek(e,t,n){let{routesMeta:r}=e,o={},i="/",a=[];for(let s=0;s{let{paramName:f,isOptional:p}=u;if(f==="*"){let y=s[d]||"";a=i.slice(0,i.length-y.length).replace(/(.)\/+$/,"$1")}const h=s[d];return p&&!h?c[f]=void 0:c[f]=(h||"").replace(/%2F/g,"/"),c},{}),pathname:i,pathnameBase:a,pattern:e}}function Mk(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),qC(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,s,l)=>(r.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":e!==""&&e!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),r]}function Ik(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return qC(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function ls(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function Ok(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:o=""}=typeof e=="string"?Ps(e):e;return{pathname:n?n.startsWith("/")?n:Lk(n,t):t,search:Dk(r),hash:jk(o)}}function Lk(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(o=>{o===".."?n.length>1&&n.pop():o!=="."&&n.push(o)}),n.length>1?n.join("/"):"/"}function og(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function Ak(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function QC(e,t){let n=Ak(e);return t?n.map((r,o)=>o===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function YC(e,t,n,r){r===void 0&&(r=!1);let o;typeof e=="string"?o=Ps(e):(o=nc({},e),Ot(!o.pathname||!o.pathname.includes("?"),og("?","pathname","search",o)),Ot(!o.pathname||!o.pathname.includes("#"),og("#","pathname","hash",o)),Ot(!o.search||!o.search.includes("#"),og("#","search","hash",o)));let i=e===""||o.pathname==="",a=i?"/":o.pathname,s;if(a==null)s=n;else{let d=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),d-=1;o.pathname=f.join("/")}s=d>=0?t[d]:"/"}let l=Ok(o,s),c=a&&a!=="/"&&a.endsWith("/"),u=(i||a===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(c||u)&&(l.pathname+="/"),l}const ci=e=>e.join("/").replace(/\/\/+/g,"/"),Nk=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Dk=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,jk=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function Fk(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const XC=["post","put","patch","delete"];new Set(XC);const Bk=["get",...XC];new Set(Bk);/** + * React Router v6.28.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function rc(){return rc=Object.assign?Object.assign.bind():function(e){for(var t=1;t{s.current=!0}),b.useCallback(function(c,u){if(u===void 0&&(u={}),!s.current)return;if(typeof c=="number"){r.go(c);return}let d=YC(c,JSON.parse(a),i,u.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:ci([t,d.pathname])),(u.replace?r.replace:r.push)(d,u.state,u)},[t,r,a,i,e])}function Vk(){let{matches:e}=b.useContext(bi),t=e[e.length-1];return t?t.params:{}}function Cf(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=b.useContext(yi),{matches:o}=b.useContext(bi),{pathname:i}=ks(),a=JSON.stringify(QC(o,r.v7_relativeSplatPath));return b.useMemo(()=>YC(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function Wk(e,t){return Uk(e,t)}function Uk(e,t,n,r){wc()||Ot(!1);let{navigator:o}=b.useContext(yi),{matches:i}=b.useContext(bi),a=i[i.length-1],s=a?a.params:{};a&&a.pathname;let l=a?a.pathnameBase:"/";a&&a.route;let c=ks(),u;if(t){var d;let w=typeof t=="string"?Ps(t):t;l==="/"||(d=w.pathname)!=null&&d.startsWith(l)||Ot(!1),u=w}else u=c;let f=u.pathname||"/",p=f;if(l!=="/"){let w=l.replace(/^\//,"").split("/");p="/"+f.replace(/^\//,"").split("/").slice(w.length).join("/")}let h=bk(e,{pathname:p}),y=Qk(h&&h.map(w=>Object.assign({},w,{params:Object.assign({},s,w.params),pathname:ci([l,o.encodeLocation?o.encodeLocation(w.pathname).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?l:ci([l,o.encodeLocation?o.encodeLocation(w.pathnameBase).pathname:w.pathnameBase])})),i,n,r);return t&&y?b.createElement(wf.Provider,{value:{location:rc({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:Zo.Pop}},y):y}function Gk(){let e=e4(),t=Fk(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,o={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},t),n?b.createElement("pre",{style:o},n):null,null)}const qk=b.createElement(Gk,null);class Kk extends b.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?b.createElement(bi.Provider,{value:this.props.routeContext},b.createElement(e2.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Zk(e){let{routeContext:t,match:n,children:r}=e,o=b.useContext(Sf);return o&&o.static&&o.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=n.route.id),b.createElement(bi.Provider,{value:t},r)}function Qk(e,t,n,r){var o;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,s=(o=n)==null?void 0:o.errors;if(s!=null){let u=a.findIndex(d=>d.route.id&&(s==null?void 0:s[d.route.id])!==void 0);u>=0||Ot(!1),a=a.slice(0,Math.min(a.length,u+1))}let l=!1,c=-1;if(n&&r&&r.v7_partialHydration)for(let u=0;u=0?a=a.slice(0,c+1):a=[a[0]];break}}}return a.reduceRight((u,d,f)=>{let p,h=!1,y=null,w=null;n&&(p=s&&d.route.id?s[d.route.id]:void 0,y=d.route.errorElement||qk,l&&(c<0&&f===0?(h=!0,w=null):c===f&&(h=!0,w=d.route.hydrateFallbackElement||null)));let v=t.concat(a.slice(0,f+1)),S=()=>{let m;return p?m=y:h?m=w:d.route.Component?m=b.createElement(d.route.Component,null):d.route.element?m=d.route.element:m=u,b.createElement(Zk,{match:d,routeContext:{outlet:u,matches:v,isDataRoute:n!=null},children:m})};return n&&(d.route.ErrorBoundary||d.route.errorElement||f===0)?b.createElement(Kk,{location:n.location,revalidation:n.revalidation,component:y,error:p,children:S(),routeContext:{outlet:null,matches:v,isDataRoute:!0}}):S()},null)}var n2=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(n2||{}),Id=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Id||{});function Yk(e){let t=b.useContext(Sf);return t||Ot(!1),t}function Xk(e){let t=b.useContext(JC);return t||Ot(!1),t}function Jk(e){let t=b.useContext(bi);return t||Ot(!1),t}function r2(e){let t=Jk(),n=t.matches[t.matches.length-1];return n.route.id||Ot(!1),n.route.id}function e4(){var e;let t=b.useContext(e2),n=Xk(Id.UseRouteError),r=r2(Id.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function t4(){let{router:e}=Yk(n2.UseNavigateStable),t=r2(Id.UseNavigateStable),n=b.useRef(!1);return t2(()=>{n.current=!0}),b.useCallback(function(o,i){i===void 0&&(i={}),n.current&&(typeof o=="number"?e.navigate(o):e.navigate(o,rc({fromRouteId:t},i)))},[e,t])}const Ry={};function n4(e,t){Ry[t]||(Ry[t]=!0,console.warn(t))}const Ty=(e,t,n)=>n4(e,"⚠️ React Router Future Flag Warning: "+t+". "+("You can use the `"+e+"` future flag to opt-in early. ")+("For more information, see "+n+"."));function r4(e,t){e!=null&&e.v7_startTransition||Ty("v7_startTransition","React Router will begin wrapping state updates in `React.startTransition` in v7","https://reactrouter.com/v6/upgrading/future#v7_starttransition"),!(e!=null&&e.v7_relativeSplatPath)&&!t&&Ty("v7_relativeSplatPath","Relative route resolution within Splat routes is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath")}function o2(e){Ot(!1)}function o4(e){let{basename:t="/",children:n=null,location:r,navigationType:o=Zo.Pop,navigator:i,static:a=!1,future:s}=e;wc()&&Ot(!1);let l=t.replace(/^\/*/,"/"),c=b.useMemo(()=>({basename:l,navigator:i,static:a,future:rc({v7_relativeSplatPath:!1},s)}),[l,s,i,a]);typeof r=="string"&&(r=Ps(r));let{pathname:u="/",search:d="",hash:f="",state:p=null,key:h="default"}=r,y=b.useMemo(()=>{let w=ls(u,l);return w==null?null:{location:{pathname:w,search:d,hash:f,state:p,key:h},navigationType:o}},[l,u,d,f,p,h,o]);return y==null?null:b.createElement(yi.Provider,{value:c},b.createElement(wf.Provider,{children:n,value:y}))}function i4(e){let{children:t,location:n}=e;return Wk(rm(t),n)}new Promise(()=>{});function rm(e,t){t===void 0&&(t=[]);let n=[];return b.Children.forEach(e,(r,o)=>{if(!b.isValidElement(r))return;let i=[...t,o];if(r.type===b.Fragment){n.push.apply(n,rm(r.props.children,i));return}r.type!==o2&&Ot(!1),!r.props.index||!r.props.children||Ot(!1);let a={id:r.props.id||i.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(a.children=rm(r.props.children,i)),n.push(a)}),n}/** + * React Router DOM v6.28.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Od(){return Od=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[o]=e[o]);return n}function a4(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function s4(e,t){return e.button===0&&(!t||t==="_self")&&!a4(e)}function om(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(o=>[n,o]):[[n,r]])},[]))}function l4(e,t){let n=om(e);return t&&t.forEach((r,o)=>{n.has(o)||t.getAll(o).forEach(i=>{n.append(o,i)})}),n}const c4=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],u4=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],d4="6";try{window.__reactRouterVersion=d4}catch{}const f4=b.createContext({isTransitioning:!1}),p4="startTransition",Py=id[p4];function g4(e){let{basename:t,children:n,future:r,window:o}=e,i=b.useRef();i.current==null&&(i.current=mk({window:o,v5Compat:!0}));let a=i.current,[s,l]=b.useState({action:a.action,location:a.location}),{v7_startTransition:c}=r||{},u=b.useCallback(d=>{c&&Py?Py(()=>l(d)):l(d)},[l,c]);return b.useLayoutEffect(()=>a.listen(u),[a,u]),b.useEffect(()=>r4(r),[r]),b.createElement(o4,{basename:t,children:n,location:s.location,navigationType:s.action,navigator:a,future:r})}const h4=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",m4=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,a2=b.forwardRef(function(t,n){let{onClick:r,relative:o,reloadDocument:i,replace:a,state:s,target:l,to:c,preventScrollReset:u,viewTransition:d}=t,f=i2(t,c4),{basename:p}=b.useContext(yi),h,y=!1;if(typeof c=="string"&&m4.test(c)&&(h=c,h4))try{let m=new URL(window.location.href),C=c.startsWith("//")?new URL(m.protocol+c):new URL(c),_=ls(C.pathname,p);C.origin===m.origin&&_!=null?c=_+C.search+C.hash:y=!0}catch{}let w=zk(c,{relative:o}),v=b4(c,{replace:a,state:s,target:l,preventScrollReset:u,relative:o,viewTransition:d});function S(m){r&&r(m),m.defaultPrevented||v(m)}return b.createElement("a",Od({},f,{href:h||w,onClick:y||i?r:S,ref:n,target:l}))}),v4=b.forwardRef(function(t,n){let{"aria-current":r="page",caseSensitive:o=!1,className:i="",end:a=!1,style:s,to:l,viewTransition:c,children:u}=t,d=i2(t,u4),f=Cf(l,{relative:d.relative}),p=ks(),h=b.useContext(JC),{navigator:y,basename:w}=b.useContext(yi),v=h!=null&&S4(f)&&c===!0,S=y.encodeLocation?y.encodeLocation(f).pathname:f.pathname,m=p.pathname,C=h&&h.navigation&&h.navigation.location?h.navigation.location.pathname:null;o||(m=m.toLowerCase(),C=C?C.toLowerCase():null,S=S.toLowerCase()),C&&w&&(C=ls(C,w)||C);const _=S!=="/"&&S.endsWith("/")?S.length-1:S.length;let R=m===S||!a&&m.startsWith(S)&&m.charAt(_)==="/",k=C!=null&&(C===S||!a&&C.startsWith(S)&&C.charAt(S.length)==="/"),T={isActive:R,isPending:k,isTransitioning:v},P=R?r:void 0,x;typeof i=="function"?x=i(T):x=[i,R?"active":null,k?"pending":null,v?"transitioning":null].filter(Boolean).join(" ");let $=typeof s=="function"?s(T):s;return b.createElement(a2,Od({},d,{"aria-current":P,className:x,ref:n,style:$,to:l,viewTransition:c}),typeof u=="function"?u(T):u)});var im;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(im||(im={}));var ky;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(ky||(ky={}));function y4(e){let t=b.useContext(Sf);return t||Ot(!1),t}function b4(e,t){let{target:n,replace:r,state:o,preventScrollReset:i,relative:a,viewTransition:s}=t===void 0?{}:t,l=X0(),c=ks(),u=Cf(e,{relative:a});return b.useCallback(d=>{if(s4(d,n)){d.preventDefault();let f=r!==void 0?r:Ed(c)===Ed(u);l(e,{replace:f,state:o,preventScrollReset:i,relative:a,viewTransition:s})}},[c,l,u,r,o,n,e,i,a,s])}function x4(e){let t=b.useRef(om(e)),n=b.useRef(!1),r=ks(),o=b.useMemo(()=>l4(r.search,n.current?null:t.current),[r.search]),i=X0(),a=b.useCallback((s,l)=>{const c=om(typeof s=="function"?s(o):s);n.current=!0,i("?"+c,l)},[i,o]);return[o,a]}function S4(e,t){t===void 0&&(t={});let n=b.useContext(f4);n==null&&Ot(!1);let{basename:r}=y4(im.useViewTransitionState),o=Cf(e,{relative:t.relative});if(!n.isTransitioning)return!1;let i=ls(n.currentLocation.pathname,r)||n.currentLocation.pathname,a=ls(n.nextLocation.pathname,r)||n.nextLocation.pathname;return Md(o.pathname,a)!=null||Md(o.pathname,i)!=null}var $y;(function(e){e.Bool="Bool",e.Int8="Int8",e.Int16="Int16",e.Int32="Int32",e.Int64="Int64",e.Float="Float",e.Double="Double",e.String="String",e.VarChar="VarChar",e.JSON="JSON",e.BinaryVector="BinaryVector",e.FloatVector="FloatVector",e.Array="Array"})($y||($y={}));var Ey;(function(e){e[e.Bool=1]="Bool",e[e.Int8=2]="Int8",e[e.Int16=3]="Int16",e[e.Int32=4]="Int32",e[e.Int64=5]="Int64",e[e.Float=10]="Float",e[e.Double=11]="Double",e[e.VarChar=21]="VarChar",e[e.Array=22]="Array",e[e.JSON=23]="JSON",e[e.BinaryVector=100]="BinaryVector",e[e.FloatVector=101]="FloatVector"})(Ey||(Ey={}));var My;(function(e){e.L2="L2",e.IP="IP",e.COSINE="COSINE",e.HAMMING="HAMMING",e.JACCARD="JACCARD",e.TANIMOTO="TANIMOTO",e.SUBSTRUCTURE="SUBSTRUCTURE",e.SUPERSTRUCTURE="SUPERSTRUCTURE"})(My||(My={}));var Iy;(function(e){e.L2="Euclidean",e.IP="Inner product",e.COSINE="Cosine"})(Iy||(Iy={}));var Oy;(function(e){e.IVF_FLAT="IVF_FLAT",e.IVF_PQ="IVF_PQ",e.IVF_SQ8="IVF_SQ8",e.FLAT="FLAT",e.HNSW="HNSW",e.ANNOY="ANNOY",e.IVF_HNSW="IVF_HNSW",e.RHNSW_FLAT="RHNSW_FLAT",e.RHNSW_SQ="RHNSW_SQ",e.RHNSW_PQ="RHNSW_PQ",e.BIN_FLAT="BIN_FLAT",e.BIN_IVF_FLAT="BIN_IVF_FLAT",e.TRIE="TRIE",e.STL_SORT="STL_SORT"})(Oy||(Oy={}));var s2=60,l2=s2*60,c2=l2*24,w4=c2*7,cs=1e3,ig=s2*cs,Ly=l2*cs,C4=c2*cs,_4=w4*cs,J0="millisecond",ja="second",Fa="minute",Ba="hour",Fo="day",Hu="week",Er="month",u2="quarter",Bo="year",za="date",R4="YYYY-MM-DDTHH:mm:ssZ",Ay="Invalid Date",T4=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,P4=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;const k4={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var n=["th","st","nd","rd"],r=t%100;return"["+t+(n[(r-20)%10]||n[r]||n[0])+"]"}};var am=function(t,n,r){var o=String(t);return!o||o.length>=n?t:""+Array(n+1-o.length).join(r)+t},$4=function(t){var n=-t.utcOffset(),r=Math.abs(n),o=Math.floor(r/60),i=r%60;return(n<=0?"+":"-")+am(o,2,"0")+":"+am(i,2,"0")},E4=function e(t,n){if(t.date()1)return e(a[0])}else{var s=t.name;zi[s]=t,o=s}return!r&&o&&(Pl=o),o||!r&&Pl},tt=function(t,n){if(e1(t))return t.clone();var r=typeof n=="object"?n:{};return r.date=t,r.args=arguments,new _f(r)},A4=function(t,n){return tt(t,{locale:n.$L,utc:n.$u,x:n.$x,$offset:n.$offset})},ct=L4;ct.l=Ld;ct.i=e1;ct.w=A4;var N4=function(t){var n=t.date,r=t.utc;if(n===null)return new Date(NaN);if(ct.u(n))return new Date;if(n instanceof Date)return new Date(n);if(typeof n=="string"&&!/Z$/i.test(n)){var o=n.match(T4);if(o){var i=o[2]-1||0,a=(o[7]||"0").substring(0,3);return r?new Date(Date.UTC(o[1],i,o[3]||1,o[4]||0,o[5]||0,o[6]||0,a)):new Date(o[1],i,o[3]||1,o[4]||0,o[5]||0,o[6]||0,a)}}return new Date(n)},_f=function(){function e(n){this.$L=Ld(n.locale,null,!0),this.parse(n),this.$x=this.$x||n.x||{},this[d2]=!0}var t=e.prototype;return t.parse=function(r){this.$d=N4(r),this.init()},t.init=function(){var r=this.$d;this.$y=r.getFullYear(),this.$M=r.getMonth(),this.$D=r.getDate(),this.$W=r.getDay(),this.$H=r.getHours(),this.$m=r.getMinutes(),this.$s=r.getSeconds(),this.$ms=r.getMilliseconds()},t.$utils=function(){return ct},t.isValid=function(){return this.$d.toString()!==Ay},t.isSame=function(r,o){var i=tt(r);return this.startOf(o)<=i&&i<=this.endOf(o)},t.isAfter=function(r,o){return tt(r)n.searchParams.append("args[]",r)),`Minified MUI error #${e}; visit ${n} for the full message.`}const Dr="$$material";function sm(e,...t){const n=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(r=>n.searchParams.append("args[]",r)),`Minified MUI error #${e}; visit ${n} for the full message.`}function Ln(){return Ln=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?on($s,--Hn):0,us--,Dt===10&&(us=1,Tf--),Dt}function Yn(){return Dt=Hn2||ac(Dt)>3?"":" "}function e$(e,t){for(;--t&&Yn()&&!(Dt<48||Dt>102||Dt>57&&Dt<65||Dt>70&&Dt<97););return Cc(e,Vu()+(t<6&&oo()==32&&Yn()==32))}function cm(e){for(;Yn();)switch(Dt){case e:return Hn;case 34:case 39:e!==34&&e!==39&&cm(Dt);break;case 40:e===41&&cm(e);break;case 92:Yn();break}return Hn}function t$(e,t){for(;Yn()&&e+Dt!==57;)if(e+Dt===84&&oo()===47)break;return"/*"+Cc(t,Hn-1)+"*"+Rf(e===47?e:Yn())}function n$(e){for(;!ac(oo());)Yn();return Cc(e,Hn)}function r$(e){return x2(Uu("",null,null,null,[""],e=b2(e),0,[0],e))}function Uu(e,t,n,r,o,i,a,s,l){for(var c=0,u=0,d=a,f=0,p=0,h=0,y=1,w=1,v=1,S=0,m="",C=o,_=i,R=r,k=m;w;)switch(h=S,S=Yn()){case 40:if(h!=108&&on(k,d-1)==58){lm(k+=it(Wu(S),"&","&\f"),"&\f")!=-1&&(v=-1);break}case 34:case 39:case 91:k+=Wu(S);break;case 9:case 10:case 13:case 32:k+=J4(h);break;case 92:k+=e$(Vu()-1,7);continue;case 47:switch(oo()){case 42:case 47:su(o$(t$(Yn(),Vu()),t,n),l);break;default:k+="/"}break;case 123*y:s[c++]=Yr(k)*v;case 125*y:case 59:case 0:switch(S){case 0:case 125:w=0;case 59+u:v==-1&&(k=it(k,/\f/g,"")),p>0&&Yr(k)-d&&su(p>32?Dy(k+";",r,n,d-1):Dy(it(k," ","")+";",r,n,d-2),l);break;case 59:k+=";";default:if(su(R=Ny(k,t,n,c,u,o,s,m,C=[],_=[],d),i),S===123)if(u===0)Uu(k,t,R,R,C,i,d,s,_);else switch(f===99&&on(k,3)===110?100:f){case 100:case 108:case 109:case 115:Uu(e,R,R,r&&su(Ny(e,R,R,0,0,o,s,m,o,C=[],d),_),o,_,d,s,r?C:_);break;default:Uu(k,R,R,R,[""],_,0,s,_)}}c=u=p=0,y=v=1,m=k="",d=a;break;case 58:d=1+Yr(k),p=h;default:if(y<1){if(S==123)--y;else if(S==125&&y++==0&&X4()==125)continue}switch(k+=Rf(S),S*y){case 38:v=u>0?1:(k+="\f",-1);break;case 44:s[c++]=(Yr(k)-1)*v,v=1;break;case 64:oo()===45&&(k+=Wu(Yn())),f=oo(),u=d=Yr(m=k+=n$(Vu())),S++;break;case 45:h===45&&Yr(k)==2&&(y=0)}}return i}function Ny(e,t,n,r,o,i,a,s,l,c,u){for(var d=o-1,f=o===0?i:[""],p=r1(f),h=0,y=0,w=0;h0?f[v]+" "+S:it(S,/&\f/g,f[v])))&&(l[w++]=m);return Pf(e,t,n,o===0?t1:s,l,c,u)}function o$(e,t,n){return Pf(e,t,n,h2,Rf(Y4()),ic(e,2,-2),0)}function Dy(e,t,n,r){return Pf(e,t,n,n1,ic(e,0,r),ic(e,r+1,-1),r)}function Ya(e,t){for(var n="",r=r1(e),o=0;o6)switch(on(e,t+1)){case 109:if(on(e,t+4)!==45)break;case 102:return it(e,/(.+:)(.+)-([^]+)/,"$1"+ot+"$2-$3$1"+Ad+(on(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~lm(e,"stretch")?S2(it(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(on(e,t+1)!==115)break;case 6444:switch(on(e,Yr(e)-3-(~lm(e,"!important")&&10))){case 107:return it(e,":",":"+ot)+e;case 101:return it(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+ot+(on(e,14)===45?"inline-":"")+"box$3$1"+ot+"$2$3$1"+hn+"$2box$3")+e}break;case 5936:switch(on(e,t+11)){case 114:return ot+e+hn+it(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return ot+e+hn+it(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return ot+e+hn+it(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return ot+e+hn+e+e}return e}var p$=function(t,n,r,o){if(t.length>-1&&!t.return)switch(t.type){case n1:t.return=S2(t.value,t.length);break;case m2:return Ya([Ys(t,{value:it(t.value,"@","@"+ot)})],o);case t1:if(t.length)return Q4(t.props,function(i){switch(Z4(i,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return Ya([Ys(t,{props:[it(i,/:(read-\w+)/,":"+Ad+"$1")]})],o);case"::placeholder":return Ya([Ys(t,{props:[it(i,/:(plac\w+)/,":"+ot+"input-$1")]}),Ys(t,{props:[it(i,/:(plac\w+)/,":"+Ad+"$1")]}),Ys(t,{props:[it(i,/:(plac\w+)/,hn+"input-$1")]})],o)}return""})}},g$=[p$],h$=function(t){var n=t.key;if(n==="css"){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,function(y){var w=y.getAttribute("data-emotion");w.indexOf(" ")!==-1&&(document.head.appendChild(y),y.setAttribute("data-s",""))})}var o=t.stylisPlugins||g$,i={},a,s=[];a=t.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+n+' "]'),function(y){for(var w=y.getAttribute("data-emotion").split(" "),v=1;v=4;++r,o-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(o){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var P$={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},k$=!1,$$=/[A-Z]|^ms/g,E$=/_EMO_([^_]+?)_([^]*?)_EMO_/g,k2=function(t){return t.charCodeAt(1)===45},Fy=function(t){return t!=null&&typeof t!="boolean"},ag=g2(function(e){return k2(e)?e:e.replace($$,"-$&").toLowerCase()}),By=function(t,n){switch(t){case"animation":case"animationName":if(typeof n=="string")return n.replace(E$,function(r,o,i){return Xr={name:o,styles:i,next:Xr},o})}return P$[t]!==1&&!k2(t)&&typeof n=="number"&&n!==0?n+"px":n},M$="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function sc(e,t,n){if(n==null)return"";var r=n;if(r.__emotion_styles!==void 0)return r;switch(typeof n){case"boolean":return"";case"object":{var o=n;if(o.anim===1)return Xr={name:o.name,styles:o.styles,next:Xr},o.name;var i=n;if(i.styles!==void 0){var a=i.next;if(a!==void 0)for(;a!==void 0;)Xr={name:a.name,styles:a.styles,next:Xr},a=a.next;var s=i.styles+";";return s}return I$(e,t,n)}case"function":{if(e!==void 0){var l=Xr,c=n(e);return Xr=l,sc(e,t,c)}break}}var u=n;if(t==null)return u;var d=t[u];return d!==void 0?d:u}function I$(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o96?D$:j$},Wy=function(t,n,r){var o;if(n){var i=n.shouldForwardProp;o=t.__emotion_forwardProp&&i?function(a){return t.__emotion_forwardProp(a)&&i(a)}:i}return typeof o!="function"&&r&&(o=t.__emotion_forwardProp),o},F$=!1,B$=function(t){var n=t.cache,r=t.serialized,o=t.isStringTag;return T2(n,r,o),L$(function(){return P2(n,r,o)}),null},z$=function e(t,n){var r=t.__emotion_real===t,o=r&&t.__emotion_base||t,i,a;n!==void 0&&(i=n.label,a=n.target);var s=Wy(t,n,r),l=s||Vy(o),c=!l("as");return function(){var u=arguments,d=r&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(i!==void 0&&d.push("label:"+i+";"),u[0]==null||u[0].raw===void 0)d.push.apply(d,u);else{d.push(u[0][0]);for(var f=u.length,p=1;pt(V$(o)?n:o):t;return g.jsx(A$,{styles:r})}/** + * @mui/styled-engine v6.1.6 + * + * @license MIT + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */function O2(e,t){return um(e,t)}function W$(e,t){Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}const Uy=[];function Gy(e){return Uy[0]=e,jf(Uy)}function Wo(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function L2(e){if(!Wo(e))return e;const t={};return Object.keys(e).forEach(n=>{t[n]=L2(e[n])}),t}function So(e,t,n={clone:!0}){const r=n.clone?{...e}:e;return Wo(e)&&Wo(t)&&Object.keys(t).forEach(o=>{Wo(t[o])&&Object.prototype.hasOwnProperty.call(e,o)&&Wo(e[o])?r[o]=So(e[o],t[o],n):n.clone?r[o]=Wo(t[o])?L2(t[o]):t[o]:r[o]=t[o]}),r}const U$=e=>{const t=Object.keys(e).map(n=>({key:n,val:e[n]}))||[];return t.sort((n,r)=>n.val-r.val),t.reduce((n,r)=>({...n,[r.key]:r.val}),{})};function G$(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:r=5,...o}=e,i=U$(t),a=Object.keys(i);function s(f){return`@media (min-width:${typeof t[f]=="number"?t[f]:f}${n})`}function l(f){return`@media (max-width:${(typeof t[f]=="number"?t[f]:f)-r/100}${n})`}function c(f,p){const h=a.indexOf(p);return`@media (min-width:${typeof t[f]=="number"?t[f]:f}${n}) and (max-width:${(h!==-1&&typeof t[a[h]]=="number"?t[a[h]]:p)-r/100}${n})`}function u(f){return a.indexOf(f)+1r.startsWith("@container")).sort((r,o)=>{var a,s;const i=/min-width:\s*([0-9.]+)/;return+(((a=r.match(i))==null?void 0:a[1])||0)-+(((s=o.match(i))==null?void 0:s[1])||0)});return n.length?n.reduce((r,o)=>{const i=t[o];return delete r[o],r[o]=i,r},{...t}):t}function K$(e,t){return t==="@"||t.startsWith("@")&&(e.some(n=>t.startsWith(`@${n}`))||!!t.match(/^@\d/))}function Z$(e,t){const n=t.match(/^@([^/]+)?\/?(.+)?$/);if(!n)return null;const[,r,o]=n,i=Number.isNaN(+r)?r||0:+r;return e.containerQueries(o).up(i)}function Q$(e){const t=(i,a)=>i.replace("@media",a?`@container ${a}`:"@container");function n(i,a){i.up=(...s)=>t(e.breakpoints.up(...s),a),i.down=(...s)=>t(e.breakpoints.down(...s),a),i.between=(...s)=>t(e.breakpoints.between(...s),a),i.only=(...s)=>t(e.breakpoints.only(...s),a),i.not=(...s)=>{const l=t(e.breakpoints.not(...s),a);return l.includes("not all and")?l.replace("not all and ","").replace("min-width:","width<").replace("max-width:","width>").replace("and","or"):l}}const r={},o=i=>(n(r,i),r);return n(o),{...e,containerQueries:o}}const Y$={borderRadius:4};function kl(e,t){return t?So(e,t,{clone:!1}):e}const Bf={xs:0,sm:600,md:900,lg:1200,xl:1536},qy={keys:["xs","sm","md","lg","xl"],up:e=>`@media (min-width:${Bf[e]}px)`},X$={containerQueries:e=>({up:t=>{let n=typeof t=="number"?t:Bf[t]||t;return typeof n=="number"&&(n=`${n}px`),e?`@container ${e} (min-width:${n})`:`@container (min-width:${n})`}})};function Br(e,t,n){const r=e.theme||{};if(Array.isArray(t)){const i=r.breakpoints||qy;return t.reduce((a,s,l)=>(a[i.up(i.keys[l])]=n(t[l]),a),{})}if(typeof t=="object"){const i=r.breakpoints||qy;return Object.keys(t).reduce((a,s)=>{if(K$(i.keys,s)){const l=Z$(r.containerQueries?r:X$,s);l&&(a[l]=n(t[s],s))}else if(Object.keys(i.values||Bf).includes(s)){const l=i.up(s);a[l]=n(t[s],s)}else{const l=s;a[l]=t[l]}return a},{})}return n(t)}function A2(e={}){var n;return((n=e.keys)==null?void 0:n.reduce((r,o)=>{const i=e.up(o);return r[i]={},r},{}))||{}}function N2(e,t){return e.reduce((n,r)=>{const o=n[r];return(!o||Object.keys(o).length===0)&&delete n[r],n},t)}function J$(e,...t){const n=A2(e),r=[n,...t].reduce((o,i)=>So(o,i),{});return N2(Object.keys(n),r)}function e5(e,t){if(typeof e!="object")return{};const n={},r=Object.keys(t);return Array.isArray(e)?r.forEach((o,i)=>{i{e[o]!=null&&(n[o]=!0)}),n}function sg({values:e,breakpoints:t,base:n}){const r=n||e5(e,t),o=Object.keys(r);if(o.length===0)return e;let i;return o.reduce((a,s,l)=>(Array.isArray(e)?(a[s]=e[l]!=null?e[l]:e[i],i=l):typeof e=="object"?(a[s]=e[s]!=null?e[s]:e[i],i=s):a[s]=e,a),{})}function D2(e){if(typeof e!="string")throw new Error(sm(7));return e.charAt(0).toUpperCase()+e.slice(1)}function zf(e,t,n=!0){if(!t||typeof t!="string")return null;if(e&&e.vars&&n){const r=`vars.${t}`.split(".").reduce((o,i)=>o&&o[i]?o[i]:null,e);if(r!=null)return r}return t.split(".").reduce((r,o)=>r&&r[o]!=null?r[o]:null,e)}function Nd(e,t,n,r=n){let o;return typeof e=="function"?o=e(n):Array.isArray(e)?o=e[n]||r:o=zf(e,n)||r,t&&(o=t(o,r,e)),o}function At(e){const{prop:t,cssProperty:n=e.prop,themeKey:r,transform:o}=e,i=a=>{if(a[t]==null)return null;const s=a[t],l=a.theme,c=zf(l,r)||{};return Br(a,s,d=>{let f=Nd(c,o,d);return d===f&&typeof d=="string"&&(f=Nd(c,o,`${t}${d==="default"?"":D2(d)}`,d)),n===!1?f:{[n]:f}})};return i.propTypes={},i.filterProps=[t],i}function t5(e){const t={};return n=>(t[n]===void 0&&(t[n]=e(n)),t[n])}const n5={m:"margin",p:"padding"},r5={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},Ky={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},o5=t5(e=>{if(e.length>2)if(Ky[e])e=Ky[e];else return[e];const[t,n]=e.split(""),r=n5[t],o=r5[n]||"";return Array.isArray(o)?o.map(i=>r+i):[r+o]}),l1=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],c1=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];[...l1,...c1];function _c(e,t,n,r){const o=zf(e,t,!0)??n;return typeof o=="number"||typeof o=="string"?i=>typeof i=="string"?i:typeof o=="string"?`calc(${i} * ${o})`:o*i:Array.isArray(o)?i=>{if(typeof i=="string")return i;const a=Math.abs(i),s=o[a];return i>=0?s:typeof s=="number"?-s:`-${s}`}:typeof o=="function"?o:()=>{}}function Hf(e){return _c(e,"spacing",8)}function Ji(e,t){return typeof t=="string"||t==null?t:e(t)}function i5(e,t){return n=>e.reduce((r,o)=>(r[o]=Ji(t,n),r),{})}function a5(e,t,n,r){if(!t.includes(n))return null;const o=o5(n),i=i5(o,r),a=e[n];return Br(e,a,i)}function j2(e,t){const n=Hf(e.theme);return Object.keys(e).map(r=>a5(e,t,r,n)).reduce(kl,{})}function kt(e){return j2(e,l1)}kt.propTypes={};kt.filterProps=l1;function $t(e){return j2(e,c1)}$t.propTypes={};$t.filterProps=c1;function F2(e=8,t=Hf({spacing:e})){if(e.mui)return e;const n=(...r)=>(r.length===0?[1]:r).map(i=>{const a=t(i);return typeof a=="number"?`${a}px`:a}).join(" ");return n.mui=!0,n}function Vf(...e){const t=e.reduce((r,o)=>(o.filterProps.forEach(i=>{r[i]=o}),r),{}),n=r=>Object.keys(r).reduce((o,i)=>t[i]?kl(o,t[i](r)):o,{});return n.propTypes={},n.filterProps=e.reduce((r,o)=>r.concat(o.filterProps),[]),n}function fr(e){return typeof e!="number"?e:`${e}px solid`}function wr(e,t){return At({prop:e,themeKey:"borders",transform:t})}const s5=wr("border",fr),l5=wr("borderTop",fr),c5=wr("borderRight",fr),u5=wr("borderBottom",fr),d5=wr("borderLeft",fr),f5=wr("borderColor"),p5=wr("borderTopColor"),g5=wr("borderRightColor"),h5=wr("borderBottomColor"),m5=wr("borderLeftColor"),v5=wr("outline",fr),y5=wr("outlineColor"),Wf=e=>{if(e.borderRadius!==void 0&&e.borderRadius!==null){const t=_c(e.theme,"shape.borderRadius",4),n=r=>({borderRadius:Ji(t,r)});return Br(e,e.borderRadius,n)}return null};Wf.propTypes={};Wf.filterProps=["borderRadius"];Vf(s5,l5,c5,u5,d5,f5,p5,g5,h5,m5,Wf,v5,y5);const Uf=e=>{if(e.gap!==void 0&&e.gap!==null){const t=_c(e.theme,"spacing",8),n=r=>({gap:Ji(t,r)});return Br(e,e.gap,n)}return null};Uf.propTypes={};Uf.filterProps=["gap"];const Gf=e=>{if(e.columnGap!==void 0&&e.columnGap!==null){const t=_c(e.theme,"spacing",8),n=r=>({columnGap:Ji(t,r)});return Br(e,e.columnGap,n)}return null};Gf.propTypes={};Gf.filterProps=["columnGap"];const qf=e=>{if(e.rowGap!==void 0&&e.rowGap!==null){const t=_c(e.theme,"spacing",8),n=r=>({rowGap:Ji(t,r)});return Br(e,e.rowGap,n)}return null};qf.propTypes={};qf.filterProps=["rowGap"];const b5=At({prop:"gridColumn"}),x5=At({prop:"gridRow"}),S5=At({prop:"gridAutoFlow"}),w5=At({prop:"gridAutoColumns"}),C5=At({prop:"gridAutoRows"}),_5=At({prop:"gridTemplateColumns"}),R5=At({prop:"gridTemplateRows"}),T5=At({prop:"gridTemplateAreas"}),P5=At({prop:"gridArea"});Vf(Uf,Gf,qf,b5,x5,S5,w5,C5,_5,R5,T5,P5);function Xa(e,t){return t==="grey"?t:e}const k5=At({prop:"color",themeKey:"palette",transform:Xa}),$5=At({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:Xa}),E5=At({prop:"backgroundColor",themeKey:"palette",transform:Xa});Vf(k5,$5,E5);function Kn(e){return e<=1&&e!==0?`${e*100}%`:e}const M5=At({prop:"width",transform:Kn}),u1=e=>{if(e.maxWidth!==void 0&&e.maxWidth!==null){const t=n=>{var o,i,a,s,l;const r=((a=(i=(o=e.theme)==null?void 0:o.breakpoints)==null?void 0:i.values)==null?void 0:a[n])||Bf[n];return r?((l=(s=e.theme)==null?void 0:s.breakpoints)==null?void 0:l.unit)!=="px"?{maxWidth:`${r}${e.theme.breakpoints.unit}`}:{maxWidth:r}:{maxWidth:Kn(n)}};return Br(e,e.maxWidth,t)}return null};u1.filterProps=["maxWidth"];const I5=At({prop:"minWidth",transform:Kn}),O5=At({prop:"height",transform:Kn}),L5=At({prop:"maxHeight",transform:Kn}),A5=At({prop:"minHeight",transform:Kn});At({prop:"size",cssProperty:"width",transform:Kn});At({prop:"size",cssProperty:"height",transform:Kn});const N5=At({prop:"boxSizing"});Vf(M5,u1,I5,O5,L5,A5,N5);const Rc={border:{themeKey:"borders",transform:fr},borderTop:{themeKey:"borders",transform:fr},borderRight:{themeKey:"borders",transform:fr},borderBottom:{themeKey:"borders",transform:fr},borderLeft:{themeKey:"borders",transform:fr},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:fr},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:Wf},color:{themeKey:"palette",transform:Xa},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:Xa},backgroundColor:{themeKey:"palette",transform:Xa},p:{style:$t},pt:{style:$t},pr:{style:$t},pb:{style:$t},pl:{style:$t},px:{style:$t},py:{style:$t},padding:{style:$t},paddingTop:{style:$t},paddingRight:{style:$t},paddingBottom:{style:$t},paddingLeft:{style:$t},paddingX:{style:$t},paddingY:{style:$t},paddingInline:{style:$t},paddingInlineStart:{style:$t},paddingInlineEnd:{style:$t},paddingBlock:{style:$t},paddingBlockStart:{style:$t},paddingBlockEnd:{style:$t},m:{style:kt},mt:{style:kt},mr:{style:kt},mb:{style:kt},ml:{style:kt},mx:{style:kt},my:{style:kt},margin:{style:kt},marginTop:{style:kt},marginRight:{style:kt},marginBottom:{style:kt},marginLeft:{style:kt},marginX:{style:kt},marginY:{style:kt},marginInline:{style:kt},marginInlineStart:{style:kt},marginInlineEnd:{style:kt},marginBlock:{style:kt},marginBlockStart:{style:kt},marginBlockEnd:{style:kt},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:Uf},rowGap:{style:qf},columnGap:{style:Gf},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:Kn},maxWidth:{style:u1},minWidth:{transform:Kn},height:{transform:Kn},maxHeight:{transform:Kn},minHeight:{transform:Kn},boxSizing:{},font:{themeKey:"font"},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}};function D5(...e){const t=e.reduce((r,o)=>r.concat(Object.keys(o)),[]),n=new Set(t);return e.every(r=>n.size===Object.keys(r).length)}function j5(e,t){return typeof e=="function"?e(t):e}function F5(){function e(n,r,o,i){const a={[n]:r,theme:o},s=i[n];if(!s)return{[n]:r};const{cssProperty:l=n,themeKey:c,transform:u,style:d}=s;if(r==null)return null;if(c==="typography"&&r==="inherit")return{[n]:r};const f=zf(o,c)||{};return d?d(a):Br(a,r,h=>{let y=Nd(f,u,h);return h===y&&typeof h=="string"&&(y=Nd(f,u,`${n}${h==="default"?"":D2(h)}`,h)),l===!1?y:{[l]:y}})}function t(n){const{sx:r,theme:o={}}=n||{};if(!r)return null;const i=o.unstable_sxConfig??Rc;function a(s){let l=s;if(typeof s=="function")l=s(o);else if(typeof s!="object")return s;if(!l)return null;const c=A2(o.breakpoints),u=Object.keys(c);let d=c;return Object.keys(l).forEach(f=>{const p=j5(l[f],o);if(p!=null)if(typeof p=="object")if(i[f])d=kl(d,e(f,p,o,i));else{const h=Br({theme:o},p,y=>({[f]:y}));D5(h,p)?d[f]=t({sx:p,theme:o}):d=kl(d,h)}else d=kl(d,e(f,p,o,i))}),q$(o,N2(u,d))}return Array.isArray(r)?r.map(a):a(r)}return t}const fi=F5();fi.filterProps=["sx"];function B5(e,t){var r;const n=this;if(n.vars){if(!((r=n.colorSchemes)!=null&&r[e])||typeof n.getColorSchemeSelector!="function")return{};let o=n.getColorSchemeSelector(e);return o==="&"?t:((o.includes("data-")||o.includes("."))&&(o=`*:where(${o.replace(/\s*&$/,"")}) &`),{[o]:t})}return n.palette.mode===e?t:{}}function Kf(e={},...t){const{breakpoints:n={},palette:r={},spacing:o,shape:i={},...a}=e,s=G$(n),l=F2(o);let c=So({breakpoints:s,direction:"ltr",components:{},palette:{mode:"light",...r},spacing:l,shape:{...Y$,...i}},a);return c=Q$(c),c.applyStyles=B5,c=t.reduce((u,d)=>So(u,d),c),c.unstable_sxConfig={...Rc,...a==null?void 0:a.unstable_sxConfig},c.unstable_sx=function(d){return fi({sx:d,theme:this})},c}function z5(e){return Object.keys(e).length===0}function B2(e=null){const t=b.useContext(Ff);return!t||z5(t)?e:t}const H5=Kf();function Zf(e=H5){return B2(e)}function V5({styles:e,themeId:t,defaultTheme:n={}}){const r=Zf(n),o=typeof e=="function"?e(t&&r[t]||r):e;return g.jsx(I2,{styles:o})}const W5=e=>{var r;const t={systemProps:{},otherProps:{}},n=((r=e==null?void 0:e.theme)==null?void 0:r.unstable_sxConfig)??Rc;return Object.keys(e).forEach(o=>{n[o]?t.systemProps[o]=e[o]:t.otherProps[o]=e[o]}),t};function d1(e){const{sx:t,...n}=e,{systemProps:r,otherProps:o}=W5(n);let i;return Array.isArray(t)?i=[r,...t]:typeof t=="function"?i=(...a)=>{const s=t(...a);return Wo(s)?{...r,...s}:r}:i={...r,...t},{...o,sx:i}}const Zy=e=>e,U5=()=>{let e=Zy;return{configure(t){e=t},generate(t){return e(t)},reset(){e=Zy}}},G5=U5();function z2(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;ts!=="theme"&&s!=="sx"&&s!=="as"})(fi);return b.forwardRef(function(l,c){const u=Zf(n),{className:d,component:f="div",...p}=d1(l);return g.jsx(i,{as:f,ref:c,className:ve(d,o?o(r):r),theme:t&&u[t]||u,...p})})}const K5={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function Z5(e,t,n="Mui"){const r=K5[t];return r?`${n}-${r}`:`${G5.generate(e)}-${t}`}var ut={};/** + * @license React + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var f1=Symbol.for("react.element"),p1=Symbol.for("react.portal"),Qf=Symbol.for("react.fragment"),Yf=Symbol.for("react.strict_mode"),Xf=Symbol.for("react.profiler"),Jf=Symbol.for("react.provider"),ep=Symbol.for("react.context"),Q5=Symbol.for("react.server_context"),tp=Symbol.for("react.forward_ref"),np=Symbol.for("react.suspense"),rp=Symbol.for("react.suspense_list"),op=Symbol.for("react.memo"),ip=Symbol.for("react.lazy"),Y5=Symbol.for("react.offscreen"),H2;H2=Symbol.for("react.module.reference");function Cr(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case f1:switch(e=e.type,e){case Qf:case Xf:case Yf:case np:case rp:return e;default:switch(e=e&&e.$$typeof,e){case Q5:case ep:case tp:case ip:case op:case Jf:return e;default:return t}}case p1:return t}}}ut.ContextConsumer=ep;ut.ContextProvider=Jf;ut.Element=f1;ut.ForwardRef=tp;ut.Fragment=Qf;ut.Lazy=ip;ut.Memo=op;ut.Portal=p1;ut.Profiler=Xf;ut.StrictMode=Yf;ut.Suspense=np;ut.SuspenseList=rp;ut.isAsyncMode=function(){return!1};ut.isConcurrentMode=function(){return!1};ut.isContextConsumer=function(e){return Cr(e)===ep};ut.isContextProvider=function(e){return Cr(e)===Jf};ut.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===f1};ut.isForwardRef=function(e){return Cr(e)===tp};ut.isFragment=function(e){return Cr(e)===Qf};ut.isLazy=function(e){return Cr(e)===ip};ut.isMemo=function(e){return Cr(e)===op};ut.isPortal=function(e){return Cr(e)===p1};ut.isProfiler=function(e){return Cr(e)===Xf};ut.isStrictMode=function(e){return Cr(e)===Yf};ut.isSuspense=function(e){return Cr(e)===np};ut.isSuspenseList=function(e){return Cr(e)===rp};ut.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Qf||e===Xf||e===Yf||e===np||e===rp||e===Y5||typeof e=="object"&&e!==null&&(e.$$typeof===ip||e.$$typeof===op||e.$$typeof===Jf||e.$$typeof===ep||e.$$typeof===tp||e.$$typeof===H2||e.getModuleId!==void 0)};ut.typeOf=Cr;function V2(e){const{variants:t,...n}=e,r={variants:t,style:Gy(n),isProcessed:!0};return r.style===n||t&&t.forEach(o=>{typeof o.style!="function"&&(o.style=Gy(o.style))}),r}const X5=Kf();function lg(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}function J5(e){return e?(t,n)=>n[e]:null}function eE(e,t,n){e.theme=nE(e.theme)?n:e.theme[t]||e.theme}function Gu(e,t){const n=typeof t=="function"?t(e):t;if(Array.isArray(n))return n.flatMap(r=>Gu(e,r));if(Array.isArray(n==null?void 0:n.variants)){let r;if(n.isProcessed)r=n.style;else{const{variants:o,...i}=n;r=i}return W2(e,n.variants,[r])}return n!=null&&n.isProcessed?n.style:n}function W2(e,t,n=[]){var o;let r;e:for(let i=0;i{W$(s,_=>_.filter(R=>R!==fi));const{name:c,slot:u,skipVariantsResolver:d,skipSx:f,overridesResolver:p=J5(oE(u)),...h}=l,y=d!==void 0?d:u&&u!=="Root"&&u!=="root"||!1,w=f||!1;let v=lg;u==="Root"||u==="root"?v=r:u?v=o:rE(s)&&(v=void 0);const S=O2(s,{shouldForwardProp:v,label:tE(),...h}),m=_=>{if(typeof _=="function"&&_.__emotion_real!==_)return function(k){return Gu(k,_)};if(Wo(_)){const R=V2(_);return R.variants?function(T){return Gu(T,R)}:R.style}return _},C=(..._)=>{const R=[],k=_.map(m),T=[];if(R.push(i),c&&p&&T.push(function(I){var A,N;const D=(N=(A=I.theme.components)==null?void 0:A[c])==null?void 0:N.styleOverrides;if(!D)return null;const M={};for(const E in D)M[E]=Gu(I,D[E]);return p(I,M)}),c&&!y&&T.push(function(I){var M,A;const O=I.theme,D=(A=(M=O==null?void 0:O.components)==null?void 0:M[c])==null?void 0:A.variants;return D?W2(I,D):null}),w||T.push(fi),Array.isArray(k[0])){const $=k.shift(),I=new Array(R.length).fill(""),O=new Array(T.length).fill("");let D;D=[...I,...$,...O],D.raw=[...I,...$.raw,...O],R.unshift(D)}const P=[...R,...k,...T],x=S(...P);return s.muiName&&(x.muiName=s.muiName),x};return S.withConfig&&(C.withConfig=S.withConfig),C}}function tE(e,t){return void 0}function nE(e){for(const t in e)return!1;return!0}function rE(e){return typeof e=="string"&&e.charCodeAt(0)>96}function oE(e){return e&&e.charAt(0).toLowerCase()+e.slice(1)}const iE=U2();function Dd(e,t){const n={...t};for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const o=r;if(o==="components"||o==="slots")n[o]={...e[o],...n[o]};else if(o==="componentsProps"||o==="slotProps"){const i=e[o],a=t[o];if(!a)n[o]=i||{};else if(!i)n[o]=a;else{n[o]={...a};for(const s in i)if(Object.prototype.hasOwnProperty.call(i,s)){const l=s;n[o][l]=Dd(i[l],a[l])}}}else n[o]===void 0&&(n[o]=e[o])}return n}function aE(e){const{theme:t,name:n,props:r}=e;return!t||!t.components||!t.components[n]||!t.components[n].defaultProps?r:Dd(t.components[n].defaultProps,r)}function G2({props:e,name:t,defaultTheme:n,themeId:r}){let o=Zf(n);return r&&(o=o[r]||o),aE({theme:o,name:t,props:e})}function sE(e,t=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,n))}function g1(e,t=0,n=1){return sE(e,t,n)}function lE(e){e=e.slice(1);const t=new RegExp(`.{1,${e.length>=6?2:1}}`,"g");let n=e.match(t);return n&&n[0].length===1&&(n=n.map(r=>r+r)),n?`rgb${n.length===4?"a":""}(${n.map((r,o)=>o<3?parseInt(r,16):Math.round(parseInt(r,16)/255*1e3)/1e3).join(", ")})`:""}function pi(e){if(e.type)return e;if(e.charAt(0)==="#")return pi(lE(e));const t=e.indexOf("("),n=e.substring(0,t);if(!["rgb","rgba","hsl","hsla","color"].includes(n))throw new Error(sm(9,e));let r=e.substring(t+1,e.length-1),o;if(n==="color"){if(r=r.split(" "),o=r.shift(),r.length===4&&r[3].charAt(0)==="/"&&(r[3]=r[3].slice(1)),!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(o))throw new Error(sm(10,o))}else r=r.split(",");return r=r.map(i=>parseFloat(i)),{type:n,values:r,colorSpace:o}}const cE=e=>{const t=pi(e);return t.values.slice(0,3).map((n,r)=>t.type.includes("hsl")&&r!==0?`${n}%`:n).join(" ")},gl=(e,t)=>{try{return cE(e)}catch{return e}};function ap(e){const{type:t,colorSpace:n}=e;let{values:r}=e;return t.includes("rgb")?r=r.map((o,i)=>i<3?parseInt(o,10):o):t.includes("hsl")&&(r[1]=`${r[1]}%`,r[2]=`${r[2]}%`),t.includes("color")?r=`${n} ${r.join(" ")}`:r=`${r.join(", ")}`,`${t}(${r})`}function q2(e){e=pi(e);const{values:t}=e,n=t[0],r=t[1]/100,o=t[2]/100,i=r*Math.min(o,1-o),a=(c,u=(c+n/30)%12)=>o-i*Math.max(Math.min(u-3,9-u,1),-1);let s="rgb";const l=[Math.round(a(0)*255),Math.round(a(8)*255),Math.round(a(4)*255)];return e.type==="hsla"&&(s+="a",l.push(t[3])),ap({type:s,values:l})}function dm(e){e=pi(e);let t=e.type==="hsl"||e.type==="hsla"?pi(q2(e)).values:e.values;return t=t.map(n=>(e.type!=="color"&&(n/=255),n<=.03928?n/12.92:((n+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function uE(e,t){const n=dm(e),r=dm(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function Be(e,t){return e=pi(e),t=g1(t),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.type==="color"?e.values[3]=`/${t}`:e.values[3]=t,ap(e)}function lu(e,t,n){try{return Be(e,t)}catch{return e}}function ea(e,t){if(e=pi(e),t=g1(t),e.type.includes("hsl"))e.values[2]*=1-t;else if(e.type.includes("rgb")||e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]*=1-t;return ap(e)}function dt(e,t,n){try{return ea(e,t)}catch{return e}}function ta(e,t){if(e=pi(e),t=g1(t),e.type.includes("hsl"))e.values[2]+=(100-e.values[2])*t;else if(e.type.includes("rgb"))for(let n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]+=(1-e.values[n])*t;return ap(e)}function ft(e,t,n){try{return ta(e,t)}catch{return e}}function dE(e,t=.15){return dm(e)>.5?ea(e,t):ta(e,t)}function cu(e,t,n){try{return dE(e,t)}catch{return e}}const K2=b.createContext(null);function h1(){return b.useContext(K2)}const fE=typeof Symbol=="function"&&Symbol.for,pE=fE?Symbol.for("mui.nested"):"__THEME_NESTED__";function gE(e,t){return typeof t=="function"?t(e):{...e,...t}}function hE(e){const{children:t,theme:n}=e,r=h1(),o=b.useMemo(()=>{const i=r===null?{...n}:gE(r,n);return i!=null&&(i[pE]=r!==null),i},[n,r]);return g.jsx(K2.Provider,{value:o,children:t})}const Z2=b.createContext();function mE({value:e,...t}){return g.jsx(Z2.Provider,{value:e??!0,...t})}const Es=()=>b.useContext(Z2)??!1,Q2=b.createContext(void 0);function vE({value:e,children:t}){return g.jsx(Q2.Provider,{value:e,children:t})}function yE(e){const{theme:t,name:n,props:r}=e;if(!t||!t.components||!t.components[n])return r;const o=t.components[n];return o.defaultProps?Dd(o.defaultProps,r):!o.styleOverrides&&!o.variants?Dd(o,r):r}function bE({props:e,name:t}){const n=b.useContext(Q2);return yE({props:e,name:t,theme:{components:n}})}const Qy={};function Yy(e,t,n,r=!1){return b.useMemo(()=>{const o=e&&t[e]||t;if(typeof n=="function"){const i=n(o),a=e?{...t,[e]:i}:i;return r?()=>a:a}return e?{...t,[e]:n}:{...t,...n}},[e,t,n,r])}function Y2(e){const{children:t,theme:n,themeId:r}=e,o=B2(Qy),i=h1()||Qy,a=Yy(r,o,n),s=Yy(r,i,n,!0),l=a.direction==="rtl";return g.jsx(hE,{theme:s,children:g.jsx(Ff.Provider,{value:a,children:g.jsx(mE,{value:l,children:g.jsx(vE,{value:a==null?void 0:a.components,children:t})})})})}const Xy={theme:void 0};function xE(e){let t,n;return function(o){let i=t;return(i===void 0||o.theme!==n)&&(Xy.theme=o.theme,i=V2(e(Xy)),t=i,n=o.theme),i}}const m1="mode",v1="color-scheme",SE="data-color-scheme";function wE(e){const{defaultMode:t="system",defaultLightColorScheme:n="light",defaultDarkColorScheme:r="dark",modeStorageKey:o=m1,colorSchemeStorageKey:i=v1,attribute:a=SE,colorSchemeNode:s="document.documentElement",nonce:l}=e||{};let c="",u=a;if(a==="class"&&(u=".%s"),a==="data"&&(u="[data-%s]"),u.startsWith(".")){const f=u.substring(1);c+=`${s}.classList.remove('${f}'.replace('%s', light), '${f}'.replace('%s', dark)); + ${s}.classList.add('${f}'.replace('%s', colorScheme));`}const d=u.match(/\[([^\]]+)\]/);if(d){const[f,p]=d[1].split("=");p||(c+=`${s}.removeAttribute('${f}'.replace('%s', light)); + ${s}.removeAttribute('${f}'.replace('%s', dark));`),c+=` + ${s}.setAttribute('${f}'.replace('%s', colorScheme), ${p?`${p}.replace('%s', colorScheme)`:'""'});`}else c+=`${s}.setAttribute('${u}', colorScheme);`;return g.jsx("script",{suppressHydrationWarning:!0,nonce:typeof window>"u"?l:"",dangerouslySetInnerHTML:{__html:`(function() { +try { + let colorScheme = ''; + const mode = localStorage.getItem('${o}') || '${t}'; + const dark = localStorage.getItem('${i}-dark') || '${r}'; + const light = localStorage.getItem('${i}-light') || '${n}'; + if (mode === 'system') { + // handle system mode + const mql = window.matchMedia('(prefers-color-scheme: dark)'); + if (mql.matches) { + colorScheme = dark + } else { + colorScheme = light + } + } + if (mode === 'light') { + colorScheme = light; + } + if (mode === 'dark') { + colorScheme = dark; + } + if (colorScheme) { + ${c} + } +} catch(e){}})();`}},"mui-color-scheme-init")}function Jy(e){if(typeof window<"u"&&typeof window.matchMedia=="function"&&e==="system")return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function X2(e,t){if(e.mode==="light"||e.mode==="system"&&e.systemMode==="light")return t("light");if(e.mode==="dark"||e.mode==="system"&&e.systemMode==="dark")return t("dark")}function CE(e){return X2(e,t=>{if(t==="light")return e.lightColorScheme;if(t==="dark")return e.darkColorScheme})}function cg(e,t){if(typeof window>"u")return;let n;try{n=localStorage.getItem(e)||void 0,n||localStorage.setItem(e,t)}catch{}return n||t}function _E(e){const{defaultMode:t="light",defaultLightColorScheme:n,defaultDarkColorScheme:r,supportedColorSchemes:o=[],modeStorageKey:i=m1,colorSchemeStorageKey:a=v1,storageWindow:s=typeof window>"u"?void 0:window}=e,l=o.join(","),c=o.length>1,[u,d]=b.useState(()=>{const m=cg(i,t),C=cg(`${a}-light`,n),_=cg(`${a}-dark`,r);return{mode:m,systemMode:Jy(m),lightColorScheme:C,darkColorScheme:_}}),[,f]=b.useState(!1),p=b.useRef(!1);b.useEffect(()=>{c&&f(!0),p.current=!0},[c]);const h=CE(u),y=b.useCallback(m=>{d(C=>{if(m===C.mode)return C;const _=m??t;try{localStorage.setItem(i,_)}catch{}return{...C,mode:_,systemMode:Jy(_)}})},[i,t]),w=b.useCallback(m=>{m?typeof m=="string"?m&&!l.includes(m)?console.error(`\`${m}\` does not exist in \`theme.colorSchemes\`.`):d(C=>{const _={...C};return X2(C,R=>{try{localStorage.setItem(`${a}-${R}`,m)}catch{}R==="light"&&(_.lightColorScheme=m),R==="dark"&&(_.darkColorScheme=m)}),_}):d(C=>{const _={...C},R=m.light===null?n:m.light,k=m.dark===null?r:m.dark;if(R)if(!l.includes(R))console.error(`\`${R}\` does not exist in \`theme.colorSchemes\`.`);else{_.lightColorScheme=R;try{localStorage.setItem(`${a}-light`,R)}catch{}}if(k)if(!l.includes(k))console.error(`\`${k}\` does not exist in \`theme.colorSchemes\`.`);else{_.darkColorScheme=k;try{localStorage.setItem(`${a}-dark`,k)}catch{}}return _}):d(C=>{try{localStorage.setItem(`${a}-light`,n),localStorage.setItem(`${a}-dark`,r)}catch{}return{...C,lightColorScheme:n,darkColorScheme:r}})},[l,a,n,r]),v=b.useCallback(m=>{u.mode==="system"&&d(C=>{const _=m!=null&&m.matches?"dark":"light";return C.systemMode===_?C:{...C,systemMode:_}})},[u.mode]),S=b.useRef(v);return S.current=v,b.useEffect(()=>{if(typeof window.matchMedia!="function"||!c)return;const m=(..._)=>S.current(..._),C=window.matchMedia("(prefers-color-scheme: dark)");return C.addListener(m),m(C),()=>{C.removeListener(m)}},[c]),b.useEffect(()=>{if(s&&c){const m=C=>{const _=C.newValue;typeof C.key=="string"&&C.key.startsWith(a)&&(!_||l.match(_))&&(C.key.endsWith("light")&&w({light:_}),C.key.endsWith("dark")&&w({dark:_})),C.key===i&&(!_||["light","dark","system"].includes(_))&&y(_||t)};return s.addEventListener("storage",m),()=>{s.removeEventListener("storage",m)}}},[w,y,i,a,l,t,s,c]),{...u,mode:p.current||!c?u.mode:void 0,systemMode:p.current||!c?u.systemMode:void 0,colorScheme:p.current||!c?h:void 0,setMode:y,setColorScheme:w}}const RE="*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function TE(e){const{themeId:t,theme:n={},modeStorageKey:r=m1,colorSchemeStorageKey:o=v1,disableTransitionOnChange:i=!1,defaultColorScheme:a,resolveTheme:s}=e,l={allColorSchemes:[],colorScheme:void 0,darkColorScheme:void 0,lightColorScheme:void 0,mode:void 0,setColorScheme:()=>{},setMode:()=>{},systemMode:void 0},c=b.createContext(void 0),u=()=>b.useContext(c)||l;function d(y){var ge,le,Se,ye,Ge;const{children:w,theme:v,modeStorageKey:S=r,colorSchemeStorageKey:m=o,disableTransitionOnChange:C=i,storageWindow:_=typeof window>"u"?void 0:window,documentNode:R=typeof document>"u"?void 0:document,colorSchemeNode:k=typeof document>"u"?void 0:document.documentElement,disableNestedContext:T=!1,disableStyleSheetGeneration:P=!1,defaultMode:x="system"}=y,$=b.useRef(!1),I=h1(),O=b.useContext(c),D=!!O&&!T,M=b.useMemo(()=>v||(typeof n=="function"?n():n),[v]),A=M[t],{colorSchemes:N={},components:E={},cssVarPrefix:L,...B}=A||M,H=Object.keys(N).filter(Pe=>!!N[Pe]).join(","),z=b.useMemo(()=>H.split(","),[H]),j=typeof a=="string"?a:a.light,F=typeof a=="string"?a:a.dark,W=N[j]&&N[F]?x:((le=(ge=N[B.defaultColorScheme])==null?void 0:ge.palette)==null?void 0:le.mode)||((Se=B.palette)==null?void 0:Se.mode),{mode:V,setMode:ee,systemMode:re,lightColorScheme:U,darkColorScheme:K,colorScheme:se,setColorScheme:q}=_E({supportedColorSchemes:z,defaultLightColorScheme:j,defaultDarkColorScheme:F,modeStorageKey:S,colorSchemeStorageKey:m,defaultMode:W,storageWindow:_});let ce=V,ue=se;D&&(ce=O.mode,ue=O.colorScheme);const ie=ue||B.defaultColorScheme,te=((ye=B.generateThemeVars)==null?void 0:ye.call(B))||B.vars,de={...B,components:E,colorSchemes:N,cssVarPrefix:L,vars:te};if(typeof de.generateSpacing=="function"&&(de.spacing=de.generateSpacing()),ie){const Pe=N[ie];Pe&&typeof Pe=="object"&&Object.keys(Pe).forEach(Re=>{Pe[Re]&&typeof Pe[Re]=="object"?de[Re]={...de[Re],...Pe[Re]}:de[Re]=Pe[Re]})}const Q=B.colorSchemeSelector;b.useEffect(()=>{if(ue&&k&&Q&&Q!=="media"){const Pe=Q;let Re=Q;if(Pe==="class"&&(Re=".%s"),Pe==="data"&&(Re="[data-%s]"),Pe!=null&&Pe.startsWith("data-")&&!Pe.includes("%s")&&(Re=`[${Pe}="%s"]`),Re.startsWith("."))k.classList.remove(...z.map(ke=>Re.substring(1).replace("%s",ke))),k.classList.add(Re.substring(1).replace("%s",ue));else{const ke=Re.replace("%s",ue).match(/\[([^\]]+)\]/);if(ke){const[pe,ne]=ke[1].split("=");ne||z.forEach(xe=>{k.removeAttribute(pe.replace(ue,xe))}),k.setAttribute(pe,ne?ne.replace(/"|'/g,""):"")}else k.setAttribute(Re,ue)}}},[ue,Q,k,z]),b.useEffect(()=>{let Pe;if(C&&$.current&&R){const Re=R.createElement("style");Re.appendChild(R.createTextNode(RE)),R.head.appendChild(Re),window.getComputedStyle(R.body),Pe=setTimeout(()=>{R.head.removeChild(Re)},1)}return()=>{clearTimeout(Pe)}},[ue,C,R]),b.useEffect(()=>($.current=!0,()=>{$.current=!1}),[]);const be=b.useMemo(()=>({allColorSchemes:z,colorScheme:ue,darkColorScheme:K,lightColorScheme:U,mode:ce,setColorScheme:q,setMode:ee,systemMode:re}),[z,ue,K,U,ce,q,ee,re]);let Te=!0;(P||B.cssVariables===!1||D&&(I==null?void 0:I.cssVarPrefix)===L)&&(Te=!1);const we=g.jsxs(b.Fragment,{children:[g.jsx(Y2,{themeId:A?t:void 0,theme:s?s(de):de,children:w}),Te&&g.jsx(I2,{styles:((Ge=de.generateStyleSheets)==null?void 0:Ge.call(de))||[]})]});return D?we:g.jsx(c.Provider,{value:be,children:we})}const f=typeof a=="string"?a:a.light,p=typeof a=="string"?a:a.dark;return{CssVarsProvider:d,useColorScheme:u,getInitColorSchemeScript:y=>wE({colorSchemeStorageKey:o,defaultLightColorScheme:f,defaultDarkColorScheme:p,modeStorageKey:r,...y})}}function PE(e=""){function t(...r){if(!r.length)return"";const o=r[0];return typeof o=="string"&&!o.match(/(#|\(|\)|(-?(\d*\.)?\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\d*\.)?\d+)$|(\d+ \d+ \d+)/)?`, var(--${e?`${e}-`:""}${o}${t(...r.slice(1))})`:`, ${o}`}return(r,...o)=>`var(--${e?`${e}-`:""}${r}${t(...o)})`}const eb=(e,t,n,r=[])=>{let o=e;t.forEach((i,a)=>{a===t.length-1?Array.isArray(o)?o[Number(i)]=n:o&&typeof o=="object"&&(o[i]=n):o&&typeof o=="object"&&(o[i]||(o[i]=r.includes(i)?[]:{}),o=o[i])})},kE=(e,t,n)=>{function r(o,i=[],a=[]){Object.entries(o).forEach(([s,l])=>{(!n||n&&!n([...i,s]))&&l!=null&&(typeof l=="object"&&Object.keys(l).length>0?r(l,[...i,s],Array.isArray(l)?[...a,s]:a):t([...i,s],l,a))})}r(e)},$E=(e,t)=>typeof t=="number"?["lineHeight","fontWeight","opacity","zIndex"].some(r=>e.includes(r))||e[e.length-1].toLowerCase().includes("opacity")?t:`${t}px`:t;function ug(e,t){const{prefix:n,shouldSkipGeneratingVar:r}=t||{},o={},i={},a={};return kE(e,(s,l,c)=>{if((typeof l=="string"||typeof l=="number")&&(!r||!r(s,l))){const u=`--${n?`${n}-`:""}${s.join("-")}`,d=$E(s,l);Object.assign(o,{[u]:d}),eb(i,s,`var(${u})`,c),eb(a,s,`var(${u}, ${d})`,c)}},s=>s[0]==="vars"),{css:o,vars:i,varsWithDefaults:a}}function EE(e,t={}){const{getSelector:n=w,disableCssColorScheme:r,colorSchemeSelector:o}=t,{colorSchemes:i={},components:a,defaultColorScheme:s="light",...l}=e,{vars:c,css:u,varsWithDefaults:d}=ug(l,t);let f=d;const p={},{[s]:h,...y}=i;if(Object.entries(y||{}).forEach(([m,C])=>{const{vars:_,css:R,varsWithDefaults:k}=ug(C,t);f=So(f,k),p[m]={css:R,vars:_}}),h){const{css:m,vars:C,varsWithDefaults:_}=ug(h,t);f=So(f,_),p[s]={css:m,vars:C}}function w(m,C){var R,k;let _=o;if(o==="class"&&(_=".%s"),o==="data"&&(_="[data-%s]"),o!=null&&o.startsWith("data-")&&!o.includes("%s")&&(_=`[${o}="%s"]`),m){if(_==="media")return e.defaultColorScheme===m?":root":{[`@media (prefers-color-scheme: ${((k=(R=i[m])==null?void 0:R.palette)==null?void 0:k.mode)||m})`]:{":root":C}};if(_)return e.defaultColorScheme===m?`:root, ${_.replace("%s",String(m))}`:_.replace("%s",String(m))}return":root"}return{vars:f,generateThemeVars:()=>{let m={...c};return Object.entries(p).forEach(([,{vars:C}])=>{m=So(m,C)}),m},generateStyleSheets:()=>{var T,P;const m=[],C=e.defaultColorScheme||"light";function _(x,$){Object.keys($).length&&m.push(typeof x=="string"?{[x]:{...$}}:x)}_(n(void 0,{...u}),u);const{[C]:R,...k}=p;if(R){const{css:x}=R,$=(P=(T=i[C])==null?void 0:T.palette)==null?void 0:P.mode,I=!r&&$?{colorScheme:$,...x}:{...x};_(n(C,{...I}),I)}return Object.entries(k).forEach(([x,{css:$}])=>{var D,M;const I=(M=(D=i[x])==null?void 0:D.palette)==null?void 0:M.mode,O=!r&&I?{colorScheme:I,...$}:{...$};_(n(x,{...O}),O)}),m}}}function ME(e){return function(n){return e==="media"?`@media (prefers-color-scheme: ${n})`:e?e.startsWith("data-")&&!e.includes("%s")?`[${e}="${n}"] &`:e==="class"?`.${n} &`:e==="data"?`[data-${n}] &`:`${e.replace("%s",n)} &`:"&"}}function IE(e,t,n=void 0){const r={};for(const o in e){const i=e[o];let a="",s=!0;for(let l=0;lt.root});function AE(e){return G2({props:e,name:"MuiStack",defaultTheme:OE})}function NE(e,t){const n=b.Children.toArray(e).filter(Boolean);return n.reduce((r,o,i)=>(r.push(o),i({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[e],jE=({ownerState:e,theme:t})=>{let n={display:"flex",flexDirection:"column",...Br({theme:t},sg({values:e.direction,breakpoints:t.breakpoints.values}),r=>({flexDirection:r}))};if(e.spacing){const r=Hf(t),o=Object.keys(t.breakpoints.values).reduce((l,c)=>((typeof e.spacing=="object"&&e.spacing[c]!=null||typeof e.direction=="object"&&e.direction[c]!=null)&&(l[c]=!0),l),{}),i=sg({values:e.direction,base:o}),a=sg({values:e.spacing,base:o});typeof i=="object"&&Object.keys(i).forEach((l,c,u)=>{if(!i[l]){const f=c>0?i[u[c-1]]:"column";i[l]=f}}),n=So(n,Br({theme:t},a,(l,c)=>e.useFlexGap?{gap:Ji(r,l)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${DE(c?i[c]:e.direction)}`]:Ji(r,l)}}))}return n=J$(t.breakpoints,n),n};function FE(e={}){const{createStyledComponent:t=LE,useThemeProps:n=AE,componentName:r="MuiStack"}=e,o=()=>IE({root:["root"]},l=>Z5(r,l),{}),i=t(jE);return b.forwardRef(function(l,c){const u=n(l),d=d1(u),{component:f="div",direction:p="column",spacing:h=0,divider:y,children:w,className:v,useFlexGap:S=!1,...m}=d,C={direction:p,spacing:h,useFlexGap:S},_=o();return g.jsx(i,{as:f,ownerState:C,ref:c,className:ve(_.root,v),...m,children:y?NE(w,y):w})})}function Uo(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function J2(e){if(!Uo(e))return e;const t={};return Object.keys(e).forEach(n=>{t[n]=J2(e[n])}),t}function io(e,t,n={clone:!0}){const r=n.clone?{...e}:e;return Uo(e)&&Uo(t)&&Object.keys(t).forEach(o=>{Uo(t[o])&&Object.prototype.hasOwnProperty.call(e,o)&&Uo(e[o])?r[o]=io(e[o],t[o],n):n.clone?r[o]=Uo(t[o])?J2(t[o]):t[o]:r[o]=t[o]}),r}function e_(){return{text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:oc.white,default:oc.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}}}const BE=e_();function t_(){return{text:{primary:oc.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:oc.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}}}const tb=t_();function nb(e,t,n,r){const o=r.light||r,i=r.dark||r*1.5;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:t==="light"?e.light=ta(e.main,o):t==="dark"&&(e.dark=ea(e.main,i)))}function zE(e="light"){return e==="dark"?{main:va[200],light:va[50],dark:va[400]}:{main:va[700],light:va[400],dark:va[800]}}function HE(e="light"){return e==="dark"?{main:ma[200],light:ma[50],dark:ma[400]}:{main:ma[500],light:ma[300],dark:ma[700]}}function VE(e="light"){return e==="dark"?{main:ha[500],light:ha[300],dark:ha[700]}:{main:ha[700],light:ha[400],dark:ha[800]}}function WE(e="light"){return e==="dark"?{main:ya[400],light:ya[300],dark:ya[700]}:{main:ya[700],light:ya[500],dark:ya[900]}}function UE(e="light"){return e==="dark"?{main:ba[400],light:ba[300],dark:ba[700]}:{main:ba[800],light:ba[500],dark:ba[900]}}function GE(e="light"){return e==="dark"?{main:Qs[400],light:Qs[300],dark:Qs[700]}:{main:"#ed6c02",light:Qs[500],dark:Qs[900]}}function y1(e){const{mode:t="light",contrastThreshold:n=3,tonalOffset:r=.2,...o}=e,i=e.primary||zE(t),a=e.secondary||HE(t),s=e.error||VE(t),l=e.info||WE(t),c=e.success||UE(t),u=e.warning||GE(t);function d(y){return uE(y,tb.text.primary)>=n?tb.text.primary:BE.text.primary}const f=({color:y,name:w,mainShade:v=500,lightShade:S=300,darkShade:m=700})=>{if(y={...y},!y.main&&y[v]&&(y.main=y[v]),!y.hasOwnProperty("main"))throw new Error(Xi(11,w?` (${w})`:"",v));if(typeof y.main!="string")throw new Error(Xi(12,w?` (${w})`:"",JSON.stringify(y.main)));return nb(y,"light",S,r),nb(y,"dark",m,r),y.contrastText||(y.contrastText=d(y.main)),y};let p;return t==="light"?p=e_():t==="dark"&&(p=t_()),io({common:{...oc},mode:t,primary:f({color:i,name:"primary"}),secondary:f({color:a,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:f({color:s,name:"error"}),warning:f({color:u,name:"warning"}),info:f({color:l,name:"info"}),success:f({color:c,name:"success"}),grey:D4,contrastThreshold:n,getContrastText:d,augmentColor:f,tonalOffset:r,...p},o)}function qE(e){const t={};return Object.entries(e).forEach(r=>{const[o,i]=r;typeof i=="object"&&(t[o]=`${i.fontStyle?`${i.fontStyle} `:""}${i.fontVariant?`${i.fontVariant} `:""}${i.fontWeight?`${i.fontWeight} `:""}${i.fontStretch?`${i.fontStretch} `:""}${i.fontSize||""}${i.lineHeight?`/${i.lineHeight} `:""}${i.fontFamily||""}`)}),t}const rb=e=>e,KE=()=>{let e=rb;return{configure(t){e=t},generate(t){return e(t)},reset(){e=rb}}},n_=KE(),ZE={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function Oe(e,t,n="Mui"){const r=ZE[t];return r?`${n}-${r}`:`${n_.generate(e)}-${t}`}function QE(e,t){return{toolbar:{minHeight:56,[e.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[e.up("sm")]:{minHeight:64}},...t}}function YE(e){return Math.round(e*1e5)/1e5}const ob={textTransform:"uppercase"},ib='"Roboto", "Helvetica", "Arial", sans-serif';function r_(e,t){const{fontFamily:n=ib,fontSize:r=14,fontWeightLight:o=300,fontWeightRegular:i=400,fontWeightMedium:a=500,fontWeightBold:s=700,htmlFontSize:l=16,allVariants:c,pxToRem:u,...d}=typeof t=="function"?t(e):t,f=r/14,p=u||(w=>`${w/l*f}rem`),h=(w,v,S,m,C)=>({fontFamily:n,fontWeight:w,fontSize:p(v),lineHeight:S,...n===ib?{letterSpacing:`${YE(m/v)}em`}:{},...C,...c}),y={h1:h(o,96,1.167,-1.5),h2:h(o,60,1.2,-.5),h3:h(i,48,1.167,0),h4:h(i,34,1.235,.25),h5:h(i,24,1.334,0),h6:h(a,20,1.6,.15),subtitle1:h(i,16,1.75,.15),subtitle2:h(a,14,1.57,.1),body1:h(i,16,1.5,.15),body2:h(i,14,1.43,.15),button:h(a,14,1.75,.4,ob),caption:h(i,12,1.66,.4),overline:h(i,12,2.66,1,ob),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return io({htmlFontSize:l,pxToRem:p,fontFamily:n,fontSize:r,fontWeightLight:o,fontWeightRegular:i,fontWeightMedium:a,fontWeightBold:s,...y},d,{clone:!1})}const XE=.2,JE=.14,eM=.12;function bt(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,${XE})`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,${JE})`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,${eM})`].join(",")}const tM=["none",bt(0,2,1,-1,0,1,1,0,0,1,3,0),bt(0,3,1,-2,0,2,2,0,0,1,5,0),bt(0,3,3,-2,0,3,4,0,0,1,8,0),bt(0,2,4,-1,0,4,5,0,0,1,10,0),bt(0,3,5,-1,0,5,8,0,0,1,14,0),bt(0,3,5,-1,0,6,10,0,0,1,18,0),bt(0,4,5,-2,0,7,10,1,0,2,16,1),bt(0,5,5,-3,0,8,10,1,0,3,14,2),bt(0,5,6,-3,0,9,12,1,0,3,16,2),bt(0,6,6,-3,0,10,14,1,0,4,18,3),bt(0,6,7,-4,0,11,15,1,0,4,20,3),bt(0,7,8,-4,0,12,17,2,0,5,22,4),bt(0,7,8,-4,0,13,19,2,0,5,24,4),bt(0,7,9,-4,0,14,21,2,0,5,26,4),bt(0,8,9,-5,0,15,22,2,0,6,28,5),bt(0,8,10,-5,0,16,24,2,0,6,30,5),bt(0,8,11,-5,0,17,26,2,0,6,32,5),bt(0,9,11,-5,0,18,28,2,0,7,34,6),bt(0,9,12,-6,0,19,29,2,0,7,36,6),bt(0,10,13,-6,0,20,31,3,0,8,38,7),bt(0,10,13,-6,0,21,33,3,0,8,40,7),bt(0,10,14,-6,0,22,35,3,0,8,42,7),bt(0,11,14,-7,0,23,36,3,0,9,44,8),bt(0,11,15,-7,0,24,38,3,0,9,46,8)],nM={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},o_={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function ab(e){return`${Math.round(e)}ms`}function rM(e){if(!e)return 0;const t=e/36;return Math.min(Math.round((4+15*t**.25+t/5)*10),3e3)}function oM(e){const t={...nM,...e.easing},n={...o_,...e.duration};return{getAutoHeightDuration:rM,create:(o=["all"],i={})=>{const{duration:a=n.standard,easing:s=t.easeInOut,delay:l=0,...c}=i;return(Array.isArray(o)?o:[o]).map(u=>`${u} ${typeof a=="string"?a:ab(a)} ${s} ${typeof l=="string"?l:ab(l)}`).join(",")},...e,easing:t,duration:n}}const iM={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function aM(e){return Uo(e)||typeof e>"u"||typeof e=="string"||typeof e=="boolean"||typeof e=="number"||Array.isArray(e)}function i_(e={}){const t={...e};function n(r){const o=Object.entries(r);for(let i=0;iio(p,h),f),f.unstable_sxConfig={...Rc,...c==null?void 0:c.unstable_sxConfig},f.unstable_sx=function(h){return fi({sx:h,theme:this})},f.toRuntimeSource=i_,f}function pm(e){let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}const sM=[...Array(25)].map((e,t)=>{if(t===0)return"none";const n=pm(t);return`linear-gradient(rgba(255 255 255 / ${n}), rgba(255 255 255 / ${n}))`});function a_(e){return{inputPlaceholder:e==="dark"?.5:.42,inputUnderline:e==="dark"?.7:.42,switchTrackDisabled:e==="dark"?.2:.12,switchTrack:e==="dark"?.3:.38}}function s_(e){return e==="dark"?sM:[]}function lM(e){const{palette:t={mode:"light"},opacity:n,overlays:r,...o}=e,i=y1(t);return{palette:i,opacity:{...a_(i.mode),...n},overlays:r||s_(i.mode),...o}}function cM(e){var t;return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]==="palette"&&!!((t=e[1])!=null&&t.match(/(mode|contrastThreshold|tonalOffset)/))}const uM=e=>[...[...Array(25)].map((t,n)=>`--${e?`${e}-`:""}overlays-${n}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],dM=e=>(t,n)=>{const r=e.rootSelector||":root",o=e.colorSchemeSelector;let i=o;if(o==="class"&&(i=".%s"),o==="data"&&(i="[data-%s]"),o!=null&&o.startsWith("data-")&&!o.includes("%s")&&(i=`[${o}="%s"]`),e.defaultColorScheme===t){if(t==="dark"){const a={};return uM(e.cssVarPrefix).forEach(s=>{a[s]=n[s],delete n[s]}),i==="media"?{[r]:n,"@media (prefers-color-scheme: dark)":{[r]:a}}:i?{[i.replace("%s",t)]:a,[`${r}, ${i.replace("%s",t)}`]:n}:{[r]:{...n,...a}}}if(i&&i!=="media")return`${r}, ${i.replace("%s",String(t))}`}else if(t){if(i==="media")return{[`@media (prefers-color-scheme: ${String(t)})`]:{[r]:n}};if(i)return i.replace("%s",String(t))}return r};function fM(e,t){t.forEach(n=>{e[n]||(e[n]={})})}function Z(e,t,n){!e[t]&&n&&(e[t]=n)}function hl(e){return!e||!e.startsWith("hsl")?e:q2(e)}function co(e,t){`${t}Channel`in e||(e[`${t}Channel`]=gl(hl(e[t]),`MUI: Can't create \`palette.${t}Channel\` because \`palette.${t}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color(). +To suppress this warning, you need to explicitly provide the \`palette.${t}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function pM(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}const qr=e=>{try{return e()}catch{}},gM=(e="mui")=>PE(e);function dg(e,t,n,r){if(!t)return;t=t===!0?{}:t;const o=r==="dark"?"dark":"light";if(!n){e[r]=lM({...t,palette:{mode:o,...t==null?void 0:t.palette}});return}const{palette:i,...a}=fm({...n,palette:{mode:o,...t==null?void 0:t.palette}});return e[r]={...t,palette:i,opacity:{...a_(o),...t==null?void 0:t.opacity},overlays:(t==null?void 0:t.overlays)||s_(o)},a}function hM(e={},...t){const{colorSchemes:n={light:!0},defaultColorScheme:r,disableCssColorScheme:o=!1,cssVarPrefix:i="mui",shouldSkipGeneratingVar:a=cM,colorSchemeSelector:s=n.light&&n.dark?"media":void 0,rootSelector:l=":root",...c}=e,u=Object.keys(n)[0],d=r||(n.light&&u!=="light"?"light":u),f=gM(i),{[d]:p,light:h,dark:y,...w}=n,v={...w};let S=p;if((d==="dark"&&!("dark"in n)||d==="light"&&!("light"in n))&&(S=!0),!S)throw new Error(Xi(21,d));const m=dg(v,S,c,d);h&&!v.light&&dg(v,h,void 0,"light"),y&&!v.dark&&dg(v,y,void 0,"dark");let C={defaultColorScheme:d,...m,cssVarPrefix:i,colorSchemeSelector:s,rootSelector:l,getCssVar:f,colorSchemes:v,font:{...qE(m.typography),...m.font},spacing:pM(c.spacing)};Object.keys(C.colorSchemes).forEach(P=>{const x=C.colorSchemes[P].palette,$=I=>{const O=I.split("-"),D=O[1],M=O[2];return f(I,x[D][M])};if(x.mode==="light"&&(Z(x.common,"background","#fff"),Z(x.common,"onBackground","#000")),x.mode==="dark"&&(Z(x.common,"background","#000"),Z(x.common,"onBackground","#fff")),fM(x,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),x.mode==="light"){Z(x.Alert,"errorColor",dt(x.error.light,.6)),Z(x.Alert,"infoColor",dt(x.info.light,.6)),Z(x.Alert,"successColor",dt(x.success.light,.6)),Z(x.Alert,"warningColor",dt(x.warning.light,.6)),Z(x.Alert,"errorFilledBg",$("palette-error-main")),Z(x.Alert,"infoFilledBg",$("palette-info-main")),Z(x.Alert,"successFilledBg",$("palette-success-main")),Z(x.Alert,"warningFilledBg",$("palette-warning-main")),Z(x.Alert,"errorFilledColor",qr(()=>x.getContrastText(x.error.main))),Z(x.Alert,"infoFilledColor",qr(()=>x.getContrastText(x.info.main))),Z(x.Alert,"successFilledColor",qr(()=>x.getContrastText(x.success.main))),Z(x.Alert,"warningFilledColor",qr(()=>x.getContrastText(x.warning.main))),Z(x.Alert,"errorStandardBg",ft(x.error.light,.9)),Z(x.Alert,"infoStandardBg",ft(x.info.light,.9)),Z(x.Alert,"successStandardBg",ft(x.success.light,.9)),Z(x.Alert,"warningStandardBg",ft(x.warning.light,.9)),Z(x.Alert,"errorIconColor",$("palette-error-main")),Z(x.Alert,"infoIconColor",$("palette-info-main")),Z(x.Alert,"successIconColor",$("palette-success-main")),Z(x.Alert,"warningIconColor",$("palette-warning-main")),Z(x.AppBar,"defaultBg",$("palette-grey-100")),Z(x.Avatar,"defaultBg",$("palette-grey-400")),Z(x.Button,"inheritContainedBg",$("palette-grey-300")),Z(x.Button,"inheritContainedHoverBg",$("palette-grey-A100")),Z(x.Chip,"defaultBorder",$("palette-grey-400")),Z(x.Chip,"defaultAvatarColor",$("palette-grey-700")),Z(x.Chip,"defaultIconColor",$("palette-grey-700")),Z(x.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),Z(x.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),Z(x.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),Z(x.LinearProgress,"primaryBg",ft(x.primary.main,.62)),Z(x.LinearProgress,"secondaryBg",ft(x.secondary.main,.62)),Z(x.LinearProgress,"errorBg",ft(x.error.main,.62)),Z(x.LinearProgress,"infoBg",ft(x.info.main,.62)),Z(x.LinearProgress,"successBg",ft(x.success.main,.62)),Z(x.LinearProgress,"warningBg",ft(x.warning.main,.62)),Z(x.Skeleton,"bg",`rgba(${$("palette-text-primaryChannel")} / 0.11)`),Z(x.Slider,"primaryTrack",ft(x.primary.main,.62)),Z(x.Slider,"secondaryTrack",ft(x.secondary.main,.62)),Z(x.Slider,"errorTrack",ft(x.error.main,.62)),Z(x.Slider,"infoTrack",ft(x.info.main,.62)),Z(x.Slider,"successTrack",ft(x.success.main,.62)),Z(x.Slider,"warningTrack",ft(x.warning.main,.62));const I=cu(x.background.default,.8);Z(x.SnackbarContent,"bg",I),Z(x.SnackbarContent,"color",qr(()=>x.getContrastText(I))),Z(x.SpeedDialAction,"fabHoverBg",cu(x.background.paper,.15)),Z(x.StepConnector,"border",$("palette-grey-400")),Z(x.StepContent,"border",$("palette-grey-400")),Z(x.Switch,"defaultColor",$("palette-common-white")),Z(x.Switch,"defaultDisabledColor",$("palette-grey-100")),Z(x.Switch,"primaryDisabledColor",ft(x.primary.main,.62)),Z(x.Switch,"secondaryDisabledColor",ft(x.secondary.main,.62)),Z(x.Switch,"errorDisabledColor",ft(x.error.main,.62)),Z(x.Switch,"infoDisabledColor",ft(x.info.main,.62)),Z(x.Switch,"successDisabledColor",ft(x.success.main,.62)),Z(x.Switch,"warningDisabledColor",ft(x.warning.main,.62)),Z(x.TableCell,"border",ft(lu(x.divider,1),.88)),Z(x.Tooltip,"bg",lu(x.grey[700],.92))}if(x.mode==="dark"){Z(x.Alert,"errorColor",ft(x.error.light,.6)),Z(x.Alert,"infoColor",ft(x.info.light,.6)),Z(x.Alert,"successColor",ft(x.success.light,.6)),Z(x.Alert,"warningColor",ft(x.warning.light,.6)),Z(x.Alert,"errorFilledBg",$("palette-error-dark")),Z(x.Alert,"infoFilledBg",$("palette-info-dark")),Z(x.Alert,"successFilledBg",$("palette-success-dark")),Z(x.Alert,"warningFilledBg",$("palette-warning-dark")),Z(x.Alert,"errorFilledColor",qr(()=>x.getContrastText(x.error.dark))),Z(x.Alert,"infoFilledColor",qr(()=>x.getContrastText(x.info.dark))),Z(x.Alert,"successFilledColor",qr(()=>x.getContrastText(x.success.dark))),Z(x.Alert,"warningFilledColor",qr(()=>x.getContrastText(x.warning.dark))),Z(x.Alert,"errorStandardBg",dt(x.error.light,.9)),Z(x.Alert,"infoStandardBg",dt(x.info.light,.9)),Z(x.Alert,"successStandardBg",dt(x.success.light,.9)),Z(x.Alert,"warningStandardBg",dt(x.warning.light,.9)),Z(x.Alert,"errorIconColor",$("palette-error-main")),Z(x.Alert,"infoIconColor",$("palette-info-main")),Z(x.Alert,"successIconColor",$("palette-success-main")),Z(x.Alert,"warningIconColor",$("palette-warning-main")),Z(x.AppBar,"defaultBg",$("palette-grey-900")),Z(x.AppBar,"darkBg",$("palette-background-paper")),Z(x.AppBar,"darkColor",$("palette-text-primary")),Z(x.Avatar,"defaultBg",$("palette-grey-600")),Z(x.Button,"inheritContainedBg",$("palette-grey-800")),Z(x.Button,"inheritContainedHoverBg",$("palette-grey-700")),Z(x.Chip,"defaultBorder",$("palette-grey-700")),Z(x.Chip,"defaultAvatarColor",$("palette-grey-300")),Z(x.Chip,"defaultIconColor",$("palette-grey-300")),Z(x.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),Z(x.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),Z(x.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),Z(x.LinearProgress,"primaryBg",dt(x.primary.main,.5)),Z(x.LinearProgress,"secondaryBg",dt(x.secondary.main,.5)),Z(x.LinearProgress,"errorBg",dt(x.error.main,.5)),Z(x.LinearProgress,"infoBg",dt(x.info.main,.5)),Z(x.LinearProgress,"successBg",dt(x.success.main,.5)),Z(x.LinearProgress,"warningBg",dt(x.warning.main,.5)),Z(x.Skeleton,"bg",`rgba(${$("palette-text-primaryChannel")} / 0.13)`),Z(x.Slider,"primaryTrack",dt(x.primary.main,.5)),Z(x.Slider,"secondaryTrack",dt(x.secondary.main,.5)),Z(x.Slider,"errorTrack",dt(x.error.main,.5)),Z(x.Slider,"infoTrack",dt(x.info.main,.5)),Z(x.Slider,"successTrack",dt(x.success.main,.5)),Z(x.Slider,"warningTrack",dt(x.warning.main,.5));const I=cu(x.background.default,.98);Z(x.SnackbarContent,"bg",I),Z(x.SnackbarContent,"color",qr(()=>x.getContrastText(I))),Z(x.SpeedDialAction,"fabHoverBg",cu(x.background.paper,.15)),Z(x.StepConnector,"border",$("palette-grey-600")),Z(x.StepContent,"border",$("palette-grey-600")),Z(x.Switch,"defaultColor",$("palette-grey-300")),Z(x.Switch,"defaultDisabledColor",$("palette-grey-600")),Z(x.Switch,"primaryDisabledColor",dt(x.primary.main,.55)),Z(x.Switch,"secondaryDisabledColor",dt(x.secondary.main,.55)),Z(x.Switch,"errorDisabledColor",dt(x.error.main,.55)),Z(x.Switch,"infoDisabledColor",dt(x.info.main,.55)),Z(x.Switch,"successDisabledColor",dt(x.success.main,.55)),Z(x.Switch,"warningDisabledColor",dt(x.warning.main,.55)),Z(x.TableCell,"border",dt(lu(x.divider,1),.68)),Z(x.Tooltip,"bg",lu(x.grey[700],.92))}co(x.background,"default"),co(x.background,"paper"),co(x.common,"background"),co(x.common,"onBackground"),co(x,"divider"),Object.keys(x).forEach(I=>{const O=x[I];O&&typeof O=="object"&&(O.main&&Z(x[I],"mainChannel",gl(hl(O.main))),O.light&&Z(x[I],"lightChannel",gl(hl(O.light))),O.dark&&Z(x[I],"darkChannel",gl(hl(O.dark))),O.contrastText&&Z(x[I],"contrastTextChannel",gl(hl(O.contrastText))),I==="text"&&(co(x[I],"primary"),co(x[I],"secondary")),I==="action"&&(O.active&&co(x[I],"active"),O.selected&&co(x[I],"selected")))})}),C=t.reduce((P,x)=>io(P,x),C);const _={prefix:i,disableCssColorScheme:o,shouldSkipGeneratingVar:a,getSelector:dM(C)},{vars:R,generateThemeVars:k,generateStyleSheets:T}=EE(C,_);return C.vars=R,Object.entries(C.colorSchemes[C.defaultColorScheme]).forEach(([P,x])=>{C[P]=x}),C.generateThemeVars=k,C.generateStyleSheets=T,C.generateSpacing=function(){return F2(c.spacing,Hf(this))},C.getColorSchemeSelector=ME(s),C.spacing=C.generateSpacing(),C.shouldSkipGeneratingVar=a,C.unstable_sxConfig={...Rc,...c==null?void 0:c.unstable_sxConfig},C.unstable_sx=function(x){return fi({sx:x,theme:this})},C.toRuntimeSource=i_,C}function sb(e,t,n){e.colorSchemes&&n&&(e.colorSchemes[t]={...n!==!0&&n,palette:y1({...n===!0?{}:n.palette,mode:t})})}function sp(e={},...t){const{palette:n,cssVariables:r=!1,colorSchemes:o=n?void 0:{light:!0},defaultColorScheme:i=n==null?void 0:n.mode,...a}=e,s=i||"light",l=o==null?void 0:o[s],c={...o,...n?{[s]:{...typeof l!="boolean"&&l,palette:n}}:void 0};if(r===!1){if(!("colorSchemes"in e))return fm(e,...t);let u=n;"palette"in e||c[s]&&(c[s]!==!0?u=c[s].palette:s==="dark"&&(u={mode:"dark"}));const d=fm({...e,palette:u},...t);return d.defaultColorScheme=s,d.colorSchemes=c,d.palette.mode==="light"&&(d.colorSchemes.light={...c.light!==!0&&c.light,palette:d.palette},sb(d,"dark",c.dark)),d.palette.mode==="dark"&&(d.colorSchemes.dark={...c.dark!==!0&&c.dark,palette:d.palette},sb(d,"light",c.light)),d}return!n&&!("light"in c)&&s==="light"&&(c.light=!0),hM({...a,colorSchemes:c,defaultColorScheme:s,...typeof r!="boolean"&&r},...t)}const lp=sp();function zt(){const e=Zf(lp);return e[Dr]||e}function mM({props:e,name:t}){return G2({props:e,name:t,defaultTheme:lp,themeId:Dr})}function l_(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const wn=e=>l_(e)&&e!=="classes",J=U2({themeId:Dr,defaultTheme:lp,rootShouldForwardProp:wn});function lb({theme:e,...t}){const n=Dr in e?e[Dr]:void 0;return g.jsx(Y2,{...t,themeId:n?Dr:void 0,theme:n||e})}const uu={attribute:"data-mui-color-scheme",colorSchemeStorageKey:"mui-color-scheme",defaultLightColorScheme:"light",defaultDarkColorScheme:"dark",modeStorageKey:"mui-mode"},{CssVarsProvider:vM,useColorScheme:WK,getInitColorSchemeScript:UK}=TE({themeId:Dr,theme:()=>sp({cssVariables:!0}),colorSchemeStorageKey:uu.colorSchemeStorageKey,modeStorageKey:uu.modeStorageKey,defaultColorScheme:{light:uu.defaultLightColorScheme,dark:uu.defaultDarkColorScheme},resolveTheme:e=>{const t={...e,typography:r_(e.palette,e.typography)};return t.unstable_sx=function(r){return fi({sx:r,theme:this})},t}}),yM=vM;function bM({theme:e,...t}){return typeof e=="function"?g.jsx(lb,{theme:e,...t}):"colorSchemes"in(Dr in e?e[Dr]:e)?g.jsx(yM,{theme:e,...t}):g.jsx(lb,{theme:e,...t})}function ae(e){if(typeof e!="string")throw new Error(Xi(7));return e.charAt(0).toUpperCase()+e.slice(1)}function gm(...e){return e.reduce((t,n)=>n==null?t:function(...o){t.apply(this,o),n.apply(this,o)},()=>{})}function cp(e,t=166){let n;function r(...o){const i=()=>{e.apply(this,o)};clearTimeout(n),n=setTimeout(i,t)}return r.clear=()=>{clearTimeout(n)},r}function fg(e,t){var n,r,o;return b.isValidElement(e)&&t.indexOf(e.type.muiName??((o=(r=(n=e.type)==null?void 0:n._payload)==null?void 0:r.value)==null?void 0:o.muiName))!==-1}function ln(e){return e&&e.ownerDocument||document}function zr(e){return ln(e).defaultView||window}function jd(e,t){typeof e=="function"?e(t):e&&(e.current=t)}const Hr=typeof window<"u"?b.useLayoutEffect:b.useEffect;let cb=0;function xM(e){const[t,n]=b.useState(e),r=e||t;return b.useEffect(()=>{t==null&&(cb+=1,n(`mui-${cb}`))},[t]),r}const SM={...id},ub=SM.useId;function ds(e){if(ub!==void 0){const t=ub();return e??t}return xM(e)}function Hi({controlled:e,default:t,name:n,state:r="value"}){const{current:o}=b.useRef(e!==void 0),[i,a]=b.useState(t),s=o?e:i,l=b.useCallback(c=>{o||a(c)},[]);return[s,l]}function bn(e){const t=b.useRef(e);return Hr(()=>{t.current=e}),b.useRef((...n)=>(0,t.current)(...n)).current}function Rt(...e){return b.useMemo(()=>e.every(t=>t==null)?null:t=>{e.forEach(n=>{jd(n,t)})},e)}const db={};function c_(e,t){const n=b.useRef(db);return n.current===db&&(n.current=e(t)),n}const wM=[];function CM(e){b.useEffect(e,wM)}class up{constructor(){zs(this,"currentId",null);zs(this,"clear",()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)});zs(this,"disposeEffect",()=>this.clear)}static create(){return new up}start(t,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,n()},t)}}function Ni(){const e=c_(up.create).current;return CM(e.disposeEffect),e}function Fd(e){try{return e.matches(":focus-visible")}catch{}return!1}function u_(e=window){const t=e.document.documentElement.clientWidth;return e.innerWidth-t}const _M=e=>{const t=b.useRef({});return b.useEffect(()=>{t.current=e}),t.current};function d_(e,t){const n={...t};for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const o=r;if(o==="components"||o==="slots")n[o]={...e[o],...n[o]};else if(o==="componentsProps"||o==="slotProps"){const i=e[o],a=t[o];if(!a)n[o]=i||{};else if(!i)n[o]=a;else{n[o]={...a};for(const s in i)if(Object.prototype.hasOwnProperty.call(i,s)){const l=s;n[o][l]=d_(i[l],a[l])}}}else n[o]===void 0&&(n[o]=e[o])}return n}function Ne(e,t,n=void 0){const r={};for(const o in e){const i=e[o];let a="",s=!0;for(let l=0;l{r[o]=Oe(e,o,n)}),r}function RM(e){return typeof e=="string"}function Ha(e,t,n){return e===void 0||RM(e)?t:{...t,ownerState:{...t.ownerState,...n}}}function f_(e,t=[]){if(e===void 0)return{};const n={};return Object.keys(e).filter(r=>r.match(/^on[A-Z]/)&&typeof e[r]=="function"&&!t.includes(r)).forEach(r=>{n[r]=e[r]}),n}function fb(e){if(e===void 0)return{};const t={};return Object.keys(e).filter(n=>!(n.match(/^on[A-Z]/)&&typeof e[n]=="function")).forEach(n=>{t[n]=e[n]}),t}function p_(e){const{getSlotProps:t,additionalProps:n,externalSlotProps:r,externalForwardedProps:o,className:i}=e;if(!t){const p=ve(n==null?void 0:n.className,i,o==null?void 0:o.className,r==null?void 0:r.className),h={...n==null?void 0:n.style,...o==null?void 0:o.style,...r==null?void 0:r.style},y={...n,...o,...r};return p.length>0&&(y.className=p),Object.keys(h).length>0&&(y.style=h),{props:y,internalRef:void 0}}const a=f_({...o,...r}),s=fb(r),l=fb(o),c=t(a),u=ve(c==null?void 0:c.className,n==null?void 0:n.className,i,o==null?void 0:o.className,r==null?void 0:r.className),d={...c==null?void 0:c.style,...n==null?void 0:n.style,...o==null?void 0:o.style,...r==null?void 0:r.style},f={...c,...n,...l,...s};return u.length>0&&(f.className=u),Object.keys(d).length>0&&(f.style=d),{props:f,internalRef:c.ref}}function g_(e,t,n){return typeof e=="function"?e(t,n):e}function na(e){var d;const{elementType:t,externalSlotProps:n,ownerState:r,skipResolvingSlotProps:o=!1,...i}=e,a=o?{}:g_(n,r),{props:s,internalRef:l}=p_({...i,externalSlotProps:a}),c=Rt(l,a==null?void 0:a.ref,(d=e.additionalProps)==null?void 0:d.ref);return Ha(t,{...s,ref:c},r)}function ua(e){var t;return parseInt(b.version,10)>=19?((t=e==null?void 0:e.props)==null?void 0:t.ref)||null:(e==null?void 0:e.ref)||null}function TM(e){return g.jsx(V5,{...e,defaultTheme:lp,themeId:Dr})}function PM(e){return function(n){return g.jsx(TM,{styles:typeof e=="function"?r=>e({theme:r,...n}):e})}}function kM(){return d1}const $e=xE;function De(e){return bE(e)}function $M(e){return Oe("MuiSvgIcon",e)}Ee("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);const EM=e=>{const{color:t,fontSize:n,classes:r}=e,o={root:["root",t!=="inherit"&&`color${ae(t)}`,`fontSize${ae(n)}`]};return Ne(o,$M,r)},MM=J("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="inherit"&&t[`color${ae(n.color)}`],t[`fontSize${ae(n.fontSize)}`]]}})($e(({theme:e})=>{var t,n,r,o,i,a,s,l,c,u,d,f,p,h;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",flexShrink:0,transition:(o=(t=e.transitions)==null?void 0:t.create)==null?void 0:o.call(t,"fill",{duration:(r=(n=(e.vars??e).transitions)==null?void 0:n.duration)==null?void 0:r.shorter}),variants:[{props:y=>!y.hasSvgAsChild,style:{fill:"currentColor"}},{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:((a=(i=e.typography)==null?void 0:i.pxToRem)==null?void 0:a.call(i,20))||"1.25rem"}},{props:{fontSize:"medium"},style:{fontSize:((l=(s=e.typography)==null?void 0:s.pxToRem)==null?void 0:l.call(s,24))||"1.5rem"}},{props:{fontSize:"large"},style:{fontSize:((u=(c=e.typography)==null?void 0:c.pxToRem)==null?void 0:u.call(c,35))||"2.1875rem"}},...Object.entries((e.vars??e).palette).filter(([,y])=>y&&y.main).map(([y])=>{var w,v;return{props:{color:y},style:{color:(v=(w=(e.vars??e).palette)==null?void 0:w[y])==null?void 0:v.main}}}),{props:{color:"action"},style:{color:(f=(d=(e.vars??e).palette)==null?void 0:d.action)==null?void 0:f.active}},{props:{color:"disabled"},style:{color:(h=(p=(e.vars??e).palette)==null?void 0:p.action)==null?void 0:h.disabled}},{props:{color:"inherit"},style:{color:void 0}}]}})),ra=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiSvgIcon"}),{children:o,className:i,color:a="inherit",component:s="svg",fontSize:l="medium",htmlColor:c,inheritViewBox:u=!1,titleAccess:d,viewBox:f="0 0 24 24",...p}=r,h=b.isValidElement(o)&&o.type==="svg",y={...r,color:a,component:s,fontSize:l,instanceFontSize:t.fontSize,inheritViewBox:u,viewBox:f,hasSvgAsChild:h},w={};u||(w.viewBox=f);const v=EM(y);return g.jsxs(MM,{as:s,className:ve(v.root,i),focusable:"false",color:c,"aria-hidden":d?void 0:!0,role:d?"img":void 0,ref:n,...w,...p,...h&&o.props,ownerState:y,children:[h?o.props.children:o,d?g.jsx("title",{children:d}):null]})});ra&&(ra.muiName="SvgIcon");function un(e,t){function n(r,o){return g.jsx(ra,{"data-testid":`${t}Icon`,ref:o,...r,children:e})}return n.muiName=ra.muiName,b.memo(b.forwardRef(n))}function Ms(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}function hm(e,t){return hm=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},hm(e,t)}function h_(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,hm(e,t)}const pb={disabled:!1},Bd=rt.createContext(null);var IM=function(t){return t.scrollTop},ml="unmounted",$i="exited",Ei="entering",_a="entered",mm="exiting",Vr=function(e){h_(t,e);function t(r,o){var i;i=e.call(this,r,o)||this;var a=o,s=a&&!a.isMounting?r.enter:r.appear,l;return i.appearStatus=null,r.in?s?(l=$i,i.appearStatus=Ei):l=_a:r.unmountOnExit||r.mountOnEnter?l=ml:l=$i,i.state={status:l},i.nextCallback=null,i}t.getDerivedStateFromProps=function(o,i){var a=o.in;return a&&i.status===ml?{status:$i}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(o){var i=null;if(o!==this.props){var a=this.state.status;this.props.in?a!==Ei&&a!==_a&&(i=Ei):(a===Ei||a===_a)&&(i=mm)}this.updateStatus(!1,i)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var o=this.props.timeout,i,a,s;return i=a=s=o,o!=null&&typeof o!="number"&&(i=o.exit,a=o.enter,s=o.appear!==void 0?o.appear:a),{exit:i,enter:a,appear:s}},n.updateStatus=function(o,i){if(o===void 0&&(o=!1),i!==null)if(this.cancelNextCallback(),i===Ei){if(this.props.unmountOnExit||this.props.mountOnEnter){var a=this.props.nodeRef?this.props.nodeRef.current:au.findDOMNode(this);a&&IM(a)}this.performEnter(o)}else this.performExit();else this.props.unmountOnExit&&this.state.status===$i&&this.setState({status:ml})},n.performEnter=function(o){var i=this,a=this.props.enter,s=this.context?this.context.isMounting:o,l=this.props.nodeRef?[s]:[au.findDOMNode(this),s],c=l[0],u=l[1],d=this.getTimeouts(),f=s?d.appear:d.enter;if(!o&&!a||pb.disabled){this.safeSetState({status:_a},function(){i.props.onEntered(c)});return}this.props.onEnter(c,u),this.safeSetState({status:Ei},function(){i.props.onEntering(c,u),i.onTransitionEnd(f,function(){i.safeSetState({status:_a},function(){i.props.onEntered(c,u)})})})},n.performExit=function(){var o=this,i=this.props.exit,a=this.getTimeouts(),s=this.props.nodeRef?void 0:au.findDOMNode(this);if(!i||pb.disabled){this.safeSetState({status:$i},function(){o.props.onExited(s)});return}this.props.onExit(s),this.safeSetState({status:mm},function(){o.props.onExiting(s),o.onTransitionEnd(a.exit,function(){o.safeSetState({status:$i},function(){o.props.onExited(s)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(o,i){i=this.setNextCallback(i),this.setState(o,i)},n.setNextCallback=function(o){var i=this,a=!0;return this.nextCallback=function(s){a&&(a=!1,i.nextCallback=null,o(s))},this.nextCallback.cancel=function(){a=!1},this.nextCallback},n.onTransitionEnd=function(o,i){this.setNextCallback(i);var a=this.props.nodeRef?this.props.nodeRef.current:au.findDOMNode(this),s=o==null&&!this.props.addEndListener;if(!a||s){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var l=this.props.nodeRef?[this.nextCallback]:[a,this.nextCallback],c=l[0],u=l[1];this.props.addEndListener(c,u)}o!=null&&setTimeout(this.nextCallback,o)},n.render=function(){var o=this.state.status;if(o===ml)return null;var i=this.props,a=i.children;i.in,i.mountOnEnter,i.unmountOnExit,i.appear,i.enter,i.exit,i.timeout,i.addEndListener,i.onEnter,i.onEntering,i.onEntered,i.onExit,i.onExiting,i.onExited,i.nodeRef;var s=Ms(i,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return rt.createElement(Bd.Provider,{value:null},typeof a=="function"?a(o,s):rt.cloneElement(rt.Children.only(a),s))},t}(rt.Component);Vr.contextType=Bd;Vr.propTypes={};function xa(){}Vr.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:xa,onEntering:xa,onEntered:xa,onExit:xa,onExiting:xa,onExited:xa};Vr.UNMOUNTED=ml;Vr.EXITED=$i;Vr.ENTERING=Ei;Vr.ENTERED=_a;Vr.EXITING=mm;function OM(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b1(e,t){var n=function(i){return t&&b.isValidElement(i)?t(i):i},r=Object.create(null);return e&&b.Children.map(e,function(o){return o}).forEach(function(o){r[o.key]=n(o)}),r}function LM(e,t){e=e||{},t=t||{};function n(u){return u in t?t[u]:e[u]}var r=Object.create(null),o=[];for(var i in e)i in t?o.length&&(r[i]=o,o=[]):o.push(i);var a,s={};for(var l in t){if(r[l])for(a=0;ae.scrollTop;function fs(e,t){const{timeout:n,easing:r,style:o={}}=e;return{duration:o.transitionDuration??(typeof n=="number"?n:n[t.mode]||0),easing:o.transitionTimingFunction??(typeof r=="object"?r[t.mode]:r),delay:o.transitionDelay}}function FM(e){return Oe("MuiCollapse",e)}Ee("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"]);const BM=e=>{const{orientation:t,classes:n}=e,r={root:["root",`${t}`],entered:["entered"],hidden:["hidden"],wrapper:["wrapper",`${t}`],wrapperInner:["wrapperInner",`${t}`]};return Ne(r,FM,n)},zM=J("div",{name:"MuiCollapse",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.orientation],n.state==="entered"&&t.entered,n.state==="exited"&&!n.in&&n.collapsedSize==="0px"&&t.hidden]}})($e(({theme:e})=>({height:0,overflow:"hidden",transition:e.transitions.create("height"),variants:[{props:{orientation:"horizontal"},style:{height:"auto",width:0,transition:e.transitions.create("width")}},{props:{state:"entered"},style:{height:"auto",overflow:"visible"}},{props:{state:"entered",orientation:"horizontal"},style:{width:"auto"}},{props:({ownerState:t})=>t.state==="exited"&&!t.in&&t.collapsedSize==="0px",style:{visibility:"hidden"}}]}))),HM=J("div",{name:"MuiCollapse",slot:"Wrapper",overridesResolver:(e,t)=>t.wrapper})({display:"flex",width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),VM=J("div",{name:"MuiCollapse",slot:"WrapperInner",overridesResolver:(e,t)=>t.wrapperInner})({width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),ps=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiCollapse"}),{addEndListener:o,children:i,className:a,collapsedSize:s="0px",component:l,easing:c,in:u,onEnter:d,onEntered:f,onEntering:p,onExit:h,onExited:y,onExiting:w,orientation:v="vertical",style:S,timeout:m=o_.standard,TransitionComponent:C=Vr,..._}=r,R={...r,orientation:v,collapsedSize:s},k=BM(R),T=zt(),P=Ni(),x=b.useRef(null),$=b.useRef(),I=typeof s=="number"?`${s}px`:s,O=v==="horizontal",D=O?"width":"height",M=b.useRef(null),A=Rt(n,M),N=V=>ee=>{if(V){const re=M.current;ee===void 0?V(re):V(re,ee)}},E=()=>x.current?x.current[O?"clientWidth":"clientHeight"]:0,L=N((V,ee)=>{x.current&&O&&(x.current.style.position="absolute"),V.style[D]=I,d&&d(V,ee)}),B=N((V,ee)=>{const re=E();x.current&&O&&(x.current.style.position="");const{duration:U,easing:K}=fs({style:S,timeout:m,easing:c},{mode:"enter"});if(m==="auto"){const se=T.transitions.getAutoHeightDuration(re);V.style.transitionDuration=`${se}ms`,$.current=se}else V.style.transitionDuration=typeof U=="string"?U:`${U}ms`;V.style[D]=`${re}px`,V.style.transitionTimingFunction=K,p&&p(V,ee)}),H=N((V,ee)=>{V.style[D]="auto",f&&f(V,ee)}),z=N(V=>{V.style[D]=`${E()}px`,h&&h(V)}),j=N(y),F=N(V=>{const ee=E(),{duration:re,easing:U}=fs({style:S,timeout:m,easing:c},{mode:"exit"});if(m==="auto"){const K=T.transitions.getAutoHeightDuration(ee);V.style.transitionDuration=`${K}ms`,$.current=K}else V.style.transitionDuration=typeof re=="string"?re:`${re}ms`;V.style[D]=I,V.style.transitionTimingFunction=U,w&&w(V)}),W=V=>{m==="auto"&&P.start($.current||0,V),o&&o(M.current,V)};return g.jsx(C,{in:u,onEnter:L,onEntered:H,onEntering:B,onExit:z,onExited:j,onExiting:F,addEndListener:W,nodeRef:M,timeout:m==="auto"?null:m,..._,children:(V,ee)=>g.jsx(zM,{as:l,className:ve(k.root,a,{entered:k.entered,exited:!u&&I==="0px"&&k.hidden}[V]),style:{[O?"minWidth":"minHeight"]:I,...S},ref:A,...ee,ownerState:{...R,state:V},children:g.jsx(HM,{ownerState:{...R,state:V},className:k.wrapper,ref:x,children:g.jsx(VM,{ownerState:{...R,state:V},className:k.wrapperInner,children:i})})})})});ps&&(ps.muiSupportAuto=!0);function WM(e){return Oe("MuiPaper",e)}Ee("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);const UM=e=>{const{square:t,elevation:n,variant:r,classes:o}=e,i={root:["root",r,!t&&"rounded",r==="elevation"&&`elevation${n}`]};return Ne(i,WM,o)},GM=J("div",{name:"MuiPaper",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],!n.square&&t.rounded,n.variant==="elevation"&&t[`elevation${n.elevation}`]]}})($e(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,color:(e.vars||e).palette.text.primary,transition:e.transitions.create("box-shadow"),variants:[{props:({ownerState:t})=>!t.square,style:{borderRadius:e.shape.borderRadius}},{props:{variant:"outlined"},style:{border:`1px solid ${(e.vars||e).palette.divider}`}},{props:{variant:"elevation"},style:{boxShadow:"var(--Paper-shadow)",backgroundImage:"var(--Paper-overlay)"}}]}))),Is=b.forwardRef(function(t,n){var p;const r=De({props:t,name:"MuiPaper"}),o=zt(),{className:i,component:a="div",elevation:s=1,square:l=!1,variant:c="elevation",...u}=r,d={...r,component:a,elevation:s,square:l,variant:c},f=UM(d);return g.jsx(GM,{as:a,ownerState:d,className:ve(f.root,i),ref:n,...u,style:{...c==="elevation"&&{"--Paper-shadow":(o.vars||o).shadows[s],...o.vars&&{"--Paper-overlay":(p=o.vars.overlays)==null?void 0:p[s]},...!o.vars&&o.palette.mode==="dark"&&{"--Paper-overlay":`linear-gradient(${Be("#fff",pm(s))}, ${Be("#fff",pm(s))})`}},...u.style}})});function an(e,t){const{className:n,elementType:r,ownerState:o,externalForwardedProps:i,getSlotOwnerState:a,internalForwardedProps:s,...l}=t,{component:c,slots:u={[e]:void 0},slotProps:d={[e]:void 0},...f}=i,p=u[e]||r,h=g_(d[e],o),{props:{component:y,...w},internalRef:v}=p_({className:n,...l,externalForwardedProps:e==="root"?f:void 0,externalSlotProps:h}),S=Rt(v,h==null?void 0:h.ref,t.ref),m=a?a(w):{},C={...o,...m},_=e==="root"?y||c:y,R=Ha(p,{...e==="root"&&!c&&!u[e]&&s,...e!=="root"&&!u[e]&&s,...w,..._&&{as:_},ref:S},C);return Object.keys(m).forEach(k=>{delete R[k]}),[p,R]}class zd{constructor(){zs(this,"mountEffect",()=>{this.shouldMount&&!this.didMount&&this.ref.current!==null&&(this.didMount=!0,this.mounted.resolve())});this.ref={current:null},this.mounted=null,this.didMount=!1,this.shouldMount=!1,this.setShouldMount=null}static create(){return new zd}static use(){const t=c_(zd.create).current,[n,r]=b.useState(!1);return t.shouldMount=n,t.setShouldMount=r,b.useEffect(t.mountEffect,[n]),t}mount(){return this.mounted||(this.mounted=KM(),this.shouldMount=!0,this.setShouldMount(this.shouldMount)),this.mounted}start(...t){this.mount().then(()=>{var n;return(n=this.ref.current)==null?void 0:n.start(...t)})}stop(...t){this.mount().then(()=>{var n;return(n=this.ref.current)==null?void 0:n.stop(...t)})}pulsate(...t){this.mount().then(()=>{var n;return(n=this.ref.current)==null?void 0:n.pulsate(...t)})}}function qM(){return zd.use()}function KM(){let e,t;const n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n}function ZM(e){const{className:t,classes:n,pulsate:r=!1,rippleX:o,rippleY:i,rippleSize:a,in:s,onExited:l,timeout:c}=e,[u,d]=b.useState(!1),f=ve(t,n.ripple,n.rippleVisible,r&&n.ripplePulsate),p={width:a,height:a,top:-(a/2)+i,left:-(a/2)+o},h=ve(n.child,u&&n.childLeaving,r&&n.childPulsate);return!s&&!u&&d(!0),b.useEffect(()=>{if(!s&&l!=null){const y=setTimeout(l,c);return()=>{clearTimeout(y)}}},[l,s,c]),g.jsx("span",{className:f,style:p,children:g.jsx("span",{className:h})})}const cr=Ee("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),vm=550,QM=80,YM=s1` + 0% { + transform: scale(0); + opacity: 0.1; + } + + 100% { + transform: scale(1); + opacity: 0.3; + } +`,XM=s1` + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +`,JM=s1` + 0% { + transform: scale(1); + } + + 50% { + transform: scale(0.92); + } + + 100% { + transform: scale(1); + } +`,e8=J("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),t8=J(ZM,{name:"MuiTouchRipple",slot:"Ripple"})` + opacity: 0; + position: absolute; + + &.${cr.rippleVisible} { + opacity: 0.3; + transform: scale(1); + animation-name: ${YM}; + animation-duration: ${vm}ms; + animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; + } + + &.${cr.ripplePulsate} { + animation-duration: ${({theme:e})=>e.transitions.duration.shorter}ms; + } + + & .${cr.child} { + opacity: 1; + display: block; + width: 100%; + height: 100%; + border-radius: 50%; + background-color: currentColor; + } + + & .${cr.childLeaving} { + opacity: 0; + animation-name: ${XM}; + animation-duration: ${vm}ms; + animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; + } + + & .${cr.childPulsate} { + position: absolute; + /* @noflip */ + left: 0px; + top: 0; + animation-name: ${JM}; + animation-duration: 2500ms; + animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; + animation-iteration-count: infinite; + animation-delay: 200ms; + } +`,n8=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTouchRipple"}),{center:o=!1,classes:i={},className:a,...s}=r,[l,c]=b.useState([]),u=b.useRef(0),d=b.useRef(null);b.useEffect(()=>{d.current&&(d.current(),d.current=null)},[l]);const f=b.useRef(!1),p=Ni(),h=b.useRef(null),y=b.useRef(null),w=b.useCallback(C=>{const{pulsate:_,rippleX:R,rippleY:k,rippleSize:T,cb:P}=C;c(x=>[...x,g.jsx(t8,{classes:{ripple:ve(i.ripple,cr.ripple),rippleVisible:ve(i.rippleVisible,cr.rippleVisible),ripplePulsate:ve(i.ripplePulsate,cr.ripplePulsate),child:ve(i.child,cr.child),childLeaving:ve(i.childLeaving,cr.childLeaving),childPulsate:ve(i.childPulsate,cr.childPulsate)},timeout:vm,pulsate:_,rippleX:R,rippleY:k,rippleSize:T},u.current)]),u.current+=1,d.current=P},[i]),v=b.useCallback((C={},_={},R=()=>{})=>{const{pulsate:k=!1,center:T=o||_.pulsate,fakeElement:P=!1}=_;if((C==null?void 0:C.type)==="mousedown"&&f.current){f.current=!1;return}(C==null?void 0:C.type)==="touchstart"&&(f.current=!0);const x=P?null:y.current,$=x?x.getBoundingClientRect():{width:0,height:0,left:0,top:0};let I,O,D;if(T||C===void 0||C.clientX===0&&C.clientY===0||!C.clientX&&!C.touches)I=Math.round($.width/2),O=Math.round($.height/2);else{const{clientX:M,clientY:A}=C.touches&&C.touches.length>0?C.touches[0]:C;I=Math.round(M-$.left),O=Math.round(A-$.top)}if(T)D=Math.sqrt((2*$.width**2+$.height**2)/3),D%2===0&&(D+=1);else{const M=Math.max(Math.abs((x?x.clientWidth:0)-I),I)*2+2,A=Math.max(Math.abs((x?x.clientHeight:0)-O),O)*2+2;D=Math.sqrt(M**2+A**2)}C!=null&&C.touches?h.current===null&&(h.current=()=>{w({pulsate:k,rippleX:I,rippleY:O,rippleSize:D,cb:R})},p.start(QM,()=>{h.current&&(h.current(),h.current=null)})):w({pulsate:k,rippleX:I,rippleY:O,rippleSize:D,cb:R})},[o,w,p]),S=b.useCallback(()=>{v({},{pulsate:!0})},[v]),m=b.useCallback((C,_)=>{if(p.clear(),(C==null?void 0:C.type)==="touchend"&&h.current){h.current(),h.current=null,p.start(0,()=>{m(C,_)});return}h.current=null,c(R=>R.length>0?R.slice(1):R),d.current=_},[p]);return b.useImperativeHandle(n,()=>({pulsate:S,start:v,stop:m}),[S,v,m]),g.jsx(e8,{className:ve(cr.root,i.root,a),ref:y,...s,children:g.jsx(x1,{component:null,exit:!0,children:l})})});function r8(e){return Oe("MuiButtonBase",e)}const o8=Ee("MuiButtonBase",["root","disabled","focusVisible"]),i8=e=>{const{disabled:t,focusVisible:n,focusVisibleClassName:r,classes:o}=e,a=Ne({root:["root",t&&"disabled",n&&"focusVisible"]},r8,o);return n&&r&&(a.root+=` ${r}`),a},a8=J("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${o8.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),To=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiButtonBase"}),{action:o,centerRipple:i=!1,children:a,className:s,component:l="button",disabled:c=!1,disableRipple:u=!1,disableTouchRipple:d=!1,focusRipple:f=!1,focusVisibleClassName:p,LinkComponent:h="a",onBlur:y,onClick:w,onContextMenu:v,onDragLeave:S,onFocus:m,onFocusVisible:C,onKeyDown:_,onKeyUp:R,onMouseDown:k,onMouseLeave:T,onMouseUp:P,onTouchEnd:x,onTouchMove:$,onTouchStart:I,tabIndex:O=0,TouchRippleProps:D,touchRippleRef:M,type:A,...N}=r,E=b.useRef(null),L=qM(),B=Rt(L.ref,M),[H,z]=b.useState(!1);c&&H&&z(!1),b.useImperativeHandle(o,()=>({focusVisible:()=>{z(!0),E.current.focus()}}),[]);const j=L.shouldMount&&!u&&!c;b.useEffect(()=>{H&&f&&!u&&L.pulsate()},[u,f,H,L]);function F(le,Se,ye=d){return bn(Ge=>(Se&&Se(Ge),ye||L[le](Ge),!0))}const W=F("start",k),V=F("stop",v),ee=F("stop",S),re=F("stop",P),U=F("stop",le=>{H&&le.preventDefault(),T&&T(le)}),K=F("start",I),se=F("stop",x),q=F("stop",$),ce=F("stop",le=>{Fd(le.target)||z(!1),y&&y(le)},!1),ue=bn(le=>{E.current||(E.current=le.currentTarget),Fd(le.target)&&(z(!0),C&&C(le)),m&&m(le)}),ie=()=>{const le=E.current;return l&&l!=="button"&&!(le.tagName==="A"&&le.href)},te=bn(le=>{f&&!le.repeat&&H&&le.key===" "&&L.stop(le,()=>{L.start(le)}),le.target===le.currentTarget&&ie()&&le.key===" "&&le.preventDefault(),_&&_(le),le.target===le.currentTarget&&ie()&&le.key==="Enter"&&!c&&(le.preventDefault(),w&&w(le))}),de=bn(le=>{f&&le.key===" "&&H&&!le.defaultPrevented&&L.stop(le,()=>{L.pulsate(le)}),R&&R(le),w&&le.target===le.currentTarget&&ie()&&le.key===" "&&!le.defaultPrevented&&w(le)});let Q=l;Q==="button"&&(N.href||N.to)&&(Q=h);const be={};Q==="button"?(be.type=A===void 0?"button":A,be.disabled=c):(!N.href&&!N.to&&(be.role="button"),c&&(be["aria-disabled"]=c));const Te=Rt(n,E),we={...r,centerRipple:i,component:l,disabled:c,disableRipple:u,disableTouchRipple:d,focusRipple:f,tabIndex:O,focusVisible:H},ge=i8(we);return g.jsxs(a8,{as:Q,className:ve(ge.root,s),ownerState:we,onBlur:ce,onClick:w,onContextMenu:V,onFocus:ue,onKeyDown:te,onKeyUp:de,onMouseDown:W,onMouseLeave:U,onMouseUp:re,onDragLeave:ee,onTouchEnd:se,onTouchMove:q,onTouchStart:K,ref:Te,tabIndex:c?-1:O,type:A,...be,...N,children:[a,j?g.jsx(n8,{ref:B,center:i,...D}):null]})});function s8(e){return typeof e.main=="string"}function l8(e,t=[]){if(!s8(e))return!1;for(const n of t)if(!e.hasOwnProperty(n)||typeof e[n]!="string")return!1;return!0}function Ft(e=[]){return([,t])=>t&&l8(t,e)}function c8(e){return Oe("MuiAlert",e)}const gb=Ee("MuiAlert",["root","action","icon","message","filled","colorSuccess","colorInfo","colorWarning","colorError","filledSuccess","filledInfo","filledWarning","filledError","outlined","outlinedSuccess","outlinedInfo","outlinedWarning","outlinedError","standard","standardSuccess","standardInfo","standardWarning","standardError"]);function u8(e){return Oe("MuiIconButton",e)}const d8=Ee("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge"]),f8=e=>{const{classes:t,disabled:n,color:r,edge:o,size:i}=e,a={root:["root",n&&"disabled",r!=="default"&&`color${ae(r)}`,o&&`edge${ae(o)}`,`size${ae(i)}`]};return Ne(a,u8,t)},p8=J(To,{name:"MuiIconButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="default"&&t[`color${ae(n.color)}`],n.edge&&t[`edge${ae(n.edge)}`],t[`size${ae(n.size)}`]]}})($e(({theme:e})=>({textAlign:"center",flex:"0 0 auto",fontSize:e.typography.pxToRem(24),padding:8,borderRadius:"50%",color:(e.vars||e).palette.action.active,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),variants:[{props:t=>!t.disableRipple,style:{"--IconButton-hoverBg":e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity),"&:hover":{backgroundColor:"var(--IconButton-hoverBg)","@media (hover: none)":{backgroundColor:"transparent"}}}},{props:{edge:"start"},style:{marginLeft:-12}},{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:{edge:"end"},style:{marginRight:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}}]})),$e(({theme:e})=>({variants:[{props:{color:"inherit"},style:{color:"inherit"}},...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t},style:{"--IconButton-hoverBg":e.vars?`rgba(${(e.vars||e).palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be((e.vars||e).palette[t].main,e.palette.action.hoverOpacity)}})),{props:{size:"small"},style:{padding:5,fontSize:e.typography.pxToRem(18)}},{props:{size:"large"},style:{padding:12,fontSize:e.typography.pxToRem(28)}}],[`&.${d8.disabled}`]:{backgroundColor:"transparent",color:(e.vars||e).palette.action.disabled}}))),hr=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiIconButton"}),{edge:o=!1,children:i,className:a,color:s="default",disabled:l=!1,disableFocusRipple:c=!1,size:u="medium",...d}=r,f={...r,edge:o,color:s,disabled:l,disableFocusRipple:c,size:u},p=f8(f);return g.jsx(p8,{className:ve(p.root,a),centerRipple:!0,focusRipple:!c,disabled:l,ref:n,...d,ownerState:f,children:i})}),g8=un(g.jsx("path",{d:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"}),"SuccessOutlined"),h8=un(g.jsx("path",{d:"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined"),m8=un(g.jsx("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"ErrorOutline"),v8=un(g.jsx("path",{d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"}),"InfoOutlined"),v_=un(g.jsx("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),y8=e=>{const{variant:t,color:n,severity:r,classes:o}=e,i={root:["root",`color${ae(n||r)}`,`${t}${ae(n||r)}`,`${t}`],icon:["icon"],message:["message"],action:["action"]};return Ne(i,c8,o)},b8=J(Is,{name:"MuiAlert",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`${n.variant}${ae(n.color||n.severity)}`]]}})($e(({theme:e})=>{const t=e.palette.mode==="light"?ea:ta,n=e.palette.mode==="light"?ta:ea;return{...e.typography.body2,backgroundColor:"transparent",display:"flex",padding:"6px 16px",variants:[...Object.entries(e.palette).filter(Ft(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"standard"},style:{color:e.vars?e.vars.palette.Alert[`${r}Color`]:t(e.palette[r].light,.6),backgroundColor:e.vars?e.vars.palette.Alert[`${r}StandardBg`]:n(e.palette[r].light,.9),[`& .${gb.icon}`]:e.vars?{color:e.vars.palette.Alert[`${r}IconColor`]}:{color:e.palette[r].main}}})),...Object.entries(e.palette).filter(Ft(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"outlined"},style:{color:e.vars?e.vars.palette.Alert[`${r}Color`]:t(e.palette[r].light,.6),border:`1px solid ${(e.vars||e).palette[r].light}`,[`& .${gb.icon}`]:e.vars?{color:e.vars.palette.Alert[`${r}IconColor`]}:{color:e.palette[r].main}}})),...Object.entries(e.palette).filter(Ft(["dark"])).map(([r])=>({props:{colorSeverity:r,variant:"filled"},style:{fontWeight:e.typography.fontWeightMedium,...e.vars?{color:e.vars.palette.Alert[`${r}FilledColor`],backgroundColor:e.vars.palette.Alert[`${r}FilledBg`]}:{backgroundColor:e.palette.mode==="dark"?e.palette[r].dark:e.palette[r].main,color:e.palette.getContrastText(e.palette[r].main)}}}))]}})),x8=J("div",{name:"MuiAlert",slot:"Icon",overridesResolver:(e,t)=>t.icon})({marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9}),S8=J("div",{name:"MuiAlert",slot:"Message",overridesResolver:(e,t)=>t.message})({padding:"8px 0",minWidth:0,overflow:"auto"}),hb=J("div",{name:"MuiAlert",slot:"Action",overridesResolver:(e,t)=>t.action})({display:"flex",alignItems:"flex-start",padding:"4px 0 0 16px",marginLeft:"auto",marginRight:-8}),mb={success:g.jsx(g8,{fontSize:"inherit"}),warning:g.jsx(h8,{fontSize:"inherit"}),error:g.jsx(m8,{fontSize:"inherit"}),info:g.jsx(v8,{fontSize:"inherit"})},y_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiAlert"}),{action:o,children:i,className:a,closeText:s="Close",color:l,components:c={},componentsProps:u={},icon:d,iconMapping:f=mb,onClose:p,role:h="alert",severity:y="success",slotProps:w={},slots:v={},variant:S="standard",...m}=r,C={...r,color:l,severity:y,variant:S,colorSeverity:l||y},_=y8(C),R={slots:{closeButton:c.CloseButton,closeIcon:c.CloseIcon,...v},slotProps:{...u,...w}},[k,T]=an("closeButton",{elementType:hr,externalForwardedProps:R,ownerState:C}),[P,x]=an("closeIcon",{elementType:v_,externalForwardedProps:R,ownerState:C});return g.jsxs(b8,{role:h,elevation:0,ownerState:C,className:ve(_.root,a),ref:n,...m,children:[d!==!1?g.jsx(x8,{ownerState:C,className:_.icon,children:d||f[y]||mb[y]}):null,g.jsx(S8,{ownerState:C,className:_.message,children:i}),o!=null?g.jsx(hb,{ownerState:C,className:_.action,children:o}):null,o==null&&p?g.jsx(hb,{ownerState:C,className:_.action,children:g.jsx(k,{size:"small","aria-label":s,title:s,color:"inherit",onClick:p,...T,children:g.jsx(P,{fontSize:"small",...x})})}):null]})});function w8(e){return Oe("MuiTypography",e)}Ee("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const C8={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},_8=kM(),R8=e=>{const{align:t,gutterBottom:n,noWrap:r,paragraph:o,variant:i,classes:a}=e,s={root:["root",i,e.align!=="inherit"&&`align${ae(t)}`,n&&"gutterBottom",r&&"noWrap",o&&"paragraph"]};return Ne(s,w8,a)},T8=J("span",{name:"MuiTypography",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],n.align!=="inherit"&&t[`align${ae(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom,n.paragraph&&t.paragraph]}})($e(({theme:e})=>{var t;return{margin:0,variants:[{props:{variant:"inherit"},style:{font:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}},...Object.entries(e.typography).filter(([n,r])=>n!=="inherit"&&r&&typeof r=="object").map(([n,r])=>({props:{variant:n},style:r})),...Object.entries(e.palette).filter(Ft()).map(([n])=>({props:{color:n},style:{color:(e.vars||e).palette[n].main}})),...Object.entries(((t=e.palette)==null?void 0:t.text)||{}).filter(([,n])=>typeof n=="string").map(([n])=>({props:{color:`text${ae(n)}`},style:{color:(e.vars||e).palette.text[n]}})),{props:({ownerState:n})=>n.align!=="inherit",style:{textAlign:"var(--Typography-textAlign)"}},{props:({ownerState:n})=>n.noWrap,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},{props:({ownerState:n})=>n.gutterBottom,style:{marginBottom:"0.35em"}},{props:({ownerState:n})=>n.paragraph,style:{marginBottom:16}}]}})),vb={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},mt=b.forwardRef(function(t,n){const{color:r,...o}=De({props:t,name:"MuiTypography"}),i=!C8[r],a=_8({...o,...i&&{color:r}}),{align:s="inherit",className:l,component:c,gutterBottom:u=!1,noWrap:d=!1,paragraph:f=!1,variant:p="body1",variantMapping:h=vb,...y}=a,w={...a,align:s,color:r,className:l,component:c,gutterBottom:u,noWrap:d,paragraph:f,variant:p,variantMapping:h},v=c||(f?"p":h[p]||vb[p])||"span",S=R8(w);return g.jsx(T8,{as:v,ref:n,className:ve(S.root,l),...y,ownerState:w,style:{...s!=="inherit"&&{"--Typography-textAlign":s},...y.style}})});function yb(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function P8(e={}){const{ignoreAccents:t=!0,ignoreCase:n=!0,limit:r,matchFrom:o="any",stringify:i,trim:a=!1}=e;return(s,{inputValue:l,getOptionLabel:c})=>{let u=a?l.trim():l;n&&(u=u.toLowerCase()),t&&(u=yb(u));const d=u?s.filter(f=>{let p=(i||c)(f);return n&&(p=p.toLowerCase()),t&&(p=yb(p)),o==="start"?p.startsWith(u):p.includes(u)}):s;return typeof r=="number"?d.slice(0,r):d}}const k8=P8(),bb=5,$8=e=>{var t;return e.current!==null&&((t=e.current.parentElement)==null?void 0:t.contains(document.activeElement))},E8=[];function M8(e){const{unstable_isActiveElementInListbox:t=$8,unstable_classNamePrefix:n="Mui",autoComplete:r=!1,autoHighlight:o=!1,autoSelect:i=!1,blurOnSelect:a=!1,clearOnBlur:s=!e.freeSolo,clearOnEscape:l=!1,componentName:c="useAutocomplete",defaultValue:u=e.multiple?E8:null,disableClearable:d=!1,disableCloseOnSelect:f=!1,disabled:p,disabledItemsFocusable:h=!1,disableListWrap:y=!1,filterOptions:w=k8,filterSelectedOptions:v=!1,freeSolo:S=!1,getOptionDisabled:m,getOptionKey:C,getOptionLabel:_=X=>X.label??X,groupBy:R,handleHomeEndKeys:k=!e.freeSolo,id:T,includeInputInList:P=!1,inputValue:x,isOptionEqualToValue:$=(X,Y)=>X===Y,multiple:I=!1,onChange:O,onClose:D,onHighlightChange:M,onInputChange:A,onOpen:N,open:E,openOnFocus:L=!1,options:B,readOnly:H=!1,selectOnFocus:z=!e.freeSolo,value:j}=e,F=ds(T);let W=_;W=X=>{const Y=_(X);return typeof Y!="string"?String(Y):Y};const V=b.useRef(!1),ee=b.useRef(!0),re=b.useRef(null),U=b.useRef(null),[K,se]=b.useState(null),[q,ce]=b.useState(-1),ue=o?0:-1,ie=b.useRef(ue),[te,de]=Hi({controlled:j,default:u,name:c}),[Q,be]=Hi({controlled:x,default:"",name:c,state:"inputValue"}),[Te,we]=b.useState(!1),ge=b.useCallback((X,Y,Ce)=>{if(!(I?te.length!(v&&(I?te:[te]).some(Y=>Y!==null&&$(X,Y)))),{inputValue:Pe&&ye?"":Q,getOptionLabel:W}):[],pe=_M({filteredOptions:ke,value:te,inputValue:Q});b.useEffect(()=>{const X=te!==pe.value;Te&&!X||S&&!X||ge(null,te,"reset")},[te,ge,Te,pe.value,S]);const ne=le&&ke.length>0&&!H,xe=bn(X=>{X===-1?re.current.focus():K.querySelector(`[data-tag-index="${X}"]`).focus()});b.useEffect(()=>{I&&q>te.length-1&&(ce(-1),xe(-1))},[te,I,q,xe]);function Le(X,Y){if(!U.current||X<0||X>=ke.length)return-1;let Ce=X;for(;;){const We=U.current.querySelector(`[data-option-index="${Ce}"]`),qe=h?!1:!We||We.disabled||We.getAttribute("aria-disabled")==="true";if(We&&We.hasAttribute("tabindex")&&!qe)return Ce;if(Y==="next"?Ce=(Ce+1)%ke.length:Ce=(Ce-1+ke.length)%ke.length,Ce===X)return-1}}const fe=bn(({event:X,index:Y,reason:Ce="auto"})=>{if(ie.current=Y,Y===-1?re.current.removeAttribute("aria-activedescendant"):re.current.setAttribute("aria-activedescendant",`${F}-option-${Y}`),M&&M(X,Y===-1?null:ke[Y],Ce),!U.current)return;const We=U.current.querySelector(`[role="option"].${n}-focused`);We&&(We.classList.remove(`${n}-focused`),We.classList.remove(`${n}-focusVisible`));let qe=U.current;if(U.current.getAttribute("role")!=="listbox"&&(qe=U.current.parentElement.querySelector('[role="listbox"]')),!qe)return;if(Y===-1){qe.scrollTop=0;return}const Pt=U.current.querySelector(`[data-option-index="${Y}"]`);if(Pt&&(Pt.classList.add(`${n}-focused`),Ce==="keyboard"&&Pt.classList.add(`${n}-focusVisible`),qe.scrollHeight>qe.clientHeight&&Ce!=="mouse"&&Ce!=="touch")){const at=Pt,_r=qe.clientHeight+qe.scrollTop,Fc=at.offsetTop+at.offsetHeight;Fc>_r?qe.scrollTop=Fc-qe.clientHeight:at.offsetTop-at.offsetHeight*(R?1.3:0){if(!Re)return;const Pt=Le((()=>{const at=ke.length-1;if(Y==="reset")return ue;if(Y==="start")return 0;if(Y==="end")return at;const _r=ie.current+Y;return _r<0?_r===-1&&P?-1:y&&ie.current!==-1||Math.abs(Y)>1?0:at:_r>at?_r===at+1&&P?-1:y||Math.abs(Y)>1?at:0:_r})(),Ce);if(fe({index:Pt,reason:We,event:X}),r&&Y!=="reset")if(Pt===-1)re.current.value=Q;else{const at=W(ke[Pt]);re.current.value=at,at.toLowerCase().indexOf(Q.toLowerCase())===0&&Q.length>0&&re.current.setSelectionRange(Q.length,at.length)}}),me=()=>{const X=(Y,Ce)=>{const We=Y?W(Y):"",qe=Ce?W(Ce):"";return We===qe};if(ie.current!==-1&&pe.filteredOptions&&pe.filteredOptions.length!==ke.length&&pe.inputValue===Q&&(I?te.length===pe.value.length&&pe.value.every((Y,Ce)=>W(te[Ce])===W(Y)):X(pe.value,te))){const Y=pe.filteredOptions[ie.current];if(Y)return ke.findIndex(Ce=>W(Ce)===W(Y))}return-1},je=b.useCallback(()=>{if(!Re)return;const X=me();if(X!==-1){ie.current=X;return}const Y=I?te[0]:te;if(ke.length===0||Y==null){oe({diff:"reset"});return}if(U.current){if(Y!=null){const Ce=ke[ie.current];if(I&&Ce&&te.findIndex(qe=>$(Ce,qe))!==-1)return;const We=ke.findIndex(qe=>$(qe,Y));We===-1?oe({diff:"reset"}):fe({index:We});return}if(ie.current>=ke.length-1){fe({index:ke.length-1});return}fe({index:ie.current})}},[ke.length,I?!1:te,v,oe,fe,Re,Q,I]),Ve=bn(X=>{jd(U,X),X&&je()});b.useEffect(()=>{je()},[je]);const Ye=X=>{le||(Se(!0),Ge(!0),N&&N(X))},Tt=(X,Y)=>{le&&(Se(!1),D&&D(X,Y))},Zt=(X,Y,Ce,We)=>{if(I){if(te.length===Y.length&&te.every((qe,Pt)=>qe===Y[Pt]))return}else if(te===Y)return;O&&O(X,Y,Ce,We),de(Y)},Mn=b.useRef(!1),ir=(X,Y,Ce="selectOption",We="options")=>{let qe=Ce,Pt=Y;if(I){Pt=Array.isArray(te)?te.slice():[];const at=Pt.findIndex(_r=>$(Y,_r));at===-1?Pt.push(Y):We!=="freeSolo"&&(Pt.splice(at,1),qe="removeOption")}ge(X,Pt,qe),Zt(X,Pt,qe,{option:Y}),!f&&(!X||!X.ctrlKey&&!X.metaKey)&&Tt(X,qe),(a===!0||a==="touch"&&Mn.current||a==="mouse"&&!Mn.current)&&re.current.blur()};function Vn(X,Y){if(X===-1)return-1;let Ce=X;for(;;){if(Y==="next"&&Ce===te.length||Y==="previous"&&Ce===-1)return-1;const We=K.querySelector(`[data-tag-index="${Ce}"]`);if(!We||!We.hasAttribute("tabindex")||We.disabled||We.getAttribute("aria-disabled")==="true")Ce+=Y==="next"?1:-1;else return Ce}}const Oo=(X,Y)=>{if(!I)return;Q===""&&Tt(X,"toggleInput");let Ce=q;q===-1?Q===""&&Y==="previous"&&(Ce=te.length-1):(Ce+=Y==="next"?1:-1,Ce<0&&(Ce=0),Ce===te.length&&(Ce=-1)),Ce=Vn(Ce,Y),ce(Ce),xe(Ce)},_i=X=>{V.current=!0,be(""),A&&A(X,"","clear"),Zt(X,I?[]:null,"clear")},Fe=X=>Y=>{if(X.onKeyDown&&X.onKeyDown(Y),!Y.defaultMuiPrevented&&(q!==-1&&!["ArrowLeft","ArrowRight"].includes(Y.key)&&(ce(-1),xe(-1)),Y.which!==229))switch(Y.key){case"Home":Re&&k&&(Y.preventDefault(),oe({diff:"start",direction:"next",reason:"keyboard",event:Y}));break;case"End":Re&&k&&(Y.preventDefault(),oe({diff:"end",direction:"previous",reason:"keyboard",event:Y}));break;case"PageUp":Y.preventDefault(),oe({diff:-bb,direction:"previous",reason:"keyboard",event:Y}),Ye(Y);break;case"PageDown":Y.preventDefault(),oe({diff:bb,direction:"next",reason:"keyboard",event:Y}),Ye(Y);break;case"ArrowDown":Y.preventDefault(),oe({diff:1,direction:"next",reason:"keyboard",event:Y}),Ye(Y);break;case"ArrowUp":Y.preventDefault(),oe({diff:-1,direction:"previous",reason:"keyboard",event:Y}),Ye(Y);break;case"ArrowLeft":Oo(Y,"previous");break;case"ArrowRight":Oo(Y,"next");break;case"Enter":if(ie.current!==-1&&Re){const Ce=ke[ie.current],We=m?m(Ce):!1;if(Y.preventDefault(),We)return;ir(Y,Ce,"selectOption"),r&&re.current.setSelectionRange(re.current.value.length,re.current.value.length)}else S&&Q!==""&&Pe===!1&&(I&&Y.preventDefault(),ir(Y,Q,"createOption","freeSolo"));break;case"Escape":Re?(Y.preventDefault(),Y.stopPropagation(),Tt(Y,"escape")):l&&(Q!==""||I&&te.length>0)&&(Y.preventDefault(),Y.stopPropagation(),_i(Y));break;case"Backspace":if(I&&!H&&Q===""&&te.length>0){const Ce=q===-1?te.length-1:q,We=te.slice();We.splice(Ce,1),Zt(Y,We,"removeOption",{option:te[Ce]})}break;case"Delete":if(I&&!H&&Q===""&&te.length>0&&q!==-1){const Ce=q,We=te.slice();We.splice(Ce,1),Zt(Y,We,"removeOption",{option:te[Ce]})}break}},_n=X=>{we(!0),L&&!V.current&&Ye(X)},Dc=X=>{if(t(U)){re.current.focus();return}we(!1),ee.current=!0,V.current=!1,i&&ie.current!==-1&&Re?ir(X,ke[ie.current],"blur"):i&&S&&Q!==""?ir(X,Q,"blur","freeSolo"):s&&ge(X,te,"blur"),Tt(X,"blur")},pa=X=>{const Y=X.target.value;Q!==Y&&(be(Y),Ge(!1),A&&A(X,Y,"input")),Y===""?!d&&!I&&Zt(X,null,"clear"):Ye(X)},Ds=X=>{const Y=Number(X.currentTarget.getAttribute("data-option-index"));ie.current!==Y&&fe({event:X,index:Y,reason:"mouse"})},js=X=>{fe({event:X,index:Number(X.currentTarget.getAttribute("data-option-index")),reason:"touch"}),Mn.current=!0},$p=X=>{const Y=Number(X.currentTarget.getAttribute("data-option-index"));ir(X,ke[Y],"selectOption"),Mn.current=!1},Ep=X=>Y=>{const Ce=te.slice();Ce.splice(X,1),Zt(Y,Ce,"removeOption",{option:te[X]})},jc=X=>{le?Tt(X,"toggleInput"):Ye(X)},uv=X=>{X.currentTarget.contains(X.target)&&X.target.getAttribute("id")!==F&&X.preventDefault()},Fs=X=>{X.currentTarget.contains(X.target)&&(re.current.focus(),z&&ee.current&&re.current.selectionEnd-re.current.selectionStart===0&&re.current.select(),ee.current=!1)},dn=X=>{!p&&(Q===""||!le)&&jc(X)};let Nt=S&&Q.length>0;Nt=Nt||(I?te.length>0:te!==null);let lo=ke;return R&&(lo=ke.reduce((X,Y,Ce)=>{const We=R(Y);return X.length>0&&X[X.length-1].group===We?X[X.length-1].options.push(Y):X.push({key:Ce,index:Ce,group:We,options:[Y]}),X},[])),p&&Te&&Dc(),{getRootProps:(X={})=>({"aria-owns":ne?`${F}-listbox`:null,...X,onKeyDown:Fe(X),onMouseDown:uv,onClick:Fs}),getInputLabelProps:()=>({id:`${F}-label`,htmlFor:F}),getInputProps:()=>({id:F,value:Q,onBlur:Dc,onFocus:_n,onChange:pa,onMouseDown:dn,"aria-activedescendant":Re?"":null,"aria-autocomplete":r?"both":"list","aria-controls":ne?`${F}-listbox`:void 0,"aria-expanded":ne,autoComplete:"off",ref:re,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:p}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:_i}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:jc}),getTagProps:({index:X})=>({key:X,"data-tag-index":X,tabIndex:-1,...!H&&{onDelete:Ep(X)}}),getListboxProps:()=>({role:"listbox",id:`${F}-listbox`,"aria-labelledby":`${F}-label`,ref:Ve,onMouseDown:X=>{X.preventDefault()}}),getOptionProps:({index:X,option:Y})=>{const Ce=(I?te:[te]).some(qe=>qe!=null&&$(Y,qe)),We=m?m(Y):!1;return{key:(C==null?void 0:C(Y))??W(Y),tabIndex:-1,role:"option",id:`${F}-option-${X}`,onMouseMove:Ds,onClick:$p,onTouchStart:js,"data-option-index":X,"aria-disabled":We,"aria-selected":Ce}},id:F,inputValue:Q,value:te,dirty:Nt,expanded:Re&&K,popupOpen:Re,focused:Te||q!==-1,anchorEl:K,setAnchorEl:se,focusedTag:q,groupedOptions:lo}}var jn="top",xr="bottom",Sr="right",Fn="left",S1="auto",Tc=[jn,xr,Sr,Fn],gs="start",lc="end",I8="clippingParents",b_="viewport",Xs="popper",O8="reference",xb=Tc.reduce(function(e,t){return e.concat([t+"-"+gs,t+"-"+lc])},[]),x_=[].concat(Tc,[S1]).reduce(function(e,t){return e.concat([t,t+"-"+gs,t+"-"+lc])},[]),L8="beforeRead",A8="read",N8="afterRead",D8="beforeMain",j8="main",F8="afterMain",B8="beforeWrite",z8="write",H8="afterWrite",V8=[L8,A8,N8,D8,j8,F8,B8,z8,H8];function so(e){return e?(e.nodeName||"").toLowerCase():null}function er(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function oa(e){var t=er(e).Element;return e instanceof t||e instanceof Element}function vr(e){var t=er(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function w1(e){if(typeof ShadowRoot>"u")return!1;var t=er(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function W8(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},o=t.attributes[n]||{},i=t.elements[n];!vr(i)||!so(i)||(Object.assign(i.style,r),Object.keys(o).forEach(function(a){var s=o[a];s===!1?i.removeAttribute(a):i.setAttribute(a,s===!0?"":s)}))})}function U8(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var o=t.elements[r],i=t.attributes[r]||{},a=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),s=a.reduce(function(l,c){return l[c]="",l},{});!vr(o)||!so(o)||(Object.assign(o.style,s),Object.keys(i).forEach(function(l){o.removeAttribute(l)}))})}}const G8={name:"applyStyles",enabled:!0,phase:"write",fn:W8,effect:U8,requires:["computeStyles"]};function ao(e){return e.split("-")[0]}var Vi=Math.max,Hd=Math.min,hs=Math.round;function ym(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function S_(){return!/^((?!chrome|android).)*safari/i.test(ym())}function ms(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),o=1,i=1;t&&vr(e)&&(o=e.offsetWidth>0&&hs(r.width)/e.offsetWidth||1,i=e.offsetHeight>0&&hs(r.height)/e.offsetHeight||1);var a=oa(e)?er(e):window,s=a.visualViewport,l=!S_()&&n,c=(r.left+(l&&s?s.offsetLeft:0))/o,u=(r.top+(l&&s?s.offsetTop:0))/i,d=r.width/o,f=r.height/i;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c,x:c,y:u}}function C1(e){var t=ms(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function w_(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&w1(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Po(e){return er(e).getComputedStyle(e)}function q8(e){return["table","td","th"].indexOf(so(e))>=0}function xi(e){return((oa(e)?e.ownerDocument:e.document)||window.document).documentElement}function dp(e){return so(e)==="html"?e:e.assignedSlot||e.parentNode||(w1(e)?e.host:null)||xi(e)}function Sb(e){return!vr(e)||Po(e).position==="fixed"?null:e.offsetParent}function K8(e){var t=/firefox/i.test(ym()),n=/Trident/i.test(ym());if(n&&vr(e)){var r=Po(e);if(r.position==="fixed")return null}var o=dp(e);for(w1(o)&&(o=o.host);vr(o)&&["html","body"].indexOf(so(o))<0;){var i=Po(o);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||t&&i.willChange==="filter"||t&&i.filter&&i.filter!=="none")return o;o=o.parentNode}return null}function Pc(e){for(var t=er(e),n=Sb(e);n&&q8(n)&&Po(n).position==="static";)n=Sb(n);return n&&(so(n)==="html"||so(n)==="body"&&Po(n).position==="static")?t:n||K8(e)||t}function _1(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function $l(e,t,n){return Vi(e,Hd(t,n))}function Z8(e,t,n){var r=$l(e,t,n);return r>n?n:r}function C_(){return{top:0,right:0,bottom:0,left:0}}function __(e){return Object.assign({},C_(),e)}function R_(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var Q8=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,__(typeof t!="number"?t:R_(t,Tc))};function Y8(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=ao(n.placement),l=_1(s),c=[Fn,Sr].indexOf(s)>=0,u=c?"height":"width";if(!(!i||!a)){var d=Q8(o.padding,n),f=C1(i),p=l==="y"?jn:Fn,h=l==="y"?xr:Sr,y=n.rects.reference[u]+n.rects.reference[l]-a[l]-n.rects.popper[u],w=a[l]-n.rects.reference[l],v=Pc(i),S=v?l==="y"?v.clientHeight||0:v.clientWidth||0:0,m=y/2-w/2,C=d[p],_=S-f[u]-d[h],R=S/2-f[u]/2+m,k=$l(C,R,_),T=l;n.modifiersData[r]=(t={},t[T]=k,t.centerOffset=k-R,t)}}function X8(e){var t=e.state,n=e.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=t.elements.popper.querySelector(o),!o)||w_(t.elements.popper,o)&&(t.elements.arrow=o))}const J8={name:"arrow",enabled:!0,phase:"main",fn:Y8,effect:X8,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function vs(e){return e.split("-")[1]}var e6={top:"auto",right:"auto",bottom:"auto",left:"auto"};function t6(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:hs(n*o)/o||0,y:hs(r*o)/o||0}}function wb(e){var t,n=e.popper,r=e.popperRect,o=e.placement,i=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=a.x,p=f===void 0?0:f,h=a.y,y=h===void 0?0:h,w=typeof u=="function"?u({x:p,y}):{x:p,y};p=w.x,y=w.y;var v=a.hasOwnProperty("x"),S=a.hasOwnProperty("y"),m=Fn,C=jn,_=window;if(c){var R=Pc(n),k="clientHeight",T="clientWidth";if(R===er(n)&&(R=xi(n),Po(R).position!=="static"&&s==="absolute"&&(k="scrollHeight",T="scrollWidth")),R=R,o===jn||(o===Fn||o===Sr)&&i===lc){C=xr;var P=d&&R===_&&_.visualViewport?_.visualViewport.height:R[k];y-=P-r.height,y*=l?1:-1}if(o===Fn||(o===jn||o===xr)&&i===lc){m=Sr;var x=d&&R===_&&_.visualViewport?_.visualViewport.width:R[T];p-=x-r.width,p*=l?1:-1}}var $=Object.assign({position:s},c&&e6),I=u===!0?t6({x:p,y},er(n)):{x:p,y};if(p=I.x,y=I.y,l){var O;return Object.assign({},$,(O={},O[C]=S?"0":"",O[m]=v?"0":"",O.transform=(_.devicePixelRatio||1)<=1?"translate("+p+"px, "+y+"px)":"translate3d("+p+"px, "+y+"px, 0)",O))}return Object.assign({},$,(t={},t[C]=S?y+"px":"",t[m]=v?p+"px":"",t.transform="",t))}function n6(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=r===void 0?!0:r,i=n.adaptive,a=i===void 0?!0:i,s=n.roundOffsets,l=s===void 0?!0:s,c={placement:ao(t.placement),variation:vs(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,wb(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,wb(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const r6={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:n6,data:{}};var du={passive:!0};function o6(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,i=o===void 0?!0:o,a=r.resize,s=a===void 0?!0:a,l=er(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&c.forEach(function(u){u.addEventListener("scroll",n.update,du)}),s&&l.addEventListener("resize",n.update,du),function(){i&&c.forEach(function(u){u.removeEventListener("scroll",n.update,du)}),s&&l.removeEventListener("resize",n.update,du)}}const i6={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:o6,data:{}};var a6={left:"right",right:"left",bottom:"top",top:"bottom"};function qu(e){return e.replace(/left|right|bottom|top/g,function(t){return a6[t]})}var s6={start:"end",end:"start"};function Cb(e){return e.replace(/start|end/g,function(t){return s6[t]})}function R1(e){var t=er(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function T1(e){return ms(xi(e)).left+R1(e).scrollLeft}function l6(e,t){var n=er(e),r=xi(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,l=0;if(o){i=o.width,a=o.height;var c=S_();(c||!c&&t==="fixed")&&(s=o.offsetLeft,l=o.offsetTop)}return{width:i,height:a,x:s+T1(e),y:l}}function c6(e){var t,n=xi(e),r=R1(e),o=(t=e.ownerDocument)==null?void 0:t.body,i=Vi(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=Vi(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-r.scrollLeft+T1(e),l=-r.scrollTop;return Po(o||n).direction==="rtl"&&(s+=Vi(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:a,x:s,y:l}}function P1(e){var t=Po(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function T_(e){return["html","body","#document"].indexOf(so(e))>=0?e.ownerDocument.body:vr(e)&&P1(e)?e:T_(dp(e))}function El(e,t){var n;t===void 0&&(t=[]);var r=T_(e),o=r===((n=e.ownerDocument)==null?void 0:n.body),i=er(r),a=o?[i].concat(i.visualViewport||[],P1(r)?r:[]):r,s=t.concat(a);return o?s:s.concat(El(dp(a)))}function bm(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function u6(e,t){var n=ms(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function _b(e,t,n){return t===b_?bm(l6(e,n)):oa(t)?u6(t,n):bm(c6(xi(e)))}function d6(e){var t=El(dp(e)),n=["absolute","fixed"].indexOf(Po(e).position)>=0,r=n&&vr(e)?Pc(e):e;return oa(r)?t.filter(function(o){return oa(o)&&w_(o,r)&&so(o)!=="body"}):[]}function f6(e,t,n,r){var o=t==="clippingParents"?d6(e):[].concat(t),i=[].concat(o,[n]),a=i[0],s=i.reduce(function(l,c){var u=_b(e,c,r);return l.top=Vi(u.top,l.top),l.right=Hd(u.right,l.right),l.bottom=Hd(u.bottom,l.bottom),l.left=Vi(u.left,l.left),l},_b(e,a,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function P_(e){var t=e.reference,n=e.element,r=e.placement,o=r?ao(r):null,i=r?vs(r):null,a=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,l;switch(o){case jn:l={x:a,y:t.y-n.height};break;case xr:l={x:a,y:t.y+t.height};break;case Sr:l={x:t.x+t.width,y:s};break;case Fn:l={x:t.x-n.width,y:s};break;default:l={x:t.x,y:t.y}}var c=o?_1(o):null;if(c!=null){var u=c==="y"?"height":"width";switch(i){case gs:l[c]=l[c]-(t[u]/2-n[u]/2);break;case lc:l[c]=l[c]+(t[u]/2-n[u]/2);break}}return l}function cc(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=r===void 0?e.placement:r,i=n.strategy,a=i===void 0?e.strategy:i,s=n.boundary,l=s===void 0?I8:s,c=n.rootBoundary,u=c===void 0?b_:c,d=n.elementContext,f=d===void 0?Xs:d,p=n.altBoundary,h=p===void 0?!1:p,y=n.padding,w=y===void 0?0:y,v=__(typeof w!="number"?w:R_(w,Tc)),S=f===Xs?O8:Xs,m=e.rects.popper,C=e.elements[h?S:f],_=f6(oa(C)?C:C.contextElement||xi(e.elements.popper),l,u,a),R=ms(e.elements.reference),k=P_({reference:R,element:m,strategy:"absolute",placement:o}),T=bm(Object.assign({},m,k)),P=f===Xs?T:R,x={top:_.top-P.top+v.top,bottom:P.bottom-_.bottom+v.bottom,left:_.left-P.left+v.left,right:P.right-_.right+v.right},$=e.modifiersData.offset;if(f===Xs&&$){var I=$[o];Object.keys(x).forEach(function(O){var D=[Sr,xr].indexOf(O)>=0?1:-1,M=[jn,xr].indexOf(O)>=0?"y":"x";x[O]+=I[M]*D})}return x}function p6(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,c=l===void 0?x_:l,u=vs(r),d=u?s?xb:xb.filter(function(h){return vs(h)===u}):Tc,f=d.filter(function(h){return c.indexOf(h)>=0});f.length===0&&(f=d);var p=f.reduce(function(h,y){return h[y]=cc(e,{placement:y,boundary:o,rootBoundary:i,padding:a})[ao(y)],h},{});return Object.keys(p).sort(function(h,y){return p[h]-p[y]})}function g6(e){if(ao(e)===S1)return[];var t=qu(e);return[Cb(e),t,Cb(t)]}function h6(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!0:a,l=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,h=p===void 0?!0:p,y=n.allowedAutoPlacements,w=t.options.placement,v=ao(w),S=v===w,m=l||(S||!h?[qu(w)]:g6(w)),C=[w].concat(m).reduce(function(F,W){return F.concat(ao(W)===S1?p6(t,{placement:W,boundary:u,rootBoundary:d,padding:c,flipVariations:h,allowedAutoPlacements:y}):W)},[]),_=t.rects.reference,R=t.rects.popper,k=new Map,T=!0,P=C[0],x=0;x=0,M=D?"width":"height",A=cc(t,{placement:$,boundary:u,rootBoundary:d,altBoundary:f,padding:c}),N=D?O?Sr:Fn:O?xr:jn;_[M]>R[M]&&(N=qu(N));var E=qu(N),L=[];if(i&&L.push(A[I]<=0),s&&L.push(A[N]<=0,A[E]<=0),L.every(function(F){return F})){P=$,T=!1;break}k.set($,L)}if(T)for(var B=h?3:1,H=function(W){var V=C.find(function(ee){var re=k.get(ee);if(re)return re.slice(0,W).every(function(U){return U})});if(V)return P=V,"break"},z=B;z>0;z--){var j=H(z);if(j==="break")break}t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}}const m6={name:"flip",enabled:!0,phase:"main",fn:h6,requiresIfExists:["offset"],data:{_skip:!1}};function Rb(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Tb(e){return[jn,Sr,xr,Fn].some(function(t){return e[t]>=0})}function v6(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=cc(t,{elementContext:"reference"}),s=cc(t,{altBoundary:!0}),l=Rb(a,r),c=Rb(s,o,i),u=Tb(l),d=Tb(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}const y6={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:v6};function b6(e,t,n){var r=ao(e),o=[Fn,jn].indexOf(r)>=0?-1:1,i=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[Fn,Sr].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}function x6(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=o===void 0?[0,0]:o,a=x_.reduce(function(u,d){return u[d]=b6(d,t.rects,i),u},{}),s=a[t.placement],l=s.x,c=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}const S6={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:x6};function w6(e){var t=e.state,n=e.name;t.modifiersData[n]=P_({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const C6={name:"popperOffsets",enabled:!0,phase:"read",fn:w6,data:{}};function _6(e){return e==="x"?"y":"x"}function R6(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!1:a,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0?!0:f,h=n.tetherOffset,y=h===void 0?0:h,w=cc(t,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),v=ao(t.placement),S=vs(t.placement),m=!S,C=_1(v),_=_6(C),R=t.modifiersData.popperOffsets,k=t.rects.reference,T=t.rects.popper,P=typeof y=="function"?y(Object.assign({},t.rects,{placement:t.placement})):y,x=typeof P=="number"?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),$=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(R){if(i){var O,D=C==="y"?jn:Fn,M=C==="y"?xr:Sr,A=C==="y"?"height":"width",N=R[C],E=N+w[D],L=N-w[M],B=p?-T[A]/2:0,H=S===gs?k[A]:T[A],z=S===gs?-T[A]:-k[A],j=t.elements.arrow,F=p&&j?C1(j):{width:0,height:0},W=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:C_(),V=W[D],ee=W[M],re=$l(0,k[A],F[A]),U=m?k[A]/2-B-re-V-x.mainAxis:H-re-V-x.mainAxis,K=m?-k[A]/2+B+re+ee+x.mainAxis:z+re+ee+x.mainAxis,se=t.elements.arrow&&Pc(t.elements.arrow),q=se?C==="y"?se.clientTop||0:se.clientLeft||0:0,ce=(O=$==null?void 0:$[C])!=null?O:0,ue=N+U-ce-q,ie=N+K-ce,te=$l(p?Hd(E,ue):E,N,p?Vi(L,ie):L);R[C]=te,I[C]=te-N}if(s){var de,Q=C==="x"?jn:Fn,be=C==="x"?xr:Sr,Te=R[_],we=_==="y"?"height":"width",ge=Te+w[Q],le=Te-w[be],Se=[jn,Fn].indexOf(v)!==-1,ye=(de=$==null?void 0:$[_])!=null?de:0,Ge=Se?ge:Te-k[we]-T[we]-ye+x.altAxis,Pe=Se?Te+k[we]+T[we]-ye-x.altAxis:le,Re=p&&Se?Z8(Ge,Te,Pe):$l(p?Ge:ge,Te,p?Pe:le);R[_]=Re,I[_]=Re-Te}t.modifiersData[r]=I}}const T6={name:"preventOverflow",enabled:!0,phase:"main",fn:R6,requiresIfExists:["offset"]};function P6(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function k6(e){return e===er(e)||!vr(e)?R1(e):P6(e)}function $6(e){var t=e.getBoundingClientRect(),n=hs(t.width)/e.offsetWidth||1,r=hs(t.height)/e.offsetHeight||1;return n!==1||r!==1}function E6(e,t,n){n===void 0&&(n=!1);var r=vr(t),o=vr(t)&&$6(t),i=xi(t),a=ms(e,o,n),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((so(t)!=="body"||P1(i))&&(s=k6(t)),vr(t)?(l=ms(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):i&&(l.x=T1(i))),{x:a.left+s.scrollLeft-l.x,y:a.top+s.scrollTop-l.y,width:a.width,height:a.height}}function M6(e){var t=new Map,n=new Set,r=[];e.forEach(function(i){t.set(i.name,i)});function o(i){n.add(i.name);var a=[].concat(i.requires||[],i.requiresIfExists||[]);a.forEach(function(s){if(!n.has(s)){var l=t.get(s);l&&o(l)}}),r.push(i)}return e.forEach(function(i){n.has(i.name)||o(i)}),r}function I6(e){var t=M6(e);return V8.reduce(function(n,r){return n.concat(t.filter(function(o){return o.phase===r}))},[])}function O6(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function L6(e){var t=e.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var Pb={placement:"bottom",modifiers:[],strategy:"absolute"};function kb(){for(var e=arguments.length,t=new Array(e),n=0;n{i||s(j6(o)||document.body)},[o,i]),Hr(()=>{if(a&&!i)return jd(n,a),()=>{jd(n,null)}},[n,a,i]),i){if(b.isValidElement(r)){const c={ref:l};return b.cloneElement(r,c)}return g.jsx(b.Fragment,{children:r})}return g.jsx(b.Fragment,{children:a&&Y0.createPortal(r,a)})});function F6(e){return Oe("MuiPopper",e)}Ee("MuiPopper",["root"]);function B6(e,t){if(t==="ltr")return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}function xm(e){return typeof e=="function"?e():e}function z6(e){return e.nodeType!==void 0}const H6=e=>{const{classes:t}=e;return Ne({root:["root"]},F6,t)},V6={},W6=b.forwardRef(function(t,n){const{anchorEl:r,children:o,direction:i,disablePortal:a,modifiers:s,open:l,placement:c,popperOptions:u,popperRef:d,slotProps:f={},slots:p={},TransitionProps:h,ownerState:y,...w}=t,v=b.useRef(null),S=Rt(v,n),m=b.useRef(null),C=Rt(m,d),_=b.useRef(C);Hr(()=>{_.current=C},[C]),b.useImperativeHandle(d,()=>m.current,[]);const R=B6(c,i),[k,T]=b.useState(R),[P,x]=b.useState(xm(r));b.useEffect(()=>{m.current&&m.current.forceUpdate()}),b.useEffect(()=>{r&&x(xm(r))},[r]),Hr(()=>{if(!P||!l)return;const M=E=>{T(E.placement)};let A=[{name:"preventOverflow",options:{altBoundary:a}},{name:"flip",options:{altBoundary:a}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:E})=>{M(E)}}];s!=null&&(A=A.concat(s)),u&&u.modifiers!=null&&(A=A.concat(u.modifiers));const N=D6(P,v.current,{placement:R,...u,modifiers:A});return _.current(N),()=>{N.destroy(),_.current(null)}},[P,a,s,l,u,R]);const $={placement:k};h!==null&&($.TransitionProps=h);const I=H6(t),O=p.root??"div",D=na({elementType:O,externalSlotProps:f.root,externalForwardedProps:w,additionalProps:{role:"tooltip",ref:S},ownerState:t,className:I.root});return g.jsx(O,{...D,children:typeof o=="function"?o($):o})}),U6=b.forwardRef(function(t,n){const{anchorEl:r,children:o,container:i,direction:a="ltr",disablePortal:s=!1,keepMounted:l=!1,modifiers:c,open:u,placement:d="bottom",popperOptions:f=V6,popperRef:p,style:h,transition:y=!1,slotProps:w={},slots:v={},...S}=t,[m,C]=b.useState(!0),_=()=>{C(!1)},R=()=>{C(!0)};if(!l&&!u&&(!y||m))return null;let k;if(i)k=i;else if(r){const x=xm(r);k=x&&z6(x)?ln(x).body:ln(null).body}const T=!u&&l&&(!y||m)?"none":void 0,P=y?{in:u,onEnter:_,onExited:R}:void 0;return g.jsx(k_,{disablePortal:s,container:k,children:g.jsx(W6,{anchorEl:r,direction:a,disablePortal:s,modifiers:c,ref:n,open:y?!m:u,placement:d,popperOptions:f,popperRef:p,slotProps:w,slots:v,...S,style:{position:"fixed",top:0,left:0,display:T,...h},TransitionProps:P,children:o})})}),G6=J(U6,{name:"MuiPopper",slot:"Root",overridesResolver:(e,t)=>t.root})({}),kc=b.forwardRef(function(t,n){const r=Es(),o=De({props:t,name:"MuiPopper"}),{anchorEl:i,component:a,components:s,componentsProps:l,container:c,disablePortal:u,keepMounted:d,modifiers:f,open:p,placement:h,popperOptions:y,popperRef:w,transition:v,slots:S,slotProps:m,...C}=o,_=(S==null?void 0:S.root)??(s==null?void 0:s.Root),R={anchorEl:i,container:c,disablePortal:u,keepMounted:d,modifiers:f,open:p,placement:h,popperOptions:y,popperRef:w,transition:v,...C};return g.jsx(G6,{as:a,direction:r?"rtl":"ltr",slots:{root:_},slotProps:m??l,...R,ref:n})});function q6(e){return Oe("MuiListSubheader",e)}Ee("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);const K6=e=>{const{classes:t,color:n,disableGutters:r,inset:o,disableSticky:i}=e,a={root:["root",n!=="default"&&`color${ae(n)}`,!r&&"gutters",o&&"inset",!i&&"sticky"]};return Ne(a,q6,t)},Z6=J("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="default"&&t[`color${ae(n.color)}`],!n.disableGutters&&t.gutters,n.inset&&t.inset,!n.disableSticky&&t.sticky]}})($e(({theme:e})=>({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(e.vars||e).palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14),variants:[{props:{color:"primary"},style:{color:(e.vars||e).palette.primary.main}},{props:{color:"inherit"},style:{color:"inherit"}},{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.inset,style:{paddingLeft:72}},{props:({ownerState:t})=>!t.disableSticky,style:{position:"sticky",top:0,zIndex:1,backgroundColor:(e.vars||e).palette.background.paper}}]}))),Sm=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiListSubheader"}),{className:o,color:i="default",component:a="li",disableGutters:s=!1,disableSticky:l=!1,inset:c=!1,...u}=r,d={...r,color:i,component:a,disableGutters:s,disableSticky:l,inset:c},f=K6(d);return g.jsx(Z6,{as:a,className:ve(f.root,o),ref:n,ownerState:d,...u})});Sm&&(Sm.muiSkipListHighlight=!0);const Q6=un(g.jsx("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");function Y6(e){return Oe("MuiChip",e)}const Ke=Ee("MuiChip",["root","sizeSmall","sizeMedium","colorDefault","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","outlined","filled","outlinedPrimary","outlinedSecondary","filledPrimary","filledSecondary","avatar","avatarSmall","avatarMedium","avatarColorPrimary","avatarColorSecondary","icon","iconSmall","iconMedium","iconColorPrimary","iconColorSecondary","label","labelSmall","labelMedium","deleteIcon","deleteIconSmall","deleteIconMedium","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","deleteIconFilledColorPrimary","deleteIconFilledColorSecondary","focusVisible"]),X6=e=>{const{classes:t,disabled:n,size:r,color:o,iconColor:i,onDelete:a,clickable:s,variant:l}=e,c={root:["root",l,n&&"disabled",`size${ae(r)}`,`color${ae(o)}`,s&&"clickable",s&&`clickableColor${ae(o)}`,a&&"deletable",a&&`deletableColor${ae(o)}`,`${l}${ae(o)}`],label:["label",`label${ae(r)}`],avatar:["avatar",`avatar${ae(r)}`,`avatarColor${ae(o)}`],icon:["icon",`icon${ae(r)}`,`iconColor${ae(i)}`],deleteIcon:["deleteIcon",`deleteIcon${ae(r)}`,`deleteIconColor${ae(o)}`,`deleteIcon${ae(l)}Color${ae(o)}`]};return Ne(c,Y6,t)},J6=J("div",{name:"MuiChip",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e,{color:r,iconColor:o,clickable:i,onDelete:a,size:s,variant:l}=n;return[{[`& .${Ke.avatar}`]:t.avatar},{[`& .${Ke.avatar}`]:t[`avatar${ae(s)}`]},{[`& .${Ke.avatar}`]:t[`avatarColor${ae(r)}`]},{[`& .${Ke.icon}`]:t.icon},{[`& .${Ke.icon}`]:t[`icon${ae(s)}`]},{[`& .${Ke.icon}`]:t[`iconColor${ae(o)}`]},{[`& .${Ke.deleteIcon}`]:t.deleteIcon},{[`& .${Ke.deleteIcon}`]:t[`deleteIcon${ae(s)}`]},{[`& .${Ke.deleteIcon}`]:t[`deleteIconColor${ae(r)}`]},{[`& .${Ke.deleteIcon}`]:t[`deleteIcon${ae(l)}Color${ae(r)}`]},t.root,t[`size${ae(s)}`],t[`color${ae(r)}`],i&&t.clickable,i&&r!=="default"&&t[`clickableColor${ae(r)})`],a&&t.deletable,a&&r!=="default"&&t[`deletableColor${ae(r)}`],t[l],t[`${l}${ae(r)}`]]}})($e(({theme:e})=>{const t=e.palette.mode==="light"?e.palette.grey[700]:e.palette.grey[300];return{maxWidth:"100%",fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:(e.vars||e).palette.text.primary,backgroundColor:(e.vars||e).palette.action.selected,borderRadius:32/2,whiteSpace:"nowrap",transition:e.transitions.create(["background-color","box-shadow"]),cursor:"unset",outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${Ke.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${Ke.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:e.vars?e.vars.palette.Chip.defaultAvatarColor:t,fontSize:e.typography.pxToRem(12)},[`& .${Ke.avatarColorPrimary}`]:{color:(e.vars||e).palette.primary.contrastText,backgroundColor:(e.vars||e).palette.primary.dark},[`& .${Ke.avatarColorSecondary}`]:{color:(e.vars||e).palette.secondary.contrastText,backgroundColor:(e.vars||e).palette.secondary.dark},[`& .${Ke.avatarSmall}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:e.typography.pxToRem(10)},[`& .${Ke.icon}`]:{marginLeft:5,marginRight:-6},[`& .${Ke.deleteIcon}`]:{WebkitTapHighlightColor:"transparent",color:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.26)`:Be(e.palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.4)`:Be(e.palette.text.primary,.4)}},variants:[{props:{size:"small"},style:{height:24,[`& .${Ke.icon}`]:{fontSize:18,marginLeft:4,marginRight:-4},[`& .${Ke.deleteIcon}`]:{fontSize:16,marginRight:4,marginLeft:-4}}},...Object.entries(e.palette).filter(Ft(["contrastText"])).map(([n])=>({props:{color:n},style:{backgroundColor:(e.vars||e).palette[n].main,color:(e.vars||e).palette[n].contrastText,[`& .${Ke.deleteIcon}`]:{color:e.vars?`rgba(${e.vars.palette[n].contrastTextChannel} / 0.7)`:Be(e.palette[n].contrastText,.7),"&:hover, &:active":{color:(e.vars||e).palette[n].contrastText}}}})),{props:n=>n.iconColor===n.color,style:{[`& .${Ke.icon}`]:{color:e.vars?e.vars.palette.Chip.defaultIconColor:t}}},{props:n=>n.iconColor===n.color&&n.color!=="default",style:{[`& .${Ke.icon}`]:{color:"inherit"}}},{props:{onDelete:!0},style:{[`&.${Ke.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}},...Object.entries(e.palette).filter(Ft(["dark"])).map(([n])=>({props:{color:n,onDelete:!0},style:{[`&.${Ke.focusVisible}`]:{background:(e.vars||e).palette[n].dark}}})),{props:{clickable:!0},style:{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity)},[`&.${Ke.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)},"&:active":{boxShadow:(e.vars||e).shadows[1]}}},...Object.entries(e.palette).filter(Ft(["dark"])).map(([n])=>({props:{color:n,clickable:!0},style:{[`&:hover, &.${Ke.focusVisible}`]:{backgroundColor:(e.vars||e).palette[n].dark}}})),{props:{variant:"outlined"},style:{backgroundColor:"transparent",border:e.vars?`1px solid ${e.vars.palette.Chip.defaultBorder}`:`1px solid ${e.palette.mode==="light"?e.palette.grey[400]:e.palette.grey[700]}`,[`&.${Ke.clickable}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${Ke.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`& .${Ke.avatar}`]:{marginLeft:4},[`& .${Ke.avatarSmall}`]:{marginLeft:2},[`& .${Ke.icon}`]:{marginLeft:4},[`& .${Ke.iconSmall}`]:{marginLeft:2},[`& .${Ke.deleteIcon}`]:{marginRight:5},[`& .${Ke.deleteIconSmall}`]:{marginRight:3}}},...Object.entries(e.palette).filter(Ft()).map(([n])=>({props:{variant:"outlined",color:n},style:{color:(e.vars||e).palette[n].main,border:`1px solid ${e.vars?`rgba(${e.vars.palette[n].mainChannel} / 0.7)`:Be(e.palette[n].main,.7)}`,[`&.${Ke.clickable}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[n].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[n].main,e.palette.action.hoverOpacity)},[`&.${Ke.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[n].mainChannel} / ${e.vars.palette.action.focusOpacity})`:Be(e.palette[n].main,e.palette.action.focusOpacity)},[`& .${Ke.deleteIcon}`]:{color:e.vars?`rgba(${e.vars.palette[n].mainChannel} / 0.7)`:Be(e.palette[n].main,.7),"&:hover, &:active":{color:(e.vars||e).palette[n].main}}}}))]}})),eI=J("span",{name:"MuiChip",slot:"Label",overridesResolver:(e,t)=>{const{ownerState:n}=e,{size:r}=n;return[t.label,t[`label${ae(r)}`]]}})({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap",variants:[{props:{variant:"outlined"},style:{paddingLeft:11,paddingRight:11}},{props:{size:"small"},style:{paddingLeft:8,paddingRight:8}},{props:{size:"small",variant:"outlined"},style:{paddingLeft:7,paddingRight:7}}]});function $b(e){return e.key==="Backspace"||e.key==="Delete"}const tI=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiChip"}),{avatar:o,className:i,clickable:a,color:s="default",component:l,deleteIcon:c,disabled:u=!1,icon:d,label:f,onClick:p,onDelete:h,onKeyDown:y,onKeyUp:w,size:v="medium",variant:S="filled",tabIndex:m,skipFocusWhenDisabled:C=!1,..._}=r,R=b.useRef(null),k=Rt(R,n),T=L=>{L.stopPropagation(),h&&h(L)},P=L=>{L.currentTarget===L.target&&$b(L)&&L.preventDefault(),y&&y(L)},x=L=>{L.currentTarget===L.target&&h&&$b(L)&&h(L),w&&w(L)},$=a!==!1&&p?!0:a,I=$||h?To:l||"div",O={...r,component:I,disabled:u,size:v,color:s,iconColor:b.isValidElement(d)&&d.props.color||s,onDelete:!!h,clickable:$,variant:S},D=X6(O),M=I===To?{component:l||"div",focusVisibleClassName:D.focusVisible,...h&&{disableRipple:!0}}:{};let A=null;h&&(A=c&&b.isValidElement(c)?b.cloneElement(c,{className:ve(c.props.className,D.deleteIcon),onClick:T}):g.jsx(Q6,{className:ve(D.deleteIcon),onClick:T}));let N=null;o&&b.isValidElement(o)&&(N=b.cloneElement(o,{className:ve(D.avatar,o.props.className)}));let E=null;return d&&b.isValidElement(d)&&(E=b.cloneElement(d,{className:ve(D.icon,d.props.className)})),g.jsxs(J6,{as:I,className:ve(D.root,i),disabled:$&&u?!0:void 0,onClick:p,onKeyDown:P,onKeyUp:x,ref:k,tabIndex:C&&u?-1:m,ownerState:O,...M,..._,children:[N||E,g.jsx(eI,{className:ve(D.label),ownerState:O,children:f}),A]})});function fu(e){return parseInt(e,10)||0}const nI={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function rI(e){return e==null||Object.keys(e).length===0||e.outerHeightStyle===0&&!e.overflowing}const oI=b.forwardRef(function(t,n){const{onChange:r,maxRows:o,minRows:i=1,style:a,value:s,...l}=t,{current:c}=b.useRef(s!=null),u=b.useRef(null),d=Rt(n,u),f=b.useRef(null),p=b.useRef(null),h=b.useCallback(()=>{const v=u.current,m=zr(v).getComputedStyle(v);if(m.width==="0px")return{outerHeightStyle:0,overflowing:!1};const C=p.current;C.style.width=m.width,C.value=v.value||t.placeholder||"x",C.value.slice(-1)===` +`&&(C.value+=" ");const _=m.boxSizing,R=fu(m.paddingBottom)+fu(m.paddingTop),k=fu(m.borderBottomWidth)+fu(m.borderTopWidth),T=C.scrollHeight;C.value="x";const P=C.scrollHeight;let x=T;i&&(x=Math.max(Number(i)*P,x)),o&&(x=Math.min(Number(o)*P,x)),x=Math.max(x,P);const $=x+(_==="border-box"?R+k:0),I=Math.abs(x-T)<=1;return{outerHeightStyle:$,overflowing:I}},[o,i,t.placeholder]),y=b.useCallback(()=>{const v=h();if(rI(v))return;const S=v.outerHeightStyle,m=u.current;f.current!==S&&(f.current=S,m.style.height=`${S}px`),m.style.overflow=v.overflowing?"hidden":""},[h]);Hr(()=>{const v=()=>{y()};let S;const m=cp(v),C=u.current,_=zr(C);_.addEventListener("resize",m);let R;return typeof ResizeObserver<"u"&&(R=new ResizeObserver(v),R.observe(C)),()=>{m.clear(),cancelAnimationFrame(S),_.removeEventListener("resize",m),R&&R.disconnect()}},[h,y]),Hr(()=>{y()});const w=v=>{c||y(),r&&r(v)};return g.jsxs(b.Fragment,{children:[g.jsx("textarea",{value:s,onChange:w,ref:d,rows:i,style:a,...l}),g.jsx("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:p,tabIndex:-1,style:{...nI.shadow,...a,paddingTop:0,paddingBottom:0}})]})});function Vd(e){return typeof e=="string"}function da({props:e,states:t,muiFormControl:n}){return t.reduce((r,o)=>(r[o]=e[o],n&&typeof e[o]>"u"&&(r[o]=n[o]),r),{})}const k1=b.createContext(void 0);function Mo(){return b.useContext(k1)}function Eb(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function Wd(e,t=!1){return e&&(Eb(e.value)&&e.value!==""||t&&Eb(e.defaultValue)&&e.defaultValue!=="")}function iI(e){return e.startAdornment}function aI(e){return Oe("MuiInputBase",e)}const Gn=Ee("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]);var Mb;const fp=(e,t)=>{const{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,n.size==="small"&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${ae(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},pp=(e,t)=>{const{ownerState:n}=e;return[t.input,n.size==="small"&&t.inputSizeSmall,n.multiline&&t.inputMultiline,n.type==="search"&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},sI=e=>{const{classes:t,color:n,disabled:r,error:o,endAdornment:i,focused:a,formControl:s,fullWidth:l,hiddenLabel:c,multiline:u,readOnly:d,size:f,startAdornment:p,type:h}=e,y={root:["root",`color${ae(n)}`,r&&"disabled",o&&"error",l&&"fullWidth",a&&"focused",s&&"formControl",f&&f!=="medium"&&`size${ae(f)}`,u&&"multiline",p&&"adornedStart",i&&"adornedEnd",c&&"hiddenLabel",d&&"readOnly"],input:["input",r&&"disabled",h==="search"&&"inputTypeSearch",u&&"inputMultiline",f==="small"&&"inputSizeSmall",c&&"inputHiddenLabel",p&&"inputAdornedStart",i&&"inputAdornedEnd",d&&"readOnly"]};return Ne(y,aI,t)},gp=J("div",{name:"MuiInputBase",slot:"Root",overridesResolver:fp})($e(({theme:e})=>({...e.typography.body1,color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${Gn.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:t})=>t.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:t,size:n})=>t.multiline&&n==="small",style:{paddingTop:1}},{props:({ownerState:t})=>t.fullWidth,style:{width:"100%"}}]}))),hp=J("input",{name:"MuiInputBase",slot:"Input",overridesResolver:pp})($e(({theme:e})=>{const t=e.palette.mode==="light",n={color:"currentColor",...e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5},transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},r={opacity:"0 !important"},o=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&::-ms-input-placeholder":n,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${Gn.formControl} &`]:{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":o,"&:focus::-moz-placeholder":o,"&:focus::-ms-input-placeholder":o},[`&.${Gn.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},variants:[{props:({ownerState:i})=>!i.disableInjectingGlobalStyles,style:{animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:i})=>i.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),Ib=PM({"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}),mp=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiInputBase"}),{"aria-describedby":o,autoComplete:i,autoFocus:a,className:s,color:l,components:c={},componentsProps:u={},defaultValue:d,disabled:f,disableInjectingGlobalStyles:p,endAdornment:h,error:y,fullWidth:w=!1,id:v,inputComponent:S="input",inputProps:m={},inputRef:C,margin:_,maxRows:R,minRows:k,multiline:T=!1,name:P,onBlur:x,onChange:$,onClick:I,onFocus:O,onKeyDown:D,onKeyUp:M,placeholder:A,readOnly:N,renderSuffix:E,rows:L,size:B,slotProps:H={},slots:z={},startAdornment:j,type:F="text",value:W,...V}=r,ee=m.value!=null?m.value:W,{current:re}=b.useRef(ee!=null),U=b.useRef(),K=b.useCallback(ne=>{},[]),se=Rt(U,C,m.ref,K),[q,ce]=b.useState(!1),ue=Mo(),ie=da({props:r,muiFormControl:ue,states:["color","disabled","error","hiddenLabel","size","required","filled"]});ie.focused=ue?ue.focused:q,b.useEffect(()=>{!ue&&f&&q&&(ce(!1),x&&x())},[ue,f,q,x]);const te=ue&&ue.onFilled,de=ue&&ue.onEmpty,Q=b.useCallback(ne=>{Wd(ne)?te&&te():de&&de()},[te,de]);Hr(()=>{re&&Q({value:ee})},[ee,Q,re]);const be=ne=>{O&&O(ne),m.onFocus&&m.onFocus(ne),ue&&ue.onFocus?ue.onFocus(ne):ce(!0)},Te=ne=>{x&&x(ne),m.onBlur&&m.onBlur(ne),ue&&ue.onBlur?ue.onBlur(ne):ce(!1)},we=(ne,...xe)=>{if(!re){const Le=ne.target||U.current;if(Le==null)throw new Error(Xi(1));Q({value:Le.value})}m.onChange&&m.onChange(ne,...xe),$&&$(ne,...xe)};b.useEffect(()=>{Q(U.current)},[]);const ge=ne=>{U.current&&ne.currentTarget===ne.target&&U.current.focus(),I&&I(ne)};let le=S,Se=m;T&&le==="input"&&(L?Se={type:void 0,minRows:L,maxRows:L,...Se}:Se={type:void 0,maxRows:R,minRows:k,...Se},le=oI);const ye=ne=>{Q(ne.animationName==="mui-auto-fill-cancel"?U.current:{value:"x"})};b.useEffect(()=>{ue&&ue.setAdornedStart(!!j)},[ue,j]);const Ge={...r,color:ie.color||"primary",disabled:ie.disabled,endAdornment:h,error:ie.error,focused:ie.focused,formControl:ue,fullWidth:w,hiddenLabel:ie.hiddenLabel,multiline:T,size:ie.size,startAdornment:j,type:F},Pe=sI(Ge),Re=z.root||c.Root||gp,ke=H.root||u.root||{},pe=z.input||c.Input||hp;return Se={...Se,...H.input??u.input},g.jsxs(b.Fragment,{children:[!p&&typeof Ib=="function"&&(Mb||(Mb=g.jsx(Ib,{}))),g.jsxs(Re,{...ke,ref:n,onClick:ge,...V,...!Vd(Re)&&{ownerState:{...Ge,...ke.ownerState}},className:ve(Pe.root,ke.className,s,N&&"MuiInputBase-readOnly"),children:[j,g.jsx(k1.Provider,{value:null,children:g.jsx(pe,{"aria-invalid":ie.error,"aria-describedby":o,autoComplete:i,autoFocus:a,defaultValue:d,disabled:ie.disabled,id:v,onAnimationStart:ye,name:P,placeholder:A,readOnly:N,required:ie.required,rows:L,value:ee,onKeyDown:D,onKeyUp:M,type:F,...Se,...!Vd(pe)&&{as:le,ownerState:{...Ge,...Se.ownerState}},ref:se,className:ve(Pe.input,Se.className,N&&"MuiInputBase-readOnly"),onBlur:Te,onChange:we,onFocus:be})}),h,E?E({...ie,startAdornment:j}):null]})]})});function lI(e){return Oe("MuiInput",e)}const Go={...Gn,...Ee("MuiInput",["root","underline","input"])};function cI(e){return Oe("MuiOutlinedInput",e)}const lr={...Gn,...Ee("MuiOutlinedInput",["root","notchedOutline","input"])};function uI(e){return Oe("MuiFilledInput",e)}const qn={...Gn,...Ee("MuiFilledInput",["root","underline","input","adornedStart","adornedEnd","sizeSmall","multiline","hiddenLabel"])},$_=un(g.jsx("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown");function dI(e){return Oe("MuiAutocomplete",e)}const Ue=Ee("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var Ob,Lb;const fI=e=>{const{classes:t,disablePortal:n,expanded:r,focused:o,fullWidth:i,hasClearIcon:a,hasPopupIcon:s,inputFocused:l,popupOpen:c,size:u}=e,d={root:["root",r&&"expanded",o&&"focused",i&&"fullWidth",a&&"hasClearIcon",s&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${ae(u)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",c&&"popupIndicatorOpen"],popper:["popper",n&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return Ne(d,dI,t)},pI=J("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e,{fullWidth:r,hasClearIcon:o,hasPopupIcon:i,inputFocused:a,size:s}=n;return[{[`& .${Ue.tag}`]:t.tag},{[`& .${Ue.tag}`]:t[`tagSize${ae(s)}`]},{[`& .${Ue.inputRoot}`]:t.inputRoot},{[`& .${Ue.input}`]:t.input},{[`& .${Ue.input}`]:a&&t.inputFocused},t.root,r&&t.fullWidth,i&&t.hasPopupIcon,o&&t.hasClearIcon]}})({[`&.${Ue.focused} .${Ue.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${Ue.clearIndicator}`]:{visibility:"visible"}},[`& .${Ue.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${Ue.inputRoot}`]:{[`.${Ue.hasPopupIcon}&, .${Ue.hasClearIcon}&`]:{paddingRight:30},[`.${Ue.hasPopupIcon}.${Ue.hasClearIcon}&`]:{paddingRight:56},[`& .${Ue.input}`]:{width:0,minWidth:30}},[`& .${Go.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${Go.root}.${Gn.sizeSmall}`]:{[`& .${Go.input}`]:{padding:"2px 4px 3px 0"}},[`& .${lr.root}`]:{padding:9,[`.${Ue.hasPopupIcon}&, .${Ue.hasClearIcon}&`]:{paddingRight:39},[`.${Ue.hasPopupIcon}.${Ue.hasClearIcon}&`]:{paddingRight:65},[`& .${Ue.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${Ue.endAdornment}`]:{right:9}},[`& .${lr.root}.${Gn.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${Ue.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${qn.root}`]:{paddingTop:19,paddingLeft:8,[`.${Ue.hasPopupIcon}&, .${Ue.hasClearIcon}&`]:{paddingRight:39},[`.${Ue.hasPopupIcon}.${Ue.hasClearIcon}&`]:{paddingRight:65},[`& .${qn.input}`]:{padding:"7px 4px"},[`& .${Ue.endAdornment}`]:{right:9}},[`& .${qn.root}.${Gn.sizeSmall}`]:{paddingBottom:1,[`& .${qn.input}`]:{padding:"2.5px 4px"}},[`& .${Gn.hiddenLabel}`]:{paddingTop:8},[`& .${qn.root}.${Gn.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${Ue.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${qn.root}.${Gn.hiddenLabel}.${Gn.sizeSmall}`]:{[`& .${Ue.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${Ue.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${Ue.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${Ue.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${Ue.inputRoot}`]:{flexWrap:"wrap"}}}]}),gI=J("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(e,t)=>t.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),hI=J(hr,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(e,t)=>t.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),mI=J(hr,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:({ownerState:e},t)=>({...t.popupIndicator,...e.popupOpen&&t.popupIndicatorOpen})})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),vI=J(kc,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Ue.option}`]:t.option},t.popper,n.disablePortal&&t.popperDisablePortal]}})($e(({theme:e})=>({zIndex:(e.vars||e).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]}))),yI=J(Is,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(e,t)=>t.paper})($e(({theme:e})=>({...e.typography.body1,overflow:"auto"}))),bI=J("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(e,t)=>t.loading})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"}))),xI=J("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(e,t)=>t.noOptions})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"}))),SI=J("div",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(e,t)=>t.listbox})($e(({theme:e})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${Ue.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[e.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${Ue.focused}`]:{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${Ue.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${Ue.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${Ue.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}}}))),wI=J(Sm,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(e,t)=>t.groupLabel})($e(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,top:-8}))),CI=J("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(e,t)=>t.groupUl})({padding:0,[`& .${Ue.option}`]:{paddingLeft:24}}),_I=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiAutocomplete"}),{autoComplete:o=!1,autoHighlight:i=!1,autoSelect:a=!1,blurOnSelect:s=!1,ChipProps:l,className:c,clearIcon:u=Ob||(Ob=g.jsx(v_,{fontSize:"small"})),clearOnBlur:d=!r.freeSolo,clearOnEscape:f=!1,clearText:p="Clear",closeText:h="Close",componentsProps:y,defaultValue:w=r.multiple?[]:null,disableClearable:v=!1,disableCloseOnSelect:S=!1,disabled:m=!1,disabledItemsFocusable:C=!1,disableListWrap:_=!1,disablePortal:R=!1,filterOptions:k,filterSelectedOptions:T=!1,forcePopupIcon:P="auto",freeSolo:x=!1,fullWidth:$=!1,getLimitTagsText:I=Xe=>`+${Xe}`,getOptionDisabled:O,getOptionKey:D,getOptionLabel:M,isOptionEqualToValue:A,groupBy:N,handleHomeEndKeys:E=!r.freeSolo,id:L,includeInputInList:B=!1,inputValue:H,limitTags:z=-1,ListboxComponent:j,ListboxProps:F,loading:W=!1,loadingText:V="Loading…",multiple:ee=!1,noOptionsText:re="No options",onChange:U,onClose:K,onHighlightChange:se,onInputChange:q,onOpen:ce,open:ue,openOnFocus:ie=!1,openText:te="Open",options:de,PaperComponent:Q,PopperComponent:be,popupIcon:Te=Lb||(Lb=g.jsx($_,{})),readOnly:we=!1,renderGroup:ge,renderInput:le,renderOption:Se,renderTags:ye,selectOnFocus:Ge=!r.freeSolo,size:Pe="medium",slots:Re={},slotProps:ke={},value:pe,...ne}=r,{getRootProps:xe,getInputProps:Le,getInputLabelProps:fe,getPopupIndicatorProps:oe,getClearProps:me,getTagProps:je,getListboxProps:Ve,getOptionProps:Ye,value:Tt,dirty:Zt,expanded:Mn,id:ir,popupOpen:Vn,focused:Oo,focusedTag:_i,anchorEl:Fe,setAnchorEl:_n,inputValue:Dc,groupedOptions:pa}=M8({...r,componentName:"Autocomplete"}),Ds=!v&&!m&&Zt&&!we,js=(!x||P===!0)&&P!==!1,{onMouseDown:$p}=Le(),{ref:Ep,...jc}=Ve(),Fs=M||(Xe=>Xe.label??Xe),dn={...r,disablePortal:R,expanded:Mn,focused:Oo,fullWidth:$,getOptionLabel:Fs,hasClearIcon:Ds,hasPopupIcon:js,inputFocused:_i===-1,popupOpen:Vn,size:Pe},Nt=fI(dn),lo={slots:{paper:Q,popper:be,...Re},slotProps:{chip:l,listbox:F,...y,...ke}},[X,Y]=an("listbox",{elementType:SI,externalForwardedProps:lo,ownerState:dn,className:Nt.listbox,additionalProps:jc,ref:Ep}),[Ce,We]=an("paper",{elementType:Is,externalForwardedProps:lo,ownerState:dn,className:Nt.paper}),[qe,Pt]=an("popper",{elementType:kc,externalForwardedProps:lo,ownerState:dn,className:Nt.popper,additionalProps:{disablePortal:R,style:{width:Fe?Fe.clientWidth:null},role:"presentation",anchorEl:Fe,open:Vn}});let at;if(ee&&Tt.length>0){const Xe=Ur=>({className:Nt.tag,disabled:m,...je(Ur)});ye?at=ye(Tt,Xe,dn):at=Tt.map((Ur,Lo)=>{const{key:Bs,...B3}=Xe({index:Lo});return g.jsx(tI,{label:Fs(Ur),size:Pe,...B3,...lo.slotProps.chip},Bs)})}if(z>-1&&Array.isArray(at)){const Xe=at.length-z;!Oo&&Xe>0&&(at=at.splice(0,z),at.push(g.jsx("span",{className:Nt.tag,children:I(Xe)},at.length)))}const Fc=ge||(Xe=>g.jsxs("li",{children:[g.jsx(wI,{className:Nt.groupLabel,ownerState:dn,component:"div",children:Xe.group}),g.jsx(CI,{className:Nt.groupUl,ownerState:dn,children:Xe.children})]},Xe.key)),F3=Se||((Xe,Ur)=>{const{key:Lo,...Bs}=Xe;return g.jsx("li",{...Bs,children:Fs(Ur)},Lo)}),dv=(Xe,Ur)=>{const Lo=Ye({option:Xe,index:Ur});return F3({...Lo,className:Nt.option},Xe,{selected:Lo["aria-selected"],index:Ur,inputValue:Dc},dn)},Bc=lo.slotProps.clearIndicator,zc=lo.slotProps.popupIndicator,Mp=Xe=>g.jsx(vI,{as:qe,...Pt,children:g.jsx(yI,{as:Ce,...We,children:Xe})});let Hc=null;return pa.length>0?Hc=Mp(g.jsx(X,{as:j,...Y,children:pa.map((Xe,Ur)=>N?Fc({key:Xe.key,group:Xe.group,children:Xe.options.map((Lo,Bs)=>dv(Lo,Xe.index+Bs))}):dv(Xe,Ur))})):W&&pa.length===0?Hc=Mp(g.jsx(bI,{className:Nt.loading,ownerState:dn,children:V})):pa.length===0&&!x&&!W&&(Hc=Mp(g.jsx(xI,{className:Nt.noOptions,ownerState:dn,role:"presentation",onMouseDown:Xe=>{Xe.preventDefault()},children:re}))),g.jsxs(b.Fragment,{children:[g.jsx(pI,{ref:n,className:ve(Nt.root,c),ownerState:dn,...xe(ne),children:le({id:ir,disabled:m,fullWidth:!0,size:Pe==="small"?"small":void 0,InputLabelProps:fe(),InputProps:{ref:_n,className:Nt.inputRoot,startAdornment:at,onMouseDown:Xe=>{Xe.target===Xe.currentTarget&&$p(Xe)},...(Ds||js)&&{endAdornment:g.jsxs(gI,{className:Nt.endAdornment,ownerState:dn,children:[Ds?g.jsx(hI,{...me(),"aria-label":p,title:p,ownerState:dn,...Bc,className:ve(Nt.clearIndicator,Bc==null?void 0:Bc.className),children:u}):null,js?g.jsx(mI,{...oe(),disabled:m,"aria-label":Vn?h:te,title:Vn?h:te,ownerState:dn,...zc,className:ve(Nt.popupIndicator,zc==null?void 0:zc.className),children:Te}):null]})}},inputProps:{className:Nt.input,disabled:m,readOnly:we,...Le()}})}),Fe?Hc:null]})}),RI={entering:{opacity:1},entered:{opacity:1}},TI=b.forwardRef(function(t,n){const r=zt(),o={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:i,appear:a=!0,children:s,easing:l,in:c,onEnter:u,onEntered:d,onEntering:f,onExit:p,onExited:h,onExiting:y,style:w,timeout:v=o,TransitionComponent:S=Vr,...m}=t,C=b.useRef(null),_=Rt(C,ua(s),n),R=D=>M=>{if(D){const A=C.current;M===void 0?D(A):D(A,M)}},k=R(f),T=R((D,M)=>{m_(D);const A=fs({style:w,timeout:v,easing:l},{mode:"enter"});D.style.webkitTransition=r.transitions.create("opacity",A),D.style.transition=r.transitions.create("opacity",A),u&&u(D,M)}),P=R(d),x=R(y),$=R(D=>{const M=fs({style:w,timeout:v,easing:l},{mode:"exit"});D.style.webkitTransition=r.transitions.create("opacity",M),D.style.transition=r.transitions.create("opacity",M),p&&p(D)}),I=R(h),O=D=>{i&&i(C.current,D)};return g.jsx(S,{appear:a,in:c,nodeRef:C,onEnter:T,onEntered:P,onEntering:k,onExit:$,onExited:I,onExiting:x,addEndListener:O,timeout:v,...m,children:(D,M)=>b.cloneElement(s,{style:{opacity:0,visibility:D==="exited"&&!c?"hidden":void 0,...RI[D],...w,...s.props.style},ref:_,...M})})});function PI(e){return Oe("MuiBackdrop",e)}Ee("MuiBackdrop",["root","invisible"]);const kI=e=>{const{ownerState:t,...n}=e;return n},$I=e=>{const{classes:t,invisible:n}=e;return Ne({root:["root",n&&"invisible"]},PI,t)},EI=J("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.invisible&&t.invisible]}})({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent",variants:[{props:{invisible:!0},style:{backgroundColor:"transparent"}}]}),MI=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiBackdrop"}),{children:o,className:i,component:a="div",invisible:s=!1,open:l,components:c={},componentsProps:u={},slotProps:d={},slots:f={},TransitionComponent:p,transitionDuration:h,...y}=r,w={...r,component:a,invisible:s},v=$I(w),S={transition:p,root:c.Root,...f},m={...u,...d},C={slots:S,slotProps:m},[_,R]=an("root",{elementType:EI,externalForwardedProps:C,className:ve(v.root,i),ownerState:w}),[k,T]=an("transition",{elementType:TI,externalForwardedProps:C,ownerState:w}),P=kI(T);return g.jsx(k,{in:l,timeout:h,...y,...P,children:g.jsx(_,{"aria-hidden":!0,...R,classes:v,ref:n,children:o})})}),II=Ee("MuiBox",["root"]),OI=sp(),Lr=q5({themeId:Dr,defaultTheme:OI,defaultClassName:II.root,generateClassName:n_.generate});function LI(e){return Oe("MuiButton",e)}const Sa=Ee("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),AI=b.createContext({}),NI=b.createContext(void 0),DI=e=>{const{color:t,disableElevation:n,fullWidth:r,size:o,variant:i,classes:a}=e,s={root:["root",i,`${i}${ae(t)}`,`size${ae(o)}`,`${i}Size${ae(o)}`,`color${ae(t)}`,n&&"disableElevation",r&&"fullWidth"],label:["label"],startIcon:["icon","startIcon",`iconSize${ae(o)}`],endIcon:["icon","endIcon",`iconSize${ae(o)}`]},l=Ne(s,LI,a);return{...a,...l}},E_=[{props:{size:"small"},style:{"& > *:nth-of-type(1)":{fontSize:18}}},{props:{size:"medium"},style:{"& > *:nth-of-type(1)":{fontSize:20}}},{props:{size:"large"},style:{"& > *:nth-of-type(1)":{fontSize:22}}}],jI=J(To,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`${n.variant}${ae(n.color)}`],t[`size${ae(n.size)}`],t[`${n.variant}Size${ae(n.size)}`],n.color==="inherit"&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth]}})($e(({theme:e})=>{const t=e.palette.mode==="light"?e.palette.grey[300]:e.palette.grey[800],n=e.palette.mode==="light"?e.palette.grey.A100:e.palette.grey[700];return{...e.typography.button,minWidth:64,padding:"6px 16px",border:0,borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create(["background-color","box-shadow","border-color","color"],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:"none"},[`&.${Sa.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{variant:"contained"},style:{color:"var(--variant-containedColor)",backgroundColor:"var(--variant-containedBg)",boxShadow:(e.vars||e).shadows[2],"&:hover":{boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2]}},"&:active":{boxShadow:(e.vars||e).shadows[8]},[`&.${Sa.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},[`&.${Sa.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}},{props:{variant:"outlined"},style:{padding:"5px 15px",border:"1px solid currentColor",borderColor:"var(--variant-outlinedBorder, currentColor)",backgroundColor:"var(--variant-outlinedBg)",color:"var(--variant-outlinedColor)",[`&.${Sa.disabled}`]:{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`}}},{props:{variant:"text"},style:{padding:"6px 8px",color:"var(--variant-textColor)",backgroundColor:"var(--variant-textBg)"}},...Object.entries(e.palette).filter(Ft()).map(([r])=>({props:{color:r},style:{"--variant-textColor":(e.vars||e).palette[r].main,"--variant-outlinedColor":(e.vars||e).palette[r].main,"--variant-outlinedBorder":e.vars?`rgba(${e.vars.palette[r].mainChannel} / 0.5)`:Be(e.palette[r].main,.5),"--variant-containedColor":(e.vars||e).palette[r].contrastText,"--variant-containedBg":(e.vars||e).palette[r].main,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":(e.vars||e).palette[r].dark,"--variant-textBg":e.vars?`rgba(${e.vars.palette[r].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[r].main,e.palette.action.hoverOpacity),"--variant-outlinedBorder":(e.vars||e).palette[r].main,"--variant-outlinedBg":e.vars?`rgba(${e.vars.palette[r].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[r].main,e.palette.action.hoverOpacity)}}}})),{props:{color:"inherit"},style:{color:"inherit",borderColor:"currentColor","--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedBg:t,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedHoverBg:n,"--variant-textBg":e.vars?`rgba(${e.vars.palette.text.primaryChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.text.primary,e.palette.action.hoverOpacity),"--variant-outlinedBg":e.vars?`rgba(${e.vars.palette.text.primaryChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.text.primary,e.palette.action.hoverOpacity)}}}},{props:{size:"small",variant:"text"},style:{padding:"4px 5px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"text"},style:{padding:"8px 11px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"outlined"},style:{padding:"3px 9px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"outlined"},style:{padding:"7px 21px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"contained"},style:{padding:"4px 10px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"contained"},style:{padding:"8px 22px",fontSize:e.typography.pxToRem(15)}},{props:{disableElevation:!0},style:{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${Sa.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${Sa.disabled}`]:{boxShadow:"none"}}},{props:{fullWidth:!0},style:{width:"100%"}}]}})),FI=J("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.startIcon,t[`iconSize${ae(n.size)}`]]}})({display:"inherit",marginRight:8,marginLeft:-4,variants:[{props:{size:"small"},style:{marginLeft:-2}},...E_]}),BI=J("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.endIcon,t[`iconSize${ae(n.size)}`]]}})({display:"inherit",marginRight:-4,marginLeft:8,variants:[{props:{size:"small"},style:{marginRight:-2}},...E_]}),zI=b.forwardRef(function(t,n){const r=b.useContext(AI),o=b.useContext(NI),i=d_(r,t),a=De({props:i,name:"MuiButton"}),{children:s,color:l="primary",component:c="button",className:u,disabled:d=!1,disableElevation:f=!1,disableFocusRipple:p=!1,endIcon:h,focusVisibleClassName:y,fullWidth:w=!1,size:v="medium",startIcon:S,type:m,variant:C="text",..._}=a,R={...a,color:l,component:c,disabled:d,disableElevation:f,disableFocusRipple:p,fullWidth:w,size:v,type:m,variant:C},k=DI(R),T=S&&g.jsx(FI,{className:k.startIcon,ownerState:R,children:S}),P=h&&g.jsx(BI,{className:k.endIcon,ownerState:R,children:h}),x=o||"";return g.jsxs(jI,{ownerState:R,className:ve(r.className,k.root,u,x),component:c,disabled:d,focusRipple:!p,focusVisibleClassName:ve(k.focusVisible,y),ref:n,type:m,..._,classes:k,children:[T,s,P]})});function HI(e){return Oe("PrivateSwitchBase",e)}Ee("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const VI=e=>{const{classes:t,checked:n,disabled:r,edge:o}=e,i={root:["root",n&&"checked",r&&"disabled",o&&`edge${ae(o)}`],input:["input"]};return Ne(i,HI,t)},WI=J(To)({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:e,ownerState:t})=>e==="start"&&t.size!=="small",style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:e,ownerState:t})=>e==="end"&&t.size!=="small",style:{marginRight:-12}}]}),UI=J("input",{shouldForwardProp:wn})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),$1=b.forwardRef(function(t,n){const{autoFocus:r,checked:o,checkedIcon:i,className:a,defaultChecked:s,disabled:l,disableFocusRipple:c=!1,edge:u=!1,icon:d,id:f,inputProps:p,inputRef:h,name:y,onBlur:w,onChange:v,onFocus:S,readOnly:m,required:C=!1,tabIndex:_,type:R,value:k,...T}=t,[P,x]=Hi({controlled:o,default:!!s,name:"SwitchBase",state:"checked"}),$=Mo(),I=L=>{S&&S(L),$&&$.onFocus&&$.onFocus(L)},O=L=>{w&&w(L),$&&$.onBlur&&$.onBlur(L)},D=L=>{if(L.nativeEvent.defaultPrevented)return;const B=L.target.checked;x(B),v&&v(L,B)};let M=l;$&&typeof M>"u"&&(M=$.disabled);const A=R==="checkbox"||R==="radio",N={...t,checked:P,disabled:M,disableFocusRipple:c,edge:u},E=VI(N);return g.jsxs(WI,{component:"span",className:ve(E.root,a),centerRipple:!0,focusRipple:!c,disabled:M,tabIndex:null,role:void 0,onFocus:I,onBlur:O,ownerState:N,ref:n,...T,children:[g.jsx(UI,{autoFocus:r,checked:o,defaultChecked:s,className:E.input,disabled:M,id:A?f:void 0,name:y,onChange:D,readOnly:m,ref:h,required:C,ownerState:N,tabIndex:_,type:R,...R==="checkbox"&&k===void 0?{}:{value:k},...p}),P?i:d]})}),GI=un(g.jsx("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),qI=un(g.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),KI=un(g.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function ZI(e){return Oe("MuiCheckbox",e)}const pg=Ee("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),QI=e=>{const{classes:t,indeterminate:n,color:r,size:o}=e,i={root:["root",n&&"indeterminate",`color${ae(r)}`,`size${ae(o)}`]},a=Ne(i,ZI,t);return{...t,...a}},YI=J($1,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiCheckbox",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${ae(n.size)}`],n.color!=="default"&&t[`color${ae(n.color)}`]]}})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[t].main,e.palette.action.hoverOpacity)}}})),...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t},style:{[`&.${pg.checked}, &.${pg.indeterminate}`]:{color:(e.vars||e).palette[t].main},[`&.${pg.disabled}`]:{color:(e.vars||e).palette.action.disabled}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}))),XI=g.jsx(qI,{}),JI=g.jsx(GI,{}),eO=g.jsx(KI,{}),tO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiCheckbox"}),{checkedIcon:o=XI,color:i="primary",icon:a=JI,indeterminate:s=!1,indeterminateIcon:l=eO,inputProps:c,size:u="medium",disableRipple:d=!1,className:f,...p}=r,h=s?l:a,y=s?l:o,w={...r,disableRipple:d,color:i,indeterminate:s,size:u},v=QI(w);return g.jsx(YI,{type:"checkbox",inputProps:{"data-indeterminate":s,...c},icon:b.cloneElement(h,{fontSize:h.props.fontSize??u}),checkedIcon:b.cloneElement(y,{fontSize:y.props.fontSize??u}),ownerState:w,ref:n,className:ve(v.root,f),disableRipple:d,...p,classes:v})});function Ab(e){return e.substring(2).toLowerCase()}function nO(e,t){return t.documentElement.clientWidth(setTimeout(()=>{l.current=!0},0),()=>{l.current=!1}),[]);const u=Rt(ua(t),s),d=bn(h=>{const y=c.current;c.current=!1;const w=ln(s.current);if(!l.current||!s.current||"clientX"in h&&nO(h,w))return;if(a.current){a.current=!1;return}let v;h.composedPath?v=h.composedPath().includes(s.current):v=!w.documentElement.contains(h.target)||s.current.contains(h.target),!v&&(n||!y)&&o(h)}),f=h=>y=>{c.current=!0;const w=t.props[h];w&&w(y)},p={ref:u};return i!==!1&&(p[i]=f(i)),b.useEffect(()=>{if(i!==!1){const h=Ab(i),y=ln(s.current),w=()=>{a.current=!0};return y.addEventListener(h,d),y.addEventListener("touchmove",w),()=>{y.removeEventListener(h,d),y.removeEventListener("touchmove",w)}}},[d,i]),r!==!1&&(p[r]=f(r)),b.useEffect(()=>{if(r!==!1){const h=Ab(r),y=ln(s.current);return y.addEventListener(h,d),()=>{y.removeEventListener(h,d)}}},[d,r]),g.jsx(b.Fragment,{children:b.cloneElement(t,p)})}function oO(e){const t=ln(e);return t.body===e?zr(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function Ml(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function Nb(e){return parseInt(zr(e).getComputedStyle(e).paddingRight,10)||0}function iO(e){const n=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].includes(e.tagName),r=e.tagName==="INPUT"&&e.getAttribute("type")==="hidden";return n||r}function Db(e,t,n,r,o){const i=[t,n,...r];[].forEach.call(e.children,a=>{const s=!i.includes(a),l=!iO(a);s&&l&&Ml(a,o)})}function gg(e,t){let n=-1;return e.some((r,o)=>t(r)?(n=o,!0):!1),n}function aO(e,t){const n=[],r=e.container;if(!t.disableScrollLock){if(oO(r)){const a=u_(zr(r));n.push({value:r.style.paddingRight,property:"padding-right",el:r}),r.style.paddingRight=`${Nb(r)+a}px`;const s=ln(r).querySelectorAll(".mui-fixed");[].forEach.call(s,l=>{n.push({value:l.style.paddingRight,property:"padding-right",el:l}),l.style.paddingRight=`${Nb(l)+a}px`})}let i;if(r.parentNode instanceof DocumentFragment)i=ln(r).body;else{const a=r.parentElement,s=zr(r);i=(a==null?void 0:a.nodeName)==="HTML"&&s.getComputedStyle(a).overflowY==="scroll"?a:r}n.push({value:i.style.overflow,property:"overflow",el:i},{value:i.style.overflowX,property:"overflow-x",el:i},{value:i.style.overflowY,property:"overflow-y",el:i}),i.style.overflow="hidden"}return()=>{n.forEach(({value:i,el:a,property:s})=>{i?a.style.setProperty(s,i):a.style.removeProperty(s)})}}function sO(e){const t=[];return[].forEach.call(e.children,n=>{n.getAttribute("aria-hidden")==="true"&&t.push(n)}),t}class lO{constructor(){this.modals=[],this.containers=[]}add(t,n){let r=this.modals.indexOf(t);if(r!==-1)return r;r=this.modals.length,this.modals.push(t),t.modalRef&&Ml(t.modalRef,!1);const o=sO(n);Db(n,t.mount,t.modalRef,o,!0);const i=gg(this.containers,a=>a.container===n);return i!==-1?(this.containers[i].modals.push(t),r):(this.containers.push({modals:[t],container:n,restore:null,hiddenSiblings:o}),r)}mount(t,n){const r=gg(this.containers,i=>i.modals.includes(t)),o=this.containers[r];o.restore||(o.restore=aO(o,n))}remove(t,n=!0){const r=this.modals.indexOf(t);if(r===-1)return r;const o=gg(this.containers,a=>a.modals.includes(t)),i=this.containers[o];if(i.modals.splice(i.modals.indexOf(t),1),this.modals.splice(r,1),i.modals.length===0)i.restore&&i.restore(),t.modalRef&&Ml(t.modalRef,n),Db(i.container,t.mount,t.modalRef,i.hiddenSiblings,!1),this.containers.splice(o,1);else{const a=i.modals[i.modals.length-1];a.modalRef&&Ml(a.modalRef,!1)}return r}isTopModal(t){return this.modals.length>0&&this.modals[this.modals.length-1]===t}}const cO=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function uO(e){const t=parseInt(e.getAttribute("tabindex")||"",10);return Number.isNaN(t)?e.contentEditable==="true"||(e.nodeName==="AUDIO"||e.nodeName==="VIDEO"||e.nodeName==="DETAILS")&&e.getAttribute("tabindex")===null?0:e.tabIndex:t}function dO(e){if(e.tagName!=="INPUT"||e.type!=="radio"||!e.name)return!1;const t=r=>e.ownerDocument.querySelector(`input[type="radio"]${r}`);let n=t(`[name="${e.name}"]:checked`);return n||(n=t(`[name="${e.name}"]`)),n!==e}function fO(e){return!(e.disabled||e.tagName==="INPUT"&&e.type==="hidden"||dO(e))}function pO(e){const t=[],n=[];return Array.from(e.querySelectorAll(cO)).forEach((r,o)=>{const i=uO(r);i===-1||!fO(r)||(i===0?t.push(r):n.push({documentOrder:o,tabIndex:i,node:r}))}),n.sort((r,o)=>r.tabIndex===o.tabIndex?r.documentOrder-o.documentOrder:r.tabIndex-o.tabIndex).map(r=>r.node).concat(t)}function gO(){return!0}function hO(e){const{children:t,disableAutoFocus:n=!1,disableEnforceFocus:r=!1,disableRestoreFocus:o=!1,getTabbable:i=pO,isEnabled:a=gO,open:s}=e,l=b.useRef(!1),c=b.useRef(null),u=b.useRef(null),d=b.useRef(null),f=b.useRef(null),p=b.useRef(!1),h=b.useRef(null),y=Rt(ua(t),h),w=b.useRef(null);b.useEffect(()=>{!s||!h.current||(p.current=!n)},[n,s]),b.useEffect(()=>{if(!s||!h.current)return;const m=ln(h.current);return h.current.contains(m.activeElement)||(h.current.hasAttribute("tabIndex")||h.current.setAttribute("tabIndex","-1"),p.current&&h.current.focus()),()=>{o||(d.current&&d.current.focus&&(l.current=!0,d.current.focus()),d.current=null)}},[s]),b.useEffect(()=>{if(!s||!h.current)return;const m=ln(h.current),C=k=>{w.current=k,!(r||!a()||k.key!=="Tab")&&m.activeElement===h.current&&k.shiftKey&&(l.current=!0,u.current&&u.current.focus())},_=()=>{var P,x;const k=h.current;if(k===null)return;if(!m.hasFocus()||!a()||l.current){l.current=!1;return}if(k.contains(m.activeElement)||r&&m.activeElement!==c.current&&m.activeElement!==u.current)return;if(m.activeElement!==f.current)f.current=null;else if(f.current!==null)return;if(!p.current)return;let T=[];if((m.activeElement===c.current||m.activeElement===u.current)&&(T=i(h.current)),T.length>0){const $=!!((P=w.current)!=null&&P.shiftKey&&((x=w.current)==null?void 0:x.key)==="Tab"),I=T[0],O=T[T.length-1];typeof I!="string"&&typeof O!="string"&&($?O.focus():I.focus())}else k.focus()};m.addEventListener("focusin",_),m.addEventListener("keydown",C,!0);const R=setInterval(()=>{m.activeElement&&m.activeElement.tagName==="BODY"&&_()},50);return()=>{clearInterval(R),m.removeEventListener("focusin",_),m.removeEventListener("keydown",C,!0)}},[n,r,o,a,s,i]);const v=m=>{d.current===null&&(d.current=m.relatedTarget),p.current=!0,f.current=m.target;const C=t.props.onFocus;C&&C(m)},S=m=>{d.current===null&&(d.current=m.relatedTarget),p.current=!0};return g.jsxs(b.Fragment,{children:[g.jsx("div",{tabIndex:s?0:-1,onFocus:S,ref:c,"data-testid":"sentinelStart"}),b.cloneElement(t,{ref:y,onFocus:v}),g.jsx("div",{tabIndex:s?0:-1,onFocus:S,ref:u,"data-testid":"sentinelEnd"})]})}function mO(e){return typeof e=="function"?e():e}function vO(e){return e?e.props.hasOwnProperty("in"):!1}const pu=new lO;function yO(e){const{container:t,disableEscapeKeyDown:n=!1,disableScrollLock:r=!1,closeAfterTransition:o=!1,onTransitionEnter:i,onTransitionExited:a,children:s,onClose:l,open:c,rootRef:u}=e,d=b.useRef({}),f=b.useRef(null),p=b.useRef(null),h=Rt(p,u),[y,w]=b.useState(!c),v=vO(s);let S=!0;(e["aria-hidden"]==="false"||e["aria-hidden"]===!1)&&(S=!1);const m=()=>ln(f.current),C=()=>(d.current.modalRef=p.current,d.current.mount=f.current,d.current),_=()=>{pu.mount(C(),{disableScrollLock:r}),p.current&&(p.current.scrollTop=0)},R=bn(()=>{const M=mO(t)||m().body;pu.add(C(),M),p.current&&_()}),k=()=>pu.isTopModal(C()),T=bn(M=>{f.current=M,M&&(c&&k()?_():p.current&&Ml(p.current,S))}),P=b.useCallback(()=>{pu.remove(C(),S)},[S]);b.useEffect(()=>()=>{P()},[P]),b.useEffect(()=>{c?R():(!v||!o)&&P()},[c,P,v,o,R]);const x=M=>A=>{var N;(N=M.onKeyDown)==null||N.call(M,A),!(A.key!=="Escape"||A.which===229||!k())&&(n||(A.stopPropagation(),l&&l(A,"escapeKeyDown")))},$=M=>A=>{var N;(N=M.onClick)==null||N.call(M,A),A.target===A.currentTarget&&l&&l(A,"backdropClick")};return{getRootProps:(M={})=>{const A=f_(e);delete A.onTransitionEnter,delete A.onTransitionExited;const N={...A,...M};return{role:"presentation",...N,onKeyDown:x(N),ref:h}},getBackdropProps:(M={})=>{const A=M;return{"aria-hidden":!0,...A,onClick:$(A),open:c}},getTransitionProps:()=>{const M=()=>{w(!1),i&&i()},A=()=>{w(!0),a&&a(),o&&P()};return{onEnter:gm(M,s==null?void 0:s.props.onEnter),onExited:gm(A,s==null?void 0:s.props.onExited)}},rootRef:h,portalRef:T,isTopModal:k,exited:y,hasTransition:v}}function bO(e){return Oe("MuiModal",e)}Ee("MuiModal",["root","hidden","backdrop"]);const xO=e=>{const{open:t,exited:n,classes:r}=e;return Ne({root:["root",!t&&n&&"hidden"],backdrop:["backdrop"]},bO,r)},SO=J("div",{name:"MuiModal",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.open&&n.exited&&t.hidden]}})($e(({theme:e})=>({position:"fixed",zIndex:(e.vars||e).zIndex.modal,right:0,bottom:0,top:0,left:0,variants:[{props:({ownerState:t})=>!t.open&&t.exited,style:{visibility:"hidden"}}]}))),wO=J(MI,{name:"MuiModal",slot:"Backdrop",overridesResolver:(e,t)=>t.backdrop})({zIndex:-1}),CO=b.forwardRef(function(t,n){const r=De({name:"MuiModal",props:t}),{BackdropComponent:o=wO,BackdropProps:i,classes:a,className:s,closeAfterTransition:l=!1,children:c,container:u,component:d,components:f={},componentsProps:p={},disableAutoFocus:h=!1,disableEnforceFocus:y=!1,disableEscapeKeyDown:w=!1,disablePortal:v=!1,disableRestoreFocus:S=!1,disableScrollLock:m=!1,hideBackdrop:C=!1,keepMounted:_=!1,onBackdropClick:R,onClose:k,onTransitionEnter:T,onTransitionExited:P,open:x,slotProps:$={},slots:I={},theme:O,...D}=r,M={...r,closeAfterTransition:l,disableAutoFocus:h,disableEnforceFocus:y,disableEscapeKeyDown:w,disablePortal:v,disableRestoreFocus:S,disableScrollLock:m,hideBackdrop:C,keepMounted:_},{getRootProps:A,getBackdropProps:N,getTransitionProps:E,portalRef:L,isTopModal:B,exited:H,hasTransition:z}=yO({...M,rootRef:n}),j={...M,exited:H},F=xO(j),W={};if(c.props.tabIndex===void 0&&(W.tabIndex="-1"),z){const{onEnter:q,onExited:ce}=E();W.onEnter=q,W.onExited=ce}const V={...D,slots:{root:f.Root,backdrop:f.Backdrop,...I},slotProps:{...p,...$}},[ee,re]=an("root",{elementType:SO,externalForwardedProps:V,getSlotProps:A,additionalProps:{ref:n,as:d},ownerState:j,className:ve(s,F==null?void 0:F.root,!j.open&&j.exited&&(F==null?void 0:F.hidden))}),[U,K]=an("backdrop",{elementType:o,externalForwardedProps:V,additionalProps:i,getSlotProps:q=>N({...q,onClick:ce=>{R&&R(ce),q!=null&&q.onClick&&q.onClick(ce)}}),className:ve(i==null?void 0:i.className,F==null?void 0:F.backdrop),ownerState:j}),se=Rt(i==null?void 0:i.ref,K.ref);return!_&&!x&&(!z||H)?null:g.jsx(k_,{ref:L,container:u,disablePortal:v,children:g.jsxs(ee,{...re,children:[!C&&o?g.jsx(U,{...K,ref:se}):null,g.jsx(hO,{disableEnforceFocus:y,disableAutoFocus:h,disableRestoreFocus:S,isEnabled:B,open:x,children:b.cloneElement(c,W)})]})})}),jb=Ee("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]),_O=e=>{const{classes:t,disableUnderline:n,startAdornment:r,endAdornment:o,size:i,hiddenLabel:a,multiline:s}=e,l={root:["root",!n&&"underline",r&&"adornedStart",o&&"adornedEnd",i==="small"&&`size${ae(i)}`,a&&"hiddenLabel",s&&"multiline"],input:["input"]},c=Ne(l,uI,t);return{...t,...c}},RO=J(gp,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiFilledInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...fp(e,t),!n.disableUnderline&&t.underline]}})($e(({theme:e})=>{const t=e.palette.mode==="light",n=t?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",r=t?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",o=t?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",i=t?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return{position:"relative",backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r,borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:e.vars?e.vars.palette.FilledInput.hoverBg:o,"@media (hover: none)":{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r}},[`&.${qn.focused}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r},[`&.${qn.disabled}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.disabledBg:i},variants:[{props:({ownerState:a})=>!a.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${qn.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${qn.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`:n}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${qn.disabled}, .${qn.error}):before`]:{borderBottom:`1px solid ${(e.vars||e).palette.text.primary}`},[`&.${qn.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(Ft()).map(([a])=>{var s;return{props:{disableUnderline:!1,color:a},style:{"&::after":{borderBottom:`2px solid ${(s=(e.vars||e).palette[a])==null?void 0:s.main}`}}}}),{props:({ownerState:a})=>a.startAdornment,style:{paddingLeft:12}},{props:({ownerState:a})=>a.endAdornment,style:{paddingRight:12}},{props:({ownerState:a})=>a.multiline,style:{padding:"25px 12px 8px"}},{props:({ownerState:a,size:s})=>a.multiline&&s==="small",style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:a})=>a.multiline&&a.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:a})=>a.multiline&&a.hiddenLabel&&a.size==="small",style:{paddingTop:8,paddingBottom:9}}]}})),TO=J(hp,{name:"MuiFilledInput",slot:"Input",overridesResolver:pp})($e(({theme:e})=>({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12,...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},...e.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:t})=>t.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:t})=>t.startAdornment,style:{paddingLeft:0}},{props:({ownerState:t})=>t.endAdornment,style:{paddingRight:0}},{props:({ownerState:t})=>t.hiddenLabel&&t.size==="small",style:{paddingTop:8,paddingBottom:9}},{props:({ownerState:t})=>t.multiline,style:{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}}]}))),Ud=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFilledInput"}),{disableUnderline:o=!1,components:i={},componentsProps:a,fullWidth:s=!1,hiddenLabel:l,inputComponent:c="input",multiline:u=!1,slotProps:d,slots:f={},type:p="text",...h}=r,y={...r,disableUnderline:o,fullWidth:s,inputComponent:c,multiline:u,type:p},w=_O(r),v={root:{ownerState:y},input:{ownerState:y}},S=d??a?io(v,d??a):v,m=f.root??i.Root??RO,C=f.input??i.Input??TO;return g.jsx(mp,{slots:{root:m,input:C},componentsProps:S,fullWidth:s,inputComponent:c,multiline:u,ref:n,type:p,...h,classes:w})});Ud&&(Ud.muiName="Input");function PO(e){return Oe("MuiFormControl",e)}Ee("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);const kO=e=>{const{classes:t,margin:n,fullWidth:r}=e,o={root:["root",n!=="none"&&`margin${ae(n)}`,r&&"fullWidth"]};return Ne(o,PO,t)},$O=J("div",{name:"MuiFormControl",slot:"Root",overridesResolver:({ownerState:e},t)=>({...t.root,...t[`margin${ae(e.margin)}`],...e.fullWidth&&t.fullWidth})})({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top",variants:[{props:{margin:"normal"},style:{marginTop:16,marginBottom:8}},{props:{margin:"dense"},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:"100%"}}]}),EO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormControl"}),{children:o,className:i,color:a="primary",component:s="div",disabled:l=!1,error:c=!1,focused:u,fullWidth:d=!1,hiddenLabel:f=!1,margin:p="none",required:h=!1,size:y="medium",variant:w="outlined",...v}=r,S={...r,color:a,component:s,disabled:l,error:c,fullWidth:d,hiddenLabel:f,margin:p,required:h,size:y,variant:w},m=kO(S),[C,_]=b.useState(()=>{let O=!1;return o&&b.Children.forEach(o,D=>{if(!fg(D,["Input","Select"]))return;const M=fg(D,["Select"])?D.props.input:D;M&&iI(M.props)&&(O=!0)}),O}),[R,k]=b.useState(()=>{let O=!1;return o&&b.Children.forEach(o,D=>{fg(D,["Input","Select"])&&(Wd(D.props,!0)||Wd(D.props.inputProps,!0))&&(O=!0)}),O}),[T,P]=b.useState(!1);l&&T&&P(!1);const x=u!==void 0&&!l?u:T;let $;b.useRef(!1);const I=b.useMemo(()=>({adornedStart:C,setAdornedStart:_,color:a,disabled:l,error:c,filled:R,focused:x,fullWidth:d,hiddenLabel:f,size:y,onBlur:()=>{P(!1)},onEmpty:()=>{k(!1)},onFilled:()=>{k(!0)},onFocus:()=>{P(!0)},registerEffect:$,required:h,variant:w}),[C,a,l,c,R,x,d,f,$,h,y,w]);return g.jsx(k1.Provider,{value:I,children:g.jsx($O,{as:s,ownerState:S,className:ve(m.root,i),ref:n,...v,children:o})})});function MO(e){return Oe("MuiFormControlLabel",e)}const vl=Ee("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error","required","asterisk"]),IO=e=>{const{classes:t,disabled:n,labelPlacement:r,error:o,required:i}=e,a={root:["root",n&&"disabled",`labelPlacement${ae(r)}`,o&&"error",i&&"required"],label:["label",n&&"disabled"],asterisk:["asterisk",o&&"error"]};return Ne(a,MO,t)},OO=J("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${vl.label}`]:t.label},t.root,t[`labelPlacement${ae(n.labelPlacement)}`]]}})($e(({theme:e})=>({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16,[`&.${vl.disabled}`]:{cursor:"default"},[`& .${vl.label}`]:{[`&.${vl.disabled}`]:{color:(e.vars||e).palette.text.disabled}},variants:[{props:{labelPlacement:"start"},style:{flexDirection:"row-reverse",marginRight:-11}},{props:{labelPlacement:"top"},style:{flexDirection:"column-reverse"}},{props:{labelPlacement:"bottom"},style:{flexDirection:"column"}},{props:({labelPlacement:t})=>t==="start"||t==="top"||t==="bottom",style:{marginLeft:16}}]}))),LO=J("span",{name:"MuiFormControlLabel",slot:"Asterisk",overridesResolver:(e,t)=>t.asterisk})($e(({theme:e})=>({[`&.${vl.error}`]:{color:(e.vars||e).palette.error.main}}))),M_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormControlLabel"}),{checked:o,className:i,componentsProps:a={},control:s,disabled:l,disableTypography:c,inputRef:u,label:d,labelPlacement:f="end",name:p,onChange:h,required:y,slots:w={},slotProps:v={},value:S,...m}=r,C=Mo(),_=l??s.props.disabled??(C==null?void 0:C.disabled),R=y??s.props.required,k={disabled:_,required:R};["checked","name","onChange","value","inputRef"].forEach(M=>{typeof s.props[M]>"u"&&typeof r[M]<"u"&&(k[M]=r[M])});const T=da({props:r,muiFormControl:C,states:["error"]}),P={...r,disabled:_,labelPlacement:f,required:R,error:T.error},x=IO(P),$={slots:w,slotProps:{...a,...v}},[I,O]=an("typography",{elementType:mt,externalForwardedProps:$,ownerState:P});let D=d;return D!=null&&D.type!==mt&&!c&&(D=g.jsx(I,{component:"span",...O,className:ve(x.label,O==null?void 0:O.className),children:D})),g.jsxs(OO,{className:ve(x.root,i),ownerState:P,ref:n,...m,children:[b.cloneElement(s,k),R?g.jsxs("div",{children:[D,g.jsxs(LO,{ownerState:P,"aria-hidden":!0,className:x.asterisk,children:[" ","*"]})]}):D]})});function AO(e){return Oe("MuiFormHelperText",e)}const Fb=Ee("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]);var Bb;const NO=e=>{const{classes:t,contained:n,size:r,disabled:o,error:i,filled:a,focused:s,required:l}=e,c={root:["root",o&&"disabled",i&&"error",r&&`size${ae(r)}`,n&&"contained",s&&"focused",a&&"filled",l&&"required"]};return Ne(c,AO,t)},DO=J("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.size&&t[`size${ae(n.size)}`],n.contained&&t.contained,n.filled&&t.filled]}})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.caption,textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${Fb.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Fb.error}`]:{color:(e.vars||e).palette.error.main},variants:[{props:{size:"small"},style:{marginTop:4}},{props:({ownerState:t})=>t.contained,style:{marginLeft:14,marginRight:14}}]}))),jO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormHelperText"}),{children:o,className:i,component:a="p",disabled:s,error:l,filled:c,focused:u,margin:d,required:f,variant:p,...h}=r,y=Mo(),w=da({props:r,muiFormControl:y,states:["variant","size","disabled","error","filled","focused","required"]}),v={...r,component:a,contained:w.variant==="filled"||w.variant==="outlined",variant:w.variant,size:w.size,disabled:w.disabled,error:w.error,filled:w.filled,focused:w.focused,required:w.required};delete v.ownerState;const S=NO(v);return g.jsx(DO,{as:a,className:ve(S.root,i),ref:n,...h,ownerState:v,children:o===" "?Bb||(Bb=g.jsx("span",{className:"notranslate",children:"​"})):o})});function FO(e){return Oe("MuiFormLabel",e)}const Il=Ee("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),BO=e=>{const{classes:t,color:n,focused:r,disabled:o,error:i,filled:a,required:s}=e,l={root:["root",`color${ae(n)}`,o&&"disabled",i&&"error",a&&"filled",r&&"focused",s&&"required"],asterisk:["asterisk",i&&"error"]};return Ne(l,FO,t)},zO=J("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:({ownerState:e},t)=>({...t.root,...e.color==="secondary"&&t.colorSecondary,...e.filled&&t.filled})})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.body1,lineHeight:"1.4375em",padding:0,position:"relative",variants:[...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t},style:{[`&.${Il.focused}`]:{color:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${Il.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Il.error}`]:{color:(e.vars||e).palette.error.main}}}]}))),HO=J("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:(e,t)=>t.asterisk})($e(({theme:e})=>({[`&.${Il.error}`]:{color:(e.vars||e).palette.error.main}}))),VO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormLabel"}),{children:o,className:i,color:a,component:s="label",disabled:l,error:c,filled:u,focused:d,required:f,...p}=r,h=Mo(),y=da({props:r,muiFormControl:h,states:["color","required","focused","disabled","error","filled"]}),w={...r,color:y.color||"primary",component:s,disabled:y.disabled,error:y.error,filled:y.filled,focused:y.focused,required:y.required},v=BO(w);return g.jsxs(zO,{as:s,ownerState:w,className:ve(v.root,i),ref:n,...p,children:[o,y.required&&g.jsxs(HO,{ownerState:w,"aria-hidden":!0,className:v.asterisk,children:[" ","*"]})]})});function wm(e){return`scale(${e}, ${e**2})`}const WO={entering:{opacity:1,transform:wm(1)},entered:{opacity:1,transform:"none"}},hg=typeof navigator<"u"&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),uc=b.forwardRef(function(t,n){const{addEndListener:r,appear:o=!0,children:i,easing:a,in:s,onEnter:l,onEntered:c,onEntering:u,onExit:d,onExited:f,onExiting:p,style:h,timeout:y="auto",TransitionComponent:w=Vr,...v}=t,S=Ni(),m=b.useRef(),C=zt(),_=b.useRef(null),R=Rt(_,ua(i),n),k=M=>A=>{if(M){const N=_.current;A===void 0?M(N):M(N,A)}},T=k(u),P=k((M,A)=>{m_(M);const{duration:N,delay:E,easing:L}=fs({style:h,timeout:y,easing:a},{mode:"enter"});let B;y==="auto"?(B=C.transitions.getAutoHeightDuration(M.clientHeight),m.current=B):B=N,M.style.transition=[C.transitions.create("opacity",{duration:B,delay:E}),C.transitions.create("transform",{duration:hg?B:B*.666,delay:E,easing:L})].join(","),l&&l(M,A)}),x=k(c),$=k(p),I=k(M=>{const{duration:A,delay:N,easing:E}=fs({style:h,timeout:y,easing:a},{mode:"exit"});let L;y==="auto"?(L=C.transitions.getAutoHeightDuration(M.clientHeight),m.current=L):L=A,M.style.transition=[C.transitions.create("opacity",{duration:L,delay:N}),C.transitions.create("transform",{duration:hg?L:L*.666,delay:hg?N:N||L*.333,easing:E})].join(","),M.style.opacity=0,M.style.transform=wm(.75),d&&d(M)}),O=k(f),D=M=>{y==="auto"&&S.start(m.current||0,M),r&&r(_.current,M)};return g.jsx(w,{appear:o,in:s,nodeRef:_,onEnter:P,onEntered:x,onEntering:T,onExit:I,onExited:O,onExiting:$,addEndListener:D,timeout:y==="auto"?null:y,...v,children:(M,A)=>b.cloneElement(i,{style:{opacity:0,transform:wm(.75),visibility:M==="exited"&&!s?"hidden":void 0,...WO[M],...h,...i.props.style},ref:R,...A})})});uc&&(uc.muiSupportAuto=!0);const UO=e=>{const{classes:t,disableUnderline:n}=e,o=Ne({root:["root",!n&&"underline"],input:["input"]},lI,t);return{...t,...o}},GO=J(gp,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...fp(e,t),!n.disableUnderline&&t.underline]}})($e(({theme:e})=>{let n=e.palette.mode==="light"?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return e.vars&&(n=`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`),{position:"relative",variants:[{props:({ownerState:r})=>r.formControl,style:{"label + &":{marginTop:16}}},{props:({ownerState:r})=>!r.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Go.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Go.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${n}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Go.disabled}, .${Go.error}):before`]:{borderBottom:`2px solid ${(e.vars||e).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${n}`}},[`&.${Go.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(Ft()).map(([r])=>({props:{color:r,disableUnderline:!1},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[r].main}`}}}))]}})),qO=J(hp,{name:"MuiInput",slot:"Input",overridesResolver:pp})({}),Gd=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiInput"}),{disableUnderline:o=!1,components:i={},componentsProps:a,fullWidth:s=!1,inputComponent:l="input",multiline:c=!1,slotProps:u,slots:d={},type:f="text",...p}=r,h=UO(r),w={root:{ownerState:{disableUnderline:o}}},v=u??a?io(u??a,w):w,S=d.root??i.Root??GO,m=d.input??i.Input??qO;return g.jsx(mp,{slots:{root:S,input:m},slotProps:v,fullWidth:s,inputComponent:l,multiline:c,ref:n,type:f,...p,classes:h})});Gd&&(Gd.muiName="Input");function KO(e){return Oe("MuiInputLabel",e)}Ee("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);const ZO=e=>{const{classes:t,formControl:n,size:r,shrink:o,disableAnimation:i,variant:a,required:s}=e,l={root:["root",n&&"formControl",!i&&"animated",o&&"shrink",r&&r!=="normal"&&`size${ae(r)}`,a],asterisk:[s&&"asterisk"]},c=Ne(l,KO,t);return{...t,...c}},QO=J(VO,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Il.asterisk}`]:t.asterisk},t.root,n.formControl&&t.formControl,n.size==="small"&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,n.focused&&t.focused,t[n.variant]]}})($e(({theme:e})=>({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",variants:[{props:({ownerState:t})=>t.formControl,style:{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"}},{props:{size:"small"},style:{transform:"translate(0, 17px) scale(1)"}},{props:({ownerState:t})=>t.shrink,style:{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"}},{props:({ownerState:t})=>!t.disableAnimation,style:{transition:e.transitions.create(["color","transform","max-width"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})}},{props:{variant:"filled"},style:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"filled",size:"small"},style:{transform:"translate(12px, 13px) scale(1)"}},{props:({variant:t,ownerState:n})=>t==="filled"&&n.shrink,style:{userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"}},{props:({variant:t,ownerState:n,size:r})=>t==="filled"&&n.shrink&&r==="small",style:{transform:"translate(12px, 4px) scale(0.75)"}},{props:{variant:"outlined"},style:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"outlined",size:"small"},style:{transform:"translate(14px, 9px) scale(1)"}},{props:({variant:t,ownerState:n})=>t==="outlined"&&n.shrink,style:{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}}]}))),YO=b.forwardRef(function(t,n){const r=De({name:"MuiInputLabel",props:t}),{disableAnimation:o=!1,margin:i,shrink:a,variant:s,className:l,...c}=r,u=Mo();let d=a;typeof d>"u"&&u&&(d=u.filled||u.focused||u.adornedStart);const f=da({props:r,muiFormControl:u,states:["size","variant","required","focused"]}),p={...r,disableAnimation:o,formControl:u,shrink:d,size:f.size,variant:f.variant,required:f.required,focused:f.focused},h=ZO(p);return g.jsx(QO,{"data-shrink":d,ref:n,className:ve(h.root,l),...c,ownerState:p,classes:h})}),Cm=b.createContext({});function XO(e){return Oe("MuiList",e)}Ee("MuiList",["root","padding","dense","subheader"]);const JO=e=>{const{classes:t,disablePadding:n,dense:r,subheader:o}=e;return Ne({root:["root",!n&&"padding",r&&"dense",o&&"subheader"]},XO,t)},eL=J("ul",{name:"MuiList",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})({listStyle:"none",margin:0,padding:0,position:"relative",variants:[{props:({ownerState:e})=>!e.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:e})=>e.subheader,style:{paddingTop:0}}]}),tL=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiList"}),{children:o,className:i,component:a="ul",dense:s=!1,disablePadding:l=!1,subheader:c,...u}=r,d=b.useMemo(()=>({dense:s}),[s]),f={...r,component:a,dense:s,disablePadding:l},p=JO(f);return g.jsx(Cm.Provider,{value:d,children:g.jsxs(eL,{as:a,className:ve(p.root,i),ref:n,ownerState:f,...u,children:[c,o]})})}),zb=Ee("MuiListItemIcon",["root","alignItemsFlexStart"]),Hb=Ee("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]);function mg(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function Vb(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function I_(e,t){if(t===void 0)return!0;let n=e.innerText;return n===void 0&&(n=e.textContent),n=n.trim().toLowerCase(),n.length===0?!1:t.repeating?n[0]===t.keys[0]:n.startsWith(t.keys.join(""))}function Js(e,t,n,r,o,i){let a=!1,s=o(e,t,t?n:!1);for(;s;){if(s===e.firstChild){if(a)return!1;a=!0}const l=r?!1:s.disabled||s.getAttribute("aria-disabled")==="true";if(!s.hasAttribute("tabindex")||!I_(s,i)||l)s=o(e,s,n);else return s.focus(),!0}return!1}const nL=b.forwardRef(function(t,n){const{actions:r,autoFocus:o=!1,autoFocusItem:i=!1,children:a,className:s,disabledItemsFocusable:l=!1,disableListWrap:c=!1,onKeyDown:u,variant:d="selectedMenu",...f}=t,p=b.useRef(null),h=b.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});Hr(()=>{o&&p.current.focus()},[o]),b.useImperativeHandle(r,()=>({adjustStyleForScrollbar:(m,{direction:C})=>{const _=!p.current.style.width;if(m.clientHeight{const C=p.current,_=m.key;if(m.ctrlKey||m.metaKey||m.altKey){u&&u(m);return}const k=ln(C).activeElement;if(_==="ArrowDown")m.preventDefault(),Js(C,k,c,l,mg);else if(_==="ArrowUp")m.preventDefault(),Js(C,k,c,l,Vb);else if(_==="Home")m.preventDefault(),Js(C,null,c,l,mg);else if(_==="End")m.preventDefault(),Js(C,null,c,l,Vb);else if(_.length===1){const T=h.current,P=_.toLowerCase(),x=performance.now();T.keys.length>0&&(x-T.lastTime>500?(T.keys=[],T.repeating=!0,T.previousKeyMatched=!0):T.repeating&&P!==T.keys[0]&&(T.repeating=!1)),T.lastTime=x,T.keys.push(P);const $=k&&!T.repeating&&I_(k,T);T.previousKeyMatched&&($||Js(C,k,!1,l,mg,T))?m.preventDefault():T.previousKeyMatched=!1}u&&u(m)},w=Rt(p,n);let v=-1;b.Children.forEach(a,(m,C)=>{if(!b.isValidElement(m)){v===C&&(v+=1,v>=a.length&&(v=-1));return}m.props.disabled||(d==="selectedMenu"&&m.props.selected||v===-1)&&(v=C),v===C&&(m.props.disabled||m.props.muiSkipListHighlight||m.type.muiSkipListHighlight)&&(v+=1,v>=a.length&&(v=-1))});const S=b.Children.map(a,(m,C)=>{if(C===v){const _={};return i&&(_.autoFocus=!0),m.props.tabIndex===void 0&&d==="selectedMenu"&&(_.tabIndex=0),b.cloneElement(m,_)}return m});return g.jsx(tL,{role:"menu",ref:w,className:s,onKeyDown:y,tabIndex:o?0:-1,...f,children:S})});function rL(e){return Oe("MuiPopover",e)}Ee("MuiPopover",["root","paper"]);function Wb(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.height/2:t==="bottom"&&(n=e.height),n}function Ub(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.width/2:t==="right"&&(n=e.width),n}function Gb(e){return[e.horizontal,e.vertical].map(t=>typeof t=="number"?`${t}px`:t).join(" ")}function vg(e){return typeof e=="function"?e():e}const oL=e=>{const{classes:t}=e;return Ne({root:["root"],paper:["paper"]},rL,t)},iL=J(CO,{name:"MuiPopover",slot:"Root",overridesResolver:(e,t)=>t.root})({}),O_=J(Is,{name:"MuiPopover",slot:"Paper",overridesResolver:(e,t)=>t.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),L_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiPopover"}),{action:o,anchorEl:i,anchorOrigin:a={vertical:"top",horizontal:"left"},anchorPosition:s,anchorReference:l="anchorEl",children:c,className:u,container:d,elevation:f=8,marginThreshold:p=16,open:h,PaperProps:y={},slots:w={},slotProps:v={},transformOrigin:S={vertical:"top",horizontal:"left"},TransitionComponent:m=uc,transitionDuration:C="auto",TransitionProps:{onEntering:_,...R}={},disableScrollLock:k=!1,...T}=r,P=(v==null?void 0:v.paper)??y,x=b.useRef(),$={...r,anchorOrigin:a,anchorReference:l,elevation:f,marginThreshold:p,externalPaperSlotProps:P,transformOrigin:S,TransitionComponent:m,transitionDuration:C,TransitionProps:R},I=oL($),O=b.useCallback(()=>{if(l==="anchorPosition")return s;const K=vg(i),q=(K&&K.nodeType===1?K:ln(x.current).body).getBoundingClientRect();return{top:q.top+Wb(q,a.vertical),left:q.left+Ub(q,a.horizontal)}},[i,a.horizontal,a.vertical,s,l]),D=b.useCallback(K=>({vertical:Wb(K,S.vertical),horizontal:Ub(K,S.horizontal)}),[S.horizontal,S.vertical]),M=b.useCallback(K=>{const se={width:K.offsetWidth,height:K.offsetHeight},q=D(se);if(l==="none")return{top:null,left:null,transformOrigin:Gb(q)};const ce=O();let ue=ce.top-q.vertical,ie=ce.left-q.horizontal;const te=ue+se.height,de=ie+se.width,Q=zr(vg(i)),be=Q.innerHeight-p,Te=Q.innerWidth-p;if(p!==null&&uebe){const we=te-be;ue-=we,q.vertical+=we}if(p!==null&&ieTe){const we=de-Te;ie-=we,q.horizontal+=we}return{top:`${Math.round(ue)}px`,left:`${Math.round(ie)}px`,transformOrigin:Gb(q)}},[i,l,O,D,p]),[A,N]=b.useState(h),E=b.useCallback(()=>{const K=x.current;if(!K)return;const se=M(K);se.top!==null&&K.style.setProperty("top",se.top),se.left!==null&&(K.style.left=se.left),K.style.transformOrigin=se.transformOrigin,N(!0)},[M]);b.useEffect(()=>(k&&window.addEventListener("scroll",E),()=>window.removeEventListener("scroll",E)),[i,k,E]);const L=(K,se)=>{_&&_(K,se),E()},B=()=>{N(!1)};b.useEffect(()=>{h&&E()}),b.useImperativeHandle(o,()=>h?{updatePosition:()=>{E()}}:null,[h,E]),b.useEffect(()=>{if(!h)return;const K=cp(()=>{E()}),se=zr(i);return se.addEventListener("resize",K),()=>{K.clear(),se.removeEventListener("resize",K)}},[i,h,E]);let H=C;C==="auto"&&!m.muiSupportAuto&&(H=void 0);const z=d||(i?ln(vg(i)).body:void 0),j={slots:w,slotProps:{...v,paper:P}},[F,W]=an("paper",{elementType:O_,externalForwardedProps:j,additionalProps:{elevation:f,className:ve(I.paper,P==null?void 0:P.className),style:A?P.style:{...P.style,opacity:0}},ownerState:$}),[V,{slotProps:ee,...re}]=an("root",{elementType:iL,externalForwardedProps:j,additionalProps:{slotProps:{backdrop:{invisible:!0}},container:z,open:h},ownerState:$,className:ve(I.root,u)}),U=Rt(x,W.ref);return g.jsx(V,{...re,...!Vd(V)&&{slotProps:ee,disableScrollLock:k},...T,ref:n,children:g.jsx(m,{appear:!0,in:h,onEntering:L,onExited:B,timeout:H,...R,children:g.jsx(F,{...W,ref:U,children:c})})})});function aL(e){return Oe("MuiMenu",e)}Ee("MuiMenu",["root","paper","list"]);const sL={vertical:"top",horizontal:"right"},lL={vertical:"top",horizontal:"left"},cL=e=>{const{classes:t}=e;return Ne({root:["root"],paper:["paper"],list:["list"]},aL,t)},uL=J(L_,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiMenu",slot:"Root",overridesResolver:(e,t)=>t.root})({}),dL=J(O_,{name:"MuiMenu",slot:"Paper",overridesResolver:(e,t)=>t.paper})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),fL=J(nL,{name:"MuiMenu",slot:"List",overridesResolver:(e,t)=>t.list})({outline:0}),E1=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiMenu"}),{autoFocus:o=!0,children:i,className:a,disableAutoFocusItem:s=!1,MenuListProps:l={},onClose:c,open:u,PaperProps:d={},PopoverClasses:f,transitionDuration:p="auto",TransitionProps:{onEntering:h,...y}={},variant:w="selectedMenu",slots:v={},slotProps:S={},...m}=r,C=Es(),_={...r,autoFocus:o,disableAutoFocusItem:s,MenuListProps:l,onEntering:h,PaperProps:d,transitionDuration:p,TransitionProps:y,variant:w},R=cL(_),k=o&&!s&&u,T=b.useRef(null),P=(A,N)=>{T.current&&T.current.adjustStyleForScrollbar(A,{direction:C?"rtl":"ltr"}),h&&h(A,N)},x=A=>{A.key==="Tab"&&(A.preventDefault(),c&&c(A,"tabKeyDown"))};let $=-1;b.Children.map(i,(A,N)=>{b.isValidElement(A)&&(A.props.disabled||(w==="selectedMenu"&&A.props.selected||$===-1)&&($=N))});const I=v.paper??dL,O=S.paper??d,D=na({elementType:v.root,externalSlotProps:S.root,ownerState:_,className:[R.root,a]}),M=na({elementType:I,externalSlotProps:O,ownerState:_,className:R.paper});return g.jsx(uL,{onClose:c,anchorOrigin:{vertical:"bottom",horizontal:C?"right":"left"},transformOrigin:C?sL:lL,slots:{paper:I,root:v.root},slotProps:{root:D,paper:M},open:u,ref:n,transitionDuration:p,TransitionProps:{onEntering:P,...y},ownerState:_,...m,classes:f,children:g.jsx(fL,{onKeyDown:x,actions:T,autoFocus:o&&($===-1||s),autoFocusItem:k,variant:w,...l,className:ve(R.list,l.className),children:i})})});function pL(e){return Oe("MuiMenuItem",e)}const el=Ee("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),gL=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},hL=e=>{const{disabled:t,dense:n,divider:r,disableGutters:o,selected:i,classes:a}=e,l=Ne({root:["root",n&&"dense",t&&"disabled",!o&&"gutters",r&&"divider",i&&"selected"]},pL,a);return{...a,...l}},mL=J(To,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:gL})($e(({theme:e})=>({...e.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${el.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${el.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`&.${el.selected}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${el.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${el.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${jb.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${jb.inset}`]:{marginLeft:52},[`& .${Hb.root}`]:{marginTop:0,marginBottom:0},[`& .${Hb.inset}`]:{paddingLeft:36},[`& .${zb.root}`]:{minWidth:36},variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:t})=>!t.dense,style:{[e.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:t})=>t.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...e.typography.body2,[`& .${zb.root} svg`]:{fontSize:"1.25rem"}}}]}))),$c=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiMenuItem"}),{autoFocus:o=!1,component:i="li",dense:a=!1,divider:s=!1,disableGutters:l=!1,focusVisibleClassName:c,role:u="menuitem",tabIndex:d,className:f,...p}=r,h=b.useContext(Cm),y=b.useMemo(()=>({dense:a||h.dense||!1,disableGutters:l}),[h.dense,a,l]),w=b.useRef(null);Hr(()=>{o&&w.current&&w.current.focus()},[o]);const v={...r,dense:y.dense,divider:s,disableGutters:l},S=hL(r),m=Rt(w,n);let C;return r.disabled||(C=d!==void 0?d:-1),g.jsx(Cm.Provider,{value:y,children:g.jsx(mL,{ref:m,role:u,tabIndex:C,component:i,focusVisibleClassName:ve(S.focusVisible,c),className:ve(S.root,f),...p,ownerState:v,classes:S})})});function vL(e){return Oe("MuiNativeSelect",e)}const M1=Ee("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),yL=e=>{const{classes:t,variant:n,disabled:r,multiple:o,open:i,error:a}=e,s={select:["select",n,r&&"disabled",o&&"multiple",a&&"error"],icon:["icon",`icon${ae(n)}`,i&&"iconOpen",r&&"disabled"]};return Ne(s,vL,t)},A_=J("select")(({theme:e})=>({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":{borderRadius:0},[`&.${M1.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(e.vars||e).palette.background.paper},variants:[{props:({ownerState:t})=>t.variant!=="filled"&&t.variant!=="outlined",style:{"&&&":{paddingRight:24,minWidth:16}}},{props:{variant:"filled"},style:{"&&&":{paddingRight:32}}},{props:{variant:"outlined"},style:{borderRadius:(e.vars||e).shape.borderRadius,"&:focus":{borderRadius:(e.vars||e).shape.borderRadius},"&&&":{paddingRight:32}}}]})),bL=J(A_,{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:wn,overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${M1.multiple}`]:t.multiple}]}})({}),N_=J("svg")(({theme:e})=>({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(e.vars||e).palette.action.active,[`&.${M1.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:({ownerState:t})=>t.open,style:{transform:"rotate(180deg)"}},{props:{variant:"filled"},style:{right:7}},{props:{variant:"outlined"},style:{right:7}}]})),xL=J(N_,{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${ae(n.variant)}`],n.open&&t.iconOpen]}})({}),SL=b.forwardRef(function(t,n){const{className:r,disabled:o,error:i,IconComponent:a,inputRef:s,variant:l="standard",...c}=t,u={...t,disabled:o,variant:l,error:i},d=yL(u);return g.jsxs(b.Fragment,{children:[g.jsx(bL,{ownerState:u,className:ve(d.select,r),disabled:o,ref:s||n,...c}),t.multiple?null:g.jsx(xL,{as:a,ownerState:u,className:d.icon})]})});var qb;const wL=J("fieldset",{shouldForwardProp:wn})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),CL=J("legend",{shouldForwardProp:wn})($e(({theme:e})=>({float:"unset",width:"auto",overflow:"hidden",variants:[{props:({ownerState:t})=>!t.withLabel,style:{padding:0,lineHeight:"11px",transition:e.transitions.create("width",{duration:150,easing:e.transitions.easing.easeOut})}},{props:({ownerState:t})=>t.withLabel,style:{display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:e.transitions.create("max-width",{duration:50,easing:e.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}}},{props:({ownerState:t})=>t.withLabel&&t.notched,style:{maxWidth:"100%",transition:e.transitions.create("max-width",{duration:100,easing:e.transitions.easing.easeOut,delay:50})}}]})));function _L(e){const{children:t,classes:n,className:r,label:o,notched:i,...a}=e,s=o!=null&&o!=="",l={...e,notched:i,withLabel:s};return g.jsx(wL,{"aria-hidden":!0,className:r,ownerState:l,...a,children:g.jsx(CL,{ownerState:l,children:s?g.jsx("span",{children:o}):qb||(qb=g.jsx("span",{className:"notranslate",children:"​"}))})})}const RL=e=>{const{classes:t}=e,r=Ne({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},cI,t);return{...t,...r}},TL=J(gp,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:fp})($e(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{position:"relative",borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${lr.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${lr.notchedOutline}`]:{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:t}},[`&.${lr.focused} .${lr.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(e.palette).filter(Ft()).map(([n])=>({props:{color:n},style:{[`&.${lr.focused} .${lr.notchedOutline}`]:{borderColor:(e.vars||e).palette[n].main}}})),{props:{},style:{[`&.${lr.error} .${lr.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${lr.disabled} .${lr.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}}},{props:({ownerState:n})=>n.startAdornment,style:{paddingLeft:14}},{props:({ownerState:n})=>n.endAdornment,style:{paddingRight:14}},{props:({ownerState:n})=>n.multiline,style:{padding:"16.5px 14px"}},{props:({ownerState:n,size:r})=>n.multiline&&r==="small",style:{padding:"8.5px 14px"}}]}})),PL=J(_L,{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:(e,t)=>t.notchedOutline})($e(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:t}})),kL=J(hp,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:pp})($e(({theme:e})=>({padding:"16.5px 14px",...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},...e.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{padding:"8.5px 14px"}},{props:({ownerState:t})=>t.multiline,style:{padding:0}},{props:({ownerState:t})=>t.startAdornment,style:{paddingLeft:0}},{props:({ownerState:t})=>t.endAdornment,style:{paddingRight:0}}]}))),qd=b.forwardRef(function(t,n){var r;const o=De({props:t,name:"MuiOutlinedInput"}),{components:i={},fullWidth:a=!1,inputComponent:s="input",label:l,multiline:c=!1,notched:u,slots:d={},type:f="text",...p}=o,h=RL(o),y=Mo(),w=da({props:o,muiFormControl:y,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),v={...o,color:w.color||"primary",disabled:w.disabled,error:w.error,focused:w.focused,formControl:y,fullWidth:a,hiddenLabel:w.hiddenLabel,multiline:c,size:w.size,type:f},S=d.root??i.Root??TL,m=d.input??i.Input??kL;return g.jsx(mp,{slots:{root:S,input:m},renderSuffix:C=>g.jsx(PL,{ownerState:v,className:h.notchedOutline,label:l!=null&&l!==""&&w.required?r||(r=g.jsxs(b.Fragment,{children:[l," ","*"]})):l,notched:typeof u<"u"?u:!!(C.startAdornment||C.filled||C.focused)}),fullWidth:a,inputComponent:s,multiline:c,ref:n,type:f,...p,classes:{...h,notchedOutline:null}})});qd&&(qd.muiName="Input");const $L=un(g.jsx("path",{d:"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPage"),EL=un(g.jsx("path",{d:"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPage"),ML=un(g.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"RadioButtonUnchecked"),IL=un(g.jsx("path",{d:"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"}),"RadioButtonChecked"),OL=J("span",{shouldForwardProp:wn})({position:"relative",display:"flex"}),LL=J(ML)({transform:"scale(1)"}),AL=J(IL)($e(({theme:e})=>({left:0,position:"absolute",transform:"scale(0)",transition:e.transitions.create("transform",{easing:e.transitions.easing.easeIn,duration:e.transitions.duration.shortest}),variants:[{props:{checked:!0},style:{transform:"scale(1)",transition:e.transitions.create("transform",{easing:e.transitions.easing.easeOut,duration:e.transitions.duration.shortest})}}]})));function D_(e){const{checked:t=!1,classes:n={},fontSize:r}=e,o={...e,checked:t};return g.jsxs(OL,{className:n.root,ownerState:o,children:[g.jsx(LL,{fontSize:r,className:n.background,ownerState:o}),g.jsx(AL,{fontSize:r,className:n.dot,ownerState:o})]})}const NL=b.createContext(void 0);function DL(){return b.useContext(NL)}function jL(e){return Oe("MuiRadio",e)}const Kb=Ee("MuiRadio",["root","checked","disabled","colorPrimary","colorSecondary","sizeSmall"]),FL=e=>{const{classes:t,color:n,size:r}=e,o={root:["root",`color${ae(n)}`,r!=="medium"&&`size${ae(r)}`]};return{...t,...Ne(o,jL,t)}},BL=J($1,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiRadio",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.size!=="medium"&&t[`size${ae(n.size)}`],t[`color${ae(n.color)}`]]}})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,[`&.${Kb.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{color:"default",disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t,disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[t].main,e.palette.action.hoverOpacity)}}})),...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t,disabled:!1},style:{[`&.${Kb.checked}`]:{color:(e.vars||e).palette[t].main}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]})));function zL(e,t){return typeof t=="object"&&t!==null?e===t:String(e)===String(t)}const Zb=g.jsx(D_,{checked:!0}),Qb=g.jsx(D_,{}),HL=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiRadio"}),{checked:o,checkedIcon:i=Zb,color:a="primary",icon:s=Qb,name:l,onChange:c,size:u="medium",className:d,disabled:f,disableRipple:p=!1,...h}=r,y=Mo();let w=f;y&&typeof w>"u"&&(w=y.disabled),w??(w=!1);const v={...r,disabled:w,disableRipple:p,color:a,size:u},S=FL(v),m=DL();let C=o;const _=gm(c,m&&m.onChange);let R=l;return m&&(typeof C>"u"&&(C=zL(m.value,r.value)),typeof R>"u"&&(R=m.name)),g.jsx(BL,{type:"radio",icon:b.cloneElement(s,{fontSize:Qb.props.fontSize??u}),checkedIcon:b.cloneElement(i,{fontSize:Zb.props.fontSize??u}),disabled:w,ownerState:v,classes:S,name:R,checked:C,onChange:_,ref:n,className:ve(S.root,d),...h})});function VL(e){return Oe("MuiSelect",e)}const tl=Ee("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]);var Yb;const WL=J(A_,{name:"MuiSelect",slot:"Select",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`&.${tl.select}`]:t.select},{[`&.${tl.select}`]:t[n.variant]},{[`&.${tl.error}`]:t.error},{[`&.${tl.multiple}`]:t.multiple}]}})({[`&.${tl.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),UL=J(N_,{name:"MuiSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${ae(n.variant)}`],n.open&&t.iconOpen]}})({}),GL=J("input",{shouldForwardProp:e=>l_(e)&&e!=="classes",name:"MuiSelect",slot:"NativeInput",overridesResolver:(e,t)=>t.nativeInput})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function Xb(e,t){return typeof t=="object"&&t!==null?e===t:String(e)===String(t)}function qL(e){return e==null||typeof e=="string"&&!e.trim()}const KL=e=>{const{classes:t,variant:n,disabled:r,multiple:o,open:i,error:a}=e,s={select:["select",n,r&&"disabled",o&&"multiple",a&&"error"],icon:["icon",`icon${ae(n)}`,i&&"iconOpen",r&&"disabled"],nativeInput:["nativeInput"]};return Ne(s,VL,t)},ZL=b.forwardRef(function(t,n){var Le;const{"aria-describedby":r,"aria-label":o,autoFocus:i,autoWidth:a,children:s,className:l,defaultOpen:c,defaultValue:u,disabled:d,displayEmpty:f,error:p=!1,IconComponent:h,inputRef:y,labelId:w,MenuProps:v={},multiple:S,name:m,onBlur:C,onChange:_,onClose:R,onFocus:k,onOpen:T,open:P,readOnly:x,renderValue:$,SelectDisplayProps:I={},tabIndex:O,type:D,value:M,variant:A="standard",...N}=t,[E,L]=Hi({controlled:M,default:u,name:"Select"}),[B,H]=Hi({controlled:P,default:c,name:"Select"}),z=b.useRef(null),j=b.useRef(null),[F,W]=b.useState(null),{current:V}=b.useRef(P!=null),[ee,re]=b.useState(),U=Rt(n,y),K=b.useCallback(fe=>{j.current=fe,fe&&W(fe)},[]),se=F==null?void 0:F.parentNode;b.useImperativeHandle(U,()=>({focus:()=>{j.current.focus()},node:z.current,value:E}),[E]),b.useEffect(()=>{c&&B&&F&&!V&&(re(a?null:se.clientWidth),j.current.focus())},[F,a]),b.useEffect(()=>{i&&j.current.focus()},[i]),b.useEffect(()=>{if(!w)return;const fe=ln(j.current).getElementById(w);if(fe){const oe=()=>{getSelection().isCollapsed&&j.current.focus()};return fe.addEventListener("click",oe),()=>{fe.removeEventListener("click",oe)}}},[w]);const q=(fe,oe)=>{fe?T&&T(oe):R&&R(oe),V||(re(a?null:se.clientWidth),H(fe))},ce=fe=>{fe.button===0&&(fe.preventDefault(),j.current.focus(),q(!0,fe))},ue=fe=>{q(!1,fe)},ie=b.Children.toArray(s),te=fe=>{const oe=ie.find(me=>me.props.value===fe.target.value);oe!==void 0&&(L(oe.props.value),_&&_(fe,oe))},de=fe=>oe=>{let me;if(oe.currentTarget.hasAttribute("tabindex")){if(S){me=Array.isArray(E)?E.slice():[];const je=E.indexOf(fe.props.value);je===-1?me.push(fe.props.value):me.splice(je,1)}else me=fe.props.value;if(fe.props.onClick&&fe.props.onClick(oe),E!==me&&(L(me),_)){const je=oe.nativeEvent||oe,Ve=new je.constructor(je.type,je);Object.defineProperty(Ve,"target",{writable:!0,value:{value:me,name:m}}),_(Ve,fe)}S||q(!1,oe)}},Q=fe=>{x||[" ","ArrowUp","ArrowDown","Enter"].includes(fe.key)&&(fe.preventDefault(),q(!0,fe))},be=F!==null&&B,Te=fe=>{!be&&C&&(Object.defineProperty(fe,"target",{writable:!0,value:{value:E,name:m}}),C(fe))};delete N["aria-invalid"];let we,ge;const le=[];let Se=!1;(Wd({value:E})||f)&&($?we=$(E):Se=!0);const ye=ie.map(fe=>{if(!b.isValidElement(fe))return null;let oe;if(S){if(!Array.isArray(E))throw new Error(Xi(2));oe=E.some(me=>Xb(me,fe.props.value)),oe&&Se&&le.push(fe.props.children)}else oe=Xb(E,fe.props.value),oe&&Se&&(ge=fe.props.children);return b.cloneElement(fe,{"aria-selected":oe?"true":"false",onClick:de(fe),onKeyUp:me=>{me.key===" "&&me.preventDefault(),fe.props.onKeyUp&&fe.props.onKeyUp(me)},role:"option",selected:oe,value:void 0,"data-value":fe.props.value})});Se&&(S?le.length===0?we=null:we=le.reduce((fe,oe,me)=>(fe.push(oe),me{const{classes:t}=e;return t},I1={name:"MuiSelect",overridesResolver:(e,t)=>t.root,shouldForwardProp:e=>wn(e)&&e!=="variant",slot:"Root"},YL=J(Gd,I1)(""),XL=J(qd,I1)(""),JL=J(Ud,I1)(""),vp=b.forwardRef(function(t,n){const r=De({name:"MuiSelect",props:t}),{autoWidth:o=!1,children:i,classes:a={},className:s,defaultOpen:l=!1,displayEmpty:c=!1,IconComponent:u=$_,id:d,input:f,inputProps:p,label:h,labelId:y,MenuProps:w,multiple:v=!1,native:S=!1,onClose:m,onOpen:C,open:_,renderValue:R,SelectDisplayProps:k,variant:T="outlined",...P}=r,x=S?SL:ZL,$=Mo(),I=da({props:r,muiFormControl:$,states:["variant","error"]}),O=I.variant||T,D={...r,variant:O,classes:a},M=QL(D),{root:A,...N}=M,E=f||{standard:g.jsx(YL,{ownerState:D}),outlined:g.jsx(XL,{label:h,ownerState:D}),filled:g.jsx(JL,{ownerState:D})}[O],L=Rt(n,ua(E));return g.jsx(b.Fragment,{children:b.cloneElement(E,{inputComponent:x,inputProps:{children:i,error:I.error,IconComponent:u,variant:O,type:void 0,multiple:v,...S?{id:d}:{autoWidth:o,defaultOpen:l,displayEmpty:c,labelId:y,MenuProps:w,onClose:m,onOpen:C,open:_,renderValue:R,SelectDisplayProps:{id:d,...k}},...p,classes:p?io(N,p.classes):N,...f?f.props.inputProps:{}},...(v&&S||c)&&O==="outlined"?{notched:!0}:{},ref:L,className:ve(E.props.className,s,M.root),...!f&&{variant:O},...P})})});vp.muiName="Select";function e7(e){return Oe("MuiTooltip",e)}const Mt=Ee("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]);function t7(e){return Math.round(e*1e5)/1e5}const n7=e=>{const{classes:t,disableInteractive:n,arrow:r,touch:o,placement:i}=e,a={popper:["popper",!n&&"popperInteractive",r&&"popperArrow"],tooltip:["tooltip",r&&"tooltipArrow",o&&"touch",`tooltipPlacement${ae(i.split("-")[0])}`],arrow:["arrow"]};return Ne(a,e7,t)},r7=J(kc,{name:"MuiTooltip",slot:"Popper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.popper,!n.disableInteractive&&t.popperInteractive,n.arrow&&t.popperArrow,!n.open&&t.popperClose]}})($e(({theme:e})=>({zIndex:(e.vars||e).zIndex.tooltip,pointerEvents:"none",variants:[{props:({ownerState:t})=>!t.disableInteractive,style:{pointerEvents:"auto"}},{props:({open:t})=>!t,style:{pointerEvents:"none"}},{props:({ownerState:t})=>t.arrow,style:{[`&[data-popper-placement*="bottom"] .${Mt.arrow}`]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},[`&[data-popper-placement*="top"] .${Mt.arrow}`]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},[`&[data-popper-placement*="right"] .${Mt.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}},[`&[data-popper-placement*="left"] .${Mt.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}}}},{props:({ownerState:t})=>t.arrow&&!t.isRtl,style:{[`&[data-popper-placement*="right"] .${Mt.arrow}`]:{left:0,marginLeft:"-0.71em"}}},{props:({ownerState:t})=>t.arrow&&!!t.isRtl,style:{[`&[data-popper-placement*="right"] .${Mt.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:t})=>t.arrow&&!t.isRtl,style:{[`&[data-popper-placement*="left"] .${Mt.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:t})=>t.arrow&&!!t.isRtl,style:{[`&[data-popper-placement*="left"] .${Mt.arrow}`]:{left:0,marginLeft:"-0.71em"}}}]}))),o7=J("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.tooltip,n.touch&&t.touch,n.arrow&&t.tooltipArrow,t[`tooltipPlacement${ae(n.placement.split("-")[0])}`]]}})($e(({theme:e})=>({backgroundColor:e.vars?e.vars.palette.Tooltip.bg:Be(e.palette.grey[700],.92),borderRadius:(e.vars||e).shape.borderRadius,color:(e.vars||e).palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:e.typography.fontWeightMedium,[`.${Mt.popper}[data-popper-placement*="left"] &`]:{transformOrigin:"right center"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{transformOrigin:"left center"},[`.${Mt.popper}[data-popper-placement*="top"] &`]:{transformOrigin:"center bottom",marginBottom:"14px"},[`.${Mt.popper}[data-popper-placement*="bottom"] &`]:{transformOrigin:"center top",marginTop:"14px"},variants:[{props:({ownerState:t})=>t.arrow,style:{position:"relative",margin:0}},{props:({ownerState:t})=>t.touch,style:{padding:"8px 16px",fontSize:e.typography.pxToRem(14),lineHeight:`${t7(16/14)}em`,fontWeight:e.typography.fontWeightRegular}},{props:({ownerState:t})=>!t.isRtl,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginRight:"14px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginLeft:"14px"}}},{props:({ownerState:t})=>!t.isRtl&&t.touch,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginRight:"24px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginLeft:"24px"}}},{props:({ownerState:t})=>!!t.isRtl,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginLeft:"14px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginRight:"14px"}}},{props:({ownerState:t})=>!!t.isRtl&&t.touch,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginLeft:"24px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginRight:"24px"}}},{props:({ownerState:t})=>t.touch,style:{[`.${Mt.popper}[data-popper-placement*="top"] &`]:{marginBottom:"24px"}}},{props:({ownerState:t})=>t.touch,style:{[`.${Mt.popper}[data-popper-placement*="bottom"] &`]:{marginTop:"24px"}}}]}))),i7=J("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:(e,t)=>t.arrow})($e(({theme:e})=>({overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:e.vars?e.vars.palette.Tooltip.bg:Be(e.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}})));let gu=!1;const Jb=new up;let nl={x:0,y:0};function hu(e,t){return(n,...r)=>{t&&t(n,...r),e(n,...r)}}const a7=b.forwardRef(function(t,n){var Vn,Oo,_i;const r=De({props:t,name:"MuiTooltip"}),{arrow:o=!1,children:i,classes:a,components:s={},componentsProps:l={},describeChild:c=!1,disableFocusListener:u=!1,disableHoverListener:d=!1,disableInteractive:f=!1,disableTouchListener:p=!1,enterDelay:h=100,enterNextDelay:y=0,enterTouchDelay:w=700,followCursor:v=!1,id:S,leaveDelay:m=0,leaveTouchDelay:C=1500,onClose:_,onOpen:R,open:k,placement:T="bottom",PopperComponent:P,PopperProps:x={},slotProps:$={},slots:I={},title:O,TransitionComponent:D=uc,TransitionProps:M,...A}=r,N=b.isValidElement(i)?i:g.jsx("span",{children:i}),E=zt(),L=Es(),[B,H]=b.useState(),[z,j]=b.useState(null),F=b.useRef(!1),W=f||v,V=Ni(),ee=Ni(),re=Ni(),U=Ni(),[K,se]=Hi({controlled:k,default:!1,name:"Tooltip",state:"open"});let q=K;const ce=ds(S),ue=b.useRef(),ie=bn(()=>{ue.current!==void 0&&(document.body.style.WebkitUserSelect=ue.current,ue.current=void 0),U.clear()});b.useEffect(()=>ie,[ie]);const te=Fe=>{Jb.clear(),gu=!0,se(!0),R&&!q&&R(Fe)},de=bn(Fe=>{Jb.start(800+m,()=>{gu=!1}),se(!1),_&&q&&_(Fe),V.start(E.transitions.duration.shortest,()=>{F.current=!1})}),Q=Fe=>{F.current&&Fe.type!=="touchstart"||(B&&B.removeAttribute("title"),ee.clear(),re.clear(),h||gu&&y?ee.start(gu?y:h,()=>{te(Fe)}):te(Fe))},be=Fe=>{ee.clear(),re.start(m,()=>{de(Fe)})},[,Te]=b.useState(!1),we=Fe=>{Fd(Fe.target)||(Te(!1),be(Fe))},ge=Fe=>{B||H(Fe.currentTarget),Fd(Fe.target)&&(Te(!0),Q(Fe))},le=Fe=>{F.current=!0;const _n=N.props;_n.onTouchStart&&_n.onTouchStart(Fe)},Se=Fe=>{le(Fe),re.clear(),V.clear(),ie(),ue.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",U.start(w,()=>{document.body.style.WebkitUserSelect=ue.current,Q(Fe)})},ye=Fe=>{N.props.onTouchEnd&&N.props.onTouchEnd(Fe),ie(),re.start(C,()=>{de(Fe)})};b.useEffect(()=>{if(!q)return;function Fe(_n){_n.key==="Escape"&&de(_n)}return document.addEventListener("keydown",Fe),()=>{document.removeEventListener("keydown",Fe)}},[de,q]);const Ge=Rt(ua(N),H,n);!O&&O!==0&&(q=!1);const Pe=b.useRef(),Re=Fe=>{const _n=N.props;_n.onMouseMove&&_n.onMouseMove(Fe),nl={x:Fe.clientX,y:Fe.clientY},Pe.current&&Pe.current.update()},ke={},pe=typeof O=="string";c?(ke.title=!q&&pe&&!d?O:null,ke["aria-describedby"]=q?ce:null):(ke["aria-label"]=pe?O:null,ke["aria-labelledby"]=q&&!pe?ce:null);const ne={...ke,...A,...N.props,className:ve(A.className,N.props.className),onTouchStart:le,ref:Ge,...v?{onMouseMove:Re}:{}},xe={};p||(ne.onTouchStart=Se,ne.onTouchEnd=ye),d||(ne.onMouseOver=hu(Q,ne.onMouseOver),ne.onMouseLeave=hu(be,ne.onMouseLeave),W||(xe.onMouseOver=Q,xe.onMouseLeave=be)),u||(ne.onFocus=hu(ge,ne.onFocus),ne.onBlur=hu(we,ne.onBlur),W||(xe.onFocus=ge,xe.onBlur=we));const Le=b.useMemo(()=>{var _n;let Fe=[{name:"arrow",enabled:!!z,options:{element:z,padding:4}}];return(_n=x.popperOptions)!=null&&_n.modifiers&&(Fe=Fe.concat(x.popperOptions.modifiers)),{...x.popperOptions,modifiers:Fe}},[z,x]),fe={...r,isRtl:L,arrow:o,disableInteractive:W,placement:T,PopperComponentProp:P,touch:F.current},oe=n7(fe),me=I.popper??s.Popper??r7,je=I.transition??s.Transition??D??uc,Ve=I.tooltip??s.Tooltip??o7,Ye=I.arrow??s.Arrow??i7,Tt=Ha(me,{...x,...$.popper??l.popper,className:ve(oe.popper,x==null?void 0:x.className,(Vn=$.popper??l.popper)==null?void 0:Vn.className)},fe),Zt=Ha(je,{...M,...$.transition??l.transition},fe),Mn=Ha(Ve,{...$.tooltip??l.tooltip,className:ve(oe.tooltip,(Oo=$.tooltip??l.tooltip)==null?void 0:Oo.className)},fe),ir=Ha(Ye,{...$.arrow??l.arrow,className:ve(oe.arrow,(_i=$.arrow??l.arrow)==null?void 0:_i.className)},fe);return g.jsxs(b.Fragment,{children:[b.cloneElement(N,ne),g.jsx(me,{as:P??kc,placement:T,anchorEl:v?{getBoundingClientRect:()=>({top:nl.y,left:nl.x,right:nl.x,bottom:nl.y,width:0,height:0})}:B,popperRef:Pe,open:B?q:!1,id:ce,transition:!0,...xe,...Tt,popperOptions:Le,children:({TransitionProps:Fe})=>g.jsx(je,{timeout:E.transitions.duration.shorter,...Fe,...Zt,children:g.jsxs(Ve,{...Mn,children:[O,o?g.jsx(Ye,{...ir,ref:j}):null]})})})]})}),s7=FE({createStyledComponent:J("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,t)=>t.root}),useThemeProps:e=>De({props:e,name:"MuiStack"})});function l7(e){return Oe("MuiSwitch",e)}const Rn=Ee("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),c7=e=>{const{classes:t,edge:n,size:r,color:o,checked:i,disabled:a}=e,s={root:["root",n&&`edge${ae(n)}`,`size${ae(r)}`],switchBase:["switchBase",`color${ae(o)}`,i&&"checked",a&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},l=Ne(s,l7,t);return{...t,...l}},u7=J("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.edge&&t[`edge${ae(n.edge)}`],t[`size${ae(n.size)}`]]}})({display:"inline-flex",width:34+12*2,height:14+12*2,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"},variants:[{props:{edge:"start"},style:{marginLeft:-8}},{props:{edge:"end"},style:{marginRight:-8}},{props:{size:"small"},style:{width:40,height:24,padding:7,[`& .${Rn.thumb}`]:{width:16,height:16},[`& .${Rn.switchBase}`]:{padding:4,[`&.${Rn.checked}`]:{transform:"translateX(16px)"}}}}]}),d7=J($1,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.switchBase,{[`& .${Rn.input}`]:t.input},n.color!=="default"&&t[`color${ae(n.color)}`]]}})($e(({theme:e})=>({position:"absolute",top:0,left:0,zIndex:1,color:e.vars?e.vars.palette.Switch.defaultColor:`${e.palette.mode==="light"?e.palette.common.white:e.palette.grey[300]}`,transition:e.transitions.create(["left","transform"],{duration:e.transitions.duration.shortest}),[`&.${Rn.checked}`]:{transform:"translateX(20px)"},[`&.${Rn.disabled}`]:{color:e.vars?e.vars.palette.Switch.defaultDisabledColor:`${e.palette.mode==="light"?e.palette.grey[100]:e.palette.grey[600]}`},[`&.${Rn.checked} + .${Rn.track}`]:{opacity:.5},[`&.${Rn.disabled} + .${Rn.track}`]:{opacity:e.vars?e.vars.opacity.switchTrackDisabled:`${e.palette.mode==="light"?.12:.2}`},[`& .${Rn.input}`]:{left:"-100%",width:"300%"}})),$e(({theme:e})=>({"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[...Object.entries(e.palette).filter(Ft(["light"])).map(([t])=>({props:{color:t},style:{[`&.${Rn.checked}`]:{color:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[t].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Rn.disabled}`]:{color:e.vars?e.vars.palette.Switch[`${t}DisabledColor`]:`${e.palette.mode==="light"?ta(e.palette[t].main,.62):ea(e.palette[t].main,.55)}`}},[`&.${Rn.checked} + .${Rn.track}`]:{backgroundColor:(e.vars||e).palette[t].main}}}))]}))),f7=J("span",{name:"MuiSwitch",slot:"Track",overridesResolver:(e,t)=>t.track})($e(({theme:e})=>({height:"100%",width:"100%",borderRadius:14/2,zIndex:-1,transition:e.transitions.create(["opacity","background-color"],{duration:e.transitions.duration.shortest}),backgroundColor:e.vars?e.vars.palette.common.onBackground:`${e.palette.mode==="light"?e.palette.common.black:e.palette.common.white}`,opacity:e.vars?e.vars.opacity.switchTrack:`${e.palette.mode==="light"?.38:.3}`}))),p7=J("span",{name:"MuiSwitch",slot:"Thumb",overridesResolver:(e,t)=>t.thumb})($e(({theme:e})=>({boxShadow:(e.vars||e).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"}))),g7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiSwitch"}),{className:o,color:i="primary",edge:a=!1,size:s="medium",sx:l,...c}=r,u={...r,color:i,edge:a,size:s},d=c7(u),f=g.jsx(p7,{className:d.thumb,ownerState:u});return g.jsxs(u7,{className:ve(d.root,o),sx:l,ownerState:u,children:[g.jsx(d7,{type:"checkbox",icon:f,checkedIcon:f,ref:n,ownerState:u,...c,classes:{...d,root:d.switchBase}}),g.jsx(f7,{className:d.track,ownerState:u})]})});function h7(e){return Oe("MuiTab",e)}const ar=Ee("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper","icon"]),m7=e=>{const{classes:t,textColor:n,fullWidth:r,wrapped:o,icon:i,label:a,selected:s,disabled:l}=e,c={root:["root",i&&a&&"labelIcon",`textColor${ae(n)}`,r&&"fullWidth",o&&"wrapped",s&&"selected",l&&"disabled"],icon:["iconWrapper","icon"]};return Ne(c,h7,t)},v7=J(To,{name:"MuiTab",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.label&&n.icon&&t.labelIcon,t[`textColor${ae(n.textColor)}`],n.fullWidth&&t.fullWidth,n.wrapped&&t.wrapped,{[`& .${ar.iconWrapper}`]:t.iconWrapper},{[`& .${ar.icon}`]:t.icon}]}})($e(({theme:e})=>({...e.typography.button,maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center",lineHeight:1.25,variants:[{props:({ownerState:t})=>t.label&&(t.iconPosition==="top"||t.iconPosition==="bottom"),style:{flexDirection:"column"}},{props:({ownerState:t})=>t.label&&t.iconPosition!=="top"&&t.iconPosition!=="bottom",style:{flexDirection:"row"}},{props:({ownerState:t})=>t.icon&&t.label,style:{minHeight:72,paddingTop:9,paddingBottom:9}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="top",style:{[`& > .${ar.icon}`]:{marginBottom:6}}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="bottom",style:{[`& > .${ar.icon}`]:{marginTop:6}}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="start",style:{[`& > .${ar.icon}`]:{marginRight:e.spacing(1)}}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="end",style:{[`& > .${ar.icon}`]:{marginLeft:e.spacing(1)}}},{props:{textColor:"inherit"},style:{color:"inherit",opacity:.6,[`&.${ar.selected}`]:{opacity:1},[`&.${ar.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity}}},{props:{textColor:"primary"},style:{color:(e.vars||e).palette.text.secondary,[`&.${ar.selected}`]:{color:(e.vars||e).palette.primary.main},[`&.${ar.disabled}`]:{color:(e.vars||e).palette.text.disabled}}},{props:{textColor:"secondary"},style:{color:(e.vars||e).palette.text.secondary,[`&.${ar.selected}`]:{color:(e.vars||e).palette.secondary.main},[`&.${ar.disabled}`]:{color:(e.vars||e).palette.text.disabled}}},{props:({ownerState:t})=>t.fullWidth,style:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"}},{props:({ownerState:t})=>t.wrapped,style:{fontSize:e.typography.pxToRem(12)}}]}))),y7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTab"}),{className:o,disabled:i=!1,disableFocusRipple:a=!1,fullWidth:s,icon:l,iconPosition:c="top",indicator:u,label:d,onChange:f,onClick:p,onFocus:h,selected:y,selectionFollowsFocus:w,textColor:v="inherit",value:S,wrapped:m=!1,...C}=r,_={...r,disabled:i,disableFocusRipple:a,selected:y,icon:!!l,iconPosition:c,label:!!d,fullWidth:s,textColor:v,wrapped:m},R=m7(_),k=l&&d&&b.isValidElement(l)?b.cloneElement(l,{className:ve(R.icon,l.props.className)}):l,T=x=>{!y&&f&&f(x,S),p&&p(x)},P=x=>{w&&!y&&f&&f(x,S),h&&h(x)};return g.jsxs(v7,{focusRipple:!a,className:ve(R.root,o),ref:n,role:"tab","aria-selected":y,disabled:i,onClick:T,onFocus:P,ownerState:_,tabIndex:y?0:-1,...C,children:[c==="top"||c==="start"?g.jsxs(b.Fragment,{children:[k,d]}):g.jsxs(b.Fragment,{children:[d,k]}),u]})}),j_=b.createContext();function b7(e){return Oe("MuiTable",e)}Ee("MuiTable",["root","stickyHeader"]);const x7=e=>{const{classes:t,stickyHeader:n}=e;return Ne({root:["root",n&&"stickyHeader"]},b7,t)},S7=J("table",{name:"MuiTable",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.stickyHeader&&t.stickyHeader]}})($e(({theme:e})=>({display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":{...e.typography.body2,padding:e.spacing(2),color:(e.vars||e).palette.text.secondary,textAlign:"left",captionSide:"bottom"},variants:[{props:({ownerState:t})=>t.stickyHeader,style:{borderCollapse:"separate"}}]}))),ex="table",w7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTable"}),{className:o,component:i=ex,padding:a="normal",size:s="medium",stickyHeader:l=!1,...c}=r,u={...r,component:i,padding:a,size:s,stickyHeader:l},d=x7(u),f=b.useMemo(()=>({padding:a,size:s,stickyHeader:l}),[a,s,l]);return g.jsx(j_.Provider,{value:f,children:g.jsx(S7,{as:i,role:i===ex?null:"table",ref:n,className:ve(d.root,o),ownerState:u,...c})})}),Ec=b.createContext();function C7(e){return Oe("MuiTableBody",e)}Ee("MuiTableBody",["root"]);const _7=e=>{const{classes:t}=e;return Ne({root:["root"]},C7,t)},R7=J("tbody",{name:"MuiTableBody",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"table-row-group"}),T7={variant:"body"},tx="tbody",P7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableBody"}),{className:o,component:i=tx,...a}=r,s={...r,component:i},l=_7(s);return g.jsx(Ec.Provider,{value:T7,children:g.jsx(R7,{className:ve(l.root,o),as:i,ref:n,role:i===tx?null:"rowgroup",ownerState:s,...a})})});function k7(e){return Oe("MuiTableCell",e)}const $7=Ee("MuiTableCell",["root","head","body","footer","sizeSmall","sizeMedium","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","alignJustify","stickyHeader"]),E7=e=>{const{classes:t,variant:n,align:r,padding:o,size:i,stickyHeader:a}=e,s={root:["root",n,a&&"stickyHeader",r!=="inherit"&&`align${ae(r)}`,o!=="normal"&&`padding${ae(o)}`,`size${ae(i)}`]};return Ne(s,k7,t)},M7=J("td",{name:"MuiTableCell",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`size${ae(n.size)}`],n.padding!=="normal"&&t[`padding${ae(n.padding)}`],n.align!=="inherit"&&t[`align${ae(n.align)}`],n.stickyHeader&&t.stickyHeader]}})($e(({theme:e})=>({...e.typography.body2,display:"table-cell",verticalAlign:"inherit",borderBottom:e.vars?`1px solid ${e.vars.palette.TableCell.border}`:`1px solid + ${e.palette.mode==="light"?ta(Be(e.palette.divider,1),.88):ea(Be(e.palette.divider,1),.68)}`,textAlign:"left",padding:16,variants:[{props:{variant:"head"},style:{color:(e.vars||e).palette.text.primary,lineHeight:e.typography.pxToRem(24),fontWeight:e.typography.fontWeightMedium}},{props:{variant:"body"},style:{color:(e.vars||e).palette.text.primary}},{props:{variant:"footer"},style:{color:(e.vars||e).palette.text.secondary,lineHeight:e.typography.pxToRem(21),fontSize:e.typography.pxToRem(12)}},{props:{size:"small"},style:{padding:"6px 16px",[`&.${$7.paddingCheckbox}`]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}}},{props:{padding:"checkbox"},style:{width:48,padding:"0 0 0 4px"}},{props:{padding:"none"},style:{padding:0}},{props:{align:"left"},style:{textAlign:"left"}},{props:{align:"center"},style:{textAlign:"center"}},{props:{align:"right"},style:{textAlign:"right",flexDirection:"row-reverse"}},{props:{align:"justify"},style:{textAlign:"justify"}},{props:({ownerState:t})=>t.stickyHeader,style:{position:"sticky",top:0,zIndex:2,backgroundColor:(e.vars||e).palette.background.default}}]}))),ys=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableCell"}),{align:o="inherit",className:i,component:a,padding:s,scope:l,size:c,sortDirection:u,variant:d,...f}=r,p=b.useContext(j_),h=b.useContext(Ec),y=h&&h.variant==="head";let w;a?w=a:w=y?"th":"td";let v=l;w==="td"?v=void 0:!v&&y&&(v="col");const S=d||h&&h.variant,m={...r,align:o,component:w,padding:s||(p&&p.padding?p.padding:"normal"),size:c||(p&&p.size?p.size:"medium"),sortDirection:u,stickyHeader:S==="head"&&p&&p.stickyHeader,variant:S},C=E7(m);let _=null;return u&&(_=u==="asc"?"ascending":"descending"),g.jsx(M7,{as:w,ref:n,className:ve(C.root,i),"aria-sort":_,scope:v,ownerState:m,...f})});function I7(e){return Oe("MuiTableContainer",e)}Ee("MuiTableContainer",["root"]);const O7=e=>{const{classes:t}=e;return Ne({root:["root"]},I7,t)},L7=J("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:(e,t)=>t.root})({width:"100%",overflowX:"auto"}),A7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableContainer"}),{className:o,component:i="div",...a}=r,s={...r,component:i},l=O7(s);return g.jsx(L7,{ref:n,as:i,className:ve(l.root,o),ownerState:s,...a})});function N7(e){return Oe("MuiTableFooter",e)}Ee("MuiTableFooter",["root"]);const D7=e=>{const{classes:t}=e;return Ne({root:["root"]},N7,t)},j7=J("tfoot",{name:"MuiTableFooter",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"table-footer-group"}),F7={variant:"footer"},nx="tfoot",B7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableFooter"}),{className:o,component:i=nx,...a}=r,s={...r,component:i},l=D7(s);return g.jsx(Ec.Provider,{value:F7,children:g.jsx(j7,{as:i,className:ve(l.root,o),ref:n,role:i===nx?null:"rowgroup",ownerState:s,...a})})});function z7(e){return Oe("MuiTableHead",e)}Ee("MuiTableHead",["root"]);const H7=e=>{const{classes:t}=e;return Ne({root:["root"]},z7,t)},V7=J("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"table-header-group"}),W7={variant:"head"},rx="thead",U7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableHead"}),{className:o,component:i=rx,...a}=r,s={...r,component:i},l=H7(s);return g.jsx(Ec.Provider,{value:W7,children:g.jsx(V7,{as:i,className:ve(l.root,o),ref:n,role:i===rx?null:"rowgroup",ownerState:s,...a})})});function G7(e){return Oe("MuiToolbar",e)}Ee("MuiToolbar",["root","gutters","regular","dense"]);const q7=e=>{const{classes:t,disableGutters:n,variant:r}=e;return Ne({root:["root",!n&&"gutters",r]},G7,t)},K7=J("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})($e(({theme:e})=>({position:"relative",display:"flex",alignItems:"center",variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:e.mixins.toolbar}]}))),F_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiToolbar"}),{className:o,component:i="div",disableGutters:a=!1,variant:s="regular",...l}=r,c={...r,component:i,disableGutters:a,variant:s},u=q7(c);return g.jsx(K7,{as:i,className:ve(u.root,o),ref:n,ownerState:c,...l})}),B_=un(g.jsx("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),z_=un(g.jsx("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight"),Z7=b.forwardRef(function(t,n){const{backIconButtonProps:r,count:o,disabled:i=!1,getItemAriaLabel:a,nextIconButtonProps:s,onPageChange:l,page:c,rowsPerPage:u,showFirstButton:d,showLastButton:f,slots:p={},slotProps:h={},...y}=t,w=Es(),v=H=>{l(H,0)},S=H=>{l(H,c-1)},m=H=>{l(H,c+1)},C=H=>{l(H,Math.max(0,Math.ceil(o/u)-1))},_=p.firstButton??hr,R=p.lastButton??hr,k=p.nextButton??hr,T=p.previousButton??hr,P=p.firstButtonIcon??$L,x=p.lastButtonIcon??EL,$=p.nextButtonIcon??z_,I=p.previousButtonIcon??B_,O=w?R:_,D=w?k:T,M=w?T:k,A=w?_:R,N=w?h.lastButton:h.firstButton,E=w?h.nextButton:h.previousButton,L=w?h.previousButton:h.nextButton,B=w?h.firstButton:h.lastButton;return g.jsxs("div",{ref:n,...y,children:[d&&g.jsx(O,{onClick:v,disabled:i||c===0,"aria-label":a("first",c),title:a("first",c),...N,children:w?g.jsx(x,{...h.lastButtonIcon}):g.jsx(P,{...h.firstButtonIcon})}),g.jsx(D,{onClick:S,disabled:i||c===0,color:"inherit","aria-label":a("previous",c),title:a("previous",c),...E??r,children:w?g.jsx($,{...h.nextButtonIcon}):g.jsx(I,{...h.previousButtonIcon})}),g.jsx(M,{onClick:m,disabled:i||(o!==-1?c>=Math.ceil(o/u)-1:!1),color:"inherit","aria-label":a("next",c),title:a("next",c),...L??s,children:w?g.jsx(I,{...h.previousButtonIcon}):g.jsx($,{...h.nextButtonIcon})}),f&&g.jsx(A,{onClick:C,disabled:i||c>=Math.ceil(o/u)-1,"aria-label":a("last",c),title:a("last",c),...B,children:w?g.jsx(P,{...h.firstButtonIcon}):g.jsx(x,{...h.lastButtonIcon})})]})});function Q7(e){return Oe("MuiTablePagination",e)}const Ol=Ee("MuiTablePagination",["root","toolbar","spacer","selectLabel","selectRoot","select","selectIcon","input","menuItem","displayedRows","actions"]);var ox;const Y7=J(ys,{name:"MuiTablePagination",slot:"Root",overridesResolver:(e,t)=>t.root})($e(({theme:e})=>({overflow:"auto",color:(e.vars||e).palette.text.primary,fontSize:e.typography.pxToRem(14),"&:last-child":{padding:0}}))),X7=J(F_,{name:"MuiTablePagination",slot:"Toolbar",overridesResolver:(e,t)=>({[`& .${Ol.actions}`]:t.actions,...t.toolbar})})($e(({theme:e})=>({minHeight:52,paddingRight:2,[`${e.breakpoints.up("xs")} and (orientation: landscape)`]:{minHeight:52},[e.breakpoints.up("sm")]:{minHeight:52,paddingRight:2},[`& .${Ol.actions}`]:{flexShrink:0,marginLeft:20}}))),J7=J("div",{name:"MuiTablePagination",slot:"Spacer",overridesResolver:(e,t)=>t.spacer})({flex:"1 1 100%"}),eA=J("p",{name:"MuiTablePagination",slot:"SelectLabel",overridesResolver:(e,t)=>t.selectLabel})($e(({theme:e})=>({...e.typography.body2,flexShrink:0}))),tA=J(vp,{name:"MuiTablePagination",slot:"Select",overridesResolver:(e,t)=>({[`& .${Ol.selectIcon}`]:t.selectIcon,[`& .${Ol.select}`]:t.select,...t.input,...t.selectRoot})})({color:"inherit",fontSize:"inherit",flexShrink:0,marginRight:32,marginLeft:8,[`& .${Ol.select}`]:{paddingLeft:8,paddingRight:24,textAlign:"right",textAlignLast:"right"}}),nA=J($c,{name:"MuiTablePagination",slot:"MenuItem",overridesResolver:(e,t)=>t.menuItem})({}),rA=J("p",{name:"MuiTablePagination",slot:"DisplayedRows",overridesResolver:(e,t)=>t.displayedRows})($e(({theme:e})=>({...e.typography.body2,flexShrink:0})));function oA({from:e,to:t,count:n}){return`${e}–${t} of ${n!==-1?n:`more than ${t}`}`}function iA(e){return`Go to ${e} page`}const aA=e=>{const{classes:t}=e;return Ne({root:["root"],toolbar:["toolbar"],spacer:["spacer"],selectLabel:["selectLabel"],select:["select"],input:["input"],selectIcon:["selectIcon"],menuItem:["menuItem"],displayedRows:["displayedRows"],actions:["actions"]},Q7,t)},sA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTablePagination"}),{ActionsComponent:o=Z7,backIconButtonProps:i,className:a,colSpan:s,component:l=ys,count:c,disabled:u=!1,getItemAriaLabel:d=iA,labelDisplayedRows:f=oA,labelRowsPerPage:p="Rows per page:",nextIconButtonProps:h,onPageChange:y,onRowsPerPageChange:w,page:v,rowsPerPage:S,rowsPerPageOptions:m=[10,25,50,100],SelectProps:C={},showFirstButton:_=!1,showLastButton:R=!1,slotProps:k={},slots:T={},...P}=r,x=r,$=aA(x),I=(k==null?void 0:k.select)??C,O=I.native?"option":nA;let D;(l===ys||l==="td")&&(D=s||1e3);const M=ds(I.id),A=ds(I.labelId),N=()=>c===-1?(v+1)*S:S===-1?c:Math.min(c,(v+1)*S);return g.jsx(Y7,{colSpan:D,ref:n,as:l,ownerState:x,className:ve($.root,a),...P,children:g.jsxs(X7,{className:$.toolbar,children:[g.jsx(J7,{className:$.spacer}),m.length>1&&g.jsx(eA,{className:$.selectLabel,id:A,children:p}),m.length>1&&g.jsx(tA,{variant:"standard",...!I.variant&&{input:ox||(ox=g.jsx(mp,{}))},value:S,onChange:w,id:M,labelId:A,...I,classes:{...I.classes,root:ve($.input,$.selectRoot,(I.classes||{}).root),select:ve($.select,(I.classes||{}).select),icon:ve($.selectIcon,(I.classes||{}).icon)},disabled:u,children:m.map(E=>b.createElement(O,{...!Vd(O)&&{ownerState:x},className:$.menuItem,key:E.label?E.label:E,value:E.value?E.value:E},E.label?E.label:E))}),g.jsx(rA,{className:$.displayedRows,children:f({from:c===0?0:v*S+1,to:N(),count:c===-1?-1:c,page:v})}),g.jsx(o,{className:$.actions,backIconButtonProps:i,count:c,nextIconButtonProps:h,onPageChange:y,page:v,rowsPerPage:S,showFirstButton:_,showLastButton:R,slotProps:k.actions,slots:T.actions,getItemAriaLabel:d,disabled:u})]})})});function lA(e){return Oe("MuiTableRow",e)}const ix=Ee("MuiTableRow",["root","selected","hover","head","footer"]),cA=e=>{const{classes:t,selected:n,hover:r,head:o,footer:i}=e;return Ne({root:["root",n&&"selected",r&&"hover",o&&"head",i&&"footer"]},lA,t)},uA=J("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.head&&t.head,n.footer&&t.footer]}})($e(({theme:e})=>({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,[`&.${ix.hover}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${ix.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity)}}}))),ax="tr",yp=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableRow"}),{className:o,component:i=ax,hover:a=!1,selected:s=!1,...l}=r,c=b.useContext(Ec),u={...r,component:i,hover:a,selected:s,head:c&&c.variant==="head",footer:c&&c.variant==="footer"},d=cA(u);return g.jsx(uA,{as:i,ref:n,className:ve(d.root,o),role:i===ax?null:"row",ownerState:u,...l})}),dA=un(g.jsx("path",{d:"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownward");function fA(e){return Oe("MuiTableSortLabel",e)}const yg=Ee("MuiTableSortLabel",["root","active","icon","iconDirectionDesc","iconDirectionAsc","directionDesc","directionAsc"]),pA=e=>{const{classes:t,direction:n,active:r}=e,o={root:["root",r&&"active",`direction${ae(n)}`],icon:["icon",`iconDirection${ae(n)}`]};return Ne(o,fA,t)},gA=J(To,{name:"MuiTableSortLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.active&&t.active]}})($e(({theme:e})=>({cursor:"pointer",display:"inline-flex",justifyContent:"flex-start",flexDirection:"inherit",alignItems:"center","&:focus":{color:(e.vars||e).palette.text.secondary},"&:hover":{color:(e.vars||e).palette.text.secondary,[`& .${yg.icon}`]:{opacity:.5}},[`&.${yg.active}`]:{color:(e.vars||e).palette.text.primary,[`& .${yg.icon}`]:{opacity:1,color:(e.vars||e).palette.text.secondary}}}))),hA=J("span",{name:"MuiTableSortLabel",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,t[`iconDirection${ae(n.direction)}`]]}})($e(({theme:e})=>({fontSize:18,marginRight:4,marginLeft:4,opacity:0,transition:e.transitions.create(["opacity","transform"],{duration:e.transitions.duration.shorter}),userSelect:"none",variants:[{props:{direction:"desc"},style:{transform:"rotate(0deg)"}},{props:{direction:"asc"},style:{transform:"rotate(180deg)"}}]}))),mA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableSortLabel"}),{active:o=!1,children:i,className:a,direction:s="asc",hideSortIcon:l=!1,IconComponent:c=dA,...u}=r,d={...r,active:o,direction:s,hideSortIcon:l,IconComponent:c},f=pA(d);return g.jsxs(gA,{className:ve(f.root,a),component:"span",disableRipple:!0,ownerState:d,ref:n,...u,children:[i,l&&!o?null:g.jsx(hA,{as:c,className:ve(f.icon),ownerState:d})]})});function vA(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}function yA(e,t,n,r={},o=()=>{}){const{ease:i=vA,duration:a=300}=r;let s=null;const l=t[e];let c=!1;const u=()=>{c=!0},d=f=>{if(c){o(new Error("Animation cancelled"));return}s===null&&(s=f);const p=Math.min(1,(f-s)/a);if(t[e]=i(p)*(n-l)+l,p>=1){requestAnimationFrame(()=>{o(null)});return}requestAnimationFrame(d)};return l===n?(o(new Error("Element already at target position")),u):(requestAnimationFrame(d),u)}const bA={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function xA(e){const{onChange:t,...n}=e,r=b.useRef(),o=b.useRef(null),i=()=>{r.current=o.current.offsetHeight-o.current.clientHeight};return Hr(()=>{const a=cp(()=>{const l=r.current;i(),l!==r.current&&t(r.current)}),s=zr(o.current);return s.addEventListener("resize",a),()=>{a.clear(),s.removeEventListener("resize",a)}},[t]),b.useEffect(()=>{i(),t(r.current)},[t]),g.jsx("div",{style:bA,ref:o,...n})}function SA(e){return Oe("MuiTabScrollButton",e)}const wA=Ee("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),CA=e=>{const{classes:t,orientation:n,disabled:r}=e;return Ne({root:["root",n,r&&"disabled"]},SA,t)},_A=J(To,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.orientation&&t[n.orientation]]}})({width:40,flexShrink:0,opacity:.8,[`&.${wA.disabled}`]:{opacity:0},variants:[{props:{orientation:"vertical"},style:{width:"100%",height:40,"& svg":{transform:"var(--TabScrollButton-svgRotate)"}}}]}),RA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTabScrollButton"}),{className:o,slots:i={},slotProps:a={},direction:s,orientation:l,disabled:c,...u}=r,d=Es(),f={isRtl:d,...r},p=CA(f),h=i.StartScrollButtonIcon??B_,y=i.EndScrollButtonIcon??z_,w=na({elementType:h,externalSlotProps:a.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:f}),v=na({elementType:y,externalSlotProps:a.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:f});return g.jsx(_A,{component:"div",className:ve(p.root,o),ref:n,role:null,ownerState:f,tabIndex:null,...u,style:{...u.style,...l==="vertical"&&{"--TabScrollButton-svgRotate":`rotate(${d?-90:90}deg)`}},children:s==="left"?g.jsx(h,{...w}):g.jsx(y,{...v})})});function TA(e){return Oe("MuiTabs",e)}const bg=Ee("MuiTabs",["root","vertical","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),sx=(e,t)=>e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:e.firstChild,lx=(e,t)=>e===t?e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:e.lastChild,mu=(e,t,n)=>{let r=!1,o=n(e,t);for(;o;){if(o===e.firstChild){if(r)return;r=!0}const i=o.disabled||o.getAttribute("aria-disabled")==="true";if(!o.hasAttribute("tabindex")||i)o=n(e,o);else{o.focus();return}}},PA=e=>{const{vertical:t,fixed:n,hideScrollbar:r,scrollableX:o,scrollableY:i,centered:a,scrollButtonsHideMobile:s,classes:l}=e;return Ne({root:["root",t&&"vertical"],scroller:["scroller",n&&"fixed",r&&"hideScrollbar",o&&"scrollableX",i&&"scrollableY"],flexContainer:["flexContainer",t&&"flexContainerVertical",a&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",s&&"scrollButtonsHideMobile"],scrollableX:[o&&"scrollableX"],hideScrollbar:[r&&"hideScrollbar"]},TA,l)},kA=J("div",{name:"MuiTabs",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${bg.scrollButtons}`]:t.scrollButtons},{[`& .${bg.scrollButtons}`]:n.scrollButtonsHideMobile&&t.scrollButtonsHideMobile},t.root,n.vertical&&t.vertical]}})($e(({theme:e})=>({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex",variants:[{props:({ownerState:t})=>t.vertical,style:{flexDirection:"column"}},{props:({ownerState:t})=>t.scrollButtonsHideMobile,style:{[`& .${bg.scrollButtons}`]:{[e.breakpoints.down("sm")]:{display:"none"}}}}]}))),$A=J("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.scroller,n.fixed&&t.fixed,n.hideScrollbar&&t.hideScrollbar,n.scrollableX&&t.scrollableX,n.scrollableY&&t.scrollableY]}})({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap",variants:[{props:({ownerState:e})=>e.fixed,style:{overflowX:"hidden",width:"100%"}},{props:({ownerState:e})=>e.hideScrollbar,style:{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}},{props:({ownerState:e})=>e.scrollableX,style:{overflowX:"auto",overflowY:"hidden"}},{props:({ownerState:e})=>e.scrollableY,style:{overflowY:"auto",overflowX:"hidden"}}]}),EA=J("div",{name:"MuiTabs",slot:"FlexContainer",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.flexContainer,n.vertical&&t.flexContainerVertical,n.centered&&t.centered]}})({display:"flex",variants:[{props:({ownerState:e})=>e.vertical,style:{flexDirection:"column"}},{props:({ownerState:e})=>e.centered,style:{justifyContent:"center"}}]}),MA=J("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(e,t)=>t.indicator})($e(({theme:e})=>({position:"absolute",height:2,bottom:0,width:"100%",transition:e.transitions.create(),variants:[{props:{indicatorColor:"primary"},style:{backgroundColor:(e.vars||e).palette.primary.main}},{props:{indicatorColor:"secondary"},style:{backgroundColor:(e.vars||e).palette.secondary.main}},{props:({ownerState:t})=>t.vertical,style:{height:"100%",width:2,right:0}}]}))),IA=J(xA)({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),cx={},OA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTabs"}),o=zt(),i=Es(),{"aria-label":a,"aria-labelledby":s,action:l,centered:c=!1,children:u,className:d,component:f="div",allowScrollButtonsMobile:p=!1,indicatorColor:h="primary",onChange:y,orientation:w="horizontal",ScrollButtonComponent:v=RA,scrollButtons:S="auto",selectionFollowsFocus:m,slots:C={},slotProps:_={},TabIndicatorProps:R={},TabScrollButtonProps:k={},textColor:T="primary",value:P,variant:x="standard",visibleScrollbar:$=!1,...I}=r,O=x==="scrollable",D=w==="vertical",M=D?"scrollTop":"scrollLeft",A=D?"top":"left",N=D?"bottom":"right",E=D?"clientHeight":"clientWidth",L=D?"height":"width",B={...r,component:f,allowScrollButtonsMobile:p,indicatorColor:h,orientation:w,vertical:D,scrollButtons:S,textColor:T,variant:x,visibleScrollbar:$,fixed:!O,hideScrollbar:O&&!$,scrollableX:O&&!D,scrollableY:O&&D,centered:c&&!O,scrollButtonsHideMobile:!p},H=PA(B),z=na({elementType:C.StartScrollButtonIcon,externalSlotProps:_.startScrollButtonIcon,ownerState:B}),j=na({elementType:C.EndScrollButtonIcon,externalSlotProps:_.endScrollButtonIcon,ownerState:B}),[F,W]=b.useState(!1),[V,ee]=b.useState(cx),[re,U]=b.useState(!1),[K,se]=b.useState(!1),[q,ce]=b.useState(!1),[ue,ie]=b.useState({overflow:"hidden",scrollbarWidth:0}),te=new Map,de=b.useRef(null),Q=b.useRef(null),be=()=>{const oe=de.current;let me;if(oe){const Ve=oe.getBoundingClientRect();me={clientWidth:oe.clientWidth,scrollLeft:oe.scrollLeft,scrollTop:oe.scrollTop,scrollWidth:oe.scrollWidth,top:Ve.top,bottom:Ve.bottom,left:Ve.left,right:Ve.right}}let je;if(oe&&P!==!1){const Ve=Q.current.children;if(Ve.length>0){const Ye=Ve[te.get(P)];je=Ye?Ye.getBoundingClientRect():null}}return{tabsMeta:me,tabMeta:je}},Te=bn(()=>{const{tabsMeta:oe,tabMeta:me}=be();let je=0,Ve;D?(Ve="top",me&&oe&&(je=me.top-oe.top+oe.scrollTop)):(Ve=i?"right":"left",me&&oe&&(je=(i?-1:1)*(me[Ve]-oe[Ve]+oe.scrollLeft)));const Ye={[Ve]:je,[L]:me?me[L]:0};if(typeof V[Ve]!="number"||typeof V[L]!="number")ee(Ye);else{const Tt=Math.abs(V[Ve]-Ye[Ve]),Zt=Math.abs(V[L]-Ye[L]);(Tt>=1||Zt>=1)&&ee(Ye)}}),we=(oe,{animation:me=!0}={})=>{me?yA(M,de.current,oe,{duration:o.transitions.duration.standard}):de.current[M]=oe},ge=oe=>{let me=de.current[M];D?me+=oe:me+=oe*(i?-1:1),we(me)},le=()=>{const oe=de.current[E];let me=0;const je=Array.from(Q.current.children);for(let Ve=0;Veoe){Ve===0&&(me=oe);break}me+=Ye[E]}return me},Se=()=>{ge(-1*le())},ye=()=>{ge(le())},Ge=b.useCallback(oe=>{ie({overflow:null,scrollbarWidth:oe})},[]),Pe=()=>{const oe={};oe.scrollbarSizeListener=O?g.jsx(IA,{onChange:Ge,className:ve(H.scrollableX,H.hideScrollbar)}):null;const je=O&&(S==="auto"&&(re||K)||S===!0);return oe.scrollButtonStart=je?g.jsx(v,{slots:{StartScrollButtonIcon:C.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:z},orientation:w,direction:i?"right":"left",onClick:Se,disabled:!re,...k,className:ve(H.scrollButtons,k.className)}):null,oe.scrollButtonEnd=je?g.jsx(v,{slots:{EndScrollButtonIcon:C.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:j},orientation:w,direction:i?"left":"right",onClick:ye,disabled:!K,...k,className:ve(H.scrollButtons,k.className)}):null,oe},Re=bn(oe=>{const{tabsMeta:me,tabMeta:je}=be();if(!(!je||!me)){if(je[A]me[N]){const Ve=me[M]+(je[N]-me[N]);we(Ve,{animation:oe})}}}),ke=bn(()=>{O&&S!==!1&&ce(!q)});b.useEffect(()=>{const oe=cp(()=>{de.current&&Te()});let me;const je=Tt=>{Tt.forEach(Zt=>{Zt.removedNodes.forEach(Mn=>{me==null||me.unobserve(Mn)}),Zt.addedNodes.forEach(Mn=>{me==null||me.observe(Mn)})}),oe(),ke()},Ve=zr(de.current);Ve.addEventListener("resize",oe);let Ye;return typeof ResizeObserver<"u"&&(me=new ResizeObserver(oe),Array.from(Q.current.children).forEach(Tt=>{me.observe(Tt)})),typeof MutationObserver<"u"&&(Ye=new MutationObserver(je),Ye.observe(Q.current,{childList:!0})),()=>{oe.clear(),Ve.removeEventListener("resize",oe),Ye==null||Ye.disconnect(),me==null||me.disconnect()}},[Te,ke]),b.useEffect(()=>{const oe=Array.from(Q.current.children),me=oe.length;if(typeof IntersectionObserver<"u"&&me>0&&O&&S!==!1){const je=oe[0],Ve=oe[me-1],Ye={root:de.current,threshold:.99},Tt=Vn=>{U(!Vn[0].isIntersecting)},Zt=new IntersectionObserver(Tt,Ye);Zt.observe(je);const Mn=Vn=>{se(!Vn[0].isIntersecting)},ir=new IntersectionObserver(Mn,Ye);return ir.observe(Ve),()=>{Zt.disconnect(),ir.disconnect()}}},[O,S,q,u==null?void 0:u.length]),b.useEffect(()=>{W(!0)},[]),b.useEffect(()=>{Te()}),b.useEffect(()=>{Re(cx!==V)},[Re,V]),b.useImperativeHandle(l,()=>({updateIndicator:Te,updateScrollButtons:ke}),[Te,ke]);const pe=g.jsx(MA,{...R,className:ve(H.indicator,R.className),ownerState:B,style:{...V,...R.style}});let ne=0;const xe=b.Children.map(u,oe=>{if(!b.isValidElement(oe))return null;const me=oe.props.value===void 0?ne:oe.props.value;te.set(me,ne);const je=me===P;return ne+=1,b.cloneElement(oe,{fullWidth:x==="fullWidth",indicator:je&&!F&&pe,selected:je,selectionFollowsFocus:m,onChange:y,textColor:T,value:me,...ne===1&&P===!1&&!oe.props.tabIndex?{tabIndex:0}:{}})}),Le=oe=>{const me=Q.current,je=ln(me).activeElement;if(je.getAttribute("role")!=="tab")return;let Ye=w==="horizontal"?"ArrowLeft":"ArrowUp",Tt=w==="horizontal"?"ArrowRight":"ArrowDown";switch(w==="horizontal"&&i&&(Ye="ArrowRight",Tt="ArrowLeft"),oe.key){case Ye:oe.preventDefault(),mu(me,je,lx);break;case Tt:oe.preventDefault(),mu(me,je,sx);break;case"Home":oe.preventDefault(),mu(me,null,sx);break;case"End":oe.preventDefault(),mu(me,null,lx);break}},fe=Pe();return g.jsxs(kA,{className:ve(H.root,d),ownerState:B,ref:n,as:f,...I,children:[fe.scrollButtonStart,fe.scrollbarSizeListener,g.jsxs($A,{className:H.scroller,ownerState:B,style:{overflow:ue.overflow,[D?`margin${i?"Left":"Right"}`:"marginBottom"]:$?void 0:-ue.scrollbarWidth},ref:de,children:[g.jsx(EA,{"aria-label":a,"aria-labelledby":s,"aria-orientation":w==="vertical"?"vertical":null,className:H.flexContainer,ownerState:B,onKeyDown:Le,ref:Q,role:"tablist",children:xe}),F&&pe]}),fe.scrollButtonEnd]})});function LA(e){return Oe("MuiTextField",e)}Ee("MuiTextField",["root"]);const AA={standard:Gd,filled:Ud,outlined:qd},NA=e=>{const{classes:t}=e;return Ne({root:["root"]},LA,t)},DA=J(EO,{name:"MuiTextField",slot:"Root",overridesResolver:(e,t)=>t.root})({}),jA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTextField"}),{autoComplete:o,autoFocus:i=!1,children:a,className:s,color:l="primary",defaultValue:c,disabled:u=!1,error:d=!1,FormHelperTextProps:f,fullWidth:p=!1,helperText:h,id:y,InputLabelProps:w,inputProps:v,InputProps:S,inputRef:m,label:C,maxRows:_,minRows:R,multiline:k=!1,name:T,onBlur:P,onChange:x,onFocus:$,placeholder:I,required:O=!1,rows:D,select:M=!1,SelectProps:A,slots:N={},slotProps:E={},type:L,value:B,variant:H="outlined",...z}=r,j={...r,autoFocus:i,color:l,disabled:u,error:d,fullWidth:p,multiline:k,required:O,select:M,variant:H},F=NA(j),W=ds(y),V=h&&W?`${W}-helper-text`:void 0,ee=C&&W?`${W}-label`:void 0,re=AA[H],U={slots:N,slotProps:{input:S,inputLabel:w,htmlInput:v,formHelperText:f,select:A,...E}},K={},se=U.slotProps.inputLabel;H==="outlined"&&(se&&typeof se.shrink<"u"&&(K.notched=se.shrink),K.label=C),M&&((!A||!A.native)&&(K.id=void 0),K["aria-describedby"]=void 0);const[q,ce]=an("input",{elementType:re,externalForwardedProps:U,additionalProps:K,ownerState:j}),[ue,ie]=an("inputLabel",{elementType:YO,externalForwardedProps:U,ownerState:j}),[te,de]=an("htmlInput",{elementType:"input",externalForwardedProps:U,ownerState:j}),[Q,be]=an("formHelperText",{elementType:jO,externalForwardedProps:U,ownerState:j}),[Te,we]=an("select",{elementType:vp,externalForwardedProps:U,ownerState:j}),ge=g.jsx(q,{"aria-describedby":V,autoComplete:o,autoFocus:i,defaultValue:c,fullWidth:p,multiline:k,name:T,rows:D,maxRows:_,minRows:R,type:L,value:B,id:W,inputRef:m,onBlur:P,onChange:x,onFocus:$,placeholder:I,inputProps:de,slots:{input:N.htmlInput?te:void 0},...ce});return g.jsxs(DA,{className:ve(F.root,s),disabled:u,error:d,fullWidth:p,ref:n,required:O,color:l,variant:H,ownerState:j,...z,children:[C!=null&&C!==""&&g.jsx(ue,{htmlFor:W,id:ee,...ie,children:C}),M?g.jsx(Te,{"aria-describedby":V,id:W,labelId:ee,value:B,input:ge,...we,children:a}):ge,h&&g.jsx(Q,{id:V,...be,children:h})]})});var FA={exports:{}};/* @license +Papa Parse +v5.4.1 +https://github.com/mholt/PapaParse +License: MIT +*/(function(e,t){(function(n,r){e.exports=r()})(jl,function n(){var r=typeof self<"u"?self:typeof window<"u"?window:r!==void 0?r:{},o=!r.document&&!!r.postMessage,i=r.IS_PAPA_WORKER||!1,a={},s=0,l={parse:function(T,P){var x=(P=P||{}).dynamicTyping||!1;if(k(x)&&(P.dynamicTypingFunction=x,x={}),P.dynamicTyping=x,P.transform=!!k(P.transform)&&P.transform,P.worker&&l.WORKERS_SUPPORTED){var $=function(){if(!l.WORKERS_SUPPORTED)return!1;var O=(M=r.URL||r.webkitURL||null,A=n.toString(),l.BLOB_URL||(l.BLOB_URL=M.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",A,")();"],{type:"text/javascript"})))),D=new r.Worker(O),M,A;return D.onmessage=S,D.id=s++,a[D.id]=D}();return $.userStep=P.step,$.userChunk=P.chunk,$.userComplete=P.complete,$.userError=P.error,P.step=k(P.step),P.chunk=k(P.chunk),P.complete=k(P.complete),P.error=k(P.error),delete P.worker,void $.postMessage({input:T,config:P,workerId:$.id})}var I=null;return l.NODE_STREAM_INPUT,typeof T=="string"?(T=function(O){return O.charCodeAt(0)===65279?O.slice(1):O}(T),I=P.download?new d(P):new p(P)):T.readable===!0&&k(T.read)&&k(T.on)?I=new h(P):(r.File&&T instanceof File||T instanceof Object)&&(I=new f(P)),I.stream(T)},unparse:function(T,P){var x=!1,$=!0,I=",",O=`\r +`,D='"',M=D+D,A=!1,N=null,E=!1;(function(){if(typeof P=="object"){if(typeof P.delimiter!="string"||l.BAD_DELIMITERS.filter(function(z){return P.delimiter.indexOf(z)!==-1}).length||(I=P.delimiter),(typeof P.quotes=="boolean"||typeof P.quotes=="function"||Array.isArray(P.quotes))&&(x=P.quotes),typeof P.skipEmptyLines!="boolean"&&typeof P.skipEmptyLines!="string"||(A=P.skipEmptyLines),typeof P.newline=="string"&&(O=P.newline),typeof P.quoteChar=="string"&&(D=P.quoteChar),typeof P.header=="boolean"&&($=P.header),Array.isArray(P.columns)){if(P.columns.length===0)throw new Error("Option columns is empty");N=P.columns}P.escapeChar!==void 0&&(M=P.escapeChar+D),(typeof P.escapeFormulae=="boolean"||P.escapeFormulae instanceof RegExp)&&(E=P.escapeFormulae instanceof RegExp?P.escapeFormulae:/^[=+\-@\t\r].*$/)}})();var L=new RegExp(w(D),"g");if(typeof T=="string"&&(T=JSON.parse(T)),Array.isArray(T)){if(!T.length||Array.isArray(T[0]))return B(null,T,A);if(typeof T[0]=="object")return B(N||Object.keys(T[0]),T,A)}else if(typeof T=="object")return typeof T.data=="string"&&(T.data=JSON.parse(T.data)),Array.isArray(T.data)&&(T.fields||(T.fields=T.meta&&T.meta.fields||N),T.fields||(T.fields=Array.isArray(T.data[0])?T.fields:typeof T.data[0]=="object"?Object.keys(T.data[0]):[]),Array.isArray(T.data[0])||typeof T.data[0]=="object"||(T.data=[T.data])),B(T.fields||[],T.data||[],A);throw new Error("Unable to serialize unrecognized input");function B(z,j,F){var W="";typeof z=="string"&&(z=JSON.parse(z)),typeof j=="string"&&(j=JSON.parse(j));var V=Array.isArray(z)&&0=this._config.preview;if(i)r.postMessage({results:O,workerId:l.WORKER_ID,finished:M});else if(k(this._config.chunk)&&!x){if(this._config.chunk(O,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);O=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(O.data),this._completeResults.errors=this._completeResults.errors.concat(O.errors),this._completeResults.meta=O.meta),this._completed||!M||!k(this._config.complete)||O&&O.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),M||O&&O.meta.paused||this._nextChunk(),O}this._halted=!0},this._sendError=function(P){k(this._config.error)?this._config.error(P):i&&this._config.error&&r.postMessage({workerId:l.WORKER_ID,error:P,finished:!1})}}function d(T){var P;(T=T||{}).chunkSize||(T.chunkSize=l.RemoteChunkSize),u.call(this,T),this._nextChunk=o?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(x){this._input=x,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(P=new XMLHttpRequest,this._config.withCredentials&&(P.withCredentials=this._config.withCredentials),o||(P.onload=R(this._chunkLoaded,this),P.onerror=R(this._chunkError,this)),P.open(this._config.downloadRequestBody?"POST":"GET",this._input,!o),this._config.downloadRequestHeaders){var x=this._config.downloadRequestHeaders;for(var $ in x)P.setRequestHeader($,x[$])}if(this._config.chunkSize){var I=this._start+this._config.chunkSize-1;P.setRequestHeader("Range","bytes="+this._start+"-"+I)}try{P.send(this._config.downloadRequestBody)}catch(O){this._chunkError(O.message)}o&&P.status===0&&this._chunkError()}},this._chunkLoaded=function(){P.readyState===4&&(P.status<200||400<=P.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:P.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(x){var $=x.getResponseHeader("Content-Range");return $===null?-1:parseInt($.substring($.lastIndexOf("/")+1))}(P),this.parseChunk(P.responseText)))},this._chunkError=function(x){var $=P.statusText||x;this._sendError(new Error($))}}function f(T){var P,x;(T=T||{}).chunkSize||(T.chunkSize=l.LocalChunkSize),u.call(this,T);var $=typeof FileReader<"u";this.stream=function(I){this._input=I,x=I.slice||I.webkitSlice||I.mozSlice,$?((P=new FileReader).onload=R(this._chunkLoaded,this),P.onerror=R(this._chunkError,this)):P=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(I.target.result)},this._chunkError=function(){this._sendError(P.error)}}function p(T){var P;u.call(this,T=T||{}),this.stream=function(x){return P=x,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var x,$=this._config.chunkSize;return $?(x=P.substring(0,$),P=P.substring($)):(x=P,P=""),this._finished=!P,this.parseChunk(x)}}}function h(T){u.call(this,T=T||{});var P=[],x=!0,$=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(I){this._input=I,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){$&&P.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),P.length?this.parseChunk(P.shift()):x=!0},this._streamData=R(function(I){try{P.push(typeof I=="string"?I:I.toString(this._config.encoding)),x&&(x=!1,this._checkIsFinished(),this.parseChunk(P.shift()))}catch(O){this._streamError(O)}},this),this._streamError=R(function(I){this._streamCleanUp(),this._sendError(I)},this),this._streamEnd=R(function(){this._streamCleanUp(),$=!0,this._streamData("")},this),this._streamCleanUp=R(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function y(T){var P,x,$,I=Math.pow(2,53),O=-I,D=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,M=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,A=this,N=0,E=0,L=!1,B=!1,H=[],z={data:[],errors:[],meta:{}};if(k(T.step)){var j=T.step;T.step=function(U){if(z=U,V())W();else{if(W(),z.data.length===0)return;N+=U.data.length,T.preview&&N>T.preview?x.abort():(z.data=z.data[0],j(z,A))}}}function F(U){return T.skipEmptyLines==="greedy"?U.join("").trim()==="":U.length===1&&U[0].length===0}function W(){return z&&$&&(re("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+l.DefaultDelimiter+"'"),$=!1),T.skipEmptyLines&&(z.data=z.data.filter(function(U){return!F(U)})),V()&&function(){if(!z)return;function U(se,q){k(T.transformHeader)&&(se=T.transformHeader(se,q)),H.push(se)}if(Array.isArray(z.data[0])){for(var K=0;V()&&K=H.length?"__parsed_extra":H[ce]),T.transform&&(te=T.transform(te,ie)),te=ee(ie,te),ie==="__parsed_extra"?(ue[ie]=ue[ie]||[],ue[ie].push(te)):ue[ie]=te}return T.header&&(ce>H.length?re("FieldMismatch","TooManyFields","Too many fields: expected "+H.length+" fields but parsed "+ce,E+q):ce=Q.length/2?`\r +`:"\r"}(U,q)),$=!1,T.delimiter)k(T.delimiter)&&(T.delimiter=T.delimiter(U),z.meta.delimiter=T.delimiter);else{var ce=function(ie,te,de,Q,be){var Te,we,ge,le;be=be||[","," ","|",";",l.RECORD_SEP,l.UNIT_SEP];for(var Se=0;Se=D)return xe(!0)}else for(ye=N,N++;;){if((ye=L.indexOf(P,ye+1))===-1)return H||re.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:ee.length,index:N}),pe();if(ye===z-1)return pe(L.substring(N,ye).replace(Se,P));if(P!==A||L[ye+1]!==A){if(P===A||ye===0||L[ye-1]!==A){ge!==-1&&ge=D)return xe(!0);break}re.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:ee.length,index:N}),ye++}}else ye++}return pe();function Re(fe){ee.push(fe),K=N}function ke(fe){var oe=0;if(fe!==-1){var me=L.substring(ye+1,fe);me&&me.trim()===""&&(oe=me.length)}return oe}function pe(fe){return H||(fe===void 0&&(fe=L.substring(N)),U.push(fe),N=z,Re(U),V&&Le()),xe()}function ne(fe){N=fe,Re(U),U=[],le=L.indexOf($,N)}function xe(fe){return{data:ee,errors:re,meta:{delimiter:x,linebreak:$,aborted:E,truncated:!!fe,cursor:K+(B||0)}}}function Le(){O(xe()),ee=[],re=[]}},this.abort=function(){E=!0},this.getCharIndex=function(){return N}}function S(T){var P=T.data,x=a[P.workerId],$=!1;if(P.error)x.userError(P.error,P.file);else if(P.results&&P.results.data){var I={abort:function(){$=!0,m(P.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:C,resume:C};if(k(x.userStep)){for(var O=0;O{const{size:t,width:n=16,height:r=16,sx:o,...i}=e;return g.jsx(ra,{sx:{fill:"none",width:t||n,height:t||r,...o},viewBox:"0 0 16 16",...i,children:e.children},void 0)},BA=e=>{const{sx:t,...n}=e;return g.jsx(ra,{sx:{fill:"none",width:24,height:24,...t},viewBox:"0 0 24 24",...n,children:e.children},void 0)},H_=e=>{const{sx:t,...n}=e;return g.jsx(ra,{sx:{fill:"none",width:14,height:14,...t},viewBox:"0 0 14 14",...n,children:e.children},void 0)},zA=e=>g.jsx(BA,{...e,children:g.jsx("path",{d:"M18.861 16.1166C17.4619 18.4433 14.9127 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12H22C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C15.6409 22 18.8274 20.0542 20.5762 17.1457L18.861 16.1166Z",fill:"#1D2939"},void 0)},void 0),HA=e=>g.jsx(H_,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.08871 1.5C3.55444 1.5 1.5 3.55444 1.5 6.08871C1.5 8.62298 3.55444 10.6774 6.08871 10.6774C7.17572 10.6774 8.17445 10.2995 8.96065 9.66778L11.75 12.4571L12.4571 11.75L9.66776 8.96067C10.2994 8.17447 10.6774 7.17573 10.6774 6.08871C10.6774 3.55444 8.62298 1.5 6.08871 1.5ZM2.5 6.08871C2.5 4.10672 4.10672 2.5 6.08871 2.5C8.0707 2.5 9.67742 4.10672 9.67742 6.08871C9.67742 8.0707 8.0707 9.67742 6.08871 9.67742C4.10672 9.67742 2.5 8.0707 2.5 6.08871Z",fill:"#1D2939"},void 0)},void 0),VA=e=>g.jsx(H_,{...e,children:g.jsx("path",{d:"M6.99999 7.91921L3.45958 11.4596L2.54034 10.5404L6.08075 6.99997L2.54039 3.45961L3.45963 2.54037L6.99999 6.08073L10.5403 2.54037L11.4596 3.45961L7.91923 6.99997L11.4596 10.5404L10.5404 11.4596L6.99999 7.91921Z",fill:"#1D2939"},void 0)},void 0),O1=e=>g.jsx(Cn,{...e,children:g.jsx("path",{d:"M4.40029 3.55174C4.16598 3.31743 3.78608 3.31743 3.55177 3.55174C3.31745 3.78606 3.31745 4.16596 3.55177 4.40027L7.15147 7.99998L3.55178 11.5997C3.31746 11.834 3.31746 12.2139 3.55178 12.4482C3.78609 12.6825 4.16599 12.6825 4.40031 12.4482L8 8.84851L11.5997 12.4482C11.834 12.6825 12.2139 12.6825 12.4482 12.4482C12.6825 12.2139 12.6825 11.834 12.4482 11.5997L8.84853 7.99998L12.4482 4.40027C12.6826 4.16596 12.6826 3.78606 12.4482 3.55174C12.2139 3.31743 11.834 3.31743 11.5997 3.55174L8 7.15145L4.40029 3.55174Z",fill:"currentColor"},void 0)},void 0),WA=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.04214 5.95918C6.65053 5.95918 5.52241 7.0873 5.52241 8.47891C5.52241 9.87051 6.65053 10.9986 8.04214 10.9986C9.43374 10.9986 10.5619 9.87051 10.5619 8.47891C10.5619 7.0873 9.43374 5.95918 8.04214 5.95918ZM6.52241 8.47891C6.52241 7.63958 7.20281 6.95918 8.04214 6.95918C8.88146 6.95918 9.56187 7.63958 9.56187 8.47891C9.56187 9.31823 8.88146 9.99864 8.04214 9.99864C7.20281 9.99864 6.52241 9.31823 6.52241 8.47891Z",fill:"currentColor"},void 0),g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.9094 8.18455C14.9095 8.1847 14.9096 8.18483 14.5053 8.47891C14.9096 8.77299 14.9095 8.77312 14.9094 8.77327L14.9084 8.77465L14.9062 8.77775L14.8984 8.78819L14.8705 8.82542C14.8464 8.85725 14.8114 8.90281 14.766 8.96015C14.6753 9.07477 14.543 9.23673 14.3733 9.43024C14.0346 9.8166 13.544 10.3323 12.9362 10.8492C11.7356 11.8704 10.0053 12.9578 8.04214 12.9578C6.07894 12.9578 4.34871 11.8704 3.14808 10.8492C2.54026 10.3323 2.04969 9.8166 1.71095 9.43024C1.54128 9.23673 1.40893 9.07477 1.31822 8.96015C1.27285 8.90281 1.23784 8.85725 1.21374 8.82542L1.18582 8.78819L1.17811 8.77775L1.17584 8.77465L1.1751 8.77363C1.17499 8.77349 1.17463 8.77299 1.579 8.47891C1.17463 8.18483 1.17472 8.1847 1.17483 8.18455L1.17584 8.18318L1.17811 8.18007L1.18582 8.16963L1.21374 8.1324C1.23784 8.10057 1.27285 8.05501 1.31822 7.99767C1.40893 7.88305 1.54128 7.72109 1.71095 7.52758C2.04969 7.14122 2.54026 6.62552 3.14808 6.10858C4.34871 5.08746 6.07894 4 8.04214 4C10.0053 4 11.7356 5.08746 12.9362 6.10858C13.544 6.62552 14.0346 7.14122 14.3733 7.52758C14.543 7.72109 14.6753 7.88305 14.766 7.99767C14.8114 8.05501 14.8464 8.10057 14.8705 8.1324L14.8984 8.16963L14.9062 8.18007L14.9084 8.18318L14.9094 8.18455ZM2.46287 8.77099C2.36639 8.66095 2.28336 8.56242 2.21478 8.47891C2.28336 8.3954 2.36639 8.29687 2.46287 8.18683C2.77823 7.82714 3.23416 7.34812 3.79594 6.87033C4.93451 5.902 6.43584 5 8.04214 5C9.64843 5 11.1498 5.902 12.2883 6.87033C12.8501 7.34812 13.306 7.82714 13.6214 8.18683C13.7179 8.29687 13.8009 8.3954 13.8695 8.47891C13.8009 8.56241 13.7179 8.66095 13.6214 8.77099C13.306 9.13068 12.8501 9.6097 12.2883 10.0875C11.1498 11.0558 9.64843 11.9578 8.04214 11.9578C6.43584 11.9578 4.93451 11.0558 3.79594 10.0875C3.23416 9.6097 2.77823 9.13068 2.46287 8.77099Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M14.5053 8.47891L14.9094 8.18455C15.0369 8.35988 15.0369 8.59794 14.9094 8.77327L14.5053 8.47891Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M1.17483 8.18455L1.579 8.47891L1.1751 8.77363C1.0476 8.59831 1.04733 8.35988 1.17483 8.18455Z",fill:"currentColor"},void 0)]},void 0),UA=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.1106 3.65519C13.301 3.85517 13.2933 4.17165 13.0933 4.36209L9.97993 7.32691C9.96934 7.33914 9.95806 7.35097 9.94609 7.36234C9.93431 7.37355 9.92213 7.38406 9.90959 7.39389L3.64235 13.3621C3.44238 13.5525 3.12589 13.5448 2.93546 13.3448C2.74503 13.1448 2.75276 12.8283 2.95274 12.6379L4.06813 11.5757C3.24267 11.0059 2.55654 10.3585 2.06343 9.83657C1.78455 9.5414 1.56492 9.28373 1.41417 9.09871C1.33874 9.00614 1.28041 8.93157 1.24038 8.87939C1.22036 8.85329 1.2049 8.83278 1.19416 8.81838L1.1816 8.80145L1.178 8.79656L1.17688 8.79502C1.17682 8.79493 1.17621 8.79411 1.58059 8.50003C1.17621 8.20595 1.17631 8.20582 1.17642 8.20567L1.17742 8.20429L1.17969 8.2012L1.18738 8.19078L1.21522 8.15366C1.23926 8.12192 1.27416 8.07649 1.3194 8.01932C1.40984 7.90503 1.54179 7.74357 1.71095 7.55063C2.04868 7.16543 2.53777 6.65128 3.14377 6.13589C4.34075 5.11787 6.06595 4.03351 8.02359 4.03351C9.14779 4.03351 10.1926 4.39154 11.0977 4.88158L12.4037 3.63791C12.6037 3.44748 12.9201 3.45522 13.1106 3.65519ZM9.58316 6.32385L10.331 5.61171C9.60548 5.25934 8.82649 5.03351 8.02359 5.03351C6.42286 5.03351 4.92655 5.93241 3.79163 6.89765C3.23168 7.37388 2.77721 7.85136 2.46287 8.20989C2.36709 8.31913 2.2846 8.417 2.2164 8.50003C2.35319 8.66654 2.54714 8.89243 2.7903 9.14979C3.28839 9.67696 3.98395 10.3265 4.8096 10.8696L5.77368 9.95157C5.5034 9.53331 5.34632 9.03452 5.34632 8.50002C5.34632 7.02144 6.54494 5.82282 8.02352 5.82282C8.6053 5.82282 9.14412 6.00876 9.58316 6.32385ZM6.51881 9.24199C6.40832 9.01845 6.34632 8.76679 6.34632 8.50002C6.34632 7.57372 7.09723 6.82282 8.02352 6.82282C8.31925 6.82282 8.59685 6.89911 8.83805 7.03341L6.51881 9.24199Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M1.58059 8.50003L1.17621 8.79411C1.04871 8.61878 1.04891 8.38099 1.17642 8.20567L1.58059 8.50003Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M12.1782 6.17688C12.3566 5.96615 12.6721 5.93998 12.8828 6.11843C13.495 6.63678 13.9892 7.15531 14.3305 7.54409C14.5015 7.73883 14.6348 7.90192 14.7262 8.01738C14.772 8.07514 14.8073 8.12105 14.8315 8.15312L14.8597 8.19063L14.8675 8.20116L14.8698 8.20428L14.8705 8.2053C14.8705 8.20536 14.871 8.20595 14.4666 8.50003C14.871 8.79411 14.8709 8.79424 14.8708 8.79438L14.8698 8.79576L14.8675 8.79885L14.8598 8.80927L14.832 8.84639C14.8079 8.87813 14.773 8.92356 14.7278 8.98073C14.6373 9.09502 14.5054 9.25649 14.3362 9.44942C13.9985 9.83462 13.5094 10.3488 12.9034 10.8642C11.7064 11.8822 9.98123 12.9665 8.02359 12.9665C7.44356 12.9665 6.8846 12.8711 6.35578 12.7118C6.09137 12.6322 5.9416 12.3533 6.02125 12.0889C6.1009 11.8245 6.37981 11.6747 6.64422 11.7543C7.09234 11.8893 7.55384 11.9665 8.02359 11.9665C9.62432 11.9665 11.1206 11.0676 12.2555 10.1024C12.8155 9.62617 13.27 9.14869 13.5843 8.79017C13.6801 8.68092 13.7626 8.58305 13.8308 8.50002C13.7613 8.41547 13.677 8.31551 13.579 8.20382C13.2613 7.84189 12.8021 7.36041 12.2366 6.88157C12.0259 6.70311 11.9997 6.38761 12.1782 6.17688Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M14.4666 8.50003L14.8705 8.2053C14.998 8.38062 14.9983 8.61906 14.8708 8.79438L14.4666 8.50003Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M10.7007 8.50002C10.7007 8.22388 10.4769 8.00002 10.2007 8.00002C9.92458 8.00002 9.70072 8.22388 9.70072 8.50002C9.70072 9.42631 8.94981 10.1772 8.02352 10.1772C7.74738 10.1772 7.52352 10.4011 7.52352 10.6772C7.52352 10.9534 7.74738 11.1772 8.02352 11.1772C9.5021 11.1772 10.7007 9.9786 10.7007 8.50002Z",fill:"currentColor"},void 0)]},void 0),_m=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{d:"M9.60001 2.10001C9.32387 2.10001 9.10001 2.32386 9.10001 2.60001C9.10001 2.87615 9.32387 3.10001 9.60001 3.10001L12.5722 3.10001L8.23955 7.60704C8.04818 7.80612 8.05442 8.12264 8.25349 8.31401C8.45257 8.50538 8.76909 8.49914 8.96046 8.30007L13.2465 3.8416V6.45354C13.2465 6.72968 13.4703 6.95354 13.7465 6.95354C14.0226 6.95354 14.2465 6.72968 14.2465 6.45354V2.60001C14.2465 2.32387 14.0226 2.10001 13.7465 2.10001H9.60001Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M3.60001 14.5L11.6 14.5C12.4284 14.5 13.1 13.8284 13.1 13V8.95355C13.1 8.67741 12.8761 8.45355 12.6 8.45355C12.3239 8.45355 12.1 8.67741 12.1 8.95355V13C12.1 13.2761 11.8761 13.5 11.6 13.5L3.60001 13.5C3.32386 13.5 3.10001 13.2761 3.10001 13L3.10001 4.45355C3.10001 4.17741 3.32386 3.95355 3.60001 3.95355L7.10001 3.95355C7.37615 3.95355 7.60001 3.7297 7.60001 3.45355C7.60001 3.17741 7.37615 2.95355 7.10001 2.95355L3.60001 2.95355C2.77158 2.95355 2.10001 3.62513 2.10001 4.45355V13C2.10001 13.8284 2.77158 14.5 3.60001 14.5Z",fill:"currentColor"},void 0)]},void 0),GA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.9348 2.51687C11.2017 2.75702 11.2233 3.16801 10.9831 3.43484L6.87449 8.00001L10.9831 12.5652C11.2233 12.832 11.2017 13.243 10.9348 13.4832C10.668 13.7233 10.257 13.7017 10.0169 13.4348L5.51686 8.43484C5.29439 8.18764 5.29439 7.81238 5.51686 7.56518L10.0169 2.56518C10.257 2.29835 10.668 2.27672 10.9348 2.51687Z",fill:"currentColor"},void 0)},void 0),qA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.56518 2.51687C5.29835 2.75702 5.27672 3.16801 5.51687 3.43484L9.62553 8.00001L5.51687 12.5652C5.27672 12.832 5.29835 13.243 5.56518 13.4832C5.83202 13.7233 6.243 13.7017 6.48315 13.4348L10.9832 8.43484C11.2056 8.18764 11.2056 7.81238 10.9832 7.56518L6.48315 2.56518C6.243 2.29835 5.83202 2.27672 5.56518 2.51687Z",fill:"currentColor"},void 0)},void 0),KA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.58839 5.49693C7.82783 5.30103 8.17216 5.30103 8.4116 5.49693L13.9116 9.99693C14.1894 10.2243 14.2304 10.6338 14.0031 10.9116C13.7757 11.1894 13.3662 11.2304 13.0884 11.0031L8 6.83985L2.9116 11.0031C2.63376 11.2304 2.22425 11.1894 1.99692 10.9116C1.7696 10.6338 1.81055 10.2243 2.08839 9.99693L7.58839 5.49693Z",fill:"currentColor"},void 0)},void 0),ia=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.58839 11.0031C7.82783 11.199 8.17216 11.199 8.4116 11.0031L13.9116 6.50307C14.1894 6.27574 14.2304 5.86623 14.0031 5.58839C13.7757 5.31055 13.3662 5.2696 13.0884 5.49692L8 9.66016L2.9116 5.49692C2.63376 5.2696 2.22425 5.31055 1.99692 5.58839C1.7696 5.86623 1.81055 6.27574 2.08839 6.50307L7.58839 11.0031Z",fill:"currentColor"},void 0)},void 0),ZA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.3758 3.37871C13.5718 3.18427 13.5732 2.86769 13.3787 2.67161C13.1843 2.47553 12.8677 2.47421 12.6716 2.66865L7.21656 8.07829C5.97323 6.96347 4.06051 7.00362 2.8654 8.19873C1.62874 9.43539 1.62874 11.4404 2.8654 12.6771C4.10206 13.9137 6.10708 13.9137 7.34374 12.6771C8.37873 11.6421 8.54751 10.0689 7.85009 8.85838L9.64093 7.08244L11.3233 8.76477C11.5185 8.96003 11.8351 8.96003 12.0304 8.76477C12.2256 8.56951 12.2256 8.25292 12.0304 8.05766L10.351 6.37829L11.3316 5.40586L13.0068 7.08109C13.2021 7.27636 13.5187 7.27636 13.7139 7.08109C13.9092 6.88583 13.9092 6.56925 13.7139 6.37399L12.0417 4.70171L13.3758 3.37871ZM3.5725 8.90584C4.41864 8.0597 5.7905 8.0597 6.63663 8.90584C7.48277 9.75197 7.48277 11.1238 6.63663 11.97C5.7905 12.8161 4.41864 12.8161 3.5725 11.97C2.72637 11.1238 2.72637 9.75197 3.5725 8.90584Z",fill:"currentColor"},void 0)},void 0),QA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8 3.69999C5.62518 3.69999 3.7 5.62516 3.7 7.99999C3.7 10.3748 5.62518 12.3 8 12.3C9.20303 12.3 10.2896 11.8069 11.0709 11.01C11.3415 10.7339 11.7847 10.7295 12.0608 11.0001C12.3368 11.2708 12.3412 11.7139 12.0706 11.99C11.0369 13.0445 9.59437 13.7 8 13.7C4.85198 13.7 2.3 11.148 2.3 7.99999C2.3 4.85196 4.85198 2.29999 8 2.29999C11.148 2.29999 13.7 4.85196 13.7 7.99999C13.7 8.38659 13.3866 8.69999 13 8.69999C12.6134 8.69999 12.3 8.38659 12.3 7.99999C12.3 5.62516 10.3748 3.69999 8 3.69999Z",fill:"currentColor"},void 0)},void 0),YA=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{d:"M8 7.35C8.35898 7.35 8.65 7.64102 8.65 8V10.5C8.65 10.859 8.35898 11.15 8 11.15C7.64102 11.15 7.35 10.859 7.35 10.5V8C7.35 7.64102 7.64102 7.35 8 7.35Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M8.65 5.5C8.65 5.14101 8.35898 4.85 8 4.85C7.64102 4.85 7.35 5.14102 7.35 5.5V5.6C7.35 5.95898 7.64102 6.25 8 6.25C8.35898 6.25 8.65 5.95898 8.65 5.6V5.5Z",fill:"currentColor"},void 0),g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8ZM8 2.5C4.96243 2.5 2.5 4.96243 2.5 8C2.5 11.0376 4.96243 13.5 8 13.5C11.0376 13.5 13.5 11.0376 13.5 8C13.5 4.96243 11.0376 2.5 8 2.5Z",fill:"currentColor"},void 0)]},void 0),Rm=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM8 7.38747C8.33828 7.38747 8.6125 7.6617 8.6125 7.99997V10.5521C8.6125 10.8903 8.33828 11.1646 8 11.1646C7.66173 11.1646 7.3875 10.8903 7.3875 10.5521V7.99997C7.3875 7.6617 7.66173 7.38747 8 7.38747ZM8.6125 5.44789C8.6125 5.10962 8.33828 4.83539 8 4.83539C7.66173 4.83539 7.3875 5.10962 7.3875 5.44789V5.54997C7.3875 5.88825 7.66173 6.16247 8 6.16247C8.33828 6.16247 8.6125 5.88825 8.6125 5.54997V5.44789Z",fill:"currentColor"},void 0)},void 0),V_=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.14215 1.67713C8.64833 0.774291 7.35164 0.774289 6.85782 1.67713L1.16152 12.0915C0.686995 12.9591 1.31483 14.0181 2.30368 14.0181H13.6963C14.6851 14.0181 15.313 12.9591 14.8385 12.0915L9.14215 1.67713ZM8.00002 5.28887C8.3336 5.28887 8.60402 5.55929 8.60402 5.89287V8.40953C8.60402 8.74311 8.3336 9.01353 8.00002 9.01353C7.66644 9.01353 7.39602 8.74311 7.39602 8.40953V5.89287C7.39602 5.55929 7.66644 5.28887 8.00002 5.28887ZM8.60402 10.9262C8.60402 10.5926 8.3336 10.3222 8.00002 10.3222C7.66644 10.3222 7.39602 10.5926 7.39602 10.9262V11.0269C7.39602 11.3604 7.66644 11.6309 8.00002 11.6309C8.3336 11.6309 8.60402 11.3604 8.60402 11.0269V10.9262Z",fill:"currentColor"},void 0)},void 0),W_=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM5.52524 5.5252C5.76443 5.28601 6.15224 5.28601 6.39144 5.5252L8 7.13377L9.60857 5.5252C9.84776 5.28601 10.2356 5.28601 10.4748 5.5252C10.714 5.7644 10.714 6.15221 10.4748 6.39141L8.86621 7.99997L10.4748 9.60854C10.714 9.84773 10.714 10.2355 10.4748 10.4747C10.2356 10.7139 9.84776 10.7139 9.60857 10.4747L8 8.86618L6.39144 10.4747C6.15224 10.7139 5.76443 10.7139 5.52524 10.4747C5.28604 10.2355 5.28604 9.84773 5.52524 9.60854L7.1338 7.99997L5.52524 6.39141C5.28604 6.15221 5.28604 5.7644 5.52524 5.5252Z",fill:"currentColor"},void 0)},void 0),U_=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8 15C11.866 15 15 11.866 15 8C15 4.13401 11.866 1 8 1C4.13401 1 1 4.13401 1 8C1 11.866 4.13401 15 8 15ZM10.9852 6.39141C11.2244 6.15221 11.2244 5.7644 10.9852 5.5252C10.746 5.28601 10.3582 5.28601 10.119 5.5252L6.97916 8.66502L5.88102 7.56687C5.64182 7.32767 5.25401 7.32767 5.01481 7.56687C4.77561 7.80607 4.77561 8.19388 5.01481 8.43308L6.54606 9.96433C6.78526 10.2035 7.17307 10.2035 7.41227 9.96433L10.9852 6.39141Z",fill:"currentColor"},void 0)},void 0),XA=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.97302 2.34713C4.9413 2.02437 6.24717 1.83331 7.66667 1.83331C9.08617 1.83331 10.392 2.02437 11.3603 2.34713C11.8419 2.50764 12.2676 2.70978 12.5832 2.95853C12.8932 3.20284 13.1667 3.551 13.1667 3.99998V7.66667C13.1667 7.94281 12.9428 8.16667 12.6667 8.16667C12.3905 8.16667 12.1667 7.94281 12.1667 7.66667V5.31162C11.9268 5.44159 11.654 5.55495 11.3603 5.65283C10.392 5.97559 9.08617 6.16665 7.66667 6.16665C6.24717 6.16665 4.9413 5.97559 3.97302 5.65283C3.67939 5.55495 3.4065 5.44159 3.16667 5.31162V8C3.16667 8.16593 3.30186 8.46432 4.04786 8.73916C4.76055 9.00173 5.8604 9.16667 7.33334 9.16667C7.60948 9.16667 7.83334 9.39052 7.83334 9.66667C7.83334 9.94281 7.60948 10.1667 7.33334 10.1667C5.80628 10.1667 4.57279 9.99827 3.70215 9.6775C3.51458 9.6084 3.33399 9.52793 3.16667 9.43528V12C3.16667 12.0015 3.16776 12.0908 3.3783 12.2489C3.58092 12.401 3.9071 12.5595 4.35844 12.7016C5.25531 12.9838 6.53536 13.1667 8.00001 13.1667C8.27615 13.1667 8.50001 13.3905 8.50001 13.6667C8.50001 13.9428 8.27615 14.1667 8.00001 14.1667C6.46465 14.1667 5.07803 13.9764 4.05824 13.6554C3.55124 13.4959 3.10659 13.2953 2.77796 13.0486C2.45726 12.8079 2.16667 12.4587 2.16667 12V4C2.16667 3.55102 2.44011 3.20284 2.75011 2.95853C3.06574 2.70978 3.49149 2.50764 3.97302 2.34713ZM3.36908 3.74394C3.17306 3.89843 3.16667 3.98873 3.16667 3.99998C3.16667 4.01123 3.17306 4.10153 3.36908 4.25601C3.55947 4.40606 3.86596 4.56305 4.28925 4.70415C5.13061 4.9846 6.32474 5.16665 7.66667 5.16665C9.0086 5.16665 10.2027 4.9846 11.0441 4.70415C11.4674 4.56305 11.7739 4.40606 11.9643 4.25601C12.1603 4.10153 12.1667 4.01123 12.1667 3.99998C12.1667 3.98873 12.1603 3.89843 11.9643 3.74394C11.7739 3.5939 11.4674 3.43691 11.0441 3.29581C10.2027 3.01536 9.0086 2.83331 7.66667 2.83331C6.32474 2.83331 5.13061 3.01536 4.28925 3.29581C3.86596 3.43691 3.55947 3.5939 3.36908 3.74394Z",fill:"currentColor"},void 0),g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.8444 12.1373C13.0486 11.8068 13.1667 11.4169 13.1667 11C13.1667 9.80338 12.1966 8.83331 11 8.83331C9.80339 8.83331 8.83333 9.80338 8.83333 11C8.83333 12.1966 9.80339 13.1666 11 13.1666C11.4169 13.1666 11.8068 13.0486 12.1373 12.8444L13.3131 14.0202C13.5084 14.2155 13.825 14.2155 14.0202 14.0202C14.2155 13.8249 14.2155 13.5084 14.0202 13.3131L12.8444 12.1373ZM9.83333 11C9.83333 10.3557 10.3557 9.83331 11 9.83331C11.6443 9.83331 12.1667 10.3557 12.1667 11C12.1667 11.3223 12.0366 11.6133 11.825 11.8249C11.6133 12.0366 11.3223 12.1666 11 12.1666C10.3557 12.1666 9.83333 11.6443 9.83333 11Z",fill:"currentColor"},void 0)]},void 0),JA=e=>{const{severity:t="info"}=e;return{error:g.jsx(W_,{size:14},void 0),info:g.jsx(Rm,{size:14},void 0),success:g.jsx(U_,{size:14},void 0),warning:g.jsx(V_,{size:14},void 0),regular:g.jsx(Rm,{size:14},void 0),gradient:g.jsx(g.Fragment,{},void 0)}[t]||g.jsx(g.Fragment,{},void 0)},eN="_wrapper_f0zdf_1",tN={wrapper:eN},bp=e=>{const{title:t,sx:n={},PopperProps:r={},margin:o=12,...i}=e,a=zt();return g.jsx(a7,{PopperProps:{sx:{'&.MuiTooltip-popper[data-popper-placement*="top"]':{".MuiTooltip-tooltip":{marginBottom:`${o}px`}},'&.MuiTooltip-popper[data-popper-placement*="bottom"]':{".MuiTooltip-tooltip":{marginTop:`${o}px`}},'&.MuiTooltip-popper[data-popper-placement*="left"]':{".MuiTooltip-tooltip":{marginRight:`${o}px`}},'&.MuiTooltip-popper[data-popper-placement*="right"]':{".MuiTooltip-tooltip":{marginLeft:`${o}px`}},".MuiTooltip-tooltip":{borderRadius:"6px",boxShadow:" 0px 1px 10px 0px rgba(107, 121, 141, 0.30)",backgroundColor:"#fff",padding:"12px",color:a.black.black1,fontSize:12,lineHeight:"16px",fontWeight:400},"> * > .MuiTooltip-arrow":{color:"#fff"},...n},...r},title:t,arrow:!0,...i},void 0)},Mc=({tooltip:e,children:t,classes:n={root:""}})=>{const{title:r="",...o}=e||{};return e?g.jsx(bp,{title:r,...o,children:g.jsx("span",{className:Gt(tN.wrapper,n.root),children:t},void 0)},void 0):g.jsx(g.Fragment,{children:t},void 0)},nN="_zButton_2ljo4_3",rN="_disabled_2ljo4_16",oN="_xlarge_2ljo4_25",iN="_large_2ljo4_26",aN="_medium_2ljo4_27",sN="_small_2ljo4_58",lN="_tiny_2ljo4_74",cN="_contained_2ljo4_92",uN="_outlined_2ljo4_105",dN="_noShadow_2ljo4_111",fN="_danger_2ljo4_126",pN="_textBlue_2ljo4_135",gN="_noMargin_2ljo4_143",hN="_textBlack_2ljo4_159",mN="_textGhost_2ljo4_183",vN="_text_2ljo4_135",yN="_link_2ljo4_206",nn={zButton:nN,disabled:rN,xlarge:oN,large:iN,medium:aN,small:sN,tiny:lN,contained:cN,outlined:uN,noShadow:dN,danger:fN,textBlue:pN,noMargin:gN,textBlack:hN,textGhost:mN,text:vN,link:yN},L1=e=>{const{danger:t=!1,sx:n,loading:r,disabled:o=!1,activeIconStyle:i,tooltip:a,children:s,isLinkButton:l=!1,size:c="medium",variant:u="contained",withMargin:d=!0,withShadow:f=!0,className:p,...h}=e,y=r?!0:o,w=b.useMemo(()=>a?{PopperProps:{modifiers:[{name:"offset",options:{offset:[0,8]}}]},...a}:void 0,[a]),v=b.useMemo(()=>c==="xs"||c==="small"?"4px":"6px",[c]);return g.jsx(Mc,{tooltip:w,children:g.jsx(zI,{className:Gt(nn.zButton,{[nn.xlarge]:c==="xl",[nn.large]:c==="large",[nn.medium]:c==="medium",[nn.small]:c==="small",[nn.tiny]:c==="xs",[nn.contained]:u==="contained",[nn.outlined]:u==="outlined",[nn.danger]:t,[nn.textBlue]:u==="textBlue",[nn.textBlack]:u==="textBlack",[nn.textGhost]:u==="textGhost",[nn.text]:u==="text",[nn.link]:l,[nn.disabled]:y,[nn.noMargin]:!d,[nn.noShadow]:!f},p),sx:{" .MuiButton-startIcon":{marginLeft:0,marginRight:v}," .MuiButton-endIcon":{marginRight:0,marginLeft:v},...n},disableRipple:!0,disabled:y,variant:u,...h,children:r?g.jsxs(s7,{direction:"row",spacing:r?1:0,style:{alignItems:"center"},children:[g.jsx(Lr,{sx:{display:"flex","@keyframes rotate":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}},style:{color:"white",animation:`${r?"rotate 1s linear infinite":""}`},children:r&&g.jsx(QA,{},void 0)},void 0),g.jsx(mt,{component:"span",sx:{color:"inherit",fontSize:"inherit",fontWeight:"inherit",lineHeight:"inherit"},children:s},void 0)]},void 0):s},void 0)},void 0)};L1.displayName="ZButton";const bN="_zIconButton_1y2v2_3",xN="_disabled_1y2v2_7",SN="_withMargin_1y2v2_13",wN="_noMargin_1y2v2_19",CN="_withBorder_1y2v2_28",_N="_large_1y2v2_37",RN="_medium_1y2v2_38",TN="_small_1y2v2_49",PN="_xs_1y2v2_60",uo={zIconButton:bN,disabled:xN,withMargin:SN,noMargin:wN,withBorder:CN,large:_N,medium:RN,small:TN,xs:PN},A1=e=>{const{activeStyle:t={},sx:n,tooltip:r,size:o="medium",disabled:i,withBorder:a=!1,withMargin:s=!0,className:l,...c}=e;return g.jsx(Mc,{tooltip:r,children:g.jsx(hr,{className:Gt(uo.zIconButton,l,{[uo.large]:o==="large"||o==="xl",[uo.medium]:o==="medium",[uo.small]:o==="small",[uo.xs]:o==="xs",[uo.disabled]:i,[uo.withBorder]:a,[uo.withMargin]:s,[uo.noMargin]:!s}),disabled:i,sx:n,disableRipple:!0,...c},void 0)},void 0)},kN=b.forwardRef(function(t,n){return g.jsx(y_,{ref:n,...t},void 0)}),N1=e=>{const{open:t=!0,handleClose:n,children:r,severity:o="info",action:i,buttonProps:a,icon:s,...l}=e,c=zt(),u={regular:{icon:c.black.black3,text:c.black.black1,border:c.stroke.stroke1,background:c.black.black5,actionHover:c.black.black2},info:{icon:c.blue.blue1,text:c.blue.dark2,border:c.blue.blue3,background:c.blue.blue4,actionHover:c.blue.dark1},success:{icon:c.green.green1,text:c.green.green1,border:c.green.green3,background:c.green.green4,actionHover:c.green.green2},warning:{icon:c.yellow.yellow2,text:c.yellow.yellow1,border:c.yellow.yellow3,background:c.yellow.yellow4,actionHover:c.yellow.yellow2},error:{icon:c.red.red2,text:c.red.red1,border:c.red.red3,background:c.red.red4,actionHover:c.red.red2},gradient:{icon:c.black.black1,text:c.black.black1,border:"transparent",background:"linear-gradient(118deg, rgba(0, 239, 139, 0.10) 0.51%, rgba(0, 68, 228, 0.10) 36.98%, rgba(205, 63, 255, 0.10) 72.73%);",actionHover:"transparent"}},d=()=>{n&&n()},f=b.useMemo(()=>u[o],[o,u]);return g.jsx(ps,{in:t,children:g.jsx(kN,{severity:o,sx:{"&.MuiPaper-root":{display:"flex",alignItems:"flex-start",padding:"12px",background:f.background,borderRadius:"12px",border:"1px solid",borderColor:f.border},"& .MuiAlert-message":{padding:0,color:f.text,fontSize:"13px",lineHeight:"135%",fontWeight:400},"& .MuiAlert-action":{padding:0,marginRight:0,display:"flex",alignItems:"center"},"& .MuiAlert-icon":{padding:0,marginRight:"8px",marginTop:"2px",color:f.icon,opacity:1}},icon:s||g.jsx(JA,{severity:o},void 0),action:g.jsxs(Lr,{children:[i&&g.jsx(L1,{size:"small",variant:"outlined",withShadow:!1,sx:{"&.MuiButtonBase-root.MuiButton-outlined":{borderColor:f.text,backgroundColor:"transparent",minWidth:56,".MuiTypography-root":{color:f.text},"&:hover":{borderColor:f.actionHover,backgroundColor:"transparent",".MuiTypography-root":{color:f.actionHover}}}},onClick:i.onClick,...a,children:g.jsx(mt,{variant:"body2Medium",component:"div",children:i.label},void 0)},void 0),n&&g.jsx(A1,{sx:{"&.MuiButtonBase-root.MuiIconButton-root":{marginLeft:"12px","&:hover":{backgroundColor:"transparent","svg.MuiSvgIcon-root":{path:{fill:f.actionHover}}}},"svg.MuiSvgIcon-root":{path:{fill:f.text}}},size:"small",onClick:d,children:g.jsx(O1,{size:14},void 0)},void 0)]},void 0),...l,children:r},void 0)},void 0)};var Ae;(function(e){e[e.Sunday=0]="Sunday",e[e.Monday=1]="Monday",e[e.Tuesday=2]="Tuesday",e[e.Wednesday=3]="Wednesday",e[e.Thursday=4]="Thursday",e[e.Friday=5]="Friday",e[e.Saturday=6]="Saturday",e[e.RelativeRange=7]="RelativeRange",e[e.AbsoluteRange=8]="AbsoluteRange",e[e.Reset=9]="Reset",e[e.Or=10]="Or",e[e.Copy=11]="Copy",e[e.Copied=12]="Copied",e[e.HidePwd=13]="HidePwd",e[e.ShowPwd=14]="ShowPwd",e[e.StartDay=15]="StartDay",e[e.EndDay=16]="EndDay",e[e.StartTime=17]="StartTime",e[e.EndTime=18]="EndTime",e[e.NoRows=19]="NoRows",e[e.NoOptions=20]="NoOptions"})(Ae||(Ae={}));const $N={[Ae.Sunday]:"日",[Ae.Monday]:"一",[Ae.Tuesday]:"二",[Ae.Wednesday]:"三",[Ae.Thursday]:"四",[Ae.Friday]:"五",[Ae.Saturday]:"六",[Ae.RelativeRange]:"相对范围",[Ae.AbsoluteRange]:"绝对范围",[Ae.Reset]:"重置",[Ae.Or]:"或",[Ae.Copy]:"复制",[Ae.Copied]:"已复制",[Ae.HidePwd]:"隐藏密码",[Ae.ShowPwd]:"展示密码",[Ae.StartDay]:"开始日期",[Ae.EndDay]:"结束日期",[Ae.StartTime]:"开始时间",[Ae.EndTime]:"结束时间",[Ae.NoRows]:"无记录",[Ae.NoOptions]:"无数据"},EN={[Ae.Sunday]:"S",[Ae.Monday]:"M",[Ae.Tuesday]:"T",[Ae.Wednesday]:"W",[Ae.Thursday]:"T",[Ae.Friday]:"F",[Ae.Saturday]:"S",[Ae.RelativeRange]:"Relative Range",[Ae.AbsoluteRange]:"Absolute Range",[Ae.Reset]:"Reset",[Ae.Or]:" or ",[Ae.Copy]:"Copy",[Ae.Copied]:"Copied",[Ae.HidePwd]:"Hide password",[Ae.ShowPwd]:"Show password",[Ae.StartDay]:"Start date",[Ae.EndDay]:"End date",[Ae.StartTime]:"Start time",[Ae.EndTime]:"End time",[Ae.NoRows]:"No Data",[Ae.NoOptions]:"No Options"},Kd=(e,t)=>t==="zhCN"?$N[e]:EN[e],MN=b.forwardRef((e,t)=>{const[n,r]=b.useState(!1),[o,i]=b.useState(!1),{onChange:a,inputProps:s={},enableAutocomplete:l=!1,...c}=e,u=b.useMemo(()=>l?{}:{autoComplete:"new-password"},[l]),d=()=>{o&&r(!n)},f=v=>{const{value:S}=v.target;i(S!==""),a&&a(v)},p=zt(),h=p.language,y=Kd(Ae.HidePwd,h),w=Kd(Ae.ShowPwd,h);return g.jsx(Zd,{inputType:n?"text":"password",prefixComponent:g.jsx(ZA,{size:e.size==="small"?12:14,style:{color:p.black.black2}},void 0),suffix:g.jsx(bp,{title:o?n?y:w:"",placement:"bottom",children:g.jsx(hr,{disableRipple:!0,sx:{padding:0,opacity:o?1:0,cursor:o?"pointer":"default","&:hover":{svg:{color:p.black.black2}}},"aria-label":"toggle password visibility",onClick:d,children:n?g.jsx(UA,{size:e.size==="small"?12:14,sx:{color:p.black.black1}},void 0):g.jsx(WA,{size:e.size==="small"?12:14,sx:{color:p.black.black1}},void 0)},void 0)},void 0),ref:t,onChange:f,inputProps:{...u,...s},...c},void 0)});var Mi;(function(e){e.default="default",e.password="pwd",e.number="number",e.suffixSelect="suffixSelect"})(Mi||(Mi={}));const IN="_button_n3sxg_3",ON="_disabled_n3sxg_16",LN="_text_n3sxg_23",AN="_parentInputDisabled_n3sxg_30",NN="_icon_n3sxg_41",DN="_smallButton_n3sxg_46",jN="_input_n3sxg_50",FN="_inputFocus_n3sxg_56",BN="_paper_n3sxg_63",zN="_menu_n3sxg_67",HN="_menuItem_n3sxg_71",VN="_selected_n3sxg_83",WN="_menuList_n3sxg_89",Wn={button:IN,disabled:ON,text:LN,parentInputDisabled:AN,icon:NN,smallButton:DN,input:jN,inputFocus:FN,paper:BN,menu:zN,menuItem:HN,selected:VN,menuList:WN},UN=({options:e=[],onSelectChange:t,defaultSelectedValue:n="",classes:r={label:"",menuRoot:"",menuList:"",menuItem:"",menuPaper:""},setIsSelectActive:o,disabled:i=!1,inputDisabled:a,size:s})=>{const[l,c]=b.useState(null),[u,d]=b.useState("");b.useEffect(()=>{const y=e.find(v=>v.value===n),w=(y==null?void 0:y.label)||"";d(w)},[n]);const f=()=>{c(null),o&&o(!1)},p=y=>{i||(c(y.currentTarget),o&&o(!0))},h=y=>{t&&t(y.value),d(y.label),f()};return g.jsxs(g.Fragment,{children:[g.jsxs(mt,{role:"button",component:"div",className:Gt(Wn.button,{[Wn.smallButton]:s==="small",[Wn.disabled]:i,[Wn.parentInputDisabled]:a},r.label),onClick:p,children:[g.jsx(mt,{variant:"body1",className:Wn.text,children:u},void 0),!i&&g.jsx(ia,{size:14,className:Wn.icon},void 0)]},void 0),g.jsx(E1,{open:!!l,anchorEl:l,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},onClose:f,classes:{root:Gt(Wn.menu,r.menuRoot),paper:Gt(Wn.paper,r.menuPaper),list:Gt(Wn.menuList,r.menuList)},children:e.map(y=>g.jsx($c,{sx:{"&.Mui-selected.Mui-focusVisible":{backgroundColor:"#fff"}},className:Gt(Wn.menuItem,{[Wn.selected]:u===y.label},r.menuItem),onClick:()=>h(y),children:y.label},y.value))},void 0)]},void 0)},GN=b.forwardRef((e,t)=>{const{options:n,onSelectChange:r,defaultSelectedValue:o,selectClasses:i,disableSelect:a,disabled:s=!1,size:l,...c}=e,[u,d]=b.useState(!1);return g.jsx(Zd,{className:Gt(Wn.input,{[Wn.inputFocus]:u}),disabled:s,size:l,suffix:g.jsx(UN,{options:n,onSelectChange:r,defaultSelectedValue:o,classes:i,setIsSelectActive:d,disabled:a,inputDisabled:s,size:l},void 0),ref:t,...c},void 0)}),qN=e=>({"& .MuiFormHelperText-root":{margin:"4px 0 0 0",color:e.black.black3,fontSize:12,lineHeight:"135%","&.Mui-error":{color:e.red.red1}}}),pr="0px 1px 2px 4px rgba(33, 37, 44, 0.08)",aa="0px 1px 2px 0px rgba(33, 37, 44, 0.08)",KN=(e,t)=>({borderRadius:t==="small"?"6px":"8px","& .MuiOutlinedInput-notchedOutline":{borderColor:e.stroke.stroke1,boxShadow:aa,transition:"all 0.2s"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"transparent",borderWidth:1,boxShadow:`0px 0px 0px 4px ${e.blue.blue4}, ${pr}`},"&.Mui-disabled":{"& .MuiOutlinedInput-input":{zIndex:"1","::-webkit-input-placeholder":{color:e.black.black3,opacity:"1"}},"& .MuiOutlinedInput-notchedOutline":{borderColor:e.stroke.stroke1,backgroundColor:e.black.black5,borderWidth:1},"&:hover .MuiOutlinedInput-notchedOutline":{boxShadow:aa}},"&.Mui-focused":{"& .MuiOutlinedInput-notchedOutline":{borderColor:e.blue.blue1,borderWidth:1,boxShadow:`0px 0px 0px 4px ${e.blue.blue4}, ${pr}`}},"&.Mui-focused.Mui-error":{"& .MuiOutlinedInput-notchedOutline":{boxShadow:`0px 0px 0px 4px ${e.red.red4}, ${pr}`}},"&.Mui-error":{"& .MuiOutlinedInput-notchedOutline":{borderColor:e.red.red2},"&:hover .MuiOutlinedInput-notchedOutline":{boxShadow:`0px 0px 0px 4px ${e.red.red4}, ${pr}`}}}),ZN=(e,t,n)=>({height:n==="small"?"28px":"36px",boxSizing:"border-box",padding:t?n==="small"?"4px 10px 4px 4px":"8px 12px 8px 4px":n==="small"?"4px 10px":"8px 12px",fontSize:n==="small"?13:14,fontWeight:400,color:e.black.black1,caretColor:e.black.black1,"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #fff inset",WebkitTextFillColor:e.black.black1},"&[type=password]":{WebkitTextStrokeWidth:"2.8px",letterSpacing:"4px"},"&[type=number]::-webkit-outer-spin-button, &[type=number]::-webkit-inner-spin-button":{WebkitAppearance:"none",margin:0}}),QN=(e,t,n,r)=>{let o=KN(e,r);return t&&(o={...o,paddingRight:r==="small"?"8px":"12px"}),n&&(o={...o,paddingLeft:"12px"}),o},Zd=b.forwardRef((e,t)=>{const{label:n,labelPosition:r="top",labelClassName:o="",wrapperClassName:i="",suffix:a=null,prefixComponent:s=null,inputType:l="text",inputProps:c,size:u="medium",...d}=e,{sx:f={},...p}=c||{},h=zt();return g.jsxs(Lr,{sx:{display:"flex",alignItems:r==="top"?"flex-start":"center",gap:2,flexDirection:r==="top"?"column":"row"},className:i,children:[n?g.jsx(mt,{component:"div",variant:"h4Medium",className:o,children:n},void 0):null,g.jsx(jA,{InputProps:{sx:QN(h,a,s,u),endAdornment:a,startAdornment:s,type:l},inputProps:{sx:{...ZN(h,s,u),...f},ref:t,...p},sx:qN(h),...d},void 0)]},void 0)}),D1=b.forwardRef((e,t)=>{const{inputComponentType:n=Mi.default,...r}=e,i={[Mi.default]:Zd,[Mi.password]:MN,[Mi.number]:Zd,[Mi.suffixSelect]:GN}[n];return g.jsx(i,{ref:t,...r},void 0)}),YN="_root_903dp_3",XN="_label_903dp_6",JN="_checkboxIcon_903dp_19",e9="_inner_903dp_20",t9="_checkbox_903dp_19",n9="_disabledCheckbox_903dp_49",r9="_disabled_903dp_49",o9="_indeterminate_903dp_83",i9="_checked_903dp_84",Ir={root:YN,label:XN,checkboxIcon:JN,inner:e9,checkbox:t9,disabledCheckbox:n9,disabled:r9,indeterminate:o9,checked:i9},ux=e=>g.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:e.children},void 0),xg=e=>{const{checked:t=!1,indeterminate:n=!1,disabled:r=!1}=e;return g.jsx("div",{className:Gt(Ir.checkboxIcon,{[Ir.checked]:t,[Ir.indeterminate]:n,[Ir.disabled]:r}),children:g.jsxs("div",{className:Ir.inner,children:[t&&g.jsx(ux,{children:g.jsx("path",{d:"M1 4L3.66667 7.33333L9 2",stroke:"white",strokeWidth:"1.4"},void 0)},void 0),n&&g.jsx(ux,{children:g.jsx("path",{d:"M1.22876 4.66665L8.77124 4.66665",stroke:"white",strokeWidth:"1.4"},void 0)},void 0)]},void 0)},void 0)},dx=rt.forwardRef((e,t)=>{const{disabled:n,...r}=e;return g.jsx(tO,{ref:t,disableRipple:!0,disableTouchRipple:!0,disabled:n,icon:g.jsx(xg,{disabled:n},void 0),checkedIcon:g.jsx(xg,{checked:!0,disabled:n},void 0),indeterminateIcon:g.jsx(xg,{indeterminate:!0},void 0),classes:{root:Ir.checkbox,checked:Ir.checkedCheckbox,disabled:Ir.disabledCheckbox,indeterminate:Ir.indeterminateCheckbox},...r},void 0)}),Qd=rt.forwardRef(function(e,t){const{label:n="",disabled:r,...o}=e;return n?g.jsx(M_,{classes:{root:Ir.root},label:g.jsx(mt,{className:Ir.label,children:n},void 0),disabled:r,control:g.jsx(dx,{ref:t,...o},void 0)},void 0):g.jsx(dx,{ref:t,disabled:r,...o},void 0)});function a9(e){return e&&e.ownerDocument||document}function s9(e,t){typeof e=="function"?e(t):e&&(e.current=t)}const l9=typeof window<"u"?b.useLayoutEffect:b.useEffect;function c9(...e){return b.useMemo(()=>e.every(t=>t==null)?null:t=>{e.forEach(n=>{s9(n,t)})},e)}const fx=e=>e,u9=()=>{let e=fx;return{configure(t){e=t},generate(t){return e(t)},reset(){e=fx}}},d9=u9(),f9={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function G_(e,t,n="Mui"){const r=f9[t];return r?`${n}-${r}`:`${d9.generate(e)}-${t}`}function p9(e,t,n="Mui"){const r={};return t.forEach(o=>{r[o]=G_(e,o,n)}),r}function dc(e){"@babel/helpers - typeof";return dc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},dc(e)}function g9(e,t){if(dc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(dc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function h9(e){var t=g9(e,"string");return dc(t)=="symbol"?t:t+""}const m9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"መንገድ አሳይ"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ወደ መጀመሪያው ገጽ ይሂዱ":e==="last"?"ወደ መጨረሻው ገጽ ይሂዱ":e==="next"?"ወደ ቀጣዩ ገጽ ይሂዱ":"ወደ ቀዳሚው ገጽ ይሂዱ",labelRowsPerPage:"ረድፎች በአንድ ገጽ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t} ከ ${n!==-1?n:`${t} በላይ`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ኮከ${e!==1?"ቦች":"ብ"}`,emptyLabelText:"ባዶ"}},MuiAutocomplete:{defaultProps:{clearText:"አጽዳ",closeText:"ዝጋ",loadingText:"በመጫን ላይ…",noOptionsText:"አማራጮች የሉም",openText:"ክፈት"}},MuiAlert:{defaultProps:{closeText:"ዝጋ"}},MuiPagination:{defaultProps:{"aria-label":"የገጽ አሰሳ",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ወደ "}ገጽ ${t}${n?"":" ሂድ"}`:e==="first"?"ወደ መጀመሪያው ገጽ ይሂዱ":e==="last"?"ወደ መጨረሻው ገጽ ይሂዱ":e==="next"?"ወደ ቀጣዩ ገጽ ይሂዱ":"ወደ ቀዳሚው ገጽ ይሂዱ"}}}},v9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"إظهار المسار"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل إلى الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة",labelRowsPerPage:"عدد الصفوف في الصفحة:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} من ${n!==-1?n:` أكثر من${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"نجوم":"نجمة"}`,emptyLabelText:"فارغ"}},MuiAutocomplete:{defaultProps:{clearText:"مسح",closeText:"إغلاق",loadingText:"جار التحميل...",noOptionsText:"لا يوجد خيارات",openText:"فتح"}},MuiAlert:{defaultProps:{closeText:"إغلاق"}},MuiPagination:{defaultProps:{"aria-label":"التنقل عبر الصفحات",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"انتقل إلى "} صفحة ${t}`:e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل إلى الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة"}}}},y9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"إظهار المسار"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"الانتقال إلى الصفحة الأولى":e==="last"?"الانتقال إلى الصفحة الأخيرة":e==="next"?"الانتقال إلى الصفحة التالية":"الانتقال إلى الصفحة السابقة",labelRowsPerPage:"عدد الصفوف في الصفحة:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} من ${n!==-1?n:` أكثر من${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"نجوم":"نجمة"}`,emptyLabelText:"فارغ"}},MuiAutocomplete:{defaultProps:{clearText:"مسح",closeText:"إغلاق",loadingText:"جار التحميل...",noOptionsText:"لا توجد خيارات",openText:"فتح"}},MuiAlert:{defaultProps:{closeText:"إغلاق"}},MuiPagination:{defaultProps:{"aria-label":"التنقل عبر الصفحات",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"الانتقال إلى "} صفحة ${t}`:e==="first"?"الانتقال إلى الصفحة الأولى":e==="last"?"الانتقال الي الصفحة الأخيرة":e==="next"?"الانتقال إلى الصفحة التالية":"الانتقال إلى الصفحة السابقة"}}}},b9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"إظهار المسار"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل إلى الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة",labelRowsPerPage:"عدد الصفوف في الصفحة:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} من ${n!==-1?n:` أكثر من${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"نجوم":"نجمة"}`,emptyLabelText:"فارغ"}},MuiAutocomplete:{defaultProps:{clearText:"مسح",closeText:"إغلاق",loadingText:"جار التحميل...",noOptionsText:"لا يوجد خيارات",openText:"فتح"}},MuiAlert:{defaultProps:{closeText:"إغلاق"}},MuiPagination:{defaultProps:{"aria-label":"التنقل عبر الصفحات",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"انتقل إلى "} صفحة ${t}`:e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل الي الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة"}}}},x9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Yolu göstər"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Birinci səhifəyə keç":e==="last"?"Sonuncu səhifəyə keç":e==="next"?"Növbəti səhifəyə keç":"Əvvəlki səhifəyə keç",labelRowsPerPage:"Səhifəyə düşən sətrlər:"}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Ulduz";const n=e%10;return n>1&&n<5&&(t="Ulduzlar"),`${e} ${t}`},emptyLabelText:"Boş"}},MuiAutocomplete:{defaultProps:{clearText:"Silmək",closeText:"Bağlamaq",loadingText:"Yüklənir…",noOptionsText:"Seçimlər mövcud deyil",openText:"Открыть"}},MuiAlert:{defaultProps:{closeText:"Bağlamaq"}},MuiPagination:{defaultProps:{"aria-label":"Səhifənin naviqasiyası",getItemAriaLabel:(e,t,n)=>e==="page"?`${t} ${n?"səhifə":"səhifəyə keç"}`:e==="first"?"Birinci səhifəyə keç":e==="last"?"Sonuncu səhifəyə keç":e==="next"?"Növbəti səhifəyə keç":"Əvvəlki səhifəyə keç"}}}},S9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"পথ দেখান"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"প্রথম পৃষ্ঠায় যান":e==="last"?"শেষ পৃষ্ঠায় যান":e==="next"?"পরবর্তী পৃষ্ঠায় যান":"আগের পৃষ্ঠায় যান",labelRowsPerPage:"প্রতি পৃষ্ঠায় সারি:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`${t} থেকে বেশি`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} স্টার`,emptyLabelText:"খালি"}},MuiAutocomplete:{defaultProps:{clearText:"পরিষ্কার করুন",closeText:"বন্ধ করুন",loadingText:"লোড হচ্ছে…",noOptionsText:"কোন অপশন নেই",openText:"ওপেন করুন"}},MuiAlert:{defaultProps:{closeText:"বন্ধ করুন"}},MuiPagination:{defaultProps:{"aria-label":"পেজিনেশন নেভিগেশন",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"যান "}পৃষ্ঠা ${t}-এ`:e==="first"?"প্রথম পৃষ্ঠায় যান":e==="last"?"শেষ পৃষ্ঠায় যান":e==="next"?"পরবর্তী পৃষ্ঠায় যান":"আগের পৃষ্ঠায় যান"}}}},w9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Паказаць шлях"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Перайсці на першую старонку":e==="last"?"Перайсці на апошнюю старонку":e==="next"?"Перайсці на наступную старонку":"Перайсці на папярэднюю старонку",labelRowsPerPage:"Радкоў на старонцы:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} з ${n!==-1?n:`больш чым ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Зорак";const n=e%10;return n>1&&n<5&&(e<10||e>20)?t="Зоркі":n===1&&e%100!==11&&(t="Зорка"),`${e} ${t}`},emptyLabelText:"Рэйтынг адсутнічае"}},MuiAutocomplete:{defaultProps:{clearText:"Ачысціць",closeText:"Закрыць",loadingText:"Загрузка…",noOptionsText:"Няма варыянтаў",openText:"Адкрыць"}},MuiAlert:{defaultProps:{closeText:"Закрыць"}},MuiPagination:{defaultProps:{"aria-label":"Навігацыя па старонкам",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t} старонка`:`Перайсці на ${t} старонку`:e==="first"?"Перайсці на першую старонку":e==="last"?"Перайсці на апошнюю старонку":e==="next"?"Перайсці на наступную старонку":"Перайсці на папярэднюю старонку"}}}},C9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Показване на пътя"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Отиди на първата страница":e==="last"?"Отиди на последната страница":e==="next"?"Отиди на следващата страница":"Отиди на предишната страница",labelRowsPerPage:"Редове на страница:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Звезд${e!==1?"и":"а"}`,emptyLabelText:"Изчисти"}},MuiAutocomplete:{defaultProps:{clearText:"Изчисти",closeText:"Затвори",loadingText:"Зареждане…",noOptionsText:"Няма налични опции",openText:"Отвори"}},MuiAlert:{defaultProps:{closeText:"Затвори"}},MuiPagination:{defaultProps:{"aria-label":"Пагинация",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Към "}страница ${t}`:e==="first"?"Отиди на първата страница":e==="last"?"Отиди на последната страница":e==="next"?"Отиди на следващата страница":"Отиди на предишната страница"}}}},_9={components:{MuiTablePagination:{defaultProps:{labelRowsPerPage:"Files per pàgina:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"Estrelles":"Estrella"}`,emptyLabelText:"Buit"}},MuiAutocomplete:{defaultProps:{clearText:"Netejar",closeText:"Tancar",loadingText:"Carregant…",noOptionsText:"Sense opcions",openText:"Obert"}},MuiAlert:{defaultProps:{closeText:"Tancat"}}}},R9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Ukázat cestu"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Jít na první stránku":e==="last"?"Jít na poslední stránku":e==="next"?"Jít na další stránku":"Jít na předchozí stránku",labelRowsPerPage:"Řádků na stránce:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} z ${n!==-1?n:`více než ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>e===1?`${e} hvězdička`:e>=2&&e<=4?`${e} hvězdičky`:`${e} hvězdiček`,emptyLabelText:"Prázdné"}},MuiAutocomplete:{defaultProps:{clearText:"Vymazat",closeText:"Zavřít",loadingText:"Načítání…",noOptionsText:"Žádné možnosti",openText:"Otevřít"}},MuiAlert:{defaultProps:{closeText:"Zavřít"}},MuiPagination:{defaultProps:{"aria-label":"Navigace stránkováním",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Jít na "}${t}. stránku`:e==="first"?"Jít na první stránku":e==="last"?"Jít na poslední stránku":e==="next"?"Jít na další stránku":"Jít na předchozí stránku"}}}},T9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Vis sti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå til den første side":e==="last"?"Gå til den sidste side":e==="next"?"Gå til den næste side":"Gå til den forrige side",labelRowsPerPage:"Rækker pr side:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t} af ${n!==-1?n:`mere end ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stjern${e!==1?"er":""}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Slet",closeText:"Luk",loadingText:"Indlæser…",noOptionsText:"Ingen muligheder",openText:"Åben"}},MuiAlert:{defaultProps:{closeText:"Luk"}},MuiPagination:{defaultProps:{"aria-label":"Sideinddelings navigation",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Go to "}page ${t}`:e==="first"?"Gå til den første side":e==="last"?"Gå til den sidste side":e==="next"?"Gå til den næste side":"Gå til den forrige side"}}}},P9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pfad anzeigen"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Zur ersten Seite":e==="last"?"Zur letzten Seite":e==="next"?"Zur nächsten Seite":"Zur vorherigen Seite",labelRowsPerPage:"Zeilen pro Seite:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} von ${n!==-1?n:`mehr als ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"Sterne":"Stern"}`,emptyLabelText:"Keine Wertung"}},MuiAutocomplete:{defaultProps:{clearText:"Leeren",closeText:"Schließen",loadingText:"Wird geladen…",noOptionsText:"Keine Optionen",openText:"Öffnen"}},MuiAlert:{defaultProps:{closeText:"Schließen"}},MuiPagination:{defaultProps:{"aria-label":"Navigation via Seitennummerierung",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gehe zu "}Seite ${t}`:e==="first"?"Zur ersten Seite":e==="last"?"Zur letzten Seite":e==="next"?"Zur nächsten Seite":"Zur vorherigen Seite"}}}},k9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Εμφάνιση διαδρομής"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Πρώτη σελίδα":e==="last"?"Τελευταία σελίδα":e==="next"?"Επόμενη σελίδα":"Προηγούμενη σελίδα",labelRowsPerPage:"Γραμμές ανα σελίδα:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} από ${n!==-1?n:`πάνω από ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Αστέρι${e!==1?"α":""}`,emptyLabelText:"Χωρίς βαθμολόγηση"}},MuiAutocomplete:{defaultProps:{clearText:"Καθαρισμός",closeText:"Κλείσιμο",loadingText:"Φόρτωση…",noOptionsText:"Δεν υπάρχουν επιλογές",openText:"Άνοιγμα"}},MuiAlert:{defaultProps:{closeText:"Κλείσιμο"}},MuiPagination:{defaultProps:{"aria-label":"Πλοήγηση σε σελίδες",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Μετάβαση "}σελίδα ${t}`:e==="first"?"Πρώτη σελίδα":e==="last"?"Τελευταία σελίδα":e==="next"?"Επόμενη σελίδα":"Προηγούμενη σελίδα"}}}},$9={},E9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mostrar ruta"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ir a la primera página":e==="last"?"Ir a la última página":e==="next"?"Ir a la página siguiente":"Ir a la página anterior",labelRowsPerPage:"Filas por página:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} de ${n!==-1?n:`más de ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Estrella${e!==1?"s":""}`,emptyLabelText:"Vacío"}},MuiAutocomplete:{defaultProps:{clearText:"Limpiar",closeText:"Cerrar",loadingText:"Cargando…",noOptionsText:"Sin opciones",openText:"Abierto"}},MuiAlert:{defaultProps:{closeText:"Cerrar"}},MuiPagination:{defaultProps:{"aria-label":"Paginador",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ir a la "}página ${t}`:e==="first"?"Ir a la primera página":e==="last"?"Ir a la última página":e==="next"?"Ir a la página siguiente":"Ir a la página anterior"}}}},M9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Näita teed"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Vali esimene lehekülg":e==="last"?"Vali viimane lehekülg":e==="next"?"Vali järgmine lehekülg":"Vali eelmine lehekülg",labelRowsPerPage:"Ridu leheküljel:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`rohkem kui ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Tärn${e!==1?"i":""}`,emptyLabelText:"Tühi"}},MuiAutocomplete:{defaultProps:{clearText:"Tühjenda",closeText:"Sulge",loadingText:"Laen…",noOptionsText:"Valikuid ei ole",openText:"Ava"}},MuiAlert:{defaultProps:{closeText:"Sulge"}},MuiPagination:{defaultProps:{"aria-label":"Lehekülgede valik",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Vali "}lehekülg ${t}`:e==="first"?"Vali esimene lehekülg":e==="last"?"Vali viimane lehekülg":e==="next"?"Vali järgmine lehekülg":"Vali eelmine lehekülg"}}}},I9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"نمایش مسیر"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"رفتن به اولین صفحه":e==="last"?"رفتن به آخرین صفحه":e==="next"?"رفتن به صفحه‌ی بعدی":"رفتن به صفحه‌ی قبلی",labelRowsPerPage:"تعداد سطرهای هر صفحه:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} از ${n!==-1?n:`بیشتر از ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ستاره`,emptyLabelText:"خالی"}},MuiAutocomplete:{defaultProps:{clearText:"پاک‌کردن",closeText:"بستن",loadingText:"در حال بارگذاری…",noOptionsText:"بی‌نتیجه",openText:"بازکردن"}},MuiAlert:{defaultProps:{closeText:"بستن"}},MuiPagination:{defaultProps:{"aria-label":"ناوبری صفحه",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"رفتن به "}صفحهٔ ${t}`:e==="first"?"رفتن به اولین صفحه":e==="last"?"رفتن به آخرین صفحه":e==="next"?"رفتن به صفحه‌ی بعدی":"رفتن به صفحه‌ی قبلی"}}}},O9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Näytä reitti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Mene ensimmäiselle sivulle":e==="last"?"Mene viimeiselle sivulle":e==="next"?"Mene seuraavalle sivulle":"Mene edelliselle sivulle",labelRowsPerPage:"Rivejä per sivu:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`enemmän kuin ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Täht${e!==1?"eä":"i"}`,emptyLabelText:"Tyhjä"}},MuiAutocomplete:{defaultProps:{clearText:"Tyhjennä",closeText:"Sulje",loadingText:"Ladataan…",noOptionsText:"Ei valintoja",openText:"Avaa"}},MuiAlert:{defaultProps:{closeText:"Sulje"}},MuiPagination:{defaultProps:{"aria-label":"Sivutus navigaatio",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"sivu":"Mene sivulle"} ${t}`:e==="first"?"Mene ensimmäiselle sivulle":e==="last"?"Mene viimeiselle sivulle":e==="next"?"Mene seuraavalle sivulle":"Mene edelliselle sivulle"}}}},L9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Montrer le chemin"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Aller à la première page":e==="last"?"Aller à la dernière page":e==="next"?"Aller à la page suivante":"Aller à la page précédente",labelRowsPerPage:"Lignes par page :",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} sur ${n!==-1?n:`plus que ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Etoile${e!==1?"s":""}`,emptyLabelText:"Vide"}},MuiAutocomplete:{defaultProps:{clearText:"Vider",closeText:"Fermer",loadingText:"Chargement…",noOptionsText:"Pas de résultats",openText:"Ouvrir"}},MuiAlert:{defaultProps:{closeText:"Fermer"}},MuiPagination:{defaultProps:{"aria-label":"navigation de pagination",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Aller à la "}page ${t}`:e==="first"?"Aller à la première page":e==="last"?"Aller à la dernière page":e==="next"?"Aller à la page suivante":"Aller à la page précédente"}}}},A9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"הצג נתיב"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"לעמוד הראשון":e==="last"?"לעמוד האחרון":e==="next"?"לעמוד הבא":"לעמוד הקודם",labelRowsPerPage:"שורות בעמוד:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} מתוך ${n!==-1?n:`יותר מ ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} כוכב${e!==1?"ים":""}`,emptyLabelText:"ריק"}},MuiAutocomplete:{defaultProps:{clearText:"נקה",closeText:"סגור",loadingText:"טוען…",noOptionsText:"אין אופציות",openText:"פתח"}},MuiAlert:{defaultProps:{closeText:"סגור"}},MuiPagination:{defaultProps:{"aria-label":"ניווט בעמודים",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ל "}עמוד ${t}`:e==="first"?"לעמוד הראשון":e==="last"?"לעמוד האחרון":e==="next"?"לעמוד הבא":"לעמוד הקודם"}}}},N9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"रास्ता दिखायें"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"पहले पृष्ठ पर जाएँ":e==="last"?"अंतिम पृष्ठ पर जाएँ":e==="next"?"अगले पृष्ठ पर जाएँ":"पिछले पृष्ठ पर जाएँ",labelRowsPerPage:"पंक्तियाँ प्रति पृष्ठ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t===-1?n:t} कुल ${n} में`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} तार${e!==1?"े":"ा"}`,emptyLabelText:"रिक्त"}},MuiAutocomplete:{defaultProps:{clearText:"हटायें",closeText:"बंद करें",loadingText:"लोड हो रहा है…",noOptionsText:"कोई विकल्प नहीं",openText:"खोलें"}},MuiAlert:{defaultProps:{closeText:"बंद करें"}},MuiPagination:{defaultProps:{"aria-label":"पृस्ठानुसार संचालन",getItemAriaLabel:(e,t,n)=>e==="page"?`पृष्ठ ${t} ${n?"":" पर जाएँ"}`:e==="first"?"पहले पृष्ठ पर जाएँ":e==="last"?"अंतिम पृष्ठ पर जाएँ":e==="next"?"अगले पृष्ठ पर जाएँ":"पिछले पृष्ठ पर जाएँ"}}}},D9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pokaži putanju"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na posljednju stranicu":e==="next"?"Idi na sljedeću stranicu":"Idi na prethodnu stranicu",labelRowsPerPage:"Redova po stranici:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} od ${n!==-1?n:`više nego ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10,n=e%100;return[2,3,4].includes(t)&&![12,13,14].includes(n)?"Zvijezde":"Zvijezda"},emptyLabelText:"Prazno"}},MuiAutocomplete:{defaultProps:{clearText:"Briši",closeText:"Zatvori",loadingText:"Učitavanje…",noOptionsText:"Nema opcija",openText:"Otvori"}},MuiAlert:{defaultProps:{closeText:"Zatvori"}},MuiPagination:{defaultProps:{"aria-label":"Navigacija po stranicama",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Idi na "}stranicu ${t}`:e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na zadnju stranicu":e==="next"?"Idi na sljedeću stranicu":"Idi na prethodnu stranicu"}}}},j9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Útvonal"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Első oldalra":e==="last"?"Utolsó oldalra":e==="next"?"Következő oldalra":"Előző oldalra",labelRowsPerPage:"Sorok száma:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Csillag`,emptyLabelText:"Üres"}},MuiAutocomplete:{defaultProps:{clearText:"Törlés",closeText:"Bezárás",loadingText:"Töltés…",noOptionsText:"Nincs találat",openText:"Megnyitás"}},MuiAlert:{defaultProps:{closeText:"Bezárás"}},MuiPagination:{defaultProps:{"aria-label":"Lapozás",getItemAriaLabel:(e,t,n)=>e==="page"?`${t}. oldal${n?"":"ra"}`:e==="first"?"Első oldalra":e==="last"?"Utolsó oldalra":e==="next"?"Következő oldalra":"Előző oldalra"}}}},F9={components:{MuiTablePagination:{defaultProps:{labelRowsPerPage:"Տողեր մեկ էջում`"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Աստղ`,emptyLabelText:"Դատարկ"}},MuiAutocomplete:{defaultProps:{clearText:"Մաքրել",closeText:"Փակել",loadingText:"Բեռնում…",noOptionsText:"Տարբերակներ չկան",openText:"Բացել"}},MuiAlert:{defaultProps:{closeText:"Փակել"}}}},B9={components:{MuiTablePagination:{defaultProps:{labelRowsPerPage:"Baris per halaman:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Bintang`}},MuiAutocomplete:{defaultProps:{clearText:"Hapus",closeText:"Tutup",loadingText:"Memuat…",noOptionsText:"Tidak ada opsi",openText:"Buka"}},MuiAlert:{defaultProps:{closeText:"Tutup"}}}},z9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Sýna slóð"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Fara á fyrstu síðu":e==="last"?"Fara á síðustu síðu":e==="next"?"Fara á næstu síðu":"Fara á fyrri síðu",labelRowsPerPage:"Raðir á síðu:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} af ${n!==-1?n:`fleiri en ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e===1?"stjarna":"stjörnur"}`,emptyLabelText:"Tómt"}},MuiAutocomplete:{defaultProps:{clearText:"Hreinsa",closeText:"Loka",loadingText:"Hlaða…",noOptionsText:"Engar niðurstöður",openText:"Opna"}},MuiAlert:{defaultProps:{closeText:"Loka"}},MuiPagination:{defaultProps:{"aria-label":"Síðuflakk",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"Síða":"Fara á síðu"} ${t}`:e==="first"?"Fara á fyrstu síðu":e==="last"?"Fara á síðustu síðu":e==="next"?"Fara á næstu síðu":"Fara á fyrri síðu"}}}},H9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Visualizza percorso"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Vai alla prima pagina":e==="last"?"Vai all'ultima pagina":e==="next"?"Vai alla pagina successiva":"Vai alla pagina precedente",labelRowsPerPage:"Righe per pagina:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} di ${n!==-1?n:`più di ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stell${e!==1?"e":"a"}`,emptyLabelText:"Vuoto"}},MuiAutocomplete:{defaultProps:{clearText:"Svuota",closeText:"Chiudi",loadingText:"Caricamento in corso…",noOptionsText:"Nessuna opzione",openText:"Apri"}},MuiAlert:{defaultProps:{closeText:"Chiudi"}},MuiPagination:{defaultProps:{"aria-label":"Navigazione impaginata",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Vai alla "}pagina ${t}`:e==="first"?"Vai alla prima pagina":e==="last"?"Vai all'ultima pagina":e==="next"?"Vai alla pagina successiva":"Vai alla pagina precedente"}}}},V9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"すべて表示"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"最初のページへ":e==="last"?"最後のページへ":e==="next"?"次のページへ":"前のページへ",labelRowsPerPage:"ページあたりの行数:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}~${t} / ${n!==-1?n:`${t}以上`}`}},MuiRating:{defaultProps:{getLabelText:e=>`星${e}`,emptyLabelText:"星なし"}},MuiAutocomplete:{defaultProps:{clearText:"クリア",closeText:"閉じる",loadingText:"読み込み中…",noOptionsText:"データがありません",openText:"開く"}},MuiAlert:{defaultProps:{closeText:"閉じる"}},MuiPagination:{defaultProps:{"aria-label":"ページ選択",getItemAriaLabel:(e,t,n)=>e==="page"?`ページ${t}${n?"":"へ"}`:e==="first"?"最初のページへ":e==="last"?"最後のページへ":e==="next"?"次のページへ":"前のページへ"}}}},W9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"បង្ហាញផ្លូវ"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ទៅទំព័រដំបូង":e==="last"?"ទៅទំព័រចុងក្រោយ":e==="next"?"ទៅទំព័របន្ទាប់":"ទៅទំព័រមុន",labelRowsPerPage:"ចំនួនជួរដេកក្នុងមួយទំព័រ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e} - ${t} នៃ ${n!==-1?n:`ច្រើនជាង ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ផ្កាយ`,emptyLabelText:"ទទេ"}},MuiAutocomplete:{defaultProps:{clearText:"លុបចោល",closeText:"បិទ",loadingText:"កំពុងលោត…",noOptionsText:"គ្មានជម្រើស",openText:"បើក"}},MuiAlert:{defaultProps:{closeText:"បិទ"}},MuiPagination:{defaultProps:{"aria-label":"រុករកទំព័រ",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ទៅ "}ទំព័រ ${t}`:e==="first"?"ទៅទំព័រដំបូង":e==="last"?"ទៅទំព័រចុងក្រោយ":e==="next"?"ទៅទំព័របន្ទាប់":"ទៅទំព័រមុន"}}}},U9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"경로 보기"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"첫 번째 페이지로 이동":e==="last"?"마지막 페이지로 이동":e==="next"?"다음 페이지로 이동":"이전 페이지로 이동",labelRowsPerPage:"페이지 당 행:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`${t}개 이상`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 점`,emptyLabelText:"빈 텍스트"}},MuiAutocomplete:{defaultProps:{clearText:"지우기",closeText:"닫기",loadingText:"불러오는 중…",noOptionsText:"옵션 없음",openText:"열기"}},MuiAlert:{defaultProps:{closeText:"닫기"}},MuiPagination:{defaultProps:{"aria-label":"페이지네이션 네비게이션",getItemAriaLabel:(e,t,n)=>e==="page"?`${t} 번째 페이지${n?"":"로 이동"}`:e==="first"?"첫 번째 페이지로 이동":e==="last"?"마지막 페이지로 이동":e==="next"?"다음 페이지로 이동":"이전 페이지로 이동"}}}},G9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"ڕێچکە پیشان بدە"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"چوونە یەکەم پەڕە":e==="last"?"چوونە کۆتا پەڕە":e==="next"?"چوونە پەڕەی دواتر":"گەڕانەوە بۆ پەڕەی پێشوو",labelRowsPerPage:"ژمارەی ڕیزەکان لە هەر پەڕەیەک:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} لە ${n!==-1?n:` زیاترە لە${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"ئەستێرەکان":"ئەستێرە"}`,emptyLabelText:"خاڵیە"}},MuiAutocomplete:{defaultProps:{clearText:"سڕینەوە",closeText:"داخستن",loadingText:"لە بارکردندایە...",noOptionsText:"هیچ بژاردەیەک نیە",openText:"کردنەوە"}},MuiAlert:{defaultProps:{closeText:"داخستن"}},MuiPagination:{defaultProps:{"aria-label":"گەڕان لە پەڕەکان",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"چوون بۆ "} پەڕەی ${t}`:e==="first"?"چوونە یەکەم پەڕە":e==="last"?"چوونە کۆتا پەڕە":e==="next"?"چوونە پەڕەی دواتر":"گەڕانەوە بۆ پەڕەی پێشوو"}}}},q9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Rê nîşan bide"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Biçe rûpela yekem":e==="last"?"Biçe rûpela dawî":e==="next"?"Biçe rûpela din":"Biçe rûpela berê",labelRowsPerPage:"Rêz li ser rûpelê:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} of ${n!==-1?n:`zêdetir ji ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stêrk`,emptyLabelText:"Vala"}},MuiAutocomplete:{defaultProps:{clearText:"Paqij bike",closeText:"Bigre",loadingText:"Tê barkirin…",noOptionsText:"Vebijêrk tune",openText:"Veke"}},MuiAlert:{defaultProps:{closeText:"Bigre"}},MuiPagination:{defaultProps:{"aria-label":"Navîgasyona rûpelan",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Biçe "}rûpel ${t}`:e==="first"?"Biçe rûpela yekem":e==="last"?"Biçe rûpela dawî":e==="next"?"Biçe rûpela din":"Biçe rûpela berê"}}}},K9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Толық жолды көрсету"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Бірінші бетке өту":e==="last"?"Соңғы бетке өту":e==="next"?"Келесі бетке өту":"Алдыңғы бетке өту",labelRowsPerPage:"Беттегі қатарлар:",labelDisplayedRows:({from:e,to:t,count:n})=>`${n!==-1?n:`+${t}`} қатардың ішінен ${e}–${t}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} жұлдыз`,emptyLabelText:"Рейтинг жоқ"}},MuiAutocomplete:{defaultProps:{clearText:"Тазарту",closeText:"Жабу",loadingText:"Жүктелуде…",noOptionsText:"Қол жетімді нұсқалар жоқ",openText:"Ашу"}},MuiAlert:{defaultProps:{closeText:"Жабу"}},MuiPagination:{defaultProps:{"aria-label":"Беттерді шарлау",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t} — бет`:`${t} — бетке өту`:e==="first"?"Бірінші бетке өту":e==="last"?"Соңғы бетке өту":e==="next"?"Келесі бетке өту":"Алдыңғы бетке өту"}}}},Z9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Прикажи патека"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Оди на прва страница":e==="last"?"Оди на последна страница":e==="next"?"Оди на следна страница":"Оди на предходна страница",labelRowsPerPage:"Редови по страница:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} од ${n!==-1?n:`повеќе од ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} Ѕвезд${t===1?"а":"и"}`},emptyLabelText:"Празно"}},MuiAutocomplete:{defaultProps:{clearText:"Избриши",closeText:"Затвори",loadingText:"Се презема",noOptionsText:"Нема опција",openText:"Отвори"}},MuiAlert:{defaultProps:{closeText:"Затвори"}},MuiPagination:{defaultProps:{"aria-label":"Навигација низ страници",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Оди на "}страница ${t}`:e==="first"?"Оди на прва страница":e==="last"?"Оди на последна страница":e==="next"?"Оди на следна страница":"Оди на предходна страница"}}}},Q9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"လမ်းကြောင်းပြပါ။"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ပထမစာမျက်နှာသို့သွားပါ။":e==="last"?"နောက်ဆုံးစာမျက်နှာသို့သွားပါ။":e==="next"?"နောက်စာမျက်နှာသို့သွားပါ။":"ယခင်စာမျက်နှာသို့သွားပါ။",labelRowsPerPage:"စာမျက်နှာအလိုက် အတန်းများ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} ၏ ${n!==-1?n:`ထက်ပိုပြီး ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} ကြယ်ပွင့်${t===1?"၎":""}`},emptyLabelText:"ဗလာ"}},MuiAutocomplete:{defaultProps:{clearText:"ရှင်းလင်းသော",closeText:"ပိတ်လိုက်",loadingText:"ဖွင့်နေသည်…",noOptionsText:"ရွေးချယ်ခွင့်မရှိပါ။",openText:"ဖွင့်သည်။"}},MuiAlert:{defaultProps:{closeText:"ပိတ်လိုက်"}},MuiPagination:{defaultProps:{"aria-label":"Pagination အညွှန်း",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"သွားပါ။ "}စာမျက်နှာ ${t}`:e==="first"?"ပထမစာမျက်နှာသို့သွားပါ။":e==="last"?"နောက်ဆုံးစာမျက်နှာသို့သွားပါ။":e==="next"?"နောက်စာမျက်နှာသို့သွားပါ။":"ယခင်စာမျက်နှာသို့သွားပါ။"}}}},Y9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Tunjukkan laluan"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Pergi ke halaman pertama":e==="last"?"Pergi ke halaman terakhir":e==="next"?"Pergi ke halaman seterusnya":"Pergi ke halaman sebelumnya",labelRowsPerPage:"Baris setiap halaman:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} daripada ${n!==-1?n:`lebih daripada ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} Bintang${t===1?"s":""}`},emptyLabelText:"kosong"}},MuiAutocomplete:{defaultProps:{clearText:"Jelas",closeText:"tutup",loadingText:"Memuatkan…",noOptionsText:"Tiada pilihan",openText:"Buka"}},MuiAlert:{defaultProps:{closeText:"tutup"}},MuiPagination:{defaultProps:{"aria-label":"Navigasi penomboran",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Pergi ke "}muka surat ${t}`:e==="first"?"Pergi ke halaman pertama":e==="last"?"Pergi ke halaman terakhir":e==="next"?"Pergi ke halaman seterusnya":"Pergi ke halaman sebelumnya"}}}},X9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"बाटो देखाउनुहोस्"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"पहिलो पृष्ठमा जानुहोस्":e==="last"?"अन्तिम पृष्ठमा जानुहोस्":e==="next"?"अर्को पृष्ठमा जानुहोस्":"अघिल्लो पृष्ठमा जानुहोस्",labelRowsPerPage:"प्रति पृष्ठ पङ्क्तिहरू:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} को ${n!==-1?n:`धेरै ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} तारा${t===1?"स":""}`},emptyLabelText:"खाली"}},MuiAutocomplete:{defaultProps:{clearText:"खाली गर्नुहोस्",closeText:"बन्द गर्नुहोस्",loadingText:"लोड हुँदै...",noOptionsText:"कुनै विकल्प छैन",openText:"खोल्नुहोस्"}},MuiAlert:{defaultProps:{closeText:"बन्द गर्नुहोस्"}},MuiPagination:{defaultProps:{"aria-label":"पृष्ठांकन नेभिगेसन",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"जाऊ त्यहाँ "}पृष्ठ ${t}`:e==="first"?"पहिलो पृष्ठमा जानुहोस्":e==="last"?"अन्तिम पृष्ठमा जानुहोस्":e==="next"?"अर्को पृष्ठमा जानुहोस्":"अघिल्लो पृष्ठमा जानुहोस्"}}}},J9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Vis sti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til forrige side",labelRowsPerPage:"Rader per side:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} av ${n!==-1?n:`mer enn ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stjerne${e!==1?"r":""}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Tøm",closeText:"Lukk",loadingText:"Laster inn…",noOptionsText:"Ingen alternativer",openText:"Åpne"}},MuiAlert:{defaultProps:{closeText:"Lukk"}},MuiPagination:{defaultProps:{"aria-label":"Paginering navigasjon",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gå til "}side ${t}`:e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til forrige side"}}}},eD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Vis sti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til førre side",labelRowsPerPage:"Rader per side:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} av ${n!==-1?n:`fleire enn ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} stjerne${e!==1?"r":""}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Tøm",closeText:"Lukk",loadingText:"Lastar inn…",noOptionsText:"Ingen alternativ",openText:"Opna"}},MuiAlert:{defaultProps:{closeText:"Lukk"}},MuiPagination:{defaultProps:{"aria-label":"Navigasjon for paginering",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gå til "}side ${t}`:e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til førre side"}}}},tD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pad tonen"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ga naar eerste pagina":e==="last"?"Ga naar laatste pagina":e==="next"?"Ga naar volgende pagina":"Ga naar vorige pagina",labelRowsPerPage:"Regels per pagina:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} van ${n!==-1?n:`meer dan ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Ster${e!==1?"ren":""}`,emptyLabelText:"Leeg"}},MuiAutocomplete:{defaultProps:{clearText:"Wissen",closeText:"Sluiten",loadingText:"Laden…",noOptionsText:"Geen opties",openText:"Openen"}},MuiAlert:{defaultProps:{closeText:"Sluiten"}},MuiPagination:{defaultProps:{"aria-label":"Navigatie via paginering",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ga naar "}pagina ${t}`:e==="first"?"Ga naar eerste pagina":e==="last"?"Ga naar laatste pagina":e==="next"?"Ga naar volgende pagina":"Ga naar vorige pagina"}}}},nD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pokaż ścieżkę"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Przejdź do pierwszej strony":e==="last"?"Przejdź do ostatniej strony":e==="next"?"Przejdź do następnej strony":"Przejdź do poprzedniej strony",labelRowsPerPage:"Wierszy na stronę:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} z ${n!==-1?n:`ponad ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="gwiazdek";const n=e%10;return(e<10||e>20)&&n>1&&n<5?t="gwiazdki":e===1&&(t="gwiazdka"),`${e} ${t}`},emptyLabelText:"Brak gwiazdek"}},MuiAutocomplete:{defaultProps:{clearText:"Wyczyść",closeText:"Zamknij",loadingText:"Ładowanie…",noOptionsText:"Brak opcji",openText:"Otwórz"}},MuiAlert:{defaultProps:{closeText:"Zamknij"}},MuiPagination:{defaultProps:{"aria-label":"Nawigacja podziału na strony",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t}. strona`:`Przejdź do ${t}. strony`:e==="first"?"Przejdź do pierwszej strony":e==="last"?"Przejdź do ostatniej strony":e==="next"?"Przejdź do następnej strony":"Przejdź do poprzedniej strony"}}}},rD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"لاره ښکاره کړه"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"لومړۍ پاڼې ته لاړ شه":e==="last"?"ورستۍ پاڼې ته لاړ شه":e==="next"?"بلی پاڼې ته لاړ شه":"مخکینۍ پاڼې ته لاړ شه",labelRowsPerPage:"په پاڼه کی د کرښو شمیر",labelDisplayedRows:({from:e,to:t,count:n})=>`${n!==-1?n:`${t} زیات له`} ${t}- ${e} د`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ستوری`,emptyLabelText:"خالی"}},MuiAutocomplete:{defaultProps:{clearText:"پاک کول",closeText:"تړل",loadingText:"... لوډ کیږی",noOptionsText:"بی پایلی",openText:"خلاصول"}},MuiAlert:{defaultProps:{closeText:"تړل"}},MuiPagination:{defaultProps:{"aria-label":"د پاڼو ترتیب",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":" ته لاړ شه"}پاڼې ${t}`:e==="first"?"لومړۍ پاڼی ته لاړ شه":e==="last"?"وروستۍ پاڼې ته لاړه شه":e==="next"?"بلې پاڼې ته لاړ شه":"مخکنۍ پاڼې ته لاړ شه"}}}},oD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mostrar caminho"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ir para a primeira página":e==="last"?"Ir para a última página":e==="next"?"Ir para a próxima página":"Ir para a página anterior",labelRowsPerPage:"Linhas por página:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} de ${n!==-1?n:`mais de ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Estrela${e!==1?"s":""}`,emptyLabelText:"Vazio"}},MuiAutocomplete:{defaultProps:{clearText:"Limpar",closeText:"Fechar",loadingText:"Carregando…",noOptionsText:"Sem opções",openText:"Abrir"}},MuiAlert:{defaultProps:{closeText:"Fechar"}},MuiPagination:{defaultProps:{"aria-label":"Navegar pela paginação",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ir para a "}página ${t}`:e==="first"?"Ir para a primeira página":e==="last"?"Ir para a última página":e==="next"?"Ir para a próxima página":"Ir para a página anterior"}}}},iD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mostrar caminho"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Primeira página":e==="last"?"Última página":e==="next"?"Próxima página":"Página anterior",labelRowsPerPage:"Linhas por página:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} de ${n!==-1?n:`mais de ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Estrela${e!==1?"s":""}`,emptyLabelText:"Vazio"}},MuiAutocomplete:{defaultProps:{clearText:"Limpar",closeText:"Fechar",loadingText:"A carregar…",noOptionsText:"Sem opções",openText:"Abrir"}},MuiAlert:{defaultProps:{closeText:"Fechar"}},MuiPagination:{defaultProps:{"aria-label":"Navegar por páginas",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ir para a "}página ${t}`:e==="first"?"Primeira página":e==="last"?"Última página":e==="next"?"Próxima página":"Página anterior"}}}},aD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Arată calea"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Mergi la prima pagină":e==="last"?"Mergi la ultima pagină":e==="next"?"Mergi la pagina următoare":"Mergi la pagina precedentă",labelRowsPerPage:"Rânduri pe pagină:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} St${e!==1?"ele":"ea"}`,emptyLabelText:"Gol"}},MuiAutocomplete:{defaultProps:{clearText:"Șterge",closeText:"Închide",loadingText:"Se încarcă…",noOptionsText:"Nicio opțiune",openText:"Deschide"}},MuiAlert:{defaultProps:{closeText:"Închide"}},MuiPagination:{defaultProps:{"aria-label":"Navigare prin paginare",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Mergi la "}pagina ${t}`:e==="first"?"Mergi la prima pagină":e==="last"?"Mergi la ultima pagină":e==="next"?"Mergi la pagina următoare":"Mergi la pagina precedentă"}}}},sD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pokaži putanju"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na poslednju stranicu":e==="next"?"Idi na sledeću stranicu":"Idi na prethodnu stranicu",labelRowsPerPage:"Redova po stranici:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} od ${n!==-1?n:`više nego ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10,n=e%100;return[2,3,4].includes(t)&&![12,13,14].includes(n)?"Zvezde":"Zvezda"},emptyLabelText:"Prazno"}},MuiAutocomplete:{defaultProps:{clearText:"Briši",closeText:"Zatvori",loadingText:"Učitavanje…",noOptionsText:"Nema opcija",openText:"Otvori"}},MuiAlert:{defaultProps:{closeText:"Zatvori"}},MuiPagination:{defaultProps:{"aria-label":"Navigacija po stranicama",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Idi na "}stranicu ${t}`:e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na zadnju stranicu":e==="next"?"Idi na sledeću stranicu":"Idi na prethodnu stranicu"}}}},lD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Показать полный путь"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Перейти на первую страницу":e==="last"?"Перейти на последнюю страницу":e==="next"?"Перейти на следующую страницу":"Перейти на предыдущую страницу",labelRowsPerPage:"Строк на странице:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} из ${n!==-1?n:`более чем ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Звёзд";const n=e%10;return n>1&&n<5?t="Звезды":n===1&&(t="Звезда"),`${e} ${t}`},emptyLabelText:"Рейтинг отсутствует"}},MuiAutocomplete:{defaultProps:{clearText:"Очистить",closeText:"Закрыть",loadingText:"Загрузка…",noOptionsText:"Нет доступных вариантов",openText:"Открыть"}},MuiAlert:{defaultProps:{closeText:"Закрыть"}},MuiPagination:{defaultProps:{"aria-label":"Навигация по страницам",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t} страница`:`Перейти на ${t} страницу`:e==="first"?"Перейти на первую страницу":e==="last"?"Перейти на последнюю страницу":e==="next"?"Перейти на следующую страницу":"Перейти на предыдущую страницу"}}}},cD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"ගමන් මඟ පෙන්වන්න"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"පළමු පිටුවට යන්න":e==="last"?"අවසාන පිටුවට යන්න":e==="next"?"මීළඟ පිටුවට යන්න":"පෙර පිටුවට යන්න",labelRowsPerPage:"පිටුවක පේළි:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} දක්වා ${n!==-1?n:`${t} ට වැඩි ප්‍රමාණයකින්`}`}},MuiRating:{defaultProps:{getLabelText:e=>`තරු ${e}`,emptyLabelText:"හිස්"}},MuiAutocomplete:{defaultProps:{clearText:"මකන්න",closeText:"වසන්න",loadingText:"නැංවෙමින්…",noOptionsText:"විකල්ප නැත",openText:"විවෘත කරන්න"}},MuiAlert:{defaultProps:{closeText:"වසන්න"}},MuiPagination:{defaultProps:{"aria-label":"පිටු අතර සංචරණය",getItemAriaLabel:(e,t,n)=>e==="page"?`පිටුව ${t} ${n?"":"ට යන්න"}`:e==="first"?"පළමු පිටුවට යන්න":e==="last"?"අවසාන පිටුවට යන්න":e==="next"?"මීළඟ පිටුවට යන්න":"පෙර පිටුවට යන්න"}}}},uD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Ukázať cestu "}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ísť na prvú stránku":e==="last"?"Ísť na poslednú stránku":e==="next"?"Ísť na ďaľšiu stránku":"Ísť na predchádzajúcu stránku",labelRowsPerPage:"Riadkov na stránke:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} z ${n!==-1?n:`viac ako ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>e===1?`${e} hviezdička`:e>=2&&e<=4?`${e} hviezdičky`:`${e} hviezdičiek`,emptyLabelText:"Prázdne"}},MuiAutocomplete:{defaultProps:{clearText:"Vymazať",closeText:"Zavrieť",loadingText:"Načítanie…",noOptionsText:"Žiadne možnosti",openText:"Otvoriť"}},MuiAlert:{defaultProps:{closeText:"Zavrieť"}},MuiPagination:{defaultProps:{"aria-label":"Navigácia stránkovanim",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ísť na "}stránku ${t}`:e==="first"?"Ísť na prvú stránku":e==="last"?"Ísť na poslednú stránku":e==="next"?"Ísť na ďaľšiu stránku":"Ísť na predchádzajúcu stránku"}}}},dD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Visa sökväg"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå till första sidan":e==="last"?"Gå till sista sidan":e==="next"?"Gå till nästa sida":"Gå till föregående sida",labelRowsPerPage:"Rader per sida:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} av ${n!==-1?n:`fler än ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"Stjärnor":"Stjärna"}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Rensa",closeText:"Stäng",loadingText:"Laddar…",noOptionsText:"Inga alternativ",openText:"Öppna"}},MuiAlert:{defaultProps:{closeText:"Stäng"}},MuiPagination:{defaultProps:{"aria-label":"Sidnavigering",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gå till "}sida ${t}`:e==="first"?"Gå till första sidan":e==="last"?"Gå till sista sidan":e==="next"?"Gå till nästa sida":"Gå till föregående sida"}}}},fD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"แสดงเส้นทาง"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ไปที่หน้าแรก":e==="last"?"ไปที่หน้าสุดท้าย":e==="next"?"ไปที่หน้าถัดไป":"ไปที่หน้าก่อน",labelRowsPerPage:"จำนวนแถวต่อหน้า:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} จาก ${n!==-1?n:`มากกว่า ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ดาว`,emptyLabelText:"ว่างเปล่า"}},MuiAutocomplete:{defaultProps:{clearText:"เคลียร์",closeText:"ปิด",loadingText:"กำลังโหลด…",noOptionsText:"ไม่มีตัวเลือก",openText:"เปิด"}},MuiAlert:{defaultProps:{closeText:"ปิด"}},MuiPagination:{defaultProps:{"aria-label":"",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ไปที่"}หน้า ${t}`:e==="first"?"ไปที่หน้าแรก":e==="last"?"ไปที่หน้าสุดท้าย":e==="next"?"ไปที่หน้าถัดไป":"ไปที่หน้าก่อน"}}}},pD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Yolu göster"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"İlk sayfaya git":e==="last"?"Son sayfaya git":e==="next"?"Sonraki sayfaya git":"Önceki sayfaya git",labelRowsPerPage:"Sayfa başına satır:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t} / ${n!==-1?n:`${t}'den fazla`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Yıldız`,emptyLabelText:"Boş"}},MuiAutocomplete:{defaultProps:{clearText:"Temizle",closeText:"Kapat",loadingText:"Yükleniyor…",noOptionsText:"Seçenek yok",openText:"Aç"}},MuiAlert:{defaultProps:{closeText:"Kapat"}},MuiPagination:{defaultProps:{"aria-label":"Sayfa navigasyonu",getItemAriaLabel:(e,t,n)=>e==="page"?`${t}. ${n?"sayfa":"sayfaya git"}`:e==="first"?"İlk sayfaya git":e==="last"?"Son sayfaya git":e==="next"?"Sonraki sayfaya git":"Önceki sayfaya git"}}}},gD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Ipakita ang landas"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Pumunta sa unang pahina":e==="last"?"Pumunta sa huling pahina":e==="next"?"Pumunta sa susunod na pahina":"Pumunta sa nakaraang pahina",labelRowsPerPage:"Mga hilera bawat pahina:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} ng ${n!==-1?n:`higit sa ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Bituin${e!==1?"s":""}`,emptyLabelText:"Walang laman"}},MuiAutocomplete:{defaultProps:{clearText:"Maaliwalas",closeText:"Isara",loadingText:"Naglo-load…",noOptionsText:"Walang mga pagpipilian",openText:"Bukas"}},MuiAlert:{defaultProps:{closeText:"Isara"}},MuiPagination:{defaultProps:{"aria-label":"Sayfa navigasyonu",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Pumunta sa"}pahina ${t}`:e==="first"?"Pumunta sa unang pahina":e==="last"?"Pumunta sa huling pahina":e==="next"?"Pumunta sa susunod na pahina":"Pumunta sa nakaraang pahina"}}}},hD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Показати шлях сторінок"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Перейти на першу сторінку":e==="last"?"Перейти на останню сторінку":e==="next"?"Перейти на наступну сторінку":"Перейти на попередню сторінку",labelRowsPerPage:"Рядків на сторінці:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} з ${n!==-1?n:`понад ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Зірок";const n=e%10;return n>1&&n<5?t="Зірки":n===1&&(t="Зірка"),`${e} ${t}`},emptyLabelText:"Рейтинг відсутній"}},MuiAutocomplete:{defaultProps:{clearText:"Очистити",closeText:"Згорнути",loadingText:"Завантаження…",noOptionsText:"Немає варіантів",openText:"Розгорнути"}},MuiAlert:{defaultProps:{closeText:"Згорнути"}},MuiPagination:{defaultProps:{"aria-label":"Навігація сторінками",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Перейти на "}сторінку ${t}`:e==="first"?"Перейти на першу сторінку":e==="last"?"Перейти на останню сторінку":e==="next"?"Перейти на наступну сторінку":"Перейти на попередню сторінку"}}}},mD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"راستہ دکھائیں"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"پہلے صفحے پر جائیں":e==="last"?"آخری صفحے پر جائیں":e==="next"?"اگلے صفحے پر جائیں":"پچھلے صفحے پر جائیں",labelRowsPerPage:"ایک صفحے پر قطاریں:",labelDisplayedRows:({from:e,to:t,count:n})=>`${n!==-1?`${n} میں سے`:`${t} سے ذیادہ میں سے`} ${e} سے ${t} قطاریں`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ستار${e!==1?"ے":"ہ"}`,emptyLabelText:"خالی"}},MuiAutocomplete:{defaultProps:{clearText:"کلئیر",closeText:"بند کریں",loadingText:"لوڈ ہو رہا ہے۔۔۔",noOptionsText:"کوئی آپشن نہیں",openText:"کھولیں"}},MuiAlert:{defaultProps:{closeText:"بند کریں"}},MuiPagination:{defaultProps:{"aria-label":"صفحات کی ترتیب",getItemAriaLabel:(e,t,n)=>e==="page"?`صفحہ نمبر ${t}${n?"":" پر جائیں"}`:e==="first"?"پہلے صفحے پر جائیں":e==="last"?"آخری صفحے پر جائیں":e==="next"?"اگلے صفحے پر جائیں":"پچھلے صفحے پر جائیں"}}}},vD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mở ra"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Tới trang đầu tiên":e==="last"?"Tới trang cuối cùng":e==="next"?"Tới trang tiếp theo":"Về trang trước đó",labelRowsPerPage:"Số hàng mỗi trang:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} trong ${n!==-1?n:`nhiều hơn ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} sao`,emptyLabelText:"Không có dữ liệu"}},MuiAutocomplete:{defaultProps:{clearText:"Xóa",closeText:"Đóng",loadingText:"Đang tải…",noOptionsText:"Không có lựa chọn nào",openText:"Mở"}},MuiAlert:{defaultProps:{closeText:"Đóng"}},MuiPagination:{defaultProps:{"aria-label":"Thanh điều khiển trang",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Tới "}trang ${t}`:e==="first"?"Tới trang đầu tiên":e==="last"?"Tới trang cuối cùng":e==="next"?"Tới trang tiếp theo":"Về trang trước đó"}}}},yD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"展开"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"第一页":e==="last"?"最后一页":e==="next"?"下一页":"上一页",labelRowsPerPage:"每页行数:",labelDisplayedRows:({from:e,to:t,count:n})=>`第 ${e} 条到第 ${t} 条,${n!==-1?`共 ${n} 条`:`至少 ${t} 条`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 颗星`,emptyLabelText:"无标签"}},MuiAutocomplete:{defaultProps:{clearText:"清空",closeText:"关闭",loadingText:"加载中……",noOptionsText:"没有可用选项",openText:"打开"}},MuiAlert:{defaultProps:{closeText:"关闭"}}}},bD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"展開"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"第一頁":e==="last"?"最後一頁":e==="next"?"下一頁":"上一頁",labelRowsPerPage:"每頁行數:",labelDisplayedRows:({from:e,to:t,count:n})=>`第 ${e} 項至第 ${t} 項,${n!==-1?`共 ${n} 項`:`超過 ${t} 項`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 粒星`,emptyLabelText:"無標籤"}},MuiAutocomplete:{defaultProps:{clearText:"清除",closeText:"關閉",loadingText:"載入中……",noOptionsText:"沒有可用選項",openText:"開啟"}},MuiAlert:{defaultProps:{closeText:"關閉"}}}},xD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"展開"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"第一頁":e==="last"?"最後一頁":e==="next"?"下一頁":"上一頁",labelRowsPerPage:"每頁數量:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e} ~ ${t} / ${n!==-1?n:`${t} 以上`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 顆星`,emptyLabelText:"無標籤"}},MuiAutocomplete:{defaultProps:{clearText:"清空",closeText:"關閉",loadingText:"載入中…",noOptionsText:"沒有可用選項",openText:"打開"}},MuiAlert:{defaultProps:{closeText:"關閉"}}}},SD=Object.freeze(Object.defineProperty({__proto__:null,amET:m9,arEG:v9,arSA:y9,arSD:b9,azAZ:x9,beBY:w9,bgBG:C9,bnBD:S9,caES:_9,csCZ:R9,daDK:T9,deDE:P9,elGR:k9,enUS:$9,esES:E9,etEE:M9,faIR:I9,fiFI:O9,frFR:L9,heIL:A9,hiIN:N9,hrHR:D9,huHU:j9,hyAM:F9,idID:B9,isIS:z9,itIT:H9,jaJP:V9,khKH:W9,kkKZ:K9,koKR:U9,kuCKB:G9,kuLatn:q9,mkMK:Z9,msMS:Y9,myMY:Q9,nbNO:J9,neNP:X9,nlNL:tD,nnNO:eD,plPL:nD,psAF:rD,ptBR:oD,ptPT:iD,roRO:aD,ruRU:lD,siLK:cD,skSK:uD,srRS:sD,svSE:dD,thTH:fD,tlTL:gD,trTR:pD,ukUA:hD,urPK:mD,viVN:vD,zhCN:yD,zhHK:bD,zhTW:xD},Symbol.toStringTag,{value:"Module"}));var px;(function(e){e.Single="single",e.Multiple="multiple"})(px||(px={}));const wD="_toolbar_158fz_3",CD="_actions_158fz_8",_D="_selectLabel_158fz_16",RD="_select_158fz_16",TD="_displayedRows_158fz_21",PD="_selectRoot_158fz_29",kD="_selectIcon_158fz_45",$D="_iconBtnRoot_158fz_56",ED="_iconBtnDisabled_158fz_68",po={toolbar:wD,actions:CD,selectLabel:_D,select:RD,displayedRows:TD,selectRoot:PD,selectIcon:kD,iconBtnRoot:$D,iconBtnDisabled:ED},gx={root:po.iconBtnRoot,disabled:po.iconBtnDisabled},MD=e=>{const{className:t="",page:n,onPageChange:r,count:o,rowsPerPage:i}=e;return g.jsxs("div",{className:t,children:[g.jsx(hr,{disableRipple:!0,classes:gx,disabled:n===0,onClick:a=>r(a,n-1),children:g.jsx(GA,{size:10},void 0)},void 0),g.jsx(hr,{disableRipple:!0,classes:gx,disabled:n>=Math.ceil(o/i)-1,onClick:a=>r(a,n+1),children:g.jsx(qA,{size:10},void 0)},void 0)]},void 0)},ID=e=>{const n=zt().language==="zhCN";return g.jsx(sA,{component:"div",ActionsComponent:r=>g.jsx(MD,{...r},void 0),classes:{toolbar:po.toolbar,actions:po.actions,displayedRows:po.displayedRows,selectLabel:po.selectLabel,select:po.select,selectIcon:po.selectIcon},SelectProps:{label:n?"每页显示":"Rows per page",className:po.selectRoot,IconComponent:()=>g.jsx(ia,{size:12},void 0)},labelDisplayedRows:({from:r,to:o,count:i})=>g.jsx(mt,{color:"textSecondary",children:n?g.jsxs(g.Fragment,{children:["共有 ",g.jsx("strong",{children:i},void 0)," 条,第 ",g.jsx("strong",{children:r},void 0),"-",g.jsx("strong",{children:o},void 0),"条"]},void 0):g.jsxs(g.Fragment,{children:[g.jsx("strong",{children:r},void 0),"-",g.jsx("strong",{children:o},void 0)," of"," ",g.jsx("strong",{children:i},void 0)]},void 0)},void 0),...e},void 0)};var hx;(function(e){e[e.Previous=-1]="Previous",e[e.Next=1]="Next"})(hx||(hx={}));var mx;(function(e){e[e.Left=1]="Left",e[e.Right=2]="Right"})(mx||(mx={}));var vx;(function(e){e.Small="small",e.Medium="medium"})(vx||(vx={}));const OD=function(e,t,n){t.prototype.isBetween=function(r,o,i,a){var s=n(r),l=n(o);a=a||"()";var c=a[0]==="(",u=a[1]===")";return(c?this.isAfter(s,i):!this.isBefore(s,i))&&(u?this.isBefore(l,i):!this.isAfter(l,i))||(c?this.isBefore(s,i):!this.isAfter(s,i))&&(u?this.isAfter(l,i):!this.isBefore(l,i))}},LD=function(e,t,n){var r=function(i,a){if(!a||!a.length||a.length===1&&!a[0]||a.length===1&&Array.isArray(a[0])&&!a[0].length)return null;if(a.length===1&&a[0].length>0){var s=a;a=s[0]}a=a.filter(function(d){return d});var l,c=a;l=c[0];for(var u=1;u=M?D:""+Array(M+1-N.length).join(A)+D},C={s:m,z:function(D){var M=-D.utcOffset(),A=Math.abs(M),N=Math.floor(A/60),E=A%60;return(M<=0?"+":"-")+m(N,2,"0")+":"+m(E,2,"0")},m:function D(M,A){if(M.date()1)return D(B[0])}else{var H=M.name;R[H]=M,E=H}return!N&&E&&(_=E),E||!N&&_},x=function(D,M){if(T(D))return D.clone();var A=typeof M=="object"?M:{};return A.date=D,A.args=arguments,new I(A)},$=C;$.l=P,$.i=T,$.w=function(D,M){return x(D,{locale:M.$L,utc:M.$u,x:M.$x,$offset:M.$offset})};var I=function(){function D(A){this.$L=P(A.locale,null,!0),this.parse(A),this.$x=this.$x||A.x||{},this[k]=!0}var M=D.prototype;return M.parse=function(A){this.$d=function(N){var E=N.date,L=N.utc;if(E===null)return new Date(NaN);if($.u(E))return new Date;if(E instanceof Date)return new Date(E);if(typeof E=="string"&&!/Z$/i.test(E)){var B=E.match(w);if(B){var H=B[2]-1||0,z=(B[7]||"0").substring(0,3);return L?new Date(Date.UTC(B[1],H,B[3]||1,B[4]||0,B[5]||0,B[6]||0,z)):new Date(B[1],H,B[3]||1,B[4]||0,B[5]||0,B[6]||0,z)}}return new Date(E)}(A),this.init()},M.init=function(){var A=this.$d;this.$y=A.getFullYear(),this.$M=A.getMonth(),this.$D=A.getDate(),this.$W=A.getDay(),this.$H=A.getHours(),this.$m=A.getMinutes(),this.$s=A.getSeconds(),this.$ms=A.getMilliseconds()},M.$utils=function(){return $},M.isValid=function(){return this.$d.toString()!==y},M.isSame=function(A,N){var E=x(A);return this.startOf(N)<=E&&E<=this.endOf(N)},M.isAfter=function(A,N){return x(A)[{label:"Today",startDate:e,endDate:e},{label:"Yesterday",startDate:tt(e).add(-1,"day").toDate(),endDate:tt(e).add(-1,"day").toDate()},{label:"This Week",startDate:tt(e).startOf("week").toDate(),endDate:tt(e).endOf("week").toDate()},{label:"Last Week",startDate:tt(e).add(-1,"week").startOf("week").toDate(),endDate:tt(e).add(-1,"week").endOf("week").toDate()},{label:"Last 7 Days",startDate:tt(e).add(-1,"week").toDate(),endDate:e},{label:"This Month",startDate:tt(e).startOf("month").toDate(),endDate:tt(e).endOf("month").toDate()},{label:"Last Month",startDate:tt(e).add(-1,"month").startOf("month").toDate(),endDate:tt(e).add(-1,"month").endOf("month").toDate()}];ND(new Date);tt(new Date).startOf("week").toDate(),tt(new Date).endOf("week").toDate();const DD="_container_a4vk2_3",jD="_checkedCircle_a4vk2_5",FD="_checked_a4vk2_5",BD="_disabled_a4vk2_60",Ku={container:DD,checkedCircle:jD,checked:FD,disabled:BD},xx=e=>{const{checked:t=!1,disabled:n=!1}=e;return g.jsx("div",{className:Gt(Ku.checkedCircle,{[Ku.checked]:t,[Ku.disabled]:n})},void 0)},Sx=rt.forwardRef(function(e,t){const{sx:n,disabled:r,checked:o,className:i,...a}=e;return g.jsx(HL,{ref:t,className:Gt(Ku.container,i),sx:{"&.Mui-disabled":{opacity:.5},...n},disableRipple:!0,disableTouchRipple:!0,color:"default",checkedIcon:g.jsx(xx,{checked:!0,disabled:r},void 0),icon:g.jsx(xx,{disabled:r},void 0),disabled:r,checked:o,...a},void 0)});rt.forwardRef(function(e,t){const{label:n="",...r}=e,o=zt();return n?g.jsx(M_,{control:g.jsx(Sx,{ref:t,...r},void 0),sx:{margin:0,display:"flex",alignSelf:"center",gap:"8px","& .MuiFormControlLabel-label":{fontSize:14,lineHeight:"135%",fontWeight:400,color:o.black.black1},"& .MuiFormControlLabel-label.Mui-disabled":{opacity:.5,color:o.black.black1},"& .MuiRadio-root":{padding:0,marginRight:0}},label:n},void 0):g.jsx(Sx,{ref:t,...r},void 0)});Yd(new Date).startOf("day"),Yd(new Date).endOf("day");tt.extend(OD);tt.extend(LD);const zD="_btnWrapper_mwgh3_3",HD="_titleWrapper_mwgh3_9",Sg={btnWrapper:zD,titleWrapper:HD},VD=rt.forwardRef(function(t,n){return g.jsx(y_,{ref:n,...t},void 0)}),WD=e=>{const{handleClose:t,severity:n="info",title:r,message:o,classes:i={root:"",title:"",message:""},icon:a,actions:s,showClose:l=!0,...c}=e,u=zt(),{iconStyles:d}=b.useMemo(()=>{let p=u.blue.blue2;switch(n){case"info":p=u.blue.blue2;break;case"error":p=u.red.red2;break;case"success":p=u.green.green2;break;case"warning":p=u.yellow.yellow2;break}return{iconStyles:{width:"20px",height:"20px",paddingTop:r?"2px":0,"& path":{fill:p}}}},[n,r]),f=g.jsx(hr,{"aria-label":"close",color:"inherit",size:"small",onClick:t,disableRipple:!0,sx:{"&.MuiIconButton-root":{"& path":{fill:u.black.black1},"&:hover":{"& path":{fill:u.black.black2}}}},children:g.jsx(O1,{size:16,fontSize:"inherit"},void 0)},void 0);return g.jsx(VD,{severity:n,variant:"outlined",iconMapping:{success:a||g.jsx(U_,{width:20,height:20,sx:d},void 0),info:a||g.jsx(Rm,{width:20,height:20,sx:d},void 0),warning:a||g.jsx(V_,{sx:d},void 0),error:a||g.jsx(W_,{sx:d},void 0)},sx:{boxShadow:"0px 1px 10px 0px rgba(107, 121, 141, 0.30)",padding:"16px",width:"fit-content",borderRadius:"12px",border:"none",backgroundColor:"#FFF","& .MuiAlert-icon":{paddingTop:0,paddingBottom:0,marginRight:"8px"},"& .MuiAlert-message":{display:"flex",alignItems:"center",fontWeight:400,color:u.black.black1,padding:0},"& .MuiAlert-action":{paddingTop:0,paddingRight:"6px"}},action:r||!l?void 0:f,...c,children:g.jsxs("div",{className:Gt(i.root,Sg.root),children:[r&&g.jsxs("div",{className:Sg.titleWrapper,children:[g.jsx(mt,{variant:"h4Semibold",children:r},void 0),l?f:g.jsx("span",{},void 0)]},void 0),g.jsx(mt,{variant:"body1Regular",component:"div",sx:{whiteSpace:"normal",overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:5,WebkitBoxOrient:"vertical",paddingRight:"30px"},className:i.message,children:o},void 0),s&&g.jsx("div",{className:Sg.btnWrapper,children:s.confirm&&g.jsx(L1,{variant:"textBlue",withMargin:!1,...s.confirm},void 0)},void 0)]},void 0)},void 0)},wx=300,Cx=({children:e,maxWidth:t="100%",tooltipProps:n={},typographyProps:r={}})=>{const o=b.useRef(null),[i,a]=b.useState(!1),{sx:s={},...l}=r;b.useEffect(()=>{const u=o.current;a(u.scrollWidth>u.offsetWidth||u.scrollHeight>u.offsetHeight)},[]);const c=b.useMemo(()=>{var d;const u=(d=o.current)==null?void 0:d.offsetWidth;return u?u>wx?u:wx:"100%"},[o.current]);return g.jsx(bp,{...n,title:i?e:"",sx:{maxWidth:c},children:g.jsx(mt,{component:"div",sx:{maxWidth:t,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",...s},ref:o,...l,children:e},void 0)},void 0)},UD=e=>g.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",...e,children:[g.jsx("path",{d:"M1.47656 33.8702C1.47656 34.5009 3.48086 35.1057 7.04852 35.5517C10.6162 35.9976 15.455 36.2482 20.5004 36.2482C25.5459 36.2482 30.3847 35.9976 33.9523 35.5517C37.52 35.1057 39.5243 34.5009 39.5243 33.8702C39.5243 33.2395 37.52 32.6346 33.9523 32.1887C30.3847 31.7427 25.5459 31.4922 20.5004 31.4922C15.455 31.4922 10.6162 31.7427 7.04852 32.1887C3.48086 32.6346 1.47656 33.2395 1.47656 33.8702Z",fill:"#F0F2F4"},void 0),g.jsx("path",{d:"M36.6449 17.8911V17.8435C36.6449 17.7959 36.6211 17.7722 36.6211 17.7246V17.7008L31.5085 7.53099C30.7713 5.27191 28.6787 3.75 26.3007 3.75H14.6723C12.2944 3.75 10.2017 5.27191 9.46457 7.53099L4.3519 17.7008V17.7246C4.32812 17.7722 4.32812 17.7959 4.32812 17.8435V27.4506C4.32812 30.4706 6.77745 32.9199 9.79748 32.9199H31.1993C34.2194 32.9199 36.6687 30.4706 36.6687 27.4506V17.9386C36.6449 17.9149 36.6449 17.9148 36.6449 17.8911ZM10.7962 8.03037C10.7962 8.03037 10.7962 8.00659 10.82 8.00659C11.3432 6.29444 12.9126 5.17679 14.6723 5.17679H26.2769C28.0366 5.17679 29.6061 6.29444 30.153 7.98281C30.153 7.98281 30.153 8.00659 30.1768 8.00659L34.909 17.2015H24.0416C23.6373 17.2015 23.3282 17.5106 23.3282 17.9148C23.3282 19.4843 22.0441 20.7684 20.4746 20.7684C18.9052 20.7684 17.621 19.4843 17.621 17.9148C17.621 17.5106 17.3119 17.2015 16.9077 17.2015H6.06405L10.7962 8.03037Z",fill:"#D1D6DC"},void 0),g.jsx("path",{d:"M35.2428 27.2126C35.2428 29.4479 33.4356 31.2552 31.2003 31.2552H9.79843C7.56313 31.2552 5.75586 29.4479 5.75586 27.2126V18.4141H16.2903C16.6232 20.4353 18.3829 21.981 20.4994 21.981C22.6158 21.981 24.3755 20.4353 24.7084 18.4141H35.2428V27.2126Z",fill:"#E0E3E7"},void 0)]},void 0),GD="_empty_1tvs0_3",qD="_text_1tvs0_13",_x={empty:GD,text:qD};var Va;(function(e){e.Left="left",e.Right="right"})(Va||(Va={}));const KD=b.forwardRef((e,t)=>{const{autoWidth:n,placeholder:r,options:o,onChange:i,onSelectChange:a,onClose:s,onOpen:l,disabled:c=!1,label:u,sxProps:d={},defaultValue:f="",maxWidth:p,classes:{root:h,label:y,container:w,select:v,placeholder:S}={},MenuProps:m,value:C="",size:_="medium",renderValue:R,empty:k={},selectorTooltip:T={},endAdornment:P,...x}=e,[$,I]=b.useState(""),O=zt(),D=L=>{const B=L.target.value;if(I(B),Array.isArray(B)){const z=o.filter(j=>B.includes(j.value)&&!j.disabled);a?a(L,z):i(z);return}const H=o.find(z=>z.value===B);H!=null&&H.disabled||(a?a(L,H):i(H))};b.useEffect(()=>{I(C)},[C]),b.useEffect(()=>{I(f)},[f]);const M=b.useMemo(()=>_==="small"?{minWidth:"83px",height:28,iconRightOffset:"8px",select:{padding:`6px ${P?"65px":"32px"} 6px 8px`,minHeight:"16px",fontSize:"13px",lineHeight:"135%",borderRadius:"6px"},placeholderVariant:"body2Regular"}:{minWidth:"120px",height:36,iconRightOffset:"12px",select:{padding:`8px ${P?"74px":"38px"} 8px 12px`,minHeight:"20px",fontSize:"14px",lineHeight:"135%",borderRadius:"8px"},placeholderVariant:"body1Regular"},[_,P]),A=b.useMemo(()=>f===""&&C===""?r?()=>g.jsx(mt,{variant:M.placeholderVariant,sx:{color:O.black.black3,...d.sxPlaceHolder},className:S,children:r},void 0):R:R||void 0,[f,C,r,R,M]),N=L=>L==="small"?12:14,E=P?L=>g.jsxs(Lr,{sx:{height:M.height,display:"flex",gap:_==="small"?"10px":"12px",position:"absolute",right:"12px",userSelect:"none",pointerEvents:"none",alignItems:"center"},children:[g.jsx(ia,{size:N(_)},void 0),g.jsx(Lr,{sx:{height:"100%",width:"1px",backgroundColor:O.stroke.stroke1}},void 0),g.jsx(mt,{component:"div",variant:"body2Regular",children:P},void 0)]},void 0):L=>g.jsx(ia,{size:N(_),...L},void 0);return g.jsxs(mt,{component:"div",sx:{display:"flex",flexDirection:"column",gap:"8px",...d.sxRoot},className:h,children:[u&&g.jsx(mt,{component:"label",variant:"h4Medium",sx:{marginTop:O.spacing(1),...d.sxLabel},className:y,children:u},void 0),g.jsx(Mc,{tooltip:T,children:g.jsx(Lr,{sx:{position:"relative",display:"inline-block",verticalAlign:"baseline",backgroundColor:c?O.black.black5:"#fff",borderRadius:M.select.borderRadius,width:"100%",...d.sxSelectContainer},className:w,children:g.jsx(vp,{autoWidth:n,value:C||$,onChange:c?()=>{}:D,onClose:s,onOpen:l,disabled:c,displayEmpty:!0,IconComponent:E,className:v,renderValue:A,MenuProps:{sx:{"& .MuiPaper-root":{marginTop:"6px",background:O.palette.common.white,boxShadow:aa,border:`1px solid ${O.stroke.stroke1}`,borderRadius:"8px","& > ul.MuiList-root":{padding:"6px 0","& li":{margin:"4px 0"}}},...d.sxMenu},anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},PaperProps:{sx:{maxHeight:"50vh"}},...m},sx:{width:n?"auto":"100%",minWidth:M.minWidth,height:M.height,transition:"all 0.2s",borderRadius:M.select.borderRadius,"& fieldset":{border:`1px solid ${O.stroke.stroke1}`,borderRadius:M.select.borderRadius,boxShadow:aa},"& > .MuiSelect-icon":{right:M.iconRightOffset,top:"auto",bottom:"auto",transform:"rotate(0)","& path":{fill:O.black.black1}},"&.Mui-focused fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.blue.blue1}`,boxShadow:`0px 0px 0px 4px ${O.blue.blue4}, ${pr}`,zIndex:"999"},"&.Mui-focused:hover fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.blue.blue1}`,boxShadow:"none"},"&.Mui-error":{transition:"none","&.Mui-error fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.red.red2}`,boxShadow:`0px 0px 0px 4px ${O.red.red4}, ${pr}`},"&.Mui-error:hover fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.red.red2}`,boxShadow:"none"}},"& .MuiSelect-select":{padding:M.select.padding,minHeight:M.select.minHeight,fontSize:M.select.fontSize,lineHeight:M.select.lineHeight,boxSizing:"border-box",".MuiTypography-root":{fontSize:M.select.fontSize,lineHeight:M.select.lineHeight},"& p":{fontSize:M.select.fontSize,lineHeight:M.select.lineHeight},"& span":{fontSize:M.select.fontSize,lineHeight:M.select.lineHeight}},"&:hover":{backgroundColor:c?"unset":O.palette.common.white,"&:not(.Mui-error)":{boxShadow:c?"none":`0px 0px 0px 4px ${O.blue.blue4}, ${pr}`},"&.Mui-error":{boxShadow:`0px 0px 0px 4px ${O.red.red4}, ${pr}`},"& fieldset.MuiOutlinedInput-notchedOutline":{borderColor:"transparent"}},"&:focus":{"& fieldset":{borderColor:O.blue.blue1,boxShadow:`0px 0px 0px 4px ${O.blue.blue4}, ${pr}`}},"&.Mui-disabled":{color:O.black.black3,"& > .MuiSelect-icon path":{fill:O.black.black3},"& fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.stroke.stroke1}`}},...d.sxSelect},...x,children:o.length>0?o.map(L=>QD(L,O,d.sxMenuItem,p)):g.jsx(ZD,{...k},void 0)},void 0)},void 0)},void 0)]},void 0)}),ZD=e=>{const{label:t,component:n,classes:r={root:"",text:"",img:""}}=e,o=zt();return g.jsx($c,{sx:{"&.Mui-disabled":{opacity:1,pointerEvents:"inherit","&:hover":{backgroundColor:"unset"}}},disabled:!0,children:n||g.jsxs("div",{className:Gt(_x.empty,r.root),children:[g.jsx(UD,{className:r.img},void 0),g.jsx(mt,{component:"div",className:Gt(_x.text,r.text),children:t||Kd(Ae.NoOptions,o.language)},void 0)]},void 0)},void 0)},QD=(e,t,n,r)=>{const{generateCustomEle:o,icon:i,label:a,tooltip:s,disabled:l,id:c,value:u,iconPosition:d=Va.Left}=e;if(o)return o();const f=({id:p,value:h,disabled:y,icon:w,label:v,iconPosition:S=Va.Left})=>g.jsx($c,{value:h,disableRipple:!0,disableTouchRipple:!0,disabled:y||!1,sx:{maxWidth:r||"inherit",padding:"8px 16px","&.Mui-disabled":{opacity:1,backgroundColor:"transparent",pointerEvents:"inherit","& > div":{color:t.black.black3}},"&.Mui-selected.Mui-focusVisible":{backgroundColor:t.palette.common.white},"&.Mui-selected":{backgroundColor:t.palette.common.white,"& > * span":{color:t.blue.blue1},"& > .MuiTypography-root":{color:t.blue.blue1}},"&:not(.Mui-disabled):hover":{backgroundColor:t.black.black5},...n},children:w?g.jsxs(mt,{component:"div",sx:{display:"flex",flexDirection:"row",alignItems:"center",gap:"8px"},children:[S===Va.Left?w:null,g.jsx(Cx,{typographyProps:{component:"span"},maxWidth:r?r-50:void 0,children:v},void 0),S===Va.Right?w:null]},void 0):g.jsx(Cx,{maxWidth:r||void 0,typographyProps:{sx:{minWidth:10}},children:v},void 0)},p===void 0?h:p);return l&&s?g.jsx(Mc,{tooltip:s,children:f({id:c,value:u,disabled:l,icon:i,label:a,iconPosition:d})},c):f({id:c,value:u,disabled:l,icon:i,label:a,iconPosition:d})},Z_=b.forwardRef((e,t)=>{const{options:n,handleChange:r,handleInputChange:o,inputParams:i={},fullWidth:a=!0,sx:s={},size:l,...c}=e,u=zt(),d=(h,y)=>{r&&r(y)},f=(h,y)=>{o&&o(y)},p=b.useMemo(()=>l==="small"?{height:28,iconRightOffset:"8px",select:{padding:"6px 32px 6px 8px",fontSize:"13px",lineHeight:"135%",endIconRight:"1px",borderRadius:"6px"}}:{height:36,iconRightOffset:"12px",select:{padding:"8px 38px 8px 12px",fontSize:"14px",lineHeight:"135%",endIconRight:"3px",borderRadius:"8px"}},[l]);return g.jsx(_I,{disablePortal:!0,sx:{"& .MuiOutlinedInput-root":{minHeight:p.height,padding:p.select.padding,borderRadius:p.select.borderRadius,".MuiOutlinedInput-notchedOutline":{borderColor:u.stroke.stroke1,boxShadow:aa},"&:hover":{cursor:"pointer","& .MuiOutlinedInput-notchedOutline":{borderColor:"transparent",boxShadow:`0px 0px 0px 4px ${u.blue.blue4}, ${pr}`}},"&.Mui-focused":{"& .MuiOutlinedInput-notchedOutline":{border:`1px solid ${u.blue.blue1}`,boxShadow:`0px 0px 0px 4px ${u.blue.blue4}, ${pr}`}},"& input.MuiInputBase-input":{fontSize:p.select.fontSize,lineHeight:p.select.lineHeight,padding:0,height:"auto"}},"& .MuiIconButton-root:hover":{background:"none"},"& div.MuiAutocomplete-endAdornment":{top:"calc(50% - 2px)",paddingRight:p.select.endIconRight},"& .MuiAutocomplete-popupIndicatorOpen":{transform:"none"},...s},PaperComponent:h=>g.jsx(Is,{sx:{marginTop:"6px",background:u.palette.common.white,boxShadow:aa,border:`1px solid ${u.stroke.stroke1}`,borderRadius:p.select.borderRadius,".MuiAutocomplete-listbox":{".MuiAutocomplete-option":{backgroundColor:u.palette.common.white,padding:"8px 16px","&:hover":{backgroundColor:`${u.black.black5} `}}},"& .MuiAutocomplete-option":{fontSize:p.select.fontSize,lineHeight:p.select.lineHeight},'& .MuiAutocomplete-option[aria-selected="true"]':{backgroundColor:`${u.palette.common.white} !important`,color:u.blue.blue1}},...h},void 0),popupIcon:g.jsx(ia,{size:14,style:{color:u.black.black1}},void 0),clearIcon:null,onChange:d,onInputChange:f,fullWidth:a,ref:t,componentsProps:{popupIndicator:{disableRipple:!0}},size:l,...c,options:n,renderInput:h=>g.jsx(D1,{...h,...i},void 0)},void 0)});function YD(e){return{id:`z-tab-${e}`,"aria-controls":`z-tabpanel-${e}`}}const XD=e=>{const{value:t,handleChange:n,labelConfigs:r=[],size:o="medium",tabsType:i="indicator",color:a,...s}=e;if(t===void 0||!n||!r.length)throw new Error("Props value, handleChange and labels are required");const l=zt(),{tabsStyle:c,tabStyle:u}=b.useMemo(()=>({tabStyle:{fontSize:o==="small"?"11px":"14px",lineHeight:o==="small"?"120%":"135%",minHeight:o==="small"?"20px":"28px",marginRight:i==="indicator"?"24px":"10px",padding:o==="small"?"4px 8px":"6px 12px",fontWeight:o==="small"?400:500},tabsStyle:{minHeight:i==="background"?"32px":"36px"}}),[i,o]);return g.jsxs(OA,{...s,value:t,onChange:n,"aria-label":"tab",sx:{...c,".MuiTabs-indicator":{display:i!=="indicator"?"none":"block",backgroundColor:l.blue.blue1}},children:[r.map((d,f)=>b.createElement(y7,{disableRipple:!0,...d,sx:{"&:hover":{color:l.black.black1},color:l.black.black2,borderRadius:"6px",minWidth:0,textTransform:"inherit",...u,"&.Mui-selected":{backgroundColor:i==="background"?a||l.black.black4:"transparent",color:i==="text"?l.blue.blue1:l.black.black1},...d.sx},key:f,...YD(f)})),g.jsx(Lr,{sx:{position:"absolute",left:0,bottom:"1px",right:0,height:"1px",backgroundColor:l.stroke.stroke1,display:i==="indicator"?"block":"none"}},void 0)]},void 0)};b.forwardRef((e,t)=>{const n=zt(),{sx:r,disabled:o,...i}=e;return g.jsx(g7,{ref:t,focusVisibleClassName:".Mui-focusVisible",disableRipple:!0,disabled:o,sx:{width:"30px",height:"18px",padding:0,borderRadius:"12px","&.MuiSwitch-root":{boxSizing:"inherit",borderRadius:"12px",border:"3px solid transparent","&:hover":{border:o?"3px solid transparent":`3px solid ${n.blue.blue4}`}},"& .MuiSwitch-switchBase":{padding:0,margin:"2px",transitionDuration:"300ms","&.Mui-disabled":{color:"#fff"},"&.Mui-disabled+.MuiSwitch-track":{opacity:.5,backgroundColor:n.stroke.stroke1},"&.Mui-checked":{transform:"translateX(12px)",color:"#fff","& + .MuiSwitch-track":{backgroundColor:n.blue.blue1,opacity:1,border:0},"&.Mui-disabled":{color:"#fff","& .MuiSwitch-thumb":{backgroundImage:`url('data:image/svg+xml,%3Csvg width="8" height="5" viewBox="0 0 8 5" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath opacity="0.5" d="M7.07386 0.267169L7.0742 0.266888L7.06621 0.258615C6.93931 0.1272 6.73491 0.126882 6.60764 0.257662L3.10802 3.77259L1.40194 2.0546C1.27467 1.92373 1.0702 1.92401 0.943272 2.05546C0.818909 2.18425 0.818909 2.38743 0.943272 2.51622L0.943261 2.51623L0.944741 2.51772L2.7084 4.29369C2.81588 4.40452 2.96228 4.45981 3.0982 4.45981C3.24579 4.45981 3.38185 4.40316 3.48793 4.29377L7.04276 0.723374C7.18062 0.595374 7.17948 0.394776 7.07386 0.267169ZM3.16713 3.83211L3.16614 3.83111C3.16648 3.83145 3.1668 3.83179 3.16712 3.83212L3.16713 3.83211Z" fill="%233F46FF" stroke="%233F46FF" stroke-width="0.3"/%3E%3C/svg%3E')`}},"& .MuiSwitch-thumb":{backgroundImage:`url('data:image/svg+xml,%3Csvg width="8" height="5" viewBox="0 0 8 5" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M7.07386 0.267169L7.0742 0.266888L7.06621 0.258615C6.93931 0.1272 6.73491 0.126882 6.60764 0.257662L3.10802 3.77259L1.40194 2.0546C1.27467 1.92373 1.0702 1.92401 0.943272 2.05546C0.818909 2.18425 0.818909 2.38743 0.943272 2.51622L0.943261 2.51623L0.944741 2.51772L2.7084 4.29369C2.81588 4.40452 2.96228 4.45981 3.0982 4.45981C3.24579 4.45981 3.38185 4.40316 3.48793 4.29377L7.04276 0.723374C7.18062 0.595374 7.17948 0.394776 7.07386 0.267169ZM3.16713 3.83211L3.16614 3.83111C3.16648 3.83145 3.1668 3.83179 3.16712 3.83212L3.16713 3.83211Z" fill="%233F46FF" stroke="%233F46FF" stroke-width="0.3"/%3E%3C/svg%3E')`,backgroundRepeat:"no-repeat",backgroundPosition:"center 60%"},"&.Mui-disabled+.MuiSwitch-track":{opacity:.5}},"&:hover":{backgroundColor:"transparent"}},"& .MuiSwitch-thumb":{width:"12px",height:"12px",boxShadow:"none",margin:"1px 0 0 1px"},"& .MuiSwitch-track":{backgroundColor:n.stroke.stroke2,transition:n.transitions.create(["background-color"],{duration:500}),borderRadius:"10px",opacity:1},...r},...i},void 0)});var bs;(function(e){e.PY="python",e.JS="javascript",e.JAVA="java",e.BASH="bash"})(bs||(bs={}));function JD(e,t){if(e==null)return{};var n,r,o=Ms(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;re.length)&&(t=e.length);for(var n=0,r=Array(t);n=4)return[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]}var wg={};function ij(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return wg[t]||(wg[t]=oj(e)),wg[t]}function aj(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=e.filter(function(i){return i!=="token"}),o=ij(r);return o.reduce(function(i,a){return Wa(Wa({},i),n[a])},t)}function Tx(e){return e.join(" ")}function sj(e,t){var n=0;return function(r){return n+=1,r.map(function(o,i){return Y_({node:o,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(i)})})}}function Y_(e){var t=e.node,n=e.stylesheet,r=e.style,o=r===void 0?{}:r,i=e.useInlineStyles,a=e.key,s=t.properties,l=t.type,c=t.tagName,u=t.value;if(l==="text")return u;if(c){var d=sj(n,i),f;if(!i)f=Wa(Wa({},s),{},{className:Tx(s.className)});else{var p=Object.keys(n).reduce(function(v,S){return S.split(".").forEach(function(m){v.includes(m)||v.push(m)}),v},[]),h=s.className&&s.className.includes("token")?["token"]:[],y=s.className&&h.concat(s.className.filter(function(v){return!p.includes(v)}));f=Wa(Wa({},s),{},{className:Tx(y)||void 0,style:aj(s.className,Object.assign({},s.style,o),n)})}var w=d(t.children);return rt.createElement(c,Ln({key:a},f),w)}}const lj=function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1};var cj=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function Px(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Qo(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=0;r2&&arguments[2]!==void 0?arguments[2]:[];return Zu({children:_,lineNumber:R,lineNumberStyle:s,largestLineNumber:a,showInlineLineNumbers:o,lineProps:n,className:k,showLineNumbers:r,wrapLongLines:l,wrapLines:t})}function y(_,R){if(r&&R&&o){var k=J_(s,R,a);_.unshift(X_(R,k))}return _}function w(_,R){var k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||k.length>0?h(_,R,k):y(_,R)}for(var v=function(){var R=u[p],k=R.children[0].value,T=dj(k);if(T){var P=k.split(` +`);P.forEach(function(x,$){var I=r&&d.length+i,O={type:"text",value:"".concat(x,` +`)};if($===0){var D=u.slice(f+1,p).concat(Zu({children:[O],className:R.properties.className})),M=w(D,I);d.push(M)}else if($===P.length-1){var A=u[p+1]&&u[p+1].children&&u[p+1].children[0],N={type:"text",value:"".concat(x)};if(A){var E=Zu({children:[N],className:R.properties.className});u.splice(p+1,0,E)}else{var L=[N],B=w(L,I,R.properties.className);d.push(B)}}else{var H=[O],z=w(H,I,R.properties.className);d.push(z)}}),f=p}p++};p/g,">").replace(/"/g,""").replace(/'/g,"'")}function Yo(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const o in r)n[o]=r[o]}),n}const xj="",$x=e=>!!e.kind;class Sj{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=Ja(t)}openNode(t){if(!$x(t))return;let n=t.kind;t.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(t){$x(t)&&(this.buffer+=xj)}value(){return this.buffer}span(t){this.buffer+=``}}class F1{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n={kind:t,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{F1._collapse(n)}))}}class wj extends F1{constructor(t){super(),this.options=t}addKeyword(t,n){t!==""&&(this.openNode(n),this.addText(t),this.closeNode())}addText(t){t!==""&&this.add(t)}addSublanguage(t,n){const r=t.root;r.kind=n,r.sublanguage=!0,this.add(r)}toHTML(){return new Sj(this,this.options).value()}finalize(){return!0}}function Cj(e){return new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function fc(e){return e?typeof e=="string"?e:e.source:null}function _j(...e){return e.map(n=>fc(n)).join("")}function Rj(...e){return"("+e.map(n=>fc(n)).join("|")+")"}function Tj(e){return new RegExp(e.toString()+"|").exec("").length-1}function Pj(e,t){const n=e&&e.exec(t);return n&&n.index===0}const kj=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function $j(e,t="|"){let n=0;return e.map(r=>{n+=1;const o=n;let i=fc(r),a="";for(;i.length>0;){const s=kj.exec(i);if(!s){a+=i;break}a+=i.substring(0,s.index),i=i.substring(s.index+s[0].length),s[0][0]==="\\"&&s[1]?a+="\\"+String(Number(s[1])+o):(a+=s[0],s[0]==="("&&n++)}return a}).map(r=>`(${r})`).join(t)}const Ej=/\b\B/,rR="[a-zA-Z]\\w*",B1="[a-zA-Z_]\\w*",z1="\\b\\d+(\\.\\d+)?",oR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",iR="\\b(0b[01]+)",Mj="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Ij=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=_j(t,/.*\b/,e.binary,/\b.*/)),Yo({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},pc={begin:"\\\\[\\s\\S]",relevance:0},Oj={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[pc]},Lj={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[pc]},aR={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},xp=function(e,t,n={}){const r=Yo({className:"comment",begin:e,end:t,contains:[]},n);return r.contains.push(aR),r.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),r},Aj=xp("//","$"),Nj=xp("/\\*","\\*/"),Dj=xp("#","$"),jj={className:"number",begin:z1,relevance:0},Fj={className:"number",begin:oR,relevance:0},Bj={className:"number",begin:iR,relevance:0},zj={className:"number",begin:z1+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},Hj={begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[pc,{begin:/\[/,end:/\]/,relevance:0,contains:[pc]}]}]},Vj={className:"title",begin:rR,relevance:0},Wj={className:"title",begin:B1,relevance:0},Uj={begin:"\\.\\s*"+B1,relevance:0},Gj=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var vu=Object.freeze({__proto__:null,MATCH_NOTHING_RE:Ej,IDENT_RE:rR,UNDERSCORE_IDENT_RE:B1,NUMBER_RE:z1,C_NUMBER_RE:oR,BINARY_NUMBER_RE:iR,RE_STARTERS_RE:Mj,SHEBANG:Ij,BACKSLASH_ESCAPE:pc,APOS_STRING_MODE:Oj,QUOTE_STRING_MODE:Lj,PHRASAL_WORDS_MODE:aR,COMMENT:xp,C_LINE_COMMENT_MODE:Aj,C_BLOCK_COMMENT_MODE:Nj,HASH_COMMENT_MODE:Dj,NUMBER_MODE:jj,C_NUMBER_MODE:Fj,BINARY_NUMBER_MODE:Bj,CSS_NUMBER_MODE:zj,REGEXP_MODE:Hj,TITLE_MODE:Vj,UNDERSCORE_TITLE_MODE:Wj,METHOD_GUARD:Uj,END_SAME_AS_BEGIN:Gj});function qj(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function Kj(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=qj,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function Zj(e,t){Array.isArray(e.illegal)&&(e.illegal=Rj(...e.illegal))}function Qj(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Yj(e,t){e.relevance===void 0&&(e.relevance=1)}const Xj=["of","and","for","in","not","or","if","then","parent","list","value"],Jj="keyword";function sR(e,t,n=Jj){const r={};return typeof e=="string"?o(n,e.split(" ")):Array.isArray(e)?o(n,e):Object.keys(e).forEach(function(i){Object.assign(r,sR(e[i],t,i))}),r;function o(i,a){t&&(a=a.map(s=>s.toLowerCase())),a.forEach(function(s){const l=s.split("|");r[l[0]]=[i,eF(l[0],l[1])]})}}function eF(e,t){return t?Number(t):tF(e)?0:1}function tF(e){return Xj.includes(e.toLowerCase())}function nF(e,{plugins:t}){function n(s,l){return new RegExp(fc(s),"m"+(e.case_insensitive?"i":"")+(l?"g":""))}class r{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(l,c){c.position=this.position++,this.matchIndexes[this.matchAt]=c,this.regexes.push([c,l]),this.matchAt+=Tj(l)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const l=this.regexes.map(c=>c[1]);this.matcherRe=n($j(l),!0),this.lastIndex=0}exec(l){this.matcherRe.lastIndex=this.lastIndex;const c=this.matcherRe.exec(l);if(!c)return null;const u=c.findIndex((f,p)=>p>0&&f!==void 0),d=this.matchIndexes[u];return c.splice(0,u),Object.assign(c,d)}}class o{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(l){if(this.multiRegexes[l])return this.multiRegexes[l];const c=new r;return this.rules.slice(l).forEach(([u,d])=>c.addRule(u,d)),c.compile(),this.multiRegexes[l]=c,c}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(l,c){this.rules.push([l,c]),c.type==="begin"&&this.count++}exec(l){const c=this.getMatcher(this.regexIndex);c.lastIndex=this.lastIndex;let u=c.exec(l);if(this.resumingScanAtSamePosition()&&!(u&&u.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,u=d.exec(l)}return u&&(this.regexIndex+=u.position+1,this.regexIndex===this.count&&this.considerAll()),u}}function i(s){const l=new o;return s.contains.forEach(c=>l.addRule(c.begin,{rule:c,type:"begin"})),s.terminatorEnd&&l.addRule(s.terminatorEnd,{type:"end"}),s.illegal&&l.addRule(s.illegal,{type:"illegal"}),l}function a(s,l){const c=s;if(s.isCompiled)return c;[Qj].forEach(d=>d(s,l)),e.compilerExtensions.forEach(d=>d(s,l)),s.__beforeBegin=null,[Kj,Zj,Yj].forEach(d=>d(s,l)),s.isCompiled=!0;let u=null;if(typeof s.keywords=="object"&&(u=s.keywords.$pattern,delete s.keywords.$pattern),s.keywords&&(s.keywords=sR(s.keywords,e.case_insensitive)),s.lexemes&&u)throw new Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");return u=u||s.lexemes||/\w+/,c.keywordPatternRe=n(u,!0),l&&(s.begin||(s.begin=/\B|\b/),c.beginRe=n(s.begin),s.endSameAsBegin&&(s.end=s.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(c.endRe=n(s.end)),c.terminatorEnd=fc(s.end)||"",s.endsWithParent&&l.terminatorEnd&&(c.terminatorEnd+=(s.end?"|":"")+l.terminatorEnd)),s.illegal&&(c.illegalRe=n(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map(function(d){return rF(d==="self"?s:d)})),s.contains.forEach(function(d){a(d,c)}),s.starts&&a(s.starts,l),c.matcher=i(c),c}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Yo(e.classNameAliases||{}),a(e)}function lR(e){return e?e.endsWithParent||lR(e.starts):!1}function rF(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return Yo(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:lR(e)?Yo(e,{starts:e.starts?Yo(e.starts):null}):Object.isFrozen(e)?Yo(e):e}var oF="10.7.3";function iF(e){return!!(e||e==="")}function aF(e){const t={props:["language","code","autodetect"],data:function(){return{detectedLanguage:"",unknownLanguage:!1}},computed:{className(){return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`),this.unknownLanguage=!0,Ja(this.code);let r={};return this.autoDetect?(r=e.highlightAuto(this.code),this.detectedLanguage=r.language):(r=e.highlight(this.language,this.code,this.ignoreIllegals),this.detectedLanguage=this.language),r.value},autoDetect(){return!this.language||iF(this.autodetect)},ignoreIllegals(){return!0}},render(r){return r("pre",{},[r("code",{class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{Component:t,VuePlugin:{install(r){r.component("highlightjs",t)}}}}const sF={"after:highlightElement":({el:e,result:t,text:n})=>{const r=Ex(e);if(!r.length)return;const o=document.createElement("div");o.innerHTML=t.value,t.value=lF(r,Ex(o),n)}};function km(e){return e.nodeName.toLowerCase()}function Ex(e){const t=[];return function n(r,o){for(let i=r.firstChild;i;i=i.nextSibling)i.nodeType===3?o+=i.nodeValue.length:i.nodeType===1&&(t.push({event:"start",offset:o,node:i}),o=n(i,o),km(i).match(/br|hr|img|input/)||t.push({event:"stop",offset:o,node:i}));return o}(e,0),t}function lF(e,t,n){let r=0,o="";const i=[];function a(){return!e.length||!t.length?e.length?e:t:e[0].offset!==t[0].offset?e[0].offset"}function l(u){o+=""}function c(u){(u.event==="start"?s:l)(u.node)}for(;e.length||t.length;){let u=a();if(o+=Ja(n.substring(r,u[0].offset)),r=u[0].offset,u===e){i.reverse().forEach(l);do c(u.splice(0,1)[0]),u=a();while(u===e&&u.length&&u[0].offset===r);i.reverse().forEach(s)}else u[0].event==="start"?i.push(u[0].node):i.pop(),c(u.splice(0,1)[0])}return o+Ja(n.substr(r))}const Mx={},Cg=e=>{console.error(e)},Ix=(e,...t)=>{console.log(`WARN: ${e}`,...t)},sr=(e,t)=>{Mx[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Mx[`${e}/${t}`]=!0)},_g=Ja,Ox=Yo,Lx=Symbol("nomatch"),cF=function(e){const t=Object.create(null),n=Object.create(null),r=[];let o=!0;const i=/(^(<[^>]+>|\t|)+|\n)/gm,a="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let l={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:null,__emitter:wj};function c(j){return l.noHighlightRe.test(j)}function u(j){let F=j.className+" ";F+=j.parentNode?j.parentNode.className:"";const W=l.languageDetectRe.exec(F);if(W){const V=M(W[1]);return V||(Ix(a.replace("{}",W[1])),Ix("Falling back to no-highlight mode for this block.",j)),V?W[1]:"no-highlight"}return F.split(/\s+/).find(V=>c(V)||M(V))}function d(j,F,W,V){let ee="",re="";typeof F=="object"?(ee=j,W=F.ignoreIllegals,re=F.language,V=void 0):(sr("10.7.0","highlight(lang, code, ...args) has been deprecated."),sr("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),re=j,ee=F);const U={code:ee,language:re};B("before:highlight",U);const K=U.result?U.result:f(U.language,U.code,W,V);return K.code=U.code,B("after:highlight",K),K}function f(j,F,W,V){function ee(pe,ne){const xe=be.case_insensitive?ne[0].toLowerCase():ne[0];return Object.prototype.hasOwnProperty.call(pe.keywords,xe)&&pe.keywords[xe]}function re(){if(!ge.keywords){Se.addText(ye);return}let pe=0;ge.keywordPatternRe.lastIndex=0;let ne=ge.keywordPatternRe.exec(ye),xe="";for(;ne;){xe+=ye.substring(pe,ne.index);const Le=ee(ge,ne);if(Le){const[fe,oe]=Le;if(Se.addText(xe),xe="",Ge+=oe,fe.startsWith("_"))xe+=ne[0];else{const me=be.classNameAliases[fe]||fe;Se.addKeyword(ne[0],me)}}else xe+=ne[0];pe=ge.keywordPatternRe.lastIndex,ne=ge.keywordPatternRe.exec(ye)}xe+=ye.substr(pe),Se.addText(xe)}function U(){if(ye==="")return;let pe=null;if(typeof ge.subLanguage=="string"){if(!t[ge.subLanguage]){Se.addText(ye);return}pe=f(ge.subLanguage,ye,!0,le[ge.subLanguage]),le[ge.subLanguage]=pe.top}else pe=h(ye,ge.subLanguage.length?ge.subLanguage:null);ge.relevance>0&&(Ge+=pe.relevance),Se.addSublanguage(pe.emitter,pe.language)}function K(){ge.subLanguage!=null?U():re(),ye=""}function se(pe){return pe.className&&Se.openNode(be.classNameAliases[pe.className]||pe.className),ge=Object.create(pe,{parent:{value:ge}}),ge}function q(pe,ne,xe){let Le=Pj(pe.endRe,xe);if(Le){if(pe["on:end"]){const fe=new kx(pe);pe["on:end"](ne,fe),fe.isMatchIgnored&&(Le=!1)}if(Le){for(;pe.endsParent&&pe.parent;)pe=pe.parent;return pe}}if(pe.endsWithParent)return q(pe.parent,ne,xe)}function ce(pe){return ge.matcher.regexIndex===0?(ye+=pe[0],1):(ke=!0,0)}function ue(pe){const ne=pe[0],xe=pe.rule,Le=new kx(xe),fe=[xe.__beforeBegin,xe["on:begin"]];for(const oe of fe)if(oe&&(oe(pe,Le),Le.isMatchIgnored))return ce(ne);return xe&&xe.endSameAsBegin&&(xe.endRe=Cj(ne)),xe.skip?ye+=ne:(xe.excludeBegin&&(ye+=ne),K(),!xe.returnBegin&&!xe.excludeBegin&&(ye=ne)),se(xe),xe.returnBegin?0:ne.length}function ie(pe){const ne=pe[0],xe=F.substr(pe.index),Le=q(ge,pe,xe);if(!Le)return Lx;const fe=ge;fe.skip?ye+=ne:(fe.returnEnd||fe.excludeEnd||(ye+=ne),K(),fe.excludeEnd&&(ye=ne));do ge.className&&Se.closeNode(),!ge.skip&&!ge.subLanguage&&(Ge+=ge.relevance),ge=ge.parent;while(ge!==Le.parent);return Le.starts&&(Le.endSameAsBegin&&(Le.starts.endRe=Le.endRe),se(Le.starts)),fe.returnEnd?0:ne.length}function te(){const pe=[];for(let ne=ge;ne!==be;ne=ne.parent)ne.className&&pe.unshift(ne.className);pe.forEach(ne=>Se.openNode(ne))}let de={};function Q(pe,ne){const xe=ne&&ne[0];if(ye+=pe,xe==null)return K(),0;if(de.type==="begin"&&ne.type==="end"&&de.index===ne.index&&xe===""){if(ye+=F.slice(ne.index,ne.index+1),!o){const Le=new Error("0 width match regex");throw Le.languageName=j,Le.badRule=de.rule,Le}return 1}if(de=ne,ne.type==="begin")return ue(ne);if(ne.type==="illegal"&&!W){const Le=new Error('Illegal lexeme "'+xe+'" for mode "'+(ge.className||"")+'"');throw Le.mode=ge,Le}else if(ne.type==="end"){const Le=ie(ne);if(Le!==Lx)return Le}if(ne.type==="illegal"&&xe==="")return 1;if(Re>1e5&&Re>ne.index*3)throw new Error("potential infinite loop, way more iterations than matches");return ye+=xe,xe.length}const be=M(j);if(!be)throw Cg(a.replace("{}",j)),new Error('Unknown language: "'+j+'"');const Te=nF(be,{plugins:r});let we="",ge=V||Te;const le={},Se=new l.__emitter(l);te();let ye="",Ge=0,Pe=0,Re=0,ke=!1;try{for(ge.matcher.considerAll();;){Re++,ke?ke=!1:ge.matcher.considerAll(),ge.matcher.lastIndex=Pe;const pe=ge.matcher.exec(F);if(!pe)break;const ne=F.substring(Pe,pe.index),xe=Q(ne,pe);Pe=pe.index+xe}return Q(F.substr(Pe)),Se.closeAllNodes(),Se.finalize(),we=Se.toHTML(),{relevance:Math.floor(Ge),value:we,language:j,illegal:!1,emitter:Se,top:ge}}catch(pe){if(pe.message&&pe.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:pe.message,context:F.slice(Pe-100,Pe+100),mode:pe.mode},sofar:we,relevance:0,value:_g(F),emitter:Se};if(o)return{illegal:!1,relevance:0,value:_g(F),emitter:Se,language:j,top:ge,errorRaised:pe};throw pe}}function p(j){const F={relevance:0,emitter:new l.__emitter(l),value:_g(j),illegal:!1,top:s};return F.emitter.addText(j),F}function h(j,F){F=F||l.languages||Object.keys(t);const W=p(j),V=F.filter(M).filter(N).map(se=>f(se,j,!1));V.unshift(W);const ee=V.sort((se,q)=>{if(se.relevance!==q.relevance)return q.relevance-se.relevance;if(se.language&&q.language){if(M(se.language).supersetOf===q.language)return 1;if(M(q.language).supersetOf===se.language)return-1}return 0}),[re,U]=ee,K=re;return K.second_best=U,K}function y(j){return l.tabReplace||l.useBR?j.replace(i,F=>F===` +`?l.useBR?"
":F:l.tabReplace?F.replace(/\t/g,l.tabReplace):F):j}function w(j,F,W){const V=F?n[F]:W;j.classList.add("hljs"),V&&j.classList.add(V)}const v={"before:highlightElement":({el:j})=>{l.useBR&&(j.innerHTML=j.innerHTML.replace(/\n/g,"").replace(//g,` +`))},"after:highlightElement":({result:j})=>{l.useBR&&(j.value=j.value.replace(/\n/g,"
"))}},S=/^(<[^>]+>|\t)+/gm,m={"after:highlightElement":({result:j})=>{l.tabReplace&&(j.value=j.value.replace(S,F=>F.replace(/\t/g,l.tabReplace)))}};function C(j){let F=null;const W=u(j);if(c(W))return;B("before:highlightElement",{el:j,language:W}),F=j;const V=F.textContent,ee=W?d(V,{language:W,ignoreIllegals:!0}):h(V);B("after:highlightElement",{el:j,result:ee,text:V}),j.innerHTML=ee.value,w(j,W,ee.language),j.result={language:ee.language,re:ee.relevance,relavance:ee.relevance},ee.second_best&&(j.second_best={language:ee.second_best.language,re:ee.second_best.relevance,relavance:ee.second_best.relevance})}function _(j){j.useBR&&(sr("10.3.0","'useBR' will be removed entirely in v11.0"),sr("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")),l=Ox(l,j)}const R=()=>{if(R.called)return;R.called=!0,sr("10.6.0","initHighlighting() is deprecated. Use highlightAll() instead."),document.querySelectorAll("pre code").forEach(C)};function k(){sr("10.6.0","initHighlightingOnLoad() is deprecated. Use highlightAll() instead."),T=!0}let T=!1;function P(){if(document.readyState==="loading"){T=!0;return}document.querySelectorAll("pre code").forEach(C)}function x(){T&&P()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",x,!1);function $(j,F){let W=null;try{W=F(e)}catch(V){if(Cg("Language definition for '{}' could not be registered.".replace("{}",j)),o)Cg(V);else throw V;W=s}W.name||(W.name=j),t[j]=W,W.rawDefinition=F.bind(null,e),W.aliases&&A(W.aliases,{languageName:j})}function I(j){delete t[j];for(const F of Object.keys(n))n[F]===j&&delete n[F]}function O(){return Object.keys(t)}function D(j){sr("10.4.0","requireLanguage will be removed entirely in v11."),sr("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844");const F=M(j);if(F)return F;throw new Error("The '{}' language is required, but not loaded.".replace("{}",j))}function M(j){return j=(j||"").toLowerCase(),t[j]||t[n[j]]}function A(j,{languageName:F}){typeof j=="string"&&(j=[j]),j.forEach(W=>{n[W.toLowerCase()]=F})}function N(j){const F=M(j);return F&&!F.disableAutodetect}function E(j){j["before:highlightBlock"]&&!j["before:highlightElement"]&&(j["before:highlightElement"]=F=>{j["before:highlightBlock"](Object.assign({block:F.el},F))}),j["after:highlightBlock"]&&!j["after:highlightElement"]&&(j["after:highlightElement"]=F=>{j["after:highlightBlock"](Object.assign({block:F.el},F))})}function L(j){E(j),r.push(j)}function B(j,F){const W=j;r.forEach(function(V){V[W]&&V[W](F)})}function H(j){return sr("10.2.0","fixMarkup will be removed entirely in v11.0"),sr("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"),y(j)}function z(j){return sr("10.7.0","highlightBlock will be removed entirely in v12.0"),sr("10.7.0","Please use highlightElement now."),C(j)}Object.assign(e,{highlight:d,highlightAuto:h,highlightAll:P,fixMarkup:H,highlightElement:C,highlightBlock:z,configure:_,initHighlighting:R,initHighlightingOnLoad:k,registerLanguage:$,unregisterLanguage:I,listLanguages:O,getLanguage:M,registerAliases:A,requireLanguage:D,autoDetection:N,inherit:Ox,addPlugin:L,vuePlugin:aF(e).VuePlugin}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString=oF;for(const j in vu)typeof vu[j]=="object"&&nR(vu[j]);return Object.assign(e,vu),e.addPlugin(v),e.addPlugin(sF),e.addPlugin(m),e};var uF=cF({}),dF=uF,cR={exports:{}};(function(e){(function(){var t;t=e.exports=o,t.format=o,t.vsprintf=r,typeof console<"u"&&typeof console.log=="function"&&(t.printf=n);function n(){console.log(o.apply(null,arguments))}function r(i,a){return o.apply(null,[i].concat(a))}function o(i){for(var a=1,s=[].slice.call(arguments),l=0,c=i.length,u="",d,f=!1,p,h,y=!1,w,v=function(){return s[a++]},S=function(){for(var m="";/\d/.test(i[l]);)m+=i[l++],d=i[l];return m.length>0?parseInt(m):null};ls.relevance&&(s=l),l.relevance>a.relevance&&(s=a,a=l));return s.language&&(a.secondBest=s),a}function vF(e,t){to.registerLanguage(e,t)}function yF(){return to.listLanguages()}function bF(e,t){var n=e,r;t&&(n={},n[e]=t);for(r in n)to.registerAliases(n[r],{languageName:r})}function Io(e){this.options=e,this.rootNode={children:[]},this.stack=[this.rootNode]}function xF(e,t){this.openNode(t),this.addText(e),this.closeNode()}function SF(e,t){var n=this.stack,r=n[n.length-1],o=e.rootNode.children,i=t?{type:"element",tagName:"span",properties:{className:[t]},children:o}:o;r.children=r.children.concat(i)}function wF(e){var t=this.stack,n,r;e!==""&&(n=t[t.length-1],r=n.children[n.children.length-1],r&&r.type==="text"?r.value+=e:n.children.push({type:"text",value:e}))}function CF(e){var t=this.stack,n=this.options.classPrefix+e,r=t[t.length-1],o={type:"element",tagName:"span",properties:{className:[n]},children:[]};r.children.push(o),t.push(o)}function _F(){this.stack.pop()}function RF(){return""}function dR(){}var Rg,Ax;function TF(){if(Ax)return Rg;Ax=1;function e(r){return r?typeof r=="string"?r:r.source:null}function t(...r){return r.map(i=>e(i)).join("")}function n(r){const o={},i={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[o]}]};Object.assign(o,{className:"variable",variants:[{begin:t(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},i]});const a={className:"subst",begin:/\$\(/,end:/\)/,contains:[r.BACKSLASH_ESCAPE]},s={begin:/<<-?\s*(?=\w+)/,starts:{contains:[r.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},l={className:"string",begin:/"/,end:/"/,contains:[r.BACKSLASH_ESCAPE,o,a]};a.contains.push(l);const c={className:"",begin:/\\"/},u={className:"string",begin:/'/,end:/'/},d={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},r.NUMBER_MODE,o]},f=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],p=r.SHEBANG({binary:`(${f.join("|")})`,relevance:10}),h={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[r.inherit(r.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/,keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp"},contains:[p,r.SHEBANG(),h,d,r.HASH_COMMENT_MODE,s,l,c,u,o]}}return Rg=n,Rg}var Tg,Nx;function PF(){if(Nx)return Tg;Nx=1;var e="[0-9](_*[0-9])*",t=`\\.(${e})`,n="[0-9a-fA-F](_*[0-9a-fA-F])*",r={className:"number",variants:[{begin:`(\\b(${e})((${t})|\\.)?|(${t}))[eE][+-]?(${e})[fFdD]?\\b`},{begin:`\\b(${e})((${t})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${t})[fFdD]?\\b`},{begin:`\\b(${e})[fFdD]\\b`},{begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?(${e})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function o(i){var a="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",s=a+"(<"+a+"(\\s*,\\s*"+a+")*>)?",l="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",c={className:"meta",begin:"@"+a,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]};const u=r;return{name:"Java",aliases:["jsp"],keywords:l,illegal:/<\/|#/,contains:[i.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE,i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface enum",end:/[{;=]/,excludeEnd:!0,relevance:1,keywords:"class interface enum",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},i.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"class",begin:"record\\s+"+i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,excludeEnd:!0,end:/[{;=]/,keywords:l,contains:[{beginKeywords:"record"},{begin:i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[i.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[i.C_BLOCK_COMMENT_MODE]},i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE]},{className:"function",begin:"("+s+"\\s+)+"+i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:l,contains:[{begin:i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[i.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[c,i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,i.C_BLOCK_COMMENT_MODE]},i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE]},u,c]}}return Tg=o,Tg}const Dx="[A-Za-z$_][0-9A-Za-z$_]*",kF=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],$F=["true","false","null","undefined","NaN","Infinity"],EF=["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],MF=["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],IF=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],OF=["arguments","this","super","console","window","document","localStorage","module","global"],LF=[].concat(IF,OF,EF,MF);function AF(e){return e?typeof e=="string"?e:e.source:null}function jx(e){return $m("(?=",e,")")}function $m(...e){return e.map(n=>AF(n)).join("")}function NF(e){const t=(C,{after:_})=>{const R="",end:""},o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(C,_)=>{const R=C[0].length+C.index,k=C.input[R];if(k==="<"){_.ignoreMatch();return}k===">"&&(t(C,{after:R})||_.ignoreMatch())}},i={$pattern:Dx,keyword:kF,literal:$F,built_in:LF},a="[0-9](_?[0-9])*",s=`\\.(${a})`,l="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",c={className:"number",variants:[{begin:`(\\b(${l})((${s})|\\.)?|(${s}))[eE][+-]?(${a})\\b`},{begin:`\\b(${l})\\b((${s})\\b|\\.)?|(${s})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",end:"\\}",keywords:i,contains:[]},d={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},f={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"css"}},p={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,u]},y={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",end:"\\}",relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},w=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,f,p,c,e.REGEXP_MODE];u.contains=w.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(w)});const v=[].concat(y,u.contains),S=v.concat([{begin:/\(/,end:/\)/,keywords:i,contains:["self"].concat(v)}]),m={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:S};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:S},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,f,p,y,c,{begin:$m(/[{,\n]\s*/,jx($m(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,n+"\\s*:"))),relevance:0,contains:[{className:"attr",begin:n+jx("\\s*:"),relevance:0}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[y,e.REGEXP_MODE,{className:"function",begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:S}]}]},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{variants:[{begin:r.begin,end:r.end},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:i,contains:["self",e.inherit(e.TITLE_MODE,{begin:n}),m],illegal:/%/},{beginKeywords:"while if switch catch for"},{className:"function",begin:e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,contains:[m,e.inherit(e.TITLE_MODE,{begin:n})]},{variants:[{begin:"\\."+n},{begin:"\\$"+n}],relevance:0},{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,end:/[{;]/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:n}),"self",m]},{begin:"(get|set)\\s+(?="+n+"\\()",end:/\{/,keywords:"get set",contains:[e.inherit(e.TITLE_MODE,{begin:n}),{begin:/\(\)/},m]},{begin:/\$[(.]/}]}}var DF=NF;const jF=$o(DF);var Pg,Fx;function FF(){if(Fx)return Pg;Fx=1;function e(o){return o?typeof o=="string"?o:o.source:null}function t(o){return n("(?=",o,")")}function n(...o){return o.map(a=>e(a)).join("")}function r(o){const c={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},u={className:"meta",begin:/^(>>>|\.\.\.) /},d={className:"subst",begin:/\{/,end:/\}/,keywords:c,illegal:/#/},f={begin:/\{\{/,relevance:0},p={className:"string",contains:[o.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[o.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[o.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[o.BACKSLASH_ESCAPE,u,f,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[o.BACKSLASH_ESCAPE,u,f,d]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[o.BACKSLASH_ESCAPE,f,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[o.BACKSLASH_ESCAPE,f,d]},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE]},h="[0-9](_?[0-9])*",y=`(\\b(${h}))?\\.(${h})|\\b(${h})\\.`,w={className:"number",relevance:0,variants:[{begin:`(\\b(${h})|(${y}))[eE][+-]?(${h})[jJ]?\\b`},{begin:`(${y})[jJ]?`},{begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${h})[jJ]\\b`}]},v={className:"comment",begin:t(/# type:/),end:/$/,keywords:c,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},S={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:["self",u,w,p,o.HASH_COMMENT_MODE]}]};return d.contains=[p,w,u],{name:"Python",aliases:["py","gyp","ipython"],keywords:c,illegal:/(<\/|->|\?)|=>/,contains:[u,w,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},p,v,o.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[o.UNDERSCORE_TITLE_MODE,S,{begin:/->/,endsWithParent:!0,keywords:c}]},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[w,S,p]}]}}return Pg=r,Pg}var Ic=yj(fa,{});Ic.registerLanguage=fa.registerLanguage;var fR={},pR={exports:{}};(function(e){function t(n){return n&&n.__esModule?n:{default:n}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(pR);var H1=pR.exports;(function(e){var t=H1;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(FF());e.default=n.default})(fR);const BF=$o(fR);var gR={};(function(e){var t=H1;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(PF());e.default=n.default})(gR);const zF=$o(gR);var hR={};(function(e){var t=H1;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(TF());e.default=n.default})(hR);const HF=$o(hR);Ic.registerLanguage(bs.JS,jF);Ic.registerLanguage(bs.PY,BF);Ic.registerLanguage(bs.JAVA,zF);Ic.registerLanguage(bs.BASH,HF);rt.forwardRef(e=>{const{supportSelectAll:t=!0,selectAllOptionLabel:n="",options:r=[],selectState:o,setSelectState:i,inputParams:a={},onChange:s,...l}=e,{placeholder:c="",...u}=a,[d,f]=rt.useState(!1),p=zt(),h=()=>{f(!1)},y=S=>{const m=!o.selectAll;i(C=>({selectAll:!C.selectAll,selectedItems:C.selectAll?[]:r})),s&&s(S,m?r:[],"selectOption")},w=(S,m,C)=>{switch(C){case"selectOption":i(_=>({..._,selectAll:m.length===r.length,selectedItems:m}));break;case"removeOption":i({selectAll:!1,selectedItems:m})}},v=b.useMemo(()=>{if(!(o.selectedItems.length>0||o.selectAll))return c},[o,c]);return g.jsx(rO,{onClickAway:h,children:g.jsx(Lr,{children:g.jsx(Z_,{options:r,open:d,sx:{"& .MuiBox-root":{"& .MuiFormControl-root":{"div.MuiOutlinedInput-root":{padding:"6px 28px 6px 12px"},"& .MuiInputBase-input":{maxHeight:"24px",height:"24px"},".Mui-error fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${p.red.red2}`,boxShadow:`0px 0px 0px 4px ${p.red.red4}, ${pr}`}}},".MuiAutocomplete-tag":{margin:"3px 4px"}},multiple:!0,ChipProps:{size:"small",deleteIcon:g.jsx(O1,{size:14},void 0),sx:{display:"flex",alignItems:"center",borderRadius:"6px",backgroundColor:p.black.black4,padding:"2px 8px",gap:"8px",height:"20px",".MuiChip-deleteIcon":{margin:0,color:p.black.black1},".MuiChip-label":{padding:0,fontSize:"14px",lineHeight:"20px",fontWeight:400,display:"inline-block",color:p.black.black1},"&:hover":{backgroundColor:p.black.black5,".MuiChip-deleteIcon":{color:p.black.black2}}}},renderOption:(S,m,C)=>{const{selected:_}=C;return m!=null&&m.generateCustomEle?m.generateCustomEle():g.jsxs("li",{...S,children:[g.jsx(Qd,{sx:{padding:"0 8px 0 0"},checked:_||o.selectAll},void 0),g.jsxs(Lr,{sx:{display:"flex",alignItems:"center",width:"100%",justifyContent:"space-between"},children:[g.jsx(mt,{variant:"body1Regular",component:"div",children:m.label},void 0),m.desc&&g.jsx(mt,{variant:"body3Regular",sx:{marginLeft:"8px",color:p.black.black3},children:m.desc},void 0)]},void 0)]},void 0)},onChange:(S,m,C)=>{w(S,m,C),s&&s(S,m,C)},onClose:(S,m)=>{m==="escape"&&f(!1)},onOpen:()=>{f(!0)},PopperComponent:S=>{const{children:m,style:C={},..._}=S;return g.jsx(kc,{..._,disablePortal:!0,onMouseDown:R=>R.preventDefault(),style:{...C,boxShadow:aa,border:`1px solid ${p.stroke.stroke1}`,borderRadius:"8px",backgroundColor:"#fff"},placement:"bottom",modifiers:[{name:"offset",options:{offset:[0,8]}}],children:g.jsxs(g.Fragment,{children:[m,g.jsx(Lr,{sx:{width:"100%",height:"1px",backgroundColor:p.black.black4}},void 0),t&&g.jsxs(Lr,{sx:{padding:"6px 16px",display:"flex",alignItems:"center",marginBottom:"4px","&:hover":{cursor:"pointer",color:p.blue.blue1,backgroundColor:p.black.black5}},onClick:y,children:[g.jsx(Qd,{sx:{padding:"0 16px 0 0"},checked:o.selectAll,indeterminate:!o.selectAll&&o.selectedItems.length>0},void 0),g.jsx(mt,{children:n||"Select all"},void 0)]},void 0)]},void 0)},void 0)},PaperComponent:S=>g.jsx(Is,{sx:{padding:0,boxShadow:"none",borderRadius:"8px","ul.MuiAutocomplete-listbox":{borderRadius:"8px",padding:0,"&::-webkit-scrollbar-track":{width:"3px",background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:p.black.black4},"& li":{margin:"4px 0"},"& > :first-child":{marginTop:"12px"},'& .MuiAutocomplete-option[aria-selected="true"]':{backgroundColor:"#fff","&.Mui-focused":{backgroundColor:"transparent"},"&:hover":{backgroundColor:p.black.black5},"& > * div.MuiTypography-body1Regular":{color:p.blue.blue1}},'.MuiAutocomplete-option[aria-selected="false"]':{backgroundColor:"transparent","&:hover":{backgroundColor:p.black.black5}}}},...S},void 0),isOptionEqualToValue:(S,m)=>S.value===m.value,value:o.selectedItems,inputParams:{placeholder:v,...u},...l},void 0)},void 0)},void 0)});function VF(e,t,n=void 0){const r={};for(const o in e){const i=e[o];let a="",s=!0;for(let l=0;l{t.current=e},[e]),t.current}const Bx=()=>{};function KF(e){const[,t]=b.useState(),{registerDescendant:n=Bx,unregisterDescendant:r=Bx,descendants:o=[],parentId:i=null}=b.useContext(mR),a=UF(o,c=>c.element===e.element),s=qF(o),l=o.some((c,u)=>s&&s[u]&&s[u].element!==c.element);return l9(()=>{if(e.element)return n(Ln({},e,{index:a})),()=>{r(e.element)};t({})},[n,r,a,l,e]),{parentId:i,index:a}}function ZF(e){const{children:t,id:n}=e,[r,o]=b.useState([]),i=b.useCallback(l=>{let{element:c}=l,u=Ms(l,WF);o(d=>{if(d.length===0)return[Ln({},u,{element:c,index:0})];const f=GF(d,c);let p;if(d[f]&&d[f].element===c)p=d;else{const h=Ln({},u,{element:c,index:f});p=d.slice(),p.splice(f,0,h)}return p.forEach((h,y)=>{h.index=y}),p})},[]),a=b.useCallback(l=>{o(c=>c.filter(u=>l!==u.element))},[]),s=b.useMemo(()=>({descendants:r,registerDescendant:i,unregisterDescendant:a,parentId:n}),[r,i,a,n]);return g.jsx(mR.Provider,{value:s,children:t})}const QF={instance:null,multiSelect:!1,disabledItemsFocusable:!1,treeId:void 0,icons:{defaultCollapseIcon:null,defaultExpandIcon:null,defaultParentIcon:null,defaultEndIcon:null}},YF=b.createContext(QF),vR=()=>b.useContext(YF);function XF(e){const{instance:t,multiSelect:n}=vR(),r=t?t.isNodeExpandable(e):!1,o=t?t.isNodeExpanded(e):!1,i=t?t.isNodeFocused(e):!1,a=t?t.isNodeSelected(e):!1,s=t?t.isNodeDisabled(e):!1;return{disabled:s,expanded:o,selected:a,focused:i,handleExpansion:d=>{if(t&&!s){i||t.focusNode(d,e);const f=n&&(d.shiftKey||d.ctrlKey||d.metaKey);r&&!(f&&t.isNodeExpanded(e))&&t.toggleNodeExpansion(d,e)}},handleSelection:d=>{t&&!s&&(i||t.focusNode(d,e),n&&(d.shiftKey||d.ctrlKey||d.metaKey)?d.shiftKey?t.selectRange(d,{end:e}):t.selectNode(d,e,!0):t.selectNode(d,e))},preventSelection:d=>{(d.shiftKey||d.ctrlKey||d.metaKey||s)&&d.preventDefault()}}}const JF=["classes","className","displayIcon","expansionIcon","icon","label","nodeId","onClick","onMouseDown"],yR=b.forwardRef(function(t,n){const{classes:r,className:o,displayIcon:i,expansionIcon:a,icon:s,label:l,nodeId:c,onClick:u,onMouseDown:d}=t,f=Ms(t,JF),{disabled:p,expanded:h,selected:y,focused:w,handleExpansion:v,handleSelection:S,preventSelection:m}=XF(c),C=s||a||i,_=k=>{m(k),d&&d(k)},R=k=>{v(k),S(k),u&&u(k)};return g.jsxs("div",Ln({},f,{className:ve(o,r.root,h&&r.expanded,y&&r.selected,w&&r.focused,p&&r.disabled),onClick:R,onMouseDown:_,ref:n,children:[g.jsx("div",{className:r.iconContainer,children:C}),g.jsx("div",{className:r.label,children:l})]}))});function eB(e){return G_("MuiTreeItem",e)}const Xt=p9("MuiTreeItem",["root","group","content","expanded","selected","focused","disabled","iconContainer","label"]),tB=["children","className","collapseIcon","ContentComponent","ContentProps","endIcon","expandIcon","disabled","icon","id","label","nodeId","onClick","onMouseDown","TransitionComponent","TransitionProps"],nB=e=>{const{classes:t}=e;return VF({root:["root"],content:["content"],expanded:["expanded"],selected:["selected"],focused:["focused"],disabled:["disabled"],iconContainer:["iconContainer"],label:["label"],group:["group"]},eB,t)},rB=J("li",{name:"MuiTreeItem",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),oB=J(yR,{name:"MuiTreeItem",slot:"Content",overridesResolver:(e,t)=>[t.content,t.iconContainer&&{[`& .${Xt.iconContainer}`]:t.iconContainer},t.label&&{[`& .${Xt.label}`]:t.label}]})(({theme:e})=>({padding:"0 8px",width:"100%",boxSizing:"border-box",display:"flex",alignItems:"center",cursor:"pointer",WebkitTapHighlightColor:"transparent","&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Xt.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"},[`&.${Xt.focused}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${Xt.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${Xt.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`& .${Xt.iconContainer}`]:{marginRight:4,width:15,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}},[`& .${Xt.label}`]:Ln({paddingLeft:4,width:"100%",boxSizing:"border-box",minWidth:0,position:"relative"},e.typography.body1)})),iB=J(ps,{name:"MuiTreeItem",slot:"Group",overridesResolver:(e,t)=>t.group})({margin:0,padding:0,marginLeft:17}),aB=b.forwardRef(function(t,n){const r=mM({props:t,name:"MuiTreeItem"}),{children:o,className:i,collapseIcon:a,ContentComponent:s=yR,ContentProps:l,endIcon:c,expandIcon:u,disabled:d,icon:f,id:p,label:h,nodeId:y,onClick:w,onMouseDown:v,TransitionComponent:S=ps,TransitionProps:m}=r,C=Ms(r,tB),{icons:_,multiSelect:R,disabledItemsFocusable:k,treeId:T,instance:P}=vR();let x;p!=null?x=p:T&&y&&(x=`${T}-${y}`);const[$,I]=b.useState(null),O=b.useRef(null),D=c9(I,n),M=b.useMemo(()=>({element:$,id:y}),[y,$]),{index:A,parentId:N}=KF(M),E=!!(Array.isArray(o)?o.length:o),L=P?P.isNodeExpanded(y):!1,B=P?P.isNodeFocused(y):!1,H=P?P.isNodeSelected(y):!1,z=P?P.isNodeDisabled(y):!1,j=Ln({},r,{expanded:L,focused:B,selected:H,disabled:z}),F=nB(j);let W,V;E&&(L?V=a||_.defaultCollapseIcon:V=u||_.defaultExpandIcon),E?W=_.defaultParentIcon:W=c||_.defaultEndIcon,b.useEffect(()=>{if(P&&A!==-1)return P.updateNode({id:y,idAttribute:x,index:A,parentId:N,expandable:E,disabled:d}),()=>P.removeNode(y)},[P,N,A,y,E,d,x]),b.useEffect(()=>{if(P&&h){var U,K;return P.mapFirstChar(y,((U=(K=O.current)==null?void 0:K.textContent)!=null?U:"").substring(0,1).toLowerCase())}},[P,y,h]);let ee;R?ee=H:H&&(ee=!0);function re(U){if(U.target===U.currentTarget){let se;typeof U.target.getRootNode=="function"?se=U.target.getRootNode():se=a9(U.target),se.getElementById(T).focus({preventScroll:!0})}const K=!k&&z;P&&!B&&U.currentTarget===U.target&&!K&&P.focusNode(U,y)}return g.jsxs(rB,Ln({className:ve(F.root,i),role:"treeitem","aria-expanded":E?L:void 0,"aria-selected":ee,"aria-disabled":z||void 0,id:x,tabIndex:-1},C,{ownerState:j,onFocus:re,ref:D,children:[g.jsx(oB,Ln({as:s,ref:O,classes:{root:F.content,expanded:F.expanded,selected:F.selected,focused:F.focused,disabled:F.disabled,iconContainer:F.iconContainer,label:F.label},label:h,nodeId:y,onClick:w,onMouseDown:v,icon:f,expansionIcon:V,displayIcon:W,ownerState:j},l)),o&&g.jsx(ZF,{id:y,children:g.jsx(iB,Ln({as:S,unmountOnExit:!0,className:F.group,in:L,component:"ul",role:"group"},m,{children:o}))})]}))});var zx;(function(e){e.LOADING="loading",e.NORMAL="normal",e.NONE="none"})(zx||(zx={}));J(e=>g.jsx(aB,{...e},void 0))(({theme:e})=>({[`& .${Xt.content}`]:{height:"32px",marginBottom:"8px",color:e.black.black1,padding:"4px",borderRadius:"6px",[`&.${Xt.selected}`]:{backgroundColor:e.blue.blue4,[`&.${Xt.focused}`]:{backgroundColor:e.blue.blue4},[`& .${Xt.label},.MuiTypography-root `]:{color:e.blue.blue1},[`& .${Xt.label}`]:{svg:{path:{fill:e.blue.blue1}}},[`& .${Xt.iconContainer}`]:{svg:{path:{fill:e.black.black1}}}},"&:hover":{backgroundColor:e.blue.blue4},[`& .${Xt.label}`]:{color:e.black.black3,fontSize:"12px",paddingLeft:0,svg:{path:{fill:"currentColor"}},".highlight":{color:e.black.black3}},[`& .${Xt.iconContainer}`]:{marginRight:e.spacing(.5),width:"auto",svg:{path:{fill:e.black.black2}}}},[`& .${Xt.group}`]:{position:"relative",top:"-10px",margin:"12px 0 0px 23px",paddingLeft:6,borderLeft:`1px solid ${e.stroke.stroke1}`,".loadingNode":{paddingLeft:8},[`& .${Xt.content}`]:{height:"28px",marginBottom:"4px",".MuiTypography-root":{fontSize:"13px"},svg:{path:{color:e.black.black2}}}}}));const bR=['"Helvetica Neue"','"Microsoft YaHei"',"-apple-system","sans-serif"],sB=['"Pingfang SC"',...bR],lB=['"Inter"',...bR],xR=e=>(e==="enUS"?lB:sB).join(","),Ht=(e,t,n)=>{const r=xR(n),o={h1:{fontSize:"22px",lineHeight:"150%"},h2:{fontSize:"18px",lineHeight:"150%"},h3:{fontSize:"16px",lineHeight:"150%"},h4:{fontSize:"14px",lineHeight:"135%"},body1:{fontSize:"14px",lineHeight:"135%"},body2:{fontSize:"13px",lineHeight:"135%"},body3:{fontSize:"12px",lineHeight:"135%"},body4:{fontSize:"11px",lineHeight:"135%"}},i={regular:{fontWeight:400},medium:{fontWeight:500},semibold:{fontWeight:600},bold:{fontWeight:n==="enUS"?700:600}};return{...o[e],...i[t],fontFamily:r}},cB=e=>({h1Regular:Ht("h1","regular",e),h1Medium:Ht("h1","medium",e),h1Semibold:Ht("h1","semibold",e),h1Bold:Ht("h1","bold",e),h2Regular:Ht("h2","regular",e),h2Medium:Ht("h2","medium",e),h2Semibold:Ht("h2","semibold",e),h3Regular:Ht("h3","regular",e),h3Medium:Ht("h3","medium",e),h3Semibold:Ht("h3","semibold",e),h4Medium:Ht("h4","medium",e),h4Semibold:Ht("h4","semibold",e),body1Regular:Ht("body1","regular",e),body1Medium:Ht("body1","medium",e),body2Regular:Ht("body2","regular",e),body2Medium:Ht("body2","medium",e),body3Regular:Ht("body3","regular",e),body3Medium:Ht("body3","medium",e),body4Regular:Ht("body4","regular",e)}),Vt={blue:{blue1:"#3f46ff",blue2:"#6066fd",blue3:"#dbe0ff",blue4:"#f2f3ff",blue5:"#f7f8ff",dark1:"#181eca",dark2:"#141c63",light1:"#ebedff"},black:{black1:"#1d2939",black2:"#5d6d85",black3:"#a6b1be",black4:"#f0f2f4",black5:"#f9f9fb"},green:{green1:"#166434",green2:"#49de80",green3:"#adf8c9",green4:"#effdf4"},yellow:{yellow1:"#854d0f",yellow2:"#ffb800",yellow3:"#ffe7a9",yellow4:"#fff8e2"},red:{red1:"#991b1b",red2:"#f26868",red3:"#fbc6c6",red4:"#fff1f1"},stroke:{stroke1:"#e4eaf1",stroke2:"#cdd8e8"},gradient:"linear-gradient(118deg,#00ef8b 0.51%,#0044e4 36.98%,#cd3fff 72.73%)"},uB=e=>{const t=xR(e),n=cB(e);return{typography:{fontFamily:t,...n}}},dB=(e="enUS")=>sp({palette:{primary:{main:Vt.blue.blue1,dark:Vt.blue.dark1,light:Vt.blue.blue2},success:{dark:Vt.green.green1,main:Vt.green.green2,light:Vt.green.green3},info:{dark:Vt.blue.blue1,main:Vt.blue.blue2,light:Vt.blue.blue3},warning:{dark:Vt.yellow.yellow1,main:Vt.yellow.yellow2,light:Vt.yellow.yellow3},error:{dark:Vt.red.red1,main:Vt.red.red2,light:Vt.red.red3},text:{primary:Vt.black.black1,secondary:Vt.black.black2,disabled:Vt.black.black3}},language:e,components:{MuiButton:{variants:[{props:{variant:"textGhost"},style:{}}]},MuiTypography:{defaultProps:{color:"textPrimary",variant:"body1Regular",variantMapping:{h1Regular:"h1",h1Medium:"h1",h1Semibold:"h1",h1Bold:"h1",h2Regular:"h2",h2Medium:"h2",h2Semibold:"h2",h3Regular:"h3",h3Medium:"h3",h3Semibold:"h3",h4Medium:"h4",h4Semibold:"h4",body1Regular:"p",body1Medium:"span",body2Regular:"span",body2Medium:"span",body3Regular:"span",body3Medium:"span",body4Regular:"span"}}}},spacing:4,...Vt,...uB(e)},SD[e]);/** + * table-core + * + * Copyright (c) TanStack + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Xo(e,t){return typeof e=="function"?e(t):e}function tr(e,t){return n=>{t.setState(r=>({...r,[e]:Xo(n,r[e])}))}}function Sp(e){return e instanceof Function}function fB(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function pB(e,t){const n=[],r=o=>{o.forEach(i=>{n.push(i);const a=t(i);a!=null&&a.length&&r(a)})};return r(e),n}function Me(e,t,n){let r=[],o;return i=>{let a;n.key&&n.debug&&(a=Date.now());const s=e(i);if(!(s.length!==r.length||s.some((u,d)=>r[d]!==u)))return o;r=s;let c;if(n.key&&n.debug&&(c=Date.now()),o=t(...s),n==null||n.onChange==null||n.onChange(o),n.key&&n.debug&&n!=null&&n.debug()){const u=Math.round((Date.now()-a)*100)/100,d=Math.round((Date.now()-c)*100)/100,f=d/16,p=(h,y)=>{for(h=String(h);h.length{var o;return(o=e==null?void 0:e.debugAll)!=null?o:e[t]},key:!1,onChange:r}}function gB(e,t,n,r){const o=()=>{var a;return(a=i.getValue())!=null?a:e.options.renderFallbackValue},i={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:o,getContext:Me(()=>[e,n,t,i],(a,s,l,c)=>({table:a,column:s,row:l,cell:c,getValue:c.getValue,renderValue:c.renderValue}),Ie(e.options,"debugCells"))};return e._features.forEach(a=>{a.createCell==null||a.createCell(i,n,t,e)},{}),i}function hB(e,t,n,r){var o,i;const s={...e._getDefaultColumnDef(),...t},l=s.accessorKey;let c=(o=(i=s.id)!=null?i:l?typeof String.prototype.replaceAll=="function"?l.replaceAll(".","_"):l.replace(/\./g,"_"):void 0)!=null?o:typeof s.header=="string"?s.header:void 0,u;if(s.accessorFn?u=s.accessorFn:l&&(l.includes(".")?u=f=>{let p=f;for(const y of l.split(".")){var h;p=(h=p)==null?void 0:h[y]}return p}:u=f=>f[s.accessorKey]),!c)throw new Error;let d={id:`${String(c)}`,accessorFn:u,parent:r,depth:n,columnDef:s,columns:[],getFlatColumns:Me(()=>[!0],()=>{var f;return[d,...(f=d.columns)==null?void 0:f.flatMap(p=>p.getFlatColumns())]},Ie(e.options,"debugColumns")),getLeafColumns:Me(()=>[e._getOrderColumnsFn()],f=>{var p;if((p=d.columns)!=null&&p.length){let h=d.columns.flatMap(y=>y.getLeafColumns());return f(h)}return[d]},Ie(e.options,"debugColumns"))};for(const f of e._features)f.createColumn==null||f.createColumn(d,e);return d}const gn="debugHeaders";function Hx(e,t,n){var r;let i={id:(r=n.id)!=null?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const a=[],s=l=>{l.subHeaders&&l.subHeaders.length&&l.subHeaders.map(s),a.push(l)};return s(i),a},getContext:()=>({table:e,header:i,column:t})};return e._features.forEach(a=>{a.createHeader==null||a.createHeader(i,e)}),i}const mB={createTable:e=>{e.getHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,o)=>{var i,a;const s=(i=r==null?void 0:r.map(d=>n.find(f=>f.id===d)).filter(Boolean))!=null?i:[],l=(a=o==null?void 0:o.map(d=>n.find(f=>f.id===d)).filter(Boolean))!=null?a:[],c=n.filter(d=>!(r!=null&&r.includes(d.id))&&!(o!=null&&o.includes(d.id)));return yu(t,[...s,...c,...l],e)},Ie(e.options,gn)),e.getCenterHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,o)=>(n=n.filter(i=>!(r!=null&&r.includes(i.id))&&!(o!=null&&o.includes(i.id))),yu(t,n,e,"center")),Ie(e.options,gn)),e.getLeftHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var o;const i=(o=r==null?void 0:r.map(a=>n.find(s=>s.id===a)).filter(Boolean))!=null?o:[];return yu(t,i,e,"left")},Ie(e.options,gn)),e.getRightHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var o;const i=(o=r==null?void 0:r.map(a=>n.find(s=>s.id===a)).filter(Boolean))!=null?o:[];return yu(t,i,e,"right")},Ie(e.options,gn)),e.getFooterGroups=Me(()=>[e.getHeaderGroups()],t=>[...t].reverse(),Ie(e.options,gn)),e.getLeftFooterGroups=Me(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),Ie(e.options,gn)),e.getCenterFooterGroups=Me(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),Ie(e.options,gn)),e.getRightFooterGroups=Me(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),Ie(e.options,gn)),e.getFlatHeaders=Me(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,gn)),e.getLeftFlatHeaders=Me(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,gn)),e.getCenterFlatHeaders=Me(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,gn)),e.getRightFlatHeaders=Me(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,gn)),e.getCenterLeafHeaders=Me(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ie(e.options,gn)),e.getLeftLeafHeaders=Me(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ie(e.options,gn)),e.getRightLeafHeaders=Me(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ie(e.options,gn)),e.getLeafHeaders=Me(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var o,i,a,s,l,c;return[...(o=(i=t[0])==null?void 0:i.headers)!=null?o:[],...(a=(s=n[0])==null?void 0:s.headers)!=null?a:[],...(l=(c=r[0])==null?void 0:c.headers)!=null?l:[]].map(u=>u.getLeafHeaders()).flat()},Ie(e.options,gn))}};function yu(e,t,n,r){var o,i;let a=0;const s=function(f,p){p===void 0&&(p=1),a=Math.max(a,p),f.filter(h=>h.getIsVisible()).forEach(h=>{var y;(y=h.columns)!=null&&y.length&&s(h.columns,p+1)},0)};s(e);let l=[];const c=(f,p)=>{const h={depth:p,id:[r,`${p}`].filter(Boolean).join("_"),headers:[]},y=[];f.forEach(w=>{const v=[...y].reverse()[0],S=w.column.depth===h.depth;let m,C=!1;if(S&&w.column.parent?m=w.column.parent:(m=w.column,C=!0),v&&(v==null?void 0:v.column)===m)v.subHeaders.push(w);else{const _=Hx(n,m,{id:[r,p,m.id,w==null?void 0:w.id].filter(Boolean).join("_"),isPlaceholder:C,placeholderId:C?`${y.filter(R=>R.column===m).length}`:void 0,depth:p,index:y.length});_.subHeaders.push(w),y.push(_)}h.headers.push(w),w.headerGroup=h}),l.push(h),p>0&&c(y,p-1)},u=t.map((f,p)=>Hx(n,f,{depth:a,index:p}));c(u,a-1),l.reverse();const d=f=>f.filter(h=>h.column.getIsVisible()).map(h=>{let y=0,w=0,v=[0];h.subHeaders&&h.subHeaders.length?(v=[],d(h.subHeaders).forEach(m=>{let{colSpan:C,rowSpan:_}=m;y+=C,v.push(_)})):y=1;const S=Math.min(...v);return w=w+S,h.colSpan=y,h.rowSpan=w,{colSpan:y,rowSpan:w}});return d((o=(i=l[0])==null?void 0:i.headers)!=null?o:[]),l}const vB=(e,t,n,r,o,i,a)=>{let s={id:t,index:r,original:n,depth:o,parentId:a,_valuesCache:{},_uniqueValuesCache:{},getValue:l=>{if(s._valuesCache.hasOwnProperty(l))return s._valuesCache[l];const c=e.getColumn(l);if(c!=null&&c.accessorFn)return s._valuesCache[l]=c.accessorFn(s.original,r),s._valuesCache[l]},getUniqueValues:l=>{if(s._uniqueValuesCache.hasOwnProperty(l))return s._uniqueValuesCache[l];const c=e.getColumn(l);if(c!=null&&c.accessorFn)return c.columnDef.getUniqueValues?(s._uniqueValuesCache[l]=c.columnDef.getUniqueValues(s.original,r),s._uniqueValuesCache[l]):(s._uniqueValuesCache[l]=[s.getValue(l)],s._uniqueValuesCache[l])},renderValue:l=>{var c;return(c=s.getValue(l))!=null?c:e.options.renderFallbackValue},subRows:[],getLeafRows:()=>pB(s.subRows,l=>l.subRows),getParentRow:()=>s.parentId?e.getRow(s.parentId,!0):void 0,getParentRows:()=>{let l=[],c=s;for(;;){const u=c.getParentRow();if(!u)break;l.push(u),c=u}return l.reverse()},getAllCells:Me(()=>[e.getAllLeafColumns()],l=>l.map(c=>gB(e,s,c,c.id)),Ie(e.options,"debugRows")),_getAllCellsByColumnId:Me(()=>[s.getAllCells()],l=>l.reduce((c,u)=>(c[u.column.id]=u,c),{}),Ie(e.options,"debugRows"))};for(let l=0;l{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},SR=(e,t,n)=>{var r,o;const i=n==null||(r=n.toString())==null?void 0:r.toLowerCase();return!!(!((o=e.getValue(t))==null||(o=o.toString())==null||(o=o.toLowerCase())==null)&&o.includes(i))};SR.autoRemove=e=>jr(e);const wR=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};wR.autoRemove=e=>jr(e);const CR=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===(n==null?void 0:n.toLowerCase())};CR.autoRemove=e=>jr(e);const _R=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};_R.autoRemove=e=>jr(e)||!(e!=null&&e.length);const RR=(e,t,n)=>!n.some(r=>{var o;return!((o=e.getValue(t))!=null&&o.includes(r))});RR.autoRemove=e=>jr(e)||!(e!=null&&e.length);const TR=(e,t,n)=>n.some(r=>{var o;return(o=e.getValue(t))==null?void 0:o.includes(r)});TR.autoRemove=e=>jr(e)||!(e!=null&&e.length);const PR=(e,t,n)=>e.getValue(t)===n;PR.autoRemove=e=>jr(e);const kR=(e,t,n)=>e.getValue(t)==n;kR.autoRemove=e=>jr(e);const V1=(e,t,n)=>{let[r,o]=n;const i=e.getValue(t);return i>=r&&i<=o};V1.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,o=typeof n!="number"?parseFloat(n):n,i=t===null||Number.isNaN(r)?-1/0:r,a=n===null||Number.isNaN(o)?1/0:o;if(i>a){const s=i;i=a,a=s}return[i,a]};V1.autoRemove=e=>jr(e)||jr(e[0])&&jr(e[1]);const go={includesString:SR,includesStringSensitive:wR,equalsString:CR,arrIncludes:_R,arrIncludesAll:RR,arrIncludesSome:TR,equals:PR,weakEquals:kR,inNumberRange:V1};function jr(e){return e==null||e===""}const bB={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:tr("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);return typeof r=="string"?go.includesString:typeof r=="number"?go.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?go.equals:Array.isArray(r)?go.arrIncludes:go.weakEquals},e.getFilterFn=()=>{var n,r;return Sp(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(r=t.options.filterFns)==null?void 0:r[e.columnDef.filterFn])!=null?n:go[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,r,o;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((o=t.options.enableFilters)!=null?o:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(r=>r.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(o=>o.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(r=>{const o=e.getFilterFn(),i=r==null?void 0:r.find(u=>u.id===e.id),a=Xo(n,i?i.value:void 0);if(Vx(o,a,e)){var s;return(s=r==null?void 0:r.filter(u=>u.id!==e.id))!=null?s:[]}const l={id:e.id,value:a};if(i){var c;return(c=r==null?void 0:r.map(u=>u.id===e.id?l:u))!=null?c:[]}return r!=null&&r.length?[...r,l]:[l]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),r=o=>{var i;return(i=Xo(t,o))==null?void 0:i.filter(a=>{const s=n.find(l=>l.id===a.id);if(s){const l=s.getFilterFn();if(Vx(l,a.value,s))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(r)},e.resetColumnFilters=t=>{var n,r;e.setColumnFilters(t?[]:(n=(r=e.initialState)==null?void 0:r.columnFilters)!=null?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function Vx(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const xB=(e,t,n)=>n.reduce((r,o)=>{const i=o.getValue(e);return r+(typeof i=="number"?i:0)},0),SB=(e,t,n)=>{let r;return n.forEach(o=>{const i=o.getValue(e);i!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}),r},wB=(e,t,n)=>{let r;return n.forEach(o=>{const i=o.getValue(e);i!=null&&(r=i)&&(r=i)}),r},CB=(e,t,n)=>{let r,o;return n.forEach(i=>{const a=i.getValue(e);a!=null&&(r===void 0?a>=a&&(r=o=a):(r>a&&(r=a),o{let n=0,r=0;if(t.forEach(o=>{let i=o.getValue(e);i!=null&&(i=+i)>=i&&(++n,r+=i)}),n)return r/n},RB=(e,t)=>{if(!t.length)return;const n=t.map(i=>i.getValue(e));if(!fB(n))return;if(n.length===1)return n[0];const r=Math.floor(n.length/2),o=n.sort((i,a)=>i-a);return n.length%2!==0?o[r]:(o[r-1]+o[r])/2},TB=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),PB=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,kB=(e,t)=>t.length,kg={sum:xB,min:SB,max:wB,extent:CB,mean:_B,median:RB,unique:TB,uniqueCount:PB,count:kB},$B={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:tr("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(r=>r!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,r;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((r=t.options.enableGrouping)!=null?r:!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const n=e.getCanGroup();return()=>{n&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);if(typeof r=="number")return kg.sum;if(Object.prototype.toString.call(r)==="[object Date]")return kg.extent},e.getAggregationFn=()=>{var n,r;if(!e)throw new Error;return Sp(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(r=t.options.aggregationFns)==null?void 0:r[e.columnDef.aggregationFn])!=null?n:kg[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,r;e.setGrouping(t?[]:(n=(r=e.initialState)==null?void 0:r.grouping)!=null?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var o;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((o=n.subRows)!=null&&o.length)}}};function EB(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(i=>!t.includes(i.id));return n==="remove"?r:[...t.map(i=>e.find(a=>a.id===i)).filter(Boolean),...r]}const MB={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:tr("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=Me(n=>[Ll(t,n)],n=>n.findIndex(r=>r.id===e.id),Ie(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var r;return((r=Ll(t,n)[0])==null?void 0:r.id)===e.id},e.getIsLastColumn=n=>{var r;const o=Ll(t,n);return((r=o[o.length-1])==null?void 0:r.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},e._getOrderColumnsFn=Me(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>o=>{let i=[];if(!(t!=null&&t.length))i=o;else{const a=[...t],s=[...o];for(;s.length&&a.length;){const l=a.shift(),c=s.findIndex(u=>u.id===l);c>-1&&i.push(s.splice(c,1)[0])}i=[...i,...s]}return EB(i,n,r)},Ie(e.options,"debugTable"))}},$g=()=>({left:[],right:[]}),IB={getInitialState:e=>({columnPinning:$g(),...e}),getDefaultOptions:e=>({onColumnPinningChange:tr("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const r=e.getLeafColumns().map(o=>o.id).filter(Boolean);t.setColumnPinning(o=>{var i,a;if(n==="right"){var s,l;return{left:((s=o==null?void 0:o.left)!=null?s:[]).filter(d=>!(r!=null&&r.includes(d))),right:[...((l=o==null?void 0:o.right)!=null?l:[]).filter(d=>!(r!=null&&r.includes(d))),...r]}}if(n==="left"){var c,u;return{left:[...((c=o==null?void 0:o.left)!=null?c:[]).filter(d=>!(r!=null&&r.includes(d))),...r],right:((u=o==null?void 0:o.right)!=null?u:[]).filter(d=>!(r!=null&&r.includes(d)))}}return{left:((i=o==null?void 0:o.left)!=null?i:[]).filter(d=>!(r!=null&&r.includes(d))),right:((a=o==null?void 0:o.right)!=null?a:[]).filter(d=>!(r!=null&&r.includes(d)))}})},e.getCanPin=()=>e.getLeafColumns().some(r=>{var o,i,a;return((o=r.columnDef.enablePinning)!=null?o:!0)&&((i=(a=t.options.enableColumnPinning)!=null?a:t.options.enablePinning)!=null?i:!0)}),e.getIsPinned=()=>{const n=e.getLeafColumns().map(s=>s.id),{left:r,right:o}=t.getState().columnPinning,i=n.some(s=>r==null?void 0:r.includes(s)),a=n.some(s=>o==null?void 0:o.includes(s));return i?"left":a?"right":!1},e.getPinnedIndex=()=>{var n,r;const o=e.getIsPinned();return o?(n=(r=t.getState().columnPinning)==null||(r=r[o])==null?void 0:r.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=Me(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,o)=>{const i=[...r??[],...o??[]];return n.filter(a=>!i.includes(a.column.id))},Ie(t.options,"debugRows")),e.getLeftVisibleCells=Me(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,r)=>(r??[]).map(i=>n.find(a=>a.column.id===i)).filter(Boolean).map(i=>({...i,position:"left"})),Ie(t.options,"debugRows")),e.getRightVisibleCells=Me(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r??[]).map(i=>n.find(a=>a.column.id===i)).filter(Boolean).map(i=>({...i,position:"right"})),Ie(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,r;return e.setColumnPinning(t?$g():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:$g())},e.getIsSomeColumnsPinned=t=>{var n;const r=e.getState().columnPinning;if(!t){var o,i;return!!((o=r.left)!=null&&o.length||(i=r.right)!=null&&i.length)}return!!((n=r[t])!=null&&n.length)},e.getLeftLeafColumns=Me(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(r=>t.find(o=>o.id===r)).filter(Boolean),Ie(e.options,"debugColumns")),e.getRightLeafColumns=Me(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(r=>t.find(o=>o.id===r)).filter(Boolean),Ie(e.options,"debugColumns")),e.getCenterLeafColumns=Me(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const o=[...n??[],...r??[]];return t.filter(i=>!o.includes(i.id))},Ie(e.options,"debugColumns"))}},bu={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},Eg=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),OB={getDefaultColumnDef:()=>bu,getInitialState:e=>({columnSizing:{},columnSizingInfo:Eg(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:tr("columnSizing",e),onColumnSizingInfoChange:tr("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,r,o;const i=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:bu.minSize,(r=i??e.columnDef.size)!=null?r:bu.size),(o=e.columnDef.maxSize)!=null?o:bu.maxSize)},e.getStart=Me(n=>[n,Ll(t,n),t.getState().columnSizing],(n,r)=>r.slice(0,e.getIndex(n)).reduce((o,i)=>o+i.getSize(),0),Ie(t.options,"debugColumns")),e.getAfter=Me(n=>[n,Ll(t,n),t.getState().columnSizing],(n,r)=>r.slice(e.getIndex(n)+1).reduce((o,i)=>o+i.getSize(),0),Ie(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:r,...o}=n;return o})},e.getCanResize=()=>{var n,r;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((r=t.options.enableColumnResizing)!=null?r:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const r=o=>{if(o.subHeaders.length)o.subHeaders.forEach(r);else{var i;n+=(i=o.column.getSize())!=null?i:0}};return r(e),n},e.getStart=()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},e.getResizeHandler=n=>{const r=t.getColumn(e.column.id),o=r==null?void 0:r.getCanResize();return i=>{if(!r||!o||(i.persist==null||i.persist(),Mg(i)&&i.touches&&i.touches.length>1))return;const a=e.getSize(),s=e?e.getLeafHeaders().map(v=>[v.column.id,v.column.getSize()]):[[r.id,r.getSize()]],l=Mg(i)?Math.round(i.touches[0].clientX):i.clientX,c={},u=(v,S)=>{typeof S=="number"&&(t.setColumnSizingInfo(m=>{var C,_;const R=t.options.columnResizeDirection==="rtl"?-1:1,k=(S-((C=m==null?void 0:m.startOffset)!=null?C:0))*R,T=Math.max(k/((_=m==null?void 0:m.startSize)!=null?_:0),-.999999);return m.columnSizingStart.forEach(P=>{let[x,$]=P;c[x]=Math.round(Math.max($+$*T,0)*100)/100}),{...m,deltaOffset:k,deltaPercentage:T}}),(t.options.columnResizeMode==="onChange"||v==="end")&&t.setColumnSizing(m=>({...m,...c})))},d=v=>u("move",v),f=v=>{u("end",v),t.setColumnSizingInfo(S=>({...S,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},p=n||typeof document<"u"?document:null,h={moveHandler:v=>d(v.clientX),upHandler:v=>{p==null||p.removeEventListener("mousemove",h.moveHandler),p==null||p.removeEventListener("mouseup",h.upHandler),f(v.clientX)}},y={moveHandler:v=>(v.cancelable&&(v.preventDefault(),v.stopPropagation()),d(v.touches[0].clientX),!1),upHandler:v=>{var S;p==null||p.removeEventListener("touchmove",y.moveHandler),p==null||p.removeEventListener("touchend",y.upHandler),v.cancelable&&(v.preventDefault(),v.stopPropagation()),f((S=v.touches[0])==null?void 0:S.clientX)}},w=LB()?{passive:!1}:!1;Mg(i)?(p==null||p.addEventListener("touchmove",y.moveHandler,w),p==null||p.addEventListener("touchend",y.upHandler,w)):(p==null||p.addEventListener("mousemove",h.moveHandler,w),p==null||p.addEventListener("mouseup",h.upHandler,w)),t.setColumnSizingInfo(v=>({...v,startOffset:l,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:s,isResizingColumn:r.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?Eg():(n=e.initialState.columnSizingInfo)!=null?n:Eg())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0}}};let xu=null;function LB(){if(typeof xu=="boolean")return xu;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return xu=e,xu}function Mg(e){return e.type==="touchstart"}const AB={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:tr("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(r=>({...r,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,r;const o=e.columns;return(n=o.length?o.some(i=>i.getIsVisible()):(r=t.getState().columnVisibility)==null?void 0:r[e.id])!=null?n:!0},e.getCanHide=()=>{var n,r;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((r=t.options.enableHiding)!=null?r:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=Me(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(r=>r.column.getIsVisible()),Ie(t.options,"debugRows")),e.getVisibleCells=Me(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,o)=>[...n,...r,...o],Ie(t.options,"debugRows"))},createTable:e=>{const t=(n,r)=>Me(()=>[r(),r().filter(o=>o.getIsVisible()).map(o=>o.id).join("_")],o=>o.filter(i=>i.getIsVisible==null?void 0:i.getIsVisible()),Ie(e.options,"debugColumns"));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),e.resetColumnVisibility=n=>{var r;e.setColumnVisibility(n?{}:(r=e.initialState.columnVisibility)!=null?r:{})},e.toggleAllColumnsVisible=n=>{var r;n=(r=n)!=null?r:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((o,i)=>({...o,[i.id]:n||!(i.getCanHide!=null&&i.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>n=>{var r;e.toggleAllColumnsVisible((r=n.target)==null?void 0:r.checked)}}};function Ll(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const NB={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},DB={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:tr("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const r=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof r=="string"||typeof r=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,r,o,i;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((o=t.options.enableFilters)!=null?o:!0)&&((i=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?i:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>go.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:r}=e.options;return Sp(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:go[r]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},jB={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:tr("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var r,o;if(!t){e._queue(()=>{t=!0});return}if((r=(o=e.options.autoResetAll)!=null?o:e.options.autoResetExpanded)!=null?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=r=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(r),e.toggleAllRowsExpanded=r=>{r??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=r=>{var o,i;e.setExpanded(r?{}:(o=(i=e.initialState)==null?void 0:i.expanded)!=null?o:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(r=>r.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>r=>{r.persist==null||r.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const r=e.getState().expanded;return r===!0||Object.values(r).some(Boolean)},e.getIsAllRowsExpanded=()=>{const r=e.getState().expanded;return typeof r=="boolean"?r===!0:!(!Object.keys(r).length||e.getRowModel().flatRows.some(o=>!o.getIsExpanded()))},e.getExpandedDepth=()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(i=>{const a=i.split(".");r=Math.max(r,a.length)}),r},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(r=>{var o;const i=r===!0?!0:!!(r!=null&&r[e.id]);let a={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(s=>{a[s]=!0}):a=r,n=(o=n)!=null?o:!i,!i&&n)return{...a,[e.id]:!0};if(i&&!n){const{[e.id]:s,...l}=a;return l}return r})},e.getIsExpanded=()=>{var n;const r=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:r===!0||r!=null&&r[e.id])},e.getCanExpand=()=>{var n,r,o;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((o=e.subRows)!=null&&o.length)},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},Em=0,Mm=10,Ig=()=>({pageIndex:Em,pageSize:Mm}),FB={getInitialState:e=>({...e,pagination:{...Ig(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:tr("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var r,o;if(!t){e._queue(()=>{t=!0});return}if((r=(o=e.options.autoResetAll)!=null?o:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=r=>{const o=i=>Xo(r,i);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(o)},e.resetPagination=r=>{var o;e.setPagination(r?Ig():(o=e.initialState.pagination)!=null?o:Ig())},e.setPageIndex=r=>{e.setPagination(o=>{let i=Xo(r,o.pageIndex);const a=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return i=Math.max(0,Math.min(i,a)),{...o,pageIndex:i}})},e.resetPageIndex=r=>{var o,i;e.setPageIndex(r?Em:(o=(i=e.initialState)==null||(i=i.pagination)==null?void 0:i.pageIndex)!=null?o:Em)},e.resetPageSize=r=>{var o,i;e.setPageSize(r?Mm:(o=(i=e.initialState)==null||(i=i.pagination)==null?void 0:i.pageSize)!=null?o:Mm)},e.setPageSize=r=>{e.setPagination(o=>{const i=Math.max(1,Xo(r,o.pageSize)),a=o.pageSize*o.pageIndex,s=Math.floor(a/i);return{...o,pageIndex:s,pageSize:i}})},e.setPageCount=r=>e.setPagination(o=>{var i;let a=Xo(r,(i=e.options.pageCount)!=null?i:-1);return typeof a=="number"&&(a=Math.max(-1,a)),{...o,pageCount:a}}),e.getPageOptions=Me(()=>[e.getPageCount()],r=>{let o=[];return r&&r>0&&(o=[...new Array(r)].fill(null).map((i,a)=>a)),o},Ie(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:r}=e.getState().pagination,o=e.getPageCount();return o===-1?!0:o===0?!1:re.setPageIndex(r=>r-1),e.nextPage=()=>e.setPageIndex(r=>r+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var r;return(r=e.options.pageCount)!=null?r:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var r;return(r=e.options.rowCount)!=null?r:e.getPrePaginationRowModel().rows.length}}},Og=()=>({top:[],bottom:[]}),BB={getInitialState:e=>({rowPinning:Og(),...e}),getDefaultOptions:e=>({onRowPinningChange:tr("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,r,o)=>{const i=r?e.getLeafRows().map(l=>{let{id:c}=l;return c}):[],a=o?e.getParentRows().map(l=>{let{id:c}=l;return c}):[],s=new Set([...a,e.id,...i]);t.setRowPinning(l=>{var c,u;if(n==="bottom"){var d,f;return{top:((d=l==null?void 0:l.top)!=null?d:[]).filter(y=>!(s!=null&&s.has(y))),bottom:[...((f=l==null?void 0:l.bottom)!=null?f:[]).filter(y=>!(s!=null&&s.has(y))),...Array.from(s)]}}if(n==="top"){var p,h;return{top:[...((p=l==null?void 0:l.top)!=null?p:[]).filter(y=>!(s!=null&&s.has(y))),...Array.from(s)],bottom:((h=l==null?void 0:l.bottom)!=null?h:[]).filter(y=>!(s!=null&&s.has(y)))}}return{top:((c=l==null?void 0:l.top)!=null?c:[]).filter(y=>!(s!=null&&s.has(y))),bottom:((u=l==null?void 0:l.bottom)!=null?u:[]).filter(y=>!(s!=null&&s.has(y)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:r,enablePinning:o}=t.options;return typeof r=="function"?r(e):(n=r??o)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:r,bottom:o}=t.getState().rowPinning,i=n.some(s=>r==null?void 0:r.includes(s)),a=n.some(s=>o==null?void 0:o.includes(s));return i?"top":a?"bottom":!1},e.getPinnedIndex=()=>{var n,r;const o=e.getIsPinned();if(!o)return-1;const i=(n=o==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(a=>{let{id:s}=a;return s});return(r=i==null?void 0:i.indexOf(e.id))!=null?r:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,r;return e.setRowPinning(t?Og():(n=(r=e.initialState)==null?void 0:r.rowPinning)!=null?n:Og())},e.getIsSomeRowsPinned=t=>{var n;const r=e.getState().rowPinning;if(!t){var o,i;return!!((o=r.top)!=null&&o.length||(i=r.bottom)!=null&&i.length)}return!!((n=r[t])!=null&&n.length)},e._getPinnedRows=(t,n,r)=>{var o;return((o=e.options.keepPinnedRows)==null||o?(n??[]).map(a=>{const s=e.getRow(a,!0);return s.getIsAllParentsExpanded()?s:null}):(n??[]).map(a=>t.find(s=>s.id===a))).filter(Boolean).map(a=>({...a,position:r}))},e.getTopRows=Me(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),Ie(e.options,"debugRows")),e.getBottomRows=Me(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),Ie(e.options,"debugRows")),e.getCenterRows=Me(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,r)=>{const o=new Set([...n??[],...r??[]]);return t.filter(i=>!o.has(i.id))},Ie(e.options,"debugRows"))}},zB={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:tr("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const r={...n},o=e.getPreGroupedRowModel().flatRows;return t?o.forEach(i=>{i.getCanSelect()&&(r[i.id]=!0)}):o.forEach(i=>{delete r[i.id]}),r})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),o={...n};return e.getRowModel().rows.forEach(i=>{Im(o,i.id,r,!0,e)}),o}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=Me(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?Lg(e,n):{rows:[],flatRows:[],rowsById:{}},Ie(e.options,"debugTable")),e.getFilteredSelectedRowModel=Me(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?Lg(e,n):{rows:[],flatRows:[],rowsById:{}},Ie(e.options,"debugTable")),e.getGroupedSelectedRowModel=Me(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?Lg(e,n):{rows:[],flatRows:[],rowsById:{}},Ie(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!(t.length&&Object.keys(n).length);return r&&t.some(o=>o.getCanSelect()&&!n[o.id])&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(o=>o.getCanSelect()),{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(o=>!n[o.id])&&(r=!1),r},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(n=>n.getCanSelect()).some(n=>n.getIsSelected()||n.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,r)=>{const o=e.getIsSelected();t.setRowSelection(i=>{var a;if(n=typeof n<"u"?n:!o,e.getCanSelect()&&o===n)return i;const s={...i};return Im(s,e.id,n,(a=r==null?void 0:r.selectChildren)!=null?a:!0,t),s})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return W1(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return Om(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return Om(e,n)==="all"},e.getCanSelect=()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},e.getCanSelectSubRows=()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},e.getCanMultiSelect=()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},e.getToggleSelectedHandler=()=>{const n=e.getCanSelect();return r=>{var o;n&&e.toggleSelected((o=r.target)==null?void 0:o.checked)}}}},Im=(e,t,n,r,o)=>{var i;const a=o.getRow(t,!0);n?(a.getCanMultiSelect()||Object.keys(e).forEach(s=>delete e[s]),a.getCanSelect()&&(e[t]=!0)):delete e[t],r&&(i=a.subRows)!=null&&i.length&&a.getCanSelectSubRows()&&a.subRows.forEach(s=>Im(e,s.id,n,r,o))};function Lg(e,t){const n=e.getState().rowSelection,r=[],o={},i=function(a,s){return a.map(l=>{var c;const u=W1(l,n);if(u&&(r.push(l),o[l.id]=l),(c=l.subRows)!=null&&c.length&&(l={...l,subRows:i(l.subRows)}),u)return l}).filter(Boolean)};return{rows:i(t.rows),flatRows:r,rowsById:o}}function W1(e,t){var n;return(n=t[e.id])!=null?n:!1}function Om(e,t,n){var r;if(!((r=e.subRows)!=null&&r.length))return!1;let o=!0,i=!1;return e.subRows.forEach(a=>{if(!(i&&!o)&&(a.getCanSelect()&&(W1(a,t)?i=!0:o=!1),a.subRows&&a.subRows.length)){const s=Om(a,t);s==="all"?i=!0:(s==="some"&&(i=!0),o=!1)}}),o?"all":i?"some":!1}const Lm=/([0-9]+)/gm,HB=(e,t,n)=>$R(gi(e.getValue(n)).toLowerCase(),gi(t.getValue(n)).toLowerCase()),VB=(e,t,n)=>$R(gi(e.getValue(n)),gi(t.getValue(n))),WB=(e,t,n)=>U1(gi(e.getValue(n)).toLowerCase(),gi(t.getValue(n)).toLowerCase()),UB=(e,t,n)=>U1(gi(e.getValue(n)),gi(t.getValue(n))),GB=(e,t,n)=>{const r=e.getValue(n),o=t.getValue(n);return r>o?1:rU1(e.getValue(n),t.getValue(n));function U1(e,t){return e===t?0:e>t?1:-1}function gi(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function $R(e,t){const n=e.split(Lm).filter(Boolean),r=t.split(Lm).filter(Boolean);for(;n.length&&r.length;){const o=n.shift(),i=r.shift(),a=parseInt(o,10),s=parseInt(i,10),l=[a,s].sort();if(isNaN(l[0])){if(o>i)return 1;if(i>o)return-1;continue}if(isNaN(l[1]))return isNaN(a)?-1:1;if(a>s)return 1;if(s>a)return-1}return n.length-r.length}const rl={alphanumeric:HB,alphanumericCaseSensitive:VB,text:WB,textCaseSensitive:UB,datetime:GB,basic:qB},KB={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:tr("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const o of n){const i=o==null?void 0:o.getValue(e.id);if(Object.prototype.toString.call(i)==="[object Date]")return rl.datetime;if(typeof i=="string"&&(r=!0,i.split(Lm).length>1))return rl.alphanumeric}return r?rl.text:rl.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof(n==null?void 0:n.getValue(e.id))=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,r;if(!e)throw new Error;return Sp(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(r=t.options.sortingFns)==null?void 0:r[e.columnDef.sortingFn])!=null?n:rl[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{const o=e.getNextSortingOrder(),i=typeof n<"u"&&n!==null;t.setSorting(a=>{const s=a==null?void 0:a.find(p=>p.id===e.id),l=a==null?void 0:a.findIndex(p=>p.id===e.id);let c=[],u,d=i?n:o==="desc";if(a!=null&&a.length&&e.getCanMultiSort()&&r?s?u="toggle":u="add":a!=null&&a.length&&l!==a.length-1?u="replace":s?u="toggle":u="replace",u==="toggle"&&(i||o||(u="remove")),u==="add"){var f;c=[...a,{id:e.id,desc:d}],c.splice(0,c.length-((f=t.options.maxMultiSortColCount)!=null?f:Number.MAX_SAFE_INTEGER))}else u==="toggle"?c=a.map(p=>p.id===e.id?{...p,desc:d}:p):u==="remove"?c=a.filter(p=>p.id!==e.id):c=[{id:e.id,desc:d}];return c})},e.getFirstSortDir=()=>{var n,r;return((n=(r=e.columnDef.sortDescFirst)!=null?r:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var r,o;const i=e.getFirstSortDir(),a=e.getIsSorted();return a?a!==i&&((r=t.options.enableSortingRemoval)==null||r)&&(!(n&&(o=t.options.enableMultiRemove)!=null)||o)?!1:a==="desc"?"asc":"desc":i},e.getCanSort=()=>{var n,r;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((r=t.options.enableSorting)!=null?r:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,r;return(n=(r=e.columnDef.enableMultiSort)!=null?r:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const r=(n=t.getState().sorting)==null?void 0:n.find(o=>o.id===e.id);return r?r.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,r;return(n=(r=t.getState().sorting)==null?void 0:r.findIndex(o=>o.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(r=>r.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return r=>{n&&(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,r;e.setSorting(t?[]:(n=(r=e.initialState)==null?void 0:r.sorting)!=null?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},ZB=[mB,AB,MB,IB,yB,bB,NB,DB,KB,$B,jB,FB,BB,zB,OB];function QB(e){var t,n;const r=[...ZB,...(t=e._features)!=null?t:[]];let o={_features:r};const i=o._features.reduce((f,p)=>Object.assign(f,p.getDefaultOptions==null?void 0:p.getDefaultOptions(o)),{}),a=f=>o.options.mergeOptions?o.options.mergeOptions(i,f):{...i,...f};let l={...{},...(n=e.initialState)!=null?n:{}};o._features.forEach(f=>{var p;l=(p=f.getInitialState==null?void 0:f.getInitialState(l))!=null?p:l});const c=[];let u=!1;const d={_features:r,options:{...i,...e},initialState:l,_queue:f=>{c.push(f),u||(u=!0,Promise.resolve().then(()=>{for(;c.length;)c.shift()();u=!1}).catch(p=>setTimeout(()=>{throw p})))},reset:()=>{o.setState(o.initialState)},setOptions:f=>{const p=Xo(f,o.options);o.options=a(p)},getState:()=>o.options.state,setState:f=>{o.options.onStateChange==null||o.options.onStateChange(f)},_getRowId:(f,p,h)=>{var y;return(y=o.options.getRowId==null?void 0:o.options.getRowId(f,p,h))!=null?y:`${h?[h.id,p].join("."):p}`},getCoreRowModel:()=>(o._getCoreRowModel||(o._getCoreRowModel=o.options.getCoreRowModel(o)),o._getCoreRowModel()),getRowModel:()=>o.getPaginationRowModel(),getRow:(f,p)=>{let h=(p?o.getPrePaginationRowModel():o.getRowModel()).rowsById[f];if(!h&&(h=o.getCoreRowModel().rowsById[f],!h))throw new Error;return h},_getDefaultColumnDef:Me(()=>[o.options.defaultColumn],f=>{var p;return f=(p=f)!=null?p:{},{header:h=>{const y=h.header.column.columnDef;return y.accessorKey?y.accessorKey:y.accessorFn?y.id:null},cell:h=>{var y,w;return(y=(w=h.renderValue())==null||w.toString==null?void 0:w.toString())!=null?y:null},...o._features.reduce((h,y)=>Object.assign(h,y.getDefaultColumnDef==null?void 0:y.getDefaultColumnDef()),{}),...f}},Ie(e,"debugColumns")),_getColumnDefs:()=>o.options.columns,getAllColumns:Me(()=>[o._getColumnDefs()],f=>{const p=function(h,y,w){return w===void 0&&(w=0),h.map(v=>{const S=hB(o,v,w,y),m=v;return S.columns=m.columns?p(m.columns,S,w+1):[],S})};return p(f)},Ie(e,"debugColumns")),getAllFlatColumns:Me(()=>[o.getAllColumns()],f=>f.flatMap(p=>p.getFlatColumns()),Ie(e,"debugColumns")),_getAllFlatColumnsById:Me(()=>[o.getAllFlatColumns()],f=>f.reduce((p,h)=>(p[h.id]=h,p),{}),Ie(e,"debugColumns")),getAllLeafColumns:Me(()=>[o.getAllColumns(),o._getOrderColumnsFn()],(f,p)=>{let h=f.flatMap(y=>y.getLeafColumns());return p(h)},Ie(e,"debugColumns")),getColumn:f=>o._getAllFlatColumnsById()[f]};Object.assign(o,d);for(let f=0;fMe(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(o,i,a){i===void 0&&(i=0);const s=[];for(let c=0;ce._autoResetPageIndex()))}function XB(e){const t=[],n=r=>{var o;t.push(r),(o=r.subRows)!=null&&o.length&&r.getIsExpanded()&&r.subRows.forEach(n)};return e.rows.forEach(n),{rows:t,flatRows:e.flatRows,rowsById:e.rowsById}}function JB(e){return t=>Me(()=>[t.getState().pagination,t.getPrePaginationRowModel(),t.options.paginateExpandedRows?void 0:t.getState().expanded],(n,r)=>{if(!r.rows.length)return r;const{pageSize:o,pageIndex:i}=n;let{rows:a,flatRows:s,rowsById:l}=r;const c=o*i,u=c+o;a=a.slice(c,u);let d;t.options.paginateExpandedRows?d={rows:a,flatRows:s,rowsById:l}:d=XB({rows:a,flatRows:s,rowsById:l}),d.flatRows=[];const f=p=>{d.flatRows.push(p),p.subRows.length&&p.subRows.forEach(f)};return d.rows.forEach(f),d},Ie(t.options,"debugTable"))}function ez(){return e=>Me(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,o=[],i=r.filter(l=>{var c;return(c=e.getColumn(l.id))==null?void 0:c.getCanSort()}),a={};i.forEach(l=>{const c=e.getColumn(l.id);c&&(a[l.id]={sortUndefined:c.columnDef.sortUndefined,invertSorting:c.columnDef.invertSorting,sortingFn:c.getSortingFn()})});const s=l=>{const c=l.map(u=>({...u}));return c.sort((u,d)=>{for(let p=0;p{var d;o.push(u),(d=u.subRows)!=null&&d.length&&(u.subRows=s(u.subRows))}),c};return{rows:s(n.rows),flatRows:o,rowsById:n.rowsById}},Ie(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}/** + * react-table + * + * Copyright (c) TanStack + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function ER(e,t){return e?tz(e)?b.createElement(e,t):e:null}function tz(e){return nz(e)||typeof e=="function"||rz(e)}function nz(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function rz(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function oz(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=b.useState(()=>({current:QB(t)})),[r,o]=b.useState(()=>n.current.initialState);return n.current.setOptions(i=>({...i,...e,state:{...r,...e.state},onStateChange:a=>{o(a),e.onStateChange==null||e.onStateChange(a)}})),n.current}const iz=e=>e.map(t=>({...t,accessorKey:t.field,header:t.renderHeader?({table:n})=>t.renderHeader({table:n}):t.headerName,minSize:t.minWidth,maxSize:t.maxWidth,size:t.width,cell:t.renderCell?n=>t.renderCell({...n,data:n.row.original}):n=>n.renderValue(),meta:{headerAlign:t.headerAlign,align:t.align}}));function MR(e,t){const n="column"in e?e.column:e,r=t?"header":"col";return{minWidth:`max(calc(var(--${r}-${n.id}-size) * 1px), ${n.columnDef.minSize??0}px)`,width:`min(calc(var(--${r}-${n.id}-size) * 1px), ${n.columnDef.size}px)`,maxWidth:`min(calc(var(--${r}-${n.id}-size) * 1px), ${n.columnDef.maxSize??Number.MAX_SAFE_INTEGER}px)`}}const IR=()=>{const[e,t]=b.useState(!1),[n,r]=b.useState(!1),o=b.useRef(null),i=b.useCallback(()=>{if(o.current){const{scrollLeft:s,scrollWidth:l,clientWidth:c}=o.current;t(s>0),r(s{i()},[]);function a(s,l){const c="column"in s?s.column:s,u=c.getIsPinned();return{position:u||l?"sticky":"relative",top:l?0:void 0,left:u==="left"?`${c.getStart("left")}px`:void 0,right:u==="right"?`${c.getAfter("right")}px`:void 0,zIndex:l?u?3:2:u?2:1,backgroundColor:u?"#fff":"transparent",transition:"all 0.1s ease"}}return{tableContainerRef:o,getCommonPinningStyles:a,updateShadows:i,showShadowState:{showLeftShadow:e,showRightShadow:n}}},Ag=[10,25,50,100],az=10,sz=10,lz=({paginationMode:e,paginationState:t,onPageChange:n,onPageSizeChange:r})=>{const{pageIndex:o=0,pageSize:i=sz,totalCount:a}=t||{},[s,l]=b.useState({pageIndex:o,pageSize:i}),c=b.useMemo(()=>{if(e!=="client")return Math.ceil(a/s.pageSize)},[e,a,s.pageSize]),u=b.useCallback(f=>{l(p=>({...p,pageIndex:f})),n&&n(f)},[n]),d=b.useCallback(f=>{const p=Number(f.target.value);l(h=>({...h,pageSize:p})),r&&r(p)},[r]);return{pagination:s,setPagination:l,pageCount:c,handlePageChange:u,handleRowsPerPageChange:d}},cz="_root_71ors_3",uz="_withBorder_71ors_6",dz="_tableContainer_71ors_15",fz="_resizer_71ors_21",pz="_cell_71ors_35",gz="_headerCell_71ors_53",hz="_bodyCell_71ors_54",mz="_pinnedRight_71ors_67",vz="_pinnedLeft_71ors_68",yz="_rowWhenHover_71ors_92",bz="_emptyCell_71ors_103",xz="_footer_71ors_110",Sz="_hide_71ors_114",wz="_onlyPagination_71ors_117",vn={root:cz,withBorder:uz,tableContainer:dz,resizer:fz,cell:pz,headerCell:gz,bodyCell:hz,pinnedRight:mz,pinnedLeft:vz,rowWhenHover:yz,emptyCell:bz,footer:xz,hide:Sz,onlyPagination:wz},Cz=e=>{const{isExpanded:t,row:n,renderDetail:r}=e;return g.jsx(yp,{children:g.jsx(ps,{in:t,children:r?r(n):null},void 0)},void 0)},_z=rt.memo(({row:e,rowProps:t,showShadowState:n})=>g.jsx(yp,{...t,hover:!0,classes:{hover:vn.rowWhenHover},children:e.getVisibleCells().map(r=>g.jsx(Rz,{cell:r,showShadowState:n},void 0))},void 0),(e,t)=>e.row===t.row&&e.showShadowState===t.showShadowState),Rz=rt.memo(({cell:e,showShadowState:t})=>{var r;const{getCommonPinningStyles:n}=IR();return g.jsx(ys,{classes:{root:vn.cell,body:Gt(vn.bodyCell,{[vn.pinnedRight]:e.column.getIsPinned()==="right"&&e.column.getIsFirstColumn("right")&&t.showRightShadow,[vn.pinnedLeft]:e.column.getIsPinned()==="left"&&e.column.getIsLastColumn("left")&&t.showLeftShadow})},style:{...MR(e),...n(e,!1),textAlign:((r=e.column.columnDef.meta)==null?void 0:r.align)||"left"},children:ER(e.column.columnDef.cell,e.getContext())},e.id)},(e,t)=>e.cell.getValue()===t.cell.getValue()&&e.showShadowState===t.showShadowState),OR=e=>{const{table:t,showShadowState:n,renderDetail:r,expandedRows:o,columnsCount:i}=e,a=t.getRowModel().rows,s=zt();return g.jsx(P7,{children:a.length===0?g.jsx(yp,{children:g.jsx(ys,{colSpan:i,className:vn.emptyCell,children:g.jsx(mt,{color:"textSecondary",children:Kd(Ae.NoRows,s.language)},void 0)},void 0)},void 0):a.map(l=>{const c=!!o[l.id];return g.jsxs(g.Fragment,{children:[g.jsx(_z,{rowProps:{key:l.id},row:l,showShadowState:n},void 0),r&&c&&g.jsx(Cz,{row:l.original,isExpanded:c,renderDetail:r},void 0)]},void 0)})},void 0)},Tz=rt.memo(OR,(e,t)=>e.table.options.data===t.table.options.data&&e.expandedRows===t.expandedRows),Pz=e=>{const{header:t}=e,n=b.useCallback(r=>{r.preventDefault(),t.getResizeHandler()(r.nativeEvent)},[t]);return g.jsx("div",{onMouseDown:n,className:Gt(vn.resizer,{[vn.isResizing]:t.column.getIsResizing()})},void 0)};var Am;(function(e){e[e.ManageColumnDisplay=0]="ManageColumnDisplay"})(Am||(Am={}));const kz=e=>{const{table:t}=e,[n,r]=b.useState(null),o=!!n,i=o?"simple-popover":void 0,a=(l,c)=>{r(l.currentTarget)},s=()=>{r(null)};return g.jsxs(F_,{sx:{display:"flex",justifyContent:"space-between"},children:[g.jsx(mt,{children:"Table"},void 0),g.jsxs("div",{children:[g.jsx(A1,{onClick:l=>a(l,Am.ManageColumnDisplay),children:g.jsx(XA,{size:24},void 0)},void 0),g.jsx(L_,{id:i,open:o,onClose:s,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:"right"},children:g.jsxs("div",{style:{padding:"16px",boxShadow:"0px 4px 4px rgba(0, 0, 0, 0.25)"},children:[g.jsx(mt,{sx:{marginBottom:"16px"},children:"Manage Column Display"},void 0),g.jsx("div",{children:t.getAllLeafColumns().map(l=>g.jsx("div",{className:"px-1",children:g.jsxs("label",{children:[g.jsx("input",{type:"checkbox",checked:l.getIsVisible(),onChange:l.getToggleVisibilityHandler()},void 0)," ",l.columnDef.header]},void 0)},l.id))},void 0)]},void 0)},void 0)]},void 0)]},void 0)},$z=e=>{const{header:t,children:n}=e;return t.column.getCanSort()?g.jsx(mA,{active:t.column.getIsSorted()!==!1,direction:t.column.getIsSorted()||"asc",onClick:t.column.getToggleSortingHandler(),children:n},void 0):g.jsx(g.Fragment,{children:n},void 0)},Ez=()=>{const[e,t]=b.useState({}),n=o=>{t(i=>({...i,[o]:!i[o]}))},r=b.useMemo(()=>({id:"expander",headerName:"",field:"expander",renderCell:({row:o})=>g.jsx(A1,{onClick:()=>n(o.id),size:"small",children:e[o.id]?g.jsx(KA,{size:24},void 0):g.jsx(ia,{size:24},void 0)},void 0)}),[e]);return{expandedRows:e,toggleRowExpanded:n,expandedColumn:r}},Mz=e=>{const{selectedIds:t}=e,n=t.reduce((a,s)=>(a[s]=!0,a),{}),[r,o]=b.useState(n||{});return{checkboxColumn:b.useMemo(()=>({id:"checkbox",headerName:"",field:"checkbox",renderHeader:({table:a})=>g.jsx(Qd,{checked:a.getIsAllRowsSelected(),indeterminate:a.getIsSomeRowsSelected(),onChange:a.getToggleAllRowsSelectedHandler()},void 0),renderCell:({row:a})=>g.jsx(Qd,{checked:a.getIsSelected(),disabled:!a.getCanSelect(),indeterminate:a.getIsSomeSelected(),onChange:a.getToggleSelectedHandler()},void 0)}),[]),setRowSelection:o,rowSelection:r}},pt=e=>{const{columns:t,rows:n,initialState:r,stickyHeader:o=!1,maxHeight:i,showPagination:a=!0,paginationMode:s="client",sortingMode:l="client",onSortingChange:c,rowCount:u=0,showPageSizeSelect:d=!0,pageSize:f,page:p,onPageChange:h,onPageSizeChange:y,enableColumnResizing:w=!1,showToolbar:v=!1,renderDetail:S,isRowSelectable:m,enableMultiRowSelection:C=!0,showCheckboxColumn:_=!1,onSelectChange:R,getRowId:k,renderFooter:T,classes:P={tableContainer:""},withBorder:x=!0,selectedRowIds:$=[]}=e,{tableContainerRef:I,getCommonPinningStyles:O,updateShadows:D,showShadowState:M}=IR(),{pagination:A,pageCount:N,handlePageChange:E,handleRowsPerPageChange:L}=lz({paginationMode:s,paginationState:{pageIndex:p,pageSize:f,totalCount:u},onPageChange:h,onPageSizeChange:y}),{expandedColumn:B,expandedRows:H}=Ez(),{rowSelection:z,setRowSelection:j,checkboxColumn:F}=Mz({selectedIds:$}),[W,V]=b.useState([]),ee=b.useMemo(()=>{const de=[...t].filter(Q=>!Q.hide);return S&&de.unshift(B),_&&de.unshift(F),iz(de)},[t,S,H,_]),re=oz({data:n,columns:ee,getCoreRowModel:YB(),getPaginationRowModel:JB(),getSortedRowModel:l==="client"?ez():void 0,onSortingChange:de=>{const Q=typeof de=="function"?de(W):de;V(Q),l==="server"&&c&&c(Q)},enableColumnPinning:!0,enableRowSelection:de=>_&&(m?m(de.original):!0),enableMultiRowSelection:C,initialState:r,defaultColumn:{enableSorting:!1},state:{pagination:A,sorting:W,rowSelection:z},manualPagination:s==="server",manualSorting:l==="server",pageCount:N,enableColumnResizing:w,columnResizeMode:"onChange",onRowSelectionChange:j,getRowId:de=>k?k(de):de.id}),{getState:U}=re,{columnSizing:K,columnSizingInfo:se}=U();b.useEffect(()=>{const de=Object.keys(z).filter(Q=>z[Q]);R&&R(de)},[z]);const{showPagination:q,totalCount:ce}=b.useMemo(()=>{const de=s==="server"?u:n.length;return{showPagination:a&&de>az,totalCount:de}},[a,s,n.length]),ue=b.useMemo(()=>d?!f||Ag.includes(f)?Ag:[f,...Ag]:[],[d,f]),ie=b.useMemo(()=>{const de=re.getFlatHeaders().length;return{table:re,showShadowState:M,renderDetail:S,expandedRows:H,columnsCount:de}},[re,M,S,H]),te=b.useMemo(()=>{const de=re.getFlatHeaders(),Q={};for(let be=0;beg.jsx(yp,{children:de.headers.map(Q=>{var be;return g.jsxs(ys,{padding:"none",classes:{root:vn.cell,head:vn.headerCell},style:{...MR(Q,!0),...O(Q,o),textAlign:((be=Q.column.columnDef.meta)==null?void 0:be.headerAlign)||"left",backgroundColor:"#fff"},children:[g.jsx($z,{header:Q,children:Q.isPlaceholder?null:ER(Q.column.columnDef.header,Q.getContext())},void 0),Q.column.getCanResize()&&g.jsx(Pz,{header:Q},void 0)]},Q.id)})},de.id))},void 0),se.isResizingColumn?g.jsx(Tz,{...ie},void 0):g.jsx(OR,{...ie},void 0)]},void 0)},void 0),g.jsxs(B7,{classes:{root:Gt(vn.footer,{[vn.hide]:!T&&!q,[vn.onlyPagination]:!T&&q})},children:[T&&T(Object.keys(z)),q&&g.jsx(ID,{rowsPerPage:A.pageSize,page:A.pageIndex,count:ce,onPageChange:(de,Q)=>E(Q),onRowsPerPageChange:L,rowsPerPageOptions:ue},void 0)]},void 0)]},void 0)};var LR={exports:{}},AR={};/** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var xs=b;function Iz(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Oz=typeof Object.is=="function"?Object.is:Iz,Lz=xs.useState,Az=xs.useEffect,Nz=xs.useLayoutEffect,Dz=xs.useDebugValue;function jz(e,t){var n=t(),r=Lz({inst:{value:n,getSnapshot:t}}),o=r[0].inst,i=r[1];return Nz(function(){o.value=n,o.getSnapshot=t,Ng(o)&&i({inst:o})},[e,n,t]),Az(function(){return Ng(o)&&i({inst:o}),e(function(){Ng(o)&&i({inst:o})})},[e]),Dz(n),n}function Ng(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Oz(e,n)}catch{return!0}}function Fz(e,t){return t()}var Bz=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Fz:jz;AR.useSyncExternalStore=xs.useSyncExternalStore!==void 0?xs.useSyncExternalStore:Bz;LR.exports=AR;var zz=LR.exports;const Jo=()=>{},Pn=Jo(),Yu=Object,et=e=>e===Pn,Or=e=>typeof e=="function",ko=(e,t)=>({...e,...t}),Hz=e=>Or(e.then),Su=new WeakMap;let Vz=0;const gc=e=>{const t=typeof e,n=e&&e.constructor,r=n==Date;let o,i;if(Yu(e)===e&&!r&&n!=RegExp){if(o=Su.get(e),o)return o;if(o=++Vz+"~",Su.set(e,o),n==Array){for(o="@",i=0;iwp&&typeof window.requestAnimationFrame!=G1,NR=(e,t)=>{const n=vo.get(e);return[()=>!et(t)&&e.get(t)||Dg,r=>{if(!et(t)){const o=e.get(t);t in wu||(wu[t]=o),n[5](t,ko(o,r),o||Dg)}},n[6],()=>!et(t)&&t in wu?wu[t]:!et(t)&&e.get(t)||Dg]};let Dm=!0;const Uz=()=>Dm,[jm,Fm]=wp&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[Jo,Jo],Gz=()=>{const e=Nm&&document.visibilityState;return et(e)||e!=="hidden"},qz=e=>(Nm&&document.addEventListener("visibilitychange",e),jm("focus",e),()=>{Nm&&document.removeEventListener("visibilitychange",e),Fm("focus",e)}),Kz=e=>{const t=()=>{Dm=!0,e()},n=()=>{Dm=!1};return jm("online",t),jm("offline",n),()=>{Fm("online",t),Fm("offline",n)}},Zz={isOnline:Uz,isVisible:Gz},Qz={initFocus:qz,initReconnect:Kz},Wx=!rt.useId,hc=!wp||"Deno"in window,Yz=e=>Wz()?window.requestAnimationFrame(e):setTimeout(e,1),Xu=hc?b.useEffect:b.useLayoutEffect,jg=typeof navigator<"u"&&navigator.connection,Ux=!hc&&jg&&(["slow-2g","2g"].includes(jg.effectiveType)||jg.saveData),q1=e=>{if(Or(e))try{e=e()}catch{e=""}const t=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?gc(e):"",[e,t]};let Xz=0;const Bm=()=>++Xz,DR=0,jR=1,FR=2,Jz=3;var ol={__proto__:null,ERROR_REVALIDATE_EVENT:Jz,FOCUS_EVENT:DR,MUTATE_EVENT:FR,RECONNECT_EVENT:jR};async function BR(...e){const[t,n,r,o]=e,i=ko({populateCache:!0,throwOnError:!0},typeof o=="boolean"?{revalidate:o}:o||{});let a=i.populateCache;const s=i.rollbackOnError;let l=i.optimisticData;const c=f=>typeof s=="function"?s(f):s!==!1,u=i.throwOnError;if(Or(n)){const f=n,p=[],h=t.keys();for(const y of h)!/^\$(inf|sub)\$/.test(y)&&f(t.get(y)._k)&&p.push(y);return Promise.all(p.map(d))}return d(n);async function d(f){const[p]=q1(f);if(!p)return;const[h,y]=NR(t,p),[w,v,S,m]=vo.get(t),C=()=>{const O=w[p];return(Or(i.revalidate)?i.revalidate(h().data,f):i.revalidate!==!1)&&(delete S[p],delete m[p],O&&O[0])?O[0](FR).then(()=>h().data):h().data};if(e.length<3)return C();let _=r,R;const k=Bm();v[p]=[k,0];const T=!et(l),P=h(),x=P.data,$=P._c,I=et($)?x:$;if(T&&(l=Or(l)?l(I,x):l,y({data:l,_c:I})),Or(_))try{_=_(I)}catch(O){R=O}if(_&&Hz(_))if(_=await _.catch(O=>{R=O}),k!==v[p][0]){if(R)throw R;return _}else R&&T&&c(R)&&(a=!0,y({data:I,_c:Pn}));if(a&&!R)if(Or(a)){const O=a(_,I);y({data:O,error:Pn,_c:Pn})}else y({data:_,error:Pn,_c:Pn});if(v[p][1]=Bm(),Promise.resolve(C()).then(()=>{y({_c:Pn})}),R){if(u)throw R;return}return _}}const Gx=(e,t)=>{for(const n in e)e[n][0]&&e[n][0](t)},zR=(e,t)=>{if(!vo.has(e)){const n=ko(Qz,t),r={},o=BR.bind(Pn,e);let i=Jo;const a={},s=(u,d)=>{const f=a[u]||[];return a[u]=f,f.push(d),()=>f.splice(f.indexOf(d),1)},l=(u,d,f)=>{e.set(u,d);const p=a[u];if(p)for(const h of p)h(d,f)},c=()=>{if(!vo.has(e)&&(vo.set(e,[r,{},{},{},o,l,s]),!hc)){const u=n.initFocus(setTimeout.bind(Pn,Gx.bind(Pn,r,DR))),d=n.initReconnect(setTimeout.bind(Pn,Gx.bind(Pn,r,jR)));i=()=>{u&&u(),d&&d(),vo.delete(e)}}};return c(),[e,o,c,i]}return[e,vo.get(e)[4]]},eH=(e,t,n,r,o)=>{const i=n.errorRetryCount,a=o.retryCount,s=~~((Math.random()+.5)*(1<<(a<8?a:8)))*n.errorRetryInterval;!et(i)&&a>i||setTimeout(r,s,o)},tH=(e,t)=>gc(e)==gc(t),[K1,nH]=zR(new Map),HR=ko({onLoadingSlow:Jo,onSuccess:Jo,onError:Jo,onErrorRetry:eH,onDiscarded:Jo,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:Ux?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:Ux?5e3:3e3,compare:tH,isPaused:()=>!1,cache:K1,mutate:nH,fallback:{}},Zz),VR=(e,t)=>{const n=ko(e,t);if(t){const{use:r,fallback:o}=e,{use:i,fallback:a}=t;r&&i&&(n.use=r.concat(i)),o&&a&&(n.fallback=ko(o,a))}return n},zm=b.createContext({}),rH=e=>{const{value:t}=e,n=b.useContext(zm),r=Or(t),o=b.useMemo(()=>r?t(n):t,[r,n,t]),i=b.useMemo(()=>r?o:VR(n,o),[r,n,o]),a=o&&o.provider,s=b.useRef(Pn);a&&!s.current&&(s.current=zR(a(i.cache||K1),o));const l=s.current;return l&&(i.cache=l[0],i.mutate=l[1]),Xu(()=>{if(l)return l[2]&&l[2](),l[3]},[]),b.createElement(zm.Provider,ko(e,{value:i}))},oH="$inf$",WR=wp&&window.__SWR_DEVTOOLS_USE__,iH=WR?window.__SWR_DEVTOOLS_USE__:[],aH=()=>{WR&&(window.__SWR_DEVTOOLS_REACT__=rt)},sH=e=>Or(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(e[1]===null?e[2]:e[1])||{}],lH=()=>ko(HR,b.useContext(zm)),cH=e=>(t,n,r)=>e(t,n&&((...i)=>{const[a]=q1(t),[,,,s]=vo.get(K1);if(a.startsWith(oH))return n(...i);const l=s[a];return et(l)?n(...i):(delete s[a],l)}),r),uH=iH.concat(cH),dH=e=>function(...n){const r=lH(),[o,i,a]=sH(n),s=VR(r,a);let l=e;const{use:c}=s,u=(c||[]).concat(uH);for(let d=u.length;d--;)l=u[d](l);return l(o,i||s.fetcher||null,s)},fH=(e,t,n)=>{const r=t[e]||(t[e]=[]);return r.push(n),()=>{const o=r.indexOf(n);o>=0&&(r[o]=r[r.length-1],r.pop())}};aH();const qx=rt.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e)}),Fg={dedupe:!0},pH=(e,t,n)=>{const{cache:r,compare:o,suspense:i,fallbackData:a,revalidateOnMount:s,revalidateIfStale:l,refreshInterval:c,refreshWhenHidden:u,refreshWhenOffline:d,keepPreviousData:f}=n,[p,h,y,w]=vo.get(r),[v,S]=q1(e),m=b.useRef(!1),C=b.useRef(!1),_=b.useRef(v),R=b.useRef(t),k=b.useRef(n),T=()=>k.current,P=()=>T().isVisible()&&T().isOnline(),[x,$,I,O]=NR(r,v),D=b.useRef({}).current,M=et(a)?n.fallback[v]:a,A=(q,ce)=>{for(const ue in D){const ie=ue;if(ie==="data"){if(!o(q[ie],ce[ie])&&(!et(q[ie])||!o(W,ce[ie])))return!1}else if(ce[ie]!==q[ie])return!1}return!0},N=b.useMemo(()=>{const q=!v||!t?!1:et(s)?T().isPaused()||i?!1:et(l)?!0:l:s,ce=be=>{const Te=ko(be);return delete Te._k,q?{isValidating:!0,isLoading:!0,...Te}:Te},ue=x(),ie=O(),te=ce(ue),de=ue===ie?te:ce(ie);let Q=te;return[()=>{const be=ce(x());return A(be,Q)?(Q.data=be.data,Q.isLoading=be.isLoading,Q.isValidating=be.isValidating,Q.error=be.error,Q):(Q=be,be)},()=>de]},[r,v]),E=zz.useSyncExternalStore(b.useCallback(q=>I(v,(ce,ue)=>{A(ue,ce)||q()}),[r,v]),N[0],N[1]),L=!m.current,B=p[v]&&p[v].length>0,H=E.data,z=et(H)?M:H,j=E.error,F=b.useRef(z),W=f?et(H)?F.current:H:z,V=B&&!et(j)?!1:L&&!et(s)?s:T().isPaused()?!1:i?et(z)?!1:l:et(z)||l,ee=!!(v&&t&&L&&V),re=et(E.isValidating)?ee:E.isValidating,U=et(E.isLoading)?ee:E.isLoading,K=b.useCallback(async q=>{const ce=R.current;if(!v||!ce||C.current||T().isPaused())return!1;let ue,ie,te=!0;const de=q||{},Q=!y[v]||!de.dedupe,be=()=>Wx?!C.current&&v===_.current&&m.current:v===_.current,Te={isValidating:!1,isLoading:!1},we=()=>{$(Te)},ge=()=>{const Se=y[v];Se&&Se[1]===ie&&delete y[v]},le={isValidating:!0};et(x().data)&&(le.isLoading=!0);try{if(Q&&($(le),n.loadingTimeout&&et(x().data)&&setTimeout(()=>{te&&be()&&T().onLoadingSlow(v,n)},n.loadingTimeout),y[v]=[ce(S),Bm()]),[ue,ie]=y[v],ue=await ue,Q&&setTimeout(ge,n.dedupingInterval),!y[v]||y[v][1]!==ie)return Q&&be()&&T().onDiscarded(v),!1;Te.error=Pn;const Se=h[v];if(!et(Se)&&(ie<=Se[0]||ie<=Se[1]||Se[1]===0))return we(),Q&&be()&&T().onDiscarded(v),!1;const ye=x().data;Te.data=o(ye,ue)?ye:ue,Q&&be()&&T().onSuccess(ue,v,n)}catch(Se){ge();const ye=T(),{shouldRetryOnError:Ge}=ye;ye.isPaused()||(Te.error=Se,Q&&be()&&(ye.onError(Se,v,ye),(Ge===!0||Or(Ge)&&Ge(Se))&&(!T().revalidateOnFocus||!T().revalidateOnReconnect||P())&&ye.onErrorRetry(Se,v,ye,Pe=>{const Re=p[v];Re&&Re[0]&&Re[0](ol.ERROR_REVALIDATE_EVENT,Pe)},{retryCount:(de.retryCount||0)+1,dedupe:!0})))}return te=!1,we(),!0},[v,r]),se=b.useCallback((...q)=>BR(r,_.current,...q),[]);if(Xu(()=>{R.current=t,k.current=n,et(H)||(F.current=H)}),Xu(()=>{if(!v)return;const q=K.bind(Pn,Fg);let ce=0;const ie=fH(v,p,(te,de={})=>{if(te==ol.FOCUS_EVENT){const Q=Date.now();T().revalidateOnFocus&&Q>ce&&P()&&(ce=Q+T().focusThrottleInterval,q())}else if(te==ol.RECONNECT_EVENT)T().revalidateOnReconnect&&P()&&q();else{if(te==ol.MUTATE_EVENT)return K();if(te==ol.ERROR_REVALIDATE_EVENT)return K(de)}});return C.current=!1,_.current=v,m.current=!0,$({_k:S}),V&&(et(z)||hc?q():Yz(q)),()=>{C.current=!0,ie()}},[v]),Xu(()=>{let q;function ce(){const ie=Or(c)?c(x().data):c;ie&&q!==-1&&(q=setTimeout(ue,ie))}function ue(){!x().error&&(u||T().isVisible())&&(d||T().isOnline())?K(Fg).then(ce):ce()}return ce(),()=>{q&&(clearTimeout(q),q=-1)}},[c,u,d,v]),b.useDebugValue(W),i&&et(z)&&v){if(!Wx&&hc)throw new Error("Fallback data is required when using suspense in SSR.");R.current=t,k.current=n,C.current=!1;const q=w[v];if(!et(q)){const ce=se(q);qx(ce)}if(et(j)){const ce=K(Fg);et(W)||(ce.status="fulfilled",ce.value=!0),qx(ce)}else throw j}return{mutate:se,get data(){return D.data=!0,W},get error(){return D.error=!0,j},get isValidating(){return D.isValidating=!0,re},get isLoading(){return D.isLoading=!0,U}}},gH=Yu.defineProperty(rH,"defaultValue",{value:HR}),nt=dH(pH);function UR(e,t){return function(){return e.apply(t,arguments)}}const{toString:hH}=Object.prototype,{getPrototypeOf:Z1}=Object,Cp=(e=>t=>{const n=hH.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Wr=e=>(e=e.toLowerCase(),t=>Cp(t)===e),_p=e=>t=>typeof t===e,{isArray:Os}=Array,mc=_p("undefined");function mH(e){return e!==null&&!mc(e)&&e.constructor!==null&&!mc(e.constructor)&&Xn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const GR=Wr("ArrayBuffer");function vH(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&GR(e.buffer),t}const yH=_p("string"),Xn=_p("function"),qR=_p("number"),Rp=e=>e!==null&&typeof e=="object",bH=e=>e===!0||e===!1,Ju=e=>{if(Cp(e)!=="object")return!1;const t=Z1(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},xH=Wr("Date"),SH=Wr("File"),wH=Wr("Blob"),CH=Wr("FileList"),_H=e=>Rp(e)&&Xn(e.pipe),RH=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Xn(e.append)&&((t=Cp(e))==="formdata"||t==="object"&&Xn(e.toString)&&e.toString()==="[object FormData]"))},TH=Wr("URLSearchParams"),[PH,kH,$H,EH]=["ReadableStream","Request","Response","Headers"].map(Wr),MH=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Oc(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,o;if(typeof e!="object"&&(e=[e]),Os(e))for(r=0,o=e.length;r0;)if(o=n[r],t===o.toLowerCase())return o;return null}const ji=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,ZR=e=>!mc(e)&&e!==ji;function Hm(){const{caseless:e}=ZR(this)&&this||{},t={},n=(r,o)=>{const i=e&&KR(t,o)||o;Ju(t[i])&&Ju(r)?t[i]=Hm(t[i],r):Ju(r)?t[i]=Hm({},r):Os(r)?t[i]=r.slice():t[i]=r};for(let r=0,o=arguments.length;r(Oc(t,(o,i)=>{n&&Xn(o)?e[i]=UR(o,n):e[i]=o},{allOwnKeys:r}),e),OH=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),LH=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},AH=(e,t,n,r)=>{let o,i,a;const s={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)a=o[i],(!r||r(a,e,t))&&!s[a]&&(t[a]=e[a],s[a]=!0);e=n!==!1&&Z1(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},NH=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},DH=e=>{if(!e)return null;if(Os(e))return e;let t=e.length;if(!qR(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},jH=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Z1(Uint8Array)),FH=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let o;for(;(o=r.next())&&!o.done;){const i=o.value;t.call(e,i[0],i[1])}},BH=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},zH=Wr("HTMLFormElement"),HH=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,o){return r.toUpperCase()+o}),Kx=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),VH=Wr("RegExp"),QR=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Oc(n,(o,i)=>{let a;(a=t(o,i,e))!==!1&&(r[i]=a||o)}),Object.defineProperties(e,r)},WH=e=>{QR(e,(t,n)=>{if(Xn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Xn(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},UH=(e,t)=>{const n={},r=o=>{o.forEach(i=>{n[i]=!0})};return Os(e)?r(e):r(String(e).split(t)),n},GH=()=>{},qH=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,Bg="abcdefghijklmnopqrstuvwxyz",Zx="0123456789",YR={DIGIT:Zx,ALPHA:Bg,ALPHA_DIGIT:Bg+Bg.toUpperCase()+Zx},KH=(e=16,t=YR.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function ZH(e){return!!(e&&Xn(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const QH=e=>{const t=new Array(10),n=(r,o)=>{if(Rp(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[o]=r;const i=Os(r)?[]:{};return Oc(r,(a,s)=>{const l=n(a,o+1);!mc(l)&&(i[s]=l)}),t[o]=void 0,i}}return r};return n(e,0)},YH=Wr("AsyncFunction"),XH=e=>e&&(Rp(e)||Xn(e))&&Xn(e.then)&&Xn(e.catch),XR=((e,t)=>e?setImmediate:t?((n,r)=>(ji.addEventListener("message",({source:o,data:i})=>{o===ji&&i===n&&r.length&&r.shift()()},!1),o=>{r.push(o),ji.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Xn(ji.postMessage)),JH=typeof queueMicrotask<"u"?queueMicrotask.bind(ji):typeof process<"u"&&process.nextTick||XR,G={isArray:Os,isArrayBuffer:GR,isBuffer:mH,isFormData:RH,isArrayBufferView:vH,isString:yH,isNumber:qR,isBoolean:bH,isObject:Rp,isPlainObject:Ju,isReadableStream:PH,isRequest:kH,isResponse:$H,isHeaders:EH,isUndefined:mc,isDate:xH,isFile:SH,isBlob:wH,isRegExp:VH,isFunction:Xn,isStream:_H,isURLSearchParams:TH,isTypedArray:jH,isFileList:CH,forEach:Oc,merge:Hm,extend:IH,trim:MH,stripBOM:OH,inherits:LH,toFlatObject:AH,kindOf:Cp,kindOfTest:Wr,endsWith:NH,toArray:DH,forEachEntry:FH,matchAll:BH,isHTMLForm:zH,hasOwnProperty:Kx,hasOwnProp:Kx,reduceDescriptors:QR,freezeMethods:WH,toObjectSet:UH,toCamelCase:HH,noop:GH,toFiniteNumber:qH,findKey:KR,global:ji,isContextDefined:ZR,ALPHABET:YR,generateString:KH,isSpecCompliantForm:ZH,toJSONObject:QH,isAsyncFn:YH,isThenable:XH,setImmediate:XR,asap:JH};function ze(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}G.inherits(ze,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:G.toJSONObject(this.config),code:this.code,status:this.status}}});const JR=ze.prototype,e3={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{e3[e]={value:e}});Object.defineProperties(ze,e3);Object.defineProperty(JR,"isAxiosError",{value:!0});ze.from=(e,t,n,r,o,i)=>{const a=Object.create(JR);return G.toFlatObject(e,a,function(l){return l!==Error.prototype},s=>s!=="isAxiosError"),ze.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};const eV=null;function Vm(e){return G.isPlainObject(e)||G.isArray(e)}function t3(e){return G.endsWith(e,"[]")?e.slice(0,-2):e}function Qx(e,t,n){return e?e.concat(t).map(function(o,i){return o=t3(o),!n&&i?"["+o+"]":o}).join(n?".":""):t}function tV(e){return G.isArray(e)&&!e.some(Vm)}const nV=G.toFlatObject(G,{},null,function(t){return/^is[A-Z]/.test(t)});function Tp(e,t,n){if(!G.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=G.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(y,w){return!G.isUndefined(w[y])});const r=n.metaTokens,o=n.visitor||u,i=n.dots,a=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&G.isSpecCompliantForm(t);if(!G.isFunction(o))throw new TypeError("visitor must be a function");function c(h){if(h===null)return"";if(G.isDate(h))return h.toISOString();if(!l&&G.isBlob(h))throw new ze("Blob is not supported. Use a Buffer instead.");return G.isArrayBuffer(h)||G.isTypedArray(h)?l&&typeof Blob=="function"?new Blob([h]):Buffer.from(h):h}function u(h,y,w){let v=h;if(h&&!w&&typeof h=="object"){if(G.endsWith(y,"{}"))y=r?y:y.slice(0,-2),h=JSON.stringify(h);else if(G.isArray(h)&&tV(h)||(G.isFileList(h)||G.endsWith(y,"[]"))&&(v=G.toArray(h)))return y=t3(y),v.forEach(function(m,C){!(G.isUndefined(m)||m===null)&&t.append(a===!0?Qx([y],C,i):a===null?y:y+"[]",c(m))}),!1}return Vm(h)?!0:(t.append(Qx(w,y,i),c(h)),!1)}const d=[],f=Object.assign(nV,{defaultVisitor:u,convertValue:c,isVisitable:Vm});function p(h,y){if(!G.isUndefined(h)){if(d.indexOf(h)!==-1)throw Error("Circular reference detected in "+y.join("."));d.push(h),G.forEach(h,function(v,S){(!(G.isUndefined(v)||v===null)&&o.call(t,v,G.isString(S)?S.trim():S,y,f))===!0&&p(v,y?y.concat(S):[S])}),d.pop()}}if(!G.isObject(e))throw new TypeError("data must be an object");return p(e),t}function Yx(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Q1(e,t){this._pairs=[],e&&Tp(e,this,t)}const n3=Q1.prototype;n3.append=function(t,n){this._pairs.push([t,n])};n3.toString=function(t){const n=t?function(r){return t.call(this,r,Yx)}:Yx;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};function rV(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function r3(e,t,n){if(!t)return e;const r=n&&n.encode||rV,o=n&&n.serialize;let i;if(o?i=o(t,n):i=G.isURLSearchParams(t)?t.toString():new Q1(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class Xx{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){G.forEach(this.handlers,function(r){r!==null&&t(r)})}}const o3={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},oV=typeof URLSearchParams<"u"?URLSearchParams:Q1,iV=typeof FormData<"u"?FormData:null,aV=typeof Blob<"u"?Blob:null,sV={isBrowser:!0,classes:{URLSearchParams:oV,FormData:iV,Blob:aV},protocols:["http","https","file","blob","url","data"]},Y1=typeof window<"u"&&typeof document<"u",Wm=typeof navigator=="object"&&navigator||void 0,lV=Y1&&(!Wm||["ReactNative","NativeScript","NS"].indexOf(Wm.product)<0),cV=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",uV=Y1&&window.location.href||"http://localhost",dV=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Y1,hasStandardBrowserEnv:lV,hasStandardBrowserWebWorkerEnv:cV,navigator:Wm,origin:uV},Symbol.toStringTag,{value:"Module"})),Bn={...dV,...sV};function fV(e,t){return Tp(e,new Bn.classes.URLSearchParams,Object.assign({visitor:function(n,r,o,i){return Bn.isNode&&G.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},t))}function pV(e){return G.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function gV(e){const t={},n=Object.keys(e);let r;const o=n.length;let i;for(r=0;r=n.length;return a=!a&&G.isArray(o)?o.length:a,l?(G.hasOwnProp(o,a)?o[a]=[o[a],r]:o[a]=r,!s):((!o[a]||!G.isObject(o[a]))&&(o[a]=[]),t(n,r,o[a],i)&&G.isArray(o[a])&&(o[a]=gV(o[a])),!s)}if(G.isFormData(e)&&G.isFunction(e.entries)){const n={};return G.forEachEntry(e,(r,o)=>{t(pV(r),o,n,0)}),n}return null}function hV(e,t,n){if(G.isString(e))try{return(t||JSON.parse)(e),G.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(0,JSON.stringify)(e)}const Lc={transitional:o3,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",o=r.indexOf("application/json")>-1,i=G.isObject(t);if(i&&G.isHTMLForm(t)&&(t=new FormData(t)),G.isFormData(t))return o?JSON.stringify(i3(t)):t;if(G.isArrayBuffer(t)||G.isBuffer(t)||G.isStream(t)||G.isFile(t)||G.isBlob(t)||G.isReadableStream(t))return t;if(G.isArrayBufferView(t))return t.buffer;if(G.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return fV(t,this.formSerializer).toString();if((s=G.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Tp(s?{"files[]":t}:t,l&&new l,this.formSerializer)}}return i||o?(n.setContentType("application/json",!1),hV(t)):t}],transformResponse:[function(t){const n=this.transitional||Lc.transitional,r=n&&n.forcedJSONParsing,o=this.responseType==="json";if(G.isResponse(t)||G.isReadableStream(t))return t;if(t&&G.isString(t)&&(r&&!this.responseType||o)){const a=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t)}catch(s){if(a)throw s.name==="SyntaxError"?ze.from(s,ze.ERR_BAD_RESPONSE,this,null,this.response):s}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Bn.classes.FormData,Blob:Bn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};G.forEach(["delete","get","head","post","put","patch"],e=>{Lc.headers[e]={}});const mV=G.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),vV=e=>{const t={};let n,r,o;return e&&e.split(` +`).forEach(function(a){o=a.indexOf(":"),n=a.substring(0,o).trim().toLowerCase(),r=a.substring(o+1).trim(),!(!n||t[n]&&mV[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},Jx=Symbol("internals");function il(e){return e&&String(e).trim().toLowerCase()}function ed(e){return e===!1||e==null?e:G.isArray(e)?e.map(ed):String(e)}function yV(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const bV=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function zg(e,t,n,r,o){if(G.isFunction(r))return r.call(this,t,n);if(o&&(t=n),!!G.isString(t)){if(G.isString(r))return t.indexOf(r)!==-1;if(G.isRegExp(r))return r.test(t)}}function xV(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function SV(e,t){const n=G.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(o,i,a){return this[r].call(this,t,o,i,a)},configurable:!0})})}class zn{constructor(t){t&&this.set(t)}set(t,n,r){const o=this;function i(s,l,c){const u=il(l);if(!u)throw new Error("header name must be a non-empty string");const d=G.findKey(o,u);(!d||o[d]===void 0||c===!0||c===void 0&&o[d]!==!1)&&(o[d||l]=ed(s))}const a=(s,l)=>G.forEach(s,(c,u)=>i(c,u,l));if(G.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(G.isString(t)&&(t=t.trim())&&!bV(t))a(vV(t),n);else if(G.isHeaders(t))for(const[s,l]of t.entries())i(l,s,r);else t!=null&&i(n,t,r);return this}get(t,n){if(t=il(t),t){const r=G.findKey(this,t);if(r){const o=this[r];if(!n)return o;if(n===!0)return yV(o);if(G.isFunction(n))return n.call(this,o,r);if(G.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=il(t),t){const r=G.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||zg(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let o=!1;function i(a){if(a=il(a),a){const s=G.findKey(r,a);s&&(!n||zg(r,r[s],s,n))&&(delete r[s],o=!0)}}return G.isArray(t)?t.forEach(i):i(t),o}clear(t){const n=Object.keys(this);let r=n.length,o=!1;for(;r--;){const i=n[r];(!t||zg(this,this[i],i,t,!0))&&(delete this[i],o=!0)}return o}normalize(t){const n=this,r={};return G.forEach(this,(o,i)=>{const a=G.findKey(r,i);if(a){n[a]=ed(o),delete n[i];return}const s=t?xV(i):String(i).trim();s!==i&&delete n[i],n[s]=ed(o),r[s]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return G.forEach(this,(r,o)=>{r!=null&&r!==!1&&(n[o]=t&&G.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(o=>r.set(o)),r}static accessor(t){const r=(this[Jx]=this[Jx]={accessors:{}}).accessors,o=this.prototype;function i(a){const s=il(a);r[s]||(SV(o,a),r[s]=!0)}return G.isArray(t)?t.forEach(i):i(t),this}}zn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);G.reduceDescriptors(zn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});G.freezeMethods(zn);function Hg(e,t){const n=this||Lc,r=t||n,o=zn.from(r.headers);let i=r.data;return G.forEach(e,function(s){i=s.call(n,i,o.normalize(),t?t.status:void 0)}),o.normalize(),i}function a3(e){return!!(e&&e.__CANCEL__)}function Ls(e,t,n){ze.call(this,e??"canceled",ze.ERR_CANCELED,t,n),this.name="CanceledError"}G.inherits(Ls,ze,{__CANCEL__:!0});function s3(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new ze("Request failed with status code "+n.status,[ze.ERR_BAD_REQUEST,ze.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function wV(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function CV(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o=0,i=0,a;return t=t!==void 0?t:1e3,function(l){const c=Date.now(),u=r[i];a||(a=c),n[o]=l,r[o]=c;let d=i,f=0;for(;d!==o;)f+=n[d++],d=d%e;if(o=(o+1)%e,o===i&&(i=(i+1)%e),c-a{n=u,o=null,i&&(clearTimeout(i),i=null),e.apply(null,c)};return[(...c)=>{const u=Date.now(),d=u-n;d>=r?a(c,u):(o=c,i||(i=setTimeout(()=>{i=null,a(o)},r-d)))},()=>o&&a(o)]}const Xd=(e,t,n=3)=>{let r=0;const o=CV(50,250);return _V(i=>{const a=i.loaded,s=i.lengthComputable?i.total:void 0,l=a-r,c=o(l),u=a<=s;r=a;const d={loaded:a,total:s,progress:s?a/s:void 0,bytes:l,rate:c||void 0,estimated:c&&s&&u?(s-a)/c:void 0,event:i,lengthComputable:s!=null,[t?"download":"upload"]:!0};e(d)},n)},eS=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},tS=e=>(...t)=>G.asap(()=>e(...t)),RV=Bn.hasStandardBrowserEnv?function(){const t=Bn.navigator&&/(msie|trident)/i.test(Bn.navigator.userAgent),n=document.createElement("a");let r;function o(i){let a=i;return t&&(n.setAttribute("href",a),a=n.href),n.setAttribute("href",a),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=o(window.location.href),function(a){const s=G.isString(a)?o(a):a;return s.protocol===r.protocol&&s.host===r.host}}():function(){return function(){return!0}}(),TV=Bn.hasStandardBrowserEnv?{write(e,t,n,r,o,i){const a=[e+"="+encodeURIComponent(t)];G.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),G.isString(r)&&a.push("path="+r),G.isString(o)&&a.push("domain="+o),i===!0&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function PV(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function kV(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function l3(e,t){return e&&!PV(t)?kV(e,t):t}const nS=e=>e instanceof zn?{...e}:e;function sa(e,t){t=t||{};const n={};function r(c,u,d){return G.isPlainObject(c)&&G.isPlainObject(u)?G.merge.call({caseless:d},c,u):G.isPlainObject(u)?G.merge({},u):G.isArray(u)?u.slice():u}function o(c,u,d){if(G.isUndefined(u)){if(!G.isUndefined(c))return r(void 0,c,d)}else return r(c,u,d)}function i(c,u){if(!G.isUndefined(u))return r(void 0,u)}function a(c,u){if(G.isUndefined(u)){if(!G.isUndefined(c))return r(void 0,c)}else return r(void 0,u)}function s(c,u,d){if(d in t)return r(c,u);if(d in e)return r(void 0,c)}const l={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(c,u)=>o(nS(c),nS(u),!0)};return G.forEach(Object.keys(Object.assign({},e,t)),function(u){const d=l[u]||o,f=d(e[u],t[u],u);G.isUndefined(f)&&d!==s||(n[u]=f)}),n}const c3=e=>{const t=sa({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:o,xsrfCookieName:i,headers:a,auth:s}=t;t.headers=a=zn.from(a),t.url=r3(l3(t.baseURL,t.url),e.params,e.paramsSerializer),s&&a.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):"")));let l;if(G.isFormData(n)){if(Bn.hasStandardBrowserEnv||Bn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if((l=a.getContentType())!==!1){const[c,...u]=l?l.split(";").map(d=>d.trim()).filter(Boolean):[];a.setContentType([c||"multipart/form-data",...u].join("; "))}}if(Bn.hasStandardBrowserEnv&&(r&&G.isFunction(r)&&(r=r(t)),r||r!==!1&&RV(t.url))){const c=o&&i&&TV.read(i);c&&a.set(o,c)}return t},$V=typeof XMLHttpRequest<"u",EV=$V&&function(e){return new Promise(function(n,r){const o=c3(e);let i=o.data;const a=zn.from(o.headers).normalize();let{responseType:s,onUploadProgress:l,onDownloadProgress:c}=o,u,d,f,p,h;function y(){p&&p(),h&&h(),o.cancelToken&&o.cancelToken.unsubscribe(u),o.signal&&o.signal.removeEventListener("abort",u)}let w=new XMLHttpRequest;w.open(o.method.toUpperCase(),o.url,!0),w.timeout=o.timeout;function v(){if(!w)return;const m=zn.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),_={data:!s||s==="text"||s==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:m,config:e,request:w};s3(function(k){n(k),y()},function(k){r(k),y()},_),w=null}"onloadend"in w?w.onloadend=v:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)||setTimeout(v)},w.onabort=function(){w&&(r(new ze("Request aborted",ze.ECONNABORTED,e,w)),w=null)},w.onerror=function(){r(new ze("Network Error",ze.ERR_NETWORK,e,w)),w=null},w.ontimeout=function(){let C=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const _=o.transitional||o3;o.timeoutErrorMessage&&(C=o.timeoutErrorMessage),r(new ze(C,_.clarifyTimeoutError?ze.ETIMEDOUT:ze.ECONNABORTED,e,w)),w=null},i===void 0&&a.setContentType(null),"setRequestHeader"in w&&G.forEach(a.toJSON(),function(C,_){w.setRequestHeader(_,C)}),G.isUndefined(o.withCredentials)||(w.withCredentials=!!o.withCredentials),s&&s!=="json"&&(w.responseType=o.responseType),c&&([f,h]=Xd(c,!0),w.addEventListener("progress",f)),l&&w.upload&&([d,p]=Xd(l),w.upload.addEventListener("progress",d),w.upload.addEventListener("loadend",p)),(o.cancelToken||o.signal)&&(u=m=>{w&&(r(!m||m.type?new Ls(null,e,w):m),w.abort(),w=null)},o.cancelToken&&o.cancelToken.subscribe(u),o.signal&&(o.signal.aborted?u():o.signal.addEventListener("abort",u)));const S=wV(o.url);if(S&&Bn.protocols.indexOf(S)===-1){r(new ze("Unsupported protocol "+S+":",ze.ERR_BAD_REQUEST,e));return}w.send(i||null)})},MV=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,o;const i=function(c){if(!o){o=!0,s();const u=c instanceof Error?c:this.reason;r.abort(u instanceof ze?u:new Ls(u instanceof Error?u.message:u))}};let a=t&&setTimeout(()=>{a=null,i(new ze(`timeout ${t} of ms exceeded`,ze.ETIMEDOUT))},t);const s=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(c=>{c.unsubscribe?c.unsubscribe(i):c.removeEventListener("abort",i)}),e=null)};e.forEach(c=>c.addEventListener("abort",i));const{signal:l}=r;return l.unsubscribe=()=>G.asap(s),l}},IV=function*(e,t){let n=e.byteLength;if(n{const o=OV(e,t);let i=0,a,s=l=>{a||(a=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await o.next();if(c){s(),l.close();return}let d=u.byteLength;if(n){let f=i+=d;n(f)}l.enqueue(new Uint8Array(u))}catch(c){throw s(c),c}},cancel(l){return s(l),o.return()}},{highWaterMark:2})},Pp=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",u3=Pp&&typeof ReadableStream=="function",AV=Pp&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),d3=(e,...t)=>{try{return!!e(...t)}catch{return!1}},NV=u3&&d3(()=>{let e=!1;const t=new Request(Bn.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),oS=64*1024,Um=u3&&d3(()=>G.isReadableStream(new Response("").body)),Jd={stream:Um&&(e=>e.body)};Pp&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!Jd[t]&&(Jd[t]=G.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new ze(`Response type '${t}' is not supported`,ze.ERR_NOT_SUPPORT,r)})})})(new Response);const DV=async e=>{if(e==null)return 0;if(G.isBlob(e))return e.size;if(G.isSpecCompliantForm(e))return(await new Request(Bn.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(G.isArrayBufferView(e)||G.isArrayBuffer(e))return e.byteLength;if(G.isURLSearchParams(e)&&(e=e+""),G.isString(e))return(await AV(e)).byteLength},jV=async(e,t)=>{const n=G.toFiniteNumber(e.getContentLength());return n??DV(t)},FV=Pp&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:i,timeout:a,onDownloadProgress:s,onUploadProgress:l,responseType:c,headers:u,withCredentials:d="same-origin",fetchOptions:f}=c3(e);c=c?(c+"").toLowerCase():"text";let p=MV([o,i&&i.toAbortSignal()],a),h;const y=p&&p.unsubscribe&&(()=>{p.unsubscribe()});let w;try{if(l&&NV&&n!=="get"&&n!=="head"&&(w=await jV(u,r))!==0){let _=new Request(t,{method:"POST",body:r,duplex:"half"}),R;if(G.isFormData(r)&&(R=_.headers.get("content-type"))&&u.setContentType(R),_.body){const[k,T]=eS(w,Xd(tS(l)));r=rS(_.body,oS,k,T)}}G.isString(d)||(d=d?"include":"omit");const v="credentials"in Request.prototype;h=new Request(t,{...f,signal:p,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:v?d:void 0});let S=await fetch(h);const m=Um&&(c==="stream"||c==="response");if(Um&&(s||m&&y)){const _={};["status","statusText","headers"].forEach(P=>{_[P]=S[P]});const R=G.toFiniteNumber(S.headers.get("content-length")),[k,T]=s&&eS(R,Xd(tS(s),!0))||[];S=new Response(rS(S.body,oS,k,()=>{T&&T(),y&&y()}),_)}c=c||"text";let C=await Jd[G.findKey(Jd,c)||"text"](S,e);return!m&&y&&y(),await new Promise((_,R)=>{s3(_,R,{data:C,headers:zn.from(S.headers),status:S.status,statusText:S.statusText,config:e,request:h})})}catch(v){throw y&&y(),v&&v.name==="TypeError"&&/fetch/i.test(v.message)?Object.assign(new ze("Network Error",ze.ERR_NETWORK,e,h),{cause:v.cause||v}):ze.from(v,v&&v.code,e,h)}}),Gm={http:eV,xhr:EV,fetch:FV};G.forEach(Gm,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const iS=e=>`- ${e}`,BV=e=>G.isFunction(e)||e===null||e===!1,f3={getAdapter:e=>{e=G.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let i=0;i`adapter ${s} `+(l===!1?"is not supported by the environment":"is not available in the build"));let a=t?i.length>1?`since : +`+i.map(iS).join(` +`):" "+iS(i[0]):"as no adapter specified";throw new ze("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return r},adapters:Gm};function Vg(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ls(null,e)}function aS(e){return Vg(e),e.headers=zn.from(e.headers),e.data=Hg.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),f3.getAdapter(e.adapter||Lc.adapter)(e).then(function(r){return Vg(e),r.data=Hg.call(e,e.transformResponse,r),r.headers=zn.from(r.headers),r},function(r){return a3(r)||(Vg(e),r&&r.response&&(r.response.data=Hg.call(e,e.transformResponse,r.response),r.response.headers=zn.from(r.response.headers))),Promise.reject(r)})}const p3="1.7.7",X1={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{X1[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const sS={};X1.transitional=function(t,n,r){function o(i,a){return"[Axios v"+p3+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,s)=>{if(t===!1)throw new ze(o(a," has been removed"+(n?" in "+n:"")),ze.ERR_DEPRECATED);return n&&!sS[a]&&(sS[a]=!0,console.warn(o(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,s):!0}};function zV(e,t,n){if(typeof e!="object")throw new ze("options must be an object",ze.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const i=r[o],a=t[i];if(a){const s=e[i],l=s===void 0||a(s,i,e);if(l!==!0)throw new ze("option "+i+" must be "+l,ze.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new ze("Unknown option "+i,ze.ERR_BAD_OPTION)}}const qm={assertOptions:zV,validators:X1},No=qm.validators;class Wi{constructor(t){this.defaults=t,this.interceptors={request:new Xx,response:new Xx}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let o;Error.captureStackTrace?Error.captureStackTrace(o={}):o=new Error;const i=o.stack?o.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=sa(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:i}=n;r!==void 0&&qm.assertOptions(r,{silentJSONParsing:No.transitional(No.boolean),forcedJSONParsing:No.transitional(No.boolean),clarifyTimeoutError:No.transitional(No.boolean)},!1),o!=null&&(G.isFunction(o)?n.paramsSerializer={serialize:o}:qm.assertOptions(o,{encode:No.function,serialize:No.function},!0)),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&G.merge(i.common,i[n.method]);i&&G.forEach(["delete","get","head","post","put","patch","common"],h=>{delete i[h]}),n.headers=zn.concat(a,i);const s=[];let l=!0;this.interceptors.request.forEach(function(y){typeof y.runWhen=="function"&&y.runWhen(n)===!1||(l=l&&y.synchronous,s.unshift(y.fulfilled,y.rejected))});const c=[];this.interceptors.response.forEach(function(y){c.push(y.fulfilled,y.rejected)});let u,d=0,f;if(!l){const h=[aS.bind(this),void 0];for(h.unshift.apply(h,s),h.push.apply(h,c),f=h.length,u=Promise.resolve(n);d{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](o);r._listeners=null}),this.promise.then=o=>{let i;const a=new Promise(s=>{r.subscribe(s),i=s}).then(o);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,s){r.reason||(r.reason=new Ls(i,a,s),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new J1(function(o){t=o}),cancel:t}}}function HV(e){return function(n){return e.apply(null,n)}}function VV(e){return G.isObject(e)&&e.isAxiosError===!0}const Km={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Km).forEach(([e,t])=>{Km[t]=e});function g3(e){const t=new Wi(e),n=UR(Wi.prototype.request,t);return G.extend(n,Wi.prototype,t,{allOwnKeys:!0}),G.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return g3(sa(e,o))},n}const Bt=g3(Lc);Bt.Axios=Wi;Bt.CanceledError=Ls;Bt.CancelToken=J1;Bt.isCancel=a3;Bt.VERSION=p3;Bt.toFormData=Tp;Bt.AxiosError=ze;Bt.Cancel=Bt.CanceledError;Bt.all=function(t){return Promise.all(t)};Bt.spread=HV;Bt.isAxiosError=VV;Bt.mergeConfig=sa;Bt.AxiosHeaders=zn;Bt.formToJSON=e=>i3(G.isHTMLForm(e)?new FormData(e):e);Bt.getAdapter=f3.getAdapter;Bt.HttpStatusCode=Km;Bt.default=Bt;var WV=Error,UV=EvalError,GV=RangeError,qV=ReferenceError,h3=SyntaxError,Ac=TypeError,KV=URIError,ZV=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},n=Symbol("test"),r=Object(n);if(typeof n=="string"||Object.prototype.toString.call(n)!=="[object Symbol]"||Object.prototype.toString.call(r)!=="[object Symbol]")return!1;var o=42;t[n]=o;for(n in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var i=Object.getOwnPropertySymbols(t);if(i.length!==1||i[0]!==n||!Object.prototype.propertyIsEnumerable.call(t,n))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var a=Object.getOwnPropertyDescriptor(t,n);if(a.value!==o||a.enumerable!==!0)return!1}return!0},lS=typeof Symbol<"u"&&Symbol,QV=ZV,YV=function(){return typeof lS!="function"||typeof Symbol!="function"||typeof lS("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:QV()},Wg={__proto__:null,foo:{}},XV=Object,JV=function(){return{__proto__:Wg}.foo===Wg.foo&&!(Wg instanceof XV)},eW="Function.prototype.bind called on incompatible ",tW=Object.prototype.toString,nW=Math.max,rW="[object Function]",cS=function(t,n){for(var r=[],o=0;o"u"||!Yt?Qe:Yt(Uint8Array),Gi={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Qe:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Qe:ArrayBuffer,"%ArrayIteratorPrototype%":wa&&Yt?Yt([][Symbol.iterator]()):Qe,"%AsyncFromSyncIteratorPrototype%":Qe,"%AsyncFunction%":Ra,"%AsyncGenerator%":Ra,"%AsyncGeneratorFunction%":Ra,"%AsyncIteratorPrototype%":Ra,"%Atomics%":typeof Atomics>"u"?Qe:Atomics,"%BigInt%":typeof BigInt>"u"?Qe:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Qe:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Qe:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Qe:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":fW,"%eval%":eval,"%EvalError%":pW,"%Float32Array%":typeof Float32Array>"u"?Qe:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Qe:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Qe:FinalizationRegistry,"%Function%":m3,"%GeneratorFunction%":Ra,"%Int8Array%":typeof Int8Array>"u"?Qe:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Qe:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Qe:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":wa&&Yt?Yt(Yt([][Symbol.iterator]())):Qe,"%JSON%":typeof JSON=="object"?JSON:Qe,"%Map%":typeof Map>"u"?Qe:Map,"%MapIteratorPrototype%":typeof Map>"u"||!wa||!Yt?Qe:Yt(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Qe:Promise,"%Proxy%":typeof Proxy>"u"?Qe:Proxy,"%RangeError%":gW,"%ReferenceError%":hW,"%Reflect%":typeof Reflect>"u"?Qe:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Qe:Set,"%SetIteratorPrototype%":typeof Set>"u"||!wa||!Yt?Qe:Yt(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Qe:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":wa&&Yt?Yt(""[Symbol.iterator]()):Qe,"%Symbol%":wa?Symbol:Qe,"%SyntaxError%":Ss,"%ThrowTypeError%":vW,"%TypedArray%":bW,"%TypeError%":es,"%Uint8Array%":typeof Uint8Array>"u"?Qe:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Qe:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Qe:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Qe:Uint32Array,"%URIError%":mW,"%WeakMap%":typeof WeakMap>"u"?Qe:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Qe:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Qe:WeakSet};if(Yt)try{null.error}catch(e){var xW=Yt(Yt(e));Gi["%Error.prototype%"]=xW}var SW=function e(t){var n;if(t==="%AsyncFunction%")n=Ug("async function () {}");else if(t==="%GeneratorFunction%")n=Ug("function* () {}");else if(t==="%AsyncGeneratorFunction%")n=Ug("async function* () {}");else if(t==="%AsyncGenerator%"){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if(t==="%AsyncIteratorPrototype%"){var o=e("%AsyncGenerator%");o&&Yt&&(n=Yt(o.prototype))}return Gi[t]=n,n},uS={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Nc=ev,ef=dW,wW=Nc.call(Function.call,Array.prototype.concat),CW=Nc.call(Function.apply,Array.prototype.splice),dS=Nc.call(Function.call,String.prototype.replace),tf=Nc.call(Function.call,String.prototype.slice),_W=Nc.call(Function.call,RegExp.prototype.exec),RW=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,TW=/\\(\\)?/g,PW=function(t){var n=tf(t,0,1),r=tf(t,-1);if(n==="%"&&r!=="%")throw new Ss("invalid intrinsic syntax, expected closing `%`");if(r==="%"&&n!=="%")throw new Ss("invalid intrinsic syntax, expected opening `%`");var o=[];return dS(t,RW,function(i,a,s,l){o[o.length]=s?dS(l,TW,"$1"):a||i}),o},kW=function(t,n){var r=t,o;if(ef(uS,r)&&(o=uS[r],r="%"+o[0]+"%"),ef(Gi,r)){var i=Gi[r];if(i===Ra&&(i=SW(r)),typeof i>"u"&&!n)throw new es("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:o,name:r,value:i}}throw new Ss("intrinsic "+t+" does not exist!")},As=function(t,n){if(typeof t!="string"||t.length===0)throw new es("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof n!="boolean")throw new es('"allowMissing" argument must be a boolean');if(_W(/^%?[^%]*%?$/,t)===null)throw new Ss("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=PW(t),o=r.length>0?r[0]:"",i=kW("%"+o+"%",n),a=i.name,s=i.value,l=!1,c=i.alias;c&&(o=c[0],CW(r,wW([0,1],c)));for(var u=1,d=!0;u=r.length){var y=Ui(s,f);d=!!y,d&&"get"in y&&!("originalValue"in y.get)?s=y.get:s=s[f]}else d=ef(s,f),s=s[f];d&&!l&&(Gi[a]=s)}}return s},v3={exports:{}},qg,fS;function tv(){if(fS)return qg;fS=1;var e=As,t=e("%Object.defineProperty%",!0)||!1;if(t)try{t({},"a",{value:1})}catch{t=!1}return qg=t,qg}var $W=As,td=$W("%Object.getOwnPropertyDescriptor%",!0);if(td)try{td([],"length")}catch{td=null}var y3=td,pS=tv(),EW=h3,Ca=Ac,gS=y3,MW=function(t,n,r){if(!t||typeof t!="object"&&typeof t!="function")throw new Ca("`obj` must be an object or a function`");if(typeof n!="string"&&typeof n!="symbol")throw new Ca("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new Ca("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new Ca("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new Ca("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new Ca("`loose`, if provided, must be a boolean");var o=arguments.length>3?arguments[3]:null,i=arguments.length>4?arguments[4]:null,a=arguments.length>5?arguments[5]:null,s=arguments.length>6?arguments[6]:!1,l=!!gS&&gS(t,n);if(pS)pS(t,n,{configurable:a===null&&l?l.configurable:!a,enumerable:o===null&&l?l.enumerable:!o,value:r,writable:i===null&&l?l.writable:!i});else if(s||!o&&!i&&!a)t[n]=r;else throw new EW("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Zm=tv(),b3=function(){return!!Zm};b3.hasArrayLengthDefineBug=function(){if(!Zm)return null;try{return Zm([],"length",{value:1}).length!==1}catch{return!0}};var IW=b3,OW=As,hS=MW,LW=IW(),mS=y3,vS=Ac,AW=OW("%Math.floor%"),NW=function(t,n){if(typeof t!="function")throw new vS("`fn` is not a function");if(typeof n!="number"||n<0||n>4294967295||AW(n)!==n)throw new vS("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],o=!0,i=!0;if("length"in t&&mS){var a=mS(t,"length");a&&!a.configurable&&(o=!1),a&&!a.writable&&(i=!1)}return(o||i||!r)&&(LW?hS(t,"length",n,!0,!0):hS(t,"length",n)),t};(function(e){var t=ev,n=As,r=NW,o=Ac,i=n("%Function.prototype.apply%"),a=n("%Function.prototype.call%"),s=n("%Reflect.apply%",!0)||t.call(a,i),l=tv(),c=n("%Math.max%");e.exports=function(f){if(typeof f!="function")throw new o("a function is required");var p=s(t,a,arguments);return r(p,1+c(0,f.length-(arguments.length-1)),!0)};var u=function(){return s(t,i,arguments)};l?l(e.exports,"apply",{value:u}):e.exports.apply=u})(v3);var DW=v3.exports,x3=As,S3=DW,jW=S3(x3("String.prototype.indexOf")),FW=function(t,n){var r=x3(t,!!n);return typeof r=="function"&&jW(t,".prototype.")>-1?S3(r):r};const BW={},zW=Object.freeze(Object.defineProperty({__proto__:null,default:BW},Symbol.toStringTag,{value:"Module"})),HW=W3(zW);var nv=typeof Map=="function"&&Map.prototype,Kg=Object.getOwnPropertyDescriptor&&nv?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,nf=nv&&Kg&&typeof Kg.get=="function"?Kg.get:null,yS=nv&&Map.prototype.forEach,rv=typeof Set=="function"&&Set.prototype,Zg=Object.getOwnPropertyDescriptor&&rv?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,rf=rv&&Zg&&typeof Zg.get=="function"?Zg.get:null,bS=rv&&Set.prototype.forEach,VW=typeof WeakMap=="function"&&WeakMap.prototype,Al=VW?WeakMap.prototype.has:null,WW=typeof WeakSet=="function"&&WeakSet.prototype,Nl=WW?WeakSet.prototype.has:null,UW=typeof WeakRef=="function"&&WeakRef.prototype,xS=UW?WeakRef.prototype.deref:null,GW=Boolean.prototype.valueOf,qW=Object.prototype.toString,KW=Function.prototype.toString,ZW=String.prototype.match,ov=String.prototype.slice,ei=String.prototype.replace,QW=String.prototype.toUpperCase,SS=String.prototype.toLowerCase,w3=RegExp.prototype.test,wS=Array.prototype.concat,Jr=Array.prototype.join,YW=Array.prototype.slice,CS=Math.floor,Qm=typeof BigInt=="function"?BigInt.prototype.valueOf:null,Qg=Object.getOwnPropertySymbols,Ym=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,ws=typeof Symbol=="function"&&typeof Symbol.iterator=="object",Sn=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===ws||!0)?Symbol.toStringTag:null,C3=Object.prototype.propertyIsEnumerable,_S=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function RS(e,t){if(e===1/0||e===-1/0||e!==e||e&&e>-1e3&&e<1e3||w3.call(/e/,t))return t;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof e=="number"){var r=e<0?-CS(-e):CS(e);if(r!==e){var o=String(r),i=ov.call(t,o.length+1);return ei.call(o,n,"$&_")+"."+ei.call(ei.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return ei.call(t,n,"$&_")}var Xm=HW,TS=Xm.custom,PS=T3(TS)?TS:null,_3={__proto__:null,double:'"',single:"'"},XW={__proto__:null,double:/(["\\])/g,single:/(['\\])/g},JW=function e(t,n,r,o){var i=n||{};if(ho(i,"quoteStyle")&&!ho(_3,i.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(ho(i,"maxStringLength")&&(typeof i.maxStringLength=="number"?i.maxStringLength<0&&i.maxStringLength!==1/0:i.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var a=ho(i,"customInspect")?i.customInspect:!0;if(typeof a!="boolean"&&a!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(ho(i,"indent")&&i.indent!==null&&i.indent!==" "&&!(parseInt(i.indent,10)===i.indent&&i.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(ho(i,"numericSeparator")&&typeof i.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var s=i.numericSeparator;if(typeof t>"u")return"undefined";if(t===null)return"null";if(typeof t=="boolean")return t?"true":"false";if(typeof t=="string")return k3(t,i);if(typeof t=="number"){if(t===0)return 1/0/t>0?"0":"-0";var l=String(t);return s?RS(t,l):l}if(typeof t=="bigint"){var c=String(t)+"n";return s?RS(t,c):c}var u=typeof i.depth>"u"?5:i.depth;if(typeof r>"u"&&(r=0),r>=u&&u>0&&typeof t=="object")return Jm(t)?"[Array]":"[Object]";var d=vU(i,r);if(typeof o>"u")o=[];else if(P3(o,t)>=0)return"[Circular]";function f(O,D,M){if(D&&(o=YW.call(o),o.push(D)),M){var A={depth:i.depth};return ho(i,"quoteStyle")&&(A.quoteStyle=i.quoteStyle),e(O,A,r+1,o)}return e(O,i,r+1,o)}if(typeof t=="function"&&!kS(t)){var p=lU(t),h=Cu(t,f);return"[Function"+(p?": "+p:" (anonymous)")+"]"+(h.length>0?" { "+Jr.call(h,", ")+" }":"")}if(T3(t)){var y=ws?ei.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):Ym.call(t);return typeof t=="object"&&!ws?al(y):y}if(gU(t)){for(var w="<"+SS.call(String(t.nodeName)),v=t.attributes||[],S=0;S",w}if(Jm(t)){if(t.length===0)return"[]";var m=Cu(t,f);return d&&!mU(m)?"["+e0(m,d)+"]":"[ "+Jr.call(m,", ")+" ]"}if(nU(t)){var C=Cu(t,f);return!("cause"in Error.prototype)&&"cause"in t&&!C3.call(t,"cause")?"{ ["+String(t)+"] "+Jr.call(wS.call("[cause]: "+f(t.cause),C),", ")+" }":C.length===0?"["+String(t)+"]":"{ ["+String(t)+"] "+Jr.call(C,", ")+" }"}if(typeof t=="object"&&a){if(PS&&typeof t[PS]=="function"&&Xm)return Xm(t,{depth:u-r});if(a!=="symbol"&&typeof t.inspect=="function")return t.inspect()}if(cU(t)){var _=[];return yS&&yS.call(t,function(O,D){_.push(f(D,t,!0)+" => "+f(O,t))}),$S("Map",nf.call(t),_,d)}if(fU(t)){var R=[];return bS&&bS.call(t,function(O){R.push(f(O,t))}),$S("Set",rf.call(t),R,d)}if(uU(t))return Yg("WeakMap");if(pU(t))return Yg("WeakSet");if(dU(t))return Yg("WeakRef");if(oU(t))return al(f(Number(t)));if(aU(t))return al(f(Qm.call(t)));if(iU(t))return al(GW.call(t));if(rU(t))return al(f(String(t)));if(typeof window<"u"&&t===window)return"{ [object Window] }";if(typeof globalThis<"u"&&t===globalThis||typeof jl<"u"&&t===jl)return"{ [object globalThis] }";if(!tU(t)&&!kS(t)){var k=Cu(t,f),T=_S?_S(t)===Object.prototype:t instanceof Object||t.constructor===Object,P=t instanceof Object?"":"null prototype",x=!T&&Sn&&Object(t)===t&&Sn in t?ov.call(Ci(t),8,-1):P?"Object":"",$=T||typeof t.constructor!="function"?"":t.constructor.name?t.constructor.name+" ":"",I=$+(x||P?"["+Jr.call(wS.call([],x||[],P||[]),": ")+"] ":"");return k.length===0?I+"{}":d?I+"{"+e0(k,d)+"}":I+"{ "+Jr.call(k,", ")+" }"}return String(t)};function R3(e,t,n){var r=n.quoteStyle||t,o=_3[r];return o+e+o}function eU(e){return ei.call(String(e),/"/g,""")}function Jm(e){return Ci(e)==="[object Array]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function tU(e){return Ci(e)==="[object Date]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function kS(e){return Ci(e)==="[object RegExp]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function nU(e){return Ci(e)==="[object Error]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function rU(e){return Ci(e)==="[object String]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function oU(e){return Ci(e)==="[object Number]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function iU(e){return Ci(e)==="[object Boolean]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function T3(e){if(ws)return e&&typeof e=="object"&&e instanceof Symbol;if(typeof e=="symbol")return!0;if(!e||typeof e!="object"||!Ym)return!1;try{return Ym.call(e),!0}catch{}return!1}function aU(e){if(!e||typeof e!="object"||!Qm)return!1;try{return Qm.call(e),!0}catch{}return!1}var sU=Object.prototype.hasOwnProperty||function(e){return e in this};function ho(e,t){return sU.call(e,t)}function Ci(e){return qW.call(e)}function lU(e){if(e.name)return e.name;var t=ZW.call(KW.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}function P3(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;nt.maxStringLength){var n=e.length-t.maxStringLength,r="... "+n+" more character"+(n>1?"s":"");return k3(ov.call(e,0,t.maxStringLength),t)+r}var o=XW[t.quoteStyle||"single"];o.lastIndex=0;var i=ei.call(ei.call(e,o,"\\$1"),/[\x00-\x1f]/g,hU);return R3(i,"single",t)}function hU(e){var t=e.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return n?"\\"+n:"\\x"+(t<16?"0":"")+QW.call(t.toString(16))}function al(e){return"Object("+e+")"}function Yg(e){return e+" { ? }"}function $S(e,t,n,r){var o=r?e0(n,r):Jr.call(n,", ");return e+" ("+t+") {"+o+"}"}function mU(e){for(var t=0;t=0)return!1;return!0}function vU(e,t){var n;if(e.indent===" ")n=" ";else if(typeof e.indent=="number"&&e.indent>0)n=Jr.call(Array(e.indent+1)," ");else return null;return{base:n,prev:Jr.call(Array(t+1),n)}}function e0(e,t){if(e.length===0)return"";var n=` +`+t.prev+t.base;return n+Jr.call(e,","+n)+` +`+t.prev}function Cu(e,t){var n=Jm(e),r=[];if(n){r.length=e.length;for(var o=0;o1;){var n=t.pop(),r=n.obj[n.prop];if(Ii(r)){for(var o=[],i=0;i=eh?a.slice(l,l+eh):a,u=[],d=0;d=48&&f<=57||f>=65&&f<=90||f>=97&&f<=122||i===IU.RFC1738&&(f===40||f===41)){u[u.length]=c.charAt(d);continue}if(f<128){u[u.length]=Kr[f];continue}if(f<2048){u[u.length]=Kr[192|f>>6]+Kr[128|f&63];continue}if(f<55296||f>=57344){u[u.length]=Kr[224|f>>12]+Kr[128|f>>6&63]+Kr[128|f&63];continue}d+=1,f=65536+((f&1023)<<10|c.charCodeAt(d)&1023),u[u.length]=Kr[240|f>>18]+Kr[128|f>>12&63]+Kr[128|f>>6&63]+Kr[128|f&63]}s+=u.join("")}return s},jU=function(t){for(var n=[{obj:{o:t},prop:"o"}],r=[],o=0;o"u"&&(_=0)}if(typeof u=="function"?m=u(n,m):m instanceof Date?m=p(m):r==="comma"&&Qr(m)&&(m=nd.maybeMap(m,function(B){return B instanceof Date?p(B):B})),m===null){if(a)return c&&!w?c(n,Wt.encoder,v,"key",h):n;m=""}if(GU(m)||nd.isBuffer(m)){if(c){var T=w?n:c(n,Wt.encoder,v,"key",h);return[y(T)+"="+y(c(m,Wt.encoder,v,"value",h))]}return[y(n)+"="+y(String(m))]}var P=[];if(typeof m>"u")return P;var x;if(r==="comma"&&Qr(m))w&&c&&(m=nd.maybeMap(m,c)),x=[{value:m.length>0?m.join(",")||null:void 0}];else if(Qr(u))x=u;else{var $=Object.keys(m);x=d?$.sort(d):$}var I=l?n.replace(/\./g,"%2E"):n,O=o&&Qr(m)&&m.length===1?I+"[]":I;if(i&&Qr(m)&&m.length===0)return O+"[]";for(var D=0;D"u"?t.encodeDotInKeys===!0?!0:Wt.allowDots:!!t.allowDots;return{addQueryPrefix:typeof t.addQueryPrefix=="boolean"?t.addQueryPrefix:Wt.addQueryPrefix,allowDots:s,allowEmptyArrays:typeof t.allowEmptyArrays=="boolean"?!!t.allowEmptyArrays:Wt.allowEmptyArrays,arrayFormat:a,charset:n,charsetSentinel:typeof t.charsetSentinel=="boolean"?t.charsetSentinel:Wt.charsetSentinel,commaRoundTrip:t.commaRoundTrip,delimiter:typeof t.delimiter>"u"?Wt.delimiter:t.delimiter,encode:typeof t.encode=="boolean"?t.encode:Wt.encode,encodeDotInKeys:typeof t.encodeDotInKeys=="boolean"?t.encodeDotInKeys:Wt.encodeDotInKeys,encoder:typeof t.encoder=="function"?t.encoder:Wt.encoder,encodeValuesOnly:typeof t.encodeValuesOnly=="boolean"?t.encodeValuesOnly:Wt.encodeValuesOnly,filter:i,format:r,formatter:o,serializeDate:typeof t.serializeDate=="function"?t.serializeDate:Wt.serializeDate,skipNulls:typeof t.skipNulls=="boolean"?t.skipNulls:Wt.skipNulls,sort:typeof t.sort=="function"?t.sort:null,strictNullHandling:typeof t.strictNullHandling=="boolean"?t.strictNullHandling:Wt.strictNullHandling}},ZU=function(e,t){var n=e,r=KU(t),o,i;typeof r.filter=="function"?(i=r.filter,n=i("",n)):Qr(r.filter)&&(i=r.filter,o=i);var a=[];if(typeof n!="object"||n===null)return"";var s=O3[r.arrayFormat],l=s==="comma"&&r.commaRoundTrip;o||(o=Object.keys(n)),r.sort&&o.sort(r.sort);for(var c=I3(),u=0;u0?p+f:""},Cs=M3,t0=Object.prototype.hasOwnProperty,QU=Array.isArray,Et={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:Cs.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1},YU=function(e){return e.replace(/&#(\d+);/g,function(t,n){return String.fromCharCode(parseInt(n,10))})},A3=function(e,t){return e&&typeof e=="string"&&t.comma&&e.indexOf(",")>-1?e.split(","):e},XU="utf8=%26%2310003%3B",JU="utf8=%E2%9C%93",eG=function(t,n){var r={__proto__:null},o=n.ignoreQueryPrefix?t.replace(/^\?/,""):t;o=o.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var i=n.parameterLimit===1/0?void 0:n.parameterLimit,a=o.split(n.delimiter,i),s=-1,l,c=n.charset;if(n.charsetSentinel)for(l=0;l-1&&(h=QU(h)?[h]:h);var y=t0.call(r,p);y&&n.duplicates==="combine"?r[p]=Cs.combine(r[p],h):(!y||n.duplicates==="last")&&(r[p]=h)}return r},tG=function(e,t,n,r){for(var o=r?t:A3(t,n),i=e.length-1;i>=0;--i){var a,s=e[i];if(s==="[]"&&n.parseArrays)a=n.allowEmptyArrays&&(o===""||n.strictNullHandling&&o===null)?[]:[].concat(o);else{a=n.plainObjects?Object.create(null):{};var l=s.charAt(0)==="["&&s.charAt(s.length-1)==="]"?s.slice(1,-1):s,c=n.decodeDotInKeys?l.replace(/%2E/g,"."):l,u=parseInt(c,10);!n.parseArrays&&c===""?a={0:o}:!isNaN(u)&&s!==c&&String(u)===c&&u>=0&&n.parseArrays&&u<=n.arrayLimit?(a=[],a[u]=o):c!=="__proto__"&&(a[c]=o)}o=a}return o},nG=function(t,n,r,o){if(t){var i=r.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,a=/(\[[^[\]]*])/,s=/(\[[^[\]]*])/g,l=r.depth>0&&a.exec(i),c=l?i.slice(0,l.index):i,u=[];if(c){if(!r.plainObjects&&t0.call(Object.prototype,c)&&!r.allowPrototypes)return;u.push(c)}for(var d=0;r.depth>0&&(l=s.exec(i))!==null&&d"u"?Et.charset:t.charset,r=typeof t.duplicates>"u"?Et.duplicates:t.duplicates;if(r!=="combine"&&r!=="first"&&r!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var o=typeof t.allowDots>"u"?t.decodeDotInKeys===!0?!0:Et.allowDots:!!t.allowDots;return{allowDots:o,allowEmptyArrays:typeof t.allowEmptyArrays=="boolean"?!!t.allowEmptyArrays:Et.allowEmptyArrays,allowPrototypes:typeof t.allowPrototypes=="boolean"?t.allowPrototypes:Et.allowPrototypes,allowSparse:typeof t.allowSparse=="boolean"?t.allowSparse:Et.allowSparse,arrayLimit:typeof t.arrayLimit=="number"?t.arrayLimit:Et.arrayLimit,charset:n,charsetSentinel:typeof t.charsetSentinel=="boolean"?t.charsetSentinel:Et.charsetSentinel,comma:typeof t.comma=="boolean"?t.comma:Et.comma,decodeDotInKeys:typeof t.decodeDotInKeys=="boolean"?t.decodeDotInKeys:Et.decodeDotInKeys,decoder:typeof t.decoder=="function"?t.decoder:Et.decoder,delimiter:typeof t.delimiter=="string"||Cs.isRegExp(t.delimiter)?t.delimiter:Et.delimiter,depth:typeof t.depth=="number"||t.depth===!1?+t.depth:Et.depth,duplicates:r,ignoreQueryPrefix:t.ignoreQueryPrefix===!0,interpretNumericEntities:typeof t.interpretNumericEntities=="boolean"?t.interpretNumericEntities:Et.interpretNumericEntities,parameterLimit:typeof t.parameterLimit=="number"?t.parameterLimit:Et.parameterLimit,parseArrays:t.parseArrays!==!1,plainObjects:typeof t.plainObjects=="boolean"?t.plainObjects:Et.plainObjects,strictDepth:typeof t.strictDepth=="boolean"?!!t.strictDepth:Et.strictDepth,strictNullHandling:typeof t.strictNullHandling=="boolean"?t.strictNullHandling:Et.strictNullHandling}},oG=function(e,t){var n=rG(t);if(e===""||e===null||typeof e>"u")return n.plainObjects?Object.create(null):{};for(var r=typeof e=="string"?eG(e,n):e,o=n.plainObjects?Object.create(null):{},i=Object.keys(r),a=0;a{if(nh.has(rh))return nh.get(rh);const t=cG.parse(window.location.search,{ignoreQueryPrefix:!0}).debug==="true";return nh.set(rh,t),t},uG=`{ + "nodes_info": [ + { + "identifier": 1, + "connected": null, + "infos": { + "has_error": false, + "error_reason": "", + "name": "querynode1", + "hardware_infos": { + "ip": "172.18.20.7:21123", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "system_info": { + "system_version": "34cf5352ec", + "deploy_mode": "STANDALONE[MOCK]", + "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", + "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", + "used_go_version": "go version go1.22.3 darwin/amd64" + }, + "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", + "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", + "type": "querynode", + "id": 1, + "system_configurations": { + "simd_type": "auto" + }, + "quota_metrics": { + "Hms": { + "ip": "172.18.20.7:21123", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "Rms": [ + { + "Label": "InsertConsumeThroughput", + "Rate": 0 + }, + { + "Label": "DeleteConsumeThroughput", + "Rate": 0 + } + ], + "Fgm": { + "MinFlowGraphChannel": "", + "MinFlowGraphTt": 18446744073709551615, + "NumFlowGraph": 0 + }, + "GrowingSegmentsSize": 0, + "Effect": { + "NodeID": 1, + "CollectionIDs": [] + }, + "DeleteBufferInfo": { + "CollectionDeleteBufferNum": {}, + "CollectionDeleteBufferSize": {} + } + }, + "collection_metrics": { + "CollectionRows": {} + } + } + }, + { + "identifier": 1, + "connected": [ + { + "connected_identifier": 1, + "type": "manage", + "target_type": "querynode" + } + ], + "infos": { + "has_error": false, + "error_reason": "", + "name": "querycoord1", + "hardware_infos": { + "ip": "172.18.20.7:19531", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "system_info": { + "system_version": "34cf5352ec", + "deploy_mode": "STANDALONE[MOCK]", + "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", + "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", + "used_go_version": "go version go1.22.3 darwin/amd64" + }, + "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", + "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", + "type": "querycoord", + "id": 1, + "system_configurations": { + "search_channel_prefix": "", + "search_result_channel_prefix": "" + } + } + }, + { + "identifier": 1, + "connected": null, + "infos": { + "has_error": false, + "error_reason": "", + "name": "datanode1", + "hardware_infos": { + "ip": "172.18.20.7:21124", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "system_info": { + "system_version": "34cf5352ec", + "deploy_mode": "STANDALONE[MOCK]", + "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", + "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", + "used_go_version": "go version go1.22.3 darwin/amd64" + }, + "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", + "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", + "type": "datanode", + "id": 1, + "system_configurations": { + "flush_insert_buffer_size": 16777216 + }, + "quota_metrics": { + "Hms": { + "ip": "172.18.20.7:21124", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "Rms": [ + { + "Label": "InsertConsumeThroughput", + "Rate": 0 + }, + { + "Label": "DeleteConsumeThroughput", + "Rate": 0 + } + ], + "Fgm": { + "MinFlowGraphChannel": "", + "MinFlowGraphTt": 18446744073709551615, + "NumFlowGraph": 0 + }, + "Effect": { + "NodeID": 1, + "CollectionIDs": [] + } + } + } + }, + { + "identifier": 1, + "connected": null, + "infos": { + "has_error": false, + "error_reason": "", + "name": "indexnode1", + "hardware_infos": { + "ip": "172.18.20.7:21121", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "system_info": { + "system_version": "34cf5352ec", + "deploy_mode": "STANDALONE[MOCK]", + "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", + "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", + "used_go_version": "go version go1.22.3 darwin/amd64" + }, + "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", + "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", + "type": "indexnode", + "id": 1, + "system_configurations": { + "minio_bucket_name": "a-bucket", + "simd_type": "auto" + } + } + }, + { + "identifier": 1, + "connected": [ + { + "connected_identifier": 1, + "type": "manage", + "target_type": "datanode" + }, + { + "connected_identifier": 1, + "type": "manage", + "target_type": "indexnode" + } + ], + "infos": { + "has_error": false, + "error_reason": "", + "name": "datacoord1", + "hardware_infos": { + "ip": "172.18.20.7:13333", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "system_info": { + "system_version": "34cf5352ec", + "deploy_mode": "STANDALONE[MOCK]", + "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", + "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", + "used_go_version": "go version go1.22.3 darwin/amd64" + }, + "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", + "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", + "type": "datacoord", + "id": 1, + "system_configurations": { + "segment_max_size": 1024 + }, + "quota_metrics": { + "TotalBinlogSize": 0, + "CollectionBinlogSize": {}, + "PartitionsBinlogSize": {}, + "CollectionL0RowCount": {} + }, + "collection_metrics": { + "Collections": {} + } + } + }, + { + "identifier": 1, + "connected": [], + "infos": { + "has_error": false, + "error_reason": "", + "name": "rootcoord1", + "hardware_infos": { + "ip": "172.18.20.7:53100", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "system_info": { + "system_version": "34cf5352ec", + "deploy_mode": "STANDALONE[MOCK]", + "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", + "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", + "used_go_version": "go version go1.22.3 darwin/amd64" + }, + "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", + "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", + "type": "rootcoord", + "id": 1, + "system_configurations": { + "min_segment_size_to_enable_index": 1024 + } + } + }, + { + "identifier": 1, + "connected": [ + { + "connected_identifier": 1, + "type": "forward", + "target_type": "querycoord" + }, + { + "connected_identifier": 1, + "type": "forward", + "target_type": "datacoord" + }, + { + "connected_identifier": 1, + "type": "forward", + "target_type": "rootcoord" + } + ], + "infos": { + "has_error": false, + "error_reason": "", + "name": "proxy1", + "hardware_infos": { + "ip": "172.18.20.7:19529", + "cpu_core_count": 8, + "cpu_core_usage": 30.52004762940343, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "system_info": { + "system_version": "34cf5352ec", + "deploy_mode": "STANDALONE[MOCK]", + "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", + "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", + "used_go_version": "go version go1.22.3 darwin/amd64" + }, + "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", + "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", + "type": "proxy", + "id": 1, + "system_configurations": { + "default_partition_name": "_default", + "default_index_name": "_default_idx" + }, + "quota_metrics": null + } + } + ] +}`,dG=`[ + { + "sdk_type": "python", + "sdk_version": "1.0.0", + "local_time": "2023-10-01T12:00:00Z", + "user": "user1", + "host": "127.0.0.1", + "reserved": { + "last_active_time": "" + } + }, + { + "sdk_type": "golang", + "sdk_version": "1.1.0", + "local_time": "2023-10-01T12:05:00Z", + "user": "user2", + "host": "127.0.0.2", + "reserved": { + "last_active_time": "" + } + } +]`,fG=` +{ + "metastore": { + "health_status": true, + "unhealthy_reason": "", + "members_health": [ + { + "endpoint": "http://127.0.0.1:2379", + "health": true + } + ], + "meta_type": "etcd" + }, + "mq": { + "health_status": false, + "unhealthy_reason": "health check failed, err: Get \\"http://localhost:80/admin/v2/brokers/health\\": dial tcp [::1]:80: connect: connection refused", + "members_health": null, + "mq_type": "pulsar" + } +} +`,pG=` +{ + "MILVUS_GIT_BUILD_TAGS": "v2.2-testing-20240702-811-g38211f2b81-dev", + "MILVUS_GIT_COMMIT": "38211f2b81", + "common.bloomfilterapplybatchsize": "1000", + "common.bloomfiltersize": "100000", + "common.bloomfiltertype": "BlockedBloomFilter", + "common.buildindexthreadpoolratio": "0.75", + "common.defaultindexname": "_default_idx", + "common.defaultpartitionname": "_default", + "common.diskindex.beamwidthratio": "4", + "common.diskindex.buildnumthreadsratio": "1", + "common.diskindex.loadnumthreadratio": "8", + "common.diskindex.maxdegree": "56", + "common.diskindex.pqcodebudgetgbratio": "0.125", + "common.diskindex.searchcachebudgetgbratio": "0.1", + "common.diskindex.searchlistsize": "100", + "common.enablevectorclusteringkey": "false", + "common.entityexpiration": "-1", + "common.gracefulstoptimeout": "1800", + "common.gracefultime": "5000", + "common.indexslicesize": "16", + "common.locks.metrics.enable": "false" +} +`,gG=` +{ + "collection_names": [ + "collection_1", + "collection_2", + "collection_3", + "collection_4", + "collection_5", + "collection_6", + "collection_7", + "collection_8", + "collection_9", + "collection_10" + ], + "collection_ids": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10" + ], + "created_utc_timestamps": [ + "2021-10-01 00:00:00", + "2021-10-02 00:00:00", + "2021-10-03 00:00:00", + "2021-10-04 00:00:00", + "2021-10-05 00:00:00", + "2021-10-06 00:00:00", + "2021-10-07 00:00:00", + "2021-10-08 00:00:00", + "2021-10-09 00:00:00", + "2021-10-10 00:00:00" + ], + "inMemory_percentages": [ + 100, + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "query_service_available": [ + true, + true, + true, + true, + true, + false, + false, + false, + false, + false + ] +} +`,hG=` +{ + "collection_id": "1", + "collection_name": "example_collection", + "created_time": "2021-10-01 00:00:00", + "shards_num": 2, + "consistency_level": "Strong", + "aliases": ["alias1", "alias2"], + "properties": { + "property_key": "property_value" + }, + "db_name": "example_db", + "num_partitions": 3, + "virtual_channel_names": ["v_channel1", "v_channel2"], + "physical_channel_names": ["p_channel1", "p_channel2"], + "partition_infos": [ + { + "partition_name": "partition1", + "partition_id": "1", + "created_utc_timestamp": "2021-10-01 00:00:00" + } + ], + "enable_dynamic_field": true, + "fields": [ + { + "field_id": "1", + "name": "field1", + "is_primary_key": true, + "description": "description1", + "data_type": "int64", + "type_params": { + "param_key": "param_value" + }, + "index_params": { + "index_key": "index_value" + }, + "auto_id": false, + "element_type": "element_type1", + "default_value": "default_value1", + "is_dynamic": false, + "is_partition_key": false, + "is_clustering_key": false, + "nullable": true, + "is_function_output": false + } + ] +} +`,mG=` +{ + "db_names": [ + "database_1", + "database_2", + "database_3", + "database_4", + "database_5", + "database_6", + "database_7", + "database_8", + "database_9", + "database_10" + ], + "db_ids": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10" + ], + "created_timestamps": [ + "2021-10-01 00:00:00", + "2021-10-02 00:00:00", + "2021-10-03 00:00:00", + "2021-10-04 00:00:00", + "2021-10-05 00:00:00", + "2021-10-06 00:00:00", + "2021-10-07 00:00:00", + "2021-10-08 00:00:00", + "2021-10-09 00:00:00", + "2021-10-10 00:00:00" + ] +} +`,vG=` +{ + "db_name": "example_db", + "db_id": 1, + "created_timestamp": "2021-10-01 00:00:00", + "properties": [ + { + "key": "property_key", + "value": "property_value" + } + ] +} +`,yG=` +[ + { + "collection_id": 1, + "segments": [ + { + "segment_id": 1, + "collection_id": 1, + "partition_id": 1, + "channel": "channel1", + "num_of_rows": 1000, + "state": "Sealed", + "is_importing": false, + "compacted": false, + "level": "L0", + "is_sorted": true, + "node_id": 1, + "is_invisible": false, + "loaded_timestamp": "2021-10-01 00:00:00", + "index": [ + { + "field_id": 1, + "index_id": 1, + "build_id": 1, + "index_size": 1024, + "is_loaded": true + } + ], + "resource_group": "rg1", + "loaded_insert_row_count": 1000, + "mem_size": 2048 + } + ], + "dm_channels": [ + { + "node_id": 1, + "version": 1, + "collection_id": 1, + "channel_name": "channel1", + "unflushed_segment_ids": [ + "1" + ], + "flushed_segment_ids": [ + "2" + ], + "dropped_segment_ids": [ + "3" + ], + "level_zero_segment_ids": [ + "4" + ] + } + ] + } +] +`,bG=` +[ + { + "collection_id": 1, + "segments": [ + { + "segment_id": 2, + "collection_id": 1, + "partition_id": 1, + "channel": "channel2", + "num_of_rows": 1000, + "state": "Sealed", + "is_importing": false, + "compacted": false, + "level": "L0", + "is_sorted": true, + "node_id": 1, + "is_invisible": false, + "loaded_timestamp": 1633072800, + "index": [ + { + "field_id": 1, + "index_id": 1, + "build_id": 1, + "index_size": 1024, + "is_loaded": true + } + ], + "resource_group": "rg1", + "loaded_insert_row_count": 1000, + "mem_size": 2048 + } + ] + } +] +`,xG=` +{ + "segments": [ + { + "segment_id": 1, + "collection_id": 1, + "partition_id": 1, + "channel": "channel1", + "num_of_rows": 1000, + "state": "Sealed", + "is_importing": false, + "compacted": false, + "level": "L0", + "is_sorted": true, + "node_id": 1, + "is_invisible": false, + "loaded_timestamp": "2021-10-01 00:00:00", + "index": [ + { + "field_id": 1, + "index_id": 1, + "build_id": 1, + "index_size": 1024, + "is_loaded": true + } + ], + "resource_group": "rg1", + "loaded_insert_row_count": 1000, + "mem_size": 2048, + "flushed_rows": 1000, + "sync_buffer_rows": 0, + "syncing_rows": 0 + } + ], + "dm_channels": [ + { + "node_id": 1, + "version": 1, + "collection_id": 1, + "channel_name": "channel1", + "unflushed_segment_ids": ["1"], + "flushed_segment_ids": ["2"], + "dropped_segment_ids": ["3"], + "level_zero_segment_ids": ["4"], + "partition_stats_versions": { + "1": 1 + }, + "watch_state": "Healthy", + "start_watch_ts": "2021-10-01 00:00:00" + } + ], + "leader_views": [ + { + "leader_id": 1, + "collection_id": 1, + "node_id": 1, + "channel": "channel1", + "version": 1, + "sealed_segments": [ + { + "segment_id": 1, + "collection_id": 1, + "partition_id": 1, + "channel": "channel1", + "num_of_rows": 1000, + "state": "Sealed", + "is_importing": false, + "compacted": false, + "level": "L0", + "is_sorted": true, + "node_id": 1, + "is_invisible": false, + "loaded_timestamp": "2021-10-01 00:00:00", + "index": [ + { + "field_id": 1, + "index_id": 1, + "build_id": 1, + "index_size": 1024, + "is_loaded": true + } + ], + "resource_group": "rg1", + "loaded_insert_row_count": 1000, + "mem_size": 2048, + "flushed_rows": 1000, + "sync_buffer_rows": 0, + "syncing_rows": 0 + } + ], + "growing_segments": [], + "target_version": 1, + "num_of_growing_rows": 0, + "unserviceable_error": "" + } + ] +} +`,SG=` +[ + { + "ID": 1, + "collectionID": 1, + "rw_nodes": [1, 2], + "resource_group": "rg1", + "ro_nodes": [3], + "channel_to_rw_nodes": { + "channel1": [1, 2] + } + }, + { + "ID": 2, + "collectionID": 2, + "rw_nodes": [4, 5], + "resource_group": "rg2", + "ro_nodes": [6], + "channel_to_rw_nodes": { + "channel2": [4, 5] + } + } +] +`,wG=` +[ + { + "name": "rg1", + "nodes": [1, 2], + "cfg": { + "requests":{}, + "limits":{"node_num":1000000} + } + }, + { + "name": "rg2", + "nodes": [3, 4] + } +] +`,CG=` +[ + { + "task_name": "balance_checker-ChannelTask[1]-ch1", + "collection_id": 67890, + "replica_id": 11111, + "task_type": "Move", + "task_status": "started", + "priority": "Normal", + "actions": [ + "type:Grow node id : 1 channel name:channel_1" + ], + "step": 1, + "reason": "" + }, + { + "task_name": "index_checker-SegmentTask[2]-54321", + "collection_id": 12345, + "replica_id": 22222, + "task_type": "Grow", + "task_status": "completed", + "priority": "High", + "actions": [ + "type:Grow node id: 2 segment id:123 scope:DataScope_Streaming" + ], + "step": 2, + "reason": "" + }, + { + "task_name": "leader_checker-LeaderSegmentTask[3]-1", + "collection_id": 54321, + "replica_id": 33333, + "task_type": "Grow", + "task_status": "failed", + "priority": "Low", + "actions": [ + "type:Grow node id: 3 leader id:456 segment id:789 version:1" + ], + "step": 3, + "reason": "yet another reason" + } +] +`,_G=` +[ + { + "segment_id": 1, + "collection_id": 1, + "partition_id": 1, + "channel": "channel1", + "num_of_rows": 1000, + "state": "Sealed", + "is_importing": false, + "compacted": false, + "level": "L1", + "is_sorted": true, + "node_id": 1, + "is_invisible": false, + "loaded_timestamp": "2021-10-01 00:00:00", + "index": [ + { + "field_id": 1, + "index_id": 1, + "build_id": 1, + "index_size": 1024, + "is_loaded": true + } + ], + "resource_group": "rg1", + "loaded_insert_row_count": 1000, + "mem_size": 2048 + }, + { + "segment_id": 2, + "collection_id": 2, + "partition_id": 2, + "channel": "channel2", + "num_of_rows": 2000, + "state": "Sealed", + "is_importing": false, + "compacted": false, + "level": "L2", + "is_sorted": true, + "node_id": 2, + "is_invisible": false, + "loaded_timestamp": "2021-10-01 00:00:00", + "index": [ + { + "field_id": 2, + "index_id": 2, + "build_id": 2, + "index_size": 2048, + "is_loaded": true + } + ], + "resource_group": "rg2", + "loaded_insert_row_count": 2000, + "mem_size": 4096 + } +] +`,RG=` +[ + { + "name": "channel1", + "watch_state": "Healthy", + "assign_state": "assigned", + "latest_time_tick": "2023-10-01 12:00:00", + "node_id": 1, + "collection_id": 1 + }, + { + "name": "channel2", + "watch_state": "Healthy", + "assign_state": "assigned", + "latest_time_tick": "2023-10-01 12:05:00", + "node_id": 2, + "collection_id": 2 + } +] +`,TG=` +{ + "segments": [ + { + "segment_id": 1, + "collection_id": 1, + "partition_id": 1, + "channel": "channel1", + "num_of_rows": 1000, + "state": "Growing", + "is_importing": false, + "compacted": false, + "level": "L1", + "is_sorted": true, + "node_id": 1 + }, + { + "segment_id": 3, + "collection_id": 2, + "partition_id": 2, + "channel": "channel2", + "num_of_rows": 2000, + "state": "Growing", + "is_importing": true, + "compacted": true, + "level": "L2", + "is_sorted": false, + "node_id": 2 + } + ], + "dm_channels": [ + { + "node_id": 1, + "version": 1, + "collection_id": 100, + "channel_name": "channel1", + "unflushed_segment_ids": ["1", "2", "3"], + "flushed_segment_ids": ["4", "5", "6"], + "dropped_segment_ids": ["7", "8", "9"], + "watch_state": "success", + "start_watch_ts": "2023-10-01 12:05:00" + }, + { + "node_id": 1, + "version": 1, + "collection_id": 100, + "channel_name": "channel3", + "unflushed_segment_ids": ["1", "2", "3"], + "flushed_segment_ids": ["4", "5", "6"], + "dropped_segment_ids": ["7", "8", "9"], + "watch_state": "to_watch", + "start_watch_ts": "2023-10-01 12:05:00" + } + ] +} +`,PG=` +[ + { + "index_id": 1, + "collection_id": 1001, + "segment_id": 2001, + "build_id": 3001, + "index_state": "Finished", + "index_size": 1024, + "index_version": 1, + "create_time": "2023-10-01 12:05:00" + }, + { + "index_id": 2, + "collection_id": 1002, + "segment_id": 2002, + "build_id": 3002, + "index_state": "Failed", + "fail_reason": "Disk full", + "index_size": 2048, + "index_version": 2, + "create_time": "2023-10-01 12:05:00" + } +]`,kG=` +[ + { + "plan_id": 1, + "collection_id": 1, + "type": "Merge", + "state": "Completed", + "fail_reason": "", + "start_time": "2023-10-01 12:05:00", + "end_time": "2023-10-01 12:06:00", + "total_rows": 10000, + "input_segments": ["1", "2", "3"], + "result_segments": ["4"] + }, + { + "plan_id": 2, + "collection_id": 2, + "type": "Merge", + "state": "Failed", + "fail_reason": "Disk full", + "start_time": "2023-10-01 12:05:00", + "end_time": "2023-10-01 12:06:00", + "total_rows": 20000, + "input_segments": ["5", "6", "7"], + "result_segments": [] + } +]`,$G=` +[ + { + "segment_id": 1, + "batch_rows": 1000, + "segment_level": "L1", + "ts_from": "2023-10-01 12:05:00", + "ts_to": "2023-10-01 12:06:00", + "delta_row_count": 10, + "flush_size": 1024, + "running_time": "100000000", + "node_id": 1 + }, + { + "segment_id": 2, + "batch_rows": 2000, + "segment_level": "L2", + "ts_from": "2023-10-01 12:05:00", + "ts_to": "2023-10-01 12:06:00", + "delta_row_count": 20, + "flush_size": 2048, + "running_time": "200000000", + "node_id": 2 + } +] +`,EG=` +[ + { + "job_id": 1, + "task_id": 2, + "collection_id": 3, + "node_id": 4, + "state": "Pending", + "reason": "", + "task_type": "PreImportTask", + "created_time": "2023-10-01T00:00:00Z", + "complete_time": "2023-10-01T01:00:00Z" + }, + { + "job_id": 5, + "task_id": 6, + "collection_id": 7, + "node_id": 8, + "state": "Completed", + "reason": "", + "task_type": "ImportTask", + "created_time": "2023-10-01T00:00:00Z", + "complete_time": "2023-10-01T01:00:00Z" + }, + { + "job_id": 9, + "task_id": 10, + "collection_id": 11, + "node_id": 12, + "state": "Failed", + "reason": "some failure reason", + "task_type": "ImportTask", + "created_time": "2023-10-01T00:00:00Z", + "complete_time": "2023-10-01T01:00:00Z" + } +] +`,MG=` +[ + { + "segment_id": 1, + "collection_id": 1, + "partition_id": 1, + "channel": "channel1", + "num_of_rows": 1000, + "state": "Growing", + "is_importing": false, + "compacted": false, + "level": "L1", + "is_sorted": true, + "node_id": 1, + "flushed_rows": 1000, + "sync_buffer_rows": 0, + "syncing_rows": 0 + }, + { + "segment_id": 2, + "collection_id": 2, + "partition_id": 2, + "channel": "channel2", + "num_of_rows": 2000, + "state": "Sealed", + "is_importing": true, + "compacted": true, + "level": "L0", + "is_sorted": false, + "node_id": 2, + "flushed_rows": 2000, + "sync_buffer_rows": 100, + "syncing_rows": 50 + } +] +`,IG=` +[ + { + "name": "channel1", + "watch_state": "Healthy", + "assign_state": "assigned", + "latest_time_tick": "2023-10-01 12:00:00", + "node_id": 1, + "collection_id": 1, + "check_point_ts": "2023-10-01 12:00:00" + }, + { + "name": "channel2", + "watch_state": "Healthy", + "assign_state": "assigned", + "latest_time_tick": "2023-10-01 12:05:00", + "node_id": 2, + "collection_id": 2, + "check_point_ts": "2023-10-01 12:05:00" + } +] +`,OG=`[ + { + "role": "proxy", + "database": "test_db", + "collection": "test_collection", + "partitions": "partition1,partition2", + "consistency_level": "Bounded", + "use_default_consistency": true, + "guarantee_timestamp": 123456789, + "duration": "1.1s", + "user": "test_user", + "query_params": { + "search_params": [ + { + "dsl": ["dsl1"], + "search_params": ["param2=value2"], + "nq": [10] + } + ], + "output_fields": "field1,field2" + }, + "type": "Search", + "trace_id": "729b10a6a7f32ddd7ab5c16dd30f60dc", + "time": "2024-11-05 08:14:05" + }, + { + "role": "proxy", + "database": "test_db", + "collection": "test_collection", + "partitions": "partition1,partition2", + "consistency_level": "Bounded", + "use_default_consistency": true, + "guarantee_timestamp": 123456789, + "duration": "1.2s", + "user": "test_user", + "query_params": { + "expr": "expr1", + "output_fields": "field1,field2" + }, + "type": "Query", + "trace_id": "232955b7f33b135708d34c3c761b57e7", + "time": "2024-11-05 08:14:05" + }, + { + "role": "proxy", + "database": "test_db", + "collection": "test_collection", + "partitions": "partition1,partition2", + "consistency_level": "Bounded", + "use_default_consistency": true, + "guarantee_timestamp": 123456789, + "duration": "1.3s", + "user": "test_user", + "query_params": { + "search_params": [ + { + "dsl": ["dsl2"], + "search_params": ["param3=value3"], + "nq": [20] + } + ], + "output_fields": "field3,field4" + }, + "type": "HybridSearch", + "trace_id": "3a4b5c6d7e8f9a0b1c2d3e4f5g6h7i8j", + "time": "2024-11-05 08:14:05" + }, + { + "role": "proxy", + "database": "test_db", + "collection": "test_collection", + "partitions": "partition1,partition2", + "consistency_level": "Bounded", + "use_default_consistency": true, + "guarantee_timestamp": 123456789, + "duration": "1.4s", + "user": "test_user", + "query_params": { + "expr": "expr2", + "output_fields": "field5,field6" + }, + "type": "Query", + "trace_id": "4b5c6d7e8f9a0b1c2d3e4f5g6h7i8j9k", + "time": "2024-11-05 08:14:05" + }, + { + "role": "proxy", + "database": "test_db", + "collection": "test_collection", + "partitions": "partition1,partition2", + "consistency_level": "Bounded", + "use_default_consistency": true, + "guarantee_timestamp": 123456789, + "duration": "1.5s", + "user": "test_user", + "query_params": { + "search_params": [ + { + "dsl": ["dsl3"], + "search_params": ["param4=value4"], + "nq": [30] + } + ], + "output_fields": "field7,field8" + }, + "type": "Search", + "trace_id": "5c6d7e8f9a0b1c2d3e4f5g6h7i8j9k0l", + "time": "2024-11-05 08:14:05" + } +]`,LG="/api/v1",n0=Bt.create({baseURL:LG});n0.interceptors.response.use(e=>(e.status>=400&&WD({title:"Error",message:e.data.message||"Request Error",showClose:!1,handleClose:()=>{}}),e));const MS=(e,t)=>N3()&&e?Promise.resolve(e):t().then(n=>n.data),gt={get:(e,t,n)=>MS(JSON.parse(n||"null"),()=>n0.get(e,t)),post:(e,t,n,r)=>MS(JSON.parse(r||"null"),()=>n0.post(e,t,n))},AG="https://github.com/milvus-io/milvus/issues/new/choose",NG="https://zilliz.com/contact-sales",DG="WebUI: https://cloud.zilliz.com/signup?utm_source=partner&utm_medium=referral&utm_campaign=2024-12-19_resource_milvus-webUI_milvusio",sl=(e,t=2)=>(e/1024**3).toFixed(t),jG=e=>e.db_names.map((t,n)=>{var i;const r=(i=e.db_ids)==null?void 0:i[n],o=e.created_timestamps[n];return{name:t,id:r,created:o}}),FG=e=>e.collection_ids.map((t,n)=>{var s,l,c,u;const r=(s=e.collection_names)==null?void 0:s[n],o=(l=e.created_utc_timestamps)==null?void 0:l[n],i=(c=e.inMemory_percentages)==null?void 0:c[n],a=(u=e.query_service_available)==null?void 0:u[n];return{name:r,id:t,created:o,memoryPercentage:i,queryServiceAvailable:a}}),IS=()=>{},BG=async()=>(await gt.get("/_cluster/info",{},uG)).nodes_info,zG=async()=>gt.get("/_cluster/clients",{},dG),HG=async()=>gt.get("/_cluster/dependencies",{},fG),VG=async()=>{const e=await gt.get("/_db/list",{},mG);try{return jG(e)}catch(t){console.warn(t)}},WG=async e=>gt.get("/_db/desc",{params:{db_name:e}},vG),UG=async(e="default")=>{const t=await gt.get("/_collection/list",{params:{db_name:e}},gG);return FG(t)},GG=async(e,t="default")=>gt.get("/_collection/desc",{params:{db_name:t,collection_name:e}},hG),qG=async e=>gt.get("/_index/list",{params:{collection_id:e}}),KG=async e=>gt.get("/_dc/segments",{params:{collection_id:e,in:"dc"}}),ZG=async e=>gt.get("/_qc/segments",{params:{collection_id:e,in:"qc"}}),D3=async()=>gt.get("/_qc/dist",{},xG),sv=async()=>gt.get("/_qc/target",{},yG),lv=async()=>gt.get("/_qc/target",{params:{target_scope:2}},bG),QG=async()=>gt.get("/_qn/segments",{},_G),YG=async()=>gt.get("/_qn/channels",{},RG),XG=async()=>gt.get("/_qc/replica",{},SG),JG=async()=>gt.get("/_qc/resource_group",{},wG),eq=async()=>gt.get("/_dc/dist",{},TG),tq=async()=>gt.get("/_dn/channels",{},IG),nq=async()=>gt.get("/_dn/segments",{},MG),rq=async()=>gt.get("/_qc/tasks",{},CG),oq=async()=>gt.get("/_dc/tasks/compaction",{},kG),iq=async()=>gt.get("/_dc/tasks/build_index",{},PG),aq=async()=>gt.get("/_dc/tasks/import",{},EG),sq=async()=>gt.get("/_dn/tasks/sync",{},$G),lq=async()=>gt.get("/_cluster/slow_query",{},OG),cq=async()=>gt.get("/_cluster/configs",{},pG);var j3={exports:{}};/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var i="",a=0;ae?[{key:"system_version",name:"Git Commit",desc:"Git commit SHA that the current build of the system is based on"},{key:"deploy_mode",name:"Deploy Mode",desc:"The mode in which the system is deployed"},{key:"build_version",name:"Build Version",desc:"The version of the system that was built"},{key:"build_time",name:"Build Time",desc:"The exact time when the system was built"},{key:"used_go_version",name:"Go Version",desc:"The version of the Golang that was used to build the system"}].map(n=>({...n,value:e[n.key]})):[],pq=()=>{const e=nt("cluster-info",BG),t=b.useMemo(()=>{var l;const i=(l=e.data)==null?void 0:l[0],a=i==null?void 0:i.infos.system_info,s=fq(a);return s.push({key:"created_time",name:"Started Time",value:i==null?void 0:i.infos.created_time,desc:"The time when the system was started"}),s},[e.data]),n=b.useMemo(()=>{var i;return((i=e.data)==null?void 0:i.map(a=>({name:a.infos.name,ip:a.infos.hardware_infos.ip,created:a.infos.created_time,error:a.infos.has_error?a.infos.error_reason:""})))||[]},[e.data]),r=b.useMemo(()=>{var i;return((i=e.data)==null?void 0:i.map(a=>{const s=a.infos.hardware_infos,l=sl(s.cpu_core_usage),c=sl(s.memory),u=sl(s.memory_usage),d=sl(s.disk),f=sl(s.disk_usage);return{name:a.infos.name,cpu:`${l}%`,memory:`${u} / ${c}`,disk:`${f} / ${d}`,ioWait:"0.00",rpc:"100",netTP:"5",diskTP:"20"}}))||[]},[e.data]),o=b.useMemo(()=>[],[e.data]);return{...e,data:t,compData:n,runtimeMetricsData:r,requestData:o}},gq=()=>nt("cluster-clients",zG),hq=()=>{const e=nt("cluster-deps",HG),t=b.useMemo(()=>Object.keys(e.data||{}).map(n=>{const r=e.data[n],o="meta_type"in r?r.meta_type:r.mq_type,i=r.health_status?"":r.unhealthy_reason;return{name:`${n} [${o}]`,clusterStatus:i,members:r.members_health}}),[e.data]);return{...e,data:t}};var rd=(e=>(e.Node="none",e.Building="building",e.Completed="completed",e))(rd||{}),od=(e=>(e.Node="none",e.Loading="loading",e.Loaded="loaded",e))(od||{});const mq=()=>nt("databases",VG),vq=(e="default")=>nt(`collections-${e}`,()=>UG(e)),yq=e=>{var y;const[t,n]=e.split("-"),r=nt(`collections-${e}`,()=>GG(n,t)),o=(y=r.data)==null?void 0:y.collection_id,i=nt(o&&`collections-${o}-indexes`,()=>qG(o)),a=nt(o&&`collections-${o}-dcSegments`,()=>KG(o)),s=nt(o&&`collections-${o}-qcSegments`,()=>ZG(o)),l=nt("collections-currTarget",()=>sv()),c=nt("collections-currTarget",()=>lv()),u=nt("collections-dist",()=>D3()),d=(w,v)=>{var S;return(S=v==null?void 0:v.index_fields)!=null&&S.length?v.index_fields.every(m=>w.find(C=>C.index_id===m.index_id))||v.is_indexed?rd.Completed:rd.Building:rd.Node},f=(w,v)=>{var S,m;return(S=v==null?void 0:v.index_fields)!=null&&S.length&&v.index_fields.every(C=>w.find(_=>_.index_id===C.index_id))?od.Loaded:(m=v==null?void 0:v.index_fields)!=null&&m.length?od.Loading:od.Node},p=b.useMemo(()=>{var v,S;if(!a.data||!s.data||!i.data)return[];const w={};return(v=a.data)==null||v.forEach(m=>{w[m.segment_id]={dc:m}}),(S=s.data)==null||S.forEach(m=>{w[m.segment_id]={...w[m.segment_id],qc:m}}),Object.keys(w).map(m=>{var k,T,P,x;const{dc:C,qc:_}=w[m];return{id:((k=C||_)==null?void 0:k.segment_id)||"",nodeId:((T=C||_)==null?void 0:T.node_id.toString())||"",rowsCount:Number(((P=C||_)==null?void 0:P.num_of_rows)||0),state:C==null?void 0:C.state,level:((x=C||_)==null?void 0:x.level)||"",buildIndexState:d(i.data,C),loadIndexState:f(i.data,C)}})},[a.data,s.data,i.data]),h=()=>{var _;if(!u.data||!l.data||!c.data)return{name:"-"};const w=c.data.find(R=>R.collection_id===o),v=l.data.find(R=>R.collection_id===o);if(w&&!v)return{name:"Loading"};const{leader_views:S}=u.data,m=[],C=(_=v==null?void 0:v.segments)==null?void 0:_.every(R=>{var x,$;const k=(x=S.find(I=>I.collection_id===o))==null?void 0:x.growing_segments,T=($=S.find(I=>I.collection_id===o))==null?void 0:$.sealed_segments,P=(k==null?void 0:k.find(I=>I.segment_id===R.segment_id))||(T==null?void 0:T.find(I=>I.segment_id===R.segment_id));return P||m.push(R.segment_id),P});return v&&!C?{name:"Collection Segment Lack",desc:`There are segments need to load: ${m.join(", ")}`}:v?{name:"Loaded"}:{name:"-"}};return{collection:r.data,indexes:i.data,segments:p,collectionState:h()}},kp={isError:!1,message:"Ready"},OS=(e,t)=>{var o;const{collectionId:n,id:r}=e;return!!((o=t.find(i=>i.collection_id===n))!=null&&o.dm_channels.find(i=>i.flushed_segment_ids.includes(r)))},bq=(e,t,n)=>{const r=OS(e,n),o=OS(e,t),i=!!e.sourceData.distSegmentData,a=!!e.sourceData.leaderView;return r&&!i&&!a&&!o?{isError:!1,message:"Watch Channel Growing Generated"}:r&&i&&a&&!o?{isError:!1,message:"Load Growing"}:r&&i&&a&&o?{isError:!1,message:"Segment Ready"}:i&&a&&o?{isError:!1,message:"Growing Flushed"}:!r&&i&&a&&!o?{isError:!1,message:"Release Growing Sealed Loaded"}:!i&&!a&&o?{isError:!0,message:"Delegator Node Offline"}:kp},xq=e=>{const t=!!e.sourceData.nextTarSegment,n=!!e.sourceData.currTarSegment,r=!!e.sourceData.distSegmentData,o=!!e.sourceData.leaderView;return t&&!r&&!o&&!n?{isError:!1,message:"L0 Generated"}:t&&r&&o&&!n?{isError:!1,message:"L0 Loaded"}:t&&r&&o&&n?{isError:!1,message:"L0 Ready"}:r&&o&&n?{isError:!1,message:"L0 Compacted"}:!t&&r&&o&&!n?{isError:!1,message:"Release L0 Compact To Loaded"}:!r&&!o&&n?{isError:!0,message:"Delegator Node Offline"}:kp},Sq=e=>{const t=!!e.sourceData.nextTarSegment,n=!!e.sourceData.currTarSegment,r=!!e.sourceData.distSegmentData,o=!!e.sourceData.leaderView;return t&&!r&&!o&&!n?{isError:!1,message:"Load L1 L1 Generated"}:t&&r&&o&&!n?{isError:!1,message:"L1 Loaded"}:t&&r&&o&&n?{isError:!1,message:"L1 Ready"}:r&&o&&n?{isError:!1,message:"L1 Compacted"}:!t&&r&&o&&!n?{isError:!1,message:"Release L1 Compact To Loaded"}:r&&!o&&n?{isError:!0,message:"Add Router Delegator Node Offline"}:!r&&o&&!n?{isError:!0,message:"Remove Router Worker Node Offline"}:!r&&o&&n?{isError:!0,message:"Load L1 Worker Node Offline"}:r&&!o&&!n?{isError:!0,message:"Release L1 Delegator Node Offline"}:kp},wq=(e,t,n)=>e.map(r=>{let o=kp;return r.state==="Growing"&&(o=bq(r,t,n)),r.state==="Sealed"&&r.level==="L0"&&(o=xq(r)),r.state==="Sealed"&&r.level==="L1"&&(o=Sq(r)),{...r,stateDetail:o}}),Cq=e=>{const t=Object.keys(e).filter(n=>{var o;const r=(o=e[n])==null?void 0:o.state;return r&&r!=="SegmentStateNone"});return t.length?e[t[0]].state:"-"},_q=(e,t)=>{var p;const{distSegmentData:n,currTarSegment:r,nextTarSegment:o,queryNode:i,leaderView:a}=t,s=(n||r||o||i).collection_id,l=a!=null&&a.leader_id&&(a==null?void 0:a.leader_id)!=="Not Found"?a==null?void 0:a.leader_id:"-",c=(p=n||i)==null?void 0:p.node_id,u=n==null?void 0:n.num_of_rows,d=n==null?void 0:n.level,f=Cq(t);return{id:e,collectionId:s,leaderId:l,nodeId:c,state:f,rowsCount:u,level:d,sourceData:t}},Rq=(e,t,n,r)=>{var a;const o={};(a=e.segments)==null||a.forEach(s=>{o[s.segment_id]={...o[s.segment_id]||{},distSegmentData:s}}),e.leader_views.forEach(s=>{var l,c;(l=s.sealed_segments)==null||l.forEach(u=>{o[u.segment_id]={...o[u.segment_id]||{},leaderView:s}}),(c=s.growing_segments)==null||c.forEach(u=>{o[u.segment_id]={...o[u.segment_id]||{},leaderView:s}})}),t.forEach(s=>{var l;(l=s.segments)==null||l.forEach(c=>{o[c.segment_id]={...o[c.segment_id]||{},currTarSegment:c,currTarget:s}})}),n.forEach(s=>{var l;(l=s.segments)==null||l.forEach(c=>{o[c.segment_id]={...o[c.segment_id]||{},nextTarSegment:c,nextTarget:s}})}),r.forEach(s=>{o[s.segment_id]={...o[s.segment_id]||{},queryNode:s}});const i=Object.keys(o).map(s=>_q(s,o[s]));return wq(i,t,n)},Tq=()=>{const e=nt("query-dist",D3),t=nt("query-currTargets",sv),n=nt("query-nextTargets",lv),r=nt("query-seg",QG),o=nt("query-channel",YG),i=b.useMemo(()=>!e.data||!t.data||!n.data||!r.data?[]:Rq(e.data,t.data,n.data,r.data),[e.data,t.data,n.data,r.data]),a=b.useMemo(()=>!e.data||!t.data||!n.data||!o.data?[]:Eq(e.data,t.data,n.data,o.data),[e.data,t.data,n.data,o.data]);return{segsData:i,channelsData:a,isLoading:[e,t,n,r,o].some(s=>s.isLoading)}},Tu=e=>e.name||e.channel_name,Pq=e=>{const t=Object.keys(e).filter(n=>{var o;const r=(o=e[n])==null?void 0:o.watch_state;return r&&r!=="Healthy"});return t.length?e[t[0]].watch_state:"Healthy"},kq=e=>e.nextTarChannel&&!e.leaderView&&!e.currTarChannel?{isError:!1,message:"Sub Channel Load Collection"}:e.nextTarChannel&&e.leaderView&&!e.currTarChannel?{isError:!1,message:"Channel Watched"}:e.nextTarChannel&&e.leaderView&&e.currTarChannel?{isError:!1,message:"Channel Ready"}:!e.nextTarChannel&&e.leaderView&&!e.currTarChannel?{isError:!1,message:"UnSub Channel Release Collection"}:!e.leaderView&&e.currTarChannel?{isError:!0,message:"UnSub Channel Delegator Node Offline"}:{isError:!1,message:"Channel Ready"},$q=(e,t)=>{var d;const{distChannelData:n,currTarChannel:r,nextTarChannel:o,queryNode:i,leaderView:a}=t,s=(n||r||o||i).collection_id,l=a!=null&&a.leader_id&&(a==null?void 0:a.leader_id)!=="Not Found"?a==null?void 0:a.leader_id:"-",c=(d=n||i)==null?void 0:d.node_id,u=Pq(t);return{name:e,collectionId:s,leaderId:l,nodeId:c,watchState:u,stateDetail:kq(t),sourceData:t}},Eq=(e,t,n,r)=>{var i,a;const o={};return(i=e.dm_channels)==null||i.forEach(s=>{const l=Tu(s);o[l]={...o[l]||{},distChannelData:s}}),t.forEach(s=>{var l;(l=s.dm_channels)==null||l.forEach(c=>{const u=Tu(c);o[u]={...o[u]||{},currTarChannel:c}})}),n.forEach(s=>{var l;(l=s.dm_channels)==null||l.forEach(c=>{const u=Tu(c);o[u]={...o[u]||{},nextTarChannel:c}})}),r.forEach(s=>{const l=Tu(s);o[l]={...o[l]||{},queryNode:s}}),(a=e.leader_views)==null||a.forEach(s=>{s.channel&&(o[s.channel]={...o[s.channel]||{},leaderView:s})}),Object.keys(o).map(s=>$q(s,o[s]))},Mq=()=>nt("query-replicas",XG),Iq=()=>nt("query-rscGroups",JG),Oq=()=>{const e=nt("query-currTargets",sv),t=nt("query-nextTargets",lv),n=b.useMemo(()=>!e.data||!t.data?[]:Lq(e.data,t.data),[e.data,t.data]),r=b.useMemo(()=>!e.data||!t.data?[]:Aq(e.data,t.data),[]);return{isLoading:e.isLoading||t.isLoading,targetSeg:n,targetChannel:r}};function Lq(e,t){const n=[];return e.forEach(r=>{r.segments.forEach(o=>{o.targetScope="current",n.push(o)})}),t.forEach(r=>{r.segments.forEach(o=>{o.targetScope="next",n.push(o)})}),n}function Aq(e,t){const n=[];return e.forEach(r=>{r.dm_channels&&r.dm_channels.forEach(o=>{o.targetScope="current",n.push(o)})}),t.forEach(r=>{r.dm_channels&&r.dm_channels.forEach(o=>{o.targetScope="next",n.push(o)})}),n}const Nq=()=>{const e=nt("data-dist",eq),t=nt("data-seg",nq),n=nt("data-channel",tq),r=b.useMemo(()=>!e.data||!n.data?{data:[],notifications:[]}:Dq(n.data,e.data),[e.data,n.data]);return{seg:b.useMemo(()=>!e.data||!t.data?{data:[],notifications:[]}:jq(t.data,e.data),[e.data,t.data]),channel:r,isLoading:e.isLoading||t.isLoading||n.isLoading}},Dq=(e,t)=>{const n={},r=[],o=new Set(t.dm_channels.map(i=>i.channel_name));return e.forEach(i=>{const a=isNaN(Number(i.node_id))?i.node_id:`datanode-${i.node_id}`;i.node_id=a;const s={...i};o.has(i.name)||(s.notification="Not found in DataCoord",r.push(s)),n[i.name]=s}),t.dm_channels.forEach(i=>{const a=isNaN(Number(i.node_id))?i.node_id:`datacoord-${i.node_id}`;i.node_id=a;const s=i.channel_name;if(n[s])n[s].watch_state!=="Healthy"&&(i.watch_state=n[s].watch_state),n[s]={...n[s],...i};else{const l={...i,notification:"Not found in DataNode"};r.push(l),n[s]=l}}),{data:Object.values(n),notifications:r}},jq=(e,t)=>{const n={},r=[],o=new Set(t.segments.map(i=>i.segment_id));return e.forEach(i=>{var l;const a=isNaN(Number(i.node_id))?i.node_id:`datanode-${i.node_id}`;i.node_id=a;const s={...i};!o.has(i.segment_id)&&((l=i.level)==null?void 0:l.toLowerCase())!=="l0"&&(s.notification="Not found in DataCoord",r.push(s)),n[i.segment_id]=s}),t.segments.forEach(i=>{const a=isNaN(Number(i.node_id))?i.node_id:`datacoord-${i.node_id}`;i.node_id=a;const s=i.segment_id;if(n[s])n[s]={...n[s],...i};else{const l={...i,notification:"Not found in DataNode"};i.state!=="Dropped"&&i.state!=="Flushed"&&r.push(l),n[s]=l}}),{data:Object.values(n),notifications:r}},Fq=()=>nt("tasks",rq),Bq=()=>nt("compaction",oq),zq=()=>nt("buildIndex",iq),Hq=()=>nt("import",aq),Vq=()=>nt("sync",sq),Wq=()=>nt("slow-requests",lq),Uq=()=>{const e=nt("configurations",cq);return{...e,data:Object.keys(e.data||{}).map(t=>({key:t,value:e.data[t]}))}},Gq="_section_1fkka_1",qq="_title_1fkka_5",Kq="_separator_1fkka_8",oh={section:Gq,title:qq,separator:Kq},St=e=>{const{title:t,level:n=3,children:r,className:o}=e,i=()=>rt.createElement(`h${n}`,{className:oh.title,children:t});return g.jsxs("div",{className:He(oh.section,o),children:[i(),g.jsx("hr",{className:oh.separator}),r]})},ih={"filter-searcher":"_filter-searcher_162nl_1","filter-searcher-label":"_filter-searcher-label_162nl_5","filter-searcher-input":"_filter-searcher-input_162nl_9"},Zq=e=>{var u;const{defaultFilter:t,filters:n,className:r,onSearch:o}=e,[i,a]=b.useState({by:t}),s=d=>{a(()=>({by:d.value}))},l=d=>{a(f=>({...f,q:d.target.value}))},c=n.length?(u=n.find(d=>d.value===(i.by||n[0].value)))==null?void 0:u.label.toLowerCase():"";return b.useEffect(()=>{o(i)},[i.q]),g.jsxs("div",{className:He(ih["filter-searcher"],r),children:[g.jsx("div",{className:ih["filter-searcher-label"],children:"Filter: "}),n.length>1&&g.jsx(KD,{defaultValue:t||n[0].value,options:n,onChange:s,onPointerEnterCapture:IS,onPointerLeaveCapture:IS}),g.jsx(D1,{classes:{root:ih["filter-searcher-input"]},prefixComponent:g.jsx(HA,{}),type:"number",value:i.q,onChange:l,placeholder:c?`Search by ${c}`:"Search",onPointerEnterCapture:()=>{},onPointerLeaveCapture:()=>{}})]})},Qq="_wrapper_1j79b_1",ll={wrapper:Qq,"json-ellipsis":"_json-ellipsis_1j79b_7","json-ellipsis-brace":"_json-ellipsis-brace_1j79b_10","json-ellipsis-dot":"_json-ellipsis-dot_1j79b_14"},cv=e=>{const{json:t,ellipsis:n}=e,r=t?JSON.stringify(t,null,2):"",o=g.jsx("pre",{className:ll.wrapper,children:r});return n?g.jsx(bp,{title:o,placement:"top",children:g.jsxs("span",{className:ll["json-ellipsis"],children:[g.jsx("span",{className:ll["json-ellipsis-brace"],children:"{"}),g.jsx("span",{className:ll["json-ellipsis-dot"],children:"..."}),g.jsx("span",{className:ll["json-ellipsis-brace"],children:"}"})]})}):o},Yq="_state_v8a2b_12",Xq="_none_v8a2b_16",Jq="_building_v8a2b_19",eK="_loading_v8a2b_19",tK="_completed_v8a2b_22",nK="_loaded_v8a2b_22",rK="_healthy_v8a2b_22",oK="_deleted_v8a2b_25",iK="_icon_v8a2b_28",ah={state:Yq,none:Xq,false:"_false_v8a2b_16",building:Jq,loading:eK,completed:tK,loaded:nK,healthy:rK,true:"_true_v8a2b_22",deleted:oK,icon:iK},zo=e=>{const t=()=>{if(e.detail)return g.jsx(Mc,{tooltip:{title:e.detail,placement:"top"},children:g.jsx(YA,{className:ah.icon,size:16})})};return g.jsxs("span",{className:He(ah.state,ah[e.value.toLowerCase()]),children:[e.label||e.value,t()]})},qt=e=>{const[t,n]=b.useState({}),r=b.useMemo(()=>e.cols.filter(s=>s.searchable),[e.cols]),o=b.useMemo(()=>{var c;if(!t.by||!t.q)return e.list||[];const{searchBy:s}=r.find(u=>u.field===t.by)||{};if(s)return s==null?void 0:s(t.q,e.list||[]);const l=t.by;return((c=e.list)==null?void 0:c.filter(u=>{var d;return(d=u[l])==null?void 0:d.toString().includes(t.q||"")}))||[]},[t,e.list]),i=s=>{var l;n(s),(l=e.onSearch)==null||l.call(e,s)};return{list:o,renderSearcher:s=>{const l=r.map(c=>({label:c.headerName,value:c.field}));return g.jsx(Zq,{filters:l,onSearch:i,...s})}}},aK="_status_19mpp_12",sK="_error_19mpp_16",Qt={status:aK,error:sK,"comp-tabs":"_comp-tabs_19mpp_20","text-content":"_text-content_19mpp_25","member-list":"_member-list_19mpp_30","member-item-label":"_member-item-label_19mpp_34","helper-link":"_helper-link_19mpp_43"},lK=()=>{var R;const e=pq(),t=gq(),n=hq(),[r,o]=b.useState("base"),i=k=>g.jsx("div",{className:Qt["text-content"],children:k||"-"}),a=k=>i(k.getValue()),s=b.useMemo(()=>[{field:"name",headerName:"Attribute"},{field:"value",headerName:"Value",renderCell:a},{field:"desc",headerName:"Description",renderCell:a}],[]),l=b.useMemo(()=>[{label:"Base Stats",value:"base"},{label:"Runtime Metrics",value:"metrics"}],[]),c=k=>{const T=k||"Healthy",P=!!k;return g.jsx("span",{className:He(Qt.status,P&&Qt.error),children:T})},u=b.useMemo(()=>[{field:"name",headerName:"Node Name",renderCell:a,searchable:!0},{field:"ip",headerName:"Node IP",renderCell:a},{field:"created",headerName:"Start Time",renderCell:a},{field:"error",headerName:"Node Status",renderCell:T=>i(c(T.getValue()))}],[]),d=qt({cols:u,list:e.compData}),f=b.useMemo(()=>[{field:"name",headerName:"Node Name",renderCell:a,searchable:!0},{field:"cpu",headerName:"CPU Usage",renderCell:a},{field:"memory",headerName:"Usage / Memory (GB)",renderCell:a},{field:"disk",headerName:"Usage / Disk (GB)",renderCell:a},{field:"ioWait",headerName:"IO wait",renderCell:a},{field:"rpc",headerName:"RPC Ops/s",renderCell:a},{field:"netTP",headerName:"Network Throughput (MB/s)",renderCell:a},{field:"diskTP",headerName:"Disk Throughput (MB/s)",renderCell:a}],[]),p=qt({cols:f,list:e.runtimeMetricsData}),h=(k,T)=>{o(T)},y=b.useMemo(()=>[{field:"host",headerName:"Host",searchable:!0},{field:"user",headerName:"User",searchable:!0},{field:"sdk_type",headerName:"SDK Type",searchable:!0},{field:"sdk_version",headerName:"SDK Version",searchable:!0},{field:"local_time",headerName:"Local Time",renderCell:a},{field:"lastActiveTime",headerName:"Last Active Time",renderCell:a}],[]),w=qt({cols:y,list:(R=t.data)==null?void 0:R.map(k=>({...k,lastActiveTime:k.reserved.last_active_time}))}),v=k=>{const T=g.jsx("span",{className:Qt["member-endpoint"],children:k.endpoint}),P=c(k.health?"":"Unhealthy");return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:Qt["member-item-label"],children:"Endpoint:"}),T,g.jsx("span",{className:Qt["member-item-label"],children:"Health:"}),P]})},S=k=>{const T=k.getValue()||[];if(!T.length)return"-";const P=T.map(x=>g.jsx("li",{className:Qt["member-item"],children:v(x)},x.endpoint));return g.jsx("ul",{className:Qt["member-list"],children:P})},m=b.useMemo(()=>[{field:"name",headerName:"Sys Name",searchable:!0},{field:"clusterStatus",headerName:"Cluster Status",maxWidth:200,renderCell:T=>i(c(T.getValue()))},{field:"members",headerName:"Members Status",renderCell:S}],[]),C=qt({cols:m,list:n.data}),_=()=>{var x,$;const k=((x=e.compData)==null?void 0:x.every(I=>!I.error))&&(($=n.data)==null?void 0:$.every(I=>{var O;return!I.clusterStatus&&!((O=I.members)!=null&&O.some(D=>!D.health))})),T=k?"Your Cluster is running well!":g.jsxs(g.Fragment,{children:["Your Cluster is experiencing issues!"," ",g.jsxs("a",{className:Qt["helper-link"],href:AG,target:"_blank",children:["Ask a question in community",g.jsx(_m,{size:14})]})," ",g.jsxs("a",{className:Qt["helper-link"],href:NG,target:"_blank",children:["Contact Zilliz Experts",g.jsx(_m,{size:14})]})]}),P=k?"success":"error";return g.jsx(N1,{severity:P,children:T})};return g.jsxs("div",{className:He("page-wrapper",Qt.info),children:[g.jsx("div",{className:Qt.alerts,children:_()}),g.jsx(St,{title:"System Information",children:g.jsx(pt,{classes:{tableContainer:He(Qt["sys-info"],"table-view")},loading:e.isLoading,columns:s,rows:e.data})}),g.jsx(St,{title:"Component Information",children:g.jsxs(g.Fragment,{children:[g.jsx(XD,{className:Qt["comp-tabs"],value:r,labelConfigs:l,handleChange:h,tabsType:"background"}),r==="base"&&g.jsxs(g.Fragment,{children:[d.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Qt["comp-info"],"table-view")},loading:e.isLoading,columns:u,rows:d.list})]}),r==="metrics"&&g.jsxs(g.Fragment,{children:[p.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Qt["comp-info"],"table-view")},loading:e.isLoading,columns:f,rows:p.list})]})]})}),g.jsx(St,{title:"Connected Clients",children:g.jsxs(g.Fragment,{children:[w.renderSearcher({defaultFilter:"host",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Qt.clients,"table-view")},loading:t.isLoading,columns:y,rows:w.list})]})}),g.jsx(St,{title:"System Dependencies",children:g.jsxs(g.Fragment,{children:[C.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Qt["sys-deps"],"table-view")},loading:n.isLoading,columns:m,rows:C.list||[]})]})})]})},cK="_queryable_12ixl_12",uK="_error_12ixl_15",dK="_detail_12ixl_23",fK="_clear_12ixl_28",pK="_loading_12ixl_1",gK="_percentage_12ixl_73",hK="_unknown_12ixl_73",mn={queryable:cK,error:uK,"collection-filter":"_collection-filter_12ixl_19",detail:dK,clear:fK,"json-detail-wrapper":"_json-detail-wrapper_12ixl_40","json-detail-content":"_json-detail-content_12ixl_40","json-detail-loading":"_json-detail-loading_12ixl_46","json-detail-loading-icon":"_json-detail-loading-icon_12ixl_50",loading:pK,"collection-filter-wrapper":"_collection-filter-wrapper_12ixl_57","collection-name":"_collection-name_12ixl_65",percentage:gK,unknown:hK},mK=e=>{const{fetcher:t,uniqKey:n,className:r,errorMessage:o}=e,i=nt(n,t),a=b.useMemo(()=>i.data?i.error?o:JSON.stringify(i.data,null,2):"",[i.data,o]),s=()=>i.isLoading?g.jsx("div",{className:mn["json-detail-loading"],children:g.jsx(zA,{className:mn["json-detail-loading-icon"]})}):g.jsx("pre",{className:He(mn["json-detail-content"],i.error&&mn.error),children:a});return g.jsx("div",{className:He(mn["json-detail-wrapper"],r),children:s()})},vK=()=>{var S,m,C;const e=mq(),[t,n]=b.useState({}),r=vq(t.db),[o,i]=b.useState({page:0,pageSize:10}),[a,s]=b.useState({page:0,pageSize:10}),l=b.useMemo(()=>[{field:"name",headerName:"Name",searchable:!0},{field:"id",headerName:"ID",renderCell:R=>R.getValue()||"-",searchable:!0},{field:"created",headerName:"Created Time"}],[]),c=qt({cols:l,list:e.data,onSearch:()=>{i(_=>({..._,page:0}))}}),u=_=>{const R=_.getValue();return!R&&R!==0?"-":R==="unknown"?g.jsx("span",{className:He(mn.percentage,mn.unknown),children:"Unknown"}):g.jsxs("span",{className:mn.percentage,children:[_.getValue(),"%"]})},d=_=>{const R=_.data,k=t.db||"default",T=R.name,P=`${k}-${T}`;return g.jsx(a2,{className:mn["collection-name"],to:`/collections/${P}`,children:R.name})},f=b.useMemo(()=>[{field:"name",headerName:"Name",searchable:!0,renderCell:d},{field:"id",headerName:"Collection ID",searchable:!0},{field:"created",headerName:"Created Time"},{field:"memoryPercentage",headerName:"Loaded Percentages",renderCell:u}],[]),p=qt({cols:f,list:r.data,onSearch:()=>{s(_=>({..._,page:0}))}}),h=_=>{i(R=>({...R,page:_}))},y=_=>{s(R=>({...R,page:_}))},w=_=>g.jsx(mK,{className:mn.detail,uniqKey:`database-detail-${_.name}`,fetcher:()=>WG(_.name),errorMessage:"Failed to load database details."}),v=(_,R)=>{n(k=>({...k,db:R==null?void 0:R.value}))};return g.jsxs("div",{className:He("page-wrapper",mn.collections),children:[g.jsx(St,{title:"Database",children:g.jsxs(g.Fragment,{children:[c.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(mn["sys-deps"],"table-view")},columns:l,loading:e.isLoading,getRowId:_=>_.id,rows:c.list,renderDetail:w,page:o.page,pageSize:o.pageSize,paginationMode:"client",onPageChange:h,rowCount:((S=c.list)==null?void 0:S.length)||0})]})}),g.jsx(St,{title:"Collection",children:g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:mn["collection-filter-wrapper"],children:[g.jsx(Z_,{classes:{root:mn["collection-filter"]},onPointerEnterCapture:()=>{},onPointerLeaveCapture:()=>{},placeholder:"Search database",inputParams:{placeholder:"Search database..."},clearIcon:g.jsx(VA,{className:mn.clear,color:"secondary"}),options:((m=e.data)==null?void 0:m.map(_=>({label:_.name,value:_.name})))||[],onChange:v}),p.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"})]}),g.jsx(pt,{classes:{tableContainer:He(mn["sys-deps"],"table-view")},columns:f,loading:r.isLoading,getRowId:_=>_.id,rows:p.list||[],page:a.page,pageSize:a.pageSize,paginationMode:"client",showPagination:!0,onPageChange:y,rowCount:(C=p.list)==null?void 0:C.length})]})})]})},Ri={},sh={},yK=()=>{const e=Oq(),[t,n]=b.useState({page:0,pageSize:10}),[r,o]=b.useState({page:0,pageSize:10}),i=f=>{const p=f.getValue();return(p==null?void 0:p.join(", "))||"-"},a=b.useMemo(()=>[{field:"segment_id",headerName:"Segment ID"},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"partition_id",headerName:"Partition ID"},{field:"channel",headerName:"Channel",searchable:!0},{field:"num_of_rows",headerName:"Rows"},{field:"state",headerName:"State"},{field:"targetScope",headerName:"TargetScope"}],[]),s=qt({cols:a,list:e.targetSeg,onSearch:()=>{n(f=>({...f,page:0}))}}),l=b.useMemo(()=>[{field:"channel_name",headerName:"Channel Name",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"node_id",headerName:"Node ID",searchable:!0},{field:"version",headerName:"Version"},{field:"unflushed_segment_ids",headerName:"Unflushed Segments",renderCell:i},{field:"flushed_segment_ids",headerName:"Flushed Segments",renderCell:i},{field:"dropped_segment_ids",headerName:"Dropoed Segments",renderCell:i},{field:"targetScope",headerName:"TargetScope"}],[]),c=qt({cols:l,list:e.targetChannel,onSearch:()=>{o(f=>({...f,page:0}))}}),u=f=>{n(p=>({...p,page:f}))},d=f=>{o(p=>({...p,page:f}))};return g.jsxs("div",{className:He("page-wrapper",sh.query),children:[g.jsx(St,{title:"Target Segments",children:g.jsxs(g.Fragment,{children:[s.renderSearcher({defaultFilter:"collection_id",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(sh.segs,"table-view")},columns:a,loading:e.isLoading,getRowId:f=>f.segment_id,rows:s.list,page:t.page,pageSize:t.pageSize,paginationMode:"client",showPagination:!0,onPageChange:u,rowCount:s.list.length})]})}),g.jsx(St,{title:"Target Channels",children:g.jsxs(g.Fragment,{children:[c.renderSearcher({defaultFilter:"collection_id",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(sh.channels,"table-view")},columns:l,loading:e.isLoading,getRowId:f=>f.name,rows:c.list,page:r.page,pageSize:r.pageSize,paginationMode:"client",showPagination:!0,onPageChange:d,rowCount:c.list.length})]})})]})},bK=()=>{const e=Tq(),t=Mq(),n=Iq(),[r,o]=b.useState({page:0,pageSize:10}),[i,a]=b.useState({page:0,pageSize:10}),s=_=>{const R=_.getValue();return g.jsx("div",{className:He(Ri["state-detail"],(R==null?void 0:R.isError)&&Ri.error),children:R==null?void 0:R.message})},l=b.useMemo(()=>[{field:"id",headerName:"Segment ID",searchable:!0},{field:"collectionId",headerName:"Collection ID",searchable:!0},{field:"leaderId",headerName:"Leader ID",searchable:!0},{field:"nodeId",headerName:"Node ID",searchable:!0},{field:"rowsCount",headerName:"Rows",renderCell:R=>R.getValue()||"-"},{field:"state",headerName:"State",renderCell:R=>g.jsx(zo,{value:R.getValue()})},{field:"stateDetail",headerName:"State Detail",renderCell:s}],[]),c=qt({cols:l,list:e.segsData,onSearch:()=>{o(_=>({..._,page:0}))}}),u=_=>{const{data:R}=_;return R.name||R.channel_name},d=b.useMemo(()=>[{field:"name",headerName:"Channel Name",renderCell:u,searchable:!0},{field:"collectionId",headerName:"Collection ID",searchable:!0},{field:"leaderId",headerName:"Leader ID",searchable:!0},{field:"nodeId",headerName:"Node ID",searchable:!0,renderCell:R=>R.getValue()||"-"},{field:"watchState",headerName:"Watch State",renderCell:R=>g.jsx(zo,{value:R.getValue()})},{field:"stateDetail",headerName:"State Detail",renderCell:s}],[]),f=qt({cols:d,list:e.channelsData,onSearch:()=>{a(_=>({..._,page:0}))}}),p=_=>{const R=_.getValue();return(R==null?void 0:R.join(", "))||"-"},h=b.useMemo(()=>[{field:"ID",headerName:"ID",searchable:!0},{field:"collectionID",headerName:"Collection ID",renderCell:R=>R.getValue()||"-",searchable:!0},{field:"db_name",headerName:"DB Name",searchable:!0,renderCell:R=>R.getValue()||"-"},{field:"rw_nodes",headerName:"RW Nodes",renderCell:p},{field:"ro_nodes",headerName:"RO Nodes",renderCell:p},{field:"resource_group",headerName:"Resource Group",renderCell:R=>R.getValue()||"-",searchable:!0}],[]),y=qt({cols:h,list:t.data}),w=_=>{const R=_.getValue();return g.jsx(cv,{json:R})},v=b.useMemo(()=>[{field:"name",headerName:"Name",searchable:!0},{field:"nodes",headerName:"Nodes",renderCell:p},{field:"cfg",headerName:"Cfg",renderCell:w}],[]),S=qt({cols:v,list:n.data}),m=_=>{o(R=>({...R,page:_}))},C=_=>{a(R=>({...R,page:_}))};return g.jsxs("div",{className:He("page-wrapper",Ri.query),children:[g.jsx(St,{title:"Segments",children:g.jsxs(g.Fragment,{children:[c.renderSearcher({className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ri.segs,"table-view")},columns:l,loading:e.isLoading,getRowId:_=>_.segment_id,rows:c.list,page:r.page,pageSize:r.pageSize,paginationMode:"client",showPagination:!0,onPageChange:m,rowCount:c.list.length||0})]})}),g.jsx(St,{title:"Channels",children:g.jsxs(g.Fragment,{children:[f.renderSearcher({className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ri.channels,"table-view")},columns:d,loading:e.isLoading,getRowId:_=>_.name,rows:f.list,page:i.page,pageSize:i.pageSize,paginationMode:"client",showPagination:!0,onPageChange:C,rowCount:f.list.length})]})}),g.jsx(St,{title:"Replicas",children:g.jsxs(g.Fragment,{children:[y.renderSearcher({className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ri.replicas,"table-view")},columns:h,loading:t.isLoading,getRowId:_=>_.ID,rows:y.list||[],showPagination:!1})]})}),g.jsx(St,{title:"Resource Groups",children:g.jsxs(g.Fragment,{children:[S.renderSearcher({className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ri.resourceGroups,"table-view")},columns:v,loading:n.isLoading,getRowId:_=>_.name,rows:S.list||[],showPagination:!1})]})})]})},cl={"noty-list":"_noty-list_uuq1r_1","noty-item-content":"_noty-item-content_uuq1r_7"},xK=()=>{const e=Nq(),[t,n]=b.useState({page:0,pageSize:10}),[r,o]=b.useState({page:0,pageSize:10}),i=w=>{const{data:v}=w;return v.name||v.channel_name},a=w=>{const v=w.getValue();return new Date(v).getFullYear()===1970?"N/A":v||"N/A"},s=b.useMemo(()=>[{field:"channel_name",headerName:"Channel Name",searchable:!0,renderCell:i},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"watch_state",headerName:"Watch State",renderCell:a},{field:"node_id",headerName:"Node ID"},{field:"check_point_ts",headerName:"Checkpoint Ts",renderCell:a}],[]),l=b.useMemo(()=>[{field:"segment_id",headerName:"Segment ID",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"partition_id",headerName:"Partition ID"},{field:"channel",headerName:"Channel",searchable:!0},{field:"num_of_rows",headerName:"Num of Rows"},{field:"state",headerName:"State"},{field:"level",headerName:"Level",searchable:!0}],[]),c=qt({cols:l,list:e.seg.data,onSearch:()=>{o(w=>({...w,page:0}))}}),u=qt({cols:s,list:e.channel.data,onSearch:()=>{n(w=>({...w,page:0}))}}),d=w=>{o(v=>({...v,page:w}))},f=w=>{n(v=>({...v,page:w}))},p=w=>{const v=w==null?void 0:w.map(S=>g.jsx(N1,{severity:"warning",children:g.jsxs("div",{className:cl["noty-item-content"],children:[g.jsxs("strong",{children:[S.prefix,":"]}),g.jsx("span",{children:S.name}),g.jsx("strong",{children:S.msg})]})},S.name));return g.jsx("div",{className:cl["noty-list"],children:v})},h=e.channel.notifications.map(w=>({name:w.name||w.channel_name,prefix:"Channel",msg:w.notification})),y=e.seg.notifications.map(w=>({name:w.segment_id,prefix:"Segment",msg:w.notification}));return g.jsxs("div",{className:He("page-wrapper",cl.data),children:[g.jsx(St,{title:"Segments",children:g.jsxs(g.Fragment,{children:[c.renderSearcher({className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(cl[" = useTableFilter("],"table-view")},columns:l,loading:e.isLoading,getRowId:w=>w.name,rows:c.list,page:r.page,pageSize:r.pageSize,paginationMode:"client",showPagination:!0,onPageChange:d,rowCount:c.list.length}),p(y)]})}),g.jsx(St,{title:"Channels",children:g.jsxs(g.Fragment,{children:[u.renderSearcher({className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(cl.channels,"table-view")},columns:s,loading:e.isLoading,getRowId:w=>w.segment_id,rows:u.list,page:t.page,pageSize:t.pageSize,paginationMode:"client",showPagination:!0,onPageChange:f,rowCount:u.list.length}),p(h)]})})]})},Ti={"text-content":"_text-content_1tkuh_1"},SK=()=>{const e=Fq(),t=Bq(),n=zq(),r=Hq(),o=Vq(),i=C=>g.jsx("div",{className:Ti["text-content"],children:C||"-"}),a=C=>{const _=C.getValue();return(_==null?void 0:_.join(", "))||"-"},s=b.useMemo(()=>[{field:"task_name",headerName:"Task Name",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"task_type",headerName:"Task Type",searchable:!0},{field:"task_status",headerName:"Task Status",searchable:!0},{field:"actions",headerName:"Actions",renderCell:_=>i(a(_))}],[]),l=qt({cols:s,list:e.data}),c=(C,_)=>R=>{const{[C]:k,[_]:T}=R.data;return wK(Yd(k),Yd(T))},u=b.useMemo(()=>[{field:"plan_id",headerName:"Plan ID"},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"type",headerName:"Type",searchable:!0},{field:"state",headerName:"State",searchable:!0},{field:"start_time",headerName:"Start Time"},{field:"execution_time",headerName:"Execution Time",renderCell:c("start_time","end_Time")},{field:"total_rows",headerName:"Total Rows"},{field:"input_segments",headerName:"Input Segments",renderCell:a},{field:"result_segments",headerName:"Result Segments",renderCell:a}],[]),d=qt({cols:u,list:t.data}),f=b.useMemo(()=>[{field:"index_id",headerName:"Index ID",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"segment_id",headerName:"Segment ID",searchable:!0},{field:"build_id",headerName:"Build ID",searchable:!0},{field:"index_state",headerName:"Index State"},{field:"index_size",headerName:"Index Size",renderCell:_=>_.getValue()||"-"},{field:"__",headerName:"Execution Time",renderCell:c("create_time","finished_time")},{field:"create_time",headerName:"Create Time"}],[]),p=qt({cols:f,list:n.data}),h=C=>{const{state:_,reason:R}=C.data;return _==="Failed"?R:_},y=b.useMemo(()=>[{field:"job_id",headerName:"Job ID",searchable:!0},{field:"task_id",headerName:"Task ID",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"node_id",headerName:"Node ID",searchable:!0},{field:"state",headerName:"State",searchable:!0,renderCell:h,searchBy:(_,R)=>R.filter(k=>h({data:k}).toLowerCase().includes(_.toLowerCase().trim()))},{field:"task_type",headerName:"Task Type"},{field:"created_time",headerName:"Created Time"},{field:"execution_time",headerName:"Execution Time",renderCell:c("created_time","complete_time")}],[]),w=qt({cols:y,list:r.data}),v=C=>{const _=C.getValue();return _?`datanode-${_}`:"-"},S=b.useMemo(()=>[{field:"segment_id",headerName:"Segment ID",searchable:!0},{field:"batch_rows",headerName:"Batch Rows"},{field:"segment_level",headerName:"Segment Level",searchable:!0},{field:"ts_from",headerName:"Timestamp From"},{field:"ts_to",headerName:"Timestamp To"},{field:"delta_row_count",headerName:"Delta Row Count"},{field:"flush_size",headerName:"Flush Size"},{field:"running_time",headerName:"Running Time"},{field:"node_id",headerName:"Node ID",searchable:!0,renderCell:v}],[]),m=qt({cols:S,list:o.data});return g.jsxs("div",{className:He("page-wrapper",Ti.tasks),children:[g.jsx(St,{title:"QueryCoord Tasks",children:g.jsxs(g.Fragment,{children:[l.renderSearcher({defaultFilter:"task_name",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ti["tasks-table"],"table-view")},columns:s,loading:e.isLoading,getRowId:C=>C.task_name,rows:l.list||[]})]})}),g.jsx(St,{title:"Compaction Tasks",children:g.jsxs(g.Fragment,{children:[d.renderSearcher({defaultFilter:"collection_id",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ti.compaction,"table-view")},columns:u,loading:t.isLoading,getRowId:C=>C.plan_id,rows:d.list||[]})]})}),g.jsx(St,{title:"Index Build Tasks",children:g.jsxs(g.Fragment,{children:[p.renderSearcher({defaultFilter:"index_id",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ti["index-build"],"table-view")},columns:f,loading:n.isLoading,getRowId:C=>C.index_id,rows:p.list||[]})]})}),g.jsx(St,{title:"Import Tasks",children:g.jsxs(g.Fragment,{children:[w.renderSearcher({defaultFilter:"job_id",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ti.import,"table-view")},columns:y,loading:r.isLoading,getRowId:C=>C.job_id,rows:w.list||[]})]})}),g.jsx(St,{title:"Sync Tasks",children:g.jsxs(g.Fragment,{children:[m.renderSearcher({defaultFilter:"segment_id",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ti.sync,"table-view")},columns:S,loading:o.isLoading,getRowId:C=>C.segment_id,rows:m.list||[]})]})})]})};function wK(e,t){const n=t.diff(e),r=Math.floor(n/1e3),o=Math.floor(r/60),i=Math.floor(o/60),a=Math.floor(i/24),s=Math.floor(a/30),l=Math.floor(s/12);return l>0?`${l}year${l>1?"s":""}`:s>0?`${s} month${s>1?"s":""}`:a>0?`${a} day${a>1?"s":""}`:i>0?`${i} h`:o>0?`${o} m`:r>0?`${r} s`:"< 1s"}const CK="_notice_q5p05_5",lh={"slow-requests":"_slow-requests_q5p05_1","sr-table":"_sr-table_q5p05_1",notice:CK},_K=()=>{const e=Wq(),t=r=>g.jsx(cv,{ellipsis:!0,json:r.getValue()}),n=b.useMemo(()=>[{field:"time",headerName:"Time"},{field:"trace_id",headerName:"Trace ID"},{field:"type",headerName:"Request"},{field:"user",headerName:"User",renderCell:o=>o.getValue()||"unknown"},{field:"database",headerName:"Database"},{field:"collection",headerName:"Collection"},{field:"query_params",headerName:"Parameters",renderCell:t},{field:"duration",headerName:"Duration"}],[]);return g.jsx("div",{className:He("page-wrapper",lh["slow-requests"]),children:g.jsx(St,{title:"Slow Requests",children:g.jsxs(g.Fragment,{children:[g.jsx("div",{className:lh.notice,children:g.jsxs(N1,{severity:"warning",children:[g.jsx("strong",{children:"Notice: "})," Slow request in the last 5 minutes."]})}),g.jsx(pt,{classes:{tableContainer:He(lh["sr-table"],"table-view")},columns:n,loading:e.isLoading,getRowId:r=>r.task_name,rows:e.data||[]})]})})})},ch={},RK=()=>{const e=Uq(),[t,n]=b.useState({page:0,pageSize:10}),[r,o]=b.useState({}),i=u=>{n(d=>({...d,page:u}))},a=u=>g.jsx("div",{className:ch["text-content"],children:u||"-"}),s=b.useMemo(()=>[{field:"key",headerName:"Attribute"},{field:"value",headerName:"Value",renderCell:d=>a(d.getValue())}],[]),l=u=>{o(d=>({...d,q:u.target.value}))},c=b.useMemo(()=>{const u=r.q||"";return(e.data||[]).filter(d=>{const f=d.key.toLowerCase().includes(u.toLowerCase()),p=d.value.toLowerCase().includes(u.toLowerCase());return f||p})},[e.data,r]);return g.jsx("div",{className:He("page-wrapper",ch["slow-requests"]),children:g.jsx(St,{title:"Milvus Configurations",children:g.jsxs(g.Fragment,{children:[g.jsx(D1,{classes:{root:"table-view-searcher"},type:"number",value:r.q,onChange:l,placeholder:"Search attribute or value...",onPointerEnterCapture:()=>{},onPointerLeaveCapture:()=>{}}),g.jsx(pt,{classes:{tableContainer:He(ch["sr-table"],"table-view")},columns:s,loading:e.isLoading,getRowId:u=>u.task_name,rows:c,page:t.page,pageSize:t.pageSize,paginationMode:"client",showPagination:!0,onPageChange:i,rowCount:c.length})]})})})},TK="_trigger_1f0gw_1",PK="_opened_1f0gw_6",Pu={trigger:TK,opened:PK,"tools-menu":"_tools-menu_1f0gw_13","menu-item-content":"_menu-item-content_1f0gw_24"},kK=e=>{const[t,n]=b.useState(null),r=!!t,o=b.useMemo(()=>[{name:"Pprof",link:"/debug/pprof"},{name:"Memory Data Visualization",link:"/static"}],[]),i=f=>()=>{window.open(f.link,"_blank")},a=()=>o.map(f=>g.jsx($c,{onClick:i(f),children:g.jsxs("div",{className:Pu["menu-item-content"],children:[f.name,g.jsx(_m,{})]})})),s=()=>{n(null)},l=g.jsx(E1,{open:r,anchorEl:t,onClose:s,container:document.body,autoFocus:!1,classes:{paper:Pu["tools-menu"]},children:a()}),c=f=>{n(p=>p?null:f.currentTarget)},u=He(Pu.trigger,r&&Pu.opened,e.className),d=g.jsxs("span",{className:u,onClick:c,children:["Tools",g.jsx(ia,{})]});return g.jsxs(g.Fragment,{children:[d,l]})},$K="_header_wg0jk_7",EK="_nav_wg0jk_18",MK="_active_wg0jk_26",IK="_others_wg0jk_32",OK="_content_wg0jk_45",Tr={header:$K,nav:EK,"nav-item":"_nav-item_wg0jk_22",active:MK,others:IK,"zilliz-link":"_zilliz-link_wg0jk_35","zilliz-link-text":"_zilliz-link-text_wg0jk_41",content:OK,"with-ad":"_with-ad_wg0jk_49"},Pr={"base-info":"_base-info_ubkl2_12","info-row":"_info-row_ubkl2_15","info-row-label":"_info-row-label_ubkl2_22","info-row-value":"_info-row-value_ubkl2_26","base-info-form":"_base-info-form_ubkl2_29","base-info-form-label":"_base-info-form-label_ubkl2_32"},LK=()=>{const{identifier:e}=Vk(),{collection:t,indexes:n,segments:r,collectionState:o}=yq(e),i=[{label:"Collection Id",key:"collection_id"},{label:"Collection Name",key:"collection_name"},{label:"Database Name",key:"db_name"},{label:"Created Time",key:"created_time"},{label:"Fields",key:"fields",mapValueTo:y=>y==null?void 0:y.fields.length},{label:"Shards Num",key:"shards_num"},{label:"Consistency level",key:"consistency_level"},{label:"Virtual Channels",key:"virtual_channel_names",mapValueTo:y=>(y==null?void 0:y.virtual_channel_names.join(", "))||"-"},{label:"Physical Channels",key:"physical_channel_names",mapValueTo:y=>(y==null?void 0:y.physical_channel_names.join(", "))||"-"},{label:"Status",key:"__",mapValueTo:()=>g.jsx(zo,{value:o.name,detail:o.desc})}],a=y=>{const w=y.data;return g.jsx(cv,{ellipsis:!0,json:w.user_index_params})},s=y=>{const w=y.toString(),v=y?"deleted":"none";return g.jsx(zo,{value:v,label:w})},l=b.useMemo(()=>[{field:"index_id",headerName:"Index ID"},{field:"name",headerName:"Index Name"},{field:"field_id",headerName:"Field ID"},{field:"create_time",headerName:"Created Time"},{field:"is_deleted",headerName:"IsDeleted",renderCell:w=>s(w.getValue())},{field:"user_index_params",headerName:"User Index Params",renderCell:a}],[]),c=b.useMemo(()=>[{field:"id",headerName:"Segment ID"},{field:"nodeId",headerName:"Node ID"},{field:"rowsCount",headerName:"Rows"},{field:"state",headerName:"State"},{field:"level",headerName:"Level"},{field:"buildIndexState",headerName:"Build Index State",renderCell:w=>g.jsx(zo,{value:w.getValue()})},{field:"loadIndexState",headerName:"Load Index State",renderCell:w=>g.jsx(zo,{value:w.getValue()})}],[]),u=b.useMemo(()=>[{field:"name",headerName:"Name"},{field:"value",headerName:"Value"}],[]),d=b.useMemo(()=>[{field:"name",headerName:"Name"},{field:"field_id",headerName:"Field ID"},{field:"data_type",headerName:"Data Type"},{field:"element_type",headerName:"Element Type"},{field:"default_value",headerName:"Default Value"},{field:"is_primary_key",headerName:"Is Primary Key",renderCell:w=>g.jsx(zo,{value:(!!w.getValue()).toString()})},{field:"auto_id",headerName:"Auto ID",renderCell:w=>g.jsx(zo,{value:(!!w.getValue()).toString()})}],[]),f=b.useMemo(()=>[{field:"partition_name",headerName:"Name"},{field:"partition_id",headerName:"ID"},{field:"created_utc_timestamp",headerName:"Created Time"}],[]),p=()=>{if(!(t!=null&&t.properties)||!Object.keys(t.properties).length)return null;const y=Object.keys(t.properties).map(w=>({name:w,value:t.properties[w]}));return g.jsxs("div",{className:Pr["base-info-form"],children:[g.jsx("div",{className:Pr["base-info-form-label"],children:"Collection Properties"}),g.jsx(pt,{columns:u,rows:y})]})},h=()=>{const y=i.map(w=>g.jsxs("div",{className:Pr["info-row"],children:[g.jsx("div",{className:Pr["info-row-label"],children:w.label}),g.jsx("div",{className:Pr["info-row-value"],children:w.mapValueTo?w.mapValueTo(t):t==null?void 0:t[w.key]})]},w.key));return g.jsxs("div",{className:Pr["base-info"],children:[y,p(),g.jsxs("div",{className:Pr["base-info-form"],children:[g.jsx("div",{className:Pr["base-info-form-label"],children:"Collection Fields"}),g.jsx(pt,{columns:d,rows:(t==null?void 0:t.fields)||[]})]}),g.jsxs("div",{className:Pr["base-info-form"],children:[g.jsx("div",{className:Pr["base-info-form-label"],children:"Collection Partitions"}),g.jsx(pt,{columns:f,rows:(t==null?void 0:t.partition_infos)||[]})]})]})};return g.jsxs("div",{className:He("page-wrapper",Pr.wrapper),children:[g.jsx(St,{title:"Base Info",children:h()}),g.jsx(St,{title:"Indexes",children:g.jsx(pt,{columns:l,rows:n||[]})}),g.jsx(St,{title:"Segments",children:g.jsx(pt,{columns:c,rows:r||[]})})]})},AK="_wrapper_gbea3_12",NK="_title_gbea3_28",DK="_desc_gbea3_31",ku={wrapper:AK,title:NK,desc:DK,"link-btn":"_link-btn_gbea3_36"},jK=e=>{if(e.hidden)return!0;const t=()=>{window.open(DG,"_blank")};return g.jsxs("div",{className:ku.wrapper,children:[g.jsx(mt,{variant:"h4Medium",className:ku.title,children:"Try Managed Milvus for Free"}),g.jsx(mt,{variant:"body3Regular",className:ku.desc,children:"Zilliz Cloud is hassle-free, powered by Milvus and 10x faster."}),g.jsxs("div",{className:ku["link-btn"],onClick:t,children:["Get Started",g.jsx(FK,{})]})]})},FK=e=>g.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 14 14",...e,children:g.jsx("path",{d:"M3.5 11L11.0833 3.41669M11.0833 3.41669V10.6967M11.0833 3.41669H3.80333",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"})}),$u="withoutAd",BK=()=>{const e=X0(),[t]=x4(),n=b.useMemo(()=>{var d;const c=localStorage.getItem($u);if(t.has($u)){const f=((d=t.get($u))==null?void 0:d.toLowerCase())!=="false";return localStorage.setItem($u,f.toString()),f}return c?c==="true":!1},[t]),r=()=>{e("/")},o=b.useMemo(()=>[{name:"Home",id:"index",path:"/",Comp:lK},{name:"Collections",id:"collections",path:"/collections",Comp:vK},{name:"Collections Detail",id:"collections-detail",path:"/collections/:identifier",Comp:LK,withoutNav:!0},{name:"Query",id:"query",path:"/query_component",Comp:bK},{name:"Query Target",withoutNav:!0,id:"query_target",path:"/query_target",Comp:yK},{name:"Data",id:"data",path:"/data_component",Comp:xK},{name:"Tasks",id:"tasks",path:"/tasks",Comp:SK},{name:"Slow Requests",id:"slowRequests",path:"/slow_requests",Comp:_K},{name:"Configurations",id:"configs",path:"/configs",Comp:RK}],[]),i=()=>g.jsx("div",{className:Tr.logo,onClick:r,children:g.jsx("img",{src:dq})}),a=()=>{const c=o.filter(u=>!u.withoutNav).map(u=>g.jsx(v4,{className:({isActive:d})=>He(Tr["nav-item"],d&&Tr.active),to:u.path,children:u.name},u.id));return c.push(g.jsx(kK,{className:Tr["nav-item"]})),g.jsx("div",{className:Tr.nav,children:c})},s=()=>g.jsx("div",{className:Tr.others}),l=()=>o.map(c=>g.jsx(o2,{path:c.path,Component:c.Comp},c.id));return g.jsxs("div",{className:Tr.layout,children:[g.jsxs("header",{className:Tr.header,children:[i(),a(),s()]}),g.jsxs("div",{className:He(Tr.content,!n&&Tr["with-ad"]),children:[g.jsx("div",{className:Tr.detail,children:g.jsx(i4,{children:l()})}),g.jsx(jK,{hidden:!!n})]})]})},zK=()=>{const e=dB("enUS");N3(),GC(document.getElementById("root")).render(g.jsx(bM,{theme:e,children:g.jsx(g4,{basename:"webui",children:g.jsx(gH,{value:{revalidateIfStale:!1,revalidateOnFocus:!1,revalidateOnReconnect:!1},children:g.jsx(BK,{})})})}))};zK(); diff --git a/internal/http/webui/index.html b/internal/http/webui/index.html index e480d65d3487d..7f84d8411b66e 100644 --- a/internal/http/webui/index.html +++ b/internal/http/webui/index.html @@ -1,27 +1,19 @@ - - - - - - - Milvus Management - - - - -
- - + + + + + + + + Milvus Management + + + + + +
+ + + \ No newline at end of file From 5304707393a611d78bc283cdb3c532891cec5c98 Mon Sep 17 00:00:00 2001 From: binbin <83755740+binbinlv@users.noreply.github.com> Date: Tue, 24 Dec 2024 18:06:48 +0800 Subject: [PATCH 03/69] test: Add test cases for rbac v2 (#38556) Signed-off-by: binbin lv --- .../python_client/base/collection_wrapper.py | 4 + tests/python_client/base/database_wrapper.py | 12 + .../base/high_level_api_wrapper.py | 37 +- tests/python_client/base/partition_wrapper.py | 8 + tests/python_client/base/utility_wrapper.py | 42 + tests/python_client/common/common_type.py | 23 + tests/python_client/conftest.py | 4 +- .../milvus_client/test_milvus_client_alter.py | 4 +- tests/python_client/testcases/test_utility.py | 1536 +++++++++++++++++ 9 files changed, 1662 insertions(+), 8 deletions(-) diff --git a/tests/python_client/base/collection_wrapper.py b/tests/python_client/base/collection_wrapper.py index 2fae11cbec0df..b8d1c7f1c0e18 100644 --- a/tests/python_client/base/collection_wrapper.py +++ b/tests/python_client/base/collection_wrapper.py @@ -58,6 +58,10 @@ def is_empty(self): self.flush() return self.collection.is_empty + @property + def is_empty_without_flush(self): + return self.collection.is_empty + @property def num_entities(self): self.flush() diff --git a/tests/python_client/base/database_wrapper.py b/tests/python_client/base/database_wrapper.py index 3bbaf897af46e..87b5d1295c274 100644 --- a/tests/python_client/base/database_wrapper.py +++ b/tests/python_client/base/database_wrapper.py @@ -33,3 +33,15 @@ def list_database(self, using="default", timeout=None, check_task=None, check_it response, is_succ = api_request([self.database.list_database, using, timeout]) check_result = ResponseChecker(response, func_name, check_task, check_items, is_succ).run() return response, check_result + + def set_properties(self, db_name: str, properties: dict, using="default", timeout=None, check_task=None, check_items=None): + func_name = sys._getframe().f_code.co_name + response, is_succ = api_request([self.database.set_properties, db_name, properties, using, timeout]) + check_result = ResponseChecker(response, func_name, check_task, check_items, is_succ).run() + return response, check_result + + def describe_database(self, db_name: str, using="default", timeout=None, check_task=None, check_items=None): + func_name = sys._getframe().f_code.co_name + response, is_succ = api_request([self.database.describe_database, db_name, using, timeout]) + check_result = ResponseChecker(response, func_name, check_task, check_items, is_succ).run() + return response, check_result diff --git a/tests/python_client/base/high_level_api_wrapper.py b/tests/python_client/base/high_level_api_wrapper.py index 4dc62e17f2792..115ce54655dab 100644 --- a/tests/python_client/base/high_level_api_wrapper.py +++ b/tests/python_client/base/high_level_api_wrapper.py @@ -665,6 +665,39 @@ def revoke_privilege(self, role_name, object_type, privilege, object_name, db_na object_name=object_name, db_name=db_name, **kwargs).run() return res, check_result + def create_privilege_group(self, privilege_group: str, check_task=None, check_items=None, **kwargs): + func_name = sys._getframe().f_code.co_name + res, check = api_request([self.milvus_client.create_privilege_group, privilege_group], **kwargs) + check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run() + return res, check_result + + def drop_privilege_group(self, privilege_group: str, check_task=None, check_items=None, **kwargs): + func_name = sys._getframe().f_code.co_name + res, check = api_request([self.milvus_client.drop_privilege_group, privilege_group], **kwargs) + check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run() + return res, check_result + + def list_privilege_groups(self, check_task=None, check_items=None, **kwargs): + func_name = sys._getframe().f_code.co_name + res, check = api_request([self.milvus_client.list_privilege_groups], **kwargs) + check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run() + return res, check_result + + def add_privileges_to_group(self, privilege_group: str, privileges: list, check_task=None, check_items=None, + **kwargs): + func_name = sys._getframe().f_code.co_name + res, check = api_request([self.milvus_client.add_privileges_to_group, privilege_group, privileges], **kwargs) + check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run() + return res, check_result + + def remove_privileges_from_group(self, privilege_group: str, privileges: list, check_task=None, check_items=None, + **kwargs): + func_name = sys._getframe().f_code.co_name + res, check = api_request([self.milvus_client.remove_privileges_from_group, privilege_group, privileges], + **kwargs) + check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run() + return res, check_result + @trace() def alter_index_properties(self, client, collection_name, index_name, properties, timeout=None, check_task=None, check_items=None, **kwargs): @@ -785,7 +818,3 @@ def list_databases(self, client, timeout=None, check_task=None, check_items=None check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run() return res, check_result - - - - diff --git a/tests/python_client/base/partition_wrapper.py b/tests/python_client/base/partition_wrapper.py index 3d22978de105d..50aaa277268ca 100644 --- a/tests/python_client/base/partition_wrapper.py +++ b/tests/python_client/base/partition_wrapper.py @@ -38,11 +38,19 @@ def is_empty(self): self.flush() return self.partition.is_empty if self.partition else None + @property + def is_empty_without_flush(self): + return self.partition.is_empty if self.partition else None + @property def num_entities(self): self.flush() return self.partition.num_entities if self.partition else None + @property + def num_entities_without_flush(self): + return self.partition.num_entities if self.partition else None + def drop(self, check_task=None, check_items=None, **kwargs): timeout = kwargs.get("timeout", TIMEOUT) kwargs.update({"timeout": timeout}) diff --git a/tests/python_client/base/utility_wrapper.py b/tests/python_client/base/utility_wrapper.py index c48d736df63fa..7a8d7fd064328 100644 --- a/tests/python_client/base/utility_wrapper.py +++ b/tests/python_client/base/utility_wrapper.py @@ -471,6 +471,18 @@ def role_revoke(self, object: str, object_name: str, privilege: str, db_name: st check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run() return res, check_result + def role_grant_v2(self, privilege: str, collection_name: str, db_name: str = None, check_task=None, check_items=None, **kwargs): + func_name = sys._getframe().f_code.co_name + res, check = api_request([self.role.grant_v2, privilege, collection_name, db_name], **kwargs) + check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run() + return res, check_result + + def role_revoke_v2(self, privilege: str, collection_name: str, db_name: str = None, check_task=None, check_items=None, **kwargs): + func_name = sys._getframe().f_code.co_name + res, check = api_request([self.role.revoke_v2, privilege, collection_name, db_name], **kwargs) + check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run() + return res, check_result + def role_list_grant(self, object: str, object_name: str, db_name: str = "", check_task=None, check_items=None, **kwargs): func_name = sys._getframe().f_code.co_name res, check = api_request([self.role.list_grant, object, object_name, db_name], **kwargs) @@ -558,3 +570,33 @@ def list_indexes(self, collection_name, using="default", timeout=None, check_tas check_result = ResponseChecker(res, func_name, check_task, check_items, check, collection_name=collection_name, using=using, timeout=timeout, **kwargs).run() return res, check_result + + def create_privilege_group(self, privilege_group: str, check_task=None, check_items=None, **kwargs): + func_name = sys._getframe().f_code.co_name + res, check = api_request([self.role.create_privilege_group, privilege_group], **kwargs) + check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run() + return res, check_result + + def drop_privilege_group(self, privilege_group: str, check_task=None, check_items=None, **kwargs): + func_name = sys._getframe().f_code.co_name + res, check = api_request([self.role.drop_privilege_group, privilege_group], **kwargs) + check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run() + return res, check_result + + def list_privilege_groups(self, check_task=None, check_items=None, **kwargs): + func_name = sys._getframe().f_code.co_name + res, check = api_request([self.role.list_privilege_groups], **kwargs) + check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run() + return res, check_result + + def add_privileges_to_group(self, privilege_group: str, privileges: list, check_task=None, check_items=None, **kwargs): + func_name = sys._getframe().f_code.co_name + res, check = api_request([self.role.add_privileges_to_group, privilege_group, privileges], **kwargs) + check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run() + return res, check_result + + def remove_privileges_from_group(self, privilege_group: str, privileges: list, check_task=None, check_items=None, **kwargs): + func_name = sys._getframe().f_code.co_name + res, check = api_request([self.role.remove_privileges_from_group, privilege_group, privileges], **kwargs) + check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run() + return res, check_result \ No newline at end of file diff --git a/tests/python_client/common/common_type.py b/tests/python_client/common/common_type.py index bae1c122b57c1..77ed742179d36 100644 --- a/tests/python_client/common/common_type.py +++ b/tests/python_client/common/common_type.py @@ -258,6 +258,29 @@ default_diskann_search_params = {"params": {"search_list": 30}} default_sparse_search_params = {"metric_type": "IP", "params": {"drop_ratio_search": "0.2"}} default_text_sparse_search_params = {"metric_type": "BM25", "params": {}} +built_in_privilege_groups = ["CollectionReadWrite", "CollectionReadOnly", "CollectionAdmin", + "DatabaseReadWrite", "DatabaseReadOnly", "DatabaseAdmin", + "ClusterReadWrite", "ClusterReadOnly", "ClusterAdmin"] +privilege_group_privilege_dict = {"Query": False, "Search": False, "GetLoadState": False, + "GetLoadingProgress": False, "HasPartition": False, "ShowPartitions": False, + "ShowCollections": False, "ListAliases": False, "ListDatabases": False, + "DescribeDatabase": False, "DescribeAlias": False, "GetStatistics": False, + "CreateIndex": False, "DropIndex": False, "CreatePartition": False, + "DropPartition": False, "Load": False, "Release": False, + "Insert": False, "Delete": False, "Upsert": False, + "Import": False, "Flush": False, "Compaction": False, + "LoadBalance": False, "RenameCollection": False, "CreateAlias": False, + "DropAlias": False, "CreateCollection": False, "DropCollection": False, + "CreateOwnership": False, "DropOwnership": False, "SelectOwnership": False, + "ManageOwnership": False, "UpdateUser": False, "SelectUser": False, + "CreateResourceGroup": False, "DropResourceGroup": False, + "UpdateResourceGroups": False, + "DescribeResourceGroup": False, "ListResourceGroups": False, "TransferNode": False, + "TransferReplica": False, "CreateDatabase": False, "DropDatabase": False, + "AlterDatabase": False, "FlushAll": False, "ListPrivilegeGroups": False, + "CreatePrivilegeGroup": False, "DropPrivilegeGroup": False, + "OperatePrivilegeGroup": False} + class CheckTasks: """ The name of the method used to check the result """ diff --git a/tests/python_client/conftest.py b/tests/python_client/conftest.py index 04a03dc71072f..526b1caf96b24 100644 --- a/tests/python_client/conftest.py +++ b/tests/python_client/conftest.py @@ -22,8 +22,8 @@ def pytest_addoption(parser): parser.addoption("--host", action="store", default="localhost", help="service's ip") parser.addoption("--service", action="store", default="", help="service address") parser.addoption("--port", action="store", default=19530, help="service's port") - parser.addoption("--user", action="store", default="", help="user name for connection") - parser.addoption("--password", action="store", default="", help="password for connection") + parser.addoption("--user", action="store", default="root", help="user name for connection") + parser.addoption("--password", action="store", default="Milvus", help="password for connection") parser.addoption("--db_name", action="store", default="default", help="database name for connection") parser.addoption("--secure", type=bool, action="store", default=False, help="secure for connection") parser.addoption("--milvus_ns", action="store", default="chaos-testing", help="milvus_ns") diff --git a/tests/python_client/milvus_client/test_milvus_client_alter.py b/tests/python_client/milvus_client/test_milvus_client_alter.py index 63f0d7f5a70e1..9a15700bfdc6f 100644 --- a/tests/python_client/milvus_client/test_milvus_client_alter.py +++ b/tests/python_client/milvus_client/test_milvus_client_alter.py @@ -70,8 +70,8 @@ def test_milvus_client_alter_index_default(self): client_w.load_collection(client, collection_name) res1 = client_w.describe_index(client, collection_name, index_name=idx_names[0])[0] assert res1.get('mmap.enabled', None) is None - error = {ct.err_code: 999, - ct.err_msg: "can't alter index on loaded collection, please release the collection first"} + error = {ct.err_code: 104, + ct.err_msg: f"can't alter index on loaded collection, please release the collection first: collection already loaded[collection={collection_name}]"} # 1. alter index after load client_w.alter_index_properties(client, collection_name, idx_names[0], properties={"mmap.enabled": True}, check_task=CheckTasks.err_res, check_items=error) diff --git a/tests/python_client/testcases/test_utility.py b/tests/python_client/testcases/test_utility.py index 883a2ab4270c0..4608208499d78 100644 --- a/tests/python_client/testcases/test_utility.py +++ b/tests/python_client/testcases/test_utility.py @@ -15,6 +15,8 @@ from common.milvus_sys import MilvusSys from pymilvus.grpc_gen.common_pb2 import SegmentState import random +from pymilvus.client.types import ResourceGroupConfig +import copy prefix = "utility" default_schema = cf.gen_default_collection_schema() @@ -5039,3 +5041,1537 @@ def do_flush_all(): res, _ = cw.query(f'{ct.default_int64_field_name} not in {delete_ids}') assert len(res) == ct.default_nb * 2 - delete_num + + +class TestUtilityNegativeRbacPrivilegeGroup(TestcaseBase): + + def teardown_method(self, method): + """ + teardown method: drop role and user + """ + log.info("[utility_teardown_method] Start teardown utility test cases ...") + + self.connection_wrap.connect(host=cf.param_info.param_host, port=cf.param_info.param_port, user=ct.default_user, + password=ct.default_password, secure=cf.param_info.param_secure) + + # drop users + users, _ = self.utility_wrap.list_users(False) + for u in users.groups: + if u.username != ct.default_user: + self.utility_wrap.delete_user(u.username) + user_groups, _ = self.utility_wrap.list_users(False) + assert len(user_groups.groups) == 1 + + role_groups, _ = self.utility_wrap.list_roles(False) + + # drop roles + for role_group in role_groups.groups: + if role_group.role_name not in ['admin', 'public']: + self.utility_wrap.init_role(role_group.role_name) + g_list, _ = self.utility_wrap.role_list_grants() + for g in g_list.groups: + self.utility_wrap.role_revoke(g.object, g.object_name, g.privilege) + privilege_groups = self.utility_wrap.list_privilege_groups()[0] + for privilege_group in privilege_groups.groups: + if privilege_group.privilege_group not in ct.built_in_privilege_groups: + self.utility_wrap.drop_privilege_group(privilege_group.privilege_group) + self.utility_wrap.role_drop() + role_groups, _ = self.utility_wrap.list_roles(False) + assert len(role_groups.groups) == 2 + + # drop database + databases, _ = self.database_wrap.list_database() + for db_name in databases: + self.database_wrap.using_database(db_name) + for c_name in self.utility_wrap.list_collections()[0]: + self.utility_wrap.drop_collection(c_name) + + if db_name != ct.default_db: + self.database_wrap.drop_database(db_name) + + super().teardown_method(method) + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", [1, 1.0]) + def test_create_privilege_group_with_privilege_group_name_invalid_type(self, name, host, port): + """ + target: create privilege group with invalid name + method: create privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + self.utility_wrap.init_role("role_1") + error = {"err_code": 1, + "err_msg": f"`privilege_group` value {name} is illegal"} + self.utility_wrap.create_privilege_group(privilege_group=name, check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", ["n%$#@!", "test-role", "ff ff"]) + def test_create_privilege_group_with_privilege_group_name_invalid_value_1(self, name, host, port): + """ + target: create privilege group with invalid name + method: create privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + self.utility_wrap.init_role("role_1") + error = {"err_code": 1100, "err_msg": f"privilege group name {name} can only contain numbers, letters and underscores: invalid parameter"} + self.utility_wrap.create_privilege_group(privilege_group=name, check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.skip(reason="issue #37842") + @pytest.mark.parametrize("name", ["longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglong" + "longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglong" + "longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglong" + "longlonglonglong", "123n", " ", "''", "中文"]) + def test_create_privilege_group_with_privilege_group_name_invalid_value_2(self, name, host, port): + """ + target: create privilege group with invalid name + method: create privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + self.utility_wrap.init_role("role_1") + error = {"err_code": 1402, "err_msg": f"{name}: invalid privilege group name[privilegeGroup=the first character " + f"of a privilege group name %s must be an underscore or letter]"} + self.utility_wrap.create_privilege_group(privilege_group=name, check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_create_privilege_group_with_built_in_privilege_groups_name(self, host, port): + """ + target: create privilege group with built in privilege groups name + method: create privilege group with built in privilege groups name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + for name in ct.built_in_privilege_groups: + error = {"err_code": 1100, + "err_msg": f"privilege group name [{name}] is defined by built in privileges or privilege groups in system: invalid parameter"} + self.utility_wrap.create_privilege_group(privilege_group=name, check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", [1, 1.0]) + def test_drop_privilege_group_with_privilege_group_name_invalid_type(self, name, host, port): + """ + target: drop privilege group with invalid name + method: drop privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + self.utility_wrap.init_role("role_1") + error = {"err_code": 1, + "err_msg": f"`privilege_group` value {name} is illegal"} + self.utility_wrap.drop_privilege_group(privilege_group=name, check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.parametrize("name", ["n%$#@!", "test-role", "ff ff"]) + def test_drop_privilege_group_with_privilege_group_name_invalid_value_1(self, name, host, port): + """ + target: drop privilege group with invalid name + method: drop privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + self.utility_wrap.init_role("role_1") + error = {"err_code": 1100, "err_msg": f"privilege group name {name} can only contain numbers, letters and underscores: invalid parameter"} + self.utility_wrap.drop_privilege_group(privilege_group=name, check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.skip(reason="issue #37842") + @pytest.mark.parametrize("name", ["longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglong" + "longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglong" + "longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglong" + "longlonglonglong", "123n", " ", "''", "中文"]) + def test_drop_privilege_group_with_privilege_group_name_invalid_value_2(self, name, host, port): + """ + target: drop privilege group with invalid name + method: drop privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + self.utility_wrap.init_role("role_1") + error = {"err_code": 1402, "err_msg": f"{name}: invalid privilege group name[privilegeGroup=the first character " + f"of a privilege group name %s must be an underscore or letter]"} + self.utility_wrap.drop_privilege_group(privilege_group=name, check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_drop_not_exist_privilege_group(self, host, port): + """ + target: drop same privilege group twice + method: drop same privilege group twice + expected: drop successfully + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name = "privilege_group_not_exist" + self.utility_wrap.drop_privilege_group(privilege_group=name) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_drop_same_privilege_group_twice(self, host, port): + """ + target: drop same privilege group twice + method: drop same privilege group twice + expected: drop successfully + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name = "privilege_group_1" + self.utility_wrap.create_privilege_group(privilege_group=name) + privilege_groups = self.utility_wrap.list_privilege_groups()[0] + privilege_groups_extracted = [] + for privilege_group in privilege_groups.groups: + privilege_groups_extracted.append(privilege_group.privilege_group) + assert name in privilege_groups_extracted + self.utility_wrap.drop_privilege_group(privilege_group=name) + privilege_groups = self.utility_wrap.list_privilege_groups()[0] + privilege_groups_extracted = [] + for privilege_group in privilege_groups.groups: + privilege_groups_extracted.append(privilege_group.privilege_group) + assert name not in privilege_groups_extracted + self.utility_wrap.drop_privilege_group(privilege_group=name) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_drop_privilege_group_with_built_in_privilege_groups_name(self, host, port): + """ + target: drop privilege group with built in privilege groups name + method: drop privilege group with built in privilege groups name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + for name in ct.built_in_privilege_groups: + self.utility_wrap.drop_privilege_group(privilege_group=name) + privilege_groups = self.utility_wrap.list_privilege_groups()[0] + privilege_groups_extracted = [] + for privilege_group in privilege_groups.groups: + privilege_groups_extracted.append(privilege_group.privilege_group) + assert len(privilege_groups_extracted) == len(ct.built_in_privilege_groups) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_drop_privilege_group_granted(self, host, port): + """ + target: drop the privilege group granted to one role + method: drop the privilege group granted to one role + expected: 1. raise exception + 2. drop successfully after revoke + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + collection_w = self.init_collection_general(prefix)[0] + role_name = "role_1" + role = self.utility_wrap.init_role(role_name)[0] + role.create() + name = "privilege_group_1" + self.utility_wrap.create_privilege_group(privilege_group=name) + self.utility_wrap.role_grant_v2(name, collection_w.name) + error = {"err_code": 65535, + "err_msg": f"privilege group [{name}] is used by role [{role_name}], Use REVOKE API to revoke it first"} + self.utility_wrap.drop_privilege_group(privilege_group=name, check_task=CheckTasks.err_res, check_items=error) + self.utility_wrap.role_revoke_v2(name, collection_w.name) + self.utility_wrap.drop_privilege_group(privilege_group=name) + privilege_groups = self.utility_wrap.list_privilege_groups()[0] + privilege_groups_extracted = [] + for privilege_group in privilege_groups.groups: + privilege_groups_extracted.append(privilege_group.privilege_group) + assert name not in privilege_groups_extracted + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", [1, 1.0]) + def test_add_privileges_to_group_with_privilege_group_name_invalid_type(self, name, host, port): + """ + target: add privilege group with invalid name + method: add privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + self.utility_wrap.init_role("role_1") + error = {"err_code": 1, + "err_msg": f"`privilege_group` value {name} is illegal"} + self.utility_wrap.add_privileges_to_group(privilege_group=name, privileges=["Insert"], + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", ["n%$#@!", "test-role", "ff ff"]) + def test_add_privileges_to_group_with_privilege_group_name_invalid_value(self, name, host, port): + """ + target: add privilege group with invalid name + method: add privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + self.utility_wrap.init_role("role_1") + error = {"err_code": 1100, "err_msg": f"privilege group name {name} can only contain numbers, letters and underscores: invalid parameter"} + self.utility_wrap.add_privileges_to_group(privilege_group=name, privileges=["Insert"], check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_add_privilege_into_not_exist_privilege_group(self, host, port): + """ + target: add privilege into not exist privilege group + method: add privilege into not exist privilege group + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name = "privilege_group_not_exist" + error = {"err_code": 1100, + "err_msg": f"there is no privilege group name [{name}] to operate: invalid parameter"} + self.utility_wrap.add_privileges_to_group(privilege_group=name, privileges=["Insert"], + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_add_privilege_into_built_in_privilege_group(self, host, port): + """ + target: add privilege into not exist privilege group + method: add privilege into not exist privilege group + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + for name in ct.built_in_privilege_groups: + error = {"err_code": 1100, + "err_msg": f"the privilege group name [{name}] is defined " + f"by built in privilege groups in system: invalid parameter"} + self.utility_wrap.add_privileges_to_group(privilege_group=name, privileges=["Insert"], + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", [1, 1.0, "n%$#@!", "test-role", "ff ff"]) + def test_add_privileges_to_group_with_privilege_invalid_type(self, name, host, port): + """ + target: add privilege group with invalid name + method: add privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + self.utility_wrap.init_role("role_1") + error = {"err_code": 1, + "err_msg": f"`privileges` value {name} is illegal"} + self.utility_wrap.add_privileges_to_group(privilege_group="privilege_group_1", privileges=name, + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_add_privileges_to_group_with_privilege_invalid_value(self, host, port): + """ + target: add privilege group with invalid name + method: add privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name = "privilege_group_1" + self.utility_wrap.create_privilege_group(privilege_group=name) + privilege_name = "invalid_privilege" + error = {"err_code": 1100, "err_msg": f"there is no privilege name or privielge group name [{privilege_name}] " + f"defined in system to operate: invalid parameter"} + self.utility_wrap.add_privileges_to_group(privilege_group="privilege_group_1", privileges=[privilege_name], check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", [1, 1.0]) + def test_remove_privileges_to_group_with_privilege_group_name_invalid_type(self, name, host, port): + """ + target: remove privilege group with invalid name + method: remove privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + self.utility_wrap.init_role("role_1") + error = {"err_code": 1, + "err_msg": f"`privilege_group` value {name} is illegal"} + self.utility_wrap.remove_privileges_from_group(privilege_group=name, privileges=["Insert"], + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", ["n%$#@!", "test-role", "ff ff"]) + def test_remove_privileges_to_group_with_privilege_group_name_invalid_value(self, name, host, port): + """ + target: remove privilege group with invalid name + method: remove privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + self.utility_wrap.init_role("role_1") + error = {"err_code": 1100, "err_msg": f"privilege group name {name} can only contain numbers, letters and underscores: invalid parameter"} + self.utility_wrap.remove_privileges_from_group(privilege_group=name, privileges=["Insert"], check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_remove_privilege_into_not_exist_privilege_group(self, host, port): + """ + target: remove privilege into not exist privilege group + method: remove privilege into not exist privilege group + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name = "privilege_group_not_exist" + error = {"err_code": 1100, + "err_msg": f"there is no privilege group name [{name}] to operate: invalid parameter"} + self.utility_wrap.remove_privileges_from_group(privilege_group=name, privileges=["Insert"], + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_remove_privilege_into_built_in_privilege_group(self, host, port): + """ + target: remove privilege into not exist privilege group + method: remove privilege into not exist privilege group + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + for name in ct.built_in_privilege_groups: + error = {"err_code": 1100, + "err_msg": f"the privilege group name [{name}] is defined " + f"by built in privilege groups in system: invalid parameter"} + self.utility_wrap.remove_privileges_from_group(privilege_group=name, privileges=["Insert"], + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", [1, 1.0, "n%$#@!", "test-role", "ff ff"]) + def test_remove_privileges_to_group_with_privilege_invalid_type(self, name, host, port): + """ + target: remove privilege group with invalid name + method: remove privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + self.utility_wrap.init_role("role_1") + error = {"err_code": 1, + "err_msg": f"`privileges` value {name} is illegal"} + self.utility_wrap.remove_privileges_from_group(privilege_group="privilege_group_1", privileges=name, + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_remove_privileges_to_group_with_privilege_invalid_value(self, host, port): + """ + target: remove privilege group with invalid name + method: remove privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name = "privilege_group_1" + self.utility_wrap.create_privilege_group(privilege_group=name) + privilege_name = "invalid_privilege" + error = {"err_code": 1100, "err_msg": f"there is no privilege name or privielge group name [{privilege_name}] " + f"defined in system to operate: invalid parameter"} + self.utility_wrap.remove_privileges_from_group(privilege_group="privilege_group_1", privileges=[privilege_name], + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", [1, 1.0, "n%$#@!", "test-role", "ff ff"]) + def test_remove_privileges_to_group_with_privilege_invalid_type(self, name, host, port): + """ + target: remove privilege group with invalid name + method: remove privilege group with invalid name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + self.utility_wrap.init_role("role_1") + error = {"err_code": 1, + "err_msg": f"`privileges` value {name} is illegal"} + self.utility_wrap.remove_privileges_from_group(privilege_group="privilege_group_1", privileges=name, + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", [1, 1.0]) + def test_grant_v2_privilege_invalid_type(self, name, host, port): + """ + target: grant v2 with invalid privilege name + method: grant v2 with invalid privilege name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + collection_w = self.init_collection_general(prefix)[0] + role = self.utility_wrap.init_role("role_1")[0] + role.create() + error = {"err_code": 1, + "err_msg": f"`privilege` value {name} is illegal"} + self.utility_wrap.role_grant_v2(privilege=name, collection_name=collection_w.name, + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_grant_v2_privilege_invalid_value(self, host, port): + """ + target: grant v2 with invalid privilege name + method: grant v2 with invalid privilege name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + collection_w = self.init_collection_general(prefix)[0] + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name = "privilege_group_1" + self.utility_wrap.create_privilege_group(privilege_group=name) + privilege_name = "invalid_privilege" + error = {"err_code": 65535, "err_msg": f"not found the privilege name[{privilege_name}]"} + self.utility_wrap.role_grant_v2(privilege=privilege_name, collection_name=collection_w.name, + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", [1, 1.0]) + def test_grant_v2_collection_name_invalid_type(self, name, host, port): + """ + target: grant v2 with invalid collection name + method: grant v2 with invalid collection name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + self.utility_wrap.create_privilege_group(privilege_group="privilege_group_1") + error = {"err_code": 1, "err_msg": f"`privilege` value {name} is illegal"} + self.utility_wrap.role_grant_v2(privilege=name, collection_name=name, + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_grant_v2_not_exist_collection(self, host, port): + """ + target: grant v2 with not exist collection + method: grant v2 with not exist collection + expected: grant successfully + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name = "privilege_group_1" + self.utility_wrap.create_privilege_group(privilege_group=name) + self.utility_wrap.role_grant_v2(privilege=name, collection_name="not_exist_collection") + self.utility_wrap.role_revoke_v2(privilege=name, collection_name="not_exist_collection") + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", [1, 1.0]) + def test_grant_v2_db_name_invalid_type(self, name, host, port): + """ + target: grant v2 with invalid collection name + method: grant v2 with invalid collection name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + self.utility_wrap.create_privilege_group(privilege_group="privilege_group_1") + error = {"err_code": 1, "err_msg": f"`db_name` value {name} is illegal"} + self.utility_wrap.role_grant_v2(privilege="privilege_group_1", collection_name="collection_name", db_name=name, + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", ["n%$#@!", "test-role", "ff ff"]) + def test_grant_v2_db_name_invalid_value(self, name, host, port): + """ + target: grant v2 with invalid collection name + method: grant v2 with invalid collection name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + self.utility_wrap.create_privilege_group(privilege_group="privilege_group_1") + error = {"err_code": 802, "err_msg": f"database name can only contain numbers, letters and underscores: " + f"invalid database name[database={name}]"} + self.utility_wrap.role_grant_v2(privilege="privilege_group_1", collection_name="collection_name", + db_name=name, check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_grant_v2_not_exist_db_name(self, host, port): + """ + target: grant v2 with invalid collection name + method: grant v2 with invalid collection name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + self.utility_wrap.create_privilege_group(privilege_group="privilege_group_1") + self.utility_wrap.role_grant_v2(privilege="privilege_group_1", collection_name="collection_name", + db_name="not_exist_db") + self.utility_wrap.role_revoke_v2(privilege="privilege_group_1", collection_name="collection_name", + db_name="not_exist_db") + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("name", [1, 1.0]) + def test_revoke_v2_privilege_invalid_type(self, name, host, port): + """ + target: grant v2 with invalid privilege name + method: grant v2 with invalid privilege name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + collection_w = self.init_collection_general(prefix)[0] + role = self.utility_wrap.init_role("role_1")[0] + role.create() + error = {"err_code": 1, + "err_msg": f"`privilege` value {name} is illegal"} + self.utility_wrap.role_revoke_v2(privilege=name, collection_name=collection_w.name, + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_revoke_v2_privilege_invalid_value(self, host, port): + """ + target: grant v2 with invalid privilege name + method: grant v2 with invalid privilege name + expected: raise exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + collection_w = self.init_collection_general(prefix)[0] + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name = "privilege_group_1" + self.utility_wrap.create_privilege_group(privilege_group=name) + privilege_name = "invalid_privilege" + error = {"err_code": 65535, "err_msg": f"not found the privilege name[{privilege_name}]"} + self.utility_wrap.role_revoke_v2(privilege=privilege_name, collection_name=collection_w.name, + check_task=CheckTasks.err_res, check_items=error) + @pytest.mark.tags(CaseLabel.RBAC) + def test_grant_v2_database_built_in_invalid_collection_name(self, host, port): + """ + target: grant/revoke v2 normal case + method: grant/revoke v2 normal case + expected: grant successfully + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + collection_w = self.init_collection_general(prefix)[0] + role = self.utility_wrap.init_role("role_1")[0] + role.create() + collection_name = collection_w.name + for name in ct.built_in_privilege_groups: + if name.startswith("Database") is not True: + continue + error = {"err_code": 1100, "err_msg": f"collectionName should be * for the database " + f"level privilege: {name}: invalid parameter"} + self.utility_wrap.role_grant_v2(privilege=name, collection_name=collection_name, + check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_grant_v2_cluster_built_in_invalid_collection_name(self, host, port): + """ + target: grant/revoke v2 normal case + method: grant/revoke v2 normal case + expected: grant successfully + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + collection_w = self.init_collection_general(prefix)[0] + role = self.utility_wrap.init_role("role_1")[0] + role.create() + for name in ct.built_in_privilege_groups: + if name.startswith("Cluster") is not True: + continue + error = {"err_code": 1100, "err_msg": f"dbName and collectionName should be * for the cluster " + f"level privilege: {name}: invalid parameter"} + self.utility_wrap.role_grant_v2(privilege=name, collection_name="*", db_name="default", + check_task=CheckTasks.err_res, check_items=error) + self.utility_wrap.role_grant_v2(privilege=name, collection_name="*", + check_task=CheckTasks.err_res, check_items=error) + + +class TestUtilityPositiveRbacPrivilegeGroup(TestcaseBase): + + def teardown_method(self, method): + """ + teardown method: drop role and user + """ + log.info("[utility_teardown_method] Start teardown utility test cases ...") + + self.connection_wrap.connect(host=cf.param_info.param_host, port=cf.param_info.param_port, user=ct.default_user, + password=ct.default_password, secure=cf.param_info.param_secure) + + # drop users + users, _ = self.utility_wrap.list_users(False) + for u in users.groups: + if u.username != ct.default_user: + self.utility_wrap.delete_user(u.username) + user_groups, _ = self.utility_wrap.list_users(False) + assert len(user_groups.groups) == 1 + + role_groups, _ = self.utility_wrap.list_roles(False) + + # drop roles + for role_group in role_groups.groups: + if role_group.role_name not in ['admin', 'public']: + self.utility_wrap.init_role(role_group.role_name) + g_list, _ = self.utility_wrap.role_list_grants() + for g in g_list.groups: + # self.utility_wrap.role_revoke(g.object, g.object_name, g.privilege) + if g.privilege.startswith("Cluster"): + self.utility_wrap.role_revoke_v2(g.privilege, "*", "*") + else: + self.utility_wrap.role_revoke_v2(g.privilege, g.object_name) + privilege_groups = self.utility_wrap.list_privilege_groups()[0] + for privilege_group in privilege_groups.groups: + if privilege_group.privilege_group not in ct.built_in_privilege_groups: + self.utility_wrap.drop_privilege_group(privilege_group.privilege_group) + self.utility_wrap.role_drop() + role_groups, _ = self.utility_wrap.list_roles(False) + assert len(role_groups.groups) == 2 + + # drop database + databases, _ = self.database_wrap.list_database() + for db_name in databases: + self.database_wrap.using_database(db_name) + for c_name in self.utility_wrap.list_collections()[0]: + self.utility_wrap.drop_collection(c_name) + + if db_name != ct.default_db: + self.database_wrap.drop_database(db_name) + + super().teardown_method(method) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_create_privilege_groups(self, host, port): + """ + target: create valid privilege groups + method: create valid privilege groups + expected: create successfully + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name_1 = "privilege_group_1" + self.utility_wrap.create_privilege_group(privilege_group=name_1) + name_2 = "privilege_group_2" + self.utility_wrap.create_privilege_group(privilege_group=name_2) + privilege_groups = self.utility_wrap.list_privilege_groups()[0] + privilege_groups_extracted = [] + for privilege_group in privilege_groups.groups: + privilege_groups_extracted.append(privilege_group.privilege_group) + assert name_1 in privilege_groups_extracted + assert name_2 in privilege_groups_extracted + + @pytest.mark.tags(CaseLabel.RBAC) + def test_create_large_numbers_privilege_groups(self, host, port): + """ + target: create large numbers of privilege groups + method: create 100 privilege groups + expected: create successfully + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + number = 100 + # 1. create privilege groups + for i in range(number): + name = f"privilege_group_{i}" + self.utility_wrap.create_privilege_group(privilege_group=name) + privilege_groups = self.utility_wrap.list_privilege_groups()[0] + privilege_groups_extracted = [] + for privilege_group in privilege_groups.groups: + privilege_groups_extracted.append(privilege_group.privilege_group) + for i in range(number): + name = f"privilege_group_{i}" + assert name in privilege_groups_extracted + # 2. drop privilege groups + for i in range(number): + name = f"privilege_group_{i}" + self.utility_wrap.drop_privilege_group(privilege_group=name) + privilege_groups = self.utility_wrap.list_privilege_groups()[0] + privilege_groups_extracted = [] + for privilege_group in privilege_groups.groups: + privilege_groups_extracted.append(privilege_group.privilege_group) + for i in range(number): + name = f"privilege_group_{i}" + assert name not in privilege_groups_extracted + + @pytest.mark.tags(CaseLabel.RBAC) + def test_drop_privilege_groups(self, host, port): + """ + target: drop valid privilege groups + method: create valid privilege groups + expected: drop successfully + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name_1 = "privilege_group_1" + self.utility_wrap.create_privilege_group(privilege_group=name_1) + name_2 = "privilege_group_2" + self.utility_wrap.create_privilege_group(privilege_group=name_2) + self.utility_wrap.drop_privilege_group(privilege_group=name_1) + self.utility_wrap.drop_privilege_group(privilege_group=name_2) + privilege_groups = self.utility_wrap.list_privilege_groups()[0] + privilege_groups_extracted = [] + for privilege_group in privilege_groups.groups: + privilege_groups_extracted.append(privilege_group.privilege_group) + assert name_1 not in privilege_groups_extracted + assert name_2 not in privilege_groups_extracted + + @pytest.mark.tags(CaseLabel.RBAC) + def test_add_privileges_to_group(self, host, port): + """ + target: add privilege group with invalid name + method: add privilege group with invalid name + expected: no exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name_1 = "privilege_group_1" + name_2 = "privilege_group_2" + self.utility_wrap.create_privilege_group(privilege_group=name_1) + self.utility_wrap.add_privileges_to_group(privilege_group=name_1, privileges=["Insert"]) + self.utility_wrap.add_privileges_to_group(privilege_group=name_1, privileges=["Insert"]) + self.utility_wrap.create_privilege_group(privilege_group=name_2) + self.utility_wrap.add_privileges_to_group(privilege_group=name_2, privileges=["Insert"]) + self.utility_wrap.add_privileges_to_group(privilege_group=name_2, privileges=["Insert"]) + self.utility_wrap.add_privileges_to_group(privilege_group=name_1, privileges=["Search"]) + self.utility_wrap.add_privileges_to_group(privilege_group=name_2, privileges=["Search"]) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_remove_privileges_to_group(self, host, port): + """ + target: remove privilege group with invalid name + method: remove privilege group with invalid name + expected: no exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name_1 = "privilege_group_1" + name_2 = "privilege_group_2" + self.utility_wrap.create_privilege_group(privilege_group=name_1) + self.utility_wrap.add_privileges_to_group(privilege_group=name_1, privileges=["Insert"]) + self.utility_wrap.add_privileges_to_group(privilege_group=name_1, privileges=["Insert"]) + self.utility_wrap.remove_privileges_from_group(privilege_group=name_1, privileges=["Insert"]) + self.utility_wrap.remove_privileges_from_group(privilege_group=name_1, privileges=["Insert"]) + self.utility_wrap.create_privilege_group(privilege_group=name_2) + self.utility_wrap.add_privileges_to_group(privilege_group=name_2, privileges=["Search"]) + self.utility_wrap.remove_privileges_from_group(privilege_group=name_2, privileges=["Search"]) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_list_built_in_privilege_groups(self, host, port): + """ + target: remove privilege group with invalid name + method: remove privilege group with invalid name + expected: no exception + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + res = self.utility_wrap.list_privilege_groups()[0] + for privilege_groups in res.groups: + if privilege_groups.privilege_group == "CollectionReadOnly": + assert privilege_groups.privileges == ('Query', 'Search', 'IndexDetail', 'GetFlushState', 'GetLoadState', + 'GetLoadingProgress', 'HasPartition', 'ShowPartitions', + 'DescribeCollection', 'DescribeAlias', 'GetStatistics', 'ListAliases') + elif privilege_groups.privilege_group == "CollectionReadWrite": + assert privilege_groups.privileges == ('Query', 'Search', 'IndexDetail', 'GetFlushState', 'GetLoadState', + 'GetLoadingProgress', 'HasPartition', 'ShowPartitions', + 'DescribeCollection', 'DescribeAlias', 'GetStatistics', 'ListAliases', + 'Load', 'Release', 'Insert', 'Delete', 'Upsert', 'Import', 'Flush', + 'Compaction', 'LoadBalance', 'CreateIndex', 'DropIndex', + 'CreatePartition', 'DropPartition') + elif privilege_groups.privilege_group == "CollectionAdmin": + assert privilege_groups.privileges == ('Query', 'Search', 'IndexDetail', 'GetFlushState', + 'GetLoadState', 'GetLoadingProgress', 'HasPartition', + 'ShowPartitions', 'DescribeCollection', 'DescribeAlias', + 'GetStatistics', 'ListAliases', 'Load', 'Release', 'Insert', + 'Delete', 'Upsert', 'Import', 'Flush', 'Compaction', 'LoadBalance', + 'CreateIndex', 'DropIndex', 'CreatePartition', 'DropPartition', + 'CreateAlias', 'DropAlias') + elif privilege_groups.privilege_group == "DatabaseReadOnly": + assert privilege_groups.privileges == ('ShowCollections', 'DescribeDatabase') + elif privilege_groups.privilege_group == "DatabaseReadWrite": + assert privilege_groups.privileges == ('ShowCollections', 'DescribeDatabase', 'AlterDatabase') + elif privilege_groups.privilege_group == "DatabaseAdmin": + assert privilege_groups.privileges == ('ShowCollections', 'DescribeDatabase', 'AlterDatabase', + 'CreateCollection', 'DropCollection') + elif privilege_groups.privilege_group == "ClusterReadOnly": + assert privilege_groups.privileges == ('ListDatabases', 'SelectOwnership', 'SelectUser', 'DescribeResourceGroup', + 'ListResourceGroups', 'ListPrivilegeGroups') + elif privilege_groups.privilege_group == "ClusterReadWrite": + assert privilege_groups.privileges == ('ListDatabases', 'SelectOwnership', 'SelectUser', 'DescribeResourceGroup', + 'ListResourceGroups', 'ListPrivilegeGroups', 'FlushAll', + 'TransferNode', 'TransferReplica', 'UpdateResourceGroups') + elif privilege_groups.privilege_group == "ClusterAdmin": + assert privilege_groups.privileges == ('ListDatabases', 'SelectOwnership', 'SelectUser', 'DescribeResourceGroup', + 'ListResourceGroups', 'ListPrivilegeGroups', 'FlushAll', + 'TransferNode', 'TransferReplica', 'UpdateResourceGroups', + 'BackupRBAC', 'RestoreRBAC', 'CreateDatabase', 'DropDatabase', + 'CreateOwnership', 'DropOwnership', 'ManageOwnership', + 'CreateResourceGroup', 'DropResourceGroup', 'UpdateUser', + 'RenameCollection', 'CreatePrivilegeGroup', 'DropPrivilegeGroup', + 'OperatePrivilegeGroup') + + @pytest.mark.tags(CaseLabel.RBAC) + def test_grant_revoke_v2_normal(self, host, port): + """ + target: grant/revoke v2 normal case + method: grant/revoke v2 normal case + expected: grant successfully + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + collection_w = self.init_collection_general(prefix)[0] + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name = "privilege_group_1" + self.utility_wrap.create_privilege_group(privilege_group=name) + self.utility_wrap.role_grant_v2(privilege=name, collection_name=collection_w.name) + self.utility_wrap.role_grant_v2(privilege=name, collection_name=collection_w.name) + res = self.utility_wrap.role_list_grants()[0] + is_exist = False + for group in res.groups: + if group.privilege == name: + assert group.object == "Global" + assert group.object_name == collection_w.name + assert group.db_name == "default" + assert group.role_name == "role_1" + assert group.grantor_name == "root" + is_exist = True + assert is_exist == True + self.utility_wrap.role_revoke_v2(privilege=name, collection_name=collection_w.name) + self.utility_wrap.role_revoke_v2(privilege=name, collection_name=collection_w.name) + res = self.utility_wrap.role_list_grants()[0] + not_exist = True + for group in res.groups: + if group.privilege == name: + not_exist = False + assert not_exist == True + + @pytest.mark.tags(CaseLabel.RBAC) + def test_grant_revoke_v2_another_db(self, host, port): + """ + target: grant/revoke v2 normal case + method: grant/revoke v2 normal case + expected: grant successfully + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + new_db = "db_1" + self.database_wrap.create_database(new_db) + collection_w = self.init_collection_general(prefix)[0] + role = self.utility_wrap.init_role("role_1")[0] + role.create() + name = "privilege_group_1" + self.utility_wrap.create_privilege_group(privilege_group=name) + self.utility_wrap.role_grant_v2(privilege=name, collection_name=collection_w.name, db_name=new_db) + res = self.utility_wrap.role_list_grants(db_name=new_db)[0] + is_exist = False + for group in res.groups: + if group.privilege == name: + assert group.object == "Global" + assert group.object_name == collection_w.name + assert group.db_name == new_db + assert group.role_name == "role_1" + assert group.grantor_name == "root" + is_exist = True + assert is_exist == True + self.utility_wrap.role_revoke_v2(privilege=name, collection_name=collection_w.name, db_name=new_db) + res = self.utility_wrap.role_list_grants(db_name=new_db)[0] + not_exist = True + for group in res.groups: + if group.privilege == name: + not_exist = False + assert not_exist == True + res = self.utility_wrap.role_list_grants(db_name='default')[0] + not_exist = True + for group in res.groups: + if group.privilege == name: + not_exist = False + assert not_exist == True + + @pytest.mark.tags(CaseLabel.RBAC) + def test_grant_revoke_v2_privilege(self, host, port): + """ + target: grant/revoke v2 normal case + method: grant/revoke v2 normal case + expected: grant successfully + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + collection_w = self.init_collection_general(prefix)[0] + role = self.utility_wrap.init_role("role_1")[0] + role.create() + collection_name = collection_w.name + db_name = "default" + for name in ct.built_in_privilege_groups: + if name.startswith("Database"): + collection_name = "*" + if name.startswith("Cluster"): + collection_name = "*" + db_name = "*" + self.utility_wrap.role_grant_v2(privilege=name, collection_name=collection_name, db_name=db_name) + res = self.utility_wrap.role_list_grants()[0] + is_exist = False + for group in res.groups: + if group.privilege == name: + assert group.object == "Global" + assert group.object_name == collection_name + assert group.db_name == db_name + assert group.role_name == "role_1" + assert group.grantor_name == "root" + is_exist = True + assert is_exist == True + self.utility_wrap.role_revoke_v2(privilege=name, collection_name=collection_name, db_name=db_name) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_grant_revoke_v2_built_in_privilege_group(self, host, port): + """ + target: grant/revoke v2 normal case + method: grant/revoke v2 normal case + expected: grant successfully + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + collection_w = self.init_collection_general(prefix)[0] + role = self.utility_wrap.init_role("role_1")[0] + role.create() + collection_name = collection_w.name + db_name = "default" + for name in ct.built_in_privilege_groups: + if name.startswith("Database"): + collection_name = "*" + if name.startswith("Cluster"): + collection_name = "*" + db_name = "*" + self.utility_wrap.role_grant_v2(privilege=name, collection_name=collection_name, db_name=db_name) + res = self.utility_wrap.role_list_grants()[0] + is_exist = False + for group in res.groups: + if group.privilege == name: + assert group.object == "Global" + assert group.object_name == collection_name + assert group.db_name == db_name + assert group.role_name == "role_1" + assert group.grantor_name == "root" + is_exist = True + assert is_exist == True + self.utility_wrap.role_revoke_v2(privilege=name, collection_name=collection_name, db_name=db_name) + + @pytest.mark.tags(CaseLabel.RBAC) + def test_grant_revoke_v2_duplicate_privilege_and_privilege_group(self, host, port): + """ + target: grant/revoke v2 normal case + method: grant/revoke v2 normal case + expected: grant successfully + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + role = self.utility_wrap.init_role("role_1")[0] + role.create() + self.utility_wrap.role_grant_v2(privilege="CreatePrivilegeGroup", collection_name="*", db_name="*") + self.utility_wrap.role_grant_v2(privilege="ClusterAdmin", collection_name="*", db_name="*") + res = self.utility_wrap.role_list_grants()[0] + privilege_number = 0 + for group in res.groups: + if group.privilege == "CreatePrivilegeGroup": + assert group.object == "Global" + assert group.object_name == "*" + assert group.db_name == "*" + assert group.role_name == "role_1" + assert group.grantor_name == "root" + privilege_number += 1 + if group.privilege == "ClusterAdmin": + assert group.object == "Global" + assert group.object_name == "*" + assert group.db_name == "*" + assert group.role_name == "role_1" + assert group.grantor_name == "root" + privilege_number += 1 + assert privilege_number == 2 + new_user = "user1" + self.utility_wrap.create_user(user=new_user, password=ct.default_password) + self.utility_wrap.role_add_user(new_user) + self.connection_wrap.connect(host=host, port=port, user=new_user, + password=ct.default_password) + self.utility_wrap.create_privilege_group("privilege_group_1") + self.utility_wrap.drop_privilege_group("privilege_group_1") + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + self.utility_wrap.role_revoke_v2(privilege="CreatePrivilegeGroup", collection_name="*", db_name="*") + self.connection_wrap.connect(host=host, port=port, user=new_user, + password=ct.default_password) + self.utility_wrap.create_privilege_group("privilege_group_1") + self.utility_wrap.drop_privilege_group("privilege_group_1") + self.utility_wrap.role_revoke_v2(privilege="ClusterAdmin", collection_name="*", db_name="*") + + @pytest.mark.tags(CaseLabel.RBAC) + @pytest.mark.parametrize("privilege_group_name", ct.built_in_privilege_groups) + def test_built_in_privilege_groups(self, host, port, privilege_group_name): + """ + target: test all the built in privilege groups + method: test all the built in privilege groups + expected: grant successfully + """ + self.connection_wrap.connect(host=host, port=port, user=ct.default_user, + password=ct.default_password, check_task=ct.CheckTasks.ccr) + collection_w = self.init_collection_general(prefix)[0] + partition_w = self.init_partition_wrap(collection_w, "_default") + collection_w_1 = self.init_collection_general(prefix+'new')[0] + collection_w.create_index(ct.default_float_vec_field_name, index_params=ct.default_flat_index) + collection_w.load() + role = self.utility_wrap.init_role("role_1")[0] + role.create() + collection_name = collection_w.name + db_name = "default" + if privilege_group_name.startswith("Database"): + collection_name = "*" + if privilege_group_name.startswith("Cluster"): + collection_name = "*" + db_name = "*" + self.utility_wrap.role_grant_v2(privilege=privilege_group_name, collection_name=collection_name, db_name=db_name) + new_user = "user1" + self.utility_wrap.create_user(user=new_user, password=ct.default_password) + new_user_1 = "user2" + self.utility_wrap.create_user(user=new_user_1, password=ct.default_password) + self.utility_wrap.role_add_user(new_user) + privilege_group_privilege_dict = copy.deepcopy(ct.privilege_group_privilege_dict) + res = self.utility_wrap.list_privilege_groups()[0] + for privilege_groups in res.groups: + if privilege_groups.privilege_group == privilege_group_name: + for single_privilege in privilege_groups.privileges: + if single_privilege in privilege_group_privilege_dict.keys(): + privilege_group_privilege_dict[single_privilege] = True + break + # check all the granted privileges using api for the built in privilege group + self.connection_wrap.connect(host=host, port=port, user=new_user, password=ct.default_password) + # wait to make sure the grant takes effect + time.sleep(20) + # PrivilegeQuery + if privilege_group_privilege_dict["Query"]: + res = collection_w.query(expr="int64==0")[0] + else: + res = collection_w.query(expr="int64==0", check_task=CheckTasks.check_permission_deny) + # PrivilegeSearch + vectors = [[random.random() for _ in range(ct.default_dim)] for _ in range(1)] + if privilege_group_privilege_dict["Search"]: + collection_w.search(vectors, ct.default_float_vec_field_name, {}, 1, + check_task=CheckTasks.check_search_results, + check_items={ + "nq": 1, + "limit": 0}) + else: + collection_w.search(vectors, ct.default_float_vec_field_name, {}, 1, + check_task=CheckTasks.check_permission_deny) + # PrivilegeGetLoadState + if privilege_group_privilege_dict["GetLoadState"]: + res = self.utility_wrap.load_state(collection_name=collection_w.name) + res = self.utility_wrap.wait_for_loading_complete(collection_name=collection_w.name) + else: + res = self.utility_wrap.load_state(collection_name=collection_w.name, + check_task=CheckTasks.check_permission_deny) + res = self.utility_wrap.wait_for_loading_complete(collection_name=collection_w.name, + check_task=CheckTasks.check_permission_deny) + # PrivilegeGetLoadingProgress + if privilege_group_privilege_dict["GetLoadingProgress"]: + res = self.utility_wrap.loading_progress(collection_name=collection_w.name) + else: + res = self.utility_wrap.loading_progress(collection_name=collection_w.name, + check_task=CheckTasks.check_permission_deny) + # PrivilegeHasPartition + if privilege_group_privilege_dict["HasPartition"]: + res = collection_w.has_partition(partition_name="_default")[0] + assert res == True + res = partition_w.name + res = partition_w.is_empty_without_flush + res = partition_w.num_entities_without_flush + else: + res = collection_w.has_partition(partition_name="_default", + check_task=CheckTasks.check_permission_deny) + try: + partition_w = self.init_partition_wrap(collection_w, "_default") + res = partition_w.name + res = partition_w.is_empty_without_flush + res = partition_w.num_entities_without_flush + except Exception as e: + log.info(e) + # PrivilegeShowPartitions + if privilege_group_privilege_dict["ShowPartitions"]: + res = collection_w.partitions + else: + try: + res = collection_w.partitions + except Exception as e: + log.info(e) + # PrivilegeShowCollections + # if privilege_group_privilege_dict["ShowCollections"]: + res = self.utility_wrap.list_collections()[0] + assert len(res) == 0 + # PrivilegeListAliases + res = self.utility_wrap.list_aliases(collection_name=collection_w.name) + # PrivilegeListDatabases + if privilege_group_privilege_dict["ListDatabases"]: + res = self.database_wrap.list_database()[0] + assert len(res) == 1 + assert res[0] == "default" + else: + res = self.database_wrap.list_database()[0] + assert len(res) == 1 + assert res[0] == "default" + # PrivilegeDescribeDatabase + if privilege_group_privilege_dict["DescribeDatabase"]: + res = self.database_wrap.describe_database(db_name="default") + else: + self.database_wrap.describe_database(db_name="default", check_task=CheckTasks.check_permission_deny) + # PrivilegeDescribeAlias + res = collection_w.aliases + # PrivilegeGetStatistics + if privilege_group_privilege_dict["GetStatistics"]: + res = collection_w.is_empty_without_flush + res = collection_w.num_entities_without_flush + else: + try: + res = collection_w.is_empty_without_flush + except Exception as e: + log.info(e) + try: + res = collection_w.num_entities_without_flush + except Exception as e: + log.info(e) + # PrivilegeDropIndex + if privilege_group_privilege_dict["DropIndex"]: + collection_w.release() + collection_w.drop_index(index_name=ct.default_float_vec_field_name) + else: + collection_w.drop_index(index_name=ct.default_float_vec_field_name, check_task=CheckTasks.check_permission_deny) + # PrivilegeCreateIndex + if privilege_group_privilege_dict["CreateIndex"]: + collection_w.create_index(field_name=ct.default_float_vec_field_name, index_name="index1") + collection_w.alter_index(index_name="index1", extra_params={}) + collection_w.load() + else: + collection_w.create_index(field_name=ct.default_float_vec_field_name, check_task=CheckTasks.check_permission_deny) + collection_w.alter_index(index_name="index1", extra_params={}, check_task=CheckTasks.check_permission_deny) + # PrivilegeCreatePartition + if privilege_group_privilege_dict["CreatePartition"]: + collection_w.create_partition("partition") + else: + collection_w.create_partition("partition", check_task=CheckTasks.check_permission_deny) + # PrivilegeDropPartition + if privilege_group_privilege_dict["DropPartition"]: + collection_w.release() + collection_w.drop_partition("partition") + collection_w.load() + else: + collection_w.drop_partition("partition", check_task=CheckTasks.check_permission_deny) + # PrivilegeLoad + if privilege_group_privilege_dict["Load"]: + collection_w.load() + else: + collection_w.load(check_task=CheckTasks.check_permission_deny) + # PrivilegeRelease + if privilege_group_privilege_dict["Release"]: + collection_w.release() + else: + collection_w.release(check_task=CheckTasks.check_permission_deny) + # PrivilegeInsert + data = cf.gen_default_dataframe_data() + if privilege_group_privilege_dict["Insert"]: + collection_w.insert(data=data) + else: + collection_w.insert(data=data, check_task=CheckTasks.check_permission_deny) + # PrivilegeDelete + if privilege_group_privilege_dict["Delete"]: + collection_w.delete(expr="int64==10") + else: + collection_w.delete(expr="int64==10", check_task=CheckTasks.check_permission_deny) + # PrivilegeUpsert + if privilege_group_privilege_dict["Upsert"]: + collection_w.upsert(data=data) + else: + collection_w.upsert(data=data, check_task=CheckTasks.check_permission_deny) + # PrivilegeImport + if privilege_group_privilege_dict["Import"]: + self.utility_wrap.do_bulk_insert(collection_name=collection_w.name, files=[""], + check_task=CheckTasks.err_res, + check_items={"err_code": 2100, + "err_msg": "unexpected file type, files=[]: importing data failed"}) + else: + self.utility_wrap.do_bulk_insert(collection_name=collection_w.name, files=[""], + check_task=CheckTasks.check_permission_deny) + # PrivilegeFlush + if privilege_group_privilege_dict["Flush"]: + collection_w.flush() + partition_w.flush() + else: + collection_w.flush(check_task=CheckTasks.check_permission_deny) + partition_w.flush(check_task=CheckTasks.check_permission_deny) + # PrivilegeCompaction + if privilege_group_privilege_dict["Compaction"]: + collection_w.compact() + else: + collection_w.compact(check_task=CheckTasks.check_permission_deny) + if privilege_group_privilege_dict["LoadBalance"]: + collection_w.load() + self.utility_wrap.load_balance(collection_name=collection_w.name, src_node_id=1, + dst_node_ids=[2, 3], sealed_segment_ids=[2, 3], + check_task=CheckTasks.err_res, + check_items={"err_code": 901, + "err_msg": "destination node not found in " + "the same replica: node not found[node=2]"}) + else: + self.utility_wrap.load_balance(collection_name=collection_w.name, src_node_id=1, + dst_node_ids=[2, 3], sealed_segment_ids=[2, 3], + check_task=CheckTasks.check_permission_deny) + # PrivilegeRenameCollection + if privilege_group_privilege_dict["RenameCollection"]: + self.utility_wrap.rename_collection(old_collection_name=collection_w.name, + new_collection_name=collection_w.name+'new') + self.utility_wrap.rename_collection(old_collection_name=collection_w.name+'new', + new_collection_name=collection_w.name) + else: + self.utility_wrap.rename_collection(old_collection_name=collection_w.name, + new_collection_name=collection_w.name, + check_task=CheckTasks.check_permission_deny) + # PrivilegeCreateAlias + if privilege_group_privilege_dict["CreateAlias"]: + self.utility_wrap.create_alias(collection_name=collection_w.name, alias="alias") + self.utility_wrap.alter_alias(collection_name=collection_w.name, alias="alias") + else: + self.utility_wrap.create_alias(collection_name=collection_w.name, alias="alias", + check_task=CheckTasks.check_permission_deny) + self.utility_wrap.alter_alias(collection_name=collection_w.name, alias="alias", + check_task=CheckTasks.check_permission_deny) + # PrivilegeDropAlias + if privilege_group_privilege_dict["DropAlias"]: + self.utility_wrap.drop_alias(alias="alias") + else: + self.utility_wrap.drop_alias(alias="alias", check_task=CheckTasks.check_permission_deny) + # PrivilegeCreateCollection + if privilege_group_privilege_dict["CreateCollection"]: + collection_w_new = self.init_collection_general(prefix, is_index=False, is_flush=False)[0] + collection_w_new.set_properties({"collection.ttl.seconds": 60}) + else: + try: + self.init_collection_general(prefix)[0] + except Exception as e: + log.info(e) + collection_w.set_properties({"collection.ttl.seconds": 60}, check_task=CheckTasks.check_permission_deny) + # PrivilegeDropCollection + if privilege_group_privilege_dict["DropCollection"]: + collection_w_new.drop() + self.utility_wrap.drop_collection(collection_w_new.name) + else: + collection_w.drop(check_task=CheckTasks.check_permission_deny) + self.utility_wrap.drop_collection(collection_w.name, check_task=CheckTasks.check_permission_deny) + # PrivilegeCreateOwnership + if privilege_group_privilege_dict["CreateOwnership"]: + role_1 = self.utility_wrap.init_role("role_new")[0] + role_1.create() + self.utility_wrap.create_user(user="user3", password=ct.default_password) + else: + role_1 = self.utility_wrap.init_role("role_new")[0] + self.utility_wrap.create_role(check_task=CheckTasks.check_permission_deny) + self.utility_wrap.create_user(user="user3", password=ct.default_password, + check_task=CheckTasks.check_permission_deny) + # PrivilegeDropOwnership + if privilege_group_privilege_dict["DropOwnership"]: + role_1 = self.utility_wrap.init_role("role_new")[0] + role_1.drop() + self.utility_wrap.delete_user("user3") + else: + role_1 = self.utility_wrap.init_role("role_new")[0] + self.utility_wrap.role_drop(check_task=CheckTasks.check_permission_deny) + self.utility_wrap.delete_user("user3", check_task=CheckTasks.check_permission_deny) + # PrivilegeSelectOwnership + role = self.utility_wrap.init_role("role_1")[0] + if privilege_group_privilege_dict["SelectOwnership"]: + self.utility_wrap.role_get_users() + self.utility_wrap.role_is_exist() + self.utility_wrap.list_usernames() + self.utility_wrap.list_roles(True) + res = self.utility_wrap.role_list_grants()[0] + else: + self.utility_wrap.role_get_users(check_task=CheckTasks.check_permission_deny) + self.utility_wrap.role_is_exist(check_task=CheckTasks.check_permission_deny) + self.utility_wrap.list_usernames(check_task=CheckTasks.check_permission_deny) + self.utility_wrap.list_roles(True, check_task=CheckTasks.check_permission_deny) + # default own the privilege of the role itself + res = self.utility_wrap.role_list_grants()[0] + # PrivilegeManageOwnership + if privilege_group_privilege_dict["ManageOwnership"]: + role = self.utility_wrap.init_role("role_1")[0] + self.utility_wrap.role_grant(object="Collection", object_name=collection_w.name, privilege="Insert") + self.utility_wrap.role_revoke(object="Collection", object_name=collection_w.name, privilege="Insert") + self.utility_wrap.role_grant_v2(privilege="Insert", collection_name=collection_w.name) + self.utility_wrap.role_revoke_v2(privilege="Insert", collection_name=collection_w.name) + self.utility_wrap.create_user("user3", "Milvus") + self.utility_wrap.role_add_user(username="user3") + self.utility_wrap.role_remove_user(username="user3") + else: + role = self.utility_wrap.init_role("role_1")[0] + self.utility_wrap.role_grant(object="Collection", object_name=collection_w.name, privilege="Insert", + check_task=CheckTasks.check_permission_deny) + self.utility_wrap.role_revoke(object="Collection", object_name=collection_w.name, privilege="Insert", + check_task=CheckTasks.check_permission_deny) + self.utility_wrap.role_grant_v2(privilege="Insert", collection_name=collection_w.name, + check_task=CheckTasks.check_permission_deny) + self.utility_wrap.role_revoke_v2(privilege="Insert", collection_name=collection_w.name, + check_task=CheckTasks.check_permission_deny) + self.utility_wrap.role_add_user(username="user3", + check_task=CheckTasks.check_permission_deny) + self.utility_wrap.role_remove_user(username="user3", + check_task=CheckTasks.check_permission_deny) + # PrivilegeUpdateUser + if privilege_group_privilege_dict["UpdateUser"]: + self.utility_wrap.reset_password(user=new_user_1, old_password=ct.default_password, + new_password=ct.default_password) + self.utility_wrap.update_password(user=new_user_1, old_password=ct.default_password, + new_password=ct.default_password) + else: + self.utility_wrap.reset_password(user=new_user_1, old_password=ct.default_password, + new_password=ct.default_password, + check_task=CheckTasks.check_permission_deny) + self.utility_wrap.update_password(user=new_user_1, old_password=ct.default_password, + new_password=ct.default_password, + check_task=CheckTasks.check_permission_deny) + # PrivilegeSelectUser + self.connection_wrap.connect(host=host, port=port, user=new_user, password=ct.default_password) + if privilege_group_privilege_dict["SelectUser"]: + self.utility_wrap.list_user(username="user1", include_role_info=True) + res = self.utility_wrap.list_users(include_role_info=True)[0] + assert len(res.groups) > 1 + else: + res = self.utility_wrap.list_user(username="user1", include_role_info=True)[0] + assert len(res.groups) == 1 + self.utility_wrap.list_users(include_role_info=True, check_task=CheckTasks.check_permission_deny)[0] + # PrivilegeCreateResourceGroup + if privilege_group_privilege_dict["CreateResourceGroup"]: + self.utility_wrap.create_resource_group(name="rg1") + else: + self.utility_wrap.create_resource_group(name="rg1", check_task=CheckTasks.check_permission_deny) + # PrivilegeDropResourceGroup + if privilege_group_privilege_dict["DropResourceGroup"]: + self.utility_wrap.drop_resource_group(name="rg1") + else: + self.utility_wrap.drop_resource_group(name="rg1", check_task=CheckTasks.check_permission_deny) + # PrivilegeUpdateResourceGroups + if privilege_group_privilege_dict["UpdateResourceGroups"]: + self.utility_wrap.update_resource_group(config={"resource_group_1": ResourceGroupConfig(requests={"node_num": 1})}, + check_task=CheckTasks.err_res, + check_items={"err_code": 300, + "err_msg": "resource group not found[rg=resource_group_1]"}) + else: + log.info("binbin6") + self.utility_wrap.update_resource_group(config={"resource_group_1": ResourceGroupConfig(requests={"node_num": 1})}, + check_task=CheckTasks.check_permission_deny) + # PrivilegeDescribeResourceGroup + if privilege_group_privilege_dict["DescribeResourceGroup"]: + self.utility_wrap.describe_resource_group(name="rg1", + check_task=CheckTasks.err_res, + check_items={"err_code": 300, + "err_msg": "resource group not found[rg=rg1]"}) + else: + self.utility_wrap.describe_resource_group(name="rg1", check_task=CheckTasks.check_permission_deny) + # PrivilegeListResourceGroups + if privilege_group_privilege_dict["ListResourceGroups"]: + self.utility_wrap.list_resource_groups() + else: + self.utility_wrap.list_resource_groups(check_task=CheckTasks.check_permission_deny) + # PrivilegeTransferNode + if privilege_group_privilege_dict["TransferNode"]: + self.utility_wrap.transfer_node(source="source", target="target", num_node=2, + check_task=CheckTasks.err_res, + check_items={"err_code": 300, + "err_msg": "resource group not found[rg=source]"} + ) + else: + self.utility_wrap.transfer_node(source="source", target="target", + num_node=2, check_task=CheckTasks.check_permission_deny) + # PrivilegeTransferReplica + if privilege_group_privilege_dict["TransferReplica"]: + self.utility_wrap.transfer_replica(source="source", target="target", + collection_name=collection_w.name, num_replica=2, + check_task=CheckTasks.err_res, + check_items={"err_code": 300, + "err_msg": "resource group not found[rg=source]"}) + else: + self.utility_wrap.transfer_replica(source="source", target="target", + collection_name=collection_w.name, num_replica=2, + check_task=CheckTasks.check_permission_deny) + # PrivilegeCreateDatabase + if privilege_group_privilege_dict["CreateDatabase"]: + self.database_wrap.create_database(db_name="new_db") + else: + self.database_wrap.create_database(db_name="new_db", check_task=CheckTasks.check_permission_deny) + # PrivilegeDropDatabase + if privilege_group_privilege_dict["DropDatabase"]: + self.database_wrap.drop_database(db_name="new_db") + else: + self.database_wrap.drop_database(db_name="default", check_task=CheckTasks.check_permission_deny) + # PrivilegeAlterDatabase + if privilege_group_privilege_dict["AlterDatabase"]: + self.database_wrap.set_properties(db_name="default", properties={}, + check_task=CheckTasks.err_res, + check_items={"err_code": 65535, + "err_msg": "alter database requires either properties " + "or deletekeys to modify or delete keys, " + "both cannot be empty"}) + else: + self.database_wrap.set_properties(db_name="default", properties={}, check_task=CheckTasks.check_permission_deny) + # PrivilegeFlushAll + if privilege_group_privilege_dict["FlushAll"]: + self.utility_wrap.flush_all() + else: + self.utility_wrap.flush_all(check_task=CheckTasks.check_permission_deny) + # PrivilegeListPrivilegeGroups + if privilege_group_privilege_dict["ListPrivilegeGroups"]: + self.utility_wrap.list_privilege_groups() + else: + self.utility_wrap.list_privilege_groups(check_task=CheckTasks.check_permission_deny) + # PrivilegeCreatePrivilegeGroup + if privilege_group_privilege_dict["CreatePrivilegeGroup"]: + self.utility_wrap.create_privilege_group("privilege_group_1") + else: + self.utility_wrap.create_privilege_group("privilege_group_1", check_task=CheckTasks.check_permission_deny) + # PrivilegeOperatePrivilegeGroup + if privilege_group_privilege_dict["OperatePrivilegeGroup"]: + self.utility_wrap.add_privileges_to_group("privilege_group_1", ["Insert"]) + self.utility_wrap.remove_privileges_from_group("privilege_group_1", ["Insert"]) + else: + self.utility_wrap.add_privileges_to_group("privilege_group_1", ["Insert"], + check_task=CheckTasks.check_permission_deny) + self.utility_wrap.remove_privileges_from_group("privilege_group_1", ["Insert"], + check_task=CheckTasks.check_permission_deny) + # PrivilegeDropPrivilegeGroup + if privilege_group_privilege_dict["DropPrivilegeGroup"]: + self.utility_wrap.drop_privilege_group("privilege_group_1") + else: + self.utility_wrap.drop_privilege_group("privilege_group_1", check_task=CheckTasks.check_permission_deny) From 2b53b0905ec1af5a0a55d950a855a016a0ea346c Mon Sep 17 00:00:00 2001 From: "yihao.dai" Date: Tue, 24 Dec 2024 20:06:49 +0800 Subject: [PATCH 04/69] fix: Fix 0 read count during import (#38694) issue: https://github.com/milvus-io/milvus/issues/38693 Signed-off-by: bigsheeper --- internal/util/importutilv2/common/util.go | 9 ++++- .../util/importutilv2/common/util_test.go | 40 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/internal/util/importutilv2/common/util.go b/internal/util/importutilv2/common/util.go index ba26bd5f91994..bb6e86d730152 100644 --- a/internal/util/importutilv2/common/util.go +++ b/internal/util/importutilv2/common/util.go @@ -84,8 +84,15 @@ func EstimateReadCountPerBatch(bufferSize int, schema *schemapb.CollectionSchema if err != nil { return 0, err } + if sizePerRecord <= 0 || bufferSize <= 0 { + return 0, fmt.Errorf("invalid size, sizePerRecord=%d, bufferSize=%d", sizePerRecord, bufferSize) + } if 1000*sizePerRecord <= bufferSize { return 1000, nil } - return int64(bufferSize) / int64(sizePerRecord), nil + ret := int64(bufferSize) / int64(sizePerRecord) + if ret <= 0 { + return 1, nil + } + return ret, nil } diff --git a/internal/util/importutilv2/common/util_test.go b/internal/util/importutilv2/common/util_test.go index efbb32cbdb201..cc7f14b531070 100644 --- a/internal/util/importutilv2/common/util_test.go +++ b/internal/util/importutilv2/common/util_test.go @@ -66,3 +66,43 @@ func TestUtil_EstimateReadCountPerBatch(t *testing.T) { _, err = EstimateReadCountPerBatch(16*1024*1024, schema) assert.Error(t, err) } + +func TestUtil_EstimateReadCountPerBatch_InvalidBufferSize(t *testing.T) { + schema := &schemapb.CollectionSchema{} + count, err := EstimateReadCountPerBatch(16*1024*1024, schema) + assert.Error(t, err) + assert.Equal(t, int64(0), count) + t.Logf("err=%v", err) + + schema = &schemapb.CollectionSchema{ + Fields: []*schemapb.FieldSchema{ + { + FieldID: 100, + DataType: schemapb.DataType_Int64, + }, + }, + } + count, err = EstimateReadCountPerBatch(0, schema) + assert.Error(t, err) + assert.Equal(t, int64(0), count) + t.Logf("err=%v", err) +} + +func TestUtil_EstimateReadCountPerBatch_LargeSchema(t *testing.T) { + schema := &schemapb.CollectionSchema{} + for i := 0; i < 100; i++ { + schema.Fields = append(schema.Fields, &schemapb.FieldSchema{ + FieldID: int64(i), + DataType: schemapb.DataType_VarChar, + TypeParams: []*commonpb.KeyValuePair{ + { + Key: common.MaxLengthKey, + Value: "10000000", + }, + }, + }) + } + count, err := EstimateReadCountPerBatch(16*1024*1024, schema) + assert.NoError(t, err) + assert.Equal(t, int64(1), count) +} From 69a9fd6ead9d25ee9e116c06e3b40581b972cab0 Mon Sep 17 00:00:00 2001 From: Zhen Ye Date: Tue, 24 Dec 2024 20:24:48 +0800 Subject: [PATCH 05/69] enhance: enable rmq for streaming (#38669) issue: #38399 --------- Signed-off-by: chyezh --- internal/distributed/streaming/streaming.go | 2 + internal/distributed/streaming/wal.go | 5 ++ .../mock_streaming/mock_WALAccesser.go | 45 ++++++++++++++++ .../querynodev2/delegator/delegator_data.go | 2 +- internal/util/pipeline/stream_pipeline.go | 2 +- .../util/streamingutil/util/wal_selector.go | 18 ++----- .../streamingutil/util/wal_selector_test.go | 35 ++++++------ pkg/mq/mqimpl/rocksmq/client/client_impl.go | 18 +++++++ pkg/mq/mqimpl/rocksmq/client/producer.go | 3 ++ pkg/mq/mqimpl/rocksmq/client/producer_impl.go | 14 +++++ pkg/mq/mqimpl/rocksmq/client/streaming.go | 53 +++++++++++++++++++ .../mqimpl/rocksmq/client/streaming_test.go | 36 +++++++++++++ pkg/streaming/proto/messages.proto | 6 +++ pkg/streaming/walimpls/impls/rmq/rmq_test.go | 3 +- pkg/streaming/walimpls/impls/rmq/wal.go | 2 +- 15 files changed, 207 insertions(+), 37 deletions(-) create mode 100644 pkg/mq/mqimpl/rocksmq/client/streaming.go create mode 100644 pkg/mq/mqimpl/rocksmq/client/streaming_test.go diff --git a/internal/distributed/streaming/streaming.go b/internal/distributed/streaming/streaming.go index 8ef6df73619d0..810b15065d6a3 100644 --- a/internal/distributed/streaming/streaming.go +++ b/internal/distributed/streaming/streaming.go @@ -78,6 +78,8 @@ type Scanner interface { // WALAccesser is the interfaces to interact with the milvus write ahead log. type WALAccesser interface { + WALName() string + // Txn returns a transaction for writing records to the log. // Once the txn is returned, the Commit or Rollback operation must be called once, otherwise resource leak on wal. Txn(ctx context.Context, opts TxnOption) (Txn, error) diff --git a/internal/distributed/streaming/wal.go b/internal/distributed/streaming/wal.go index 8caba0186bc05..b4d7fb5f90080 100644 --- a/internal/distributed/streaming/wal.go +++ b/internal/distributed/streaming/wal.go @@ -12,6 +12,7 @@ import ( "github.com/milvus-io/milvus/internal/streamingcoord/client" "github.com/milvus-io/milvus/internal/streamingnode/client/handler" "github.com/milvus-io/milvus/internal/util/streamingutil/status" + "github.com/milvus-io/milvus/internal/util/streamingutil/util" "github.com/milvus-io/milvus/pkg/streaming/util/message" "github.com/milvus-io/milvus/pkg/streaming/util/types" "github.com/milvus-io/milvus/pkg/util/conc" @@ -54,6 +55,10 @@ type walAccesserImpl struct { dispatchExecutionPool *conc.Pool[struct{}] } +func (w *walAccesserImpl) WALName() string { + return util.MustSelectWALName() +} + // RawAppend writes a record to the log. func (w *walAccesserImpl) RawAppend(ctx context.Context, msg message.MutableMessage, opts ...AppendOption) (*types.AppendResult, error) { assertValidMessage(msg) diff --git a/internal/mocks/distributed/mock_streaming/mock_WALAccesser.go b/internal/mocks/distributed/mock_streaming/mock_WALAccesser.go index 6b391ff89a062..e077e04030f15 100644 --- a/internal/mocks/distributed/mock_streaming/mock_WALAccesser.go +++ b/internal/mocks/distributed/mock_streaming/mock_WALAccesser.go @@ -331,6 +331,51 @@ func (_c *MockWALAccesser_Txn_Call) RunAndReturn(run func(context.Context, strea return _c } +// WALName provides a mock function with given fields: +func (_m *MockWALAccesser) WALName() string { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for WALName") + } + + var r0 string + if rf, ok := ret.Get(0).(func() string); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(string) + } + + return r0 +} + +// MockWALAccesser_WALName_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WALName' +type MockWALAccesser_WALName_Call struct { + *mock.Call +} + +// WALName is a helper method to define mock.On call +func (_e *MockWALAccesser_Expecter) WALName() *MockWALAccesser_WALName_Call { + return &MockWALAccesser_WALName_Call{Call: _e.mock.On("WALName")} +} + +func (_c *MockWALAccesser_WALName_Call) Run(run func()) *MockWALAccesser_WALName_Call { + _c.Call.Run(func(args mock.Arguments) { + run() + }) + return _c +} + +func (_c *MockWALAccesser_WALName_Call) Return(_a0 string) *MockWALAccesser_WALName_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockWALAccesser_WALName_Call) RunAndReturn(run func() string) *MockWALAccesser_WALName_Call { + _c.Call.Return(run) + return _c +} + // NewMockWALAccesser creates a new instance of MockWALAccesser. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. // The first argument is typically a *testing.T value. func NewMockWALAccesser(t interface { diff --git a/internal/querynodev2/delegator/delegator_data.go b/internal/querynodev2/delegator/delegator_data.go index a6ffc4f1b0d86..b21d7784ac616 100644 --- a/internal/querynodev2/delegator/delegator_data.go +++ b/internal/querynodev2/delegator/delegator_data.go @@ -735,7 +735,7 @@ func (sd *shardDelegator) createDeleteStreamFromStreamingService(ctx context.Con s := streaming.WAL().Read(ctx, streaming.ReadOption{ VChannel: position.GetChannelName(), DeliverPolicy: options.DeliverPolicyStartFrom( - adaptor.MustGetMessageIDFromMQWrapperIDBytes("pulsar", position.GetMsgID()), + adaptor.MustGetMessageIDFromMQWrapperIDBytes(streaming.WAL().WALName(), position.GetMsgID()), ), DeliverFilters: []options.DeliverFilter{ // only deliver message which timestamp >= position.Timestamp diff --git a/internal/util/pipeline/stream_pipeline.go b/internal/util/pipeline/stream_pipeline.go index 204b6cfb0019c..888f1a9da009a 100644 --- a/internal/util/pipeline/stream_pipeline.go +++ b/internal/util/pipeline/stream_pipeline.go @@ -95,7 +95,7 @@ func (p *streamPipeline) ConsumeMsgStream(ctx context.Context, position *msgpb.M } if streamingutil.IsStreamingServiceEnabled() { - startFrom := adaptor.MustGetMessageIDFromMQWrapperIDBytes("pulsar", position.GetMsgID()) + startFrom := adaptor.MustGetMessageIDFromMQWrapperIDBytes(streaming.WAL().WALName(), position.GetMsgID()) log.Info( "stream pipeline seeks from position with scanner", zap.String("channel", position.GetChannelName()), diff --git a/internal/util/streamingutil/util/wal_selector.go b/internal/util/streamingutil/util/wal_selector.go index cbb24db457485..ef6c7abfba914 100644 --- a/internal/util/streamingutil/util/wal_selector.go +++ b/internal/util/streamingutil/util/wal_selector.go @@ -2,14 +2,13 @@ package util import ( "github.com/cockroachdb/errors" - "go.uber.org/atomic" "github.com/milvus-io/milvus/pkg/util/paramtable" + "github.com/milvus-io/milvus/pkg/util/typeutil" ) const ( walTypeDefault = "default" - walTypeNatsmq = "natsmq" walTypeRocksmq = "rocksmq" walTypeKafka = "kafka" walTypePulsar = "pulsar" @@ -17,25 +16,16 @@ const ( type walEnable struct { Rocksmq bool - Natsmq bool Pulsar bool Kafka bool } -var isStandAlone = atomic.NewBool(false) - -// EnableStandAlone enable standalone mode. -func EnableStandAlone(standalone bool) { - isStandAlone.Store(standalone) -} - // MustSelectWALName select wal name. func MustSelectWALName() string { - standalone := isStandAlone.Load() params := paramtable.Get() + standalone := params.RuntimeConfig.Role.GetAsString() == typeutil.StandaloneRole return mustSelectWALName(standalone, params.MQCfg.Type.GetValue(), walEnable{ params.RocksmqEnable(), - params.NatsmqEnable(), params.PulsarEnable(), params.KafkaEnable(), }) @@ -68,8 +58,8 @@ func validateWALName(standalone bool, mqType string) error { // we may register more mq type by plugin. // so we should not check all mq type here. // only check standalone type. - if !standalone && (mqType == walTypeRocksmq || mqType == walTypeNatsmq) { - return errors.Newf("mq %s is only valid in standalone mode") + if !standalone && mqType == walTypeRocksmq { + return errors.Newf("mq %s is only valid in standalone mode", mqType) } return nil } diff --git a/internal/util/streamingutil/util/wal_selector_test.go b/internal/util/streamingutil/util/wal_selector_test.go index 6343eaf1b3718..a3cc1804254e0 100644 --- a/internal/util/streamingutil/util/wal_selector_test.go +++ b/internal/util/streamingutil/util/wal_selector_test.go @@ -7,27 +7,24 @@ import ( ) func TestValidateWALType(t *testing.T) { - assert.Error(t, validateWALName(false, walTypeNatsmq)) assert.Error(t, validateWALName(false, walTypeRocksmq)) } func TestSelectWALType(t *testing.T) { - assert.Equal(t, mustSelectWALName(true, walTypeDefault, walEnable{true, true, true, true}), walTypeRocksmq) - assert.Equal(t, mustSelectWALName(true, walTypeDefault, walEnable{false, true, true, true}), walTypePulsar) - assert.Equal(t, mustSelectWALName(true, walTypeDefault, walEnable{false, false, true, true}), walTypePulsar) - assert.Equal(t, mustSelectWALName(true, walTypeDefault, walEnable{false, false, false, true}), walTypeKafka) - assert.Panics(t, func() { mustSelectWALName(true, walTypeDefault, walEnable{false, false, false, false}) }) - assert.Equal(t, mustSelectWALName(false, walTypeDefault, walEnable{true, true, true, true}), walTypePulsar) - assert.Equal(t, mustSelectWALName(false, walTypeDefault, walEnable{false, true, true, true}), walTypePulsar) - assert.Equal(t, mustSelectWALName(false, walTypeDefault, walEnable{false, false, true, true}), walTypePulsar) - assert.Equal(t, mustSelectWALName(false, walTypeDefault, walEnable{false, false, false, true}), walTypeKafka) - assert.Panics(t, func() { mustSelectWALName(false, walTypeDefault, walEnable{false, false, false, false}) }) - assert.Equal(t, mustSelectWALName(true, walTypeRocksmq, walEnable{true, true, true, true}), walTypeRocksmq) - assert.Equal(t, mustSelectWALName(true, walTypeNatsmq, walEnable{true, true, true, true}), walTypeNatsmq) - assert.Equal(t, mustSelectWALName(true, walTypePulsar, walEnable{true, true, true, true}), walTypePulsar) - assert.Equal(t, mustSelectWALName(true, walTypeKafka, walEnable{true, true, true, true}), walTypeKafka) - assert.Panics(t, func() { mustSelectWALName(false, walTypeRocksmq, walEnable{true, true, true, true}) }) - assert.Panics(t, func() { mustSelectWALName(false, walTypeNatsmq, walEnable{true, true, true, true}) }) - assert.Equal(t, mustSelectWALName(false, walTypePulsar, walEnable{true, true, true, true}), walTypePulsar) - assert.Equal(t, mustSelectWALName(false, walTypeKafka, walEnable{true, true, true, true}), walTypeKafka) + assert.Equal(t, mustSelectWALName(true, walTypeDefault, walEnable{true, true, true}), walTypeRocksmq) + assert.Equal(t, mustSelectWALName(true, walTypeDefault, walEnable{false, true, true}), walTypePulsar) + assert.Equal(t, mustSelectWALName(true, walTypeDefault, walEnable{false, true, true}), walTypePulsar) + assert.Equal(t, mustSelectWALName(true, walTypeDefault, walEnable{false, false, true}), walTypeKafka) + assert.Panics(t, func() { mustSelectWALName(true, walTypeDefault, walEnable{false, false, false}) }) + assert.Equal(t, mustSelectWALName(false, walTypeDefault, walEnable{true, true, true}), walTypePulsar) + assert.Equal(t, mustSelectWALName(false, walTypeDefault, walEnable{false, true, true}), walTypePulsar) + assert.Equal(t, mustSelectWALName(false, walTypeDefault, walEnable{false, true, true}), walTypePulsar) + assert.Equal(t, mustSelectWALName(false, walTypeDefault, walEnable{false, false, true}), walTypeKafka) + assert.Panics(t, func() { mustSelectWALName(false, walTypeDefault, walEnable{false, false, false}) }) + assert.Equal(t, mustSelectWALName(true, walTypeRocksmq, walEnable{true, true, true}), walTypeRocksmq) + assert.Equal(t, mustSelectWALName(true, walTypePulsar, walEnable{true, true, true}), walTypePulsar) + assert.Equal(t, mustSelectWALName(true, walTypeKafka, walEnable{true, true, true}), walTypeKafka) + assert.Panics(t, func() { mustSelectWALName(false, walTypeRocksmq, walEnable{true, true, true}) }) + assert.Equal(t, mustSelectWALName(false, walTypePulsar, walEnable{true, true, true}), walTypePulsar) + assert.Equal(t, mustSelectWALName(false, walTypeKafka, walEnable{true, true, true}), walTypeKafka) } diff --git a/pkg/mq/mqimpl/rocksmq/client/client_impl.go b/pkg/mq/mqimpl/rocksmq/client/client_impl.go index d550468fedf67..f68e6c602f2e1 100644 --- a/pkg/mq/mqimpl/rocksmq/client/client_impl.go +++ b/pkg/mq/mqimpl/rocksmq/client/client_impl.go @@ -15,6 +15,7 @@ import ( "context" "reflect" "sync" + "time" "github.com/cockroachdb/errors" "go.uber.org/zap" @@ -139,6 +140,7 @@ func (c *client) consume(consumer *consumer) { var consumerCh chan<- common.Message var waitForSent *RmqMessage var newIncomingMsgCh <-chan struct{} + var timerNotify <-chan time.Time if len(pendingMsgs) > 0 { // If there's pending sent messages, we can try to deliver them first. consumerCh = consumer.messageCh @@ -148,6 +150,9 @@ func (c *client) consume(consumer *consumer) { // !!! TODO: MsgMutex may lost, not sync up with the consumer, // so the tailing message cannot be consumed if no new producing message. newIncomingMsgCh = consumer.MsgMutex() + // It's a bad implementation here, for quickly fixing the previous problem. + // Every 100ms, wake up and check if the consumer has new incoming data. + timerNotify = time.After(100 * time.Millisecond) } select { @@ -162,6 +167,8 @@ func (c *client) consume(consumer *consumer) { log.Info("Consumer MsgMutex closed") return } + case <-timerNotify: + continue } } } @@ -191,6 +198,17 @@ func (c *client) tryToConsume(consumer *consumer) []*RmqMessage { } rmqMsgs := make([]*RmqMessage, 0, len(msgs)) for _, msg := range msgs { + rmqMsg, err := unmarshalStreamingMessage(consumer.topic, msg) + if err == nil { + rmqMsgs = append(rmqMsgs, rmqMsg) + continue + } + if !errors.Is(err, errNotStreamingServiceMessage) { + log.Warn("Consumer's goroutine cannot unmarshal streaming message: ", zap.Error(err)) + continue + } + // then fallback to the legacy message format. + // This is the hack, we put property into pl properties := make(map[string]string, 0) pl, err := UnmarshalHeader(msg.Payload) diff --git a/pkg/mq/mqimpl/rocksmq/client/producer.go b/pkg/mq/mqimpl/rocksmq/client/producer.go index 65fc19a8dc4b4..50388478a44d5 100644 --- a/pkg/mq/mqimpl/rocksmq/client/producer.go +++ b/pkg/mq/mqimpl/rocksmq/client/producer.go @@ -28,6 +28,9 @@ type Producer interface { // publish a message Send(message *common.ProducerMessage) (UniqueID, error) + // publish a message for new streaming service. + SendForStreamingService(message *common.ProducerMessage) (UniqueID, error) + // Close a producer Close() } diff --git a/pkg/mq/mqimpl/rocksmq/client/producer_impl.go b/pkg/mq/mqimpl/rocksmq/client/producer_impl.go index f858bce63cc30..4f2aad064c293 100644 --- a/pkg/mq/mqimpl/rocksmq/client/producer_impl.go +++ b/pkg/mq/mqimpl/rocksmq/client/producer_impl.go @@ -76,6 +76,20 @@ func (p *producer) Send(message *common.ProducerMessage) (UniqueID, error) { return ids[0], nil } +func (p *producer) SendForStreamingService(message *common.ProducerMessage) (UniqueID, error) { + payload, err := marshalStreamingMessage(message) + if err != nil { + return 0, err + } + ids, err := p.c.server.Produce(p.topic, []server.ProducerMessage{{ + Payload: payload, + }}) + if err != nil { + return 0, err + } + return ids[0], nil +} + // Close destroy the topic of this producer in rocksmq func (p *producer) Close() { err := p.c.server.DestroyTopic(p.topic) diff --git a/pkg/mq/mqimpl/rocksmq/client/streaming.go b/pkg/mq/mqimpl/rocksmq/client/streaming.go new file mode 100644 index 0000000000000..c317bb26d9ed9 --- /dev/null +++ b/pkg/mq/mqimpl/rocksmq/client/streaming.go @@ -0,0 +1,53 @@ +package client + +import ( + "bytes" + + "github.com/cockroachdb/errors" + "google.golang.org/protobuf/proto" + + "github.com/milvus-io/milvus/pkg/mq/common" + "github.com/milvus-io/milvus/pkg/mq/mqimpl/rocksmq/server" + "github.com/milvus-io/milvus/pkg/streaming/proto/messagespb" +) + +var ( + // magicPrefix is used to identify the rocksmq legacy message and new message for streaming service. + // Make a low probability of collision with the legacy proto message. + magicPrefix = append([]byte{0xFF, 0xFE, 0xFD, 0xFC}, []byte("STREAM")...) + errNotStreamingServiceMessage = errors.New("not a streaming service message") +) + +// marshalStreamingMessage marshals a streaming message to bytes. +func marshalStreamingMessage(message *common.ProducerMessage) ([]byte, error) { + rmqMessage := &messagespb.RMQMessageLayout{ + Payload: message.Payload, + Properties: message.Properties, + } + payload, err := proto.Marshal(rmqMessage) + if err != nil { + return nil, err + } + finalPayload := make([]byte, len(payload)+len(magicPrefix)) + copy(finalPayload, magicPrefix) + copy(finalPayload[len(magicPrefix):], payload) + return finalPayload, nil +} + +// unmarshalStreamingMessage unmarshals a streaming message from bytes. +func unmarshalStreamingMessage(topic string, msg server.ConsumerMessage) (*RmqMessage, error) { + if !bytes.HasPrefix(msg.Payload, magicPrefix) { + return nil, errNotStreamingServiceMessage + } + + var rmqMessage messagespb.RMQMessageLayout + if err := proto.Unmarshal(msg.Payload[len(magicPrefix):], &rmqMessage); err != nil { + return nil, err + } + return &RmqMessage{ + msgID: msg.MsgID, + payload: rmqMessage.Payload, + properties: rmqMessage.Properties, + topic: topic, + }, nil +} diff --git a/pkg/mq/mqimpl/rocksmq/client/streaming_test.go b/pkg/mq/mqimpl/rocksmq/client/streaming_test.go new file mode 100644 index 0000000000000..3028c98fb8c13 --- /dev/null +++ b/pkg/mq/mqimpl/rocksmq/client/streaming_test.go @@ -0,0 +1,36 @@ +package client + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/milvus-io/milvus/pkg/mq/common" + "github.com/milvus-io/milvus/pkg/mq/mqimpl/rocksmq/server" +) + +func TestStreaming(t *testing.T) { + payload, err := marshalStreamingMessage(&common.ProducerMessage{ + Payload: []byte("payload"), + Properties: map[string]string{ + "key": "value", + }, + }) + assert.NoError(t, err) + assert.NotNil(t, payload) + + msg, err := unmarshalStreamingMessage("topic", server.ConsumerMessage{ + MsgID: 1, + Payload: payload, + }) + assert.NoError(t, err) + assert.Equal(t, string(msg.Payload()), "payload") + assert.Equal(t, msg.Properties()["key"], "value") + msg, err = unmarshalStreamingMessage("topic", server.ConsumerMessage{ + MsgID: 1, + Payload: payload[1:], + }) + assert.Error(t, err) + assert.ErrorIs(t, err, errNotStreamingServiceMessage) + assert.Nil(t, msg) +} diff --git a/pkg/streaming/proto/messages.proto b/pkg/streaming/proto/messages.proto index 62b84f98a2c80..091e59042729c 100644 --- a/pkg/streaming/proto/messages.proto +++ b/pkg/streaming/proto/messages.proto @@ -242,3 +242,9 @@ enum TxnState { // the transaction is rollbacked. TxnRollbacked = 6; } + +// RMQMessageLayout is the layout of message for RMQ. +message RMQMessageLayout { + bytes payload = 1; // message body + map properties = 2; // message properties +} diff --git a/pkg/streaming/walimpls/impls/rmq/rmq_test.go b/pkg/streaming/walimpls/impls/rmq/rmq_test.go index a8fc81d209c78..47e9f57043fc2 100644 --- a/pkg/streaming/walimpls/impls/rmq/rmq_test.go +++ b/pkg/streaming/walimpls/impls/rmq/rmq_test.go @@ -8,6 +8,7 @@ import ( "github.com/milvus-io/milvus/pkg/mq/mqimpl/rocksmq/server" "github.com/milvus-io/milvus/pkg/streaming/util/message" + "github.com/milvus-io/milvus/pkg/streaming/walimpls" "github.com/milvus-io/milvus/pkg/streaming/walimpls/registry" "github.com/milvus-io/milvus/pkg/util/paramtable" ) @@ -35,5 +36,5 @@ func TestRegistry(t *testing.T) { } func TestWAL(t *testing.T) { - // walimpls.NewWALImplsTestFramework(t, 100, &builderImpl{}).Run() + walimpls.NewWALImplsTestFramework(t, 1000, &builderImpl{}).Run() } diff --git a/pkg/streaming/walimpls/impls/rmq/wal.go b/pkg/streaming/walimpls/impls/rmq/wal.go index c2cf37eeaee27..6e22d23859249 100644 --- a/pkg/streaming/walimpls/impls/rmq/wal.go +++ b/pkg/streaming/walimpls/impls/rmq/wal.go @@ -30,7 +30,7 @@ func (w *walImpl) WALName() string { // Append appends a message to the wal. func (w *walImpl) Append(ctx context.Context, msg message.MutableMessage) (message.MessageID, error) { - id, err := w.p.Send(&common.ProducerMessage{ + id, err := w.p.SendForStreamingService(&common.ProducerMessage{ Payload: msg.Payload(), Properties: msg.Properties().ToRawMap(), }) From 118678bd916123bcd44ae08606fc4af996bc5e45 Mon Sep 17 00:00:00 2001 From: Zhen Ye Date: Tue, 24 Dec 2024 21:00:49 +0800 Subject: [PATCH 06/69] enhance: make runtime config into a global environment table (#38671) issue: #38399 --------- Signed-off-by: chyezh --- cmd/roles/roles.go | 18 +++++++----- cmd/roles/roles_test.go | 13 -------- pkg/util/paramtable/component_param.go | 13 ++++---- pkg/util/paramtable/param_item.go | 36 ----------------------- pkg/util/paramtable/runtime.go | 32 +++++++++++++------- pkg/util/paramtable/service_param_test.go | 12 ++++++++ 6 files changed, 51 insertions(+), 73 deletions(-) diff --git a/cmd/roles/roles.go b/cmd/roles/roles.go index 5f355436fc867..02543e6ea8fc1 100644 --- a/cmd/roles/roles.go +++ b/cmd/roles/roles.go @@ -23,7 +23,6 @@ import ( "os/signal" "path/filepath" "runtime/debug" - "strings" "sync" "syscall" "time" @@ -173,13 +172,6 @@ func NewMilvusRoles() *MilvusRoles { return mr } -// EnvValue not used now. -func (mr *MilvusRoles) EnvValue(env string) bool { - env = strings.ToLower(env) - env = strings.Trim(env, " ") - return env == "1" || env == "true" -} - func (mr *MilvusRoles) printLDPreLoad() { const LDPreLoad = "LD_PRELOAD" val, ok := os.LookupEnv(LDPreLoad) @@ -449,45 +441,55 @@ func (mr *MilvusRoles) Run() { if mr.EnableRootCoord { rootCoord = mr.runRootCoord(ctx, local, &wg) componentMap[typeutil.RootCoordRole] = rootCoord + paramtable.SetLocalComponentEnabled(typeutil.RootCoordRole) } if mr.EnableDataCoord { dataCoord = mr.runDataCoord(ctx, local, &wg) componentMap[typeutil.DataCoordRole] = dataCoord + paramtable.SetLocalComponentEnabled(typeutil.DataCoordRole) } if mr.EnableIndexCoord { indexCoord = mr.runIndexCoord(ctx, local, &wg) componentMap[typeutil.IndexCoordRole] = indexCoord + paramtable.SetLocalComponentEnabled(typeutil.IndexCoordRole) } if mr.EnableQueryCoord { queryCoord = mr.runQueryCoord(ctx, local, &wg) componentMap[typeutil.QueryCoordRole] = queryCoord + paramtable.SetLocalComponentEnabled(typeutil.QueryCoordRole) } if mr.EnableQueryNode { queryNode = mr.runQueryNode(ctx, local, &wg) componentMap[typeutil.QueryNodeRole] = queryNode + paramtable.SetLocalComponentEnabled(typeutil.QueryNodeRole) } if mr.EnableDataNode { dataNode = mr.runDataNode(ctx, local, &wg) componentMap[typeutil.DataNodeRole] = dataNode + paramtable.SetLocalComponentEnabled(typeutil.DataNodeRole) } if mr.EnableIndexNode { indexNode = mr.runIndexNode(ctx, local, &wg) componentMap[typeutil.IndexNodeRole] = indexNode + paramtable.SetLocalComponentEnabled(typeutil.IndexNodeRole) } if mr.EnableProxy { proxy = mr.runProxy(ctx, local, &wg) componentMap[typeutil.ProxyRole] = proxy + paramtable.SetLocalComponentEnabled(typeutil.ProxyRole) } if mr.EnableStreamingNode { + // Before initializing the local streaming node, make sure the local registry is ready. streamingNode = mr.runStreamingNode(ctx, local, &wg) componentMap[typeutil.StreamingNodeRole] = streamingNode + paramtable.SetLocalComponentEnabled(typeutil.StreamingNodeRole) } wg.Wait() diff --git a/cmd/roles/roles_test.go b/cmd/roles/roles_test.go index 69bbd18b46b42..f57763903312f 100644 --- a/cmd/roles/roles_test.go +++ b/cmd/roles/roles_test.go @@ -28,19 +28,6 @@ import ( ) func TestRoles(t *testing.T) { - r := MilvusRoles{} - - assert.True(t, r.EnvValue("1")) - assert.True(t, r.EnvValue(" 1 ")) - assert.True(t, r.EnvValue("True")) - assert.True(t, r.EnvValue(" True ")) - assert.True(t, r.EnvValue(" TRue ")) - assert.False(t, r.EnvValue("0")) - assert.False(t, r.EnvValue(" 0 ")) - assert.False(t, r.EnvValue(" false ")) - assert.False(t, r.EnvValue(" False ")) - assert.False(t, r.EnvValue(" abc ")) - ss := strings.SplitN("abcdef", "=", 2) assert.Equal(t, len(ss), 1) ss = strings.SplitN("adb=def", "=", 2) diff --git a/pkg/util/paramtable/component_param.go b/pkg/util/paramtable/component_param.go index 3f8723482311c..c76ef7f233058 100644 --- a/pkg/util/paramtable/component_param.go +++ b/pkg/util/paramtable/component_param.go @@ -26,6 +26,7 @@ import ( "time" "github.com/shirou/gopsutil/v3/disk" + "go.uber.org/atomic" "go.uber.org/zap" "github.com/milvus-io/milvus/pkg/config" @@ -104,8 +105,6 @@ type ComponentParam struct { StreamingCoordGrpcClientCfg GrpcClientConfig StreamingNodeGrpcClientCfg GrpcClientConfig IntegrationTestCfg integrationTestConfig - - RuntimeConfig runtimeConfig } // Init initialize once @@ -4850,11 +4849,13 @@ It's ok to set it into duration string, such as 30s or 1m30s, see time.ParseDura p.TxnDefaultKeepaliveTimeout.Init(base.mgr) } +// runtimeConfig is just a private environment value table. type runtimeConfig struct { - CreateTime RuntimeParamItem - UpdateTime RuntimeParamItem - Role RuntimeParamItem - NodeID RuntimeParamItem + createTime time.Time + updateTime time.Time + role string + nodeID atomic.Int64 + components map[string]struct{} } type integrationTestConfig struct { diff --git a/pkg/util/paramtable/param_item.go b/pkg/util/paramtable/param_item.go index b8718b65ba848..93be87ce7cdaa 100644 --- a/pkg/util/paramtable/param_item.go +++ b/pkg/util/paramtable/param_item.go @@ -396,39 +396,3 @@ func getAndConvert[T any](v string, converter func(input string) (T, error), def } return t } - -type RuntimeParamItem struct { - value atomic.Value -} - -func (rpi *RuntimeParamItem) GetValue() any { - return rpi.value.Load() -} - -func (rpi *RuntimeParamItem) GetAsString() string { - value, ok := rpi.value.Load().(string) - if !ok { - return "" - } - return value -} - -func (rpi *RuntimeParamItem) GetAsTime() time.Time { - value, ok := rpi.value.Load().(time.Time) - if !ok { - return time.Time{} - } - return value -} - -func (rpi *RuntimeParamItem) GetAsInt64() int64 { - value, ok := rpi.value.Load().(int64) - if !ok { - return 0 - } - return value -} - -func (rpi *RuntimeParamItem) SetValue(value any) { - rpi.value.Store(value) -} diff --git a/pkg/util/paramtable/runtime.go b/pkg/util/paramtable/runtime.go index 7d9b67aed075e..a961c5be63d23 100644 --- a/pkg/util/paramtable/runtime.go +++ b/pkg/util/paramtable/runtime.go @@ -23,8 +23,11 @@ import ( ) var ( - once sync.Once - params ComponentParam + once sync.Once + params ComponentParam + runtimeParam = runtimeConfig{ + components: make(map[string]struct{}, 0), + } hookParams hookConfig ) @@ -58,11 +61,11 @@ func GetHookParams() *hookConfig { } func SetNodeID(newID UniqueID) { - params.RuntimeConfig.NodeID.SetValue(newID) + runtimeParam.nodeID.Store(newID) } func GetNodeID() UniqueID { - return params.RuntimeConfig.NodeID.GetAsInt64() + return runtimeParam.nodeID.Load() } func GetStringNodeID() string { @@ -70,25 +73,34 @@ func GetStringNodeID() string { } func SetRole(role string) { - params.RuntimeConfig.Role.SetValue(role) + runtimeParam.role = role } func GetRole() string { - return params.RuntimeConfig.Role.GetAsString() + return runtimeParam.role } func SetCreateTime(d time.Time) { - params.RuntimeConfig.CreateTime.SetValue(d) + runtimeParam.createTime = d } func GetCreateTime() time.Time { - return params.RuntimeConfig.CreateTime.GetAsTime() + return runtimeParam.createTime } func SetUpdateTime(d time.Time) { - params.RuntimeConfig.UpdateTime.SetValue(d) + runtimeParam.updateTime = d } func GetUpdateTime() time.Time { - return params.RuntimeConfig.UpdateTime.GetAsTime() + return runtimeParam.updateTime +} + +func SetLocalComponentEnabled(component string) { + runtimeParam.components[component] = struct{}{} +} + +func IsLocalComponentEnabled(component string) bool { + _, ok := runtimeParam.components[component] + return ok } diff --git a/pkg/util/paramtable/service_param_test.go b/pkg/util/paramtable/service_param_test.go index 404ef45e6d0ea..e8f8584e4855e 100644 --- a/pkg/util/paramtable/service_param_test.go +++ b/pkg/util/paramtable/service_param_test.go @@ -25,6 +25,7 @@ import ( "github.com/milvus-io/milvus/pkg/config" "github.com/milvus-io/milvus/pkg/util" "github.com/milvus-io/milvus/pkg/util/metricsinfo" + "github.com/milvus-io/milvus/pkg/util/typeutil" ) func TestServiceParam(t *testing.T) { @@ -221,3 +222,14 @@ func TestServiceParam(t *testing.T) { assert.Equal(t, 10000, Params.PaginationSize.GetAsInt()) }) } + +func TestRuntimConfig(t *testing.T) { + SetRole(typeutil.StandaloneRole) + assert.Equal(t, GetRole(), typeutil.StandaloneRole) + + SetLocalComponentEnabled(typeutil.QueryNodeRole) + assert.True(t, IsLocalComponentEnabled(typeutil.QueryNodeRole)) + + SetLocalComponentEnabled(typeutil.QueryCoordRole) + assert.True(t, IsLocalComponentEnabled(typeutil.QueryCoordRole)) +} From 05d9f8562f3ae1b25f59af6bf46aab65acc845ad Mon Sep 17 00:00:00 2001 From: Zhen Ye Date: Wed, 25 Dec 2024 10:14:49 +0800 Subject: [PATCH 07/69] fix: fix complie error generated by conflict pr (#38729) issue: #38399 Signed-off-by: chyezh --- internal/util/streamingutil/util/wal_selector.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/util/streamingutil/util/wal_selector.go b/internal/util/streamingutil/util/wal_selector.go index ef6c7abfba914..3c2f0c71f59b2 100644 --- a/internal/util/streamingutil/util/wal_selector.go +++ b/internal/util/streamingutil/util/wal_selector.go @@ -22,8 +22,8 @@ type walEnable struct { // MustSelectWALName select wal name. func MustSelectWALName() string { + standalone := paramtable.GetRole() == typeutil.StandaloneRole params := paramtable.Get() - standalone := params.RuntimeConfig.Role.GetAsString() == typeutil.StandaloneRole return mustSelectWALName(standalone, params.MQCfg.Type.GetValue(), walEnable{ params.RocksmqEnable(), params.PulsarEnable(), From 285289d5b06291a2d204effb2be00a2885e81c1b Mon Sep 17 00:00:00 2001 From: Zhen Ye Date: Wed, 25 Dec 2024 10:22:50 +0800 Subject: [PATCH 08/69] enhance: implement kafka for wal (#38598) issue: #38399 --------- Signed-off-by: chyezh --- internal/streamingnode/server/server.go | 1 + .../server/wal/adaptor/scanner_adaptor.go | 2 +- .../msgstream/mqwrapper/kafka/kafka_client.go | 6 +- .../mqwrapper/kafka/kafka_client_test.go | 2 +- .../mqwrapper/kafka/kafka_consumer.go | 6 +- .../mqwrapper/kafka/kafka_consumer_test.go | 14 +-- pkg/mq/msgstream/mqwrapper/kafka/kafka_id.go | 28 +++-- .../mqwrapper/kafka/kafka_id_test.go | 18 +-- .../mqwrapper/kafka/kafka_message.go | 2 +- .../mqwrapper/kafka/kafka_message_test.go | 2 +- .../mqwrapper/kafka/kafka_producer.go | 2 +- .../util/message/adaptor/message_id.go | 13 +++ .../util/message/adaptor/message_id_test.go | 4 + pkg/streaming/walimpls/impls/kafka/builder.go | 109 ++++++++++++++++++ .../walimpls/impls/kafka/kafka_test.go | 54 +++++++++ .../walimpls/impls/kafka/message_id.go | 68 +++++++++++ .../walimpls/impls/kafka/message_id_test.go | 32 +++++ pkg/streaming/walimpls/impls/kafka/opener.go | 73 ++++++++++++ pkg/streaming/walimpls/impls/kafka/scanner.go | 88 ++++++++++++++ pkg/streaming/walimpls/impls/kafka/wal.go | 105 +++++++++++++++++ .../walimpls/impls/pulsar/message_id_test.go | 9 ++ .../walimpls/impls/rmq/message_id_test.go | 5 + pkg/util/paramtable/param_item.go | 12 +- 23 files changed, 614 insertions(+), 41 deletions(-) create mode 100644 pkg/streaming/walimpls/impls/kafka/builder.go create mode 100644 pkg/streaming/walimpls/impls/kafka/kafka_test.go create mode 100644 pkg/streaming/walimpls/impls/kafka/message_id.go create mode 100644 pkg/streaming/walimpls/impls/kafka/message_id_test.go create mode 100644 pkg/streaming/walimpls/impls/kafka/opener.go create mode 100644 pkg/streaming/walimpls/impls/kafka/scanner.go create mode 100644 pkg/streaming/walimpls/impls/kafka/wal.go diff --git a/internal/streamingnode/server/server.go b/internal/streamingnode/server/server.go index 52413071dab22..8956d8d78eaac 100644 --- a/internal/streamingnode/server/server.go +++ b/internal/streamingnode/server/server.go @@ -11,6 +11,7 @@ import ( "github.com/milvus-io/milvus/internal/util/sessionutil" "github.com/milvus-io/milvus/pkg/log" "github.com/milvus-io/milvus/pkg/streaming/proto/streamingpb" + _ "github.com/milvus-io/milvus/pkg/streaming/walimpls/impls/kafka" _ "github.com/milvus-io/milvus/pkg/streaming/walimpls/impls/pulsar" _ "github.com/milvus-io/milvus/pkg/streaming/walimpls/impls/rmq" ) diff --git a/internal/streamingnode/server/wal/adaptor/scanner_adaptor.go b/internal/streamingnode/server/wal/adaptor/scanner_adaptor.go index 8f17d68773d74..6e293353c40e4 100644 --- a/internal/streamingnode/server/wal/adaptor/scanner_adaptor.go +++ b/internal/streamingnode/server/wal/adaptor/scanner_adaptor.go @@ -114,7 +114,7 @@ func (s *scannerAdaptorImpl) executeConsume() { Message: s.pendingQueue.Next(), }) if handleResult.Error != nil { - s.Finish(err) + s.Finish(handleResult.Error) return } if handleResult.MessageHandled { diff --git a/pkg/mq/msgstream/mqwrapper/kafka/kafka_client.go b/pkg/mq/msgstream/mqwrapper/kafka/kafka_client.go index f2d0bddb10df9..3755060b7ec5a 100644 --- a/pkg/mq/msgstream/mqwrapper/kafka/kafka_client.go +++ b/pkg/mq/msgstream/mqwrapper/kafka/kafka_client.go @@ -241,7 +241,7 @@ func (kc *kafkaClient) Subscribe(ctx context.Context, options mqwrapper.Consumer } func (kc *kafkaClient) EarliestMessageID() common.MessageID { - return &kafkaID{messageID: int64(kafka.OffsetBeginning)} + return &KafkaID{MessageID: int64(kafka.OffsetBeginning)} } func (kc *kafkaClient) StringToMsgID(id string) (common.MessageID, error) { @@ -250,7 +250,7 @@ func (kc *kafkaClient) StringToMsgID(id string) (common.MessageID, error) { return nil, err } - return &kafkaID{messageID: offset}, nil + return &KafkaID{MessageID: offset}, nil } func (kc *kafkaClient) specialExtraConfig(current *kafka.ConfigMap, special kafka.ConfigMap) { @@ -265,7 +265,7 @@ func (kc *kafkaClient) specialExtraConfig(current *kafka.ConfigMap, special kafk func (kc *kafkaClient) BytesToMsgID(id []byte) (common.MessageID, error) { offset := DeserializeKafkaID(id) - return &kafkaID{messageID: offset}, nil + return &KafkaID{MessageID: offset}, nil } func (kc *kafkaClient) Close() { diff --git a/pkg/mq/msgstream/mqwrapper/kafka/kafka_client_test.go b/pkg/mq/msgstream/mqwrapper/kafka/kafka_client_test.go index 565fc67cad61f..27417ae56a2f2 100644 --- a/pkg/mq/msgstream/mqwrapper/kafka/kafka_client_test.go +++ b/pkg/mq/msgstream/mqwrapper/kafka/kafka_client_test.go @@ -196,7 +196,7 @@ func TestKafkaClient_ConsumeWithAck(t *testing.T) { Consume1(ctx1, t, kc, topic, subName, c, &total1) lastMsgID := <-c - log.Info("lastMsgID", zap.Any("lastMsgID", lastMsgID.(*kafkaID).messageID)) + log.Info("lastMsgID", zap.Any("lastMsgID", lastMsgID.(*KafkaID).MessageID)) ctx2, cancel2 := context.WithTimeout(ctx, 3*time.Second) Consume2(ctx2, t, kc, topic, subName, lastMsgID, &total2) diff --git a/pkg/mq/msgstream/mqwrapper/kafka/kafka_consumer.go b/pkg/mq/msgstream/mqwrapper/kafka/kafka_consumer.go index bf87b260a7bee..8809d6b28f490 100644 --- a/pkg/mq/msgstream/mqwrapper/kafka/kafka_consumer.go +++ b/pkg/mq/msgstream/mqwrapper/kafka/kafka_consumer.go @@ -74,7 +74,7 @@ func newKafkaConsumer(config *kafka.ConfigMap, bufSize int64, topic string, grou return nil, err } } else { - offset = kafka.Offset(latestMsgID.(*kafkaID).messageID) + offset = kafka.Offset(latestMsgID.(*KafkaID).MessageID) kc.skipMsg = true } } @@ -161,7 +161,7 @@ func (kc *Consumer) Seek(id common.MessageID, inclusive bool) error { return errors.New("kafka consumer is already assigned, can not seek again") } - offset := kafka.Offset(id.(*kafkaID).messageID) + offset := kafka.Offset(id.(*KafkaID).MessageID) return kc.internalSeek(offset, inclusive) } @@ -219,7 +219,7 @@ func (kc *Consumer) GetLatestMsgID() (common.MessageID, error) { } log.Info("get latest msg ID ", zap.String("topic", kc.topic), zap.Int64("oldest offset", low), zap.Int64("latest offset", high)) - return &kafkaID{messageID: high}, nil + return &KafkaID{MessageID: high}, nil } func (kc *Consumer) CheckTopicValid(topic string) error { diff --git a/pkg/mq/msgstream/mqwrapper/kafka/kafka_consumer_test.go b/pkg/mq/msgstream/mqwrapper/kafka/kafka_consumer_test.go index 45bec8dad7535..c058706f918fa 100644 --- a/pkg/mq/msgstream/mqwrapper/kafka/kafka_consumer_test.go +++ b/pkg/mq/msgstream/mqwrapper/kafka/kafka_consumer_test.go @@ -40,14 +40,14 @@ func TestKafkaConsumer_SeekExclusive(t *testing.T) { data2 := []string{"111", "222", "333"} testKafkaConsumerProduceData(t, topic, data1, data2) - msgID := &kafkaID{messageID: 1} + msgID := &KafkaID{MessageID: 1} err = consumer.Seek(msgID, false) assert.NoError(t, err) msg := <-consumer.Chan() assert.Equal(t, 333, BytesToInt(msg.Payload())) assert.Equal(t, "333", msg.Properties()[common.TraceIDKey]) - assert.Equal(t, int64(2), msg.ID().(*kafkaID).messageID) + assert.Equal(t, int64(2), msg.ID().(*KafkaID).MessageID) assert.Equal(t, topic, msg.Topic()) assert.True(t, len(msg.Properties()) == 1) } @@ -66,14 +66,14 @@ func TestKafkaConsumer_SeekInclusive(t *testing.T) { data2 := []string{"111", "222", "333"} testKafkaConsumerProduceData(t, topic, data1, data2) - msgID := &kafkaID{messageID: 1} + msgID := &KafkaID{MessageID: 1} err = consumer.Seek(msgID, true) assert.NoError(t, err) msg := <-consumer.Chan() assert.Equal(t, 222, BytesToInt(msg.Payload())) assert.Equal(t, "222", msg.Properties()[common.TraceIDKey]) - assert.Equal(t, int64(1), msg.ID().(*kafkaID).messageID) + assert.Equal(t, int64(1), msg.ID().(*KafkaID).MessageID) assert.Equal(t, topic, msg.Topic()) assert.True(t, len(msg.Properties()) == 1) } @@ -88,7 +88,7 @@ func TestKafkaConsumer_GetSeek(t *testing.T) { assert.NoError(t, err) defer consumer.Close() - msgID := &kafkaID{messageID: 0} + msgID := &KafkaID{MessageID: 0} err = consumer.Seek(msgID, false) assert.NoError(t, err) @@ -163,7 +163,7 @@ func TestKafkaConsumer_GetLatestMsgID(t *testing.T) { defer consumer.Close() latestMsgID, err := consumer.GetLatestMsgID() - assert.Equal(t, int64(0), latestMsgID.(*kafkaID).messageID) + assert.Equal(t, int64(0), latestMsgID.(*KafkaID).MessageID) assert.NoError(t, err) data1 := []int{111, 222, 333} @@ -171,7 +171,7 @@ func TestKafkaConsumer_GetLatestMsgID(t *testing.T) { testKafkaConsumerProduceData(t, topic, data1, data2) latestMsgID, err = consumer.GetLatestMsgID() - assert.Equal(t, int64(2), latestMsgID.(*kafkaID).messageID) + assert.Equal(t, int64(2), latestMsgID.(*KafkaID).MessageID) assert.NoError(t, err) } diff --git a/pkg/mq/msgstream/mqwrapper/kafka/kafka_id.go b/pkg/mq/msgstream/mqwrapper/kafka/kafka_id.go index 2509065c1d4b1..8f2d1926739b6 100644 --- a/pkg/mq/msgstream/mqwrapper/kafka/kafka_id.go +++ b/pkg/mq/msgstream/mqwrapper/kafka/kafka_id.go @@ -5,26 +5,32 @@ import ( mqcommon "github.com/milvus-io/milvus/pkg/mq/common" ) -type kafkaID struct { - messageID int64 +func NewKafkaID(messageID int64) mqcommon.MessageID { + return &KafkaID{ + MessageID: messageID, + } } -var _ mqcommon.MessageID = &kafkaID{} +type KafkaID struct { + MessageID int64 +} + +var _ mqcommon.MessageID = &KafkaID{} -func (kid *kafkaID) Serialize() []byte { - return SerializeKafkaID(kid.messageID) +func (kid *KafkaID) Serialize() []byte { + return SerializeKafkaID(kid.MessageID) } -func (kid *kafkaID) AtEarliestPosition() bool { - return kid.messageID <= 0 +func (kid *KafkaID) AtEarliestPosition() bool { + return kid.MessageID <= 0 } -func (kid *kafkaID) Equal(msgID []byte) (bool, error) { - return kid.messageID == DeserializeKafkaID(msgID), nil +func (kid *KafkaID) Equal(msgID []byte) (bool, error) { + return kid.MessageID == DeserializeKafkaID(msgID), nil } -func (kid *kafkaID) LessOrEqualThan(msgID []byte) (bool, error) { - return kid.messageID <= DeserializeKafkaID(msgID), nil +func (kid *KafkaID) LessOrEqualThan(msgID []byte) (bool, error) { + return kid.MessageID <= DeserializeKafkaID(msgID), nil } func SerializeKafkaID(messageID int64) []byte { diff --git a/pkg/mq/msgstream/mqwrapper/kafka/kafka_id_test.go b/pkg/mq/msgstream/mqwrapper/kafka/kafka_id_test.go index 29b501b66aa2b..802fc7efa3396 100644 --- a/pkg/mq/msgstream/mqwrapper/kafka/kafka_id_test.go +++ b/pkg/mq/msgstream/mqwrapper/kafka/kafka_id_test.go @@ -7,24 +7,24 @@ import ( ) func TestKafkaID_Serialize(t *testing.T) { - rid := &kafkaID{messageID: 8} + rid := &KafkaID{MessageID: 8} bin := rid.Serialize() assert.NotNil(t, bin) assert.NotZero(t, len(bin)) } func TestKafkaID_AtEarliestPosition(t *testing.T) { - rid := &kafkaID{messageID: 8} + rid := &KafkaID{MessageID: 8} assert.False(t, rid.AtEarliestPosition()) - rid = &kafkaID{messageID: 0} + rid = &KafkaID{MessageID: 0} assert.True(t, rid.AtEarliestPosition()) } func TestKafkaID_LessOrEqualThan(t *testing.T) { { - rid1 := &kafkaID{messageID: 8} - rid2 := &kafkaID{messageID: 0} + rid1 := &KafkaID{MessageID: 8} + rid2 := &KafkaID{MessageID: 0} ret, err := rid1.LessOrEqualThan(rid2.Serialize()) assert.NoError(t, err) assert.False(t, ret) @@ -35,8 +35,8 @@ func TestKafkaID_LessOrEqualThan(t *testing.T) { } { - rid1 := &kafkaID{messageID: 0} - rid2 := &kafkaID{messageID: 0} + rid1 := &KafkaID{MessageID: 0} + rid2 := &KafkaID{MessageID: 0} ret, err := rid1.LessOrEqualThan(rid2.Serialize()) assert.NoError(t, err) assert.True(t, ret) @@ -44,8 +44,8 @@ func TestKafkaID_LessOrEqualThan(t *testing.T) { } func TestKafkaID_Equal(t *testing.T) { - rid1 := &kafkaID{messageID: 0} - rid2 := &kafkaID{messageID: 1} + rid1 := &KafkaID{MessageID: 0} + rid2 := &KafkaID{MessageID: 1} { ret, err := rid1.Equal(rid1.Serialize()) diff --git a/pkg/mq/msgstream/mqwrapper/kafka/kafka_message.go b/pkg/mq/msgstream/mqwrapper/kafka/kafka_message.go index cc33c8db4090f..93f611c9b66fd 100644 --- a/pkg/mq/msgstream/mqwrapper/kafka/kafka_message.go +++ b/pkg/mq/msgstream/mqwrapper/kafka/kafka_message.go @@ -27,6 +27,6 @@ func (km *kafkaMessage) Payload() []byte { } func (km *kafkaMessage) ID() common.MessageID { - kid := &kafkaID{messageID: int64(km.msg.TopicPartition.Offset)} + kid := &KafkaID{MessageID: int64(km.msg.TopicPartition.Offset)} return kid } diff --git a/pkg/mq/msgstream/mqwrapper/kafka/kafka_message_test.go b/pkg/mq/msgstream/mqwrapper/kafka/kafka_message_test.go index 3fd936325136c..379f2c6acf687 100644 --- a/pkg/mq/msgstream/mqwrapper/kafka/kafka_message_test.go +++ b/pkg/mq/msgstream/mqwrapper/kafka/kafka_message_test.go @@ -13,7 +13,7 @@ func TestKafkaMessage_All(t *testing.T) { km := &kafkaMessage{msg: msg} properties := make(map[string]string) assert.Equal(t, topic, km.Topic()) - assert.Equal(t, int64(0), km.ID().(*kafkaID).messageID) + assert.Equal(t, int64(0), km.ID().(*KafkaID).MessageID) assert.Nil(t, km.Payload()) assert.Equal(t, properties, km.Properties()) } diff --git a/pkg/mq/msgstream/mqwrapper/kafka/kafka_producer.go b/pkg/mq/msgstream/mqwrapper/kafka/kafka_producer.go index e525244d5eae1..edd3016049797 100644 --- a/pkg/mq/msgstream/mqwrapper/kafka/kafka_producer.go +++ b/pkg/mq/msgstream/mqwrapper/kafka/kafka_producer.go @@ -75,7 +75,7 @@ func (kp *kafkaProducer) Send(ctx context.Context, message *mqcommon.ProducerMes metrics.MsgStreamRequestLatency.WithLabelValues(metrics.SendMsgLabel).Observe(float64(elapsed.Milliseconds())) metrics.MsgStreamOpCounter.WithLabelValues(metrics.SendMsgLabel, metrics.SuccessLabel).Inc() - return &kafkaID{messageID: int64(m.TopicPartition.Offset)}, nil + return &KafkaID{MessageID: int64(m.TopicPartition.Offset)}, nil } func (kp *kafkaProducer) Close() { diff --git a/pkg/streaming/util/message/adaptor/message_id.go b/pkg/streaming/util/message/adaptor/message_id.go index b9bc6dc333375..1cd76ba1a8130 100644 --- a/pkg/streaming/util/message/adaptor/message_id.go +++ b/pkg/streaming/util/message/adaptor/message_id.go @@ -4,11 +4,14 @@ import ( "fmt" "github.com/apache/pulsar-client-go/pulsar" + rawKafka "github.com/confluentinc/confluent-kafka-go/kafka" "github.com/milvus-io/milvus/pkg/mq/common" "github.com/milvus-io/milvus/pkg/mq/mqimpl/rocksmq/server" + mqkafka "github.com/milvus-io/milvus/pkg/mq/msgstream/mqwrapper/kafka" mqpulsar "github.com/milvus-io/milvus/pkg/mq/msgstream/mqwrapper/pulsar" "github.com/milvus-io/milvus/pkg/streaming/util/message" + msgkafka "github.com/milvus-io/milvus/pkg/streaming/walimpls/impls/kafka" msgpulsar "github.com/milvus-io/milvus/pkg/streaming/walimpls/impls/pulsar" "github.com/milvus-io/milvus/pkg/streaming/walimpls/impls/rmq" ) @@ -20,6 +23,8 @@ func MustGetMQWrapperIDFromMessage(messageID message.MessageID) common.MessageID return mqpulsar.NewPulsarID(id.PulsarID()) } else if id, ok := messageID.(interface{ RmqID() int64 }); ok { return &server.RmqID{MessageID: id.RmqID()} + } else if id, ok := messageID.(interface{ KafkaID() rawKafka.Offset }); ok { + return mqkafka.NewKafkaID(int64(id.KafkaID())) } panic("unsupported now") } @@ -31,6 +36,8 @@ func MustGetMessageIDFromMQWrapperID(commonMessageID common.MessageID) message.M return msgpulsar.NewPulsarID(id.PulsarID()) } else if id, ok := commonMessageID.(*server.RmqID); ok { return rmq.NewRmqID(id.MessageID) + } else if id, ok := commonMessageID.(*mqkafka.KafkaID); ok { + return msgkafka.NewKafkaID(rawKafka.Offset(id.MessageID)) } return nil } @@ -48,6 +55,9 @@ func DeserializeToMQWrapperID(msgID []byte, walName string) (common.MessageID, e case "rocksmq": rID := server.DeserializeRmqID(msgID) return &server.RmqID{MessageID: rID}, nil + case "kafka": + kID := mqkafka.DeserializeKafkaID(msgID) + return mqkafka.NewKafkaID(kID), nil default: return nil, fmt.Errorf("unsupported mq type %s", walName) } @@ -65,6 +75,9 @@ func MustGetMessageIDFromMQWrapperIDBytes(walName string, msgIDBytes []byte) mes panic(err) } commonMsgID = mqpulsar.NewPulsarID(msgID) + case "kafka": + id := mqkafka.DeserializeKafkaID(msgIDBytes) + commonMsgID = mqkafka.NewKafkaID(id) default: panic("unsupported now") } diff --git a/pkg/streaming/util/message/adaptor/message_id_test.go b/pkg/streaming/util/message/adaptor/message_id_test.go index 6b0944e8cec28..81da9f5e87a1e 100644 --- a/pkg/streaming/util/message/adaptor/message_id_test.go +++ b/pkg/streaming/util/message/adaptor/message_id_test.go @@ -6,6 +6,7 @@ import ( "github.com/apache/pulsar-client-go/pulsar" "github.com/stretchr/testify/assert" + msgkafka "github.com/milvus-io/milvus/pkg/streaming/walimpls/impls/kafka" msgpulsar "github.com/milvus-io/milvus/pkg/streaming/walimpls/impls/pulsar" "github.com/milvus-io/milvus/pkg/streaming/walimpls/impls/rmq" ) @@ -17,4 +18,7 @@ func TestIDConvension(t *testing.T) { msgID := pulsar.EarliestMessageID() id = MustGetMessageIDFromMQWrapperID(MustGetMQWrapperIDFromMessage(msgpulsar.NewPulsarID(msgID))) assert.True(t, id.EQ(msgpulsar.NewPulsarID(msgID))) + + kafkaID := MustGetMessageIDFromMQWrapperID(MustGetMQWrapperIDFromMessage(msgkafka.NewKafkaID(1))) + assert.True(t, kafkaID.EQ(msgkafka.NewKafkaID(1))) } diff --git a/pkg/streaming/walimpls/impls/kafka/builder.go b/pkg/streaming/walimpls/impls/kafka/builder.go new file mode 100644 index 0000000000000..5c2cba15cd476 --- /dev/null +++ b/pkg/streaming/walimpls/impls/kafka/builder.go @@ -0,0 +1,109 @@ +package kafka + +import ( + "github.com/confluentinc/confluent-kafka-go/kafka" + + "github.com/milvus-io/milvus/pkg/streaming/util/message" + "github.com/milvus-io/milvus/pkg/streaming/walimpls" + "github.com/milvus-io/milvus/pkg/streaming/walimpls/registry" + "github.com/milvus-io/milvus/pkg/util/paramtable" +) + +const ( + walName = "kafka" +) + +func init() { + // register the builder to the wal registry. + registry.RegisterBuilder(&builderImpl{}) + // register the unmarshaler to the message registry. + message.RegisterMessageIDUnmsarshaler(walName, UnmarshalMessageID) +} + +// builderImpl is the builder for pulsar wal. +type builderImpl struct{} + +// Name returns the name of the wal. +func (b *builderImpl) Name() string { + return walName +} + +// Build build a wal instance. +func (b *builderImpl) Build() (walimpls.OpenerImpls, error) { + producerConfig, consumerConfig := b.getProducerConfig(), b.getConsumerConfig() + + p, err := kafka.NewProducer(&producerConfig) + if err != nil { + return nil, err + } + return newOpenerImpl(p, consumerConfig), nil +} + +// getProducerAndConsumerConfig returns the producer and consumer config. +func (b *builderImpl) getProducerConfig() kafka.ConfigMap { + config := ¶mtable.Get().KafkaCfg + producerConfig := getBasicConfig(config) + + producerConfig.SetKey("message.max.bytes", 10485760) + producerConfig.SetKey("compression.codec", "zstd") + // we want to ensure tt send out as soon as possible + producerConfig.SetKey("linger.ms", 5) + for k, v := range config.ProducerExtraConfig.GetValue() { + producerConfig.SetKey(k, v) + } + return producerConfig +} + +func (b *builderImpl) getConsumerConfig() kafka.ConfigMap { + config := ¶mtable.Get().KafkaCfg + consumerConfig := getBasicConfig(config) + consumerConfig.SetKey("allow.auto.create.topics", true) + for k, v := range config.ConsumerExtraConfig.GetValue() { + consumerConfig.SetKey(k, v) + } + return consumerConfig +} + +// getBasicConfig returns the basic kafka config. +func getBasicConfig(config *paramtable.KafkaConfig) kafka.ConfigMap { + basicConfig := kafka.ConfigMap{ + "bootstrap.servers": config.Address.GetValue(), + "api.version.request": true, + "reconnect.backoff.ms": 20, + "reconnect.backoff.max.ms": 5000, + } + + if (config.SaslUsername.GetValue() == "" && config.SaslPassword.GetValue() != "") || + (config.SaslUsername.GetValue() != "" && config.SaslPassword.GetValue() == "") { + panic("enable security mode need config username and password at the same time!") + } + + if config.SecurityProtocol.GetValue() != "" { + basicConfig.SetKey("security.protocol", config.SecurityProtocol.GetValue()) + } + + if config.SaslUsername.GetValue() != "" && config.SaslPassword.GetValue() != "" { + basicConfig.SetKey("sasl.mechanisms", config.SaslMechanisms.GetValue()) + basicConfig.SetKey("sasl.username", config.SaslUsername.GetValue()) + basicConfig.SetKey("sasl.password", config.SaslPassword.GetValue()) + } + + if config.KafkaUseSSL.GetAsBool() { + basicConfig.SetKey("ssl.certificate.location", config.KafkaTLSCert.GetValue()) + basicConfig.SetKey("ssl.key.location", config.KafkaTLSKey.GetValue()) + basicConfig.SetKey("ssl.ca.location", config.KafkaTLSCACert.GetValue()) + if config.KafkaTLSKeyPassword.GetValue() != "" { + basicConfig.SetKey("ssl.key.password", config.KafkaTLSKeyPassword.GetValue()) + } + } + return basicConfig +} + +// cloneKafkaConfig clones a kafka config. +func cloneKafkaConfig(config kafka.ConfigMap) kafka.ConfigMap { + newConfig := make(kafka.ConfigMap) + for k, v := range config { + newConfig[k] = v + } + return newConfig +} diff --git a/pkg/streaming/walimpls/impls/kafka/kafka_test.go b/pkg/streaming/walimpls/impls/kafka/kafka_test.go new file mode 100644 index 0000000000000..fd8434d7ef8cb --- /dev/null +++ b/pkg/streaming/walimpls/impls/kafka/kafka_test.go @@ -0,0 +1,54 @@ +package kafka + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/milvus-io/milvus/pkg/streaming/util/message" + "github.com/milvus-io/milvus/pkg/streaming/walimpls" + "github.com/milvus-io/milvus/pkg/streaming/walimpls/registry" + "github.com/milvus-io/milvus/pkg/util/paramtable" +) + +func TestMain(m *testing.M) { + paramtable.Init() + m.Run() +} + +func TestRegistry(t *testing.T) { + registeredB := registry.MustGetBuilder(walName) + assert.NotNil(t, registeredB) + assert.Equal(t, walName, registeredB.Name()) + + id, err := message.UnmarshalMessageID(walName, + kafkaID(123).Marshal()) + assert.NoError(t, err) + assert.True(t, id.EQ(kafkaID(123))) +} + +func TestKafka(t *testing.T) { + walimpls.NewWALImplsTestFramework(t, 100, &builderImpl{}).Run() +} + +func TestGetBasicConfig(t *testing.T) { + config := ¶mtable.Get().KafkaCfg + oldSecurityProtocol := config.SecurityProtocol.SwapTempValue("test") + oldSaslUsername := config.SaslUsername.SwapTempValue("test") + oldSaslPassword := config.SaslPassword.SwapTempValue("test") + oldkafkaUseSSL := config.KafkaUseSSL.SwapTempValue("true") + oldKafkaTLSKeyPassword := config.KafkaTLSKeyPassword.SwapTempValue("test") + defer func() { + config.SecurityProtocol.SwapTempValue(oldSecurityProtocol) + config.SaslUsername.SwapTempValue(oldSaslUsername) + config.SaslPassword.SwapTempValue(oldSaslPassword) + config.KafkaUseSSL.SwapTempValue(oldkafkaUseSSL) + config.KafkaTLSKeyPassword.SwapTempValue(oldKafkaTLSKeyPassword) + }() + basicConfig := getBasicConfig(config) + + assert.NotNil(t, basicConfig["ssl.key.password"]) + assert.NotNil(t, basicConfig["ssl.certificate.location"]) + assert.NotNil(t, basicConfig["sasl.username"]) + assert.NotNil(t, basicConfig["security.protocol"]) +} diff --git a/pkg/streaming/walimpls/impls/kafka/message_id.go b/pkg/streaming/walimpls/impls/kafka/message_id.go new file mode 100644 index 0000000000000..f99ea4ba13c34 --- /dev/null +++ b/pkg/streaming/walimpls/impls/kafka/message_id.go @@ -0,0 +1,68 @@ +package kafka + +import ( + "strconv" + + "github.com/cockroachdb/errors" + "github.com/confluentinc/confluent-kafka-go/kafka" + + "github.com/milvus-io/milvus/pkg/streaming/util/message" +) + +func UnmarshalMessageID(data string) (message.MessageID, error) { + id, err := unmarshalMessageID(data) + if err != nil { + return nil, err + } + return id, nil +} + +func unmarshalMessageID(data string) (kafkaID, error) { + v, err := message.DecodeUint64(data) + if err != nil { + return 0, errors.Wrapf(message.ErrInvalidMessageID, "decode kafkaID fail with err: %s, id: %s", err.Error(), data) + } + return kafkaID(v), nil +} + +func NewKafkaID(offset kafka.Offset) message.MessageID { + return kafkaID(offset) +} + +type kafkaID kafka.Offset + +// RmqID returns the message id for conversion +// Don't delete this function until conversion logic removed. +// TODO: remove in future. +func (id kafkaID) KafkaID() kafka.Offset { + return kafka.Offset(id) +} + +// WALName returns the name of message id related wal. +func (id kafkaID) WALName() string { + return walName +} + +// LT less than. +func (id kafkaID) LT(other message.MessageID) bool { + return id < other.(kafkaID) +} + +// LTE less than or equal to. +func (id kafkaID) LTE(other message.MessageID) bool { + return id <= other.(kafkaID) +} + +// EQ Equal to. +func (id kafkaID) EQ(other message.MessageID) bool { + return id == other.(kafkaID) +} + +// Marshal marshal the message id. +func (id kafkaID) Marshal() string { + return message.EncodeInt64(int64(id)) +} + +func (id kafkaID) String() string { + return strconv.FormatInt(int64(id), 10) +} diff --git a/pkg/streaming/walimpls/impls/kafka/message_id_test.go b/pkg/streaming/walimpls/impls/kafka/message_id_test.go new file mode 100644 index 0000000000000..507a05e1b7daa --- /dev/null +++ b/pkg/streaming/walimpls/impls/kafka/message_id_test.go @@ -0,0 +1,32 @@ +package kafka + +import ( + "testing" + + "github.com/confluentinc/confluent-kafka-go/kafka" + "github.com/stretchr/testify/assert" + + "github.com/milvus-io/milvus/pkg/streaming/util/message" +) + +func TestMessageID(t *testing.T) { + assert.Equal(t, kafka.Offset(1), message.MessageID(kafkaID(1)).(interface{ KafkaID() kafka.Offset }).KafkaID()) + + assert.Equal(t, walName, kafkaID(1).WALName()) + + assert.True(t, kafkaID(1).LT(kafkaID(2))) + assert.True(t, kafkaID(1).EQ(kafkaID(1))) + assert.True(t, kafkaID(1).LTE(kafkaID(1))) + assert.True(t, kafkaID(1).LTE(kafkaID(2))) + assert.False(t, kafkaID(2).LT(kafkaID(1))) + assert.False(t, kafkaID(2).EQ(kafkaID(1))) + assert.False(t, kafkaID(2).LTE(kafkaID(1))) + assert.True(t, kafkaID(2).LTE(kafkaID(2))) + + msgID, err := UnmarshalMessageID(kafkaID(1).Marshal()) + assert.NoError(t, err) + assert.Equal(t, kafkaID(1), msgID) + + _, err = UnmarshalMessageID(string([]byte{0x01, 0x02, 0x03, 0x04})) + assert.Error(t, err) +} diff --git a/pkg/streaming/walimpls/impls/kafka/opener.go b/pkg/streaming/walimpls/impls/kafka/opener.go new file mode 100644 index 0000000000000..4f2464c37008a --- /dev/null +++ b/pkg/streaming/walimpls/impls/kafka/opener.go @@ -0,0 +1,73 @@ +package kafka + +import ( + "context" + "fmt" + + "github.com/confluentinc/confluent-kafka-go/kafka" + "go.uber.org/zap" + + "github.com/milvus-io/milvus/pkg/log" + "github.com/milvus-io/milvus/pkg/streaming/walimpls" + "github.com/milvus-io/milvus/pkg/streaming/walimpls/helper" + "github.com/milvus-io/milvus/pkg/util/syncutil" +) + +var _ walimpls.OpenerImpls = (*openerImpl)(nil) + +// newOpenerImpl creates a new openerImpl instance. +func newOpenerImpl(p *kafka.Producer, consumerConfig kafka.ConfigMap) *openerImpl { + o := &openerImpl{ + n: syncutil.NewAsyncTaskNotifier[struct{}](), + p: p, + consumerConfig: consumerConfig, + } + go o.execute() + return o +} + +// openerImpl is the opener implementation for kafka wal. +type openerImpl struct { + n *syncutil.AsyncTaskNotifier[struct{}] + p *kafka.Producer + consumerConfig kafka.ConfigMap +} + +func (o *openerImpl) Open(ctx context.Context, opt *walimpls.OpenOption) (walimpls.WALImpls, error) { + return &walImpl{ + WALHelper: helper.NewWALHelper(opt), + p: o.p, + consumerConfig: o.consumerConfig, + }, nil +} + +func (o *openerImpl) execute() { + defer o.n.Finish(struct{}{}) + + for { + select { + case <-o.n.Context().Done(): + return + case ev, ok := <-o.p.Events(): + if !ok { + panic("kafka producer events channel should never be closed before the execute observer exit") + } + switch ev := ev.(type) { + case kafka.Error: + log.Error("kafka producer error", zap.Error(ev)) + if ev.IsFatal() { + panic(fmt.Sprintf("kafka producer error is fatal, %s", ev.Error())) + } + default: + // ignore other events + log.Debug("kafka producer incoming non-message, non-error event", zap.String("event", ev.String())) + } + } + } +} + +func (o *openerImpl) Close() { + o.n.Cancel() + o.n.BlockUntilFinish() + o.p.Close() +} diff --git a/pkg/streaming/walimpls/impls/kafka/scanner.go b/pkg/streaming/walimpls/impls/kafka/scanner.go new file mode 100644 index 0000000000000..934b00da84b94 --- /dev/null +++ b/pkg/streaming/walimpls/impls/kafka/scanner.go @@ -0,0 +1,88 @@ +package kafka + +import ( + "time" + + "github.com/confluentinc/confluent-kafka-go/kafka" + + "github.com/milvus-io/milvus/pkg/streaming/util/message" + "github.com/milvus-io/milvus/pkg/streaming/walimpls" + "github.com/milvus-io/milvus/pkg/streaming/walimpls/helper" +) + +var _ walimpls.ScannerImpls = (*scannerImpl)(nil) + +// newScanner creates a new scanner. +func newScanner(scannerName string, exclude *kafkaID, consumer *kafka.Consumer) *scannerImpl { + s := &scannerImpl{ + ScannerHelper: helper.NewScannerHelper(scannerName), + consumer: consumer, + msgChannel: make(chan message.ImmutableMessage, 1), + exclude: exclude, + } + go s.executeConsume() + return s +} + +// scannerImpl is the implementation of ScannerImpls for kafka. +type scannerImpl struct { + *helper.ScannerHelper + consumer *kafka.Consumer + msgChannel chan message.ImmutableMessage + exclude *kafkaID +} + +// Chan returns the channel of message. +func (s *scannerImpl) Chan() <-chan message.ImmutableMessage { + return s.msgChannel +} + +// Close the scanner, release the underlying resources. +// Return the error same with `Error` +func (s *scannerImpl) Close() error { + s.consumer.Unassign() + err := s.ScannerHelper.Close() + s.consumer.Close() + return err +} + +func (s *scannerImpl) executeConsume() { + defer close(s.msgChannel) + for { + msg, err := s.consumer.ReadMessage(200 * time.Millisecond) + if err != nil { + if s.Context().Err() != nil { + // context canceled, means the the scanner is closed. + s.Finish(nil) + return + } + if c, ok := err.(kafka.Error); ok && c.Code() == kafka.ErrTimedOut { + continue + } + s.Finish(err) + return + } + messageID := kafkaID(msg.TopicPartition.Offset) + if s.exclude != nil && messageID.EQ(*s.exclude) { + // Skip the message that is exclude for StartAfter semantics. + continue + } + + properties := make(map[string]string, len(msg.Headers)) + for _, header := range msg.Headers { + properties[header.Key] = string(header.Value) + } + + newImmutableMessage := message.NewImmutableMesasge( + messageID, + msg.Value, + properties, + ) + select { + case <-s.Context().Done(): + s.Finish(nil) + return + case s.msgChannel <- newImmutableMessage: + } + } +} diff --git a/pkg/streaming/walimpls/impls/kafka/wal.go b/pkg/streaming/walimpls/impls/kafka/wal.go new file mode 100644 index 0000000000000..63d0bcb492044 --- /dev/null +++ b/pkg/streaming/walimpls/impls/kafka/wal.go @@ -0,0 +1,105 @@ +package kafka + +import ( + "context" + + "github.com/cockroachdb/errors" + "github.com/confluentinc/confluent-kafka-go/kafka" + + "github.com/milvus-io/milvus/pkg/streaming/proto/streamingpb" + "github.com/milvus-io/milvus/pkg/streaming/util/message" + "github.com/milvus-io/milvus/pkg/streaming/walimpls" + "github.com/milvus-io/milvus/pkg/streaming/walimpls/helper" +) + +var _ walimpls.WALImpls = (*walImpl)(nil) + +type walImpl struct { + *helper.WALHelper + p *kafka.Producer + consumerConfig kafka.ConfigMap +} + +func (w *walImpl) WALName() string { + return walName +} + +func (w *walImpl) Append(ctx context.Context, msg message.MutableMessage) (message.MessageID, error) { + properties := msg.Properties().ToRawMap() + headers := make([]kafka.Header, 0, len(properties)) + for key, value := range properties { + header := kafka.Header{Key: key, Value: []byte(value)} + headers = append(headers, header) + } + ch := make(chan kafka.Event, 1) + topic := w.Channel().Name + + if err := w.p.Produce(&kafka.Message{ + TopicPartition: kafka.TopicPartition{Topic: &topic, Partition: 0}, + Value: msg.Payload(), + Headers: headers, + }, ch); err != nil { + return nil, err + } + + select { + case <-ctx.Done(): + return nil, ctx.Err() + case event := <-ch: + relatedMsg := event.(*kafka.Message) + if relatedMsg.TopicPartition.Error != nil { + return nil, relatedMsg.TopicPartition.Error + } + return kafkaID(relatedMsg.TopicPartition.Offset), nil + } +} + +func (w *walImpl) Read(ctx context.Context, opt walimpls.ReadOption) (s walimpls.ScannerImpls, err error) { + // The scanner is stateless, so we can create a scanner with an anonymous consumer. + // and there's no commit opeartions. + consumerConfig := cloneKafkaConfig(w.consumerConfig) + consumerConfig.SetKey("group.id", opt.Name) + c, err := kafka.NewConsumer(&consumerConfig) + if err != nil { + return nil, errors.Wrap(err, "failed to create kafka consumer") + } + + topic := w.Channel().Name + seekPosition := kafka.TopicPartition{ + Topic: &topic, + Partition: 0, + } + var exclude *kafkaID + switch t := opt.DeliverPolicy.GetPolicy().(type) { + case *streamingpb.DeliverPolicy_All: + seekPosition.Offset = kafka.OffsetBeginning + case *streamingpb.DeliverPolicy_Latest: + seekPosition.Offset = kafka.OffsetEnd + case *streamingpb.DeliverPolicy_StartFrom: + id, err := unmarshalMessageID(t.StartFrom.GetId()) + if err != nil { + return nil, err + } + seekPosition.Offset = kafka.Offset(id) + case *streamingpb.DeliverPolicy_StartAfter: + id, err := unmarshalMessageID(t.StartAfter.GetId()) + if err != nil { + return nil, err + } + seekPosition.Offset = kafka.Offset(id) + exclude = &id + default: + panic("unknown deliver policy") + } + + if err := c.Assign([]kafka.TopicPartition{seekPosition}); err != nil { + return nil, errors.Wrap(err, "failed to assign kafka consumer") + } + return newScanner(opt.Name, exclude, c), nil +} + +func (w *walImpl) Close() { + // The lifetime control of the producer is delegated to the wal adaptor. + // So we just make resource cleanup here. + // But kafka producer is not topic level, so we don't close it here. +} diff --git a/pkg/streaming/walimpls/impls/pulsar/message_id_test.go b/pkg/streaming/walimpls/impls/pulsar/message_id_test.go index 5635c939c9666..e6d31f7716ce3 100644 --- a/pkg/streaming/walimpls/impls/pulsar/message_id_test.go +++ b/pkg/streaming/walimpls/impls/pulsar/message_id_test.go @@ -6,9 +6,18 @@ import ( "github.com/apache/pulsar-client-go/pulsar" "github.com/stretchr/testify/assert" "google.golang.org/protobuf/proto" + + "github.com/milvus-io/milvus/pkg/streaming/util/message" ) func TestMessageID(t *testing.T) { + pid := message.MessageID(newMessageIDOfPulsar(1, 2, 3)).(interface{ PulsarID() pulsar.MessageID }).PulsarID() + assert.Equal(t, walName, newMessageIDOfPulsar(1, 2, 3).WALName()) + + assert.Equal(t, int64(1), pid.LedgerID()) + assert.Equal(t, int64(2), pid.EntryID()) + assert.Equal(t, int32(3), pid.BatchIdx()) + ids := []pulsarID{ newMessageIDOfPulsar(0, 0, 0), newMessageIDOfPulsar(0, 0, 1), diff --git a/pkg/streaming/walimpls/impls/rmq/message_id_test.go b/pkg/streaming/walimpls/impls/rmq/message_id_test.go index b757e57ab67ea..e37bfdf056328 100644 --- a/pkg/streaming/walimpls/impls/rmq/message_id_test.go +++ b/pkg/streaming/walimpls/impls/rmq/message_id_test.go @@ -4,9 +4,14 @@ import ( "testing" "github.com/stretchr/testify/assert" + + "github.com/milvus-io/milvus/pkg/streaming/util/message" ) func TestMessageID(t *testing.T) { + assert.Equal(t, int64(1), message.MessageID(rmqID(1)).(interface{ RmqID() int64 }).RmqID()) + assert.Equal(t, walName, rmqID(1).WALName()) + assert.True(t, rmqID(1).LT(rmqID(2))) assert.True(t, rmqID(1).EQ(rmqID(1))) assert.True(t, rmqID(1).LTE(rmqID(1))) diff --git a/pkg/util/paramtable/param_item.go b/pkg/util/paramtable/param_item.go index 93be87ce7cdaa..ca70589221efc 100644 --- a/pkg/util/paramtable/param_item.go +++ b/pkg/util/paramtable/param_item.go @@ -101,12 +101,18 @@ func (pi *ParamItem) getWithRaw() (result, raw string, err error) { // SetTempValue set the value for this ParamItem, // Once value set, ParamItem will use the value instead of underlying config manager. // Usage: should only use for unittest, swap empty string will remove the value. -func (pi *ParamItem) SwapTempValue(s string) *string { +func (pi *ParamItem) SwapTempValue(s string) string { if s == "" { - return pi.tempValue.Swap(nil) + if old := pi.tempValue.Swap(nil); old != nil { + return *old + } + return "" } pi.manager.EvictCachedValue(pi.Key) - return pi.tempValue.Swap(&s) + if old := pi.tempValue.Swap(&s); old != nil { + return *old + } + return "" } func (pi *ParamItem) GetValue() string { From c7313575385aebc36ada8883f941a1a7e23f6ef4 Mon Sep 17 00:00:00 2001 From: XuanYang-cn Date: Wed, 25 Dec 2024 10:24:50 +0800 Subject: [PATCH 09/69] enhance: Add missing delete metrics (#38634) Add 2 counter metrics: - Total delete entries from deltalog: milvus_datanode_compaction_delete_count - Total missing deletes: milvus_datanode_compaction_missing_delete_count See also: #34665 Signed-off-by: yangxuan --- .../compaction/clustering_compactor.go | 53 ++++------- .../datanode/compaction/compactor_common.go | 91 ++++++++++++++++--- .../compaction/compactor_common_test.go | 84 +++++++++++++++++ internal/datanode/compaction/merge_sort.go | 62 +++++++------ internal/datanode/compaction/mix_compactor.go | 49 ++++------ .../datanode/compaction/mix_compactor_test.go | 65 +++---------- internal/proto/data_coord.proto | 2 +- pkg/metrics/datanode_metrics.go | 26 ++++++ 8 files changed, 272 insertions(+), 160 deletions(-) create mode 100644 internal/datanode/compaction/compactor_common_test.go diff --git a/internal/datanode/compaction/clustering_compactor.go b/internal/datanode/compaction/clustering_compactor.go index cd2620692aa2b..e7a618191bc06 100644 --- a/internal/datanode/compaction/clustering_compactor.go +++ b/internal/datanode/compaction/clustering_compactor.go @@ -56,7 +56,6 @@ import ( "github.com/milvus-io/milvus/pkg/util/metautil" "github.com/milvus-io/milvus/pkg/util/paramtable" "github.com/milvus-io/milvus/pkg/util/timerecord" - "github.com/milvus-io/milvus/pkg/util/tsoutil" "github.com/milvus-io/milvus/pkg/util/typeutil" ) @@ -93,7 +92,7 @@ type clusteringCompactionTask struct { // inner field collectionID int64 partitionID int64 - currentTs typeutil.Timestamp // for TTL + currentTime time.Time // for TTL isVectorClusteringKey bool clusteringKeyField *schemapb.FieldSchema primaryKeyField *schemapb.FieldSchema @@ -223,7 +222,7 @@ func (t *clusteringCompactionTask) init() error { t.primaryKeyField = pkField t.isVectorClusteringKey = typeutil.IsVectorType(t.clusteringKeyField.DataType) - t.currentTs = tsoutil.GetCurrentTime() + t.currentTime = time.Now() t.memoryBufferSize = t.getMemoryBufferSize() workerPoolSize := t.getWorkerPoolSize() t.mappingPool = conc.NewPool[any](workerPoolSize) @@ -563,11 +562,7 @@ func (t *clusteringCompactionTask) mappingSegment( log.Info("mapping segment start") processStart := time.Now() fieldBinlogPaths := make([][]string, 0) - var ( - expired int64 = 0 - deleted int64 = 0 - remained int64 = 0 - ) + var remained int64 = 0 deltaPaths := make([]string, 0) for _, d := range segment.GetDeltalogs() { @@ -579,17 +574,7 @@ func (t *clusteringCompactionTask) mappingSegment( if err != nil { return err } - - isDeletedValue := func(v *storage.Value) bool { - ts, ok := delta[v.PK.GetValue()] - // insert task and delete task has the same ts when upsert - // here should be < instead of <= - // to avoid the upsert data to be deleted after compact - if ok && uint64(v.Timestamp) < ts { - return true - } - return false - } + entityFilter := newEntityFilter(delta, t.plan.GetCollectionTtl(), t.currentTime) mappingStats := &clusteringpb.ClusteringCentroidIdMappingStats{} if t.isVectorClusteringKey { @@ -656,15 +641,7 @@ func (t *clusteringCompactionTask) mappingSegment( v := pkIter.Value() offset++ - // Filtering deleted entity - if isDeletedValue(v) { - deleted++ - continue - } - // Filtering expired entity - ts := typeutil.Timestamp(v.Timestamp) - if isExpiredEntity(t.plan.GetCollectionTtl(), t.currentTs, ts) { - expired++ + if entityFilter.Filtered(v.PK.GetValue(), uint64(v.Timestamp)) { continue } @@ -753,13 +730,19 @@ func (t *clusteringCompactionTask) mappingSegment( } } } + missing := entityFilter.GetMissingDeleteCount() log.Info("mapping segment end", zap.Int64("remained_entities", remained), - zap.Int64("deleted_entities", deleted), - zap.Int64("expired_entities", expired), + zap.Int("deleted_entities", entityFilter.GetDeletedCount()), + zap.Int("expired_entities", entityFilter.GetExpiredCount()), + zap.Int("deltalog deletes", entityFilter.GetDeltalogDeleteCount()), + zap.Int("missing deletes", missing), zap.Int64("written_row_num", t.writtenRowNum.Load()), zap.Duration("elapse", time.Since(processStart))) + + metrics.DataNodeCompactionDeleteCount.WithLabelValues(fmt.Sprint(t.collectionID)).Add(float64(entityFilter.GetDeltalogDeleteCount())) + metrics.DataNodeCompactionMissingDeleteCount.WithLabelValues(fmt.Sprint(t.collectionID)).Add(float64(missing)) return nil } @@ -1175,8 +1158,6 @@ func (t *clusteringCompactionTask) scalarAnalyzeSegment( var ( timestampTo int64 = -1 timestampFrom int64 = -1 - expired int64 = 0 - deleted int64 = 0 remained int64 = 0 analyzeResult map[interface{}]int64 = make(map[interface{}]int64, 0) ) @@ -1203,6 +1184,7 @@ func (t *clusteringCompactionTask) scalarAnalyzeSegment( fieldBinlogPaths = append(fieldBinlogPaths, ps) } + expiredFilter := newEntityFilter(nil, t.plan.GetCollectionTtl(), t.currentTime) for _, paths := range fieldBinlogPaths { allValues, err := t.binlogIO.Download(ctx, paths) if err != nil { @@ -1233,9 +1215,7 @@ func (t *clusteringCompactionTask) scalarAnalyzeSegment( v := pkIter.Value() // Filtering expired entity - ts := typeutil.Timestamp(v.Timestamp) - if isExpiredEntity(t.plan.GetCollectionTtl(), t.currentTs, ts) { - expired++ + if expiredFilter.Filtered(v.PK.GetValue(), uint64(v.Timestamp)) { continue } @@ -1264,8 +1244,7 @@ func (t *clusteringCompactionTask) scalarAnalyzeSegment( log.Info("analyze segment end", zap.Int64("remained entities", remained), - zap.Int64("deleted entities", deleted), - zap.Int64("expired entities", expired), + zap.Int("expired entities", expiredFilter.GetExpiredCount()), zap.Duration("map elapse", time.Since(processStart))) return analyzeResult, nil } diff --git a/internal/datanode/compaction/compactor_common.go b/internal/datanode/compaction/compactor_common.go index 8fd26ebf6815a..d21b681154e1d 100644 --- a/internal/datanode/compaction/compactor_common.go +++ b/internal/datanode/compaction/compactor_common.go @@ -37,25 +37,90 @@ import ( const compactionBatchSize = 100 -func isExpiredEntity(ttl int64, now, ts typeutil.Timestamp) bool { +type EntityFilter struct { + deletedPkTs map[interface{}]typeutil.Timestamp // pk2ts + ttl int64 // nanoseconds + currentTime time.Time + + expiredCount int + deletedCount int +} + +func newEntityFilter(deletedPkTs map[interface{}]typeutil.Timestamp, ttl int64, currTime time.Time) *EntityFilter { + if deletedPkTs == nil { + deletedPkTs = make(map[interface{}]typeutil.Timestamp) + } + return &EntityFilter{ + deletedPkTs: deletedPkTs, + ttl: ttl, + currentTime: currTime, + } +} + +func (filter *EntityFilter) Filtered(pk any, ts typeutil.Timestamp) bool { + if filter.isEntityDeleted(pk, ts) { + filter.deletedCount++ + return true + } + + // Filtering expired entity + if filter.isEntityExpired(ts) { + filter.expiredCount++ + return true + } + return false +} + +func (filter *EntityFilter) GetExpiredCount() int { + return filter.expiredCount +} + +func (filter *EntityFilter) GetDeletedCount() int { + return filter.deletedCount +} + +func (filter *EntityFilter) GetDeltalogDeleteCount() int { + return len(filter.deletedPkTs) +} + +func (filter *EntityFilter) GetMissingDeleteCount() int { + return filter.GetDeltalogDeleteCount() - filter.GetDeletedCount() +} + +func (filter *EntityFilter) isEntityDeleted(pk interface{}, pkTs typeutil.Timestamp) bool { + if deleteTs, ok := filter.deletedPkTs[pk]; ok { + // insert task and delete task has the same ts when upsert + // here should be < instead of <= + // to avoid the upsert data to be deleted after compact + if pkTs < deleteTs { + return true + } + } + return false +} + +func (filter *EntityFilter) isEntityExpired(entityTs typeutil.Timestamp) bool { // entity expire is not enabled if duration <= 0 - if ttl <= 0 { + if filter.ttl <= 0 { return false } + entityTime, _ := tsoutil.ParseTS(entityTs) + + // this dur can represents 292 million years before or after 1970, enough for milvus + // ttl calculation + dur := filter.currentTime.UnixMilli() - entityTime.UnixMilli() - pts, _ := tsoutil.ParseTS(ts) - pnow, _ := tsoutil.ParseTS(now) - expireTime := pts.Add(time.Duration(ttl)) - return expireTime.Before(pnow) + // filter.ttl is nanoseconds + return filter.ttl/int64(time.Millisecond) <= dur } func mergeDeltalogs(ctx context.Context, io io.BinlogIO, paths []string) (map[interface{}]typeutil.Timestamp, error) { - pk2ts := make(map[interface{}]typeutil.Timestamp) + pk2Ts := make(map[interface{}]typeutil.Timestamp) log := log.Ctx(ctx) if len(paths) == 0 { log.Debug("compact with no deltalogs, skip merge deltalogs") - return pk2ts, nil + return pk2Ts, nil } blobs := make([]*storage.Blob, 0) @@ -88,17 +153,15 @@ func mergeDeltalogs(ctx context.Context, io io.BinlogIO, paths []string) (map[in } dl := reader.Value() - // If pk already exists in pk2ts, record the later one. - if ts, ok := pk2ts[dl.Pk.GetValue()]; ok && ts > dl.Ts { + if ts, ok := pk2Ts[dl.Pk.GetValue()]; ok && ts > dl.Ts { continue } - pk2ts[dl.Pk.GetValue()] = dl.Ts + pk2Ts[dl.Pk.GetValue()] = dl.Ts } - log.Info("compact mergeDeltalogs end", - zap.Int("deleted pk counts", len(pk2ts))) + log.Info("compact mergeDeltalogs end", zap.Int("delete entries counts", len(pk2Ts))) - return pk2ts, nil + return pk2Ts, nil } func composePaths(segments []*datapb.CompactionSegmentBinlogs) ( diff --git a/internal/datanode/compaction/compactor_common_test.go b/internal/datanode/compaction/compactor_common_test.go new file mode 100644 index 0000000000000..122bdc8307eb5 --- /dev/null +++ b/internal/datanode/compaction/compactor_common_test.go @@ -0,0 +1,84 @@ +// Licensed to the LF AI & Data foundation under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package compaction + +import ( + "math" + "testing" + "time" + + "github.com/stretchr/testify/suite" + + "github.com/milvus-io/milvus/pkg/util/tsoutil" +) + +func TestCompactorCommonTaskSuite(t *testing.T) { + suite.Run(t, new(CompactorCommonSuite)) +} + +type CompactorCommonSuite struct { + suite.Suite +} + +func (s *CompactorCommonSuite) TestEntityFilterByTTL() { + milvusBirthday := getMilvusBirthday() + + tests := []struct { + description string + collTTL int64 + nowTime time.Time + entityTime time.Time + + expect bool + }{ + // ttl == maxInt64, dur is 1hour, no entities should expire + {"ttl=maxInt64, nowentity", math.MaxInt64, milvusBirthday, milvusBirthday.Add(-time.Hour), false}, + {"ttl=maxInt64, now==entity", math.MaxInt64, milvusBirthday, milvusBirthday, false}, + // ttl == 0, no entities should expire + {"ttl=0, now==entity", 0, milvusBirthday, milvusBirthday, false}, + {"ttl=0, now>entity", 0, milvusBirthday, milvusBirthday.Add(-time.Hour), false}, + {"ttl=0, now10days", 864000000000000, milvusBirthday.AddDate(0, 0, 11), milvusBirthday, true}, + {"ttl=10days, nowTs-entityTs==10days", 864000000000000, milvusBirthday.AddDate(0, 0, 10), milvusBirthday, true}, + {"ttl=10days, nowTs-entityTs<10days", 864000000000000, milvusBirthday.AddDate(0, 0, 9), milvusBirthday, false}, + // ttl is maxInt64 + {"ttl=maxInt64, nowTs-entityTs>1000years", math.MaxInt64, milvusBirthday.AddDate(1000, 0, 11), milvusBirthday, true}, + {"ttl=maxInt64, nowTs-entityTs==1000years", math.MaxInt64, milvusBirthday.AddDate(1000, 0, 0), milvusBirthday, true}, + {"ttl=maxInt64, nowTs-entityTs==240year", math.MaxInt64, milvusBirthday.AddDate(240, 0, 0), milvusBirthday, false}, + {"ttl=maxInt64, nowTs-entityTs==maxDur", math.MaxInt64, milvusBirthday.Add(time.Duration(math.MaxInt64)), milvusBirthday, true}, + {"ttl 0 { @@ -160,12 +152,30 @@ func mergeSortMultipleSegments(ctx context.Context, seg.IsSorted = true } + var ( + deletedRowCount int + expiredRowCount int + missingDeleteCount int + deltalogDeleteEntriesCount int + ) + + for _, filter := range segmentFilters { + deletedRowCount += filter.GetDeletedCount() + expiredRowCount += filter.GetExpiredCount() + missingDeleteCount += filter.GetMissingDeleteCount() + deltalogDeleteEntriesCount += filter.GetDeltalogDeleteCount() + } + totalElapse := tr.RecordSpan() log.Info("compact mergeSortMultipleSegments end", zap.Int64s("mergeSplit to segments", lo.Keys(mWriter.cachedMeta)), - zap.Int64("deleted row count", deletedRowCount), - zap.Int64("expired entities", expiredRowCount), + zap.Int("deleted row count", deletedRowCount), + zap.Int("expired entities", expiredRowCount), + zap.Int("missing deletes", missingDeleteCount), zap.Duration("total elapse", totalElapse)) + metrics.DataNodeCompactionDeleteCount.WithLabelValues(fmt.Sprint(collectionID)).Add(float64(deltalogDeleteEntriesCount)) + metrics.DataNodeCompactionMissingDeleteCount.WithLabelValues(fmt.Sprint(collectionID)).Add(float64(missingDeleteCount)) + return res, nil } diff --git a/internal/datanode/compaction/mix_compactor.go b/internal/datanode/compaction/mix_compactor.go index 271cf1ca5478c..f771c40a2b874 100644 --- a/internal/datanode/compaction/mix_compactor.go +++ b/internal/datanode/compaction/mix_compactor.go @@ -40,13 +40,12 @@ import ( "github.com/milvus-io/milvus/pkg/util/funcutil" "github.com/milvus-io/milvus/pkg/util/paramtable" "github.com/milvus-io/milvus/pkg/util/timerecord" - "github.com/milvus-io/milvus/pkg/util/tsoutil" "github.com/milvus-io/milvus/pkg/util/typeutil" ) type mixCompactionTask struct { - binlogIO io.BinlogIO - currentTs typeutil.Timestamp + binlogIO io.BinlogIO + currentTime time.Time plan *datapb.CompactionPlan @@ -74,13 +73,13 @@ func NewMixCompactionTask( ) *mixCompactionTask { ctx1, cancel := context.WithCancel(ctx) return &mixCompactionTask{ - ctx: ctx1, - cancel: cancel, - binlogIO: binlogIO, - plan: plan, - tr: timerecord.NewTimeRecorder("mergeSplit compaction"), - currentTs: tsoutil.GetCurrentTime(), - done: make(chan struct{}, 1), + ctx: ctx1, + cancel: cancel, + binlogIO: binlogIO, + plan: plan, + tr: timerecord.NewTimeRecorder("mergeSplit compaction"), + currentTime: time.Now(), + done: make(chan struct{}, 1), } } @@ -201,23 +200,7 @@ func (t *mixCompactionTask) writeSegment(ctx context.Context, log.Warn("compact wrong, fail to merge deltalogs", zap.Error(err)) return } - - isValueDeleted := func(pk any, ts typeutil.Timestamp) bool { - oldts, ok := delta[pk] - // insert task and delete task has the same ts when upsert - // here should be < instead of <= - // to avoid the upsert data to be deleted after compact - if ok && ts < oldts { - deletedRowCount++ - return true - } - // Filtering expired entity - if isExpiredEntity(t.plan.GetCollectionTtl(), t.currentTs, typeutil.Timestamp(ts)) { - expiredRowCount++ - return true - } - return false - } + entityFilter := newEntityFilter(delta, t.plan.GetCollectionTtl(), t.currentTime) reader, err := storage.NewCompositeBinlogRecordReader(blobs) if err != nil { @@ -265,7 +248,7 @@ func (t *mixCompactionTask) writeSegment(ctx context.Context, panic("invalid data type") } ts := typeutil.Timestamp(tsArray.Value(i)) - if isValueDeleted(pk, ts) { + if entityFilter.Filtered(pk, ts) { if sliceStart != -1 { err = writeSlice(r, sliceStart, i) if err != nil { @@ -288,6 +271,14 @@ func (t *mixCompactionTask) writeSegment(ctx context.Context, } } } + + deltalogDeleteEntriesCount := len(delta) + deletedRowCount = int64(entityFilter.GetDeletedCount()) + expiredRowCount = int64(entityFilter.GetExpiredCount()) + + metrics.DataNodeCompactionDeleteCount.WithLabelValues(fmt.Sprint(t.collectionID)).Add(float64(deltalogDeleteEntriesCount)) + metrics.DataNodeCompactionMissingDeleteCount.WithLabelValues(fmt.Sprint(t.collectionID)).Add(float64(entityFilter.GetMissingDeleteCount())) + return } @@ -347,7 +338,7 @@ func (t *mixCompactionTask) Compact() (*datapb.CompactionPlanResult, error) { if sortMergeAppicable { log.Info("compact by merge sort") res, err = mergeSortMultipleSegments(ctxTimeout, t.plan, t.collectionID, t.partitionID, t.maxRows, t.binlogIO, - t.plan.GetSegmentBinlogs(), t.tr, t.currentTs, t.plan.GetCollectionTtl(), t.bm25FieldIDs) + t.plan.GetSegmentBinlogs(), t.tr, t.currentTime, t.plan.GetCollectionTtl(), t.bm25FieldIDs) if err != nil { log.Warn("compact wrong, fail to merge sort segments", zap.Error(err)) return nil, err diff --git a/internal/datanode/compaction/mix_compactor_test.go b/internal/datanode/compaction/mix_compactor_test.go index d3df04c56e069..e94b1629523d9 100644 --- a/internal/datanode/compaction/mix_compactor_test.go +++ b/internal/datanode/compaction/mix_compactor_test.go @@ -340,8 +340,7 @@ func (s *MixCompactionTaskSuite) TestCompactSortedSegment() { func (s *MixCompactionTaskSuite) TestSplitMergeEntityExpired() { s.initSegBuffer(1, 3) collTTL := 864000 // 10 days - currTs := tsoutil.ComposeTSByTime(getMilvusBirthday().Add(time.Second*(time.Duration(collTTL)+1)), 0) - s.task.currentTs = currTs + s.task.currentTime = getMilvusBirthday().Add(time.Second * (time.Duration(collTTL) + 1)) s.task.plan.CollectionTtl = int64(collTTL) alloc := allocator.NewLocalAllocator(888888, math.MaxInt64) @@ -512,15 +511,14 @@ func (s *MixCompactionTaskSuite) TestMergeDeltalogsMultiSegment() { got, err := mergeDeltalogs(s.task.ctx, s.task.binlogIO, []string{"random"}) s.NoError(err) + s.Equal(len(got), len(test.expectedpk2ts)) - s.Equal(len(test.expectedpk2ts), len(got)) - gotKeys := lo.Map(lo.Keys(got), func(k interface{}, _ int) int64 { - res, ok := k.(int64) + for gotKT, gotV := range got { + gotK, ok := gotKT.(int64) s.Require().True(ok) - return res - }) - s.ElementsMatch(gotKeys, lo.Keys(test.expectedpk2ts)) - s.ElementsMatch(lo.Values(got), lo.Values(test.expectedpk2ts)) + + s.EqualValues(test.expectedpk2ts[gotK], gotV) + } }) } } @@ -551,13 +549,12 @@ func (s *MixCompactionTaskSuite) TestMergeDeltalogsOneSegment() { s.NotNil(got) s.Equal(len(expectedMap), len(got)) - gotKeys := lo.Map(lo.Keys(got), func(k interface{}, _ int) int64 { - res, ok := k.(int64) + for gotKT, gotV := range got { + gotK, ok := gotKT.(int64) s.Require().True(ok) - return res - }) - s.ElementsMatch(gotKeys, lo.Keys(expectedMap)) - s.ElementsMatch(lo.Values(got), lo.Values(expectedMap)) + + s.EqualValues(expectedMap[gotK], gotV) + } } func (s *MixCompactionTaskSuite) TestCompactFail() { @@ -586,44 +583,6 @@ func (s *MixCompactionTaskSuite) TestCompactFail() { }) } -func (s *MixCompactionTaskSuite) TestIsExpiredEntity() { - milvusBirthdayTs := tsoutil.ComposeTSByTime(getMilvusBirthday(), 0) - - tests := []struct { - description string - collTTL int64 - nowTs uint64 - entityTs uint64 - - expect bool - }{ - {"ttl=maxInt64, nowTs-entityTs=ttl", math.MaxInt64, math.MaxInt64, 0, true}, - {"ttl=maxInt64, nowTs-entityTs < 0", math.MaxInt64, milvusBirthdayTs, 0, false}, - {"ttl=maxInt64, 0ttl v2", math.MaxInt64, math.MaxInt64, milvusBirthdayTs, true}, - // entityTs==currTs will never happen - // {"ttl=maxInt64, curTs-entityTs=0", math.MaxInt64, milvusBirthdayTs, milvusBirthdayTs, true}, - {"ttl=0, nowTs>entityTs", 0, milvusBirthdayTs + 1, milvusBirthdayTs, false}, - {"ttl=0, nowTs==entityTs", 0, milvusBirthdayTs, milvusBirthdayTs, false}, - {"ttl=0, nowTs10days", 864000, milvusBirthdayTs + 864001, milvusBirthdayTs, true}, - {"ttl=10days, nowTs-entityTs==10days", 864000, milvusBirthdayTs + 864000, milvusBirthdayTs, true}, - {"ttl=10days, nowTs-entityTs<10days", 864000, milvusBirthdayTs + 10, milvusBirthdayTs, false}, - } - for _, test := range tests { - s.Run(test.description, func() { - t := &mixCompactionTask{ - plan: &datapb.CompactionPlan{ - CollectionTtl: test.collTTL, - }, - currentTs: test.nowTs, - } - got := isExpiredEntity(t.plan.GetCollectionTtl(), t.currentTs, test.entityTs) - s.Equal(test.expect, got) - }) - } -} - func getRow(magic int64) map[int64]interface{} { ts := tsoutil.ComposeTSByTime(getMilvusBirthday(), 0) return map[int64]interface{}{ diff --git a/internal/proto/data_coord.proto b/internal/proto/data_coord.proto index 8308c70e04416..5d78f28cf0ddf 100644 --- a/internal/proto/data_coord.proto +++ b/internal/proto/data_coord.proto @@ -604,7 +604,7 @@ message CompactionPlan { CompactionType type = 5; uint64 timetravel = 6; string channel = 7; - int64 collection_ttl = 8; + int64 collection_ttl = 8; // nanoseconds int64 total_rows = 9; schema.CollectionSchema schema = 10; int64 clustering_key_field = 11; diff --git a/pkg/metrics/datanode_metrics.go b/pkg/metrics/datanode_metrics.go index ff982a4bbf50a..173d9000ea369 100644 --- a/pkg/metrics/datanode_metrics.go +++ b/pkg/metrics/datanode_metrics.go @@ -237,6 +237,22 @@ var ( nodeIDLabelName, channelNameLabelName, }) + + DataNodeCompactionDeleteCount = prometheus.NewCounterVec( + prometheus.CounterOpts{ + Namespace: milvusNamespace, + Subsystem: typeutil.DataNodeRole, + Name: "compaction_delete_count", + Help: "Number of delete entries in compaction", + }, []string{collectionIDLabelName}) + + DataNodeCompactionMissingDeleteCount = prometheus.NewCounterVec( + prometheus.CounterOpts{ + Namespace: milvusNamespace, + Subsystem: typeutil.DataNodeRole, + Name: "compaction_missing_delete_count", + Help: "Number of missing deletes in compaction", + }, []string{collectionIDLabelName}) ) // RegisterDataNode registers DataNode metrics @@ -261,6 +277,8 @@ func RegisterDataNode(registry *prometheus.Registry) { // compaction related registry.MustRegister(DataNodeCompactionLatency) registry.MustRegister(DataNodeCompactionLatencyInQueue) + registry.MustRegister(DataNodeCompactionDeleteCount) + registry.MustRegister(DataNodeCompactionMissingDeleteCount) // deprecated metrics registry.MustRegister(DataNodeForwardDeleteMsgTimeTaken) registry.MustRegister(DataNodeNumProducers) @@ -298,4 +316,12 @@ func CleanupDataNodeCollectionMetrics(nodeID int64, collectionID int64, channel nodeIDLabelName: fmt.Sprint(nodeID), collectionIDLabelName: fmt.Sprint(collectionID), }) + + DataNodeCompactionDeleteCount.Delete(prometheus.Labels{ + collectionIDLabelName: fmt.Sprint(collectionID), + }) + + DataNodeCompactionMissingDeleteCount.Delete(prometheus.Labels{ + collectionIDLabelName: fmt.Sprint(collectionID), + }) } From 5395ec19ad09c2c930c085d1f7239f1ba9dfa21d Mon Sep 17 00:00:00 2001 From: Zhen Ye Date: Wed, 25 Dec 2024 14:46:49 +0800 Subject: [PATCH 10/69] enhance: add mem size for index file and fallback to multiply with serialized size (#38716) issue: #38715 Signed-off-by: chyezh --- configs/milvus.yaml | 2 ++ internal/querynodev2/segments/segment.go | 3 ++- pkg/util/paramtable/component_param.go | 12 ++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/configs/milvus.yaml b/configs/milvus.yaml index e508238fbeb2d..8636125bbb184 100644 --- a/configs/milvus.yaml +++ b/configs/milvus.yaml @@ -603,6 +603,8 @@ dataCoord: maxClusterSizeRatio: 10 # maximum cluster size / avg size in Kmeans train maxClusterSize: 5g # maximum cluster size in Kmeans train syncSegmentsInterval: 300 # The time interval for regularly syncing segments + index: + memSizeEstimateMultiplier: 2 # When the memory size is not setup by index procedure, multiplier to estimate the memory size of index data enableGarbageCollection: true # Switch value to control if to enable garbage collection to clear the discarded data in MinIO or S3 service. gc: interval: 3600 # The interval at which data coord performs garbage collection, unit: second. diff --git a/internal/querynodev2/segments/segment.go b/internal/querynodev2/segments/segment.go index 41188c1139bd5..dab60442b3f41 100644 --- a/internal/querynodev2/segments/segment.go +++ b/internal/querynodev2/segments/segment.go @@ -961,7 +961,8 @@ func GetCLoadInfoWithFunc(ctx context.Context, IndexFiles: indexInfo.GetIndexFilePaths(), IndexEngineVersion: indexInfo.GetCurrentIndexVersion(), IndexStoreVersion: indexInfo.GetIndexStoreVersion(), - IndexFileSize: indexInfo.GetIndexSize(), + // TODO: For quickly fixing, we add the multiplier here, but those logic should be put at the datacoord after we add the mem size for each index. + IndexFileSize: int64(paramtable.Get().DataCoordCfg.IndexMemSizeEstimateMultiplier.GetAsFloat() * float64(indexInfo.GetIndexSize())), } // 2. diff --git a/pkg/util/paramtable/component_param.go b/pkg/util/paramtable/component_param.go index c76ef7f233058..cc81bc5cf7540 100644 --- a/pkg/util/paramtable/component_param.go +++ b/pkg/util/paramtable/component_param.go @@ -3323,6 +3323,9 @@ type dataCoordConfig struct { ChannelCheckpointMaxLag ParamItem `refreshable:"true"` SyncSegmentsInterval ParamItem `refreshable:"false"` + // Index related configuration + IndexMemSizeEstimateMultiplier ParamItem `refreshable:"true"` + // Clustering Compaction ClusteringCompactionEnable ParamItem `refreshable:"true"` ClusteringCompactionAutoEnable ParamItem `refreshable:"true"` @@ -3806,6 +3809,15 @@ During compaction, the size of segment # of rows is able to exceed segment max # } p.LevelZeroCompactionTriggerDeltalogMaxNum.Init(base.mgr) + p.IndexMemSizeEstimateMultiplier = ParamItem{ + Key: "dataCoord.index.memSizeEstimateMultiplier", + Version: "2.4.19", + DefaultValue: "2", + Doc: "When the memory size is not setup by index procedure, multiplier to estimate the memory size of index data", + Export: true, + } + p.IndexMemSizeEstimateMultiplier.Init(base.mgr) + p.ClusteringCompactionEnable = ParamItem{ Key: "dataCoord.compaction.clustering.enable", Version: "2.4.7", From acc8fb7af6451bf5b3b5423b8b2b0ad5e731ca57 Mon Sep 17 00:00:00 2001 From: Ted Xu Date: Wed, 25 Dec 2024 15:30:50 +0800 Subject: [PATCH 11/69] enhance: eliminate compile warnings (part2) (#38535) See #38435 --------- Signed-off-by: Ted Xu --- internal/core/CMakeLists.txt | 1 + internal/core/src/bitset/bitset.h | 22 +++++---- .../core/src/bitset/detail/element_wise.h | 3 -- internal/core/src/common/Array.h | 4 +- internal/core/src/common/BitsetView.h | 2 +- internal/core/src/common/Chunk.h | 2 +- internal/core/src/common/ChunkWriter.h | 2 +- internal/core/src/common/FieldData.h | 4 +- internal/core/src/common/FieldMeta.h | 33 +++++++------- internal/core/src/common/Span.h | 2 +- internal/core/src/common/Types.h | 3 ++ internal/core/src/exec/expression/EvalCtx.h | 5 +-- internal/core/src/mmap/ChunkedColumn.h | 6 +-- internal/core/src/mmap/Column.h | 14 +++--- .../src/segcore/ChunkedSegmentSealedImpl.h | 8 ++-- internal/core/src/segcore/ConcurrentVector.h | 22 ++++----- internal/core/src/segcore/DeletedRecord.h | 7 ++- internal/core/src/segcore/InsertRecord.h | 2 +- .../core/src/segcore/SegmentSealedImpl.cpp | 45 +++++++++---------- internal/core/src/segcore/SegmentSealedImpl.h | 8 ++-- internal/core/src/storage/DataCodec.cpp | 4 +- internal/core/src/storage/DataCodec.h | 7 +-- internal/core/src/storage/SafeQueue.h | 8 ++-- internal/core/unittest/test_chunk_cache.cpp | 8 ++-- 24 files changed, 106 insertions(+), 116 deletions(-) diff --git a/internal/core/CMakeLists.txt b/internal/core/CMakeLists.txt index a7a835f4627d2..3914db12fe3ca 100644 --- a/internal/core/CMakeLists.txt +++ b/internal/core/CMakeLists.txt @@ -152,6 +152,7 @@ if ( APPLE ) "-D_DARWIN_C_SOURCE" "-Wno-gnu-zero-variadic-macro-arguments" "-Wno-variadic-macros" + "-Wno-reorder-ctor" "-DBOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED=1" ) endif () diff --git a/internal/core/src/bitset/bitset.h b/internal/core/src/bitset/bitset.h index e5a82ac263305..0e739dc6a310c 100644 --- a/internal/core/src/bitset/bitset.h +++ b/internal/core/src/bitset/bitset.h @@ -987,22 +987,21 @@ class BitsetView : public BitsetBase; - BitsetView() { - } + BitsetView() = default; BitsetView(const BitsetView&) = default; - BitsetView(BitsetView&&) = default; + BitsetView(BitsetView&&) noexcept = default; BitsetView& operator=(const BitsetView&) = default; BitsetView& - operator=(BitsetView&&) = default; + operator=(BitsetView&&) noexcept = default; template - BitsetView(BitsetBase& bitset) + explicit BitsetView(BitsetBase& bitset) : Data{bitset.data()}, Size{bitset.size()}, Offset{bitset.offset()} { } BitsetView(void* data, const size_t size) - : Data{reinterpret_cast(data)}, Size{size}, Offset{0} { + : Data{reinterpret_cast(data)}, Size{size} { } BitsetView(void* data, const size_t offset, const size_t size) @@ -1064,10 +1063,9 @@ class Bitset using range_checker = RangeChecker; // Allocate an empty one. - Bitset() { - } + Bitset() = default; // Allocate the given number of bits. - Bitset(const size_t size) + explicit Bitset(const size_t size) : Data(get_required_size_in_container_elements(size)), Size{size} { } // Allocate the given number of bits, initialize with a given value. @@ -1079,16 +1077,16 @@ class Bitset // Do not allow implicit copies (Rust style). Bitset(const Bitset&) = delete; // Allow default move. - Bitset(Bitset&&) = default; + Bitset(Bitset&&) noexcept = default; // Do not allow implicit copies (Rust style). Bitset& operator=(const Bitset&) = delete; // Allow default move. Bitset& - operator=(Bitset&&) = default; + operator=(Bitset&&) noexcept = default; template - Bitset(const BitsetBase& other) { + explicit Bitset(const BitsetBase& other) { Data = container_type( get_required_size_in_container_elements(other.size())); Size = other.size(); diff --git a/internal/core/src/bitset/detail/element_wise.h b/internal/core/src/bitset/detail/element_wise.h index 3baf9c45affac..a738ef42e6a90 100644 --- a/internal/core/src/bitset/detail/element_wise.h +++ b/internal/core/src/bitset/detail/element_wise.h @@ -733,8 +733,6 @@ struct ElementWiseBitsetPolicy { const auto start_shift = get_shift(start + starting_idx); const auto end_shift = get_shift(start + size); - size_t extra_offset = 0; - // same element? if (start_element == end_element) { const data_type existing_v = data[start_element]; @@ -764,7 +762,6 @@ struct ElementWiseBitsetPolicy { } start_element += 1; - extra_offset += data_bits - start_shift; } // process the middle diff --git a/internal/core/src/common/Array.h b/internal/core/src/common/Array.h index 705258c876c94..157fe78702818 100644 --- a/internal/core/src/common/Array.h +++ b/internal/core/src/common/Array.h @@ -449,8 +449,8 @@ class ArrayView { DataType element_type, std::vector&& element_offsets) : size_(size), - element_type_(element_type), - offsets_(std::move(element_offsets)) { + offsets_(std::move(element_offsets)), + element_type_(element_type) { data_ = data; if (IsVariableDataType(element_type_)) { length_ = offsets_.size(); diff --git a/internal/core/src/common/BitsetView.h b/internal/core/src/common/BitsetView.h index 3d1a75be6c92a..e7b298cdb33b5 100644 --- a/internal/core/src/common/BitsetView.h +++ b/internal/core/src/common/BitsetView.h @@ -41,7 +41,7 @@ class BitsetView : public knowhere::BitsetView { } BitsetView(const BitsetType& bitset) // NOLINT - : BitsetView((uint8_t*)(bitset.data()), size_t(bitset.size())) { + : BitsetView((uint8_t*)(bitset.data()), bitset.size()) { } BitsetView(const BitsetTypePtr& bitset_ptr) { // NOLINT diff --git a/internal/core/src/common/Chunk.h b/internal/core/src/common/Chunk.h index 7c26bdeba7710..8dd2e14039267 100644 --- a/internal/core/src/common/Chunk.h +++ b/internal/core/src/common/Chunk.h @@ -36,7 +36,7 @@ class Chunk { public: Chunk() = default; Chunk(int64_t row_nums, char* data, uint64_t size, bool nullable) - : row_nums_(row_nums), data_(data), size_(size), nullable_(nullable) { + : data_(data), row_nums_(row_nums), size_(size), nullable_(nullable) { if (nullable) { valid_.reserve(row_nums); for (int i = 0; i < row_nums; i++) { diff --git a/internal/core/src/common/ChunkWriter.h b/internal/core/src/common/ChunkWriter.h index 09225f44afa02..ab3769f39a51a 100644 --- a/internal/core/src/common/ChunkWriter.h +++ b/internal/core/src/common/ChunkWriter.h @@ -52,7 +52,7 @@ class ChunkWriterBase { }; template -class ChunkWriter : public ChunkWriterBase { +class ChunkWriter final : public ChunkWriterBase { public: ChunkWriter(int dim, bool nullable) : ChunkWriterBase(nullable), dim_(dim) { } diff --git a/internal/core/src/common/FieldData.h b/internal/core/src/common/FieldData.h index cdd2b735464a2..adec3f054b29d 100644 --- a/internal/core/src/common/FieldData.h +++ b/internal/core/src/common/FieldData.h @@ -97,8 +97,8 @@ class FieldData : public FieldDataImpl { explicit FieldData(int64_t dim, DataType data_type, int64_t buffered_num_rows = 0) - : binary_dim_(dim), - FieldDataImpl(dim / 8, data_type, false, buffered_num_rows) { + : FieldDataImpl(dim / 8, data_type, false, buffered_num_rows), + binary_dim_(dim) { Assert(dim % 8 == 0); } diff --git a/internal/core/src/common/FieldMeta.h b/internal/core/src/common/FieldMeta.h index 92356b15724c2..e8b99341e39aa 100644 --- a/internal/core/src/common/FieldMeta.h +++ b/internal/core/src/common/FieldMeta.h @@ -19,6 +19,7 @@ #include #include #include +#include #include "common/EasyAssert.h" #include "common/Types.h" @@ -40,25 +41,25 @@ class FieldMeta { FieldMeta& operator=(FieldMeta&&) = default; - FieldMeta(const FieldName& name, FieldId id, DataType type, bool nullable) - : name_(name), id_(id), type_(type), nullable_(nullable) { + FieldMeta(FieldName name, FieldId id, DataType type, bool nullable) + : name_(std::move(name)), id_(id), type_(type), nullable_(nullable) { Assert(!IsVectorDataType(type_)); } - FieldMeta(const FieldName& name, + FieldMeta(FieldName name, FieldId id, DataType type, int64_t max_length, bool nullable) - : name_(name), + : name_(std::move(name)), id_(id), type_(type), - string_info_(StringInfo{max_length}), - nullable_(nullable) { + nullable_(nullable), + string_info_(StringInfo{max_length}) { Assert(IsStringDataType(type_)); } - FieldMeta(const FieldName& name, + FieldMeta(FieldName name, FieldId id, DataType type, int64_t max_length, @@ -66,21 +67,21 @@ class FieldMeta { bool enable_match, bool enable_analyzer, std::map& params) - : name_(name), + : name_(std::move(name)), id_(id), type_(type), + nullable_(nullable), string_info_(StringInfo{ - max_length, enable_match, enable_analyzer, std::move(params)}), - nullable_(nullable) { + max_length, enable_match, enable_analyzer, std::move(params)}) { Assert(IsStringDataType(type_)); } - FieldMeta(const FieldName& name, + FieldMeta(FieldName name, FieldId id, DataType type, DataType element_type, bool nullable) - : name_(name), + : name_(std::move(name)), id_(id), type_(type), element_type_(element_type), @@ -90,17 +91,17 @@ class FieldMeta { // pass in any value for dim for sparse vector is ok as it'll never be used: // get_dim() not allowed to be invoked on a sparse vector field. - FieldMeta(const FieldName& name, + FieldMeta(FieldName name, FieldId id, DataType type, int64_t dim, std::optional metric_type, bool nullable) - : name_(name), + : name_(std::move(name)), id_(id), type_(type), - vector_info_(VectorInfo{dim, std::move(metric_type)}), - nullable_(nullable) { + nullable_(nullable), + vector_info_(VectorInfo{dim, std::move(metric_type)}) { Assert(IsVectorDataType(type_)); Assert(!nullable); } diff --git a/internal/core/src/common/Span.h b/internal/core/src/common/Span.h index 3334b8b44e72e..950e69e003a84 100644 --- a/internal/core/src/common/Span.h +++ b/internal/core/src/common/Span.h @@ -138,7 +138,7 @@ class Span< using embedded_type = typename VectorType::embedded_type; Span(const embedded_type* data, int64_t row_count, int64_t element_sizeof) - : row_count_(row_count), data_(data), element_sizeof_(element_sizeof) { + : data_(data), row_count_(row_count), element_sizeof_(element_sizeof) { } explicit Span(const SpanBase& base) diff --git a/internal/core/src/common/Types.h b/internal/core/src/common/Types.h index d26d2ee2ed9dc..3dd85e271741d 100644 --- a/internal/core/src/common/Types.h +++ b/internal/core/src/common/Types.h @@ -680,6 +680,9 @@ struct fmt::formatter : formatter { case milvus::OpType::OpType_INT_MAX_SENTINEL_DO_NOT_USE_: name = "OpType_INT_MAX_SENTINEL_DO_NOT_USE"; break; + case milvus::OpType::TextMatch: + name = "TextMatch"; + break; } return formatter::format(name, ctx); } diff --git a/internal/core/src/exec/expression/EvalCtx.h b/internal/core/src/exec/expression/EvalCtx.h index 244dbff6cf284..185c30c96dd1d 100644 --- a/internal/core/src/exec/expression/EvalCtx.h +++ b/internal/core/src/exec/expression/EvalCtx.h @@ -43,11 +43,10 @@ class EvalCtx { } explicit EvalCtx(ExecContext* exec_ctx, ExprSet* expr_set) - : exec_ctx_(exec_ctx), expr_set_(expr_set), offset_input_(nullptr) { + : exec_ctx_(exec_ctx), expr_set_(expr_set) { } - explicit EvalCtx(ExecContext* exec_ctx) - : exec_ctx_(exec_ctx), expr_set_(nullptr), offset_input_(nullptr) { + explicit EvalCtx(ExecContext* exec_ctx) : exec_ctx_(exec_ctx) { } ExecContext* diff --git a/internal/core/src/mmap/ChunkedColumn.h b/internal/core/src/mmap/ChunkedColumn.h index 91b3f9530b4ea..a75f648460923 100644 --- a/internal/core/src/mmap/ChunkedColumn.h +++ b/internal/core/src/mmap/ChunkedColumn.h @@ -53,15 +53,15 @@ class ChunkedColumnBase : public ColumnBase { public: ChunkedColumnBase() = default; // memory mode ctor - ChunkedColumnBase(const FieldMeta& field_meta) { + explicit ChunkedColumnBase(const FieldMeta& field_meta) { if (field_meta.is_nullable()) { nullable_ = true; } } - virtual ~ChunkedColumnBase(){}; + virtual ~ChunkedColumnBase() = default; - virtual void + void AppendBatch(const FieldDataPtr data) override { PanicInfo(ErrorCode::Unsupported, "AppendBatch not supported"); } diff --git a/internal/core/src/mmap/Column.h b/internal/core/src/mmap/Column.h index 413bdcf89c8fa..0862f53b052de 100644 --- a/internal/core/src/mmap/Column.h +++ b/internal/core/src/mmap/Column.h @@ -132,7 +132,7 @@ class ColumnBase { AppendBatch(const FieldDataPtr data) = 0; virtual const char* - Data(int chunk_id = 0) const = 0; + Data(int chunk_id) const = 0; }; class SingleChunkColumnBase : public ColumnBase { public: @@ -183,8 +183,6 @@ class SingleChunkColumnBase : public ColumnBase { bool nullable) : mcm_(mcm), mmap_descriptor_(descriptor), - num_rows_(0), - data_size_(0), data_cap_size_(reserve), mapping_type_(MappingType::MAP_WITH_MANAGER), nullable_(nullable) { @@ -267,7 +265,7 @@ class SingleChunkColumnBase : public ColumnBase { // Data() points at an addr that contains the elements virtual const char* - Data(int chunk_id = 0) const override { + Data(int chunk_id) const override { return data_; } @@ -297,7 +295,7 @@ class SingleChunkColumnBase : public ColumnBase { // returns the number of bytes used to store actual data size_t - DataByteSize() const { + DataByteSize() const override { return data_size_; } @@ -330,7 +328,7 @@ class SingleChunkColumnBase : public ColumnBase { } virtual void - AppendBatch(const FieldDataPtr data) { + AppendBatch(const FieldDataPtr data) override { size_t required_size = data_size_ + data->DataSize(); if (required_size > data_cap_size_) { ExpandData(required_size * 2); @@ -584,7 +582,7 @@ class SingleChunkSparseFloatColumn : public SingleChunkColumnBase { // returned pointer points at a list of knowhere::sparse::SparseRow const char* - Data(int chunk_id = 0) const override { + Data(int chunk_id) const override { return static_cast(static_cast(vec_.data())); } @@ -705,7 +703,7 @@ class SingleChunkVariableColumn : public SingleChunkColumnBase { } std::pair, FixedVector> - ViewsByOffsets(const FixedVector& offsets) const { + ViewsByOffsets(const FixedVector& offsets) const override { std::vector res; FixedVector valid; res.reserve(offsets.size()); diff --git a/internal/core/src/segcore/ChunkedSegmentSealedImpl.h b/internal/core/src/segcore/ChunkedSegmentSealedImpl.h index 0808857bde161..7f53f9d94a09d 100644 --- a/internal/core/src/segcore/ChunkedSegmentSealedImpl.h +++ b/internal/core/src/segcore/ChunkedSegmentSealedImpl.h @@ -119,10 +119,10 @@ class ChunkedSegmentSealedImpl : public SegmentSealed { get_schema() const override; std::vector - search_pk(const PkType& pk, Timestamp timestamp) const; + search_pk(const PkType& pk, Timestamp timestamp) const override; std::vector - search_pk(const PkType& pk, int64_t insert_barrier) const; + search_pk(const PkType& pk, int64_t insert_barrier) const override; template std::vector @@ -201,7 +201,7 @@ class ChunkedSegmentSealedImpl : public SegmentSealed { is_mmap_field(FieldId id) const override; void - ClearData(); + ClearData() override; protected: // blob and row_count @@ -340,7 +340,7 @@ class ChunkedSegmentSealedImpl : public SegmentSealed { void LoadScalarIndex(const LoadIndexInfo& info); - virtual void + void WarmupChunkCache(const FieldId field_id, bool mmap_enabled) override; bool diff --git a/internal/core/src/segcore/ConcurrentVector.h b/internal/core/src/segcore/ConcurrentVector.h index 67675e4515276..3ddd3c27484bc 100644 --- a/internal/core/src/segcore/ConcurrentVector.h +++ b/internal/core/src/segcore/ConcurrentVector.h @@ -405,7 +405,7 @@ class ConcurrentVector int64_t size_per_chunk, storage::MmapChunkDescriptorPtr mmap_descriptor = nullptr) : ConcurrentVectorImpl::ConcurrentVectorImpl( - 1, size_per_chunk, mmap_descriptor) { + 1, size_per_chunk, std::move(mmap_descriptor)) { } std::string_view @@ -423,7 +423,7 @@ class ConcurrentVector : public ConcurrentVectorImpl { int64_t size_per_chunk, storage::MmapChunkDescriptorPtr mmap_descriptor = nullptr) : ConcurrentVectorImpl::ConcurrentVectorImpl( - 1, size_per_chunk, mmap_descriptor) { + 1, size_per_chunk, std::move(mmap_descriptor)) { } std::string_view @@ -442,7 +442,7 @@ class ConcurrentVector : public ConcurrentVectorImpl { int64_t size_per_chunk, storage::MmapChunkDescriptorPtr mmap_descriptor = nullptr) : ConcurrentVectorImpl::ConcurrentVectorImpl( - 1, size_per_chunk, mmap_descriptor) { + 1, size_per_chunk, std::move(mmap_descriptor)) { } ArrayView @@ -460,10 +460,9 @@ class ConcurrentVector explicit ConcurrentVector( int64_t size_per_chunk, storage::MmapChunkDescriptorPtr mmap_descriptor = nullptr) - : ConcurrentVectorImpl, - true>::ConcurrentVectorImpl(1, - size_per_chunk, - mmap_descriptor), + : ConcurrentVectorImpl, true>:: + ConcurrentVectorImpl( + 1, size_per_chunk, std::move(mmap_descriptor)), dim_(0) { } @@ -499,7 +498,7 @@ class ConcurrentVector int64_t size_per_chunk, storage::MmapChunkDescriptorPtr mmap_descriptor = nullptr) : ConcurrentVectorImpl::ConcurrentVectorImpl( - dim, size_per_chunk, mmap_descriptor) { + dim, size_per_chunk, std::move(mmap_descriptor)) { } }; @@ -511,7 +510,8 @@ class ConcurrentVector int64_t dim, int64_t size_per_chunk, storage::MmapChunkDescriptorPtr mmap_descriptor = nullptr) - : ConcurrentVectorImpl(dim / 8, size_per_chunk, mmap_descriptor) { + : ConcurrentVectorImpl( + dim / 8, size_per_chunk, std::move(mmap_descriptor)) { AssertInfo(dim % 8 == 0, fmt::format("dim is not a multiple of 8, dim={}", dim)); } @@ -525,7 +525,7 @@ class ConcurrentVector int64_t size_per_chunk, storage::MmapChunkDescriptorPtr mmap_descriptor = nullptr) : ConcurrentVectorImpl::ConcurrentVectorImpl( - dim, size_per_chunk, mmap_descriptor) { + dim, size_per_chunk, std::move(mmap_descriptor)) { } }; @@ -537,7 +537,7 @@ class ConcurrentVector int64_t size_per_chunk, storage::MmapChunkDescriptorPtr mmap_descriptor = nullptr) : ConcurrentVectorImpl::ConcurrentVectorImpl( - dim, size_per_chunk, mmap_descriptor) { + dim, size_per_chunk, std::move(mmap_descriptor)) { } }; diff --git a/internal/core/src/segcore/DeletedRecord.h b/internal/core/src/segcore/DeletedRecord.h index c02da377aa5b3..d9934ed8191eb 100644 --- a/internal/core/src/segcore/DeletedRecord.h +++ b/internal/core/src/segcore/DeletedRecord.h @@ -120,8 +120,7 @@ class DeletedRecord { } std::vector offsets; if (segment_) { - offsets = - std::move(segment_->search_pk(deleted_pk, deleted_ts)); + offsets = segment_->search_pk(deleted_pk, deleted_ts); } else { // only for testing offsets = std::move( @@ -268,7 +267,7 @@ class DeletedRecord { } else { // add new snapshot snapshots_.push_back( - std::make_pair(dump_ts, std::move(bitmap.clone()))); + std::make_pair(dump_ts, bitmap.clone())); Assert(it != accessor.end() && it.good()); snap_next_iter_.push_back(it); } @@ -314,7 +313,7 @@ class DeletedRecord { for (const auto& snap : snapshots_) { snapshots.emplace_back(snap.first, snap.second.clone()); } - return std::move(snapshots); + return snapshots; } public: diff --git a/internal/core/src/segcore/InsertRecord.h b/internal/core/src/segcore/InsertRecord.h index a009ca5e9d12a..3f8bb5a4d3738 100644 --- a/internal/core/src/segcore/InsertRecord.h +++ b/internal/core/src/segcore/InsertRecord.h @@ -535,7 +535,7 @@ struct InsertRecord { case DataType::INT64: { auto column = std::dynamic_pointer_cast(data); - auto pks = reinterpret_cast(column->Data()); + auto pks = reinterpret_cast(column->Data(0)); for (int i = 0; i < column->NumRows(); ++i) { pk2offset_->insert(pks[i], offset++); } diff --git a/internal/core/src/segcore/SegmentSealedImpl.cpp b/internal/core/src/segcore/SegmentSealedImpl.cpp index 3abede7800536..cc17593b77141 100644 --- a/internal/core/src/segcore/SegmentSealedImpl.cpp +++ b/internal/core/src/segcore/SegmentSealedImpl.cpp @@ -61,7 +61,6 @@ namespace milvus::segcore { case DataType::INT64: { \ auto col = \ std::dynamic_pointer_cast(column); \ - auto pks = reinterpret_cast(col->Data()); \ for (int i = 1; i < col->NumRows(); ++i) { \ assert(pks[i - 1] <= pks[i] && \ "INT64 Column is not ordered!"); \ @@ -122,7 +121,6 @@ void SegmentSealedImpl::LoadVecIndex(const LoadIndexInfo& info) { // NOTE: lock only when data is ready to avoid starvation auto field_id = FieldId(info.field_id); - auto& field_meta = schema_->operator[](field_id); AssertInfo(info.index_params.count("metric_type"), "Can't get metric_type in index_params"); @@ -712,7 +710,6 @@ SegmentSealedImpl::get_chunk_buffer(FieldId field_id, std::shared_lock lck(mutex_); AssertInfo(get_bit(field_data_ready_bitset_, field_id), "Can't get bitset element at " + std::to_string(field_id.get())); - auto& field_meta = schema_->operator[](field_id); if (auto it = fields_.find(field_id); it != fields_.end()) { auto& field_data = it->second; FixedVector valid_data; @@ -839,7 +836,7 @@ SegmentSealedImpl::search_sorted_pk(const PkType& pk, case DataType::INT64: { auto target = std::get(pk); // get int64 pks - auto src = reinterpret_cast(pk_column->Data()); + auto src = reinterpret_cast(pk_column->Data(0)); auto it = std::lower_bound(src, src + pk_column->NumRows(), @@ -950,7 +947,7 @@ SegmentSealedImpl::vector_search(SearchInfo& search_info, } query::SearchOnSealed(*schema_, - vec_data->Data(), + vec_data->Data(0), search_info, index_info, query_data, @@ -1069,8 +1066,8 @@ SegmentSealedImpl::get_vector(FieldId field_id, pool.Submit(ReadFromChunkCache, cc, data_path, mmap_descriptor_)); } - for (int i = 0; i < futures.size(); ++i) { - const auto& [data_path, column] = futures[i].get(); + for (auto& future : futures) { + const auto& [data_path, column] = future.get(); path_to_column[data_path] = column; } @@ -1091,7 +1088,7 @@ SegmentSealedImpl::get_vector(FieldId field_id, AssertInfo(sparse_column, "incorrect column created"); buf[i] = static_cast*>( static_cast( - sparse_column->Data()))[offset_in_binlog]; + sparse_column->Data(0)))[offset_in_binlog]; } return segcore::CreateVectorDataArrayFrom( buf.data(), count, field_meta); @@ -1112,7 +1109,7 @@ SegmentSealedImpl::get_vector(FieldId field_id, offset_in_binlog, column->NumRows(), data_path); - auto vector = &column->Data()[offset_in_binlog * row_bytes]; + auto vector = &column->Data(0)[offset_in_binlog * row_bytes]; std::memcpy(buf.data() + i * row_bytes, vector, row_bytes); } return segcore::CreateVectorDataArrayFrom( @@ -1133,7 +1130,6 @@ SegmentSealedImpl::DropFieldData(const FieldId field_id) { } lck.unlock(); } else { - auto& field_meta = schema_->operator[](field_id); std::unique_lock lck(mutex_); if (get_bit(field_data_ready_bitset_, field_id)) { fields_.erase(field_id); @@ -1379,7 +1375,7 @@ SegmentSealedImpl::get_raw_data(FieldId field_id, const FieldMeta& field_meta, const int64_t* seg_offsets, int64_t count) const { - // DO NOT directly access the column by map like: `fields_.at(field_id)->Data()`, + // DO NOT directly access the column by map like: `fields_.at(field_id)->Data(0)`, // we have to clone the shared pointer, // to make sure it won't get released if segment released auto column = fields_.at(field_id); @@ -1421,7 +1417,7 @@ SegmentSealedImpl::get_raw_data(FieldId field_id, } case DataType::BOOL: { - bulk_subscript_impl(column->Data(), + bulk_subscript_impl(column->Data(0), seg_offsets, count, ret->mutable_scalars() @@ -1431,7 +1427,7 @@ SegmentSealedImpl::get_raw_data(FieldId field_id, break; } case DataType::INT8: { - bulk_subscript_impl(column->Data(), + bulk_subscript_impl(column->Data(0), seg_offsets, count, ret->mutable_scalars() @@ -1441,7 +1437,7 @@ SegmentSealedImpl::get_raw_data(FieldId field_id, break; } case DataType::INT16: { - bulk_subscript_impl(column->Data(), + bulk_subscript_impl(column->Data(0), seg_offsets, count, ret->mutable_scalars() @@ -1451,7 +1447,7 @@ SegmentSealedImpl::get_raw_data(FieldId field_id, break; } case DataType::INT32: { - bulk_subscript_impl(column->Data(), + bulk_subscript_impl(column->Data(0), seg_offsets, count, ret->mutable_scalars() @@ -1461,7 +1457,7 @@ SegmentSealedImpl::get_raw_data(FieldId field_id, break; } case DataType::INT64: { - bulk_subscript_impl(column->Data(), + bulk_subscript_impl(column->Data(0), seg_offsets, count, ret->mutable_scalars() @@ -1471,7 +1467,7 @@ SegmentSealedImpl::get_raw_data(FieldId field_id, break; } case DataType::FLOAT: { - bulk_subscript_impl(column->Data(), + bulk_subscript_impl(column->Data(0), seg_offsets, count, ret->mutable_scalars() @@ -1481,7 +1477,7 @@ SegmentSealedImpl::get_raw_data(FieldId field_id, break; } case DataType::DOUBLE: { - bulk_subscript_impl(column->Data(), + bulk_subscript_impl(column->Data(0), seg_offsets, count, ret->mutable_scalars() @@ -1492,7 +1488,7 @@ SegmentSealedImpl::get_raw_data(FieldId field_id, } case DataType::VECTOR_FLOAT: { bulk_subscript_impl(field_meta.get_sizeof(), - column->Data(), + column->Data(0), seg_offsets, count, ret->mutable_vectors() @@ -1504,7 +1500,7 @@ SegmentSealedImpl::get_raw_data(FieldId field_id, case DataType::VECTOR_FLOAT16: { bulk_subscript_impl( field_meta.get_sizeof(), - column->Data(), + column->Data(0), seg_offsets, count, ret->mutable_vectors()->mutable_float16_vector()->data()); @@ -1513,7 +1509,7 @@ SegmentSealedImpl::get_raw_data(FieldId field_id, case DataType::VECTOR_BFLOAT16: { bulk_subscript_impl( field_meta.get_sizeof(), - column->Data(), + column->Data(0), seg_offsets, count, ret->mutable_vectors()->mutable_bfloat16_vector()->data()); @@ -1522,7 +1518,7 @@ SegmentSealedImpl::get_raw_data(FieldId field_id, case DataType::VECTOR_BINARY: { bulk_subscript_impl( field_meta.get_sizeof(), - column->Data(), + column->Data(0), seg_offsets, count, ret->mutable_vectors()->mutable_binary_vector()->data()); @@ -1530,7 +1526,7 @@ SegmentSealedImpl::get_raw_data(FieldId field_id, } case DataType::VECTOR_SPARSE_FLOAT: { auto rows = static_cast*>( - static_cast(column->Data())); + static_cast(column->Data(0))); auto dst = ret->mutable_vectors()->mutable_sparse_float_vector(); SparseRowsToProto( [&](size_t i) { @@ -1590,7 +1586,6 @@ SegmentSealedImpl::bulk_subscript( int64_t count, const std::vector& dynamic_field_names) const { Assert(!dynamic_field_names.empty()); - auto& field_meta = schema_->operator[](field_id); if (count == 0) { return fill_with_empty(field_id, 0); } @@ -1920,7 +1915,7 @@ SegmentSealedImpl::generate_interim_index(const FieldId field_id) { auto index_metric = field_binlog_config->GetMetricType(); auto dataset = - knowhere::GenDataSet(row_count, dim, (void*)vec_data->Data()); + knowhere::GenDataSet(row_count, dim, (void*)vec_data->Data(0)); dataset->SetIsOwner(false); dataset->SetIsSparse(is_sparse); diff --git a/internal/core/src/segcore/SegmentSealedImpl.h b/internal/core/src/segcore/SegmentSealedImpl.h index ab445bea56f15..03a33d014c9e5 100644 --- a/internal/core/src/segcore/SegmentSealedImpl.h +++ b/internal/core/src/segcore/SegmentSealedImpl.h @@ -91,7 +91,7 @@ class SegmentSealedImpl : public SegmentSealed { GetFieldDataType(FieldId fieldId) const override; void - RemoveFieldFile(const FieldId field_id); + RemoveFieldFile(const FieldId field_id) override; void CreateTextIndex(FieldId field_id) override; @@ -116,10 +116,10 @@ class SegmentSealedImpl : public SegmentSealed { get_schema() const override; std::vector - search_pk(const PkType& pk, Timestamp timestamp) const; + search_pk(const PkType& pk, Timestamp timestamp) const override; std::vector - search_pk(const PkType& pk, int64_t insert_barrier) const; + search_pk(const PkType& pk, int64_t insert_barrier) const override; template std::vector @@ -214,7 +214,7 @@ class SegmentSealedImpl : public SegmentSealed { is_mmap_field(FieldId id) const override; void - ClearData(); + ClearData() override; protected: // blob and row_count diff --git a/internal/core/src/storage/DataCodec.cpp b/internal/core/src/storage/DataCodec.cpp index 5035a07cd9d14..af77133485989 100644 --- a/internal/core/src/storage/DataCodec.cpp +++ b/internal/core/src/storage/DataCodec.cpp @@ -29,8 +29,8 @@ namespace milvus::storage { std::unique_ptr DeserializeRemoteFileData(BinlogReaderPtr reader, bool is_field_data) { DescriptorEvent descriptor_event(reader); - DataType data_type = - DataType(descriptor_event.event_data.fix_part.data_type); + auto data_type = + static_cast(descriptor_event.event_data.fix_part.data_type); auto& extras = descriptor_event.event_data.extras; bool nullable = (extras.find(NULLABLE) != extras.end()) ? std::any_cast(extras[NULLABLE]) diff --git a/internal/core/src/storage/DataCodec.h b/internal/core/src/storage/DataCodec.h index 51d11a9db5de6..b288c16f9a38c 100644 --- a/internal/core/src/storage/DataCodec.h +++ b/internal/core/src/storage/DataCodec.h @@ -18,6 +18,7 @@ #include #include +#include #include #include #include @@ -33,11 +34,11 @@ namespace milvus::storage { class DataCodec { public: explicit DataCodec(FieldDataPtr data, CodecType type) - : field_data_(std::move(data)), codec_type_(type) { + : codec_type_(type), field_data_(std::move(data)) { } explicit DataCodec(std::shared_ptr reader, CodecType type) - : payload_reader_(reader), codec_type_(type) { + : codec_type_(type), payload_reader_(std::move(reader)) { } virtual ~DataCodec() = default; @@ -87,7 +88,7 @@ class DataCodec { void SetData(std::shared_ptr data) { - data_ = data; + data_ = std::move(data); } protected: diff --git a/internal/core/src/storage/SafeQueue.h b/internal/core/src/storage/SafeQueue.h index 6d9dd6ef38749..4df729af7e824 100644 --- a/internal/core/src/storage/SafeQueue.h +++ b/internal/core/src/storage/SafeQueue.h @@ -14,7 +14,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#pragma +#pragma once #include #include @@ -25,10 +25,8 @@ namespace milvus { template class SafeQueue { public: - SafeQueue(void) { - } - ~SafeQueue() { - } + SafeQueue() = default; + ~SafeQueue() = default; bool empty() { diff --git a/internal/core/unittest/test_chunk_cache.cpp b/internal/core/unittest/test_chunk_cache.cpp index 9888097e59ac8..aedd4926513b8 100644 --- a/internal/core/unittest/test_chunk_cache.cpp +++ b/internal/core/unittest/test_chunk_cache.cpp @@ -150,7 +150,7 @@ TEST_P(ChunkCacheTest, Read) { dense_file_name, descriptor, dense_field_meta, mmap_enabled); Assert(dense_column->DataByteSize() == dim * N * 4); } - auto actual_dense = (const float*)(dense_column->Data()); + auto actual_dense = (const float*)(dense_column->Data(0)); for (auto i = 0; i < N * dim; i++) { AssertInfo(dense_data[i] == actual_dense[i], fmt::format( @@ -168,7 +168,7 @@ TEST_P(ChunkCacheTest, Read) { } auto expected_sparse_size = 0; auto actual_sparse = - (const knowhere::sparse::SparseRow*)(sparse_column->Data()); + (const knowhere::sparse::SparseRow*)(sparse_column->Data(0)); for (auto i = 0; i < N; i++) { const auto& actual_sparse_row = actual_sparse[i]; const auto& expect_sparse_row = sparse_data[i]; @@ -215,7 +215,7 @@ TEST_P(ChunkCacheTest, TestMultithreads) { Assert(dense_column->DataByteSize() == dim * N * 4); } - auto actual_dense = (const float*)dense_column->Data(); + auto actual_dense = (const float*)dense_column->Data(0); for (auto i = 0; i < N * dim; i++) { AssertInfo( dense_data[i] == actual_dense[i], @@ -232,7 +232,7 @@ TEST_P(ChunkCacheTest, TestMultithreads) { sparse_file_name, descriptor, sparse_field_meta, mmap_enabled); } auto actual_sparse = - (const knowhere::sparse::SparseRow*)sparse_column->Data(); + (const knowhere::sparse::SparseRow*)sparse_column->Data(0); for (auto i = 0; i < N; i++) { const auto& actual_sparse_row = actual_sparse[i]; const auto& expect_sparse_row = sparse_data[i]; From 9c3f59dbbec7a4c43a42f8386bf7777194aea99c Mon Sep 17 00:00:00 2001 From: wei liu Date: Wed, 25 Dec 2024 16:36:49 +0800 Subject: [PATCH 12/69] fix: Prevent balancer from overloading the same QueryNode (#38719) issue: #38718 The balancer calculates the workload of executing tasks as an ongoing score for target nodes. However, a logic issue arises when GetSegmentTaskDelta or GetChannelTaskDelta is called with collectionID=-1, which incorrectly returns zero. Due to the incorrect global score, the executing task's workload is not properly reflected for each collection. Consequently, each collection submits its own balance task, leading to the balancer assigning excessive tasks to the same QueryNode. --------- Signed-off-by: Wei Liu --- internal/querycoordv2/task/scheduler.go | 79 +++++++++++++--------- internal/querycoordv2/task/task_test.go | 90 +++++++++++++++++++++++++ 2 files changed, 136 insertions(+), 33 deletions(-) diff --git a/internal/querycoordv2/task/scheduler.go b/internal/querycoordv2/task/scheduler.go index d34a4eeaeb848..316f1a552be71 100644 --- a/internal/querycoordv2/task/scheduler.go +++ b/internal/querycoordv2/task/scheduler.go @@ -487,61 +487,74 @@ func (scheduler *taskScheduler) GetSegmentTaskDelta(nodeID, collectionID int64) scheduler.rwmutex.RLock() defer scheduler.rwmutex.RUnlock() - targetActions := make([]Action, 0) - for _, t := range scheduler.segmentTasks { - if collectionID != -1 && collectionID != t.CollectionID() { + targetActions := make(map[int64][]Action) + for _, task := range scheduler.segmentTasks { // Map key: replicaSegmentIndex + taskCollID := task.CollectionID() + if collectionID != -1 && collectionID != taskCollID { continue } - for _, action := range t.Actions() { - if action.Node() == nodeID { - targetActions = append(targetActions, action) - } + actions := filterActions(task.Actions(), nodeID) + if len(actions) > 0 { + targetActions[taskCollID] = append(targetActions[taskCollID], actions...) } } - return scheduler.calculateTaskDelta(collectionID, targetActions) + return scheduler.calculateTaskDelta(targetActions) } func (scheduler *taskScheduler) GetChannelTaskDelta(nodeID, collectionID int64) int { scheduler.rwmutex.RLock() defer scheduler.rwmutex.RUnlock() - targetActions := make([]Action, 0) - for _, t := range scheduler.channelTasks { - if collectionID != -1 && collectionID != t.CollectionID() { + targetActions := make(map[int64][]Action) + for _, task := range scheduler.channelTasks { // Map key: replicaChannelIndex + taskCollID := task.CollectionID() + if collectionID != -1 && collectionID != taskCollID { continue } - for _, action := range t.Actions() { - if action.Node() == nodeID { - targetActions = append(targetActions, action) - } + actions := filterActions(task.Actions(), nodeID) + if len(actions) > 0 { + targetActions[taskCollID] = append(targetActions[taskCollID], actions...) } } - return scheduler.calculateTaskDelta(collectionID, targetActions) + return scheduler.calculateTaskDelta(targetActions) } -func (scheduler *taskScheduler) calculateTaskDelta(collectionID int64, targetActions []Action) int { - sum := 0 - for _, action := range targetActions { - delta := 0 - if action.Type() == ActionTypeGrow { - delta = 1 - } else if action.Type() == ActionTypeReduce { - delta = -1 +// filter actions by nodeID +func filterActions(actions []Action, nodeID int64) []Action { + filtered := make([]Action, 0, len(actions)) + for _, action := range actions { + if nodeID == -1 || action.Node() == nodeID { + filtered = append(filtered, action) } + } + return filtered +} - switch action := action.(type) { - case *SegmentAction: - // skip growing segment's count, cause doesn't know realtime row number of growing segment - if action.Scope == querypb.DataScope_Historical { - segment := scheduler.targetMgr.GetSealedSegment(scheduler.ctx, collectionID, action.SegmentID, meta.NextTargetFirst) - if segment != nil { - sum += int(segment.GetNumOfRows()) * delta +func (scheduler *taskScheduler) calculateTaskDelta(targetActions map[int64][]Action) int { + sum := 0 + for collectionID, actions := range targetActions { + for _, action := range actions { + delta := 0 + if action.Type() == ActionTypeGrow { + delta = 1 + } else if action.Type() == ActionTypeReduce { + delta = -1 + } + + switch action := action.(type) { + case *SegmentAction: + // skip growing segment's count, cause doesn't know realtime row number of growing segment + if action.Scope == querypb.DataScope_Historical { + segment := scheduler.targetMgr.GetSealedSegment(scheduler.ctx, collectionID, action.SegmentID, meta.NextTargetFirst) + if segment != nil { + sum += int(segment.GetNumOfRows()) * delta + } } + case *ChannelAction: + sum += delta } - case *ChannelAction: - sum += delta } } return sum diff --git a/internal/querycoordv2/task/task_test.go b/internal/querycoordv2/task/task_test.go index 6de6a70d49175..482282f54f319 100644 --- a/internal/querycoordv2/task/task_test.go +++ b/internal/querycoordv2/task/task_test.go @@ -1855,6 +1855,96 @@ func (suite *TaskSuite) TestGetTasksJSON() { suite.Equal(2, len(tasks)) } +func (suite *TaskSuite) TestCalculateTaskDelta() { + ctx := context.Background() + scheduler := suite.newScheduler() + + mockTarget := meta.NewMockTargetManager(suite.T()) + mockTarget.EXPECT().GetSealedSegment(mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(&datapb.SegmentInfo{ + NumOfRows: 100, + }) + scheduler.targetMgr = mockTarget + + coll := int64(1001) + nodeID := int64(1) + channelName := "channel-1" + segmentID := int64(1) + // add segment task for collection + task1, err := NewSegmentTask( + ctx, + 10*time.Second, + WrapIDSource(0), + coll, + suite.replica, + NewSegmentActionWithScope(nodeID, ActionTypeGrow, "", segmentID, querypb.DataScope_Historical), + ) + suite.NoError(err) + err = scheduler.Add(task1) + suite.NoError(err) + task2, err := NewChannelTask( + ctx, + 10*time.Second, + WrapIDSource(0), + coll, + suite.replica, + NewChannelAction(nodeID, ActionTypeGrow, channelName), + ) + suite.NoError(err) + err = scheduler.Add(task2) + suite.NoError(err) + + coll2 := int64(1005) + nodeID2 := int64(2) + channelName2 := "channel-2" + segmentID2 := int64(2) + task3, err := NewSegmentTask( + ctx, + 10*time.Second, + WrapIDSource(0), + coll2, + suite.replica, + NewSegmentActionWithScope(nodeID2, ActionTypeGrow, "", segmentID2, querypb.DataScope_Historical), + ) + suite.NoError(err) + err = scheduler.Add(task3) + suite.NoError(err) + task4, err := NewChannelTask( + ctx, + 10*time.Second, + WrapIDSource(0), + coll2, + suite.replica, + NewChannelAction(nodeID2, ActionTypeGrow, channelName2), + ) + suite.NoError(err) + err = scheduler.Add(task4) + suite.NoError(err) + + // check task delta with collectionID and nodeID + suite.Equal(100, scheduler.GetSegmentTaskDelta(nodeID, coll)) + suite.Equal(1, scheduler.GetChannelTaskDelta(nodeID, coll)) + suite.Equal(100, scheduler.GetSegmentTaskDelta(nodeID2, coll2)) + suite.Equal(1, scheduler.GetChannelTaskDelta(nodeID2, coll2)) + + // check task delta with collectionID=-1 + suite.Equal(100, scheduler.GetSegmentTaskDelta(nodeID, -1)) + suite.Equal(1, scheduler.GetChannelTaskDelta(nodeID, -1)) + suite.Equal(100, scheduler.GetSegmentTaskDelta(nodeID2, -1)) + suite.Equal(1, scheduler.GetChannelTaskDelta(nodeID2, -1)) + + // check task delta with nodeID=-1 + suite.Equal(100, scheduler.GetSegmentTaskDelta(-1, coll)) + suite.Equal(1, scheduler.GetChannelTaskDelta(-1, coll)) + suite.Equal(100, scheduler.GetSegmentTaskDelta(-1, coll)) + suite.Equal(1, scheduler.GetChannelTaskDelta(-1, coll)) + + // check task delta with nodeID=-1 and collectionID=-1 + suite.Equal(200, scheduler.GetSegmentTaskDelta(-1, -1)) + suite.Equal(2, scheduler.GetChannelTaskDelta(-1, -1)) + suite.Equal(200, scheduler.GetSegmentTaskDelta(-1, -1)) + suite.Equal(2, scheduler.GetChannelTaskDelta(-1, -1)) +} + func TestTask(t *testing.T) { suite.Run(t, new(TaskSuite)) } From ea339c13c610636da88ef2d1047f8fc3548431c6 Mon Sep 17 00:00:00 2001 From: ThreadDao Date: Wed, 25 Dec 2024 16:54:50 +0800 Subject: [PATCH 13/69] test: add cases for async milvus client (#38699) issue: #38697 Signed-off-by: ThreadDao --- .../base/async_milvus_client_wrapper.py | 174 ++++++ tests/python_client/base/client_base.py | 13 + .../base/high_level_api_wrapper.py | 30 ++ tests/python_client/check/func_check.py | 13 +- tests/python_client/conftest.py | 4 +- tests/python_client/pytest.ini | 3 + tests/python_client/requirements.txt | 7 +- .../async_milvus_client/test_e2e_async.py | 509 ++++++++++++++++++ tests/python_client/utils/api_request.py | 63 ++- 9 files changed, 797 insertions(+), 19 deletions(-) create mode 100644 tests/python_client/base/async_milvus_client_wrapper.py create mode 100644 tests/python_client/testcases/async_milvus_client/test_e2e_async.py diff --git a/tests/python_client/base/async_milvus_client_wrapper.py b/tests/python_client/base/async_milvus_client_wrapper.py new file mode 100644 index 0000000000000..82f3f2f59f216 --- /dev/null +++ b/tests/python_client/base/async_milvus_client_wrapper.py @@ -0,0 +1,174 @@ +import asyncio +import sys +from typing import Optional, List, Union, Dict + +from pymilvus import ( + AsyncMilvusClient, + AnnSearchRequest, + RRFRanker, +) +from pymilvus.orm.types import CONSISTENCY_STRONG +from pymilvus.orm.collection import CollectionSchema + +from check.func_check import ResponseChecker +from utils.api_request import api_request, logger_interceptor + + +class AsyncMilvusClientWrapper: + async_milvus_client = None + + def __init__(self, active_trace=False): + self.active_trace = active_trace + + def init_async_client(self, uri: str = "http://localhost:19530", + user: str = "", + password: str = "", + db_name: str = "", + token: str = "", + timeout: Optional[float] = None, + active_trace=False, + check_task=None, check_items=None, + **kwargs): + self.active_trace = active_trace + + """ In order to distinguish the same name of collection """ + func_name = sys._getframe().f_code.co_name + res, is_succ = api_request([AsyncMilvusClient, uri, user, password, db_name, token, + timeout], **kwargs) + self.async_milvus_client = res if is_succ else None + check_result = ResponseChecker(res, func_name, check_task, check_items, is_succ, **kwargs).run() + return res, check_result + + @logger_interceptor() + async def create_collection(self, + collection_name: str, + dimension: Optional[int] = None, + primary_field_name: str = "id", # default is "id" + id_type: str = "int", # or "string", + vector_field_name: str = "vector", # default is "vector" + metric_type: str = "COSINE", + auto_id: bool = False, + timeout: Optional[float] = None, + schema: Optional[CollectionSchema] = None, + index_params=None, + **kwargs): + kwargs["consistency_level"] = kwargs.get("consistency_level", CONSISTENCY_STRONG) + + return await self.async_milvus_client.create_collection(collection_name, dimension, + primary_field_name, + id_type, vector_field_name, metric_type, + auto_id, + timeout, schema, index_params, **kwargs) + + @logger_interceptor() + async def drop_collection(self, collection_name: str, timeout: Optional[float] = None, **kwargs): + return await self.async_milvus_client.drop_collection(collection_name, timeout, **kwargs) + + @logger_interceptor() + async def load_collection(self, collection_name: str, timeout: Optional[float] = None, **kwargs): + return await self.async_milvus_client.load_collection(collection_name, timeout, **kwargs) + + @logger_interceptor() + async def create_index(self, collection_name: str, index_params, timeout: Optional[float] = None, + **kwargs): + return await self.async_milvus_client.create_index(collection_name, index_params, timeout, **kwargs) + + @logger_interceptor() + async def insert(self, + collection_name: str, + data: Union[Dict, List[Dict]], + timeout: Optional[float] = None, + partition_name: Optional[str] = "", + **kwargs): + return await self.async_milvus_client.insert(collection_name, data, timeout, partition_name, **kwargs) + + @logger_interceptor() + async def upsert(self, + collection_name: str, + data: Union[Dict, List[Dict]], + timeout: Optional[float] = None, + partition_name: Optional[str] = "", + **kwargs): + return await self.async_milvus_client.upsert(collection_name, data, timeout, partition_name, **kwargs) + + @logger_interceptor() + async def search(self, + collection_name: str, + data: Union[List[list], list], + filter: str = "", + limit: int = 10, + output_fields: Optional[List[str]] = None, + search_params: Optional[dict] = None, + timeout: Optional[float] = None, + partition_names: Optional[List[str]] = None, + anns_field: Optional[str] = None, + **kwargs): + return await self.async_milvus_client.search(collection_name, data, + filter, + limit, output_fields, search_params, + timeout, + partition_names, anns_field, **kwargs) + + @logger_interceptor() + async def hybrid_search(self, + collection_name: str, + reqs: List[AnnSearchRequest], + ranker: RRFRanker, + limit: int = 10, + output_fields: Optional[List[str]] = None, + timeout: Optional[float] = None, + partition_names: Optional[List[str]] = None, + **kwargs): + return await self.async_milvus_client.hybrid_search(collection_name, reqs, + ranker, + limit, output_fields, + timeout, partition_names, **kwargs) + + @logger_interceptor() + async def query(self, + collection_name: str, + filter: str = "", + output_fields: Optional[List[str]] = None, + timeout: Optional[float] = None, + ids: Optional[Union[List, str, int]] = None, + partition_names: Optional[List[str]] = None, + **kwargs): + return await self.async_milvus_client.query(collection_name, filter, + output_fields, timeout, + ids, partition_names, + **kwargs) + + @logger_interceptor() + async def get(self, + collection_name: str, + ids: Union[list, str, int], + output_fields: Optional[List[str]] = None, + timeout: Optional[float] = None, + partition_names: Optional[List[str]] = None, + **kwargs): + return await self.async_milvus_client.get(collection_name, ids, + output_fields, timeout, + partition_names, + **kwargs) + + @logger_interceptor() + async def delete(self, + collection_name: str, + ids: Optional[Union[list, str, int]] = None, + timeout: Optional[float] = None, + filter: Optional[str] = None, + partition_name: Optional[str] = None, + **kwargs): + return await self.async_milvus_client.delete(collection_name, ids, + timeout, filter, + partition_name, + **kwargs) + + @classmethod + def create_schema(cls, **kwargs): + kwargs["check_fields"] = False # do not check fields for now + return CollectionSchema([], **kwargs) + + @logger_interceptor() + async def close(self, **kwargs): + return await self.async_milvus_client.close(**kwargs) \ No newline at end of file diff --git a/tests/python_client/base/client_base.py b/tests/python_client/base/client_base.py index 56c4e56ce88ff..2a708f100d68c 100644 --- a/tests/python_client/base/client_base.py +++ b/tests/python_client/base/client_base.py @@ -13,6 +13,7 @@ from base.utility_wrapper import ApiUtilityWrapper from base.schema_wrapper import ApiCollectionSchemaWrapper, ApiFieldSchemaWrapper from base.high_level_api_wrapper import HighLevelApiWrapper +from base.async_milvus_client_wrapper import AsyncMilvusClientWrapper from utils.util_log import test_log as log from common import common_func as cf from common import common_type as ct @@ -35,6 +36,7 @@ class Base: collection_object_list = [] resource_group_list = [] high_level_api_wrap = None + async_milvus_client_wrap = None skip_connection = False def setup_class(self): @@ -59,6 +61,7 @@ def _setup_objects(self): self.field_schema_wrap = ApiFieldSchemaWrapper() self.database_wrap = ApiDatabaseWrapper() self.high_level_api_wrap = HighLevelApiWrapper() + self.async_milvus_client_wrap = AsyncMilvusClientWrapper() def teardown_method(self, method): log.info(("*" * 35) + " teardown " + ("*" * 35)) @@ -166,6 +169,16 @@ def _connect(self, enable_milvus_client_api=False): log.info(f"server version: {server_version}") return res + def init_async_milvus_client(self): + uri = cf.param_info.param_uri or f"http://{cf.param_info.param_host}:{cf.param_info.param_port}" + kwargs = { + "uri": uri, + "user": cf.param_info.param_user, + "password": cf.param_info.param_password, + "token": cf.param_info.param_token, + } + self.async_milvus_client_wrap.init_async_client(**kwargs) + def init_collection_wrap(self, name=None, schema=None, check_task=None, check_items=None, enable_dynamic_field=False, with_json=True, **kwargs): name = cf.gen_unique_str('coll_') if name is None else name diff --git a/tests/python_client/base/high_level_api_wrapper.py b/tests/python_client/base/high_level_api_wrapper.py index 115ce54655dab..10287a125a4f4 100644 --- a/tests/python_client/base/high_level_api_wrapper.py +++ b/tests/python_client/base/high_level_api_wrapper.py @@ -1,5 +1,7 @@ import sys import time +from typing import Optional + import timeout_decorator from numpy import NaN @@ -40,6 +42,13 @@ def init_milvus_client(self, uri, user="", password="", db_name="", token="", ti timeout=timeout, **kwargs).run() return res, check_result + @trace() + def close(self, client, check_task=None, check_items=None): + func_name = sys._getframe().f_code.co_name + res, is_succ = api_request([client.close]) + check_result = ResponseChecker(res, func_name, check_task, check_items, is_succ).run() + return res, check_result + @trace() def create_schema(self, client, timeout=None, check_task=None, check_items=None, **kwargs): @@ -103,6 +112,17 @@ def upsert(self, client, collection_name, data, timeout=None, check_task=None, c **kwargs).run() return res, check_result + @trace() + def get_collection_stats(self, client, collection_name, timeout=None, check_task=None, check_items=None, **kwargs): + timeout = TIMEOUT if timeout is None else timeout + kwargs.update({"timeout": timeout}) + + func_name = sys._getframe().f_code.co_name + res, check = api_request([client.get_collection_stats, collection_name], **kwargs) + check_result = ResponseChecker(res, func_name, check_task, check_items, check, + collection_name=collection_name, **kwargs).run() + return res, check_result + @trace() def search(self, client, collection_name, data, limit=10, filter=None, output_fields=None, search_params=None, timeout=None, check_task=None, check_items=None, **kwargs): @@ -315,6 +335,16 @@ def rename_collection(self, client, old_name, new_name, timeout=None, check_task **kwargs).run() return res, check_result + @trace() + def create_database(self, client, db_name, properties: Optional[dict] = None, check_task=None, check_items=None, **kwargs): + func_name = sys._getframe().f_code.co_name + res, check = api_request([client.create_database, db_name, properties], **kwargs) + check_result = ResponseChecker(res, func_name, check_task, + check_items, check, + db_name=db_name, properties=properties, + **kwargs).run() + return res, check_result + @trace() def create_partition(self, client, collection_name, partition_name, timeout=None, check_task=None, check_items=None, **kwargs): timeout = TIMEOUT if timeout is None else timeout diff --git a/tests/python_client/check/func_check.py b/tests/python_client/check/func_check.py index 7f757eb5325a1..d1b70206c2384 100644 --- a/tests/python_client/check/func_check.py +++ b/tests/python_client/check/func_check.py @@ -7,10 +7,21 @@ from common.common_type import CheckTasks, Connect_Object_Name # from common.code_mapping import ErrorCode, ErrorMessage from pymilvus import Collection, Partition, ResourceGroupInfo -from utils.api_request import Error import check.param_check as pc +class Error: + def __init__(self, error): + self.code = getattr(error, 'code', -1) + self.message = getattr(error, 'message', str(error)) + + def __str__(self): + return f"Error(code={self.code}, message={self.message})" + + def __repr__(self): + return f"Error(code={self.code}, message={self.message})" + + class ResponseChecker: def __init__(self, response, func_name, check_task, check_items, is_succ=True, **kwargs): self.response = response # response of api request diff --git a/tests/python_client/conftest.py b/tests/python_client/conftest.py index 526b1caf96b24..c2b5f105fbf8e 100644 --- a/tests/python_client/conftest.py +++ b/tests/python_client/conftest.py @@ -25,7 +25,7 @@ def pytest_addoption(parser): parser.addoption("--user", action="store", default="root", help="user name for connection") parser.addoption("--password", action="store", default="Milvus", help="password for connection") parser.addoption("--db_name", action="store", default="default", help="database name for connection") - parser.addoption("--secure", type=bool, action="store", default=False, help="secure for connection") + parser.addoption("--secure", action="store", default=False, help="secure for connection") parser.addoption("--milvus_ns", action="store", default="chaos-testing", help="milvus_ns") parser.addoption("--http_port", action="store", default=19121, help="http's port") parser.addoption("--handler", action="store", default="GRPC", help="handler of request") @@ -45,7 +45,7 @@ def pytest_addoption(parser): parser.addoption('--term_expr', action='store', default="term_expr", help="expr of query quest") parser.addoption('--check_content', action='store', default="check_content", help="content of check") parser.addoption('--field_name', action='store', default="field_name", help="field_name of index") - parser.addoption('--replica_num', type='int', action='store', default=ct.default_replica_num, help="memory replica number") + parser.addoption('--replica_num', action='store', default=ct.default_replica_num, help="memory replica number") parser.addoption('--minio_host', action='store', default="localhost", help="minio service's ip") parser.addoption('--uri', action='store', default="", help="uri for high level api") parser.addoption('--token', action='store', default="", help="token for high level api") diff --git a/tests/python_client/pytest.ini b/tests/python_client/pytest.ini index c89c29238acf6..8869b6d5de330 100644 --- a/tests/python_client/pytest.ini +++ b/tests/python_client/pytest.ini @@ -10,3 +10,6 @@ log_date_format = %Y-%m-%d %H:%M:%S filterwarnings = ignore::DeprecationWarning + +asyncio_default_fixture_loop_scope = function + diff --git a/tests/python_client/requirements.txt b/tests/python_client/requirements.txt index 793e07251e452..e29aea109cf63 100644 --- a/tests/python_client/requirements.txt +++ b/tests/python_client/requirements.txt @@ -4,7 +4,8 @@ requests==2.26.0 scikit-learn==1.1.3 timeout_decorator==0.5.0 ujson==5.5.0 -pytest==7.2.0 +pytest==8.3.4 +pytest-asyncio==0.24.0 pytest-assume==2.4.3 pytest-timeout==1.3.3 pytest-repeat==0.8.0 @@ -27,8 +28,8 @@ pytest-parallel pytest-random-order # pymilvus -pymilvus==2.5.1rc25 -pymilvus[bulk_writer]==2.5.1rc25 +pymilvus==2.5.2rc3 +pymilvus[bulk_writer]==2.5.2rc3 # for customize config test diff --git a/tests/python_client/testcases/async_milvus_client/test_e2e_async.py b/tests/python_client/testcases/async_milvus_client/test_e2e_async.py new file mode 100644 index 0000000000000..827282e5436aa --- /dev/null +++ b/tests/python_client/testcases/async_milvus_client/test_e2e_async.py @@ -0,0 +1,509 @@ +import random +import time +import pytest +import asyncio +from pymilvus.client.types import LoadState, DataType +from pymilvus import AnnSearchRequest, RRFRanker + +from base.client_base import TestcaseBase +from common import common_func as cf +from common import common_type as ct +from common.common_type import CaseLabel, CheckTasks +from utils.util_log import test_log as log + +pytestmark = pytest.mark.asyncio + +prefix = "async" +async_default_nb = 5000 +default_pk_name = "id" +default_vector_name = "vector" + + +class TestAsyncMilvusClient(TestcaseBase): + + def teardown_method(self, method): + loop = asyncio.get_event_loop() + loop.run_until_complete(self.async_milvus_client_wrap.close()) + super().teardown_method(method) + + @pytest.mark.tags(CaseLabel.L0) + async def test_async_client_default(self): + # init client + milvus_client = self._connect(enable_milvus_client_api=True) + self.init_async_milvus_client() + + # create collection + c_name = cf.gen_unique_str(prefix) + await self.async_milvus_client_wrap.create_collection(c_name, dimension=ct.default_dim) + collections, _ = self.high_level_api_wrap.list_collections(milvus_client) + assert c_name in collections + + # insert entities + rows = [ + {default_pk_name: i, default_vector_name: [random.random() for _ in range(ct.default_dim)]} + for i in range(async_default_nb)] + start_time = time.time() + tasks = [] + step = 1000 + for i in range(0, async_default_nb, step): + task = self.async_milvus_client_wrap.insert(c_name, rows[i:i + step]) + tasks.append(task) + insert_res = await asyncio.gather(*tasks) + end_time = time.time() + log.info("Total time: {:.2f} seconds".format(end_time - start_time)) + for r in insert_res: + assert r[0]['insert_count'] == step + + # dql tasks + tasks = [] + # search default + vector = cf.gen_vectors(ct.default_nq, ct.default_dim) + default_search_task = self.async_milvus_client_wrap.search(c_name, vector, limit=ct.default_limit, + check_task=CheckTasks.check_search_results, + check_items={"enable_milvus_client_api": True, + "nq": ct.default_nq, + "limit": ct.default_limit}) + tasks.append(default_search_task) + + # search with filter & search_params + sp = {"metric_type": "COSINE", "params": {"ef": "96"}} + filter_params_search_task = self.async_milvus_client_wrap.search(c_name, vector, limit=ct.default_limit, + filter=f"{default_pk_name} > 10", + search_params=sp, + check_task=CheckTasks.check_search_results, + check_items={"enable_milvus_client_api": True, + "nq": ct.default_nq, + "limit": ct.default_limit}) + tasks.append(filter_params_search_task) + + # search output fields + output_search_task = self.async_milvus_client_wrap.search(c_name, vector, limit=ct.default_limit, + output_fields=["*"], + check_task=CheckTasks.check_search_results, + check_items={"enable_milvus_client_api": True, + "nq": ct.default_nq, + "limit": ct.default_limit}) + tasks.append(output_search_task) + + # query with filter and default output "*" + exp_query_res = [{default_pk_name: i} for i in range(ct.default_limit)] + filter_query_task = self.async_milvus_client_wrap.query(c_name, + filter=f"{default_pk_name} < {ct.default_limit}", + output_fields=[default_pk_name], + check_task=CheckTasks.check_query_results, + check_items={"exp_res": exp_query_res, + "primary_field": default_pk_name}) + tasks.append(filter_query_task) + # query with ids and output all fields + ids_query_task = self.async_milvus_client_wrap.query(c_name, + ids=[i for i in range(ct.default_limit)], + output_fields=["*"], + check_task=CheckTasks.check_query_results, + check_items={"exp_res": rows[:ct.default_limit], + "with_vec": True, + "primary_field": default_pk_name}) + tasks.append(ids_query_task) + # get with ids + get_task = self.async_milvus_client_wrap.get(c_name, + ids=[0, 1], + output_fields=[default_pk_name, default_vector_name], + check_task=CheckTasks.check_query_results, + check_items={"exp_res": rows[:2], "with_vec": True, + "primary_field": default_pk_name}) + tasks.append(get_task) + await asyncio.gather(*tasks) + + @pytest.mark.tags(CaseLabel.L0) + async def test_async_client_partition(self): + # init client + milvus_client = self._connect(enable_milvus_client_api=True) + self.init_async_milvus_client() + + # create collection & partition + c_name = cf.gen_unique_str(prefix) + p_name = cf.gen_unique_str("par") + await self.async_milvus_client_wrap.create_collection(c_name, dimension=ct.default_dim) + collections, _ = self.high_level_api_wrap.list_collections(milvus_client) + assert c_name in collections + self.high_level_api_wrap.create_partition(milvus_client, c_name, p_name) + partitions, _ = self.high_level_api_wrap.list_partitions(milvus_client, c_name) + assert p_name in partitions + + # insert entities + rows = [ + {default_pk_name: i, default_vector_name: [random.random() for _ in range(ct.default_dim)]} + for i in range(async_default_nb)] + start_time = time.time() + tasks = [] + step = 1000 + for i in range(0, async_default_nb, step): + task = self.async_milvus_client_wrap.insert(c_name, rows[i:i + step], partition_name=p_name) + tasks.append(task) + insert_res = await asyncio.gather(*tasks) + end_time = time.time() + log.info("Total time: {:.2f} seconds".format(end_time - start_time)) + for r in insert_res: + assert r[0]['insert_count'] == step + + # count from default partition + count_res, _ = await self.async_milvus_client_wrap.query(c_name, output_fields=["count(*)"], partition_names=[ct.default_partition_name]) + assert count_res[0]["count(*)"] == 0 + + # dql tasks + tasks = [] + # search default + vector = cf.gen_vectors(ct.default_nq, ct.default_dim) + default_search_task = self.async_milvus_client_wrap.search(c_name, vector, limit=ct.default_limit, + partition_names=[p_name], + check_task=CheckTasks.check_search_results, + check_items={"enable_milvus_client_api": True, + "nq": ct.default_nq, + "limit": ct.default_limit}) + tasks.append(default_search_task) + + # search with filter & search_params + sp = {"metric_type": "COSINE", "params": {"ef": "96"}} + filter_params_search_task = self.async_milvus_client_wrap.search(c_name, vector, limit=ct.default_limit, + filter=f"{default_pk_name} > 10", + search_params=sp, + partition_names=[p_name], + check_task=CheckTasks.check_search_results, + check_items={"enable_milvus_client_api": True, + "nq": ct.default_nq, + "limit": ct.default_limit}) + tasks.append(filter_params_search_task) + + # search output fields + output_search_task = self.async_milvus_client_wrap.search(c_name, vector, limit=ct.default_limit, + output_fields=["*"], + partition_names=[p_name], + check_task=CheckTasks.check_search_results, + check_items={"enable_milvus_client_api": True, + "nq": ct.default_nq, + "limit": ct.default_limit}) + tasks.append(output_search_task) + + # query with filter and default output "*" + exp_query_res = [{default_pk_name: i} for i in range(ct.default_limit)] + filter_query_task = self.async_milvus_client_wrap.query(c_name, + filter=f"{default_pk_name} < {ct.default_limit}", + output_fields=[default_pk_name], + partition_names=[p_name], + check_task=CheckTasks.check_query_results, + check_items={"exp_res": exp_query_res, + "primary_field": default_pk_name}) + tasks.append(filter_query_task) + # query with ids and output all fields + ids_query_task = self.async_milvus_client_wrap.query(c_name, + ids=[i for i in range(ct.default_limit)], + output_fields=["*"], + partition_names=[p_name], + check_task=CheckTasks.check_query_results, + check_items={"exp_res": rows[:ct.default_limit], + "with_vec": True, + "primary_field": default_pk_name}) + tasks.append(ids_query_task) + # get with ids + get_task = self.async_milvus_client_wrap.get(c_name, + ids=[0, 1], partition_names=[p_name], + output_fields=[default_pk_name, default_vector_name], + check_task=CheckTasks.check_query_results, + check_items={"exp_res": rows[:2], "with_vec": True, + "primary_field": default_pk_name}) + tasks.append(get_task) + await asyncio.gather(*tasks) + + @pytest.mark.tags(CaseLabel.L0) + async def test_async_client_with_schema(self, schema): + # init client + milvus_client = self._connect(enable_milvus_client_api=True) + self.init_async_milvus_client() + + # create collection + c_name = cf.gen_unique_str(prefix) + schema = self.async_milvus_client_wrap.create_schema(auto_id=False, + partition_key_field=ct.default_int64_field_name) + schema.add_field(ct.default_string_field_name, DataType.VARCHAR, max_length=100, is_primary=True) + schema.add_field(ct.default_int64_field_name, DataType.INT64, is_partition_key=True) + schema.add_field(ct.default_float_vec_field_name, DataType.FLOAT_VECTOR, dim=ct.default_dim) + schema.add_field(default_vector_name, DataType.FLOAT_VECTOR, dim=ct.default_dim) + await self.async_milvus_client_wrap.create_collection(c_name, schema=schema) + collections, _ = self.high_level_api_wrap.list_collections(milvus_client) + assert c_name in collections + + # insert entities + rows = [ + {ct.default_string_field_name: str(i), + ct.default_int64_field_name: i, + ct.default_float_vec_field_name: [random.random() for _ in range(ct.default_dim)], + default_vector_name: [random.random() for _ in range(ct.default_dim)], + } for i in range(async_default_nb)] + start_time = time.time() + tasks = [] + step = 1000 + for i in range(0, async_default_nb, step): + task = self.async_milvus_client_wrap.insert(c_name, rows[i:i + step]) + tasks.append(task) + insert_res = await asyncio.gather(*tasks) + end_time = time.time() + log.info("Total time: {:.2f} seconds".format(end_time - start_time)) + for r in insert_res: + assert r[0]['insert_count'] == step + + # flush + self.high_level_api_wrap.flush(milvus_client, c_name) + stats, _ = self.high_level_api_wrap.get_collection_stats(milvus_client, c_name) + assert stats["row_count"] == async_default_nb + + # create index -> load + index_params, _ = self.high_level_api_wrap.prepare_index_params(milvus_client, + field_name=ct.default_float_vec_field_name, + index_type="HNSW", metric_type="COSINE", M=30, + efConstruction=200) + index_params.add_index(field_name=default_vector_name, index_type="IVF_SQ8", + metric_type="L2", nlist=32) + await self.async_milvus_client_wrap.create_index(c_name, index_params) + await self.async_milvus_client_wrap.load_collection(c_name) + + _index, _ = self.high_level_api_wrap.describe_index(milvus_client, c_name, default_vector_name) + assert _index["indexed_rows"] == async_default_nb + assert _index["state"] == "Finished" + _load, _ = self.high_level_api_wrap.get_load_state(milvus_client, c_name) + assert _load["state"] == LoadState.Loaded + + # dql tasks + tasks = [] + # search default + vector = cf.gen_vectors(ct.default_nq, ct.default_dim) + default_search_task = self.async_milvus_client_wrap.search(c_name, vector, limit=ct.default_limit, + anns_field=ct.default_float_vec_field_name, + search_params={"metric_type": "COSINE", + "params": {"ef": "96"}}, + check_task=CheckTasks.check_search_results, + check_items={"enable_milvus_client_api": True, + "nq": ct.default_nq, + "limit": ct.default_limit}) + tasks.append(default_search_task) + + # hybrid_search + search_param = { + "data": cf.gen_vectors(ct.default_nq, ct.default_dim, vector_data_type="FLOAT_VECTOR"), + "anns_field": ct.default_float_vec_field_name, + "param": {"metric_type": "COSINE", "params": {"ef": "96"}}, + "limit": ct.default_limit, + "expr": f"{ct.default_int64_field_name} > 10"} + req = AnnSearchRequest(**search_param) + + search_param2 = { + "data": cf.gen_vectors(ct.default_nq, ct.default_dim, vector_data_type="FLOAT_VECTOR"), + "anns_field": default_vector_name, + "param": {"metric_type": "L2", "params": {"nprobe": "32"}}, + "limit": ct.default_limit + } + req2 = AnnSearchRequest(**search_param2) + _output_fields = [ct.default_int64_field_name, ct.default_string_field_name] + filter_params_search_task = self.async_milvus_client_wrap.hybrid_search(c_name, [req, req2], RRFRanker(), + limit=5, + check_task=CheckTasks.check_search_results, + check_items={ + "enable_milvus_client_api": True, + "nq": ct.default_nq, + "limit": 5}) + tasks.append(filter_params_search_task) + + # get with ids + get_task = self.async_milvus_client_wrap.get(c_name, ids=['0', '1'], output_fields=[ct.default_int64_field_name, + ct.default_string_field_name]) + tasks.append(get_task) + await asyncio.gather(*tasks) + + @pytest.mark.tags(CaseLabel.L0) + async def test_async_client_dml(self): + # init client + milvus_client = self._connect(enable_milvus_client_api=True) + self.init_async_milvus_client() + + # create collection + c_name = cf.gen_unique_str(prefix) + await self.async_milvus_client_wrap.create_collection(c_name, dimension=ct.default_dim) + collections, _ = self.high_level_api_wrap.list_collections(milvus_client) + assert c_name in collections + + # insert entities + rows = [ + {default_pk_name: i, default_vector_name: [random.random() for _ in range(ct.default_dim)]} + for i in range(ct.default_nb)] + start_time = time.time() + tasks = [] + step = 1000 + for i in range(0, ct.default_nb, step): + task = self.async_milvus_client_wrap.insert(c_name, rows[i:i + step]) + tasks.append(task) + insert_res = await asyncio.gather(*tasks) + end_time = time.time() + log.info("Total time: {:.2f} seconds".format(end_time - start_time)) + for r in insert_res: + assert r[0]['insert_count'] == step + + # dml tasks + # query id -> upsert id -> query id -> delete id -> query id + _id = 10 + get_res, _ = await self.async_milvus_client_wrap.get(c_name, ids=[_id], + output_fields=[default_pk_name, default_vector_name]) + assert len(get_res) == 1 + + # upsert + upsert_row = [{ + default_pk_name: _id, default_vector_name: [random.random() for _ in range(ct.default_dim)] + }] + upsert_res, _ = await self.async_milvus_client_wrap.upsert(c_name, upsert_row) + assert upsert_res["upsert_count"] == 1 + + # get _id after upsert + get_res, _ = await self.async_milvus_client_wrap.get(c_name, ids=[_id], + output_fields=[default_pk_name, default_vector_name]) + for j in range(5): + assert abs(get_res[0][default_vector_name][j] - upsert_row[0][default_vector_name][j]) < ct.epsilon + + # delete + del_res, _ = await self.async_milvus_client_wrap.delete(c_name, ids=[_id]) + assert del_res["delete_count"] == 1 + + # query after delete + get_res, _ = await self.async_milvus_client_wrap.get(c_name, ids=[_id], + output_fields=[default_pk_name, default_vector_name]) + assert len(get_res) == 0 + + @pytest.mark.tags(CaseLabel.L2) + async def test_async_client_with_db(self): + # init client + milvus_client = self._connect(enable_milvus_client_api=True) + db_name = cf.gen_unique_str("db") + self.high_level_api_wrap.create_database(milvus_client, db_name) + self.high_level_api_wrap.close(milvus_client) + uri = cf.param_info.param_uri or f"http://{cf.param_info.param_host}:{cf.param_info.param_port}" + milvus_client, _ = self.connection_wrap.MilvusClient(uri=uri, db_name=db_name) + self.async_milvus_client_wrap.init_async_client(uri, db_name=db_name) + + # create collection + c_name = cf.gen_unique_str(prefix) + await self.async_milvus_client_wrap.create_collection(c_name, dimension=ct.default_dim) + collections, _ = self.high_level_api_wrap.list_collections(milvus_client) + assert c_name in collections + + # insert entities + rows = [ + {default_pk_name: i, default_vector_name: [random.random() for _ in range(ct.default_dim)]} + for i in range(async_default_nb)] + start_time = time.time() + tasks = [] + step = 1000 + for i in range(0, async_default_nb, step): + task = self.async_milvus_client_wrap.insert(c_name, rows[i:i + step]) + tasks.append(task) + insert_res = await asyncio.gather(*tasks) + end_time = time.time() + log.info("Total time: {:.2f} seconds".format(end_time - start_time)) + for r in insert_res: + assert r[0]['insert_count'] == step + + # dql tasks + tasks = [] + # search default + vector = cf.gen_vectors(ct.default_nq, ct.default_dim) + default_search_task = self.async_milvus_client_wrap.search(c_name, vector, limit=ct.default_limit, + check_task=CheckTasks.check_search_results, + check_items={"enable_milvus_client_api": True, + "nq": ct.default_nq, + "limit": ct.default_limit}) + tasks.append(default_search_task) + + # query with filter and default output "*" + exp_query_res = [{default_pk_name: i} for i in range(ct.default_limit)] + filter_query_task = self.async_milvus_client_wrap.query(c_name, + filter=f"{default_pk_name} < {ct.default_limit}", + output_fields=[default_pk_name], + check_task=CheckTasks.check_query_results, + check_items={"exp_res": exp_query_res, + "primary_field": default_pk_name}) + tasks.append(filter_query_task) + + # get with ids + get_task = self.async_milvus_client_wrap.get(c_name, + ids=[0, 1], + output_fields=[default_pk_name, default_vector_name], + check_task=CheckTasks.check_query_results, + check_items={"exp_res": rows[:2], "with_vec": True, + "primary_field": default_pk_name}) + tasks.append(get_task) + await asyncio.gather(*tasks) + + @pytest.mark.tags(CaseLabel.L0) + async def test_async_client_close(self): + # init async client + uri = cf.param_info.param_uri or f"http://{cf.param_info.param_host}:{cf.param_info.param_port}" + self.async_milvus_client_wrap.init_async_client(uri) + + # create collection + c_name = cf.gen_unique_str(prefix) + await self.async_milvus_client_wrap.create_collection(c_name, dimension=ct.default_dim) + + # close -> search raise error + await self.async_milvus_client_wrap.close() + vector = cf.gen_vectors(1, ct.default_dim) + error = {ct.err_code: 1, ct.err_msg: "should create connection first"} + await self.async_milvus_client_wrap.search(c_name, vector, check_task=CheckTasks.err_res, check_items=error) + + @pytest.mark.tags(CaseLabel.L3) + @pytest.mark.skip("connect with zilliz cloud") + async def test_async_client_with_token(self): + # init client + milvus_client = self._connect(enable_milvus_client_api=True) + uri = cf.param_info.param_uri or f"http://{cf.param_info.param_host}:{cf.param_info.param_port}" + token = cf.param_info.param_token + milvus_client, _ = self.connection_wrap.MilvusClient(uri=uri, token=token) + self.async_milvus_client_wrap.init_async_client(uri, token=token) + + # create collection + c_name = cf.gen_unique_str(prefix) + await self.async_milvus_client_wrap.create_collection(c_name, dimension=ct.default_dim) + collections, _ = self.high_level_api_wrap.list_collections(milvus_client) + assert c_name in collections + + # insert entities + rows = [ + {default_pk_name: i, default_vector_name: [random.random() for _ in range(ct.default_dim)]} + for i in range(ct.default_nb)] + start_time = time.time() + tasks = [] + step = 1000 + for i in range(0, ct.default_nb, step): + task = self.async_milvus_client_wrap.insert(c_name, rows[i:i + step]) + tasks.append(task) + insert_res = await asyncio.gather(*tasks) + end_time = time.time() + log.info("Total time: {:.2f} seconds".format(end_time - start_time)) + for r in insert_res: + assert r[0]['insert_count'] == step + + # dql tasks + tasks = [] + # search default + vector = cf.gen_vectors(ct.default_nq, ct.default_dim) + default_search_task = self.async_milvus_client_wrap.search(c_name, vector, limit=ct.default_limit, + check_task=CheckTasks.check_search_results, + check_items={"enable_milvus_client_api": True, + "nq": ct.default_nq, + "limit": ct.default_limit}) + tasks.append(default_search_task) + + # query with filter and default output "*" + exp_query_res = [{default_pk_name: i} for i in range(ct.default_limit)] + filter_query_task = self.async_milvus_client_wrap.query(c_name, + filter=f"{default_pk_name} < {ct.default_limit}", + output_fields=[default_pk_name], + check_task=CheckTasks.check_query_results, + check_items={"exp_res": exp_query_res, + "primary_field": default_pk_name}) + tasks.append(filter_query_task) + await asyncio.gather(*tasks) diff --git a/tests/python_client/utils/api_request.py b/tests/python_client/utils/api_request.py index c313c50166cbb..244bfa86cc521 100644 --- a/tests/python_client/utils/api_request.py +++ b/tests/python_client/utils/api_request.py @@ -1,24 +1,14 @@ +import sys import traceback import copy -import os + +from check.func_check import ResponseChecker, Error from utils.util_log import test_log as log # enable_traceback = os.getenv('ENABLE_TRACEBACK', "True") # log.info(f"enable_traceback:{enable_traceback}") -class Error: - def __init__(self, error): - self.code = getattr(error, 'code', -1) - self.message = getattr(error, 'message', str(error)) - - def __str__(self): - return f"Error(code={self.code}, message={self.message})" - - def __repr__(self): - return f"Error(code={self.code}, message={self.message})" - - log_row_length = 300 @@ -62,3 +52,50 @@ def api_request(_list, **kwargs): log.debug("(api_request) : [%s] args: %s, kwargs: %s" % (func.__qualname__, log_arg, str(kwargs))) return func(*arg, **kwargs) return False, False + + +def logger_interceptor(): + def wrapper(func): + def log_request(*arg, **kwargs): + arg = arg[1:] + arg_str = str(arg) + log_arg = arg_str[0:log_row_length] + '......' if len(arg_str) > log_row_length else arg_str + if kwargs.get("enable_traceback", True): + log.debug("(api_request) : [%s] args: %s, kwargs: %s" % (func.__name__, log_arg, str(kwargs))) + + def log_response(res, **kwargs): + if kwargs.get("enable_traceback", True): + res_str = str(res) + log_res = res_str[0:log_row_length] + '......' if len(res_str) > log_row_length else res_str + log.debug("(api_response) : [%s] %s " % (func.__name__, log_res)) + return res, True + + async def handler(*args, **kwargs): + _kwargs = copy.deepcopy(kwargs) + _kwargs.pop("enable_traceback", None) + check_task = kwargs.get("check_task", None) + check_items = kwargs.get("check_items", None) + try: + # log request + log_request(*args, **_kwargs) + # exec func + res = await func(*args, **_kwargs) + # log response + log_response(res, **_kwargs) + # check_response + check_res = ResponseChecker(res, sys._getframe().f_code.co_name, check_task, check_items, True).run() + return res, check_res + except Exception as e: + log.error(str(e)) + e_str = str(e) + log_e = e_str[0:log_row_length] + '......' if len(e_str) > log_row_length else e_str + if kwargs.get("enable_traceback", True): + log.error(traceback.format_exc()) + log.error("(api_response) : %s" % log_e) + check_res = ResponseChecker(Error(e), sys._getframe().f_code.co_name, check_task, + check_items, False).run() + return Error(e), check_res + + return handler + + return wrapper From 6bc799061edb9c8e25ffe68d735c7eab6715e7d6 Mon Sep 17 00:00:00 2001 From: sthuang <167743503+shaoting-huang@users.noreply.github.com> Date: Wed, 25 Dec 2024 18:00:51 +0800 Subject: [PATCH 14/69] fix: fix privilege group list and list collections (#38684) related: #37031 * built-in privilege group privileges in listPrivilegeGroups() should be the same as in milvus.yaml * collections granted by collection level built-in privilege group should be list in showCollections() Signed-off-by: shaoting-huang --- client/milvusclient/rbac_test.go | 16 +- configs/milvus.yaml | 2 +- internal/proxy/privilege_interceptor_test.go | 6 +- internal/rootcoord/root_coord.go | 59 +----- internal/rootcoord/root_coord_test.go | 23 --- internal/rootcoord/show_collection_task.go | 7 +- .../rootcoord/show_collection_task_test.go | 51 ++++++ pkg/util/constant.go | 95 ---------- pkg/util/paramtable/rbac_config_test.go | 41 +++-- pkg/util/paramtable/rbac_param.go | 171 +++++++++++++++++- .../integration/rbac/privilege_group_test.go | 6 +- 11 files changed, 265 insertions(+), 212 deletions(-) diff --git a/client/milvusclient/rbac_test.go b/client/milvusclient/rbac_test.go index f5d0429b6595e..76717ca615180 100644 --- a/client/milvusclient/rbac_test.go +++ b/client/milvusclient/rbac_test.go @@ -399,11 +399,11 @@ func TestRoleRBAC(t *testing.T) { suite.Run(t, new(RoleSuite)) } -type PrivilgeGroupSuite struct { +type PrivilegeGroupSuite struct { MockSuiteBase } -func (s *PrivilgeGroupSuite) TestGrantV2() { +func (s *PrivilegeGroupSuite) TestGrantV2() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -433,7 +433,7 @@ func (s *PrivilgeGroupSuite) TestGrantV2() { }) } -func (s *PrivilgeGroupSuite) TestRevokeV2() { +func (s *PrivilegeGroupSuite) TestRevokeV2() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -463,7 +463,7 @@ func (s *PrivilgeGroupSuite) TestRevokeV2() { }) } -func (s *PrivilgeGroupSuite) TestCreatePrivilegeGroup() { +func (s *PrivilegeGroupSuite) TestCreatePrivilegeGroup() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -487,7 +487,7 @@ func (s *PrivilgeGroupSuite) TestCreatePrivilegeGroup() { }) } -func (s *PrivilgeGroupSuite) TestDropPrivilegeGroup() { +func (s *PrivilegeGroupSuite) TestDropPrivilegeGroup() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -511,7 +511,7 @@ func (s *PrivilgeGroupSuite) TestDropPrivilegeGroup() { }) } -func (s *PrivilgeGroupSuite) TestListPrivilegeGroups() { +func (s *PrivilegeGroupSuite) TestListPrivilegeGroups() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -548,7 +548,7 @@ func (s *PrivilgeGroupSuite) TestListPrivilegeGroups() { }) } -func (s *PrivilgeGroupSuite) TestOperatePrivilegeGroup() { +func (s *PrivilegeGroupSuite) TestOperatePrivilegeGroup() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -575,5 +575,5 @@ func (s *PrivilgeGroupSuite) TestOperatePrivilegeGroup() { } func TestPrivilegeGroup(t *testing.T) { - suite.Run(t, new(PrivilgeGroupSuite)) + suite.Run(t, new(PrivilegeGroupSuite)) } diff --git a/configs/milvus.yaml b/configs/milvus.yaml index 8636125bbb184..3f574165f1b64 100644 --- a/configs/milvus.yaml +++ b/configs/milvus.yaml @@ -829,7 +829,7 @@ common: superUsers: defaultRootPassword: "Milvus" # default password for root user. The maximum length is 72 characters, and double quotes are required. rbac: - overrideBuiltInPrivilgeGroups: + overrideBuiltInPrivilegeGroups: enabled: false # Whether to override build-in privilege groups cluster: readonly: diff --git a/internal/proxy/privilege_interceptor_test.go b/internal/proxy/privilege_interceptor_test.go index e8093e0985d7b..fd1aef75da32a 100644 --- a/internal/proxy/privilege_interceptor_test.go +++ b/internal/proxy/privilege_interceptor_test.go @@ -576,9 +576,9 @@ func TestBuiltinPrivilegeGroup(t *testing.T) { mgr := newShardClientMgr() policies := []string{} - for _, priv := range util.BuiltinPrivilegeGroups["ClusterReadOnly"] { - objectType := util.GetObjectType(priv) - policies = append(policies, funcutil.PolicyForPrivilege("role1", objectType, "*", util.PrivilegeNameForMetastore(priv), "default")) + for _, priv := range Params.RbacConfig.GetDefaultPrivilegeGroup("ClusterReadOnly").Privileges { + objectType := util.GetObjectType(priv.Name) + policies = append(policies, funcutil.PolicyForPrivilege("role1", objectType, "*", util.PrivilegeNameForMetastore(priv.Name), "default")) } client.listPolicy = func(ctx context.Context, in *internalpb.ListPolicyRequest) (*internalpb.ListPolicyResponse, error) { return &internalpb.ListPolicyResponse{ diff --git a/internal/rootcoord/root_coord.go b/internal/rootcoord/root_coord.go index 914b0cee142e8..c36a046dd8e48 100644 --- a/internal/rootcoord/root_coord.go +++ b/internal/rootcoord/root_coord.go @@ -638,50 +638,6 @@ func (c *Core) initPublicRolePrivilege() error { return nil } -func (c *Core) initBuiltinPrivilegeGroups() []*milvuspb.PrivilegeGroupInfo { - // init built in privilege groups, override by config if rbac config enabled - builtinGroups := make([]*milvuspb.PrivilegeGroupInfo, 0) - for groupName, privileges := range util.BuiltinPrivilegeGroups { - if Params.RbacConfig.Enabled.GetAsBool() { - var confPrivs []string - switch groupName { - case "ClusterReadOnly": - confPrivs = Params.RbacConfig.ClusterReadOnlyPrivileges.GetAsStrings() - case "ClusterReadWrite": - confPrivs = Params.RbacConfig.ClusterReadWritePrivileges.GetAsStrings() - case "ClusterAdmin": - confPrivs = Params.RbacConfig.ClusterAdminPrivileges.GetAsStrings() - case "DatabaseReadOnly": - confPrivs = Params.RbacConfig.DBReadOnlyPrivileges.GetAsStrings() - case "DatabaseReadWrite": - confPrivs = Params.RbacConfig.DBReadWritePrivileges.GetAsStrings() - case "DatabaseAdmin": - confPrivs = Params.RbacConfig.DBAdminPrivileges.GetAsStrings() - case "CollectionReadOnly": - confPrivs = Params.RbacConfig.CollectionReadOnlyPrivileges.GetAsStrings() - case "CollectionReadWrite": - confPrivs = Params.RbacConfig.CollectionReadWritePrivileges.GetAsStrings() - case "CollectionAdmin": - confPrivs = Params.RbacConfig.CollectionAdminPrivileges.GetAsStrings() - default: - return nil - } - if len(confPrivs) > 0 { - privileges = confPrivs - } - } - - privs := lo.Map(privileges, func(name string, _ int) *milvuspb.PrivilegeEntity { - return &milvuspb.PrivilegeEntity{Name: name} - }) - builtinGroups = append(builtinGroups, &milvuspb.PrivilegeGroupInfo{ - GroupName: groupName, - Privileges: privs, - }) - } - return builtinGroups -} - func (c *Core) initBuiltinRoles() error { log := log.Ctx(c.ctx) rolePrivilegesMap := Params.RoleCfg.Roles.GetAsRoleDetails() @@ -2648,7 +2604,7 @@ func (c *Core) isValidPrivilege(ctx context.Context, privilegeName string, objec if customPrivGroup { return fmt.Errorf("can not operate the custom privilege group [%s]", privilegeName) } - if lo.Contains(lo.Keys(util.BuiltinPrivilegeGroups), privilegeName) { + if lo.Contains(Params.RbacConfig.GetDefaultPrivilegeGroupNames(), privilegeName) { return fmt.Errorf("can not operate the built-in privilege group [%s]", privilegeName) } // check object privileges for built-in privileges @@ -2757,7 +2713,7 @@ func (c *Core) OperatePrivilege(ctx context.Context, in *milvuspb.OperatePrivile grants := []*milvuspb.GrantEntity{in.Entity} allGroups, err := c.meta.ListPrivilegeGroups(ctx) - allGroups = append(allGroups, c.initBuiltinPrivilegeGroups()...) + allGroups = append(allGroups, Params.RbacConfig.GetDefaultPrivilegeGroups()...) if err != nil { return nil, err } @@ -3243,16 +3199,7 @@ func (c *Core) ListPrivilegeGroups(ctx context.Context, in *milvuspb.ListPrivile metrics.RootCoordDDLReqLatency.WithLabelValues(method).Observe(float64(tr.ElapseSpan().Milliseconds())) // append built in privilege groups - for groupName, privileges := range util.BuiltinPrivilegeGroups { - privGroups = append(privGroups, &milvuspb.PrivilegeGroupInfo{ - GroupName: groupName, - Privileges: lo.Map(privileges, func(p string, _ int) *milvuspb.PrivilegeEntity { - return &milvuspb.PrivilegeEntity{ - Name: p, - } - }), - }) - } + privGroups = append(privGroups, Params.RbacConfig.GetDefaultPrivilegeGroups()...) return &milvuspb.ListPrivilegeGroupsResponse{ Status: merr.Success(), PrivilegeGroups: privGroups, diff --git a/internal/rootcoord/root_coord_test.go b/internal/rootcoord/root_coord_test.go index e6b8c380f4e9b..bf92be38d7102 100644 --- a/internal/rootcoord/root_coord_test.go +++ b/internal/rootcoord/root_coord_test.go @@ -2037,29 +2037,6 @@ func TestCore_InitRBAC(t *testing.T) { err := c.initRbac() assert.NoError(t, err) }) - - t.Run("init default privilege groups", func(t *testing.T) { - clusterReadWrite := `SelectOwnership,SelectUser,DescribeResourceGroup` - meta := mockrootcoord.NewIMetaTable(t) - c := newTestCore(withHealthyCode(), withMeta(meta)) - - Params.Save(Params.RbacConfig.Enabled.Key, "true") - Params.Save(Params.RbacConfig.ClusterReadWritePrivileges.Key, clusterReadWrite) - - defer func() { - Params.Reset(Params.RbacConfig.Enabled.Key) - Params.Reset(Params.RbacConfig.ClusterReadWritePrivileges.Key) - }() - - builtinGroups := c.initBuiltinPrivilegeGroups() - fmt.Println(builtinGroups) - assert.Equal(t, len(util.BuiltinPrivilegeGroups), len(builtinGroups)) - for _, group := range builtinGroups { - if group.GroupName == "ClusterReadWrite" { - assert.Equal(t, len(group.Privileges), 3) - } - } - }) } func TestCore_BackupRBAC(t *testing.T) { diff --git a/internal/rootcoord/show_collection_task.go b/internal/rootcoord/show_collection_task.go index b0f40be928d61..31c268abde57b 100644 --- a/internal/rootcoord/show_collection_task.go +++ b/internal/rootcoord/show_collection_task.go @@ -88,12 +88,15 @@ func (t *showCollectionTask) Execute(ctx context.Context) error { } for _, entity := range entities { objectType := entity.GetObject().GetName() + priv := entity.GetGrantor().GetPrivilege().GetName() if objectType == commonpb.ObjectType_Global.String() && - entity.GetGrantor().GetPrivilege().GetName() == util.PrivilegeNameForAPI(commonpb.ObjectPrivilege_PrivilegeAll.String()) { + priv == util.PrivilegeNameForAPI(commonpb.ObjectPrivilege_PrivilegeAll.String()) { privilegeColls.Insert(util.AnyWord) return privilegeColls, nil } - if objectType != commonpb.ObjectType_Collection.String() { + // should list collection level built-in privilege group objects + if objectType != commonpb.ObjectType_Collection.String() && + !Params.RbacConfig.IsCollectionPrivilegeGroup(priv) { continue } collectionName := entity.GetObjectName() diff --git a/internal/rootcoord/show_collection_task_test.go b/internal/rootcoord/show_collection_task_test.go index 4b8a552de9c2a..ccc7d6bfebe48 100644 --- a/internal/rootcoord/show_collection_task_test.go +++ b/internal/rootcoord/show_collection_task_test.go @@ -325,6 +325,57 @@ func TestShowCollectionsAuth(t *testing.T) { assert.Equal(t, "foo", task.Rsp.GetCollectionNames()[0]) }) + t.Run("collection level privilege group", func(t *testing.T) { + Params.Save(Params.CommonCfg.AuthorizationEnabled.Key, "true") + defer Params.Reset(Params.CommonCfg.AuthorizationEnabled.Key) + meta := mockrootcoord.NewIMetaTable(t) + core := newTestCore(withMeta(meta)) + + meta.EXPECT().SelectUser(mock.Anything, mock.Anything, mock.Anything, mock.Anything). + Return([]*milvuspb.UserResult{ + { + User: &milvuspb.UserEntity{ + Name: "foo", + }, + Roles: []*milvuspb.RoleEntity{ + { + Name: "hoooo", + }, + }, + }, + }, nil).Once() + meta.EXPECT().SelectGrant(mock.Anything, mock.Anything, mock.Anything).Return([]*milvuspb.GrantEntity{ + { + Object: &milvuspb.ObjectEntity{Name: commonpb.ObjectType_Global.String()}, + Grantor: &milvuspb.GrantorEntity{ + Privilege: &milvuspb.PrivilegeEntity{ + Name: util.PrivilegeNameForAPI(commonpb.ObjectPrivilege_PrivilegeGroupCollectionReadOnly.String()), + }, + }, + ObjectName: util.AnyWord, + }, + }, nil).Once() + meta.EXPECT().ListCollections(mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return([]*model.Collection{ + { + DBID: 1, + CollectionID: 100, + Name: "foo", + CreateTime: tsoutil.GetCurrentTime(), + }, + }, nil).Once() + + task := &showCollectionTask{ + baseTask: newBaseTask(context.Background(), core), + Req: &milvuspb.ShowCollectionsRequest{DbName: "default"}, + Rsp: &milvuspb.ShowCollectionsResponse{}, + } + ctx := GetContext(context.Background(), "foo:root") + err := task.Execute(ctx) + assert.NoError(t, err) + assert.Equal(t, 1, len(task.Rsp.GetCollectionNames())) + assert.Equal(t, "foo", task.Rsp.GetCollectionNames()[0]) + }) + t.Run("all collection", func(t *testing.T) { Params.Save(Params.CommonCfg.AuthorizationEnabled.Key, "true") defer Params.Reset(Params.CommonCfg.AuthorizationEnabled.Key) diff --git a/pkg/util/constant.go b/pkg/util/constant.go index bef093cf3fef1..d1ca65d396a43 100644 --- a/pkg/util/constant.go +++ b/pkg/util/constant.go @@ -290,101 +290,6 @@ var ( commonpb.ObjectPrivilege_PrivilegeAlterDatabase.String(), commonpb.ObjectPrivilege_PrivilegeFlush.String(), } - - BuiltinPrivilegeGroups = map[string][]string{ - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupCollectionReadOnly.String()): CollectionReadOnlyPrivilegeGroup, - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupCollectionReadWrite.String()): CollectionReadWritePrivilegeGroup, - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupCollectionAdmin.String()): CollectionAdminPrivilegeGroup, - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupDatabaseReadOnly.String()): DatabaseReadOnlyPrivilegeGroup, - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupDatabaseReadWrite.String()): DatabaseReadWritePrivilegeGroup, - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupDatabaseAdmin.String()): DatabaseAdminPrivilegeGroup, - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupClusterReadOnly.String()): ClusterReadOnlyPrivilegeGroup, - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupClusterReadWrite.String()): ClusterReadWritePrivilegeGroup, - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupClusterAdmin.String()): ClusterAdminPrivilegeGroup, - } - - CollectionReadOnlyPrivilegeGroup = []string{ - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeQuery.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeSearch.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeIndexDetail.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGetFlushState.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGetLoadState.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGetLoadingProgress.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeHasPartition.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeShowPartitions.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDescribeCollection.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDescribeAlias.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGetStatistics.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeListAliases.String()), - } - - CollectionReadWritePrivilegeGroup = append(CollectionReadOnlyPrivilegeGroup, - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeLoad.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeRelease.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeInsert.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDelete.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeUpsert.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeImport.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeFlush.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCompaction.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeLoadBalance.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreateIndex.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropIndex.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreatePartition.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropPartition.String()), - ) - - CollectionAdminPrivilegeGroup = append(CollectionReadWritePrivilegeGroup, - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreateAlias.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropAlias.String()), - ) - - DatabaseReadOnlyPrivilegeGroup = []string{ - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeShowCollections.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDescribeDatabase.String()), - } - - DatabaseReadWritePrivilegeGroup = append(DatabaseReadOnlyPrivilegeGroup, - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeAlterDatabase.String()), - ) - - DatabaseAdminPrivilegeGroup = append(DatabaseReadWritePrivilegeGroup, - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreateCollection.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropCollection.String()), - ) - - ClusterReadOnlyPrivilegeGroup = []string{ - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeListDatabases.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeSelectOwnership.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeSelectUser.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDescribeResourceGroup.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeListResourceGroups.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeListPrivilegeGroups.String()), - } - - ClusterReadWritePrivilegeGroup = append(ClusterReadOnlyPrivilegeGroup, - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeFlushAll.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeTransferNode.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeTransferReplica.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeUpdateResourceGroups.String()), - ) - - ClusterAdminPrivilegeGroup = append(ClusterReadWritePrivilegeGroup, - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeBackupRBAC.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeRestoreRBAC.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreateDatabase.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropDatabase.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreateOwnership.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropOwnership.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeManageOwnership.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreateResourceGroup.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropResourceGroup.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeUpdateUser.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeRenameCollection.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreatePrivilegeGroup.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropPrivilegeGroup.String()), - MetaStore2API(commonpb.ObjectPrivilege_PrivilegeOperatePrivilegeGroup.String()), - ) ) // StringSet convert array to map for conveniently check if the array contains an element diff --git a/pkg/util/paramtable/rbac_config_test.go b/pkg/util/paramtable/rbac_config_test.go index 803fceabe2896..9a780bcea435b 100644 --- a/pkg/util/paramtable/rbac_config_test.go +++ b/pkg/util/paramtable/rbac_config_test.go @@ -20,22 +20,41 @@ import ( "testing" "github.com/stretchr/testify/assert" - - "github.com/milvus-io/milvus/pkg/util" ) func TestRbacConfig_Init(t *testing.T) { params := ComponentParam{} params.Init(NewBaseTable(SkipRemote(true))) cfg := ¶ms.RbacConfig + assert.Equal(t, len(cfg.GetDefaultPrivilegeGroupNames()), 9) + assert.True(t, cfg.IsCollectionPrivilegeGroup("CollectionReadOnly")) + assert.False(t, cfg.IsCollectionPrivilegeGroup("DatabaseReadOnly")) assert.Equal(t, cfg.Enabled.GetAsBool(), false) - assert.Equal(t, cfg.ClusterReadOnlyPrivileges.GetAsStrings(), util.BuiltinPrivilegeGroups["ClusterReadOnly"]) - assert.Equal(t, cfg.ClusterReadWritePrivileges.GetAsStrings(), util.BuiltinPrivilegeGroups["ClusterReadWrite"]) - assert.Equal(t, cfg.ClusterAdminPrivileges.GetAsStrings(), util.BuiltinPrivilegeGroups["ClusterAdmin"]) - assert.Equal(t, cfg.DBReadOnlyPrivileges.GetAsStrings(), util.BuiltinPrivilegeGroups["DatabaseReadOnly"]) - assert.Equal(t, cfg.DBReadWritePrivileges.GetAsStrings(), util.BuiltinPrivilegeGroups["DatabaseReadWrite"]) - assert.Equal(t, cfg.DBAdminPrivileges.GetAsStrings(), util.BuiltinPrivilegeGroups["DatabaseAdmin"]) - assert.Equal(t, cfg.CollectionReadOnlyPrivileges.GetAsStrings(), util.BuiltinPrivilegeGroups["CollectionReadOnly"]) - assert.Equal(t, cfg.CollectionReadWritePrivileges.GetAsStrings(), util.BuiltinPrivilegeGroups["CollectionReadWrite"]) - assert.Equal(t, cfg.CollectionAdminPrivileges.GetAsStrings(), util.BuiltinPrivilegeGroups["CollectionAdmin"]) + assert.Equal(t, cfg.ClusterReadOnlyPrivileges.GetAsStrings(), builtinPrivilegeGroups["ClusterReadOnly"]) + assert.Equal(t, cfg.ClusterReadWritePrivileges.GetAsStrings(), builtinPrivilegeGroups["ClusterReadWrite"]) + assert.Equal(t, cfg.ClusterAdminPrivileges.GetAsStrings(), builtinPrivilegeGroups["ClusterAdmin"]) + assert.Equal(t, cfg.DBReadOnlyPrivileges.GetAsStrings(), builtinPrivilegeGroups["DatabaseReadOnly"]) + assert.Equal(t, cfg.DBReadWritePrivileges.GetAsStrings(), builtinPrivilegeGroups["DatabaseReadWrite"]) + assert.Equal(t, cfg.DBAdminPrivileges.GetAsStrings(), builtinPrivilegeGroups["DatabaseAdmin"]) + assert.Equal(t, cfg.CollectionReadOnlyPrivileges.GetAsStrings(), builtinPrivilegeGroups["CollectionReadOnly"]) + assert.Equal(t, cfg.CollectionReadWritePrivileges.GetAsStrings(), builtinPrivilegeGroups["CollectionReadWrite"]) + assert.Equal(t, cfg.CollectionAdminPrivileges.GetAsStrings(), builtinPrivilegeGroups["CollectionAdmin"]) +} + +func TestRbacConfig_Override(t *testing.T) { + params := ComponentParam{} + params.Init(NewBaseTable(SkipRemote(true))) + + clusterReadWrite := `SelectOwnership,SelectUser,DescribeResourceGroup` + + params.Save(params.RbacConfig.Enabled.Key, "true") + params.Save(params.RbacConfig.ClusterReadWritePrivileges.Key, clusterReadWrite) + + defer func() { + params.Reset(params.RbacConfig.Enabled.Key) + params.Reset(params.RbacConfig.ClusterReadWritePrivileges.Key) + }() + + group := params.RbacConfig.GetDefaultPrivilegeGroup("ClusterReadWrite") + assert.Equal(t, len(group.Privileges), 3) } diff --git a/pkg/util/paramtable/rbac_param.go b/pkg/util/paramtable/rbac_param.go index 34e0bfb7dbc29..d793a4d93b26d 100644 --- a/pkg/util/paramtable/rbac_param.go +++ b/pkg/util/paramtable/rbac_param.go @@ -3,9 +3,110 @@ package paramtable import ( "strings" + "github.com/samber/lo" + + "github.com/milvus-io/milvus-proto/go-api/v2/commonpb" + "github.com/milvus-io/milvus-proto/go-api/v2/milvuspb" "github.com/milvus-io/milvus/pkg/util" ) +var ( + builtinPrivilegeGroups = map[string][]string{ + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupCollectionReadOnly.String()): collectionReadOnlyPrivilegeGroup, + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupCollectionReadWrite.String()): collectionReadWritePrivilegeGroup, + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupCollectionAdmin.String()): collectionAdminPrivilegeGroup, + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupDatabaseReadOnly.String()): databaseReadOnlyPrivilegeGroup, + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupDatabaseReadWrite.String()): databaseReadWritePrivilegeGroup, + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupDatabaseAdmin.String()): databaseAdminPrivilegeGroup, + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupClusterReadOnly.String()): clusterReadOnlyPrivilegeGroup, + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupClusterReadWrite.String()): clusterReadWritePrivilegeGroup, + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGroupClusterAdmin.String()): clusterAdminPrivilegeGroup, + } + + collectionReadOnlyPrivilegeGroup = []string{ + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeQuery.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeSearch.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeIndexDetail.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGetFlushState.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGetLoadState.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGetLoadingProgress.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeHasPartition.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeShowPartitions.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDescribeCollection.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDescribeAlias.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeGetStatistics.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeListAliases.String()), + } + + collectionReadWritePrivilegeGroup = append(collectionReadOnlyPrivilegeGroup, + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeLoad.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeRelease.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeInsert.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDelete.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeUpsert.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeImport.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeFlush.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCompaction.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeLoadBalance.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreateIndex.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropIndex.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreatePartition.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropPartition.String()), + ) + + collectionAdminPrivilegeGroup = append(collectionReadWritePrivilegeGroup, + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreateAlias.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropAlias.String()), + ) + + databaseReadOnlyPrivilegeGroup = []string{ + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeShowCollections.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDescribeDatabase.String()), + } + + databaseReadWritePrivilegeGroup = append(databaseReadOnlyPrivilegeGroup, + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeAlterDatabase.String()), + ) + + databaseAdminPrivilegeGroup = append(databaseReadWritePrivilegeGroup, + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreateCollection.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropCollection.String()), + ) + + clusterReadOnlyPrivilegeGroup = []string{ + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeListDatabases.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeSelectOwnership.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeSelectUser.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDescribeResourceGroup.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeListResourceGroups.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeListPrivilegeGroups.String()), + } + + clusterReadWritePrivilegeGroup = append(clusterReadOnlyPrivilegeGroup, + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeFlushAll.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeTransferNode.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeTransferReplica.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeUpdateResourceGroups.String()), + ) + + clusterAdminPrivilegeGroup = append(clusterReadWritePrivilegeGroup, + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeBackupRBAC.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeRestoreRBAC.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreateDatabase.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropDatabase.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreateOwnership.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropOwnership.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeManageOwnership.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreateResourceGroup.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropResourceGroup.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeUpdateUser.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeRenameCollection.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeCreatePrivilegeGroup.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeDropPrivilegeGroup.String()), + util.MetaStore2API(commonpb.ObjectPrivilege_PrivilegeOperatePrivilegeGroup.String()), + ) +) + type rbacConfig struct { Enabled ParamItem `refreshable:"false"` ClusterReadOnlyPrivileges ParamItem `refreshable:"false"` @@ -23,7 +124,7 @@ type rbacConfig struct { func (p *rbacConfig) init(base *BaseTable) { p.Enabled = ParamItem{ - Key: "common.security.rbac.overrideBuiltInPrivilgeGroups.enabled", + Key: "common.security.rbac.overrideBuiltInPrivilegeGroups.enabled", DefaultValue: "false", Version: "2.4.16", Doc: "Whether to override build-in privilege groups", @@ -33,7 +134,7 @@ func (p *rbacConfig) init(base *BaseTable) { p.ClusterReadOnlyPrivileges = ParamItem{ Key: "common.security.rbac.cluster.readonly.privileges", - DefaultValue: strings.Join(util.ClusterReadOnlyPrivilegeGroup, ","), + DefaultValue: strings.Join(clusterReadOnlyPrivilegeGroup, ","), Version: "2.4.16", Doc: "Cluster level readonly privileges", Export: true, @@ -42,7 +143,7 @@ func (p *rbacConfig) init(base *BaseTable) { p.ClusterReadWritePrivileges = ParamItem{ Key: "common.security.rbac.cluster.readwrite.privileges", - DefaultValue: strings.Join(util.ClusterReadWritePrivilegeGroup, ","), + DefaultValue: strings.Join(clusterReadWritePrivilegeGroup, ","), Version: "2.4.16", Doc: "Cluster level readwrite privileges", Export: true, @@ -51,7 +152,7 @@ func (p *rbacConfig) init(base *BaseTable) { p.ClusterAdminPrivileges = ParamItem{ Key: "common.security.rbac.cluster.admin.privileges", - DefaultValue: strings.Join(util.ClusterAdminPrivilegeGroup, ","), + DefaultValue: strings.Join(clusterAdminPrivilegeGroup, ","), Version: "2.4.16", Doc: "Cluster level admin privileges", Export: true, @@ -60,7 +161,7 @@ func (p *rbacConfig) init(base *BaseTable) { p.DBReadOnlyPrivileges = ParamItem{ Key: "common.security.rbac.database.readonly.privileges", - DefaultValue: strings.Join(util.DatabaseReadOnlyPrivilegeGroup, ","), + DefaultValue: strings.Join(databaseReadOnlyPrivilegeGroup, ","), Version: "2.4.16", Doc: "Database level readonly privileges", Export: true, @@ -69,7 +170,7 @@ func (p *rbacConfig) init(base *BaseTable) { p.DBReadWritePrivileges = ParamItem{ Key: "common.security.rbac.database.readwrite.privileges", - DefaultValue: strings.Join(util.DatabaseReadWritePrivilegeGroup, ","), + DefaultValue: strings.Join(databaseReadWritePrivilegeGroup, ","), Version: "2.4.16", Doc: "Database level readwrite privileges", Export: true, @@ -78,7 +179,7 @@ func (p *rbacConfig) init(base *BaseTable) { p.DBAdminPrivileges = ParamItem{ Key: "common.security.rbac.database.admin.privileges", - DefaultValue: strings.Join(util.DatabaseAdminPrivilegeGroup, ","), + DefaultValue: strings.Join(databaseAdminPrivilegeGroup, ","), Version: "2.4.16", Doc: "Database level admin privileges", Export: true, @@ -87,7 +188,7 @@ func (p *rbacConfig) init(base *BaseTable) { p.CollectionReadOnlyPrivileges = ParamItem{ Key: "common.security.rbac.collection.readonly.privileges", - DefaultValue: strings.Join(util.CollectionReadOnlyPrivilegeGroup, ","), + DefaultValue: strings.Join(collectionReadOnlyPrivilegeGroup, ","), Version: "2.4.16", Doc: "Collection level readonly privileges", Export: true, @@ -96,7 +197,7 @@ func (p *rbacConfig) init(base *BaseTable) { p.CollectionReadWritePrivileges = ParamItem{ Key: "common.security.rbac.collection.readwrite.privileges", - DefaultValue: strings.Join(util.CollectionReadWritePrivilegeGroup, ","), + DefaultValue: strings.Join(collectionReadWritePrivilegeGroup, ","), Version: "2.4.16", Doc: "Collection level readwrite privileges", Export: true, @@ -105,10 +206,60 @@ func (p *rbacConfig) init(base *BaseTable) { p.CollectionAdminPrivileges = ParamItem{ Key: "common.security.rbac.collection.admin.privileges", - DefaultValue: strings.Join(util.CollectionAdminPrivilegeGroup, ","), + DefaultValue: strings.Join(collectionAdminPrivilegeGroup, ","), Version: "2.4.16", Doc: "Collection level admin privileges", Export: true, } p.CollectionAdminPrivileges.Init(base.mgr) } + +func (p *rbacConfig) GetDefaultPrivilegeGroups() []*milvuspb.PrivilegeGroupInfo { + privilegeGroupConfigs := []struct { + GroupName string + Privileges func() []string + }{ + {"ClusterReadOnly", p.ClusterReadOnlyPrivileges.GetAsStrings}, + {"ClusterReadWrite", p.ClusterReadWritePrivileges.GetAsStrings}, + {"ClusterAdmin", p.ClusterAdminPrivileges.GetAsStrings}, + {"DatabaseReadOnly", p.DBReadOnlyPrivileges.GetAsStrings}, + {"DatabaseReadWrite", p.DBReadWritePrivileges.GetAsStrings}, + {"DatabaseAdmin", p.DBAdminPrivileges.GetAsStrings}, + {"CollectionReadOnly", p.CollectionReadOnlyPrivileges.GetAsStrings}, + {"CollectionReadWrite", p.CollectionReadWritePrivileges.GetAsStrings}, + {"CollectionAdmin", p.CollectionAdminPrivileges.GetAsStrings}, + } + + builtinGroups := make([]*milvuspb.PrivilegeGroupInfo, 0, len(privilegeGroupConfigs)) + for _, config := range privilegeGroupConfigs { + privileges := lo.Map(config.Privileges(), func(name string, _ int) *milvuspb.PrivilegeEntity { + return &milvuspb.PrivilegeEntity{Name: name} + }) + builtinGroups = append(builtinGroups, &milvuspb.PrivilegeGroupInfo{ + GroupName: config.GroupName, + Privileges: privileges, + }) + } + return builtinGroups +} + +func (p *rbacConfig) GetDefaultPrivilegeGroup(privName string) *milvuspb.PrivilegeGroupInfo { + for _, group := range p.GetDefaultPrivilegeGroups() { + if group.GroupName == privName { + return group + } + } + return nil +} + +func (p *rbacConfig) GetDefaultPrivilegeGroupNames() []string { + return lo.Keys(builtinPrivilegeGroups) +} + +func (p *rbacConfig) IsCollectionPrivilegeGroup(privName string) bool { + collectionPrivilegeGroups := lo.PickBy(builtinPrivilegeGroups, func(groupName string, _ []string) bool { + return strings.Contains(groupName, "Collection") + }) + _, exists := collectionPrivilegeGroups[privName] + return exists +} diff --git a/tests/integration/rbac/privilege_group_test.go b/tests/integration/rbac/privilege_group_test.go index 7e44c5301e119..966eb6b55b9c5 100644 --- a/tests/integration/rbac/privilege_group_test.go +++ b/tests/integration/rbac/privilege_group_test.go @@ -68,7 +68,7 @@ func (s *PrivilegeGroupTestSuite) TestBuiltinPrivilegeGroup() { resp, _ = s.operatePrivilege(ctx, roleName, "Admin", commonpb.ObjectType_Global.String(), milvuspb.OperatePrivilegeType_Grant) s.True(merr.Ok(resp)) - for _, builtinGroup := range lo.Keys(util.BuiltinPrivilegeGroups) { + for _, builtinGroup := range paramtable.Get().RbacConfig.GetDefaultPrivilegeGroupNames() { resp, _ = s.operatePrivilege(ctx, roleName, builtinGroup, commonpb.ObjectType_Global.String(), milvuspb.OperatePrivilegeType_Grant) s.False(merr.Ok(resp)) } @@ -157,7 +157,7 @@ func (s *PrivilegeGroupTestSuite) TestGrantV2BuiltinPrivilegeGroup() { s.NoError(err) s.True(merr.Ok(createRoleResp)) - for _, builtinGroup := range lo.Keys(util.BuiltinPrivilegeGroups) { + for _, builtinGroup := range paramtable.Get().RbacConfig.GetDefaultPrivilegeGroupNames() { resp, _ := s.operatePrivilegeV2(ctx, roleName, builtinGroup, util.AnyWord, util.AnyWord, milvuspb.OperatePrivilegeType_Grant) s.True(merr.Ok(resp)) } @@ -314,7 +314,7 @@ func (s *PrivilegeGroupTestSuite) TestGrantV2CustomPrivilegeGroup() { // Validate the group was dropped listResp, err := s.Cluster.Proxy.ListPrivilegeGroups(ctx, &milvuspb.ListPrivilegeGroupsRequest{}) s.NoError(err) - s.Equal(len(util.BuiltinPrivilegeGroups), len(listResp.PrivilegeGroups)) + s.Equal(len(paramtable.Get().RbacConfig.GetDefaultPrivilegeGroupNames()), len(listResp.PrivilegeGroups)) // validate edge cases resp, _ = s.operatePrivilegeV2(ctx, role, util.AnyWord, util.AnyWord, util.AnyWord, milvuspb.OperatePrivilegeType_Grant) From 25f0c82cebb4481389178c6dda29276b15ce3409 Mon Sep 17 00:00:00 2001 From: wei liu Date: Wed, 25 Dec 2024 18:02:51 +0800 Subject: [PATCH 15/69] fix: Fix update loading collection's load config doesn't work (#38595) issue: #38594 --------- Signed-off-by: Wei Liu --- internal/querycoordv2/services.go | 4 +- internal/querycoordv2/services_test.go | 52 --------- tests/integration/replicas/load/load_test.go | 117 +++++++++++++++++++ 3 files changed, 119 insertions(+), 54 deletions(-) diff --git a/internal/querycoordv2/services.go b/internal/querycoordv2/services.go index d8aa5178711a4..72ed6101e744d 100644 --- a/internal/querycoordv2/services.go +++ b/internal/querycoordv2/services.go @@ -253,7 +253,7 @@ func (s *Server) LoadCollection(ctx context.Context, req *querypb.LoadCollection var loadJob job.Job collection := s.meta.GetCollection(ctx, req.GetCollectionID()) - if collection != nil && collection.GetStatus() == querypb.LoadStatus_Loaded { + if collection != nil { // if collection is loaded, check if collection is loaded with the same replica number and resource groups // if replica number or resource group changes, switch to update load config collectionUsedRG := s.meta.ReplicaManager.GetResourceGroupByCollection(ctx, collection.GetCollectionID()).Collect() @@ -1180,7 +1180,7 @@ func (s *Server) UpdateLoadConfig(ctx context.Context, req *querypb.UpdateLoadCo jobs := make([]job.Job, 0, len(req.GetCollectionIDs())) for _, collectionID := range req.GetCollectionIDs() { collection := s.meta.GetCollection(ctx, collectionID) - if collection == nil || collection.GetStatus() != querypb.LoadStatus_Loaded { + if collection == nil { err := merr.WrapErrCollectionNotLoaded(collectionID) log.Warn("failed to update load config", zap.Error(err)) continue diff --git a/internal/querycoordv2/services_test.go b/internal/querycoordv2/services_test.go index 1381bc2a23b51..77195dce5cd08 100644 --- a/internal/querycoordv2/services_test.go +++ b/internal/querycoordv2/services_test.go @@ -857,58 +857,6 @@ func (suite *ServiceSuite) TestTransferReplica() { suite.ErrorIs(merr.Error(resp), merr.ErrServiceNotReady) } -func (suite *ServiceSuite) TestLoadCollectionFailed() { - suite.loadAll() - ctx := context.Background() - server := suite.server - - // Test load with different replica number - for _, collection := range suite.collections { - req := &querypb.LoadCollectionRequest{ - CollectionID: collection, - ReplicaNumber: suite.replicaNumber[collection] + 1, - } - resp, err := server.LoadCollection(ctx, req) - suite.NoError(err) - suite.ErrorIs(merr.Error(resp), merr.ErrParameterInvalid) - } - - req := &querypb.LoadCollectionRequest{ - CollectionID: 1001, - ReplicaNumber: 2, - ResourceGroups: []string{meta.DefaultResourceGroupName, "rg"}, - } - resp, err := server.LoadCollection(ctx, req) - suite.NoError(err) - suite.Equal(commonpb.ErrorCode_IllegalArgument, resp.ErrorCode) - - // Test load with partitions loaded - for _, collection := range suite.collections { - if suite.loadTypes[collection] != querypb.LoadType_LoadPartition { - continue - } - - req := &querypb.LoadCollectionRequest{ - CollectionID: collection, - } - resp, err := server.LoadCollection(ctx, req) - suite.NoError(err) - suite.Equal(commonpb.ErrorCode_IllegalArgument, resp.ErrorCode) - } - - // Test load with wrong rg num - for _, collection := range suite.collections { - req := &querypb.LoadCollectionRequest{ - CollectionID: collection, - ReplicaNumber: suite.replicaNumber[collection] + 1, - ResourceGroups: []string{"rg1", "rg2"}, - } - resp, err := server.LoadCollection(ctx, req) - suite.NoError(err) - suite.Equal(commonpb.ErrorCode_IllegalArgument, resp.ErrorCode) - } -} - func (suite *ServiceSuite) TestLoadPartition() { ctx := context.Background() server := suite.server diff --git a/tests/integration/replicas/load/load_test.go b/tests/integration/replicas/load/load_test.go index ecbb918d84b92..3609441cf52ba 100644 --- a/tests/integration/replicas/load/load_test.go +++ b/tests/integration/replicas/load/load_test.go @@ -854,6 +854,123 @@ func (s *LoadTestSuite) TestDynamicUpdateLoadConfigs_WithRGLackOfNode() { s.releaseCollection(dbName, collectionName) } +func (s *LoadTestSuite) TestDynamicUpdateLoadConfigs_OnLoadingCollection() { + ctx := context.Background() + s.CreateCollectionWithConfiguration(ctx, &integration.CreateCollectionConfig{ + DBName: dbName, + Dim: dim, + CollectionName: collectionName, + ChannelNum: 1, + SegmentNum: 1, + RowNumPerSegment: 2000, + }) + + // prepare resource groups + rgNum := 10 + rgs := make([]string, 0) + for i := 0; i < rgNum; i++ { + rgs = append(rgs, fmt.Sprintf("rg_%d", i)) + s.Cluster.QueryCoord.CreateResourceGroup(ctx, &milvuspb.CreateResourceGroupRequest{ + ResourceGroup: rgs[i], + Config: &rgpb.ResourceGroupConfig{ + Requests: &rgpb.ResourceGroupLimit{ + NodeNum: 1, + }, + Limits: &rgpb.ResourceGroupLimit{ + NodeNum: 1, + }, + + TransferFrom: []*rgpb.ResourceGroupTransfer{ + { + ResourceGroup: meta.DefaultResourceGroupName, + }, + }, + TransferTo: []*rgpb.ResourceGroupTransfer{ + { + ResourceGroup: meta.DefaultResourceGroupName, + }, + }, + }, + }) + } + + resp, err := s.Cluster.QueryCoord.ListResourceGroups(ctx, &milvuspb.ListResourceGroupsRequest{}) + s.NoError(err) + s.True(merr.Ok(resp.GetStatus())) + s.Len(resp.GetResourceGroups(), rgNum+1) + + for i := 1; i < rgNum; i++ { + s.Cluster.AddQueryNode() + } + + nodesInRG := make(map[string][]int64) + s.Eventually(func() bool { + matchCounter := 0 + for _, rg := range rgs { + resp1, err := s.Cluster.QueryCoord.DescribeResourceGroup(ctx, &querypb.DescribeResourceGroupRequest{ + ResourceGroup: rg, + }) + s.NoError(err) + s.True(merr.Ok(resp.GetStatus())) + if len(resp1.ResourceGroup.Nodes) == 1 { + matchCounter += 1 + nodesInRG[rg] = []int64{resp1.ResourceGroup.Nodes[0].NodeId} + } + } + return matchCounter == rgNum + }, 30*time.Second, time.Second) + + // trigger collection loading, and modify collection's load config during loading + loadStatus, err := s.Cluster.Proxy.LoadCollection(ctx, &milvuspb.LoadCollectionRequest{ + DbName: dbName, + CollectionName: collectionName, + ReplicaNumber: 1, + ResourceGroups: rgs[:1], + }) + s.NoError(err) + s.True(merr.Ok(loadStatus)) + loadStatus, err = s.Cluster.Proxy.LoadCollection(ctx, &milvuspb.LoadCollectionRequest{ + DbName: dbName, + CollectionName: collectionName, + ReplicaNumber: 3, + ResourceGroups: rgs[1:4], + }) + s.NoError(err) + s.True(merr.Ok(loadStatus)) + loadStatus, err = s.Cluster.Proxy.LoadCollection(ctx, &milvuspb.LoadCollectionRequest{ + DbName: dbName, + CollectionName: collectionName, + ReplicaNumber: 5, + ResourceGroups: rgs[4:9], + }) + s.NoError(err) + s.True(merr.Ok(loadStatus)) + + s.Eventually(func() bool { + resp3, err := s.Cluster.Proxy.GetReplicas(ctx, &milvuspb.GetReplicasRequest{ + DbName: dbName, + CollectionName: collectionName, + }) + s.NoError(err) + s.True(merr.Ok(resp3.Status)) + return len(resp3.GetReplicas()) == 5 + }, 30*time.Second, 1*time.Second) + + s.Eventually(func() bool { + segmentNum, channelNum := 0, 0 + for _, qn := range s.Cluster.GetAllQueryNodes() { + resp, err := qn.GetDataDistribution(ctx, &querypb.GetDataDistributionRequest{}) + s.NoError(err) + s.True(merr.Ok(resp.Status)) + segmentNum += len(resp.Segments) + channelNum += len(resp.Channels) + } + return segmentNum == 5 && channelNum == 5 + }, 30*time.Second, 1*time.Second) + + s.releaseCollection(dbName, collectionName) +} + func TestReplicas(t *testing.T) { suite.Run(t, new(LoadTestSuite)) } From c7ea09a8be8760bead379a5d0f8904ba6422bffb Mon Sep 17 00:00:00 2001 From: aoiasd <45024769+aoiasd@users.noreply.github.com> Date: Wed, 25 Dec 2024 18:58:50 +0800 Subject: [PATCH 16/69] enhance: return exception type name when segcore return unkonwn exception (#38326) relate: https://github.com/milvus-io/milvus/issues/38265 Signed-off-by: aoiasd --- internal/core/src/futures/Future.h | 12 +++++++----- tests/python_client/testcases/test_search.py | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/internal/core/src/futures/Future.h b/internal/core/src/futures/Future.h index 60eb804e96b85..210429c9ce287 100644 --- a/internal/core/src/futures/Future.h +++ b/internal/core/src/futures/Future.h @@ -212,11 +212,13 @@ class Future : public IFuture { ready->setValue(LeakyResult( static_cast(e.get_error_code()), e.what())); }) - .thenError(folly::tag_t{}, - [ready = ready_](const std::exception& e) { - ready->setValue(LeakyResult( - milvus::UnexpectedError, e.what())); - }); + .thenError( + folly::tag_t{}, + [ready = ready_](const std::exception& e) { + ready->setValue(LeakyResult( + milvus::UnexpectedError, + fmt::format("{} :{}", typeid(e).name(), e.what()))); + }); } private: diff --git a/tests/python_client/testcases/test_search.py b/tests/python_client/testcases/test_search.py index 09f6ecfca9b15..1a008acdd226c 100644 --- a/tests/python_client/testcases/test_search.py +++ b/tests/python_client/testcases/test_search.py @@ -1280,7 +1280,7 @@ def test_search_dynamic_compare_two_fields(self): expr, check_task=CheckTasks.err_res, check_items={"err_code": 65535, - "err_msg": "query failed: Operator::GetOutput failed"}) + "err_msg": "query failed: N6milvus21ExecOperatorExceptionE :Operator::GetOutput failed"}) class TestCollectionSearch(TestcaseBase): From 363d7f31efac985b0124b51063b4286a624578f7 Mon Sep 17 00:00:00 2001 From: Gao Date: Wed, 25 Dec 2024 19:02:56 +0800 Subject: [PATCH 17/69] fix: report error when hints not supported (#38717) issue: #38705 --------- Signed-off-by: chasingegg --- internal/core/src/query/PlanProto.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/internal/core/src/query/PlanProto.cpp b/internal/core/src/query/PlanProto.cpp index 72597258b06c3..aa1892ef230e9 100644 --- a/internal/core/src/query/PlanProto.cpp +++ b/internal/core/src/query/PlanProto.cpp @@ -55,12 +55,26 @@ ProtoParser::PlanNodeFromProto(const planpb::PlanNode& plan_node_proto) { query_info_proto.materialized_view_involved(); // currently, iterative filter does not support range search if (!search_info.search_params_.contains(RADIUS)) { - search_info.iterative_filter_execution = - (query_info_proto.hints() == ITERATIVE_FILTER); + if (query_info_proto.hints() != "") { + if (query_info_proto.hints() == ITERATIVE_FILTER) { + search_info.iterative_filter_execution = true; + } else { + // check if hints is valid + PanicInfo(ConfigInvalid, + "hints: {} not supported", + query_info_proto.hints()); + } + } if (!search_info.iterative_filter_execution && search_info.search_params_.contains(HINTS)) { - search_info.iterative_filter_execution = - (search_info.search_params_[HINTS] == ITERATIVE_FILTER); + if (search_info.search_params_[HINTS] == ITERATIVE_FILTER) { + search_info.iterative_filter_execution = true; + } else { + // check if hints is valid + PanicInfo(ConfigInvalid, + "hints: {} not supported", + search_info.search_params_[HINTS]); + } } } From bc15ad24f232384154fa83e4f75788180279e282 Mon Sep 17 00:00:00 2001 From: aoiasd <45024769+aoiasd@users.noreply.github.com> Date: Wed, 25 Dec 2024 19:06:51 +0800 Subject: [PATCH 18/69] fix: sealed segment get empty index params when brute force search for bm25 (#38707) relate: https://github.com/milvus-io/milvus/issues/38236 Signed-off-by: aoiasd --- internal/core/src/segcore/ChunkedSegmentSealedImpl.cpp | 2 +- internal/core/src/segcore/SegmentSealedImpl.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/core/src/segcore/ChunkedSegmentSealedImpl.cpp b/internal/core/src/segcore/ChunkedSegmentSealedImpl.cpp index 1f6a1aa1e409e..b31fec905ea4b 100644 --- a/internal/core/src/segcore/ChunkedSegmentSealedImpl.cpp +++ b/internal/core/src/segcore/ChunkedSegmentSealedImpl.cpp @@ -896,7 +896,7 @@ ChunkedSegmentSealedImpl::vector_search(SearchInfo& search_info, // get index params for bm25 brute force std::map index_info; if (search_info.metric_type_ == knowhere::metric::BM25) { - auto index_info = + index_info = col_index_meta_->GetFieldIndexMeta(field_id).GetIndexParams(); } diff --git a/internal/core/src/segcore/SegmentSealedImpl.cpp b/internal/core/src/segcore/SegmentSealedImpl.cpp index cc17593b77141..ee8652da06d50 100644 --- a/internal/core/src/segcore/SegmentSealedImpl.cpp +++ b/internal/core/src/segcore/SegmentSealedImpl.cpp @@ -942,7 +942,7 @@ SegmentSealedImpl::vector_search(SearchInfo& search_info, // get index params for bm25 brute force std::map index_info; if (search_info.metric_type_ == knowhere::metric::BM25) { - auto index_info = + index_info = col_index_meta_->GetFieldIndexMeta(field_id).GetIndexParams(); } From f49d618382984af9a1e3c6752d83836658983cec Mon Sep 17 00:00:00 2001 From: wei liu Date: Wed, 25 Dec 2024 19:30:48 +0800 Subject: [PATCH 19/69] fix: Querycoord will trigger unexpected balance task after restart (#38630) issue: #38606 --------- Signed-off-by: Wei Liu --- internal/proto/query_coord.proto | 1 + .../querycoordv2/balance/mock_balancer.go | 32 ++++++------- .../querycoordv2/checkers/balance_checker.go | 11 +++++ .../checkers/balance_checker_test.go | 32 ++++++------- .../querycoordv2/meta/mock_target_manager.go | 47 +++++++++++++++++++ internal/querycoordv2/meta/target.go | 33 ++++++++++--- internal/querycoordv2/meta/target_manager.go | 12 +++++ .../querycoordv2/meta/target_manager_test.go | 6 +++ 8 files changed, 134 insertions(+), 40 deletions(-) diff --git a/internal/proto/query_coord.proto b/internal/proto/query_coord.proto index f05a07dc7b028..d469841c525ff 100644 --- a/internal/proto/query_coord.proto +++ b/internal/proto/query_coord.proto @@ -831,6 +831,7 @@ message CheckerInfo { message SegmentTarget { int64 ID = 1; data.SegmentLevel level = 2; + int64 num_of_rows = 3; } message PartitionTarget { diff --git a/internal/querycoordv2/balance/mock_balancer.go b/internal/querycoordv2/balance/mock_balancer.go index 5935b3c36c15a..e7f082f66745a 100644 --- a/internal/querycoordv2/balance/mock_balancer.go +++ b/internal/querycoordv2/balance/mock_balancer.go @@ -22,9 +22,9 @@ func (_m *MockBalancer) EXPECT() *MockBalancer_Expecter { return &MockBalancer_Expecter{mock: &_m.Mock} } -// AssignChannel provides a mock function with given fields: ctx, collectionID, channels, nodes, manualBalance -func (_m *MockBalancer) AssignChannel(ctx context.Context, collectionID int64, channels []*meta.DmChannel, nodes []int64, manualBalance bool) []ChannelAssignPlan { - ret := _m.Called(ctx, collectionID, channels, nodes, manualBalance) +// AssignChannel provides a mock function with given fields: ctx, collectionID, channels, nodes, forceAssign +func (_m *MockBalancer) AssignChannel(ctx context.Context, collectionID int64, channels []*meta.DmChannel, nodes []int64, forceAssign bool) []ChannelAssignPlan { + ret := _m.Called(ctx, collectionID, channels, nodes, forceAssign) if len(ret) == 0 { panic("no return value specified for AssignChannel") @@ -32,7 +32,7 @@ func (_m *MockBalancer) AssignChannel(ctx context.Context, collectionID int64, c var r0 []ChannelAssignPlan if rf, ok := ret.Get(0).(func(context.Context, int64, []*meta.DmChannel, []int64, bool) []ChannelAssignPlan); ok { - r0 = rf(ctx, collectionID, channels, nodes, manualBalance) + r0 = rf(ctx, collectionID, channels, nodes, forceAssign) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]ChannelAssignPlan) @@ -52,12 +52,12 @@ type MockBalancer_AssignChannel_Call struct { // - collectionID int64 // - channels []*meta.DmChannel // - nodes []int64 -// - manualBalance bool -func (_e *MockBalancer_Expecter) AssignChannel(ctx interface{}, collectionID interface{}, channels interface{}, nodes interface{}, manualBalance interface{}) *MockBalancer_AssignChannel_Call { - return &MockBalancer_AssignChannel_Call{Call: _e.mock.On("AssignChannel", ctx, collectionID, channels, nodes, manualBalance)} +// - forceAssign bool +func (_e *MockBalancer_Expecter) AssignChannel(ctx interface{}, collectionID interface{}, channels interface{}, nodes interface{}, forceAssign interface{}) *MockBalancer_AssignChannel_Call { + return &MockBalancer_AssignChannel_Call{Call: _e.mock.On("AssignChannel", ctx, collectionID, channels, nodes, forceAssign)} } -func (_c *MockBalancer_AssignChannel_Call) Run(run func(ctx context.Context, collectionID int64, channels []*meta.DmChannel, nodes []int64, manualBalance bool)) *MockBalancer_AssignChannel_Call { +func (_c *MockBalancer_AssignChannel_Call) Run(run func(ctx context.Context, collectionID int64, channels []*meta.DmChannel, nodes []int64, forceAssign bool)) *MockBalancer_AssignChannel_Call { _c.Call.Run(func(args mock.Arguments) { run(args[0].(context.Context), args[1].(int64), args[2].([]*meta.DmChannel), args[3].([]int64), args[4].(bool)) }) @@ -74,9 +74,9 @@ func (_c *MockBalancer_AssignChannel_Call) RunAndReturn(run func(context.Context return _c } -// AssignSegment provides a mock function with given fields: ctx, collectionID, segments, nodes, manualBalance -func (_m *MockBalancer) AssignSegment(ctx context.Context, collectionID int64, segments []*meta.Segment, nodes []int64, manualBalance bool) []SegmentAssignPlan { - ret := _m.Called(ctx, collectionID, segments, nodes, manualBalance) +// AssignSegment provides a mock function with given fields: ctx, collectionID, segments, nodes, forceAssign +func (_m *MockBalancer) AssignSegment(ctx context.Context, collectionID int64, segments []*meta.Segment, nodes []int64, forceAssign bool) []SegmentAssignPlan { + ret := _m.Called(ctx, collectionID, segments, nodes, forceAssign) if len(ret) == 0 { panic("no return value specified for AssignSegment") @@ -84,7 +84,7 @@ func (_m *MockBalancer) AssignSegment(ctx context.Context, collectionID int64, s var r0 []SegmentAssignPlan if rf, ok := ret.Get(0).(func(context.Context, int64, []*meta.Segment, []int64, bool) []SegmentAssignPlan); ok { - r0 = rf(ctx, collectionID, segments, nodes, manualBalance) + r0 = rf(ctx, collectionID, segments, nodes, forceAssign) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]SegmentAssignPlan) @@ -104,12 +104,12 @@ type MockBalancer_AssignSegment_Call struct { // - collectionID int64 // - segments []*meta.Segment // - nodes []int64 -// - manualBalance bool -func (_e *MockBalancer_Expecter) AssignSegment(ctx interface{}, collectionID interface{}, segments interface{}, nodes interface{}, manualBalance interface{}) *MockBalancer_AssignSegment_Call { - return &MockBalancer_AssignSegment_Call{Call: _e.mock.On("AssignSegment", ctx, collectionID, segments, nodes, manualBalance)} +// - forceAssign bool +func (_e *MockBalancer_Expecter) AssignSegment(ctx interface{}, collectionID interface{}, segments interface{}, nodes interface{}, forceAssign interface{}) *MockBalancer_AssignSegment_Call { + return &MockBalancer_AssignSegment_Call{Call: _e.mock.On("AssignSegment", ctx, collectionID, segments, nodes, forceAssign)} } -func (_c *MockBalancer_AssignSegment_Call) Run(run func(ctx context.Context, collectionID int64, segments []*meta.Segment, nodes []int64, manualBalance bool)) *MockBalancer_AssignSegment_Call { +func (_c *MockBalancer_AssignSegment_Call) Run(run func(ctx context.Context, collectionID int64, segments []*meta.Segment, nodes []int64, forceAssign bool)) *MockBalancer_AssignSegment_Call { _c.Call.Run(func(args mock.Arguments) { run(args[0].(context.Context), args[1].(int64), args[2].([]*meta.Segment), args[3].([]int64), args[4].(bool)) }) diff --git a/internal/querycoordv2/checkers/balance_checker.go b/internal/querycoordv2/checkers/balance_checker.go index fb7fa0447f40c..23f7aadb45f46 100644 --- a/internal/querycoordv2/checkers/balance_checker.go +++ b/internal/querycoordv2/checkers/balance_checker.go @@ -119,6 +119,17 @@ func (b *BalanceChecker) replicasToBalance(ctx context.Context) []int64 { return nil } + // Before performing balancing, check the CurrentTarget/LeaderView/Distribution for all collections. + // If any collection has unready info, skip the balance operation to avoid inconsistencies. + notReadyCollections := lo.Filter(loadedCollections, func(cid int64, _ int) bool { + // todo: should also check distribution and leader view in the future + return !b.targetMgr.IsCurrentTargetReady(ctx, cid) + }) + if len(notReadyCollections) > 0 { + log.RatedInfo(10, "skip normal balance, cause collection not ready for balance", zap.Int64s("collectionIDs", notReadyCollections)) + return nil + } + // iterator one normal collection in one round normalReplicasToBalance := make([]int64, 0) hasUnbalancedCollection := false diff --git a/internal/querycoordv2/checkers/balance_checker_test.go b/internal/querycoordv2/checkers/balance_checker_test.go index 2bc24627f8721..45e6eb3b9e8af 100644 --- a/internal/querycoordv2/checkers/balance_checker_test.go +++ b/internal/querycoordv2/checkers/balance_checker_test.go @@ -324,20 +324,8 @@ func (suite *BalanceCheckerTestSuite) TestTargetNotReady() { suite.checker.meta.ResourceManager.HandleNodeUp(ctx, nodeID1) suite.checker.meta.ResourceManager.HandleNodeUp(ctx, nodeID2) - segments := []*datapb.SegmentInfo{ - { - ID: 1, - PartitionID: 1, - InsertChannel: "test-insert-channel", - }, - } - channels := []*datapb.VchannelInfo{ - { - CollectionID: 1, - ChannelName: "test-insert-channel", - }, - } - suite.broker.EXPECT().GetRecoveryInfoV2(mock.Anything, mock.Anything).Return(channels, segments, nil) + mockTarget := meta.NewMockTargetManager(suite.T()) + suite.checker.targetMgr = mockTarget // set collections meta cid1, replicaID1, partitionID1 := 1, 1, 1 @@ -347,8 +335,6 @@ func (suite *BalanceCheckerTestSuite) TestTargetNotReady() { partition1 := utils.CreateTestPartition(int64(cid1), int64(partitionID1)) suite.checker.meta.CollectionManager.PutCollection(ctx, collection1, partition1) suite.checker.meta.ReplicaManager.Put(ctx, replica1) - suite.targetMgr.UpdateCollectionNextTarget(ctx, int64(cid1)) - suite.targetMgr.UpdateCollectionCurrentTarget(ctx, int64(cid1)) cid2, replicaID2, partitionID2 := 2, 2, 2 collection2 := utils.CreateTestCollection(int64(cid2), int32(replicaID2)) @@ -358,6 +344,17 @@ func (suite *BalanceCheckerTestSuite) TestTargetNotReady() { suite.checker.meta.CollectionManager.PutCollection(ctx, collection2, partition2) suite.checker.meta.ReplicaManager.Put(ctx, replica2) + // test normal balance when one collection has unready target + mockTarget.EXPECT().IsNextTargetExist(mock.Anything, mock.Anything).Return(true) + mockTarget.EXPECT().IsCurrentTargetReady(mock.Anything, mock.Anything).Return(false) + replicasToBalance := suite.checker.replicasToBalance(ctx) + suite.Len(replicasToBalance, 0) + + // test stopping balance with target not ready + mockTarget.ExpectedCalls = nil + mockTarget.EXPECT().IsNextTargetExist(mock.Anything, mock.Anything).Return(false) + mockTarget.EXPECT().IsCurrentTargetExist(mock.Anything, int64(cid1), mock.Anything).Return(true) + mockTarget.EXPECT().IsCurrentTargetExist(mock.Anything, int64(cid2), mock.Anything).Return(false) mr1 := replica1.CopyForWrite() mr1.AddRONode(1) suite.checker.meta.ReplicaManager.Put(ctx, mr1.IntoReplica()) @@ -366,9 +363,8 @@ func (suite *BalanceCheckerTestSuite) TestTargetNotReady() { mr2.AddRONode(1) suite.checker.meta.ReplicaManager.Put(ctx, mr2.IntoReplica()) - // test stopping balance idsToBalance := []int64{int64(replicaID1)} - replicasToBalance := suite.checker.replicasToBalance(ctx) + replicasToBalance = suite.checker.replicasToBalance(ctx) suite.ElementsMatch(idsToBalance, replicasToBalance) } diff --git a/internal/querycoordv2/meta/mock_target_manager.go b/internal/querycoordv2/meta/mock_target_manager.go index cbf588960e166..6c69dff9f24fb 100644 --- a/internal/querycoordv2/meta/mock_target_manager.go +++ b/internal/querycoordv2/meta/mock_target_manager.go @@ -733,6 +733,53 @@ func (_c *MockTargetManager_IsCurrentTargetExist_Call) RunAndReturn(run func(con return _c } +// IsCurrentTargetReady provides a mock function with given fields: ctx, collectionID +func (_m *MockTargetManager) IsCurrentTargetReady(ctx context.Context, collectionID int64) bool { + ret := _m.Called(ctx, collectionID) + + if len(ret) == 0 { + panic("no return value specified for IsCurrentTargetReady") + } + + var r0 bool + if rf, ok := ret.Get(0).(func(context.Context, int64) bool); ok { + r0 = rf(ctx, collectionID) + } else { + r0 = ret.Get(0).(bool) + } + + return r0 +} + +// MockTargetManager_IsCurrentTargetReady_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'IsCurrentTargetReady' +type MockTargetManager_IsCurrentTargetReady_Call struct { + *mock.Call +} + +// IsCurrentTargetReady is a helper method to define mock.On call +// - ctx context.Context +// - collectionID int64 +func (_e *MockTargetManager_Expecter) IsCurrentTargetReady(ctx interface{}, collectionID interface{}) *MockTargetManager_IsCurrentTargetReady_Call { + return &MockTargetManager_IsCurrentTargetReady_Call{Call: _e.mock.On("IsCurrentTargetReady", ctx, collectionID)} +} + +func (_c *MockTargetManager_IsCurrentTargetReady_Call) Run(run func(ctx context.Context, collectionID int64)) *MockTargetManager_IsCurrentTargetReady_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(int64)) + }) + return _c +} + +func (_c *MockTargetManager_IsCurrentTargetReady_Call) Return(_a0 bool) *MockTargetManager_IsCurrentTargetReady_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockTargetManager_IsCurrentTargetReady_Call) RunAndReturn(run func(context.Context, int64) bool) *MockTargetManager_IsCurrentTargetReady_Call { + _c.Call.Return(run) + return _c +} + // IsNextTargetExist provides a mock function with given fields: ctx, collectionID func (_m *MockTargetManager) IsNextTargetExist(ctx context.Context, collectionID int64) bool { ret := _m.Called(ctx, collectionID) diff --git a/internal/querycoordv2/meta/target.go b/internal/querycoordv2/meta/target.go index 3099d2ab9f8ac..4795eade4cfae 100644 --- a/internal/querycoordv2/meta/target.go +++ b/internal/querycoordv2/meta/target.go @@ -20,10 +20,12 @@ import ( "time" "github.com/samber/lo" + "go.uber.org/zap" "github.com/milvus-io/milvus/internal/proto/datapb" "github.com/milvus-io/milvus/internal/proto/querypb" "github.com/milvus-io/milvus/internal/util/metrics" + "github.com/milvus-io/milvus/pkg/log" "github.com/milvus-io/milvus/pkg/util/metricsinfo" "github.com/milvus-io/milvus/pkg/util/typeutil" ) @@ -34,6 +36,9 @@ type CollectionTarget struct { dmChannels map[string]*DmChannel partitions typeutil.Set[int64] // stores target partitions info version int64 + + // record target status, if target has been save before milvus v2.4.19, then the target will lack of segment info. + lackSegmentInfo bool } func NewCollectionTarget(segments map[int64]*datapb.SegmentInfo, dmChannels map[string]*DmChannel, partitionIDs []int64) *CollectionTarget { @@ -50,15 +55,20 @@ func FromPbCollectionTarget(target *querypb.CollectionTarget) *CollectionTarget dmChannels := make(map[string]*DmChannel) var partitions []int64 + lackSegmentInfo := false for _, t := range target.GetChannelTargets() { for _, partition := range t.GetPartitionTargets() { for _, segment := range partition.GetSegments() { + if segment.GetNumOfRows() <= 0 { + lackSegmentInfo = true + } segments[segment.GetID()] = &datapb.SegmentInfo{ ID: segment.GetID(), Level: segment.GetLevel(), CollectionID: target.GetCollectionID(), PartitionID: partition.GetPartitionID(), InsertChannel: t.GetChannelName(), + NumOfRows: segment.GetNumOfRows(), } } partitions = append(partitions, partition.GetPartitionID()) @@ -75,11 +85,16 @@ func FromPbCollectionTarget(target *querypb.CollectionTarget) *CollectionTarget } } + if lackSegmentInfo { + log.Info("target has lack of segment info", zap.Int64("collectionID", target.GetCollectionID())) + } + return &CollectionTarget{ - segments: segments, - dmChannels: dmChannels, - partitions: typeutil.NewSet(partitions...), - version: target.GetVersion(), + segments: segments, + dmChannels: dmChannels, + partitions: typeutil.NewSet(partitions...), + version: target.GetVersion(), + lackSegmentInfo: lackSegmentInfo, } } @@ -113,8 +128,9 @@ func (p *CollectionTarget) toPbMsg() *querypb.CollectionTarget { } partitionTarget.Segments = append(partitionTarget.Segments, &querypb.SegmentTarget{ - ID: info.GetID(), - Level: info.GetLevel(), + ID: info.GetID(), + Level: info.GetLevel(), + NumOfRows: info.GetNumOfRows(), }) } } @@ -159,6 +175,11 @@ func (p *CollectionTarget) IsEmpty() bool { return len(p.dmChannels)+len(p.segments) == 0 } +// if target is ready, it should have all segment info +func (p *CollectionTarget) Ready() bool { + return !p.lackSegmentInfo +} + type target struct { // just maintain target at collection level collectionTargetMap map[int64]*CollectionTarget diff --git a/internal/querycoordv2/meta/target_manager.go b/internal/querycoordv2/meta/target_manager.go index 5b7c0f6567281..10fe0b787b55d 100644 --- a/internal/querycoordv2/meta/target_manager.go +++ b/internal/querycoordv2/meta/target_manager.go @@ -72,6 +72,7 @@ type TargetManagerInterface interface { CanSegmentBeMoved(ctx context.Context, collectionID, segmentID int64) bool GetTargetJSON(ctx context.Context, scope TargetScope) string GetPartitions(ctx context.Context, collectionID int64, scope TargetScope) ([]int64, error) + IsCurrentTargetReady(ctx context.Context, collectionID int64) bool } type TargetManager struct { @@ -673,3 +674,14 @@ func (mgr *TargetManager) getTarget(scope TargetScope) *target { return mgr.next } + +func (mgr *TargetManager) IsCurrentTargetReady(ctx context.Context, collectionID int64) bool { + mgr.rwMutex.RLock() + defer mgr.rwMutex.RUnlock() + target, ok := mgr.current.collectionTargetMap[collectionID] + if !ok { + return false + } + + return target.Ready() +} diff --git a/internal/querycoordv2/meta/target_manager_test.go b/internal/querycoordv2/meta/target_manager_test.go index c78b7207a8213..34bf64136a2e2 100644 --- a/internal/querycoordv2/meta/target_manager_test.go +++ b/internal/querycoordv2/meta/target_manager_test.go @@ -584,11 +584,13 @@ func (suite *TargetManagerSuite) TestRecover() { ID: 11, PartitionID: 1, InsertChannel: "channel-1", + NumOfRows: 100, }, { ID: 12, PartitionID: 1, InsertChannel: "channel-2", + NumOfRows: 100, }, } @@ -609,6 +611,10 @@ func (suite *TargetManagerSuite) TestRecover() { suite.Len(target.GetAllDmChannelNames(), 2) suite.Len(target.GetAllSegmentIDs(), 2) suite.Equal(target.GetTargetVersion(), version) + for _, segment := range target.GetAllSegments() { + suite.Equal(int64(100), segment.GetNumOfRows()) + } + suite.True(target.Ready()) // after recover, target info should be cleaned up targets, err := suite.catalog.GetCollectionTargets(ctx) From 85f462be1ac7b2a952a01ea5ac8781725e6e390b Mon Sep 17 00:00:00 2001 From: Patrick Weizhi Xu Date: Thu, 26 Dec 2024 10:32:49 +0800 Subject: [PATCH 20/69] enhance: speed up search iterator stage 1 (#37947) issue: #37548 Signed-off-by: Patrick Weizhi Xu --- go.mod | 2 +- internal/core/src/common/QueryInfo.h | 7 + internal/core/src/index/Utils.cpp | 34 + internal/core/src/index/Utils.h | 8 + internal/core/src/index/VectorDiskIndex.cpp | 27 +- internal/core/src/index/VectorMemIndex.cpp | 12 +- .../core/src/query/CachedSearchIterator.cpp | 362 ++++++++ .../core/src/query/CachedSearchIterator.h | 182 ++++ internal/core/src/query/PlanProto.cpp | 14 + internal/core/src/query/SearchBruteForce.cpp | 65 +- internal/core/src/query/SearchBruteForce.h | 22 +- internal/core/src/query/SearchOnGrowing.cpp | 27 +- internal/core/src/query/SearchOnIndex.cpp | 24 +- internal/core/src/query/SearchOnSealed.cpp | 55 +- internal/core/unittest/CMakeLists.txt | 1 + internal/core/unittest/test_bf_sparse.cpp | 13 +- .../unittest/test_cached_search_iterator.cpp | 797 ++++++++++++++++++ internal/proto/plan.proto | 7 + internal/proxy/proxy.go | 8 + internal/proxy/search_util.go | 98 ++- internal/proxy/task.go | 5 + internal/proxy/task_search.go | 45 +- internal/proxy/task_search_test.go | 272 +++++- 23 files changed, 1970 insertions(+), 117 deletions(-) create mode 100644 internal/core/src/query/CachedSearchIterator.cpp create mode 100644 internal/core/src/query/CachedSearchIterator.h create mode 100644 internal/core/unittest/test_cached_search_iterator.cpp diff --git a/go.mod b/go.mod index 7f6684857d177..5c8ff76d9e3cc 100644 --- a/go.mod +++ b/go.mod @@ -64,6 +64,7 @@ require ( github.com/cenkalti/backoff/v4 v4.2.1 github.com/cockroachdb/redact v1.1.3 github.com/goccy/go-json v0.10.3 + github.com/google/uuid v1.6.0 github.com/greatroar/blobloom v0.0.0-00010101000000-000000000000 github.com/hashicorp/golang-lru/v2 v2.0.7 github.com/jolestar/go-commons-pool/v2 v2.1.2 @@ -144,7 +145,6 @@ require ( github.com/golang/snappy v0.0.4 // indirect github.com/google/flatbuffers v2.0.8+incompatible // indirect github.com/google/s2a-go v0.1.7 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect github.com/googleapis/gax-go/v2 v2.12.5 // indirect github.com/gorilla/websocket v1.4.2 // indirect diff --git a/internal/core/src/common/QueryInfo.h b/internal/core/src/common/QueryInfo.h index 66f4f17664cbd..ad93f61fb0950 100644 --- a/internal/core/src/common/QueryInfo.h +++ b/internal/core/src/common/QueryInfo.h @@ -24,6 +24,12 @@ namespace milvus { +struct SearchIteratorV2Info { + std::string token = ""; + uint32_t batch_size = 0; + std::optional last_bound = std::nullopt; +}; + struct SearchInfo { int64_t topk_{0}; int64_t group_size_{1}; @@ -36,6 +42,7 @@ struct SearchInfo { tracer::TraceContext trace_ctx_; bool materialized_view_involved = false; bool iterative_filter_execution = false; + std::optional iterator_v2_info_ = std::nullopt; }; using SearchInfoPtr = std::shared_ptr; diff --git a/internal/core/src/index/Utils.cpp b/internal/core/src/index/Utils.cpp index 8ed904b52f8e4..c04271bd01662 100644 --- a/internal/core/src/index/Utils.cpp +++ b/internal/core/src/index/Utils.cpp @@ -362,4 +362,38 @@ ReadDataFromFD(int fd, void* buf, size_t size, size_t chunk_size) { } } +bool +CheckAndUpdateKnowhereRangeSearchParam(const SearchInfo& search_info, + const int64_t topk, + const MetricType& metric_type, + knowhere::Json& search_config) { + const auto radius = + index::GetValueFromConfig(search_info.search_params_, RADIUS); + if (!radius.has_value()) { + return false; + } + + search_config[RADIUS] = radius.value(); + // `range_search_k` is only used as one of the conditions for iterator early termination. + // not gurantee to return exactly `range_search_k` results, which may be more or less. + // set it to -1 will return all results in the range. + search_config[knowhere::meta::RANGE_SEARCH_K] = topk; + + const auto range_filter = + GetValueFromConfig(search_info.search_params_, RANGE_FILTER); + if (range_filter.has_value()) { + search_config[RANGE_FILTER] = range_filter.value(); + CheckRangeSearchParam( + search_config[RADIUS], search_config[RANGE_FILTER], metric_type); + } + + const auto page_retain_order = + GetValueFromConfig(search_info.search_params_, PAGE_RETAIN_ORDER); + if (page_retain_order.has_value()) { + search_config[knowhere::meta::RETAIN_ITERATOR_ORDER] = + page_retain_order.value(); + } + return true; +} + } // namespace milvus::index diff --git a/internal/core/src/index/Utils.h b/internal/core/src/index/Utils.h index 1c5f175e26cb5..862562687738c 100644 --- a/internal/core/src/index/Utils.h +++ b/internal/core/src/index/Utils.h @@ -30,6 +30,8 @@ #include "common/Types.h" #include "common/FieldData.h" +#include "common/QueryInfo.h" +#include "common/RangeSearchHelper.h" #include "index/IndexInfo.h" #include "storage/Types.h" @@ -147,4 +149,10 @@ AssembleIndexDatas(std::map& index_datas, void ReadDataFromFD(int fd, void* buf, size_t size, size_t chunk_size = 0x7ffff000); +bool +CheckAndUpdateKnowhereRangeSearchParam(const SearchInfo& search_info, + const int64_t topk, + const MetricType& metric_type, + knowhere::Json& search_config); + } // namespace milvus::index diff --git a/internal/core/src/index/VectorDiskIndex.cpp b/internal/core/src/index/VectorDiskIndex.cpp index e6360eb199159..e4be33267c153 100644 --- a/internal/core/src/index/VectorDiskIndex.cpp +++ b/internal/core/src/index/VectorDiskIndex.cpp @@ -266,32 +266,9 @@ VectorDiskAnnIndex::Query(const DatasetPtr dataset, search_config[DISK_ANN_PREFIX_PATH] = local_index_path_prefix; auto final = [&] { - auto radius = - GetValueFromConfig(search_info.search_params_, RADIUS); - if (radius.has_value()) { - search_config[RADIUS] = radius.value(); - // `range_search_k` is only used as one of the conditions for iterator early termination. - // not gurantee to return exactly `range_search_k` results, which may be more or less. - // set it to -1 will return all results in the range. - search_config[knowhere::meta::RANGE_SEARCH_K] = topk; - auto range_filter = GetValueFromConfig( - search_info.search_params_, RANGE_FILTER); - if (range_filter.has_value()) { - search_config[RANGE_FILTER] = range_filter.value(); - CheckRangeSearchParam(search_config[RADIUS], - search_config[RANGE_FILTER], - GetMetricType()); - } - - auto page_retain_order = GetValueFromConfig( - search_info.search_params_, PAGE_RETAIN_ORDER); - if (page_retain_order.has_value()) { - search_config[knowhere::meta::RETAIN_ITERATOR_ORDER] = - page_retain_order.value(); - } - + if (CheckAndUpdateKnowhereRangeSearchParam( + search_info, topk, GetMetricType(), search_config)) { auto res = index_.RangeSearch(dataset, search_config, bitset); - if (!res.has_value()) { PanicInfo(ErrorCode::UnexpectedError, fmt::format("failed to range search: {}: {}", diff --git a/internal/core/src/index/VectorMemIndex.cpp b/internal/core/src/index/VectorMemIndex.cpp index c471fb02a1325..1e4ff425d6f4a 100644 --- a/internal/core/src/index/VectorMemIndex.cpp +++ b/internal/core/src/index/VectorMemIndex.cpp @@ -380,16 +380,8 @@ VectorMemIndex::Query(const DatasetPtr dataset, // TODO :: check dim of search data auto final = [&] { auto index_type = GetIndexType(); - if (CheckKeyInConfig(search_conf, RADIUS)) { - if (CheckKeyInConfig(search_conf, RANGE_FILTER)) { - CheckRangeSearchParam(search_conf[RADIUS], - search_conf[RANGE_FILTER], - GetMetricType()); - } - // `range_search_k` is only used as one of the conditions for iterator early termination. - // not gurantee to return exactly `range_search_k` results, which may be more or less. - // set it to -1 will return all results in the range. - search_conf[knowhere::meta::RANGE_SEARCH_K] = topk; + if (CheckAndUpdateKnowhereRangeSearchParam( + search_info, topk, GetMetricType(), search_conf)) { milvus::tracer::AddEvent("start_knowhere_index_range_search"); auto res = index_.RangeSearch(dataset, search_conf, bitset); milvus::tracer::AddEvent("finish_knowhere_index_range_search"); diff --git a/internal/core/src/query/CachedSearchIterator.cpp b/internal/core/src/query/CachedSearchIterator.cpp new file mode 100644 index 0000000000000..e39571442e5ef --- /dev/null +++ b/internal/core/src/query/CachedSearchIterator.cpp @@ -0,0 +1,362 @@ +// Copyright (C) 2019-2024 Zilliz. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software distributed under the License +// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express +// or implied. See the License for the specific language governing permissions and limitations under the License + +#include "query/CachedSearchIterator.h" +#include "query/SearchBruteForce.h" +#include + +namespace milvus::query { + +CachedSearchIterator::CachedSearchIterator( + const milvus::index::VectorIndex& index, + const knowhere::DataSetPtr& query_ds, + const SearchInfo& search_info, + const BitsetView& bitset) { + if (query_ds == nullptr) { + PanicInfo(ErrorCode::UnexpectedError, + "Query dataset is nullptr, cannot initialize iterator"); + } + nq_ = query_ds->GetRows(); + Init(search_info); + + auto search_json = index.PrepareSearchParams(search_info); + index::CheckAndUpdateKnowhereRangeSearchParam( + search_info, batch_size_, index.GetMetricType(), search_json); + + auto expected_iterators = + index.VectorIterators(query_ds, search_json, bitset); + if (expected_iterators.has_value()) { + iterators_ = std::move(expected_iterators.value()); + } else { + PanicInfo(ErrorCode::UnexpectedError, + "Failed to create iterators from index"); + } +} + +CachedSearchIterator::CachedSearchIterator( + const dataset::SearchDataset& query_ds, + const dataset::RawDataset& raw_ds, + const SearchInfo& search_info, + const std::map& index_info, + const BitsetView& bitset, + const milvus::DataType& data_type) { + nq_ = query_ds.num_queries; + Init(search_info); + + auto expected_iterators = GetBruteForceSearchIterators( + query_ds, raw_ds, search_info, index_info, bitset, data_type); + if (expected_iterators.has_value()) { + iterators_ = std::move(expected_iterators.value()); + } else { + PanicInfo(ErrorCode::UnexpectedError, + "Failed to create iterators from index"); + } +} + +void +CachedSearchIterator::InitializeChunkedIterators( + const dataset::SearchDataset& query_ds, + const SearchInfo& search_info, + const std::map& index_info, + const BitsetView& bitset, + const milvus::DataType& data_type, + const GetChunkDataFunc& get_chunk_data) { + int64_t offset = 0; + chunked_heaps_.resize(nq_); + for (int64_t chunk_id = 0; chunk_id < num_chunks_; ++chunk_id) { + auto [chunk_data, chunk_size] = get_chunk_data(chunk_id); + auto sub_data = query::dataset::RawDataset{ + offset, query_ds.dim, chunk_size, chunk_data}; + + auto expected_iterators = GetBruteForceSearchIterators( + query_ds, sub_data, search_info, index_info, bitset, data_type); + if (expected_iterators.has_value()) { + auto& chunk_iterators = expected_iterators.value(); + iterators_.insert(iterators_.end(), + std::make_move_iterator(chunk_iterators.begin()), + std::make_move_iterator(chunk_iterators.end())); + } else { + PanicInfo(ErrorCode::UnexpectedError, + "Failed to create iterators from index"); + } + offset += chunk_size; + } +} + +CachedSearchIterator::CachedSearchIterator( + const dataset::SearchDataset& query_ds, + const segcore::VectorBase* vec_data, + const int64_t row_count, + const SearchInfo& search_info, + const std::map& index_info, + const BitsetView& bitset, + const milvus::DataType& data_type) { + if (vec_data == nullptr) { + PanicInfo(ErrorCode::UnexpectedError, + "Vector data is nullptr, cannot initialize iterator"); + } + + if (row_count <= 0) { + PanicInfo(ErrorCode::UnexpectedError, + "Number of rows is 0, cannot initialize iterator"); + } + + const int64_t vec_size_per_chunk = vec_data->get_size_per_chunk(); + num_chunks_ = upper_div(row_count, vec_size_per_chunk); + nq_ = query_ds.num_queries; + Init(search_info); + + iterators_.reserve(nq_ * num_chunks_); + InitializeChunkedIterators( + query_ds, + search_info, + index_info, + bitset, + data_type, + [&vec_data, vec_size_per_chunk, row_count]( + int64_t chunk_id) -> std::pair { + const auto chunk_data = vec_data->get_chunk_data(chunk_id); + int64_t chunk_size = std::min( + vec_size_per_chunk, row_count - chunk_id * vec_size_per_chunk); + return {chunk_data, chunk_size}; + }); +} + +CachedSearchIterator::CachedSearchIterator( + const std::shared_ptr& column, + const dataset::SearchDataset& query_ds, + const SearchInfo& search_info, + const std::map& index_info, + const BitsetView& bitset, + const milvus::DataType& data_type) { + if (column == nullptr) { + PanicInfo(ErrorCode::UnexpectedError, + "Column is nullptr, cannot initialize iterator"); + } + + num_chunks_ = column->num_chunks(); + nq_ = query_ds.num_queries; + Init(search_info); + + iterators_.reserve(nq_ * num_chunks_); + InitializeChunkedIterators( + query_ds, + search_info, + index_info, + bitset, + data_type, + [&column](int64_t chunk_id) { + const char* chunk_data = column->Data(chunk_id); + int64_t chunk_size = column->chunk_row_nums(chunk_id); + return std::make_pair(static_cast(chunk_data), + chunk_size); + }); +} + +void +CachedSearchIterator::NextBatch(const SearchInfo& search_info, + SearchResult& search_result) { + if (iterators_.empty()) { + return; + } + + if (iterators_.size() != nq_ * num_chunks_) { + PanicInfo(ErrorCode::UnexpectedError, + "Iterator size mismatch, expect %d, but got %d", + nq_ * num_chunks_, + iterators_.size()); + } + + ValidateSearchInfo(search_info); + + search_result.total_nq_ = nq_; + search_result.unity_topK_ = batch_size_; + search_result.seg_offsets_.resize(nq_ * batch_size_); + search_result.distances_.resize(nq_ * batch_size_); + + for (size_t query_idx = 0; query_idx < nq_; ++query_idx) { + auto rst = GetBatchedNextResults(query_idx, search_info); + WriteSingleQuerySearchResult( + search_result, query_idx, rst, search_info.round_decimal_); + } +} + +void +CachedSearchIterator::ValidateSearchInfo(const SearchInfo& search_info) { + if (!search_info.iterator_v2_info_.has_value()) { + PanicInfo(ErrorCode::UnexpectedError, + "Iterator v2 SearchInfo is not set"); + } + + auto iterator_v2_info = search_info.iterator_v2_info_.value(); + if (iterator_v2_info.batch_size != batch_size_) { + PanicInfo(ErrorCode::UnexpectedError, + "Batch size mismatch, expect %d, but got %d", + batch_size_, + iterator_v2_info.batch_size); + } +} + +std::optional +CachedSearchIterator::GetNextValidResult( + const size_t iterator_idx, + const std::optional& last_bound, + const std::optional& radius, + const std::optional& range_filter) { + auto& iterator = iterators_[iterator_idx]; + while (iterator->HasNext()) { + auto result = ConvertIteratorResult(iterator->Next()); + if (IsValid(result, last_bound, radius, range_filter)) { + return result; + } + } + return std::nullopt; +} + +// TODO: Optimize this method +void +CachedSearchIterator::MergeChunksResults( + size_t query_idx, + const std::optional& last_bound, + const std::optional& radius, + const std::optional& range_filter, + std::vector& rst) { + auto& heap = chunked_heaps_[query_idx]; + + if (heap.empty()) { + for (size_t chunk_id = 0; chunk_id < num_chunks_; ++chunk_id) { + const size_t iterator_idx = query_idx + chunk_id * nq_; + if (auto next_result = GetNextValidResult( + iterator_idx, last_bound, radius, range_filter); + next_result.has_value()) { + heap.emplace(iterator_idx, next_result.value()); + } + } + } + + while (!heap.empty() && rst.size() < batch_size_) { + const auto [iterator_idx, cur_rst] = heap.top(); + heap.pop(); + + // last_bound may change between NextBatch calls, discard any invalid results + if (!IsValid(cur_rst, last_bound, radius, range_filter)) { + continue; + } + rst.emplace_back(cur_rst); + + if (auto next_result = GetNextValidResult( + iterator_idx, last_bound, radius, range_filter); + next_result.has_value()) { + heap.emplace(iterator_idx, next_result.value()); + } + } +} + +std::vector +CachedSearchIterator::GetBatchedNextResults(size_t query_idx, + const SearchInfo& search_info) { + auto last_bound = ConvertIncomingDistance( + search_info.iterator_v2_info_.value().last_bound); + auto radius = ConvertIncomingDistance( + index::GetValueFromConfig(search_info.search_params_, RADIUS)); + auto range_filter = + ConvertIncomingDistance(index::GetValueFromConfig( + search_info.search_params_, RANGE_FILTER)); + + std::vector rst; + rst.reserve(batch_size_); + + if (num_chunks_ == 1) { + auto& iterator = iterators_[query_idx]; + while (iterator->HasNext() && rst.size() < batch_size_) { + auto result = ConvertIteratorResult(iterator->Next()); + if (IsValid(result, last_bound, radius, range_filter)) { + rst.emplace_back(result); + } + } + } else { + MergeChunksResults(query_idx, last_bound, radius, range_filter, rst); + } + std::sort(rst.begin(), rst.end()); + if (sign_ == -1) { + std::for_each(rst.begin(), rst.end(), [this](DisIdPair& x) { + x.first = x.first * sign_; + }); + } + while (rst.size() < batch_size_) { + rst.emplace_back(1.0f / 0.0f, -1); + } + return rst; +} + +void +CachedSearchIterator::WriteSingleQuerySearchResult( + SearchResult& search_result, + const size_t idx, + std::vector& rst, + const int64_t round_decimal) { + const float multiplier = pow(10.0, round_decimal); + + std::transform(rst.begin(), + rst.end(), + search_result.distances_.begin() + idx * batch_size_, + [multiplier, round_decimal](DisIdPair& x) { + if (round_decimal != -1) { + x.first = + std::round(x.first * multiplier) / multiplier; + } + return x.first; + }); + + std::transform(rst.begin(), + rst.end(), + search_result.seg_offsets_.begin() + idx * batch_size_, + [](const DisIdPair& x) { return x.second; }); +} + +void +CachedSearchIterator::Init(const SearchInfo& search_info) { + if (!search_info.iterator_v2_info_.has_value()) { + PanicInfo(ErrorCode::UnexpectedError, + "Iterator v2 info is not set, cannot initialize iterator"); + } + + auto iterator_v2_info = search_info.iterator_v2_info_.value(); + if (iterator_v2_info.batch_size == 0) { + PanicInfo(ErrorCode::UnexpectedError, + "Batch size is 0, cannot initialize iterator"); + } + batch_size_ = iterator_v2_info.batch_size; + + if (search_info.metric_type_.empty()) { + PanicInfo(ErrorCode::UnexpectedError, + "Metric type is empty, cannot initialize iterator"); + } + if (PositivelyRelated(search_info.metric_type_)) { + sign_ = -1; + } else { + sign_ = 1; + } + + if (nq_ == 0) { + PanicInfo(ErrorCode::UnexpectedError, + "Number of queries is 0, cannot initialize iterator"); + } + + // disable multi-query for now + if (nq_ > 1) { + PanicInfo( + ErrorCode::UnexpectedError, + "Number of queries is greater than 1, cannot initialize iterator"); + } +} + +} // namespace milvus::query \ No newline at end of file diff --git a/internal/core/src/query/CachedSearchIterator.h b/internal/core/src/query/CachedSearchIterator.h new file mode 100644 index 0000000000000..1ede6d0c12db4 --- /dev/null +++ b/internal/core/src/query/CachedSearchIterator.h @@ -0,0 +1,182 @@ +// Copyright (C) 2019-2024 Zilliz. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software distributed under the License +// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express +// or implied. See the License for the specific language governing permissions and limitations under the License + +#pragma once + +#include +#include "common/BitsetView.h" +#include "common/QueryInfo.h" +#include "common/QueryResult.h" +#include "query/helper.h" +#include "segcore/ConcurrentVector.h" +#include "index/VectorIndex.h" + +namespace milvus::query { + +// This class is used to cache the search results from Knowhere +// search iterators and filter the results based on the last_bound, +// radius and range_filter. +// It provides a number of constructors to support different scenarios, +// including growing/sealed, chunked/non-chunked. +// +// It does not care about TopK in search_info +// The topk in SearchResult will be set to the batch_size for compatibility +// +// TODO: introduce the pool of results in the near future +// TODO: replace VectorIterator class +class CachedSearchIterator { + public: + // For sealed segment with vector index + CachedSearchIterator(const milvus::index::VectorIndex& index, + const knowhere::DataSetPtr& dataset, + const SearchInfo& search_info, + const BitsetView& bitset); + + // For sealed segment, BF + CachedSearchIterator(const dataset::SearchDataset& dataset, + const dataset::RawDataset& raw_ds, + const SearchInfo& search_info, + const std::map& index_info, + const BitsetView& bitset, + const milvus::DataType& data_type); + + // For growing segment with chunked data, BF + CachedSearchIterator(const dataset::SearchDataset& dataset, + const segcore::VectorBase* vec_data, + const int64_t row_count, + const SearchInfo& search_info, + const std::map& index_info, + const BitsetView& bitset, + const milvus::DataType& data_type); + + // For sealed segment with chunked data, BF + CachedSearchIterator(const std::shared_ptr& column, + const dataset::SearchDataset& dataset, + const SearchInfo& search_info, + const std::map& index_info, + const BitsetView& bitset, + const milvus::DataType& data_type); + + // This method fetches the next batch of search results based on the provided search information + // and updates the search_result object with the new batch of results. + void + NextBatch(const SearchInfo& search_info, SearchResult& search_result); + + // Disable copy and move + CachedSearchIterator(const CachedSearchIterator&) = delete; + CachedSearchIterator& + operator=(const CachedSearchIterator&) = delete; + CachedSearchIterator(CachedSearchIterator&&) = delete; + CachedSearchIterator& + operator=(CachedSearchIterator&&) = delete; + + private: + using DisIdPair = std::pair; + using IterIdx = size_t; + using IterIdDisIdPair = std::pair; + using GetChunkDataFunc = + std::function(int64_t)>; + + int64_t batch_size_ = 0; + std::vector iterators_; + int8_t sign_ = 1; + size_t num_chunks_ = 1; + size_t nq_ = 0; + + struct IterIdDisIdPairComparator { + bool + operator()(const IterIdDisIdPair& lhs, const IterIdDisIdPair& rhs) { + if (lhs.second.first == rhs.second.first) { + return lhs.second.second > rhs.second.second; + } + return lhs.second.first > rhs.second.first; + } + }; + std::vector, + IterIdDisIdPairComparator>> + chunked_heaps_; + + inline bool + IsValid(const DisIdPair& result, + const std::optional& last_bound, + const std::optional& radius, + const std::optional& range_filter) { + const float dist = result.first; + const bool is_valid = + !last_bound.has_value() || dist > last_bound.value(); + + if (!radius.has_value()) { + return is_valid; + } + + if (!range_filter.has_value()) { + return is_valid && dist < radius.value(); + } + + return is_valid && dist < radius.value() && + dist >= range_filter.value(); + } + + inline DisIdPair + ConvertIteratorResult(const std::pair& iter_rst) { + DisIdPair rst; + rst.first = iter_rst.second * sign_; + rst.second = iter_rst.first; + return rst; + } + + inline std::optional + ConvertIncomingDistance(std::optional dist) { + if (dist.has_value()) { + dist = dist.value() * sign_; + } + return dist; + } + + std::optional + GetNextValidResult(size_t iterator_idx, + const std::optional& last_bound, + const std::optional& radius, + const std::optional& range_filter); + + void + MergeChunksResults(size_t query_idx, + const std::optional& last_bound, + const std::optional& radius, + const std::optional& range_filter, + std::vector& rst); + + void + ValidateSearchInfo(const SearchInfo& search_info); + + std::vector + GetBatchedNextResults(size_t query_idx, const SearchInfo& search_info); + + void + WriteSingleQuerySearchResult(SearchResult& search_result, + const size_t idx, + std::vector& rst, + const int64_t round_decimal); + + void + Init(const SearchInfo& search_info); + + void + InitializeChunkedIterators( + const dataset::SearchDataset& dataset, + const SearchInfo& search_info, + const std::map& index_info, + const BitsetView& bitset, + const milvus::DataType& data_type, + const GetChunkDataFunc& get_chunk_data); +}; +} // namespace milvus::query diff --git a/internal/core/src/query/PlanProto.cpp b/internal/core/src/query/PlanProto.cpp index aa1892ef230e9..b9bec233c617c 100644 --- a/internal/core/src/query/PlanProto.cpp +++ b/internal/core/src/query/PlanProto.cpp @@ -93,6 +93,20 @@ ProtoParser::PlanNodeFromProto(const planpb::PlanNode& plan_node_proto) { search_info.strict_group_size_ = query_info_proto.strict_group_size(); } + + if (query_info_proto.has_search_iterator_v2_info()) { + auto& iterator_v2_info_proto = + query_info_proto.search_iterator_v2_info(); + search_info.iterator_v2_info_ = SearchIteratorV2Info{ + .token = iterator_v2_info_proto.token(), + .batch_size = iterator_v2_info_proto.batch_size(), + }; + if (iterator_v2_info_proto.has_last_bound()) { + search_info.iterator_v2_info_->last_bound = + iterator_v2_info_proto.last_bound(); + } + } + return search_info; }; diff --git a/internal/core/src/query/SearchBruteForce.cpp b/internal/core/src/query/SearchBruteForce.cpp index 7b4e0d46982f6..38887a150909e 100644 --- a/internal/core/src/query/SearchBruteForce.cpp +++ b/internal/core/src/query/SearchBruteForce.cpp @@ -226,45 +226,66 @@ BruteForceSearch(const dataset::SearchDataset& query_ds, return sub_result; } -SubSearchResult -BruteForceSearchIterators(const dataset::SearchDataset& query_ds, - const dataset::RawDataset& raw_ds, - const SearchInfo& search_info, - const std::map& index_info, - const BitsetView& bitset, - DataType data_type) { - auto nq = query_ds.num_queries; - auto [query_dataset, base_dataset] = - PrepareBFDataSet(query_ds, raw_ds, data_type); - auto search_cfg = PrepareBFSearchParams(search_info, index_info); - - knowhere::expected> - iterators_val; +knowhere::expected> +DispatchBruteForceIteratorByDataType(const knowhere::DataSetPtr& base_dataset, + const knowhere::DataSetPtr& query_dataset, + const knowhere::Json& config, + const BitsetView& bitset, + const milvus::DataType& data_type) { switch (data_type) { case DataType::VECTOR_FLOAT: - iterators_val = knowhere::BruteForce::AnnIterator( - base_dataset, query_dataset, search_cfg, bitset); + return knowhere::BruteForce::AnnIterator( + base_dataset, query_dataset, config, bitset); break; case DataType::VECTOR_FLOAT16: //todo: if knowhere support real fp16/bf16 bf, change it - iterators_val = knowhere::BruteForce::AnnIterator( - base_dataset, query_dataset, search_cfg, bitset); + return knowhere::BruteForce::AnnIterator( + base_dataset, query_dataset, config, bitset); break; case DataType::VECTOR_BFLOAT16: //todo: if knowhere support real fp16/bf16 bf, change it - iterators_val = knowhere::BruteForce::AnnIterator( - base_dataset, query_dataset, search_cfg, bitset); + return knowhere::BruteForce::AnnIterator( + base_dataset, query_dataset, config, bitset); break; case DataType::VECTOR_SPARSE_FLOAT: - iterators_val = knowhere::BruteForce::AnnIterator< + return knowhere::BruteForce::AnnIterator< knowhere::sparse::SparseRow>( - base_dataset, query_dataset, search_cfg, bitset); + base_dataset, query_dataset, config, bitset); break; default: PanicInfo(ErrorCode::Unsupported, "Unsupported dataType for chunk brute force iterator:{}", data_type); } +} + +knowhere::expected> +GetBruteForceSearchIterators( + const dataset::SearchDataset& query_ds, + const dataset::RawDataset& raw_ds, + const SearchInfo& search_info, + const std::map& index_info, + const BitsetView& bitset, + DataType data_type) { + auto nq = query_ds.num_queries; + auto [query_dataset, base_dataset] = + PrepareBFDataSet(query_ds, raw_ds, data_type); + auto search_cfg = PrepareBFSearchParams(search_info, index_info); + return DispatchBruteForceIteratorByDataType( + base_dataset, query_dataset, search_cfg, bitset, data_type); +} + +SubSearchResult +PackBruteForceSearchIteratorsIntoSubResult( + const dataset::SearchDataset& query_ds, + const dataset::RawDataset& raw_ds, + const SearchInfo& search_info, + const std::map& index_info, + const BitsetView& bitset, + DataType data_type) { + auto nq = query_ds.num_queries; + auto iterators_val = GetBruteForceSearchIterators( + query_ds, raw_ds, search_info, index_info, bitset, data_type); if (iterators_val.has_value()) { AssertInfo( iterators_val.value().size() == nq, diff --git a/internal/core/src/query/SearchBruteForce.h b/internal/core/src/query/SearchBruteForce.h index 15fb5697abfdf..51e348bfa23c8 100644 --- a/internal/core/src/query/SearchBruteForce.h +++ b/internal/core/src/query/SearchBruteForce.h @@ -31,12 +31,22 @@ BruteForceSearch(const dataset::SearchDataset& query_ds, const BitsetView& bitset, DataType data_type); +knowhere::expected> +GetBruteForceSearchIterators( + const dataset::SearchDataset& query_ds, + const dataset::RawDataset& raw_ds, + const SearchInfo& search_info, + const std::map& index_info, + const BitsetView& bitset, + DataType data_type); + SubSearchResult -BruteForceSearchIterators(const dataset::SearchDataset& query_ds, - const dataset::RawDataset& raw_ds, - const SearchInfo& search_info, - const std::map& index_info, - const BitsetView& bitset, - DataType data_type); +PackBruteForceSearchIteratorsIntoSubResult( + const dataset::SearchDataset& query_ds, + const dataset::RawDataset& raw_ds, + const SearchInfo& search_info, + const std::map& index_info, + const BitsetView& bitset, + DataType data_type); } // namespace milvus::query diff --git a/internal/core/src/query/SearchOnGrowing.cpp b/internal/core/src/query/SearchOnGrowing.cpp index c968b48ac52f2..1b774ae3aef22 100644 --- a/internal/core/src/query/SearchOnGrowing.cpp +++ b/internal/core/src/query/SearchOnGrowing.cpp @@ -18,6 +18,7 @@ #include "knowhere/comp/index_param.h" #include "knowhere/config.h" #include "log/Log.h" +#include "query/CachedSearchIterator.h" #include "query/SearchBruteForce.h" #include "query/SearchOnIndex.h" #include "exec/operator/Utils.h" @@ -125,6 +126,19 @@ SearchOnGrowing(const segcore::SegmentGrowingImpl& segment, // step 3: brute force search where small indexing is unavailable auto vec_ptr = record.get_data_base(vecfield_id); + + if (info.iterator_v2_info_.has_value()) { + CachedSearchIterator cached_iter(search_dataset, + vec_ptr, + active_count, + info, + index_info, + bitset, + data_type); + cached_iter.NextBatch(info, search_result); + return; + } + auto vec_size_per_chunk = vec_ptr->get_size_per_chunk(); auto max_chunk = upper_div(active_count, vec_size_per_chunk); @@ -140,12 +154,13 @@ SearchOnGrowing(const segcore::SegmentGrowingImpl& segment, auto sub_data = query::dataset::RawDataset{ element_begin, dim, size_per_chunk, chunk_data}; if (milvus::exec::UseVectorIterator(info)) { - auto sub_qr = BruteForceSearchIterators(search_dataset, - sub_data, - info, - index_info, - bitset, - data_type); + auto sub_qr = + PackBruteForceSearchIteratorsIntoSubResult(search_dataset, + sub_data, + info, + index_info, + bitset, + data_type); final_qr.merge(sub_qr); } else { auto sub_qr = BruteForceSearch(search_dataset, diff --git a/internal/core/src/query/SearchOnIndex.cpp b/internal/core/src/query/SearchOnIndex.cpp index 8556340a168c0..f6963e9bf49ab 100644 --- a/internal/core/src/query/SearchOnIndex.cpp +++ b/internal/core/src/query/SearchOnIndex.cpp @@ -11,6 +11,7 @@ #include "SearchOnIndex.h" #include "exec/operator/Utils.h" +#include "CachedSearchIterator.h" namespace milvus::query { void @@ -26,14 +27,23 @@ SearchOnIndex(const dataset::SearchDataset& search_dataset, auto dataset = knowhere::GenDataSet(num_queries, dim, search_dataset.query_data); dataset->SetIsSparse(is_sparse); - if (!milvus::exec::PrepareVectorIteratorsFromIndex(search_conf, - num_queries, - dataset, - search_result, - bitset, - indexing)) { - indexing.Query(dataset, search_conf, bitset, search_result); + if (milvus::exec::PrepareVectorIteratorsFromIndex(search_conf, + num_queries, + dataset, + search_result, + bitset, + indexing)) { + return; } + + if (search_conf.iterator_v2_info_.has_value()) { + auto iter = + CachedSearchIterator(indexing, dataset, search_conf, bitset); + iter.NextBatch(search_conf, search_result); + return; + } + + indexing.Query(dataset, search_conf, bitset, search_result); } } // namespace milvus::query diff --git a/internal/core/src/query/SearchOnSealed.cpp b/internal/core/src/query/SearchOnSealed.cpp index 5eb0eee1c587d..7dddd3d40c5ae 100644 --- a/internal/core/src/query/SearchOnSealed.cpp +++ b/internal/core/src/query/SearchOnSealed.cpp @@ -18,6 +18,7 @@ #include "common/QueryInfo.h" #include "common/Types.h" #include "mmap/Column.h" +#include "query/CachedSearchIterator.h" #include "query/SearchBruteForce.h" #include "query/SearchOnSealed.h" #include "query/helper.h" @@ -55,13 +56,20 @@ SearchOnSealedIndex(const Schema& schema, dataset->SetIsSparse(is_sparse); auto vec_index = dynamic_cast(field_indexing->indexing_.get()); + + if (search_info.iterator_v2_info_.has_value()) { + CachedSearchIterator cached_iter( + *vec_index, dataset, search_info, bitset); + cached_iter.NextBatch(search_info, search_result); + return; + } + if (!milvus::exec::PrepareVectorIteratorsFromIndex(search_info, num_queries, dataset, search_result, bitset, *vec_index)) { - auto index_type = vec_index->GetIndexType(); vec_index->Query(dataset, search_info, bitset, search_result); float* distances = search_result.distances_.data(); auto total_num = num_queries * topK; @@ -104,6 +112,14 @@ SearchOnSealed(const Schema& schema, auto data_type = field.get_data_type(); CheckBruteForceSearchParam(field, search_info); + + if (search_info.iterator_v2_info_.has_value()) { + CachedSearchIterator cached_iter( + column, query_dataset, search_info, index_info, bitview, data_type); + cached_iter.NextBatch(search_info, result); + return; + } + auto num_chunk = column->num_chunks(); SubSearchResult final_qr(num_queries, @@ -115,17 +131,16 @@ SearchOnSealed(const Schema& schema, for (int i = 0; i < num_chunk; ++i) { auto vec_data = column->Data(i); auto chunk_size = column->chunk_row_nums(i); - const uint8_t* bitset_ptr = nullptr; - auto data_id = offset; auto raw_dataset = query::dataset::RawDataset{offset, dim, chunk_size, vec_data}; if (milvus::exec::UseVectorIterator(search_info)) { - auto sub_qr = BruteForceSearchIterators(query_dataset, - raw_dataset, - search_info, - index_info, - bitview, - data_type); + auto sub_qr = + PackBruteForceSearchIteratorsIntoSubResult(query_dataset, + raw_dataset, + search_info, + index_info, + bitview, + data_type); final_qr.merge(sub_qr); } else { auto sub_qr = BruteForceSearch(query_dataset, @@ -136,7 +151,6 @@ SearchOnSealed(const Schema& schema, data_type); final_qr.merge(sub_qr); } - offset += chunk_size; } if (milvus::exec::UseVectorIterator(search_info)) { @@ -181,14 +195,23 @@ SearchOnSealed(const Schema& schema, CheckBruteForceSearchParam(field, search_info); auto raw_dataset = query::dataset::RawDataset{0, dim, row_count, vec_data}; if (milvus::exec::UseVectorIterator(search_info)) { - auto sub_qr = BruteForceSearchIterators(query_dataset, - raw_dataset, - search_info, - index_info, - bitset, - data_type); + auto sub_qr = PackBruteForceSearchIteratorsIntoSubResult(query_dataset, + raw_dataset, + search_info, + index_info, + bitset, + data_type); result.AssembleChunkVectorIterators( num_queries, 1, {0}, sub_qr.chunk_iterators()); + } else if (search_info.iterator_v2_info_.has_value()) { + CachedSearchIterator cached_iter(query_dataset, + raw_dataset, + search_info, + index_info, + bitset, + data_type); + cached_iter.NextBatch(search_info, result); + return; } else { auto sub_qr = BruteForceSearch(query_dataset, raw_dataset, diff --git a/internal/core/unittest/CMakeLists.txt b/internal/core/unittest/CMakeLists.txt index 4865627f33a9f..0fa63b45c264b 100644 --- a/internal/core/unittest/CMakeLists.txt +++ b/internal/core/unittest/CMakeLists.txt @@ -89,6 +89,7 @@ set(MILVUS_TEST_FILES test_chunked_segment.cpp test_chunked_column.cpp test_rust_result.cpp + test_cached_search_iterator.cpp ) if ( INDEX_ENGINE STREQUAL "cardinal" ) diff --git a/internal/core/unittest/test_bf_sparse.cpp b/internal/core/unittest/test_bf_sparse.cpp index 4724874ebc039..4f82e42ecb57a 100644 --- a/internal/core/unittest/test_bf_sparse.cpp +++ b/internal/core/unittest/test_bf_sparse.cpp @@ -143,12 +143,13 @@ class TestSparseFloatSearchBruteForce : public ::testing::Test { AssertMatch(ref, ans); } - auto result3 = BruteForceSearchIterators(query_dataset, - raw_dataset, - search_info, - index_info, - bitset_view, - DataType::VECTOR_SPARSE_FLOAT); + auto result3 = PackBruteForceSearchIteratorsIntoSubResult( + query_dataset, + raw_dataset, + search_info, + index_info, + bitset_view, + DataType::VECTOR_SPARSE_FLOAT); auto iterators = result3.chunk_iterators(); for (int i = 0; i < nq; i++) { auto it = iterators[i]; diff --git a/internal/core/unittest/test_cached_search_iterator.cpp b/internal/core/unittest/test_cached_search_iterator.cpp new file mode 100644 index 0000000000000..e6154eae05b5d --- /dev/null +++ b/internal/core/unittest/test_cached_search_iterator.cpp @@ -0,0 +1,797 @@ +// Copyright (C) 2019-2020 Zilliz. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software distributed under the License +// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express +// or implied. See the License for the specific language governing permissions and limitations under the License + +#include +#include +#include +#include +#include "common/BitsetView.h" +#include "common/QueryInfo.h" +#include "common/QueryResult.h" +#include "common/Utils.h" +#include "index/Index.h" +#include "knowhere/comp/index_param.h" +#include "query/CachedSearchIterator.h" +#include "index/VectorIndex.h" +#include "index/IndexFactory.h" +#include "knowhere/dataset.h" +#include "query/helper.h" +#include "segcore/ConcurrentVector.h" +#include "segcore/InsertRecord.h" +#include "mmap/ChunkedColumn.h" +#include "test_utils/DataGen.h" + +using namespace milvus; +using namespace milvus::query; +using namespace milvus::segcore; +using namespace milvus::index; + +namespace { +constexpr int64_t kDim = 16; +constexpr int64_t kNumVectors = 1000; +constexpr int64_t kNumQueries = 1; +constexpr int64_t kBatchSize = 100; +constexpr size_t kSizePerChunk = 128; +constexpr size_t kHnswM = 24; +constexpr size_t kHnswEfConstruction = 360; +constexpr size_t kHnswEf = 128; + +const MetricType kMetricType = knowhere::metric::L2; +} // namespace + +enum class ConstructorType { + VectorIndex = 0, + RawData, + VectorBase, + ChunkedColumn +}; + +static const std::vector kConstructorTypes = { + ConstructorType::VectorIndex, + ConstructorType::RawData, + ConstructorType::VectorBase, + ConstructorType::ChunkedColumn, +}; + +static const std::vector kMetricTypes = { + knowhere::metric::L2, + knowhere::metric::IP, + knowhere::metric::COSINE, +}; + +// this class does not support test concurrently +class CachedSearchIteratorTest + : public ::testing::TestWithParam> { + private: + protected: + SearchInfo + GetDefaultNormalSearchInfo() { + return SearchInfo{ + .topk_ = kBatchSize, + .round_decimal_ = -1, + .metric_type_ = std::get<1>(GetParam()), + .search_params_ = + { + {knowhere::indexparam::EF, std::to_string(kHnswEf)}, + }, + .iterator_v2_info_ = + SearchIteratorV2Info{ + .batch_size = kBatchSize, + }, + }; + } + + static DataType data_type_; + static int64_t dim_; + static int64_t nb_; + static int64_t nq_; + static FixedVector base_dataset_; + static FixedVector query_dataset_; + static IndexBasePtr index_hnsw_l2_; + static IndexBasePtr index_hnsw_ip_; + static IndexBasePtr index_hnsw_cos_; + static knowhere::DataSetPtr knowhere_query_dataset_; + static dataset::SearchDataset search_dataset_; + static std::unique_ptr> vector_base_; + static std::shared_ptr column_; + static std::vector> column_data_; + + IndexBase* index_hnsw_ = nullptr; + MetricType metric_type_ = kMetricType; + + std::unique_ptr + DispatchIterator(const ConstructorType& constructor_type, + const SearchInfo& search_info, + const BitsetView& bitset) { + switch (constructor_type) { + case ConstructorType::VectorIndex: + return std::make_unique( + dynamic_cast(*index_hnsw_), + knowhere_query_dataset_, + search_info, + bitset); + + case ConstructorType::RawData: + return std::make_unique( + search_dataset_, + dataset::RawDataset{0, dim_, nb_, base_dataset_.data()}, + search_info, + std::map{}, + bitset, + data_type_); + + case ConstructorType::VectorBase: + return std::make_unique( + search_dataset_, + vector_base_.get(), + nb_, + search_info, + std::map{}, + bitset, + data_type_); + + case ConstructorType::ChunkedColumn: + return std::make_unique( + column_, + search_dataset_, + search_info, + std::map{}, + bitset, + data_type_); + default: + return nullptr; + } + } + + // use last distance of the first batch as range_filter + // use first distance of the last batch as radius + std::pair + GetRadiusAndRangeFilter() { + const size_t num_rnds = (nb_ + kBatchSize - 1) / kBatchSize; + SearchResult search_result; + float radius, range_filter; + bool get_radius_success = false; + bool get_range_filter_sucess = false; + SearchInfo search_info = GetDefaultNormalSearchInfo(); + auto iterator = + DispatchIterator(std::get<0>(GetParam()), search_info, nullptr); + for (size_t rnd = 0; rnd < num_rnds; ++rnd) { + iterator->NextBatch(search_info, search_result); + if (rnd == 0) { + for (size_t i = kBatchSize - 1; i >= 0; --i) { + if (search_result.seg_offsets_[i] != -1) { + range_filter = search_result.distances_[i]; + get_range_filter_sucess = true; + break; + } + } + } else { + for (size_t i = 0; i < kBatchSize; ++i) { + if (search_result.seg_offsets_[i] != -1) { + radius = search_result.distances_[i]; + get_radius_success = true; + break; + } + } + } + } + if (!get_radius_success || !get_range_filter_sucess) { + throw std::runtime_error("Failed to get radius and range filter"); + } + return {radius, range_filter}; + } + + static void + BuildIndex() { + auto dataset = knowhere::GenDataSet(nb_, dim_, base_dataset_.data()); + + for (const auto& metric_type : kMetricTypes) { + milvus::index::CreateIndexInfo create_index_info; + create_index_info.field_type = data_type_; + create_index_info.metric_type = metric_type; + create_index_info.index_engine_version = + knowhere::Version::GetCurrentVersion().VersionNumber(); + auto build_conf = knowhere::Json{ + {knowhere::meta::METRIC_TYPE, knowhere::metric::L2}, + {knowhere::meta::DIM, std::to_string(dim_)}, + {knowhere::indexparam::M, std::to_string(kHnswM)}, + {knowhere::indexparam::EFCONSTRUCTION, + std::to_string(kHnswEfConstruction)}}; + create_index_info.index_type = knowhere::IndexEnum::INDEX_HNSW; + if (metric_type == knowhere::metric::L2) { + index_hnsw_l2_ = + milvus::index::IndexFactory::GetInstance().CreateIndex( + create_index_info, + milvus::storage::FileManagerContext()); + index_hnsw_l2_->BuildWithDataset(dataset, build_conf); + ASSERT_EQ(index_hnsw_l2_->Count(), nb_); + } else if (metric_type == knowhere::metric::IP) { + index_hnsw_ip_ = + milvus::index::IndexFactory::GetInstance().CreateIndex( + create_index_info, + milvus::storage::FileManagerContext()); + index_hnsw_ip_->BuildWithDataset(dataset, build_conf); + ASSERT_EQ(index_hnsw_ip_->Count(), nb_); + } else if (metric_type == knowhere::metric::COSINE) { + index_hnsw_cos_ = + milvus::index::IndexFactory::GetInstance().CreateIndex( + create_index_info, + milvus::storage::FileManagerContext()); + index_hnsw_cos_->BuildWithDataset(dataset, build_conf); + ASSERT_EQ(index_hnsw_cos_->Count(), nb_); + } else { + FAIL() << "Unsupported metric type: " << metric_type; + } + } + } + + static void + SetUpVectorBase() { + vector_base_ = std::make_unique>( + dim_, kSizePerChunk); + vector_base_->set_data_raw(0, base_dataset_.data(), nb_); + + ASSERT_EQ(vector_base_->num_chunk(), + (nb_ + kSizePerChunk - 1) / kSizePerChunk); + } + + static void + SetUpChunkedColumn() { + column_ = std::make_unique(); + const size_t num_chunks_ = (nb_ + kSizePerChunk - 1) / kSizePerChunk; + column_data_.resize(num_chunks_); + + size_t offset = 0; + for (size_t i = 0; i < num_chunks_; ++i) { + const size_t rows = std::min(nb_ - offset, kSizePerChunk); + const size_t chunk_bitset_size = (rows + 7) / 8; + const size_t buf_size = + chunk_bitset_size + rows * dim_ * sizeof(float); + auto& chunk_data = column_data_[i]; + chunk_data.resize(buf_size); + memcpy(chunk_data.data() + chunk_bitset_size, + base_dataset_.cbegin() + offset * dim_, + rows * dim_ * sizeof(float)); + column_->AddChunk(std::make_shared( + rows, dim_, chunk_data.data(), buf_size, sizeof(float), false)); + offset += rows; + } + } + + static void + SetUpTestSuite() { + auto schema = std::make_shared(); + auto fakevec_id = schema->AddDebugField( + "fakevec", DataType::VECTOR_FLOAT, dim_, kMetricType); + + // generate base dataset + base_dataset_ = + segcore::DataGen(schema, nb_).get_col(fakevec_id); + + // generate query dataset + query_dataset_ = {base_dataset_.cbegin(), + base_dataset_.cbegin() + nq_ * dim_}; + knowhere_query_dataset_ = + knowhere::GenDataSet(nq_, dim_, query_dataset_.data()); + search_dataset_ = dataset::SearchDataset{ + .metric_type = kMetricType, + .num_queries = nq_, + .topk = kBatchSize, + .round_decimal = -1, + .dim = dim_, + .query_data = query_dataset_.data(), + }; + + BuildIndex(); + SetUpVectorBase(); + SetUpChunkedColumn(); + } + + static void + TearDownTestSuite() { + base_dataset_.clear(); + query_dataset_.clear(); + index_hnsw_l2_.reset(); + index_hnsw_ip_.reset(); + index_hnsw_cos_.reset(); + knowhere_query_dataset_.reset(); + vector_base_.reset(); + column_.reset(); + } + + void + SetUp() override { + auto metric_type = std::get<1>(GetParam()); + if (metric_type == knowhere::metric::L2) { + metric_type_ = knowhere::metric::L2; + search_dataset_.metric_type = knowhere::metric::L2; + index_hnsw_ = index_hnsw_l2_.get(); + } else if (metric_type == knowhere::metric::IP) { + metric_type_ = knowhere::metric::IP; + search_dataset_.metric_type = knowhere::metric::IP; + index_hnsw_ = index_hnsw_ip_.get(); + } else if (metric_type == knowhere::metric::COSINE) { + metric_type_ = knowhere::metric::COSINE; + search_dataset_.metric_type = knowhere::metric::COSINE; + index_hnsw_ = index_hnsw_cos_.get(); + } else { + FAIL() << "Unsupported metric type: " << metric_type; + } + } + + void + TearDown() override { + } +}; + +// initialize static variables +DataType CachedSearchIteratorTest::data_type_ = DataType::VECTOR_FLOAT; +int64_t CachedSearchIteratorTest::dim_ = kDim; +int64_t CachedSearchIteratorTest::nb_ = kNumVectors; +int64_t CachedSearchIteratorTest::nq_ = kNumQueries; +IndexBasePtr CachedSearchIteratorTest::index_hnsw_l2_ = nullptr; +IndexBasePtr CachedSearchIteratorTest::index_hnsw_ip_ = nullptr; +IndexBasePtr CachedSearchIteratorTest::index_hnsw_cos_ = nullptr; +knowhere::DataSetPtr CachedSearchIteratorTest::knowhere_query_dataset_ = + nullptr; +dataset::SearchDataset CachedSearchIteratorTest::search_dataset_; +FixedVector CachedSearchIteratorTest::base_dataset_; +FixedVector CachedSearchIteratorTest::query_dataset_; +std::unique_ptr> + CachedSearchIteratorTest::vector_base_ = nullptr; +std::shared_ptr CachedSearchIteratorTest::column_ = nullptr; +std::vector> CachedSearchIteratorTest::column_data_; + +/********* Testcases Start **********/ + +TEST_P(CachedSearchIteratorTest, NextBatchNormal) { + SearchInfo search_info = GetDefaultNormalSearchInfo(); + const std::vector kBatchSizes = { + 1, 7, 43, 99, 100, 101, 1000, 1005}; + + for (size_t batch_size : kBatchSizes) { + std::cout << "batch_size: " << batch_size << std::endl; + search_info.iterator_v2_info_->batch_size = batch_size; + auto iterator = + DispatchIterator(std::get<0>(GetParam()), search_info, nullptr); + SearchResult search_result; + + iterator->NextBatch(search_info, search_result); + + for (size_t i = 0; i < nq_; ++i) { + std::unordered_set seg_offsets; + size_t cnt = 0; + for (size_t j = 0; j < batch_size; ++j) { + if (search_result.seg_offsets_[i * batch_size + j] == -1) { + break; + } + ++cnt; + seg_offsets.insert( + search_result.seg_offsets_[i * batch_size + j]); + } + EXPECT_EQ(seg_offsets.size(), cnt); + if (metric_type_ == knowhere::metric::L2) { + EXPECT_EQ(search_result.distances_[i * batch_size], 0); + } + } + EXPECT_EQ(search_result.unity_topK_, batch_size); + EXPECT_EQ(search_result.total_nq_, nq_); + EXPECT_EQ(search_result.seg_offsets_.size(), nq_ * batch_size); + EXPECT_EQ(search_result.distances_.size(), nq_ * batch_size); + } +} + +TEST_P(CachedSearchIteratorTest, NextBatchDistBound) { + SearchInfo search_info = GetDefaultNormalSearchInfo(); + const size_t batch_size = kBatchSize; + const float dist_bound_factor = PositivelyRelated(metric_type_) ? 0.5 : 1.5; + float dist_bound = 0; + + { + auto iterator = + DispatchIterator(std::get<0>(GetParam()), search_info, nullptr); + SearchResult search_result; + iterator->NextBatch(search_info, search_result); + + bool found_dist_bound = false; + // use the last distance of the first query * factor as the dist bound + for (size_t j = batch_size - 1; j >= 0; --j) { + if (search_result.seg_offsets_[j] != -1) { + dist_bound = search_result.distances_[j] * dist_bound_factor; + found_dist_bound = true; + break; + } + } + ASSERT_TRUE(found_dist_bound); + + search_info.iterator_v2_info_->last_bound = dist_bound; + for (size_t rnd = 1; rnd < (nb_ + batch_size - 1) / batch_size; ++rnd) { + iterator->NextBatch(search_info, search_result); + for (size_t i = 0; i < nq_; ++i) { + for (size_t j = 0; j < batch_size; ++j) { + if (search_result.seg_offsets_[i * batch_size + j] == -1) { + break; + } + if (PositivelyRelated(metric_type_)) { + EXPECT_LT(search_result.distances_[i * batch_size + j], + dist_bound); + } else { + EXPECT_GT(search_result.distances_[i * batch_size + j], + dist_bound); + } + } + } + } + } +} + +TEST_P(CachedSearchIteratorTest, NextBatchDistBoundEmptyResults) { + SearchInfo search_info = GetDefaultNormalSearchInfo(); + const size_t batch_size = kBatchSize; + const float dist_bound = PositivelyRelated(metric_type_) + ? -std::numeric_limits::max() + : std::numeric_limits::max(); + + auto iterator = + DispatchIterator(std::get<0>(GetParam()), search_info, nullptr); + SearchResult search_result; + + search_info.iterator_v2_info_->last_bound = dist_bound; + size_t total_cnt = 0; + for (size_t rnd = 0; rnd < (nb_ + batch_size - 1) / batch_size; ++rnd) { + iterator->NextBatch(search_info, search_result); + for (size_t i = 0; i < nq_; ++i) { + for (size_t j = 0; j < batch_size; ++j) { + if (search_result.seg_offsets_[i * batch_size + j] == -1) { + break; + } + ++total_cnt; + } + } + } + EXPECT_EQ(total_cnt, 0); +} + +TEST_P(CachedSearchIteratorTest, NextBatchRangeSearchRadius) { + const size_t num_rnds = (nb_ + kBatchSize - 1) / kBatchSize; + const auto [radius, range_filter] = GetRadiusAndRangeFilter(); + SearchResult search_result; + + SearchInfo search_info = GetDefaultNormalSearchInfo(); + search_info.search_params_[knowhere::meta::RADIUS] = radius; + + auto iterator = + DispatchIterator(std::get<0>(GetParam()), search_info, nullptr); + for (size_t rnd = 0; rnd < num_rnds; ++rnd) { + iterator->NextBatch(search_info, search_result); + for (size_t i = 0; i < nq_; ++i) { + for (size_t j = 0; j < kBatchSize; ++j) { + if (search_result.seg_offsets_[i * kBatchSize + j] == -1) { + break; + } + float dist = search_result.distances_[i * kBatchSize + j]; + if (PositivelyRelated(metric_type_)) { + ASSERT_GT(dist, radius); + } else { + ASSERT_LT(dist, radius); + } + } + } + } +} + +TEST_P(CachedSearchIteratorTest, NextBatchRangeSearchRadiusAndRangeFilter) { + const size_t num_rnds = (nb_ + kBatchSize - 1) / kBatchSize; + const auto [radius, range_filter] = GetRadiusAndRangeFilter(); + SearchResult search_result; + + SearchInfo search_info = GetDefaultNormalSearchInfo(); + search_info.search_params_[knowhere::meta::RADIUS] = radius; + search_info.search_params_[knowhere::meta::RANGE_FILTER] = range_filter; + + auto iterator = + DispatchIterator(std::get<0>(GetParam()), search_info, nullptr); + for (size_t rnd = 0; rnd < num_rnds; ++rnd) { + iterator->NextBatch(search_info, search_result); + for (size_t i = 0; i < nq_; ++i) { + for (size_t j = 0; j < kBatchSize; ++j) { + if (search_result.seg_offsets_[i * kBatchSize + j] == -1) { + break; + } + float dist = search_result.distances_[i * kBatchSize + j]; + if (PositivelyRelated(metric_type_)) { + ASSERT_GT(dist, radius); + ASSERT_LE(dist, range_filter); + } else { + ASSERT_LT(dist, radius); + ASSERT_GE(dist, range_filter); + } + } + } + } +} + +TEST_P(CachedSearchIteratorTest, + NextBatchRangeSearchLastBoundRadiusRangeFilter) { + const size_t num_rnds = (nb_ + kBatchSize - 1) / kBatchSize; + const auto [radius, range_filter] = GetRadiusAndRangeFilter(); + SearchResult search_result; + const float diff = (radius + range_filter) / 2; + const std::vector last_bounds = {radius - diff, + radius, + radius + diff, + range_filter, + range_filter + diff}; + + SearchInfo search_info = GetDefaultNormalSearchInfo(); + search_info.search_params_[knowhere::meta::RADIUS] = radius; + search_info.search_params_[knowhere::meta::RANGE_FILTER] = range_filter; + for (float last_bound : last_bounds) { + search_info.iterator_v2_info_->last_bound = last_bound; + auto iterator = + DispatchIterator(std::get<0>(GetParam()), search_info, nullptr); + for (size_t rnd = 0; rnd < num_rnds; ++rnd) { + iterator->NextBatch(search_info, search_result); + for (size_t i = 0; i < nq_; ++i) { + for (size_t j = 0; j < kBatchSize; ++j) { + if (search_result.seg_offsets_[i * kBatchSize + j] == -1) { + break; + } + float dist = search_result.distances_[i * kBatchSize + j]; + if (PositivelyRelated(metric_type_)) { + ASSERT_LE(dist, last_bound); + ASSERT_GT(dist, radius); + ASSERT_LE(dist, range_filter); + } else { + ASSERT_GT(dist, last_bound); + ASSERT_LT(dist, radius); + ASSERT_GE(dist, range_filter); + } + } + } + } + } +} + +TEST_P(CachedSearchIteratorTest, NextBatchZeroBatchSize) { + SearchInfo search_info = GetDefaultNormalSearchInfo(); + auto iterator = + DispatchIterator(std::get<0>(GetParam()), search_info, nullptr); + SearchResult search_result; + + search_info.iterator_v2_info_->batch_size = 0; + EXPECT_THROW(iterator->NextBatch(search_info, search_result), SegcoreError); +} + +TEST_P(CachedSearchIteratorTest, NextBatchDiffBatchSizeComparedToInit) { + SearchInfo search_info = GetDefaultNormalSearchInfo(); + auto iterator = + DispatchIterator(std::get<0>(GetParam()), search_info, nullptr); + SearchResult search_result; + + search_info.iterator_v2_info_->batch_size = kBatchSize + 1; + EXPECT_THROW(iterator->NextBatch(search_info, search_result), SegcoreError); +} + +TEST_P(CachedSearchIteratorTest, NextBatchEmptySearchInfo) { + SearchInfo search_info = GetDefaultNormalSearchInfo(); + auto iterator = + DispatchIterator(std::get<0>(GetParam()), search_info, nullptr); + SearchResult search_result; + + SearchInfo empty_search_info; + EXPECT_THROW(iterator->NextBatch(empty_search_info, search_result), + SegcoreError); +} + +TEST_P(CachedSearchIteratorTest, NextBatchEmptyIteratorV2Info) { + SearchInfo search_info = GetDefaultNormalSearchInfo(); + auto iterator = + DispatchIterator(std::get<0>(GetParam()), search_info, nullptr); + SearchResult search_result; + + search_info.iterator_v2_info_ = std::nullopt; + EXPECT_THROW(iterator->NextBatch(search_info, search_result), SegcoreError); +} + +TEST_P(CachedSearchIteratorTest, NextBatchtAllBatchesNormal) { + SearchInfo search_info = GetDefaultNormalSearchInfo(); + const std::vector kBatchSizes = { + 1, 7, 43, 99, 100, 101, 1000, 1005}; + // const std::vector kBatchSizes = {1005}; + + for (size_t batch_size : kBatchSizes) { + search_info.iterator_v2_info_->batch_size = batch_size; + auto iterator = + DispatchIterator(std::get<0>(GetParam()), search_info, nullptr); + size_t total_cnt = 0; + + for (size_t rnd = 0; rnd < (nb_ + batch_size - 1) / batch_size; ++rnd) { + SearchResult search_result; + iterator->NextBatch(search_info, search_result); + for (size_t i = 0; i < nq_; ++i) { + std::unordered_set seg_offsets; + size_t cnt = 0; + for (size_t j = 0; j < batch_size; ++j) { + if (search_result.seg_offsets_[i * batch_size + j] == -1) { + break; + } + ++cnt; + seg_offsets.insert( + search_result.seg_offsets_[i * batch_size + j]); + } + total_cnt += cnt; + // check no duplicate + EXPECT_EQ(seg_offsets.size(), cnt); + + // only check if the first distance of the first batch is 0 + if (rnd == 0 && metric_type_ == knowhere::metric::L2) { + EXPECT_EQ(search_result.distances_[i * batch_size], 0); + } + } + EXPECT_EQ(search_result.unity_topK_, batch_size); + EXPECT_EQ(search_result.total_nq_, nq_); + EXPECT_EQ(search_result.seg_offsets_.size(), nq_ * batch_size); + EXPECT_EQ(search_result.distances_.size(), nq_ * batch_size); + } + if (std::get<0>(GetParam()) == ConstructorType::VectorIndex) { + EXPECT_GE(total_cnt, nb_ * nq_ * 0.9); + } else { + EXPECT_EQ(total_cnt, nb_ * nq_); + } + } +} + +TEST_P(CachedSearchIteratorTest, ConstructorWithInvalidSearchInfo) { + EXPECT_THROW( + DispatchIterator(std::get<0>(GetParam()), SearchInfo{}, nullptr), + SegcoreError); + + EXPECT_THROW( + DispatchIterator( + std::get<0>(GetParam()), SearchInfo{.metric_type_ = ""}, nullptr), + SegcoreError); + + EXPECT_THROW(DispatchIterator(std::get<0>(GetParam()), + SearchInfo{.metric_type_ = metric_type_}, + nullptr), + SegcoreError); + + EXPECT_THROW(DispatchIterator(std::get<0>(GetParam()), + SearchInfo{.metric_type_ = metric_type_, + .iterator_v2_info_ = {}}, + nullptr), + SegcoreError); + + EXPECT_THROW( + DispatchIterator(std::get<0>(GetParam()), + SearchInfo{.metric_type_ = metric_type_, + .iterator_v2_info_ = + SearchIteratorV2Info{.batch_size = 0}}, + nullptr), + SegcoreError); +} + +TEST_P(CachedSearchIteratorTest, ConstructorWithInvalidParams) { + SearchInfo search_info = GetDefaultNormalSearchInfo(); + if (std::get<0>(GetParam()) == ConstructorType::VectorIndex) { + EXPECT_THROW(auto iterator = std::make_unique( + dynamic_cast(*index_hnsw_), + nullptr, + search_info, + nullptr), + SegcoreError); + + EXPECT_THROW(auto iterator = std::make_unique( + dynamic_cast(*index_hnsw_), + std::make_shared(), + search_info, + nullptr), + SegcoreError); + } else if (std::get<0>(GetParam()) == ConstructorType::RawData) { + EXPECT_THROW( + auto iterator = std::make_unique( + dataset::SearchDataset{}, + dataset::RawDataset{0, dim_, nb_, base_dataset_.data()}, + search_info, + std::map{}, + nullptr, + data_type_), + SegcoreError); + } else if (std::get<0>(GetParam()) == ConstructorType::VectorBase) { + EXPECT_THROW(auto iterator = std::make_unique( + dataset::SearchDataset{}, + vector_base_.get(), + nb_, + search_info, + std::map{}, + nullptr, + data_type_), + SegcoreError); + + EXPECT_THROW(auto iterator = std::make_unique( + search_dataset_, + nullptr, + nb_, + search_info, + std::map{}, + nullptr, + data_type_), + SegcoreError); + + EXPECT_THROW(auto iterator = std::make_unique( + search_dataset_, + vector_base_.get(), + 0, + search_info, + std::map{}, + nullptr, + data_type_), + SegcoreError); + } else if (std::get<0>(GetParam()) == ConstructorType::ChunkedColumn) { + EXPECT_THROW(auto iterator = std::make_unique( + nullptr, + search_dataset_, + search_info, + std::map{}, + nullptr, + data_type_), + SegcoreError); + EXPECT_THROW(auto iterator = std::make_unique( + column_, + dataset::SearchDataset{}, + search_info, + std::map{}, + nullptr, + data_type_), + SegcoreError); + } +} + +/********* Testcases End **********/ + +INSTANTIATE_TEST_SUITE_P( + CachedSearchIteratorTests, + CachedSearchIteratorTest, + ::testing::Combine(::testing::ValuesIn(kConstructorTypes), + ::testing::ValuesIn(kMetricTypes)), + [](const testing::TestParamInfo>& + info) { + std::string constructor_type_str; + ConstructorType constructor_type = std::get<0>(info.param); + MetricType metric_type = std::get<1>(info.param); + switch (constructor_type) { + case ConstructorType::VectorIndex: + constructor_type_str = "VectorIndex"; + break; + case ConstructorType::RawData: + constructor_type_str = "RawData"; + break; + case ConstructorType::VectorBase: + constructor_type_str = "VectorBase"; + break; + case ConstructorType::ChunkedColumn: + constructor_type_str = "ChunkedColumn"; + break; + default: + constructor_type_str = "Unknown constructor type"; + }; + if (metric_type == knowhere::metric::L2) { + constructor_type_str += "_L2"; + } else if (metric_type == knowhere::metric::IP) { + constructor_type_str += "_IP"; + } else if (metric_type == knowhere::metric::COSINE) { + constructor_type_str += "_COSINE"; + } else { + constructor_type_str += "_Unknown"; + } + return constructor_type_str; + }); diff --git a/internal/proto/plan.proto b/internal/proto/plan.proto index abf32317c6be2..b0b2846b7948d 100644 --- a/internal/proto/plan.proto +++ b/internal/proto/plan.proto @@ -55,6 +55,12 @@ message Array { schema.DataType element_type = 3; } +message SearchIteratorV2Info { + string token = 1; + uint32 batch_size = 2; + optional float last_bound = 3; +} + message QueryInfo { int64 topk = 1; string metric_type = 3; @@ -67,6 +73,7 @@ message QueryInfo { double bm25_avgdl = 10; int64 query_field_id =11; string hints = 12; + optional SearchIteratorV2Info search_iterator_v2_info = 13; } message ColumnInfo { diff --git a/internal/proxy/proxy.go b/internal/proxy/proxy.go index 87d78a01f4295..4c1d98773fae5 100644 --- a/internal/proxy/proxy.go +++ b/internal/proxy/proxy.go @@ -26,6 +26,7 @@ import ( "time" "github.com/cockroachdb/errors" + "github.com/google/uuid" "github.com/hashicorp/golang-lru/v2/expirable" clientv3 "go.etcd.io/etcd/client/v3" "go.uber.org/atomic" @@ -304,6 +305,13 @@ func (node *Proxy) Init() error { node.enableMaterializedView = Params.CommonCfg.EnableMaterializedView.GetAsBool() + // Enable internal rand pool for UUIDv4 generation + // This is NOT thread-safe and should only be called before the service starts and + // there is no possibility that New or any other UUID V4 generation function will be called concurrently + // Only proxy generates UUID for now, and one Milvus process only has one proxy + uuid.EnableRandPool() + log.Debug("enable rand pool for UUIDv4 generation") + log.Info("init proxy done", zap.Int64("nodeID", paramtable.GetNodeID()), zap.String("Address", node.address)) return nil } diff --git a/internal/proxy/search_util.go b/internal/proxy/search_util.go index 5913d16774a72..c54b7e66d9fe5 100644 --- a/internal/proxy/search_util.go +++ b/internal/proxy/search_util.go @@ -8,6 +8,7 @@ import ( "strings" "github.com/cockroachdb/errors" + "github.com/google/uuid" "google.golang.org/protobuf/proto" "github.com/milvus-io/milvus-proto/go-api/v2/commonpb" @@ -82,6 +83,81 @@ type SearchInfo struct { isIterator bool } +func parseSearchIteratorV2Info(searchParamsPair []*commonpb.KeyValuePair, groupByFieldId int64, isIterator bool, offset int64, queryTopK *int64) (*planpb.SearchIteratorV2Info, error) { + isIteratorV2Str, _ := funcutil.GetAttrByKeyFromRepeatedKV(SearchIterV2Key, searchParamsPair) + isIteratorV2, _ := strconv.ParseBool(isIteratorV2Str) + if !isIteratorV2 { + return nil, nil + } + + // iteratorV1 and iteratorV2 should be set together for compatibility + if !isIterator { + return nil, fmt.Errorf("both %s and %s must be set in the SDK", IteratorField, SearchIterV2Key) + } + + // disable groupBy when doing iteratorV2 + // same behavior with V1 + if isIteratorV2 && groupByFieldId > 0 { + return nil, merr.WrapErrParameterInvalid("", "", + "GroupBy is not permitted when using a search iterator") + } + + // disable offset when doing iteratorV2 + if isIteratorV2 && offset > 0 { + return nil, merr.WrapErrParameterInvalid("", "", + "Setting an offset is not permitted when using a search iterator v2") + } + + // parse token, generate if not exist + token, _ := funcutil.GetAttrByKeyFromRepeatedKV(SearchIterIdKey, searchParamsPair) + if token == "" { + generatedToken, err := uuid.NewRandom() + if err != nil { + return nil, err + } + token = generatedToken.String() + } else { + // Validate existing token is a valid UUID + if _, err := uuid.Parse(token); err != nil { + return nil, fmt.Errorf("invalid token format") + } + } + + // parse batch size, required non-zero value + batchSizeStr, _ := funcutil.GetAttrByKeyFromRepeatedKV(SearchIterBatchSizeKey, searchParamsPair) + if batchSizeStr == "" { + return nil, fmt.Errorf("batch size is required") + } + batchSize, err := strconv.ParseInt(batchSizeStr, 0, 64) + if err != nil { + return nil, fmt.Errorf("batch size is invalid, %w", err) + } + // use the same validation logic as topk + if err := validateLimit(batchSize); err != nil { + return nil, fmt.Errorf("batch size is invalid, %w", err) + } + *queryTopK = batchSize // for compatibility + + // prepare plan iterator v2 info proto + planIteratorV2Info := &planpb.SearchIteratorV2Info{ + Token: token, + BatchSize: uint32(batchSize), + } + + // append optional last bound if applicable + lastBoundStr, _ := funcutil.GetAttrByKeyFromRepeatedKV(SearchIterLastBoundKey, searchParamsPair) + if lastBoundStr != "" { + lastBound, err := strconv.ParseFloat(lastBoundStr, 32) + if err != nil { + return nil, fmt.Errorf("failed to parse input last bound, %w", err) + } + lastBoundFloat32 := float32(lastBound) + planIteratorV2Info.LastBound = &lastBoundFloat32 // escape pointer + } + + return planIteratorV2Info, nil +} + // parseSearchInfo returns QueryInfo and offset func parseSearchInfo(searchParamsPair []*commonpb.KeyValuePair, schema *schemapb.CollectionSchema, rankParams *rankParams) *SearchInfo { var topK int64 @@ -196,16 +272,22 @@ func parseSearchInfo(searchParamsPair []*commonpb.KeyValuePair, schema *schemapb "Not allowed to do range-search when doing search-group-by")} } + planSearchIteratorV2Info, err := parseSearchIteratorV2Info(searchParamsPair, groupByFieldId, isIterator, offset, &queryTopK) + if err != nil { + return &SearchInfo{planInfo: nil, offset: 0, isIterator: false, parseError: fmt.Errorf("parse iterator v2 info failed: %w", err)} + } + return &SearchInfo{ planInfo: &planpb.QueryInfo{ - Topk: queryTopK, - MetricType: metricType, - SearchParams: searchParamStr, - RoundDecimal: roundDecimal, - GroupByFieldId: groupByFieldId, - GroupSize: groupSize, - StrictGroupSize: strictGroupSize, - Hints: hints, + Topk: queryTopK, + MetricType: metricType, + SearchParams: searchParamStr, + RoundDecimal: roundDecimal, + GroupByFieldId: groupByFieldId, + GroupSize: groupSize, + StrictGroupSize: strictGroupSize, + Hints: hints, + SearchIteratorV2Info: planSearchIteratorV2Info, }, offset: offset, isIterator: isIterator, diff --git a/internal/proxy/task.go b/internal/proxy/task.go index ed8f6f77af099..9f85e9d04d187 100644 --- a/internal/proxy/task.go +++ b/internal/proxy/task.go @@ -69,6 +69,11 @@ const ( OffsetKey = "offset" LimitKey = "limit" + SearchIterV2Key = "search_iter_v2" + SearchIterBatchSizeKey = "search_iter_batch_size" + SearchIterLastBoundKey = "search_iter_last_bound" + SearchIterIdKey = "search_iter_id" + InsertTaskName = "InsertTask" CreateCollectionTaskName = "CreateCollectionTask" DropCollectionTaskName = "DropCollectionTask" diff --git a/internal/proxy/task_search.go b/internal/proxy/task_search.go index 79b392af101a0..ffa7c9b23b8ee 100644 --- a/internal/proxy/task_search.go +++ b/internal/proxy/task_search.go @@ -28,6 +28,7 @@ import ( "github.com/milvus-io/milvus/pkg/util/commonpbutil" "github.com/milvus-io/milvus/pkg/util/funcutil" "github.com/milvus-io/milvus/pkg/util/merr" + "github.com/milvus-io/milvus/pkg/util/metric" "github.com/milvus-io/milvus/pkg/util/paramtable" "github.com/milvus-io/milvus/pkg/util/timerecord" "github.com/milvus-io/milvus/pkg/util/tsoutil" @@ -590,12 +591,15 @@ func (t *searchTask) Execute(ctx context.Context) error { return nil } -func (t *searchTask) reduceResults(ctx context.Context, toReduceResults []*internalpb.SearchResults, nq, topK int64, offset int64, queryInfo *planpb.QueryInfo, isAdvance bool) (*milvuspb.SearchResults, error) { +func getMetricType(toReduceResults []*internalpb.SearchResults) string { metricType := "" if len(toReduceResults) >= 1 { metricType = toReduceResults[0].GetMetricType() } + return metricType +} +func (t *searchTask) reduceResults(ctx context.Context, toReduceResults []*internalpb.SearchResults, nq, topK int64, offset int64, metricType string, queryInfo *planpb.QueryInfo, isAdvance bool) (*milvuspb.SearchResults, error) { ctx, sp := otel.Tracer(typeutil.ProxyRole).Start(ctx, "reduceResults") defer sp.End() @@ -631,6 +635,24 @@ func (t *searchTask) reduceResults(ctx context.Context, toReduceResults []*inter return result, nil } +// find the last bound based on reduced results and metric type +// only support nq == 1, for search iterator v2 +func getLastBound(result *milvuspb.SearchResults, incomingLastBound *float32, metricType string) float32 { + len := len(result.Results.Scores) + if len > 0 && result.GetResults().GetNumQueries() == 1 { + return result.Results.Scores[len-1] + } + // if no results found and incoming last bound is not nil, return it + if incomingLastBound != nil { + return *incomingLastBound + } + // if no results found and it is the first call, return the closest bound + if metric.PositivelyRelated(metricType) { + return math.MaxFloat32 + } + return -math.MaxFloat32 +} + func (t *searchTask) PostExecute(ctx context.Context) error { ctx, sp := otel.Tracer(typeutil.ProxyRole).Start(ctx, "Proxy-Search-PostExecute") defer sp.End() @@ -670,6 +692,7 @@ func (t *searchTask) PostExecute(ctx context.Context) error { return err } + metricType := getMetricType(toReduceResults) // reduce if t.SearchRequest.GetIsAdvanced() { multipleInternalResults := make([][]*internalpb.SearchResults, len(t.SearchRequest.GetSubReqs())) @@ -696,16 +719,12 @@ func (t *searchTask) PostExecute(ctx context.Context) error { multipleMilvusResults := make([]*milvuspb.SearchResults, len(t.SearchRequest.GetSubReqs())) for index, internalResults := range multipleInternalResults { subReq := t.SearchRequest.GetSubReqs()[index] - - metricType := "" - if len(internalResults) >= 1 { - metricType = internalResults[0].GetMetricType() - } - result, err := t.reduceResults(t.ctx, internalResults, subReq.GetNq(), subReq.GetTopk(), subReq.GetOffset(), t.queryInfos[index], true) + subMetricType := getMetricType(internalResults) + result, err := t.reduceResults(t.ctx, internalResults, subReq.GetNq(), subReq.GetTopk(), subReq.GetOffset(), subMetricType, t.queryInfos[index], true) if err != nil { return err } - t.reScorers[index].setMetricType(metricType) + t.reScorers[index].setMetricType(subMetricType) t.reScorers[index].reScore(result) multipleMilvusResults[index] = result } @@ -721,7 +740,7 @@ func (t *searchTask) PostExecute(ctx context.Context) error { return err } } else { - t.result, err = t.reduceResults(t.ctx, toReduceResults, t.SearchRequest.GetNq(), t.SearchRequest.GetTopk(), t.SearchRequest.GetOffset(), t.queryInfos[0], false) + t.result, err = t.reduceResults(t.ctx, toReduceResults, t.SearchRequest.GetNq(), t.SearchRequest.GetTopk(), t.SearchRequest.GetOffset(), metricType, t.queryInfos[0], false) if err != nil { return err } @@ -751,6 +770,14 @@ func (t *searchTask) PostExecute(ctx context.Context) error { } t.result.Results.OutputFields = t.userOutputFields t.result.CollectionName = t.request.GetCollectionName() + if t.isIterator && len(t.queryInfos) == 1 && t.queryInfos[0] != nil { + if iterInfo := t.queryInfos[0].GetSearchIteratorV2Info(); iterInfo != nil { + t.result.Results.SearchIteratorV2Results = &schemapb.SearchIteratorV2Results{ + Token: iterInfo.GetToken(), + LastBound: getLastBound(t.result, iterInfo.LastBound, metricType), + } + } + } if t.isIterator && t.request.GetGuaranteeTimestamp() == 0 { // first page for iteration, need to set up sessionTs for iterator t.result.SessionTs = getMaxMvccTsFromChannels(t.queryChannelsTs, t.BeginTs()) diff --git a/internal/proxy/task_search_test.go b/internal/proxy/task_search_test.go index a0c5042376054..1edf764c8b418 100644 --- a/internal/proxy/task_search_test.go +++ b/internal/proxy/task_search_test.go @@ -18,12 +18,14 @@ package proxy import ( "context" "fmt" + "math" "strconv" "strings" "testing" "time" "github.com/cockroachdb/errors" + "github.com/google/uuid" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" @@ -103,9 +105,124 @@ func TestSearchTask_PostExecute(t *testing.T) { assert.Equal(t, qt.resultSizeInsufficient, true) assert.Equal(t, qt.isTopkReduce, false) }) + + t.Run("test search iterator v2", func(t *testing.T) { + const ( + kRows = 10 + kToken = "test-token" + ) + + collName := "test_collection_search_iterator_v2" + funcutil.GenRandomStr() + collSchema := createColl(t, collName, rc) + + createIteratorSearchTask := func(t *testing.T, metricType string, rows int) *searchTask { + ids := make([]int64, rows) + for i := range ids { + ids[i] = int64(i) + } + resultIDs := &schemapb.IDs{ + IdField: &schemapb.IDs_IntId{ + IntId: &schemapb.LongArray{ + Data: ids, + }, + }, + } + scores := make([]float32, rows) + // proxy needs to reverse the score for negatively related metrics + for i := range scores { + if metric.PositivelyRelated(metricType) { + scores[i] = float32(len(scores) - i) + } else { + scores[i] = -float32(i + 1) + } + } + resultData := &schemapb.SearchResultData{ + Ids: resultIDs, + Scores: scores, + NumQueries: 1, + } + + qt := &searchTask{ + ctx: ctx, + SearchRequest: &internalpb.SearchRequest{ + Base: &commonpb.MsgBase{ + MsgType: commonpb.MsgType_Search, + SourceID: paramtable.GetNodeID(), + }, + Nq: 1, + }, + schema: newSchemaInfo(collSchema), + request: &milvuspb.SearchRequest{ + CollectionName: collName, + }, + queryInfos: []*planpb.QueryInfo{{ + SearchIteratorV2Info: &planpb.SearchIteratorV2Info{ + Token: kToken, + BatchSize: 1, + }, + }}, + result: &milvuspb.SearchResults{ + Results: resultData, + }, + resultBuf: typeutil.NewConcurrentSet[*internalpb.SearchResults](), + tr: timerecord.NewTimeRecorder("search"), + isIterator: true, + } + bytes, err := proto.Marshal(resultData) + assert.NoError(t, err) + qt.resultBuf.Insert(&internalpb.SearchResults{ + MetricType: metricType, + SlicedBlob: bytes, + }) + return qt + } + + t.Run("test search iterator v2", func(t *testing.T) { + metrics := []string{metric.L2, metric.IP, metric.COSINE, metric.BM25} + for _, metricType := range metrics { + qt := createIteratorSearchTask(t, metricType, kRows) + err = qt.PostExecute(ctx) + assert.NoError(t, err) + assert.Equal(t, kToken, qt.result.Results.SearchIteratorV2Results.Token) + if metric.PositivelyRelated(metricType) { + assert.Equal(t, float32(1), qt.result.Results.SearchIteratorV2Results.LastBound) + } else { + assert.Equal(t, float32(kRows), qt.result.Results.SearchIteratorV2Results.LastBound) + } + } + }) + + t.Run("test search iterator v2 with empty result", func(t *testing.T) { + metrics := []string{metric.L2, metric.IP, metric.COSINE, metric.BM25} + for _, metricType := range metrics { + qt := createIteratorSearchTask(t, metricType, 0) + err = qt.PostExecute(ctx) + assert.NoError(t, err) + assert.Equal(t, kToken, qt.result.Results.SearchIteratorV2Results.Token) + if metric.PositivelyRelated(metricType) { + assert.Equal(t, float32(math.MaxFloat32), qt.result.Results.SearchIteratorV2Results.LastBound) + } else { + assert.Equal(t, float32(-math.MaxFloat32), qt.result.Results.SearchIteratorV2Results.LastBound) + } + } + }) + + t.Run("test search iterator v2 with empty result and incoming last bound", func(t *testing.T) { + metrics := []string{metric.L2, metric.IP, metric.COSINE, metric.BM25} + kLastBound := float32(10) + for _, metricType := range metrics { + qt := createIteratorSearchTask(t, metricType, 0) + qt.queryInfos[0].SearchIteratorV2Info.LastBound = &kLastBound + err = qt.PostExecute(ctx) + assert.NoError(t, err) + assert.Equal(t, kToken, qt.result.Results.SearchIteratorV2Results.Token) + assert.Equal(t, kLastBound, qt.result.Results.SearchIteratorV2Results.LastBound) + } + }) + }) } -func createColl(t *testing.T, name string, rc types.RootCoordClient) { +func createColl(t *testing.T, name string, rc types.RootCoordClient) *schemapb.CollectionSchema { schema := constructCollectionSchema(testInt64Field, testFloatVecField, testVecDim, name) marshaledSchema, err := proto.Marshal(schema) require.NoError(t, err) @@ -126,6 +243,8 @@ func createColl(t *testing.T, name string, rc types.RootCoordClient) { require.NoError(t, createColT.PreExecute(ctx)) require.NoError(t, createColT.Execute(ctx)) require.NoError(t, createColT.PostExecute(ctx)) + + return schema } func getBaseSearchParams() []*commonpb.KeyValuePair { @@ -2599,6 +2718,157 @@ func TestTaskSearch_parseSearchInfo(t *testing.T) { assert.True(t, strings.Contains(searchInfo.parseError.Error(), "failed to parse input group size")) } }) + + t.Run("check search iterator v2", func(t *testing.T) { + kBatchSize := uint32(10) + generateValidParamsForSearchIteratorV2 := func() []*commonpb.KeyValuePair { + param := getValidSearchParams() + return append(param, + &commonpb.KeyValuePair{ + Key: SearchIterV2Key, + Value: "True", + }, + &commonpb.KeyValuePair{ + Key: IteratorField, + Value: "True", + }, + &commonpb.KeyValuePair{ + Key: SearchIterBatchSizeKey, + Value: fmt.Sprintf("%d", kBatchSize), + }, + ) + } + + t.Run("iteratorV2 normal", func(t *testing.T) { + param := generateValidParamsForSearchIteratorV2() + searchInfo := parseSearchInfo(param, nil, nil) + assert.NoError(t, searchInfo.parseError) + assert.NotNil(t, searchInfo.planInfo) + assert.NotEmpty(t, searchInfo.planInfo.SearchIteratorV2Info.Token) + assert.Equal(t, kBatchSize, searchInfo.planInfo.SearchIteratorV2Info.BatchSize) + assert.Len(t, searchInfo.planInfo.SearchIteratorV2Info.Token, 36) + assert.Equal(t, int64(kBatchSize), searchInfo.planInfo.GetTopk()) // compatibility + }) + + t.Run("iteratorV2 without isIterator", func(t *testing.T) { + param := generateValidParamsForSearchIteratorV2() + resetSearchParamsValue(param, IteratorField, "False") + searchInfo := parseSearchInfo(param, nil, nil) + assert.Error(t, searchInfo.parseError) + assert.ErrorContains(t, searchInfo.parseError, "both") + }) + + t.Run("iteratorV2 with groupBy", func(t *testing.T) { + param := generateValidParamsForSearchIteratorV2() + param = append(param, &commonpb.KeyValuePair{ + Key: GroupByFieldKey, + Value: "string_field", + }) + fields := make([]*schemapb.FieldSchema, 0) + fields = append(fields, &schemapb.FieldSchema{ + FieldID: int64(101), + Name: "string_field", + }) + schema := &schemapb.CollectionSchema{ + Fields: fields, + } + searchInfo := parseSearchInfo(param, schema, nil) + assert.Error(t, searchInfo.parseError) + assert.ErrorContains(t, searchInfo.parseError, "roupBy") + }) + + t.Run("iteratorV2 with offset", func(t *testing.T) { + param := generateValidParamsForSearchIteratorV2() + param = append(param, &commonpb.KeyValuePair{ + Key: OffsetKey, + Value: "10", + }) + searchInfo := parseSearchInfo(param, nil, nil) + assert.Error(t, searchInfo.parseError) + assert.ErrorContains(t, searchInfo.parseError, "offset") + }) + + t.Run("iteratorV2 invalid token", func(t *testing.T) { + param := generateValidParamsForSearchIteratorV2() + param = append(param, &commonpb.KeyValuePair{ + Key: SearchIterIdKey, + Value: "invalid_token", + }) + searchInfo := parseSearchInfo(param, nil, nil) + assert.Error(t, searchInfo.parseError) + assert.ErrorContains(t, searchInfo.parseError, "invalid token format") + }) + + t.Run("iteratorV2 passed token must be same", func(t *testing.T) { + token, err := uuid.NewRandom() + assert.NoError(t, err) + param := generateValidParamsForSearchIteratorV2() + param = append(param, &commonpb.KeyValuePair{ + Key: SearchIterIdKey, + Value: token.String(), + }) + searchInfo := parseSearchInfo(param, nil, nil) + assert.NoError(t, searchInfo.parseError) + assert.NotEmpty(t, searchInfo.planInfo.SearchIteratorV2Info.Token) + assert.Equal(t, token.String(), searchInfo.planInfo.SearchIteratorV2Info.Token) + }) + + t.Run("iteratorV2 batch size", func(t *testing.T) { + param := generateValidParamsForSearchIteratorV2() + resetSearchParamsValue(param, SearchIterBatchSizeKey, "1.123") + searchInfo := parseSearchInfo(param, nil, nil) + assert.Error(t, searchInfo.parseError) + assert.ErrorContains(t, searchInfo.parseError, "batch size is invalid") + }) + + t.Run("iteratorV2 batch size", func(t *testing.T) { + param := generateValidParamsForSearchIteratorV2() + resetSearchParamsValue(param, SearchIterBatchSizeKey, "") + searchInfo := parseSearchInfo(param, nil, nil) + assert.Error(t, searchInfo.parseError) + assert.ErrorContains(t, searchInfo.parseError, "batch size is required") + }) + + t.Run("iteratorV2 batch size negative", func(t *testing.T) { + param := generateValidParamsForSearchIteratorV2() + resetSearchParamsValue(param, SearchIterBatchSizeKey, "-1") + searchInfo := parseSearchInfo(param, nil, nil) + assert.Error(t, searchInfo.parseError) + assert.ErrorContains(t, searchInfo.parseError, "batch size is invalid") + }) + + t.Run("iteratorV2 batch size too large", func(t *testing.T) { + param := generateValidParamsForSearchIteratorV2() + resetSearchParamsValue(param, SearchIterBatchSizeKey, fmt.Sprintf("%d", Params.QuotaConfig.TopKLimit.GetAsInt64()+1)) + searchInfo := parseSearchInfo(param, nil, nil) + assert.Error(t, searchInfo.parseError) + assert.ErrorContains(t, searchInfo.parseError, "batch size is invalid") + }) + + t.Run("iteratorV2 last bound", func(t *testing.T) { + kLastBound := float32(1.123) + param := generateValidParamsForSearchIteratorV2() + param = append(param, &commonpb.KeyValuePair{ + Key: SearchIterLastBoundKey, + Value: fmt.Sprintf("%f", kLastBound), + }) + searchInfo := parseSearchInfo(param, nil, nil) + assert.NoError(t, searchInfo.parseError) + assert.NotNil(t, searchInfo.planInfo) + assert.Equal(t, kLastBound, *searchInfo.planInfo.SearchIteratorV2Info.LastBound) + }) + + t.Run("iteratorV2 invalid last bound", func(t *testing.T) { + param := generateValidParamsForSearchIteratorV2() + param = append(param, &commonpb.KeyValuePair{ + Key: SearchIterLastBoundKey, + Value: "xxx", + }) + searchInfo := parseSearchInfo(param, nil, nil) + assert.Error(t, searchInfo.parseError) + assert.ErrorContains(t, searchInfo.parseError, "failed to parse input last bound") + }) + }) } func getSearchResultData(nq, topk int64) *schemapb.SearchResultData { From 5001878b8a1f84996bd92fcae57ec8a75e412814 Mon Sep 17 00:00:00 2001 From: Zhen Ye Date: Thu, 26 Dec 2024 11:32:50 +0800 Subject: [PATCH 21/69] enhance: only use streaming service on e2e and nightly e2e (#38743) issue: #38399 Signed-off-by: chyezh --- ci/jenkins/Nightly2.groovy | 2 +- ci/jenkins/PR.groovy | 37 +-- tests/_helm/values/e2e/distributed | 2 + .../values/e2e/distributed-streaming-service | 274 ------------------ tests/_helm/values/e2e/standalone | 2 + tests/_helm/values/e2e/standalone-kafka-mmap | 2 + tests/_helm/values/e2e/standalone-one-pod | 2 + tests/_helm/values/nightly/distributed-kafka | 2 + tests/_helm/values/nightly/distributed-pulsar | 2 + .../nightly/distributed-streaming-service | 76 ----- tests/_helm/values/nightly/standalone | 2 + .../values/nightly/standalone-authentication | 2 + tests/_helm/values/nightly/standalone-one-pod | 2 + 13 files changed, 29 insertions(+), 378 deletions(-) delete mode 100644 tests/_helm/values/e2e/distributed-streaming-service delete mode 100644 tests/_helm/values/nightly/distributed-streaming-service diff --git a/ci/jenkins/Nightly2.groovy b/ci/jenkins/Nightly2.groovy index e620c85f6f45a..17afcc7c54c15 100644 --- a/ci/jenkins/Nightly2.groovy +++ b/ci/jenkins/Nightly2.groovy @@ -96,7 +96,7 @@ pipeline { axes { axis { name 'milvus_deployment_option' - values 'standalone', 'distributed-pulsar', 'distributed-kafka', 'standalone-authentication', 'standalone-one-pod', 'distributed-streaming-service' + values 'standalone', 'distributed-pulsar', 'distributed-kafka', 'standalone-authentication', 'standalone-one-pod' } } stages { diff --git a/ci/jenkins/PR.groovy b/ci/jenkins/PR.groovy index 42a386dff521a..52a9bc21bc653 100644 --- a/ci/jenkins/PR.groovy +++ b/ci/jenkins/PR.groovy @@ -89,7 +89,7 @@ pipeline { axes { axis { name 'milvus_deployment_option' - values 'standalone', 'distributed', 'standalone-kafka-mmap', 'distributed-streaming-service' + values 'standalone', 'distributed', 'standalone-kafka-mmap' } } stages { @@ -100,32 +100,15 @@ pipeline { def helm_release_name = get_helm_release_name milvus_deployment_option // pvc name would be -volume-0, used for pytest result archiving def pvc = env.JENKINS_AGENT_NAME + '-volume-0' - - if (milvus_deployment_option == 'distributed-streaming-service') { - try { - tekton.pytest helm_release_name: helm_release_name, - pvc: pvc, - milvus_helm_version: milvus_helm_chart_version, - ciMode: 'e2e', - milvus_image_tag: milvus_image_tag, - pytest_image: pytest_image, - helm_image: helm_image, - milvus_deployment_option: milvus_deployment_option, - verbose: 'false' - } catch (Exception e) { - println e - } - } else { - tekton.pytest helm_release_name: helm_release_name, - pvc: pvc, - milvus_helm_version: milvus_helm_chart_version, - ciMode: 'e2e', - milvus_image_tag: milvus_image_tag, - pytest_image: pytest_image, - helm_image: helm_image, - milvus_deployment_option: milvus_deployment_option, - verbose: 'false' - } + tekton.pytest helm_release_name: helm_release_name, + pvc: pvc, + milvus_helm_version: milvus_helm_chart_version, + ciMode: 'e2e', + milvus_image_tag: milvus_image_tag, + pytest_image: pytest_image, + helm_image: helm_image, + milvus_deployment_option: milvus_deployment_option, + verbose: 'false' } } } diff --git a/tests/_helm/values/e2e/distributed b/tests/_helm/values/e2e/distributed index a906781c71859..2175becb185b3 100644 --- a/tests/_helm/values/e2e/distributed +++ b/tests/_helm/values/e2e/distributed @@ -8,6 +8,8 @@ affinity: weight: 1 cluster: enabled: true +streaming: + enabled: true dataCoordinator: resources: limits: diff --git a/tests/_helm/values/e2e/distributed-streaming-service b/tests/_helm/values/e2e/distributed-streaming-service deleted file mode 100644 index 2175becb185b3..0000000000000 --- a/tests/_helm/values/e2e/distributed-streaming-service +++ /dev/null @@ -1,274 +0,0 @@ -affinity: - nodeAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - preference: - matchExpressions: - - key: node-role.kubernetes.io/e2e - operator: Exists - weight: 1 -cluster: - enabled: true -streaming: - enabled: true -dataCoordinator: - resources: - limits: - cpu: "1" - requests: - cpu: "0.1" - memory: 50Mi -dataNode: - resources: - limits: - cpu: "2" - requests: - cpu: "0.5" - memory: 500Mi -etcd: - affinity: - nodeAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - preference: - matchExpressions: - - key: node-role.kubernetes.io/e2e - operator: Exists - weight: 1 - metrics: - enabled: true - podMonitor: - enabled: true - replicaCount: 1 - resources: - requests: - cpu: "0.3" - memory: 100Mi - tolerations: - - effect: NoSchedule - key: node-role.kubernetes.io/e2e - operator: Exists -image: - all: - pullPolicy: Always - repository: harbor.milvus.io/milvus/milvus - tag: PR-35426-20240812-46dadb120 -indexCoordinator: - gc: - interval: 1 - resources: - limits: - cpu: "1" - requests: - cpu: "0.1" - memory: 50Mi -indexNode: - disk: - enabled: true - resources: - limits: - cpu: "2" - requests: - cpu: "0.5" - memory: 500Mi -kafka: - affinity: - nodeAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - preference: - matchExpressions: - - key: node-role.kubernetes.io/e2e - operator: Exists - weight: 1 - resources: - requests: - cpu: "0.5" - memory: 1Gi - tolerations: - - effect: NoSchedule - key: node-role.kubernetes.io/e2e - operator: Exists - zookeeper: - replicaCount: 1 - resources: - requests: - cpu: "0.3" - memory: 512Mi -log: - level: debug -extraConfigFiles: - user.yaml: |+ - indexCoord: - scheduler: - interval: 100 - indexNode: - scheduler: - buildParallel: 4 -metrics: - serviceMonitor: - enabled: true -minio: - affinity: - nodeAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - preference: - matchExpressions: - - key: node-role.kubernetes.io/e2e - operator: Exists - weight: 1 - mode: standalone - resources: - requests: - cpu: "0.3" - memory: 512Mi - tolerations: - - effect: NoSchedule - key: node-role.kubernetes.io/e2e - operator: Exists -proxy: - resources: - limits: - cpu: "1" - requests: - cpu: "0.3" - memory: 256Mi -pulsar: - bookkeeper: - affinity: - nodeAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - preference: - matchExpressions: - - key: node-role.kubernetes.io/e2e - operator: Exists - weight: 1 - configData: - PULSAR_GC: | - -Dio.netty.leakDetectionLevel=disabled -Dio.netty.recycler.linkCapacity=1024 -XX:+UseG1GC -XX:MaxGCPauseMillis=10 -XX:+ParallelRefProcEnabled -XX:+UnlockExperimentalVMOptions -XX:+DoEscapeAnalysis -XX:ParallelGCThreads=32 -XX:ConcGCThreads=32 -XX:G1NewSizePercent=50 -XX:+DisableExplicitGC -XX:-ResizePLAB -XX:+ExitOnOutOfMemoryError -XX:+PerfDisableSharedMem -XX:+PrintGCDetails - PULSAR_MEM: | - -Xms4096m -Xmx4096m -XX:MaxDirectMemorySize=8192m - nettyMaxFrameSizeBytes: "104867840" - resources: - requests: - cpu: "0.5" - memory: 4Gi - tolerations: - - effect: NoSchedule - key: node-role.kubernetes.io/e2e - operator: Exists - broker: - affinity: - nodeAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - preference: - matchExpressions: - - key: node-role.kubernetes.io/e2e - operator: Exists - weight: 1 - configData: - PULSAR_GC: | - -Dio.netty.leakDetectionLevel=disabled -Dio.netty.recycler.linkCapacity=1024 -XX:+ParallelRefProcEnabled -XX:+UnlockExperimentalVMOptions -XX:+DoEscapeAnalysis -XX:ParallelGCThreads=32 -XX:ConcGCThreads=32 -XX:G1NewSizePercent=50 -XX:+DisableExplicitGC -XX:-ResizePLAB -XX:+ExitOnOutOfMemoryError - PULSAR_MEM: | - -Xms4096m -Xmx4096m -XX:MaxDirectMemorySize=8192m - backlogQuotaDefaultLimitGB: "8" - backlogQuotaDefaultRetentionPolicy: producer_exception - defaultRetentionSizeInMB: "8192" - defaultRetentionTimeInMinutes: "10080" - maxMessageSize: "104857600" - replicaCount: 2 - resources: - requests: - cpu: "0.5" - memory: 4Gi - tolerations: - - effect: NoSchedule - key: node-role.kubernetes.io/e2e - operator: Exists - components: - autorecovery: false - proxy: - affinity: - nodeAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - preference: - matchExpressions: - - key: node-role.kubernetes.io/e2e - operator: Exists - weight: 1 - configData: - PULSAR_GC: | - -XX:MaxDirectMemorySize=2048m - PULSAR_MEM: | - -Xms1024m -Xmx1024m - httpNumThreads: "50" - resources: - requests: - cpu: "0.5" - memory: 1Gi - tolerations: - - effect: NoSchedule - key: node-role.kubernetes.io/e2e - operator: Exists - wsResources: - requests: - cpu: "0.1" - memory: 100Mi - zookeeper: - affinity: - nodeAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - preference: - matchExpressions: - - key: node-role.kubernetes.io/e2e - operator: Exists - weight: 1 - configData: - PULSAR_GC: | - -Dcom.sun.management.jmxremote -Djute.maxbuffer=10485760 -XX:+ParallelRefProcEnabled -XX:+UnlockExperimentalVMOptions -XX:+DoEscapeAnalysis -XX:+DisableExplicitGC -XX:+PerfDisableSharedMem -Dzookeeper.forceSync=no - PULSAR_MEM: | - -Xms1024m -Xmx1024m - replicaCount: 1 - resources: - requests: - cpu: "0.3" - memory: 512Mi - tolerations: - - effect: NoSchedule - key: node-role.kubernetes.io/e2e - operator: Exists -queryCoordinator: - resources: - limits: - cpu: "1" - requests: - cpu: "0.2" - memory: 100Mi -queryNode: - disk: - enabled: true - resources: - limits: - cpu: "2" - requests: - cpu: "0.5" - memory: 500Mi -rootCoordinator: - resources: - limits: - cpu: "1" - requests: - cpu: "0.2" - memory: 256Mi -service: - type: ClusterIP -standalone: - disk: - enabled: true - resources: - limits: - cpu: "4" - requests: - cpu: "1" - memory: 3.5Gi -tolerations: -- effect: NoSchedule - key: node-role.kubernetes.io/e2e - operator: Exists diff --git a/tests/_helm/values/e2e/standalone b/tests/_helm/values/e2e/standalone index 9aaee6bca537f..568bc393e707d 100644 --- a/tests/_helm/values/e2e/standalone +++ b/tests/_helm/values/e2e/standalone @@ -8,6 +8,8 @@ affinity: weight: 1 cluster: enabled: false +streaming: + enabled: true dataCoordinator: resources: limits: diff --git a/tests/_helm/values/e2e/standalone-kafka-mmap b/tests/_helm/values/e2e/standalone-kafka-mmap index d15c71896f2c8..6464c2e79dcff 100644 --- a/tests/_helm/values/e2e/standalone-kafka-mmap +++ b/tests/_helm/values/e2e/standalone-kafka-mmap @@ -8,6 +8,8 @@ affinity: weight: 1 cluster: enabled: false +streaming: + enabled: true dataCoordinator: resources: limits: diff --git a/tests/_helm/values/e2e/standalone-one-pod b/tests/_helm/values/e2e/standalone-one-pod index 15e21e4cca1b3..73953f908bf48 100644 --- a/tests/_helm/values/e2e/standalone-one-pod +++ b/tests/_helm/values/e2e/standalone-one-pod @@ -8,6 +8,8 @@ affinity: weight: 1 cluster: enabled: false +streaming: + enabled: true etcd: enabled: false metrics: diff --git a/tests/_helm/values/nightly/distributed-kafka b/tests/_helm/values/nightly/distributed-kafka index fe4eb8f170e40..e673728606fbe 100644 --- a/tests/_helm/values/nightly/distributed-kafka +++ b/tests/_helm/values/nightly/distributed-kafka @@ -1,5 +1,7 @@ cluster: enabled: true +streaming: + enabled: true common: security: authorizationEnabled: false diff --git a/tests/_helm/values/nightly/distributed-pulsar b/tests/_helm/values/nightly/distributed-pulsar index e23cc0b4793bb..07a78d1ec2568 100644 --- a/tests/_helm/values/nightly/distributed-pulsar +++ b/tests/_helm/values/nightly/distributed-pulsar @@ -1,5 +1,7 @@ cluster: enabled: true +streaming: + enabled: true common: security: authorizationEnabled: false diff --git a/tests/_helm/values/nightly/distributed-streaming-service b/tests/_helm/values/nightly/distributed-streaming-service deleted file mode 100644 index 53b9495d3bc28..0000000000000 --- a/tests/_helm/values/nightly/distributed-streaming-service +++ /dev/null @@ -1,76 +0,0 @@ -cluster: - enabled: true -streaming: - enabled: true -common: - security: - authorizationEnabled: false -dataCoordinator: - gc: - dropTolerance: 86400 - missingTolerance: 86400 - profiling: - enabled: true -dataNode: - profiling: - enabled: true - replicas: 2 -etcd: - metrics: - enabled: true - podMonitor: - enabled: true -image: - all: - pullPolicy: Always - repository: harbor.milvus.io/milvus/milvus - tag: nightly-20240821-ed4eaff -indexCoordinator: - gc: - interval: 1 - profiling: - enabled: true -indexNode: - disk: - enabled: true - profiling: - enabled: true - replicas: 2 -kafka: - enabled: false - metrics: - jmx: - enabled: true - kafka: - enabled: true - serviceMonitor: - enabled: true -log: - level: debug -metrics: - serviceMonitor: - enabled: true -minio: - mode: standalone -proxy: - profiling: - enabled: true - replicas: 2 -pulsar: - broker: - replicaCount: 2 - enabled: true -queryCoordinator: - profiling: - enabled: true -queryNode: - disk: - enabled: true - profiling: - enabled: true - replicas: 2 -service: - type: ClusterIP -standalone: - disk: - enabled: true diff --git a/tests/_helm/values/nightly/standalone b/tests/_helm/values/nightly/standalone index ec37b40bda5de..98de25b173cc6 100644 --- a/tests/_helm/values/nightly/standalone +++ b/tests/_helm/values/nightly/standalone @@ -1,5 +1,7 @@ cluster: enabled: false +streaming: + enabled: true common: security: authorizationEnabled: false diff --git a/tests/_helm/values/nightly/standalone-authentication b/tests/_helm/values/nightly/standalone-authentication index 387965aae2752..68ef65f250f84 100644 --- a/tests/_helm/values/nightly/standalone-authentication +++ b/tests/_helm/values/nightly/standalone-authentication @@ -1,5 +1,7 @@ cluster: enabled: false +streaming: + enabled: true common: security: authorizationEnabled: true diff --git a/tests/_helm/values/nightly/standalone-one-pod b/tests/_helm/values/nightly/standalone-one-pod index 0ef90b172fa9f..589c2d5f580ad 100644 --- a/tests/_helm/values/nightly/standalone-one-pod +++ b/tests/_helm/values/nightly/standalone-one-pod @@ -8,6 +8,8 @@ affinity: weight: 1 cluster: enabled: false +streaming: + enabled: true common: security: authorizationEnabled: false From 94955e5292df629521471493b790a3a4690f559b Mon Sep 17 00:00:00 2001 From: sthuang <167743503+shaoting-huang@users.noreply.github.com> Date: Thu, 26 Dec 2024 15:38:50 +0800 Subject: [PATCH 22/69] fix: expand privilege group when list policy in rootcoord (#38758) related: https://github.com/milvus-io/milvus/issues/38757 Signed-off-by: shaoting-huang --- internal/metastore/catalog.go | 2 +- internal/metastore/kv/rootcoord/kv_catalog.go | 21 ++++-- .../metastore/kv/rootcoord/kv_catalog_test.go | 22 +++++-- .../metastore/mocks/mock_rootcoord_catalog.go | 14 ++-- internal/rootcoord/meta_table.go | 4 +- internal/rootcoord/mock_test.go | 6 +- internal/rootcoord/mocks/meta_table.go | 14 ++-- internal/rootcoord/root_coord.go | 43 +++++++++--- internal/rootcoord/root_coord_test.go | 66 +++++++++++++++++-- 9 files changed, 147 insertions(+), 45 deletions(-) diff --git a/internal/metastore/catalog.go b/internal/metastore/catalog.go index 4598dea4bf678..090296d11bf1d 100644 --- a/internal/metastore/catalog.go +++ b/internal/metastore/catalog.go @@ -77,7 +77,7 @@ type RootCoordCatalog interface { // ListGrant lists all grant infos accoording to entity for the tenant // Please make sure entity valid before calling this API ListGrant(ctx context.Context, tenant string, entity *milvuspb.GrantEntity) ([]*milvuspb.GrantEntity, error) - ListPolicy(ctx context.Context, tenant string) ([]string, error) + ListPolicy(ctx context.Context, tenant string) ([]*milvuspb.GrantEntity, error) // List all user role pair in string for the tenant // For example []string{"user1/role1"} ListUserRole(ctx context.Context, tenant string) ([]string, error) diff --git a/internal/metastore/kv/rootcoord/kv_catalog.go b/internal/metastore/kv/rootcoord/kv_catalog.go index 3ddf883fda316..4cccde3a8bf0b 100644 --- a/internal/metastore/kv/rootcoord/kv_catalog.go +++ b/internal/metastore/kv/rootcoord/kv_catalog.go @@ -1354,13 +1354,13 @@ func (kc *Catalog) DeleteGrant(ctx context.Context, tenant string, role *milvusp return err } -func (kc *Catalog) ListPolicy(ctx context.Context, tenant string) ([]string, error) { - var grantInfoStrs []string +func (kc *Catalog) ListPolicy(ctx context.Context, tenant string) ([]*milvuspb.GrantEntity, error) { + var grants []*milvuspb.GrantEntity granteeKey := funcutil.HandleTenantForEtcdKey(GranteePrefix, tenant, "") keys, values, err := kc.Txn.LoadWithPrefix(ctx, granteeKey) if err != nil { log.Ctx(ctx).Error("fail to load all grant privilege entities", zap.String("key", granteeKey), zap.Error(err)) - return []string{}, err + return []*milvuspb.GrantEntity{}, err } for i, key := range keys { @@ -1373,7 +1373,7 @@ func (kc *Catalog) ListPolicy(ctx context.Context, tenant string) ([]string, err idKeys, _, err := kc.Txn.LoadWithPrefix(ctx, granteeIDKey) if err != nil { log.Ctx(ctx).Error("fail to load the grantee ids", zap.String("key", granteeIDKey), zap.Error(err)) - return []string{}, err + return []*milvuspb.GrantEntity{}, err } for _, idKey := range idKeys { granteeIDInfos := typeutil.AfterN(idKey, granteeIDKey+"/", "/") @@ -1382,11 +1382,18 @@ func (kc *Catalog) ListPolicy(ctx context.Context, tenant string) ([]string, err continue } dbName, objectName := funcutil.SplitObjectName(grantInfos[2]) - grantInfoStrs = append(grantInfoStrs, - funcutil.PolicyForPrivilege(grantInfos[0], grantInfos[1], objectName, granteeIDInfos[0], dbName)) + grants = append(grants, &milvuspb.GrantEntity{ + Role: &milvuspb.RoleEntity{Name: grantInfos[0]}, + Object: &milvuspb.ObjectEntity{Name: grantInfos[1]}, + ObjectName: objectName, + DbName: dbName, + Grantor: &milvuspb.GrantorEntity{ + Privilege: &milvuspb.PrivilegeEntity{Name: util.PrivilegeNameForAPI(granteeIDInfos[0])}, + }, + }) } } - return grantInfoStrs, nil + return grants, nil } func (kc *Catalog) ListUserRole(ctx context.Context, tenant string) ([]string, error) { diff --git a/internal/metastore/kv/rootcoord/kv_catalog_test.go b/internal/metastore/kv/rootcoord/kv_catalog_test.go index dc3c0fde31149..dea07983bb501 100644 --- a/internal/metastore/kv/rootcoord/kv_catalog_test.go +++ b/internal/metastore/kv/rootcoord/kv_catalog_test.go @@ -2589,6 +2589,18 @@ func TestRBAC_Grant(t *testing.T) { secondLoadWithPrefixReturn atomic.Bool ) + grant := func(role, obj, objName, privilege, dbName string) *milvuspb.GrantEntity { + return &milvuspb.GrantEntity{ + Role: &milvuspb.RoleEntity{Name: role}, + Object: &milvuspb.ObjectEntity{Name: obj}, + ObjectName: objName, + DbName: dbName, + Grantor: &milvuspb.GrantorEntity{ + Privilege: &milvuspb.PrivilegeEntity{Name: util.PrivilegeNameForAPI(privilege)}, + }, + } + } + kvmock.EXPECT().LoadWithPrefix(mock.Anything, mock.Anything).Call.Return( func(ctx context.Context, key string) []string { contains := strings.Contains(key, GranteeIDPrefix) @@ -2661,11 +2673,11 @@ func TestRBAC_Grant(t *testing.T) { if test.isValid { assert.NoError(t, err) assert.Equal(t, 4, len(policy)) - ps := []string{ - funcutil.PolicyForPrivilege("role1", "obj1", "obj_name1", "PrivilegeLoad", "default"), - funcutil.PolicyForPrivilege("role1", "obj1", "obj_name1", "PrivilegeRelease", "default"), - funcutil.PolicyForPrivilege("role2", "obj2", "obj_name2", "PrivilegeLoad", "default"), - funcutil.PolicyForPrivilege("role2", "obj2", "obj_name2", "PrivilegeRelease", "default"), + ps := []*milvuspb.GrantEntity{ + grant("role1", "obj1", "obj_name1", "PrivilegeLoad", "default"), + grant("role1", "obj1", "obj_name1", "PrivilegeRelease", "default"), + grant("role2", "obj2", "obj_name2", "PrivilegeLoad", "default"), + grant("role2", "obj2", "obj_name2", "PrivilegeRelease", "default"), } assert.ElementsMatch(t, ps, policy) } else { diff --git a/internal/metastore/mocks/mock_rootcoord_catalog.go b/internal/metastore/mocks/mock_rootcoord_catalog.go index 8c35d288c1143..8bc119e07b671 100644 --- a/internal/metastore/mocks/mock_rootcoord_catalog.go +++ b/internal/metastore/mocks/mock_rootcoord_catalog.go @@ -1548,19 +1548,19 @@ func (_c *RootCoordCatalog_ListGrant_Call) RunAndReturn(run func(context.Context } // ListPolicy provides a mock function with given fields: ctx, tenant -func (_m *RootCoordCatalog) ListPolicy(ctx context.Context, tenant string) ([]string, error) { +func (_m *RootCoordCatalog) ListPolicy(ctx context.Context, tenant string) ([]*milvuspb.GrantEntity, error) { ret := _m.Called(ctx, tenant) - var r0 []string + var r0 []*milvuspb.GrantEntity var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) ([]string, error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, string) ([]*milvuspb.GrantEntity, error)); ok { return rf(ctx, tenant) } - if rf, ok := ret.Get(0).(func(context.Context, string) []string); ok { + if rf, ok := ret.Get(0).(func(context.Context, string) []*milvuspb.GrantEntity); ok { r0 = rf(ctx, tenant) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]string) + r0 = ret.Get(0).([]*milvuspb.GrantEntity) } } @@ -1592,12 +1592,12 @@ func (_c *RootCoordCatalog_ListPolicy_Call) Run(run func(ctx context.Context, te return _c } -func (_c *RootCoordCatalog_ListPolicy_Call) Return(_a0 []string, _a1 error) *RootCoordCatalog_ListPolicy_Call { +func (_c *RootCoordCatalog_ListPolicy_Call) Return(_a0 []*milvuspb.GrantEntity, _a1 error) *RootCoordCatalog_ListPolicy_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *RootCoordCatalog_ListPolicy_Call) RunAndReturn(run func(context.Context, string) ([]string, error)) *RootCoordCatalog_ListPolicy_Call { +func (_c *RootCoordCatalog_ListPolicy_Call) RunAndReturn(run func(context.Context, string) ([]*milvuspb.GrantEntity, error)) *RootCoordCatalog_ListPolicy_Call { _c.Call.Return(run) return _c } diff --git a/internal/rootcoord/meta_table.go b/internal/rootcoord/meta_table.go index 4dfc6d2a03158..9159caac0af81 100644 --- a/internal/rootcoord/meta_table.go +++ b/internal/rootcoord/meta_table.go @@ -98,7 +98,7 @@ type IMetaTable interface { OperatePrivilege(ctx context.Context, tenant string, entity *milvuspb.GrantEntity, operateType milvuspb.OperatePrivilegeType) error SelectGrant(ctx context.Context, tenant string, entity *milvuspb.GrantEntity) ([]*milvuspb.GrantEntity, error) DropGrant(ctx context.Context, tenant string, role *milvuspb.RoleEntity) error - ListPolicy(ctx context.Context, tenant string) ([]string, error) + ListPolicy(ctx context.Context, tenant string) ([]*milvuspb.GrantEntity, error) ListUserRole(ctx context.Context, tenant string) ([]string, error) BackupRBAC(ctx context.Context, tenant string) (*milvuspb.RBACMeta, error) RestoreRBAC(ctx context.Context, tenant string, meta *milvuspb.RBACMeta) error @@ -1497,7 +1497,7 @@ func (mt *MetaTable) DropGrant(ctx context.Context, tenant string, role *milvusp return mt.catalog.DeleteGrant(ctx, tenant, role) } -func (mt *MetaTable) ListPolicy(ctx context.Context, tenant string) ([]string, error) { +func (mt *MetaTable) ListPolicy(ctx context.Context, tenant string) ([]*milvuspb.GrantEntity, error) { mt.permissionLock.RLock() defer mt.permissionLock.RUnlock() diff --git a/internal/rootcoord/mock_test.go b/internal/rootcoord/mock_test.go index 5f59f27c1246a..20ab510c0df9d 100644 --- a/internal/rootcoord/mock_test.go +++ b/internal/rootcoord/mock_test.go @@ -94,7 +94,7 @@ type mockMetaTable struct { OperatePrivilegeFunc func(ctx context.Context, tenant string, entity *milvuspb.GrantEntity, operateType milvuspb.OperatePrivilegeType) error SelectGrantFunc func(ctx context.Context, tenant string, entity *milvuspb.GrantEntity) ([]*milvuspb.GrantEntity, error) DropGrantFunc func(ctx context.Context, tenant string, role *milvuspb.RoleEntity) error - ListPolicyFunc func(ctx context.Context, tenant string) ([]string, error) + ListPolicyFunc func(ctx context.Context, tenant string) ([]*milvuspb.GrantEntity, error) ListUserRoleFunc func(ctx context.Context, tenant string) ([]string, error) DescribeDatabaseFunc func(ctx context.Context, dbName string) (*model.Database, error) CreatePrivilegeGroupFunc func(ctx context.Context, groupName string) error @@ -249,7 +249,7 @@ func (m mockMetaTable) DropGrant(ctx context.Context, tenant string, role *milvu return m.DropGrantFunc(ctx, tenant, role) } -func (m mockMetaTable) ListPolicy(ctx context.Context, tenant string) ([]string, error) { +func (m mockMetaTable) ListPolicy(ctx context.Context, tenant string) ([]*milvuspb.GrantEntity, error) { return m.ListPolicyFunc(ctx, tenant) } @@ -542,7 +542,7 @@ func withInvalidMeta() Opt { meta.DropGrantFunc = func(ctx context.Context, tenant string, role *milvuspb.RoleEntity) error { return errors.New("error mock DropGrant") } - meta.ListPolicyFunc = func(ctx context.Context, tenant string) ([]string, error) { + meta.ListPolicyFunc = func(ctx context.Context, tenant string) ([]*milvuspb.GrantEntity, error) { return nil, errors.New("error mock ListPolicy") } meta.ListUserRoleFunc = func(ctx context.Context, tenant string) ([]string, error) { diff --git a/internal/rootcoord/mocks/meta_table.go b/internal/rootcoord/mocks/meta_table.go index 3574ec369a630..cb617224a9eec 100644 --- a/internal/rootcoord/mocks/meta_table.go +++ b/internal/rootcoord/mocks/meta_table.go @@ -2165,23 +2165,23 @@ func (_c *IMetaTable_ListDatabases_Call) RunAndReturn(run func(context.Context, } // ListPolicy provides a mock function with given fields: ctx, tenant -func (_m *IMetaTable) ListPolicy(ctx context.Context, tenant string) ([]string, error) { +func (_m *IMetaTable) ListPolicy(ctx context.Context, tenant string) ([]*milvuspb.GrantEntity, error) { ret := _m.Called(ctx, tenant) if len(ret) == 0 { panic("no return value specified for ListPolicy") } - var r0 []string + var r0 []*milvuspb.GrantEntity var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) ([]string, error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, string) ([]*milvuspb.GrantEntity, error)); ok { return rf(ctx, tenant) } - if rf, ok := ret.Get(0).(func(context.Context, string) []string); ok { + if rf, ok := ret.Get(0).(func(context.Context, string) []*milvuspb.GrantEntity); ok { r0 = rf(ctx, tenant) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]string) + r0 = ret.Get(0).([]*milvuspb.GrantEntity) } } @@ -2213,12 +2213,12 @@ func (_c *IMetaTable_ListPolicy_Call) Run(run func(ctx context.Context, tenant s return _c } -func (_c *IMetaTable_ListPolicy_Call) Return(_a0 []string, _a1 error) *IMetaTable_ListPolicy_Call { +func (_c *IMetaTable_ListPolicy_Call) Return(_a0 []*milvuspb.GrantEntity, _a1 error) *IMetaTable_ListPolicy_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *IMetaTable_ListPolicy_Call) RunAndReturn(run func(context.Context, string) ([]string, error)) *IMetaTable_ListPolicy_Call { +func (_c *IMetaTable_ListPolicy_Call) RunAndReturn(run func(context.Context, string) ([]*milvuspb.GrantEntity, error)) *IMetaTable_ListPolicy_Call { _c.Call.Return(run) return _c } diff --git a/internal/rootcoord/root_coord.go b/internal/rootcoord/root_coord.go index c36a046dd8e48..708e365ae7920 100644 --- a/internal/rootcoord/root_coord.go +++ b/internal/rootcoord/root_coord.go @@ -2712,8 +2712,7 @@ func (c *Core) OperatePrivilege(ctx context.Context, in *milvuspb.OperatePrivile } grants := []*milvuspb.GrantEntity{in.Entity} - allGroups, err := c.meta.ListPrivilegeGroups(ctx) - allGroups = append(allGroups, Params.RbacConfig.GetDefaultPrivilegeGroups()...) + allGroups, err := c.getPrivilegeGroups(ctx) if err != nil { return nil, err } @@ -2901,31 +2900,47 @@ func (c *Core) ListPolicy(ctx context.Context, in *internalpb.ListPolicyRequest) Status: merr.StatusWithErrorCode(errors.New(errMsg), commonpb.ErrorCode_ListPolicyFailure), }, nil } - userRoles, err := c.meta.ListUserRole(ctx, util.DefaultTenant) + // expand privilege groups and turn to policies + allGroups, err := c.getPrivilegeGroups(ctx) if err != nil { - errMsg := "fail to list user-role" - ctxLog.Warn(errMsg, zap.Any("in", in), zap.Error(err)) + errMsg := "fail to get privilege groups" + ctxLog.Warn(errMsg, zap.Error(err)) return &internalpb.ListPolicyResponse{ Status: merr.StatusWithErrorCode(errors.New(errMsg), commonpb.ErrorCode_ListPolicyFailure), }, nil } - privGroups, err := c.meta.ListPrivilegeGroups(ctx) + groups := lo.SliceToMap(allGroups, func(group *milvuspb.PrivilegeGroupInfo) (string, []*milvuspb.PrivilegeEntity) { + return group.GroupName, group.Privileges + }) + expandGrants, err := c.expandPrivilegeGroups(ctx, policies, groups) if err != nil { - errMsg := "fail to list privilege groups" + errMsg := "fail to expand privilege groups" ctxLog.Warn(errMsg, zap.Error(err)) return &internalpb.ListPolicyResponse{ Status: merr.StatusWithErrorCode(errors.New(errMsg), commonpb.ErrorCode_ListPolicyFailure), }, nil } + expandPolicies := lo.Map(expandGrants, func(r *milvuspb.GrantEntity, _ int) string { + return funcutil.PolicyForPrivilege(r.Role.Name, r.Object.Name, r.ObjectName, r.Grantor.Privilege.Name, r.DbName) + }) + + userRoles, err := c.meta.ListUserRole(ctx, util.DefaultTenant) + if err != nil { + errMsg := "fail to list user-role" + ctxLog.Warn(errMsg, zap.Any("in", in), zap.Error(err)) + return &internalpb.ListPolicyResponse{ + Status: merr.StatusWithErrorCode(errors.New(errMsg), commonpb.ErrorCode_ListPolicyFailure), + }, nil + } ctxLog.Debug(method + " success") metrics.RootCoordDDLReqCounter.WithLabelValues(method, metrics.SuccessLabel).Inc() metrics.RootCoordDDLReqLatency.WithLabelValues(method).Observe(float64(tr.ElapseSpan().Milliseconds())) return &internalpb.ListPolicyResponse{ Status: merr.Success(), - PolicyInfos: policies, + PolicyInfos: expandPolicies, UserRoles: userRoles, - PrivilegeGroups: privGroups, + PrivilegeGroups: allGroups, }, nil } @@ -3397,3 +3412,13 @@ func (c *Core) expandPrivilegeGroups(ctx context.Context, grants []*milvuspb.Gra return fmt.Sprintf("%s-%s-%s-%s-%s-%s", g.Role, g.Object, g.ObjectName, g.Grantor.User, g.Grantor.Privilege.Name, g.DbName) }), nil } + +// getPrivilegeGroups returns default privilege groups and user-defined privilege groups. +func (c *Core) getPrivilegeGroups(ctx context.Context) ([]*milvuspb.PrivilegeGroupInfo, error) { + allGroups, err := c.meta.ListPrivilegeGroups(ctx) + allGroups = append(allGroups, Params.RbacConfig.GetDefaultPrivilegeGroups()...) + if err != nil { + return nil, err + } + return allGroups, nil +} diff --git a/internal/rootcoord/root_coord_test.go b/internal/rootcoord/root_coord_test.go index bf92be38d7102..cbb5be1c92f18 100644 --- a/internal/rootcoord/root_coord_test.go +++ b/internal/rootcoord/root_coord_test.go @@ -1054,6 +1054,34 @@ func TestRootCoord_RenameCollection(t *testing.T) { }) } +func TestRootCoord_ListPolicy(t *testing.T) { + t.Run("expand privilege groups", func(t *testing.T) { + meta := mockrootcoord.NewIMetaTable(t) + c := newTestCore(withHealthyCode(), withMeta(meta)) + ctx := context.Background() + + meta.EXPECT().ListPolicy(ctx, util.DefaultTenant).Return([]*milvuspb.GrantEntity{ + { + ObjectName: "*", + Object: &milvuspb.ObjectEntity{ + Name: "Global", + }, + Role: &milvuspb.RoleEntity{Name: "role"}, + Grantor: &milvuspb.GrantorEntity{Privilege: &milvuspb.PrivilegeEntity{Name: "CollectionAdmin"}}, + }, + }, nil) + + meta.EXPECT().ListPrivilegeGroups(ctx).Return([]*milvuspb.PrivilegeGroupInfo{}, nil) + + meta.EXPECT().ListUserRole(ctx, util.DefaultTenant).Return([]string{}, nil) + + resp, err := c.ListPolicy(ctx, &internalpb.ListPolicyRequest{}) + assert.Equal(t, len(Params.RbacConfig.GetDefaultPrivilegeGroup("CollectionAdmin").Privileges), len(resp.PolicyInfos)) + assert.NoError(t, err) + assert.Equal(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode) + }) +} + func TestRootCoord_ShowConfigurations(t *testing.T) { t.Run("not healthy", func(t *testing.T) { ctx := context.Background() @@ -1917,14 +1945,44 @@ func TestRootCoord_RBACError(t *testing.T) { assert.NotEqual(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode()) mockMeta := c.meta.(*mockMetaTable) - mockMeta.ListPolicyFunc = func(ctx context.Context, tenant string) ([]string, error) { - return []string{}, nil + mockMeta.ListPolicyFunc = func(ctx context.Context, tenant string) ([]*milvuspb.GrantEntity, error) { + return []*milvuspb.GrantEntity{{ + ObjectName: "*", + Object: &milvuspb.ObjectEntity{ + Name: "Global", + }, + Role: &milvuspb.RoleEntity{Name: "role"}, + Grantor: &milvuspb.GrantorEntity{Privilege: &milvuspb.PrivilegeEntity{Name: "CustomGroup"}}, + }}, nil } resp, err = c.ListPolicy(ctx, &internalpb.ListPolicyRequest{}) assert.NoError(t, err) assert.NotEqual(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode()) - mockMeta.ListPolicyFunc = func(ctx context.Context, tenant string) ([]string, error) { - return []string{}, errors.New("mock error") + mockMeta.ListPrivilegeGroupsFunc = func(ctx context.Context) ([]*milvuspb.PrivilegeGroupInfo, error) { + return []*milvuspb.PrivilegeGroupInfo{ + { + GroupName: "CollectionAdmin", + Privileges: []*milvuspb.PrivilegeEntity{{Name: "CreateCollection"}}, + }, + }, nil + } + resp, err = c.ListPolicy(ctx, &internalpb.ListPolicyRequest{}) + assert.NoError(t, err) + assert.NotEqual(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode()) + mockMeta.IsCustomPrivilegeGroupFunc = func(ctx context.Context, groupName string) (bool, error) { + return true, nil + } + resp, err = c.ListPolicy(ctx, &internalpb.ListPolicyRequest{}) + assert.NoError(t, err) + assert.NotEqual(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode()) + mockMeta.ListPolicyFunc = func(ctx context.Context, tenant string) ([]*milvuspb.GrantEntity, error) { + return []*milvuspb.GrantEntity{}, errors.New("mock error") + } + mockMeta.ListPrivilegeGroupsFunc = func(ctx context.Context) ([]*milvuspb.PrivilegeGroupInfo, error) { + return []*milvuspb.PrivilegeGroupInfo{}, errors.New("mock error") + } + mockMeta.IsCustomPrivilegeGroupFunc = func(ctx context.Context, groupName string) (bool, error) { + return false, errors.New("mock error") } }) } From 4df444ef25c5c353f2e98602fd3f90728cedfe92 Mon Sep 17 00:00:00 2001 From: XuanYang-cn Date: Thu, 26 Dec 2024 18:58:56 +0800 Subject: [PATCH 23/69] fix: Aviod add negative missing count (#38748) See also: #34665 Signed-off-by: yangxuan --- internal/datanode/compaction/compactor_common.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/datanode/compaction/compactor_common.go b/internal/datanode/compaction/compactor_common.go index d21b681154e1d..2ff9c15b4edfc 100644 --- a/internal/datanode/compaction/compactor_common.go +++ b/internal/datanode/compaction/compactor_common.go @@ -84,7 +84,11 @@ func (filter *EntityFilter) GetDeltalogDeleteCount() int { } func (filter *EntityFilter) GetMissingDeleteCount() int { - return filter.GetDeltalogDeleteCount() - filter.GetDeletedCount() + diff := filter.GetDeltalogDeleteCount() - filter.GetDeletedCount() + if diff <= 0 { + diff = 0 + } + return diff } func (filter *EntityFilter) isEntityDeleted(pk interface{}, pkTs typeutil.Timestamp) bool { From 19052ef3e5b06ce80cf10f2ad82268e3cf8a0597 Mon Sep 17 00:00:00 2001 From: congqixia Date: Fri, 27 Dec 2024 12:20:50 +0800 Subject: [PATCH 24/69] enhance: Add buffered writer to reduce fwrite syscall (#38570) Related to previous PR #38157 If mmapped row is too small, frequent fwrite call still cost too much cpu time for context switching. This PR add buffered write to avoid this bad case with extra buffer per variable field. --------- Signed-off-by: Congqi Xia --- internal/core/src/common/File.h | 92 ++++++++++++++++++++++++++++++--- internal/core/src/mmap/Utils.h | 52 ++++++------------- 2 files changed, 101 insertions(+), 43 deletions(-) diff --git a/internal/core/src/common/File.h b/internal/core/src/common/File.h index 4d9b765be3fcc..4015df78e6473 100644 --- a/internal/core/src/common/File.h +++ b/internal/core/src/common/File.h @@ -21,6 +21,13 @@ #include namespace milvus { + +#define THROW_FILE_WRITE_ERROR \ + PanicInfo(ErrorCode::FileWriteFailed, \ + fmt::format("write data to file {} failed, error code {}", \ + file_.Path(), \ + strerror(errno))); + class File { public: File(const File& file) = delete; @@ -36,12 +43,26 @@ class File { static File Open(const std::string_view filepath, int flags) { + // using default buf size = 4096 + return Open(filepath, flags, 4096); + } + + static File + Open(const std::string_view filepath, int flags, size_t buf_size) { int fd = open(filepath.data(), flags, S_IRUSR | S_IWUSR); AssertInfo(fd != -1, "failed to create mmap file {}: {}", filepath, strerror(errno)); - return File(fd, std::string(filepath)); + FILE* fs = fdopen(fd, "wb+"); + AssertInfo(fs != nullptr, + "failed to open file {}: {}", + filepath, + strerror(errno)); + auto f = File(fd, fs, std::string(filepath)); + // setup buffer size file stream will use + setvbuf(f.fs_, nullptr, _IOFBF, buf_size); + return f; } int @@ -94,16 +115,71 @@ class File { } private: - explicit File(int fd, const std::string& filepath) - : fd_(fd), filepath_(filepath) { - fs_ = fdopen(fd_, "wb+"); - AssertInfo(fs_ != nullptr, - "failed to open file {}: {}", - filepath, - strerror(errno)); + explicit File(int fd, FILE* fs, const std::string& filepath) + : fd_(fd), filepath_(filepath), fs_(fs) { } int fd_{-1}; FILE* fs_; std::string filepath_; }; + +class BufferedWriter { + public: + // Constructor: Initialize with the file pointer and the buffer size (default 4KB). + explicit BufferedWriter(File& file, size_t buffer_size = 4096) + : file_(file), + buffer_size_(buffer_size), + buffer_(new char[buffer_size]) { + } + + ~BufferedWriter() { + // Ensure the buffer is flushed when the object is destroyed + flush(); + delete[] buffer_; + } + + // Write method to handle data larger than the buffer + void + Write(const void* data, size_t size) { + if (size > buffer_size_) { + flush(); + ssize_t written_data_size = file_.FWrite(data, size); + if (written_data_size != size) { + THROW_FILE_WRITE_ERROR + } + return; + } + + if (buffer_pos_ + size > buffer_size_) { + flush(); + } + + std::memcpy(buffer_ + buffer_pos_, data, size); + buffer_pos_ += size; + } + + template , int> = 0> + void + WriteInt(T value) { + Write(&value, sizeof(value)); + } + + // Flush method: Write the contents of the buffer to the file + void + flush() { + if (buffer_pos_ > 0) { + ssize_t written_data_size = file_.FWrite(buffer_, buffer_pos_); + if (written_data_size != buffer_pos_) { + THROW_FILE_WRITE_ERROR + } + buffer_pos_ = 0; + } + } + + private: + File& file_; // File pointer + size_t buffer_size_; // Size of the internal buffer + char* buffer_; // The buffer itself + size_t buffer_pos_{0}; // Current position in the buffer +}; } // namespace milvus diff --git a/internal/core/src/mmap/Utils.h b/internal/core/src/mmap/Utils.h index dbf815eb4979e..c93165df31812 100644 --- a/internal/core/src/mmap/Utils.h +++ b/internal/core/src/mmap/Utils.h @@ -93,6 +93,9 @@ WriteFieldData(File& file, std::vector>& element_indices, FixedVector& valid_data) { if (IsVariableDataType(data_type)) { + // use buffered writer to reduce fwrite/write syscall + // buffer size = 1024*1024 = 1MB + BufferedWriter bw = BufferedWriter(file, 1048576); switch (data_type) { case DataType::VARCHAR: case DataType::STRING: { @@ -101,17 +104,10 @@ WriteFieldData(File& file, indices.push_back(total_written); auto str = static_cast(data->RawValue(i)); - ssize_t written_data_size = - file.FWriteInt(uint32_t(str->size())); - if (written_data_size != sizeof(uint32_t)) { - THROW_FILE_WRITE_ERROR - } - total_written += written_data_size; - auto written_data = file.FWrite(str->data(), str->size()); - if (written_data < str->size()) { - THROW_FILE_WRITE_ERROR - } - total_written += written_data; + bw.WriteInt(static_cast(str->size())); + total_written += sizeof(uint32_t); + bw.Write(str->data(), str->size()); + total_written += str->size(); } break; } @@ -121,18 +117,11 @@ WriteFieldData(File& file, indices.push_back(total_written); auto padded_string = static_cast(data->RawValue(i))->data(); - ssize_t written_data_size = file.FWriteInt( - uint32_t(padded_string.size())); - if (written_data_size != sizeof(uint32_t)) { - THROW_FILE_WRITE_ERROR - } - total_written += written_data_size; - ssize_t written_data = - file.FWrite(padded_string.data(), padded_string.size()); - if (written_data < padded_string.size()) { - THROW_FILE_WRITE_ERROR - } - total_written += written_data; + bw.WriteInt( + static_cast(padded_string.size())); + total_written += padded_string.size(); + bw.Write(padded_string.data(), padded_string.size()); + total_written += padded_string.size(); } break; } @@ -141,13 +130,9 @@ WriteFieldData(File& file, for (size_t i = 0; i < data->get_num_rows(); ++i) { indices.push_back(total_written); auto array = static_cast(data->RawValue(i)); - ssize_t written = - file.FWrite(array->data(), array->byte_size()); - if (written < array->byte_size()) { - THROW_FILE_WRITE_ERROR - } + bw.Write(array->data(), array->byte_size()); element_indices.emplace_back(array->get_offsets()); - total_written += written; + total_written += array->byte_size(); } break; } @@ -157,12 +142,8 @@ WriteFieldData(File& file, auto vec = static_cast*>( data->RawValue(i)); - ssize_t written = - file.FWrite(vec->data(), vec->data_byte_size()); - if (written < vec->data_byte_size()) { - break; - } - total_written += written; + bw.Write(vec->data(), vec->data_byte_size()); + total_written += vec->data_byte_size(); } break; } @@ -171,6 +152,7 @@ WriteFieldData(File& file, "not supported data type {}", GetDataTypeName(data_type)); } + bw.flush(); } else { // write as: data|data|data|data|data|data...... size_t written = file.FWrite(data->Data(), data->DataSize()); From 18a3bc779437b1b1b143c6cf3ce220219e65a0d5 Mon Sep 17 00:00:00 2001 From: sre-ci-robot <56469371+sre-ci-robot@users.noreply.github.com> Date: Fri, 27 Dec 2024 13:58:58 +0800 Subject: [PATCH 25/69] [automated] Bump milvus version to v2.5.1 (#38802) Bump milvus version to v2.5.1 Signed-off-by: sre-ci-robot sre-ci-robot@users.noreply.github.com Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- scripts/standalone_embed.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/standalone_embed.sh b/scripts/standalone_embed.sh index a3ea8d33197d7..dffa27ae858e3 100755 --- a/scripts/standalone_embed.sh +++ b/scripts/standalone_embed.sh @@ -47,7 +47,7 @@ EOF --health-start-period=90s \ --health-timeout=20s \ --health-retries=3 \ - milvusdb/milvus:v2.5.0 \ + milvusdb/milvus:v2.5.1 \ milvus run standalone 1> /dev/null } From a882f341f44b49184b061e3ee4e4a263540166d8 Mon Sep 17 00:00:00 2001 From: congqixia Date: Fri, 27 Dec 2024 14:20:51 +0800 Subject: [PATCH 26/69] enhance: [GoSDK] Add APIs for backup tool (#38791) Related to #31291 This PR: - Add Backup&Restore RBAC APIs - Add GetPersistentSegmentInfo API - Add GetServerVersion API - Add flush task stats --------- Signed-off-by: Congqi Xia --- client/entity/rbac.go | 28 +++ client/entity/segment.go | 34 +++ client/milvusclient/admin.go | 230 ++++++++++++++++++++ client/milvusclient/admin_test.go | 228 +++++++++++++++++++ client/milvusclient/maintenance.go | 29 ++- tests/go_client/testcases/partition_test.go | 3 +- 6 files changed, 541 insertions(+), 11 deletions(-) create mode 100644 client/entity/segment.go create mode 100644 client/milvusclient/admin.go create mode 100644 client/milvusclient/admin_test.go diff --git a/client/entity/rbac.go b/client/entity/rbac.go index b3c3fa11d2e89..9ff38961acb85 100644 --- a/client/entity/rbac.go +++ b/client/entity/rbac.go @@ -33,3 +33,31 @@ type GrantItem struct { Grantor string Privilege string } + +type UserInfo struct { + UserDescription + Password string +} + +// UserDescription is the model for RBAC user description object. +type UserDescription struct { + Name string + Roles []string +} + +type RBACMeta struct { + Users []*UserInfo + Roles []*Role + RoleGrants []*RoleGrants + PrivilegeGroups []*PrivilegeGroup +} + +// RoleGrants is the model for RBAC role description object. +type RoleGrants struct { + Object string + ObjectName string + RoleName string + GrantorName string + PrivilegeName string + DbName string +} diff --git a/client/entity/segment.go b/client/entity/segment.go new file mode 100644 index 0000000000000..bc3cca4451c22 --- /dev/null +++ b/client/entity/segment.go @@ -0,0 +1,34 @@ +// Licensed to the LF AI & Data foundation under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package entity + +import "github.com/milvus-io/milvus-proto/go-api/v2/commonpb" + +// Segment represent segment in milvus +type Segment struct { + ID int64 + CollectionID int64 + ParititionID int64 + + NumRows int64 + State commonpb.SegmentState +} + +// Flushed indicates segment is flushed +func (s Segment) Flushed() bool { + return s.State == commonpb.SegmentState_Flushed +} diff --git a/client/milvusclient/admin.go b/client/milvusclient/admin.go new file mode 100644 index 0000000000000..d7e15fa1ac5c8 --- /dev/null +++ b/client/milvusclient/admin.go @@ -0,0 +1,230 @@ +// Licensed to the LF AI & Data foundation under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package milvusclient + +import ( + "context" + + "github.com/samber/lo" + "google.golang.org/grpc" + + "github.com/milvus-io/milvus-proto/go-api/v2/milvuspb" + "github.com/milvus-io/milvus/client/v2/entity" + "github.com/milvus-io/milvus/pkg/util/merr" +) + +// GetServerVersionOption is the interface for GetServerVersion request. +type GetServerVersionOption interface { + Request() *milvuspb.GetVersionRequest +} + +type getServerVersionOption struct{} + +func (opt *getServerVersionOption) Request() *milvuspb.GetVersionRequest { + return &milvuspb.GetVersionRequest{} +} + +func NewGetServerVersionOption() *getServerVersionOption { + return &getServerVersionOption{} +} + +// GetServerVersion returns connect Milvus instance version. +func (c *Client) GetServerVersion(ctx context.Context, option GetServerVersionOption, callOptions ...grpc.CallOption) (string, error) { + req := option.Request() + + var version string + + err := c.callService(func(milvusService milvuspb.MilvusServiceClient) error { + resp, err := milvusService.GetVersion(ctx, req, callOptions...) + version = resp.GetVersion() + return merr.CheckRPCCall(resp, err) + }) + return version, err +} + +type GetPersistentSegmentInfoOption interface { + Request() *milvuspb.GetPersistentSegmentInfoRequest +} + +type getPersistentSegmentInfoOption struct { + collectionName string +} + +func (opt *getPersistentSegmentInfoOption) Request() *milvuspb.GetPersistentSegmentInfoRequest { + return &milvuspb.GetPersistentSegmentInfoRequest{ + CollectionName: opt.collectionName, + } +} + +func NewGetPersistentSegmentInfoOption(collectionName string) GetPersistentSegmentInfoOption { + return &getPersistentSegmentInfoOption{ + collectionName: collectionName, + } +} + +func (c *Client) GetPersistentSegmentInfo(ctx context.Context, option GetPersistentSegmentInfoOption) ([]*entity.Segment, error) { + req := option.Request() + + var segments []*entity.Segment + + err := c.callService(func(milvusService milvuspb.MilvusServiceClient) error { + resp, err := milvusService.GetPersistentSegmentInfo(ctx, req) + if err = merr.CheckRPCCall(resp, err); err != nil { + return err + } + + segments = lo.Map(resp.GetInfos(), func(info *milvuspb.PersistentSegmentInfo, _ int) *entity.Segment { + return &entity.Segment{ + ID: info.GetSegmentID(), + CollectionID: info.GetCollectionID(), + ParititionID: info.GetPartitionID(), + NumRows: info.GetNumRows(), + State: info.GetState(), + } + }) + return nil + }) + + return segments, err +} + +type BackupRBACOption interface { + Request() *milvuspb.BackupRBACMetaRequest +} + +type backupRBACOption struct{} + +func (opt *backupRBACOption) Request() *milvuspb.BackupRBACMetaRequest { + return &milvuspb.BackupRBACMetaRequest{} +} + +func NewBackupRBACOption() BackupRBACOption { + return &backupRBACOption{} +} + +func (c *Client) BackupRBAC(ctx context.Context, option BackupRBACOption, callOptions ...grpc.CallOption) (*entity.RBACMeta, error) { + req := option.Request() + + var meta *entity.RBACMeta + + err := c.callService(func(milvusService milvuspb.MilvusServiceClient) error { + resp, err := milvusService.BackupRBAC(ctx, req, callOptions...) + if err = merr.CheckRPCCall(resp, err); err != nil { + return err + } + + rbacMeta := resp.GetRBACMeta() + + meta = &entity.RBACMeta{ + Users: lo.Map(rbacMeta.GetUsers(), func(user *milvuspb.UserInfo, _ int) *entity.UserInfo { + return &entity.UserInfo{ + UserDescription: entity.UserDescription{ + Name: user.GetUser(), + Roles: lo.Map(user.GetRoles(), func(role *milvuspb.RoleEntity, _ int) string { return role.GetName() }), + }, + Password: user.GetPassword(), + } + }), + Roles: lo.Map(rbacMeta.GetRoles(), func(role *milvuspb.RoleEntity, _ int) *entity.Role { + return &entity.Role{ + RoleName: role.GetName(), + } + }), + RoleGrants: lo.Map(rbacMeta.GetGrants(), func(grant *milvuspb.GrantEntity, _ int) *entity.RoleGrants { + return &entity.RoleGrants{ + Object: grant.GetObject().GetName(), + ObjectName: grant.GetObjectName(), + RoleName: grant.GetRole().GetName(), + GrantorName: grant.GetGrantor().GetUser().GetName(), + PrivilegeName: grant.GetGrantor().GetPrivilege().GetName(), + DbName: grant.GetDbName(), + } + }), + PrivilegeGroups: lo.Map(rbacMeta.GetPrivilegeGroups(), func(group *milvuspb.PrivilegeGroupInfo, _ int) *entity.PrivilegeGroup { + return &entity.PrivilegeGroup{ + GroupName: group.GetGroupName(), + Privileges: lo.Map(group.GetPrivileges(), func(privilege *milvuspb.PrivilegeEntity, _ int) string { return privilege.GetName() }), + } + }), + } + + return nil + }) + return meta, err +} + +type RestoreRBACOption interface { + Request() *milvuspb.RestoreRBACMetaRequest +} + +type restoreRBACOption struct { + meta *entity.RBACMeta +} + +func (opt *restoreRBACOption) Request() *milvuspb.RestoreRBACMetaRequest { + return &milvuspb.RestoreRBACMetaRequest{ + RBACMeta: &milvuspb.RBACMeta{ + Users: lo.Map(opt.meta.Users, func(user *entity.UserInfo, _ int) *milvuspb.UserInfo { + return &milvuspb.UserInfo{ + User: user.Name, + Roles: lo.Map(user.Roles, func(role string, _ int) *milvuspb.RoleEntity { return &milvuspb.RoleEntity{Name: role} }), + Password: user.Password, + } + }), + Roles: lo.Map(opt.meta.Roles, func(role *entity.Role, _ int) *milvuspb.RoleEntity { + return &milvuspb.RoleEntity{Name: role.RoleName} + }), + Grants: lo.Map(opt.meta.RoleGrants, func(grant *entity.RoleGrants, _ int) *milvuspb.GrantEntity { + return &milvuspb.GrantEntity{ + Object: &milvuspb.ObjectEntity{Name: grant.Object}, + ObjectName: grant.ObjectName, + Role: &milvuspb.RoleEntity{Name: grant.RoleName}, + Grantor: &milvuspb.GrantorEntity{ + User: &milvuspb.UserEntity{ + Name: grant.GrantorName, + }, + Privilege: &milvuspb.PrivilegeEntity{ + Name: grant.PrivilegeName, + }, + }, + DbName: grant.DbName, + } + }), + PrivilegeGroups: lo.Map(opt.meta.PrivilegeGroups, func(group *entity.PrivilegeGroup, _ int) *milvuspb.PrivilegeGroupInfo { + return &milvuspb.PrivilegeGroupInfo{ + GroupName: group.GroupName, + Privileges: lo.Map(group.Privileges, func(privilege string, _ int) *milvuspb.PrivilegeEntity { + return &milvuspb.PrivilegeEntity{Name: privilege} + }), + } + }), + }, + } +} + +func NewRestoreRBACOption(meta *entity.RBACMeta) RestoreRBACOption { + return &restoreRBACOption{meta: meta} +} + +func (c *Client) RestoreRBAC(ctx context.Context, option RestoreRBACOption, callOptions ...grpc.CallOption) error { + req := option.Request() + + return c.callService(func(milvusService milvuspb.MilvusServiceClient) error { + resp, err := milvusService.RestoreRBAC(ctx, req, callOptions...) + return merr.CheckRPCCall(resp, err) + }) +} diff --git a/client/milvusclient/admin_test.go b/client/milvusclient/admin_test.go new file mode 100644 index 0000000000000..fe0bd8f9da284 --- /dev/null +++ b/client/milvusclient/admin_test.go @@ -0,0 +1,228 @@ +// Licensed to the LF AI & Data foundation under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package milvusclient + +import ( + "context" + "fmt" + "math/rand" + "testing" + + "github.com/samber/lo" + "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/suite" + + "github.com/milvus-io/milvus-proto/go-api/v2/commonpb" + "github.com/milvus-io/milvus-proto/go-api/v2/milvuspb" + "github.com/milvus-io/milvus/client/v2/entity" + "github.com/milvus-io/milvus/pkg/util/merr" +) + +type AdminSuite struct { + MockSuiteBase +} + +func (s *AdminSuite) TestGetServerVersion() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + s.Run("success", func() { + version := fmt.Sprintf("v%s", s.randString(6)) + + s.mock.EXPECT().GetVersion(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, gvr *milvuspb.GetVersionRequest) (*milvuspb.GetVersionResponse, error) { + return &milvuspb.GetVersionResponse{ + Status: merr.Success(), + Version: version, + }, nil + }).Once() + + v, err := s.client.GetServerVersion(ctx, NewGetServerVersionOption()) + s.NoError(err) + s.Equal(version, v) + }) + + s.Run("failure", func() { + s.mock.EXPECT().GetVersion(mock.Anything, mock.Anything).Return(nil, merr.WrapErrServiceInternal("mocked")).Once() + + _, err := s.client.GetServerVersion(ctx, NewGetServerVersionOption()) + s.Error(err) + }) +} + +func (s *AdminSuite) TestGetPersistentSegmentInfo() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + s.Run("success", func() { + collectionName := fmt.Sprintf("coll_%s", s.randString(6)) + segments := []*entity.Segment{ + {ID: rand.Int63(), CollectionID: rand.Int63(), ParititionID: rand.Int63(), NumRows: rand.Int63(), State: commonpb.SegmentState_Flushed}, + {ID: rand.Int63(), CollectionID: rand.Int63(), ParititionID: rand.Int63(), NumRows: rand.Int63(), State: commonpb.SegmentState_Flushed}, + } + + s.mock.EXPECT().GetPersistentSegmentInfo(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, gpsi *milvuspb.GetPersistentSegmentInfoRequest) (*milvuspb.GetPersistentSegmentInfoResponse, error) { + return &milvuspb.GetPersistentSegmentInfoResponse{ + Status: merr.Success(), + Infos: lo.Map(segments, func(segment *entity.Segment, _ int) *milvuspb.PersistentSegmentInfo { + return &milvuspb.PersistentSegmentInfo{ + SegmentID: segment.ID, + CollectionID: segment.CollectionID, + PartitionID: segment.ParititionID, + NumRows: segment.NumRows, + State: segment.State, + } + }), + }, nil + }).Once() + + segments, err := s.client.GetPersistentSegmentInfo(ctx, NewGetPersistentSegmentInfoOption(collectionName)) + s.NoError(err) + s.Equal(segments, segments) + }) + + s.Run("failure", func() { + s.mock.EXPECT().GetPersistentSegmentInfo(mock.Anything, mock.Anything).Return(nil, merr.WrapErrServiceInternal("mocked")).Once() + + _, err := s.client.GetPersistentSegmentInfo(ctx, &getPersistentSegmentInfoOption{collectionName: "coll"}) + s.Error(err) + }) +} + +func (s *AdminSuite) TestBackupRBAC() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + s.Run("success", func() { + s.mock.EXPECT().BackupRBAC(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, brr *milvuspb.BackupRBACMetaRequest) (*milvuspb.BackupRBACMetaResponse, error) { + return &milvuspb.BackupRBACMetaResponse{ + Status: merr.Success(), + RBACMeta: &milvuspb.RBACMeta{ + Users: []*milvuspb.UserInfo{ + { + User: "user1", + Password: "passwd", + Roles: []*milvuspb.RoleEntity{ + {Name: "role1"}, + }, + }, + }, + Roles: []*milvuspb.RoleEntity{ + {Name: "role1"}, + }, + Grants: []*milvuspb.GrantEntity{ + { + Object: &milvuspb.ObjectEntity{ + Name: "testObject", + }, + ObjectName: "testObjectName", + Role: &milvuspb.RoleEntity{ + Name: "testRole", + }, + Grantor: &milvuspb.GrantorEntity{ + User: &milvuspb.UserEntity{ + Name: "grantorUser", + }, + Privilege: &milvuspb.PrivilegeEntity{ + Name: "testPrivilege", + }, + }, + DbName: "testDB", + }, + }, + PrivilegeGroups: []*milvuspb.PrivilegeGroupInfo{ + { + GroupName: "testGroup", + Privileges: []*milvuspb.PrivilegeEntity{ + {Name: "testPrivilege"}, + }, + }, + }, + }, + }, nil + }).Once() + + meta, err := s.client.BackupRBAC(ctx, NewBackupRBACOption()) + s.NoError(err) + s.Len(meta.Users, 1) + s.Len(meta.Roles, 1) + s.Len(meta.RoleGrants, 1) + s.Len(meta.PrivilegeGroups, 1) + }) + + s.Run("failure", func() { + s.mock.EXPECT().BackupRBAC(mock.Anything, mock.Anything).Return(nil, merr.WrapErrServiceInternal("mocked")).Once() + + _, err := s.client.BackupRBAC(ctx, NewBackupRBACOption()) + s.Error(err) + }) +} + +func (s *AdminSuite) TestRestoreRBAC() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + s.Run("success", func() { + meta := &entity.RBACMeta{ + Users: []*entity.UserInfo{ + { + UserDescription: entity.UserDescription{ + Name: "user1", + Roles: []string{"role1"}, + }, + Password: "passwd", + }, + }, + Roles: []*entity.Role{ + {RoleName: "role1"}, + }, + RoleGrants: []*entity.RoleGrants{ + { + Object: "testObject", + ObjectName: "testObjectName", + RoleName: "testRole", + GrantorName: "grantorUser", + PrivilegeName: "testPrivilege", + DbName: "testDB", + }, + }, + PrivilegeGroups: []*entity.PrivilegeGroup{ + { + GroupName: "testGroup", + Privileges: []string{"testPrivilege"}, + }, + }, + } + + s.mock.EXPECT().RestoreRBAC(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, rrr *milvuspb.RestoreRBACMetaRequest) (*commonpb.Status, error) { + return merr.Success(), nil + }).Once() + + err := s.client.RestoreRBAC(ctx, NewRestoreRBACOption(meta)) + s.NoError(err) + }) + + s.Run("failure", func() { + s.mock.EXPECT().RestoreRBAC(mock.Anything, mock.Anything).Return(nil, merr.WrapErrServiceInternal("mocked")).Once() + + err := s.client.RestoreRBAC(ctx, NewRestoreRBACOption(&entity.RBACMeta{})) + s.Error(err) + }) +} + +func TestAdminAPIs(t *testing.T) { + suite.Run(t, new(AdminSuite)) +} diff --git a/client/milvusclient/maintenance.go b/client/milvusclient/maintenance.go index bbf7a636ebe3b..98c70f23f99f7 100644 --- a/client/milvusclient/maintenance.go +++ b/client/milvusclient/maintenance.go @@ -23,6 +23,7 @@ import ( "google.golang.org/grpc" "github.com/milvus-io/milvus-proto/go-api/v2/milvuspb" + "github.com/milvus-io/milvus-proto/go-api/v2/msgpb" "github.com/milvus-io/milvus/client/v2/entity" "github.com/milvus-io/milvus/pkg/util/merr" ) @@ -190,11 +191,13 @@ func (c *Client) RefreshLoad(ctx context.Context, option RefreshLoadOption, call } type FlushTask struct { - client *Client - collectionName string - segmentIDs []int64 - flushTs uint64 - interval time.Duration + client *Client + collectionName string + segmentIDs []int64 + flusheSegIDs []int64 + flushTs uint64 + channelCheckpoints map[string]*msgpb.MsgPosition + interval time.Duration } func (t *FlushTask) Await(ctx context.Context) error { @@ -237,6 +240,10 @@ func (t *FlushTask) Await(ctx context.Context) error { } } +func (t *FlushTask) GetFlushStats() (segIDs []int64, flushSegIDs []int64, flushTs uint64, channelCheckpoints map[string]*msgpb.MsgPosition) { + return t.segmentIDs, t.flusheSegIDs, t.flushTs, t.channelCheckpoints +} + func (c *Client) Flush(ctx context.Context, option FlushOption, callOptions ...grpc.CallOption) (*FlushTask, error) { req := option.Request() collectionName := option.CollectionName() @@ -250,11 +257,13 @@ func (c *Client) Flush(ctx context.Context, option FlushOption, callOptions ...g } task = &FlushTask{ - client: c, - collectionName: collectionName, - segmentIDs: resp.GetCollSegIDs()[collectionName].GetData(), - flushTs: resp.GetCollFlushTs()[collectionName], - interval: option.CheckInterval(), + client: c, + collectionName: collectionName, + segmentIDs: resp.GetCollSegIDs()[collectionName].GetData(), + flusheSegIDs: resp.GetFlushCollSegIDs()[collectionName].GetData(), + flushTs: resp.GetCollFlushTs()[collectionName], + channelCheckpoints: resp.GetChannelCps(), + interval: option.CheckInterval(), } return nil diff --git a/tests/go_client/testcases/partition_test.go b/tests/go_client/testcases/partition_test.go index 61c1f9e256f56..de8e6d3818158 100644 --- a/tests/go_client/testcases/partition_test.go +++ b/tests/go_client/testcases/partition_test.go @@ -106,7 +106,8 @@ func TestCreatePartitionInvalid(t *testing.T) { } func TestPartitionsNumExceedsMax(t *testing.T) { - ctx := hp.CreateContext(t, time.Second*common.DefaultTimeout) + // 120 seconds may timeout for 1024 partitions + ctx := hp.CreateContext(t, time.Second*300) mc := createDefaultMilvusClient(ctx, t) // create collection From 4ba0ed31788f33d658e71a6aa13e3db610eef40b Mon Sep 17 00:00:00 2001 From: Zhen Ye Date: Fri, 27 Dec 2024 15:08:50 +0800 Subject: [PATCH 27/69] enhance: speed up streaming barrier timetick (#38787) issue: #38399 - use last allocate but not last confirmed id to make barrier. - move the barrier logic into the timetick allocator. - try to sync up local allocator and remote allocator when first barrier check not pass to speed up. Signed-off-by: chyezh --- .../server/resource/idalloc/allocator.go | 82 ++++++++++++++++--- .../server/resource/idalloc/allocator_test.go | 49 +++++++++++ .../resource/idalloc/basic_allocator.go | 5 +- .../wal/interceptors/timetick/ack/manager.go | 31 +++---- 4 files changed, 135 insertions(+), 32 deletions(-) diff --git a/internal/streamingnode/server/resource/idalloc/allocator.go b/internal/streamingnode/server/resource/idalloc/allocator.go index f614d6f5ec3d6..1a296891f656d 100644 --- a/internal/streamingnode/server/resource/idalloc/allocator.go +++ b/internal/streamingnode/server/resource/idalloc/allocator.go @@ -21,6 +21,8 @@ import ( "sync" "time" + "github.com/cockroachdb/errors" + "github.com/milvus-io/milvus/internal/types" "github.com/milvus-io/milvus/pkg/util/syncutil" ) @@ -33,7 +35,7 @@ var _ Allocator = (*allocatorImpl)(nil) // NewTSOAllocator creates a new allocator. func NewTSOAllocator(rc *syncutil.Future[types.RootCoordClient]) Allocator { return &allocatorImpl{ - mu: sync.Mutex{}, + cond: syncutil.NewContextCond(&sync.Mutex{}), remoteAllocator: newTSOAllocator(rc), localAllocator: newLocalAllocator(), } @@ -42,7 +44,7 @@ func NewTSOAllocator(rc *syncutil.Future[types.RootCoordClient]) Allocator { // NewIDAllocator creates a new allocator. func NewIDAllocator(rc *syncutil.Future[types.RootCoordClient]) Allocator { return &allocatorImpl{ - mu: sync.Mutex{}, + cond: syncutil.NewContextCond(&sync.Mutex{}), remoteAllocator: newIDAllocator(rc), localAllocator: newLocalAllocator(), } @@ -56,6 +58,9 @@ type Allocator interface { // Allocate allocates a timestamp. Allocate(ctx context.Context) (uint64, error) + // BarrierUtil make a barrier, next allocate call will generate id greater than barrier. + BarrierUntil(ctx context.Context, barrier uint64) error + // Sync expire the local allocator messages, // syncs the local allocator and remote allocator. Sync() @@ -65,37 +70,92 @@ type Allocator interface { } type allocatorImpl struct { - mu sync.Mutex + cond *syncutil.ContextCond remoteAllocator remoteBatchAllocator lastSyncTime time.Time + lastAllocated uint64 localAllocator *localAllocator } -// AllocateOne allocates a timestamp. func (ta *allocatorImpl) Allocate(ctx context.Context) (uint64, error) { - ta.mu.Lock() - defer ta.mu.Unlock() + ta.cond.L.Lock() + defer ta.cond.L.Unlock() + + return ta.allocateOne(ctx) +} + +func (ta *allocatorImpl) BarrierUntil(ctx context.Context, barrier uint64) error { + err := ta.barrierFastPath(ctx, barrier) + if err == nil { + return nil + } + if !errors.Is(err, errFastPathFailed) { + return err + } + + // Fall back to the slow path to avoid block other id allocation opeartions. + ta.cond.L.Lock() + for ta.lastAllocated < barrier { + if err := ta.cond.Wait(ctx); err != nil { + return err + } + } + ta.cond.L.Unlock() + return nil +} + +func (ta *allocatorImpl) barrierFastPath(ctx context.Context, barrier uint64) error { + ta.cond.L.Lock() + defer ta.cond.L.Unlock() + + for i := 0; i < 2; i++ { + id, err := ta.allocateOne(ctx) + if err != nil { + return err + } + + // check if the allocated id is greater than barrier. + if id >= barrier { + return nil + } + if i == 0 { + // force to syncup the local allocator and remote allocator at first time. + // It's the fast path if the barrier is allocated from same remote allocator. + ta.localAllocator.exhausted() + } + } + return errFastPathFailed +} +func (ta *allocatorImpl) allocateOne(ctx context.Context) (uint64, error) { // allocate one from local allocator first. if id, err := ta.localAllocator.allocateOne(); err == nil { + ta.lastAllocated = id + ta.cond.UnsafeBroadcast() return id, nil } // allocate from remote. - return ta.allocateRemote(ctx) + id, err := ta.allocateRemote(ctx) + if err != nil { + return 0, err + } + ta.lastAllocated = id + ta.cond.UnsafeBroadcast() + return id, nil } // Sync expire the local allocator messages, // syncs the local allocator and remote allocator. func (ta *allocatorImpl) Sync() { - ta.mu.Lock() - defer ta.mu.Unlock() + ta.cond.L.Lock() + defer ta.cond.L.Unlock() ta.localAllocator.exhausted() } func (ta *allocatorImpl) SyncIfExpired(expire time.Duration) { - ta.mu.Lock() - defer ta.mu.Unlock() + ta.cond.L.Lock() + defer ta.cond.L.Unlock() if time.Since(ta.lastSyncTime) > expire { ta.localAllocator.exhausted() diff --git a/internal/streamingnode/server/resource/idalloc/allocator_test.go b/internal/streamingnode/server/resource/idalloc/allocator_test.go index 26eb9e90c2b1a..305c917c5be74 100644 --- a/internal/streamingnode/server/resource/idalloc/allocator_test.go +++ b/internal/streamingnode/server/resource/idalloc/allocator_test.go @@ -58,3 +58,52 @@ func TestTimestampAllocator(t *testing.T) { _, err := allocator.Allocate(context.Background()) assert.Error(t, err) } + +func TestIDAllocator(t *testing.T) { + paramtable.Init() + paramtable.SetNodeID(1) + + client := NewMockRootCoordClient(t) + f := syncutil.NewFuture[types.RootCoordClient]() + f.Set(client) + + allocator := NewIDAllocator(f) + + // Make local dirty + allocator.Allocate(context.Background()) + // Test barrier fast path. + resp, err := client.AllocID(context.Background(), &rootcoordpb.AllocIDRequest{ + Count: 100, + }) + assert.NoError(t, err) + err = allocator.BarrierUntil(context.Background(), uint64(resp.ID)) + assert.NoError(t, err) + newBarrierTimeTick, err := allocator.Allocate(context.Background()) + assert.NoError(t, err) + assert.Greater(t, newBarrierTimeTick, uint64(resp.ID)) + + // Test slow path. + ch := make(chan struct{}) + go func() { + barrier := newBarrierTimeTick + 1*batchAllocateSize + err := allocator.BarrierUntil(context.Background(), barrier) + assert.NoError(t, err) + newBarrierTimeTick, err := allocator.Allocate(context.Background()) + assert.NoError(t, err) + assert.Greater(t, newBarrierTimeTick, barrier) + close(ch) + }() + select { + case <-ch: + assert.Fail(t, "should not finish") + case <-time.After(time.Millisecond * 20): + } + allocator.Sync() + _, err = allocator.Allocate(context.Background()) + assert.NoError(t, err) + <-ch + + allocator.SyncIfExpired(time.Millisecond * 50) + time.Sleep(time.Millisecond * 10) + allocator.SyncIfExpired(time.Millisecond * 10) +} diff --git a/internal/streamingnode/server/resource/idalloc/basic_allocator.go b/internal/streamingnode/server/resource/idalloc/basic_allocator.go index 8b9e220cc410a..ad49c5192a03b 100644 --- a/internal/streamingnode/server/resource/idalloc/basic_allocator.go +++ b/internal/streamingnode/server/resource/idalloc/basic_allocator.go @@ -15,7 +15,10 @@ import ( "github.com/milvus-io/milvus/pkg/util/syncutil" ) -var errExhausted = errors.New("exhausted") +var ( + errExhausted = errors.New("exhausted") + errFastPathFailed = errors.New("fast path failed") +) // newLocalAllocator creates a new local allocator. func newLocalAllocator() *localAllocator { diff --git a/internal/streamingnode/server/wal/interceptors/timetick/ack/manager.go b/internal/streamingnode/server/wal/interceptors/timetick/ack/manager.go index 362c90cb526a6..7b93365cbfcfe 100644 --- a/internal/streamingnode/server/wal/interceptors/timetick/ack/manager.go +++ b/internal/streamingnode/server/wal/interceptors/timetick/ack/manager.go @@ -8,13 +8,12 @@ import ( "github.com/milvus-io/milvus/internal/streamingnode/server/resource" "github.com/milvus-io/milvus/internal/streamingnode/server/wal/metricsutil" "github.com/milvus-io/milvus/pkg/streaming/util/message" - "github.com/milvus-io/milvus/pkg/util/syncutil" "github.com/milvus-io/milvus/pkg/util/typeutil" ) // AckManager manages the timestampAck. type AckManager struct { - cond *syncutil.ContextCond + mu sync.Mutex lastAllocatedTimeTick uint64 // The last allocated time tick, the latest timestamp allocated by the allocator. lastConfirmedTimeTick uint64 // The last confirmed time tick, the message which time tick less than lastConfirmedTimeTick has been committed into wal. notAckHeap typeutil.Heap[*Acker] // A minimum heap of timestampAck to search minimum allocated but not ack timestamp in list. @@ -34,7 +33,7 @@ func NewAckManager( metrics *metricsutil.TimeTickMetrics, ) *AckManager { return &AckManager{ - cond: syncutil.NewContextCond(&sync.Mutex{}), + mu: sync.Mutex{}, lastAllocatedTimeTick: 0, notAckHeap: typeutil.NewHeap[*Acker](&ackersOrderByTimestamp{}), ackHeap: typeutil.NewHeap[*Acker](&ackersOrderByEndTimestamp{}), @@ -46,23 +45,18 @@ func NewAckManager( // AllocateWithBarrier allocates a timestamp with a barrier. func (ta *AckManager) AllocateWithBarrier(ctx context.Context, barrierTimeTick uint64) (*Acker, error) { - // wait until the lastConfirmedTimeTick is greater than barrierTimeTick. - ta.cond.L.Lock() - for ta.lastConfirmedTimeTick <= barrierTimeTick { - if err := ta.cond.Wait(ctx); err != nil { - return nil, err - } + // Just make a barrier to the underlying allocator. + if err := resource.Resource().TSOAllocator().BarrierUntil(ctx, barrierTimeTick); err != nil { + return nil, err } - ta.cond.L.Unlock() - return ta.Allocate(ctx) } // Allocate allocates a timestamp. // Concurrent safe to call with Sync and Allocate. func (ta *AckManager) Allocate(ctx context.Context) (*Acker, error) { - ta.cond.L.Lock() - defer ta.cond.L.Unlock() + ta.mu.Lock() + defer ta.mu.Unlock() // allocate one from underlying allocator first. ts, err := resource.Resource().TSOAllocator().Allocate(ctx) @@ -97,8 +91,8 @@ func (ta *AckManager) SyncAndGetAcknowledged(ctx context.Context) ([]*AckDetail, } tsWithAck.Ack(OptSync()) - ta.cond.L.Lock() - defer ta.cond.L.Unlock() + ta.mu.Lock() + defer ta.mu.Unlock() details := ta.acknowledgedDetails ta.acknowledgedDetails = make(sortedDetails, 0, 5) @@ -107,8 +101,8 @@ func (ta *AckManager) SyncAndGetAcknowledged(ctx context.Context) ([]*AckDetail, // ack marks the timestamp as acknowledged. func (ta *AckManager) ack(acker *Acker) { - ta.cond.L.Lock() - defer ta.cond.L.Unlock() + ta.mu.Lock() + defer ta.mu.Unlock() acker.acknowledged = true acker.detail.EndTimestamp = ta.lastAllocatedTimeTick @@ -129,9 +123,6 @@ func (ta *AckManager) popUntilLastAllAcknowledged() { return } - // broadcast to notify the last confirmed timetick updated. - ta.cond.UnsafeBroadcast() - // update last confirmed time tick. ta.lastConfirmedTimeTick = acknowledgedDetails[len(acknowledgedDetails)-1].BeginTimestamp ta.metrics.UpdateLastConfirmedTimeTick(ta.lastConfirmedTimeTick) From d433b754cec591695ea58fe7966f44e85902dbad Mon Sep 17 00:00:00 2001 From: zhuwenxing Date: Fri, 27 Dec 2024 16:58:50 +0800 Subject: [PATCH 28/69] test: [skip e2e]remove secure=True in connections (#38779) Signed-off-by: zhuwenxing --- tests/python_client/chaos/test_chaos_apply.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/python_client/chaos/test_chaos_apply.py b/tests/python_client/chaos/test_chaos_apply.py index f1367803bf4c6..76789da9a736e 100644 --- a/tests/python_client/chaos/test_chaos_apply.py +++ b/tests/python_client/chaos/test_chaos_apply.py @@ -19,8 +19,7 @@ class TestChaosApply: @pytest.fixture(scope="function", autouse=True) def init_env(self, host, port, user, password, milvus_ns): if user and password: - # log.info(f"connect to {host}:{port} with user {user} and password {password}") - connections.connect('default', host=host, port=port, user=user, password=password, secure=True) + connections.connect('default', host=host, port=port, user=user, password=password) else: connections.connect('default', host=host, port=port) if connections.has_connection("default") is False: From 2557e3f2a975c62a8cdac86e4a281696d755b49e Mon Sep 17 00:00:00 2001 From: Bingyi Sun Date: Fri, 27 Dec 2024 18:00:50 +0800 Subject: [PATCH 29/69] enhance: Initialize field id to avoid negative number (#38789) Signed-off-by: sunby --- internal/core/unittest/test_chunked_segment.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/core/unittest/test_chunked_segment.cpp b/internal/core/unittest/test_chunked_segment.cpp index 84987ccdbacf7..adc149215a285 100644 --- a/internal/core/unittest/test_chunked_segment.cpp +++ b/internal/core/unittest/test_chunked_segment.cpp @@ -340,6 +340,7 @@ TEST_F(TestChunkSegment, TestCompareExpr) { file_manager_ctx.fieldDataMeta.field_schema.set_data_type( milvus::proto::schema::Int64); file_manager_ctx.fieldDataMeta.field_schema.set_fieldid(fid.get()); + file_manager_ctx.fieldDataMeta.field_id = fid.get(); index::CreateIndexInfo create_index_info; create_index_info.field_type = DataType::INT64; create_index_info.index_type = index::INVERTED_INDEX_TYPE; From c39452f384dcde3e69f9d2be3b05ea99acfcfef1 Mon Sep 17 00:00:00 2001 From: congqixia Date: Fri, 27 Dec 2024 18:26:50 +0800 Subject: [PATCH 30/69] enhance: [GoSDK] Support alter properties APIs (#38812) Related to #31293 This PR: - Add AlterDatabaseProperties API - Add DropDatabaseProperties API - Add DescribeDatabase API - Rename AlterCollection to AlterCollectionProperties - Add DropCollectionProperties API - Add AlterCollectionFieldProperties API Signed-off-by: Congqi Xia --- client/entity/database.go | 22 +++++ client/milvusclient/collection.go | 20 ++++- .../milvusclient/collection_example_test.go | 2 +- client/milvusclient/collection_options.go | 66 +++++++++++++-- client/milvusclient/collection_test.go | 64 +++++++++++++- client/milvusclient/database.go | 40 +++++++++ client/milvusclient/database_options.go | 78 ++++++++++++++++- client/milvusclient/database_test.go | 83 +++++++++++++++++++ 8 files changed, 363 insertions(+), 12 deletions(-) create mode 100644 client/entity/database.go diff --git a/client/entity/database.go b/client/entity/database.go new file mode 100644 index 0000000000000..87cfdbd580e42 --- /dev/null +++ b/client/entity/database.go @@ -0,0 +1,22 @@ +// Licensed to the LF AI & Data foundation under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package entity + +type Database struct { + Name string + Properties map[string]string +} diff --git a/client/milvusclient/collection.go b/client/milvusclient/collection.go index 025942bcfa865..f723916c2b7ad 100644 --- a/client/milvusclient/collection.go +++ b/client/milvusclient/collection.go @@ -139,7 +139,7 @@ func (c *Client) RenameCollection(ctx context.Context, option RenameCollectionOp }) } -func (c *Client) AlterCollection(ctx context.Context, option AlterCollectionOption, callOptions ...grpc.CallOption) error { +func (c *Client) AlterCollectionProperties(ctx context.Context, option AlterCollectionPropertiesOption, callOptions ...grpc.CallOption) error { req := option.Request() return c.callService(func(milvusService milvuspb.MilvusServiceClient) error { @@ -148,6 +148,24 @@ func (c *Client) AlterCollection(ctx context.Context, option AlterCollectionOpti }) } +func (c *Client) DropCollectionProperties(ctx context.Context, option DropCollectionPropertiesOption, callOptions ...grpc.CallOption) error { + req := option.Request() + + return c.callService(func(milvusService milvuspb.MilvusServiceClient) error { + resp, err := milvusService.AlterCollection(ctx, req, callOptions...) + return merr.CheckRPCCall(resp, err) + }) +} + +func (c *Client) AlterCollectionFieldProperty(ctx context.Context, option AlterCollectionFieldPropertiesOption, callOptions ...grpc.CallOption) error { + req := option.Request() + + return c.callService(func(milvusService milvuspb.MilvusServiceClient) error { + resp, err := milvusService.AlterCollectionField(ctx, req, callOptions...) + return merr.CheckRPCCall(resp, err) + }) +} + type GetCollectionOption interface { Request() *milvuspb.GetCollectionStatisticsRequest } diff --git a/client/milvusclient/collection_example_test.go b/client/milvusclient/collection_example_test.go index 612335cff816f..1d573e27e4e12 100644 --- a/client/milvusclient/collection_example_test.go +++ b/client/milvusclient/collection_example_test.go @@ -260,7 +260,7 @@ func ExampleClient_AlterCollection_setTTL() { defer cli.Close(ctx) - err = cli.AlterCollection(ctx, milvusclient.NewAlterCollectionOption("my_collection").WithProperty(common.CollectionTTLConfigKey, 60)) + err = cli.AlterCollectionProperties(ctx, milvusclient.NewAlterCollectionPropertiesOption("my_collection").WithProperty(common.CollectionTTLConfigKey, 60)) if err != nil { // handle error } diff --git a/client/milvusclient/collection_options.go b/client/milvusclient/collection_options.go index 0907cb6c8f2c0..1bd8029d63d7c 100644 --- a/client/milvusclient/collection_options.go +++ b/client/milvusclient/collection_options.go @@ -286,29 +286,83 @@ func NewRenameCollectionOption(oldName, newName string) *renameCollectionOption } } -type AlterCollectionOption interface { +type AlterCollectionPropertiesOption interface { Request() *milvuspb.AlterCollectionRequest } -type alterCollectionOption struct { +type alterCollectionPropertiesOption struct { collectionName string properties map[string]string } -func (opt *alterCollectionOption) WithProperty(key string, value any) *alterCollectionOption { +func (opt *alterCollectionPropertiesOption) WithProperty(key string, value any) *alterCollectionPropertiesOption { opt.properties[key] = fmt.Sprintf("%v", value) return opt } -func (opt *alterCollectionOption) Request() *milvuspb.AlterCollectionRequest { +func (opt *alterCollectionPropertiesOption) Request() *milvuspb.AlterCollectionRequest { return &milvuspb.AlterCollectionRequest{ CollectionName: opt.collectionName, Properties: entity.MapKvPairs(opt.properties), } } -func NewAlterCollectionOption(collection string) *alterCollectionOption { - return &alterCollectionOption{collectionName: collection, properties: make(map[string]string)} +func NewAlterCollectionPropertiesOption(collection string) *alterCollectionPropertiesOption { + return &alterCollectionPropertiesOption{collectionName: collection, properties: make(map[string]string)} +} + +type DropCollectionPropertiesOption interface { + Request() *milvuspb.AlterCollectionRequest +} + +type dropCollectionPropertiesOption struct { + collectionName string + keys []string +} + +func (opt *dropCollectionPropertiesOption) Request() *milvuspb.AlterCollectionRequest { + return &milvuspb.AlterCollectionRequest{ + CollectionName: opt.collectionName, + DeleteKeys: opt.keys, + } +} + +func NewDropCollectionPropertiesOption(collection string, propertyKeys ...string) *dropCollectionPropertiesOption { + return &dropCollectionPropertiesOption{ + collectionName: collection, + keys: propertyKeys, + } +} + +type AlterCollectionFieldPropertiesOption interface { + Request() *milvuspb.AlterCollectionFieldRequest +} + +type alterCollectionFieldPropertiesOption struct { + collectionName string + fieldName string + properties map[string]string +} + +func (opt *alterCollectionFieldPropertiesOption) WithProperty(key string, value any) *alterCollectionFieldPropertiesOption { + opt.properties[key] = fmt.Sprintf("%v", value) + return opt +} + +func (opt *alterCollectionFieldPropertiesOption) Request() *milvuspb.AlterCollectionFieldRequest { + return &milvuspb.AlterCollectionFieldRequest{ + CollectionName: opt.collectionName, + FieldName: opt.fieldName, + Properties: entity.MapKvPairs(opt.properties), + } +} + +func NewAlterCollectionFieldPropertiesOption(collectionName string, fieldName string) *alterCollectionFieldPropertiesOption { + return &alterCollectionFieldPropertiesOption{ + collectionName: collectionName, + fieldName: fieldName, + properties: make(map[string]string), + } } type getCollectionStatsOption struct { diff --git a/client/milvusclient/collection_test.go b/client/milvusclient/collection_test.go index 4dc8e62d87629..b905b24d58507 100644 --- a/client/milvusclient/collection_test.go +++ b/client/milvusclient/collection_test.go @@ -285,7 +285,7 @@ func (s *CollectionSuite) TestRenameCollection() { }) } -func (s *CollectionSuite) TestAlterCollection() { +func (s *CollectionSuite) TestAlterCollectionProperties() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -304,14 +304,72 @@ func (s *CollectionSuite) TestAlterCollection() { return merr.Success(), nil }).Once() - err := s.client.AlterCollection(ctx, NewAlterCollectionOption(collName).WithProperty(key, value)) + err := s.client.AlterCollectionProperties(ctx, NewAlterCollectionPropertiesOption(collName).WithProperty(key, value)) s.NoError(err) }) s.Run("failure", func() { s.mock.EXPECT().AlterCollection(mock.Anything, mock.Anything).Return(nil, merr.WrapErrServiceInternal("mocked")).Once() - err := s.client.AlterCollection(ctx, NewAlterCollectionOption(collName).WithProperty(key, value)) + err := s.client.AlterCollectionProperties(ctx, NewAlterCollectionPropertiesOption(collName).WithProperty(key, value)) + s.Error(err) + }) +} + +func (s *CollectionSuite) TestDropCollectionProperties() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + s.Run("success", func() { + dbName := fmt.Sprintf("dt_%s", s.randString(6)) + key := fmt.Sprintf("key_%s", s.randString(4)) + s.mock.EXPECT().AlterCollection(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, adr *milvuspb.AlterCollectionRequest) (*commonpb.Status, error) { + s.Equal([]string{key}, adr.GetDeleteKeys()) + return merr.Success(), nil + }).Once() + + err := s.client.DropCollectionProperties(ctx, NewDropCollectionPropertiesOption(dbName, key)) + s.NoError(err) + }) + + s.Run("failure", func() { + dbName := fmt.Sprintf("dt_%s", s.randString(6)) + s.mock.EXPECT().AlterCollection(mock.Anything, mock.Anything).Return(nil, merr.WrapErrServiceInternal("mocked")).Once() + + err := s.client.DropCollectionProperties(ctx, NewDropCollectionPropertiesOption(dbName, "key")) + s.Error(err) + }) +} + +func (s *CollectionSuite) TestAlterCollectionFieldProperties() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + collName := fmt.Sprintf("test_collection_%s", s.randString(6)) + fieldName := fmt.Sprintf("field_%s", s.randString(4)) + key := s.randString(6) + value := s.randString(6) + + s.Run("success", func() { + s.mock.EXPECT().AlterCollectionField(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, acr *milvuspb.AlterCollectionFieldRequest) (*commonpb.Status, error) { + s.Equal(collName, acr.GetCollectionName()) + s.Equal(fieldName, acr.GetFieldName()) + if s.Len(acr.GetProperties(), 1) { + item := acr.GetProperties()[0] + s.Equal(key, item.GetKey()) + s.Equal(value, item.GetValue()) + } + return merr.Success(), nil + }).Once() + + err := s.client.AlterCollectionFieldProperty(ctx, NewAlterCollectionFieldPropertiesOption(collName, fieldName).WithProperty(key, value)) + s.NoError(err) + }) + + s.Run("failure", func() { + s.mock.EXPECT().AlterCollectionField(mock.Anything, mock.Anything).Return(nil, merr.WrapErrServiceInternal("mocked")).Once() + + err := s.client.AlterCollectionFieldProperty(ctx, NewAlterCollectionFieldPropertiesOption("coll", "field").WithProperty(key, value)) s.Error(err) }) } diff --git a/client/milvusclient/database.go b/client/milvusclient/database.go index eb5b352963b85..681dca15a1e4f 100644 --- a/client/milvusclient/database.go +++ b/client/milvusclient/database.go @@ -22,6 +22,7 @@ import ( "google.golang.org/grpc" "github.com/milvus-io/milvus-proto/go-api/v2/milvuspb" + "github.com/milvus-io/milvus/client/v2/entity" "github.com/milvus-io/milvus/pkg/util/merr" ) @@ -64,3 +65,42 @@ func (c *Client) DropDatabase(ctx context.Context, option DropDatabaseOption, ca return merr.CheckRPCCall(resp, err) }) } + +func (c *Client) DescribeDatabase(ctx context.Context, option DescribeDatabaseOption, callOptions ...grpc.CallOption) (*entity.Database, error) { + req := option.Request() + + var db *entity.Database + err := c.callService(func(milvusService milvuspb.MilvusServiceClient) error { + resp, err := milvusService.DescribeDatabase(ctx, req, callOptions...) + err = merr.CheckRPCCall(resp, err) + if err != nil { + return err + } + // databaseInfo = resp + db = &entity.Database{ + Name: resp.GetDbName(), + Properties: entity.KvPairsMap(resp.GetProperties()), + } + return nil + }) + + return db, err +} + +func (c *Client) AlterDatabaseProperies(ctx context.Context, option AlterDatabasePropertiesOption, callOptions ...grpc.CallOption) error { + req := option.Request() + + return c.callService(func(milvusService milvuspb.MilvusServiceClient) error { + resp, err := milvusService.AlterDatabase(ctx, req, callOptions...) + return merr.CheckRPCCall(resp, err) + }) +} + +func (c *Client) DropDatabaseProperties(ctx context.Context, option DropDatabasePropertiesOption, callOptions ...grpc.CallOption) error { + req := option.Request() + + return c.callService(func(milvusService milvuspb.MilvusServiceClient) error { + resp, err := milvusService.AlterDatabase(ctx, req, callOptions...) + return merr.CheckRPCCall(resp, err) + }) +} diff --git a/client/milvusclient/database_options.go b/client/milvusclient/database_options.go index 48542f9e580e0..4d644467ee1b9 100644 --- a/client/milvusclient/database_options.go +++ b/client/milvusclient/database_options.go @@ -16,7 +16,12 @@ package milvusclient -import "github.com/milvus-io/milvus-proto/go-api/v2/milvuspb" +import ( + "fmt" + + "github.com/milvus-io/milvus-proto/go-api/v2/milvuspb" + "github.com/milvus-io/milvus/client/v2/entity" +) type UseDatabaseOption interface { DbName() string @@ -90,3 +95,74 @@ func NewDropDatabaseOption(dbName string) *dropDatabaseOption { dbName: dbName, } } + +type DescribeDatabaseOption interface { + Request() *milvuspb.DescribeDatabaseRequest +} + +type describeDatabaseOption struct { + dbName string +} + +func (opt *describeDatabaseOption) Request() *milvuspb.DescribeDatabaseRequest { + return &milvuspb.DescribeDatabaseRequest{ + DbName: opt.dbName, + } +} + +func NewDescribeDatabaseOption(dbName string) *describeDatabaseOption { + return &describeDatabaseOption{ + dbName: dbName, + } +} + +type AlterDatabasePropertiesOption interface { + Request() *milvuspb.AlterDatabaseRequest +} + +type alterDatabasePropertiesOption struct { + dbName string + properties map[string]string +} + +func (opt *alterDatabasePropertiesOption) Request() *milvuspb.AlterDatabaseRequest { + return &milvuspb.AlterDatabaseRequest{ + DbName: opt.dbName, + Properties: entity.MapKvPairs(opt.properties), + } +} + +func (opt *alterDatabasePropertiesOption) WithProperty(key string, value any) *alterDatabasePropertiesOption { + opt.properties[key] = fmt.Sprintf("%v", value) + return opt +} + +func NewAlterDatabasePropertiesOption(dbName string) *alterDatabasePropertiesOption { + return &alterDatabasePropertiesOption{ + dbName: dbName, + properties: make(map[string]string), + } +} + +type DropDatabasePropertiesOption interface { + Request() *milvuspb.AlterDatabaseRequest +} + +type dropDatabasePropertiesOption struct { + dbName string + keys []string +} + +func (opt *dropDatabasePropertiesOption) Request() *milvuspb.AlterDatabaseRequest { + return &milvuspb.AlterDatabaseRequest{ + DbName: opt.dbName, + DeleteKeys: opt.keys, + } +} + +func NewDropDatabasePropertiesOption(dbName string, propertyKeys ...string) *dropDatabasePropertiesOption { + return &dropDatabasePropertiesOption{ + dbName: dbName, + keys: propertyKeys, + } +} diff --git a/client/milvusclient/database_test.go b/client/milvusclient/database_test.go index 3cb3b7017f4fe..541f095d22e9d 100644 --- a/client/milvusclient/database_test.go +++ b/client/milvusclient/database_test.go @@ -108,6 +108,89 @@ func (s *DatabaseSuite) TestUseDatabase() { }) } +func (s *DatabaseSuite) TestDescribeDatabase() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + s.Run("success", func() { + dbName := fmt.Sprintf("dt_%s", s.randString(6)) + key := fmt.Sprintf("key_%s", s.randString(4)) + value := s.randString(6) + s.mock.EXPECT().DescribeDatabase(mock.Anything, mock.Anything).Return(&milvuspb.DescribeDatabaseResponse{ + Status: merr.Success(), + DbName: dbName, + Properties: []*commonpb.KeyValuePair{ + {Key: key, Value: value}, + }, + }, nil).Once() + + db, err := s.client.DescribeDatabase(ctx, NewDescribeDatabaseOption(dbName)) + s.NoError(err) + s.Equal(dbName, db.Name) + s.Equal(value, db.Properties[key]) + }) + + s.Run("failure", func() { + dbName := fmt.Sprintf("dt_%s", s.randString(6)) + s.mock.EXPECT().DescribeDatabase(mock.Anything, mock.Anything).Return(nil, merr.WrapErrServiceInternal("mocked")).Once() + + _, err := s.client.DescribeDatabase(ctx, NewDescribeDatabaseOption(dbName)) + s.Error(err) + }) +} + +func (s *DatabaseSuite) TestAlterDatabaseProperties() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + s.Run("success", func() { + dbName := fmt.Sprintf("dt_%s", s.randString(6)) + key := fmt.Sprintf("key_%s", s.randString(4)) + value := s.randString(6) + s.mock.EXPECT().AlterDatabase(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, adr *milvuspb.AlterDatabaseRequest) (*commonpb.Status, error) { + s.Equal(dbName, adr.GetDbName()) + s.Len(adr.GetProperties(), 1) + return merr.Success(), nil + }).Once() + + err := s.client.AlterDatabaseProperies(ctx, NewAlterDatabasePropertiesOption(dbName).WithProperty(key, value)) + s.NoError(err) + }) + + s.Run("failure", func() { + dbName := fmt.Sprintf("dt_%s", s.randString(6)) + s.mock.EXPECT().AlterDatabase(mock.Anything, mock.Anything).Return(nil, merr.WrapErrServiceInternal("mocked")).Once() + + err := s.client.AlterDatabaseProperies(ctx, NewAlterDatabasePropertiesOption(dbName).WithProperty("key", "value")) + s.Error(err) + }) +} + +func (s *DatabaseSuite) TestDropDatabaseProperties() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + s.Run("success", func() { + dbName := fmt.Sprintf("dt_%s", s.randString(6)) + key := fmt.Sprintf("key_%s", s.randString(4)) + s.mock.EXPECT().AlterDatabase(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, adr *milvuspb.AlterDatabaseRequest) (*commonpb.Status, error) { + s.Equal([]string{key}, adr.GetDeleteKeys()) + return merr.Success(), nil + }).Once() + + err := s.client.DropDatabaseProperties(ctx, NewDropDatabasePropertiesOption(dbName, key)) + s.NoError(err) + }) + + s.Run("failure", func() { + dbName := fmt.Sprintf("dt_%s", s.randString(6)) + s.mock.EXPECT().AlterDatabase(mock.Anything, mock.Anything).Return(nil, merr.WrapErrServiceInternal("mocked")).Once() + + err := s.client.DropDatabaseProperties(ctx, NewDropDatabasePropertiesOption(dbName, "key")) + s.Error(err) + }) +} + func TestDatabase(t *testing.T) { suite.Run(t, new(DatabaseSuite)) } From 445b93790ed13e4341d9c4af286a7b0df0b464b7 Mon Sep 17 00:00:00 2001 From: sre-ci-robot Date: Fri, 27 Dec 2024 12:00:38 +0000 Subject: [PATCH 31/69] Update all contributors Signed-off-by: sre-ci-robot --- README.md | 3 ++- README_CN.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 64ecfb754ba6d..eebfdda94fc04 100644 --- a/README.md +++ b/README.md @@ -250,9 +250,10 @@ Reference to cite when you use Milvus in a research paper: } ``` -
+
+ diff --git a/README_CN.md b/README_CN.md index d9d5e81f66620..a82082de652ba 100644 --- a/README_CN.md +++ b/README_CN.md @@ -183,9 +183,10 @@ Milvus [训练营](https://github.com/milvus-io/bootcamp)能够帮助你了解 ### All contributors
-
+
+ From dd81a13821ad949d58521d3c348d13ce7b3385d2 Mon Sep 17 00:00:00 2001 From: Reid Chan Date: Mon, 30 Dec 2024 11:10:52 +0800 Subject: [PATCH 32/69] fix: used wrong label for query received_nq metrics (#37987) issue: #37982 Signed-off-by: Reid Chan --- internal/proxy/impl.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/proxy/impl.go b/internal/proxy/impl.go index 4caa567128055..c5fc8fc9ca555 100644 --- a/internal/proxy/impl.go +++ b/internal/proxy/impl.go @@ -3738,7 +3738,7 @@ func (node *Proxy) Query(ctx context.Context, request *milvuspb.QueryRequest) (* SetCollectionName(request.GetCollectionName()) metrics.ProxyReceivedNQ.WithLabelValues( strconv.FormatInt(paramtable.GetNodeID(), 10), - metrics.SearchLabel, + metrics.QueryLabel, request.GetCollectionName(), ).Add(float64(1)) From e19b8f211499b4aa904f5ced5b0e7d93e20c2658 Mon Sep 17 00:00:00 2001 From: zhuwenxing Date: Mon, 30 Dec 2024 14:34:51 +0800 Subject: [PATCH 33/69] test: update default value of pytest addoption (#38836) /kind improvement Signed-off-by: zhuwenxing --- tests/python_client/chaos/test_chaos_apply.py | 3 +-- tests/python_client/conftest.py | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/python_client/chaos/test_chaos_apply.py b/tests/python_client/chaos/test_chaos_apply.py index 76789da9a736e..43931aa859a17 100644 --- a/tests/python_client/chaos/test_chaos_apply.py +++ b/tests/python_client/chaos/test_chaos_apply.py @@ -39,8 +39,7 @@ def reconnect(self): if self.user and self.password: connections.connect('default', host=self.host, port=self.port, user=self.user, - password=self.password, - secure=True) + password=self.password) else: connections.connect('default', host=self.host, port=self.port) if connections.has_connection("default") is False: diff --git a/tests/python_client/conftest.py b/tests/python_client/conftest.py index c2b5f105fbf8e..03f6b2007d57f 100644 --- a/tests/python_client/conftest.py +++ b/tests/python_client/conftest.py @@ -22,8 +22,8 @@ def pytest_addoption(parser): parser.addoption("--host", action="store", default="localhost", help="service's ip") parser.addoption("--service", action="store", default="", help="service address") parser.addoption("--port", action="store", default=19530, help="service's port") - parser.addoption("--user", action="store", default="root", help="user name for connection") - parser.addoption("--password", action="store", default="Milvus", help="password for connection") + parser.addoption("--user", action="store", default="", help="user name for connection") + parser.addoption("--password", action="store", default="", help="password for connection") parser.addoption("--db_name", action="store", default="default", help="database name for connection") parser.addoption("--secure", action="store", default=False, help="secure for connection") parser.addoption("--milvus_ns", action="store", default="chaos-testing", help="milvus_ns") From ecc820e030c07a6318e1bf4d589515633f793b35 Mon Sep 17 00:00:00 2001 From: SimFG Date: Mon, 30 Dec 2024 15:59:06 +0800 Subject: [PATCH 34/69] enhance: update expr version to support method parameter type conversion (#38780) /kind improvement Signed-off-by: SimFG --- go.mod | 2 +- go.sum | 4 ++-- pkg/go.mod | 2 +- pkg/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 5c8ff76d9e3cc..979cd17eed9db 100644 --- a/go.mod +++ b/go.mod @@ -267,7 +267,7 @@ replace ( github.com/apache/arrow/go/v12 => github.com/milvus-io/arrow/go/v12 v12.0.1 github.com/apache/pulsar-client-go => github.com/milvus-io/pulsar-client-go v0.12.1 github.com/bketelsen/crypt => github.com/bketelsen/crypt v0.0.4 // Fix security alert for core-os/etcd - github.com/expr-lang/expr => github.com/SimFG/expr v0.0.0-20241029080923-21854792f532 + github.com/expr-lang/expr => github.com/SimFG/expr v0.0.0-20241226082220-a9a764953bf8 github.com/go-kit/kit => github.com/go-kit/kit v0.1.0 github.com/greatroar/blobloom => github.com/milvus-io/blobloom v0.0.0-20240603110411-471ae49f3b93 github.com/ianlancetaylor/cgosymbolizer => github.com/milvus-io/cgosymbolizer v0.0.0-20240722103217-b7dee0e50119 diff --git a/go.sum b/go.sum index 228644055077f..3ca015cabd1b2 100644 --- a/go.sum +++ b/go.sum @@ -86,8 +86,8 @@ github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1 github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= -github.com/SimFG/expr v0.0.0-20241029080923-21854792f532 h1:fxpBc+wl14Ky70AVgCJ4muWzAzXcxoerlRxA1F69S0M= -github.com/SimFG/expr v0.0.0-20241029080923-21854792f532/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= +github.com/SimFG/expr v0.0.0-20241226082220-a9a764953bf8 h1:boN3QhAWQU9O8EYQWxN7AEYav39PuD29QzZwTiI8Ca0= +github.com/SimFG/expr v0.0.0-20241226082220-a9a764953bf8/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= github.com/actgardner/gogen-avro/v10 v10.1.0/go.mod h1:o+ybmVjEa27AAr35FRqU98DJu1fXES56uXniYFv4yDA= github.com/actgardner/gogen-avro/v10 v10.2.1/go.mod h1:QUhjeHPchheYmMDni/Nx7VB0RsT/ee8YIgGY/xpEQgQ= github.com/actgardner/gogen-avro/v9 v9.1.0/go.mod h1:nyTj6wPqDJoxM3qdnjcLv+EnMDSDFqE0qDpva2QRmKc= diff --git a/pkg/go.mod b/pkg/go.mod index 6d8bae93b415b..05f8f6bf17c11 100644 --- a/pkg/go.mod +++ b/pkg/go.mod @@ -177,7 +177,7 @@ require ( replace ( github.com/apache/pulsar-client-go => github.com/milvus-io/pulsar-client-go v0.12.1 github.com/bketelsen/crypt => github.com/bketelsen/crypt v0.0.4 // Fix security alert for core-os/etcd - github.com/expr-lang/expr => github.com/SimFG/expr v0.0.0-20241029080923-21854792f532 + github.com/expr-lang/expr => github.com/SimFG/expr v0.0.0-20241226082220-a9a764953bf8 github.com/go-kit/kit => github.com/go-kit/kit v0.1.0 github.com/ianlancetaylor/cgosymbolizer => github.com/milvus-io/cgosymbolizer v0.0.0-20240722103217-b7dee0e50119 github.com/streamnative/pulsarctl => github.com/xiaofan-luan/pulsarctl v0.5.1 diff --git a/pkg/go.sum b/pkg/go.sum index 4e67166b73d41..94c36fbd95238 100644 --- a/pkg/go.sum +++ b/pkg/go.sum @@ -55,8 +55,8 @@ github.com/DataDog/zstd v1.5.0/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwS github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= -github.com/SimFG/expr v0.0.0-20241029080923-21854792f532 h1:fxpBc+wl14Ky70AVgCJ4muWzAzXcxoerlRxA1F69S0M= -github.com/SimFG/expr v0.0.0-20241029080923-21854792f532/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= +github.com/SimFG/expr v0.0.0-20241226082220-a9a764953bf8 h1:boN3QhAWQU9O8EYQWxN7AEYav39PuD29QzZwTiI8Ca0= +github.com/SimFG/expr v0.0.0-20241226082220-a9a764953bf8/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= github.com/actgardner/gogen-avro/v10 v10.1.0/go.mod h1:o+ybmVjEa27AAr35FRqU98DJu1fXES56uXniYFv4yDA= github.com/actgardner/gogen-avro/v10 v10.2.1/go.mod h1:QUhjeHPchheYmMDni/Nx7VB0RsT/ee8YIgGY/xpEQgQ= github.com/actgardner/gogen-avro/v9 v9.1.0/go.mod h1:nyTj6wPqDJoxM3qdnjcLv+EnMDSDFqE0qDpva2QRmKc= From 56c5b666196ac56ffb58bc2bb750d1da0600e35d Mon Sep 17 00:00:00 2001 From: Zhen Ye Date: Mon, 30 Dec 2024 16:04:51 +0800 Subject: [PATCH 35/69] fix: the close operation of rmq consumer is not sync (#38734) issue: #38399 --------- Signed-off-by: chyezh --- internal/datanode/channel/channel_manager_test.go | 7 ++++++- internal/datanode/services_test.go | 4 ++++ pkg/mq/mqimpl/rocksmq/client/client_impl.go | 5 ++++- pkg/mq/mqimpl/rocksmq/client/consumer_impl.go | 8 ++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/internal/datanode/channel/channel_manager_test.go b/internal/datanode/channel/channel_manager_test.go index 1a4aa78c56735..e4384bf271301 100644 --- a/internal/datanode/channel/channel_manager_test.go +++ b/internal/datanode/channel/channel_manager_test.go @@ -265,9 +265,14 @@ func (s *ChannelManagerSuite) TestSubmitSkip() { func (s *ChannelManagerSuite) TestSubmitWatchAndRelease() { channel := "by-dev-rootcoord-dml-0" + stream, err := s.pipelineParams.MsgStreamFactory.NewTtMsgStream(context.Background()) + s.NoError(err) + s.NotNil(stream) + stream.AsProducer(context.Background(), []string{channel}) + // watch info := GetWatchInfoByOpID(100, channel, datapb.ChannelWatchState_ToWatch) - err := s.manager.Submit(info) + err = s.manager.Submit(info) s.NoError(err) // wait for result diff --git a/internal/datanode/services_test.go b/internal/datanode/services_test.go index 616354a16482d..7fa6cf92f7e12 100644 --- a/internal/datanode/services_test.go +++ b/internal/datanode/services_test.go @@ -329,6 +329,10 @@ func (s *DataNodeServicesSuite) TestCompaction() { func (s *DataNodeServicesSuite) TestFlushSegments() { dmChannelName := "fake-by-dev-rootcoord-dml-channel-test-FlushSegments" + stream, err := s.node.factory.NewTtMsgStream(context.Background()) + s.NoError(err) + s.NotNil(stream) + stream.AsProducer(context.Background(), []string{dmChannelName}) schema := &schemapb.CollectionSchema{ Name: "test_collection", Fields: []*schemapb.FieldSchema{ diff --git a/pkg/mq/mqimpl/rocksmq/client/client_impl.go b/pkg/mq/mqimpl/rocksmq/client/client_impl.go index f68e6c602f2e1..95f9bcf897e93 100644 --- a/pkg/mq/mqimpl/rocksmq/client/client_impl.go +++ b/pkg/mq/mqimpl/rocksmq/client/client_impl.go @@ -124,7 +124,10 @@ func (c *client) Subscribe(options ConsumerOptions) (Consumer, error) { } func (c *client) consume(consumer *consumer) { - defer c.wg.Done() + defer func() { + close(consumer.stopCh) + c.wg.Done() + }() if err := c.blockUntilInitDone(consumer); err != nil { log.Warn("consumer init failed", zap.Error(err)) diff --git a/pkg/mq/mqimpl/rocksmq/client/consumer_impl.go b/pkg/mq/mqimpl/rocksmq/client/consumer_impl.go index fb907b4defc76..8c3d1644af31c 100644 --- a/pkg/mq/mqimpl/rocksmq/client/consumer_impl.go +++ b/pkg/mq/mqimpl/rocksmq/client/consumer_impl.go @@ -28,6 +28,7 @@ type consumer struct { startOnce sync.Once + stopCh chan struct{} msgMutex chan struct{} initCh chan struct{} messageCh chan common.Message @@ -58,6 +59,7 @@ func newConsumer(c *client, options ConsumerOptions) (*consumer, error) { client: c, consumerName: options.SubscriptionName, options: options, + stopCh: make(chan struct{}), msgMutex: make(chan struct{}, 1), initCh: initCh, messageCh: messageCh, @@ -133,7 +135,13 @@ func (c *consumer) Close() { err := c.client.server.DestroyConsumerGroup(c.topic, c.consumerName) if err != nil { log.Warn("Consumer close failed", zap.String("topicName", c.topic), zap.String("groupName", c.consumerName), zap.Error(err)) + // TODO: current rocksmq does't promise the msgmutex will be closed in some unittest, + // make the consuming goroutine leak. + // Here add a dirty way to close it. + close(c.msgMutex) + return } + <-c.stopCh } func (c *consumer) GetLatestMsgID() (int64, error) { From 07c1f43d952fe423d194236dd8fc32871795ad4c Mon Sep 17 00:00:00 2001 From: Zhen Ye Date: Mon, 30 Dec 2024 17:50:51 +0800 Subject: [PATCH 36/69] fix: the retrieve plan on heap is used after free when reduce (#38840) issue: #38731 Signed-off-by: chyezh --- internal/querynodev2/segments/result.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/querynodev2/segments/result.go b/internal/querynodev2/segments/result.go index 06958f7aec79b..8e7adfdab3262 100644 --- a/internal/querynodev2/segments/result.go +++ b/internal/querynodev2/segments/result.go @@ -545,7 +545,9 @@ func MergeSegcoreRetrieveResults(ctx context.Context, retrieveResults []*segcore }) futures = append(futures, future) } - if err := conc.AwaitAll(futures...); err != nil { + // Must be BlockOnAll operation here. + // If we perform a fast fail here, the cgo struct like `plan` will be used after free, unsafe memory access happens. + if err := conc.BlockOnAll(futures...); err != nil { return nil, err } From ba3c2e6fb18f5c3c9183866af5668c196b44344e Mon Sep 17 00:00:00 2001 From: "cai.zhang" Date: Mon, 30 Dec 2024 18:02:52 +0800 Subject: [PATCH 37/69] fix: Only generate the index_null_offset file when the field support null value (#38833) issue: #38832 Signed-off-by: cai.zhang --- internal/core/src/index/InvertedIndexTantivy.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/core/src/index/InvertedIndexTantivy.cpp b/internal/core/src/index/InvertedIndexTantivy.cpp index 0072c3de5d0c8..0330b23817fc9 100644 --- a/internal/core/src/index/InvertedIndexTantivy.cpp +++ b/internal/core/src/index/InvertedIndexTantivy.cpp @@ -124,8 +124,10 @@ InvertedIndexTantivy::Serialize(const Config& config) { new uint8_t[index_valid_data_length]); memcpy(index_valid_data.get(), null_offset.data(), index_valid_data_length); BinarySet res_set; - res_set.Append( - "index_null_offset", index_valid_data, index_valid_data_length); + if (index_valid_data_length > 0) { + res_set.Append( + "index_null_offset", index_valid_data, index_valid_data_length); + } milvus::Disassemble(res_set); return res_set; } From cb6eca8e91488d971ffaa4cd534b6b60a75f5b2e Mon Sep 17 00:00:00 2001 From: Xiaofan <83447078+xiaofan-luan@users.noreply.github.com> Date: Mon, 30 Dec 2024 19:42:52 +0800 Subject: [PATCH 38/69] fix: drop partition can not be successful if load failed (#38793) fix #38649 when partition load failed, the partition drop will also fail due to the wrong error message Signed-off-by: xiaofanluan --- internal/proxy/task.go | 2 +- internal/proxy/util.go | 7 +++---- internal/proxy/util_test.go | 6 +++--- internal/querycoordv2/services.go | 7 ++++--- internal/querycoordv2/services_test.go | 7 +++++-- pkg/util/merr/utils.go | 8 ++++---- 6 files changed, 20 insertions(+), 17 deletions(-) diff --git a/internal/proxy/task.go b/internal/proxy/task.go index 9f85e9d04d187..8cbfacf9c2d1f 100644 --- a/internal/proxy/task.go +++ b/internal/proxy/task.go @@ -1462,7 +1462,7 @@ func (t *dropPartitionTask) PreExecute(ctx context.Context) error { return err } if collLoaded { - loaded, err := isPartitionLoaded(ctx, t.queryCoord, collID, []int64{partID}) + loaded, err := isPartitionLoaded(ctx, t.queryCoord, collID, partID) if err != nil { return err } diff --git a/internal/proxy/util.go b/internal/proxy/util.go index 76b477400fea4..bf7ae45b09ee8 100644 --- a/internal/proxy/util.go +++ b/internal/proxy/util.go @@ -49,7 +49,6 @@ import ( "github.com/milvus-io/milvus/pkg/util/commonpbutil" "github.com/milvus-io/milvus/pkg/util/contextutil" "github.com/milvus-io/milvus/pkg/util/crypto" - "github.com/milvus-io/milvus/pkg/util/funcutil" "github.com/milvus-io/milvus/pkg/util/merr" "github.com/milvus-io/milvus/pkg/util/metric" "github.com/milvus-io/milvus/pkg/util/paramtable" @@ -1476,11 +1475,11 @@ func isCollectionLoaded(ctx context.Context, qc types.QueryCoordClient, collID i return false, nil } -func isPartitionLoaded(ctx context.Context, qc types.QueryCoordClient, collID int64, partIDs []int64) (bool, error) { +func isPartitionLoaded(ctx context.Context, qc types.QueryCoordClient, collID int64, partID int64) (bool, error) { // get all loading collections resp, err := qc.ShowPartitions(ctx, &querypb.ShowPartitionsRequest{ CollectionID: collID, - PartitionIDs: partIDs, + PartitionIDs: []int64{partID}, }) if err := merr.CheckRPCCall(resp, err); err != nil { // qc returns error if partition not loaded @@ -1490,7 +1489,7 @@ func isPartitionLoaded(ctx context.Context, qc types.QueryCoordClient, collID in return false, err } - return funcutil.SliceSetEqual(partIDs, resp.GetPartitionIDs()), nil + return true, nil } func checkFieldsDataBySchema(schema *schemapb.CollectionSchema, insertMsg *msgstream.InsertMsg, inInsert bool) error { diff --git a/internal/proxy/util_test.go b/internal/proxy/util_test.go index 93bef5a1b0af0..a4824e7ef11f4 100644 --- a/internal/proxy/util_test.go +++ b/internal/proxy/util_test.go @@ -1063,7 +1063,7 @@ func Test_isPartitionIsLoaded(t *testing.T) { Status: merr.Success(), PartitionIDs: []int64{partID}, }, nil) - loaded, err := isPartitionLoaded(ctx, qc, collID, []int64{partID}) + loaded, err := isPartitionLoaded(ctx, qc, collID, partID) assert.NoError(t, err) assert.True(t, loaded) }) @@ -1088,7 +1088,7 @@ func Test_isPartitionIsLoaded(t *testing.T) { Status: merr.Success(), PartitionIDs: []int64{partID}, }, errors.New("error")) - loaded, err := isPartitionLoaded(ctx, qc, collID, []int64{partID}) + loaded, err := isPartitionLoaded(ctx, qc, collID, partID) assert.Error(t, err) assert.False(t, loaded) }) @@ -1116,7 +1116,7 @@ func Test_isPartitionIsLoaded(t *testing.T) { }, PartitionIDs: []int64{partID}, }, nil) - loaded, err := isPartitionLoaded(ctx, qc, collID, []int64{partID}) + loaded, err := isPartitionLoaded(ctx, qc, collID, partID) assert.Error(t, err) assert.False(t, loaded) }) diff --git a/internal/querycoordv2/services.go b/internal/querycoordv2/services.go index 72ed6101e744d..756712cfdfe92 100644 --- a/internal/querycoordv2/services.go +++ b/internal/querycoordv2/services.go @@ -159,15 +159,16 @@ func (s *Server) ShowPartitions(ctx context.Context, req *querypb.ShowPartitions if percentage < 0 { err := meta.GlobalFailedLoadCache.Get(req.GetCollectionID()) if err != nil { - status := merr.Status(err) - log.Warn("show partition failed", zap.Error(err)) + partitionErr := merr.WrapErrPartitionNotLoaded(partitionID, err.Error()) + status := merr.Status(partitionErr) + log.Warn("show partition failed", zap.Error(partitionErr)) return &querypb.ShowPartitionsResponse{ Status: status, }, nil } err = merr.WrapErrPartitionNotLoaded(partitionID) - log.Warn("show partitions failed", zap.Error(err)) + log.Warn("show partition failed", zap.Error(err)) return &querypb.ShowPartitionsResponse{ Status: merr.Status(err), }, nil diff --git a/internal/querycoordv2/services_test.go b/internal/querycoordv2/services_test.go index 77195dce5cd08..badf645debf76 100644 --- a/internal/querycoordv2/services_test.go +++ b/internal/querycoordv2/services_test.go @@ -24,6 +24,7 @@ import ( "github.com/cockroachdb/errors" "github.com/samber/lo" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/suite" @@ -310,7 +311,8 @@ func (suite *ServiceSuite) TestShowPartitions() { meta.GlobalFailedLoadCache.Put(collection, merr.WrapErrServiceMemoryLimitExceeded(100, 10)) resp, err = server.ShowPartitions(ctx, req) suite.NoError(err) - suite.Equal(commonpb.ErrorCode_InsufficientMemoryToLoad, resp.GetStatus().GetErrorCode()) + err := merr.CheckRPCCall(resp, err) + assert.True(suite.T(), errors.Is(err, merr.ErrPartitionNotLoaded)) meta.GlobalFailedLoadCache.Remove(collection) err = suite.meta.CollectionManager.PutCollection(ctx, colBak) suite.NoError(err) @@ -322,7 +324,8 @@ func (suite *ServiceSuite) TestShowPartitions() { meta.GlobalFailedLoadCache.Put(collection, merr.WrapErrServiceMemoryLimitExceeded(100, 10)) resp, err = server.ShowPartitions(ctx, req) suite.NoError(err) - suite.Equal(commonpb.ErrorCode_InsufficientMemoryToLoad, resp.GetStatus().GetErrorCode()) + err := merr.CheckRPCCall(resp, err) + assert.True(suite.T(), errors.Is(err, merr.ErrPartitionNotLoaded)) meta.GlobalFailedLoadCache.Remove(collection) err = suite.meta.CollectionManager.PutPartition(ctx, parBak) suite.NoError(err) diff --git a/pkg/util/merr/utils.go b/pkg/util/merr/utils.go index 1515dbd56ce7b..f86711e7297f9 100644 --- a/pkg/util/merr/utils.go +++ b/pkg/util/merr/utils.go @@ -40,14 +40,14 @@ func Code(err error) int32 { } cause := errors.Cause(err) - switch cause := cause.(type) { + switch specificErr := cause.(type) { case milvusError: - return cause.code() + return specificErr.code() default: - if errors.Is(cause, context.Canceled) { + if errors.Is(specificErr, context.Canceled) { return CanceledCode - } else if errors.Is(cause, context.DeadlineExceeded) { + } else if errors.Is(specificErr, context.DeadlineExceeded) { return TimeoutCode } else { return errUnexpected.code() From 43a50d71bdd41563aae44efd50256a1d1d040496 Mon Sep 17 00:00:00 2001 From: codingjaguar Date: Mon, 30 Dec 2024 20:43:59 +0800 Subject: [PATCH 39/69] doc: Update readme to refine wording and reflect changes in 2.5 version (#38761) Update readme to refine wording and reflect changes in 2.5 version --------- Signed-off-by: codingjaguar --- README.md | 50 ++++++++++++++++++++++---------------------------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index eebfdda94fc04..07806e28929b6 100644 --- a/README.md +++ b/README.md @@ -3,16 +3,20 @@
license docker-pull-count + fully-managed-milvus + fully-managed-milvus + tutorials discord + twitter
## What is Milvus? -[Milvus](https://milvus.io/) is a high-performance vector database built for scale. It is used by AI applications to organize and search through large amount of unstructured data, such as text, images, and multi-modal information. +🐦 [Milvus](https://milvus.io/) is a high-performance vector database built for scale. It powers AI applications by efficiently organizing and searching vast amounts of unstructured data, such as text, images, and multi-modal information. -Milvus is implemented with Go and C++ and employs CPU/GPU instruction-level optimization for best vector search performance. With [fully-distributed architecture on K8s](https://milvus.io/docs/overview.md#What-Makes-Milvus-so-Scalable), it can handle tens of thousands of search queries on billions of vectors, scale horizontally and maintain data freshness by processing streaming updates in real-time. For smaller use cases, Milvus supports [Standalone mode](https://milvus.io/docs/install_standalone-docker.md) that can run on Docker. In addition, [Milvus Lite](https://milvus.io/docs/milvus_lite.md) is a lightweight version suitable for quickstart in python, with simply `pip install`. +🧑‍💻 Written in Go and C++, Milvus implements hardware accelaration for CPU/GPU to achieve best-in-class vector search performance. Thanks to its [fully-distributed and K8s-native architecture](https://milvus.io/docs/overview.md#What-Makes-Milvus-so-Scalable), Milvus can scale horizontally, handle tens of thousands of search queries on billions of vectors, and keep data fresh with real-time streaming updates. Milvus also supports [Standalone mode](https://milvus.io/docs/install_standalone-docker.md) for single machine deployment. [Milvus Lite](https://milvus.io/docs/milvus_lite.md) is a lightweight version good for quickstart in python with `pip install`. -The easiest way to try out Milvus is to use [Zilliz Cloud with free trial](https://cloud.zilliz.com/signup). Milvus is available as a fully managed service on [Zilliz Cloud](https://zilliz.com/cloud), with Serverless, Dedicated and BYOC options available. +Want to use Milvus with zero setup? Try out [Zilliz Cloud ☁️ for free](https://cloud.zilliz.com/signup?utm_source=partner&utm_medium=referral&utm_campaign=2024-11-04_web_github-readme_global). Milvus is available as a fully managed service on Zilliz Cloud, with [Serverless](https://zilliz.com/serverless?utm_source=partner&utm_medium=referral&utm_campaign=2024-11-04_web_github-readme_global), [Dedicated](https://zilliz.com/cloud?utm_source=partner&utm_medium=referral&utm_campaign=2024-11-04_web_github-readme_global) and [BYOC](https://zilliz.com/bring-your-own-cloud?utm_source=partner&utm_medium=referral&utm_campaign=2024-11-04_web_github-readme_global) options available. The Milvus open-source project is under [LF AI & Data Foundation](https://lfaidata.foundation/projects/milvus/), distributed with [Apache 2.0](https://github.com/milvus-io/milvus/blob/master/LICENSE) License. @@ -68,7 +72,7 @@ res = client.search( ## Why Milvus -Milvus is designed to handle vector search at scale. Users can store vectors, which are numerical representations of unstructured data, together with other scalar data types such as integers, strings, and JSON objects, to conduct efficient vector search with metadata filtering or hybrid search. Here are why users choose Milvus as vector database: +Milvus is designed to handle vector search at scale. It stores vectors, which are learned representations of unstructured data, together with other scalar data types such as integers, strings, and JSON objects. Users can conduct efficient vector search with metadata filtering or hybrid search. Here are why developers choose Milvus as the vector database for AI applications: **High Performance at Scale and High Availability** * Milvus features a [distributed architecture](https://milvus.io/docs/architecture_overview.md ) that separates [compute](https://milvus.io/docs/data_processing.md#Data-query) and [storage](https://milvus.io/docs/data_processing.md#Data-insertion). Milvus can horizontally scale and adapt to diverse traffic patterns, achieving optimal performance by independently increasing query nodes for read-heavy workload and data node for write-heavy workload. The stateless microservices on K8s allow [quick recovery](https://milvus.io/docs/coordinator_ha.md#Coordinator-HA) from failure, ensuring high availability. The support for [replicas](https://milvus.io/docs/replica.md) further enhances fault tolerance and throughput by loading data segments on multiple query nodes. See [benchmark](https://zilliz.com/vector-database-benchmark-tool) for performance comparison. @@ -79,10 +83,10 @@ Milvus is designed to handle vector search at scale. Users can store vectors, wh **Flexible Multi-tenancy and Hot/Cold Storage** - * Milvus supports [multi-tenancy](https://milvus.io/docs/multi_tenancy.md#Multi-tenancy-strategies) with flexible strategies for organizing data in AI applications such as Retrieval-Augmented Generation (RAG). By using databases, collections, partitions, and partition keys, Milvus can handle hundreds to millions of tenants in a single instance. This helps businesses to save resources while handling many tenant, ensuring data isolation, optimized search performance, and flexible access control. Incorporating hot/cold data storage further enhances cost efficiency and performance. Users can config storing frequently accessed hot data on memory or SSD for better performance while less accessed cold data is kept on cost-effective, slower storage. This separation optimizes resource allocation, reduces costs, and maintains high performance for critical tasks. By combining flexible multi-tenancy with hot/cold storage, Milvus helps businesses scale, optimize resources, and manage data efficiently, leading to significant cost savings while still keep high performance. + * Milvus supports [multi-tenancy](https://milvus.io/docs/multi_tenancy.md#Multi-tenancy-strategies) through isolation at database, collection, partition, or partition key level. The flexible strategies allow a single cluster to handle hundreds to millions of tenants, also ensures optimized search performance and flexible access control. Milvus enhances cost-effectiveness with hot/cold storage. Frequently accessed hot data can be stored in memory or on SSDs for better performance, while less-accessed cold data is kept on slower, cost-effective storage. This mechanism can significantly reduce costs while maintaining high performance for critical tasks. **Sparse Vector for Full Text Search and Hybrid Search** - * Milvus supports full text search with [sparse vector](https://milvus.io/docs/sparse_vector.md). Users can combine sparse vector and dense vector in the same collection, and define functions to rerank results from multiple search requests. For details, refer to [Hybrid Search](https://milvus.io/docs/multi-vector-search.md). + * In addition to semantic search through dense vector, Milvus also natively supports [full text search](https://milvus.io/docs/full-text-search.md) with BM25 as well as learned sparse embedding such as SPLADE and BGE-M3. Users can store sparse vector and dense vector in the same collection, and define functions to rerank results from multiple search requests. See examples of [Hybrid Search with semantic search + full text search](https://milvus.io/docs/full_text_search_with_milvus.md). **Data Security and Fine-grain Access Control** * Milvus ensures data security by implementing mandatory user authentication, TLS encryption, and Role-Based Access Control (RBAC). User authentication ensures that only authorized users with valid credentials can access the database, while TLS encryption secures all communications within the network. Additionally, RBAC allows for fine-grained access control by assigning specific permissions to users based on their roles. These features make Milvus a robust and secure choice for enterprise applications, protecting sensitive data from unauthorized access and potential breaches. @@ -98,25 +102,17 @@ You can explore a comprehensive [Tutorials Overview](https://milvus.io/docs/tuto | Tutorial | Use Case | Related Milvus Features | | -------- | -------- | --------- | | [Build RAG with Milvus](https://milvus.io/docs/build-rag-with-milvus.md) | RAG | vector search | -| [Multimodal RAG with Milvus](https://milvus.io/docs/multimodal_rag_with_milvus.md) | RAG | vector search, dynamic field | -| [Image Search with Milvus](https://milvus.io/docs/image_similarity_search.md) | Semantic Search | vector search, dynamic field | +| [Advanced RAG Optimizations](https://milvus.io/docs/how_to_enhance_your_rag.md) | RAG | vector search, full text search | +| [Full Text Search with Milvus](https://milvus.io/docs/full_text_search_with_milvus.md) | Text Search | full text search | | [Hybrid Search with Milvus](https://milvus.io/docs/hybrid_search_with_milvus.md) | Hybrid Search | hybrid search, multi vector, dense embedding, sparse embedding | +| [Image Search with Milvus](https://milvus.io/docs/image_similarity_search.md) | Semantic Search | vector search, dynamic field | | [Multimodal Search using Multi Vectors](https://milvus.io/docs/multimodal_rag_with_milvus.md) | Semantic Search | multi vector, hybrid search | -| [Question Answering System](https://milvus.io/docs/question_answering_system.md) | Question Answering | vector search | -| [Recommender System](https://milvus.io/docs/recommendation_system.md) | Recommendation System | vector search | -| [Video Similarity Search](https://milvus.io/docs/video_similarity_search.md) | Semantic Search | vector search | -| [Audio Similarity Search](https://milvus.io/docs/audio_similarity_search.md) | Semantic Search | vector search | -| [DNA Classification](https://milvus.io/docs/dna_sequence_classification.md) | Classification | vector search | -| [Text Search Engine](https://milvus.io/docs/text_search_engine.md) | Semantic Search | vector search | -| [Search Image by Text](https://milvus.io/docs/text_image_search.md) | Semantic Search | vector search | -| [Image Deduplication](https://milvus.io/docs/image_deduplication_system.md) | Deduplication | vector search | +| [Movie Recommendation with Milvus](https://milvus.io/docs/movie_recommendation_with_milvus.md) | Recommendation System | vector search | | [Graph RAG with Milvus](https://milvus.io/docs/graph_rag_with_milvus.md) | RAG | graph search | | [Contextual Retrieval with Milvus](https://milvus.io/docs/contextual_retrieval_with_milvus.md) | Quickstart | vector search | +| [Vector Visualization](https://milvus.io/docs/vector_visualization.md) | Quickstart | vector search | | [HDBSCAN Clustering with Milvus](https://milvus.io/docs/hdbscan_clustering_with_milvus.md) | Quickstart | vector search | | [Use ColPali for Multi-Modal Retrieval with Milvus](https://milvus.io/docs/use_ColPali_with_milvus.md) | Quickstart | vector search | -| [Vector Visualization](https://milvus.io/docs/vector_visualization.md) | Quickstart | vector search | -| [Movie Recommendation with Milvus](https://milvus.io/docs/movie_recommendation_with_milvus.md) | Recommendation System | vector search | -| [Funnel Search with Matryoshka Embeddings](https://milvus.io/docs/funnel_search_with_matryoshka.md) | Quickstart | vector search | @@ -210,21 +206,19 @@ For full instructions, see [developer's documentation](https://github.com/milvus Join the Milvus community on [Discord](https://discord.gg/8uyFbECzPX) to share your suggestions, advice, and questions with our engineering team. -You can also check out our [FAQ page](https://milvus.io/docs/performance_faq.md) to discover solutions or answers to your issues or questions. - -Subscribe to Milvus mailing lists: - -- [Technical Steering Committee](https://lists.lfai.foundation/g/milvus-tsc) -- [Technical Discussions](https://lists.lfai.foundation/g/milvus-technical-discuss) -- [Announcement](https://lists.lfai.foundation/g/milvus-announce) - -Follow Milvus on social media: +To learn latest news about Milvus, follow us on social media: - [X](https://twitter.com/milvusio) - [LinkedIn](https://www.linkedin.com/company/the-milvus-project) - [Youtube](https://www.youtube.com/channel/UCMCo_F7pKjMHBlfyxwOPw-g) - [Medium](https://medium.com/@milvusio) +You can also check out our [FAQ page](https://milvus.io/docs/performance_faq.md) to discover solutions or answers to your issues or questions, and subscribe to Milvus mailing lists: + +- [Technical Steering Committee](https://lists.lfai.foundation/g/milvus-tsc) +- [Technical Discussions](https://lists.lfai.foundation/g/milvus-technical-discuss) +- [Announcement](https://lists.lfai.foundation/g/milvus-announce) + ## Reference Reference to cite when you use Milvus in a research paper: From af0315f19073713758b273a63deb68a0b735184d Mon Sep 17 00:00:00 2001 From: "cai.zhang" Date: Mon, 30 Dec 2024 22:44:49 +0800 Subject: [PATCH 40/69] fix: Release compaction task lock when return function (#38856) issue: #38851 Signed-off-by: Cai Zhang --- internal/datacoord/compaction.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/internal/datacoord/compaction.go b/internal/datacoord/compaction.go index c1f58b94d414d..0fe51c6496efe 100644 --- a/internal/datacoord/compaction.go +++ b/internal/datacoord/compaction.go @@ -212,12 +212,6 @@ func (c *compactionPlanHandler) schedule() []CompactionTask { slots map[int64]int64 ) - c.executingGuard.Lock() - if len(c.executingTasks) >= parallelism { - return selected - } - c.executingGuard.Unlock() - l0ChannelExcludes := typeutil.NewSet[string]() mixChannelExcludes := typeutil.NewSet[string]() clusterChannelExcludes := typeutil.NewSet[string]() @@ -225,6 +219,11 @@ func (c *compactionPlanHandler) schedule() []CompactionTask { clusterLabelExcludes := typeutil.NewSet[string]() c.executingGuard.RLock() + if len(c.executingTasks) >= parallelism { + c.executingGuard.RUnlock() + return selected + } + for _, t := range c.executingTasks { switch t.GetTaskProto().GetType() { case datapb.CompactionType_Level0DeleteCompaction: From 276e7a8d13797b68d10d5532e9c5ee06a3049a96 Mon Sep 17 00:00:00 2001 From: sre-ci-robot Date: Tue, 31 Dec 2024 00:01:28 +0000 Subject: [PATCH 41/69] Update all contributors Signed-off-by: sre-ci-robot --- README.md | 3 ++- README_CN.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 07806e28929b6..cafb504d07f4f 100644 --- a/README.md +++ b/README.md @@ -244,7 +244,7 @@ Reference to cite when you use Milvus in a research paper: } ``` -
+
@@ -404,6 +404,7 @@ Reference to cite when you use Milvus in a research paper: + diff --git a/README_CN.md b/README_CN.md index a82082de652ba..e1526e5695197 100644 --- a/README_CN.md +++ b/README_CN.md @@ -183,7 +183,7 @@ Milvus [训练营](https://github.com/milvus-io/bootcamp)能够帮助你了解 ### All contributors
-
+
@@ -343,6 +343,7 @@ Milvus [训练营](https://github.com/milvus-io/bootcamp)能够帮助你了解 + From 382281994295309e2cd8a86bca15f92c99b8cd60 Mon Sep 17 00:00:00 2001 From: Bingyi Sun Date: Tue, 31 Dec 2024 10:42:52 +0800 Subject: [PATCH 42/69] enhance: Remove an undefined behavior in index writer (#38657) Signed-off-by: sunby --- .../tantivy-binding/src/index_writer_c.rs | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/internal/core/thirdparty/tantivy/tantivy-binding/src/index_writer_c.rs b/internal/core/thirdparty/tantivy/tantivy-binding/src/index_writer_c.rs index 9f8a1f3a61498..1c5fe2642aa72 100644 --- a/internal/core/thirdparty/tantivy/tantivy-binding/src/index_writer_c.rs +++ b/internal/core/thirdparty/tantivy/tantivy-binding/src/index_writer_c.rs @@ -1,5 +1,8 @@ use core::slice; -use std::ffi::{c_char, c_void, CStr}; +use std::{ + ffi::{c_char, c_void, CStr}, + ptr::null, +}; use tantivy::Index; @@ -12,6 +15,16 @@ use crate::{ util::{create_binding, free_binding}, }; +macro_rules! convert_to_rust_slice { + ($arr: expr, $len: expr) => { + match $arr { + // there is a UB in slice::from_raw_parts if the pointer is null + x if x.is_null() => &[], + _ => slice::from_raw_parts($arr, $len), + } + }; +} + #[no_mangle] pub extern "C" fn tantivy_create_index( field_name: *const c_char, @@ -195,7 +208,7 @@ pub extern "C" fn tantivy_index_add_multi_int8s( ) -> RustResult { let real = ptr as *mut IndexWriterWrapper; unsafe { - let arr = slice::from_raw_parts(array, len); + let arr = convert_to_rust_slice!(array, len); (*real).add_multi_i8s(arr, offset).into() } } @@ -209,7 +222,7 @@ pub extern "C" fn tantivy_index_add_multi_int16s( ) -> RustResult { let real = ptr as *mut IndexWriterWrapper; unsafe { - let arr = slice::from_raw_parts(array, len); + let arr = convert_to_rust_slice!(array, len); (*real).add_multi_i16s(arr, offset).into() } } @@ -223,7 +236,7 @@ pub extern "C" fn tantivy_index_add_multi_int32s( ) -> RustResult { let real = ptr as *mut IndexWriterWrapper; unsafe { - let arr = slice::from_raw_parts(array, len); + let arr = convert_to_rust_slice!(array, len); (*real).add_multi_i32s(arr, offset).into() } } @@ -237,7 +250,7 @@ pub extern "C" fn tantivy_index_add_multi_int64s( ) -> RustResult { let real = ptr as *mut IndexWriterWrapper; unsafe { - let arr = slice::from_raw_parts(array, len); + let arr = convert_to_rust_slice!(array, len); (*real).add_multi_i64s(arr, offset).into() } } @@ -251,7 +264,7 @@ pub extern "C" fn tantivy_index_add_multi_f32s( ) -> RustResult { let real = ptr as *mut IndexWriterWrapper; unsafe { - let arr = slice::from_raw_parts(array, len); + let arr = convert_to_rust_slice!(array, len); (*real).add_multi_f32s(arr, offset).into() } } @@ -265,7 +278,7 @@ pub extern "C" fn tantivy_index_add_multi_f64s( ) -> RustResult { let real = ptr as *mut IndexWriterWrapper; unsafe { - let arr = slice::from_raw_parts(array, len); + let arr = convert_to_rust_slice!(array, len); (*real).add_multi_f64s(arr, offset).into() } } @@ -279,7 +292,7 @@ pub extern "C" fn tantivy_index_add_multi_bools( ) -> RustResult { let real = ptr as *mut IndexWriterWrapper; unsafe { - let arr = slice::from_raw_parts(array, len); + let arr = convert_to_rust_slice!(array, len); (*real).add_multi_bools(arr, offset).into() } } @@ -293,7 +306,7 @@ pub extern "C" fn tantivy_index_add_multi_keywords( ) -> RustResult { let real = ptr as *mut IndexWriterWrapper; unsafe { - let arr = slice::from_raw_parts(array, len); + let arr = convert_to_rust_slice!(array, len); (*real).add_multi_keywords(arr, offset).into() } } From 6b105837b4281d26c48c558d13f1a3d250717902 Mon Sep 17 00:00:00 2001 From: smellthemoon <64083300+smellthemoon@users.noreply.github.com> Date: Tue, 31 Dec 2024 11:28:51 +0800 Subject: [PATCH 43/69] enhance: add some apis in Restful (#38733) add some apis in Restful #38709 - alter/drop collection properties - alter/drop index properties - alter collection field properties - refresh load Signed-off-by: lixinguo Co-authored-by: lixinguo --- .../distributed/proxy/httpserver/constant.go | 24 ++- .../proxy/httpserver/handler_v2.go | 122 ++++++++++++ .../proxy/httpserver/handler_v2_test.go | 186 +++++++++++++++++- .../proxy/httpserver/request_v2.go | 75 +++++++ 4 files changed, 396 insertions(+), 11 deletions(-) diff --git a/internal/distributed/proxy/httpserver/constant.go b/internal/distributed/proxy/httpserver/constant.go index ca38c0297d225..1aece6d66af4f 100644 --- a/internal/distributed/proxy/httpserver/constant.go +++ b/internal/distributed/proxy/httpserver/constant.go @@ -25,16 +25,17 @@ import ( // v2 const ( // --- category --- - DataBaseCategory = "/databases/" - CollectionCategory = "/collections/" - EntityCategory = "/entities/" - PartitionCategory = "/partitions/" - UserCategory = "/users/" - RoleCategory = "/roles/" - IndexCategory = "/indexes/" - AliasCategory = "/aliases/" - ImportJobCategory = "/jobs/import/" - PrivilegeGroupCategory = "/privilege_groups/" + DataBaseCategory = "/databases/" + CollectionCategory = "/collections/" + EntityCategory = "/entities/" + PartitionCategory = "/partitions/" + UserCategory = "/users/" + RoleCategory = "/roles/" + IndexCategory = "/indexes/" + AliasCategory = "/aliases/" + ImportJobCategory = "/jobs/import/" + PrivilegeGroupCategory = "/privilege_groups/" + CollectionFieldCategory = "/collections/fields/" ListAction = "list" HasAction = "has" @@ -45,6 +46,7 @@ const ( LoadStateAction = "get_load_state" RenameAction = "rename" LoadAction = "load" + RefreshLoadAction = "refresh_load" ReleaseAction = "release" QueryAction = "query" GetAction = "get" @@ -63,6 +65,8 @@ const ( GrantPrivilegeActionV2 = "grant_privilege_v2" RevokePrivilegeActionV2 = "revoke_privilege_v2" AlterAction = "alter" + AlterPropertiesAction = "alter_properties" + DropPropertiesAction = "drop_properties" GetProgressAction = "get_progress" // deprecated, keep it for compatibility, use `/v2/vectordb/jobs/import/describe` instead AddPrivilegesToGroupAction = "add_privileges_to_group" RemovePrivilegesFromGroupAction = "remove_privileges_from_group" diff --git a/internal/distributed/proxy/httpserver/handler_v2.go b/internal/distributed/proxy/httpserver/handler_v2.go index dbf76a8bfe17c..fdfc4fea74eab 100644 --- a/internal/distributed/proxy/httpserver/handler_v2.go +++ b/internal/distributed/proxy/httpserver/handler_v2.go @@ -78,7 +78,12 @@ func (h *HandlersV2) RegisterRoutesToV2(router gin.IRouter) { router.POST(CollectionCategory+DropAction, timeoutMiddleware(wrapperPost(func() any { return &CollectionNameReq{} }, wrapperTraceLog(h.dropCollection)))) router.POST(CollectionCategory+RenameAction, timeoutMiddleware(wrapperPost(func() any { return &RenameCollectionReq{} }, wrapperTraceLog(h.renameCollection)))) router.POST(CollectionCategory+LoadAction, timeoutMiddleware(wrapperPost(func() any { return &CollectionNameReq{} }, wrapperTraceLog(h.loadCollection)))) + router.POST(CollectionCategory+RefreshLoadAction, timeoutMiddleware(wrapperPost(func() any { return &CollectionNameReq{} }, wrapperTraceLog(h.refreshLoadCollection)))) router.POST(CollectionCategory+ReleaseAction, timeoutMiddleware(wrapperPost(func() any { return &CollectionNameReq{} }, wrapperTraceLog(h.releaseCollection)))) + router.POST(CollectionCategory+AlterPropertiesAction, timeoutMiddleware(wrapperPost(func() any { return &CollectionReqWithProperties{} }, wrapperTraceLog(h.alterCollectionProperties)))) + router.POST(CollectionCategory+DropPropertiesAction, timeoutMiddleware(wrapperPost(func() any { return &DropCollectionPropertiesReq{} }, wrapperTraceLog(h.dropCollectionProperties)))) + + router.POST(CollectionFieldCategory+AlterPropertiesAction, timeoutMiddleware(wrapperPost(func() any { return &CollectionFieldReqWithParams{} }, wrapperTraceLog(h.alterCollectionFieldProperties)))) router.POST(DataBaseCategory+CreateAction, timeoutMiddleware(wrapperPost(func() any { return &DatabaseReqWithProperties{} }, wrapperTraceLog(h.createDatabase)))) router.POST(DataBaseCategory+DropAction, timeoutMiddleware(wrapperPost(func() any { return &DatabaseReqRequiredName{} }, wrapperTraceLog(h.dropDatabase)))) @@ -170,6 +175,8 @@ func (h *HandlersV2) RegisterRoutesToV2(router gin.IRouter) { router.POST(IndexCategory+CreateAction, timeoutMiddleware(wrapperPost(func() any { return &IndexParamReq{} }, wrapperTraceLog(h.createIndex)))) // todo cannot drop index before release it ? router.POST(IndexCategory+DropAction, timeoutMiddleware(wrapperPost(func() any { return &IndexReq{} }, wrapperTraceLog(h.dropIndex)))) + router.POST(IndexCategory+AlterPropertiesAction, timeoutMiddleware(wrapperPost(func() any { return &IndexReqWithProperties{} }, wrapperTraceLog(h.alterIndexProperties)))) + router.POST(IndexCategory+DropPropertiesAction, timeoutMiddleware(wrapperPost(func() any { return &DropIndexPropertiesReq{} }, wrapperTraceLog(h.dropIndexProperties)))) router.POST(AliasCategory+ListAction, timeoutMiddleware(wrapperPost(func() any { return &OptionalCollectionNameReq{} }, wrapperTraceLog(h.listAlias)))) router.POST(AliasCategory+DescribeAction, timeoutMiddleware(wrapperPost(func() any { return &AliasReq{} }, wrapperTraceLog(h.describeAlias)))) @@ -598,12 +605,26 @@ func (h *HandlersV2) renameCollection(ctx context.Context, c *gin.Context, anyRe return resp, err } +func (h *HandlersV2) refreshLoadCollection(ctx context.Context, c *gin.Context, anyReq any, dbName string) (interface{}, error) { + getter, _ := anyReq.(requestutil.CollectionNameGetter) + req := &milvuspb.LoadCollectionRequest{ + DbName: dbName, + CollectionName: getter.GetCollectionName(), + Refresh: true, + } + return h.loadCollectionInternal(ctx, c, req, dbName) +} + func (h *HandlersV2) loadCollection(ctx context.Context, c *gin.Context, anyReq any, dbName string) (interface{}, error) { getter, _ := anyReq.(requestutil.CollectionNameGetter) req := &milvuspb.LoadCollectionRequest{ DbName: dbName, CollectionName: getter.GetCollectionName(), } + return h.loadCollectionInternal(ctx, c, req, dbName) +} + +func (h *HandlersV2) loadCollectionInternal(ctx context.Context, c *gin.Context, req *milvuspb.LoadCollectionRequest, dbName string) (interface{}, error) { c.Set(ContextRequest, req) resp, err := wrapperProxyWithLimit(ctx, c, req, h.checkAuth, false, "/milvus.proto.milvus.MilvusService/LoadCollection", true, h.proxy, func(reqCtx context.Context, req any) (interface{}, error) { return h.proxy.LoadCollection(reqCtx, req.(*milvuspb.LoadCollectionRequest)) @@ -630,6 +651,68 @@ func (h *HandlersV2) releaseCollection(ctx context.Context, c *gin.Context, anyR return resp, err } +func (h *HandlersV2) alterCollectionProperties(ctx context.Context, c *gin.Context, anyReq any, dbName string) (interface{}, error) { + httpReq := anyReq.(*CollectionReqWithProperties) + req := &milvuspb.AlterCollectionRequest{ + DbName: dbName, + CollectionName: httpReq.CollectionName, + } + properties := make([]*commonpb.KeyValuePair, 0, len(httpReq.Properties)) + for key, value := range httpReq.Properties { + properties = append(properties, &commonpb.KeyValuePair{Key: key, Value: fmt.Sprintf("%v", value)}) + } + req.Properties = properties + + c.Set(ContextRequest, req) + resp, err := wrapperProxyWithLimit(ctx, c, req, h.checkAuth, false, "/milvus.proto.milvus.MilvusService/AlterCollection", true, h.proxy, func(reqCtx context.Context, req any) (interface{}, error) { + return h.proxy.AlterCollection(reqCtx, req.(*milvuspb.AlterCollectionRequest)) + }) + if err == nil { + HTTPReturn(c, http.StatusOK, wrapperReturnDefault()) + } + return resp, err +} + +func (h *HandlersV2) dropCollectionProperties(ctx context.Context, c *gin.Context, anyReq any, dbName string) (interface{}, error) { + httpReq := anyReq.(*DropCollectionPropertiesReq) + req := &milvuspb.AlterCollectionRequest{ + DbName: dbName, + CollectionName: httpReq.CollectionName, + DeleteKeys: httpReq.DeleteKeys, + } + c.Set(ContextRequest, req) + resp, err := wrapperProxyWithLimit(ctx, c, req, h.checkAuth, false, "/milvus.proto.milvus.MilvusService/AlterCollection", true, h.proxy, func(reqCtx context.Context, req any) (interface{}, error) { + return h.proxy.AlterCollection(reqCtx, req.(*milvuspb.AlterCollectionRequest)) + }) + if err == nil { + HTTPReturn(c, http.StatusOK, wrapperReturnDefault()) + } + return resp, err +} + +func (h *HandlersV2) alterCollectionFieldProperties(ctx context.Context, c *gin.Context, anyReq any, dbName string) (interface{}, error) { + httpReq := anyReq.(*CollectionFieldReqWithParams) + req := &milvuspb.AlterCollectionFieldRequest{ + DbName: dbName, + CollectionName: httpReq.CollectionName, + FieldName: httpReq.FieldName, + } + properties := make([]*commonpb.KeyValuePair, 0, len(httpReq.FieldParams)) + for key, value := range httpReq.FieldParams { + properties = append(properties, &commonpb.KeyValuePair{Key: key, Value: fmt.Sprintf("%v", value)}) + } + req.Properties = properties + + c.Set(ContextRequest, req) + resp, err := wrapperProxyWithLimit(ctx, c, req, h.checkAuth, false, "/milvus.proto.milvus.MilvusService/AlterCollectionField", true, h.proxy, func(reqCtx context.Context, req any) (interface{}, error) { + return h.proxy.AlterCollectionField(reqCtx, req.(*milvuspb.AlterCollectionFieldRequest)) + }) + if err == nil { + HTTPReturn(c, http.StatusOK, wrapperReturnDefault()) + } + return resp, err +} + // copy from internal/proxy/task_query.go func matchCountRule(outputs []string) bool { return len(outputs) == 1 && strings.ToLower(strings.TrimSpace(outputs[0])) == "count(*)" @@ -2144,6 +2227,45 @@ func (h *HandlersV2) dropIndex(ctx context.Context, c *gin.Context, anyReq any, return resp, err } +func (h *HandlersV2) alterIndexProperties(ctx context.Context, c *gin.Context, anyReq any, dbName string) (interface{}, error) { + httpReq := anyReq.(*IndexReqWithProperties) + req := &milvuspb.AlterIndexRequest{ + DbName: dbName, + CollectionName: httpReq.CollectionName, + } + extraParams := make([]*commonpb.KeyValuePair, 0, len(httpReq.Properties)) + for key, value := range httpReq.Properties { + extraParams = append(extraParams, &commonpb.KeyValuePair{Key: key, Value: fmt.Sprintf("%v", value)}) + } + req.ExtraParams = extraParams + + c.Set(ContextRequest, req) + resp, err := wrapperProxyWithLimit(ctx, c, req, h.checkAuth, false, "/milvus.proto.milvus.MilvusService/AlterIndex", true, h.proxy, func(reqCtx context.Context, req any) (interface{}, error) { + return h.proxy.AlterIndex(reqCtx, req.(*milvuspb.AlterIndexRequest)) + }) + if err == nil { + HTTPReturn(c, http.StatusOK, wrapperReturnDefault()) + } + return resp, err +} + +func (h *HandlersV2) dropIndexProperties(ctx context.Context, c *gin.Context, anyReq any, dbName string) (interface{}, error) { + httpReq := anyReq.(*DropIndexPropertiesReq) + req := &milvuspb.AlterIndexRequest{ + DbName: dbName, + CollectionName: httpReq.CollectionName, + DeleteKeys: httpReq.DeleteKeys, + } + c.Set(ContextRequest, req) + resp, err := wrapperProxyWithLimit(ctx, c, req, h.checkAuth, false, "/milvus.proto.milvus.MilvusService/AlterIndex", true, h.proxy, func(reqCtx context.Context, req any) (interface{}, error) { + return h.proxy.AlterIndex(reqCtx, req.(*milvuspb.AlterIndexRequest)) + }) + if err == nil { + HTTPReturn(c, http.StatusOK, wrapperReturnDefault()) + } + return resp, err +} + func (h *HandlersV2) listAlias(ctx context.Context, c *gin.Context, anyReq any, dbName string) (interface{}, error) { collectionGetter, _ := anyReq.(requestutil.CollectionNameGetter) req := &milvuspb.ListAliasesRequest{ diff --git a/internal/distributed/proxy/httpserver/handler_v2_test.go b/internal/distributed/proxy/httpserver/handler_v2_test.go index 0e8211f993812..b8f146ed1be32 100644 --- a/internal/distributed/proxy/httpserver/handler_v2_test.go +++ b/internal/distributed/proxy/httpserver/handler_v2_test.go @@ -802,6 +802,187 @@ func TestDatabase(t *testing.T) { } } +func TestColletcionProperties(t *testing.T) { + paramtable.Init() + // disable rate limit + paramtable.Get().Save(paramtable.Get().QuotaConfig.QuotaAndLimitsEnabled.Key, "false") + defer paramtable.Get().Reset(paramtable.Get().QuotaConfig.QuotaAndLimitsEnabled.Key) + + postTestCases := []requestBodyTestCase{} + mp := mocks.NewMockProxy(t) + mp.EXPECT().AlterCollection(mock.Anything, mock.Anything).Return(commonSuccessStatus, nil).Once() + mp.EXPECT().AlterCollection(mock.Anything, mock.Anything).Return( + &commonpb.Status{ + Code: 1100, + Reason: "mock", + }, nil).Once() + testEngine := initHTTPServerV2(mp, false) + path := versionalV2(CollectionCategory, AlterPropertiesAction) + // success + postTestCases = append(postTestCases, requestBodyTestCase{ + path: path, + requestBody: []byte(`{"collectionName":"test", "properties":{"mmap": true}}`), + }) + // mock fail + postTestCases = append(postTestCases, requestBodyTestCase{ + path: path, + requestBody: []byte(`{"collectionName":"mock", "properties":{"mmap": true}}`), + errMsg: "mock", + errCode: 1100, // ErrParameterInvalid + }) + + mp.EXPECT().AlterCollection(mock.Anything, mock.Anything).Return(commonSuccessStatus, nil).Once() + mp.EXPECT().AlterCollection(mock.Anything, mock.Anything).Return( + &commonpb.Status{ + Code: 1100, + Reason: "mock", + }, nil).Once() + path = versionalV2(CollectionCategory, DropPropertiesAction) + // success + postTestCases = append(postTestCases, requestBodyTestCase{ + path: path, + requestBody: []byte(`{"collectionName":"test", "deleteKeys":["mmap"]}`), + }) + // mock fail + postTestCases = append(postTestCases, requestBodyTestCase{ + path: path, + requestBody: []byte(`{"collectionName":"mock", "deleteKeys":["mmap"]}`), + errMsg: "mock", + errCode: 1100, // ErrParameterInvalid + }) + + for _, testcase := range postTestCases { + t.Run("post"+testcase.path, func(t *testing.T) { + req := httptest.NewRequest(http.MethodPost, testcase.path, bytes.NewReader(testcase.requestBody)) + w := httptest.NewRecorder() + testEngine.ServeHTTP(w, req) + assert.Equal(t, http.StatusOK, w.Code) + fmt.Println(w.Body.String()) + returnBody := &ReturnErrMsg{} + err := json.Unmarshal(w.Body.Bytes(), returnBody) + assert.Nil(t, err) + assert.Equal(t, testcase.errCode, returnBody.Code) + if testcase.errCode != 0 { + assert.Equal(t, testcase.errMsg, returnBody.Message) + } + }) + } +} + +func TestIndexProperties(t *testing.T) { + paramtable.Init() + // disable rate limit + paramtable.Get().Save(paramtable.Get().QuotaConfig.QuotaAndLimitsEnabled.Key, "false") + defer paramtable.Get().Reset(paramtable.Get().QuotaConfig.QuotaAndLimitsEnabled.Key) + + postTestCases := []requestBodyTestCase{} + mp := mocks.NewMockProxy(t) + mp.EXPECT().AlterIndex(mock.Anything, mock.Anything).Return(commonSuccessStatus, nil).Once() + mp.EXPECT().AlterIndex(mock.Anything, mock.Anything).Return( + &commonpb.Status{ + Code: 1100, + Reason: "mock", + }, nil).Once() + testEngine := initHTTPServerV2(mp, false) + path := versionalV2(IndexCategory, AlterPropertiesAction) + // success + postTestCases = append(postTestCases, requestBodyTestCase{ + path: path, + requestBody: []byte(`{"collectionName":"test", "indexName":"test", "properties":{"mmap": true}}`), + }) + // mock fail + postTestCases = append(postTestCases, requestBodyTestCase{ + path: path, + requestBody: []byte(`{"collectionName":"mock", "indexName":"test", "properties":{"mmap": true}}`), + errMsg: "mock", + errCode: 1100, // ErrParameterInvalid + }) + + mp.EXPECT().AlterIndex(mock.Anything, mock.Anything).Return(commonSuccessStatus, nil).Once() + mp.EXPECT().AlterIndex(mock.Anything, mock.Anything).Return( + &commonpb.Status{ + Code: 1100, + Reason: "mock", + }, nil).Once() + path = versionalV2(IndexCategory, DropPropertiesAction) + // success + postTestCases = append(postTestCases, requestBodyTestCase{ + path: path, + requestBody: []byte(`{"collectionName":"test","indexName":"test", "deleteKeys":["test"]}`), + }) + // mock fail + postTestCases = append(postTestCases, requestBodyTestCase{ + path: path, + requestBody: []byte(`{"collectionName":"mock","indexName":"test", "deleteKeys":["test"]}`), + errMsg: "mock", + errCode: 1100, // ErrParameterInvalid + }) + + for _, testcase := range postTestCases { + t.Run("post"+testcase.path, func(t *testing.T) { + req := httptest.NewRequest(http.MethodPost, testcase.path, bytes.NewReader(testcase.requestBody)) + w := httptest.NewRecorder() + testEngine.ServeHTTP(w, req) + assert.Equal(t, http.StatusOK, w.Code) + fmt.Println(w.Body.String()) + returnBody := &ReturnErrMsg{} + err := json.Unmarshal(w.Body.Bytes(), returnBody) + assert.Nil(t, err) + assert.Equal(t, testcase.errCode, returnBody.Code) + if testcase.errCode != 0 { + assert.Equal(t, testcase.errMsg, returnBody.Message) + } + }) + } +} + +func TestCollectionFieldProperties(t *testing.T) { + paramtable.Init() + // disable rate limit + paramtable.Get().Save(paramtable.Get().QuotaConfig.QuotaAndLimitsEnabled.Key, "false") + defer paramtable.Get().Reset(paramtable.Get().QuotaConfig.QuotaAndLimitsEnabled.Key) + + postTestCases := []requestBodyTestCase{} + mp := mocks.NewMockProxy(t) + mp.EXPECT().AlterCollectionField(mock.Anything, mock.Anything).Return(commonSuccessStatus, nil).Once() + mp.EXPECT().AlterCollectionField(mock.Anything, mock.Anything).Return( + &commonpb.Status{ + Code: 1100, + Reason: "mock", + }, nil).Once() + testEngine := initHTTPServerV2(mp, false) + path := versionalV2(CollectionFieldCategory, AlterPropertiesAction) + // success + postTestCases = append(postTestCases, requestBodyTestCase{ + path: path, + requestBody: []byte(`{"collectionName":"test", "fieldName":"test", "fieldParams":{"max_length": 100}}`), + }) + // mock fail + postTestCases = append(postTestCases, requestBodyTestCase{ + path: path, + requestBody: []byte(`{"collectionName":"mock", "fieldName":"test", "fieldParams":{"max_length": 100}}`), + errMsg: "mock", + errCode: 1100, // ErrParameterInvalid + }) + + for _, testcase := range postTestCases { + t.Run("post"+testcase.path, func(t *testing.T) { + req := httptest.NewRequest(http.MethodPost, testcase.path, bytes.NewReader(testcase.requestBody)) + w := httptest.NewRecorder() + testEngine.ServeHTTP(w, req) + assert.Equal(t, http.StatusOK, w.Code) + fmt.Println(w.Body.String()) + returnBody := &ReturnErrMsg{} + err := json.Unmarshal(w.Body.Bytes(), returnBody) + assert.Nil(t, err) + assert.Equal(t, testcase.errCode, returnBody.Code) + if testcase.errCode != 0 { + assert.Equal(t, testcase.errMsg, returnBody.Message) + } + }) + } +} + func TestCreateCollection(t *testing.T) { paramtable.Init() // disable rate limit @@ -1482,7 +1663,7 @@ func TestMethodPost(t *testing.T) { mp := mocks.NewMockProxy(t) mp.EXPECT().CreateCollection(mock.Anything, mock.Anything).Return(commonSuccessStatus, nil).Once() mp.EXPECT().RenameCollection(mock.Anything, mock.Anything).Return(commonSuccessStatus, nil).Once() - mp.EXPECT().LoadCollection(mock.Anything, mock.Anything).Return(commonSuccessStatus, nil).Twice() + mp.EXPECT().LoadCollection(mock.Anything, mock.Anything).Return(commonSuccessStatus, nil).Times(3) mp.EXPECT().ReleaseCollection(mock.Anything, mock.Anything).Return(commonSuccessStatus, nil).Once() mp.EXPECT().CreatePartition(mock.Anything, mock.Anything).Return(commonSuccessStatus, nil).Once() mp.EXPECT().LoadPartitions(mock.Anything, mock.Anything).Return(commonSuccessStatus, nil).Once() @@ -1532,6 +1713,9 @@ func TestMethodPost(t *testing.T) { queryTestCases = append(queryTestCases, rawTestCase{ path: versionalV2(CollectionCategory, LoadAction), }) + queryTestCases = append(queryTestCases, rawTestCase{ + path: versionalV2(CollectionCategory, RefreshLoadAction), + }) queryTestCases = append(queryTestCases, rawTestCase{ path: versionalV2(CollectionCategory, ReleaseAction), }) diff --git a/internal/distributed/proxy/httpserver/request_v2.go b/internal/distributed/proxy/httpserver/request_v2.go index 833686825256d..4231c7acd8b2f 100644 --- a/internal/distributed/proxy/httpserver/request_v2.go +++ b/internal/distributed/proxy/httpserver/request_v2.go @@ -66,6 +66,18 @@ func (req *CollectionNameReq) GetPartitionNames() []string { return req.PartitionNames } +type CollectionReqWithProperties struct { + DbName string `json:"dbName"` + CollectionName string `json:"collectionName" binding:"required"` + Properties map[string]interface{} `json:"properties"` +} + +func (req *CollectionReqWithProperties) GetDbName() string { return req.DbName } + +func (req *CollectionReqWithProperties) GetCollectionName() string { + return req.CollectionName +} + type OptionalCollectionNameReq struct { DbName string `json:"dbName"` CollectionName string `json:"collectionName"` @@ -88,6 +100,35 @@ type RenameCollectionReq struct { func (req *RenameCollectionReq) GetDbName() string { return req.DbName } +type DropCollectionPropertiesReq struct { + DbName string `json:"dbName"` + CollectionName string `json:"collectionName" binding:"required"` + DeleteKeys []string `json:"deleteKeys"` +} + +func (req *DropCollectionPropertiesReq) GetDbName() string { return req.DbName } + +func (req *DropCollectionPropertiesReq) GetCollectionName() string { + return req.CollectionName +} + +type CollectionFieldReqWithParams struct { + DbName string `json:"dbName"` + CollectionName string `json:"collectionName" binding:"required"` + FieldName string `json:"fieldName" binding:"required"` + FieldParams map[string]interface{} `json:"fieldParams"` +} + +func (req *CollectionFieldReqWithParams) GetDbName() string { return req.DbName } + +func (req *CollectionFieldReqWithParams) GetCollectionName() string { + return req.CollectionName +} + +func (req *CollectionFieldReqWithParams) GetFieldName() string { + return req.FieldName +} + type PartitionReq struct { // CollectionNameReq DbName string `json:"dbName"` @@ -364,6 +405,40 @@ func (req *IndexReq) GetIndexName() string { return req.IndexName } +type IndexReqWithProperties struct { + DbName string `json:"dbName"` + CollectionName string `json:"collectionName" binding:"required"` + IndexName string `json:"indexName" binding:"required"` + Properties map[string]interface{} `json:"properties"` +} + +func (req *IndexReqWithProperties) GetDbName() string { return req.DbName } + +func (req *IndexReqWithProperties) GetCollectionName() string { + return req.CollectionName +} + +func (req *IndexReqWithProperties) GetIndexName() string { + return req.IndexName +} + +type DropIndexPropertiesReq struct { + DbName string `json:"dbName"` + CollectionName string `json:"collectionName" binding:"required"` + IndexName string `json:"indexName" binding:"required"` + DeleteKeys []string `json:"deleteKeys"` +} + +func (req *DropIndexPropertiesReq) GetDbName() string { return req.DbName } + +func (req *DropIndexPropertiesReq) GetCollectionName() string { + return req.CollectionName +} + +func (req *DropIndexPropertiesReq) GetIndexName() string { + return req.IndexName +} + type FieldSchema struct { FieldName string `json:"fieldName" binding:"required"` DataType string `json:"dataType" binding:"required"` From 2f6d4efa686c5b489384ab5b21e92e51a5a6d6f1 Mon Sep 17 00:00:00 2001 From: zhuwenxing Date: Tue, 31 Dec 2024 14:12:58 +0800 Subject: [PATCH 44/69] test: [skip e2e]fix pytest_addoption type (#38860) /kind improvement Signed-off-by: zhuwenxing --- tests/python_client/deploy/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/python_client/deploy/conftest.py b/tests/python_client/deploy/conftest.py index f21dfc8504c23..3e7ac8e896d6a 100644 --- a/tests/python_client/deploy/conftest.py +++ b/tests/python_client/deploy/conftest.py @@ -20,7 +20,7 @@ def pytest_addoption(parser): - parser.addoption('--data_size', type='int', action='store', default=3000, help="data size for deploy test") + parser.addoption('--data_size', type=int, action='store', default=3000, help="data size for deploy test") @pytest.fixture From ba0c7b8fff58ee3b33d846411519323d3d8bb4c5 Mon Sep 17 00:00:00 2001 From: ThreadDao Date: Tue, 31 Dec 2024 14:14:52 +0800 Subject: [PATCH 45/69] test: update cases for search params support and groupby issue fix (#38852) issue: #38343 #33419 - update cases for WithSearchParam - remove skip for groupby search issue - update output query dynamic case for server changes Signed-off-by: ThreadDao --- .../testcases/groupby_search_test.go | 14 +-- tests/go_client/testcases/query_test.go | 8 +- tests/go_client/testcases/search_test.go | 99 +++++++++++++------ 3 files changed, 80 insertions(+), 41 deletions(-) diff --git a/tests/go_client/testcases/groupby_search_test.go b/tests/go_client/testcases/groupby_search_test.go index dc6a4905b9630..a1fab2bf76763 100644 --- a/tests/go_client/testcases/groupby_search_test.go +++ b/tests/go_client/testcases/groupby_search_test.go @@ -92,7 +92,6 @@ func prepareDataForGroupBySearch(t *testing.T, loopInsert int, insertNi int, idx // -> verify every top passage is the top of whole group // output_fields: pk + groupBy func TestSearchGroupByFloatDefault(t *testing.T) { - t.Skip("https://github.com/milvus-io/milvus/issues/38343") t.Parallel() for _, idx := range genGroupByVectorIndex(entity.L2) { // prepare data @@ -150,7 +149,6 @@ func TestSearchGroupByFloatDefault(t *testing.T) { } func TestSearchGroupByFloatDefaultCosine(t *testing.T) { - t.Skip("https://github.com/milvus-io/milvus/issues/38343") t.Parallel() for _, idx := range genGroupByVectorIndex(entity.COSINE) { // prepare data @@ -299,7 +297,6 @@ func TestSearchGroupByBinaryDefault(t *testing.T) { // default Bounded ConsistencyLevel -> succ ?? // strong ConsistencyLevel -> error func TestSearchGroupByBinaryGrowing(t *testing.T) { - t.Skip("https://github.com/milvus-io/milvus/issues/38343") t.Parallel() for _, metricType := range hp.SupportBinIvfFlatMetricType { idxBinIvfFlat := index.NewBinIvfFlatIndex(metricType, 128) @@ -331,6 +328,7 @@ func TestSearchGroupByBinaryGrowing(t *testing.T) { // groupBy in growing segments, maybe growing index or brute force func TestSearchGroupByFloatGrowing(t *testing.T) { + t.Parallel() for _, metricType := range hp.SupportFloatMetricType { idxHnsw := index.NewHNSWIndex(metricType, 8, 96) mc, ctx, collName := prepareDataForGroupBySearch(t, 100, 200, idxHnsw, true) @@ -384,6 +382,7 @@ func TestSearchGroupByFloatGrowing(t *testing.T) { // groupBy + pagination func TestSearchGroupByPagination(t *testing.T) { + t.Parallel() // create index and load idx := index.NewHNSWIndex(entity.COSINE, 8, 96) mc, ctx, collName := prepareDataForGroupBySearch(t, 10, 1000, idx, false) @@ -444,19 +443,16 @@ func TestSearchGroupByIterator(t *testing.T) { // groupBy + range search -> not supported func TestSearchGroupByRangeSearch(t *testing.T) { - t.Skipf("Waiting for support for specifying search parameters") + t.Skipf("https://github.com/milvus-io/milvus/issues/38846") idxHnsw := index.NewHNSWIndex(entity.COSINE, 8, 96) mc, ctx, collName := prepareDataForGroupBySearch(t, 1, 1000, idxHnsw, true) // groupBy search with range queryVec := hp.GenSearchVectors(common.DefaultNq, common.DefaultDim, entity.FieldTypeFloatVector) - // sp, _ := index.NewHNSWIndexSearchParam(50) - // sp.AddRadius(0) - // sp.AddRangeFilter(0.8) - // range search - _, err := mc.Search(ctx, client.NewSearchOption(collName, common.DefaultLimit, queryVec).WithGroupByField(common.DefaultVarcharFieldName).WithANNSField(common.DefaultFloatVecFieldName)) + _, err := mc.Search(ctx, client.NewSearchOption(collName, common.DefaultLimit, queryVec).WithGroupByField(common.DefaultVarcharFieldName). + WithANNSField(common.DefaultFloatVecFieldName).WithSearchParam("radius", "0").WithSearchParam("range_filter", "0.8")) common.CheckErr(t, err, false, "Not allowed to do range-search when doing search-group-by") } diff --git a/tests/go_client/testcases/query_test.go b/tests/go_client/testcases/query_test.go index ca863fb4d60e3..d28c5cadc4082 100644 --- a/tests/go_client/testcases/query_test.go +++ b/tests/go_client/testcases/query_test.go @@ -165,7 +165,6 @@ func TestQueryWithoutExpr(t *testing.T) { // test query with part not existed field ["aa", "$meat"]: error or as dynamic field // test query with repeated field: ["*", "$meat"], ["floatVec", floatVec"] unique field func TestQueryOutputFields(t *testing.T) { - t.Skip("verify TODO") t.Parallel() ctx := hp.CreateContext(t, time.Second*common.DefaultTimeout) mc := createDefaultMilvusClient(ctx, t) @@ -193,16 +192,17 @@ func TestQueryOutputFields(t *testing.T) { common.CheckErr(t, err1, false, "not exist") } - // query with not existed field -> output field as dynamic or error + // query with not existed field -> output empty data field as dynamic or error fakeName := "aaa" res2, err2 := mc.Query(ctx, client.NewQueryOption(schema.CollectionName).WithConsistencyLevel(entity.ClStrong).WithFilter(expr).WithOutputFields(fakeName)) if enableDynamic { common.CheckErr(t, err2, true) for _, c := range res2.Fields { - log.Debug("data", zap.String("name", c.Name()), zap.Any("type", c.Type()), zap.Any("data", c.FieldData())) + log.Info("data", zap.String("name", c.Name()), zap.Any("type", c.Type()), zap.Any("data", c.FieldData())) } common.CheckOutputFields(t, []string{common.DefaultInt64FieldName, fakeName}, res2.Fields) - dynamicColumn := hp.MergeColumnsToDynamic(10, hp.GenDynamicColumnData(0, 10), common.DefaultDynamicFieldName) + dynamicColumn := hp.MergeColumnsToDynamic(10, []column.Column{}, common.DefaultDynamicFieldName) + // dynamicColumn := hp.MergeColumnsToDynamic(10, hp.GenDynamicColumnData(0, 10), common.DefaultDynamicFieldName) expColumns := []column.Column{ hp.GenColumnData(10, entity.FieldTypeInt64, *hp.TNewDataOption()), column.NewColumnDynamic(dynamicColumn, fakeName), diff --git a/tests/go_client/testcases/search_test.go b/tests/go_client/testcases/search_test.go index b84a5dda6cbe2..cb3e7373fb4ac 100644 --- a/tests/go_client/testcases/search_test.go +++ b/tests/go_client/testcases/search_test.go @@ -3,6 +3,7 @@ package testcases import ( "fmt" "math/rand" + "strconv" "testing" "time" @@ -453,7 +454,6 @@ func TestSearchEmptyInvalidVectors(t *testing.T) { // test search metric type isn't the same with index metric type func TestSearchNotMatchMetricType(t *testing.T) { - t.Skip("Waiting for support for specifying search parameters") ctx := hp.CreateContext(t, time.Second*common.DefaultTimeout) mc := createDefaultMilvusClient(ctx, t) @@ -465,7 +465,7 @@ func TestSearchNotMatchMetricType(t *testing.T) { prepare.Load(ctx, t, mc, hp.NewLoadParams(schema.CollectionName)) vectors := hp.GenSearchVectors(1, common.DefaultDim, entity.FieldTypeFloatVector) - _, errSearchEmpty := mc.Search(ctx, client.NewSearchOption(schema.CollectionName, common.DefaultLimit, vectors)) + _, errSearchEmpty := mc.Search(ctx, client.NewSearchOption(schema.CollectionName, common.DefaultLimit, vectors).WithSearchParam("metric_type", "L2")) common.CheckErr(t, errSearchEmpty, false, "metric type not match: invalid parameter") } @@ -507,12 +507,6 @@ func TestSearchInvalidOffset(t *testing.T) { // test search with invalid search params func TestSearchInvalidSearchParams(t *testing.T) { - t.Skip("Waiting for support for specifying search parameters") -} - -// search with index hnsw search param ef < topK -> error -func TestSearchEfHnsw(t *testing.T) { - t.Skip("Waiting for support for specifying search parameters") ctx := hp.CreateContext(t, time.Second*common.DefaultTimeout) mc := createDefaultMilvusClient(ctx, t) @@ -524,18 +518,29 @@ func TestSearchEfHnsw(t *testing.T) { prepare.Load(ctx, t, mc, hp.NewLoadParams(schema.CollectionName)) vectors := hp.GenSearchVectors(1, common.DefaultDim, entity.FieldTypeFloatVector) - _, err := mc.Search(ctx, client.NewSearchOption(schema.CollectionName, common.DefaultLimit, vectors)) - common.CheckErr(t, err, false, "ef(7) should be larger than k(10)") -} -// test search params mismatch index type, hnsw index and ivf sq8 search param -> search with default hnsw params, ef=topK -func TestSearchSearchParamsMismatchIndex(t *testing.T) { - t.Skip("Waiting for support for specifying search parameters") + // search with invalid hnsw ef + invalidEfs := []int{-1, 0, 32769} + for _, invalidEf := range invalidEfs { + _, errHnsw := mc.Search(ctx, client.NewSearchOption(schema.CollectionName, common.DefaultLimit, vectors).WithSearchParam("ef", strconv.Itoa(invalidEf))) + common.CheckErr(t, errHnsw, true, "No error for invalid search params") + } + + // test search params mismatch index type, hnsw index and ivf sq8 search param -> search with default hnsw params, ef=topK + invalidNprobes := []int{-1, 0, 65537} + for _, invalidNprobe := range invalidNprobes { + _, errHnsw := mc.Search(ctx, client.NewSearchOption(schema.CollectionName, common.DefaultLimit, vectors).WithSearchParam("nprobe", strconv.Itoa(invalidNprobe))) + common.CheckErr(t, errHnsw, true, "No error for invalid search params") + } + + // search with index hnsw search param ef < topK -> error + res, err := mc.Search(ctx, client.NewSearchOption(schema.CollectionName, common.DefaultLimit, vectors).WithSearchParam("ef", "7")) + common.CheckErr(t, err, true, "ef(7) should be larger than k(10), but no error") + common.CheckSearchResult(t, res, 1, common.DefaultLimit) } // search with index scann search param ef < topK -> error func TestSearchInvalidScannReorderK(t *testing.T) { - t.Skip("Waiting for support for specifying search parameters") ctx := hp.CreateContext(t, time.Second*common.DefaultTimeout) mc := createDefaultMilvusClient(ctx, t) @@ -548,36 +553,49 @@ func TestSearchInvalidScannReorderK(t *testing.T) { prepare.Load(ctx, t, mc, hp.NewLoadParams(schema.CollectionName)) // search with invalid reorder_k < topK + vectors := hp.GenSearchVectors(1, common.DefaultDim, entity.FieldTypeFloatVector) + + // search with invalid hnsw ef + _, errScann := mc.Search(ctx, client.NewSearchOption(schema.CollectionName, common.DefaultLimit, vectors). + WithSearchParam("nprobe", "8").WithSearchParam("reorder_k", strconv.Itoa(common.DefaultLimit-1))) + common.CheckErr(t, errScann, true, "No error for invalid search params") // valid scann index search reorder_k + res, err := mc.Search(ctx, client.NewSearchOption(schema.CollectionName, common.DefaultLimit, vectors). + WithSearchParam("nprobe", "8").WithSearchParam("reorder_k", "20")) + common.CheckErr(t, err, true) + common.CheckSearchResult(t, res, 1, common.DefaultLimit) } // test search with scann index params: with_raw_data and metrics_type [L2, IP, COSINE] func TestSearchScannAllMetricsWithRawData(t *testing.T) { - t.Skip("Waiting for support scann index params withRawData") t.Parallel() - /*for _, withRawData := range []bool{true, false} { + for _, withRawData := range []bool{true, false} { for _, metricType := range []entity.MetricType{entity.L2, entity.IP, entity.COSINE} { ctx := hp.CreateContext(t, time.Second*common.DefaultTimeout) mc := createDefaultMilvusClient(ctx, t) - prepare, schema := hp.CollPrepare.CreateCollection(ctx, t, mc, hp.NewCreateCollectionParams(hp.Int64VecJSON), hp.TNewFieldsOption(), hp.TNewSchemaOption()) - prepare.InsertData(ctx, t, mc, hp.NewInsertParams(schema, 500), hp.TNewDataOption()) + prepare, schema := hp.CollPrepare.CreateCollection(ctx, t, mc, hp.NewCreateCollectionParams(hp.Int64VecJSON), + hp.TNewFieldsOption(), hp.TNewSchemaOption().TWithEnableDynamicField(true)) + prepare.InsertData(ctx, t, mc, hp.NewInsertParams(schema), hp.TNewDataOption()) prepare.FlushData(ctx, t, mc, schema.CollectionName) prepare.CreateIndex(ctx, t, mc, hp.TNewIndexParams(schema).TWithFieldIndex(map[string]index.Index{ - common.DefaultFloatVecFieldName: index.NewSCANNIndex(entity.COSINE, 16), + common.DefaultFloatVecFieldName: index.NewSCANNIndex(metricType, 16, withRawData), })) prepare.Load(ctx, t, mc, hp.NewLoadParams(schema.CollectionName)) // search and output all fields - vectors := hp.GenSearchVectors(1, common.DefaultDim, entity.FieldTypeFloatVector) - resSearch, errSearch := mc.Search(ctx, client.NewSearchOption(schema.CollectionName, common.DefaultLimit, vectors).WithConsistencyLevel(entity.ClStrong).WithOutputFields([]string{"*"})) + vectors := hp.GenSearchVectors(common.DefaultNq, common.DefaultDim, entity.FieldTypeFloatVector) + resSearch, errSearch := mc.Search(ctx, client.NewSearchOption(schema.CollectionName, common.DefaultLimit, vectors). + WithConsistencyLevel(entity.ClStrong).WithOutputFields("*")) common.CheckErr(t, errSearch, true) - common.CheckOutputFields(t, []string{common.DefaultInt64FieldName, common.DefaultFloatFieldName, - common.DefaultJSONFieldName, common.DefaultFloatVecFieldName, common.DefaultDynamicFieldName}, resSearch[0].Fields) - common.CheckSearchResult(t, resSearch, 1, common.DefaultLimit) + common.CheckOutputFields(t, []string{ + common.DefaultInt64FieldName, common.DefaultJSONFieldName, + common.DefaultFloatVecFieldName, common.DefaultDynamicFieldName, + }, resSearch[0].Fields) + common.CheckSearchResult(t, resSearch, common.DefaultNq, common.DefaultLimit) } - }*/ + } } // test search with valid expression @@ -1061,7 +1079,7 @@ func TestSearchSparseVectorNotSupported(t *testing.T) { } func TestRangeSearchSparseVector(t *testing.T) { - t.Skip("Waiting for support range search") + t.Skipf("https://github.com/milvus-io/milvus/issues/38846") ctx := hp.CreateContext(t, time.Second*common.DefaultTimeout*2) mc := createDefaultMilvusClient(ctx, t) @@ -1072,5 +1090,30 @@ func TestRangeSearchSparseVector(t *testing.T) { prepare.InsertData(ctx, t, mc, hp.NewInsertParams(schema), hp.TNewDataOption().TWithSparseMaxLen(128)) prepare.FlushData(ctx, t, mc, schema.CollectionName) - // TODO range search + // range search + queryVec := hp.GenSearchVectors(common.DefaultNq, common.DefaultDim, entity.FieldTypeSparseVector) + + resRange, errSearch := mc.Search(ctx, client.NewSearchOption(schema.CollectionName, common.DefaultLimit, queryVec).WithSearchParam("drop_ratio_search", "0.2")) + common.CheckErr(t, errSearch, true) + require.Len(t, resRange, common.DefaultNq) + for _, res := range resRange { + log.Info("default search", zap.Any("score", res.Scores)) + } + + radius := 10 + rangeFilter := 30 + resRange, errSearch = mc.Search(ctx, client.NewSearchOption(schema.CollectionName, common.DefaultLimit, queryVec). + WithSearchParam("drop_ratio_search", "0.2").WithSearchParam("radius", strconv.Itoa(radius)).WithSearchParam("range_filter", strconv.Itoa(rangeFilter))) + common.CheckErr(t, errSearch, true) + common.CheckErr(t, errSearch, true) + require.Len(t, resRange, common.DefaultNq) + for _, res := range resRange { + log.Info("range search", zap.Any("score", res.Scores)) + } + for _, res := range resRange { + for _, s := range res.Scores { + require.GreaterOrEqual(t, s, float32(10)) + require.Less(t, s, float32(30)) + } + } } From 95c1ccc20d324a86d03ba980f1d88ff0b70532b5 Mon Sep 17 00:00:00 2001 From: zhuwenxing Date: Tue, 31 Dec 2024 16:12:52 +0800 Subject: [PATCH 46/69] test: [skip e2e]update chaos test script (#38886) /kind improvement Signed-off-by: zhuwenxing --- tests/python_client/chaos/chaos_test.sh | 199 ++++++++++-------- tests/python_client/chaos/cluster-values.yaml | 124 +---------- .../chaos/standalone-values.yaml | 7 +- 3 files changed, 134 insertions(+), 196 deletions(-) diff --git a/tests/python_client/chaos/chaos_test.sh b/tests/python_client/chaos/chaos_test.sh index b2776e88776c9..caa26041d1c3b 100644 --- a/tests/python_client/chaos/chaos_test.sh +++ b/tests/python_client/chaos/chaos_test.sh @@ -1,104 +1,139 @@ #!/bin/bash -set -e -set -x - - -echo "check os env" -platform='Linux' -unamestr=$(uname) -if [[ "$unamestr" == 'Linux' ]]; then - platform='Linux' -elif [[ "$unamestr" == 'Darwin' ]]; then - platform='Mac' -fi -echo "platform: $platform" +# Set PS4 prompt to display line number, function name and timestamp +export PS4='+(${BASH_SOURCE}:${LINENO}):${FUNCNAME[0]:+${FUNCNAME[0]}(): }' + +set -e # Exit immediately if a command exits with a non-zero status +set -x # Print commands and their arguments as they are executed + +# Store the initial directory +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# Function to log important steps +declare -A colors=( + ["INFO"]=$'\033[32m' # Green + ["BOLD"]=$'\033[1m' # Bold + ["TIME"]=$'\033[36m' # Cyan + ["RESET"]=$'\033[0m' # Reset +) + +log_step() { + # Check if stdout is a terminal + if [ -t 1 ]; then + local timestamp=$(date '+%Y-%m-%d %H:%M:%S') + echo -e "${colors[INFO]}${colors[BOLD]}===> STEP [${colors[TIME]}${timestamp}${colors[INFO]}]: $1${colors[RESET]}" + else + # If not terminal (e.g., redirected to file), don't use colors + local timestamp=$(date '+%Y-%m-%d %H:%M:%S') + echo "===> STEP [${timestamp}]: $1" + fi +} + +# Cleanup function to ensure resources are properly released +cleanup() { + local exit_code=$? + log_step "Performing cleanup (exit code: $exit_code)" + + # Make sure we're in the correct directory for cleanup + cd "${SCRIPT_DIR}" || true + + # Export logs + cur_time=$(date +%Y-%m-%d-%H-%M-%S) + if [ -f "../../scripts/export_log_k8s.sh" ]; then + bash ../../scripts/export_log_k8s.sh ${ns} ${release} k8s_log/${target_component}-${chaos_type}-${cur_time} || true + else + echo "Warning: export_log_k8s.sh not found in expected location" + fi + + # Uninstall Milvus + if [ -f "./scripts/uninstall_milvus.sh" ]; then + bash ./scripts/uninstall_milvus.sh ${release} ${ns} || true + else + echo "Warning: uninstall_milvus.sh not found in expected location" + fi + + exit $exit_code +} + +# Set up trap to catch exits +trap cleanup EXIT + +# Initialize basic variables ns="chaos-testing" +cur_time=$(date +%H-%M-%S) +target_component=${1:-"standalone"} +chaos_type=${2:-"pod_kill"} +node_num=${3:-1} -# switch namespace -# kubectl config set-context --current --namespace=${ns} -# kubectl get pod - -# set parameters -pod=${1:-"querynode"} -chaos_type=${2:-"pod_kill"} #pod_kill or pod_failure -chaos_task=${3:-"chaos-test"} # chaos-test or data-consist-test -node_num=${4:-1} # cluster_1_node or cluster_n_nodes +log_step "Initializing with parameters: target_component=${target_component}, chaos_type=${chaos_type}, node_num=${node_num}" -cur_time=$(date +%H-%M-%S) -release_name="test"-${pod}-${chaos_type/_/-}-${cur_time} # replace pod_kill to pod-kill +# Generate release name +release_name="test"-${target_component}-${chaos_type/_/-}-${cur_time} release=${RELEASE_NAME:-"${release_name}"} -# replace separator to default -chaos_type=${chaos_type/-/_} # default separator of chaos_type is _ -chaos_task=${chaos_task/_/-} # default separator of chaos_task is - -echo "chaos_type: ${chaos_type}" -# install milvus cluster for chaos testing -pushd ./scripts -echo "uninstall milvus if exist" -bash uninstall_milvus.sh ${release} ${ns}|| true - -declare -A pod_map=(["querynode"]="queryNode" ["indexnode"]="indexNode" ["datanode"]="dataNode" ["proxy"]="proxy") -echo "install milvus" -if [[ ${pod} != *"standalone"* ]]; -then - echo "insatll cluster" - helm install --wait --timeout 360s ${release} milvus/milvus --set ${pod_map[${pod}]}.replicas=$node_num -f ../cluster-values.yaml -n=${ns} +# Normalize chaos type format +chaos_type=${chaos_type/-/_} +log_step "Configured chaos_type: ${chaos_type}" + +# Change to scripts directory +pushd ./scripts || exit 1 +log_step "Uninstalling existing Milvus instance if any" +bash uninstall_milvus.sh ${release} ${ns} || true + +# Map component names +declare -A target_component_map=(["querynode"]="queryNode" ["indexnode"]="indexNode" ["datanode"]="dataNode" ["proxy"]="proxy") +log_step "Installing Milvus" + +# Install cluster configuration if not standalone +if [[ ${target_component} != *"standalone"* ]]; then + log_step "Installing cluster configuration" + helm repo add milvus https://zilliztech.github.io/milvus-helm/ + helm repo update milvus + helm install --wait --debug --timeout 360s ${release} milvus/milvus \ + --set ${target_component_map[${target_component}]}.replicas=$node_num \ + -f ../cluster-values.yaml -n=${ns} fi -if [[ ${pod} == *"standalone"* ]]; -then - echo "install standalone" - helm install --wait --timeout 360s ${release} milvus/milvus -f ../standalone-values.yaml -n=${ns} +# Install standalone configuration +if [[ ${target_component} == *"standalone"* ]]; then + log_step "Installing standalone configuration" + helm install --wait --debug --timeout 360s ${release} milvus/milvus \ + -f ../standalone-values.yaml -n=${ns} fi -# wait all pod ready +# Wait for all pods to be ready +log_step "Waiting for pods to be ready" kubectl wait --for=condition=Ready pod -l app.kubernetes.io/instance=${release} -n ${ns} --timeout=360s kubectl wait --for=condition=Ready pod -l release=${release} -n ${ns} --timeout=360s +kubectl get pod -o wide -l app.kubernetes.io/instance=${release} -n ${ns} +popd || exit 1 -popd - -# replace chaos object as defined -if [ "$platform" == "Mac" ]; -then - sed -i "" "s/TESTS_CONFIG_LOCATION =.*/TESTS_CONFIG_LOCATION = \'chaos_objects\/${chaos_type}\/'/g" constants.py - sed -i "" "s/ALL_CHAOS_YAMLS =.*/ALL_CHAOS_YAMLS = \'chaos_${pod}_${chaos_type}.yaml\'/g" constants.py - sed -i "" "s/RELEASE_NAME =.*/RELEASE_NAME = \'${release}\'/g" constants.py -else - sed -i "s/TESTS_CONFIG_LOCATION =.*/TESTS_CONFIG_LOCATION = \'chaos_objects\/${chaos_type}\/'/g" constants.py - sed -i "s/ALL_CHAOS_YAMLS =.*/ALL_CHAOS_YAMLS = \'chaos_${pod}_${chaos_type}.yaml\'/g" constants.py - sed -i "s/RELEASE_NAME =.*/RELEASE_NAME = \'${release}\'/g" constants.py -fi +# Configure service and get LoadBalancer IP +log_step "Starting chaos testing" +kubectl patch svc ${release}-milvus -p='{"spec":{"type":"LoadBalancer"}}' -n ${ns} +loadbalancer_ip=$(kubectl get svc ${release}-milvus -n ${ns} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') +host=${loadbalancer_ip} -# run chaos testing -echo "start running testcase ${pod}" -if [[ $release =~ "milvus" ]] -then - host=$(kubectl get svc/${release} -o jsonpath="{.spec.clusterIP}") -else - host=$(kubectl get svc/${release}-milvus -o jsonpath="{.spec.clusterIP}") -fi +# Run initial e2e tests +log_step "Running initial e2e tests" pytest -s -v ../testcases/test_e2e.py --host "$host" --log-cli-level=INFO --capture=no python3 scripts/hello_milvus.py --host "$host" -# chaos test -if [ "$chaos_task" == "chaos-test" ]; -then - pytest -s -v test_chaos.py --host "$host" --log-cli-level=INFO --capture=no || echo "chaos test fail" -fi -# data consist test -if [ "$chaos_task" == "data-consist-test" ]; -then - pytest -s -v test_chaos_data_consist.py --host "$host" --log-cli-level=INFO --capture=no || echo "chaos test fail" -fi -sleep 30 -echo "start running e2e test" +# Run parallel chaos and request tests +log_step "Starting parallel chaos and request tests" +pytest test_chaos_apply.py --milvus_ns ${ns} --chaos_type ${chaos_type} \ + --target_component ${target_component} --host "$host" \ + --log-cli-level=INFO --capture=no & +pytest testcases/test_single_request_operation.py --host "$host" \ + --request_duration 15m --log-cli-level=INFO --capture=no & +wait + +# Wait for system recovery after chaos tests +log_step "Waiting for pods to be ready after chaos tests" kubectl wait --for=condition=Ready pod -l app.kubernetes.io/instance=${release} -n ${ns} --timeout=360s kubectl wait --for=condition=Ready pod -l release=${release} -n ${ns} --timeout=360s +# Run final verification tests +log_step "Running final e2e tests" pytest -s -v ../testcases/test_e2e.py --host "$host" --log-cli-level=INFO --capture=no || echo "e2e test fail" -python3 scripts/hello_milvus.py --host "$host" || echo "e2e test fail" - -# save logs -cur_time=$(date +%Y-%m-%d-%H-%M-%S) -bash ../../scripts/export_log_k8s.sh ${ns} ${release} k8s_log/${pod}-${chaos_type}-${chaos_task}-${cur_time} \ No newline at end of file +python3 scripts/hello_milvus.py --host "$host" || echo "e2e test fail" \ No newline at end of file diff --git a/tests/python_client/chaos/cluster-values.yaml b/tests/python_client/chaos/cluster-values.yaml index 316abd7d92ffd..fe09f9033d003 100644 --- a/tests/python_client/chaos/cluster-values.yaml +++ b/tests/python_client/chaos/cluster-values.yaml @@ -6,7 +6,7 @@ image: all: repository: milvusdb/milvus tag: master-latest - pullPolicy: IfNotPresent + pullPolicy: Always indexNode: resources: @@ -14,6 +14,12 @@ indexNode: cpu: 2 limits: cpu: 8 +proxy: + resources: + requests: + cpu: 2 + limits: + cpu: 8 etcd: replicaCount: 3 @@ -27,119 +33,11 @@ minio: memory: 256Mi kafka: - enabled: false + enabled: true name: kafka replicaCount: 3 defaultReplicationFactor: 2 - pulsar: - enabled: true - extra: - bastion: no - wsproxy: no - - autorecovery: - resources: - requests: - cpu: 0.1 - memory: 256Mi - proxy: - replicaCount: 1 - resources: - requests: - cpu: 0.1 - memory: 256Mi - wsResources: - requests: - memory: 256Mi - cpu: 0.1 - configData: - PULSAR_MEM: > - -Xms256m -Xmx256m - PULSAR_GC: > - -XX:MaxDirectMemorySize=512m - httpNumThreads: "50" - - bookkeeper: - replicaCount: 2 - resources: - requests: - cpu: 0.1 - memory: 512Mi - configData: - PULSAR_MEM: > - -Xms512m - -Xmx512m - -XX:MaxDirectMemorySize=1024m - PULSAR_GC: > - -Dio.netty.leakDetectionLevel=disabled - -Dio.netty.recycler.linkCapacity=1024 - -XX:+UseG1GC -XX:MaxGCPauseMillis=10 - -XX:+ParallelRefProcEnabled - -XX:+UnlockExperimentalVMOptions - -XX:+DoEscapeAnalysis - -XX:ParallelGCThreads=32 - -XX:ConcGCThreads=32 - -XX:G1NewSizePercent=50 - -XX:+DisableExplicitGC - -XX:-ResizePLAB - -XX:+ExitOnOutOfMemoryError - -XX:+PerfDisableSharedMem - -XX:+PrintGCDetails - nettyMaxFrameSizeBytes: "104867840" - zookeeper: - replicaCount: 1 - resources: - requests: - cpu: 0.1 - memory: 256Mi - configData: - PULSAR_MEM: > - -Xms512m - -Xmx512m - PULSAR_GC: > - -Dcom.sun.management.jmxremote - -Djute.maxbuffer=10485760 - -XX:+ParallelRefProcEnabled - -XX:+UnlockExperimentalVMOptions - -XX:+DoEscapeAnalysis - -XX:+DisableExplicitGC - -XX:+PerfDisableSharedMem - -Dzookeeper.forceSync=no - broker: - replicaCount: 1 - resources: - requests: - cpu: 0.1 - memory: 512Mi - configData: - PULSAR_MEM: > - -Xms512m - -Xmx512m - -XX:MaxDirectMemorySize=1024m - PULSAR_GC: > - -Dio.netty.leakDetectionLevel=disabled - -Dio.netty.recycler.linkCapacity=1024 - -XX:+ParallelRefProcEnabled - -XX:+UnlockExperimentalVMOptions - -XX:+DoEscapeAnalysis - -XX:ParallelGCThreads=32 - -XX:ConcGCThreads=32 - -XX:G1NewSizePercent=50 - -XX:+DisableExplicitGC - -XX:-ResizePLAB - -XX:+ExitOnOutOfMemoryError - maxMessageSize: "104857600" - defaultRetentionTimeInMinutes: "10080" - defaultRetentionSizeInMB: "8192" - backlogQuotaDefaultLimitGB: "8" - backlogQuotaDefaultRetentionPolicy: producer_exception - -extraConfigFiles: - user.yaml: |+ - dataCoord: - compaction: - indexBasedCompaction: false - indexCoord: - scheduler: - interval: 100 \ No newline at end of file + enabled: false +pulsarv3: + enabled: false \ No newline at end of file diff --git a/tests/python_client/chaos/standalone-values.yaml b/tests/python_client/chaos/standalone-values.yaml index 8a08f058d44b7..180bd3feb0c11 100644 --- a/tests/python_client/chaos/standalone-values.yaml +++ b/tests/python_client/chaos/standalone-values.yaml @@ -8,7 +8,7 @@ image: all: repository: milvusdb/milvus tag: master-latest - pullPolicy: IfNotPresent + pullPolicy: Always standalone: resources: limits: @@ -17,6 +17,11 @@ standalone: requests: cpu: 4 memory: 8Gi +pulsarv3: + enabled: false + +pulsar: + enabled: false kafka: enabled: false From 11f8f4a3788bef47f72bcd1af5a87585c00749ee Mon Sep 17 00:00:00 2001 From: tinswzy Date: Tue, 31 Dec 2024 18:22:53 +0800 Subject: [PATCH 47/69] enhance: add intent ctx to rootcoord init (#38439) issue: #35917 add intent ctx to rootcoord initialization process Signed-off-by: tinswzy --- cmd/roles/roles.go | 4 +- internal/rootcoord/dml_channels.go | 17 +++++--- internal/rootcoord/mock_test.go | 4 +- internal/rootcoord/root_coord.go | 57 +++++++++++++------------ internal/rootcoord/root_coord_test.go | 4 +- internal/rootcoord/timeticksync.go | 8 ++-- internal/rootcoord/timeticksync_test.go | 10 ++--- pkg/log/global.go | 12 ++++++ pkg/log/mlogger_test.go | 30 +++++++++++++ pkg/mq/msgstream/common_mq_factory.go | 6 +-- pkg/mq/msgstream/mq_msgstream.go | 10 ++--- 11 files changed, 105 insertions(+), 57 deletions(-) diff --git a/cmd/roles/roles.go b/cmd/roles/roles.go index 02543e6ea8fc1..ef59216f0f245 100644 --- a/cmd/roles/roles.go +++ b/cmd/roles/roles.go @@ -385,6 +385,9 @@ func (mr *MilvusRoles) Run() { paramtable.SetRole(mr.ServerType) } + // init tracer before run any component + tracer.Init() + // Initialize streaming service if enabled. if streamingutil.IsStreamingServiceEnabled() { streaming.Init() @@ -518,7 +521,6 @@ func (mr *MilvusRoles) Run() { return nil }) - tracer.Init() paramtable.Get().WatchKeyPrefix("trace", config.NewHandler("tracing handler", func(e *config.Event) { params := paramtable.Get() diff --git a/internal/rootcoord/dml_channels.go b/internal/rootcoord/dml_channels.go index 26fe2cf8cf4ba..7e210efaedf0a 100644 --- a/internal/rootcoord/dml_channels.go +++ b/internal/rootcoord/dml_channels.go @@ -147,7 +147,10 @@ type dmlChannels struct { channelsHeap channelsHeap } -func newDmlChannels(ctx context.Context, factory msgstream.Factory, chanNamePrefixDefault string, chanNumDefault int64) *dmlChannels { +func newDmlChannels(initCtx context.Context, factory msgstream.Factory, chanNamePrefixDefault string, chanNumDefault int64) *dmlChannels { + log.Ctx(initCtx).Info("new DmlChannels", + zap.String("chanNamePrefixDefault", chanNamePrefixDefault), + zap.Int64("chanNumDefault", chanNumDefault)) params := ¶mtable.Get().CommonCfg var ( chanNamePrefix string @@ -167,7 +170,7 @@ func newDmlChannels(ctx context.Context, factory msgstream.Factory, chanNamePref } d := &dmlChannels{ - ctx: ctx, + ctx: context.TODO(), factory: factory, namePrefix: chanNamePrefix, capacity: chanNum, @@ -176,19 +179,19 @@ func newDmlChannels(ctx context.Context, factory msgstream.Factory, chanNamePref } for i, name := range names { - ms, err := factory.NewMsgStream(ctx) + ms, err := factory.NewMsgStream(initCtx) if err != nil { - log.Ctx(ctx).Error("Failed to add msgstream", + log.Ctx(initCtx).Error("Failed to add msgstream", zap.String("name", name), zap.Error(err)) panic("Failed to add msgstream") } if params.PreCreatedTopicEnabled.GetAsBool() { - d.checkPreCreatedTopic(ctx, factory, name) + d.checkPreCreatedTopic(initCtx, factory, name) } - ms.AsProducer(ctx, []string{name}) + ms.AsProducer(initCtx, []string{name}) dms := &dmlMsgStream{ ms: ms, refcnt: 0, @@ -202,7 +205,7 @@ func newDmlChannels(ctx context.Context, factory msgstream.Factory, chanNamePref heap.Init(&d.channelsHeap) - log.Ctx(ctx).Info("init dml channels", zap.String("prefix", chanNamePrefix), zap.Int64("num", chanNum)) + log.Ctx(initCtx).Info("init dml channels", zap.String("prefix", chanNamePrefix), zap.Int64("num", chanNum)) metrics.RootCoordNumOfDMLChannel.Add(float64(chanNum)) metrics.RootCoordNumOfMsgStream.Add(float64(chanNum)) diff --git a/internal/rootcoord/mock_test.go b/internal/rootcoord/mock_test.go index 20ab510c0df9d..b3b6429452097 100644 --- a/internal/rootcoord/mock_test.go +++ b/internal/rootcoord/mock_test.go @@ -712,7 +712,7 @@ func newRocksMqTtSynchronizer() *timetickSync { ctx := context.Background() factory := dependency.NewDefaultFactory(true) chans := map[UniqueID][]string{} - ticker := newTimeTickSync(ctx, TestRootCoordID, factory, chans) + ticker := newTimeTickSync(context.TODO(), ctx, TestRootCoordID, factory, chans) return ticker } @@ -1054,7 +1054,7 @@ func newTickerWithFactory(factory msgstream.Factory) *timetickSync { paramtable.Get().Save(Params.RootCoordCfg.DmlChannelNum.Key, "4") ctx := context.Background() chans := map[UniqueID][]string{} - ticker := newTimeTickSync(ctx, TestRootCoordID, factory, chans) + ticker := newTimeTickSync(context.TODO(), ctx, TestRootCoordID, factory, chans) return ticker } diff --git a/internal/rootcoord/root_coord.go b/internal/rootcoord/root_coord.go index 708e365ae7920..88138d0e0849f 100644 --- a/internal/rootcoord/root_coord.go +++ b/internal/rootcoord/root_coord.go @@ -341,15 +341,14 @@ func (c *Core) initKVCreator() { } } -func (c *Core) initMetaTable() error { - log := log.Ctx(c.ctx) +func (c *Core) initMetaTable(initCtx context.Context) error { fn := func() error { var catalog metastore.RootCoordCatalog var err error switch Params.MetaStoreCfg.MetaStoreType.GetValue() { case util.MetaStoreTypeEtcd: - log.Info("Using etcd as meta storage.") + log.Ctx(initCtx).Info("Using etcd as meta storage.") var metaKV kv.MetaKv var ss *kvmetestore.SuffixSnapshot var err error @@ -363,7 +362,7 @@ func (c *Core) initMetaTable() error { } catalog = &kvmetestore.Catalog{Txn: metaKV, Snapshot: ss} case util.MetaStoreTypeTiKV: - log.Info("Using tikv as meta storage.") + log.Ctx(initCtx).Info("Using tikv as meta storage.") var metaKV kv.MetaKv var ss *kvmetestore.SuffixSnapshot var err error @@ -387,10 +386,10 @@ func (c *Core) initMetaTable() error { return nil } - return retry.Do(c.ctx, fn, retry.Attempts(10)) + return retry.Do(initCtx, fn, retry.Attempts(10)) } -func (c *Core) initIDAllocator() error { +func (c *Core) initIDAllocator(initCtx context.Context) error { var tsoKV kv.TxnKV var kvPath string if Params.MetaStoreCfg.MetaStoreType.GetValue() == util.MetaStoreTypeTiKV { @@ -406,7 +405,7 @@ func (c *Core) initIDAllocator() error { } c.idAllocator = idAllocator - log.Ctx(c.ctx).Info("id allocator initialized", + log.Ctx(initCtx).Info("id allocator initialized", zap.String("root_path", kvPath), zap.String("sub_path", globalIDAllocatorSubPath), zap.String("key", globalIDAllocatorKey)) @@ -414,7 +413,7 @@ func (c *Core) initIDAllocator() error { return nil } -func (c *Core) initTSOAllocator() error { +func (c *Core) initTSOAllocator(initCtx context.Context) error { var tsoKV kv.TxnKV var kvPath string if Params.MetaStoreCfg.MetaStoreType.GetValue() == util.MetaStoreTypeTiKV { @@ -430,7 +429,7 @@ func (c *Core) initTSOAllocator() error { } c.tsoAllocator = tsoAllocator - log.Ctx(c.ctx).Info("tso allocator initialized", + log.Ctx(initCtx).Info("tso allocator initialized", zap.String("root_path", kvPath), zap.String("sub_path", globalIDAllocatorSubPath), zap.String("key", globalIDAllocatorKey)) @@ -439,19 +438,22 @@ func (c *Core) initTSOAllocator() error { } func (c *Core) initInternal() error { - log := log.Ctx(c.ctx) + initCtx, initSpan := log.NewIntentContext(typeutil.RootCoordRole, "initInternal") + defer initSpan.End() + log := log.Ctx(initCtx) + c.UpdateStateCode(commonpb.StateCode_Initializing) c.initKVCreator() - if err := c.initIDAllocator(); err != nil { + if err := c.initIDAllocator(initCtx); err != nil { return err } - if err := c.initTSOAllocator(); err != nil { + if err := c.initTSOAllocator(initCtx); err != nil { return err } - if err := c.initMetaTable(); err != nil { + if err := c.initMetaTable(initCtx); err != nil { return err } @@ -459,7 +461,7 @@ func (c *Core) initInternal() error { c.factory.Init(Params) chanMap := c.meta.ListCollectionPhysicalChannels(c.ctx) - c.chanTimeTick = newTimeTickSync(c.ctx, c.session.ServerID, c.factory, chanMap) + c.chanTimeTick = newTimeTickSync(initCtx, c.ctx, c.session.ServerID, c.factory, chanMap) log.Info("create TimeTick sync done") c.proxyClientManager = proxyutil.NewProxyClientManager(c.proxyCreator) @@ -492,12 +494,12 @@ func (c *Core) initInternal() error { c.quotaCenter = NewQuotaCenter(c.proxyClientManager, c.queryCoord, c.dataCoord, c.tsoAllocator, c.meta) log.Debug("RootCoord init QuotaCenter done") - if err := c.initCredentials(); err != nil { + if err := c.initCredentials(initCtx); err != nil { return err } log.Info("init credentials done") - if err := c.initRbac(); err != nil { + if err := c.initRbac(initCtx); err != nil { return err } @@ -555,34 +557,33 @@ func (c *Core) Init() error { return initError } -func (c *Core) initCredentials() error { - log := log.Ctx(c.ctx) - credInfo, _ := c.meta.GetCredential(c.ctx, util.UserRoot) +func (c *Core) initCredentials(initCtx context.Context) error { + credInfo, _ := c.meta.GetCredential(initCtx, util.UserRoot) if credInfo == nil { encryptedRootPassword, err := crypto.PasswordEncrypt(Params.CommonCfg.DefaultRootPassword.GetValue()) if err != nil { - log.Warn("RootCoord init user root failed", zap.Error(err)) + log.Ctx(initCtx).Warn("RootCoord init user root failed", zap.Error(err)) return err } - log.Info("RootCoord init user root") - err = c.meta.AddCredential(c.ctx, &internalpb.CredentialInfo{Username: util.UserRoot, EncryptedPassword: encryptedRootPassword}) + log.Ctx(initCtx).Info("RootCoord init user root") + err = c.meta.AddCredential(initCtx, &internalpb.CredentialInfo{Username: util.UserRoot, EncryptedPassword: encryptedRootPassword}) return err } return nil } -func (c *Core) initRbac() error { +func (c *Core) initRbac(initCtx context.Context) error { var err error // create default roles, including admin, public for _, role := range util.DefaultRoles { - err = c.meta.CreateRole(c.ctx, util.DefaultTenant, &milvuspb.RoleEntity{Name: role}) + err = c.meta.CreateRole(initCtx, util.DefaultTenant, &milvuspb.RoleEntity{Name: role}) if err != nil && !common.IsIgnorableError(err) { return errors.Wrap(err, "failed to create role") } } if Params.ProxyCfg.EnablePublicPrivilege.GetAsBool() { - err = c.initPublicRolePrivilege() + err = c.initPublicRolePrivilege(initCtx) if err != nil { return err } @@ -594,7 +595,7 @@ func (c *Core) initRbac() error { return nil } -func (c *Core) initPublicRolePrivilege() error { +func (c *Core) initPublicRolePrivilege(initCtx context.Context) error { // grant privileges for the public role globalPrivileges := []string{ commonpb.ObjectPrivilege_PrivilegeDescribeCollection.String(), @@ -606,7 +607,7 @@ func (c *Core) initPublicRolePrivilege() error { var err error for _, globalPrivilege := range globalPrivileges { - err = c.meta.OperatePrivilege(c.ctx, util.DefaultTenant, &milvuspb.GrantEntity{ + err = c.meta.OperatePrivilege(initCtx, util.DefaultTenant, &milvuspb.GrantEntity{ Role: &milvuspb.RoleEntity{Name: util.RolePublic}, Object: &milvuspb.ObjectEntity{Name: commonpb.ObjectType_Global.String()}, ObjectName: util.AnyWord, @@ -621,7 +622,7 @@ func (c *Core) initPublicRolePrivilege() error { } } for _, collectionPrivilege := range collectionPrivileges { - err = c.meta.OperatePrivilege(c.ctx, util.DefaultTenant, &milvuspb.GrantEntity{ + err = c.meta.OperatePrivilege(initCtx, util.DefaultTenant, &milvuspb.GrantEntity{ Role: &milvuspb.RoleEntity{Name: util.RolePublic}, Object: &milvuspb.ObjectEntity{Name: commonpb.ObjectType_Collection.String()}, ObjectName: util.AnyWord, diff --git a/internal/rootcoord/root_coord_test.go b/internal/rootcoord/root_coord_test.go index cbb5be1c92f18..9df0d5dd1bdec 100644 --- a/internal/rootcoord/root_coord_test.go +++ b/internal/rootcoord/root_coord_test.go @@ -2071,7 +2071,7 @@ func TestCore_InitRBAC(t *testing.T) { Params.Reset(Params.ProxyCfg.EnablePublicPrivilege.Key) }() - err := c.initRbac() + err := c.initRbac(context.TODO()) assert.NoError(t, err) }) @@ -2092,7 +2092,7 @@ func TestCore_InitRBAC(t *testing.T) { Params.Reset(Params.ProxyCfg.EnablePublicPrivilege.Key) }() - err := c.initRbac() + err := c.initRbac(context.TODO()) assert.NoError(t, err) }) } diff --git a/internal/rootcoord/timeticksync.go b/internal/rootcoord/timeticksync.go index 1b4ea74539d13..6c2b38331a310 100644 --- a/internal/rootcoord/timeticksync.go +++ b/internal/rootcoord/timeticksync.go @@ -113,22 +113,22 @@ func (c *chanTsMsg) getTimetick(channelName string) typeutil.Timestamp { return c.defaultTs } -func newTimeTickSync(ctx context.Context, sourceID int64, factory msgstream.Factory, chanMap map[typeutil.UniqueID][]string) *timetickSync { +func newTimeTickSync(initCtx context.Context, parentLoopCtx context.Context, sourceID int64, factory msgstream.Factory, chanMap map[typeutil.UniqueID][]string) *timetickSync { // if the old channels number used by the user is greater than the set default value currently // keep the old channels chanNum := getNeedChanNum(Params.RootCoordCfg.DmlChannelNum.GetAsInt(), chanMap) // initialize dml channels used for insert - dmlChannels := newDmlChannels(ctx, factory, Params.CommonCfg.RootCoordDml.GetValue(), int64(chanNum)) + dmlChannels := newDmlChannels(initCtx, factory, Params.CommonCfg.RootCoordDml.GetValue(), int64(chanNum)) // recover physical channels for all collections for collID, chanNames := range chanMap { dmlChannels.addChannels(chanNames...) - log.Ctx(ctx).Info("recover physical channels", zap.Int64("collectionID", collID), zap.Strings("physical channels", chanNames)) + log.Ctx(initCtx).Info("recover physical channels", zap.Int64("collectionID", collID), zap.Strings("physical channels", chanNames)) } return &timetickSync{ - ctx: ctx, + ctx: parentLoopCtx, sourceID: sourceID, dmlChannels: dmlChannels, diff --git a/internal/rootcoord/timeticksync_test.go b/internal/rootcoord/timeticksync_test.go index 40b6a986db821..2320471c87bf2 100644 --- a/internal/rootcoord/timeticksync_test.go +++ b/internal/rootcoord/timeticksync_test.go @@ -42,7 +42,7 @@ func TestTimetickSync(t *testing.T) { paramtable.Get().Save(Params.RootCoordCfg.DmlChannelNum.Key, "2") paramtable.Get().Save(Params.CommonCfg.RootCoordDml.Key, "rootcoord-dml") - ttSync := newTimeTickSync(ctx, sourceID, factory, nil) + ttSync := newTimeTickSync(context.TODO(), ctx, sourceID, factory, nil) var wg sync.WaitGroup wg.Add(1) @@ -120,7 +120,7 @@ func TestMultiTimetickSync(t *testing.T) { paramtable.Get().Save(Params.RootCoordCfg.DmlChannelNum.Key, "1") paramtable.Get().Save(Params.CommonCfg.RootCoordDml.Key, "rootcoord-dml") - ttSync := newTimeTickSync(ctx, UniqueID(0), factory, nil) + ttSync := newTimeTickSync(context.TODO(), ctx, UniqueID(0), factory, nil) var wg sync.WaitGroup @@ -190,7 +190,7 @@ func TestTimetickSyncWithExistChannels(t *testing.T) { chans[UniqueID(100)] = []string{"by-dev-rootcoord-dml_4", "by-dev-rootcoord-dml_8"} chans[UniqueID(102)] = []string{"by-dev-rootcoord-dml_2", "by-dev-rootcoord-dml_9"} - ttSync := newTimeTickSync(ctx, sourceID, factory, chans) + ttSync := newTimeTickSync(context.TODO(), ctx, sourceID, factory, chans) var wg sync.WaitGroup wg.Add(1) @@ -237,12 +237,12 @@ func TestTimetickSyncInvalidName(t *testing.T) { chans := map[UniqueID][]string{} chans[UniqueID(100)] = []string{"rootcoord-dml4"} assert.Panics(t, func() { - newTimeTickSync(ctx, sourceID, factory, chans) + newTimeTickSync(context.TODO(), ctx, sourceID, factory, chans) }) chans = map[UniqueID][]string{} chans[UniqueID(102)] = []string{"rootcoord-dml_a"} assert.Panics(t, func() { - newTimeTickSync(ctx, sourceID, factory, chans) + newTimeTickSync(context.TODO(), ctx, sourceID, factory, chans) }) } diff --git a/pkg/log/global.go b/pkg/log/global.go index 6a00a8d4d25ba..62ce8da5095ef 100644 --- a/pkg/log/global.go +++ b/pkg/log/global.go @@ -16,6 +16,8 @@ package log import ( "context" + "go.opentelemetry.io/otel" + "go.opentelemetry.io/otel/trace" "go.uber.org/zap" "go.uber.org/zap/zapcore" ) @@ -159,6 +161,16 @@ func WithFields(ctx context.Context, fields ...zap.Field) context.Context { return context.WithValue(ctx, CtxLogKey, mLogger) } +// NewIntentContext creates a new context with intent information and returns it along with a span. +func NewIntentContext(name string, intent string) (context.Context, trace.Span) { + intentCtx, initSpan := otel.Tracer(name).Start(context.Background(), intent) + intentCtx = WithFields(intentCtx, + zap.String("role", name), + zap.String("intent", intent), + zap.String("traceID", initSpan.SpanContext().TraceID().String())) + return intentCtx, initSpan +} + // Ctx returns a logger which will log contextual messages attached in ctx func Ctx(ctx context.Context) *MLogger { if ctx == nil { diff --git a/pkg/log/mlogger_test.go b/pkg/log/mlogger_test.go index 63a71f7140b3e..7b4c76d8d683a 100644 --- a/pkg/log/mlogger_test.go +++ b/pkg/log/mlogger_test.go @@ -2,6 +2,7 @@ package log import ( "context" + "fmt" "testing" "time" @@ -101,3 +102,32 @@ func TestMLoggerRatedLog(t *testing.T) { assert.True(t, success) Ctx(ctx).Sync() } + +func TestNewIntentContext(t *testing.T) { + ts := newTestLogSpy(t) + conf := &Config{Level: "debug", DisableTimestamp: true} + logger, p, _ := InitTestLogger(ts, conf) + ReplaceGlobals(logger, p) + + replaceLeveledLoggers(logger) + testName := "testRole" + testIntent := "testIntent" + ctx, span := NewIntentContext(testName, testIntent) + traceID := span.SpanContext().TraceID().String() + assert.NotNil(t, ctx) + assert.NotNil(t, span) + assert.NotNil(t, ctx.Value(CtxLogKey)) + mLogger, ok := ctx.Value(CtxLogKey).(*MLogger) + assert.True(t, ok) + assert.NotNil(t, mLogger) + + Ctx(ctx).Info("Info Test") + Ctx(ctx).Debug("Debug Test") + Ctx(ctx).Warn("Warn Test") + Ctx(ctx).Error("Error Test") + Ctx(ctx).Sync() + + ts.assertLastMessageContains(fmt.Sprintf("role=%s", testName)) + ts.assertLastMessageContains(fmt.Sprintf("intent=%s", testIntent)) + ts.assertLastMessageContains(fmt.Sprintf("traceID=%s", traceID)) +} diff --git a/pkg/mq/msgstream/common_mq_factory.go b/pkg/mq/msgstream/common_mq_factory.go index 0f3317e70a173..92046ccec811f 100644 --- a/pkg/mq/msgstream/common_mq_factory.go +++ b/pkg/mq/msgstream/common_mq_factory.go @@ -23,13 +23,13 @@ type CommonFactory struct { } // NewMsgStream is used to generate a new Msgstream object -func (f *CommonFactory) NewMsgStream(ctx context.Context) (ms MsgStream, err error) { +func (f *CommonFactory) NewMsgStream(initCtx context.Context) (ms MsgStream, err error) { defer wrapError(&err, "NewMsgStream") - cli, err := f.Newer(ctx) + cli, err := f.Newer(context.TODO()) if err != nil { return nil, err } - return NewMqMsgStream(context.Background(), f.ReceiveBufSize, f.MQBufSize, cli, f.DispatcherFactory.NewUnmarshalDispatcher()) + return NewMqMsgStream(initCtx, f.ReceiveBufSize, f.MQBufSize, cli, f.DispatcherFactory.NewUnmarshalDispatcher()) } // NewTtMsgStream is used to generate a new TtMsgstream object diff --git a/pkg/mq/msgstream/mq_msgstream.go b/pkg/mq/msgstream/mq_msgstream.go index 76486865e81a1..0d7d9ba5af506 100644 --- a/pkg/mq/msgstream/mq_msgstream.go +++ b/pkg/mq/msgstream/mq_msgstream.go @@ -78,13 +78,13 @@ type mqMsgStream struct { } // NewMqMsgStream is used to generate a new mqMsgStream object -func NewMqMsgStream(ctx context.Context, +func NewMqMsgStream(initCtx context.Context, receiveBufSize int64, bufSize int64, client mqwrapper.Client, unmarshal UnmarshalDispatcher, ) (*mqMsgStream, error) { - streamCtx, streamCancel := context.WithCancel(ctx) + streamCtx, streamCancel := context.WithCancel(context.Background()) producers := make(map[string]mqwrapper.Producer) consumers := make(map[string]mqwrapper.Consumer) producerChannels := make([]string, 0) @@ -108,7 +108,7 @@ func NewMqMsgStream(ctx context.Context, closeRWMutex: &sync.RWMutex{}, closed: 0, } - ctxLog := log.Ctx(ctx) + ctxLog := log.Ctx(initCtx) stream.forceEnableProduce.Store(false) stream.ttMsgEnable.Store(paramtable.Get().CommonCfg.TTMsgEnabled.GetAsBool()) stream.configEvent = config.NewHandler("enable send tt msg "+fmt.Sprint(streamCounter.Inc()), func(event *config.Event) { @@ -130,7 +130,7 @@ func NewMqMsgStream(ctx context.Context, func (ms *mqMsgStream) AsProducer(ctx context.Context, channels []string) { for _, channel := range channels { if len(channel) == 0 { - log.Ctx(ms.ctx).Error("MsgStream asProducer's channel is an empty string") + log.Ctx(ctx).Error("MsgStream asProducer's channel is an empty string") break } @@ -149,7 +149,7 @@ func (ms *mqMsgStream) AsProducer(ctx context.Context, channels []string) { ms.producerChannels = append(ms.producerChannels, channel) return nil } - err := retry.Do(context.TODO(), fn, retry.Attempts(20), retry.Sleep(time.Millisecond*200), retry.MaxSleepTime(5*time.Second)) + err := retry.Do(ctx, fn, retry.Attempts(20), retry.Sleep(time.Millisecond*200), retry.MaxSleepTime(5*time.Second)) if err != nil { errMsg := "Failed to create producer " + channel + ", error = " + err.Error() panic(errMsg) From accfacf0128c6c0558149b7bdec7a609bae934b0 Mon Sep 17 00:00:00 2001 From: MimoN Date: Tue, 31 Dec 2024 18:25:00 +0800 Subject: [PATCH 48/69] fix: [skip e2e]update webui logic (#38755) issue: #36621 * update collection detail page logic * fix data page segments list * remove useless js file --- internal/http/webui/assets/index-Bybe0GVy.js | 1502 ----------------- internal/http/webui/assets/index-D2OgaNZi.js | 1502 ----------------- internal/http/webui/assets/index-DH8a4Gc3.js | 1502 +++++++++++++++++ ...{index-Cpi1DtPq.css => index-fggaDIOF.css} | 2 +- internal/http/webui/index.html | 42 +- 5 files changed, 1528 insertions(+), 3022 deletions(-) delete mode 100644 internal/http/webui/assets/index-Bybe0GVy.js delete mode 100644 internal/http/webui/assets/index-D2OgaNZi.js create mode 100644 internal/http/webui/assets/index-DH8a4Gc3.js rename internal/http/webui/assets/{index-Cpi1DtPq.css => index-fggaDIOF.css} (79%) diff --git a/internal/http/webui/assets/index-Bybe0GVy.js b/internal/http/webui/assets/index-Bybe0GVy.js deleted file mode 100644 index a859a9f866dd5..0000000000000 --- a/internal/http/webui/assets/index-Bybe0GVy.js +++ /dev/null @@ -1,1502 +0,0 @@ -var z3=Object.defineProperty;var H3=(e,t,n)=>t in e?z3(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var zs=(e,t,n)=>H3(e,typeof t!="symbol"?t+"":t,n);function V3(e,t){for(var n=0;nr[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}})();var jl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function $o(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function W3(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}),n}var LS={exports:{}},of={},AS={exports:{}},Ze={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var vc=Symbol.for("react.element"),U3=Symbol.for("react.portal"),G3=Symbol.for("react.fragment"),q3=Symbol.for("react.strict_mode"),K3=Symbol.for("react.profiler"),Z3=Symbol.for("react.provider"),Q3=Symbol.for("react.context"),Y3=Symbol.for("react.forward_ref"),X3=Symbol.for("react.suspense"),J3=Symbol.for("react.memo"),eT=Symbol.for("react.lazy"),fv=Symbol.iterator;function tT(e){return e===null||typeof e!="object"?null:(e=fv&&e[fv]||e["@@iterator"],typeof e=="function"?e:null)}var NS={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},DS=Object.assign,jS={};function _s(e,t,n){this.props=e,this.context=t,this.refs=jS,this.updater=n||NS}_s.prototype.isReactComponent={};_s.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};_s.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function FS(){}FS.prototype=_s.prototype;function r0(e,t,n){this.props=e,this.context=t,this.refs=jS,this.updater=n||NS}var o0=r0.prototype=new FS;o0.constructor=r0;DS(o0,_s.prototype);o0.isPureReactComponent=!0;var pv=Array.isArray,BS=Object.prototype.hasOwnProperty,i0={current:null},zS={key:!0,ref:!0,__self:!0,__source:!0};function HS(e,t,n){var r,o={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)BS.call(t,r)&&!zS.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(s===1)o.children=n;else if(1>>1,z=E[H];if(0>>1;Ho(W,B))Vo(ee,W)?(E[H]=ee,E[V]=B,H=V):(E[H]=W,E[F]=B,H=F);else if(Vo(ee,B))E[H]=ee,E[V]=B,H=V;else break e}}return L}function o(E,L){var B=E.sortIndex-L.sortIndex;return B!==0?B:E.id-L.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],c=[],u=1,d=null,f=3,p=!1,h=!1,y=!1,w=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,S=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function m(E){for(var L=n(c);L!==null;){if(L.callback===null)r(c);else if(L.startTime<=E)r(c),L.sortIndex=L.expirationTime,t(l,L);else break;L=n(c)}}function C(E){if(y=!1,m(E),!h)if(n(l)!==null)h=!0,A(_);else{var L=n(c);L!==null&&N(C,L.startTime-E)}}function _(E,L){h=!1,y&&(y=!1,v(T),T=-1),p=!0;var B=f;try{for(m(L),d=n(l);d!==null&&(!(d.expirationTime>L)||E&&!$());){var H=d.callback;if(typeof H=="function"){d.callback=null,f=d.priorityLevel;var z=H(d.expirationTime<=L);L=e.unstable_now(),typeof z=="function"?d.callback=z:d===n(l)&&r(l),m(L)}else r(l);d=n(l)}if(d!==null)var j=!0;else{var F=n(c);F!==null&&N(C,F.startTime-L),j=!1}return j}finally{d=null,f=B,p=!1}}var R=!1,k=null,T=-1,P=5,x=-1;function $(){return!(e.unstable_now()-xE||125H?(E.sortIndex=B,t(c,E),n(l)===null&&E===n(c)&&(y?(v(T),T=-1):y=!0,N(C,B-H))):(E.sortIndex=z,t(l,E),h||p||(h=!0,A(_))),E},e.unstable_shouldYield=$,e.unstable_wrapCallback=function(E){var L=f;return function(){var B=f;f=L;try{return E.apply(this,arguments)}finally{f=B}}}})(qS);GS.exports=qS;var fT=GS.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var pT=b,Jn=fT;function he(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),uh=Object.prototype.hasOwnProperty,gT=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,hv={},mv={};function hT(e){return uh.call(mv,e)?!0:uh.call(hv,e)?!1:gT.test(e)?mv[e]=!0:(hv[e]=!0,!1)}function mT(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function vT(e,t,n,r){if(t===null||typeof t>"u"||mT(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function En(e,t,n,r,o,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var cn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){cn[e]=new En(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];cn[t]=new En(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){cn[e]=new En(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){cn[e]=new En(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){cn[e]=new En(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){cn[e]=new En(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){cn[e]=new En(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){cn[e]=new En(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){cn[e]=new En(e,5,!1,e.toLowerCase(),null,!1,!1)});var s0=/[\-:]([a-z])/g;function l0(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(s0,l0);cn[t]=new En(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(s0,l0);cn[t]=new En(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(s0,l0);cn[t]=new En(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){cn[e]=new En(e,1,!1,e.toLowerCase(),null,!1,!1)});cn.xlinkHref=new En("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){cn[e]=new En(e,1,!1,e.toLowerCase(),null,!0,!0)});function c0(e,t,n,r){var o=cn.hasOwnProperty(t)?cn[t]:null;(o!==null?o.type!==0:r||!(2s||o[a]!==i[s]){var l=` -`+o[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{Lp=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ul(e):""}function yT(e){switch(e.tag){case 5:return ul(e.type);case 16:return ul("Lazy");case 13:return ul("Suspense");case 19:return ul("SuspenseList");case 0:case 2:case 15:return e=Ap(e.type,!1),e;case 11:return e=Ap(e.type.render,!1),e;case 1:return e=Ap(e.type,!0),e;default:return""}}function gh(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Pa:return"Fragment";case Ta:return"Portal";case dh:return"Profiler";case u0:return"StrictMode";case fh:return"Suspense";case ph:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case QS:return(e.displayName||"Context")+".Consumer";case ZS:return(e._context.displayName||"Context")+".Provider";case d0:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case f0:return t=e.displayName||null,t!==null?t:gh(e.type)||"Memo";case Do:t=e._payload,e=e._init;try{return gh(e(t))}catch{}}return null}function bT(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return gh(t);case 8:return t===u0?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ui(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function XS(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function xT(e){var t=XS(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Uc(e){e._valueTracker||(e._valueTracker=xT(e))}function JS(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=XS(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function ad(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function hh(e,t){var n=t.checked;return _t({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function yv(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ui(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ew(e,t){t=t.checked,t!=null&&c0(e,"checked",t,!1)}function mh(e,t){ew(e,t);var n=ui(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?vh(e,t.type,n):t.hasOwnProperty("defaultValue")&&vh(e,t.type,ui(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function bv(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function vh(e,t,n){(t!=="number"||ad(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var dl=Array.isArray;function Ua(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=Gc.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Bl(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var yl={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ST=["Webkit","ms","Moz","O"];Object.keys(yl).forEach(function(e){ST.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),yl[t]=yl[e]})});function ow(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||yl.hasOwnProperty(e)&&yl[e]?(""+t).trim():t+"px"}function iw(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=ow(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var wT=_t({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function xh(e,t){if(t){if(wT[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(he(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(he(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(he(61))}if(t.style!=null&&typeof t.style!="object")throw Error(he(62))}}function Sh(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var wh=null;function p0(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ch=null,Ga=null,qa=null;function wv(e){if(e=xc(e)){if(typeof Ch!="function")throw Error(he(280));var t=e.stateNode;t&&(t=uf(t),Ch(e.stateNode,e.type,t))}}function aw(e){Ga?qa?qa.push(e):qa=[e]:Ga=e}function sw(){if(Ga){var e=Ga,t=qa;if(qa=Ga=null,wv(e),t)for(e=0;e>>=0,e===0?32:31-(OT(e)/LT|0)|0}var qc=64,Kc=4194304;function fl(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ud(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~o;s!==0?r=fl(s):(i&=a,i!==0&&(r=fl(i)))}else a=n&~o,a!==0?r=fl(a):i!==0&&(r=fl(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&o)&&(o=r&-r,i=t&-t,o>=i||o===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function yc(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Ar(t),e[t]=n}function jT(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=xl),Mv=" ",Iv=!1;function Pw(e,t){switch(e){case"keyup":return fP.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function kw(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ka=!1;function gP(e,t){switch(e){case"compositionend":return kw(t);case"keypress":return t.which!==32?null:(Iv=!0,Mv);case"textInput":return e=t.data,e===Mv&&Iv?null:e;default:return null}}function hP(e,t){if(ka)return e==="compositionend"||!S0&&Pw(e,t)?(e=Rw(),Ou=y0=qo=null,ka=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Nv(n)}}function Iw(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Iw(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ow(){for(var e=window,t=ad();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=ad(e.document)}return t}function w0(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function _P(e){var t=Ow(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Iw(n.ownerDocument.documentElement,n)){if(r!==null&&w0(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,i=Math.min(r.start,o);r=r.end===void 0?i:Math.min(r.end,o),!e.extend&&i>r&&(o=r,r=i,i=o),o=Dv(n,i);var a=Dv(n,r);o&&a&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,$a=null,$h=null,wl=null,Eh=!1;function jv(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Eh||$a==null||$a!==ad(r)||(r=$a,"selectionStart"in r&&w0(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),wl&&Gl(wl,r)||(wl=r,r=pd($h,"onSelect"),0Ia||(e.current=Nh[Ia],Nh[Ia]=null,Ia--)}function ht(e,t){Ia++,Nh[Ia]=e.current,e.current=t}var di={},xn=mi(di),An=mi(!1),qi=di;function ns(e,t){var n=e.type.contextTypes;if(!n)return di;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in n)o[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Nn(e){return e=e.childContextTypes,e!=null}function hd(){yt(An),yt(xn)}function Uv(e,t,n){if(xn.current!==di)throw Error(he(168));ht(xn,t),ht(An,n)}function Hw(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(he(108,bT(e)||"Unknown",o));return _t({},n,r)}function md(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||di,qi=xn.current,ht(xn,e),ht(An,An.current),!0}function Gv(e,t,n){var r=e.stateNode;if(!r)throw Error(he(169));n?(e=Hw(e,t,qi),r.__reactInternalMemoizedMergedChildContext=e,yt(An),yt(xn),ht(xn,e)):yt(An),ht(An,n)}var mo=null,df=!1,Zp=!1;function Vw(e){mo===null?mo=[e]:mo.push(e)}function NP(e){df=!0,Vw(e)}function vi(){if(!Zp&&mo!==null){Zp=!0;var e=0,t=st;try{var n=mo;for(st=1;e>=a,o-=a,yo=1<<32-Ar(t)+o|n<T?(P=k,k=null):P=k.sibling;var x=f(v,k,m[T],C);if(x===null){k===null&&(k=P);break}e&&k&&x.alternate===null&&t(v,k),S=i(x,S,T),R===null?_=x:R.sibling=x,R=x,k=P}if(T===m.length)return n(v,k),xt&&Pi(v,T),_;if(k===null){for(;TT?(P=k,k=null):P=k.sibling;var $=f(v,k,x.value,C);if($===null){k===null&&(k=P);break}e&&k&&$.alternate===null&&t(v,k),S=i($,S,T),R===null?_=$:R.sibling=$,R=$,k=P}if(x.done)return n(v,k),xt&&Pi(v,T),_;if(k===null){for(;!x.done;T++,x=m.next())x=d(v,x.value,C),x!==null&&(S=i(x,S,T),R===null?_=x:R.sibling=x,R=x);return xt&&Pi(v,T),_}for(k=r(v,k);!x.done;T++,x=m.next())x=p(k,v,T,x.value,C),x!==null&&(e&&x.alternate!==null&&k.delete(x.key===null?T:x.key),S=i(x,S,T),R===null?_=x:R.sibling=x,R=x);return e&&k.forEach(function(I){return t(v,I)}),xt&&Pi(v,T),_}function w(v,S,m,C){if(typeof m=="object"&&m!==null&&m.type===Pa&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case Wc:e:{for(var _=m.key,R=S;R!==null;){if(R.key===_){if(_=m.type,_===Pa){if(R.tag===7){n(v,R.sibling),S=o(R,m.props.children),S.return=v,v=S;break e}}else if(R.elementType===_||typeof _=="object"&&_!==null&&_.$$typeof===Do&&Zv(_)===R.type){n(v,R.sibling),S=o(R,m.props),S.ref=qs(v,R,m),S.return=v,v=S;break e}n(v,R);break}else t(v,R);R=R.sibling}m.type===Pa?(S=Bi(m.props.children,v.mode,C,m.key),S.return=v,v=S):(C=zu(m.type,m.key,m.props,null,v.mode,C),C.ref=qs(v,S,m),C.return=v,v=C)}return a(v);case Ta:e:{for(R=m.key;S!==null;){if(S.key===R)if(S.tag===4&&S.stateNode.containerInfo===m.containerInfo&&S.stateNode.implementation===m.implementation){n(v,S.sibling),S=o(S,m.children||[]),S.return=v,v=S;break e}else{n(v,S);break}else t(v,S);S=S.sibling}S=rg(m,v.mode,C),S.return=v,v=S}return a(v);case Do:return R=m._init,w(v,S,R(m._payload),C)}if(dl(m))return h(v,S,m,C);if(Hs(m))return y(v,S,m,C);tu(v,m)}return typeof m=="string"&&m!==""||typeof m=="number"?(m=""+m,S!==null&&S.tag===6?(n(v,S.sibling),S=o(S,m),S.return=v,v=S):(n(v,S),S=ng(m,v.mode,C),S.return=v,v=S),a(v)):n(v,S)}return w}var os=qw(!0),Kw=qw(!1),bd=mi(null),xd=null,Aa=null,T0=null;function P0(){T0=Aa=xd=null}function k0(e){var t=bd.current;yt(bd),e._currentValue=t}function Fh(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Za(e,t){xd=e,T0=Aa=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(On=!0),e.firstContext=null)}function yr(e){var t=e._currentValue;if(T0!==e)if(e={context:e,memoizedValue:t,next:null},Aa===null){if(xd===null)throw Error(he(308));Aa=e,xd.dependencies={lanes:0,firstContext:e}}else Aa=Aa.next=e;return t}var Li=null;function $0(e){Li===null?Li=[e]:Li.push(e)}function Zw(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,$0(t)):(n.next=o.next,o.next=n),t.interleaved=n,_o(e,r)}function _o(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var jo=!1;function E0(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Qw(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function xo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ii(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Je&2){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,_o(e,n)}return o=r.interleaved,o===null?(t.next=t,$0(r)):(t.next=o.next,o.next=t),r.interleaved=t,_o(e,n)}function Au(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,h0(e,n)}}function Qv(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?o=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?o=i=t:i=i.next=t}else o=i=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Sd(e,t,n,r){var o=e.updateQueue;jo=!1;var i=o.firstBaseUpdate,a=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var l=s,c=l.next;l.next=null,a===null?i=c:a.next=c,a=l;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==a&&(s===null?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(i!==null){var d=o.baseState;a=0,u=c=l=null,s=i;do{var f=s.lane,p=s.eventTime;if((r&f)===f){u!==null&&(u=u.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var h=e,y=s;switch(f=t,p=n,y.tag){case 1:if(h=y.payload,typeof h=="function"){d=h.call(p,d,f);break e}d=h;break e;case 3:h.flags=h.flags&-65537|128;case 0:if(h=y.payload,f=typeof h=="function"?h.call(p,d,f):h,f==null)break e;d=_t({},d,f);break e;case 2:jo=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,f=o.effects,f===null?o.effects=[s]:f.push(s))}else p={eventTime:p,lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(c=u=p,l=d):u=u.next=p,a|=f;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;f=s,s=f.next,f.next=null,o.lastBaseUpdate=f,o.shared.pending=null}}while(!0);if(u===null&&(l=d),o.baseState=l,o.firstBaseUpdate=c,o.lastBaseUpdate=u,t=o.shared.interleaved,t!==null){o=t;do a|=o.lane,o=o.next;while(o!==t)}else i===null&&(o.shared.lanes=0);Qi|=a,e.lanes=a,e.memoizedState=d}}function Yv(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Yp.transition;Yp.transition={};try{e(!1),t()}finally{st=n,Yp.transition=r}}function pC(){return br().memoizedState}function BP(e,t,n){var r=si(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},gC(e))hC(t,n);else if(n=Zw(e,t,n,r),n!==null){var o=kn();Nr(n,e,r,o),mC(n,t,r)}}function zP(e,t,n){var r=si(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(gC(e))hC(t,o);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,s=i(a,n);if(o.hasEagerState=!0,o.eagerState=s,Fr(s,a)){var l=t.interleaved;l===null?(o.next=o,$0(t)):(o.next=l.next,l.next=o),t.interleaved=o;return}}catch{}finally{}n=Zw(e,t,o,r),n!==null&&(o=kn(),Nr(n,e,r,o),mC(n,t,r))}}function gC(e){var t=e.alternate;return e===Ct||t!==null&&t===Ct}function hC(e,t){Cl=Cd=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function mC(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,h0(e,n)}}var _d={readContext:yr,useCallback:fn,useContext:fn,useEffect:fn,useImperativeHandle:fn,useInsertionEffect:fn,useLayoutEffect:fn,useMemo:fn,useReducer:fn,useRef:fn,useState:fn,useDebugValue:fn,useDeferredValue:fn,useTransition:fn,useMutableSource:fn,useSyncExternalStore:fn,useId:fn,unstable_isNewReconciler:!1},HP={readContext:yr,useCallback:function(e,t){return Zr().memoizedState=[e,t===void 0?null:t],e},useContext:yr,useEffect:Jv,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Du(4194308,4,lC.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Du(4194308,4,e,t)},useInsertionEffect:function(e,t){return Du(4,2,e,t)},useMemo:function(e,t){var n=Zr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Zr();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=BP.bind(null,Ct,e),[r.memoizedState,e]},useRef:function(e){var t=Zr();return e={current:e},t.memoizedState=e},useState:Xv,useDebugValue:j0,useDeferredValue:function(e){return Zr().memoizedState=e},useTransition:function(){var e=Xv(!1),t=e[0];return e=FP.bind(null,e[1]),Zr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Ct,o=Zr();if(xt){if(n===void 0)throw Error(he(407));n=n()}else{if(n=t(),en===null)throw Error(he(349));Zi&30||eC(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Jv(nC.bind(null,r,i,e),[e]),r.flags|=2048,ec(9,tC.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Zr(),t=en.identifierPrefix;if(xt){var n=bo,r=yo;n=(r&~(1<<32-Ar(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Xl++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[eo]=t,e[Zl]=r,TC(e,t,!1,!1),t.stateNode=e;e:{switch(a=Sh(n,r),n){case"dialog":vt("cancel",e),vt("close",e),o=r;break;case"iframe":case"object":case"embed":vt("load",e),o=r;break;case"video":case"audio":for(o=0;oss&&(t.flags|=128,r=!0,Ks(i,!1),t.lanes=4194304)}else{if(!r)if(e=wd(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Ks(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!xt)return pn(t),null}else 2*Lt()-i.renderingStartTime>ss&&n!==1073741824&&(t.flags|=128,r=!0,Ks(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Lt(),t.sibling=null,n=wt.current,ht(wt,r?n&1|2:n&1),t):(pn(t),null);case 22:case 23:return W0(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Un&1073741824&&(pn(t),t.subtreeFlags&6&&(t.flags|=8192)):pn(t),null;case 24:return null;case 25:return null}throw Error(he(156,t.tag))}function QP(e,t){switch(_0(t),t.tag){case 1:return Nn(t.type)&&hd(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return is(),yt(An),yt(xn),O0(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return I0(t),null;case 13:if(yt(wt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(he(340));rs()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return yt(wt),null;case 4:return is(),null;case 10:return k0(t.type._context),null;case 22:case 23:return W0(),null;case 24:return null;default:return null}}var ru=!1,yn=!1,YP=typeof WeakSet=="function"?WeakSet:Set,_e=null;function Na(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){It(e,t,r)}else n.current=null}function Kh(e,t,n){try{n()}catch(r){It(e,t,r)}}var uy=!1;function XP(e,t){if(Mh=dd,e=Ow(),w0(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,s=-1,l=-1,c=0,u=0,d=e,f=null;t:for(;;){for(var p;d!==n||o!==0&&d.nodeType!==3||(s=a+o),d!==i||r!==0&&d.nodeType!==3||(l=a+r),d.nodeType===3&&(a+=d.nodeValue.length),(p=d.firstChild)!==null;)f=d,d=p;for(;;){if(d===e)break t;if(f===n&&++c===o&&(s=a),f===i&&++u===r&&(l=a),(p=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=p}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ih={focusedElem:e,selectionRange:n},dd=!1,_e=t;_e!==null;)if(t=_e,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,_e=e;else for(;_e!==null;){t=_e;try{var h=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(h!==null){var y=h.memoizedProps,w=h.memoizedState,v=t.stateNode,S=v.getSnapshotBeforeUpdate(t.elementType===t.type?y:kr(t.type,y),w);v.__reactInternalSnapshotBeforeUpdate=S}break;case 3:var m=t.stateNode.containerInfo;m.nodeType===1?m.textContent="":m.nodeType===9&&m.documentElement&&m.removeChild(m.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(he(163))}}catch(C){It(t,t.return,C)}if(e=t.sibling,e!==null){e.return=t.return,_e=e;break}_e=t.return}return h=uy,uy=!1,h}function _l(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var i=o.destroy;o.destroy=void 0,i!==void 0&&Kh(t,n,i)}o=o.next}while(o!==r)}}function gf(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Zh(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function $C(e){var t=e.alternate;t!==null&&(e.alternate=null,$C(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[eo],delete t[Zl],delete t[Ah],delete t[LP],delete t[AP])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function EC(e){return e.tag===5||e.tag===3||e.tag===4}function dy(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||EC(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Qh(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=gd));else if(r!==4&&(e=e.child,e!==null))for(Qh(e,t,n),e=e.sibling;e!==null;)Qh(e,t,n),e=e.sibling}function Yh(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Yh(e,t,n),e=e.sibling;e!==null;)Yh(e,t,n),e=e.sibling}var rn=null,$r=!1;function Ao(e,t,n){for(n=n.child;n!==null;)MC(e,t,n),n=n.sibling}function MC(e,t,n){if(no&&typeof no.onCommitFiberUnmount=="function")try{no.onCommitFiberUnmount(af,n)}catch{}switch(n.tag){case 5:yn||Na(n,t);case 6:var r=rn,o=$r;rn=null,Ao(e,t,n),rn=r,$r=o,rn!==null&&($r?(e=rn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):rn.removeChild(n.stateNode));break;case 18:rn!==null&&($r?(e=rn,n=n.stateNode,e.nodeType===8?Kp(e.parentNode,n):e.nodeType===1&&Kp(e,n),Wl(e)):Kp(rn,n.stateNode));break;case 4:r=rn,o=$r,rn=n.stateNode.containerInfo,$r=!0,Ao(e,t,n),rn=r,$r=o;break;case 0:case 11:case 14:case 15:if(!yn&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var i=o,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&Kh(n,t,a),o=o.next}while(o!==r)}Ao(e,t,n);break;case 1:if(!yn&&(Na(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){It(n,t,s)}Ao(e,t,n);break;case 21:Ao(e,t,n);break;case 22:n.mode&1?(yn=(r=yn)||n.memoizedState!==null,Ao(e,t,n),yn=r):Ao(e,t,n);break;default:Ao(e,t,n)}}function fy(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new YP),t.forEach(function(r){var o=sk.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function Rr(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=a),r&=~i}if(r=o,r=Lt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ek(r/1960))-r,10e?16:e,Ko===null)var r=!1;else{if(e=Ko,Ko=null,Pd=0,Je&6)throw Error(he(331));var o=Je;for(Je|=4,_e=e.current;_e!==null;){var i=_e,a=i.child;if(_e.flags&16){var s=i.deletions;if(s!==null){for(var l=0;lLt()-H0?Fi(e,0):z0|=n),Dn(e,t)}function FC(e,t){t===0&&(e.mode&1?(t=Kc,Kc<<=1,!(Kc&130023424)&&(Kc=4194304)):t=1);var n=kn();e=_o(e,t),e!==null&&(yc(e,t,n),Dn(e,n))}function ak(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),FC(e,n)}function sk(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(he(314))}r!==null&&r.delete(t),FC(e,n)}var BC;BC=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||An.current)On=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return On=!1,KP(e,t,n);On=!!(e.flags&131072)}else On=!1,xt&&t.flags&1048576&&Ww(t,yd,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ju(e,t),e=t.pendingProps;var o=ns(t,xn.current);Za(t,n),o=A0(null,t,r,e,o,n);var i=N0();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Nn(r)?(i=!0,md(t)):i=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,E0(t),o.updater=pf,t.stateNode=o,o._reactInternals=t,zh(t,r,e,n),t=Wh(null,t,r,!0,i,n)):(t.tag=0,xt&&i&&C0(t),Tn(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ju(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=ck(r),e=kr(r,e),o){case 0:t=Vh(null,t,r,e,n);break e;case 1:t=sy(null,t,r,e,n);break e;case 11:t=iy(null,t,r,e,n);break e;case 14:t=ay(null,t,r,kr(r.type,e),n);break e}throw Error(he(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:kr(r,o),Vh(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:kr(r,o),sy(e,t,r,o,n);case 3:e:{if(CC(t),e===null)throw Error(he(387));r=t.pendingProps,i=t.memoizedState,o=i.element,Qw(e,t),Sd(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){o=as(Error(he(423)),t),t=ly(e,t,r,n,o);break e}else if(r!==o){o=as(Error(he(424)),t),t=ly(e,t,r,n,o);break e}else for(Zn=oi(t.stateNode.containerInfo.firstChild),Qn=t,xt=!0,Mr=null,n=Kw(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(rs(),r===o){t=Ro(e,t,n);break e}Tn(e,t,r,n)}t=t.child}return t;case 5:return Yw(t),e===null&&jh(t),r=t.type,o=t.pendingProps,i=e!==null?e.memoizedProps:null,a=o.children,Oh(r,o)?a=null:i!==null&&Oh(r,i)&&(t.flags|=32),wC(e,t),Tn(e,t,a,n),t.child;case 6:return e===null&&jh(t),null;case 13:return _C(e,t,n);case 4:return M0(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=os(t,null,r,n):Tn(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:kr(r,o),iy(e,t,r,o,n);case 7:return Tn(e,t,t.pendingProps,n),t.child;case 8:return Tn(e,t,t.pendingProps.children,n),t.child;case 12:return Tn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,a=o.value,ht(bd,r._currentValue),r._currentValue=a,i!==null)if(Fr(i.value,a)){if(i.children===o.children&&!An.current){t=Ro(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){a=i.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(i.tag===1){l=xo(-1,n&-n),l.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var u=c.pending;u===null?l.next=l:(l.next=u.next,u.next=l),c.pending=l}}i.lanes|=n,l=i.alternate,l!==null&&(l.lanes|=n),Fh(i.return,n,t),s.lanes|=n;break}l=l.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(he(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),Fh(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Tn(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Za(t,n),o=yr(o),r=r(o),t.flags|=1,Tn(e,t,r,n),t.child;case 14:return r=t.type,o=kr(r,t.pendingProps),o=kr(r.type,o),ay(e,t,r,o,n);case 15:return xC(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:kr(r,o),ju(e,t),t.tag=1,Nn(r)?(e=!0,md(t)):e=!1,Za(t,n),vC(t,r,o),zh(t,r,o,n),Wh(null,t,r,!0,e,n);case 19:return RC(e,t,n);case 22:return SC(e,t,n)}throw Error(he(156,t.tag))};function zC(e,t){return gw(e,t)}function lk(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function gr(e,t,n,r){return new lk(e,t,n,r)}function G0(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ck(e){if(typeof e=="function")return G0(e)?1:0;if(e!=null){if(e=e.$$typeof,e===d0)return 11;if(e===f0)return 14}return 2}function li(e,t){var n=e.alternate;return n===null?(n=gr(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function zu(e,t,n,r,o,i){var a=2;if(r=e,typeof e=="function")G0(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Pa:return Bi(n.children,o,i,t);case u0:a=8,o|=8;break;case dh:return e=gr(12,n,t,o|2),e.elementType=dh,e.lanes=i,e;case fh:return e=gr(13,n,t,o),e.elementType=fh,e.lanes=i,e;case ph:return e=gr(19,n,t,o),e.elementType=ph,e.lanes=i,e;case YS:return mf(n,o,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ZS:a=10;break e;case QS:a=9;break e;case d0:a=11;break e;case f0:a=14;break e;case Do:a=16,r=null;break e}throw Error(he(130,e==null?e:typeof e,""))}return t=gr(a,n,t,o),t.elementType=e,t.type=r,t.lanes=i,t}function Bi(e,t,n,r){return e=gr(7,e,r,t),e.lanes=n,e}function mf(e,t,n,r){return e=gr(22,e,r,t),e.elementType=YS,e.lanes=n,e.stateNode={isHidden:!1},e}function ng(e,t,n){return e=gr(6,e,null,t),e.lanes=n,e}function rg(e,t,n){return t=gr(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function uk(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Dp(0),this.expirationTimes=Dp(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Dp(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function q0(e,t,n,r,o,i,a,s,l){return e=new uk(e,t,n,s,l),t===1?(t=1,i===!0&&(t|=8)):t=0,i=gr(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},E0(i),e}function dk(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(UC)}catch(e){console.error(e)}}UC(),US.exports=nr;var Y0=US.exports;const au=$o(Y0);var GC,xy=Y0;GC=xy.createRoot,xy.hydrateRoot;/** - * @remix-run/router v1.21.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function nc(){return nc=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function qC(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function vk(){return Math.random().toString(36).substr(2,8)}function wy(e,t){return{usr:e.state,key:e.key,idx:t}}function nm(e,t,n,r){return n===void 0&&(n=null),nc({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ps(t):t,{state:n,key:t&&t.key||r||vk()})}function Ed(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Ps(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function yk(e,t,n,r){r===void 0&&(r={});let{window:o=document.defaultView,v5Compat:i=!1}=r,a=o.history,s=Zo.Pop,l=null,c=u();c==null&&(c=0,a.replaceState(nc({},a.state,{idx:c}),""));function u(){return(a.state||{idx:null}).idx}function d(){s=Zo.Pop;let w=u(),v=w==null?null:w-c;c=w,l&&l({action:s,location:y.location,delta:v})}function f(w,v){s=Zo.Push;let S=nm(y.location,w,v);c=u()+1;let m=wy(S,c),C=y.createHref(S);try{a.pushState(m,"",C)}catch(_){if(_ instanceof DOMException&&_.name==="DataCloneError")throw _;o.location.assign(C)}i&&l&&l({action:s,location:y.location,delta:1})}function p(w,v){s=Zo.Replace;let S=nm(y.location,w,v);c=u();let m=wy(S,c),C=y.createHref(S);a.replaceState(m,"",C),i&&l&&l({action:s,location:y.location,delta:0})}function h(w){let v=o.location.origin!=="null"?o.location.origin:o.location.href,S=typeof w=="string"?w:Ed(w);return S=S.replace(/ $/,"%20"),Ot(v,"No window.location.(origin|href) available to create URL for href: "+S),new URL(S,v)}let y={get action(){return s},get location(){return e(o,a)},listen(w){if(l)throw new Error("A history only accepts one active listener");return o.addEventListener(Sy,d),l=w,()=>{o.removeEventListener(Sy,d),l=null}},createHref(w){return t(o,w)},createURL:h,encodeLocation(w){let v=h(w);return{pathname:v.pathname,search:v.search,hash:v.hash}},push:f,replace:p,go(w){return a.go(w)}};return y}var Cy;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Cy||(Cy={}));function bk(e,t,n){return n===void 0&&(n="/"),xk(e,t,n,!1)}function xk(e,t,n,r){let o=typeof t=="string"?Ps(t):t,i=ls(o.pathname||"/",n);if(i==null)return null;let a=KC(e);Sk(a);let s=null;for(let l=0;s==null&&l{let l={relativePath:s===void 0?i.path||"":s,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};l.relativePath.startsWith("/")&&(Ot(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let c=ci([r,l.relativePath]),u=n.concat(l);i.children&&i.children.length>0&&(Ot(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),KC(i.children,t,u,c)),!(i.path==null&&!i.index)&&t.push({path:c,score:kk(c,i.index),routesMeta:u})};return e.forEach((i,a)=>{var s;if(i.path===""||!((s=i.path)!=null&&s.includes("?")))o(i,a);else for(let l of ZC(i.path))o(i,a,l)}),t}function ZC(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return o?[i,""]:[i];let a=ZC(r.join("/")),s=[];return s.push(...a.map(l=>l===""?i:[i,l].join("/"))),o&&s.push(...a),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function Sk(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:$k(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const wk=/^:[\w-]+$/,Ck=3,_k=2,Rk=1,Tk=10,Pk=-2,_y=e=>e==="*";function kk(e,t){let n=e.split("/"),r=n.length;return n.some(_y)&&(r+=Pk),t&&(r+=_k),n.filter(o=>!_y(o)).reduce((o,i)=>o+(wk.test(i)?Ck:i===""?Rk:Tk),r)}function $k(e,t){return e.length===t.length&&e.slice(0,-1).every((r,o)=>r===t[o])?e[e.length-1]-t[t.length-1]:0}function Ek(e,t,n){let{routesMeta:r}=e,o={},i="/",a=[];for(let s=0;s{let{paramName:f,isOptional:p}=u;if(f==="*"){let y=s[d]||"";a=i.slice(0,i.length-y.length).replace(/(.)\/+$/,"$1")}const h=s[d];return p&&!h?c[f]=void 0:c[f]=(h||"").replace(/%2F/g,"/"),c},{}),pathname:i,pathnameBase:a,pattern:e}}function Mk(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),qC(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,s,l)=>(r.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":e!==""&&e!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),r]}function Ik(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return qC(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function ls(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function Ok(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:o=""}=typeof e=="string"?Ps(e):e;return{pathname:n?n.startsWith("/")?n:Lk(n,t):t,search:Dk(r),hash:jk(o)}}function Lk(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(o=>{o===".."?n.length>1&&n.pop():o!=="."&&n.push(o)}),n.length>1?n.join("/"):"/"}function og(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function Ak(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function QC(e,t){let n=Ak(e);return t?n.map((r,o)=>o===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function YC(e,t,n,r){r===void 0&&(r=!1);let o;typeof e=="string"?o=Ps(e):(o=nc({},e),Ot(!o.pathname||!o.pathname.includes("?"),og("?","pathname","search",o)),Ot(!o.pathname||!o.pathname.includes("#"),og("#","pathname","hash",o)),Ot(!o.search||!o.search.includes("#"),og("#","search","hash",o)));let i=e===""||o.pathname==="",a=i?"/":o.pathname,s;if(a==null)s=n;else{let d=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),d-=1;o.pathname=f.join("/")}s=d>=0?t[d]:"/"}let l=Ok(o,s),c=a&&a!=="/"&&a.endsWith("/"),u=(i||a===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(c||u)&&(l.pathname+="/"),l}const ci=e=>e.join("/").replace(/\/\/+/g,"/"),Nk=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Dk=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,jk=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function Fk(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const XC=["post","put","patch","delete"];new Set(XC);const Bk=["get",...XC];new Set(Bk);/** - * React Router v6.28.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function rc(){return rc=Object.assign?Object.assign.bind():function(e){for(var t=1;t{s.current=!0}),b.useCallback(function(c,u){if(u===void 0&&(u={}),!s.current)return;if(typeof c=="number"){r.go(c);return}let d=YC(c,JSON.parse(a),i,u.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:ci([t,d.pathname])),(u.replace?r.replace:r.push)(d,u.state,u)},[t,r,a,i,e])}function Vk(){let{matches:e}=b.useContext(bi),t=e[e.length-1];return t?t.params:{}}function Cf(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=b.useContext(yi),{matches:o}=b.useContext(bi),{pathname:i}=ks(),a=JSON.stringify(QC(o,r.v7_relativeSplatPath));return b.useMemo(()=>YC(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function Wk(e,t){return Uk(e,t)}function Uk(e,t,n,r){wc()||Ot(!1);let{navigator:o}=b.useContext(yi),{matches:i}=b.useContext(bi),a=i[i.length-1],s=a?a.params:{};a&&a.pathname;let l=a?a.pathnameBase:"/";a&&a.route;let c=ks(),u;if(t){var d;let w=typeof t=="string"?Ps(t):t;l==="/"||(d=w.pathname)!=null&&d.startsWith(l)||Ot(!1),u=w}else u=c;let f=u.pathname||"/",p=f;if(l!=="/"){let w=l.replace(/^\//,"").split("/");p="/"+f.replace(/^\//,"").split("/").slice(w.length).join("/")}let h=bk(e,{pathname:p}),y=Qk(h&&h.map(w=>Object.assign({},w,{params:Object.assign({},s,w.params),pathname:ci([l,o.encodeLocation?o.encodeLocation(w.pathname).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?l:ci([l,o.encodeLocation?o.encodeLocation(w.pathnameBase).pathname:w.pathnameBase])})),i,n,r);return t&&y?b.createElement(wf.Provider,{value:{location:rc({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:Zo.Pop}},y):y}function Gk(){let e=e4(),t=Fk(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,o={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},t),n?b.createElement("pre",{style:o},n):null,null)}const qk=b.createElement(Gk,null);class Kk extends b.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?b.createElement(bi.Provider,{value:this.props.routeContext},b.createElement(e2.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Zk(e){let{routeContext:t,match:n,children:r}=e,o=b.useContext(Sf);return o&&o.static&&o.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=n.route.id),b.createElement(bi.Provider,{value:t},r)}function Qk(e,t,n,r){var o;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,s=(o=n)==null?void 0:o.errors;if(s!=null){let u=a.findIndex(d=>d.route.id&&(s==null?void 0:s[d.route.id])!==void 0);u>=0||Ot(!1),a=a.slice(0,Math.min(a.length,u+1))}let l=!1,c=-1;if(n&&r&&r.v7_partialHydration)for(let u=0;u=0?a=a.slice(0,c+1):a=[a[0]];break}}}return a.reduceRight((u,d,f)=>{let p,h=!1,y=null,w=null;n&&(p=s&&d.route.id?s[d.route.id]:void 0,y=d.route.errorElement||qk,l&&(c<0&&f===0?(h=!0,w=null):c===f&&(h=!0,w=d.route.hydrateFallbackElement||null)));let v=t.concat(a.slice(0,f+1)),S=()=>{let m;return p?m=y:h?m=w:d.route.Component?m=b.createElement(d.route.Component,null):d.route.element?m=d.route.element:m=u,b.createElement(Zk,{match:d,routeContext:{outlet:u,matches:v,isDataRoute:n!=null},children:m})};return n&&(d.route.ErrorBoundary||d.route.errorElement||f===0)?b.createElement(Kk,{location:n.location,revalidation:n.revalidation,component:y,error:p,children:S(),routeContext:{outlet:null,matches:v,isDataRoute:!0}}):S()},null)}var n2=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(n2||{}),Id=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Id||{});function Yk(e){let t=b.useContext(Sf);return t||Ot(!1),t}function Xk(e){let t=b.useContext(JC);return t||Ot(!1),t}function Jk(e){let t=b.useContext(bi);return t||Ot(!1),t}function r2(e){let t=Jk(),n=t.matches[t.matches.length-1];return n.route.id||Ot(!1),n.route.id}function e4(){var e;let t=b.useContext(e2),n=Xk(Id.UseRouteError),r=r2(Id.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function t4(){let{router:e}=Yk(n2.UseNavigateStable),t=r2(Id.UseNavigateStable),n=b.useRef(!1);return t2(()=>{n.current=!0}),b.useCallback(function(o,i){i===void 0&&(i={}),n.current&&(typeof o=="number"?e.navigate(o):e.navigate(o,rc({fromRouteId:t},i)))},[e,t])}const Ry={};function n4(e,t){Ry[t]||(Ry[t]=!0,console.warn(t))}const Ty=(e,t,n)=>n4(e,"⚠️ React Router Future Flag Warning: "+t+". "+("You can use the `"+e+"` future flag to opt-in early. ")+("For more information, see "+n+"."));function r4(e,t){e!=null&&e.v7_startTransition||Ty("v7_startTransition","React Router will begin wrapping state updates in `React.startTransition` in v7","https://reactrouter.com/v6/upgrading/future#v7_starttransition"),!(e!=null&&e.v7_relativeSplatPath)&&!t&&Ty("v7_relativeSplatPath","Relative route resolution within Splat routes is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath")}function o2(e){Ot(!1)}function o4(e){let{basename:t="/",children:n=null,location:r,navigationType:o=Zo.Pop,navigator:i,static:a=!1,future:s}=e;wc()&&Ot(!1);let l=t.replace(/^\/*/,"/"),c=b.useMemo(()=>({basename:l,navigator:i,static:a,future:rc({v7_relativeSplatPath:!1},s)}),[l,s,i,a]);typeof r=="string"&&(r=Ps(r));let{pathname:u="/",search:d="",hash:f="",state:p=null,key:h="default"}=r,y=b.useMemo(()=>{let w=ls(u,l);return w==null?null:{location:{pathname:w,search:d,hash:f,state:p,key:h},navigationType:o}},[l,u,d,f,p,h,o]);return y==null?null:b.createElement(yi.Provider,{value:c},b.createElement(wf.Provider,{children:n,value:y}))}function i4(e){let{children:t,location:n}=e;return Wk(rm(t),n)}new Promise(()=>{});function rm(e,t){t===void 0&&(t=[]);let n=[];return b.Children.forEach(e,(r,o)=>{if(!b.isValidElement(r))return;let i=[...t,o];if(r.type===b.Fragment){n.push.apply(n,rm(r.props.children,i));return}r.type!==o2&&Ot(!1),!r.props.index||!r.props.children||Ot(!1);let a={id:r.props.id||i.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(a.children=rm(r.props.children,i)),n.push(a)}),n}/** - * React Router DOM v6.28.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Od(){return Od=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[o]=e[o]);return n}function a4(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function s4(e,t){return e.button===0&&(!t||t==="_self")&&!a4(e)}function om(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(o=>[n,o]):[[n,r]])},[]))}function l4(e,t){let n=om(e);return t&&t.forEach((r,o)=>{n.has(o)||t.getAll(o).forEach(i=>{n.append(o,i)})}),n}const c4=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],u4=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],d4="6";try{window.__reactRouterVersion=d4}catch{}const f4=b.createContext({isTransitioning:!1}),p4="startTransition",Py=id[p4];function g4(e){let{basename:t,children:n,future:r,window:o}=e,i=b.useRef();i.current==null&&(i.current=mk({window:o,v5Compat:!0}));let a=i.current,[s,l]=b.useState({action:a.action,location:a.location}),{v7_startTransition:c}=r||{},u=b.useCallback(d=>{c&&Py?Py(()=>l(d)):l(d)},[l,c]);return b.useLayoutEffect(()=>a.listen(u),[a,u]),b.useEffect(()=>r4(r),[r]),b.createElement(o4,{basename:t,children:n,location:s.location,navigationType:s.action,navigator:a,future:r})}const h4=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",m4=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,a2=b.forwardRef(function(t,n){let{onClick:r,relative:o,reloadDocument:i,replace:a,state:s,target:l,to:c,preventScrollReset:u,viewTransition:d}=t,f=i2(t,c4),{basename:p}=b.useContext(yi),h,y=!1;if(typeof c=="string"&&m4.test(c)&&(h=c,h4))try{let m=new URL(window.location.href),C=c.startsWith("//")?new URL(m.protocol+c):new URL(c),_=ls(C.pathname,p);C.origin===m.origin&&_!=null?c=_+C.search+C.hash:y=!0}catch{}let w=zk(c,{relative:o}),v=b4(c,{replace:a,state:s,target:l,preventScrollReset:u,relative:o,viewTransition:d});function S(m){r&&r(m),m.defaultPrevented||v(m)}return b.createElement("a",Od({},f,{href:h||w,onClick:y||i?r:S,ref:n,target:l}))}),v4=b.forwardRef(function(t,n){let{"aria-current":r="page",caseSensitive:o=!1,className:i="",end:a=!1,style:s,to:l,viewTransition:c,children:u}=t,d=i2(t,u4),f=Cf(l,{relative:d.relative}),p=ks(),h=b.useContext(JC),{navigator:y,basename:w}=b.useContext(yi),v=h!=null&&S4(f)&&c===!0,S=y.encodeLocation?y.encodeLocation(f).pathname:f.pathname,m=p.pathname,C=h&&h.navigation&&h.navigation.location?h.navigation.location.pathname:null;o||(m=m.toLowerCase(),C=C?C.toLowerCase():null,S=S.toLowerCase()),C&&w&&(C=ls(C,w)||C);const _=S!=="/"&&S.endsWith("/")?S.length-1:S.length;let R=m===S||!a&&m.startsWith(S)&&m.charAt(_)==="/",k=C!=null&&(C===S||!a&&C.startsWith(S)&&C.charAt(S.length)==="/"),T={isActive:R,isPending:k,isTransitioning:v},P=R?r:void 0,x;typeof i=="function"?x=i(T):x=[i,R?"active":null,k?"pending":null,v?"transitioning":null].filter(Boolean).join(" ");let $=typeof s=="function"?s(T):s;return b.createElement(a2,Od({},d,{"aria-current":P,className:x,ref:n,style:$,to:l,viewTransition:c}),typeof u=="function"?u(T):u)});var im;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(im||(im={}));var ky;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(ky||(ky={}));function y4(e){let t=b.useContext(Sf);return t||Ot(!1),t}function b4(e,t){let{target:n,replace:r,state:o,preventScrollReset:i,relative:a,viewTransition:s}=t===void 0?{}:t,l=X0(),c=ks(),u=Cf(e,{relative:a});return b.useCallback(d=>{if(s4(d,n)){d.preventDefault();let f=r!==void 0?r:Ed(c)===Ed(u);l(e,{replace:f,state:o,preventScrollReset:i,relative:a,viewTransition:s})}},[c,l,u,r,o,n,e,i,a,s])}function x4(e){let t=b.useRef(om(e)),n=b.useRef(!1),r=ks(),o=b.useMemo(()=>l4(r.search,n.current?null:t.current),[r.search]),i=X0(),a=b.useCallback((s,l)=>{const c=om(typeof s=="function"?s(o):s);n.current=!0,i("?"+c,l)},[i,o]);return[o,a]}function S4(e,t){t===void 0&&(t={});let n=b.useContext(f4);n==null&&Ot(!1);let{basename:r}=y4(im.useViewTransitionState),o=Cf(e,{relative:t.relative});if(!n.isTransitioning)return!1;let i=ls(n.currentLocation.pathname,r)||n.currentLocation.pathname,a=ls(n.nextLocation.pathname,r)||n.nextLocation.pathname;return Md(o.pathname,a)!=null||Md(o.pathname,i)!=null}var $y;(function(e){e.Bool="Bool",e.Int8="Int8",e.Int16="Int16",e.Int32="Int32",e.Int64="Int64",e.Float="Float",e.Double="Double",e.String="String",e.VarChar="VarChar",e.JSON="JSON",e.BinaryVector="BinaryVector",e.FloatVector="FloatVector",e.Array="Array"})($y||($y={}));var Ey;(function(e){e[e.Bool=1]="Bool",e[e.Int8=2]="Int8",e[e.Int16=3]="Int16",e[e.Int32=4]="Int32",e[e.Int64=5]="Int64",e[e.Float=10]="Float",e[e.Double=11]="Double",e[e.VarChar=21]="VarChar",e[e.Array=22]="Array",e[e.JSON=23]="JSON",e[e.BinaryVector=100]="BinaryVector",e[e.FloatVector=101]="FloatVector"})(Ey||(Ey={}));var My;(function(e){e.L2="L2",e.IP="IP",e.COSINE="COSINE",e.HAMMING="HAMMING",e.JACCARD="JACCARD",e.TANIMOTO="TANIMOTO",e.SUBSTRUCTURE="SUBSTRUCTURE",e.SUPERSTRUCTURE="SUPERSTRUCTURE"})(My||(My={}));var Iy;(function(e){e.L2="Euclidean",e.IP="Inner product",e.COSINE="Cosine"})(Iy||(Iy={}));var Oy;(function(e){e.IVF_FLAT="IVF_FLAT",e.IVF_PQ="IVF_PQ",e.IVF_SQ8="IVF_SQ8",e.FLAT="FLAT",e.HNSW="HNSW",e.ANNOY="ANNOY",e.IVF_HNSW="IVF_HNSW",e.RHNSW_FLAT="RHNSW_FLAT",e.RHNSW_SQ="RHNSW_SQ",e.RHNSW_PQ="RHNSW_PQ",e.BIN_FLAT="BIN_FLAT",e.BIN_IVF_FLAT="BIN_IVF_FLAT",e.TRIE="TRIE",e.STL_SORT="STL_SORT"})(Oy||(Oy={}));var s2=60,l2=s2*60,c2=l2*24,w4=c2*7,cs=1e3,ig=s2*cs,Ly=l2*cs,C4=c2*cs,_4=w4*cs,J0="millisecond",ja="second",Fa="minute",Ba="hour",Fo="day",Hu="week",Er="month",u2="quarter",Bo="year",za="date",R4="YYYY-MM-DDTHH:mm:ssZ",Ay="Invalid Date",T4=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,P4=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;const k4={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var n=["th","st","nd","rd"],r=t%100;return"["+t+(n[(r-20)%10]||n[r]||n[0])+"]"}};var am=function(t,n,r){var o=String(t);return!o||o.length>=n?t:""+Array(n+1-o.length).join(r)+t},$4=function(t){var n=-t.utcOffset(),r=Math.abs(n),o=Math.floor(r/60),i=r%60;return(n<=0?"+":"-")+am(o,2,"0")+":"+am(i,2,"0")},E4=function e(t,n){if(t.date()1)return e(a[0])}else{var s=t.name;zi[s]=t,o=s}return!r&&o&&(Pl=o),o||!r&&Pl},tt=function(t,n){if(e1(t))return t.clone();var r=typeof n=="object"?n:{};return r.date=t,r.args=arguments,new _f(r)},A4=function(t,n){return tt(t,{locale:n.$L,utc:n.$u,x:n.$x,$offset:n.$offset})},ct=L4;ct.l=Ld;ct.i=e1;ct.w=A4;var N4=function(t){var n=t.date,r=t.utc;if(n===null)return new Date(NaN);if(ct.u(n))return new Date;if(n instanceof Date)return new Date(n);if(typeof n=="string"&&!/Z$/i.test(n)){var o=n.match(T4);if(o){var i=o[2]-1||0,a=(o[7]||"0").substring(0,3);return r?new Date(Date.UTC(o[1],i,o[3]||1,o[4]||0,o[5]||0,o[6]||0,a)):new Date(o[1],i,o[3]||1,o[4]||0,o[5]||0,o[6]||0,a)}}return new Date(n)},_f=function(){function e(n){this.$L=Ld(n.locale,null,!0),this.parse(n),this.$x=this.$x||n.x||{},this[d2]=!0}var t=e.prototype;return t.parse=function(r){this.$d=N4(r),this.init()},t.init=function(){var r=this.$d;this.$y=r.getFullYear(),this.$M=r.getMonth(),this.$D=r.getDate(),this.$W=r.getDay(),this.$H=r.getHours(),this.$m=r.getMinutes(),this.$s=r.getSeconds(),this.$ms=r.getMilliseconds()},t.$utils=function(){return ct},t.isValid=function(){return this.$d.toString()!==Ay},t.isSame=function(r,o){var i=tt(r);return this.startOf(o)<=i&&i<=this.endOf(o)},t.isAfter=function(r,o){return tt(r)n.searchParams.append("args[]",r)),`Minified MUI error #${e}; visit ${n} for the full message.`}const Dr="$$material";function sm(e,...t){const n=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(r=>n.searchParams.append("args[]",r)),`Minified MUI error #${e}; visit ${n} for the full message.`}function Ln(){return Ln=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?on($s,--Hn):0,us--,Dt===10&&(us=1,Tf--),Dt}function Yn(){return Dt=Hn2||ac(Dt)>3?"":" "}function e$(e,t){for(;--t&&Yn()&&!(Dt<48||Dt>102||Dt>57&&Dt<65||Dt>70&&Dt<97););return Cc(e,Vu()+(t<6&&oo()==32&&Yn()==32))}function cm(e){for(;Yn();)switch(Dt){case e:return Hn;case 34:case 39:e!==34&&e!==39&&cm(Dt);break;case 40:e===41&&cm(e);break;case 92:Yn();break}return Hn}function t$(e,t){for(;Yn()&&e+Dt!==57;)if(e+Dt===84&&oo()===47)break;return"/*"+Cc(t,Hn-1)+"*"+Rf(e===47?e:Yn())}function n$(e){for(;!ac(oo());)Yn();return Cc(e,Hn)}function r$(e){return x2(Uu("",null,null,null,[""],e=b2(e),0,[0],e))}function Uu(e,t,n,r,o,i,a,s,l){for(var c=0,u=0,d=a,f=0,p=0,h=0,y=1,w=1,v=1,S=0,m="",C=o,_=i,R=r,k=m;w;)switch(h=S,S=Yn()){case 40:if(h!=108&&on(k,d-1)==58){lm(k+=it(Wu(S),"&","&\f"),"&\f")!=-1&&(v=-1);break}case 34:case 39:case 91:k+=Wu(S);break;case 9:case 10:case 13:case 32:k+=J4(h);break;case 92:k+=e$(Vu()-1,7);continue;case 47:switch(oo()){case 42:case 47:su(o$(t$(Yn(),Vu()),t,n),l);break;default:k+="/"}break;case 123*y:s[c++]=Yr(k)*v;case 125*y:case 59:case 0:switch(S){case 0:case 125:w=0;case 59+u:v==-1&&(k=it(k,/\f/g,"")),p>0&&Yr(k)-d&&su(p>32?Dy(k+";",r,n,d-1):Dy(it(k," ","")+";",r,n,d-2),l);break;case 59:k+=";";default:if(su(R=Ny(k,t,n,c,u,o,s,m,C=[],_=[],d),i),S===123)if(u===0)Uu(k,t,R,R,C,i,d,s,_);else switch(f===99&&on(k,3)===110?100:f){case 100:case 108:case 109:case 115:Uu(e,R,R,r&&su(Ny(e,R,R,0,0,o,s,m,o,C=[],d),_),o,_,d,s,r?C:_);break;default:Uu(k,R,R,R,[""],_,0,s,_)}}c=u=p=0,y=v=1,m=k="",d=a;break;case 58:d=1+Yr(k),p=h;default:if(y<1){if(S==123)--y;else if(S==125&&y++==0&&X4()==125)continue}switch(k+=Rf(S),S*y){case 38:v=u>0?1:(k+="\f",-1);break;case 44:s[c++]=(Yr(k)-1)*v,v=1;break;case 64:oo()===45&&(k+=Wu(Yn())),f=oo(),u=d=Yr(m=k+=n$(Vu())),S++;break;case 45:h===45&&Yr(k)==2&&(y=0)}}return i}function Ny(e,t,n,r,o,i,a,s,l,c,u){for(var d=o-1,f=o===0?i:[""],p=r1(f),h=0,y=0,w=0;h0?f[v]+" "+S:it(S,/&\f/g,f[v])))&&(l[w++]=m);return Pf(e,t,n,o===0?t1:s,l,c,u)}function o$(e,t,n){return Pf(e,t,n,h2,Rf(Y4()),ic(e,2,-2),0)}function Dy(e,t,n,r){return Pf(e,t,n,n1,ic(e,0,r),ic(e,r+1,-1),r)}function Ya(e,t){for(var n="",r=r1(e),o=0;o6)switch(on(e,t+1)){case 109:if(on(e,t+4)!==45)break;case 102:return it(e,/(.+:)(.+)-([^]+)/,"$1"+ot+"$2-$3$1"+Ad+(on(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~lm(e,"stretch")?S2(it(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(on(e,t+1)!==115)break;case 6444:switch(on(e,Yr(e)-3-(~lm(e,"!important")&&10))){case 107:return it(e,":",":"+ot)+e;case 101:return it(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+ot+(on(e,14)===45?"inline-":"")+"box$3$1"+ot+"$2$3$1"+hn+"$2box$3")+e}break;case 5936:switch(on(e,t+11)){case 114:return ot+e+hn+it(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return ot+e+hn+it(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return ot+e+hn+it(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return ot+e+hn+e+e}return e}var p$=function(t,n,r,o){if(t.length>-1&&!t.return)switch(t.type){case n1:t.return=S2(t.value,t.length);break;case m2:return Ya([Ys(t,{value:it(t.value,"@","@"+ot)})],o);case t1:if(t.length)return Q4(t.props,function(i){switch(Z4(i,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return Ya([Ys(t,{props:[it(i,/:(read-\w+)/,":"+Ad+"$1")]})],o);case"::placeholder":return Ya([Ys(t,{props:[it(i,/:(plac\w+)/,":"+ot+"input-$1")]}),Ys(t,{props:[it(i,/:(plac\w+)/,":"+Ad+"$1")]}),Ys(t,{props:[it(i,/:(plac\w+)/,hn+"input-$1")]})],o)}return""})}},g$=[p$],h$=function(t){var n=t.key;if(n==="css"){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,function(y){var w=y.getAttribute("data-emotion");w.indexOf(" ")!==-1&&(document.head.appendChild(y),y.setAttribute("data-s",""))})}var o=t.stylisPlugins||g$,i={},a,s=[];a=t.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+n+' "]'),function(y){for(var w=y.getAttribute("data-emotion").split(" "),v=1;v=4;++r,o-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(o){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var P$={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},k$=!1,$$=/[A-Z]|^ms/g,E$=/_EMO_([^_]+?)_([^]*?)_EMO_/g,k2=function(t){return t.charCodeAt(1)===45},Fy=function(t){return t!=null&&typeof t!="boolean"},ag=g2(function(e){return k2(e)?e:e.replace($$,"-$&").toLowerCase()}),By=function(t,n){switch(t){case"animation":case"animationName":if(typeof n=="string")return n.replace(E$,function(r,o,i){return Xr={name:o,styles:i,next:Xr},o})}return P$[t]!==1&&!k2(t)&&typeof n=="number"&&n!==0?n+"px":n},M$="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function sc(e,t,n){if(n==null)return"";var r=n;if(r.__emotion_styles!==void 0)return r;switch(typeof n){case"boolean":return"";case"object":{var o=n;if(o.anim===1)return Xr={name:o.name,styles:o.styles,next:Xr},o.name;var i=n;if(i.styles!==void 0){var a=i.next;if(a!==void 0)for(;a!==void 0;)Xr={name:a.name,styles:a.styles,next:Xr},a=a.next;var s=i.styles+";";return s}return I$(e,t,n)}case"function":{if(e!==void 0){var l=Xr,c=n(e);return Xr=l,sc(e,t,c)}break}}var u=n;if(t==null)return u;var d=t[u];return d!==void 0?d:u}function I$(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o96?D$:j$},Wy=function(t,n,r){var o;if(n){var i=n.shouldForwardProp;o=t.__emotion_forwardProp&&i?function(a){return t.__emotion_forwardProp(a)&&i(a)}:i}return typeof o!="function"&&r&&(o=t.__emotion_forwardProp),o},F$=!1,B$=function(t){var n=t.cache,r=t.serialized,o=t.isStringTag;return T2(n,r,o),L$(function(){return P2(n,r,o)}),null},z$=function e(t,n){var r=t.__emotion_real===t,o=r&&t.__emotion_base||t,i,a;n!==void 0&&(i=n.label,a=n.target);var s=Wy(t,n,r),l=s||Vy(o),c=!l("as");return function(){var u=arguments,d=r&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(i!==void 0&&d.push("label:"+i+";"),u[0]==null||u[0].raw===void 0)d.push.apply(d,u);else{d.push(u[0][0]);for(var f=u.length,p=1;pt(V$(o)?n:o):t;return g.jsx(A$,{styles:r})}/** - * @mui/styled-engine v6.1.6 - * - * @license MIT - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */function O2(e,t){return um(e,t)}function W$(e,t){Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}const Uy=[];function Gy(e){return Uy[0]=e,jf(Uy)}function Wo(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function L2(e){if(!Wo(e))return e;const t={};return Object.keys(e).forEach(n=>{t[n]=L2(e[n])}),t}function So(e,t,n={clone:!0}){const r=n.clone?{...e}:e;return Wo(e)&&Wo(t)&&Object.keys(t).forEach(o=>{Wo(t[o])&&Object.prototype.hasOwnProperty.call(e,o)&&Wo(e[o])?r[o]=So(e[o],t[o],n):n.clone?r[o]=Wo(t[o])?L2(t[o]):t[o]:r[o]=t[o]}),r}const U$=e=>{const t=Object.keys(e).map(n=>({key:n,val:e[n]}))||[];return t.sort((n,r)=>n.val-r.val),t.reduce((n,r)=>({...n,[r.key]:r.val}),{})};function G$(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:r=5,...o}=e,i=U$(t),a=Object.keys(i);function s(f){return`@media (min-width:${typeof t[f]=="number"?t[f]:f}${n})`}function l(f){return`@media (max-width:${(typeof t[f]=="number"?t[f]:f)-r/100}${n})`}function c(f,p){const h=a.indexOf(p);return`@media (min-width:${typeof t[f]=="number"?t[f]:f}${n}) and (max-width:${(h!==-1&&typeof t[a[h]]=="number"?t[a[h]]:p)-r/100}${n})`}function u(f){return a.indexOf(f)+1r.startsWith("@container")).sort((r,o)=>{var a,s;const i=/min-width:\s*([0-9.]+)/;return+(((a=r.match(i))==null?void 0:a[1])||0)-+(((s=o.match(i))==null?void 0:s[1])||0)});return n.length?n.reduce((r,o)=>{const i=t[o];return delete r[o],r[o]=i,r},{...t}):t}function K$(e,t){return t==="@"||t.startsWith("@")&&(e.some(n=>t.startsWith(`@${n}`))||!!t.match(/^@\d/))}function Z$(e,t){const n=t.match(/^@([^/]+)?\/?(.+)?$/);if(!n)return null;const[,r,o]=n,i=Number.isNaN(+r)?r||0:+r;return e.containerQueries(o).up(i)}function Q$(e){const t=(i,a)=>i.replace("@media",a?`@container ${a}`:"@container");function n(i,a){i.up=(...s)=>t(e.breakpoints.up(...s),a),i.down=(...s)=>t(e.breakpoints.down(...s),a),i.between=(...s)=>t(e.breakpoints.between(...s),a),i.only=(...s)=>t(e.breakpoints.only(...s),a),i.not=(...s)=>{const l=t(e.breakpoints.not(...s),a);return l.includes("not all and")?l.replace("not all and ","").replace("min-width:","width<").replace("max-width:","width>").replace("and","or"):l}}const r={},o=i=>(n(r,i),r);return n(o),{...e,containerQueries:o}}const Y$={borderRadius:4};function kl(e,t){return t?So(e,t,{clone:!1}):e}const Bf={xs:0,sm:600,md:900,lg:1200,xl:1536},qy={keys:["xs","sm","md","lg","xl"],up:e=>`@media (min-width:${Bf[e]}px)`},X$={containerQueries:e=>({up:t=>{let n=typeof t=="number"?t:Bf[t]||t;return typeof n=="number"&&(n=`${n}px`),e?`@container ${e} (min-width:${n})`:`@container (min-width:${n})`}})};function Br(e,t,n){const r=e.theme||{};if(Array.isArray(t)){const i=r.breakpoints||qy;return t.reduce((a,s,l)=>(a[i.up(i.keys[l])]=n(t[l]),a),{})}if(typeof t=="object"){const i=r.breakpoints||qy;return Object.keys(t).reduce((a,s)=>{if(K$(i.keys,s)){const l=Z$(r.containerQueries?r:X$,s);l&&(a[l]=n(t[s],s))}else if(Object.keys(i.values||Bf).includes(s)){const l=i.up(s);a[l]=n(t[s],s)}else{const l=s;a[l]=t[l]}return a},{})}return n(t)}function A2(e={}){var n;return((n=e.keys)==null?void 0:n.reduce((r,o)=>{const i=e.up(o);return r[i]={},r},{}))||{}}function N2(e,t){return e.reduce((n,r)=>{const o=n[r];return(!o||Object.keys(o).length===0)&&delete n[r],n},t)}function J$(e,...t){const n=A2(e),r=[n,...t].reduce((o,i)=>So(o,i),{});return N2(Object.keys(n),r)}function e5(e,t){if(typeof e!="object")return{};const n={},r=Object.keys(t);return Array.isArray(e)?r.forEach((o,i)=>{i{e[o]!=null&&(n[o]=!0)}),n}function sg({values:e,breakpoints:t,base:n}){const r=n||e5(e,t),o=Object.keys(r);if(o.length===0)return e;let i;return o.reduce((a,s,l)=>(Array.isArray(e)?(a[s]=e[l]!=null?e[l]:e[i],i=l):typeof e=="object"?(a[s]=e[s]!=null?e[s]:e[i],i=s):a[s]=e,a),{})}function D2(e){if(typeof e!="string")throw new Error(sm(7));return e.charAt(0).toUpperCase()+e.slice(1)}function zf(e,t,n=!0){if(!t||typeof t!="string")return null;if(e&&e.vars&&n){const r=`vars.${t}`.split(".").reduce((o,i)=>o&&o[i]?o[i]:null,e);if(r!=null)return r}return t.split(".").reduce((r,o)=>r&&r[o]!=null?r[o]:null,e)}function Nd(e,t,n,r=n){let o;return typeof e=="function"?o=e(n):Array.isArray(e)?o=e[n]||r:o=zf(e,n)||r,t&&(o=t(o,r,e)),o}function At(e){const{prop:t,cssProperty:n=e.prop,themeKey:r,transform:o}=e,i=a=>{if(a[t]==null)return null;const s=a[t],l=a.theme,c=zf(l,r)||{};return Br(a,s,d=>{let f=Nd(c,o,d);return d===f&&typeof d=="string"&&(f=Nd(c,o,`${t}${d==="default"?"":D2(d)}`,d)),n===!1?f:{[n]:f}})};return i.propTypes={},i.filterProps=[t],i}function t5(e){const t={};return n=>(t[n]===void 0&&(t[n]=e(n)),t[n])}const n5={m:"margin",p:"padding"},r5={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},Ky={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},o5=t5(e=>{if(e.length>2)if(Ky[e])e=Ky[e];else return[e];const[t,n]=e.split(""),r=n5[t],o=r5[n]||"";return Array.isArray(o)?o.map(i=>r+i):[r+o]}),l1=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],c1=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];[...l1,...c1];function _c(e,t,n,r){const o=zf(e,t,!0)??n;return typeof o=="number"||typeof o=="string"?i=>typeof i=="string"?i:typeof o=="string"?`calc(${i} * ${o})`:o*i:Array.isArray(o)?i=>{if(typeof i=="string")return i;const a=Math.abs(i),s=o[a];return i>=0?s:typeof s=="number"?-s:`-${s}`}:typeof o=="function"?o:()=>{}}function Hf(e){return _c(e,"spacing",8)}function Ji(e,t){return typeof t=="string"||t==null?t:e(t)}function i5(e,t){return n=>e.reduce((r,o)=>(r[o]=Ji(t,n),r),{})}function a5(e,t,n,r){if(!t.includes(n))return null;const o=o5(n),i=i5(o,r),a=e[n];return Br(e,a,i)}function j2(e,t){const n=Hf(e.theme);return Object.keys(e).map(r=>a5(e,t,r,n)).reduce(kl,{})}function kt(e){return j2(e,l1)}kt.propTypes={};kt.filterProps=l1;function $t(e){return j2(e,c1)}$t.propTypes={};$t.filterProps=c1;function F2(e=8,t=Hf({spacing:e})){if(e.mui)return e;const n=(...r)=>(r.length===0?[1]:r).map(i=>{const a=t(i);return typeof a=="number"?`${a}px`:a}).join(" ");return n.mui=!0,n}function Vf(...e){const t=e.reduce((r,o)=>(o.filterProps.forEach(i=>{r[i]=o}),r),{}),n=r=>Object.keys(r).reduce((o,i)=>t[i]?kl(o,t[i](r)):o,{});return n.propTypes={},n.filterProps=e.reduce((r,o)=>r.concat(o.filterProps),[]),n}function fr(e){return typeof e!="number"?e:`${e}px solid`}function wr(e,t){return At({prop:e,themeKey:"borders",transform:t})}const s5=wr("border",fr),l5=wr("borderTop",fr),c5=wr("borderRight",fr),u5=wr("borderBottom",fr),d5=wr("borderLeft",fr),f5=wr("borderColor"),p5=wr("borderTopColor"),g5=wr("borderRightColor"),h5=wr("borderBottomColor"),m5=wr("borderLeftColor"),v5=wr("outline",fr),y5=wr("outlineColor"),Wf=e=>{if(e.borderRadius!==void 0&&e.borderRadius!==null){const t=_c(e.theme,"shape.borderRadius",4),n=r=>({borderRadius:Ji(t,r)});return Br(e,e.borderRadius,n)}return null};Wf.propTypes={};Wf.filterProps=["borderRadius"];Vf(s5,l5,c5,u5,d5,f5,p5,g5,h5,m5,Wf,v5,y5);const Uf=e=>{if(e.gap!==void 0&&e.gap!==null){const t=_c(e.theme,"spacing",8),n=r=>({gap:Ji(t,r)});return Br(e,e.gap,n)}return null};Uf.propTypes={};Uf.filterProps=["gap"];const Gf=e=>{if(e.columnGap!==void 0&&e.columnGap!==null){const t=_c(e.theme,"spacing",8),n=r=>({columnGap:Ji(t,r)});return Br(e,e.columnGap,n)}return null};Gf.propTypes={};Gf.filterProps=["columnGap"];const qf=e=>{if(e.rowGap!==void 0&&e.rowGap!==null){const t=_c(e.theme,"spacing",8),n=r=>({rowGap:Ji(t,r)});return Br(e,e.rowGap,n)}return null};qf.propTypes={};qf.filterProps=["rowGap"];const b5=At({prop:"gridColumn"}),x5=At({prop:"gridRow"}),S5=At({prop:"gridAutoFlow"}),w5=At({prop:"gridAutoColumns"}),C5=At({prop:"gridAutoRows"}),_5=At({prop:"gridTemplateColumns"}),R5=At({prop:"gridTemplateRows"}),T5=At({prop:"gridTemplateAreas"}),P5=At({prop:"gridArea"});Vf(Uf,Gf,qf,b5,x5,S5,w5,C5,_5,R5,T5,P5);function Xa(e,t){return t==="grey"?t:e}const k5=At({prop:"color",themeKey:"palette",transform:Xa}),$5=At({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:Xa}),E5=At({prop:"backgroundColor",themeKey:"palette",transform:Xa});Vf(k5,$5,E5);function Kn(e){return e<=1&&e!==0?`${e*100}%`:e}const M5=At({prop:"width",transform:Kn}),u1=e=>{if(e.maxWidth!==void 0&&e.maxWidth!==null){const t=n=>{var o,i,a,s,l;const r=((a=(i=(o=e.theme)==null?void 0:o.breakpoints)==null?void 0:i.values)==null?void 0:a[n])||Bf[n];return r?((l=(s=e.theme)==null?void 0:s.breakpoints)==null?void 0:l.unit)!=="px"?{maxWidth:`${r}${e.theme.breakpoints.unit}`}:{maxWidth:r}:{maxWidth:Kn(n)}};return Br(e,e.maxWidth,t)}return null};u1.filterProps=["maxWidth"];const I5=At({prop:"minWidth",transform:Kn}),O5=At({prop:"height",transform:Kn}),L5=At({prop:"maxHeight",transform:Kn}),A5=At({prop:"minHeight",transform:Kn});At({prop:"size",cssProperty:"width",transform:Kn});At({prop:"size",cssProperty:"height",transform:Kn});const N5=At({prop:"boxSizing"});Vf(M5,u1,I5,O5,L5,A5,N5);const Rc={border:{themeKey:"borders",transform:fr},borderTop:{themeKey:"borders",transform:fr},borderRight:{themeKey:"borders",transform:fr},borderBottom:{themeKey:"borders",transform:fr},borderLeft:{themeKey:"borders",transform:fr},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:fr},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:Wf},color:{themeKey:"palette",transform:Xa},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:Xa},backgroundColor:{themeKey:"palette",transform:Xa},p:{style:$t},pt:{style:$t},pr:{style:$t},pb:{style:$t},pl:{style:$t},px:{style:$t},py:{style:$t},padding:{style:$t},paddingTop:{style:$t},paddingRight:{style:$t},paddingBottom:{style:$t},paddingLeft:{style:$t},paddingX:{style:$t},paddingY:{style:$t},paddingInline:{style:$t},paddingInlineStart:{style:$t},paddingInlineEnd:{style:$t},paddingBlock:{style:$t},paddingBlockStart:{style:$t},paddingBlockEnd:{style:$t},m:{style:kt},mt:{style:kt},mr:{style:kt},mb:{style:kt},ml:{style:kt},mx:{style:kt},my:{style:kt},margin:{style:kt},marginTop:{style:kt},marginRight:{style:kt},marginBottom:{style:kt},marginLeft:{style:kt},marginX:{style:kt},marginY:{style:kt},marginInline:{style:kt},marginInlineStart:{style:kt},marginInlineEnd:{style:kt},marginBlock:{style:kt},marginBlockStart:{style:kt},marginBlockEnd:{style:kt},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:Uf},rowGap:{style:qf},columnGap:{style:Gf},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:Kn},maxWidth:{style:u1},minWidth:{transform:Kn},height:{transform:Kn},maxHeight:{transform:Kn},minHeight:{transform:Kn},boxSizing:{},font:{themeKey:"font"},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}};function D5(...e){const t=e.reduce((r,o)=>r.concat(Object.keys(o)),[]),n=new Set(t);return e.every(r=>n.size===Object.keys(r).length)}function j5(e,t){return typeof e=="function"?e(t):e}function F5(){function e(n,r,o,i){const a={[n]:r,theme:o},s=i[n];if(!s)return{[n]:r};const{cssProperty:l=n,themeKey:c,transform:u,style:d}=s;if(r==null)return null;if(c==="typography"&&r==="inherit")return{[n]:r};const f=zf(o,c)||{};return d?d(a):Br(a,r,h=>{let y=Nd(f,u,h);return h===y&&typeof h=="string"&&(y=Nd(f,u,`${n}${h==="default"?"":D2(h)}`,h)),l===!1?y:{[l]:y}})}function t(n){const{sx:r,theme:o={}}=n||{};if(!r)return null;const i=o.unstable_sxConfig??Rc;function a(s){let l=s;if(typeof s=="function")l=s(o);else if(typeof s!="object")return s;if(!l)return null;const c=A2(o.breakpoints),u=Object.keys(c);let d=c;return Object.keys(l).forEach(f=>{const p=j5(l[f],o);if(p!=null)if(typeof p=="object")if(i[f])d=kl(d,e(f,p,o,i));else{const h=Br({theme:o},p,y=>({[f]:y}));D5(h,p)?d[f]=t({sx:p,theme:o}):d=kl(d,h)}else d=kl(d,e(f,p,o,i))}),q$(o,N2(u,d))}return Array.isArray(r)?r.map(a):a(r)}return t}const fi=F5();fi.filterProps=["sx"];function B5(e,t){var r;const n=this;if(n.vars){if(!((r=n.colorSchemes)!=null&&r[e])||typeof n.getColorSchemeSelector!="function")return{};let o=n.getColorSchemeSelector(e);return o==="&"?t:((o.includes("data-")||o.includes("."))&&(o=`*:where(${o.replace(/\s*&$/,"")}) &`),{[o]:t})}return n.palette.mode===e?t:{}}function Kf(e={},...t){const{breakpoints:n={},palette:r={},spacing:o,shape:i={},...a}=e,s=G$(n),l=F2(o);let c=So({breakpoints:s,direction:"ltr",components:{},palette:{mode:"light",...r},spacing:l,shape:{...Y$,...i}},a);return c=Q$(c),c.applyStyles=B5,c=t.reduce((u,d)=>So(u,d),c),c.unstable_sxConfig={...Rc,...a==null?void 0:a.unstable_sxConfig},c.unstable_sx=function(d){return fi({sx:d,theme:this})},c}function z5(e){return Object.keys(e).length===0}function B2(e=null){const t=b.useContext(Ff);return!t||z5(t)?e:t}const H5=Kf();function Zf(e=H5){return B2(e)}function V5({styles:e,themeId:t,defaultTheme:n={}}){const r=Zf(n),o=typeof e=="function"?e(t&&r[t]||r):e;return g.jsx(I2,{styles:o})}const W5=e=>{var r;const t={systemProps:{},otherProps:{}},n=((r=e==null?void 0:e.theme)==null?void 0:r.unstable_sxConfig)??Rc;return Object.keys(e).forEach(o=>{n[o]?t.systemProps[o]=e[o]:t.otherProps[o]=e[o]}),t};function d1(e){const{sx:t,...n}=e,{systemProps:r,otherProps:o}=W5(n);let i;return Array.isArray(t)?i=[r,...t]:typeof t=="function"?i=(...a)=>{const s=t(...a);return Wo(s)?{...r,...s}:r}:i={...r,...t},{...o,sx:i}}const Zy=e=>e,U5=()=>{let e=Zy;return{configure(t){e=t},generate(t){return e(t)},reset(){e=Zy}}},G5=U5();function z2(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;ts!=="theme"&&s!=="sx"&&s!=="as"})(fi);return b.forwardRef(function(l,c){const u=Zf(n),{className:d,component:f="div",...p}=d1(l);return g.jsx(i,{as:f,ref:c,className:ve(d,o?o(r):r),theme:t&&u[t]||u,...p})})}const K5={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function Z5(e,t,n="Mui"){const r=K5[t];return r?`${n}-${r}`:`${G5.generate(e)}-${t}`}var ut={};/** - * @license React - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var f1=Symbol.for("react.element"),p1=Symbol.for("react.portal"),Qf=Symbol.for("react.fragment"),Yf=Symbol.for("react.strict_mode"),Xf=Symbol.for("react.profiler"),Jf=Symbol.for("react.provider"),ep=Symbol.for("react.context"),Q5=Symbol.for("react.server_context"),tp=Symbol.for("react.forward_ref"),np=Symbol.for("react.suspense"),rp=Symbol.for("react.suspense_list"),op=Symbol.for("react.memo"),ip=Symbol.for("react.lazy"),Y5=Symbol.for("react.offscreen"),H2;H2=Symbol.for("react.module.reference");function Cr(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case f1:switch(e=e.type,e){case Qf:case Xf:case Yf:case np:case rp:return e;default:switch(e=e&&e.$$typeof,e){case Q5:case ep:case tp:case ip:case op:case Jf:return e;default:return t}}case p1:return t}}}ut.ContextConsumer=ep;ut.ContextProvider=Jf;ut.Element=f1;ut.ForwardRef=tp;ut.Fragment=Qf;ut.Lazy=ip;ut.Memo=op;ut.Portal=p1;ut.Profiler=Xf;ut.StrictMode=Yf;ut.Suspense=np;ut.SuspenseList=rp;ut.isAsyncMode=function(){return!1};ut.isConcurrentMode=function(){return!1};ut.isContextConsumer=function(e){return Cr(e)===ep};ut.isContextProvider=function(e){return Cr(e)===Jf};ut.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===f1};ut.isForwardRef=function(e){return Cr(e)===tp};ut.isFragment=function(e){return Cr(e)===Qf};ut.isLazy=function(e){return Cr(e)===ip};ut.isMemo=function(e){return Cr(e)===op};ut.isPortal=function(e){return Cr(e)===p1};ut.isProfiler=function(e){return Cr(e)===Xf};ut.isStrictMode=function(e){return Cr(e)===Yf};ut.isSuspense=function(e){return Cr(e)===np};ut.isSuspenseList=function(e){return Cr(e)===rp};ut.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Qf||e===Xf||e===Yf||e===np||e===rp||e===Y5||typeof e=="object"&&e!==null&&(e.$$typeof===ip||e.$$typeof===op||e.$$typeof===Jf||e.$$typeof===ep||e.$$typeof===tp||e.$$typeof===H2||e.getModuleId!==void 0)};ut.typeOf=Cr;function V2(e){const{variants:t,...n}=e,r={variants:t,style:Gy(n),isProcessed:!0};return r.style===n||t&&t.forEach(o=>{typeof o.style!="function"&&(o.style=Gy(o.style))}),r}const X5=Kf();function lg(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}function J5(e){return e?(t,n)=>n[e]:null}function eE(e,t,n){e.theme=nE(e.theme)?n:e.theme[t]||e.theme}function Gu(e,t){const n=typeof t=="function"?t(e):t;if(Array.isArray(n))return n.flatMap(r=>Gu(e,r));if(Array.isArray(n==null?void 0:n.variants)){let r;if(n.isProcessed)r=n.style;else{const{variants:o,...i}=n;r=i}return W2(e,n.variants,[r])}return n!=null&&n.isProcessed?n.style:n}function W2(e,t,n=[]){var o;let r;e:for(let i=0;i{W$(s,_=>_.filter(R=>R!==fi));const{name:c,slot:u,skipVariantsResolver:d,skipSx:f,overridesResolver:p=J5(oE(u)),...h}=l,y=d!==void 0?d:u&&u!=="Root"&&u!=="root"||!1,w=f||!1;let v=lg;u==="Root"||u==="root"?v=r:u?v=o:rE(s)&&(v=void 0);const S=O2(s,{shouldForwardProp:v,label:tE(),...h}),m=_=>{if(typeof _=="function"&&_.__emotion_real!==_)return function(k){return Gu(k,_)};if(Wo(_)){const R=V2(_);return R.variants?function(T){return Gu(T,R)}:R.style}return _},C=(..._)=>{const R=[],k=_.map(m),T=[];if(R.push(i),c&&p&&T.push(function(I){var A,N;const D=(N=(A=I.theme.components)==null?void 0:A[c])==null?void 0:N.styleOverrides;if(!D)return null;const M={};for(const E in D)M[E]=Gu(I,D[E]);return p(I,M)}),c&&!y&&T.push(function(I){var M,A;const O=I.theme,D=(A=(M=O==null?void 0:O.components)==null?void 0:M[c])==null?void 0:A.variants;return D?W2(I,D):null}),w||T.push(fi),Array.isArray(k[0])){const $=k.shift(),I=new Array(R.length).fill(""),O=new Array(T.length).fill("");let D;D=[...I,...$,...O],D.raw=[...I,...$.raw,...O],R.unshift(D)}const P=[...R,...k,...T],x=S(...P);return s.muiName&&(x.muiName=s.muiName),x};return S.withConfig&&(C.withConfig=S.withConfig),C}}function tE(e,t){return void 0}function nE(e){for(const t in e)return!1;return!0}function rE(e){return typeof e=="string"&&e.charCodeAt(0)>96}function oE(e){return e&&e.charAt(0).toLowerCase()+e.slice(1)}const iE=U2();function Dd(e,t){const n={...t};for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const o=r;if(o==="components"||o==="slots")n[o]={...e[o],...n[o]};else if(o==="componentsProps"||o==="slotProps"){const i=e[o],a=t[o];if(!a)n[o]=i||{};else if(!i)n[o]=a;else{n[o]={...a};for(const s in i)if(Object.prototype.hasOwnProperty.call(i,s)){const l=s;n[o][l]=Dd(i[l],a[l])}}}else n[o]===void 0&&(n[o]=e[o])}return n}function aE(e){const{theme:t,name:n,props:r}=e;return!t||!t.components||!t.components[n]||!t.components[n].defaultProps?r:Dd(t.components[n].defaultProps,r)}function G2({props:e,name:t,defaultTheme:n,themeId:r}){let o=Zf(n);return r&&(o=o[r]||o),aE({theme:o,name:t,props:e})}function sE(e,t=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,n))}function g1(e,t=0,n=1){return sE(e,t,n)}function lE(e){e=e.slice(1);const t=new RegExp(`.{1,${e.length>=6?2:1}}`,"g");let n=e.match(t);return n&&n[0].length===1&&(n=n.map(r=>r+r)),n?`rgb${n.length===4?"a":""}(${n.map((r,o)=>o<3?parseInt(r,16):Math.round(parseInt(r,16)/255*1e3)/1e3).join(", ")})`:""}function pi(e){if(e.type)return e;if(e.charAt(0)==="#")return pi(lE(e));const t=e.indexOf("("),n=e.substring(0,t);if(!["rgb","rgba","hsl","hsla","color"].includes(n))throw new Error(sm(9,e));let r=e.substring(t+1,e.length-1),o;if(n==="color"){if(r=r.split(" "),o=r.shift(),r.length===4&&r[3].charAt(0)==="/"&&(r[3]=r[3].slice(1)),!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(o))throw new Error(sm(10,o))}else r=r.split(",");return r=r.map(i=>parseFloat(i)),{type:n,values:r,colorSpace:o}}const cE=e=>{const t=pi(e);return t.values.slice(0,3).map((n,r)=>t.type.includes("hsl")&&r!==0?`${n}%`:n).join(" ")},gl=(e,t)=>{try{return cE(e)}catch{return e}};function ap(e){const{type:t,colorSpace:n}=e;let{values:r}=e;return t.includes("rgb")?r=r.map((o,i)=>i<3?parseInt(o,10):o):t.includes("hsl")&&(r[1]=`${r[1]}%`,r[2]=`${r[2]}%`),t.includes("color")?r=`${n} ${r.join(" ")}`:r=`${r.join(", ")}`,`${t}(${r})`}function q2(e){e=pi(e);const{values:t}=e,n=t[0],r=t[1]/100,o=t[2]/100,i=r*Math.min(o,1-o),a=(c,u=(c+n/30)%12)=>o-i*Math.max(Math.min(u-3,9-u,1),-1);let s="rgb";const l=[Math.round(a(0)*255),Math.round(a(8)*255),Math.round(a(4)*255)];return e.type==="hsla"&&(s+="a",l.push(t[3])),ap({type:s,values:l})}function dm(e){e=pi(e);let t=e.type==="hsl"||e.type==="hsla"?pi(q2(e)).values:e.values;return t=t.map(n=>(e.type!=="color"&&(n/=255),n<=.03928?n/12.92:((n+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function uE(e,t){const n=dm(e),r=dm(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function Be(e,t){return e=pi(e),t=g1(t),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.type==="color"?e.values[3]=`/${t}`:e.values[3]=t,ap(e)}function lu(e,t,n){try{return Be(e,t)}catch{return e}}function ea(e,t){if(e=pi(e),t=g1(t),e.type.includes("hsl"))e.values[2]*=1-t;else if(e.type.includes("rgb")||e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]*=1-t;return ap(e)}function dt(e,t,n){try{return ea(e,t)}catch{return e}}function ta(e,t){if(e=pi(e),t=g1(t),e.type.includes("hsl"))e.values[2]+=(100-e.values[2])*t;else if(e.type.includes("rgb"))for(let n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]+=(1-e.values[n])*t;return ap(e)}function ft(e,t,n){try{return ta(e,t)}catch{return e}}function dE(e,t=.15){return dm(e)>.5?ea(e,t):ta(e,t)}function cu(e,t,n){try{return dE(e,t)}catch{return e}}const K2=b.createContext(null);function h1(){return b.useContext(K2)}const fE=typeof Symbol=="function"&&Symbol.for,pE=fE?Symbol.for("mui.nested"):"__THEME_NESTED__";function gE(e,t){return typeof t=="function"?t(e):{...e,...t}}function hE(e){const{children:t,theme:n}=e,r=h1(),o=b.useMemo(()=>{const i=r===null?{...n}:gE(r,n);return i!=null&&(i[pE]=r!==null),i},[n,r]);return g.jsx(K2.Provider,{value:o,children:t})}const Z2=b.createContext();function mE({value:e,...t}){return g.jsx(Z2.Provider,{value:e??!0,...t})}const Es=()=>b.useContext(Z2)??!1,Q2=b.createContext(void 0);function vE({value:e,children:t}){return g.jsx(Q2.Provider,{value:e,children:t})}function yE(e){const{theme:t,name:n,props:r}=e;if(!t||!t.components||!t.components[n])return r;const o=t.components[n];return o.defaultProps?Dd(o.defaultProps,r):!o.styleOverrides&&!o.variants?Dd(o,r):r}function bE({props:e,name:t}){const n=b.useContext(Q2);return yE({props:e,name:t,theme:{components:n}})}const Qy={};function Yy(e,t,n,r=!1){return b.useMemo(()=>{const o=e&&t[e]||t;if(typeof n=="function"){const i=n(o),a=e?{...t,[e]:i}:i;return r?()=>a:a}return e?{...t,[e]:n}:{...t,...n}},[e,t,n,r])}function Y2(e){const{children:t,theme:n,themeId:r}=e,o=B2(Qy),i=h1()||Qy,a=Yy(r,o,n),s=Yy(r,i,n,!0),l=a.direction==="rtl";return g.jsx(hE,{theme:s,children:g.jsx(Ff.Provider,{value:a,children:g.jsx(mE,{value:l,children:g.jsx(vE,{value:a==null?void 0:a.components,children:t})})})})}const Xy={theme:void 0};function xE(e){let t,n;return function(o){let i=t;return(i===void 0||o.theme!==n)&&(Xy.theme=o.theme,i=V2(e(Xy)),t=i,n=o.theme),i}}const m1="mode",v1="color-scheme",SE="data-color-scheme";function wE(e){const{defaultMode:t="system",defaultLightColorScheme:n="light",defaultDarkColorScheme:r="dark",modeStorageKey:o=m1,colorSchemeStorageKey:i=v1,attribute:a=SE,colorSchemeNode:s="document.documentElement",nonce:l}=e||{};let c="",u=a;if(a==="class"&&(u=".%s"),a==="data"&&(u="[data-%s]"),u.startsWith(".")){const f=u.substring(1);c+=`${s}.classList.remove('${f}'.replace('%s', light), '${f}'.replace('%s', dark)); - ${s}.classList.add('${f}'.replace('%s', colorScheme));`}const d=u.match(/\[([^\]]+)\]/);if(d){const[f,p]=d[1].split("=");p||(c+=`${s}.removeAttribute('${f}'.replace('%s', light)); - ${s}.removeAttribute('${f}'.replace('%s', dark));`),c+=` - ${s}.setAttribute('${f}'.replace('%s', colorScheme), ${p?`${p}.replace('%s', colorScheme)`:'""'});`}else c+=`${s}.setAttribute('${u}', colorScheme);`;return g.jsx("script",{suppressHydrationWarning:!0,nonce:typeof window>"u"?l:"",dangerouslySetInnerHTML:{__html:`(function() { -try { - let colorScheme = ''; - const mode = localStorage.getItem('${o}') || '${t}'; - const dark = localStorage.getItem('${i}-dark') || '${r}'; - const light = localStorage.getItem('${i}-light') || '${n}'; - if (mode === 'system') { - // handle system mode - const mql = window.matchMedia('(prefers-color-scheme: dark)'); - if (mql.matches) { - colorScheme = dark - } else { - colorScheme = light - } - } - if (mode === 'light') { - colorScheme = light; - } - if (mode === 'dark') { - colorScheme = dark; - } - if (colorScheme) { - ${c} - } -} catch(e){}})();`}},"mui-color-scheme-init")}function Jy(e){if(typeof window<"u"&&typeof window.matchMedia=="function"&&e==="system")return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function X2(e,t){if(e.mode==="light"||e.mode==="system"&&e.systemMode==="light")return t("light");if(e.mode==="dark"||e.mode==="system"&&e.systemMode==="dark")return t("dark")}function CE(e){return X2(e,t=>{if(t==="light")return e.lightColorScheme;if(t==="dark")return e.darkColorScheme})}function cg(e,t){if(typeof window>"u")return;let n;try{n=localStorage.getItem(e)||void 0,n||localStorage.setItem(e,t)}catch{}return n||t}function _E(e){const{defaultMode:t="light",defaultLightColorScheme:n,defaultDarkColorScheme:r,supportedColorSchemes:o=[],modeStorageKey:i=m1,colorSchemeStorageKey:a=v1,storageWindow:s=typeof window>"u"?void 0:window}=e,l=o.join(","),c=o.length>1,[u,d]=b.useState(()=>{const m=cg(i,t),C=cg(`${a}-light`,n),_=cg(`${a}-dark`,r);return{mode:m,systemMode:Jy(m),lightColorScheme:C,darkColorScheme:_}}),[,f]=b.useState(!1),p=b.useRef(!1);b.useEffect(()=>{c&&f(!0),p.current=!0},[c]);const h=CE(u),y=b.useCallback(m=>{d(C=>{if(m===C.mode)return C;const _=m??t;try{localStorage.setItem(i,_)}catch{}return{...C,mode:_,systemMode:Jy(_)}})},[i,t]),w=b.useCallback(m=>{m?typeof m=="string"?m&&!l.includes(m)?console.error(`\`${m}\` does not exist in \`theme.colorSchemes\`.`):d(C=>{const _={...C};return X2(C,R=>{try{localStorage.setItem(`${a}-${R}`,m)}catch{}R==="light"&&(_.lightColorScheme=m),R==="dark"&&(_.darkColorScheme=m)}),_}):d(C=>{const _={...C},R=m.light===null?n:m.light,k=m.dark===null?r:m.dark;if(R)if(!l.includes(R))console.error(`\`${R}\` does not exist in \`theme.colorSchemes\`.`);else{_.lightColorScheme=R;try{localStorage.setItem(`${a}-light`,R)}catch{}}if(k)if(!l.includes(k))console.error(`\`${k}\` does not exist in \`theme.colorSchemes\`.`);else{_.darkColorScheme=k;try{localStorage.setItem(`${a}-dark`,k)}catch{}}return _}):d(C=>{try{localStorage.setItem(`${a}-light`,n),localStorage.setItem(`${a}-dark`,r)}catch{}return{...C,lightColorScheme:n,darkColorScheme:r}})},[l,a,n,r]),v=b.useCallback(m=>{u.mode==="system"&&d(C=>{const _=m!=null&&m.matches?"dark":"light";return C.systemMode===_?C:{...C,systemMode:_}})},[u.mode]),S=b.useRef(v);return S.current=v,b.useEffect(()=>{if(typeof window.matchMedia!="function"||!c)return;const m=(..._)=>S.current(..._),C=window.matchMedia("(prefers-color-scheme: dark)");return C.addListener(m),m(C),()=>{C.removeListener(m)}},[c]),b.useEffect(()=>{if(s&&c){const m=C=>{const _=C.newValue;typeof C.key=="string"&&C.key.startsWith(a)&&(!_||l.match(_))&&(C.key.endsWith("light")&&w({light:_}),C.key.endsWith("dark")&&w({dark:_})),C.key===i&&(!_||["light","dark","system"].includes(_))&&y(_||t)};return s.addEventListener("storage",m),()=>{s.removeEventListener("storage",m)}}},[w,y,i,a,l,t,s,c]),{...u,mode:p.current||!c?u.mode:void 0,systemMode:p.current||!c?u.systemMode:void 0,colorScheme:p.current||!c?h:void 0,setMode:y,setColorScheme:w}}const RE="*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function TE(e){const{themeId:t,theme:n={},modeStorageKey:r=m1,colorSchemeStorageKey:o=v1,disableTransitionOnChange:i=!1,defaultColorScheme:a,resolveTheme:s}=e,l={allColorSchemes:[],colorScheme:void 0,darkColorScheme:void 0,lightColorScheme:void 0,mode:void 0,setColorScheme:()=>{},setMode:()=>{},systemMode:void 0},c=b.createContext(void 0),u=()=>b.useContext(c)||l;function d(y){var ge,le,Se,ye,Ge;const{children:w,theme:v,modeStorageKey:S=r,colorSchemeStorageKey:m=o,disableTransitionOnChange:C=i,storageWindow:_=typeof window>"u"?void 0:window,documentNode:R=typeof document>"u"?void 0:document,colorSchemeNode:k=typeof document>"u"?void 0:document.documentElement,disableNestedContext:T=!1,disableStyleSheetGeneration:P=!1,defaultMode:x="system"}=y,$=b.useRef(!1),I=h1(),O=b.useContext(c),D=!!O&&!T,M=b.useMemo(()=>v||(typeof n=="function"?n():n),[v]),A=M[t],{colorSchemes:N={},components:E={},cssVarPrefix:L,...B}=A||M,H=Object.keys(N).filter(Pe=>!!N[Pe]).join(","),z=b.useMemo(()=>H.split(","),[H]),j=typeof a=="string"?a:a.light,F=typeof a=="string"?a:a.dark,W=N[j]&&N[F]?x:((le=(ge=N[B.defaultColorScheme])==null?void 0:ge.palette)==null?void 0:le.mode)||((Se=B.palette)==null?void 0:Se.mode),{mode:V,setMode:ee,systemMode:re,lightColorScheme:U,darkColorScheme:K,colorScheme:se,setColorScheme:q}=_E({supportedColorSchemes:z,defaultLightColorScheme:j,defaultDarkColorScheme:F,modeStorageKey:S,colorSchemeStorageKey:m,defaultMode:W,storageWindow:_});let ce=V,ue=se;D&&(ce=O.mode,ue=O.colorScheme);const ie=ue||B.defaultColorScheme,te=((ye=B.generateThemeVars)==null?void 0:ye.call(B))||B.vars,de={...B,components:E,colorSchemes:N,cssVarPrefix:L,vars:te};if(typeof de.generateSpacing=="function"&&(de.spacing=de.generateSpacing()),ie){const Pe=N[ie];Pe&&typeof Pe=="object"&&Object.keys(Pe).forEach(Re=>{Pe[Re]&&typeof Pe[Re]=="object"?de[Re]={...de[Re],...Pe[Re]}:de[Re]=Pe[Re]})}const Q=B.colorSchemeSelector;b.useEffect(()=>{if(ue&&k&&Q&&Q!=="media"){const Pe=Q;let Re=Q;if(Pe==="class"&&(Re=".%s"),Pe==="data"&&(Re="[data-%s]"),Pe!=null&&Pe.startsWith("data-")&&!Pe.includes("%s")&&(Re=`[${Pe}="%s"]`),Re.startsWith("."))k.classList.remove(...z.map(ke=>Re.substring(1).replace("%s",ke))),k.classList.add(Re.substring(1).replace("%s",ue));else{const ke=Re.replace("%s",ue).match(/\[([^\]]+)\]/);if(ke){const[pe,ne]=ke[1].split("=");ne||z.forEach(xe=>{k.removeAttribute(pe.replace(ue,xe))}),k.setAttribute(pe,ne?ne.replace(/"|'/g,""):"")}else k.setAttribute(Re,ue)}}},[ue,Q,k,z]),b.useEffect(()=>{let Pe;if(C&&$.current&&R){const Re=R.createElement("style");Re.appendChild(R.createTextNode(RE)),R.head.appendChild(Re),window.getComputedStyle(R.body),Pe=setTimeout(()=>{R.head.removeChild(Re)},1)}return()=>{clearTimeout(Pe)}},[ue,C,R]),b.useEffect(()=>($.current=!0,()=>{$.current=!1}),[]);const be=b.useMemo(()=>({allColorSchemes:z,colorScheme:ue,darkColorScheme:K,lightColorScheme:U,mode:ce,setColorScheme:q,setMode:ee,systemMode:re}),[z,ue,K,U,ce,q,ee,re]);let Te=!0;(P||B.cssVariables===!1||D&&(I==null?void 0:I.cssVarPrefix)===L)&&(Te=!1);const we=g.jsxs(b.Fragment,{children:[g.jsx(Y2,{themeId:A?t:void 0,theme:s?s(de):de,children:w}),Te&&g.jsx(I2,{styles:((Ge=de.generateStyleSheets)==null?void 0:Ge.call(de))||[]})]});return D?we:g.jsx(c.Provider,{value:be,children:we})}const f=typeof a=="string"?a:a.light,p=typeof a=="string"?a:a.dark;return{CssVarsProvider:d,useColorScheme:u,getInitColorSchemeScript:y=>wE({colorSchemeStorageKey:o,defaultLightColorScheme:f,defaultDarkColorScheme:p,modeStorageKey:r,...y})}}function PE(e=""){function t(...r){if(!r.length)return"";const o=r[0];return typeof o=="string"&&!o.match(/(#|\(|\)|(-?(\d*\.)?\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\d*\.)?\d+)$|(\d+ \d+ \d+)/)?`, var(--${e?`${e}-`:""}${o}${t(...r.slice(1))})`:`, ${o}`}return(r,...o)=>`var(--${e?`${e}-`:""}${r}${t(...o)})`}const eb=(e,t,n,r=[])=>{let o=e;t.forEach((i,a)=>{a===t.length-1?Array.isArray(o)?o[Number(i)]=n:o&&typeof o=="object"&&(o[i]=n):o&&typeof o=="object"&&(o[i]||(o[i]=r.includes(i)?[]:{}),o=o[i])})},kE=(e,t,n)=>{function r(o,i=[],a=[]){Object.entries(o).forEach(([s,l])=>{(!n||n&&!n([...i,s]))&&l!=null&&(typeof l=="object"&&Object.keys(l).length>0?r(l,[...i,s],Array.isArray(l)?[...a,s]:a):t([...i,s],l,a))})}r(e)},$E=(e,t)=>typeof t=="number"?["lineHeight","fontWeight","opacity","zIndex"].some(r=>e.includes(r))||e[e.length-1].toLowerCase().includes("opacity")?t:`${t}px`:t;function ug(e,t){const{prefix:n,shouldSkipGeneratingVar:r}=t||{},o={},i={},a={};return kE(e,(s,l,c)=>{if((typeof l=="string"||typeof l=="number")&&(!r||!r(s,l))){const u=`--${n?`${n}-`:""}${s.join("-")}`,d=$E(s,l);Object.assign(o,{[u]:d}),eb(i,s,`var(${u})`,c),eb(a,s,`var(${u}, ${d})`,c)}},s=>s[0]==="vars"),{css:o,vars:i,varsWithDefaults:a}}function EE(e,t={}){const{getSelector:n=w,disableCssColorScheme:r,colorSchemeSelector:o}=t,{colorSchemes:i={},components:a,defaultColorScheme:s="light",...l}=e,{vars:c,css:u,varsWithDefaults:d}=ug(l,t);let f=d;const p={},{[s]:h,...y}=i;if(Object.entries(y||{}).forEach(([m,C])=>{const{vars:_,css:R,varsWithDefaults:k}=ug(C,t);f=So(f,k),p[m]={css:R,vars:_}}),h){const{css:m,vars:C,varsWithDefaults:_}=ug(h,t);f=So(f,_),p[s]={css:m,vars:C}}function w(m,C){var R,k;let _=o;if(o==="class"&&(_=".%s"),o==="data"&&(_="[data-%s]"),o!=null&&o.startsWith("data-")&&!o.includes("%s")&&(_=`[${o}="%s"]`),m){if(_==="media")return e.defaultColorScheme===m?":root":{[`@media (prefers-color-scheme: ${((k=(R=i[m])==null?void 0:R.palette)==null?void 0:k.mode)||m})`]:{":root":C}};if(_)return e.defaultColorScheme===m?`:root, ${_.replace("%s",String(m))}`:_.replace("%s",String(m))}return":root"}return{vars:f,generateThemeVars:()=>{let m={...c};return Object.entries(p).forEach(([,{vars:C}])=>{m=So(m,C)}),m},generateStyleSheets:()=>{var T,P;const m=[],C=e.defaultColorScheme||"light";function _(x,$){Object.keys($).length&&m.push(typeof x=="string"?{[x]:{...$}}:x)}_(n(void 0,{...u}),u);const{[C]:R,...k}=p;if(R){const{css:x}=R,$=(P=(T=i[C])==null?void 0:T.palette)==null?void 0:P.mode,I=!r&&$?{colorScheme:$,...x}:{...x};_(n(C,{...I}),I)}return Object.entries(k).forEach(([x,{css:$}])=>{var D,M;const I=(M=(D=i[x])==null?void 0:D.palette)==null?void 0:M.mode,O=!r&&I?{colorScheme:I,...$}:{...$};_(n(x,{...O}),O)}),m}}}function ME(e){return function(n){return e==="media"?`@media (prefers-color-scheme: ${n})`:e?e.startsWith("data-")&&!e.includes("%s")?`[${e}="${n}"] &`:e==="class"?`.${n} &`:e==="data"?`[data-${n}] &`:`${e.replace("%s",n)} &`:"&"}}function IE(e,t,n=void 0){const r={};for(const o in e){const i=e[o];let a="",s=!0;for(let l=0;lt.root});function AE(e){return G2({props:e,name:"MuiStack",defaultTheme:OE})}function NE(e,t){const n=b.Children.toArray(e).filter(Boolean);return n.reduce((r,o,i)=>(r.push(o),i({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[e],jE=({ownerState:e,theme:t})=>{let n={display:"flex",flexDirection:"column",...Br({theme:t},sg({values:e.direction,breakpoints:t.breakpoints.values}),r=>({flexDirection:r}))};if(e.spacing){const r=Hf(t),o=Object.keys(t.breakpoints.values).reduce((l,c)=>((typeof e.spacing=="object"&&e.spacing[c]!=null||typeof e.direction=="object"&&e.direction[c]!=null)&&(l[c]=!0),l),{}),i=sg({values:e.direction,base:o}),a=sg({values:e.spacing,base:o});typeof i=="object"&&Object.keys(i).forEach((l,c,u)=>{if(!i[l]){const f=c>0?i[u[c-1]]:"column";i[l]=f}}),n=So(n,Br({theme:t},a,(l,c)=>e.useFlexGap?{gap:Ji(r,l)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${DE(c?i[c]:e.direction)}`]:Ji(r,l)}}))}return n=J$(t.breakpoints,n),n};function FE(e={}){const{createStyledComponent:t=LE,useThemeProps:n=AE,componentName:r="MuiStack"}=e,o=()=>IE({root:["root"]},l=>Z5(r,l),{}),i=t(jE);return b.forwardRef(function(l,c){const u=n(l),d=d1(u),{component:f="div",direction:p="column",spacing:h=0,divider:y,children:w,className:v,useFlexGap:S=!1,...m}=d,C={direction:p,spacing:h,useFlexGap:S},_=o();return g.jsx(i,{as:f,ownerState:C,ref:c,className:ve(_.root,v),...m,children:y?NE(w,y):w})})}function Uo(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function J2(e){if(!Uo(e))return e;const t={};return Object.keys(e).forEach(n=>{t[n]=J2(e[n])}),t}function io(e,t,n={clone:!0}){const r=n.clone?{...e}:e;return Uo(e)&&Uo(t)&&Object.keys(t).forEach(o=>{Uo(t[o])&&Object.prototype.hasOwnProperty.call(e,o)&&Uo(e[o])?r[o]=io(e[o],t[o],n):n.clone?r[o]=Uo(t[o])?J2(t[o]):t[o]:r[o]=t[o]}),r}function e_(){return{text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:oc.white,default:oc.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}}}const BE=e_();function t_(){return{text:{primary:oc.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:oc.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}}}const tb=t_();function nb(e,t,n,r){const o=r.light||r,i=r.dark||r*1.5;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:t==="light"?e.light=ta(e.main,o):t==="dark"&&(e.dark=ea(e.main,i)))}function zE(e="light"){return e==="dark"?{main:va[200],light:va[50],dark:va[400]}:{main:va[700],light:va[400],dark:va[800]}}function HE(e="light"){return e==="dark"?{main:ma[200],light:ma[50],dark:ma[400]}:{main:ma[500],light:ma[300],dark:ma[700]}}function VE(e="light"){return e==="dark"?{main:ha[500],light:ha[300],dark:ha[700]}:{main:ha[700],light:ha[400],dark:ha[800]}}function WE(e="light"){return e==="dark"?{main:ya[400],light:ya[300],dark:ya[700]}:{main:ya[700],light:ya[500],dark:ya[900]}}function UE(e="light"){return e==="dark"?{main:ba[400],light:ba[300],dark:ba[700]}:{main:ba[800],light:ba[500],dark:ba[900]}}function GE(e="light"){return e==="dark"?{main:Qs[400],light:Qs[300],dark:Qs[700]}:{main:"#ed6c02",light:Qs[500],dark:Qs[900]}}function y1(e){const{mode:t="light",contrastThreshold:n=3,tonalOffset:r=.2,...o}=e,i=e.primary||zE(t),a=e.secondary||HE(t),s=e.error||VE(t),l=e.info||WE(t),c=e.success||UE(t),u=e.warning||GE(t);function d(y){return uE(y,tb.text.primary)>=n?tb.text.primary:BE.text.primary}const f=({color:y,name:w,mainShade:v=500,lightShade:S=300,darkShade:m=700})=>{if(y={...y},!y.main&&y[v]&&(y.main=y[v]),!y.hasOwnProperty("main"))throw new Error(Xi(11,w?` (${w})`:"",v));if(typeof y.main!="string")throw new Error(Xi(12,w?` (${w})`:"",JSON.stringify(y.main)));return nb(y,"light",S,r),nb(y,"dark",m,r),y.contrastText||(y.contrastText=d(y.main)),y};let p;return t==="light"?p=e_():t==="dark"&&(p=t_()),io({common:{...oc},mode:t,primary:f({color:i,name:"primary"}),secondary:f({color:a,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:f({color:s,name:"error"}),warning:f({color:u,name:"warning"}),info:f({color:l,name:"info"}),success:f({color:c,name:"success"}),grey:D4,contrastThreshold:n,getContrastText:d,augmentColor:f,tonalOffset:r,...p},o)}function qE(e){const t={};return Object.entries(e).forEach(r=>{const[o,i]=r;typeof i=="object"&&(t[o]=`${i.fontStyle?`${i.fontStyle} `:""}${i.fontVariant?`${i.fontVariant} `:""}${i.fontWeight?`${i.fontWeight} `:""}${i.fontStretch?`${i.fontStretch} `:""}${i.fontSize||""}${i.lineHeight?`/${i.lineHeight} `:""}${i.fontFamily||""}`)}),t}const rb=e=>e,KE=()=>{let e=rb;return{configure(t){e=t},generate(t){return e(t)},reset(){e=rb}}},n_=KE(),ZE={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function Oe(e,t,n="Mui"){const r=ZE[t];return r?`${n}-${r}`:`${n_.generate(e)}-${t}`}function QE(e,t){return{toolbar:{minHeight:56,[e.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[e.up("sm")]:{minHeight:64}},...t}}function YE(e){return Math.round(e*1e5)/1e5}const ob={textTransform:"uppercase"},ib='"Roboto", "Helvetica", "Arial", sans-serif';function r_(e,t){const{fontFamily:n=ib,fontSize:r=14,fontWeightLight:o=300,fontWeightRegular:i=400,fontWeightMedium:a=500,fontWeightBold:s=700,htmlFontSize:l=16,allVariants:c,pxToRem:u,...d}=typeof t=="function"?t(e):t,f=r/14,p=u||(w=>`${w/l*f}rem`),h=(w,v,S,m,C)=>({fontFamily:n,fontWeight:w,fontSize:p(v),lineHeight:S,...n===ib?{letterSpacing:`${YE(m/v)}em`}:{},...C,...c}),y={h1:h(o,96,1.167,-1.5),h2:h(o,60,1.2,-.5),h3:h(i,48,1.167,0),h4:h(i,34,1.235,.25),h5:h(i,24,1.334,0),h6:h(a,20,1.6,.15),subtitle1:h(i,16,1.75,.15),subtitle2:h(a,14,1.57,.1),body1:h(i,16,1.5,.15),body2:h(i,14,1.43,.15),button:h(a,14,1.75,.4,ob),caption:h(i,12,1.66,.4),overline:h(i,12,2.66,1,ob),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return io({htmlFontSize:l,pxToRem:p,fontFamily:n,fontSize:r,fontWeightLight:o,fontWeightRegular:i,fontWeightMedium:a,fontWeightBold:s,...y},d,{clone:!1})}const XE=.2,JE=.14,eM=.12;function bt(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,${XE})`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,${JE})`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,${eM})`].join(",")}const tM=["none",bt(0,2,1,-1,0,1,1,0,0,1,3,0),bt(0,3,1,-2,0,2,2,0,0,1,5,0),bt(0,3,3,-2,0,3,4,0,0,1,8,0),bt(0,2,4,-1,0,4,5,0,0,1,10,0),bt(0,3,5,-1,0,5,8,0,0,1,14,0),bt(0,3,5,-1,0,6,10,0,0,1,18,0),bt(0,4,5,-2,0,7,10,1,0,2,16,1),bt(0,5,5,-3,0,8,10,1,0,3,14,2),bt(0,5,6,-3,0,9,12,1,0,3,16,2),bt(0,6,6,-3,0,10,14,1,0,4,18,3),bt(0,6,7,-4,0,11,15,1,0,4,20,3),bt(0,7,8,-4,0,12,17,2,0,5,22,4),bt(0,7,8,-4,0,13,19,2,0,5,24,4),bt(0,7,9,-4,0,14,21,2,0,5,26,4),bt(0,8,9,-5,0,15,22,2,0,6,28,5),bt(0,8,10,-5,0,16,24,2,0,6,30,5),bt(0,8,11,-5,0,17,26,2,0,6,32,5),bt(0,9,11,-5,0,18,28,2,0,7,34,6),bt(0,9,12,-6,0,19,29,2,0,7,36,6),bt(0,10,13,-6,0,20,31,3,0,8,38,7),bt(0,10,13,-6,0,21,33,3,0,8,40,7),bt(0,10,14,-6,0,22,35,3,0,8,42,7),bt(0,11,14,-7,0,23,36,3,0,9,44,8),bt(0,11,15,-7,0,24,38,3,0,9,46,8)],nM={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},o_={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function ab(e){return`${Math.round(e)}ms`}function rM(e){if(!e)return 0;const t=e/36;return Math.min(Math.round((4+15*t**.25+t/5)*10),3e3)}function oM(e){const t={...nM,...e.easing},n={...o_,...e.duration};return{getAutoHeightDuration:rM,create:(o=["all"],i={})=>{const{duration:a=n.standard,easing:s=t.easeInOut,delay:l=0,...c}=i;return(Array.isArray(o)?o:[o]).map(u=>`${u} ${typeof a=="string"?a:ab(a)} ${s} ${typeof l=="string"?l:ab(l)}`).join(",")},...e,easing:t,duration:n}}const iM={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function aM(e){return Uo(e)||typeof e>"u"||typeof e=="string"||typeof e=="boolean"||typeof e=="number"||Array.isArray(e)}function i_(e={}){const t={...e};function n(r){const o=Object.entries(r);for(let i=0;iio(p,h),f),f.unstable_sxConfig={...Rc,...c==null?void 0:c.unstable_sxConfig},f.unstable_sx=function(h){return fi({sx:h,theme:this})},f.toRuntimeSource=i_,f}function pm(e){let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}const sM=[...Array(25)].map((e,t)=>{if(t===0)return"none";const n=pm(t);return`linear-gradient(rgba(255 255 255 / ${n}), rgba(255 255 255 / ${n}))`});function a_(e){return{inputPlaceholder:e==="dark"?.5:.42,inputUnderline:e==="dark"?.7:.42,switchTrackDisabled:e==="dark"?.2:.12,switchTrack:e==="dark"?.3:.38}}function s_(e){return e==="dark"?sM:[]}function lM(e){const{palette:t={mode:"light"},opacity:n,overlays:r,...o}=e,i=y1(t);return{palette:i,opacity:{...a_(i.mode),...n},overlays:r||s_(i.mode),...o}}function cM(e){var t;return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]==="palette"&&!!((t=e[1])!=null&&t.match(/(mode|contrastThreshold|tonalOffset)/))}const uM=e=>[...[...Array(25)].map((t,n)=>`--${e?`${e}-`:""}overlays-${n}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],dM=e=>(t,n)=>{const r=e.rootSelector||":root",o=e.colorSchemeSelector;let i=o;if(o==="class"&&(i=".%s"),o==="data"&&(i="[data-%s]"),o!=null&&o.startsWith("data-")&&!o.includes("%s")&&(i=`[${o}="%s"]`),e.defaultColorScheme===t){if(t==="dark"){const a={};return uM(e.cssVarPrefix).forEach(s=>{a[s]=n[s],delete n[s]}),i==="media"?{[r]:n,"@media (prefers-color-scheme: dark)":{[r]:a}}:i?{[i.replace("%s",t)]:a,[`${r}, ${i.replace("%s",t)}`]:n}:{[r]:{...n,...a}}}if(i&&i!=="media")return`${r}, ${i.replace("%s",String(t))}`}else if(t){if(i==="media")return{[`@media (prefers-color-scheme: ${String(t)})`]:{[r]:n}};if(i)return i.replace("%s",String(t))}return r};function fM(e,t){t.forEach(n=>{e[n]||(e[n]={})})}function Z(e,t,n){!e[t]&&n&&(e[t]=n)}function hl(e){return!e||!e.startsWith("hsl")?e:q2(e)}function co(e,t){`${t}Channel`in e||(e[`${t}Channel`]=gl(hl(e[t]),`MUI: Can't create \`palette.${t}Channel\` because \`palette.${t}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color(). -To suppress this warning, you need to explicitly provide the \`palette.${t}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function pM(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}const qr=e=>{try{return e()}catch{}},gM=(e="mui")=>PE(e);function dg(e,t,n,r){if(!t)return;t=t===!0?{}:t;const o=r==="dark"?"dark":"light";if(!n){e[r]=lM({...t,palette:{mode:o,...t==null?void 0:t.palette}});return}const{palette:i,...a}=fm({...n,palette:{mode:o,...t==null?void 0:t.palette}});return e[r]={...t,palette:i,opacity:{...a_(o),...t==null?void 0:t.opacity},overlays:(t==null?void 0:t.overlays)||s_(o)},a}function hM(e={},...t){const{colorSchemes:n={light:!0},defaultColorScheme:r,disableCssColorScheme:o=!1,cssVarPrefix:i="mui",shouldSkipGeneratingVar:a=cM,colorSchemeSelector:s=n.light&&n.dark?"media":void 0,rootSelector:l=":root",...c}=e,u=Object.keys(n)[0],d=r||(n.light&&u!=="light"?"light":u),f=gM(i),{[d]:p,light:h,dark:y,...w}=n,v={...w};let S=p;if((d==="dark"&&!("dark"in n)||d==="light"&&!("light"in n))&&(S=!0),!S)throw new Error(Xi(21,d));const m=dg(v,S,c,d);h&&!v.light&&dg(v,h,void 0,"light"),y&&!v.dark&&dg(v,y,void 0,"dark");let C={defaultColorScheme:d,...m,cssVarPrefix:i,colorSchemeSelector:s,rootSelector:l,getCssVar:f,colorSchemes:v,font:{...qE(m.typography),...m.font},spacing:pM(c.spacing)};Object.keys(C.colorSchemes).forEach(P=>{const x=C.colorSchemes[P].palette,$=I=>{const O=I.split("-"),D=O[1],M=O[2];return f(I,x[D][M])};if(x.mode==="light"&&(Z(x.common,"background","#fff"),Z(x.common,"onBackground","#000")),x.mode==="dark"&&(Z(x.common,"background","#000"),Z(x.common,"onBackground","#fff")),fM(x,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),x.mode==="light"){Z(x.Alert,"errorColor",dt(x.error.light,.6)),Z(x.Alert,"infoColor",dt(x.info.light,.6)),Z(x.Alert,"successColor",dt(x.success.light,.6)),Z(x.Alert,"warningColor",dt(x.warning.light,.6)),Z(x.Alert,"errorFilledBg",$("palette-error-main")),Z(x.Alert,"infoFilledBg",$("palette-info-main")),Z(x.Alert,"successFilledBg",$("palette-success-main")),Z(x.Alert,"warningFilledBg",$("palette-warning-main")),Z(x.Alert,"errorFilledColor",qr(()=>x.getContrastText(x.error.main))),Z(x.Alert,"infoFilledColor",qr(()=>x.getContrastText(x.info.main))),Z(x.Alert,"successFilledColor",qr(()=>x.getContrastText(x.success.main))),Z(x.Alert,"warningFilledColor",qr(()=>x.getContrastText(x.warning.main))),Z(x.Alert,"errorStandardBg",ft(x.error.light,.9)),Z(x.Alert,"infoStandardBg",ft(x.info.light,.9)),Z(x.Alert,"successStandardBg",ft(x.success.light,.9)),Z(x.Alert,"warningStandardBg",ft(x.warning.light,.9)),Z(x.Alert,"errorIconColor",$("palette-error-main")),Z(x.Alert,"infoIconColor",$("palette-info-main")),Z(x.Alert,"successIconColor",$("palette-success-main")),Z(x.Alert,"warningIconColor",$("palette-warning-main")),Z(x.AppBar,"defaultBg",$("palette-grey-100")),Z(x.Avatar,"defaultBg",$("palette-grey-400")),Z(x.Button,"inheritContainedBg",$("palette-grey-300")),Z(x.Button,"inheritContainedHoverBg",$("palette-grey-A100")),Z(x.Chip,"defaultBorder",$("palette-grey-400")),Z(x.Chip,"defaultAvatarColor",$("palette-grey-700")),Z(x.Chip,"defaultIconColor",$("palette-grey-700")),Z(x.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),Z(x.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),Z(x.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),Z(x.LinearProgress,"primaryBg",ft(x.primary.main,.62)),Z(x.LinearProgress,"secondaryBg",ft(x.secondary.main,.62)),Z(x.LinearProgress,"errorBg",ft(x.error.main,.62)),Z(x.LinearProgress,"infoBg",ft(x.info.main,.62)),Z(x.LinearProgress,"successBg",ft(x.success.main,.62)),Z(x.LinearProgress,"warningBg",ft(x.warning.main,.62)),Z(x.Skeleton,"bg",`rgba(${$("palette-text-primaryChannel")} / 0.11)`),Z(x.Slider,"primaryTrack",ft(x.primary.main,.62)),Z(x.Slider,"secondaryTrack",ft(x.secondary.main,.62)),Z(x.Slider,"errorTrack",ft(x.error.main,.62)),Z(x.Slider,"infoTrack",ft(x.info.main,.62)),Z(x.Slider,"successTrack",ft(x.success.main,.62)),Z(x.Slider,"warningTrack",ft(x.warning.main,.62));const I=cu(x.background.default,.8);Z(x.SnackbarContent,"bg",I),Z(x.SnackbarContent,"color",qr(()=>x.getContrastText(I))),Z(x.SpeedDialAction,"fabHoverBg",cu(x.background.paper,.15)),Z(x.StepConnector,"border",$("palette-grey-400")),Z(x.StepContent,"border",$("palette-grey-400")),Z(x.Switch,"defaultColor",$("palette-common-white")),Z(x.Switch,"defaultDisabledColor",$("palette-grey-100")),Z(x.Switch,"primaryDisabledColor",ft(x.primary.main,.62)),Z(x.Switch,"secondaryDisabledColor",ft(x.secondary.main,.62)),Z(x.Switch,"errorDisabledColor",ft(x.error.main,.62)),Z(x.Switch,"infoDisabledColor",ft(x.info.main,.62)),Z(x.Switch,"successDisabledColor",ft(x.success.main,.62)),Z(x.Switch,"warningDisabledColor",ft(x.warning.main,.62)),Z(x.TableCell,"border",ft(lu(x.divider,1),.88)),Z(x.Tooltip,"bg",lu(x.grey[700],.92))}if(x.mode==="dark"){Z(x.Alert,"errorColor",ft(x.error.light,.6)),Z(x.Alert,"infoColor",ft(x.info.light,.6)),Z(x.Alert,"successColor",ft(x.success.light,.6)),Z(x.Alert,"warningColor",ft(x.warning.light,.6)),Z(x.Alert,"errorFilledBg",$("palette-error-dark")),Z(x.Alert,"infoFilledBg",$("palette-info-dark")),Z(x.Alert,"successFilledBg",$("palette-success-dark")),Z(x.Alert,"warningFilledBg",$("palette-warning-dark")),Z(x.Alert,"errorFilledColor",qr(()=>x.getContrastText(x.error.dark))),Z(x.Alert,"infoFilledColor",qr(()=>x.getContrastText(x.info.dark))),Z(x.Alert,"successFilledColor",qr(()=>x.getContrastText(x.success.dark))),Z(x.Alert,"warningFilledColor",qr(()=>x.getContrastText(x.warning.dark))),Z(x.Alert,"errorStandardBg",dt(x.error.light,.9)),Z(x.Alert,"infoStandardBg",dt(x.info.light,.9)),Z(x.Alert,"successStandardBg",dt(x.success.light,.9)),Z(x.Alert,"warningStandardBg",dt(x.warning.light,.9)),Z(x.Alert,"errorIconColor",$("palette-error-main")),Z(x.Alert,"infoIconColor",$("palette-info-main")),Z(x.Alert,"successIconColor",$("palette-success-main")),Z(x.Alert,"warningIconColor",$("palette-warning-main")),Z(x.AppBar,"defaultBg",$("palette-grey-900")),Z(x.AppBar,"darkBg",$("palette-background-paper")),Z(x.AppBar,"darkColor",$("palette-text-primary")),Z(x.Avatar,"defaultBg",$("palette-grey-600")),Z(x.Button,"inheritContainedBg",$("palette-grey-800")),Z(x.Button,"inheritContainedHoverBg",$("palette-grey-700")),Z(x.Chip,"defaultBorder",$("palette-grey-700")),Z(x.Chip,"defaultAvatarColor",$("palette-grey-300")),Z(x.Chip,"defaultIconColor",$("palette-grey-300")),Z(x.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),Z(x.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),Z(x.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),Z(x.LinearProgress,"primaryBg",dt(x.primary.main,.5)),Z(x.LinearProgress,"secondaryBg",dt(x.secondary.main,.5)),Z(x.LinearProgress,"errorBg",dt(x.error.main,.5)),Z(x.LinearProgress,"infoBg",dt(x.info.main,.5)),Z(x.LinearProgress,"successBg",dt(x.success.main,.5)),Z(x.LinearProgress,"warningBg",dt(x.warning.main,.5)),Z(x.Skeleton,"bg",`rgba(${$("palette-text-primaryChannel")} / 0.13)`),Z(x.Slider,"primaryTrack",dt(x.primary.main,.5)),Z(x.Slider,"secondaryTrack",dt(x.secondary.main,.5)),Z(x.Slider,"errorTrack",dt(x.error.main,.5)),Z(x.Slider,"infoTrack",dt(x.info.main,.5)),Z(x.Slider,"successTrack",dt(x.success.main,.5)),Z(x.Slider,"warningTrack",dt(x.warning.main,.5));const I=cu(x.background.default,.98);Z(x.SnackbarContent,"bg",I),Z(x.SnackbarContent,"color",qr(()=>x.getContrastText(I))),Z(x.SpeedDialAction,"fabHoverBg",cu(x.background.paper,.15)),Z(x.StepConnector,"border",$("palette-grey-600")),Z(x.StepContent,"border",$("palette-grey-600")),Z(x.Switch,"defaultColor",$("palette-grey-300")),Z(x.Switch,"defaultDisabledColor",$("palette-grey-600")),Z(x.Switch,"primaryDisabledColor",dt(x.primary.main,.55)),Z(x.Switch,"secondaryDisabledColor",dt(x.secondary.main,.55)),Z(x.Switch,"errorDisabledColor",dt(x.error.main,.55)),Z(x.Switch,"infoDisabledColor",dt(x.info.main,.55)),Z(x.Switch,"successDisabledColor",dt(x.success.main,.55)),Z(x.Switch,"warningDisabledColor",dt(x.warning.main,.55)),Z(x.TableCell,"border",dt(lu(x.divider,1),.68)),Z(x.Tooltip,"bg",lu(x.grey[700],.92))}co(x.background,"default"),co(x.background,"paper"),co(x.common,"background"),co(x.common,"onBackground"),co(x,"divider"),Object.keys(x).forEach(I=>{const O=x[I];O&&typeof O=="object"&&(O.main&&Z(x[I],"mainChannel",gl(hl(O.main))),O.light&&Z(x[I],"lightChannel",gl(hl(O.light))),O.dark&&Z(x[I],"darkChannel",gl(hl(O.dark))),O.contrastText&&Z(x[I],"contrastTextChannel",gl(hl(O.contrastText))),I==="text"&&(co(x[I],"primary"),co(x[I],"secondary")),I==="action"&&(O.active&&co(x[I],"active"),O.selected&&co(x[I],"selected")))})}),C=t.reduce((P,x)=>io(P,x),C);const _={prefix:i,disableCssColorScheme:o,shouldSkipGeneratingVar:a,getSelector:dM(C)},{vars:R,generateThemeVars:k,generateStyleSheets:T}=EE(C,_);return C.vars=R,Object.entries(C.colorSchemes[C.defaultColorScheme]).forEach(([P,x])=>{C[P]=x}),C.generateThemeVars=k,C.generateStyleSheets=T,C.generateSpacing=function(){return F2(c.spacing,Hf(this))},C.getColorSchemeSelector=ME(s),C.spacing=C.generateSpacing(),C.shouldSkipGeneratingVar=a,C.unstable_sxConfig={...Rc,...c==null?void 0:c.unstable_sxConfig},C.unstable_sx=function(x){return fi({sx:x,theme:this})},C.toRuntimeSource=i_,C}function sb(e,t,n){e.colorSchemes&&n&&(e.colorSchemes[t]={...n!==!0&&n,palette:y1({...n===!0?{}:n.palette,mode:t})})}function sp(e={},...t){const{palette:n,cssVariables:r=!1,colorSchemes:o=n?void 0:{light:!0},defaultColorScheme:i=n==null?void 0:n.mode,...a}=e,s=i||"light",l=o==null?void 0:o[s],c={...o,...n?{[s]:{...typeof l!="boolean"&&l,palette:n}}:void 0};if(r===!1){if(!("colorSchemes"in e))return fm(e,...t);let u=n;"palette"in e||c[s]&&(c[s]!==!0?u=c[s].palette:s==="dark"&&(u={mode:"dark"}));const d=fm({...e,palette:u},...t);return d.defaultColorScheme=s,d.colorSchemes=c,d.palette.mode==="light"&&(d.colorSchemes.light={...c.light!==!0&&c.light,palette:d.palette},sb(d,"dark",c.dark)),d.palette.mode==="dark"&&(d.colorSchemes.dark={...c.dark!==!0&&c.dark,palette:d.palette},sb(d,"light",c.light)),d}return!n&&!("light"in c)&&s==="light"&&(c.light=!0),hM({...a,colorSchemes:c,defaultColorScheme:s,...typeof r!="boolean"&&r},...t)}const lp=sp();function zt(){const e=Zf(lp);return e[Dr]||e}function mM({props:e,name:t}){return G2({props:e,name:t,defaultTheme:lp,themeId:Dr})}function l_(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const wn=e=>l_(e)&&e!=="classes",J=U2({themeId:Dr,defaultTheme:lp,rootShouldForwardProp:wn});function lb({theme:e,...t}){const n=Dr in e?e[Dr]:void 0;return g.jsx(Y2,{...t,themeId:n?Dr:void 0,theme:n||e})}const uu={attribute:"data-mui-color-scheme",colorSchemeStorageKey:"mui-color-scheme",defaultLightColorScheme:"light",defaultDarkColorScheme:"dark",modeStorageKey:"mui-mode"},{CssVarsProvider:vM,useColorScheme:WK,getInitColorSchemeScript:UK}=TE({themeId:Dr,theme:()=>sp({cssVariables:!0}),colorSchemeStorageKey:uu.colorSchemeStorageKey,modeStorageKey:uu.modeStorageKey,defaultColorScheme:{light:uu.defaultLightColorScheme,dark:uu.defaultDarkColorScheme},resolveTheme:e=>{const t={...e,typography:r_(e.palette,e.typography)};return t.unstable_sx=function(r){return fi({sx:r,theme:this})},t}}),yM=vM;function bM({theme:e,...t}){return typeof e=="function"?g.jsx(lb,{theme:e,...t}):"colorSchemes"in(Dr in e?e[Dr]:e)?g.jsx(yM,{theme:e,...t}):g.jsx(lb,{theme:e,...t})}function ae(e){if(typeof e!="string")throw new Error(Xi(7));return e.charAt(0).toUpperCase()+e.slice(1)}function gm(...e){return e.reduce((t,n)=>n==null?t:function(...o){t.apply(this,o),n.apply(this,o)},()=>{})}function cp(e,t=166){let n;function r(...o){const i=()=>{e.apply(this,o)};clearTimeout(n),n=setTimeout(i,t)}return r.clear=()=>{clearTimeout(n)},r}function fg(e,t){var n,r,o;return b.isValidElement(e)&&t.indexOf(e.type.muiName??((o=(r=(n=e.type)==null?void 0:n._payload)==null?void 0:r.value)==null?void 0:o.muiName))!==-1}function ln(e){return e&&e.ownerDocument||document}function zr(e){return ln(e).defaultView||window}function jd(e,t){typeof e=="function"?e(t):e&&(e.current=t)}const Hr=typeof window<"u"?b.useLayoutEffect:b.useEffect;let cb=0;function xM(e){const[t,n]=b.useState(e),r=e||t;return b.useEffect(()=>{t==null&&(cb+=1,n(`mui-${cb}`))},[t]),r}const SM={...id},ub=SM.useId;function ds(e){if(ub!==void 0){const t=ub();return e??t}return xM(e)}function Hi({controlled:e,default:t,name:n,state:r="value"}){const{current:o}=b.useRef(e!==void 0),[i,a]=b.useState(t),s=o?e:i,l=b.useCallback(c=>{o||a(c)},[]);return[s,l]}function bn(e){const t=b.useRef(e);return Hr(()=>{t.current=e}),b.useRef((...n)=>(0,t.current)(...n)).current}function Rt(...e){return b.useMemo(()=>e.every(t=>t==null)?null:t=>{e.forEach(n=>{jd(n,t)})},e)}const db={};function c_(e,t){const n=b.useRef(db);return n.current===db&&(n.current=e(t)),n}const wM=[];function CM(e){b.useEffect(e,wM)}class up{constructor(){zs(this,"currentId",null);zs(this,"clear",()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)});zs(this,"disposeEffect",()=>this.clear)}static create(){return new up}start(t,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,n()},t)}}function Ni(){const e=c_(up.create).current;return CM(e.disposeEffect),e}function Fd(e){try{return e.matches(":focus-visible")}catch{}return!1}function u_(e=window){const t=e.document.documentElement.clientWidth;return e.innerWidth-t}const _M=e=>{const t=b.useRef({});return b.useEffect(()=>{t.current=e}),t.current};function d_(e,t){const n={...t};for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const o=r;if(o==="components"||o==="slots")n[o]={...e[o],...n[o]};else if(o==="componentsProps"||o==="slotProps"){const i=e[o],a=t[o];if(!a)n[o]=i||{};else if(!i)n[o]=a;else{n[o]={...a};for(const s in i)if(Object.prototype.hasOwnProperty.call(i,s)){const l=s;n[o][l]=d_(i[l],a[l])}}}else n[o]===void 0&&(n[o]=e[o])}return n}function Ne(e,t,n=void 0){const r={};for(const o in e){const i=e[o];let a="",s=!0;for(let l=0;l{r[o]=Oe(e,o,n)}),r}function RM(e){return typeof e=="string"}function Ha(e,t,n){return e===void 0||RM(e)?t:{...t,ownerState:{...t.ownerState,...n}}}function f_(e,t=[]){if(e===void 0)return{};const n={};return Object.keys(e).filter(r=>r.match(/^on[A-Z]/)&&typeof e[r]=="function"&&!t.includes(r)).forEach(r=>{n[r]=e[r]}),n}function fb(e){if(e===void 0)return{};const t={};return Object.keys(e).filter(n=>!(n.match(/^on[A-Z]/)&&typeof e[n]=="function")).forEach(n=>{t[n]=e[n]}),t}function p_(e){const{getSlotProps:t,additionalProps:n,externalSlotProps:r,externalForwardedProps:o,className:i}=e;if(!t){const p=ve(n==null?void 0:n.className,i,o==null?void 0:o.className,r==null?void 0:r.className),h={...n==null?void 0:n.style,...o==null?void 0:o.style,...r==null?void 0:r.style},y={...n,...o,...r};return p.length>0&&(y.className=p),Object.keys(h).length>0&&(y.style=h),{props:y,internalRef:void 0}}const a=f_({...o,...r}),s=fb(r),l=fb(o),c=t(a),u=ve(c==null?void 0:c.className,n==null?void 0:n.className,i,o==null?void 0:o.className,r==null?void 0:r.className),d={...c==null?void 0:c.style,...n==null?void 0:n.style,...o==null?void 0:o.style,...r==null?void 0:r.style},f={...c,...n,...l,...s};return u.length>0&&(f.className=u),Object.keys(d).length>0&&(f.style=d),{props:f,internalRef:c.ref}}function g_(e,t,n){return typeof e=="function"?e(t,n):e}function na(e){var d;const{elementType:t,externalSlotProps:n,ownerState:r,skipResolvingSlotProps:o=!1,...i}=e,a=o?{}:g_(n,r),{props:s,internalRef:l}=p_({...i,externalSlotProps:a}),c=Rt(l,a==null?void 0:a.ref,(d=e.additionalProps)==null?void 0:d.ref);return Ha(t,{...s,ref:c},r)}function ua(e){var t;return parseInt(b.version,10)>=19?((t=e==null?void 0:e.props)==null?void 0:t.ref)||null:(e==null?void 0:e.ref)||null}function TM(e){return g.jsx(V5,{...e,defaultTheme:lp,themeId:Dr})}function PM(e){return function(n){return g.jsx(TM,{styles:typeof e=="function"?r=>e({theme:r,...n}):e})}}function kM(){return d1}const $e=xE;function De(e){return bE(e)}function $M(e){return Oe("MuiSvgIcon",e)}Ee("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);const EM=e=>{const{color:t,fontSize:n,classes:r}=e,o={root:["root",t!=="inherit"&&`color${ae(t)}`,`fontSize${ae(n)}`]};return Ne(o,$M,r)},MM=J("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="inherit"&&t[`color${ae(n.color)}`],t[`fontSize${ae(n.fontSize)}`]]}})($e(({theme:e})=>{var t,n,r,o,i,a,s,l,c,u,d,f,p,h;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",flexShrink:0,transition:(o=(t=e.transitions)==null?void 0:t.create)==null?void 0:o.call(t,"fill",{duration:(r=(n=(e.vars??e).transitions)==null?void 0:n.duration)==null?void 0:r.shorter}),variants:[{props:y=>!y.hasSvgAsChild,style:{fill:"currentColor"}},{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:((a=(i=e.typography)==null?void 0:i.pxToRem)==null?void 0:a.call(i,20))||"1.25rem"}},{props:{fontSize:"medium"},style:{fontSize:((l=(s=e.typography)==null?void 0:s.pxToRem)==null?void 0:l.call(s,24))||"1.5rem"}},{props:{fontSize:"large"},style:{fontSize:((u=(c=e.typography)==null?void 0:c.pxToRem)==null?void 0:u.call(c,35))||"2.1875rem"}},...Object.entries((e.vars??e).palette).filter(([,y])=>y&&y.main).map(([y])=>{var w,v;return{props:{color:y},style:{color:(v=(w=(e.vars??e).palette)==null?void 0:w[y])==null?void 0:v.main}}}),{props:{color:"action"},style:{color:(f=(d=(e.vars??e).palette)==null?void 0:d.action)==null?void 0:f.active}},{props:{color:"disabled"},style:{color:(h=(p=(e.vars??e).palette)==null?void 0:p.action)==null?void 0:h.disabled}},{props:{color:"inherit"},style:{color:void 0}}]}})),ra=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiSvgIcon"}),{children:o,className:i,color:a="inherit",component:s="svg",fontSize:l="medium",htmlColor:c,inheritViewBox:u=!1,titleAccess:d,viewBox:f="0 0 24 24",...p}=r,h=b.isValidElement(o)&&o.type==="svg",y={...r,color:a,component:s,fontSize:l,instanceFontSize:t.fontSize,inheritViewBox:u,viewBox:f,hasSvgAsChild:h},w={};u||(w.viewBox=f);const v=EM(y);return g.jsxs(MM,{as:s,className:ve(v.root,i),focusable:"false",color:c,"aria-hidden":d?void 0:!0,role:d?"img":void 0,ref:n,...w,...p,...h&&o.props,ownerState:y,children:[h?o.props.children:o,d?g.jsx("title",{children:d}):null]})});ra&&(ra.muiName="SvgIcon");function un(e,t){function n(r,o){return g.jsx(ra,{"data-testid":`${t}Icon`,ref:o,...r,children:e})}return n.muiName=ra.muiName,b.memo(b.forwardRef(n))}function Ms(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}function hm(e,t){return hm=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},hm(e,t)}function h_(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,hm(e,t)}const pb={disabled:!1},Bd=rt.createContext(null);var IM=function(t){return t.scrollTop},ml="unmounted",$i="exited",Ei="entering",_a="entered",mm="exiting",Vr=function(e){h_(t,e);function t(r,o){var i;i=e.call(this,r,o)||this;var a=o,s=a&&!a.isMounting?r.enter:r.appear,l;return i.appearStatus=null,r.in?s?(l=$i,i.appearStatus=Ei):l=_a:r.unmountOnExit||r.mountOnEnter?l=ml:l=$i,i.state={status:l},i.nextCallback=null,i}t.getDerivedStateFromProps=function(o,i){var a=o.in;return a&&i.status===ml?{status:$i}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(o){var i=null;if(o!==this.props){var a=this.state.status;this.props.in?a!==Ei&&a!==_a&&(i=Ei):(a===Ei||a===_a)&&(i=mm)}this.updateStatus(!1,i)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var o=this.props.timeout,i,a,s;return i=a=s=o,o!=null&&typeof o!="number"&&(i=o.exit,a=o.enter,s=o.appear!==void 0?o.appear:a),{exit:i,enter:a,appear:s}},n.updateStatus=function(o,i){if(o===void 0&&(o=!1),i!==null)if(this.cancelNextCallback(),i===Ei){if(this.props.unmountOnExit||this.props.mountOnEnter){var a=this.props.nodeRef?this.props.nodeRef.current:au.findDOMNode(this);a&&IM(a)}this.performEnter(o)}else this.performExit();else this.props.unmountOnExit&&this.state.status===$i&&this.setState({status:ml})},n.performEnter=function(o){var i=this,a=this.props.enter,s=this.context?this.context.isMounting:o,l=this.props.nodeRef?[s]:[au.findDOMNode(this),s],c=l[0],u=l[1],d=this.getTimeouts(),f=s?d.appear:d.enter;if(!o&&!a||pb.disabled){this.safeSetState({status:_a},function(){i.props.onEntered(c)});return}this.props.onEnter(c,u),this.safeSetState({status:Ei},function(){i.props.onEntering(c,u),i.onTransitionEnd(f,function(){i.safeSetState({status:_a},function(){i.props.onEntered(c,u)})})})},n.performExit=function(){var o=this,i=this.props.exit,a=this.getTimeouts(),s=this.props.nodeRef?void 0:au.findDOMNode(this);if(!i||pb.disabled){this.safeSetState({status:$i},function(){o.props.onExited(s)});return}this.props.onExit(s),this.safeSetState({status:mm},function(){o.props.onExiting(s),o.onTransitionEnd(a.exit,function(){o.safeSetState({status:$i},function(){o.props.onExited(s)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(o,i){i=this.setNextCallback(i),this.setState(o,i)},n.setNextCallback=function(o){var i=this,a=!0;return this.nextCallback=function(s){a&&(a=!1,i.nextCallback=null,o(s))},this.nextCallback.cancel=function(){a=!1},this.nextCallback},n.onTransitionEnd=function(o,i){this.setNextCallback(i);var a=this.props.nodeRef?this.props.nodeRef.current:au.findDOMNode(this),s=o==null&&!this.props.addEndListener;if(!a||s){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var l=this.props.nodeRef?[this.nextCallback]:[a,this.nextCallback],c=l[0],u=l[1];this.props.addEndListener(c,u)}o!=null&&setTimeout(this.nextCallback,o)},n.render=function(){var o=this.state.status;if(o===ml)return null;var i=this.props,a=i.children;i.in,i.mountOnEnter,i.unmountOnExit,i.appear,i.enter,i.exit,i.timeout,i.addEndListener,i.onEnter,i.onEntering,i.onEntered,i.onExit,i.onExiting,i.onExited,i.nodeRef;var s=Ms(i,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return rt.createElement(Bd.Provider,{value:null},typeof a=="function"?a(o,s):rt.cloneElement(rt.Children.only(a),s))},t}(rt.Component);Vr.contextType=Bd;Vr.propTypes={};function xa(){}Vr.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:xa,onEntering:xa,onEntered:xa,onExit:xa,onExiting:xa,onExited:xa};Vr.UNMOUNTED=ml;Vr.EXITED=$i;Vr.ENTERING=Ei;Vr.ENTERED=_a;Vr.EXITING=mm;function OM(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b1(e,t){var n=function(i){return t&&b.isValidElement(i)?t(i):i},r=Object.create(null);return e&&b.Children.map(e,function(o){return o}).forEach(function(o){r[o.key]=n(o)}),r}function LM(e,t){e=e||{},t=t||{};function n(u){return u in t?t[u]:e[u]}var r=Object.create(null),o=[];for(var i in e)i in t?o.length&&(r[i]=o,o=[]):o.push(i);var a,s={};for(var l in t){if(r[l])for(a=0;ae.scrollTop;function fs(e,t){const{timeout:n,easing:r,style:o={}}=e;return{duration:o.transitionDuration??(typeof n=="number"?n:n[t.mode]||0),easing:o.transitionTimingFunction??(typeof r=="object"?r[t.mode]:r),delay:o.transitionDelay}}function FM(e){return Oe("MuiCollapse",e)}Ee("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"]);const BM=e=>{const{orientation:t,classes:n}=e,r={root:["root",`${t}`],entered:["entered"],hidden:["hidden"],wrapper:["wrapper",`${t}`],wrapperInner:["wrapperInner",`${t}`]};return Ne(r,FM,n)},zM=J("div",{name:"MuiCollapse",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.orientation],n.state==="entered"&&t.entered,n.state==="exited"&&!n.in&&n.collapsedSize==="0px"&&t.hidden]}})($e(({theme:e})=>({height:0,overflow:"hidden",transition:e.transitions.create("height"),variants:[{props:{orientation:"horizontal"},style:{height:"auto",width:0,transition:e.transitions.create("width")}},{props:{state:"entered"},style:{height:"auto",overflow:"visible"}},{props:{state:"entered",orientation:"horizontal"},style:{width:"auto"}},{props:({ownerState:t})=>t.state==="exited"&&!t.in&&t.collapsedSize==="0px",style:{visibility:"hidden"}}]}))),HM=J("div",{name:"MuiCollapse",slot:"Wrapper",overridesResolver:(e,t)=>t.wrapper})({display:"flex",width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),VM=J("div",{name:"MuiCollapse",slot:"WrapperInner",overridesResolver:(e,t)=>t.wrapperInner})({width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),ps=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiCollapse"}),{addEndListener:o,children:i,className:a,collapsedSize:s="0px",component:l,easing:c,in:u,onEnter:d,onEntered:f,onEntering:p,onExit:h,onExited:y,onExiting:w,orientation:v="vertical",style:S,timeout:m=o_.standard,TransitionComponent:C=Vr,..._}=r,R={...r,orientation:v,collapsedSize:s},k=BM(R),T=zt(),P=Ni(),x=b.useRef(null),$=b.useRef(),I=typeof s=="number"?`${s}px`:s,O=v==="horizontal",D=O?"width":"height",M=b.useRef(null),A=Rt(n,M),N=V=>ee=>{if(V){const re=M.current;ee===void 0?V(re):V(re,ee)}},E=()=>x.current?x.current[O?"clientWidth":"clientHeight"]:0,L=N((V,ee)=>{x.current&&O&&(x.current.style.position="absolute"),V.style[D]=I,d&&d(V,ee)}),B=N((V,ee)=>{const re=E();x.current&&O&&(x.current.style.position="");const{duration:U,easing:K}=fs({style:S,timeout:m,easing:c},{mode:"enter"});if(m==="auto"){const se=T.transitions.getAutoHeightDuration(re);V.style.transitionDuration=`${se}ms`,$.current=se}else V.style.transitionDuration=typeof U=="string"?U:`${U}ms`;V.style[D]=`${re}px`,V.style.transitionTimingFunction=K,p&&p(V,ee)}),H=N((V,ee)=>{V.style[D]="auto",f&&f(V,ee)}),z=N(V=>{V.style[D]=`${E()}px`,h&&h(V)}),j=N(y),F=N(V=>{const ee=E(),{duration:re,easing:U}=fs({style:S,timeout:m,easing:c},{mode:"exit"});if(m==="auto"){const K=T.transitions.getAutoHeightDuration(ee);V.style.transitionDuration=`${K}ms`,$.current=K}else V.style.transitionDuration=typeof re=="string"?re:`${re}ms`;V.style[D]=I,V.style.transitionTimingFunction=U,w&&w(V)}),W=V=>{m==="auto"&&P.start($.current||0,V),o&&o(M.current,V)};return g.jsx(C,{in:u,onEnter:L,onEntered:H,onEntering:B,onExit:z,onExited:j,onExiting:F,addEndListener:W,nodeRef:M,timeout:m==="auto"?null:m,..._,children:(V,ee)=>g.jsx(zM,{as:l,className:ve(k.root,a,{entered:k.entered,exited:!u&&I==="0px"&&k.hidden}[V]),style:{[O?"minWidth":"minHeight"]:I,...S},ref:A,...ee,ownerState:{...R,state:V},children:g.jsx(HM,{ownerState:{...R,state:V},className:k.wrapper,ref:x,children:g.jsx(VM,{ownerState:{...R,state:V},className:k.wrapperInner,children:i})})})})});ps&&(ps.muiSupportAuto=!0);function WM(e){return Oe("MuiPaper",e)}Ee("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);const UM=e=>{const{square:t,elevation:n,variant:r,classes:o}=e,i={root:["root",r,!t&&"rounded",r==="elevation"&&`elevation${n}`]};return Ne(i,WM,o)},GM=J("div",{name:"MuiPaper",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],!n.square&&t.rounded,n.variant==="elevation"&&t[`elevation${n.elevation}`]]}})($e(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,color:(e.vars||e).palette.text.primary,transition:e.transitions.create("box-shadow"),variants:[{props:({ownerState:t})=>!t.square,style:{borderRadius:e.shape.borderRadius}},{props:{variant:"outlined"},style:{border:`1px solid ${(e.vars||e).palette.divider}`}},{props:{variant:"elevation"},style:{boxShadow:"var(--Paper-shadow)",backgroundImage:"var(--Paper-overlay)"}}]}))),Is=b.forwardRef(function(t,n){var p;const r=De({props:t,name:"MuiPaper"}),o=zt(),{className:i,component:a="div",elevation:s=1,square:l=!1,variant:c="elevation",...u}=r,d={...r,component:a,elevation:s,square:l,variant:c},f=UM(d);return g.jsx(GM,{as:a,ownerState:d,className:ve(f.root,i),ref:n,...u,style:{...c==="elevation"&&{"--Paper-shadow":(o.vars||o).shadows[s],...o.vars&&{"--Paper-overlay":(p=o.vars.overlays)==null?void 0:p[s]},...!o.vars&&o.palette.mode==="dark"&&{"--Paper-overlay":`linear-gradient(${Be("#fff",pm(s))}, ${Be("#fff",pm(s))})`}},...u.style}})});function an(e,t){const{className:n,elementType:r,ownerState:o,externalForwardedProps:i,getSlotOwnerState:a,internalForwardedProps:s,...l}=t,{component:c,slots:u={[e]:void 0},slotProps:d={[e]:void 0},...f}=i,p=u[e]||r,h=g_(d[e],o),{props:{component:y,...w},internalRef:v}=p_({className:n,...l,externalForwardedProps:e==="root"?f:void 0,externalSlotProps:h}),S=Rt(v,h==null?void 0:h.ref,t.ref),m=a?a(w):{},C={...o,...m},_=e==="root"?y||c:y,R=Ha(p,{...e==="root"&&!c&&!u[e]&&s,...e!=="root"&&!u[e]&&s,...w,..._&&{as:_},ref:S},C);return Object.keys(m).forEach(k=>{delete R[k]}),[p,R]}class zd{constructor(){zs(this,"mountEffect",()=>{this.shouldMount&&!this.didMount&&this.ref.current!==null&&(this.didMount=!0,this.mounted.resolve())});this.ref={current:null},this.mounted=null,this.didMount=!1,this.shouldMount=!1,this.setShouldMount=null}static create(){return new zd}static use(){const t=c_(zd.create).current,[n,r]=b.useState(!1);return t.shouldMount=n,t.setShouldMount=r,b.useEffect(t.mountEffect,[n]),t}mount(){return this.mounted||(this.mounted=KM(),this.shouldMount=!0,this.setShouldMount(this.shouldMount)),this.mounted}start(...t){this.mount().then(()=>{var n;return(n=this.ref.current)==null?void 0:n.start(...t)})}stop(...t){this.mount().then(()=>{var n;return(n=this.ref.current)==null?void 0:n.stop(...t)})}pulsate(...t){this.mount().then(()=>{var n;return(n=this.ref.current)==null?void 0:n.pulsate(...t)})}}function qM(){return zd.use()}function KM(){let e,t;const n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n}function ZM(e){const{className:t,classes:n,pulsate:r=!1,rippleX:o,rippleY:i,rippleSize:a,in:s,onExited:l,timeout:c}=e,[u,d]=b.useState(!1),f=ve(t,n.ripple,n.rippleVisible,r&&n.ripplePulsate),p={width:a,height:a,top:-(a/2)+i,left:-(a/2)+o},h=ve(n.child,u&&n.childLeaving,r&&n.childPulsate);return!s&&!u&&d(!0),b.useEffect(()=>{if(!s&&l!=null){const y=setTimeout(l,c);return()=>{clearTimeout(y)}}},[l,s,c]),g.jsx("span",{className:f,style:p,children:g.jsx("span",{className:h})})}const cr=Ee("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),vm=550,QM=80,YM=s1` - 0% { - transform: scale(0); - opacity: 0.1; - } - - 100% { - transform: scale(1); - opacity: 0.3; - } -`,XM=s1` - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - } -`,JM=s1` - 0% { - transform: scale(1); - } - - 50% { - transform: scale(0.92); - } - - 100% { - transform: scale(1); - } -`,e8=J("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),t8=J(ZM,{name:"MuiTouchRipple",slot:"Ripple"})` - opacity: 0; - position: absolute; - - &.${cr.rippleVisible} { - opacity: 0.3; - transform: scale(1); - animation-name: ${YM}; - animation-duration: ${vm}ms; - animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; - } - - &.${cr.ripplePulsate} { - animation-duration: ${({theme:e})=>e.transitions.duration.shorter}ms; - } - - & .${cr.child} { - opacity: 1; - display: block; - width: 100%; - height: 100%; - border-radius: 50%; - background-color: currentColor; - } - - & .${cr.childLeaving} { - opacity: 0; - animation-name: ${XM}; - animation-duration: ${vm}ms; - animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; - } - - & .${cr.childPulsate} { - position: absolute; - /* @noflip */ - left: 0px; - top: 0; - animation-name: ${JM}; - animation-duration: 2500ms; - animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; - animation-iteration-count: infinite; - animation-delay: 200ms; - } -`,n8=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTouchRipple"}),{center:o=!1,classes:i={},className:a,...s}=r,[l,c]=b.useState([]),u=b.useRef(0),d=b.useRef(null);b.useEffect(()=>{d.current&&(d.current(),d.current=null)},[l]);const f=b.useRef(!1),p=Ni(),h=b.useRef(null),y=b.useRef(null),w=b.useCallback(C=>{const{pulsate:_,rippleX:R,rippleY:k,rippleSize:T,cb:P}=C;c(x=>[...x,g.jsx(t8,{classes:{ripple:ve(i.ripple,cr.ripple),rippleVisible:ve(i.rippleVisible,cr.rippleVisible),ripplePulsate:ve(i.ripplePulsate,cr.ripplePulsate),child:ve(i.child,cr.child),childLeaving:ve(i.childLeaving,cr.childLeaving),childPulsate:ve(i.childPulsate,cr.childPulsate)},timeout:vm,pulsate:_,rippleX:R,rippleY:k,rippleSize:T},u.current)]),u.current+=1,d.current=P},[i]),v=b.useCallback((C={},_={},R=()=>{})=>{const{pulsate:k=!1,center:T=o||_.pulsate,fakeElement:P=!1}=_;if((C==null?void 0:C.type)==="mousedown"&&f.current){f.current=!1;return}(C==null?void 0:C.type)==="touchstart"&&(f.current=!0);const x=P?null:y.current,$=x?x.getBoundingClientRect():{width:0,height:0,left:0,top:0};let I,O,D;if(T||C===void 0||C.clientX===0&&C.clientY===0||!C.clientX&&!C.touches)I=Math.round($.width/2),O=Math.round($.height/2);else{const{clientX:M,clientY:A}=C.touches&&C.touches.length>0?C.touches[0]:C;I=Math.round(M-$.left),O=Math.round(A-$.top)}if(T)D=Math.sqrt((2*$.width**2+$.height**2)/3),D%2===0&&(D+=1);else{const M=Math.max(Math.abs((x?x.clientWidth:0)-I),I)*2+2,A=Math.max(Math.abs((x?x.clientHeight:0)-O),O)*2+2;D=Math.sqrt(M**2+A**2)}C!=null&&C.touches?h.current===null&&(h.current=()=>{w({pulsate:k,rippleX:I,rippleY:O,rippleSize:D,cb:R})},p.start(QM,()=>{h.current&&(h.current(),h.current=null)})):w({pulsate:k,rippleX:I,rippleY:O,rippleSize:D,cb:R})},[o,w,p]),S=b.useCallback(()=>{v({},{pulsate:!0})},[v]),m=b.useCallback((C,_)=>{if(p.clear(),(C==null?void 0:C.type)==="touchend"&&h.current){h.current(),h.current=null,p.start(0,()=>{m(C,_)});return}h.current=null,c(R=>R.length>0?R.slice(1):R),d.current=_},[p]);return b.useImperativeHandle(n,()=>({pulsate:S,start:v,stop:m}),[S,v,m]),g.jsx(e8,{className:ve(cr.root,i.root,a),ref:y,...s,children:g.jsx(x1,{component:null,exit:!0,children:l})})});function r8(e){return Oe("MuiButtonBase",e)}const o8=Ee("MuiButtonBase",["root","disabled","focusVisible"]),i8=e=>{const{disabled:t,focusVisible:n,focusVisibleClassName:r,classes:o}=e,a=Ne({root:["root",t&&"disabled",n&&"focusVisible"]},r8,o);return n&&r&&(a.root+=` ${r}`),a},a8=J("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${o8.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),To=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiButtonBase"}),{action:o,centerRipple:i=!1,children:a,className:s,component:l="button",disabled:c=!1,disableRipple:u=!1,disableTouchRipple:d=!1,focusRipple:f=!1,focusVisibleClassName:p,LinkComponent:h="a",onBlur:y,onClick:w,onContextMenu:v,onDragLeave:S,onFocus:m,onFocusVisible:C,onKeyDown:_,onKeyUp:R,onMouseDown:k,onMouseLeave:T,onMouseUp:P,onTouchEnd:x,onTouchMove:$,onTouchStart:I,tabIndex:O=0,TouchRippleProps:D,touchRippleRef:M,type:A,...N}=r,E=b.useRef(null),L=qM(),B=Rt(L.ref,M),[H,z]=b.useState(!1);c&&H&&z(!1),b.useImperativeHandle(o,()=>({focusVisible:()=>{z(!0),E.current.focus()}}),[]);const j=L.shouldMount&&!u&&!c;b.useEffect(()=>{H&&f&&!u&&L.pulsate()},[u,f,H,L]);function F(le,Se,ye=d){return bn(Ge=>(Se&&Se(Ge),ye||L[le](Ge),!0))}const W=F("start",k),V=F("stop",v),ee=F("stop",S),re=F("stop",P),U=F("stop",le=>{H&&le.preventDefault(),T&&T(le)}),K=F("start",I),se=F("stop",x),q=F("stop",$),ce=F("stop",le=>{Fd(le.target)||z(!1),y&&y(le)},!1),ue=bn(le=>{E.current||(E.current=le.currentTarget),Fd(le.target)&&(z(!0),C&&C(le)),m&&m(le)}),ie=()=>{const le=E.current;return l&&l!=="button"&&!(le.tagName==="A"&&le.href)},te=bn(le=>{f&&!le.repeat&&H&&le.key===" "&&L.stop(le,()=>{L.start(le)}),le.target===le.currentTarget&&ie()&&le.key===" "&&le.preventDefault(),_&&_(le),le.target===le.currentTarget&&ie()&&le.key==="Enter"&&!c&&(le.preventDefault(),w&&w(le))}),de=bn(le=>{f&&le.key===" "&&H&&!le.defaultPrevented&&L.stop(le,()=>{L.pulsate(le)}),R&&R(le),w&&le.target===le.currentTarget&&ie()&&le.key===" "&&!le.defaultPrevented&&w(le)});let Q=l;Q==="button"&&(N.href||N.to)&&(Q=h);const be={};Q==="button"?(be.type=A===void 0?"button":A,be.disabled=c):(!N.href&&!N.to&&(be.role="button"),c&&(be["aria-disabled"]=c));const Te=Rt(n,E),we={...r,centerRipple:i,component:l,disabled:c,disableRipple:u,disableTouchRipple:d,focusRipple:f,tabIndex:O,focusVisible:H},ge=i8(we);return g.jsxs(a8,{as:Q,className:ve(ge.root,s),ownerState:we,onBlur:ce,onClick:w,onContextMenu:V,onFocus:ue,onKeyDown:te,onKeyUp:de,onMouseDown:W,onMouseLeave:U,onMouseUp:re,onDragLeave:ee,onTouchEnd:se,onTouchMove:q,onTouchStart:K,ref:Te,tabIndex:c?-1:O,type:A,...be,...N,children:[a,j?g.jsx(n8,{ref:B,center:i,...D}):null]})});function s8(e){return typeof e.main=="string"}function l8(e,t=[]){if(!s8(e))return!1;for(const n of t)if(!e.hasOwnProperty(n)||typeof e[n]!="string")return!1;return!0}function Ft(e=[]){return([,t])=>t&&l8(t,e)}function c8(e){return Oe("MuiAlert",e)}const gb=Ee("MuiAlert",["root","action","icon","message","filled","colorSuccess","colorInfo","colorWarning","colorError","filledSuccess","filledInfo","filledWarning","filledError","outlined","outlinedSuccess","outlinedInfo","outlinedWarning","outlinedError","standard","standardSuccess","standardInfo","standardWarning","standardError"]);function u8(e){return Oe("MuiIconButton",e)}const d8=Ee("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge"]),f8=e=>{const{classes:t,disabled:n,color:r,edge:o,size:i}=e,a={root:["root",n&&"disabled",r!=="default"&&`color${ae(r)}`,o&&`edge${ae(o)}`,`size${ae(i)}`]};return Ne(a,u8,t)},p8=J(To,{name:"MuiIconButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="default"&&t[`color${ae(n.color)}`],n.edge&&t[`edge${ae(n.edge)}`],t[`size${ae(n.size)}`]]}})($e(({theme:e})=>({textAlign:"center",flex:"0 0 auto",fontSize:e.typography.pxToRem(24),padding:8,borderRadius:"50%",color:(e.vars||e).palette.action.active,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),variants:[{props:t=>!t.disableRipple,style:{"--IconButton-hoverBg":e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity),"&:hover":{backgroundColor:"var(--IconButton-hoverBg)","@media (hover: none)":{backgroundColor:"transparent"}}}},{props:{edge:"start"},style:{marginLeft:-12}},{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:{edge:"end"},style:{marginRight:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}}]})),$e(({theme:e})=>({variants:[{props:{color:"inherit"},style:{color:"inherit"}},...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t},style:{"--IconButton-hoverBg":e.vars?`rgba(${(e.vars||e).palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be((e.vars||e).palette[t].main,e.palette.action.hoverOpacity)}})),{props:{size:"small"},style:{padding:5,fontSize:e.typography.pxToRem(18)}},{props:{size:"large"},style:{padding:12,fontSize:e.typography.pxToRem(28)}}],[`&.${d8.disabled}`]:{backgroundColor:"transparent",color:(e.vars||e).palette.action.disabled}}))),hr=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiIconButton"}),{edge:o=!1,children:i,className:a,color:s="default",disabled:l=!1,disableFocusRipple:c=!1,size:u="medium",...d}=r,f={...r,edge:o,color:s,disabled:l,disableFocusRipple:c,size:u},p=f8(f);return g.jsx(p8,{className:ve(p.root,a),centerRipple:!0,focusRipple:!c,disabled:l,ref:n,...d,ownerState:f,children:i})}),g8=un(g.jsx("path",{d:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"}),"SuccessOutlined"),h8=un(g.jsx("path",{d:"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined"),m8=un(g.jsx("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"ErrorOutline"),v8=un(g.jsx("path",{d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"}),"InfoOutlined"),v_=un(g.jsx("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),y8=e=>{const{variant:t,color:n,severity:r,classes:o}=e,i={root:["root",`color${ae(n||r)}`,`${t}${ae(n||r)}`,`${t}`],icon:["icon"],message:["message"],action:["action"]};return Ne(i,c8,o)},b8=J(Is,{name:"MuiAlert",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`${n.variant}${ae(n.color||n.severity)}`]]}})($e(({theme:e})=>{const t=e.palette.mode==="light"?ea:ta,n=e.palette.mode==="light"?ta:ea;return{...e.typography.body2,backgroundColor:"transparent",display:"flex",padding:"6px 16px",variants:[...Object.entries(e.palette).filter(Ft(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"standard"},style:{color:e.vars?e.vars.palette.Alert[`${r}Color`]:t(e.palette[r].light,.6),backgroundColor:e.vars?e.vars.palette.Alert[`${r}StandardBg`]:n(e.palette[r].light,.9),[`& .${gb.icon}`]:e.vars?{color:e.vars.palette.Alert[`${r}IconColor`]}:{color:e.palette[r].main}}})),...Object.entries(e.palette).filter(Ft(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"outlined"},style:{color:e.vars?e.vars.palette.Alert[`${r}Color`]:t(e.palette[r].light,.6),border:`1px solid ${(e.vars||e).palette[r].light}`,[`& .${gb.icon}`]:e.vars?{color:e.vars.palette.Alert[`${r}IconColor`]}:{color:e.palette[r].main}}})),...Object.entries(e.palette).filter(Ft(["dark"])).map(([r])=>({props:{colorSeverity:r,variant:"filled"},style:{fontWeight:e.typography.fontWeightMedium,...e.vars?{color:e.vars.palette.Alert[`${r}FilledColor`],backgroundColor:e.vars.palette.Alert[`${r}FilledBg`]}:{backgroundColor:e.palette.mode==="dark"?e.palette[r].dark:e.palette[r].main,color:e.palette.getContrastText(e.palette[r].main)}}}))]}})),x8=J("div",{name:"MuiAlert",slot:"Icon",overridesResolver:(e,t)=>t.icon})({marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9}),S8=J("div",{name:"MuiAlert",slot:"Message",overridesResolver:(e,t)=>t.message})({padding:"8px 0",minWidth:0,overflow:"auto"}),hb=J("div",{name:"MuiAlert",slot:"Action",overridesResolver:(e,t)=>t.action})({display:"flex",alignItems:"flex-start",padding:"4px 0 0 16px",marginLeft:"auto",marginRight:-8}),mb={success:g.jsx(g8,{fontSize:"inherit"}),warning:g.jsx(h8,{fontSize:"inherit"}),error:g.jsx(m8,{fontSize:"inherit"}),info:g.jsx(v8,{fontSize:"inherit"})},y_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiAlert"}),{action:o,children:i,className:a,closeText:s="Close",color:l,components:c={},componentsProps:u={},icon:d,iconMapping:f=mb,onClose:p,role:h="alert",severity:y="success",slotProps:w={},slots:v={},variant:S="standard",...m}=r,C={...r,color:l,severity:y,variant:S,colorSeverity:l||y},_=y8(C),R={slots:{closeButton:c.CloseButton,closeIcon:c.CloseIcon,...v},slotProps:{...u,...w}},[k,T]=an("closeButton",{elementType:hr,externalForwardedProps:R,ownerState:C}),[P,x]=an("closeIcon",{elementType:v_,externalForwardedProps:R,ownerState:C});return g.jsxs(b8,{role:h,elevation:0,ownerState:C,className:ve(_.root,a),ref:n,...m,children:[d!==!1?g.jsx(x8,{ownerState:C,className:_.icon,children:d||f[y]||mb[y]}):null,g.jsx(S8,{ownerState:C,className:_.message,children:i}),o!=null?g.jsx(hb,{ownerState:C,className:_.action,children:o}):null,o==null&&p?g.jsx(hb,{ownerState:C,className:_.action,children:g.jsx(k,{size:"small","aria-label":s,title:s,color:"inherit",onClick:p,...T,children:g.jsx(P,{fontSize:"small",...x})})}):null]})});function w8(e){return Oe("MuiTypography",e)}Ee("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const C8={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},_8=kM(),R8=e=>{const{align:t,gutterBottom:n,noWrap:r,paragraph:o,variant:i,classes:a}=e,s={root:["root",i,e.align!=="inherit"&&`align${ae(t)}`,n&&"gutterBottom",r&&"noWrap",o&&"paragraph"]};return Ne(s,w8,a)},T8=J("span",{name:"MuiTypography",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],n.align!=="inherit"&&t[`align${ae(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom,n.paragraph&&t.paragraph]}})($e(({theme:e})=>{var t;return{margin:0,variants:[{props:{variant:"inherit"},style:{font:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}},...Object.entries(e.typography).filter(([n,r])=>n!=="inherit"&&r&&typeof r=="object").map(([n,r])=>({props:{variant:n},style:r})),...Object.entries(e.palette).filter(Ft()).map(([n])=>({props:{color:n},style:{color:(e.vars||e).palette[n].main}})),...Object.entries(((t=e.palette)==null?void 0:t.text)||{}).filter(([,n])=>typeof n=="string").map(([n])=>({props:{color:`text${ae(n)}`},style:{color:(e.vars||e).palette.text[n]}})),{props:({ownerState:n})=>n.align!=="inherit",style:{textAlign:"var(--Typography-textAlign)"}},{props:({ownerState:n})=>n.noWrap,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},{props:({ownerState:n})=>n.gutterBottom,style:{marginBottom:"0.35em"}},{props:({ownerState:n})=>n.paragraph,style:{marginBottom:16}}]}})),vb={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},mt=b.forwardRef(function(t,n){const{color:r,...o}=De({props:t,name:"MuiTypography"}),i=!C8[r],a=_8({...o,...i&&{color:r}}),{align:s="inherit",className:l,component:c,gutterBottom:u=!1,noWrap:d=!1,paragraph:f=!1,variant:p="body1",variantMapping:h=vb,...y}=a,w={...a,align:s,color:r,className:l,component:c,gutterBottom:u,noWrap:d,paragraph:f,variant:p,variantMapping:h},v=c||(f?"p":h[p]||vb[p])||"span",S=R8(w);return g.jsx(T8,{as:v,ref:n,className:ve(S.root,l),...y,ownerState:w,style:{...s!=="inherit"&&{"--Typography-textAlign":s},...y.style}})});function yb(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function P8(e={}){const{ignoreAccents:t=!0,ignoreCase:n=!0,limit:r,matchFrom:o="any",stringify:i,trim:a=!1}=e;return(s,{inputValue:l,getOptionLabel:c})=>{let u=a?l.trim():l;n&&(u=u.toLowerCase()),t&&(u=yb(u));const d=u?s.filter(f=>{let p=(i||c)(f);return n&&(p=p.toLowerCase()),t&&(p=yb(p)),o==="start"?p.startsWith(u):p.includes(u)}):s;return typeof r=="number"?d.slice(0,r):d}}const k8=P8(),bb=5,$8=e=>{var t;return e.current!==null&&((t=e.current.parentElement)==null?void 0:t.contains(document.activeElement))},E8=[];function M8(e){const{unstable_isActiveElementInListbox:t=$8,unstable_classNamePrefix:n="Mui",autoComplete:r=!1,autoHighlight:o=!1,autoSelect:i=!1,blurOnSelect:a=!1,clearOnBlur:s=!e.freeSolo,clearOnEscape:l=!1,componentName:c="useAutocomplete",defaultValue:u=e.multiple?E8:null,disableClearable:d=!1,disableCloseOnSelect:f=!1,disabled:p,disabledItemsFocusable:h=!1,disableListWrap:y=!1,filterOptions:w=k8,filterSelectedOptions:v=!1,freeSolo:S=!1,getOptionDisabled:m,getOptionKey:C,getOptionLabel:_=X=>X.label??X,groupBy:R,handleHomeEndKeys:k=!e.freeSolo,id:T,includeInputInList:P=!1,inputValue:x,isOptionEqualToValue:$=(X,Y)=>X===Y,multiple:I=!1,onChange:O,onClose:D,onHighlightChange:M,onInputChange:A,onOpen:N,open:E,openOnFocus:L=!1,options:B,readOnly:H=!1,selectOnFocus:z=!e.freeSolo,value:j}=e,F=ds(T);let W=_;W=X=>{const Y=_(X);return typeof Y!="string"?String(Y):Y};const V=b.useRef(!1),ee=b.useRef(!0),re=b.useRef(null),U=b.useRef(null),[K,se]=b.useState(null),[q,ce]=b.useState(-1),ue=o?0:-1,ie=b.useRef(ue),[te,de]=Hi({controlled:j,default:u,name:c}),[Q,be]=Hi({controlled:x,default:"",name:c,state:"inputValue"}),[Te,we]=b.useState(!1),ge=b.useCallback((X,Y,Ce)=>{if(!(I?te.length!(v&&(I?te:[te]).some(Y=>Y!==null&&$(X,Y)))),{inputValue:Pe&&ye?"":Q,getOptionLabel:W}):[],pe=_M({filteredOptions:ke,value:te,inputValue:Q});b.useEffect(()=>{const X=te!==pe.value;Te&&!X||S&&!X||ge(null,te,"reset")},[te,ge,Te,pe.value,S]);const ne=le&&ke.length>0&&!H,xe=bn(X=>{X===-1?re.current.focus():K.querySelector(`[data-tag-index="${X}"]`).focus()});b.useEffect(()=>{I&&q>te.length-1&&(ce(-1),xe(-1))},[te,I,q,xe]);function Le(X,Y){if(!U.current||X<0||X>=ke.length)return-1;let Ce=X;for(;;){const We=U.current.querySelector(`[data-option-index="${Ce}"]`),qe=h?!1:!We||We.disabled||We.getAttribute("aria-disabled")==="true";if(We&&We.hasAttribute("tabindex")&&!qe)return Ce;if(Y==="next"?Ce=(Ce+1)%ke.length:Ce=(Ce-1+ke.length)%ke.length,Ce===X)return-1}}const fe=bn(({event:X,index:Y,reason:Ce="auto"})=>{if(ie.current=Y,Y===-1?re.current.removeAttribute("aria-activedescendant"):re.current.setAttribute("aria-activedescendant",`${F}-option-${Y}`),M&&M(X,Y===-1?null:ke[Y],Ce),!U.current)return;const We=U.current.querySelector(`[role="option"].${n}-focused`);We&&(We.classList.remove(`${n}-focused`),We.classList.remove(`${n}-focusVisible`));let qe=U.current;if(U.current.getAttribute("role")!=="listbox"&&(qe=U.current.parentElement.querySelector('[role="listbox"]')),!qe)return;if(Y===-1){qe.scrollTop=0;return}const Pt=U.current.querySelector(`[data-option-index="${Y}"]`);if(Pt&&(Pt.classList.add(`${n}-focused`),Ce==="keyboard"&&Pt.classList.add(`${n}-focusVisible`),qe.scrollHeight>qe.clientHeight&&Ce!=="mouse"&&Ce!=="touch")){const at=Pt,_r=qe.clientHeight+qe.scrollTop,Fc=at.offsetTop+at.offsetHeight;Fc>_r?qe.scrollTop=Fc-qe.clientHeight:at.offsetTop-at.offsetHeight*(R?1.3:0){if(!Re)return;const Pt=Le((()=>{const at=ke.length-1;if(Y==="reset")return ue;if(Y==="start")return 0;if(Y==="end")return at;const _r=ie.current+Y;return _r<0?_r===-1&&P?-1:y&&ie.current!==-1||Math.abs(Y)>1?0:at:_r>at?_r===at+1&&P?-1:y||Math.abs(Y)>1?at:0:_r})(),Ce);if(fe({index:Pt,reason:We,event:X}),r&&Y!=="reset")if(Pt===-1)re.current.value=Q;else{const at=W(ke[Pt]);re.current.value=at,at.toLowerCase().indexOf(Q.toLowerCase())===0&&Q.length>0&&re.current.setSelectionRange(Q.length,at.length)}}),me=()=>{const X=(Y,Ce)=>{const We=Y?W(Y):"",qe=Ce?W(Ce):"";return We===qe};if(ie.current!==-1&&pe.filteredOptions&&pe.filteredOptions.length!==ke.length&&pe.inputValue===Q&&(I?te.length===pe.value.length&&pe.value.every((Y,Ce)=>W(te[Ce])===W(Y)):X(pe.value,te))){const Y=pe.filteredOptions[ie.current];if(Y)return ke.findIndex(Ce=>W(Ce)===W(Y))}return-1},je=b.useCallback(()=>{if(!Re)return;const X=me();if(X!==-1){ie.current=X;return}const Y=I?te[0]:te;if(ke.length===0||Y==null){oe({diff:"reset"});return}if(U.current){if(Y!=null){const Ce=ke[ie.current];if(I&&Ce&&te.findIndex(qe=>$(Ce,qe))!==-1)return;const We=ke.findIndex(qe=>$(qe,Y));We===-1?oe({diff:"reset"}):fe({index:We});return}if(ie.current>=ke.length-1){fe({index:ke.length-1});return}fe({index:ie.current})}},[ke.length,I?!1:te,v,oe,fe,Re,Q,I]),Ve=bn(X=>{jd(U,X),X&&je()});b.useEffect(()=>{je()},[je]);const Ye=X=>{le||(Se(!0),Ge(!0),N&&N(X))},Tt=(X,Y)=>{le&&(Se(!1),D&&D(X,Y))},Zt=(X,Y,Ce,We)=>{if(I){if(te.length===Y.length&&te.every((qe,Pt)=>qe===Y[Pt]))return}else if(te===Y)return;O&&O(X,Y,Ce,We),de(Y)},Mn=b.useRef(!1),ir=(X,Y,Ce="selectOption",We="options")=>{let qe=Ce,Pt=Y;if(I){Pt=Array.isArray(te)?te.slice():[];const at=Pt.findIndex(_r=>$(Y,_r));at===-1?Pt.push(Y):We!=="freeSolo"&&(Pt.splice(at,1),qe="removeOption")}ge(X,Pt,qe),Zt(X,Pt,qe,{option:Y}),!f&&(!X||!X.ctrlKey&&!X.metaKey)&&Tt(X,qe),(a===!0||a==="touch"&&Mn.current||a==="mouse"&&!Mn.current)&&re.current.blur()};function Vn(X,Y){if(X===-1)return-1;let Ce=X;for(;;){if(Y==="next"&&Ce===te.length||Y==="previous"&&Ce===-1)return-1;const We=K.querySelector(`[data-tag-index="${Ce}"]`);if(!We||!We.hasAttribute("tabindex")||We.disabled||We.getAttribute("aria-disabled")==="true")Ce+=Y==="next"?1:-1;else return Ce}}const Oo=(X,Y)=>{if(!I)return;Q===""&&Tt(X,"toggleInput");let Ce=q;q===-1?Q===""&&Y==="previous"&&(Ce=te.length-1):(Ce+=Y==="next"?1:-1,Ce<0&&(Ce=0),Ce===te.length&&(Ce=-1)),Ce=Vn(Ce,Y),ce(Ce),xe(Ce)},_i=X=>{V.current=!0,be(""),A&&A(X,"","clear"),Zt(X,I?[]:null,"clear")},Fe=X=>Y=>{if(X.onKeyDown&&X.onKeyDown(Y),!Y.defaultMuiPrevented&&(q!==-1&&!["ArrowLeft","ArrowRight"].includes(Y.key)&&(ce(-1),xe(-1)),Y.which!==229))switch(Y.key){case"Home":Re&&k&&(Y.preventDefault(),oe({diff:"start",direction:"next",reason:"keyboard",event:Y}));break;case"End":Re&&k&&(Y.preventDefault(),oe({diff:"end",direction:"previous",reason:"keyboard",event:Y}));break;case"PageUp":Y.preventDefault(),oe({diff:-bb,direction:"previous",reason:"keyboard",event:Y}),Ye(Y);break;case"PageDown":Y.preventDefault(),oe({diff:bb,direction:"next",reason:"keyboard",event:Y}),Ye(Y);break;case"ArrowDown":Y.preventDefault(),oe({diff:1,direction:"next",reason:"keyboard",event:Y}),Ye(Y);break;case"ArrowUp":Y.preventDefault(),oe({diff:-1,direction:"previous",reason:"keyboard",event:Y}),Ye(Y);break;case"ArrowLeft":Oo(Y,"previous");break;case"ArrowRight":Oo(Y,"next");break;case"Enter":if(ie.current!==-1&&Re){const Ce=ke[ie.current],We=m?m(Ce):!1;if(Y.preventDefault(),We)return;ir(Y,Ce,"selectOption"),r&&re.current.setSelectionRange(re.current.value.length,re.current.value.length)}else S&&Q!==""&&Pe===!1&&(I&&Y.preventDefault(),ir(Y,Q,"createOption","freeSolo"));break;case"Escape":Re?(Y.preventDefault(),Y.stopPropagation(),Tt(Y,"escape")):l&&(Q!==""||I&&te.length>0)&&(Y.preventDefault(),Y.stopPropagation(),_i(Y));break;case"Backspace":if(I&&!H&&Q===""&&te.length>0){const Ce=q===-1?te.length-1:q,We=te.slice();We.splice(Ce,1),Zt(Y,We,"removeOption",{option:te[Ce]})}break;case"Delete":if(I&&!H&&Q===""&&te.length>0&&q!==-1){const Ce=q,We=te.slice();We.splice(Ce,1),Zt(Y,We,"removeOption",{option:te[Ce]})}break}},_n=X=>{we(!0),L&&!V.current&&Ye(X)},Dc=X=>{if(t(U)){re.current.focus();return}we(!1),ee.current=!0,V.current=!1,i&&ie.current!==-1&&Re?ir(X,ke[ie.current],"blur"):i&&S&&Q!==""?ir(X,Q,"blur","freeSolo"):s&&ge(X,te,"blur"),Tt(X,"blur")},pa=X=>{const Y=X.target.value;Q!==Y&&(be(Y),Ge(!1),A&&A(X,Y,"input")),Y===""?!d&&!I&&Zt(X,null,"clear"):Ye(X)},Ds=X=>{const Y=Number(X.currentTarget.getAttribute("data-option-index"));ie.current!==Y&&fe({event:X,index:Y,reason:"mouse"})},js=X=>{fe({event:X,index:Number(X.currentTarget.getAttribute("data-option-index")),reason:"touch"}),Mn.current=!0},$p=X=>{const Y=Number(X.currentTarget.getAttribute("data-option-index"));ir(X,ke[Y],"selectOption"),Mn.current=!1},Ep=X=>Y=>{const Ce=te.slice();Ce.splice(X,1),Zt(Y,Ce,"removeOption",{option:te[X]})},jc=X=>{le?Tt(X,"toggleInput"):Ye(X)},uv=X=>{X.currentTarget.contains(X.target)&&X.target.getAttribute("id")!==F&&X.preventDefault()},Fs=X=>{X.currentTarget.contains(X.target)&&(re.current.focus(),z&&ee.current&&re.current.selectionEnd-re.current.selectionStart===0&&re.current.select(),ee.current=!1)},dn=X=>{!p&&(Q===""||!le)&&jc(X)};let Nt=S&&Q.length>0;Nt=Nt||(I?te.length>0:te!==null);let lo=ke;return R&&(lo=ke.reduce((X,Y,Ce)=>{const We=R(Y);return X.length>0&&X[X.length-1].group===We?X[X.length-1].options.push(Y):X.push({key:Ce,index:Ce,group:We,options:[Y]}),X},[])),p&&Te&&Dc(),{getRootProps:(X={})=>({"aria-owns":ne?`${F}-listbox`:null,...X,onKeyDown:Fe(X),onMouseDown:uv,onClick:Fs}),getInputLabelProps:()=>({id:`${F}-label`,htmlFor:F}),getInputProps:()=>({id:F,value:Q,onBlur:Dc,onFocus:_n,onChange:pa,onMouseDown:dn,"aria-activedescendant":Re?"":null,"aria-autocomplete":r?"both":"list","aria-controls":ne?`${F}-listbox`:void 0,"aria-expanded":ne,autoComplete:"off",ref:re,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:p}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:_i}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:jc}),getTagProps:({index:X})=>({key:X,"data-tag-index":X,tabIndex:-1,...!H&&{onDelete:Ep(X)}}),getListboxProps:()=>({role:"listbox",id:`${F}-listbox`,"aria-labelledby":`${F}-label`,ref:Ve,onMouseDown:X=>{X.preventDefault()}}),getOptionProps:({index:X,option:Y})=>{const Ce=(I?te:[te]).some(qe=>qe!=null&&$(Y,qe)),We=m?m(Y):!1;return{key:(C==null?void 0:C(Y))??W(Y),tabIndex:-1,role:"option",id:`${F}-option-${X}`,onMouseMove:Ds,onClick:$p,onTouchStart:js,"data-option-index":X,"aria-disabled":We,"aria-selected":Ce}},id:F,inputValue:Q,value:te,dirty:Nt,expanded:Re&&K,popupOpen:Re,focused:Te||q!==-1,anchorEl:K,setAnchorEl:se,focusedTag:q,groupedOptions:lo}}var jn="top",xr="bottom",Sr="right",Fn="left",S1="auto",Tc=[jn,xr,Sr,Fn],gs="start",lc="end",I8="clippingParents",b_="viewport",Xs="popper",O8="reference",xb=Tc.reduce(function(e,t){return e.concat([t+"-"+gs,t+"-"+lc])},[]),x_=[].concat(Tc,[S1]).reduce(function(e,t){return e.concat([t,t+"-"+gs,t+"-"+lc])},[]),L8="beforeRead",A8="read",N8="afterRead",D8="beforeMain",j8="main",F8="afterMain",B8="beforeWrite",z8="write",H8="afterWrite",V8=[L8,A8,N8,D8,j8,F8,B8,z8,H8];function so(e){return e?(e.nodeName||"").toLowerCase():null}function er(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function oa(e){var t=er(e).Element;return e instanceof t||e instanceof Element}function vr(e){var t=er(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function w1(e){if(typeof ShadowRoot>"u")return!1;var t=er(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function W8(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},o=t.attributes[n]||{},i=t.elements[n];!vr(i)||!so(i)||(Object.assign(i.style,r),Object.keys(o).forEach(function(a){var s=o[a];s===!1?i.removeAttribute(a):i.setAttribute(a,s===!0?"":s)}))})}function U8(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var o=t.elements[r],i=t.attributes[r]||{},a=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),s=a.reduce(function(l,c){return l[c]="",l},{});!vr(o)||!so(o)||(Object.assign(o.style,s),Object.keys(i).forEach(function(l){o.removeAttribute(l)}))})}}const G8={name:"applyStyles",enabled:!0,phase:"write",fn:W8,effect:U8,requires:["computeStyles"]};function ao(e){return e.split("-")[0]}var Vi=Math.max,Hd=Math.min,hs=Math.round;function ym(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function S_(){return!/^((?!chrome|android).)*safari/i.test(ym())}function ms(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),o=1,i=1;t&&vr(e)&&(o=e.offsetWidth>0&&hs(r.width)/e.offsetWidth||1,i=e.offsetHeight>0&&hs(r.height)/e.offsetHeight||1);var a=oa(e)?er(e):window,s=a.visualViewport,l=!S_()&&n,c=(r.left+(l&&s?s.offsetLeft:0))/o,u=(r.top+(l&&s?s.offsetTop:0))/i,d=r.width/o,f=r.height/i;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c,x:c,y:u}}function C1(e){var t=ms(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function w_(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&w1(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Po(e){return er(e).getComputedStyle(e)}function q8(e){return["table","td","th"].indexOf(so(e))>=0}function xi(e){return((oa(e)?e.ownerDocument:e.document)||window.document).documentElement}function dp(e){return so(e)==="html"?e:e.assignedSlot||e.parentNode||(w1(e)?e.host:null)||xi(e)}function Sb(e){return!vr(e)||Po(e).position==="fixed"?null:e.offsetParent}function K8(e){var t=/firefox/i.test(ym()),n=/Trident/i.test(ym());if(n&&vr(e)){var r=Po(e);if(r.position==="fixed")return null}var o=dp(e);for(w1(o)&&(o=o.host);vr(o)&&["html","body"].indexOf(so(o))<0;){var i=Po(o);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||t&&i.willChange==="filter"||t&&i.filter&&i.filter!=="none")return o;o=o.parentNode}return null}function Pc(e){for(var t=er(e),n=Sb(e);n&&q8(n)&&Po(n).position==="static";)n=Sb(n);return n&&(so(n)==="html"||so(n)==="body"&&Po(n).position==="static")?t:n||K8(e)||t}function _1(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function $l(e,t,n){return Vi(e,Hd(t,n))}function Z8(e,t,n){var r=$l(e,t,n);return r>n?n:r}function C_(){return{top:0,right:0,bottom:0,left:0}}function __(e){return Object.assign({},C_(),e)}function R_(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var Q8=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,__(typeof t!="number"?t:R_(t,Tc))};function Y8(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=ao(n.placement),l=_1(s),c=[Fn,Sr].indexOf(s)>=0,u=c?"height":"width";if(!(!i||!a)){var d=Q8(o.padding,n),f=C1(i),p=l==="y"?jn:Fn,h=l==="y"?xr:Sr,y=n.rects.reference[u]+n.rects.reference[l]-a[l]-n.rects.popper[u],w=a[l]-n.rects.reference[l],v=Pc(i),S=v?l==="y"?v.clientHeight||0:v.clientWidth||0:0,m=y/2-w/2,C=d[p],_=S-f[u]-d[h],R=S/2-f[u]/2+m,k=$l(C,R,_),T=l;n.modifiersData[r]=(t={},t[T]=k,t.centerOffset=k-R,t)}}function X8(e){var t=e.state,n=e.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=t.elements.popper.querySelector(o),!o)||w_(t.elements.popper,o)&&(t.elements.arrow=o))}const J8={name:"arrow",enabled:!0,phase:"main",fn:Y8,effect:X8,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function vs(e){return e.split("-")[1]}var e6={top:"auto",right:"auto",bottom:"auto",left:"auto"};function t6(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:hs(n*o)/o||0,y:hs(r*o)/o||0}}function wb(e){var t,n=e.popper,r=e.popperRect,o=e.placement,i=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=a.x,p=f===void 0?0:f,h=a.y,y=h===void 0?0:h,w=typeof u=="function"?u({x:p,y}):{x:p,y};p=w.x,y=w.y;var v=a.hasOwnProperty("x"),S=a.hasOwnProperty("y"),m=Fn,C=jn,_=window;if(c){var R=Pc(n),k="clientHeight",T="clientWidth";if(R===er(n)&&(R=xi(n),Po(R).position!=="static"&&s==="absolute"&&(k="scrollHeight",T="scrollWidth")),R=R,o===jn||(o===Fn||o===Sr)&&i===lc){C=xr;var P=d&&R===_&&_.visualViewport?_.visualViewport.height:R[k];y-=P-r.height,y*=l?1:-1}if(o===Fn||(o===jn||o===xr)&&i===lc){m=Sr;var x=d&&R===_&&_.visualViewport?_.visualViewport.width:R[T];p-=x-r.width,p*=l?1:-1}}var $=Object.assign({position:s},c&&e6),I=u===!0?t6({x:p,y},er(n)):{x:p,y};if(p=I.x,y=I.y,l){var O;return Object.assign({},$,(O={},O[C]=S?"0":"",O[m]=v?"0":"",O.transform=(_.devicePixelRatio||1)<=1?"translate("+p+"px, "+y+"px)":"translate3d("+p+"px, "+y+"px, 0)",O))}return Object.assign({},$,(t={},t[C]=S?y+"px":"",t[m]=v?p+"px":"",t.transform="",t))}function n6(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=r===void 0?!0:r,i=n.adaptive,a=i===void 0?!0:i,s=n.roundOffsets,l=s===void 0?!0:s,c={placement:ao(t.placement),variation:vs(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,wb(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,wb(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const r6={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:n6,data:{}};var du={passive:!0};function o6(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,i=o===void 0?!0:o,a=r.resize,s=a===void 0?!0:a,l=er(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&c.forEach(function(u){u.addEventListener("scroll",n.update,du)}),s&&l.addEventListener("resize",n.update,du),function(){i&&c.forEach(function(u){u.removeEventListener("scroll",n.update,du)}),s&&l.removeEventListener("resize",n.update,du)}}const i6={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:o6,data:{}};var a6={left:"right",right:"left",bottom:"top",top:"bottom"};function qu(e){return e.replace(/left|right|bottom|top/g,function(t){return a6[t]})}var s6={start:"end",end:"start"};function Cb(e){return e.replace(/start|end/g,function(t){return s6[t]})}function R1(e){var t=er(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function T1(e){return ms(xi(e)).left+R1(e).scrollLeft}function l6(e,t){var n=er(e),r=xi(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,l=0;if(o){i=o.width,a=o.height;var c=S_();(c||!c&&t==="fixed")&&(s=o.offsetLeft,l=o.offsetTop)}return{width:i,height:a,x:s+T1(e),y:l}}function c6(e){var t,n=xi(e),r=R1(e),o=(t=e.ownerDocument)==null?void 0:t.body,i=Vi(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=Vi(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-r.scrollLeft+T1(e),l=-r.scrollTop;return Po(o||n).direction==="rtl"&&(s+=Vi(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:a,x:s,y:l}}function P1(e){var t=Po(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function T_(e){return["html","body","#document"].indexOf(so(e))>=0?e.ownerDocument.body:vr(e)&&P1(e)?e:T_(dp(e))}function El(e,t){var n;t===void 0&&(t=[]);var r=T_(e),o=r===((n=e.ownerDocument)==null?void 0:n.body),i=er(r),a=o?[i].concat(i.visualViewport||[],P1(r)?r:[]):r,s=t.concat(a);return o?s:s.concat(El(dp(a)))}function bm(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function u6(e,t){var n=ms(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function _b(e,t,n){return t===b_?bm(l6(e,n)):oa(t)?u6(t,n):bm(c6(xi(e)))}function d6(e){var t=El(dp(e)),n=["absolute","fixed"].indexOf(Po(e).position)>=0,r=n&&vr(e)?Pc(e):e;return oa(r)?t.filter(function(o){return oa(o)&&w_(o,r)&&so(o)!=="body"}):[]}function f6(e,t,n,r){var o=t==="clippingParents"?d6(e):[].concat(t),i=[].concat(o,[n]),a=i[0],s=i.reduce(function(l,c){var u=_b(e,c,r);return l.top=Vi(u.top,l.top),l.right=Hd(u.right,l.right),l.bottom=Hd(u.bottom,l.bottom),l.left=Vi(u.left,l.left),l},_b(e,a,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function P_(e){var t=e.reference,n=e.element,r=e.placement,o=r?ao(r):null,i=r?vs(r):null,a=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,l;switch(o){case jn:l={x:a,y:t.y-n.height};break;case xr:l={x:a,y:t.y+t.height};break;case Sr:l={x:t.x+t.width,y:s};break;case Fn:l={x:t.x-n.width,y:s};break;default:l={x:t.x,y:t.y}}var c=o?_1(o):null;if(c!=null){var u=c==="y"?"height":"width";switch(i){case gs:l[c]=l[c]-(t[u]/2-n[u]/2);break;case lc:l[c]=l[c]+(t[u]/2-n[u]/2);break}}return l}function cc(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=r===void 0?e.placement:r,i=n.strategy,a=i===void 0?e.strategy:i,s=n.boundary,l=s===void 0?I8:s,c=n.rootBoundary,u=c===void 0?b_:c,d=n.elementContext,f=d===void 0?Xs:d,p=n.altBoundary,h=p===void 0?!1:p,y=n.padding,w=y===void 0?0:y,v=__(typeof w!="number"?w:R_(w,Tc)),S=f===Xs?O8:Xs,m=e.rects.popper,C=e.elements[h?S:f],_=f6(oa(C)?C:C.contextElement||xi(e.elements.popper),l,u,a),R=ms(e.elements.reference),k=P_({reference:R,element:m,strategy:"absolute",placement:o}),T=bm(Object.assign({},m,k)),P=f===Xs?T:R,x={top:_.top-P.top+v.top,bottom:P.bottom-_.bottom+v.bottom,left:_.left-P.left+v.left,right:P.right-_.right+v.right},$=e.modifiersData.offset;if(f===Xs&&$){var I=$[o];Object.keys(x).forEach(function(O){var D=[Sr,xr].indexOf(O)>=0?1:-1,M=[jn,xr].indexOf(O)>=0?"y":"x";x[O]+=I[M]*D})}return x}function p6(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,c=l===void 0?x_:l,u=vs(r),d=u?s?xb:xb.filter(function(h){return vs(h)===u}):Tc,f=d.filter(function(h){return c.indexOf(h)>=0});f.length===0&&(f=d);var p=f.reduce(function(h,y){return h[y]=cc(e,{placement:y,boundary:o,rootBoundary:i,padding:a})[ao(y)],h},{});return Object.keys(p).sort(function(h,y){return p[h]-p[y]})}function g6(e){if(ao(e)===S1)return[];var t=qu(e);return[Cb(e),t,Cb(t)]}function h6(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!0:a,l=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,h=p===void 0?!0:p,y=n.allowedAutoPlacements,w=t.options.placement,v=ao(w),S=v===w,m=l||(S||!h?[qu(w)]:g6(w)),C=[w].concat(m).reduce(function(F,W){return F.concat(ao(W)===S1?p6(t,{placement:W,boundary:u,rootBoundary:d,padding:c,flipVariations:h,allowedAutoPlacements:y}):W)},[]),_=t.rects.reference,R=t.rects.popper,k=new Map,T=!0,P=C[0],x=0;x=0,M=D?"width":"height",A=cc(t,{placement:$,boundary:u,rootBoundary:d,altBoundary:f,padding:c}),N=D?O?Sr:Fn:O?xr:jn;_[M]>R[M]&&(N=qu(N));var E=qu(N),L=[];if(i&&L.push(A[I]<=0),s&&L.push(A[N]<=0,A[E]<=0),L.every(function(F){return F})){P=$,T=!1;break}k.set($,L)}if(T)for(var B=h?3:1,H=function(W){var V=C.find(function(ee){var re=k.get(ee);if(re)return re.slice(0,W).every(function(U){return U})});if(V)return P=V,"break"},z=B;z>0;z--){var j=H(z);if(j==="break")break}t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}}const m6={name:"flip",enabled:!0,phase:"main",fn:h6,requiresIfExists:["offset"],data:{_skip:!1}};function Rb(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Tb(e){return[jn,Sr,xr,Fn].some(function(t){return e[t]>=0})}function v6(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=cc(t,{elementContext:"reference"}),s=cc(t,{altBoundary:!0}),l=Rb(a,r),c=Rb(s,o,i),u=Tb(l),d=Tb(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}const y6={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:v6};function b6(e,t,n){var r=ao(e),o=[Fn,jn].indexOf(r)>=0?-1:1,i=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[Fn,Sr].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}function x6(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=o===void 0?[0,0]:o,a=x_.reduce(function(u,d){return u[d]=b6(d,t.rects,i),u},{}),s=a[t.placement],l=s.x,c=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}const S6={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:x6};function w6(e){var t=e.state,n=e.name;t.modifiersData[n]=P_({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const C6={name:"popperOffsets",enabled:!0,phase:"read",fn:w6,data:{}};function _6(e){return e==="x"?"y":"x"}function R6(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!1:a,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0?!0:f,h=n.tetherOffset,y=h===void 0?0:h,w=cc(t,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),v=ao(t.placement),S=vs(t.placement),m=!S,C=_1(v),_=_6(C),R=t.modifiersData.popperOffsets,k=t.rects.reference,T=t.rects.popper,P=typeof y=="function"?y(Object.assign({},t.rects,{placement:t.placement})):y,x=typeof P=="number"?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),$=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(R){if(i){var O,D=C==="y"?jn:Fn,M=C==="y"?xr:Sr,A=C==="y"?"height":"width",N=R[C],E=N+w[D],L=N-w[M],B=p?-T[A]/2:0,H=S===gs?k[A]:T[A],z=S===gs?-T[A]:-k[A],j=t.elements.arrow,F=p&&j?C1(j):{width:0,height:0},W=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:C_(),V=W[D],ee=W[M],re=$l(0,k[A],F[A]),U=m?k[A]/2-B-re-V-x.mainAxis:H-re-V-x.mainAxis,K=m?-k[A]/2+B+re+ee+x.mainAxis:z+re+ee+x.mainAxis,se=t.elements.arrow&&Pc(t.elements.arrow),q=se?C==="y"?se.clientTop||0:se.clientLeft||0:0,ce=(O=$==null?void 0:$[C])!=null?O:0,ue=N+U-ce-q,ie=N+K-ce,te=$l(p?Hd(E,ue):E,N,p?Vi(L,ie):L);R[C]=te,I[C]=te-N}if(s){var de,Q=C==="x"?jn:Fn,be=C==="x"?xr:Sr,Te=R[_],we=_==="y"?"height":"width",ge=Te+w[Q],le=Te-w[be],Se=[jn,Fn].indexOf(v)!==-1,ye=(de=$==null?void 0:$[_])!=null?de:0,Ge=Se?ge:Te-k[we]-T[we]-ye+x.altAxis,Pe=Se?Te+k[we]+T[we]-ye-x.altAxis:le,Re=p&&Se?Z8(Ge,Te,Pe):$l(p?Ge:ge,Te,p?Pe:le);R[_]=Re,I[_]=Re-Te}t.modifiersData[r]=I}}const T6={name:"preventOverflow",enabled:!0,phase:"main",fn:R6,requiresIfExists:["offset"]};function P6(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function k6(e){return e===er(e)||!vr(e)?R1(e):P6(e)}function $6(e){var t=e.getBoundingClientRect(),n=hs(t.width)/e.offsetWidth||1,r=hs(t.height)/e.offsetHeight||1;return n!==1||r!==1}function E6(e,t,n){n===void 0&&(n=!1);var r=vr(t),o=vr(t)&&$6(t),i=xi(t),a=ms(e,o,n),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((so(t)!=="body"||P1(i))&&(s=k6(t)),vr(t)?(l=ms(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):i&&(l.x=T1(i))),{x:a.left+s.scrollLeft-l.x,y:a.top+s.scrollTop-l.y,width:a.width,height:a.height}}function M6(e){var t=new Map,n=new Set,r=[];e.forEach(function(i){t.set(i.name,i)});function o(i){n.add(i.name);var a=[].concat(i.requires||[],i.requiresIfExists||[]);a.forEach(function(s){if(!n.has(s)){var l=t.get(s);l&&o(l)}}),r.push(i)}return e.forEach(function(i){n.has(i.name)||o(i)}),r}function I6(e){var t=M6(e);return V8.reduce(function(n,r){return n.concat(t.filter(function(o){return o.phase===r}))},[])}function O6(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function L6(e){var t=e.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var Pb={placement:"bottom",modifiers:[],strategy:"absolute"};function kb(){for(var e=arguments.length,t=new Array(e),n=0;n{i||s(j6(o)||document.body)},[o,i]),Hr(()=>{if(a&&!i)return jd(n,a),()=>{jd(n,null)}},[n,a,i]),i){if(b.isValidElement(r)){const c={ref:l};return b.cloneElement(r,c)}return g.jsx(b.Fragment,{children:r})}return g.jsx(b.Fragment,{children:a&&Y0.createPortal(r,a)})});function F6(e){return Oe("MuiPopper",e)}Ee("MuiPopper",["root"]);function B6(e,t){if(t==="ltr")return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}function xm(e){return typeof e=="function"?e():e}function z6(e){return e.nodeType!==void 0}const H6=e=>{const{classes:t}=e;return Ne({root:["root"]},F6,t)},V6={},W6=b.forwardRef(function(t,n){const{anchorEl:r,children:o,direction:i,disablePortal:a,modifiers:s,open:l,placement:c,popperOptions:u,popperRef:d,slotProps:f={},slots:p={},TransitionProps:h,ownerState:y,...w}=t,v=b.useRef(null),S=Rt(v,n),m=b.useRef(null),C=Rt(m,d),_=b.useRef(C);Hr(()=>{_.current=C},[C]),b.useImperativeHandle(d,()=>m.current,[]);const R=B6(c,i),[k,T]=b.useState(R),[P,x]=b.useState(xm(r));b.useEffect(()=>{m.current&&m.current.forceUpdate()}),b.useEffect(()=>{r&&x(xm(r))},[r]),Hr(()=>{if(!P||!l)return;const M=E=>{T(E.placement)};let A=[{name:"preventOverflow",options:{altBoundary:a}},{name:"flip",options:{altBoundary:a}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:E})=>{M(E)}}];s!=null&&(A=A.concat(s)),u&&u.modifiers!=null&&(A=A.concat(u.modifiers));const N=D6(P,v.current,{placement:R,...u,modifiers:A});return _.current(N),()=>{N.destroy(),_.current(null)}},[P,a,s,l,u,R]);const $={placement:k};h!==null&&($.TransitionProps=h);const I=H6(t),O=p.root??"div",D=na({elementType:O,externalSlotProps:f.root,externalForwardedProps:w,additionalProps:{role:"tooltip",ref:S},ownerState:t,className:I.root});return g.jsx(O,{...D,children:typeof o=="function"?o($):o})}),U6=b.forwardRef(function(t,n){const{anchorEl:r,children:o,container:i,direction:a="ltr",disablePortal:s=!1,keepMounted:l=!1,modifiers:c,open:u,placement:d="bottom",popperOptions:f=V6,popperRef:p,style:h,transition:y=!1,slotProps:w={},slots:v={},...S}=t,[m,C]=b.useState(!0),_=()=>{C(!1)},R=()=>{C(!0)};if(!l&&!u&&(!y||m))return null;let k;if(i)k=i;else if(r){const x=xm(r);k=x&&z6(x)?ln(x).body:ln(null).body}const T=!u&&l&&(!y||m)?"none":void 0,P=y?{in:u,onEnter:_,onExited:R}:void 0;return g.jsx(k_,{disablePortal:s,container:k,children:g.jsx(W6,{anchorEl:r,direction:a,disablePortal:s,modifiers:c,ref:n,open:y?!m:u,placement:d,popperOptions:f,popperRef:p,slotProps:w,slots:v,...S,style:{position:"fixed",top:0,left:0,display:T,...h},TransitionProps:P,children:o})})}),G6=J(U6,{name:"MuiPopper",slot:"Root",overridesResolver:(e,t)=>t.root})({}),kc=b.forwardRef(function(t,n){const r=Es(),o=De({props:t,name:"MuiPopper"}),{anchorEl:i,component:a,components:s,componentsProps:l,container:c,disablePortal:u,keepMounted:d,modifiers:f,open:p,placement:h,popperOptions:y,popperRef:w,transition:v,slots:S,slotProps:m,...C}=o,_=(S==null?void 0:S.root)??(s==null?void 0:s.Root),R={anchorEl:i,container:c,disablePortal:u,keepMounted:d,modifiers:f,open:p,placement:h,popperOptions:y,popperRef:w,transition:v,...C};return g.jsx(G6,{as:a,direction:r?"rtl":"ltr",slots:{root:_},slotProps:m??l,...R,ref:n})});function q6(e){return Oe("MuiListSubheader",e)}Ee("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);const K6=e=>{const{classes:t,color:n,disableGutters:r,inset:o,disableSticky:i}=e,a={root:["root",n!=="default"&&`color${ae(n)}`,!r&&"gutters",o&&"inset",!i&&"sticky"]};return Ne(a,q6,t)},Z6=J("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="default"&&t[`color${ae(n.color)}`],!n.disableGutters&&t.gutters,n.inset&&t.inset,!n.disableSticky&&t.sticky]}})($e(({theme:e})=>({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(e.vars||e).palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14),variants:[{props:{color:"primary"},style:{color:(e.vars||e).palette.primary.main}},{props:{color:"inherit"},style:{color:"inherit"}},{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.inset,style:{paddingLeft:72}},{props:({ownerState:t})=>!t.disableSticky,style:{position:"sticky",top:0,zIndex:1,backgroundColor:(e.vars||e).palette.background.paper}}]}))),Sm=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiListSubheader"}),{className:o,color:i="default",component:a="li",disableGutters:s=!1,disableSticky:l=!1,inset:c=!1,...u}=r,d={...r,color:i,component:a,disableGutters:s,disableSticky:l,inset:c},f=K6(d);return g.jsx(Z6,{as:a,className:ve(f.root,o),ref:n,ownerState:d,...u})});Sm&&(Sm.muiSkipListHighlight=!0);const Q6=un(g.jsx("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");function Y6(e){return Oe("MuiChip",e)}const Ke=Ee("MuiChip",["root","sizeSmall","sizeMedium","colorDefault","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","outlined","filled","outlinedPrimary","outlinedSecondary","filledPrimary","filledSecondary","avatar","avatarSmall","avatarMedium","avatarColorPrimary","avatarColorSecondary","icon","iconSmall","iconMedium","iconColorPrimary","iconColorSecondary","label","labelSmall","labelMedium","deleteIcon","deleteIconSmall","deleteIconMedium","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","deleteIconFilledColorPrimary","deleteIconFilledColorSecondary","focusVisible"]),X6=e=>{const{classes:t,disabled:n,size:r,color:o,iconColor:i,onDelete:a,clickable:s,variant:l}=e,c={root:["root",l,n&&"disabled",`size${ae(r)}`,`color${ae(o)}`,s&&"clickable",s&&`clickableColor${ae(o)}`,a&&"deletable",a&&`deletableColor${ae(o)}`,`${l}${ae(o)}`],label:["label",`label${ae(r)}`],avatar:["avatar",`avatar${ae(r)}`,`avatarColor${ae(o)}`],icon:["icon",`icon${ae(r)}`,`iconColor${ae(i)}`],deleteIcon:["deleteIcon",`deleteIcon${ae(r)}`,`deleteIconColor${ae(o)}`,`deleteIcon${ae(l)}Color${ae(o)}`]};return Ne(c,Y6,t)},J6=J("div",{name:"MuiChip",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e,{color:r,iconColor:o,clickable:i,onDelete:a,size:s,variant:l}=n;return[{[`& .${Ke.avatar}`]:t.avatar},{[`& .${Ke.avatar}`]:t[`avatar${ae(s)}`]},{[`& .${Ke.avatar}`]:t[`avatarColor${ae(r)}`]},{[`& .${Ke.icon}`]:t.icon},{[`& .${Ke.icon}`]:t[`icon${ae(s)}`]},{[`& .${Ke.icon}`]:t[`iconColor${ae(o)}`]},{[`& .${Ke.deleteIcon}`]:t.deleteIcon},{[`& .${Ke.deleteIcon}`]:t[`deleteIcon${ae(s)}`]},{[`& .${Ke.deleteIcon}`]:t[`deleteIconColor${ae(r)}`]},{[`& .${Ke.deleteIcon}`]:t[`deleteIcon${ae(l)}Color${ae(r)}`]},t.root,t[`size${ae(s)}`],t[`color${ae(r)}`],i&&t.clickable,i&&r!=="default"&&t[`clickableColor${ae(r)})`],a&&t.deletable,a&&r!=="default"&&t[`deletableColor${ae(r)}`],t[l],t[`${l}${ae(r)}`]]}})($e(({theme:e})=>{const t=e.palette.mode==="light"?e.palette.grey[700]:e.palette.grey[300];return{maxWidth:"100%",fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:(e.vars||e).palette.text.primary,backgroundColor:(e.vars||e).palette.action.selected,borderRadius:32/2,whiteSpace:"nowrap",transition:e.transitions.create(["background-color","box-shadow"]),cursor:"unset",outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${Ke.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${Ke.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:e.vars?e.vars.palette.Chip.defaultAvatarColor:t,fontSize:e.typography.pxToRem(12)},[`& .${Ke.avatarColorPrimary}`]:{color:(e.vars||e).palette.primary.contrastText,backgroundColor:(e.vars||e).palette.primary.dark},[`& .${Ke.avatarColorSecondary}`]:{color:(e.vars||e).palette.secondary.contrastText,backgroundColor:(e.vars||e).palette.secondary.dark},[`& .${Ke.avatarSmall}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:e.typography.pxToRem(10)},[`& .${Ke.icon}`]:{marginLeft:5,marginRight:-6},[`& .${Ke.deleteIcon}`]:{WebkitTapHighlightColor:"transparent",color:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.26)`:Be(e.palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.4)`:Be(e.palette.text.primary,.4)}},variants:[{props:{size:"small"},style:{height:24,[`& .${Ke.icon}`]:{fontSize:18,marginLeft:4,marginRight:-4},[`& .${Ke.deleteIcon}`]:{fontSize:16,marginRight:4,marginLeft:-4}}},...Object.entries(e.palette).filter(Ft(["contrastText"])).map(([n])=>({props:{color:n},style:{backgroundColor:(e.vars||e).palette[n].main,color:(e.vars||e).palette[n].contrastText,[`& .${Ke.deleteIcon}`]:{color:e.vars?`rgba(${e.vars.palette[n].contrastTextChannel} / 0.7)`:Be(e.palette[n].contrastText,.7),"&:hover, &:active":{color:(e.vars||e).palette[n].contrastText}}}})),{props:n=>n.iconColor===n.color,style:{[`& .${Ke.icon}`]:{color:e.vars?e.vars.palette.Chip.defaultIconColor:t}}},{props:n=>n.iconColor===n.color&&n.color!=="default",style:{[`& .${Ke.icon}`]:{color:"inherit"}}},{props:{onDelete:!0},style:{[`&.${Ke.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}},...Object.entries(e.palette).filter(Ft(["dark"])).map(([n])=>({props:{color:n,onDelete:!0},style:{[`&.${Ke.focusVisible}`]:{background:(e.vars||e).palette[n].dark}}})),{props:{clickable:!0},style:{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity)},[`&.${Ke.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)},"&:active":{boxShadow:(e.vars||e).shadows[1]}}},...Object.entries(e.palette).filter(Ft(["dark"])).map(([n])=>({props:{color:n,clickable:!0},style:{[`&:hover, &.${Ke.focusVisible}`]:{backgroundColor:(e.vars||e).palette[n].dark}}})),{props:{variant:"outlined"},style:{backgroundColor:"transparent",border:e.vars?`1px solid ${e.vars.palette.Chip.defaultBorder}`:`1px solid ${e.palette.mode==="light"?e.palette.grey[400]:e.palette.grey[700]}`,[`&.${Ke.clickable}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${Ke.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`& .${Ke.avatar}`]:{marginLeft:4},[`& .${Ke.avatarSmall}`]:{marginLeft:2},[`& .${Ke.icon}`]:{marginLeft:4},[`& .${Ke.iconSmall}`]:{marginLeft:2},[`& .${Ke.deleteIcon}`]:{marginRight:5},[`& .${Ke.deleteIconSmall}`]:{marginRight:3}}},...Object.entries(e.palette).filter(Ft()).map(([n])=>({props:{variant:"outlined",color:n},style:{color:(e.vars||e).palette[n].main,border:`1px solid ${e.vars?`rgba(${e.vars.palette[n].mainChannel} / 0.7)`:Be(e.palette[n].main,.7)}`,[`&.${Ke.clickable}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[n].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[n].main,e.palette.action.hoverOpacity)},[`&.${Ke.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[n].mainChannel} / ${e.vars.palette.action.focusOpacity})`:Be(e.palette[n].main,e.palette.action.focusOpacity)},[`& .${Ke.deleteIcon}`]:{color:e.vars?`rgba(${e.vars.palette[n].mainChannel} / 0.7)`:Be(e.palette[n].main,.7),"&:hover, &:active":{color:(e.vars||e).palette[n].main}}}}))]}})),eI=J("span",{name:"MuiChip",slot:"Label",overridesResolver:(e,t)=>{const{ownerState:n}=e,{size:r}=n;return[t.label,t[`label${ae(r)}`]]}})({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap",variants:[{props:{variant:"outlined"},style:{paddingLeft:11,paddingRight:11}},{props:{size:"small"},style:{paddingLeft:8,paddingRight:8}},{props:{size:"small",variant:"outlined"},style:{paddingLeft:7,paddingRight:7}}]});function $b(e){return e.key==="Backspace"||e.key==="Delete"}const tI=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiChip"}),{avatar:o,className:i,clickable:a,color:s="default",component:l,deleteIcon:c,disabled:u=!1,icon:d,label:f,onClick:p,onDelete:h,onKeyDown:y,onKeyUp:w,size:v="medium",variant:S="filled",tabIndex:m,skipFocusWhenDisabled:C=!1,..._}=r,R=b.useRef(null),k=Rt(R,n),T=L=>{L.stopPropagation(),h&&h(L)},P=L=>{L.currentTarget===L.target&&$b(L)&&L.preventDefault(),y&&y(L)},x=L=>{L.currentTarget===L.target&&h&&$b(L)&&h(L),w&&w(L)},$=a!==!1&&p?!0:a,I=$||h?To:l||"div",O={...r,component:I,disabled:u,size:v,color:s,iconColor:b.isValidElement(d)&&d.props.color||s,onDelete:!!h,clickable:$,variant:S},D=X6(O),M=I===To?{component:l||"div",focusVisibleClassName:D.focusVisible,...h&&{disableRipple:!0}}:{};let A=null;h&&(A=c&&b.isValidElement(c)?b.cloneElement(c,{className:ve(c.props.className,D.deleteIcon),onClick:T}):g.jsx(Q6,{className:ve(D.deleteIcon),onClick:T}));let N=null;o&&b.isValidElement(o)&&(N=b.cloneElement(o,{className:ve(D.avatar,o.props.className)}));let E=null;return d&&b.isValidElement(d)&&(E=b.cloneElement(d,{className:ve(D.icon,d.props.className)})),g.jsxs(J6,{as:I,className:ve(D.root,i),disabled:$&&u?!0:void 0,onClick:p,onKeyDown:P,onKeyUp:x,ref:k,tabIndex:C&&u?-1:m,ownerState:O,...M,..._,children:[N||E,g.jsx(eI,{className:ve(D.label),ownerState:O,children:f}),A]})});function fu(e){return parseInt(e,10)||0}const nI={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function rI(e){return e==null||Object.keys(e).length===0||e.outerHeightStyle===0&&!e.overflowing}const oI=b.forwardRef(function(t,n){const{onChange:r,maxRows:o,minRows:i=1,style:a,value:s,...l}=t,{current:c}=b.useRef(s!=null),u=b.useRef(null),d=Rt(n,u),f=b.useRef(null),p=b.useRef(null),h=b.useCallback(()=>{const v=u.current,m=zr(v).getComputedStyle(v);if(m.width==="0px")return{outerHeightStyle:0,overflowing:!1};const C=p.current;C.style.width=m.width,C.value=v.value||t.placeholder||"x",C.value.slice(-1)===` -`&&(C.value+=" ");const _=m.boxSizing,R=fu(m.paddingBottom)+fu(m.paddingTop),k=fu(m.borderBottomWidth)+fu(m.borderTopWidth),T=C.scrollHeight;C.value="x";const P=C.scrollHeight;let x=T;i&&(x=Math.max(Number(i)*P,x)),o&&(x=Math.min(Number(o)*P,x)),x=Math.max(x,P);const $=x+(_==="border-box"?R+k:0),I=Math.abs(x-T)<=1;return{outerHeightStyle:$,overflowing:I}},[o,i,t.placeholder]),y=b.useCallback(()=>{const v=h();if(rI(v))return;const S=v.outerHeightStyle,m=u.current;f.current!==S&&(f.current=S,m.style.height=`${S}px`),m.style.overflow=v.overflowing?"hidden":""},[h]);Hr(()=>{const v=()=>{y()};let S;const m=cp(v),C=u.current,_=zr(C);_.addEventListener("resize",m);let R;return typeof ResizeObserver<"u"&&(R=new ResizeObserver(v),R.observe(C)),()=>{m.clear(),cancelAnimationFrame(S),_.removeEventListener("resize",m),R&&R.disconnect()}},[h,y]),Hr(()=>{y()});const w=v=>{c||y(),r&&r(v)};return g.jsxs(b.Fragment,{children:[g.jsx("textarea",{value:s,onChange:w,ref:d,rows:i,style:a,...l}),g.jsx("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:p,tabIndex:-1,style:{...nI.shadow,...a,paddingTop:0,paddingBottom:0}})]})});function Vd(e){return typeof e=="string"}function da({props:e,states:t,muiFormControl:n}){return t.reduce((r,o)=>(r[o]=e[o],n&&typeof e[o]>"u"&&(r[o]=n[o]),r),{})}const k1=b.createContext(void 0);function Mo(){return b.useContext(k1)}function Eb(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function Wd(e,t=!1){return e&&(Eb(e.value)&&e.value!==""||t&&Eb(e.defaultValue)&&e.defaultValue!=="")}function iI(e){return e.startAdornment}function aI(e){return Oe("MuiInputBase",e)}const Gn=Ee("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]);var Mb;const fp=(e,t)=>{const{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,n.size==="small"&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${ae(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},pp=(e,t)=>{const{ownerState:n}=e;return[t.input,n.size==="small"&&t.inputSizeSmall,n.multiline&&t.inputMultiline,n.type==="search"&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},sI=e=>{const{classes:t,color:n,disabled:r,error:o,endAdornment:i,focused:a,formControl:s,fullWidth:l,hiddenLabel:c,multiline:u,readOnly:d,size:f,startAdornment:p,type:h}=e,y={root:["root",`color${ae(n)}`,r&&"disabled",o&&"error",l&&"fullWidth",a&&"focused",s&&"formControl",f&&f!=="medium"&&`size${ae(f)}`,u&&"multiline",p&&"adornedStart",i&&"adornedEnd",c&&"hiddenLabel",d&&"readOnly"],input:["input",r&&"disabled",h==="search"&&"inputTypeSearch",u&&"inputMultiline",f==="small"&&"inputSizeSmall",c&&"inputHiddenLabel",p&&"inputAdornedStart",i&&"inputAdornedEnd",d&&"readOnly"]};return Ne(y,aI,t)},gp=J("div",{name:"MuiInputBase",slot:"Root",overridesResolver:fp})($e(({theme:e})=>({...e.typography.body1,color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${Gn.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:t})=>t.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:t,size:n})=>t.multiline&&n==="small",style:{paddingTop:1}},{props:({ownerState:t})=>t.fullWidth,style:{width:"100%"}}]}))),hp=J("input",{name:"MuiInputBase",slot:"Input",overridesResolver:pp})($e(({theme:e})=>{const t=e.palette.mode==="light",n={color:"currentColor",...e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5},transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},r={opacity:"0 !important"},o=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&::-ms-input-placeholder":n,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${Gn.formControl} &`]:{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":o,"&:focus::-moz-placeholder":o,"&:focus::-ms-input-placeholder":o},[`&.${Gn.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},variants:[{props:({ownerState:i})=>!i.disableInjectingGlobalStyles,style:{animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:i})=>i.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),Ib=PM({"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}),mp=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiInputBase"}),{"aria-describedby":o,autoComplete:i,autoFocus:a,className:s,color:l,components:c={},componentsProps:u={},defaultValue:d,disabled:f,disableInjectingGlobalStyles:p,endAdornment:h,error:y,fullWidth:w=!1,id:v,inputComponent:S="input",inputProps:m={},inputRef:C,margin:_,maxRows:R,minRows:k,multiline:T=!1,name:P,onBlur:x,onChange:$,onClick:I,onFocus:O,onKeyDown:D,onKeyUp:M,placeholder:A,readOnly:N,renderSuffix:E,rows:L,size:B,slotProps:H={},slots:z={},startAdornment:j,type:F="text",value:W,...V}=r,ee=m.value!=null?m.value:W,{current:re}=b.useRef(ee!=null),U=b.useRef(),K=b.useCallback(ne=>{},[]),se=Rt(U,C,m.ref,K),[q,ce]=b.useState(!1),ue=Mo(),ie=da({props:r,muiFormControl:ue,states:["color","disabled","error","hiddenLabel","size","required","filled"]});ie.focused=ue?ue.focused:q,b.useEffect(()=>{!ue&&f&&q&&(ce(!1),x&&x())},[ue,f,q,x]);const te=ue&&ue.onFilled,de=ue&&ue.onEmpty,Q=b.useCallback(ne=>{Wd(ne)?te&&te():de&&de()},[te,de]);Hr(()=>{re&&Q({value:ee})},[ee,Q,re]);const be=ne=>{O&&O(ne),m.onFocus&&m.onFocus(ne),ue&&ue.onFocus?ue.onFocus(ne):ce(!0)},Te=ne=>{x&&x(ne),m.onBlur&&m.onBlur(ne),ue&&ue.onBlur?ue.onBlur(ne):ce(!1)},we=(ne,...xe)=>{if(!re){const Le=ne.target||U.current;if(Le==null)throw new Error(Xi(1));Q({value:Le.value})}m.onChange&&m.onChange(ne,...xe),$&&$(ne,...xe)};b.useEffect(()=>{Q(U.current)},[]);const ge=ne=>{U.current&&ne.currentTarget===ne.target&&U.current.focus(),I&&I(ne)};let le=S,Se=m;T&&le==="input"&&(L?Se={type:void 0,minRows:L,maxRows:L,...Se}:Se={type:void 0,maxRows:R,minRows:k,...Se},le=oI);const ye=ne=>{Q(ne.animationName==="mui-auto-fill-cancel"?U.current:{value:"x"})};b.useEffect(()=>{ue&&ue.setAdornedStart(!!j)},[ue,j]);const Ge={...r,color:ie.color||"primary",disabled:ie.disabled,endAdornment:h,error:ie.error,focused:ie.focused,formControl:ue,fullWidth:w,hiddenLabel:ie.hiddenLabel,multiline:T,size:ie.size,startAdornment:j,type:F},Pe=sI(Ge),Re=z.root||c.Root||gp,ke=H.root||u.root||{},pe=z.input||c.Input||hp;return Se={...Se,...H.input??u.input},g.jsxs(b.Fragment,{children:[!p&&typeof Ib=="function"&&(Mb||(Mb=g.jsx(Ib,{}))),g.jsxs(Re,{...ke,ref:n,onClick:ge,...V,...!Vd(Re)&&{ownerState:{...Ge,...ke.ownerState}},className:ve(Pe.root,ke.className,s,N&&"MuiInputBase-readOnly"),children:[j,g.jsx(k1.Provider,{value:null,children:g.jsx(pe,{"aria-invalid":ie.error,"aria-describedby":o,autoComplete:i,autoFocus:a,defaultValue:d,disabled:ie.disabled,id:v,onAnimationStart:ye,name:P,placeholder:A,readOnly:N,required:ie.required,rows:L,value:ee,onKeyDown:D,onKeyUp:M,type:F,...Se,...!Vd(pe)&&{as:le,ownerState:{...Ge,...Se.ownerState}},ref:se,className:ve(Pe.input,Se.className,N&&"MuiInputBase-readOnly"),onBlur:Te,onChange:we,onFocus:be})}),h,E?E({...ie,startAdornment:j}):null]})]})});function lI(e){return Oe("MuiInput",e)}const Go={...Gn,...Ee("MuiInput",["root","underline","input"])};function cI(e){return Oe("MuiOutlinedInput",e)}const lr={...Gn,...Ee("MuiOutlinedInput",["root","notchedOutline","input"])};function uI(e){return Oe("MuiFilledInput",e)}const qn={...Gn,...Ee("MuiFilledInput",["root","underline","input","adornedStart","adornedEnd","sizeSmall","multiline","hiddenLabel"])},$_=un(g.jsx("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown");function dI(e){return Oe("MuiAutocomplete",e)}const Ue=Ee("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var Ob,Lb;const fI=e=>{const{classes:t,disablePortal:n,expanded:r,focused:o,fullWidth:i,hasClearIcon:a,hasPopupIcon:s,inputFocused:l,popupOpen:c,size:u}=e,d={root:["root",r&&"expanded",o&&"focused",i&&"fullWidth",a&&"hasClearIcon",s&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${ae(u)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",c&&"popupIndicatorOpen"],popper:["popper",n&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return Ne(d,dI,t)},pI=J("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e,{fullWidth:r,hasClearIcon:o,hasPopupIcon:i,inputFocused:a,size:s}=n;return[{[`& .${Ue.tag}`]:t.tag},{[`& .${Ue.tag}`]:t[`tagSize${ae(s)}`]},{[`& .${Ue.inputRoot}`]:t.inputRoot},{[`& .${Ue.input}`]:t.input},{[`& .${Ue.input}`]:a&&t.inputFocused},t.root,r&&t.fullWidth,i&&t.hasPopupIcon,o&&t.hasClearIcon]}})({[`&.${Ue.focused} .${Ue.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${Ue.clearIndicator}`]:{visibility:"visible"}},[`& .${Ue.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${Ue.inputRoot}`]:{[`.${Ue.hasPopupIcon}&, .${Ue.hasClearIcon}&`]:{paddingRight:30},[`.${Ue.hasPopupIcon}.${Ue.hasClearIcon}&`]:{paddingRight:56},[`& .${Ue.input}`]:{width:0,minWidth:30}},[`& .${Go.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${Go.root}.${Gn.sizeSmall}`]:{[`& .${Go.input}`]:{padding:"2px 4px 3px 0"}},[`& .${lr.root}`]:{padding:9,[`.${Ue.hasPopupIcon}&, .${Ue.hasClearIcon}&`]:{paddingRight:39},[`.${Ue.hasPopupIcon}.${Ue.hasClearIcon}&`]:{paddingRight:65},[`& .${Ue.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${Ue.endAdornment}`]:{right:9}},[`& .${lr.root}.${Gn.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${Ue.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${qn.root}`]:{paddingTop:19,paddingLeft:8,[`.${Ue.hasPopupIcon}&, .${Ue.hasClearIcon}&`]:{paddingRight:39},[`.${Ue.hasPopupIcon}.${Ue.hasClearIcon}&`]:{paddingRight:65},[`& .${qn.input}`]:{padding:"7px 4px"},[`& .${Ue.endAdornment}`]:{right:9}},[`& .${qn.root}.${Gn.sizeSmall}`]:{paddingBottom:1,[`& .${qn.input}`]:{padding:"2.5px 4px"}},[`& .${Gn.hiddenLabel}`]:{paddingTop:8},[`& .${qn.root}.${Gn.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${Ue.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${qn.root}.${Gn.hiddenLabel}.${Gn.sizeSmall}`]:{[`& .${Ue.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${Ue.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${Ue.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${Ue.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${Ue.inputRoot}`]:{flexWrap:"wrap"}}}]}),gI=J("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(e,t)=>t.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),hI=J(hr,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(e,t)=>t.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),mI=J(hr,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:({ownerState:e},t)=>({...t.popupIndicator,...e.popupOpen&&t.popupIndicatorOpen})})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),vI=J(kc,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Ue.option}`]:t.option},t.popper,n.disablePortal&&t.popperDisablePortal]}})($e(({theme:e})=>({zIndex:(e.vars||e).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]}))),yI=J(Is,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(e,t)=>t.paper})($e(({theme:e})=>({...e.typography.body1,overflow:"auto"}))),bI=J("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(e,t)=>t.loading})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"}))),xI=J("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(e,t)=>t.noOptions})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"}))),SI=J("div",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(e,t)=>t.listbox})($e(({theme:e})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${Ue.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[e.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${Ue.focused}`]:{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${Ue.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${Ue.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${Ue.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}}}))),wI=J(Sm,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(e,t)=>t.groupLabel})($e(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,top:-8}))),CI=J("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(e,t)=>t.groupUl})({padding:0,[`& .${Ue.option}`]:{paddingLeft:24}}),_I=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiAutocomplete"}),{autoComplete:o=!1,autoHighlight:i=!1,autoSelect:a=!1,blurOnSelect:s=!1,ChipProps:l,className:c,clearIcon:u=Ob||(Ob=g.jsx(v_,{fontSize:"small"})),clearOnBlur:d=!r.freeSolo,clearOnEscape:f=!1,clearText:p="Clear",closeText:h="Close",componentsProps:y,defaultValue:w=r.multiple?[]:null,disableClearable:v=!1,disableCloseOnSelect:S=!1,disabled:m=!1,disabledItemsFocusable:C=!1,disableListWrap:_=!1,disablePortal:R=!1,filterOptions:k,filterSelectedOptions:T=!1,forcePopupIcon:P="auto",freeSolo:x=!1,fullWidth:$=!1,getLimitTagsText:I=Xe=>`+${Xe}`,getOptionDisabled:O,getOptionKey:D,getOptionLabel:M,isOptionEqualToValue:A,groupBy:N,handleHomeEndKeys:E=!r.freeSolo,id:L,includeInputInList:B=!1,inputValue:H,limitTags:z=-1,ListboxComponent:j,ListboxProps:F,loading:W=!1,loadingText:V="Loading…",multiple:ee=!1,noOptionsText:re="No options",onChange:U,onClose:K,onHighlightChange:se,onInputChange:q,onOpen:ce,open:ue,openOnFocus:ie=!1,openText:te="Open",options:de,PaperComponent:Q,PopperComponent:be,popupIcon:Te=Lb||(Lb=g.jsx($_,{})),readOnly:we=!1,renderGroup:ge,renderInput:le,renderOption:Se,renderTags:ye,selectOnFocus:Ge=!r.freeSolo,size:Pe="medium",slots:Re={},slotProps:ke={},value:pe,...ne}=r,{getRootProps:xe,getInputProps:Le,getInputLabelProps:fe,getPopupIndicatorProps:oe,getClearProps:me,getTagProps:je,getListboxProps:Ve,getOptionProps:Ye,value:Tt,dirty:Zt,expanded:Mn,id:ir,popupOpen:Vn,focused:Oo,focusedTag:_i,anchorEl:Fe,setAnchorEl:_n,inputValue:Dc,groupedOptions:pa}=M8({...r,componentName:"Autocomplete"}),Ds=!v&&!m&&Zt&&!we,js=(!x||P===!0)&&P!==!1,{onMouseDown:$p}=Le(),{ref:Ep,...jc}=Ve(),Fs=M||(Xe=>Xe.label??Xe),dn={...r,disablePortal:R,expanded:Mn,focused:Oo,fullWidth:$,getOptionLabel:Fs,hasClearIcon:Ds,hasPopupIcon:js,inputFocused:_i===-1,popupOpen:Vn,size:Pe},Nt=fI(dn),lo={slots:{paper:Q,popper:be,...Re},slotProps:{chip:l,listbox:F,...y,...ke}},[X,Y]=an("listbox",{elementType:SI,externalForwardedProps:lo,ownerState:dn,className:Nt.listbox,additionalProps:jc,ref:Ep}),[Ce,We]=an("paper",{elementType:Is,externalForwardedProps:lo,ownerState:dn,className:Nt.paper}),[qe,Pt]=an("popper",{elementType:kc,externalForwardedProps:lo,ownerState:dn,className:Nt.popper,additionalProps:{disablePortal:R,style:{width:Fe?Fe.clientWidth:null},role:"presentation",anchorEl:Fe,open:Vn}});let at;if(ee&&Tt.length>0){const Xe=Ur=>({className:Nt.tag,disabled:m,...je(Ur)});ye?at=ye(Tt,Xe,dn):at=Tt.map((Ur,Lo)=>{const{key:Bs,...B3}=Xe({index:Lo});return g.jsx(tI,{label:Fs(Ur),size:Pe,...B3,...lo.slotProps.chip},Bs)})}if(z>-1&&Array.isArray(at)){const Xe=at.length-z;!Oo&&Xe>0&&(at=at.splice(0,z),at.push(g.jsx("span",{className:Nt.tag,children:I(Xe)},at.length)))}const Fc=ge||(Xe=>g.jsxs("li",{children:[g.jsx(wI,{className:Nt.groupLabel,ownerState:dn,component:"div",children:Xe.group}),g.jsx(CI,{className:Nt.groupUl,ownerState:dn,children:Xe.children})]},Xe.key)),F3=Se||((Xe,Ur)=>{const{key:Lo,...Bs}=Xe;return g.jsx("li",{...Bs,children:Fs(Ur)},Lo)}),dv=(Xe,Ur)=>{const Lo=Ye({option:Xe,index:Ur});return F3({...Lo,className:Nt.option},Xe,{selected:Lo["aria-selected"],index:Ur,inputValue:Dc},dn)},Bc=lo.slotProps.clearIndicator,zc=lo.slotProps.popupIndicator,Mp=Xe=>g.jsx(vI,{as:qe,...Pt,children:g.jsx(yI,{as:Ce,...We,children:Xe})});let Hc=null;return pa.length>0?Hc=Mp(g.jsx(X,{as:j,...Y,children:pa.map((Xe,Ur)=>N?Fc({key:Xe.key,group:Xe.group,children:Xe.options.map((Lo,Bs)=>dv(Lo,Xe.index+Bs))}):dv(Xe,Ur))})):W&&pa.length===0?Hc=Mp(g.jsx(bI,{className:Nt.loading,ownerState:dn,children:V})):pa.length===0&&!x&&!W&&(Hc=Mp(g.jsx(xI,{className:Nt.noOptions,ownerState:dn,role:"presentation",onMouseDown:Xe=>{Xe.preventDefault()},children:re}))),g.jsxs(b.Fragment,{children:[g.jsx(pI,{ref:n,className:ve(Nt.root,c),ownerState:dn,...xe(ne),children:le({id:ir,disabled:m,fullWidth:!0,size:Pe==="small"?"small":void 0,InputLabelProps:fe(),InputProps:{ref:_n,className:Nt.inputRoot,startAdornment:at,onMouseDown:Xe=>{Xe.target===Xe.currentTarget&&$p(Xe)},...(Ds||js)&&{endAdornment:g.jsxs(gI,{className:Nt.endAdornment,ownerState:dn,children:[Ds?g.jsx(hI,{...me(),"aria-label":p,title:p,ownerState:dn,...Bc,className:ve(Nt.clearIndicator,Bc==null?void 0:Bc.className),children:u}):null,js?g.jsx(mI,{...oe(),disabled:m,"aria-label":Vn?h:te,title:Vn?h:te,ownerState:dn,...zc,className:ve(Nt.popupIndicator,zc==null?void 0:zc.className),children:Te}):null]})}},inputProps:{className:Nt.input,disabled:m,readOnly:we,...Le()}})}),Fe?Hc:null]})}),RI={entering:{opacity:1},entered:{opacity:1}},TI=b.forwardRef(function(t,n){const r=zt(),o={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:i,appear:a=!0,children:s,easing:l,in:c,onEnter:u,onEntered:d,onEntering:f,onExit:p,onExited:h,onExiting:y,style:w,timeout:v=o,TransitionComponent:S=Vr,...m}=t,C=b.useRef(null),_=Rt(C,ua(s),n),R=D=>M=>{if(D){const A=C.current;M===void 0?D(A):D(A,M)}},k=R(f),T=R((D,M)=>{m_(D);const A=fs({style:w,timeout:v,easing:l},{mode:"enter"});D.style.webkitTransition=r.transitions.create("opacity",A),D.style.transition=r.transitions.create("opacity",A),u&&u(D,M)}),P=R(d),x=R(y),$=R(D=>{const M=fs({style:w,timeout:v,easing:l},{mode:"exit"});D.style.webkitTransition=r.transitions.create("opacity",M),D.style.transition=r.transitions.create("opacity",M),p&&p(D)}),I=R(h),O=D=>{i&&i(C.current,D)};return g.jsx(S,{appear:a,in:c,nodeRef:C,onEnter:T,onEntered:P,onEntering:k,onExit:$,onExited:I,onExiting:x,addEndListener:O,timeout:v,...m,children:(D,M)=>b.cloneElement(s,{style:{opacity:0,visibility:D==="exited"&&!c?"hidden":void 0,...RI[D],...w,...s.props.style},ref:_,...M})})});function PI(e){return Oe("MuiBackdrop",e)}Ee("MuiBackdrop",["root","invisible"]);const kI=e=>{const{ownerState:t,...n}=e;return n},$I=e=>{const{classes:t,invisible:n}=e;return Ne({root:["root",n&&"invisible"]},PI,t)},EI=J("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.invisible&&t.invisible]}})({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent",variants:[{props:{invisible:!0},style:{backgroundColor:"transparent"}}]}),MI=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiBackdrop"}),{children:o,className:i,component:a="div",invisible:s=!1,open:l,components:c={},componentsProps:u={},slotProps:d={},slots:f={},TransitionComponent:p,transitionDuration:h,...y}=r,w={...r,component:a,invisible:s},v=$I(w),S={transition:p,root:c.Root,...f},m={...u,...d},C={slots:S,slotProps:m},[_,R]=an("root",{elementType:EI,externalForwardedProps:C,className:ve(v.root,i),ownerState:w}),[k,T]=an("transition",{elementType:TI,externalForwardedProps:C,ownerState:w}),P=kI(T);return g.jsx(k,{in:l,timeout:h,...y,...P,children:g.jsx(_,{"aria-hidden":!0,...R,classes:v,ref:n,children:o})})}),II=Ee("MuiBox",["root"]),OI=sp(),Lr=q5({themeId:Dr,defaultTheme:OI,defaultClassName:II.root,generateClassName:n_.generate});function LI(e){return Oe("MuiButton",e)}const Sa=Ee("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),AI=b.createContext({}),NI=b.createContext(void 0),DI=e=>{const{color:t,disableElevation:n,fullWidth:r,size:o,variant:i,classes:a}=e,s={root:["root",i,`${i}${ae(t)}`,`size${ae(o)}`,`${i}Size${ae(o)}`,`color${ae(t)}`,n&&"disableElevation",r&&"fullWidth"],label:["label"],startIcon:["icon","startIcon",`iconSize${ae(o)}`],endIcon:["icon","endIcon",`iconSize${ae(o)}`]},l=Ne(s,LI,a);return{...a,...l}},E_=[{props:{size:"small"},style:{"& > *:nth-of-type(1)":{fontSize:18}}},{props:{size:"medium"},style:{"& > *:nth-of-type(1)":{fontSize:20}}},{props:{size:"large"},style:{"& > *:nth-of-type(1)":{fontSize:22}}}],jI=J(To,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`${n.variant}${ae(n.color)}`],t[`size${ae(n.size)}`],t[`${n.variant}Size${ae(n.size)}`],n.color==="inherit"&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth]}})($e(({theme:e})=>{const t=e.palette.mode==="light"?e.palette.grey[300]:e.palette.grey[800],n=e.palette.mode==="light"?e.palette.grey.A100:e.palette.grey[700];return{...e.typography.button,minWidth:64,padding:"6px 16px",border:0,borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create(["background-color","box-shadow","border-color","color"],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:"none"},[`&.${Sa.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{variant:"contained"},style:{color:"var(--variant-containedColor)",backgroundColor:"var(--variant-containedBg)",boxShadow:(e.vars||e).shadows[2],"&:hover":{boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2]}},"&:active":{boxShadow:(e.vars||e).shadows[8]},[`&.${Sa.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},[`&.${Sa.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}},{props:{variant:"outlined"},style:{padding:"5px 15px",border:"1px solid currentColor",borderColor:"var(--variant-outlinedBorder, currentColor)",backgroundColor:"var(--variant-outlinedBg)",color:"var(--variant-outlinedColor)",[`&.${Sa.disabled}`]:{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`}}},{props:{variant:"text"},style:{padding:"6px 8px",color:"var(--variant-textColor)",backgroundColor:"var(--variant-textBg)"}},...Object.entries(e.palette).filter(Ft()).map(([r])=>({props:{color:r},style:{"--variant-textColor":(e.vars||e).palette[r].main,"--variant-outlinedColor":(e.vars||e).palette[r].main,"--variant-outlinedBorder":e.vars?`rgba(${e.vars.palette[r].mainChannel} / 0.5)`:Be(e.palette[r].main,.5),"--variant-containedColor":(e.vars||e).palette[r].contrastText,"--variant-containedBg":(e.vars||e).palette[r].main,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":(e.vars||e).palette[r].dark,"--variant-textBg":e.vars?`rgba(${e.vars.palette[r].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[r].main,e.palette.action.hoverOpacity),"--variant-outlinedBorder":(e.vars||e).palette[r].main,"--variant-outlinedBg":e.vars?`rgba(${e.vars.palette[r].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[r].main,e.palette.action.hoverOpacity)}}}})),{props:{color:"inherit"},style:{color:"inherit",borderColor:"currentColor","--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedBg:t,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedHoverBg:n,"--variant-textBg":e.vars?`rgba(${e.vars.palette.text.primaryChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.text.primary,e.palette.action.hoverOpacity),"--variant-outlinedBg":e.vars?`rgba(${e.vars.palette.text.primaryChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.text.primary,e.palette.action.hoverOpacity)}}}},{props:{size:"small",variant:"text"},style:{padding:"4px 5px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"text"},style:{padding:"8px 11px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"outlined"},style:{padding:"3px 9px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"outlined"},style:{padding:"7px 21px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"contained"},style:{padding:"4px 10px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"contained"},style:{padding:"8px 22px",fontSize:e.typography.pxToRem(15)}},{props:{disableElevation:!0},style:{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${Sa.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${Sa.disabled}`]:{boxShadow:"none"}}},{props:{fullWidth:!0},style:{width:"100%"}}]}})),FI=J("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.startIcon,t[`iconSize${ae(n.size)}`]]}})({display:"inherit",marginRight:8,marginLeft:-4,variants:[{props:{size:"small"},style:{marginLeft:-2}},...E_]}),BI=J("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.endIcon,t[`iconSize${ae(n.size)}`]]}})({display:"inherit",marginRight:-4,marginLeft:8,variants:[{props:{size:"small"},style:{marginRight:-2}},...E_]}),zI=b.forwardRef(function(t,n){const r=b.useContext(AI),o=b.useContext(NI),i=d_(r,t),a=De({props:i,name:"MuiButton"}),{children:s,color:l="primary",component:c="button",className:u,disabled:d=!1,disableElevation:f=!1,disableFocusRipple:p=!1,endIcon:h,focusVisibleClassName:y,fullWidth:w=!1,size:v="medium",startIcon:S,type:m,variant:C="text",..._}=a,R={...a,color:l,component:c,disabled:d,disableElevation:f,disableFocusRipple:p,fullWidth:w,size:v,type:m,variant:C},k=DI(R),T=S&&g.jsx(FI,{className:k.startIcon,ownerState:R,children:S}),P=h&&g.jsx(BI,{className:k.endIcon,ownerState:R,children:h}),x=o||"";return g.jsxs(jI,{ownerState:R,className:ve(r.className,k.root,u,x),component:c,disabled:d,focusRipple:!p,focusVisibleClassName:ve(k.focusVisible,y),ref:n,type:m,..._,classes:k,children:[T,s,P]})});function HI(e){return Oe("PrivateSwitchBase",e)}Ee("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const VI=e=>{const{classes:t,checked:n,disabled:r,edge:o}=e,i={root:["root",n&&"checked",r&&"disabled",o&&`edge${ae(o)}`],input:["input"]};return Ne(i,HI,t)},WI=J(To)({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:e,ownerState:t})=>e==="start"&&t.size!=="small",style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:e,ownerState:t})=>e==="end"&&t.size!=="small",style:{marginRight:-12}}]}),UI=J("input",{shouldForwardProp:wn})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),$1=b.forwardRef(function(t,n){const{autoFocus:r,checked:o,checkedIcon:i,className:a,defaultChecked:s,disabled:l,disableFocusRipple:c=!1,edge:u=!1,icon:d,id:f,inputProps:p,inputRef:h,name:y,onBlur:w,onChange:v,onFocus:S,readOnly:m,required:C=!1,tabIndex:_,type:R,value:k,...T}=t,[P,x]=Hi({controlled:o,default:!!s,name:"SwitchBase",state:"checked"}),$=Mo(),I=L=>{S&&S(L),$&&$.onFocus&&$.onFocus(L)},O=L=>{w&&w(L),$&&$.onBlur&&$.onBlur(L)},D=L=>{if(L.nativeEvent.defaultPrevented)return;const B=L.target.checked;x(B),v&&v(L,B)};let M=l;$&&typeof M>"u"&&(M=$.disabled);const A=R==="checkbox"||R==="radio",N={...t,checked:P,disabled:M,disableFocusRipple:c,edge:u},E=VI(N);return g.jsxs(WI,{component:"span",className:ve(E.root,a),centerRipple:!0,focusRipple:!c,disabled:M,tabIndex:null,role:void 0,onFocus:I,onBlur:O,ownerState:N,ref:n,...T,children:[g.jsx(UI,{autoFocus:r,checked:o,defaultChecked:s,className:E.input,disabled:M,id:A?f:void 0,name:y,onChange:D,readOnly:m,ref:h,required:C,ownerState:N,tabIndex:_,type:R,...R==="checkbox"&&k===void 0?{}:{value:k},...p}),P?i:d]})}),GI=un(g.jsx("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),qI=un(g.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),KI=un(g.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function ZI(e){return Oe("MuiCheckbox",e)}const pg=Ee("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),QI=e=>{const{classes:t,indeterminate:n,color:r,size:o}=e,i={root:["root",n&&"indeterminate",`color${ae(r)}`,`size${ae(o)}`]},a=Ne(i,ZI,t);return{...t,...a}},YI=J($1,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiCheckbox",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${ae(n.size)}`],n.color!=="default"&&t[`color${ae(n.color)}`]]}})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[t].main,e.palette.action.hoverOpacity)}}})),...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t},style:{[`&.${pg.checked}, &.${pg.indeterminate}`]:{color:(e.vars||e).palette[t].main},[`&.${pg.disabled}`]:{color:(e.vars||e).palette.action.disabled}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}))),XI=g.jsx(qI,{}),JI=g.jsx(GI,{}),eO=g.jsx(KI,{}),tO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiCheckbox"}),{checkedIcon:o=XI,color:i="primary",icon:a=JI,indeterminate:s=!1,indeterminateIcon:l=eO,inputProps:c,size:u="medium",disableRipple:d=!1,className:f,...p}=r,h=s?l:a,y=s?l:o,w={...r,disableRipple:d,color:i,indeterminate:s,size:u},v=QI(w);return g.jsx(YI,{type:"checkbox",inputProps:{"data-indeterminate":s,...c},icon:b.cloneElement(h,{fontSize:h.props.fontSize??u}),checkedIcon:b.cloneElement(y,{fontSize:y.props.fontSize??u}),ownerState:w,ref:n,className:ve(v.root,f),disableRipple:d,...p,classes:v})});function Ab(e){return e.substring(2).toLowerCase()}function nO(e,t){return t.documentElement.clientWidth(setTimeout(()=>{l.current=!0},0),()=>{l.current=!1}),[]);const u=Rt(ua(t),s),d=bn(h=>{const y=c.current;c.current=!1;const w=ln(s.current);if(!l.current||!s.current||"clientX"in h&&nO(h,w))return;if(a.current){a.current=!1;return}let v;h.composedPath?v=h.composedPath().includes(s.current):v=!w.documentElement.contains(h.target)||s.current.contains(h.target),!v&&(n||!y)&&o(h)}),f=h=>y=>{c.current=!0;const w=t.props[h];w&&w(y)},p={ref:u};return i!==!1&&(p[i]=f(i)),b.useEffect(()=>{if(i!==!1){const h=Ab(i),y=ln(s.current),w=()=>{a.current=!0};return y.addEventListener(h,d),y.addEventListener("touchmove",w),()=>{y.removeEventListener(h,d),y.removeEventListener("touchmove",w)}}},[d,i]),r!==!1&&(p[r]=f(r)),b.useEffect(()=>{if(r!==!1){const h=Ab(r),y=ln(s.current);return y.addEventListener(h,d),()=>{y.removeEventListener(h,d)}}},[d,r]),g.jsx(b.Fragment,{children:b.cloneElement(t,p)})}function oO(e){const t=ln(e);return t.body===e?zr(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function Ml(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function Nb(e){return parseInt(zr(e).getComputedStyle(e).paddingRight,10)||0}function iO(e){const n=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].includes(e.tagName),r=e.tagName==="INPUT"&&e.getAttribute("type")==="hidden";return n||r}function Db(e,t,n,r,o){const i=[t,n,...r];[].forEach.call(e.children,a=>{const s=!i.includes(a),l=!iO(a);s&&l&&Ml(a,o)})}function gg(e,t){let n=-1;return e.some((r,o)=>t(r)?(n=o,!0):!1),n}function aO(e,t){const n=[],r=e.container;if(!t.disableScrollLock){if(oO(r)){const a=u_(zr(r));n.push({value:r.style.paddingRight,property:"padding-right",el:r}),r.style.paddingRight=`${Nb(r)+a}px`;const s=ln(r).querySelectorAll(".mui-fixed");[].forEach.call(s,l=>{n.push({value:l.style.paddingRight,property:"padding-right",el:l}),l.style.paddingRight=`${Nb(l)+a}px`})}let i;if(r.parentNode instanceof DocumentFragment)i=ln(r).body;else{const a=r.parentElement,s=zr(r);i=(a==null?void 0:a.nodeName)==="HTML"&&s.getComputedStyle(a).overflowY==="scroll"?a:r}n.push({value:i.style.overflow,property:"overflow",el:i},{value:i.style.overflowX,property:"overflow-x",el:i},{value:i.style.overflowY,property:"overflow-y",el:i}),i.style.overflow="hidden"}return()=>{n.forEach(({value:i,el:a,property:s})=>{i?a.style.setProperty(s,i):a.style.removeProperty(s)})}}function sO(e){const t=[];return[].forEach.call(e.children,n=>{n.getAttribute("aria-hidden")==="true"&&t.push(n)}),t}class lO{constructor(){this.modals=[],this.containers=[]}add(t,n){let r=this.modals.indexOf(t);if(r!==-1)return r;r=this.modals.length,this.modals.push(t),t.modalRef&&Ml(t.modalRef,!1);const o=sO(n);Db(n,t.mount,t.modalRef,o,!0);const i=gg(this.containers,a=>a.container===n);return i!==-1?(this.containers[i].modals.push(t),r):(this.containers.push({modals:[t],container:n,restore:null,hiddenSiblings:o}),r)}mount(t,n){const r=gg(this.containers,i=>i.modals.includes(t)),o=this.containers[r];o.restore||(o.restore=aO(o,n))}remove(t,n=!0){const r=this.modals.indexOf(t);if(r===-1)return r;const o=gg(this.containers,a=>a.modals.includes(t)),i=this.containers[o];if(i.modals.splice(i.modals.indexOf(t),1),this.modals.splice(r,1),i.modals.length===0)i.restore&&i.restore(),t.modalRef&&Ml(t.modalRef,n),Db(i.container,t.mount,t.modalRef,i.hiddenSiblings,!1),this.containers.splice(o,1);else{const a=i.modals[i.modals.length-1];a.modalRef&&Ml(a.modalRef,!1)}return r}isTopModal(t){return this.modals.length>0&&this.modals[this.modals.length-1]===t}}const cO=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function uO(e){const t=parseInt(e.getAttribute("tabindex")||"",10);return Number.isNaN(t)?e.contentEditable==="true"||(e.nodeName==="AUDIO"||e.nodeName==="VIDEO"||e.nodeName==="DETAILS")&&e.getAttribute("tabindex")===null?0:e.tabIndex:t}function dO(e){if(e.tagName!=="INPUT"||e.type!=="radio"||!e.name)return!1;const t=r=>e.ownerDocument.querySelector(`input[type="radio"]${r}`);let n=t(`[name="${e.name}"]:checked`);return n||(n=t(`[name="${e.name}"]`)),n!==e}function fO(e){return!(e.disabled||e.tagName==="INPUT"&&e.type==="hidden"||dO(e))}function pO(e){const t=[],n=[];return Array.from(e.querySelectorAll(cO)).forEach((r,o)=>{const i=uO(r);i===-1||!fO(r)||(i===0?t.push(r):n.push({documentOrder:o,tabIndex:i,node:r}))}),n.sort((r,o)=>r.tabIndex===o.tabIndex?r.documentOrder-o.documentOrder:r.tabIndex-o.tabIndex).map(r=>r.node).concat(t)}function gO(){return!0}function hO(e){const{children:t,disableAutoFocus:n=!1,disableEnforceFocus:r=!1,disableRestoreFocus:o=!1,getTabbable:i=pO,isEnabled:a=gO,open:s}=e,l=b.useRef(!1),c=b.useRef(null),u=b.useRef(null),d=b.useRef(null),f=b.useRef(null),p=b.useRef(!1),h=b.useRef(null),y=Rt(ua(t),h),w=b.useRef(null);b.useEffect(()=>{!s||!h.current||(p.current=!n)},[n,s]),b.useEffect(()=>{if(!s||!h.current)return;const m=ln(h.current);return h.current.contains(m.activeElement)||(h.current.hasAttribute("tabIndex")||h.current.setAttribute("tabIndex","-1"),p.current&&h.current.focus()),()=>{o||(d.current&&d.current.focus&&(l.current=!0,d.current.focus()),d.current=null)}},[s]),b.useEffect(()=>{if(!s||!h.current)return;const m=ln(h.current),C=k=>{w.current=k,!(r||!a()||k.key!=="Tab")&&m.activeElement===h.current&&k.shiftKey&&(l.current=!0,u.current&&u.current.focus())},_=()=>{var P,x;const k=h.current;if(k===null)return;if(!m.hasFocus()||!a()||l.current){l.current=!1;return}if(k.contains(m.activeElement)||r&&m.activeElement!==c.current&&m.activeElement!==u.current)return;if(m.activeElement!==f.current)f.current=null;else if(f.current!==null)return;if(!p.current)return;let T=[];if((m.activeElement===c.current||m.activeElement===u.current)&&(T=i(h.current)),T.length>0){const $=!!((P=w.current)!=null&&P.shiftKey&&((x=w.current)==null?void 0:x.key)==="Tab"),I=T[0],O=T[T.length-1];typeof I!="string"&&typeof O!="string"&&($?O.focus():I.focus())}else k.focus()};m.addEventListener("focusin",_),m.addEventListener("keydown",C,!0);const R=setInterval(()=>{m.activeElement&&m.activeElement.tagName==="BODY"&&_()},50);return()=>{clearInterval(R),m.removeEventListener("focusin",_),m.removeEventListener("keydown",C,!0)}},[n,r,o,a,s,i]);const v=m=>{d.current===null&&(d.current=m.relatedTarget),p.current=!0,f.current=m.target;const C=t.props.onFocus;C&&C(m)},S=m=>{d.current===null&&(d.current=m.relatedTarget),p.current=!0};return g.jsxs(b.Fragment,{children:[g.jsx("div",{tabIndex:s?0:-1,onFocus:S,ref:c,"data-testid":"sentinelStart"}),b.cloneElement(t,{ref:y,onFocus:v}),g.jsx("div",{tabIndex:s?0:-1,onFocus:S,ref:u,"data-testid":"sentinelEnd"})]})}function mO(e){return typeof e=="function"?e():e}function vO(e){return e?e.props.hasOwnProperty("in"):!1}const pu=new lO;function yO(e){const{container:t,disableEscapeKeyDown:n=!1,disableScrollLock:r=!1,closeAfterTransition:o=!1,onTransitionEnter:i,onTransitionExited:a,children:s,onClose:l,open:c,rootRef:u}=e,d=b.useRef({}),f=b.useRef(null),p=b.useRef(null),h=Rt(p,u),[y,w]=b.useState(!c),v=vO(s);let S=!0;(e["aria-hidden"]==="false"||e["aria-hidden"]===!1)&&(S=!1);const m=()=>ln(f.current),C=()=>(d.current.modalRef=p.current,d.current.mount=f.current,d.current),_=()=>{pu.mount(C(),{disableScrollLock:r}),p.current&&(p.current.scrollTop=0)},R=bn(()=>{const M=mO(t)||m().body;pu.add(C(),M),p.current&&_()}),k=()=>pu.isTopModal(C()),T=bn(M=>{f.current=M,M&&(c&&k()?_():p.current&&Ml(p.current,S))}),P=b.useCallback(()=>{pu.remove(C(),S)},[S]);b.useEffect(()=>()=>{P()},[P]),b.useEffect(()=>{c?R():(!v||!o)&&P()},[c,P,v,o,R]);const x=M=>A=>{var N;(N=M.onKeyDown)==null||N.call(M,A),!(A.key!=="Escape"||A.which===229||!k())&&(n||(A.stopPropagation(),l&&l(A,"escapeKeyDown")))},$=M=>A=>{var N;(N=M.onClick)==null||N.call(M,A),A.target===A.currentTarget&&l&&l(A,"backdropClick")};return{getRootProps:(M={})=>{const A=f_(e);delete A.onTransitionEnter,delete A.onTransitionExited;const N={...A,...M};return{role:"presentation",...N,onKeyDown:x(N),ref:h}},getBackdropProps:(M={})=>{const A=M;return{"aria-hidden":!0,...A,onClick:$(A),open:c}},getTransitionProps:()=>{const M=()=>{w(!1),i&&i()},A=()=>{w(!0),a&&a(),o&&P()};return{onEnter:gm(M,s==null?void 0:s.props.onEnter),onExited:gm(A,s==null?void 0:s.props.onExited)}},rootRef:h,portalRef:T,isTopModal:k,exited:y,hasTransition:v}}function bO(e){return Oe("MuiModal",e)}Ee("MuiModal",["root","hidden","backdrop"]);const xO=e=>{const{open:t,exited:n,classes:r}=e;return Ne({root:["root",!t&&n&&"hidden"],backdrop:["backdrop"]},bO,r)},SO=J("div",{name:"MuiModal",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.open&&n.exited&&t.hidden]}})($e(({theme:e})=>({position:"fixed",zIndex:(e.vars||e).zIndex.modal,right:0,bottom:0,top:0,left:0,variants:[{props:({ownerState:t})=>!t.open&&t.exited,style:{visibility:"hidden"}}]}))),wO=J(MI,{name:"MuiModal",slot:"Backdrop",overridesResolver:(e,t)=>t.backdrop})({zIndex:-1}),CO=b.forwardRef(function(t,n){const r=De({name:"MuiModal",props:t}),{BackdropComponent:o=wO,BackdropProps:i,classes:a,className:s,closeAfterTransition:l=!1,children:c,container:u,component:d,components:f={},componentsProps:p={},disableAutoFocus:h=!1,disableEnforceFocus:y=!1,disableEscapeKeyDown:w=!1,disablePortal:v=!1,disableRestoreFocus:S=!1,disableScrollLock:m=!1,hideBackdrop:C=!1,keepMounted:_=!1,onBackdropClick:R,onClose:k,onTransitionEnter:T,onTransitionExited:P,open:x,slotProps:$={},slots:I={},theme:O,...D}=r,M={...r,closeAfterTransition:l,disableAutoFocus:h,disableEnforceFocus:y,disableEscapeKeyDown:w,disablePortal:v,disableRestoreFocus:S,disableScrollLock:m,hideBackdrop:C,keepMounted:_},{getRootProps:A,getBackdropProps:N,getTransitionProps:E,portalRef:L,isTopModal:B,exited:H,hasTransition:z}=yO({...M,rootRef:n}),j={...M,exited:H},F=xO(j),W={};if(c.props.tabIndex===void 0&&(W.tabIndex="-1"),z){const{onEnter:q,onExited:ce}=E();W.onEnter=q,W.onExited=ce}const V={...D,slots:{root:f.Root,backdrop:f.Backdrop,...I},slotProps:{...p,...$}},[ee,re]=an("root",{elementType:SO,externalForwardedProps:V,getSlotProps:A,additionalProps:{ref:n,as:d},ownerState:j,className:ve(s,F==null?void 0:F.root,!j.open&&j.exited&&(F==null?void 0:F.hidden))}),[U,K]=an("backdrop",{elementType:o,externalForwardedProps:V,additionalProps:i,getSlotProps:q=>N({...q,onClick:ce=>{R&&R(ce),q!=null&&q.onClick&&q.onClick(ce)}}),className:ve(i==null?void 0:i.className,F==null?void 0:F.backdrop),ownerState:j}),se=Rt(i==null?void 0:i.ref,K.ref);return!_&&!x&&(!z||H)?null:g.jsx(k_,{ref:L,container:u,disablePortal:v,children:g.jsxs(ee,{...re,children:[!C&&o?g.jsx(U,{...K,ref:se}):null,g.jsx(hO,{disableEnforceFocus:y,disableAutoFocus:h,disableRestoreFocus:S,isEnabled:B,open:x,children:b.cloneElement(c,W)})]})})}),jb=Ee("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]),_O=e=>{const{classes:t,disableUnderline:n,startAdornment:r,endAdornment:o,size:i,hiddenLabel:a,multiline:s}=e,l={root:["root",!n&&"underline",r&&"adornedStart",o&&"adornedEnd",i==="small"&&`size${ae(i)}`,a&&"hiddenLabel",s&&"multiline"],input:["input"]},c=Ne(l,uI,t);return{...t,...c}},RO=J(gp,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiFilledInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...fp(e,t),!n.disableUnderline&&t.underline]}})($e(({theme:e})=>{const t=e.palette.mode==="light",n=t?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",r=t?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",o=t?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",i=t?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return{position:"relative",backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r,borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:e.vars?e.vars.palette.FilledInput.hoverBg:o,"@media (hover: none)":{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r}},[`&.${qn.focused}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r},[`&.${qn.disabled}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.disabledBg:i},variants:[{props:({ownerState:a})=>!a.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${qn.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${qn.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`:n}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${qn.disabled}, .${qn.error}):before`]:{borderBottom:`1px solid ${(e.vars||e).palette.text.primary}`},[`&.${qn.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(Ft()).map(([a])=>{var s;return{props:{disableUnderline:!1,color:a},style:{"&::after":{borderBottom:`2px solid ${(s=(e.vars||e).palette[a])==null?void 0:s.main}`}}}}),{props:({ownerState:a})=>a.startAdornment,style:{paddingLeft:12}},{props:({ownerState:a})=>a.endAdornment,style:{paddingRight:12}},{props:({ownerState:a})=>a.multiline,style:{padding:"25px 12px 8px"}},{props:({ownerState:a,size:s})=>a.multiline&&s==="small",style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:a})=>a.multiline&&a.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:a})=>a.multiline&&a.hiddenLabel&&a.size==="small",style:{paddingTop:8,paddingBottom:9}}]}})),TO=J(hp,{name:"MuiFilledInput",slot:"Input",overridesResolver:pp})($e(({theme:e})=>({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12,...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},...e.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:t})=>t.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:t})=>t.startAdornment,style:{paddingLeft:0}},{props:({ownerState:t})=>t.endAdornment,style:{paddingRight:0}},{props:({ownerState:t})=>t.hiddenLabel&&t.size==="small",style:{paddingTop:8,paddingBottom:9}},{props:({ownerState:t})=>t.multiline,style:{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}}]}))),Ud=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFilledInput"}),{disableUnderline:o=!1,components:i={},componentsProps:a,fullWidth:s=!1,hiddenLabel:l,inputComponent:c="input",multiline:u=!1,slotProps:d,slots:f={},type:p="text",...h}=r,y={...r,disableUnderline:o,fullWidth:s,inputComponent:c,multiline:u,type:p},w=_O(r),v={root:{ownerState:y},input:{ownerState:y}},S=d??a?io(v,d??a):v,m=f.root??i.Root??RO,C=f.input??i.Input??TO;return g.jsx(mp,{slots:{root:m,input:C},componentsProps:S,fullWidth:s,inputComponent:c,multiline:u,ref:n,type:p,...h,classes:w})});Ud&&(Ud.muiName="Input");function PO(e){return Oe("MuiFormControl",e)}Ee("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);const kO=e=>{const{classes:t,margin:n,fullWidth:r}=e,o={root:["root",n!=="none"&&`margin${ae(n)}`,r&&"fullWidth"]};return Ne(o,PO,t)},$O=J("div",{name:"MuiFormControl",slot:"Root",overridesResolver:({ownerState:e},t)=>({...t.root,...t[`margin${ae(e.margin)}`],...e.fullWidth&&t.fullWidth})})({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top",variants:[{props:{margin:"normal"},style:{marginTop:16,marginBottom:8}},{props:{margin:"dense"},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:"100%"}}]}),EO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormControl"}),{children:o,className:i,color:a="primary",component:s="div",disabled:l=!1,error:c=!1,focused:u,fullWidth:d=!1,hiddenLabel:f=!1,margin:p="none",required:h=!1,size:y="medium",variant:w="outlined",...v}=r,S={...r,color:a,component:s,disabled:l,error:c,fullWidth:d,hiddenLabel:f,margin:p,required:h,size:y,variant:w},m=kO(S),[C,_]=b.useState(()=>{let O=!1;return o&&b.Children.forEach(o,D=>{if(!fg(D,["Input","Select"]))return;const M=fg(D,["Select"])?D.props.input:D;M&&iI(M.props)&&(O=!0)}),O}),[R,k]=b.useState(()=>{let O=!1;return o&&b.Children.forEach(o,D=>{fg(D,["Input","Select"])&&(Wd(D.props,!0)||Wd(D.props.inputProps,!0))&&(O=!0)}),O}),[T,P]=b.useState(!1);l&&T&&P(!1);const x=u!==void 0&&!l?u:T;let $;b.useRef(!1);const I=b.useMemo(()=>({adornedStart:C,setAdornedStart:_,color:a,disabled:l,error:c,filled:R,focused:x,fullWidth:d,hiddenLabel:f,size:y,onBlur:()=>{P(!1)},onEmpty:()=>{k(!1)},onFilled:()=>{k(!0)},onFocus:()=>{P(!0)},registerEffect:$,required:h,variant:w}),[C,a,l,c,R,x,d,f,$,h,y,w]);return g.jsx(k1.Provider,{value:I,children:g.jsx($O,{as:s,ownerState:S,className:ve(m.root,i),ref:n,...v,children:o})})});function MO(e){return Oe("MuiFormControlLabel",e)}const vl=Ee("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error","required","asterisk"]),IO=e=>{const{classes:t,disabled:n,labelPlacement:r,error:o,required:i}=e,a={root:["root",n&&"disabled",`labelPlacement${ae(r)}`,o&&"error",i&&"required"],label:["label",n&&"disabled"],asterisk:["asterisk",o&&"error"]};return Ne(a,MO,t)},OO=J("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${vl.label}`]:t.label},t.root,t[`labelPlacement${ae(n.labelPlacement)}`]]}})($e(({theme:e})=>({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16,[`&.${vl.disabled}`]:{cursor:"default"},[`& .${vl.label}`]:{[`&.${vl.disabled}`]:{color:(e.vars||e).palette.text.disabled}},variants:[{props:{labelPlacement:"start"},style:{flexDirection:"row-reverse",marginRight:-11}},{props:{labelPlacement:"top"},style:{flexDirection:"column-reverse"}},{props:{labelPlacement:"bottom"},style:{flexDirection:"column"}},{props:({labelPlacement:t})=>t==="start"||t==="top"||t==="bottom",style:{marginLeft:16}}]}))),LO=J("span",{name:"MuiFormControlLabel",slot:"Asterisk",overridesResolver:(e,t)=>t.asterisk})($e(({theme:e})=>({[`&.${vl.error}`]:{color:(e.vars||e).palette.error.main}}))),M_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormControlLabel"}),{checked:o,className:i,componentsProps:a={},control:s,disabled:l,disableTypography:c,inputRef:u,label:d,labelPlacement:f="end",name:p,onChange:h,required:y,slots:w={},slotProps:v={},value:S,...m}=r,C=Mo(),_=l??s.props.disabled??(C==null?void 0:C.disabled),R=y??s.props.required,k={disabled:_,required:R};["checked","name","onChange","value","inputRef"].forEach(M=>{typeof s.props[M]>"u"&&typeof r[M]<"u"&&(k[M]=r[M])});const T=da({props:r,muiFormControl:C,states:["error"]}),P={...r,disabled:_,labelPlacement:f,required:R,error:T.error},x=IO(P),$={slots:w,slotProps:{...a,...v}},[I,O]=an("typography",{elementType:mt,externalForwardedProps:$,ownerState:P});let D=d;return D!=null&&D.type!==mt&&!c&&(D=g.jsx(I,{component:"span",...O,className:ve(x.label,O==null?void 0:O.className),children:D})),g.jsxs(OO,{className:ve(x.root,i),ownerState:P,ref:n,...m,children:[b.cloneElement(s,k),R?g.jsxs("div",{children:[D,g.jsxs(LO,{ownerState:P,"aria-hidden":!0,className:x.asterisk,children:[" ","*"]})]}):D]})});function AO(e){return Oe("MuiFormHelperText",e)}const Fb=Ee("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]);var Bb;const NO=e=>{const{classes:t,contained:n,size:r,disabled:o,error:i,filled:a,focused:s,required:l}=e,c={root:["root",o&&"disabled",i&&"error",r&&`size${ae(r)}`,n&&"contained",s&&"focused",a&&"filled",l&&"required"]};return Ne(c,AO,t)},DO=J("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.size&&t[`size${ae(n.size)}`],n.contained&&t.contained,n.filled&&t.filled]}})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.caption,textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${Fb.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Fb.error}`]:{color:(e.vars||e).palette.error.main},variants:[{props:{size:"small"},style:{marginTop:4}},{props:({ownerState:t})=>t.contained,style:{marginLeft:14,marginRight:14}}]}))),jO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormHelperText"}),{children:o,className:i,component:a="p",disabled:s,error:l,filled:c,focused:u,margin:d,required:f,variant:p,...h}=r,y=Mo(),w=da({props:r,muiFormControl:y,states:["variant","size","disabled","error","filled","focused","required"]}),v={...r,component:a,contained:w.variant==="filled"||w.variant==="outlined",variant:w.variant,size:w.size,disabled:w.disabled,error:w.error,filled:w.filled,focused:w.focused,required:w.required};delete v.ownerState;const S=NO(v);return g.jsx(DO,{as:a,className:ve(S.root,i),ref:n,...h,ownerState:v,children:o===" "?Bb||(Bb=g.jsx("span",{className:"notranslate",children:"​"})):o})});function FO(e){return Oe("MuiFormLabel",e)}const Il=Ee("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),BO=e=>{const{classes:t,color:n,focused:r,disabled:o,error:i,filled:a,required:s}=e,l={root:["root",`color${ae(n)}`,o&&"disabled",i&&"error",a&&"filled",r&&"focused",s&&"required"],asterisk:["asterisk",i&&"error"]};return Ne(l,FO,t)},zO=J("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:({ownerState:e},t)=>({...t.root,...e.color==="secondary"&&t.colorSecondary,...e.filled&&t.filled})})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.body1,lineHeight:"1.4375em",padding:0,position:"relative",variants:[...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t},style:{[`&.${Il.focused}`]:{color:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${Il.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Il.error}`]:{color:(e.vars||e).palette.error.main}}}]}))),HO=J("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:(e,t)=>t.asterisk})($e(({theme:e})=>({[`&.${Il.error}`]:{color:(e.vars||e).palette.error.main}}))),VO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormLabel"}),{children:o,className:i,color:a,component:s="label",disabled:l,error:c,filled:u,focused:d,required:f,...p}=r,h=Mo(),y=da({props:r,muiFormControl:h,states:["color","required","focused","disabled","error","filled"]}),w={...r,color:y.color||"primary",component:s,disabled:y.disabled,error:y.error,filled:y.filled,focused:y.focused,required:y.required},v=BO(w);return g.jsxs(zO,{as:s,ownerState:w,className:ve(v.root,i),ref:n,...p,children:[o,y.required&&g.jsxs(HO,{ownerState:w,"aria-hidden":!0,className:v.asterisk,children:[" ","*"]})]})});function wm(e){return`scale(${e}, ${e**2})`}const WO={entering:{opacity:1,transform:wm(1)},entered:{opacity:1,transform:"none"}},hg=typeof navigator<"u"&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),uc=b.forwardRef(function(t,n){const{addEndListener:r,appear:o=!0,children:i,easing:a,in:s,onEnter:l,onEntered:c,onEntering:u,onExit:d,onExited:f,onExiting:p,style:h,timeout:y="auto",TransitionComponent:w=Vr,...v}=t,S=Ni(),m=b.useRef(),C=zt(),_=b.useRef(null),R=Rt(_,ua(i),n),k=M=>A=>{if(M){const N=_.current;A===void 0?M(N):M(N,A)}},T=k(u),P=k((M,A)=>{m_(M);const{duration:N,delay:E,easing:L}=fs({style:h,timeout:y,easing:a},{mode:"enter"});let B;y==="auto"?(B=C.transitions.getAutoHeightDuration(M.clientHeight),m.current=B):B=N,M.style.transition=[C.transitions.create("opacity",{duration:B,delay:E}),C.transitions.create("transform",{duration:hg?B:B*.666,delay:E,easing:L})].join(","),l&&l(M,A)}),x=k(c),$=k(p),I=k(M=>{const{duration:A,delay:N,easing:E}=fs({style:h,timeout:y,easing:a},{mode:"exit"});let L;y==="auto"?(L=C.transitions.getAutoHeightDuration(M.clientHeight),m.current=L):L=A,M.style.transition=[C.transitions.create("opacity",{duration:L,delay:N}),C.transitions.create("transform",{duration:hg?L:L*.666,delay:hg?N:N||L*.333,easing:E})].join(","),M.style.opacity=0,M.style.transform=wm(.75),d&&d(M)}),O=k(f),D=M=>{y==="auto"&&S.start(m.current||0,M),r&&r(_.current,M)};return g.jsx(w,{appear:o,in:s,nodeRef:_,onEnter:P,onEntered:x,onEntering:T,onExit:I,onExited:O,onExiting:$,addEndListener:D,timeout:y==="auto"?null:y,...v,children:(M,A)=>b.cloneElement(i,{style:{opacity:0,transform:wm(.75),visibility:M==="exited"&&!s?"hidden":void 0,...WO[M],...h,...i.props.style},ref:R,...A})})});uc&&(uc.muiSupportAuto=!0);const UO=e=>{const{classes:t,disableUnderline:n}=e,o=Ne({root:["root",!n&&"underline"],input:["input"]},lI,t);return{...t,...o}},GO=J(gp,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...fp(e,t),!n.disableUnderline&&t.underline]}})($e(({theme:e})=>{let n=e.palette.mode==="light"?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return e.vars&&(n=`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`),{position:"relative",variants:[{props:({ownerState:r})=>r.formControl,style:{"label + &":{marginTop:16}}},{props:({ownerState:r})=>!r.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Go.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Go.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${n}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Go.disabled}, .${Go.error}):before`]:{borderBottom:`2px solid ${(e.vars||e).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${n}`}},[`&.${Go.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(Ft()).map(([r])=>({props:{color:r,disableUnderline:!1},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[r].main}`}}}))]}})),qO=J(hp,{name:"MuiInput",slot:"Input",overridesResolver:pp})({}),Gd=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiInput"}),{disableUnderline:o=!1,components:i={},componentsProps:a,fullWidth:s=!1,inputComponent:l="input",multiline:c=!1,slotProps:u,slots:d={},type:f="text",...p}=r,h=UO(r),w={root:{ownerState:{disableUnderline:o}}},v=u??a?io(u??a,w):w,S=d.root??i.Root??GO,m=d.input??i.Input??qO;return g.jsx(mp,{slots:{root:S,input:m},slotProps:v,fullWidth:s,inputComponent:l,multiline:c,ref:n,type:f,...p,classes:h})});Gd&&(Gd.muiName="Input");function KO(e){return Oe("MuiInputLabel",e)}Ee("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);const ZO=e=>{const{classes:t,formControl:n,size:r,shrink:o,disableAnimation:i,variant:a,required:s}=e,l={root:["root",n&&"formControl",!i&&"animated",o&&"shrink",r&&r!=="normal"&&`size${ae(r)}`,a],asterisk:[s&&"asterisk"]},c=Ne(l,KO,t);return{...t,...c}},QO=J(VO,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Il.asterisk}`]:t.asterisk},t.root,n.formControl&&t.formControl,n.size==="small"&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,n.focused&&t.focused,t[n.variant]]}})($e(({theme:e})=>({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",variants:[{props:({ownerState:t})=>t.formControl,style:{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"}},{props:{size:"small"},style:{transform:"translate(0, 17px) scale(1)"}},{props:({ownerState:t})=>t.shrink,style:{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"}},{props:({ownerState:t})=>!t.disableAnimation,style:{transition:e.transitions.create(["color","transform","max-width"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})}},{props:{variant:"filled"},style:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"filled",size:"small"},style:{transform:"translate(12px, 13px) scale(1)"}},{props:({variant:t,ownerState:n})=>t==="filled"&&n.shrink,style:{userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"}},{props:({variant:t,ownerState:n,size:r})=>t==="filled"&&n.shrink&&r==="small",style:{transform:"translate(12px, 4px) scale(0.75)"}},{props:{variant:"outlined"},style:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"outlined",size:"small"},style:{transform:"translate(14px, 9px) scale(1)"}},{props:({variant:t,ownerState:n})=>t==="outlined"&&n.shrink,style:{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}}]}))),YO=b.forwardRef(function(t,n){const r=De({name:"MuiInputLabel",props:t}),{disableAnimation:o=!1,margin:i,shrink:a,variant:s,className:l,...c}=r,u=Mo();let d=a;typeof d>"u"&&u&&(d=u.filled||u.focused||u.adornedStart);const f=da({props:r,muiFormControl:u,states:["size","variant","required","focused"]}),p={...r,disableAnimation:o,formControl:u,shrink:d,size:f.size,variant:f.variant,required:f.required,focused:f.focused},h=ZO(p);return g.jsx(QO,{"data-shrink":d,ref:n,className:ve(h.root,l),...c,ownerState:p,classes:h})}),Cm=b.createContext({});function XO(e){return Oe("MuiList",e)}Ee("MuiList",["root","padding","dense","subheader"]);const JO=e=>{const{classes:t,disablePadding:n,dense:r,subheader:o}=e;return Ne({root:["root",!n&&"padding",r&&"dense",o&&"subheader"]},XO,t)},eL=J("ul",{name:"MuiList",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})({listStyle:"none",margin:0,padding:0,position:"relative",variants:[{props:({ownerState:e})=>!e.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:e})=>e.subheader,style:{paddingTop:0}}]}),tL=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiList"}),{children:o,className:i,component:a="ul",dense:s=!1,disablePadding:l=!1,subheader:c,...u}=r,d=b.useMemo(()=>({dense:s}),[s]),f={...r,component:a,dense:s,disablePadding:l},p=JO(f);return g.jsx(Cm.Provider,{value:d,children:g.jsxs(eL,{as:a,className:ve(p.root,i),ref:n,ownerState:f,...u,children:[c,o]})})}),zb=Ee("MuiListItemIcon",["root","alignItemsFlexStart"]),Hb=Ee("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]);function mg(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function Vb(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function I_(e,t){if(t===void 0)return!0;let n=e.innerText;return n===void 0&&(n=e.textContent),n=n.trim().toLowerCase(),n.length===0?!1:t.repeating?n[0]===t.keys[0]:n.startsWith(t.keys.join(""))}function Js(e,t,n,r,o,i){let a=!1,s=o(e,t,t?n:!1);for(;s;){if(s===e.firstChild){if(a)return!1;a=!0}const l=r?!1:s.disabled||s.getAttribute("aria-disabled")==="true";if(!s.hasAttribute("tabindex")||!I_(s,i)||l)s=o(e,s,n);else return s.focus(),!0}return!1}const nL=b.forwardRef(function(t,n){const{actions:r,autoFocus:o=!1,autoFocusItem:i=!1,children:a,className:s,disabledItemsFocusable:l=!1,disableListWrap:c=!1,onKeyDown:u,variant:d="selectedMenu",...f}=t,p=b.useRef(null),h=b.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});Hr(()=>{o&&p.current.focus()},[o]),b.useImperativeHandle(r,()=>({adjustStyleForScrollbar:(m,{direction:C})=>{const _=!p.current.style.width;if(m.clientHeight{const C=p.current,_=m.key;if(m.ctrlKey||m.metaKey||m.altKey){u&&u(m);return}const k=ln(C).activeElement;if(_==="ArrowDown")m.preventDefault(),Js(C,k,c,l,mg);else if(_==="ArrowUp")m.preventDefault(),Js(C,k,c,l,Vb);else if(_==="Home")m.preventDefault(),Js(C,null,c,l,mg);else if(_==="End")m.preventDefault(),Js(C,null,c,l,Vb);else if(_.length===1){const T=h.current,P=_.toLowerCase(),x=performance.now();T.keys.length>0&&(x-T.lastTime>500?(T.keys=[],T.repeating=!0,T.previousKeyMatched=!0):T.repeating&&P!==T.keys[0]&&(T.repeating=!1)),T.lastTime=x,T.keys.push(P);const $=k&&!T.repeating&&I_(k,T);T.previousKeyMatched&&($||Js(C,k,!1,l,mg,T))?m.preventDefault():T.previousKeyMatched=!1}u&&u(m)},w=Rt(p,n);let v=-1;b.Children.forEach(a,(m,C)=>{if(!b.isValidElement(m)){v===C&&(v+=1,v>=a.length&&(v=-1));return}m.props.disabled||(d==="selectedMenu"&&m.props.selected||v===-1)&&(v=C),v===C&&(m.props.disabled||m.props.muiSkipListHighlight||m.type.muiSkipListHighlight)&&(v+=1,v>=a.length&&(v=-1))});const S=b.Children.map(a,(m,C)=>{if(C===v){const _={};return i&&(_.autoFocus=!0),m.props.tabIndex===void 0&&d==="selectedMenu"&&(_.tabIndex=0),b.cloneElement(m,_)}return m});return g.jsx(tL,{role:"menu",ref:w,className:s,onKeyDown:y,tabIndex:o?0:-1,...f,children:S})});function rL(e){return Oe("MuiPopover",e)}Ee("MuiPopover",["root","paper"]);function Wb(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.height/2:t==="bottom"&&(n=e.height),n}function Ub(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.width/2:t==="right"&&(n=e.width),n}function Gb(e){return[e.horizontal,e.vertical].map(t=>typeof t=="number"?`${t}px`:t).join(" ")}function vg(e){return typeof e=="function"?e():e}const oL=e=>{const{classes:t}=e;return Ne({root:["root"],paper:["paper"]},rL,t)},iL=J(CO,{name:"MuiPopover",slot:"Root",overridesResolver:(e,t)=>t.root})({}),O_=J(Is,{name:"MuiPopover",slot:"Paper",overridesResolver:(e,t)=>t.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),L_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiPopover"}),{action:o,anchorEl:i,anchorOrigin:a={vertical:"top",horizontal:"left"},anchorPosition:s,anchorReference:l="anchorEl",children:c,className:u,container:d,elevation:f=8,marginThreshold:p=16,open:h,PaperProps:y={},slots:w={},slotProps:v={},transformOrigin:S={vertical:"top",horizontal:"left"},TransitionComponent:m=uc,transitionDuration:C="auto",TransitionProps:{onEntering:_,...R}={},disableScrollLock:k=!1,...T}=r,P=(v==null?void 0:v.paper)??y,x=b.useRef(),$={...r,anchorOrigin:a,anchorReference:l,elevation:f,marginThreshold:p,externalPaperSlotProps:P,transformOrigin:S,TransitionComponent:m,transitionDuration:C,TransitionProps:R},I=oL($),O=b.useCallback(()=>{if(l==="anchorPosition")return s;const K=vg(i),q=(K&&K.nodeType===1?K:ln(x.current).body).getBoundingClientRect();return{top:q.top+Wb(q,a.vertical),left:q.left+Ub(q,a.horizontal)}},[i,a.horizontal,a.vertical,s,l]),D=b.useCallback(K=>({vertical:Wb(K,S.vertical),horizontal:Ub(K,S.horizontal)}),[S.horizontal,S.vertical]),M=b.useCallback(K=>{const se={width:K.offsetWidth,height:K.offsetHeight},q=D(se);if(l==="none")return{top:null,left:null,transformOrigin:Gb(q)};const ce=O();let ue=ce.top-q.vertical,ie=ce.left-q.horizontal;const te=ue+se.height,de=ie+se.width,Q=zr(vg(i)),be=Q.innerHeight-p,Te=Q.innerWidth-p;if(p!==null&&uebe){const we=te-be;ue-=we,q.vertical+=we}if(p!==null&&ieTe){const we=de-Te;ie-=we,q.horizontal+=we}return{top:`${Math.round(ue)}px`,left:`${Math.round(ie)}px`,transformOrigin:Gb(q)}},[i,l,O,D,p]),[A,N]=b.useState(h),E=b.useCallback(()=>{const K=x.current;if(!K)return;const se=M(K);se.top!==null&&K.style.setProperty("top",se.top),se.left!==null&&(K.style.left=se.left),K.style.transformOrigin=se.transformOrigin,N(!0)},[M]);b.useEffect(()=>(k&&window.addEventListener("scroll",E),()=>window.removeEventListener("scroll",E)),[i,k,E]);const L=(K,se)=>{_&&_(K,se),E()},B=()=>{N(!1)};b.useEffect(()=>{h&&E()}),b.useImperativeHandle(o,()=>h?{updatePosition:()=>{E()}}:null,[h,E]),b.useEffect(()=>{if(!h)return;const K=cp(()=>{E()}),se=zr(i);return se.addEventListener("resize",K),()=>{K.clear(),se.removeEventListener("resize",K)}},[i,h,E]);let H=C;C==="auto"&&!m.muiSupportAuto&&(H=void 0);const z=d||(i?ln(vg(i)).body:void 0),j={slots:w,slotProps:{...v,paper:P}},[F,W]=an("paper",{elementType:O_,externalForwardedProps:j,additionalProps:{elevation:f,className:ve(I.paper,P==null?void 0:P.className),style:A?P.style:{...P.style,opacity:0}},ownerState:$}),[V,{slotProps:ee,...re}]=an("root",{elementType:iL,externalForwardedProps:j,additionalProps:{slotProps:{backdrop:{invisible:!0}},container:z,open:h},ownerState:$,className:ve(I.root,u)}),U=Rt(x,W.ref);return g.jsx(V,{...re,...!Vd(V)&&{slotProps:ee,disableScrollLock:k},...T,ref:n,children:g.jsx(m,{appear:!0,in:h,onEntering:L,onExited:B,timeout:H,...R,children:g.jsx(F,{...W,ref:U,children:c})})})});function aL(e){return Oe("MuiMenu",e)}Ee("MuiMenu",["root","paper","list"]);const sL={vertical:"top",horizontal:"right"},lL={vertical:"top",horizontal:"left"},cL=e=>{const{classes:t}=e;return Ne({root:["root"],paper:["paper"],list:["list"]},aL,t)},uL=J(L_,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiMenu",slot:"Root",overridesResolver:(e,t)=>t.root})({}),dL=J(O_,{name:"MuiMenu",slot:"Paper",overridesResolver:(e,t)=>t.paper})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),fL=J(nL,{name:"MuiMenu",slot:"List",overridesResolver:(e,t)=>t.list})({outline:0}),E1=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiMenu"}),{autoFocus:o=!0,children:i,className:a,disableAutoFocusItem:s=!1,MenuListProps:l={},onClose:c,open:u,PaperProps:d={},PopoverClasses:f,transitionDuration:p="auto",TransitionProps:{onEntering:h,...y}={},variant:w="selectedMenu",slots:v={},slotProps:S={},...m}=r,C=Es(),_={...r,autoFocus:o,disableAutoFocusItem:s,MenuListProps:l,onEntering:h,PaperProps:d,transitionDuration:p,TransitionProps:y,variant:w},R=cL(_),k=o&&!s&&u,T=b.useRef(null),P=(A,N)=>{T.current&&T.current.adjustStyleForScrollbar(A,{direction:C?"rtl":"ltr"}),h&&h(A,N)},x=A=>{A.key==="Tab"&&(A.preventDefault(),c&&c(A,"tabKeyDown"))};let $=-1;b.Children.map(i,(A,N)=>{b.isValidElement(A)&&(A.props.disabled||(w==="selectedMenu"&&A.props.selected||$===-1)&&($=N))});const I=v.paper??dL,O=S.paper??d,D=na({elementType:v.root,externalSlotProps:S.root,ownerState:_,className:[R.root,a]}),M=na({elementType:I,externalSlotProps:O,ownerState:_,className:R.paper});return g.jsx(uL,{onClose:c,anchorOrigin:{vertical:"bottom",horizontal:C?"right":"left"},transformOrigin:C?sL:lL,slots:{paper:I,root:v.root},slotProps:{root:D,paper:M},open:u,ref:n,transitionDuration:p,TransitionProps:{onEntering:P,...y},ownerState:_,...m,classes:f,children:g.jsx(fL,{onKeyDown:x,actions:T,autoFocus:o&&($===-1||s),autoFocusItem:k,variant:w,...l,className:ve(R.list,l.className),children:i})})});function pL(e){return Oe("MuiMenuItem",e)}const el=Ee("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),gL=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},hL=e=>{const{disabled:t,dense:n,divider:r,disableGutters:o,selected:i,classes:a}=e,l=Ne({root:["root",n&&"dense",t&&"disabled",!o&&"gutters",r&&"divider",i&&"selected"]},pL,a);return{...a,...l}},mL=J(To,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:gL})($e(({theme:e})=>({...e.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${el.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${el.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`&.${el.selected}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${el.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${el.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${jb.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${jb.inset}`]:{marginLeft:52},[`& .${Hb.root}`]:{marginTop:0,marginBottom:0},[`& .${Hb.inset}`]:{paddingLeft:36},[`& .${zb.root}`]:{minWidth:36},variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:t})=>!t.dense,style:{[e.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:t})=>t.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...e.typography.body2,[`& .${zb.root} svg`]:{fontSize:"1.25rem"}}}]}))),$c=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiMenuItem"}),{autoFocus:o=!1,component:i="li",dense:a=!1,divider:s=!1,disableGutters:l=!1,focusVisibleClassName:c,role:u="menuitem",tabIndex:d,className:f,...p}=r,h=b.useContext(Cm),y=b.useMemo(()=>({dense:a||h.dense||!1,disableGutters:l}),[h.dense,a,l]),w=b.useRef(null);Hr(()=>{o&&w.current&&w.current.focus()},[o]);const v={...r,dense:y.dense,divider:s,disableGutters:l},S=hL(r),m=Rt(w,n);let C;return r.disabled||(C=d!==void 0?d:-1),g.jsx(Cm.Provider,{value:y,children:g.jsx(mL,{ref:m,role:u,tabIndex:C,component:i,focusVisibleClassName:ve(S.focusVisible,c),className:ve(S.root,f),...p,ownerState:v,classes:S})})});function vL(e){return Oe("MuiNativeSelect",e)}const M1=Ee("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),yL=e=>{const{classes:t,variant:n,disabled:r,multiple:o,open:i,error:a}=e,s={select:["select",n,r&&"disabled",o&&"multiple",a&&"error"],icon:["icon",`icon${ae(n)}`,i&&"iconOpen",r&&"disabled"]};return Ne(s,vL,t)},A_=J("select")(({theme:e})=>({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":{borderRadius:0},[`&.${M1.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(e.vars||e).palette.background.paper},variants:[{props:({ownerState:t})=>t.variant!=="filled"&&t.variant!=="outlined",style:{"&&&":{paddingRight:24,minWidth:16}}},{props:{variant:"filled"},style:{"&&&":{paddingRight:32}}},{props:{variant:"outlined"},style:{borderRadius:(e.vars||e).shape.borderRadius,"&:focus":{borderRadius:(e.vars||e).shape.borderRadius},"&&&":{paddingRight:32}}}]})),bL=J(A_,{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:wn,overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${M1.multiple}`]:t.multiple}]}})({}),N_=J("svg")(({theme:e})=>({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(e.vars||e).palette.action.active,[`&.${M1.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:({ownerState:t})=>t.open,style:{transform:"rotate(180deg)"}},{props:{variant:"filled"},style:{right:7}},{props:{variant:"outlined"},style:{right:7}}]})),xL=J(N_,{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${ae(n.variant)}`],n.open&&t.iconOpen]}})({}),SL=b.forwardRef(function(t,n){const{className:r,disabled:o,error:i,IconComponent:a,inputRef:s,variant:l="standard",...c}=t,u={...t,disabled:o,variant:l,error:i},d=yL(u);return g.jsxs(b.Fragment,{children:[g.jsx(bL,{ownerState:u,className:ve(d.select,r),disabled:o,ref:s||n,...c}),t.multiple?null:g.jsx(xL,{as:a,ownerState:u,className:d.icon})]})});var qb;const wL=J("fieldset",{shouldForwardProp:wn})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),CL=J("legend",{shouldForwardProp:wn})($e(({theme:e})=>({float:"unset",width:"auto",overflow:"hidden",variants:[{props:({ownerState:t})=>!t.withLabel,style:{padding:0,lineHeight:"11px",transition:e.transitions.create("width",{duration:150,easing:e.transitions.easing.easeOut})}},{props:({ownerState:t})=>t.withLabel,style:{display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:e.transitions.create("max-width",{duration:50,easing:e.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}}},{props:({ownerState:t})=>t.withLabel&&t.notched,style:{maxWidth:"100%",transition:e.transitions.create("max-width",{duration:100,easing:e.transitions.easing.easeOut,delay:50})}}]})));function _L(e){const{children:t,classes:n,className:r,label:o,notched:i,...a}=e,s=o!=null&&o!=="",l={...e,notched:i,withLabel:s};return g.jsx(wL,{"aria-hidden":!0,className:r,ownerState:l,...a,children:g.jsx(CL,{ownerState:l,children:s?g.jsx("span",{children:o}):qb||(qb=g.jsx("span",{className:"notranslate",children:"​"}))})})}const RL=e=>{const{classes:t}=e,r=Ne({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},cI,t);return{...t,...r}},TL=J(gp,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:fp})($e(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{position:"relative",borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${lr.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${lr.notchedOutline}`]:{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:t}},[`&.${lr.focused} .${lr.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(e.palette).filter(Ft()).map(([n])=>({props:{color:n},style:{[`&.${lr.focused} .${lr.notchedOutline}`]:{borderColor:(e.vars||e).palette[n].main}}})),{props:{},style:{[`&.${lr.error} .${lr.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${lr.disabled} .${lr.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}}},{props:({ownerState:n})=>n.startAdornment,style:{paddingLeft:14}},{props:({ownerState:n})=>n.endAdornment,style:{paddingRight:14}},{props:({ownerState:n})=>n.multiline,style:{padding:"16.5px 14px"}},{props:({ownerState:n,size:r})=>n.multiline&&r==="small",style:{padding:"8.5px 14px"}}]}})),PL=J(_L,{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:(e,t)=>t.notchedOutline})($e(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:t}})),kL=J(hp,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:pp})($e(({theme:e})=>({padding:"16.5px 14px",...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},...e.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{padding:"8.5px 14px"}},{props:({ownerState:t})=>t.multiline,style:{padding:0}},{props:({ownerState:t})=>t.startAdornment,style:{paddingLeft:0}},{props:({ownerState:t})=>t.endAdornment,style:{paddingRight:0}}]}))),qd=b.forwardRef(function(t,n){var r;const o=De({props:t,name:"MuiOutlinedInput"}),{components:i={},fullWidth:a=!1,inputComponent:s="input",label:l,multiline:c=!1,notched:u,slots:d={},type:f="text",...p}=o,h=RL(o),y=Mo(),w=da({props:o,muiFormControl:y,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),v={...o,color:w.color||"primary",disabled:w.disabled,error:w.error,focused:w.focused,formControl:y,fullWidth:a,hiddenLabel:w.hiddenLabel,multiline:c,size:w.size,type:f},S=d.root??i.Root??TL,m=d.input??i.Input??kL;return g.jsx(mp,{slots:{root:S,input:m},renderSuffix:C=>g.jsx(PL,{ownerState:v,className:h.notchedOutline,label:l!=null&&l!==""&&w.required?r||(r=g.jsxs(b.Fragment,{children:[l," ","*"]})):l,notched:typeof u<"u"?u:!!(C.startAdornment||C.filled||C.focused)}),fullWidth:a,inputComponent:s,multiline:c,ref:n,type:f,...p,classes:{...h,notchedOutline:null}})});qd&&(qd.muiName="Input");const $L=un(g.jsx("path",{d:"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPage"),EL=un(g.jsx("path",{d:"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPage"),ML=un(g.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"RadioButtonUnchecked"),IL=un(g.jsx("path",{d:"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"}),"RadioButtonChecked"),OL=J("span",{shouldForwardProp:wn})({position:"relative",display:"flex"}),LL=J(ML)({transform:"scale(1)"}),AL=J(IL)($e(({theme:e})=>({left:0,position:"absolute",transform:"scale(0)",transition:e.transitions.create("transform",{easing:e.transitions.easing.easeIn,duration:e.transitions.duration.shortest}),variants:[{props:{checked:!0},style:{transform:"scale(1)",transition:e.transitions.create("transform",{easing:e.transitions.easing.easeOut,duration:e.transitions.duration.shortest})}}]})));function D_(e){const{checked:t=!1,classes:n={},fontSize:r}=e,o={...e,checked:t};return g.jsxs(OL,{className:n.root,ownerState:o,children:[g.jsx(LL,{fontSize:r,className:n.background,ownerState:o}),g.jsx(AL,{fontSize:r,className:n.dot,ownerState:o})]})}const NL=b.createContext(void 0);function DL(){return b.useContext(NL)}function jL(e){return Oe("MuiRadio",e)}const Kb=Ee("MuiRadio",["root","checked","disabled","colorPrimary","colorSecondary","sizeSmall"]),FL=e=>{const{classes:t,color:n,size:r}=e,o={root:["root",`color${ae(n)}`,r!=="medium"&&`size${ae(r)}`]};return{...t,...Ne(o,jL,t)}},BL=J($1,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiRadio",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.size!=="medium"&&t[`size${ae(n.size)}`],t[`color${ae(n.color)}`]]}})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,[`&.${Kb.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{color:"default",disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t,disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[t].main,e.palette.action.hoverOpacity)}}})),...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t,disabled:!1},style:{[`&.${Kb.checked}`]:{color:(e.vars||e).palette[t].main}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]})));function zL(e,t){return typeof t=="object"&&t!==null?e===t:String(e)===String(t)}const Zb=g.jsx(D_,{checked:!0}),Qb=g.jsx(D_,{}),HL=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiRadio"}),{checked:o,checkedIcon:i=Zb,color:a="primary",icon:s=Qb,name:l,onChange:c,size:u="medium",className:d,disabled:f,disableRipple:p=!1,...h}=r,y=Mo();let w=f;y&&typeof w>"u"&&(w=y.disabled),w??(w=!1);const v={...r,disabled:w,disableRipple:p,color:a,size:u},S=FL(v),m=DL();let C=o;const _=gm(c,m&&m.onChange);let R=l;return m&&(typeof C>"u"&&(C=zL(m.value,r.value)),typeof R>"u"&&(R=m.name)),g.jsx(BL,{type:"radio",icon:b.cloneElement(s,{fontSize:Qb.props.fontSize??u}),checkedIcon:b.cloneElement(i,{fontSize:Zb.props.fontSize??u}),disabled:w,ownerState:v,classes:S,name:R,checked:C,onChange:_,ref:n,className:ve(S.root,d),...h})});function VL(e){return Oe("MuiSelect",e)}const tl=Ee("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]);var Yb;const WL=J(A_,{name:"MuiSelect",slot:"Select",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`&.${tl.select}`]:t.select},{[`&.${tl.select}`]:t[n.variant]},{[`&.${tl.error}`]:t.error},{[`&.${tl.multiple}`]:t.multiple}]}})({[`&.${tl.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),UL=J(N_,{name:"MuiSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${ae(n.variant)}`],n.open&&t.iconOpen]}})({}),GL=J("input",{shouldForwardProp:e=>l_(e)&&e!=="classes",name:"MuiSelect",slot:"NativeInput",overridesResolver:(e,t)=>t.nativeInput})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function Xb(e,t){return typeof t=="object"&&t!==null?e===t:String(e)===String(t)}function qL(e){return e==null||typeof e=="string"&&!e.trim()}const KL=e=>{const{classes:t,variant:n,disabled:r,multiple:o,open:i,error:a}=e,s={select:["select",n,r&&"disabled",o&&"multiple",a&&"error"],icon:["icon",`icon${ae(n)}`,i&&"iconOpen",r&&"disabled"],nativeInput:["nativeInput"]};return Ne(s,VL,t)},ZL=b.forwardRef(function(t,n){var Le;const{"aria-describedby":r,"aria-label":o,autoFocus:i,autoWidth:a,children:s,className:l,defaultOpen:c,defaultValue:u,disabled:d,displayEmpty:f,error:p=!1,IconComponent:h,inputRef:y,labelId:w,MenuProps:v={},multiple:S,name:m,onBlur:C,onChange:_,onClose:R,onFocus:k,onOpen:T,open:P,readOnly:x,renderValue:$,SelectDisplayProps:I={},tabIndex:O,type:D,value:M,variant:A="standard",...N}=t,[E,L]=Hi({controlled:M,default:u,name:"Select"}),[B,H]=Hi({controlled:P,default:c,name:"Select"}),z=b.useRef(null),j=b.useRef(null),[F,W]=b.useState(null),{current:V}=b.useRef(P!=null),[ee,re]=b.useState(),U=Rt(n,y),K=b.useCallback(fe=>{j.current=fe,fe&&W(fe)},[]),se=F==null?void 0:F.parentNode;b.useImperativeHandle(U,()=>({focus:()=>{j.current.focus()},node:z.current,value:E}),[E]),b.useEffect(()=>{c&&B&&F&&!V&&(re(a?null:se.clientWidth),j.current.focus())},[F,a]),b.useEffect(()=>{i&&j.current.focus()},[i]),b.useEffect(()=>{if(!w)return;const fe=ln(j.current).getElementById(w);if(fe){const oe=()=>{getSelection().isCollapsed&&j.current.focus()};return fe.addEventListener("click",oe),()=>{fe.removeEventListener("click",oe)}}},[w]);const q=(fe,oe)=>{fe?T&&T(oe):R&&R(oe),V||(re(a?null:se.clientWidth),H(fe))},ce=fe=>{fe.button===0&&(fe.preventDefault(),j.current.focus(),q(!0,fe))},ue=fe=>{q(!1,fe)},ie=b.Children.toArray(s),te=fe=>{const oe=ie.find(me=>me.props.value===fe.target.value);oe!==void 0&&(L(oe.props.value),_&&_(fe,oe))},de=fe=>oe=>{let me;if(oe.currentTarget.hasAttribute("tabindex")){if(S){me=Array.isArray(E)?E.slice():[];const je=E.indexOf(fe.props.value);je===-1?me.push(fe.props.value):me.splice(je,1)}else me=fe.props.value;if(fe.props.onClick&&fe.props.onClick(oe),E!==me&&(L(me),_)){const je=oe.nativeEvent||oe,Ve=new je.constructor(je.type,je);Object.defineProperty(Ve,"target",{writable:!0,value:{value:me,name:m}}),_(Ve,fe)}S||q(!1,oe)}},Q=fe=>{x||[" ","ArrowUp","ArrowDown","Enter"].includes(fe.key)&&(fe.preventDefault(),q(!0,fe))},be=F!==null&&B,Te=fe=>{!be&&C&&(Object.defineProperty(fe,"target",{writable:!0,value:{value:E,name:m}}),C(fe))};delete N["aria-invalid"];let we,ge;const le=[];let Se=!1;(Wd({value:E})||f)&&($?we=$(E):Se=!0);const ye=ie.map(fe=>{if(!b.isValidElement(fe))return null;let oe;if(S){if(!Array.isArray(E))throw new Error(Xi(2));oe=E.some(me=>Xb(me,fe.props.value)),oe&&Se&&le.push(fe.props.children)}else oe=Xb(E,fe.props.value),oe&&Se&&(ge=fe.props.children);return b.cloneElement(fe,{"aria-selected":oe?"true":"false",onClick:de(fe),onKeyUp:me=>{me.key===" "&&me.preventDefault(),fe.props.onKeyUp&&fe.props.onKeyUp(me)},role:"option",selected:oe,value:void 0,"data-value":fe.props.value})});Se&&(S?le.length===0?we=null:we=le.reduce((fe,oe,me)=>(fe.push(oe),me{const{classes:t}=e;return t},I1={name:"MuiSelect",overridesResolver:(e,t)=>t.root,shouldForwardProp:e=>wn(e)&&e!=="variant",slot:"Root"},YL=J(Gd,I1)(""),XL=J(qd,I1)(""),JL=J(Ud,I1)(""),vp=b.forwardRef(function(t,n){const r=De({name:"MuiSelect",props:t}),{autoWidth:o=!1,children:i,classes:a={},className:s,defaultOpen:l=!1,displayEmpty:c=!1,IconComponent:u=$_,id:d,input:f,inputProps:p,label:h,labelId:y,MenuProps:w,multiple:v=!1,native:S=!1,onClose:m,onOpen:C,open:_,renderValue:R,SelectDisplayProps:k,variant:T="outlined",...P}=r,x=S?SL:ZL,$=Mo(),I=da({props:r,muiFormControl:$,states:["variant","error"]}),O=I.variant||T,D={...r,variant:O,classes:a},M=QL(D),{root:A,...N}=M,E=f||{standard:g.jsx(YL,{ownerState:D}),outlined:g.jsx(XL,{label:h,ownerState:D}),filled:g.jsx(JL,{ownerState:D})}[O],L=Rt(n,ua(E));return g.jsx(b.Fragment,{children:b.cloneElement(E,{inputComponent:x,inputProps:{children:i,error:I.error,IconComponent:u,variant:O,type:void 0,multiple:v,...S?{id:d}:{autoWidth:o,defaultOpen:l,displayEmpty:c,labelId:y,MenuProps:w,onClose:m,onOpen:C,open:_,renderValue:R,SelectDisplayProps:{id:d,...k}},...p,classes:p?io(N,p.classes):N,...f?f.props.inputProps:{}},...(v&&S||c)&&O==="outlined"?{notched:!0}:{},ref:L,className:ve(E.props.className,s,M.root),...!f&&{variant:O},...P})})});vp.muiName="Select";function e7(e){return Oe("MuiTooltip",e)}const Mt=Ee("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]);function t7(e){return Math.round(e*1e5)/1e5}const n7=e=>{const{classes:t,disableInteractive:n,arrow:r,touch:o,placement:i}=e,a={popper:["popper",!n&&"popperInteractive",r&&"popperArrow"],tooltip:["tooltip",r&&"tooltipArrow",o&&"touch",`tooltipPlacement${ae(i.split("-")[0])}`],arrow:["arrow"]};return Ne(a,e7,t)},r7=J(kc,{name:"MuiTooltip",slot:"Popper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.popper,!n.disableInteractive&&t.popperInteractive,n.arrow&&t.popperArrow,!n.open&&t.popperClose]}})($e(({theme:e})=>({zIndex:(e.vars||e).zIndex.tooltip,pointerEvents:"none",variants:[{props:({ownerState:t})=>!t.disableInteractive,style:{pointerEvents:"auto"}},{props:({open:t})=>!t,style:{pointerEvents:"none"}},{props:({ownerState:t})=>t.arrow,style:{[`&[data-popper-placement*="bottom"] .${Mt.arrow}`]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},[`&[data-popper-placement*="top"] .${Mt.arrow}`]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},[`&[data-popper-placement*="right"] .${Mt.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}},[`&[data-popper-placement*="left"] .${Mt.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}}}},{props:({ownerState:t})=>t.arrow&&!t.isRtl,style:{[`&[data-popper-placement*="right"] .${Mt.arrow}`]:{left:0,marginLeft:"-0.71em"}}},{props:({ownerState:t})=>t.arrow&&!!t.isRtl,style:{[`&[data-popper-placement*="right"] .${Mt.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:t})=>t.arrow&&!t.isRtl,style:{[`&[data-popper-placement*="left"] .${Mt.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:t})=>t.arrow&&!!t.isRtl,style:{[`&[data-popper-placement*="left"] .${Mt.arrow}`]:{left:0,marginLeft:"-0.71em"}}}]}))),o7=J("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.tooltip,n.touch&&t.touch,n.arrow&&t.tooltipArrow,t[`tooltipPlacement${ae(n.placement.split("-")[0])}`]]}})($e(({theme:e})=>({backgroundColor:e.vars?e.vars.palette.Tooltip.bg:Be(e.palette.grey[700],.92),borderRadius:(e.vars||e).shape.borderRadius,color:(e.vars||e).palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:e.typography.fontWeightMedium,[`.${Mt.popper}[data-popper-placement*="left"] &`]:{transformOrigin:"right center"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{transformOrigin:"left center"},[`.${Mt.popper}[data-popper-placement*="top"] &`]:{transformOrigin:"center bottom",marginBottom:"14px"},[`.${Mt.popper}[data-popper-placement*="bottom"] &`]:{transformOrigin:"center top",marginTop:"14px"},variants:[{props:({ownerState:t})=>t.arrow,style:{position:"relative",margin:0}},{props:({ownerState:t})=>t.touch,style:{padding:"8px 16px",fontSize:e.typography.pxToRem(14),lineHeight:`${t7(16/14)}em`,fontWeight:e.typography.fontWeightRegular}},{props:({ownerState:t})=>!t.isRtl,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginRight:"14px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginLeft:"14px"}}},{props:({ownerState:t})=>!t.isRtl&&t.touch,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginRight:"24px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginLeft:"24px"}}},{props:({ownerState:t})=>!!t.isRtl,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginLeft:"14px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginRight:"14px"}}},{props:({ownerState:t})=>!!t.isRtl&&t.touch,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginLeft:"24px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginRight:"24px"}}},{props:({ownerState:t})=>t.touch,style:{[`.${Mt.popper}[data-popper-placement*="top"] &`]:{marginBottom:"24px"}}},{props:({ownerState:t})=>t.touch,style:{[`.${Mt.popper}[data-popper-placement*="bottom"] &`]:{marginTop:"24px"}}}]}))),i7=J("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:(e,t)=>t.arrow})($e(({theme:e})=>({overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:e.vars?e.vars.palette.Tooltip.bg:Be(e.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}})));let gu=!1;const Jb=new up;let nl={x:0,y:0};function hu(e,t){return(n,...r)=>{t&&t(n,...r),e(n,...r)}}const a7=b.forwardRef(function(t,n){var Vn,Oo,_i;const r=De({props:t,name:"MuiTooltip"}),{arrow:o=!1,children:i,classes:a,components:s={},componentsProps:l={},describeChild:c=!1,disableFocusListener:u=!1,disableHoverListener:d=!1,disableInteractive:f=!1,disableTouchListener:p=!1,enterDelay:h=100,enterNextDelay:y=0,enterTouchDelay:w=700,followCursor:v=!1,id:S,leaveDelay:m=0,leaveTouchDelay:C=1500,onClose:_,onOpen:R,open:k,placement:T="bottom",PopperComponent:P,PopperProps:x={},slotProps:$={},slots:I={},title:O,TransitionComponent:D=uc,TransitionProps:M,...A}=r,N=b.isValidElement(i)?i:g.jsx("span",{children:i}),E=zt(),L=Es(),[B,H]=b.useState(),[z,j]=b.useState(null),F=b.useRef(!1),W=f||v,V=Ni(),ee=Ni(),re=Ni(),U=Ni(),[K,se]=Hi({controlled:k,default:!1,name:"Tooltip",state:"open"});let q=K;const ce=ds(S),ue=b.useRef(),ie=bn(()=>{ue.current!==void 0&&(document.body.style.WebkitUserSelect=ue.current,ue.current=void 0),U.clear()});b.useEffect(()=>ie,[ie]);const te=Fe=>{Jb.clear(),gu=!0,se(!0),R&&!q&&R(Fe)},de=bn(Fe=>{Jb.start(800+m,()=>{gu=!1}),se(!1),_&&q&&_(Fe),V.start(E.transitions.duration.shortest,()=>{F.current=!1})}),Q=Fe=>{F.current&&Fe.type!=="touchstart"||(B&&B.removeAttribute("title"),ee.clear(),re.clear(),h||gu&&y?ee.start(gu?y:h,()=>{te(Fe)}):te(Fe))},be=Fe=>{ee.clear(),re.start(m,()=>{de(Fe)})},[,Te]=b.useState(!1),we=Fe=>{Fd(Fe.target)||(Te(!1),be(Fe))},ge=Fe=>{B||H(Fe.currentTarget),Fd(Fe.target)&&(Te(!0),Q(Fe))},le=Fe=>{F.current=!0;const _n=N.props;_n.onTouchStart&&_n.onTouchStart(Fe)},Se=Fe=>{le(Fe),re.clear(),V.clear(),ie(),ue.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",U.start(w,()=>{document.body.style.WebkitUserSelect=ue.current,Q(Fe)})},ye=Fe=>{N.props.onTouchEnd&&N.props.onTouchEnd(Fe),ie(),re.start(C,()=>{de(Fe)})};b.useEffect(()=>{if(!q)return;function Fe(_n){_n.key==="Escape"&&de(_n)}return document.addEventListener("keydown",Fe),()=>{document.removeEventListener("keydown",Fe)}},[de,q]);const Ge=Rt(ua(N),H,n);!O&&O!==0&&(q=!1);const Pe=b.useRef(),Re=Fe=>{const _n=N.props;_n.onMouseMove&&_n.onMouseMove(Fe),nl={x:Fe.clientX,y:Fe.clientY},Pe.current&&Pe.current.update()},ke={},pe=typeof O=="string";c?(ke.title=!q&&pe&&!d?O:null,ke["aria-describedby"]=q?ce:null):(ke["aria-label"]=pe?O:null,ke["aria-labelledby"]=q&&!pe?ce:null);const ne={...ke,...A,...N.props,className:ve(A.className,N.props.className),onTouchStart:le,ref:Ge,...v?{onMouseMove:Re}:{}},xe={};p||(ne.onTouchStart=Se,ne.onTouchEnd=ye),d||(ne.onMouseOver=hu(Q,ne.onMouseOver),ne.onMouseLeave=hu(be,ne.onMouseLeave),W||(xe.onMouseOver=Q,xe.onMouseLeave=be)),u||(ne.onFocus=hu(ge,ne.onFocus),ne.onBlur=hu(we,ne.onBlur),W||(xe.onFocus=ge,xe.onBlur=we));const Le=b.useMemo(()=>{var _n;let Fe=[{name:"arrow",enabled:!!z,options:{element:z,padding:4}}];return(_n=x.popperOptions)!=null&&_n.modifiers&&(Fe=Fe.concat(x.popperOptions.modifiers)),{...x.popperOptions,modifiers:Fe}},[z,x]),fe={...r,isRtl:L,arrow:o,disableInteractive:W,placement:T,PopperComponentProp:P,touch:F.current},oe=n7(fe),me=I.popper??s.Popper??r7,je=I.transition??s.Transition??D??uc,Ve=I.tooltip??s.Tooltip??o7,Ye=I.arrow??s.Arrow??i7,Tt=Ha(me,{...x,...$.popper??l.popper,className:ve(oe.popper,x==null?void 0:x.className,(Vn=$.popper??l.popper)==null?void 0:Vn.className)},fe),Zt=Ha(je,{...M,...$.transition??l.transition},fe),Mn=Ha(Ve,{...$.tooltip??l.tooltip,className:ve(oe.tooltip,(Oo=$.tooltip??l.tooltip)==null?void 0:Oo.className)},fe),ir=Ha(Ye,{...$.arrow??l.arrow,className:ve(oe.arrow,(_i=$.arrow??l.arrow)==null?void 0:_i.className)},fe);return g.jsxs(b.Fragment,{children:[b.cloneElement(N,ne),g.jsx(me,{as:P??kc,placement:T,anchorEl:v?{getBoundingClientRect:()=>({top:nl.y,left:nl.x,right:nl.x,bottom:nl.y,width:0,height:0})}:B,popperRef:Pe,open:B?q:!1,id:ce,transition:!0,...xe,...Tt,popperOptions:Le,children:({TransitionProps:Fe})=>g.jsx(je,{timeout:E.transitions.duration.shorter,...Fe,...Zt,children:g.jsxs(Ve,{...Mn,children:[O,o?g.jsx(Ye,{...ir,ref:j}):null]})})})]})}),s7=FE({createStyledComponent:J("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,t)=>t.root}),useThemeProps:e=>De({props:e,name:"MuiStack"})});function l7(e){return Oe("MuiSwitch",e)}const Rn=Ee("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),c7=e=>{const{classes:t,edge:n,size:r,color:o,checked:i,disabled:a}=e,s={root:["root",n&&`edge${ae(n)}`,`size${ae(r)}`],switchBase:["switchBase",`color${ae(o)}`,i&&"checked",a&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},l=Ne(s,l7,t);return{...t,...l}},u7=J("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.edge&&t[`edge${ae(n.edge)}`],t[`size${ae(n.size)}`]]}})({display:"inline-flex",width:34+12*2,height:14+12*2,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"},variants:[{props:{edge:"start"},style:{marginLeft:-8}},{props:{edge:"end"},style:{marginRight:-8}},{props:{size:"small"},style:{width:40,height:24,padding:7,[`& .${Rn.thumb}`]:{width:16,height:16},[`& .${Rn.switchBase}`]:{padding:4,[`&.${Rn.checked}`]:{transform:"translateX(16px)"}}}}]}),d7=J($1,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.switchBase,{[`& .${Rn.input}`]:t.input},n.color!=="default"&&t[`color${ae(n.color)}`]]}})($e(({theme:e})=>({position:"absolute",top:0,left:0,zIndex:1,color:e.vars?e.vars.palette.Switch.defaultColor:`${e.palette.mode==="light"?e.palette.common.white:e.palette.grey[300]}`,transition:e.transitions.create(["left","transform"],{duration:e.transitions.duration.shortest}),[`&.${Rn.checked}`]:{transform:"translateX(20px)"},[`&.${Rn.disabled}`]:{color:e.vars?e.vars.palette.Switch.defaultDisabledColor:`${e.palette.mode==="light"?e.palette.grey[100]:e.palette.grey[600]}`},[`&.${Rn.checked} + .${Rn.track}`]:{opacity:.5},[`&.${Rn.disabled} + .${Rn.track}`]:{opacity:e.vars?e.vars.opacity.switchTrackDisabled:`${e.palette.mode==="light"?.12:.2}`},[`& .${Rn.input}`]:{left:"-100%",width:"300%"}})),$e(({theme:e})=>({"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[...Object.entries(e.palette).filter(Ft(["light"])).map(([t])=>({props:{color:t},style:{[`&.${Rn.checked}`]:{color:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[t].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Rn.disabled}`]:{color:e.vars?e.vars.palette.Switch[`${t}DisabledColor`]:`${e.palette.mode==="light"?ta(e.palette[t].main,.62):ea(e.palette[t].main,.55)}`}},[`&.${Rn.checked} + .${Rn.track}`]:{backgroundColor:(e.vars||e).palette[t].main}}}))]}))),f7=J("span",{name:"MuiSwitch",slot:"Track",overridesResolver:(e,t)=>t.track})($e(({theme:e})=>({height:"100%",width:"100%",borderRadius:14/2,zIndex:-1,transition:e.transitions.create(["opacity","background-color"],{duration:e.transitions.duration.shortest}),backgroundColor:e.vars?e.vars.palette.common.onBackground:`${e.palette.mode==="light"?e.palette.common.black:e.palette.common.white}`,opacity:e.vars?e.vars.opacity.switchTrack:`${e.palette.mode==="light"?.38:.3}`}))),p7=J("span",{name:"MuiSwitch",slot:"Thumb",overridesResolver:(e,t)=>t.thumb})($e(({theme:e})=>({boxShadow:(e.vars||e).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"}))),g7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiSwitch"}),{className:o,color:i="primary",edge:a=!1,size:s="medium",sx:l,...c}=r,u={...r,color:i,edge:a,size:s},d=c7(u),f=g.jsx(p7,{className:d.thumb,ownerState:u});return g.jsxs(u7,{className:ve(d.root,o),sx:l,ownerState:u,children:[g.jsx(d7,{type:"checkbox",icon:f,checkedIcon:f,ref:n,ownerState:u,...c,classes:{...d,root:d.switchBase}}),g.jsx(f7,{className:d.track,ownerState:u})]})});function h7(e){return Oe("MuiTab",e)}const ar=Ee("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper","icon"]),m7=e=>{const{classes:t,textColor:n,fullWidth:r,wrapped:o,icon:i,label:a,selected:s,disabled:l}=e,c={root:["root",i&&a&&"labelIcon",`textColor${ae(n)}`,r&&"fullWidth",o&&"wrapped",s&&"selected",l&&"disabled"],icon:["iconWrapper","icon"]};return Ne(c,h7,t)},v7=J(To,{name:"MuiTab",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.label&&n.icon&&t.labelIcon,t[`textColor${ae(n.textColor)}`],n.fullWidth&&t.fullWidth,n.wrapped&&t.wrapped,{[`& .${ar.iconWrapper}`]:t.iconWrapper},{[`& .${ar.icon}`]:t.icon}]}})($e(({theme:e})=>({...e.typography.button,maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center",lineHeight:1.25,variants:[{props:({ownerState:t})=>t.label&&(t.iconPosition==="top"||t.iconPosition==="bottom"),style:{flexDirection:"column"}},{props:({ownerState:t})=>t.label&&t.iconPosition!=="top"&&t.iconPosition!=="bottom",style:{flexDirection:"row"}},{props:({ownerState:t})=>t.icon&&t.label,style:{minHeight:72,paddingTop:9,paddingBottom:9}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="top",style:{[`& > .${ar.icon}`]:{marginBottom:6}}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="bottom",style:{[`& > .${ar.icon}`]:{marginTop:6}}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="start",style:{[`& > .${ar.icon}`]:{marginRight:e.spacing(1)}}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="end",style:{[`& > .${ar.icon}`]:{marginLeft:e.spacing(1)}}},{props:{textColor:"inherit"},style:{color:"inherit",opacity:.6,[`&.${ar.selected}`]:{opacity:1},[`&.${ar.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity}}},{props:{textColor:"primary"},style:{color:(e.vars||e).palette.text.secondary,[`&.${ar.selected}`]:{color:(e.vars||e).palette.primary.main},[`&.${ar.disabled}`]:{color:(e.vars||e).palette.text.disabled}}},{props:{textColor:"secondary"},style:{color:(e.vars||e).palette.text.secondary,[`&.${ar.selected}`]:{color:(e.vars||e).palette.secondary.main},[`&.${ar.disabled}`]:{color:(e.vars||e).palette.text.disabled}}},{props:({ownerState:t})=>t.fullWidth,style:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"}},{props:({ownerState:t})=>t.wrapped,style:{fontSize:e.typography.pxToRem(12)}}]}))),y7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTab"}),{className:o,disabled:i=!1,disableFocusRipple:a=!1,fullWidth:s,icon:l,iconPosition:c="top",indicator:u,label:d,onChange:f,onClick:p,onFocus:h,selected:y,selectionFollowsFocus:w,textColor:v="inherit",value:S,wrapped:m=!1,...C}=r,_={...r,disabled:i,disableFocusRipple:a,selected:y,icon:!!l,iconPosition:c,label:!!d,fullWidth:s,textColor:v,wrapped:m},R=m7(_),k=l&&d&&b.isValidElement(l)?b.cloneElement(l,{className:ve(R.icon,l.props.className)}):l,T=x=>{!y&&f&&f(x,S),p&&p(x)},P=x=>{w&&!y&&f&&f(x,S),h&&h(x)};return g.jsxs(v7,{focusRipple:!a,className:ve(R.root,o),ref:n,role:"tab","aria-selected":y,disabled:i,onClick:T,onFocus:P,ownerState:_,tabIndex:y?0:-1,...C,children:[c==="top"||c==="start"?g.jsxs(b.Fragment,{children:[k,d]}):g.jsxs(b.Fragment,{children:[d,k]}),u]})}),j_=b.createContext();function b7(e){return Oe("MuiTable",e)}Ee("MuiTable",["root","stickyHeader"]);const x7=e=>{const{classes:t,stickyHeader:n}=e;return Ne({root:["root",n&&"stickyHeader"]},b7,t)},S7=J("table",{name:"MuiTable",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.stickyHeader&&t.stickyHeader]}})($e(({theme:e})=>({display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":{...e.typography.body2,padding:e.spacing(2),color:(e.vars||e).palette.text.secondary,textAlign:"left",captionSide:"bottom"},variants:[{props:({ownerState:t})=>t.stickyHeader,style:{borderCollapse:"separate"}}]}))),ex="table",w7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTable"}),{className:o,component:i=ex,padding:a="normal",size:s="medium",stickyHeader:l=!1,...c}=r,u={...r,component:i,padding:a,size:s,stickyHeader:l},d=x7(u),f=b.useMemo(()=>({padding:a,size:s,stickyHeader:l}),[a,s,l]);return g.jsx(j_.Provider,{value:f,children:g.jsx(S7,{as:i,role:i===ex?null:"table",ref:n,className:ve(d.root,o),ownerState:u,...c})})}),Ec=b.createContext();function C7(e){return Oe("MuiTableBody",e)}Ee("MuiTableBody",["root"]);const _7=e=>{const{classes:t}=e;return Ne({root:["root"]},C7,t)},R7=J("tbody",{name:"MuiTableBody",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"table-row-group"}),T7={variant:"body"},tx="tbody",P7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableBody"}),{className:o,component:i=tx,...a}=r,s={...r,component:i},l=_7(s);return g.jsx(Ec.Provider,{value:T7,children:g.jsx(R7,{className:ve(l.root,o),as:i,ref:n,role:i===tx?null:"rowgroup",ownerState:s,...a})})});function k7(e){return Oe("MuiTableCell",e)}const $7=Ee("MuiTableCell",["root","head","body","footer","sizeSmall","sizeMedium","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","alignJustify","stickyHeader"]),E7=e=>{const{classes:t,variant:n,align:r,padding:o,size:i,stickyHeader:a}=e,s={root:["root",n,a&&"stickyHeader",r!=="inherit"&&`align${ae(r)}`,o!=="normal"&&`padding${ae(o)}`,`size${ae(i)}`]};return Ne(s,k7,t)},M7=J("td",{name:"MuiTableCell",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`size${ae(n.size)}`],n.padding!=="normal"&&t[`padding${ae(n.padding)}`],n.align!=="inherit"&&t[`align${ae(n.align)}`],n.stickyHeader&&t.stickyHeader]}})($e(({theme:e})=>({...e.typography.body2,display:"table-cell",verticalAlign:"inherit",borderBottom:e.vars?`1px solid ${e.vars.palette.TableCell.border}`:`1px solid - ${e.palette.mode==="light"?ta(Be(e.palette.divider,1),.88):ea(Be(e.palette.divider,1),.68)}`,textAlign:"left",padding:16,variants:[{props:{variant:"head"},style:{color:(e.vars||e).palette.text.primary,lineHeight:e.typography.pxToRem(24),fontWeight:e.typography.fontWeightMedium}},{props:{variant:"body"},style:{color:(e.vars||e).palette.text.primary}},{props:{variant:"footer"},style:{color:(e.vars||e).palette.text.secondary,lineHeight:e.typography.pxToRem(21),fontSize:e.typography.pxToRem(12)}},{props:{size:"small"},style:{padding:"6px 16px",[`&.${$7.paddingCheckbox}`]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}}},{props:{padding:"checkbox"},style:{width:48,padding:"0 0 0 4px"}},{props:{padding:"none"},style:{padding:0}},{props:{align:"left"},style:{textAlign:"left"}},{props:{align:"center"},style:{textAlign:"center"}},{props:{align:"right"},style:{textAlign:"right",flexDirection:"row-reverse"}},{props:{align:"justify"},style:{textAlign:"justify"}},{props:({ownerState:t})=>t.stickyHeader,style:{position:"sticky",top:0,zIndex:2,backgroundColor:(e.vars||e).palette.background.default}}]}))),ys=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableCell"}),{align:o="inherit",className:i,component:a,padding:s,scope:l,size:c,sortDirection:u,variant:d,...f}=r,p=b.useContext(j_),h=b.useContext(Ec),y=h&&h.variant==="head";let w;a?w=a:w=y?"th":"td";let v=l;w==="td"?v=void 0:!v&&y&&(v="col");const S=d||h&&h.variant,m={...r,align:o,component:w,padding:s||(p&&p.padding?p.padding:"normal"),size:c||(p&&p.size?p.size:"medium"),sortDirection:u,stickyHeader:S==="head"&&p&&p.stickyHeader,variant:S},C=E7(m);let _=null;return u&&(_=u==="asc"?"ascending":"descending"),g.jsx(M7,{as:w,ref:n,className:ve(C.root,i),"aria-sort":_,scope:v,ownerState:m,...f})});function I7(e){return Oe("MuiTableContainer",e)}Ee("MuiTableContainer",["root"]);const O7=e=>{const{classes:t}=e;return Ne({root:["root"]},I7,t)},L7=J("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:(e,t)=>t.root})({width:"100%",overflowX:"auto"}),A7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableContainer"}),{className:o,component:i="div",...a}=r,s={...r,component:i},l=O7(s);return g.jsx(L7,{ref:n,as:i,className:ve(l.root,o),ownerState:s,...a})});function N7(e){return Oe("MuiTableFooter",e)}Ee("MuiTableFooter",["root"]);const D7=e=>{const{classes:t}=e;return Ne({root:["root"]},N7,t)},j7=J("tfoot",{name:"MuiTableFooter",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"table-footer-group"}),F7={variant:"footer"},nx="tfoot",B7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableFooter"}),{className:o,component:i=nx,...a}=r,s={...r,component:i},l=D7(s);return g.jsx(Ec.Provider,{value:F7,children:g.jsx(j7,{as:i,className:ve(l.root,o),ref:n,role:i===nx?null:"rowgroup",ownerState:s,...a})})});function z7(e){return Oe("MuiTableHead",e)}Ee("MuiTableHead",["root"]);const H7=e=>{const{classes:t}=e;return Ne({root:["root"]},z7,t)},V7=J("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"table-header-group"}),W7={variant:"head"},rx="thead",U7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableHead"}),{className:o,component:i=rx,...a}=r,s={...r,component:i},l=H7(s);return g.jsx(Ec.Provider,{value:W7,children:g.jsx(V7,{as:i,className:ve(l.root,o),ref:n,role:i===rx?null:"rowgroup",ownerState:s,...a})})});function G7(e){return Oe("MuiToolbar",e)}Ee("MuiToolbar",["root","gutters","regular","dense"]);const q7=e=>{const{classes:t,disableGutters:n,variant:r}=e;return Ne({root:["root",!n&&"gutters",r]},G7,t)},K7=J("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})($e(({theme:e})=>({position:"relative",display:"flex",alignItems:"center",variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:e.mixins.toolbar}]}))),F_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiToolbar"}),{className:o,component:i="div",disableGutters:a=!1,variant:s="regular",...l}=r,c={...r,component:i,disableGutters:a,variant:s},u=q7(c);return g.jsx(K7,{as:i,className:ve(u.root,o),ref:n,ownerState:c,...l})}),B_=un(g.jsx("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),z_=un(g.jsx("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight"),Z7=b.forwardRef(function(t,n){const{backIconButtonProps:r,count:o,disabled:i=!1,getItemAriaLabel:a,nextIconButtonProps:s,onPageChange:l,page:c,rowsPerPage:u,showFirstButton:d,showLastButton:f,slots:p={},slotProps:h={},...y}=t,w=Es(),v=H=>{l(H,0)},S=H=>{l(H,c-1)},m=H=>{l(H,c+1)},C=H=>{l(H,Math.max(0,Math.ceil(o/u)-1))},_=p.firstButton??hr,R=p.lastButton??hr,k=p.nextButton??hr,T=p.previousButton??hr,P=p.firstButtonIcon??$L,x=p.lastButtonIcon??EL,$=p.nextButtonIcon??z_,I=p.previousButtonIcon??B_,O=w?R:_,D=w?k:T,M=w?T:k,A=w?_:R,N=w?h.lastButton:h.firstButton,E=w?h.nextButton:h.previousButton,L=w?h.previousButton:h.nextButton,B=w?h.firstButton:h.lastButton;return g.jsxs("div",{ref:n,...y,children:[d&&g.jsx(O,{onClick:v,disabled:i||c===0,"aria-label":a("first",c),title:a("first",c),...N,children:w?g.jsx(x,{...h.lastButtonIcon}):g.jsx(P,{...h.firstButtonIcon})}),g.jsx(D,{onClick:S,disabled:i||c===0,color:"inherit","aria-label":a("previous",c),title:a("previous",c),...E??r,children:w?g.jsx($,{...h.nextButtonIcon}):g.jsx(I,{...h.previousButtonIcon})}),g.jsx(M,{onClick:m,disabled:i||(o!==-1?c>=Math.ceil(o/u)-1:!1),color:"inherit","aria-label":a("next",c),title:a("next",c),...L??s,children:w?g.jsx(I,{...h.previousButtonIcon}):g.jsx($,{...h.nextButtonIcon})}),f&&g.jsx(A,{onClick:C,disabled:i||c>=Math.ceil(o/u)-1,"aria-label":a("last",c),title:a("last",c),...B,children:w?g.jsx(P,{...h.firstButtonIcon}):g.jsx(x,{...h.lastButtonIcon})})]})});function Q7(e){return Oe("MuiTablePagination",e)}const Ol=Ee("MuiTablePagination",["root","toolbar","spacer","selectLabel","selectRoot","select","selectIcon","input","menuItem","displayedRows","actions"]);var ox;const Y7=J(ys,{name:"MuiTablePagination",slot:"Root",overridesResolver:(e,t)=>t.root})($e(({theme:e})=>({overflow:"auto",color:(e.vars||e).palette.text.primary,fontSize:e.typography.pxToRem(14),"&:last-child":{padding:0}}))),X7=J(F_,{name:"MuiTablePagination",slot:"Toolbar",overridesResolver:(e,t)=>({[`& .${Ol.actions}`]:t.actions,...t.toolbar})})($e(({theme:e})=>({minHeight:52,paddingRight:2,[`${e.breakpoints.up("xs")} and (orientation: landscape)`]:{minHeight:52},[e.breakpoints.up("sm")]:{minHeight:52,paddingRight:2},[`& .${Ol.actions}`]:{flexShrink:0,marginLeft:20}}))),J7=J("div",{name:"MuiTablePagination",slot:"Spacer",overridesResolver:(e,t)=>t.spacer})({flex:"1 1 100%"}),eA=J("p",{name:"MuiTablePagination",slot:"SelectLabel",overridesResolver:(e,t)=>t.selectLabel})($e(({theme:e})=>({...e.typography.body2,flexShrink:0}))),tA=J(vp,{name:"MuiTablePagination",slot:"Select",overridesResolver:(e,t)=>({[`& .${Ol.selectIcon}`]:t.selectIcon,[`& .${Ol.select}`]:t.select,...t.input,...t.selectRoot})})({color:"inherit",fontSize:"inherit",flexShrink:0,marginRight:32,marginLeft:8,[`& .${Ol.select}`]:{paddingLeft:8,paddingRight:24,textAlign:"right",textAlignLast:"right"}}),nA=J($c,{name:"MuiTablePagination",slot:"MenuItem",overridesResolver:(e,t)=>t.menuItem})({}),rA=J("p",{name:"MuiTablePagination",slot:"DisplayedRows",overridesResolver:(e,t)=>t.displayedRows})($e(({theme:e})=>({...e.typography.body2,flexShrink:0})));function oA({from:e,to:t,count:n}){return`${e}–${t} of ${n!==-1?n:`more than ${t}`}`}function iA(e){return`Go to ${e} page`}const aA=e=>{const{classes:t}=e;return Ne({root:["root"],toolbar:["toolbar"],spacer:["spacer"],selectLabel:["selectLabel"],select:["select"],input:["input"],selectIcon:["selectIcon"],menuItem:["menuItem"],displayedRows:["displayedRows"],actions:["actions"]},Q7,t)},sA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTablePagination"}),{ActionsComponent:o=Z7,backIconButtonProps:i,className:a,colSpan:s,component:l=ys,count:c,disabled:u=!1,getItemAriaLabel:d=iA,labelDisplayedRows:f=oA,labelRowsPerPage:p="Rows per page:",nextIconButtonProps:h,onPageChange:y,onRowsPerPageChange:w,page:v,rowsPerPage:S,rowsPerPageOptions:m=[10,25,50,100],SelectProps:C={},showFirstButton:_=!1,showLastButton:R=!1,slotProps:k={},slots:T={},...P}=r,x=r,$=aA(x),I=(k==null?void 0:k.select)??C,O=I.native?"option":nA;let D;(l===ys||l==="td")&&(D=s||1e3);const M=ds(I.id),A=ds(I.labelId),N=()=>c===-1?(v+1)*S:S===-1?c:Math.min(c,(v+1)*S);return g.jsx(Y7,{colSpan:D,ref:n,as:l,ownerState:x,className:ve($.root,a),...P,children:g.jsxs(X7,{className:$.toolbar,children:[g.jsx(J7,{className:$.spacer}),m.length>1&&g.jsx(eA,{className:$.selectLabel,id:A,children:p}),m.length>1&&g.jsx(tA,{variant:"standard",...!I.variant&&{input:ox||(ox=g.jsx(mp,{}))},value:S,onChange:w,id:M,labelId:A,...I,classes:{...I.classes,root:ve($.input,$.selectRoot,(I.classes||{}).root),select:ve($.select,(I.classes||{}).select),icon:ve($.selectIcon,(I.classes||{}).icon)},disabled:u,children:m.map(E=>b.createElement(O,{...!Vd(O)&&{ownerState:x},className:$.menuItem,key:E.label?E.label:E,value:E.value?E.value:E},E.label?E.label:E))}),g.jsx(rA,{className:$.displayedRows,children:f({from:c===0?0:v*S+1,to:N(),count:c===-1?-1:c,page:v})}),g.jsx(o,{className:$.actions,backIconButtonProps:i,count:c,nextIconButtonProps:h,onPageChange:y,page:v,rowsPerPage:S,showFirstButton:_,showLastButton:R,slotProps:k.actions,slots:T.actions,getItemAriaLabel:d,disabled:u})]})})});function lA(e){return Oe("MuiTableRow",e)}const ix=Ee("MuiTableRow",["root","selected","hover","head","footer"]),cA=e=>{const{classes:t,selected:n,hover:r,head:o,footer:i}=e;return Ne({root:["root",n&&"selected",r&&"hover",o&&"head",i&&"footer"]},lA,t)},uA=J("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.head&&t.head,n.footer&&t.footer]}})($e(({theme:e})=>({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,[`&.${ix.hover}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${ix.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity)}}}))),ax="tr",yp=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableRow"}),{className:o,component:i=ax,hover:a=!1,selected:s=!1,...l}=r,c=b.useContext(Ec),u={...r,component:i,hover:a,selected:s,head:c&&c.variant==="head",footer:c&&c.variant==="footer"},d=cA(u);return g.jsx(uA,{as:i,ref:n,className:ve(d.root,o),role:i===ax?null:"row",ownerState:u,...l})}),dA=un(g.jsx("path",{d:"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownward");function fA(e){return Oe("MuiTableSortLabel",e)}const yg=Ee("MuiTableSortLabel",["root","active","icon","iconDirectionDesc","iconDirectionAsc","directionDesc","directionAsc"]),pA=e=>{const{classes:t,direction:n,active:r}=e,o={root:["root",r&&"active",`direction${ae(n)}`],icon:["icon",`iconDirection${ae(n)}`]};return Ne(o,fA,t)},gA=J(To,{name:"MuiTableSortLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.active&&t.active]}})($e(({theme:e})=>({cursor:"pointer",display:"inline-flex",justifyContent:"flex-start",flexDirection:"inherit",alignItems:"center","&:focus":{color:(e.vars||e).palette.text.secondary},"&:hover":{color:(e.vars||e).palette.text.secondary,[`& .${yg.icon}`]:{opacity:.5}},[`&.${yg.active}`]:{color:(e.vars||e).palette.text.primary,[`& .${yg.icon}`]:{opacity:1,color:(e.vars||e).palette.text.secondary}}}))),hA=J("span",{name:"MuiTableSortLabel",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,t[`iconDirection${ae(n.direction)}`]]}})($e(({theme:e})=>({fontSize:18,marginRight:4,marginLeft:4,opacity:0,transition:e.transitions.create(["opacity","transform"],{duration:e.transitions.duration.shorter}),userSelect:"none",variants:[{props:{direction:"desc"},style:{transform:"rotate(0deg)"}},{props:{direction:"asc"},style:{transform:"rotate(180deg)"}}]}))),mA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableSortLabel"}),{active:o=!1,children:i,className:a,direction:s="asc",hideSortIcon:l=!1,IconComponent:c=dA,...u}=r,d={...r,active:o,direction:s,hideSortIcon:l,IconComponent:c},f=pA(d);return g.jsxs(gA,{className:ve(f.root,a),component:"span",disableRipple:!0,ownerState:d,ref:n,...u,children:[i,l&&!o?null:g.jsx(hA,{as:c,className:ve(f.icon),ownerState:d})]})});function vA(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}function yA(e,t,n,r={},o=()=>{}){const{ease:i=vA,duration:a=300}=r;let s=null;const l=t[e];let c=!1;const u=()=>{c=!0},d=f=>{if(c){o(new Error("Animation cancelled"));return}s===null&&(s=f);const p=Math.min(1,(f-s)/a);if(t[e]=i(p)*(n-l)+l,p>=1){requestAnimationFrame(()=>{o(null)});return}requestAnimationFrame(d)};return l===n?(o(new Error("Element already at target position")),u):(requestAnimationFrame(d),u)}const bA={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function xA(e){const{onChange:t,...n}=e,r=b.useRef(),o=b.useRef(null),i=()=>{r.current=o.current.offsetHeight-o.current.clientHeight};return Hr(()=>{const a=cp(()=>{const l=r.current;i(),l!==r.current&&t(r.current)}),s=zr(o.current);return s.addEventListener("resize",a),()=>{a.clear(),s.removeEventListener("resize",a)}},[t]),b.useEffect(()=>{i(),t(r.current)},[t]),g.jsx("div",{style:bA,ref:o,...n})}function SA(e){return Oe("MuiTabScrollButton",e)}const wA=Ee("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),CA=e=>{const{classes:t,orientation:n,disabled:r}=e;return Ne({root:["root",n,r&&"disabled"]},SA,t)},_A=J(To,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.orientation&&t[n.orientation]]}})({width:40,flexShrink:0,opacity:.8,[`&.${wA.disabled}`]:{opacity:0},variants:[{props:{orientation:"vertical"},style:{width:"100%",height:40,"& svg":{transform:"var(--TabScrollButton-svgRotate)"}}}]}),RA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTabScrollButton"}),{className:o,slots:i={},slotProps:a={},direction:s,orientation:l,disabled:c,...u}=r,d=Es(),f={isRtl:d,...r},p=CA(f),h=i.StartScrollButtonIcon??B_,y=i.EndScrollButtonIcon??z_,w=na({elementType:h,externalSlotProps:a.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:f}),v=na({elementType:y,externalSlotProps:a.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:f});return g.jsx(_A,{component:"div",className:ve(p.root,o),ref:n,role:null,ownerState:f,tabIndex:null,...u,style:{...u.style,...l==="vertical"&&{"--TabScrollButton-svgRotate":`rotate(${d?-90:90}deg)`}},children:s==="left"?g.jsx(h,{...w}):g.jsx(y,{...v})})});function TA(e){return Oe("MuiTabs",e)}const bg=Ee("MuiTabs",["root","vertical","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),sx=(e,t)=>e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:e.firstChild,lx=(e,t)=>e===t?e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:e.lastChild,mu=(e,t,n)=>{let r=!1,o=n(e,t);for(;o;){if(o===e.firstChild){if(r)return;r=!0}const i=o.disabled||o.getAttribute("aria-disabled")==="true";if(!o.hasAttribute("tabindex")||i)o=n(e,o);else{o.focus();return}}},PA=e=>{const{vertical:t,fixed:n,hideScrollbar:r,scrollableX:o,scrollableY:i,centered:a,scrollButtonsHideMobile:s,classes:l}=e;return Ne({root:["root",t&&"vertical"],scroller:["scroller",n&&"fixed",r&&"hideScrollbar",o&&"scrollableX",i&&"scrollableY"],flexContainer:["flexContainer",t&&"flexContainerVertical",a&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",s&&"scrollButtonsHideMobile"],scrollableX:[o&&"scrollableX"],hideScrollbar:[r&&"hideScrollbar"]},TA,l)},kA=J("div",{name:"MuiTabs",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${bg.scrollButtons}`]:t.scrollButtons},{[`& .${bg.scrollButtons}`]:n.scrollButtonsHideMobile&&t.scrollButtonsHideMobile},t.root,n.vertical&&t.vertical]}})($e(({theme:e})=>({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex",variants:[{props:({ownerState:t})=>t.vertical,style:{flexDirection:"column"}},{props:({ownerState:t})=>t.scrollButtonsHideMobile,style:{[`& .${bg.scrollButtons}`]:{[e.breakpoints.down("sm")]:{display:"none"}}}}]}))),$A=J("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.scroller,n.fixed&&t.fixed,n.hideScrollbar&&t.hideScrollbar,n.scrollableX&&t.scrollableX,n.scrollableY&&t.scrollableY]}})({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap",variants:[{props:({ownerState:e})=>e.fixed,style:{overflowX:"hidden",width:"100%"}},{props:({ownerState:e})=>e.hideScrollbar,style:{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}},{props:({ownerState:e})=>e.scrollableX,style:{overflowX:"auto",overflowY:"hidden"}},{props:({ownerState:e})=>e.scrollableY,style:{overflowY:"auto",overflowX:"hidden"}}]}),EA=J("div",{name:"MuiTabs",slot:"FlexContainer",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.flexContainer,n.vertical&&t.flexContainerVertical,n.centered&&t.centered]}})({display:"flex",variants:[{props:({ownerState:e})=>e.vertical,style:{flexDirection:"column"}},{props:({ownerState:e})=>e.centered,style:{justifyContent:"center"}}]}),MA=J("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(e,t)=>t.indicator})($e(({theme:e})=>({position:"absolute",height:2,bottom:0,width:"100%",transition:e.transitions.create(),variants:[{props:{indicatorColor:"primary"},style:{backgroundColor:(e.vars||e).palette.primary.main}},{props:{indicatorColor:"secondary"},style:{backgroundColor:(e.vars||e).palette.secondary.main}},{props:({ownerState:t})=>t.vertical,style:{height:"100%",width:2,right:0}}]}))),IA=J(xA)({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),cx={},OA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTabs"}),o=zt(),i=Es(),{"aria-label":a,"aria-labelledby":s,action:l,centered:c=!1,children:u,className:d,component:f="div",allowScrollButtonsMobile:p=!1,indicatorColor:h="primary",onChange:y,orientation:w="horizontal",ScrollButtonComponent:v=RA,scrollButtons:S="auto",selectionFollowsFocus:m,slots:C={},slotProps:_={},TabIndicatorProps:R={},TabScrollButtonProps:k={},textColor:T="primary",value:P,variant:x="standard",visibleScrollbar:$=!1,...I}=r,O=x==="scrollable",D=w==="vertical",M=D?"scrollTop":"scrollLeft",A=D?"top":"left",N=D?"bottom":"right",E=D?"clientHeight":"clientWidth",L=D?"height":"width",B={...r,component:f,allowScrollButtonsMobile:p,indicatorColor:h,orientation:w,vertical:D,scrollButtons:S,textColor:T,variant:x,visibleScrollbar:$,fixed:!O,hideScrollbar:O&&!$,scrollableX:O&&!D,scrollableY:O&&D,centered:c&&!O,scrollButtonsHideMobile:!p},H=PA(B),z=na({elementType:C.StartScrollButtonIcon,externalSlotProps:_.startScrollButtonIcon,ownerState:B}),j=na({elementType:C.EndScrollButtonIcon,externalSlotProps:_.endScrollButtonIcon,ownerState:B}),[F,W]=b.useState(!1),[V,ee]=b.useState(cx),[re,U]=b.useState(!1),[K,se]=b.useState(!1),[q,ce]=b.useState(!1),[ue,ie]=b.useState({overflow:"hidden",scrollbarWidth:0}),te=new Map,de=b.useRef(null),Q=b.useRef(null),be=()=>{const oe=de.current;let me;if(oe){const Ve=oe.getBoundingClientRect();me={clientWidth:oe.clientWidth,scrollLeft:oe.scrollLeft,scrollTop:oe.scrollTop,scrollWidth:oe.scrollWidth,top:Ve.top,bottom:Ve.bottom,left:Ve.left,right:Ve.right}}let je;if(oe&&P!==!1){const Ve=Q.current.children;if(Ve.length>0){const Ye=Ve[te.get(P)];je=Ye?Ye.getBoundingClientRect():null}}return{tabsMeta:me,tabMeta:je}},Te=bn(()=>{const{tabsMeta:oe,tabMeta:me}=be();let je=0,Ve;D?(Ve="top",me&&oe&&(je=me.top-oe.top+oe.scrollTop)):(Ve=i?"right":"left",me&&oe&&(je=(i?-1:1)*(me[Ve]-oe[Ve]+oe.scrollLeft)));const Ye={[Ve]:je,[L]:me?me[L]:0};if(typeof V[Ve]!="number"||typeof V[L]!="number")ee(Ye);else{const Tt=Math.abs(V[Ve]-Ye[Ve]),Zt=Math.abs(V[L]-Ye[L]);(Tt>=1||Zt>=1)&&ee(Ye)}}),we=(oe,{animation:me=!0}={})=>{me?yA(M,de.current,oe,{duration:o.transitions.duration.standard}):de.current[M]=oe},ge=oe=>{let me=de.current[M];D?me+=oe:me+=oe*(i?-1:1),we(me)},le=()=>{const oe=de.current[E];let me=0;const je=Array.from(Q.current.children);for(let Ve=0;Veoe){Ve===0&&(me=oe);break}me+=Ye[E]}return me},Se=()=>{ge(-1*le())},ye=()=>{ge(le())},Ge=b.useCallback(oe=>{ie({overflow:null,scrollbarWidth:oe})},[]),Pe=()=>{const oe={};oe.scrollbarSizeListener=O?g.jsx(IA,{onChange:Ge,className:ve(H.scrollableX,H.hideScrollbar)}):null;const je=O&&(S==="auto"&&(re||K)||S===!0);return oe.scrollButtonStart=je?g.jsx(v,{slots:{StartScrollButtonIcon:C.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:z},orientation:w,direction:i?"right":"left",onClick:Se,disabled:!re,...k,className:ve(H.scrollButtons,k.className)}):null,oe.scrollButtonEnd=je?g.jsx(v,{slots:{EndScrollButtonIcon:C.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:j},orientation:w,direction:i?"left":"right",onClick:ye,disabled:!K,...k,className:ve(H.scrollButtons,k.className)}):null,oe},Re=bn(oe=>{const{tabsMeta:me,tabMeta:je}=be();if(!(!je||!me)){if(je[A]me[N]){const Ve=me[M]+(je[N]-me[N]);we(Ve,{animation:oe})}}}),ke=bn(()=>{O&&S!==!1&&ce(!q)});b.useEffect(()=>{const oe=cp(()=>{de.current&&Te()});let me;const je=Tt=>{Tt.forEach(Zt=>{Zt.removedNodes.forEach(Mn=>{me==null||me.unobserve(Mn)}),Zt.addedNodes.forEach(Mn=>{me==null||me.observe(Mn)})}),oe(),ke()},Ve=zr(de.current);Ve.addEventListener("resize",oe);let Ye;return typeof ResizeObserver<"u"&&(me=new ResizeObserver(oe),Array.from(Q.current.children).forEach(Tt=>{me.observe(Tt)})),typeof MutationObserver<"u"&&(Ye=new MutationObserver(je),Ye.observe(Q.current,{childList:!0})),()=>{oe.clear(),Ve.removeEventListener("resize",oe),Ye==null||Ye.disconnect(),me==null||me.disconnect()}},[Te,ke]),b.useEffect(()=>{const oe=Array.from(Q.current.children),me=oe.length;if(typeof IntersectionObserver<"u"&&me>0&&O&&S!==!1){const je=oe[0],Ve=oe[me-1],Ye={root:de.current,threshold:.99},Tt=Vn=>{U(!Vn[0].isIntersecting)},Zt=new IntersectionObserver(Tt,Ye);Zt.observe(je);const Mn=Vn=>{se(!Vn[0].isIntersecting)},ir=new IntersectionObserver(Mn,Ye);return ir.observe(Ve),()=>{Zt.disconnect(),ir.disconnect()}}},[O,S,q,u==null?void 0:u.length]),b.useEffect(()=>{W(!0)},[]),b.useEffect(()=>{Te()}),b.useEffect(()=>{Re(cx!==V)},[Re,V]),b.useImperativeHandle(l,()=>({updateIndicator:Te,updateScrollButtons:ke}),[Te,ke]);const pe=g.jsx(MA,{...R,className:ve(H.indicator,R.className),ownerState:B,style:{...V,...R.style}});let ne=0;const xe=b.Children.map(u,oe=>{if(!b.isValidElement(oe))return null;const me=oe.props.value===void 0?ne:oe.props.value;te.set(me,ne);const je=me===P;return ne+=1,b.cloneElement(oe,{fullWidth:x==="fullWidth",indicator:je&&!F&&pe,selected:je,selectionFollowsFocus:m,onChange:y,textColor:T,value:me,...ne===1&&P===!1&&!oe.props.tabIndex?{tabIndex:0}:{}})}),Le=oe=>{const me=Q.current,je=ln(me).activeElement;if(je.getAttribute("role")!=="tab")return;let Ye=w==="horizontal"?"ArrowLeft":"ArrowUp",Tt=w==="horizontal"?"ArrowRight":"ArrowDown";switch(w==="horizontal"&&i&&(Ye="ArrowRight",Tt="ArrowLeft"),oe.key){case Ye:oe.preventDefault(),mu(me,je,lx);break;case Tt:oe.preventDefault(),mu(me,je,sx);break;case"Home":oe.preventDefault(),mu(me,null,sx);break;case"End":oe.preventDefault(),mu(me,null,lx);break}},fe=Pe();return g.jsxs(kA,{className:ve(H.root,d),ownerState:B,ref:n,as:f,...I,children:[fe.scrollButtonStart,fe.scrollbarSizeListener,g.jsxs($A,{className:H.scroller,ownerState:B,style:{overflow:ue.overflow,[D?`margin${i?"Left":"Right"}`:"marginBottom"]:$?void 0:-ue.scrollbarWidth},ref:de,children:[g.jsx(EA,{"aria-label":a,"aria-labelledby":s,"aria-orientation":w==="vertical"?"vertical":null,className:H.flexContainer,ownerState:B,onKeyDown:Le,ref:Q,role:"tablist",children:xe}),F&&pe]}),fe.scrollButtonEnd]})});function LA(e){return Oe("MuiTextField",e)}Ee("MuiTextField",["root"]);const AA={standard:Gd,filled:Ud,outlined:qd},NA=e=>{const{classes:t}=e;return Ne({root:["root"]},LA,t)},DA=J(EO,{name:"MuiTextField",slot:"Root",overridesResolver:(e,t)=>t.root})({}),jA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTextField"}),{autoComplete:o,autoFocus:i=!1,children:a,className:s,color:l="primary",defaultValue:c,disabled:u=!1,error:d=!1,FormHelperTextProps:f,fullWidth:p=!1,helperText:h,id:y,InputLabelProps:w,inputProps:v,InputProps:S,inputRef:m,label:C,maxRows:_,minRows:R,multiline:k=!1,name:T,onBlur:P,onChange:x,onFocus:$,placeholder:I,required:O=!1,rows:D,select:M=!1,SelectProps:A,slots:N={},slotProps:E={},type:L,value:B,variant:H="outlined",...z}=r,j={...r,autoFocus:i,color:l,disabled:u,error:d,fullWidth:p,multiline:k,required:O,select:M,variant:H},F=NA(j),W=ds(y),V=h&&W?`${W}-helper-text`:void 0,ee=C&&W?`${W}-label`:void 0,re=AA[H],U={slots:N,slotProps:{input:S,inputLabel:w,htmlInput:v,formHelperText:f,select:A,...E}},K={},se=U.slotProps.inputLabel;H==="outlined"&&(se&&typeof se.shrink<"u"&&(K.notched=se.shrink),K.label=C),M&&((!A||!A.native)&&(K.id=void 0),K["aria-describedby"]=void 0);const[q,ce]=an("input",{elementType:re,externalForwardedProps:U,additionalProps:K,ownerState:j}),[ue,ie]=an("inputLabel",{elementType:YO,externalForwardedProps:U,ownerState:j}),[te,de]=an("htmlInput",{elementType:"input",externalForwardedProps:U,ownerState:j}),[Q,be]=an("formHelperText",{elementType:jO,externalForwardedProps:U,ownerState:j}),[Te,we]=an("select",{elementType:vp,externalForwardedProps:U,ownerState:j}),ge=g.jsx(q,{"aria-describedby":V,autoComplete:o,autoFocus:i,defaultValue:c,fullWidth:p,multiline:k,name:T,rows:D,maxRows:_,minRows:R,type:L,value:B,id:W,inputRef:m,onBlur:P,onChange:x,onFocus:$,placeholder:I,inputProps:de,slots:{input:N.htmlInput?te:void 0},...ce});return g.jsxs(DA,{className:ve(F.root,s),disabled:u,error:d,fullWidth:p,ref:n,required:O,color:l,variant:H,ownerState:j,...z,children:[C!=null&&C!==""&&g.jsx(ue,{htmlFor:W,id:ee,...ie,children:C}),M?g.jsx(Te,{"aria-describedby":V,id:W,labelId:ee,value:B,input:ge,...we,children:a}):ge,h&&g.jsx(Q,{id:V,...be,children:h})]})});var FA={exports:{}};/* @license -Papa Parse -v5.4.1 -https://github.com/mholt/PapaParse -License: MIT -*/(function(e,t){(function(n,r){e.exports=r()})(jl,function n(){var r=typeof self<"u"?self:typeof window<"u"?window:r!==void 0?r:{},o=!r.document&&!!r.postMessage,i=r.IS_PAPA_WORKER||!1,a={},s=0,l={parse:function(T,P){var x=(P=P||{}).dynamicTyping||!1;if(k(x)&&(P.dynamicTypingFunction=x,x={}),P.dynamicTyping=x,P.transform=!!k(P.transform)&&P.transform,P.worker&&l.WORKERS_SUPPORTED){var $=function(){if(!l.WORKERS_SUPPORTED)return!1;var O=(M=r.URL||r.webkitURL||null,A=n.toString(),l.BLOB_URL||(l.BLOB_URL=M.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",A,")();"],{type:"text/javascript"})))),D=new r.Worker(O),M,A;return D.onmessage=S,D.id=s++,a[D.id]=D}();return $.userStep=P.step,$.userChunk=P.chunk,$.userComplete=P.complete,$.userError=P.error,P.step=k(P.step),P.chunk=k(P.chunk),P.complete=k(P.complete),P.error=k(P.error),delete P.worker,void $.postMessage({input:T,config:P,workerId:$.id})}var I=null;return l.NODE_STREAM_INPUT,typeof T=="string"?(T=function(O){return O.charCodeAt(0)===65279?O.slice(1):O}(T),I=P.download?new d(P):new p(P)):T.readable===!0&&k(T.read)&&k(T.on)?I=new h(P):(r.File&&T instanceof File||T instanceof Object)&&(I=new f(P)),I.stream(T)},unparse:function(T,P){var x=!1,$=!0,I=",",O=`\r -`,D='"',M=D+D,A=!1,N=null,E=!1;(function(){if(typeof P=="object"){if(typeof P.delimiter!="string"||l.BAD_DELIMITERS.filter(function(z){return P.delimiter.indexOf(z)!==-1}).length||(I=P.delimiter),(typeof P.quotes=="boolean"||typeof P.quotes=="function"||Array.isArray(P.quotes))&&(x=P.quotes),typeof P.skipEmptyLines!="boolean"&&typeof P.skipEmptyLines!="string"||(A=P.skipEmptyLines),typeof P.newline=="string"&&(O=P.newline),typeof P.quoteChar=="string"&&(D=P.quoteChar),typeof P.header=="boolean"&&($=P.header),Array.isArray(P.columns)){if(P.columns.length===0)throw new Error("Option columns is empty");N=P.columns}P.escapeChar!==void 0&&(M=P.escapeChar+D),(typeof P.escapeFormulae=="boolean"||P.escapeFormulae instanceof RegExp)&&(E=P.escapeFormulae instanceof RegExp?P.escapeFormulae:/^[=+\-@\t\r].*$/)}})();var L=new RegExp(w(D),"g");if(typeof T=="string"&&(T=JSON.parse(T)),Array.isArray(T)){if(!T.length||Array.isArray(T[0]))return B(null,T,A);if(typeof T[0]=="object")return B(N||Object.keys(T[0]),T,A)}else if(typeof T=="object")return typeof T.data=="string"&&(T.data=JSON.parse(T.data)),Array.isArray(T.data)&&(T.fields||(T.fields=T.meta&&T.meta.fields||N),T.fields||(T.fields=Array.isArray(T.data[0])?T.fields:typeof T.data[0]=="object"?Object.keys(T.data[0]):[]),Array.isArray(T.data[0])||typeof T.data[0]=="object"||(T.data=[T.data])),B(T.fields||[],T.data||[],A);throw new Error("Unable to serialize unrecognized input");function B(z,j,F){var W="";typeof z=="string"&&(z=JSON.parse(z)),typeof j=="string"&&(j=JSON.parse(j));var V=Array.isArray(z)&&0=this._config.preview;if(i)r.postMessage({results:O,workerId:l.WORKER_ID,finished:M});else if(k(this._config.chunk)&&!x){if(this._config.chunk(O,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);O=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(O.data),this._completeResults.errors=this._completeResults.errors.concat(O.errors),this._completeResults.meta=O.meta),this._completed||!M||!k(this._config.complete)||O&&O.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),M||O&&O.meta.paused||this._nextChunk(),O}this._halted=!0},this._sendError=function(P){k(this._config.error)?this._config.error(P):i&&this._config.error&&r.postMessage({workerId:l.WORKER_ID,error:P,finished:!1})}}function d(T){var P;(T=T||{}).chunkSize||(T.chunkSize=l.RemoteChunkSize),u.call(this,T),this._nextChunk=o?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(x){this._input=x,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(P=new XMLHttpRequest,this._config.withCredentials&&(P.withCredentials=this._config.withCredentials),o||(P.onload=R(this._chunkLoaded,this),P.onerror=R(this._chunkError,this)),P.open(this._config.downloadRequestBody?"POST":"GET",this._input,!o),this._config.downloadRequestHeaders){var x=this._config.downloadRequestHeaders;for(var $ in x)P.setRequestHeader($,x[$])}if(this._config.chunkSize){var I=this._start+this._config.chunkSize-1;P.setRequestHeader("Range","bytes="+this._start+"-"+I)}try{P.send(this._config.downloadRequestBody)}catch(O){this._chunkError(O.message)}o&&P.status===0&&this._chunkError()}},this._chunkLoaded=function(){P.readyState===4&&(P.status<200||400<=P.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:P.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(x){var $=x.getResponseHeader("Content-Range");return $===null?-1:parseInt($.substring($.lastIndexOf("/")+1))}(P),this.parseChunk(P.responseText)))},this._chunkError=function(x){var $=P.statusText||x;this._sendError(new Error($))}}function f(T){var P,x;(T=T||{}).chunkSize||(T.chunkSize=l.LocalChunkSize),u.call(this,T);var $=typeof FileReader<"u";this.stream=function(I){this._input=I,x=I.slice||I.webkitSlice||I.mozSlice,$?((P=new FileReader).onload=R(this._chunkLoaded,this),P.onerror=R(this._chunkError,this)):P=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(I.target.result)},this._chunkError=function(){this._sendError(P.error)}}function p(T){var P;u.call(this,T=T||{}),this.stream=function(x){return P=x,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var x,$=this._config.chunkSize;return $?(x=P.substring(0,$),P=P.substring($)):(x=P,P=""),this._finished=!P,this.parseChunk(x)}}}function h(T){u.call(this,T=T||{});var P=[],x=!0,$=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(I){this._input=I,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){$&&P.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),P.length?this.parseChunk(P.shift()):x=!0},this._streamData=R(function(I){try{P.push(typeof I=="string"?I:I.toString(this._config.encoding)),x&&(x=!1,this._checkIsFinished(),this.parseChunk(P.shift()))}catch(O){this._streamError(O)}},this),this._streamError=R(function(I){this._streamCleanUp(),this._sendError(I)},this),this._streamEnd=R(function(){this._streamCleanUp(),$=!0,this._streamData("")},this),this._streamCleanUp=R(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function y(T){var P,x,$,I=Math.pow(2,53),O=-I,D=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,M=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,A=this,N=0,E=0,L=!1,B=!1,H=[],z={data:[],errors:[],meta:{}};if(k(T.step)){var j=T.step;T.step=function(U){if(z=U,V())W();else{if(W(),z.data.length===0)return;N+=U.data.length,T.preview&&N>T.preview?x.abort():(z.data=z.data[0],j(z,A))}}}function F(U){return T.skipEmptyLines==="greedy"?U.join("").trim()==="":U.length===1&&U[0].length===0}function W(){return z&&$&&(re("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+l.DefaultDelimiter+"'"),$=!1),T.skipEmptyLines&&(z.data=z.data.filter(function(U){return!F(U)})),V()&&function(){if(!z)return;function U(se,q){k(T.transformHeader)&&(se=T.transformHeader(se,q)),H.push(se)}if(Array.isArray(z.data[0])){for(var K=0;V()&&K=H.length?"__parsed_extra":H[ce]),T.transform&&(te=T.transform(te,ie)),te=ee(ie,te),ie==="__parsed_extra"?(ue[ie]=ue[ie]||[],ue[ie].push(te)):ue[ie]=te}return T.header&&(ce>H.length?re("FieldMismatch","TooManyFields","Too many fields: expected "+H.length+" fields but parsed "+ce,E+q):ce=Q.length/2?`\r -`:"\r"}(U,q)),$=!1,T.delimiter)k(T.delimiter)&&(T.delimiter=T.delimiter(U),z.meta.delimiter=T.delimiter);else{var ce=function(ie,te,de,Q,be){var Te,we,ge,le;be=be||[","," ","|",";",l.RECORD_SEP,l.UNIT_SEP];for(var Se=0;Se=D)return xe(!0)}else for(ye=N,N++;;){if((ye=L.indexOf(P,ye+1))===-1)return H||re.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:ee.length,index:N}),pe();if(ye===z-1)return pe(L.substring(N,ye).replace(Se,P));if(P!==A||L[ye+1]!==A){if(P===A||ye===0||L[ye-1]!==A){ge!==-1&&ge=D)return xe(!0);break}re.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:ee.length,index:N}),ye++}}else ye++}return pe();function Re(fe){ee.push(fe),K=N}function ke(fe){var oe=0;if(fe!==-1){var me=L.substring(ye+1,fe);me&&me.trim()===""&&(oe=me.length)}return oe}function pe(fe){return H||(fe===void 0&&(fe=L.substring(N)),U.push(fe),N=z,Re(U),V&&Le()),xe()}function ne(fe){N=fe,Re(U),U=[],le=L.indexOf($,N)}function xe(fe){return{data:ee,errors:re,meta:{delimiter:x,linebreak:$,aborted:E,truncated:!!fe,cursor:K+(B||0)}}}function Le(){O(xe()),ee=[],re=[]}},this.abort=function(){E=!0},this.getCharIndex=function(){return N}}function S(T){var P=T.data,x=a[P.workerId],$=!1;if(P.error)x.userError(P.error,P.file);else if(P.results&&P.results.data){var I={abort:function(){$=!0,m(P.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:C,resume:C};if(k(x.userStep)){for(var O=0;O{const{size:t,width:n=16,height:r=16,sx:o,...i}=e;return g.jsx(ra,{sx:{fill:"none",width:t||n,height:t||r,...o},viewBox:"0 0 16 16",...i,children:e.children},void 0)},BA=e=>{const{sx:t,...n}=e;return g.jsx(ra,{sx:{fill:"none",width:24,height:24,...t},viewBox:"0 0 24 24",...n,children:e.children},void 0)},H_=e=>{const{sx:t,...n}=e;return g.jsx(ra,{sx:{fill:"none",width:14,height:14,...t},viewBox:"0 0 14 14",...n,children:e.children},void 0)},zA=e=>g.jsx(BA,{...e,children:g.jsx("path",{d:"M18.861 16.1166C17.4619 18.4433 14.9127 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12H22C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C15.6409 22 18.8274 20.0542 20.5762 17.1457L18.861 16.1166Z",fill:"#1D2939"},void 0)},void 0),HA=e=>g.jsx(H_,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.08871 1.5C3.55444 1.5 1.5 3.55444 1.5 6.08871C1.5 8.62298 3.55444 10.6774 6.08871 10.6774C7.17572 10.6774 8.17445 10.2995 8.96065 9.66778L11.75 12.4571L12.4571 11.75L9.66776 8.96067C10.2994 8.17447 10.6774 7.17573 10.6774 6.08871C10.6774 3.55444 8.62298 1.5 6.08871 1.5ZM2.5 6.08871C2.5 4.10672 4.10672 2.5 6.08871 2.5C8.0707 2.5 9.67742 4.10672 9.67742 6.08871C9.67742 8.0707 8.0707 9.67742 6.08871 9.67742C4.10672 9.67742 2.5 8.0707 2.5 6.08871Z",fill:"#1D2939"},void 0)},void 0),VA=e=>g.jsx(H_,{...e,children:g.jsx("path",{d:"M6.99999 7.91921L3.45958 11.4596L2.54034 10.5404L6.08075 6.99997L2.54039 3.45961L3.45963 2.54037L6.99999 6.08073L10.5403 2.54037L11.4596 3.45961L7.91923 6.99997L11.4596 10.5404L10.5404 11.4596L6.99999 7.91921Z",fill:"#1D2939"},void 0)},void 0),O1=e=>g.jsx(Cn,{...e,children:g.jsx("path",{d:"M4.40029 3.55174C4.16598 3.31743 3.78608 3.31743 3.55177 3.55174C3.31745 3.78606 3.31745 4.16596 3.55177 4.40027L7.15147 7.99998L3.55178 11.5997C3.31746 11.834 3.31746 12.2139 3.55178 12.4482C3.78609 12.6825 4.16599 12.6825 4.40031 12.4482L8 8.84851L11.5997 12.4482C11.834 12.6825 12.2139 12.6825 12.4482 12.4482C12.6825 12.2139 12.6825 11.834 12.4482 11.5997L8.84853 7.99998L12.4482 4.40027C12.6826 4.16596 12.6826 3.78606 12.4482 3.55174C12.2139 3.31743 11.834 3.31743 11.5997 3.55174L8 7.15145L4.40029 3.55174Z",fill:"currentColor"},void 0)},void 0),WA=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.04214 5.95918C6.65053 5.95918 5.52241 7.0873 5.52241 8.47891C5.52241 9.87051 6.65053 10.9986 8.04214 10.9986C9.43374 10.9986 10.5619 9.87051 10.5619 8.47891C10.5619 7.0873 9.43374 5.95918 8.04214 5.95918ZM6.52241 8.47891C6.52241 7.63958 7.20281 6.95918 8.04214 6.95918C8.88146 6.95918 9.56187 7.63958 9.56187 8.47891C9.56187 9.31823 8.88146 9.99864 8.04214 9.99864C7.20281 9.99864 6.52241 9.31823 6.52241 8.47891Z",fill:"currentColor"},void 0),g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.9094 8.18455C14.9095 8.1847 14.9096 8.18483 14.5053 8.47891C14.9096 8.77299 14.9095 8.77312 14.9094 8.77327L14.9084 8.77465L14.9062 8.77775L14.8984 8.78819L14.8705 8.82542C14.8464 8.85725 14.8114 8.90281 14.766 8.96015C14.6753 9.07477 14.543 9.23673 14.3733 9.43024C14.0346 9.8166 13.544 10.3323 12.9362 10.8492C11.7356 11.8704 10.0053 12.9578 8.04214 12.9578C6.07894 12.9578 4.34871 11.8704 3.14808 10.8492C2.54026 10.3323 2.04969 9.8166 1.71095 9.43024C1.54128 9.23673 1.40893 9.07477 1.31822 8.96015C1.27285 8.90281 1.23784 8.85725 1.21374 8.82542L1.18582 8.78819L1.17811 8.77775L1.17584 8.77465L1.1751 8.77363C1.17499 8.77349 1.17463 8.77299 1.579 8.47891C1.17463 8.18483 1.17472 8.1847 1.17483 8.18455L1.17584 8.18318L1.17811 8.18007L1.18582 8.16963L1.21374 8.1324C1.23784 8.10057 1.27285 8.05501 1.31822 7.99767C1.40893 7.88305 1.54128 7.72109 1.71095 7.52758C2.04969 7.14122 2.54026 6.62552 3.14808 6.10858C4.34871 5.08746 6.07894 4 8.04214 4C10.0053 4 11.7356 5.08746 12.9362 6.10858C13.544 6.62552 14.0346 7.14122 14.3733 7.52758C14.543 7.72109 14.6753 7.88305 14.766 7.99767C14.8114 8.05501 14.8464 8.10057 14.8705 8.1324L14.8984 8.16963L14.9062 8.18007L14.9084 8.18318L14.9094 8.18455ZM2.46287 8.77099C2.36639 8.66095 2.28336 8.56242 2.21478 8.47891C2.28336 8.3954 2.36639 8.29687 2.46287 8.18683C2.77823 7.82714 3.23416 7.34812 3.79594 6.87033C4.93451 5.902 6.43584 5 8.04214 5C9.64843 5 11.1498 5.902 12.2883 6.87033C12.8501 7.34812 13.306 7.82714 13.6214 8.18683C13.7179 8.29687 13.8009 8.3954 13.8695 8.47891C13.8009 8.56241 13.7179 8.66095 13.6214 8.77099C13.306 9.13068 12.8501 9.6097 12.2883 10.0875C11.1498 11.0558 9.64843 11.9578 8.04214 11.9578C6.43584 11.9578 4.93451 11.0558 3.79594 10.0875C3.23416 9.6097 2.77823 9.13068 2.46287 8.77099Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M14.5053 8.47891L14.9094 8.18455C15.0369 8.35988 15.0369 8.59794 14.9094 8.77327L14.5053 8.47891Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M1.17483 8.18455L1.579 8.47891L1.1751 8.77363C1.0476 8.59831 1.04733 8.35988 1.17483 8.18455Z",fill:"currentColor"},void 0)]},void 0),UA=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.1106 3.65519C13.301 3.85517 13.2933 4.17165 13.0933 4.36209L9.97993 7.32691C9.96934 7.33914 9.95806 7.35097 9.94609 7.36234C9.93431 7.37355 9.92213 7.38406 9.90959 7.39389L3.64235 13.3621C3.44238 13.5525 3.12589 13.5448 2.93546 13.3448C2.74503 13.1448 2.75276 12.8283 2.95274 12.6379L4.06813 11.5757C3.24267 11.0059 2.55654 10.3585 2.06343 9.83657C1.78455 9.5414 1.56492 9.28373 1.41417 9.09871C1.33874 9.00614 1.28041 8.93157 1.24038 8.87939C1.22036 8.85329 1.2049 8.83278 1.19416 8.81838L1.1816 8.80145L1.178 8.79656L1.17688 8.79502C1.17682 8.79493 1.17621 8.79411 1.58059 8.50003C1.17621 8.20595 1.17631 8.20582 1.17642 8.20567L1.17742 8.20429L1.17969 8.2012L1.18738 8.19078L1.21522 8.15366C1.23926 8.12192 1.27416 8.07649 1.3194 8.01932C1.40984 7.90503 1.54179 7.74357 1.71095 7.55063C2.04868 7.16543 2.53777 6.65128 3.14377 6.13589C4.34075 5.11787 6.06595 4.03351 8.02359 4.03351C9.14779 4.03351 10.1926 4.39154 11.0977 4.88158L12.4037 3.63791C12.6037 3.44748 12.9201 3.45522 13.1106 3.65519ZM9.58316 6.32385L10.331 5.61171C9.60548 5.25934 8.82649 5.03351 8.02359 5.03351C6.42286 5.03351 4.92655 5.93241 3.79163 6.89765C3.23168 7.37388 2.77721 7.85136 2.46287 8.20989C2.36709 8.31913 2.2846 8.417 2.2164 8.50003C2.35319 8.66654 2.54714 8.89243 2.7903 9.14979C3.28839 9.67696 3.98395 10.3265 4.8096 10.8696L5.77368 9.95157C5.5034 9.53331 5.34632 9.03452 5.34632 8.50002C5.34632 7.02144 6.54494 5.82282 8.02352 5.82282C8.6053 5.82282 9.14412 6.00876 9.58316 6.32385ZM6.51881 9.24199C6.40832 9.01845 6.34632 8.76679 6.34632 8.50002C6.34632 7.57372 7.09723 6.82282 8.02352 6.82282C8.31925 6.82282 8.59685 6.89911 8.83805 7.03341L6.51881 9.24199Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M1.58059 8.50003L1.17621 8.79411C1.04871 8.61878 1.04891 8.38099 1.17642 8.20567L1.58059 8.50003Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M12.1782 6.17688C12.3566 5.96615 12.6721 5.93998 12.8828 6.11843C13.495 6.63678 13.9892 7.15531 14.3305 7.54409C14.5015 7.73883 14.6348 7.90192 14.7262 8.01738C14.772 8.07514 14.8073 8.12105 14.8315 8.15312L14.8597 8.19063L14.8675 8.20116L14.8698 8.20428L14.8705 8.2053C14.8705 8.20536 14.871 8.20595 14.4666 8.50003C14.871 8.79411 14.8709 8.79424 14.8708 8.79438L14.8698 8.79576L14.8675 8.79885L14.8598 8.80927L14.832 8.84639C14.8079 8.87813 14.773 8.92356 14.7278 8.98073C14.6373 9.09502 14.5054 9.25649 14.3362 9.44942C13.9985 9.83462 13.5094 10.3488 12.9034 10.8642C11.7064 11.8822 9.98123 12.9665 8.02359 12.9665C7.44356 12.9665 6.8846 12.8711 6.35578 12.7118C6.09137 12.6322 5.9416 12.3533 6.02125 12.0889C6.1009 11.8245 6.37981 11.6747 6.64422 11.7543C7.09234 11.8893 7.55384 11.9665 8.02359 11.9665C9.62432 11.9665 11.1206 11.0676 12.2555 10.1024C12.8155 9.62617 13.27 9.14869 13.5843 8.79017C13.6801 8.68092 13.7626 8.58305 13.8308 8.50002C13.7613 8.41547 13.677 8.31551 13.579 8.20382C13.2613 7.84189 12.8021 7.36041 12.2366 6.88157C12.0259 6.70311 11.9997 6.38761 12.1782 6.17688Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M14.4666 8.50003L14.8705 8.2053C14.998 8.38062 14.9983 8.61906 14.8708 8.79438L14.4666 8.50003Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M10.7007 8.50002C10.7007 8.22388 10.4769 8.00002 10.2007 8.00002C9.92458 8.00002 9.70072 8.22388 9.70072 8.50002C9.70072 9.42631 8.94981 10.1772 8.02352 10.1772C7.74738 10.1772 7.52352 10.4011 7.52352 10.6772C7.52352 10.9534 7.74738 11.1772 8.02352 11.1772C9.5021 11.1772 10.7007 9.9786 10.7007 8.50002Z",fill:"currentColor"},void 0)]},void 0),_m=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{d:"M9.60001 2.10001C9.32387 2.10001 9.10001 2.32386 9.10001 2.60001C9.10001 2.87615 9.32387 3.10001 9.60001 3.10001L12.5722 3.10001L8.23955 7.60704C8.04818 7.80612 8.05442 8.12264 8.25349 8.31401C8.45257 8.50538 8.76909 8.49914 8.96046 8.30007L13.2465 3.8416V6.45354C13.2465 6.72968 13.4703 6.95354 13.7465 6.95354C14.0226 6.95354 14.2465 6.72968 14.2465 6.45354V2.60001C14.2465 2.32387 14.0226 2.10001 13.7465 2.10001H9.60001Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M3.60001 14.5L11.6 14.5C12.4284 14.5 13.1 13.8284 13.1 13V8.95355C13.1 8.67741 12.8761 8.45355 12.6 8.45355C12.3239 8.45355 12.1 8.67741 12.1 8.95355V13C12.1 13.2761 11.8761 13.5 11.6 13.5L3.60001 13.5C3.32386 13.5 3.10001 13.2761 3.10001 13L3.10001 4.45355C3.10001 4.17741 3.32386 3.95355 3.60001 3.95355L7.10001 3.95355C7.37615 3.95355 7.60001 3.7297 7.60001 3.45355C7.60001 3.17741 7.37615 2.95355 7.10001 2.95355L3.60001 2.95355C2.77158 2.95355 2.10001 3.62513 2.10001 4.45355V13C2.10001 13.8284 2.77158 14.5 3.60001 14.5Z",fill:"currentColor"},void 0)]},void 0),GA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.9348 2.51687C11.2017 2.75702 11.2233 3.16801 10.9831 3.43484L6.87449 8.00001L10.9831 12.5652C11.2233 12.832 11.2017 13.243 10.9348 13.4832C10.668 13.7233 10.257 13.7017 10.0169 13.4348L5.51686 8.43484C5.29439 8.18764 5.29439 7.81238 5.51686 7.56518L10.0169 2.56518C10.257 2.29835 10.668 2.27672 10.9348 2.51687Z",fill:"currentColor"},void 0)},void 0),qA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.56518 2.51687C5.29835 2.75702 5.27672 3.16801 5.51687 3.43484L9.62553 8.00001L5.51687 12.5652C5.27672 12.832 5.29835 13.243 5.56518 13.4832C5.83202 13.7233 6.243 13.7017 6.48315 13.4348L10.9832 8.43484C11.2056 8.18764 11.2056 7.81238 10.9832 7.56518L6.48315 2.56518C6.243 2.29835 5.83202 2.27672 5.56518 2.51687Z",fill:"currentColor"},void 0)},void 0),KA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.58839 5.49693C7.82783 5.30103 8.17216 5.30103 8.4116 5.49693L13.9116 9.99693C14.1894 10.2243 14.2304 10.6338 14.0031 10.9116C13.7757 11.1894 13.3662 11.2304 13.0884 11.0031L8 6.83985L2.9116 11.0031C2.63376 11.2304 2.22425 11.1894 1.99692 10.9116C1.7696 10.6338 1.81055 10.2243 2.08839 9.99693L7.58839 5.49693Z",fill:"currentColor"},void 0)},void 0),ia=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.58839 11.0031C7.82783 11.199 8.17216 11.199 8.4116 11.0031L13.9116 6.50307C14.1894 6.27574 14.2304 5.86623 14.0031 5.58839C13.7757 5.31055 13.3662 5.2696 13.0884 5.49692L8 9.66016L2.9116 5.49692C2.63376 5.2696 2.22425 5.31055 1.99692 5.58839C1.7696 5.86623 1.81055 6.27574 2.08839 6.50307L7.58839 11.0031Z",fill:"currentColor"},void 0)},void 0),ZA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.3758 3.37871C13.5718 3.18427 13.5732 2.86769 13.3787 2.67161C13.1843 2.47553 12.8677 2.47421 12.6716 2.66865L7.21656 8.07829C5.97323 6.96347 4.06051 7.00362 2.8654 8.19873C1.62874 9.43539 1.62874 11.4404 2.8654 12.6771C4.10206 13.9137 6.10708 13.9137 7.34374 12.6771C8.37873 11.6421 8.54751 10.0689 7.85009 8.85838L9.64093 7.08244L11.3233 8.76477C11.5185 8.96003 11.8351 8.96003 12.0304 8.76477C12.2256 8.56951 12.2256 8.25292 12.0304 8.05766L10.351 6.37829L11.3316 5.40586L13.0068 7.08109C13.2021 7.27636 13.5187 7.27636 13.7139 7.08109C13.9092 6.88583 13.9092 6.56925 13.7139 6.37399L12.0417 4.70171L13.3758 3.37871ZM3.5725 8.90584C4.41864 8.0597 5.7905 8.0597 6.63663 8.90584C7.48277 9.75197 7.48277 11.1238 6.63663 11.97C5.7905 12.8161 4.41864 12.8161 3.5725 11.97C2.72637 11.1238 2.72637 9.75197 3.5725 8.90584Z",fill:"currentColor"},void 0)},void 0),QA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8 3.69999C5.62518 3.69999 3.7 5.62516 3.7 7.99999C3.7 10.3748 5.62518 12.3 8 12.3C9.20303 12.3 10.2896 11.8069 11.0709 11.01C11.3415 10.7339 11.7847 10.7295 12.0608 11.0001C12.3368 11.2708 12.3412 11.7139 12.0706 11.99C11.0369 13.0445 9.59437 13.7 8 13.7C4.85198 13.7 2.3 11.148 2.3 7.99999C2.3 4.85196 4.85198 2.29999 8 2.29999C11.148 2.29999 13.7 4.85196 13.7 7.99999C13.7 8.38659 13.3866 8.69999 13 8.69999C12.6134 8.69999 12.3 8.38659 12.3 7.99999C12.3 5.62516 10.3748 3.69999 8 3.69999Z",fill:"currentColor"},void 0)},void 0),YA=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{d:"M8 7.35C8.35898 7.35 8.65 7.64102 8.65 8V10.5C8.65 10.859 8.35898 11.15 8 11.15C7.64102 11.15 7.35 10.859 7.35 10.5V8C7.35 7.64102 7.64102 7.35 8 7.35Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M8.65 5.5C8.65 5.14101 8.35898 4.85 8 4.85C7.64102 4.85 7.35 5.14102 7.35 5.5V5.6C7.35 5.95898 7.64102 6.25 8 6.25C8.35898 6.25 8.65 5.95898 8.65 5.6V5.5Z",fill:"currentColor"},void 0),g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8ZM8 2.5C4.96243 2.5 2.5 4.96243 2.5 8C2.5 11.0376 4.96243 13.5 8 13.5C11.0376 13.5 13.5 11.0376 13.5 8C13.5 4.96243 11.0376 2.5 8 2.5Z",fill:"currentColor"},void 0)]},void 0),Rm=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM8 7.38747C8.33828 7.38747 8.6125 7.6617 8.6125 7.99997V10.5521C8.6125 10.8903 8.33828 11.1646 8 11.1646C7.66173 11.1646 7.3875 10.8903 7.3875 10.5521V7.99997C7.3875 7.6617 7.66173 7.38747 8 7.38747ZM8.6125 5.44789C8.6125 5.10962 8.33828 4.83539 8 4.83539C7.66173 4.83539 7.3875 5.10962 7.3875 5.44789V5.54997C7.3875 5.88825 7.66173 6.16247 8 6.16247C8.33828 6.16247 8.6125 5.88825 8.6125 5.54997V5.44789Z",fill:"currentColor"},void 0)},void 0),V_=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.14215 1.67713C8.64833 0.774291 7.35164 0.774289 6.85782 1.67713L1.16152 12.0915C0.686995 12.9591 1.31483 14.0181 2.30368 14.0181H13.6963C14.6851 14.0181 15.313 12.9591 14.8385 12.0915L9.14215 1.67713ZM8.00002 5.28887C8.3336 5.28887 8.60402 5.55929 8.60402 5.89287V8.40953C8.60402 8.74311 8.3336 9.01353 8.00002 9.01353C7.66644 9.01353 7.39602 8.74311 7.39602 8.40953V5.89287C7.39602 5.55929 7.66644 5.28887 8.00002 5.28887ZM8.60402 10.9262C8.60402 10.5926 8.3336 10.3222 8.00002 10.3222C7.66644 10.3222 7.39602 10.5926 7.39602 10.9262V11.0269C7.39602 11.3604 7.66644 11.6309 8.00002 11.6309C8.3336 11.6309 8.60402 11.3604 8.60402 11.0269V10.9262Z",fill:"currentColor"},void 0)},void 0),W_=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM5.52524 5.5252C5.76443 5.28601 6.15224 5.28601 6.39144 5.5252L8 7.13377L9.60857 5.5252C9.84776 5.28601 10.2356 5.28601 10.4748 5.5252C10.714 5.7644 10.714 6.15221 10.4748 6.39141L8.86621 7.99997L10.4748 9.60854C10.714 9.84773 10.714 10.2355 10.4748 10.4747C10.2356 10.7139 9.84776 10.7139 9.60857 10.4747L8 8.86618L6.39144 10.4747C6.15224 10.7139 5.76443 10.7139 5.52524 10.4747C5.28604 10.2355 5.28604 9.84773 5.52524 9.60854L7.1338 7.99997L5.52524 6.39141C5.28604 6.15221 5.28604 5.7644 5.52524 5.5252Z",fill:"currentColor"},void 0)},void 0),U_=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8 15C11.866 15 15 11.866 15 8C15 4.13401 11.866 1 8 1C4.13401 1 1 4.13401 1 8C1 11.866 4.13401 15 8 15ZM10.9852 6.39141C11.2244 6.15221 11.2244 5.7644 10.9852 5.5252C10.746 5.28601 10.3582 5.28601 10.119 5.5252L6.97916 8.66502L5.88102 7.56687C5.64182 7.32767 5.25401 7.32767 5.01481 7.56687C4.77561 7.80607 4.77561 8.19388 5.01481 8.43308L6.54606 9.96433C6.78526 10.2035 7.17307 10.2035 7.41227 9.96433L10.9852 6.39141Z",fill:"currentColor"},void 0)},void 0),XA=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.97302 2.34713C4.9413 2.02437 6.24717 1.83331 7.66667 1.83331C9.08617 1.83331 10.392 2.02437 11.3603 2.34713C11.8419 2.50764 12.2676 2.70978 12.5832 2.95853C12.8932 3.20284 13.1667 3.551 13.1667 3.99998V7.66667C13.1667 7.94281 12.9428 8.16667 12.6667 8.16667C12.3905 8.16667 12.1667 7.94281 12.1667 7.66667V5.31162C11.9268 5.44159 11.654 5.55495 11.3603 5.65283C10.392 5.97559 9.08617 6.16665 7.66667 6.16665C6.24717 6.16665 4.9413 5.97559 3.97302 5.65283C3.67939 5.55495 3.4065 5.44159 3.16667 5.31162V8C3.16667 8.16593 3.30186 8.46432 4.04786 8.73916C4.76055 9.00173 5.8604 9.16667 7.33334 9.16667C7.60948 9.16667 7.83334 9.39052 7.83334 9.66667C7.83334 9.94281 7.60948 10.1667 7.33334 10.1667C5.80628 10.1667 4.57279 9.99827 3.70215 9.6775C3.51458 9.6084 3.33399 9.52793 3.16667 9.43528V12C3.16667 12.0015 3.16776 12.0908 3.3783 12.2489C3.58092 12.401 3.9071 12.5595 4.35844 12.7016C5.25531 12.9838 6.53536 13.1667 8.00001 13.1667C8.27615 13.1667 8.50001 13.3905 8.50001 13.6667C8.50001 13.9428 8.27615 14.1667 8.00001 14.1667C6.46465 14.1667 5.07803 13.9764 4.05824 13.6554C3.55124 13.4959 3.10659 13.2953 2.77796 13.0486C2.45726 12.8079 2.16667 12.4587 2.16667 12V4C2.16667 3.55102 2.44011 3.20284 2.75011 2.95853C3.06574 2.70978 3.49149 2.50764 3.97302 2.34713ZM3.36908 3.74394C3.17306 3.89843 3.16667 3.98873 3.16667 3.99998C3.16667 4.01123 3.17306 4.10153 3.36908 4.25601C3.55947 4.40606 3.86596 4.56305 4.28925 4.70415C5.13061 4.9846 6.32474 5.16665 7.66667 5.16665C9.0086 5.16665 10.2027 4.9846 11.0441 4.70415C11.4674 4.56305 11.7739 4.40606 11.9643 4.25601C12.1603 4.10153 12.1667 4.01123 12.1667 3.99998C12.1667 3.98873 12.1603 3.89843 11.9643 3.74394C11.7739 3.5939 11.4674 3.43691 11.0441 3.29581C10.2027 3.01536 9.0086 2.83331 7.66667 2.83331C6.32474 2.83331 5.13061 3.01536 4.28925 3.29581C3.86596 3.43691 3.55947 3.5939 3.36908 3.74394Z",fill:"currentColor"},void 0),g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.8444 12.1373C13.0486 11.8068 13.1667 11.4169 13.1667 11C13.1667 9.80338 12.1966 8.83331 11 8.83331C9.80339 8.83331 8.83333 9.80338 8.83333 11C8.83333 12.1966 9.80339 13.1666 11 13.1666C11.4169 13.1666 11.8068 13.0486 12.1373 12.8444L13.3131 14.0202C13.5084 14.2155 13.825 14.2155 14.0202 14.0202C14.2155 13.8249 14.2155 13.5084 14.0202 13.3131L12.8444 12.1373ZM9.83333 11C9.83333 10.3557 10.3557 9.83331 11 9.83331C11.6443 9.83331 12.1667 10.3557 12.1667 11C12.1667 11.3223 12.0366 11.6133 11.825 11.8249C11.6133 12.0366 11.3223 12.1666 11 12.1666C10.3557 12.1666 9.83333 11.6443 9.83333 11Z",fill:"currentColor"},void 0)]},void 0),JA=e=>{const{severity:t="info"}=e;return{error:g.jsx(W_,{size:14},void 0),info:g.jsx(Rm,{size:14},void 0),success:g.jsx(U_,{size:14},void 0),warning:g.jsx(V_,{size:14},void 0),regular:g.jsx(Rm,{size:14},void 0),gradient:g.jsx(g.Fragment,{},void 0)}[t]||g.jsx(g.Fragment,{},void 0)},eN="_wrapper_f0zdf_1",tN={wrapper:eN},bp=e=>{const{title:t,sx:n={},PopperProps:r={},margin:o=12,...i}=e,a=zt();return g.jsx(a7,{PopperProps:{sx:{'&.MuiTooltip-popper[data-popper-placement*="top"]':{".MuiTooltip-tooltip":{marginBottom:`${o}px`}},'&.MuiTooltip-popper[data-popper-placement*="bottom"]':{".MuiTooltip-tooltip":{marginTop:`${o}px`}},'&.MuiTooltip-popper[data-popper-placement*="left"]':{".MuiTooltip-tooltip":{marginRight:`${o}px`}},'&.MuiTooltip-popper[data-popper-placement*="right"]':{".MuiTooltip-tooltip":{marginLeft:`${o}px`}},".MuiTooltip-tooltip":{borderRadius:"6px",boxShadow:" 0px 1px 10px 0px rgba(107, 121, 141, 0.30)",backgroundColor:"#fff",padding:"12px",color:a.black.black1,fontSize:12,lineHeight:"16px",fontWeight:400},"> * > .MuiTooltip-arrow":{color:"#fff"},...n},...r},title:t,arrow:!0,...i},void 0)},Mc=({tooltip:e,children:t,classes:n={root:""}})=>{const{title:r="",...o}=e||{};return e?g.jsx(bp,{title:r,...o,children:g.jsx("span",{className:Gt(tN.wrapper,n.root),children:t},void 0)},void 0):g.jsx(g.Fragment,{children:t},void 0)},nN="_zButton_2ljo4_3",rN="_disabled_2ljo4_16",oN="_xlarge_2ljo4_25",iN="_large_2ljo4_26",aN="_medium_2ljo4_27",sN="_small_2ljo4_58",lN="_tiny_2ljo4_74",cN="_contained_2ljo4_92",uN="_outlined_2ljo4_105",dN="_noShadow_2ljo4_111",fN="_danger_2ljo4_126",pN="_textBlue_2ljo4_135",gN="_noMargin_2ljo4_143",hN="_textBlack_2ljo4_159",mN="_textGhost_2ljo4_183",vN="_text_2ljo4_135",yN="_link_2ljo4_206",nn={zButton:nN,disabled:rN,xlarge:oN,large:iN,medium:aN,small:sN,tiny:lN,contained:cN,outlined:uN,noShadow:dN,danger:fN,textBlue:pN,noMargin:gN,textBlack:hN,textGhost:mN,text:vN,link:yN},L1=e=>{const{danger:t=!1,sx:n,loading:r,disabled:o=!1,activeIconStyle:i,tooltip:a,children:s,isLinkButton:l=!1,size:c="medium",variant:u="contained",withMargin:d=!0,withShadow:f=!0,className:p,...h}=e,y=r?!0:o,w=b.useMemo(()=>a?{PopperProps:{modifiers:[{name:"offset",options:{offset:[0,8]}}]},...a}:void 0,[a]),v=b.useMemo(()=>c==="xs"||c==="small"?"4px":"6px",[c]);return g.jsx(Mc,{tooltip:w,children:g.jsx(zI,{className:Gt(nn.zButton,{[nn.xlarge]:c==="xl",[nn.large]:c==="large",[nn.medium]:c==="medium",[nn.small]:c==="small",[nn.tiny]:c==="xs",[nn.contained]:u==="contained",[nn.outlined]:u==="outlined",[nn.danger]:t,[nn.textBlue]:u==="textBlue",[nn.textBlack]:u==="textBlack",[nn.textGhost]:u==="textGhost",[nn.text]:u==="text",[nn.link]:l,[nn.disabled]:y,[nn.noMargin]:!d,[nn.noShadow]:!f},p),sx:{" .MuiButton-startIcon":{marginLeft:0,marginRight:v}," .MuiButton-endIcon":{marginRight:0,marginLeft:v},...n},disableRipple:!0,disabled:y,variant:u,...h,children:r?g.jsxs(s7,{direction:"row",spacing:r?1:0,style:{alignItems:"center"},children:[g.jsx(Lr,{sx:{display:"flex","@keyframes rotate":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}},style:{color:"white",animation:`${r?"rotate 1s linear infinite":""}`},children:r&&g.jsx(QA,{},void 0)},void 0),g.jsx(mt,{component:"span",sx:{color:"inherit",fontSize:"inherit",fontWeight:"inherit",lineHeight:"inherit"},children:s},void 0)]},void 0):s},void 0)},void 0)};L1.displayName="ZButton";const bN="_zIconButton_1y2v2_3",xN="_disabled_1y2v2_7",SN="_withMargin_1y2v2_13",wN="_noMargin_1y2v2_19",CN="_withBorder_1y2v2_28",_N="_large_1y2v2_37",RN="_medium_1y2v2_38",TN="_small_1y2v2_49",PN="_xs_1y2v2_60",uo={zIconButton:bN,disabled:xN,withMargin:SN,noMargin:wN,withBorder:CN,large:_N,medium:RN,small:TN,xs:PN},A1=e=>{const{activeStyle:t={},sx:n,tooltip:r,size:o="medium",disabled:i,withBorder:a=!1,withMargin:s=!0,className:l,...c}=e;return g.jsx(Mc,{tooltip:r,children:g.jsx(hr,{className:Gt(uo.zIconButton,l,{[uo.large]:o==="large"||o==="xl",[uo.medium]:o==="medium",[uo.small]:o==="small",[uo.xs]:o==="xs",[uo.disabled]:i,[uo.withBorder]:a,[uo.withMargin]:s,[uo.noMargin]:!s}),disabled:i,sx:n,disableRipple:!0,...c},void 0)},void 0)},kN=b.forwardRef(function(t,n){return g.jsx(y_,{ref:n,...t},void 0)}),N1=e=>{const{open:t=!0,handleClose:n,children:r,severity:o="info",action:i,buttonProps:a,icon:s,...l}=e,c=zt(),u={regular:{icon:c.black.black3,text:c.black.black1,border:c.stroke.stroke1,background:c.black.black5,actionHover:c.black.black2},info:{icon:c.blue.blue1,text:c.blue.dark2,border:c.blue.blue3,background:c.blue.blue4,actionHover:c.blue.dark1},success:{icon:c.green.green1,text:c.green.green1,border:c.green.green3,background:c.green.green4,actionHover:c.green.green2},warning:{icon:c.yellow.yellow2,text:c.yellow.yellow1,border:c.yellow.yellow3,background:c.yellow.yellow4,actionHover:c.yellow.yellow2},error:{icon:c.red.red2,text:c.red.red1,border:c.red.red3,background:c.red.red4,actionHover:c.red.red2},gradient:{icon:c.black.black1,text:c.black.black1,border:"transparent",background:"linear-gradient(118deg, rgba(0, 239, 139, 0.10) 0.51%, rgba(0, 68, 228, 0.10) 36.98%, rgba(205, 63, 255, 0.10) 72.73%);",actionHover:"transparent"}},d=()=>{n&&n()},f=b.useMemo(()=>u[o],[o,u]);return g.jsx(ps,{in:t,children:g.jsx(kN,{severity:o,sx:{"&.MuiPaper-root":{display:"flex",alignItems:"flex-start",padding:"12px",background:f.background,borderRadius:"12px",border:"1px solid",borderColor:f.border},"& .MuiAlert-message":{padding:0,color:f.text,fontSize:"13px",lineHeight:"135%",fontWeight:400},"& .MuiAlert-action":{padding:0,marginRight:0,display:"flex",alignItems:"center"},"& .MuiAlert-icon":{padding:0,marginRight:"8px",marginTop:"2px",color:f.icon,opacity:1}},icon:s||g.jsx(JA,{severity:o},void 0),action:g.jsxs(Lr,{children:[i&&g.jsx(L1,{size:"small",variant:"outlined",withShadow:!1,sx:{"&.MuiButtonBase-root.MuiButton-outlined":{borderColor:f.text,backgroundColor:"transparent",minWidth:56,".MuiTypography-root":{color:f.text},"&:hover":{borderColor:f.actionHover,backgroundColor:"transparent",".MuiTypography-root":{color:f.actionHover}}}},onClick:i.onClick,...a,children:g.jsx(mt,{variant:"body2Medium",component:"div",children:i.label},void 0)},void 0),n&&g.jsx(A1,{sx:{"&.MuiButtonBase-root.MuiIconButton-root":{marginLeft:"12px","&:hover":{backgroundColor:"transparent","svg.MuiSvgIcon-root":{path:{fill:f.actionHover}}}},"svg.MuiSvgIcon-root":{path:{fill:f.text}}},size:"small",onClick:d,children:g.jsx(O1,{size:14},void 0)},void 0)]},void 0),...l,children:r},void 0)},void 0)};var Ae;(function(e){e[e.Sunday=0]="Sunday",e[e.Monday=1]="Monday",e[e.Tuesday=2]="Tuesday",e[e.Wednesday=3]="Wednesday",e[e.Thursday=4]="Thursday",e[e.Friday=5]="Friday",e[e.Saturday=6]="Saturday",e[e.RelativeRange=7]="RelativeRange",e[e.AbsoluteRange=8]="AbsoluteRange",e[e.Reset=9]="Reset",e[e.Or=10]="Or",e[e.Copy=11]="Copy",e[e.Copied=12]="Copied",e[e.HidePwd=13]="HidePwd",e[e.ShowPwd=14]="ShowPwd",e[e.StartDay=15]="StartDay",e[e.EndDay=16]="EndDay",e[e.StartTime=17]="StartTime",e[e.EndTime=18]="EndTime",e[e.NoRows=19]="NoRows",e[e.NoOptions=20]="NoOptions"})(Ae||(Ae={}));const $N={[Ae.Sunday]:"日",[Ae.Monday]:"一",[Ae.Tuesday]:"二",[Ae.Wednesday]:"三",[Ae.Thursday]:"四",[Ae.Friday]:"五",[Ae.Saturday]:"六",[Ae.RelativeRange]:"相对范围",[Ae.AbsoluteRange]:"绝对范围",[Ae.Reset]:"重置",[Ae.Or]:"或",[Ae.Copy]:"复制",[Ae.Copied]:"已复制",[Ae.HidePwd]:"隐藏密码",[Ae.ShowPwd]:"展示密码",[Ae.StartDay]:"开始日期",[Ae.EndDay]:"结束日期",[Ae.StartTime]:"开始时间",[Ae.EndTime]:"结束时间",[Ae.NoRows]:"无记录",[Ae.NoOptions]:"无数据"},EN={[Ae.Sunday]:"S",[Ae.Monday]:"M",[Ae.Tuesday]:"T",[Ae.Wednesday]:"W",[Ae.Thursday]:"T",[Ae.Friday]:"F",[Ae.Saturday]:"S",[Ae.RelativeRange]:"Relative Range",[Ae.AbsoluteRange]:"Absolute Range",[Ae.Reset]:"Reset",[Ae.Or]:" or ",[Ae.Copy]:"Copy",[Ae.Copied]:"Copied",[Ae.HidePwd]:"Hide password",[Ae.ShowPwd]:"Show password",[Ae.StartDay]:"Start date",[Ae.EndDay]:"End date",[Ae.StartTime]:"Start time",[Ae.EndTime]:"End time",[Ae.NoRows]:"No Data",[Ae.NoOptions]:"No Options"},Kd=(e,t)=>t==="zhCN"?$N[e]:EN[e],MN=b.forwardRef((e,t)=>{const[n,r]=b.useState(!1),[o,i]=b.useState(!1),{onChange:a,inputProps:s={},enableAutocomplete:l=!1,...c}=e,u=b.useMemo(()=>l?{}:{autoComplete:"new-password"},[l]),d=()=>{o&&r(!n)},f=v=>{const{value:S}=v.target;i(S!==""),a&&a(v)},p=zt(),h=p.language,y=Kd(Ae.HidePwd,h),w=Kd(Ae.ShowPwd,h);return g.jsx(Zd,{inputType:n?"text":"password",prefixComponent:g.jsx(ZA,{size:e.size==="small"?12:14,style:{color:p.black.black2}},void 0),suffix:g.jsx(bp,{title:o?n?y:w:"",placement:"bottom",children:g.jsx(hr,{disableRipple:!0,sx:{padding:0,opacity:o?1:0,cursor:o?"pointer":"default","&:hover":{svg:{color:p.black.black2}}},"aria-label":"toggle password visibility",onClick:d,children:n?g.jsx(UA,{size:e.size==="small"?12:14,sx:{color:p.black.black1}},void 0):g.jsx(WA,{size:e.size==="small"?12:14,sx:{color:p.black.black1}},void 0)},void 0)},void 0),ref:t,onChange:f,inputProps:{...u,...s},...c},void 0)});var Mi;(function(e){e.default="default",e.password="pwd",e.number="number",e.suffixSelect="suffixSelect"})(Mi||(Mi={}));const IN="_button_n3sxg_3",ON="_disabled_n3sxg_16",LN="_text_n3sxg_23",AN="_parentInputDisabled_n3sxg_30",NN="_icon_n3sxg_41",DN="_smallButton_n3sxg_46",jN="_input_n3sxg_50",FN="_inputFocus_n3sxg_56",BN="_paper_n3sxg_63",zN="_menu_n3sxg_67",HN="_menuItem_n3sxg_71",VN="_selected_n3sxg_83",WN="_menuList_n3sxg_89",Wn={button:IN,disabled:ON,text:LN,parentInputDisabled:AN,icon:NN,smallButton:DN,input:jN,inputFocus:FN,paper:BN,menu:zN,menuItem:HN,selected:VN,menuList:WN},UN=({options:e=[],onSelectChange:t,defaultSelectedValue:n="",classes:r={label:"",menuRoot:"",menuList:"",menuItem:"",menuPaper:""},setIsSelectActive:o,disabled:i=!1,inputDisabled:a,size:s})=>{const[l,c]=b.useState(null),[u,d]=b.useState("");b.useEffect(()=>{const y=e.find(v=>v.value===n),w=(y==null?void 0:y.label)||"";d(w)},[n]);const f=()=>{c(null),o&&o(!1)},p=y=>{i||(c(y.currentTarget),o&&o(!0))},h=y=>{t&&t(y.value),d(y.label),f()};return g.jsxs(g.Fragment,{children:[g.jsxs(mt,{role:"button",component:"div",className:Gt(Wn.button,{[Wn.smallButton]:s==="small",[Wn.disabled]:i,[Wn.parentInputDisabled]:a},r.label),onClick:p,children:[g.jsx(mt,{variant:"body1",className:Wn.text,children:u},void 0),!i&&g.jsx(ia,{size:14,className:Wn.icon},void 0)]},void 0),g.jsx(E1,{open:!!l,anchorEl:l,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},onClose:f,classes:{root:Gt(Wn.menu,r.menuRoot),paper:Gt(Wn.paper,r.menuPaper),list:Gt(Wn.menuList,r.menuList)},children:e.map(y=>g.jsx($c,{sx:{"&.Mui-selected.Mui-focusVisible":{backgroundColor:"#fff"}},className:Gt(Wn.menuItem,{[Wn.selected]:u===y.label},r.menuItem),onClick:()=>h(y),children:y.label},y.value))},void 0)]},void 0)},GN=b.forwardRef((e,t)=>{const{options:n,onSelectChange:r,defaultSelectedValue:o,selectClasses:i,disableSelect:a,disabled:s=!1,size:l,...c}=e,[u,d]=b.useState(!1);return g.jsx(Zd,{className:Gt(Wn.input,{[Wn.inputFocus]:u}),disabled:s,size:l,suffix:g.jsx(UN,{options:n,onSelectChange:r,defaultSelectedValue:o,classes:i,setIsSelectActive:d,disabled:a,inputDisabled:s,size:l},void 0),ref:t,...c},void 0)}),qN=e=>({"& .MuiFormHelperText-root":{margin:"4px 0 0 0",color:e.black.black3,fontSize:12,lineHeight:"135%","&.Mui-error":{color:e.red.red1}}}),pr="0px 1px 2px 4px rgba(33, 37, 44, 0.08)",aa="0px 1px 2px 0px rgba(33, 37, 44, 0.08)",KN=(e,t)=>({borderRadius:t==="small"?"6px":"8px","& .MuiOutlinedInput-notchedOutline":{borderColor:e.stroke.stroke1,boxShadow:aa,transition:"all 0.2s"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"transparent",borderWidth:1,boxShadow:`0px 0px 0px 4px ${e.blue.blue4}, ${pr}`},"&.Mui-disabled":{"& .MuiOutlinedInput-input":{zIndex:"1","::-webkit-input-placeholder":{color:e.black.black3,opacity:"1"}},"& .MuiOutlinedInput-notchedOutline":{borderColor:e.stroke.stroke1,backgroundColor:e.black.black5,borderWidth:1},"&:hover .MuiOutlinedInput-notchedOutline":{boxShadow:aa}},"&.Mui-focused":{"& .MuiOutlinedInput-notchedOutline":{borderColor:e.blue.blue1,borderWidth:1,boxShadow:`0px 0px 0px 4px ${e.blue.blue4}, ${pr}`}},"&.Mui-focused.Mui-error":{"& .MuiOutlinedInput-notchedOutline":{boxShadow:`0px 0px 0px 4px ${e.red.red4}, ${pr}`}},"&.Mui-error":{"& .MuiOutlinedInput-notchedOutline":{borderColor:e.red.red2},"&:hover .MuiOutlinedInput-notchedOutline":{boxShadow:`0px 0px 0px 4px ${e.red.red4}, ${pr}`}}}),ZN=(e,t,n)=>({height:n==="small"?"28px":"36px",boxSizing:"border-box",padding:t?n==="small"?"4px 10px 4px 4px":"8px 12px 8px 4px":n==="small"?"4px 10px":"8px 12px",fontSize:n==="small"?13:14,fontWeight:400,color:e.black.black1,caretColor:e.black.black1,"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #fff inset",WebkitTextFillColor:e.black.black1},"&[type=password]":{WebkitTextStrokeWidth:"2.8px",letterSpacing:"4px"},"&[type=number]::-webkit-outer-spin-button, &[type=number]::-webkit-inner-spin-button":{WebkitAppearance:"none",margin:0}}),QN=(e,t,n,r)=>{let o=KN(e,r);return t&&(o={...o,paddingRight:r==="small"?"8px":"12px"}),n&&(o={...o,paddingLeft:"12px"}),o},Zd=b.forwardRef((e,t)=>{const{label:n,labelPosition:r="top",labelClassName:o="",wrapperClassName:i="",suffix:a=null,prefixComponent:s=null,inputType:l="text",inputProps:c,size:u="medium",...d}=e,{sx:f={},...p}=c||{},h=zt();return g.jsxs(Lr,{sx:{display:"flex",alignItems:r==="top"?"flex-start":"center",gap:2,flexDirection:r==="top"?"column":"row"},className:i,children:[n?g.jsx(mt,{component:"div",variant:"h4Medium",className:o,children:n},void 0):null,g.jsx(jA,{InputProps:{sx:QN(h,a,s,u),endAdornment:a,startAdornment:s,type:l},inputProps:{sx:{...ZN(h,s,u),...f},ref:t,...p},sx:qN(h),...d},void 0)]},void 0)}),D1=b.forwardRef((e,t)=>{const{inputComponentType:n=Mi.default,...r}=e,i={[Mi.default]:Zd,[Mi.password]:MN,[Mi.number]:Zd,[Mi.suffixSelect]:GN}[n];return g.jsx(i,{ref:t,...r},void 0)}),YN="_root_903dp_3",XN="_label_903dp_6",JN="_checkboxIcon_903dp_19",e9="_inner_903dp_20",t9="_checkbox_903dp_19",n9="_disabledCheckbox_903dp_49",r9="_disabled_903dp_49",o9="_indeterminate_903dp_83",i9="_checked_903dp_84",Ir={root:YN,label:XN,checkboxIcon:JN,inner:e9,checkbox:t9,disabledCheckbox:n9,disabled:r9,indeterminate:o9,checked:i9},ux=e=>g.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:e.children},void 0),xg=e=>{const{checked:t=!1,indeterminate:n=!1,disabled:r=!1}=e;return g.jsx("div",{className:Gt(Ir.checkboxIcon,{[Ir.checked]:t,[Ir.indeterminate]:n,[Ir.disabled]:r}),children:g.jsxs("div",{className:Ir.inner,children:[t&&g.jsx(ux,{children:g.jsx("path",{d:"M1 4L3.66667 7.33333L9 2",stroke:"white",strokeWidth:"1.4"},void 0)},void 0),n&&g.jsx(ux,{children:g.jsx("path",{d:"M1.22876 4.66665L8.77124 4.66665",stroke:"white",strokeWidth:"1.4"},void 0)},void 0)]},void 0)},void 0)},dx=rt.forwardRef((e,t)=>{const{disabled:n,...r}=e;return g.jsx(tO,{ref:t,disableRipple:!0,disableTouchRipple:!0,disabled:n,icon:g.jsx(xg,{disabled:n},void 0),checkedIcon:g.jsx(xg,{checked:!0,disabled:n},void 0),indeterminateIcon:g.jsx(xg,{indeterminate:!0},void 0),classes:{root:Ir.checkbox,checked:Ir.checkedCheckbox,disabled:Ir.disabledCheckbox,indeterminate:Ir.indeterminateCheckbox},...r},void 0)}),Qd=rt.forwardRef(function(e,t){const{label:n="",disabled:r,...o}=e;return n?g.jsx(M_,{classes:{root:Ir.root},label:g.jsx(mt,{className:Ir.label,children:n},void 0),disabled:r,control:g.jsx(dx,{ref:t,...o},void 0)},void 0):g.jsx(dx,{ref:t,disabled:r,...o},void 0)});function a9(e){return e&&e.ownerDocument||document}function s9(e,t){typeof e=="function"?e(t):e&&(e.current=t)}const l9=typeof window<"u"?b.useLayoutEffect:b.useEffect;function c9(...e){return b.useMemo(()=>e.every(t=>t==null)?null:t=>{e.forEach(n=>{s9(n,t)})},e)}const fx=e=>e,u9=()=>{let e=fx;return{configure(t){e=t},generate(t){return e(t)},reset(){e=fx}}},d9=u9(),f9={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function G_(e,t,n="Mui"){const r=f9[t];return r?`${n}-${r}`:`${d9.generate(e)}-${t}`}function p9(e,t,n="Mui"){const r={};return t.forEach(o=>{r[o]=G_(e,o,n)}),r}function dc(e){"@babel/helpers - typeof";return dc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},dc(e)}function g9(e,t){if(dc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(dc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function h9(e){var t=g9(e,"string");return dc(t)=="symbol"?t:t+""}const m9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"መንገድ አሳይ"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ወደ መጀመሪያው ገጽ ይሂዱ":e==="last"?"ወደ መጨረሻው ገጽ ይሂዱ":e==="next"?"ወደ ቀጣዩ ገጽ ይሂዱ":"ወደ ቀዳሚው ገጽ ይሂዱ",labelRowsPerPage:"ረድፎች በአንድ ገጽ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t} ከ ${n!==-1?n:`${t} በላይ`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ኮከ${e!==1?"ቦች":"ብ"}`,emptyLabelText:"ባዶ"}},MuiAutocomplete:{defaultProps:{clearText:"አጽዳ",closeText:"ዝጋ",loadingText:"በመጫን ላይ…",noOptionsText:"አማራጮች የሉም",openText:"ክፈት"}},MuiAlert:{defaultProps:{closeText:"ዝጋ"}},MuiPagination:{defaultProps:{"aria-label":"የገጽ አሰሳ",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ወደ "}ገጽ ${t}${n?"":" ሂድ"}`:e==="first"?"ወደ መጀመሪያው ገጽ ይሂዱ":e==="last"?"ወደ መጨረሻው ገጽ ይሂዱ":e==="next"?"ወደ ቀጣዩ ገጽ ይሂዱ":"ወደ ቀዳሚው ገጽ ይሂዱ"}}}},v9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"إظهار المسار"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل إلى الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة",labelRowsPerPage:"عدد الصفوف في الصفحة:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} من ${n!==-1?n:` أكثر من${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"نجوم":"نجمة"}`,emptyLabelText:"فارغ"}},MuiAutocomplete:{defaultProps:{clearText:"مسح",closeText:"إغلاق",loadingText:"جار التحميل...",noOptionsText:"لا يوجد خيارات",openText:"فتح"}},MuiAlert:{defaultProps:{closeText:"إغلاق"}},MuiPagination:{defaultProps:{"aria-label":"التنقل عبر الصفحات",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"انتقل إلى "} صفحة ${t}`:e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل إلى الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة"}}}},y9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"إظهار المسار"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"الانتقال إلى الصفحة الأولى":e==="last"?"الانتقال إلى الصفحة الأخيرة":e==="next"?"الانتقال إلى الصفحة التالية":"الانتقال إلى الصفحة السابقة",labelRowsPerPage:"عدد الصفوف في الصفحة:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} من ${n!==-1?n:` أكثر من${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"نجوم":"نجمة"}`,emptyLabelText:"فارغ"}},MuiAutocomplete:{defaultProps:{clearText:"مسح",closeText:"إغلاق",loadingText:"جار التحميل...",noOptionsText:"لا توجد خيارات",openText:"فتح"}},MuiAlert:{defaultProps:{closeText:"إغلاق"}},MuiPagination:{defaultProps:{"aria-label":"التنقل عبر الصفحات",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"الانتقال إلى "} صفحة ${t}`:e==="first"?"الانتقال إلى الصفحة الأولى":e==="last"?"الانتقال الي الصفحة الأخيرة":e==="next"?"الانتقال إلى الصفحة التالية":"الانتقال إلى الصفحة السابقة"}}}},b9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"إظهار المسار"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل إلى الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة",labelRowsPerPage:"عدد الصفوف في الصفحة:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} من ${n!==-1?n:` أكثر من${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"نجوم":"نجمة"}`,emptyLabelText:"فارغ"}},MuiAutocomplete:{defaultProps:{clearText:"مسح",closeText:"إغلاق",loadingText:"جار التحميل...",noOptionsText:"لا يوجد خيارات",openText:"فتح"}},MuiAlert:{defaultProps:{closeText:"إغلاق"}},MuiPagination:{defaultProps:{"aria-label":"التنقل عبر الصفحات",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"انتقل إلى "} صفحة ${t}`:e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل الي الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة"}}}},x9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Yolu göstər"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Birinci səhifəyə keç":e==="last"?"Sonuncu səhifəyə keç":e==="next"?"Növbəti səhifəyə keç":"Əvvəlki səhifəyə keç",labelRowsPerPage:"Səhifəyə düşən sətrlər:"}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Ulduz";const n=e%10;return n>1&&n<5&&(t="Ulduzlar"),`${e} ${t}`},emptyLabelText:"Boş"}},MuiAutocomplete:{defaultProps:{clearText:"Silmək",closeText:"Bağlamaq",loadingText:"Yüklənir…",noOptionsText:"Seçimlər mövcud deyil",openText:"Открыть"}},MuiAlert:{defaultProps:{closeText:"Bağlamaq"}},MuiPagination:{defaultProps:{"aria-label":"Səhifənin naviqasiyası",getItemAriaLabel:(e,t,n)=>e==="page"?`${t} ${n?"səhifə":"səhifəyə keç"}`:e==="first"?"Birinci səhifəyə keç":e==="last"?"Sonuncu səhifəyə keç":e==="next"?"Növbəti səhifəyə keç":"Əvvəlki səhifəyə keç"}}}},S9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"পথ দেখান"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"প্রথম পৃষ্ঠায় যান":e==="last"?"শেষ পৃষ্ঠায় যান":e==="next"?"পরবর্তী পৃষ্ঠায় যান":"আগের পৃষ্ঠায় যান",labelRowsPerPage:"প্রতি পৃষ্ঠায় সারি:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`${t} থেকে বেশি`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} স্টার`,emptyLabelText:"খালি"}},MuiAutocomplete:{defaultProps:{clearText:"পরিষ্কার করুন",closeText:"বন্ধ করুন",loadingText:"লোড হচ্ছে…",noOptionsText:"কোন অপশন নেই",openText:"ওপেন করুন"}},MuiAlert:{defaultProps:{closeText:"বন্ধ করুন"}},MuiPagination:{defaultProps:{"aria-label":"পেজিনেশন নেভিগেশন",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"যান "}পৃষ্ঠা ${t}-এ`:e==="first"?"প্রথম পৃষ্ঠায় যান":e==="last"?"শেষ পৃষ্ঠায় যান":e==="next"?"পরবর্তী পৃষ্ঠায় যান":"আগের পৃষ্ঠায় যান"}}}},w9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Паказаць шлях"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Перайсці на першую старонку":e==="last"?"Перайсці на апошнюю старонку":e==="next"?"Перайсці на наступную старонку":"Перайсці на папярэднюю старонку",labelRowsPerPage:"Радкоў на старонцы:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} з ${n!==-1?n:`больш чым ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Зорак";const n=e%10;return n>1&&n<5&&(e<10||e>20)?t="Зоркі":n===1&&e%100!==11&&(t="Зорка"),`${e} ${t}`},emptyLabelText:"Рэйтынг адсутнічае"}},MuiAutocomplete:{defaultProps:{clearText:"Ачысціць",closeText:"Закрыць",loadingText:"Загрузка…",noOptionsText:"Няма варыянтаў",openText:"Адкрыць"}},MuiAlert:{defaultProps:{closeText:"Закрыць"}},MuiPagination:{defaultProps:{"aria-label":"Навігацыя па старонкам",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t} старонка`:`Перайсці на ${t} старонку`:e==="first"?"Перайсці на першую старонку":e==="last"?"Перайсці на апошнюю старонку":e==="next"?"Перайсці на наступную старонку":"Перайсці на папярэднюю старонку"}}}},C9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Показване на пътя"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Отиди на първата страница":e==="last"?"Отиди на последната страница":e==="next"?"Отиди на следващата страница":"Отиди на предишната страница",labelRowsPerPage:"Редове на страница:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Звезд${e!==1?"и":"а"}`,emptyLabelText:"Изчисти"}},MuiAutocomplete:{defaultProps:{clearText:"Изчисти",closeText:"Затвори",loadingText:"Зареждане…",noOptionsText:"Няма налични опции",openText:"Отвори"}},MuiAlert:{defaultProps:{closeText:"Затвори"}},MuiPagination:{defaultProps:{"aria-label":"Пагинация",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Към "}страница ${t}`:e==="first"?"Отиди на първата страница":e==="last"?"Отиди на последната страница":e==="next"?"Отиди на следващата страница":"Отиди на предишната страница"}}}},_9={components:{MuiTablePagination:{defaultProps:{labelRowsPerPage:"Files per pàgina:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"Estrelles":"Estrella"}`,emptyLabelText:"Buit"}},MuiAutocomplete:{defaultProps:{clearText:"Netejar",closeText:"Tancar",loadingText:"Carregant…",noOptionsText:"Sense opcions",openText:"Obert"}},MuiAlert:{defaultProps:{closeText:"Tancat"}}}},R9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Ukázat cestu"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Jít na první stránku":e==="last"?"Jít na poslední stránku":e==="next"?"Jít na další stránku":"Jít na předchozí stránku",labelRowsPerPage:"Řádků na stránce:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} z ${n!==-1?n:`více než ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>e===1?`${e} hvězdička`:e>=2&&e<=4?`${e} hvězdičky`:`${e} hvězdiček`,emptyLabelText:"Prázdné"}},MuiAutocomplete:{defaultProps:{clearText:"Vymazat",closeText:"Zavřít",loadingText:"Načítání…",noOptionsText:"Žádné možnosti",openText:"Otevřít"}},MuiAlert:{defaultProps:{closeText:"Zavřít"}},MuiPagination:{defaultProps:{"aria-label":"Navigace stránkováním",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Jít na "}${t}. stránku`:e==="first"?"Jít na první stránku":e==="last"?"Jít na poslední stránku":e==="next"?"Jít na další stránku":"Jít na předchozí stránku"}}}},T9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Vis sti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå til den første side":e==="last"?"Gå til den sidste side":e==="next"?"Gå til den næste side":"Gå til den forrige side",labelRowsPerPage:"Rækker pr side:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t} af ${n!==-1?n:`mere end ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stjern${e!==1?"er":""}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Slet",closeText:"Luk",loadingText:"Indlæser…",noOptionsText:"Ingen muligheder",openText:"Åben"}},MuiAlert:{defaultProps:{closeText:"Luk"}},MuiPagination:{defaultProps:{"aria-label":"Sideinddelings navigation",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Go to "}page ${t}`:e==="first"?"Gå til den første side":e==="last"?"Gå til den sidste side":e==="next"?"Gå til den næste side":"Gå til den forrige side"}}}},P9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pfad anzeigen"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Zur ersten Seite":e==="last"?"Zur letzten Seite":e==="next"?"Zur nächsten Seite":"Zur vorherigen Seite",labelRowsPerPage:"Zeilen pro Seite:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} von ${n!==-1?n:`mehr als ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"Sterne":"Stern"}`,emptyLabelText:"Keine Wertung"}},MuiAutocomplete:{defaultProps:{clearText:"Leeren",closeText:"Schließen",loadingText:"Wird geladen…",noOptionsText:"Keine Optionen",openText:"Öffnen"}},MuiAlert:{defaultProps:{closeText:"Schließen"}},MuiPagination:{defaultProps:{"aria-label":"Navigation via Seitennummerierung",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gehe zu "}Seite ${t}`:e==="first"?"Zur ersten Seite":e==="last"?"Zur letzten Seite":e==="next"?"Zur nächsten Seite":"Zur vorherigen Seite"}}}},k9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Εμφάνιση διαδρομής"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Πρώτη σελίδα":e==="last"?"Τελευταία σελίδα":e==="next"?"Επόμενη σελίδα":"Προηγούμενη σελίδα",labelRowsPerPage:"Γραμμές ανα σελίδα:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} από ${n!==-1?n:`πάνω από ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Αστέρι${e!==1?"α":""}`,emptyLabelText:"Χωρίς βαθμολόγηση"}},MuiAutocomplete:{defaultProps:{clearText:"Καθαρισμός",closeText:"Κλείσιμο",loadingText:"Φόρτωση…",noOptionsText:"Δεν υπάρχουν επιλογές",openText:"Άνοιγμα"}},MuiAlert:{defaultProps:{closeText:"Κλείσιμο"}},MuiPagination:{defaultProps:{"aria-label":"Πλοήγηση σε σελίδες",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Μετάβαση "}σελίδα ${t}`:e==="first"?"Πρώτη σελίδα":e==="last"?"Τελευταία σελίδα":e==="next"?"Επόμενη σελίδα":"Προηγούμενη σελίδα"}}}},$9={},E9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mostrar ruta"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ir a la primera página":e==="last"?"Ir a la última página":e==="next"?"Ir a la página siguiente":"Ir a la página anterior",labelRowsPerPage:"Filas por página:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} de ${n!==-1?n:`más de ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Estrella${e!==1?"s":""}`,emptyLabelText:"Vacío"}},MuiAutocomplete:{defaultProps:{clearText:"Limpiar",closeText:"Cerrar",loadingText:"Cargando…",noOptionsText:"Sin opciones",openText:"Abierto"}},MuiAlert:{defaultProps:{closeText:"Cerrar"}},MuiPagination:{defaultProps:{"aria-label":"Paginador",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ir a la "}página ${t}`:e==="first"?"Ir a la primera página":e==="last"?"Ir a la última página":e==="next"?"Ir a la página siguiente":"Ir a la página anterior"}}}},M9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Näita teed"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Vali esimene lehekülg":e==="last"?"Vali viimane lehekülg":e==="next"?"Vali järgmine lehekülg":"Vali eelmine lehekülg",labelRowsPerPage:"Ridu leheküljel:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`rohkem kui ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Tärn${e!==1?"i":""}`,emptyLabelText:"Tühi"}},MuiAutocomplete:{defaultProps:{clearText:"Tühjenda",closeText:"Sulge",loadingText:"Laen…",noOptionsText:"Valikuid ei ole",openText:"Ava"}},MuiAlert:{defaultProps:{closeText:"Sulge"}},MuiPagination:{defaultProps:{"aria-label":"Lehekülgede valik",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Vali "}lehekülg ${t}`:e==="first"?"Vali esimene lehekülg":e==="last"?"Vali viimane lehekülg":e==="next"?"Vali järgmine lehekülg":"Vali eelmine lehekülg"}}}},I9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"نمایش مسیر"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"رفتن به اولین صفحه":e==="last"?"رفتن به آخرین صفحه":e==="next"?"رفتن به صفحه‌ی بعدی":"رفتن به صفحه‌ی قبلی",labelRowsPerPage:"تعداد سطرهای هر صفحه:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} از ${n!==-1?n:`بیشتر از ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ستاره`,emptyLabelText:"خالی"}},MuiAutocomplete:{defaultProps:{clearText:"پاک‌کردن",closeText:"بستن",loadingText:"در حال بارگذاری…",noOptionsText:"بی‌نتیجه",openText:"بازکردن"}},MuiAlert:{defaultProps:{closeText:"بستن"}},MuiPagination:{defaultProps:{"aria-label":"ناوبری صفحه",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"رفتن به "}صفحهٔ ${t}`:e==="first"?"رفتن به اولین صفحه":e==="last"?"رفتن به آخرین صفحه":e==="next"?"رفتن به صفحه‌ی بعدی":"رفتن به صفحه‌ی قبلی"}}}},O9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Näytä reitti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Mene ensimmäiselle sivulle":e==="last"?"Mene viimeiselle sivulle":e==="next"?"Mene seuraavalle sivulle":"Mene edelliselle sivulle",labelRowsPerPage:"Rivejä per sivu:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`enemmän kuin ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Täht${e!==1?"eä":"i"}`,emptyLabelText:"Tyhjä"}},MuiAutocomplete:{defaultProps:{clearText:"Tyhjennä",closeText:"Sulje",loadingText:"Ladataan…",noOptionsText:"Ei valintoja",openText:"Avaa"}},MuiAlert:{defaultProps:{closeText:"Sulje"}},MuiPagination:{defaultProps:{"aria-label":"Sivutus navigaatio",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"sivu":"Mene sivulle"} ${t}`:e==="first"?"Mene ensimmäiselle sivulle":e==="last"?"Mene viimeiselle sivulle":e==="next"?"Mene seuraavalle sivulle":"Mene edelliselle sivulle"}}}},L9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Montrer le chemin"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Aller à la première page":e==="last"?"Aller à la dernière page":e==="next"?"Aller à la page suivante":"Aller à la page précédente",labelRowsPerPage:"Lignes par page :",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} sur ${n!==-1?n:`plus que ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Etoile${e!==1?"s":""}`,emptyLabelText:"Vide"}},MuiAutocomplete:{defaultProps:{clearText:"Vider",closeText:"Fermer",loadingText:"Chargement…",noOptionsText:"Pas de résultats",openText:"Ouvrir"}},MuiAlert:{defaultProps:{closeText:"Fermer"}},MuiPagination:{defaultProps:{"aria-label":"navigation de pagination",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Aller à la "}page ${t}`:e==="first"?"Aller à la première page":e==="last"?"Aller à la dernière page":e==="next"?"Aller à la page suivante":"Aller à la page précédente"}}}},A9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"הצג נתיב"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"לעמוד הראשון":e==="last"?"לעמוד האחרון":e==="next"?"לעמוד הבא":"לעמוד הקודם",labelRowsPerPage:"שורות בעמוד:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} מתוך ${n!==-1?n:`יותר מ ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} כוכב${e!==1?"ים":""}`,emptyLabelText:"ריק"}},MuiAutocomplete:{defaultProps:{clearText:"נקה",closeText:"סגור",loadingText:"טוען…",noOptionsText:"אין אופציות",openText:"פתח"}},MuiAlert:{defaultProps:{closeText:"סגור"}},MuiPagination:{defaultProps:{"aria-label":"ניווט בעמודים",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ל "}עמוד ${t}`:e==="first"?"לעמוד הראשון":e==="last"?"לעמוד האחרון":e==="next"?"לעמוד הבא":"לעמוד הקודם"}}}},N9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"रास्ता दिखायें"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"पहले पृष्ठ पर जाएँ":e==="last"?"अंतिम पृष्ठ पर जाएँ":e==="next"?"अगले पृष्ठ पर जाएँ":"पिछले पृष्ठ पर जाएँ",labelRowsPerPage:"पंक्तियाँ प्रति पृष्ठ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t===-1?n:t} कुल ${n} में`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} तार${e!==1?"े":"ा"}`,emptyLabelText:"रिक्त"}},MuiAutocomplete:{defaultProps:{clearText:"हटायें",closeText:"बंद करें",loadingText:"लोड हो रहा है…",noOptionsText:"कोई विकल्प नहीं",openText:"खोलें"}},MuiAlert:{defaultProps:{closeText:"बंद करें"}},MuiPagination:{defaultProps:{"aria-label":"पृस्ठानुसार संचालन",getItemAriaLabel:(e,t,n)=>e==="page"?`पृष्ठ ${t} ${n?"":" पर जाएँ"}`:e==="first"?"पहले पृष्ठ पर जाएँ":e==="last"?"अंतिम पृष्ठ पर जाएँ":e==="next"?"अगले पृष्ठ पर जाएँ":"पिछले पृष्ठ पर जाएँ"}}}},D9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pokaži putanju"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na posljednju stranicu":e==="next"?"Idi na sljedeću stranicu":"Idi na prethodnu stranicu",labelRowsPerPage:"Redova po stranici:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} od ${n!==-1?n:`više nego ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10,n=e%100;return[2,3,4].includes(t)&&![12,13,14].includes(n)?"Zvijezde":"Zvijezda"},emptyLabelText:"Prazno"}},MuiAutocomplete:{defaultProps:{clearText:"Briši",closeText:"Zatvori",loadingText:"Učitavanje…",noOptionsText:"Nema opcija",openText:"Otvori"}},MuiAlert:{defaultProps:{closeText:"Zatvori"}},MuiPagination:{defaultProps:{"aria-label":"Navigacija po stranicama",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Idi na "}stranicu ${t}`:e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na zadnju stranicu":e==="next"?"Idi na sljedeću stranicu":"Idi na prethodnu stranicu"}}}},j9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Útvonal"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Első oldalra":e==="last"?"Utolsó oldalra":e==="next"?"Következő oldalra":"Előző oldalra",labelRowsPerPage:"Sorok száma:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Csillag`,emptyLabelText:"Üres"}},MuiAutocomplete:{defaultProps:{clearText:"Törlés",closeText:"Bezárás",loadingText:"Töltés…",noOptionsText:"Nincs találat",openText:"Megnyitás"}},MuiAlert:{defaultProps:{closeText:"Bezárás"}},MuiPagination:{defaultProps:{"aria-label":"Lapozás",getItemAriaLabel:(e,t,n)=>e==="page"?`${t}. oldal${n?"":"ra"}`:e==="first"?"Első oldalra":e==="last"?"Utolsó oldalra":e==="next"?"Következő oldalra":"Előző oldalra"}}}},F9={components:{MuiTablePagination:{defaultProps:{labelRowsPerPage:"Տողեր մեկ էջում`"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Աստղ`,emptyLabelText:"Դատարկ"}},MuiAutocomplete:{defaultProps:{clearText:"Մաքրել",closeText:"Փակել",loadingText:"Բեռնում…",noOptionsText:"Տարբերակներ չկան",openText:"Բացել"}},MuiAlert:{defaultProps:{closeText:"Փակել"}}}},B9={components:{MuiTablePagination:{defaultProps:{labelRowsPerPage:"Baris per halaman:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Bintang`}},MuiAutocomplete:{defaultProps:{clearText:"Hapus",closeText:"Tutup",loadingText:"Memuat…",noOptionsText:"Tidak ada opsi",openText:"Buka"}},MuiAlert:{defaultProps:{closeText:"Tutup"}}}},z9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Sýna slóð"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Fara á fyrstu síðu":e==="last"?"Fara á síðustu síðu":e==="next"?"Fara á næstu síðu":"Fara á fyrri síðu",labelRowsPerPage:"Raðir á síðu:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} af ${n!==-1?n:`fleiri en ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e===1?"stjarna":"stjörnur"}`,emptyLabelText:"Tómt"}},MuiAutocomplete:{defaultProps:{clearText:"Hreinsa",closeText:"Loka",loadingText:"Hlaða…",noOptionsText:"Engar niðurstöður",openText:"Opna"}},MuiAlert:{defaultProps:{closeText:"Loka"}},MuiPagination:{defaultProps:{"aria-label":"Síðuflakk",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"Síða":"Fara á síðu"} ${t}`:e==="first"?"Fara á fyrstu síðu":e==="last"?"Fara á síðustu síðu":e==="next"?"Fara á næstu síðu":"Fara á fyrri síðu"}}}},H9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Visualizza percorso"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Vai alla prima pagina":e==="last"?"Vai all'ultima pagina":e==="next"?"Vai alla pagina successiva":"Vai alla pagina precedente",labelRowsPerPage:"Righe per pagina:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} di ${n!==-1?n:`più di ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stell${e!==1?"e":"a"}`,emptyLabelText:"Vuoto"}},MuiAutocomplete:{defaultProps:{clearText:"Svuota",closeText:"Chiudi",loadingText:"Caricamento in corso…",noOptionsText:"Nessuna opzione",openText:"Apri"}},MuiAlert:{defaultProps:{closeText:"Chiudi"}},MuiPagination:{defaultProps:{"aria-label":"Navigazione impaginata",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Vai alla "}pagina ${t}`:e==="first"?"Vai alla prima pagina":e==="last"?"Vai all'ultima pagina":e==="next"?"Vai alla pagina successiva":"Vai alla pagina precedente"}}}},V9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"すべて表示"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"最初のページへ":e==="last"?"最後のページへ":e==="next"?"次のページへ":"前のページへ",labelRowsPerPage:"ページあたりの行数:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}~${t} / ${n!==-1?n:`${t}以上`}`}},MuiRating:{defaultProps:{getLabelText:e=>`星${e}`,emptyLabelText:"星なし"}},MuiAutocomplete:{defaultProps:{clearText:"クリア",closeText:"閉じる",loadingText:"読み込み中…",noOptionsText:"データがありません",openText:"開く"}},MuiAlert:{defaultProps:{closeText:"閉じる"}},MuiPagination:{defaultProps:{"aria-label":"ページ選択",getItemAriaLabel:(e,t,n)=>e==="page"?`ページ${t}${n?"":"へ"}`:e==="first"?"最初のページへ":e==="last"?"最後のページへ":e==="next"?"次のページへ":"前のページへ"}}}},W9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"បង្ហាញផ្លូវ"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ទៅទំព័រដំបូង":e==="last"?"ទៅទំព័រចុងក្រោយ":e==="next"?"ទៅទំព័របន្ទាប់":"ទៅទំព័រមុន",labelRowsPerPage:"ចំនួនជួរដេកក្នុងមួយទំព័រ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e} - ${t} នៃ ${n!==-1?n:`ច្រើនជាង ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ផ្កាយ`,emptyLabelText:"ទទេ"}},MuiAutocomplete:{defaultProps:{clearText:"លុបចោល",closeText:"បិទ",loadingText:"កំពុងលោត…",noOptionsText:"គ្មានជម្រើស",openText:"បើក"}},MuiAlert:{defaultProps:{closeText:"បិទ"}},MuiPagination:{defaultProps:{"aria-label":"រុករកទំព័រ",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ទៅ "}ទំព័រ ${t}`:e==="first"?"ទៅទំព័រដំបូង":e==="last"?"ទៅទំព័រចុងក្រោយ":e==="next"?"ទៅទំព័របន្ទាប់":"ទៅទំព័រមុន"}}}},U9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"경로 보기"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"첫 번째 페이지로 이동":e==="last"?"마지막 페이지로 이동":e==="next"?"다음 페이지로 이동":"이전 페이지로 이동",labelRowsPerPage:"페이지 당 행:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`${t}개 이상`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 점`,emptyLabelText:"빈 텍스트"}},MuiAutocomplete:{defaultProps:{clearText:"지우기",closeText:"닫기",loadingText:"불러오는 중…",noOptionsText:"옵션 없음",openText:"열기"}},MuiAlert:{defaultProps:{closeText:"닫기"}},MuiPagination:{defaultProps:{"aria-label":"페이지네이션 네비게이션",getItemAriaLabel:(e,t,n)=>e==="page"?`${t} 번째 페이지${n?"":"로 이동"}`:e==="first"?"첫 번째 페이지로 이동":e==="last"?"마지막 페이지로 이동":e==="next"?"다음 페이지로 이동":"이전 페이지로 이동"}}}},G9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"ڕێچکە پیشان بدە"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"چوونە یەکەم پەڕە":e==="last"?"چوونە کۆتا پەڕە":e==="next"?"چوونە پەڕەی دواتر":"گەڕانەوە بۆ پەڕەی پێشوو",labelRowsPerPage:"ژمارەی ڕیزەکان لە هەر پەڕەیەک:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} لە ${n!==-1?n:` زیاترە لە${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"ئەستێرەکان":"ئەستێرە"}`,emptyLabelText:"خاڵیە"}},MuiAutocomplete:{defaultProps:{clearText:"سڕینەوە",closeText:"داخستن",loadingText:"لە بارکردندایە...",noOptionsText:"هیچ بژاردەیەک نیە",openText:"کردنەوە"}},MuiAlert:{defaultProps:{closeText:"داخستن"}},MuiPagination:{defaultProps:{"aria-label":"گەڕان لە پەڕەکان",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"چوون بۆ "} پەڕەی ${t}`:e==="first"?"چوونە یەکەم پەڕە":e==="last"?"چوونە کۆتا پەڕە":e==="next"?"چوونە پەڕەی دواتر":"گەڕانەوە بۆ پەڕەی پێشوو"}}}},q9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Rê nîşan bide"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Biçe rûpela yekem":e==="last"?"Biçe rûpela dawî":e==="next"?"Biçe rûpela din":"Biçe rûpela berê",labelRowsPerPage:"Rêz li ser rûpelê:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} of ${n!==-1?n:`zêdetir ji ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stêrk`,emptyLabelText:"Vala"}},MuiAutocomplete:{defaultProps:{clearText:"Paqij bike",closeText:"Bigre",loadingText:"Tê barkirin…",noOptionsText:"Vebijêrk tune",openText:"Veke"}},MuiAlert:{defaultProps:{closeText:"Bigre"}},MuiPagination:{defaultProps:{"aria-label":"Navîgasyona rûpelan",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Biçe "}rûpel ${t}`:e==="first"?"Biçe rûpela yekem":e==="last"?"Biçe rûpela dawî":e==="next"?"Biçe rûpela din":"Biçe rûpela berê"}}}},K9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Толық жолды көрсету"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Бірінші бетке өту":e==="last"?"Соңғы бетке өту":e==="next"?"Келесі бетке өту":"Алдыңғы бетке өту",labelRowsPerPage:"Беттегі қатарлар:",labelDisplayedRows:({from:e,to:t,count:n})=>`${n!==-1?n:`+${t}`} қатардың ішінен ${e}–${t}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} жұлдыз`,emptyLabelText:"Рейтинг жоқ"}},MuiAutocomplete:{defaultProps:{clearText:"Тазарту",closeText:"Жабу",loadingText:"Жүктелуде…",noOptionsText:"Қол жетімді нұсқалар жоқ",openText:"Ашу"}},MuiAlert:{defaultProps:{closeText:"Жабу"}},MuiPagination:{defaultProps:{"aria-label":"Беттерді шарлау",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t} — бет`:`${t} — бетке өту`:e==="first"?"Бірінші бетке өту":e==="last"?"Соңғы бетке өту":e==="next"?"Келесі бетке өту":"Алдыңғы бетке өту"}}}},Z9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Прикажи патека"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Оди на прва страница":e==="last"?"Оди на последна страница":e==="next"?"Оди на следна страница":"Оди на предходна страница",labelRowsPerPage:"Редови по страница:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} од ${n!==-1?n:`повеќе од ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} Ѕвезд${t===1?"а":"и"}`},emptyLabelText:"Празно"}},MuiAutocomplete:{defaultProps:{clearText:"Избриши",closeText:"Затвори",loadingText:"Се презема",noOptionsText:"Нема опција",openText:"Отвори"}},MuiAlert:{defaultProps:{closeText:"Затвори"}},MuiPagination:{defaultProps:{"aria-label":"Навигација низ страници",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Оди на "}страница ${t}`:e==="first"?"Оди на прва страница":e==="last"?"Оди на последна страница":e==="next"?"Оди на следна страница":"Оди на предходна страница"}}}},Q9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"လမ်းကြောင်းပြပါ။"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ပထမစာမျက်နှာသို့သွားပါ။":e==="last"?"နောက်ဆုံးစာမျက်နှာသို့သွားပါ။":e==="next"?"နောက်စာမျက်နှာသို့သွားပါ။":"ယခင်စာမျက်နှာသို့သွားပါ။",labelRowsPerPage:"စာမျက်နှာအလိုက် အတန်းများ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} ၏ ${n!==-1?n:`ထက်ပိုပြီး ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} ကြယ်ပွင့်${t===1?"၎":""}`},emptyLabelText:"ဗလာ"}},MuiAutocomplete:{defaultProps:{clearText:"ရှင်းလင်းသော",closeText:"ပိတ်လိုက်",loadingText:"ဖွင့်နေသည်…",noOptionsText:"ရွေးချယ်ခွင့်မရှိပါ။",openText:"ဖွင့်သည်။"}},MuiAlert:{defaultProps:{closeText:"ပိတ်လိုက်"}},MuiPagination:{defaultProps:{"aria-label":"Pagination အညွှန်း",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"သွားပါ။ "}စာမျက်နှာ ${t}`:e==="first"?"ပထမစာမျက်နှာသို့သွားပါ။":e==="last"?"နောက်ဆုံးစာမျက်နှာသို့သွားပါ။":e==="next"?"နောက်စာမျက်နှာသို့သွားပါ။":"ယခင်စာမျက်နှာသို့သွားပါ။"}}}},Y9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Tunjukkan laluan"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Pergi ke halaman pertama":e==="last"?"Pergi ke halaman terakhir":e==="next"?"Pergi ke halaman seterusnya":"Pergi ke halaman sebelumnya",labelRowsPerPage:"Baris setiap halaman:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} daripada ${n!==-1?n:`lebih daripada ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} Bintang${t===1?"s":""}`},emptyLabelText:"kosong"}},MuiAutocomplete:{defaultProps:{clearText:"Jelas",closeText:"tutup",loadingText:"Memuatkan…",noOptionsText:"Tiada pilihan",openText:"Buka"}},MuiAlert:{defaultProps:{closeText:"tutup"}},MuiPagination:{defaultProps:{"aria-label":"Navigasi penomboran",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Pergi ke "}muka surat ${t}`:e==="first"?"Pergi ke halaman pertama":e==="last"?"Pergi ke halaman terakhir":e==="next"?"Pergi ke halaman seterusnya":"Pergi ke halaman sebelumnya"}}}},X9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"बाटो देखाउनुहोस्"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"पहिलो पृष्ठमा जानुहोस्":e==="last"?"अन्तिम पृष्ठमा जानुहोस्":e==="next"?"अर्को पृष्ठमा जानुहोस्":"अघिल्लो पृष्ठमा जानुहोस्",labelRowsPerPage:"प्रति पृष्ठ पङ्क्तिहरू:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} को ${n!==-1?n:`धेरै ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} तारा${t===1?"स":""}`},emptyLabelText:"खाली"}},MuiAutocomplete:{defaultProps:{clearText:"खाली गर्नुहोस्",closeText:"बन्द गर्नुहोस्",loadingText:"लोड हुँदै...",noOptionsText:"कुनै विकल्प छैन",openText:"खोल्नुहोस्"}},MuiAlert:{defaultProps:{closeText:"बन्द गर्नुहोस्"}},MuiPagination:{defaultProps:{"aria-label":"पृष्ठांकन नेभिगेसन",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"जाऊ त्यहाँ "}पृष्ठ ${t}`:e==="first"?"पहिलो पृष्ठमा जानुहोस्":e==="last"?"अन्तिम पृष्ठमा जानुहोस्":e==="next"?"अर्को पृष्ठमा जानुहोस्":"अघिल्लो पृष्ठमा जानुहोस्"}}}},J9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Vis sti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til forrige side",labelRowsPerPage:"Rader per side:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} av ${n!==-1?n:`mer enn ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stjerne${e!==1?"r":""}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Tøm",closeText:"Lukk",loadingText:"Laster inn…",noOptionsText:"Ingen alternativer",openText:"Åpne"}},MuiAlert:{defaultProps:{closeText:"Lukk"}},MuiPagination:{defaultProps:{"aria-label":"Paginering navigasjon",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gå til "}side ${t}`:e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til forrige side"}}}},eD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Vis sti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til førre side",labelRowsPerPage:"Rader per side:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} av ${n!==-1?n:`fleire enn ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} stjerne${e!==1?"r":""}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Tøm",closeText:"Lukk",loadingText:"Lastar inn…",noOptionsText:"Ingen alternativ",openText:"Opna"}},MuiAlert:{defaultProps:{closeText:"Lukk"}},MuiPagination:{defaultProps:{"aria-label":"Navigasjon for paginering",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gå til "}side ${t}`:e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til førre side"}}}},tD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pad tonen"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ga naar eerste pagina":e==="last"?"Ga naar laatste pagina":e==="next"?"Ga naar volgende pagina":"Ga naar vorige pagina",labelRowsPerPage:"Regels per pagina:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} van ${n!==-1?n:`meer dan ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Ster${e!==1?"ren":""}`,emptyLabelText:"Leeg"}},MuiAutocomplete:{defaultProps:{clearText:"Wissen",closeText:"Sluiten",loadingText:"Laden…",noOptionsText:"Geen opties",openText:"Openen"}},MuiAlert:{defaultProps:{closeText:"Sluiten"}},MuiPagination:{defaultProps:{"aria-label":"Navigatie via paginering",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ga naar "}pagina ${t}`:e==="first"?"Ga naar eerste pagina":e==="last"?"Ga naar laatste pagina":e==="next"?"Ga naar volgende pagina":"Ga naar vorige pagina"}}}},nD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pokaż ścieżkę"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Przejdź do pierwszej strony":e==="last"?"Przejdź do ostatniej strony":e==="next"?"Przejdź do następnej strony":"Przejdź do poprzedniej strony",labelRowsPerPage:"Wierszy na stronę:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} z ${n!==-1?n:`ponad ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="gwiazdek";const n=e%10;return(e<10||e>20)&&n>1&&n<5?t="gwiazdki":e===1&&(t="gwiazdka"),`${e} ${t}`},emptyLabelText:"Brak gwiazdek"}},MuiAutocomplete:{defaultProps:{clearText:"Wyczyść",closeText:"Zamknij",loadingText:"Ładowanie…",noOptionsText:"Brak opcji",openText:"Otwórz"}},MuiAlert:{defaultProps:{closeText:"Zamknij"}},MuiPagination:{defaultProps:{"aria-label":"Nawigacja podziału na strony",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t}. strona`:`Przejdź do ${t}. strony`:e==="first"?"Przejdź do pierwszej strony":e==="last"?"Przejdź do ostatniej strony":e==="next"?"Przejdź do następnej strony":"Przejdź do poprzedniej strony"}}}},rD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"لاره ښکاره کړه"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"لومړۍ پاڼې ته لاړ شه":e==="last"?"ورستۍ پاڼې ته لاړ شه":e==="next"?"بلی پاڼې ته لاړ شه":"مخکینۍ پاڼې ته لاړ شه",labelRowsPerPage:"په پاڼه کی د کرښو شمیر",labelDisplayedRows:({from:e,to:t,count:n})=>`${n!==-1?n:`${t} زیات له`} ${t}- ${e} د`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ستوری`,emptyLabelText:"خالی"}},MuiAutocomplete:{defaultProps:{clearText:"پاک کول",closeText:"تړل",loadingText:"... لوډ کیږی",noOptionsText:"بی پایلی",openText:"خلاصول"}},MuiAlert:{defaultProps:{closeText:"تړل"}},MuiPagination:{defaultProps:{"aria-label":"د پاڼو ترتیب",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":" ته لاړ شه"}پاڼې ${t}`:e==="first"?"لومړۍ پاڼی ته لاړ شه":e==="last"?"وروستۍ پاڼې ته لاړه شه":e==="next"?"بلې پاڼې ته لاړ شه":"مخکنۍ پاڼې ته لاړ شه"}}}},oD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mostrar caminho"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ir para a primeira página":e==="last"?"Ir para a última página":e==="next"?"Ir para a próxima página":"Ir para a página anterior",labelRowsPerPage:"Linhas por página:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} de ${n!==-1?n:`mais de ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Estrela${e!==1?"s":""}`,emptyLabelText:"Vazio"}},MuiAutocomplete:{defaultProps:{clearText:"Limpar",closeText:"Fechar",loadingText:"Carregando…",noOptionsText:"Sem opções",openText:"Abrir"}},MuiAlert:{defaultProps:{closeText:"Fechar"}},MuiPagination:{defaultProps:{"aria-label":"Navegar pela paginação",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ir para a "}página ${t}`:e==="first"?"Ir para a primeira página":e==="last"?"Ir para a última página":e==="next"?"Ir para a próxima página":"Ir para a página anterior"}}}},iD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mostrar caminho"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Primeira página":e==="last"?"Última página":e==="next"?"Próxima página":"Página anterior",labelRowsPerPage:"Linhas por página:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} de ${n!==-1?n:`mais de ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Estrela${e!==1?"s":""}`,emptyLabelText:"Vazio"}},MuiAutocomplete:{defaultProps:{clearText:"Limpar",closeText:"Fechar",loadingText:"A carregar…",noOptionsText:"Sem opções",openText:"Abrir"}},MuiAlert:{defaultProps:{closeText:"Fechar"}},MuiPagination:{defaultProps:{"aria-label":"Navegar por páginas",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ir para a "}página ${t}`:e==="first"?"Primeira página":e==="last"?"Última página":e==="next"?"Próxima página":"Página anterior"}}}},aD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Arată calea"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Mergi la prima pagină":e==="last"?"Mergi la ultima pagină":e==="next"?"Mergi la pagina următoare":"Mergi la pagina precedentă",labelRowsPerPage:"Rânduri pe pagină:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} St${e!==1?"ele":"ea"}`,emptyLabelText:"Gol"}},MuiAutocomplete:{defaultProps:{clearText:"Șterge",closeText:"Închide",loadingText:"Se încarcă…",noOptionsText:"Nicio opțiune",openText:"Deschide"}},MuiAlert:{defaultProps:{closeText:"Închide"}},MuiPagination:{defaultProps:{"aria-label":"Navigare prin paginare",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Mergi la "}pagina ${t}`:e==="first"?"Mergi la prima pagină":e==="last"?"Mergi la ultima pagină":e==="next"?"Mergi la pagina următoare":"Mergi la pagina precedentă"}}}},sD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pokaži putanju"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na poslednju stranicu":e==="next"?"Idi na sledeću stranicu":"Idi na prethodnu stranicu",labelRowsPerPage:"Redova po stranici:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} od ${n!==-1?n:`više nego ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10,n=e%100;return[2,3,4].includes(t)&&![12,13,14].includes(n)?"Zvezde":"Zvezda"},emptyLabelText:"Prazno"}},MuiAutocomplete:{defaultProps:{clearText:"Briši",closeText:"Zatvori",loadingText:"Učitavanje…",noOptionsText:"Nema opcija",openText:"Otvori"}},MuiAlert:{defaultProps:{closeText:"Zatvori"}},MuiPagination:{defaultProps:{"aria-label":"Navigacija po stranicama",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Idi na "}stranicu ${t}`:e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na zadnju stranicu":e==="next"?"Idi na sledeću stranicu":"Idi na prethodnu stranicu"}}}},lD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Показать полный путь"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Перейти на первую страницу":e==="last"?"Перейти на последнюю страницу":e==="next"?"Перейти на следующую страницу":"Перейти на предыдущую страницу",labelRowsPerPage:"Строк на странице:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} из ${n!==-1?n:`более чем ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Звёзд";const n=e%10;return n>1&&n<5?t="Звезды":n===1&&(t="Звезда"),`${e} ${t}`},emptyLabelText:"Рейтинг отсутствует"}},MuiAutocomplete:{defaultProps:{clearText:"Очистить",closeText:"Закрыть",loadingText:"Загрузка…",noOptionsText:"Нет доступных вариантов",openText:"Открыть"}},MuiAlert:{defaultProps:{closeText:"Закрыть"}},MuiPagination:{defaultProps:{"aria-label":"Навигация по страницам",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t} страница`:`Перейти на ${t} страницу`:e==="first"?"Перейти на первую страницу":e==="last"?"Перейти на последнюю страницу":e==="next"?"Перейти на следующую страницу":"Перейти на предыдущую страницу"}}}},cD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"ගමන් මඟ පෙන්වන්න"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"පළමු පිටුවට යන්න":e==="last"?"අවසාන පිටුවට යන්න":e==="next"?"මීළඟ පිටුවට යන්න":"පෙර පිටුවට යන්න",labelRowsPerPage:"පිටුවක පේළි:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} දක්වා ${n!==-1?n:`${t} ට වැඩි ප්‍රමාණයකින්`}`}},MuiRating:{defaultProps:{getLabelText:e=>`තරු ${e}`,emptyLabelText:"හිස්"}},MuiAutocomplete:{defaultProps:{clearText:"මකන්න",closeText:"වසන්න",loadingText:"නැංවෙමින්…",noOptionsText:"විකල්ප නැත",openText:"විවෘත කරන්න"}},MuiAlert:{defaultProps:{closeText:"වසන්න"}},MuiPagination:{defaultProps:{"aria-label":"පිටු අතර සංචරණය",getItemAriaLabel:(e,t,n)=>e==="page"?`පිටුව ${t} ${n?"":"ට යන්න"}`:e==="first"?"පළමු පිටුවට යන්න":e==="last"?"අවසාන පිටුවට යන්න":e==="next"?"මීළඟ පිටුවට යන්න":"පෙර පිටුවට යන්න"}}}},uD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Ukázať cestu "}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ísť na prvú stránku":e==="last"?"Ísť na poslednú stránku":e==="next"?"Ísť na ďaľšiu stránku":"Ísť na predchádzajúcu stránku",labelRowsPerPage:"Riadkov na stránke:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} z ${n!==-1?n:`viac ako ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>e===1?`${e} hviezdička`:e>=2&&e<=4?`${e} hviezdičky`:`${e} hviezdičiek`,emptyLabelText:"Prázdne"}},MuiAutocomplete:{defaultProps:{clearText:"Vymazať",closeText:"Zavrieť",loadingText:"Načítanie…",noOptionsText:"Žiadne možnosti",openText:"Otvoriť"}},MuiAlert:{defaultProps:{closeText:"Zavrieť"}},MuiPagination:{defaultProps:{"aria-label":"Navigácia stránkovanim",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ísť na "}stránku ${t}`:e==="first"?"Ísť na prvú stránku":e==="last"?"Ísť na poslednú stránku":e==="next"?"Ísť na ďaľšiu stránku":"Ísť na predchádzajúcu stránku"}}}},dD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Visa sökväg"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå till första sidan":e==="last"?"Gå till sista sidan":e==="next"?"Gå till nästa sida":"Gå till föregående sida",labelRowsPerPage:"Rader per sida:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} av ${n!==-1?n:`fler än ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"Stjärnor":"Stjärna"}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Rensa",closeText:"Stäng",loadingText:"Laddar…",noOptionsText:"Inga alternativ",openText:"Öppna"}},MuiAlert:{defaultProps:{closeText:"Stäng"}},MuiPagination:{defaultProps:{"aria-label":"Sidnavigering",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gå till "}sida ${t}`:e==="first"?"Gå till första sidan":e==="last"?"Gå till sista sidan":e==="next"?"Gå till nästa sida":"Gå till föregående sida"}}}},fD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"แสดงเส้นทาง"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ไปที่หน้าแรก":e==="last"?"ไปที่หน้าสุดท้าย":e==="next"?"ไปที่หน้าถัดไป":"ไปที่หน้าก่อน",labelRowsPerPage:"จำนวนแถวต่อหน้า:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} จาก ${n!==-1?n:`มากกว่า ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ดาว`,emptyLabelText:"ว่างเปล่า"}},MuiAutocomplete:{defaultProps:{clearText:"เคลียร์",closeText:"ปิด",loadingText:"กำลังโหลด…",noOptionsText:"ไม่มีตัวเลือก",openText:"เปิด"}},MuiAlert:{defaultProps:{closeText:"ปิด"}},MuiPagination:{defaultProps:{"aria-label":"",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ไปที่"}หน้า ${t}`:e==="first"?"ไปที่หน้าแรก":e==="last"?"ไปที่หน้าสุดท้าย":e==="next"?"ไปที่หน้าถัดไป":"ไปที่หน้าก่อน"}}}},pD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Yolu göster"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"İlk sayfaya git":e==="last"?"Son sayfaya git":e==="next"?"Sonraki sayfaya git":"Önceki sayfaya git",labelRowsPerPage:"Sayfa başına satır:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t} / ${n!==-1?n:`${t}'den fazla`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Yıldız`,emptyLabelText:"Boş"}},MuiAutocomplete:{defaultProps:{clearText:"Temizle",closeText:"Kapat",loadingText:"Yükleniyor…",noOptionsText:"Seçenek yok",openText:"Aç"}},MuiAlert:{defaultProps:{closeText:"Kapat"}},MuiPagination:{defaultProps:{"aria-label":"Sayfa navigasyonu",getItemAriaLabel:(e,t,n)=>e==="page"?`${t}. ${n?"sayfa":"sayfaya git"}`:e==="first"?"İlk sayfaya git":e==="last"?"Son sayfaya git":e==="next"?"Sonraki sayfaya git":"Önceki sayfaya git"}}}},gD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Ipakita ang landas"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Pumunta sa unang pahina":e==="last"?"Pumunta sa huling pahina":e==="next"?"Pumunta sa susunod na pahina":"Pumunta sa nakaraang pahina",labelRowsPerPage:"Mga hilera bawat pahina:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} ng ${n!==-1?n:`higit sa ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Bituin${e!==1?"s":""}`,emptyLabelText:"Walang laman"}},MuiAutocomplete:{defaultProps:{clearText:"Maaliwalas",closeText:"Isara",loadingText:"Naglo-load…",noOptionsText:"Walang mga pagpipilian",openText:"Bukas"}},MuiAlert:{defaultProps:{closeText:"Isara"}},MuiPagination:{defaultProps:{"aria-label":"Sayfa navigasyonu",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Pumunta sa"}pahina ${t}`:e==="first"?"Pumunta sa unang pahina":e==="last"?"Pumunta sa huling pahina":e==="next"?"Pumunta sa susunod na pahina":"Pumunta sa nakaraang pahina"}}}},hD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Показати шлях сторінок"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Перейти на першу сторінку":e==="last"?"Перейти на останню сторінку":e==="next"?"Перейти на наступну сторінку":"Перейти на попередню сторінку",labelRowsPerPage:"Рядків на сторінці:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} з ${n!==-1?n:`понад ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Зірок";const n=e%10;return n>1&&n<5?t="Зірки":n===1&&(t="Зірка"),`${e} ${t}`},emptyLabelText:"Рейтинг відсутній"}},MuiAutocomplete:{defaultProps:{clearText:"Очистити",closeText:"Згорнути",loadingText:"Завантаження…",noOptionsText:"Немає варіантів",openText:"Розгорнути"}},MuiAlert:{defaultProps:{closeText:"Згорнути"}},MuiPagination:{defaultProps:{"aria-label":"Навігація сторінками",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Перейти на "}сторінку ${t}`:e==="first"?"Перейти на першу сторінку":e==="last"?"Перейти на останню сторінку":e==="next"?"Перейти на наступну сторінку":"Перейти на попередню сторінку"}}}},mD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"راستہ دکھائیں"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"پہلے صفحے پر جائیں":e==="last"?"آخری صفحے پر جائیں":e==="next"?"اگلے صفحے پر جائیں":"پچھلے صفحے پر جائیں",labelRowsPerPage:"ایک صفحے پر قطاریں:",labelDisplayedRows:({from:e,to:t,count:n})=>`${n!==-1?`${n} میں سے`:`${t} سے ذیادہ میں سے`} ${e} سے ${t} قطاریں`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ستار${e!==1?"ے":"ہ"}`,emptyLabelText:"خالی"}},MuiAutocomplete:{defaultProps:{clearText:"کلئیر",closeText:"بند کریں",loadingText:"لوڈ ہو رہا ہے۔۔۔",noOptionsText:"کوئی آپشن نہیں",openText:"کھولیں"}},MuiAlert:{defaultProps:{closeText:"بند کریں"}},MuiPagination:{defaultProps:{"aria-label":"صفحات کی ترتیب",getItemAriaLabel:(e,t,n)=>e==="page"?`صفحہ نمبر ${t}${n?"":" پر جائیں"}`:e==="first"?"پہلے صفحے پر جائیں":e==="last"?"آخری صفحے پر جائیں":e==="next"?"اگلے صفحے پر جائیں":"پچھلے صفحے پر جائیں"}}}},vD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mở ra"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Tới trang đầu tiên":e==="last"?"Tới trang cuối cùng":e==="next"?"Tới trang tiếp theo":"Về trang trước đó",labelRowsPerPage:"Số hàng mỗi trang:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} trong ${n!==-1?n:`nhiều hơn ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} sao`,emptyLabelText:"Không có dữ liệu"}},MuiAutocomplete:{defaultProps:{clearText:"Xóa",closeText:"Đóng",loadingText:"Đang tải…",noOptionsText:"Không có lựa chọn nào",openText:"Mở"}},MuiAlert:{defaultProps:{closeText:"Đóng"}},MuiPagination:{defaultProps:{"aria-label":"Thanh điều khiển trang",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Tới "}trang ${t}`:e==="first"?"Tới trang đầu tiên":e==="last"?"Tới trang cuối cùng":e==="next"?"Tới trang tiếp theo":"Về trang trước đó"}}}},yD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"展开"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"第一页":e==="last"?"最后一页":e==="next"?"下一页":"上一页",labelRowsPerPage:"每页行数:",labelDisplayedRows:({from:e,to:t,count:n})=>`第 ${e} 条到第 ${t} 条,${n!==-1?`共 ${n} 条`:`至少 ${t} 条`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 颗星`,emptyLabelText:"无标签"}},MuiAutocomplete:{defaultProps:{clearText:"清空",closeText:"关闭",loadingText:"加载中……",noOptionsText:"没有可用选项",openText:"打开"}},MuiAlert:{defaultProps:{closeText:"关闭"}}}},bD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"展開"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"第一頁":e==="last"?"最後一頁":e==="next"?"下一頁":"上一頁",labelRowsPerPage:"每頁行數:",labelDisplayedRows:({from:e,to:t,count:n})=>`第 ${e} 項至第 ${t} 項,${n!==-1?`共 ${n} 項`:`超過 ${t} 項`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 粒星`,emptyLabelText:"無標籤"}},MuiAutocomplete:{defaultProps:{clearText:"清除",closeText:"關閉",loadingText:"載入中……",noOptionsText:"沒有可用選項",openText:"開啟"}},MuiAlert:{defaultProps:{closeText:"關閉"}}}},xD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"展開"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"第一頁":e==="last"?"最後一頁":e==="next"?"下一頁":"上一頁",labelRowsPerPage:"每頁數量:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e} ~ ${t} / ${n!==-1?n:`${t} 以上`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 顆星`,emptyLabelText:"無標籤"}},MuiAutocomplete:{defaultProps:{clearText:"清空",closeText:"關閉",loadingText:"載入中…",noOptionsText:"沒有可用選項",openText:"打開"}},MuiAlert:{defaultProps:{closeText:"關閉"}}}},SD=Object.freeze(Object.defineProperty({__proto__:null,amET:m9,arEG:v9,arSA:y9,arSD:b9,azAZ:x9,beBY:w9,bgBG:C9,bnBD:S9,caES:_9,csCZ:R9,daDK:T9,deDE:P9,elGR:k9,enUS:$9,esES:E9,etEE:M9,faIR:I9,fiFI:O9,frFR:L9,heIL:A9,hiIN:N9,hrHR:D9,huHU:j9,hyAM:F9,idID:B9,isIS:z9,itIT:H9,jaJP:V9,khKH:W9,kkKZ:K9,koKR:U9,kuCKB:G9,kuLatn:q9,mkMK:Z9,msMS:Y9,myMY:Q9,nbNO:J9,neNP:X9,nlNL:tD,nnNO:eD,plPL:nD,psAF:rD,ptBR:oD,ptPT:iD,roRO:aD,ruRU:lD,siLK:cD,skSK:uD,srRS:sD,svSE:dD,thTH:fD,tlTL:gD,trTR:pD,ukUA:hD,urPK:mD,viVN:vD,zhCN:yD,zhHK:bD,zhTW:xD},Symbol.toStringTag,{value:"Module"}));var px;(function(e){e.Single="single",e.Multiple="multiple"})(px||(px={}));const wD="_toolbar_158fz_3",CD="_actions_158fz_8",_D="_selectLabel_158fz_16",RD="_select_158fz_16",TD="_displayedRows_158fz_21",PD="_selectRoot_158fz_29",kD="_selectIcon_158fz_45",$D="_iconBtnRoot_158fz_56",ED="_iconBtnDisabled_158fz_68",po={toolbar:wD,actions:CD,selectLabel:_D,select:RD,displayedRows:TD,selectRoot:PD,selectIcon:kD,iconBtnRoot:$D,iconBtnDisabled:ED},gx={root:po.iconBtnRoot,disabled:po.iconBtnDisabled},MD=e=>{const{className:t="",page:n,onPageChange:r,count:o,rowsPerPage:i}=e;return g.jsxs("div",{className:t,children:[g.jsx(hr,{disableRipple:!0,classes:gx,disabled:n===0,onClick:a=>r(a,n-1),children:g.jsx(GA,{size:10},void 0)},void 0),g.jsx(hr,{disableRipple:!0,classes:gx,disabled:n>=Math.ceil(o/i)-1,onClick:a=>r(a,n+1),children:g.jsx(qA,{size:10},void 0)},void 0)]},void 0)},ID=e=>{const n=zt().language==="zhCN";return g.jsx(sA,{component:"div",ActionsComponent:r=>g.jsx(MD,{...r},void 0),classes:{toolbar:po.toolbar,actions:po.actions,displayedRows:po.displayedRows,selectLabel:po.selectLabel,select:po.select,selectIcon:po.selectIcon},SelectProps:{label:n?"每页显示":"Rows per page",className:po.selectRoot,IconComponent:()=>g.jsx(ia,{size:12},void 0)},labelDisplayedRows:({from:r,to:o,count:i})=>g.jsx(mt,{color:"textSecondary",children:n?g.jsxs(g.Fragment,{children:["共有 ",g.jsx("strong",{children:i},void 0)," 条,第 ",g.jsx("strong",{children:r},void 0),"-",g.jsx("strong",{children:o},void 0),"条"]},void 0):g.jsxs(g.Fragment,{children:[g.jsx("strong",{children:r},void 0),"-",g.jsx("strong",{children:o},void 0)," of"," ",g.jsx("strong",{children:i},void 0)]},void 0)},void 0),...e},void 0)};var hx;(function(e){e[e.Previous=-1]="Previous",e[e.Next=1]="Next"})(hx||(hx={}));var mx;(function(e){e[e.Left=1]="Left",e[e.Right=2]="Right"})(mx||(mx={}));var vx;(function(e){e.Small="small",e.Medium="medium"})(vx||(vx={}));const OD=function(e,t,n){t.prototype.isBetween=function(r,o,i,a){var s=n(r),l=n(o);a=a||"()";var c=a[0]==="(",u=a[1]===")";return(c?this.isAfter(s,i):!this.isBefore(s,i))&&(u?this.isBefore(l,i):!this.isAfter(l,i))||(c?this.isBefore(s,i):!this.isAfter(s,i))&&(u?this.isAfter(l,i):!this.isBefore(l,i))}},LD=function(e,t,n){var r=function(i,a){if(!a||!a.length||a.length===1&&!a[0]||a.length===1&&Array.isArray(a[0])&&!a[0].length)return null;if(a.length===1&&a[0].length>0){var s=a;a=s[0]}a=a.filter(function(d){return d});var l,c=a;l=c[0];for(var u=1;u=M?D:""+Array(M+1-N.length).join(A)+D},C={s:m,z:function(D){var M=-D.utcOffset(),A=Math.abs(M),N=Math.floor(A/60),E=A%60;return(M<=0?"+":"-")+m(N,2,"0")+":"+m(E,2,"0")},m:function D(M,A){if(M.date()1)return D(B[0])}else{var H=M.name;R[H]=M,E=H}return!N&&E&&(_=E),E||!N&&_},x=function(D,M){if(T(D))return D.clone();var A=typeof M=="object"?M:{};return A.date=D,A.args=arguments,new I(A)},$=C;$.l=P,$.i=T,$.w=function(D,M){return x(D,{locale:M.$L,utc:M.$u,x:M.$x,$offset:M.$offset})};var I=function(){function D(A){this.$L=P(A.locale,null,!0),this.parse(A),this.$x=this.$x||A.x||{},this[k]=!0}var M=D.prototype;return M.parse=function(A){this.$d=function(N){var E=N.date,L=N.utc;if(E===null)return new Date(NaN);if($.u(E))return new Date;if(E instanceof Date)return new Date(E);if(typeof E=="string"&&!/Z$/i.test(E)){var B=E.match(w);if(B){var H=B[2]-1||0,z=(B[7]||"0").substring(0,3);return L?new Date(Date.UTC(B[1],H,B[3]||1,B[4]||0,B[5]||0,B[6]||0,z)):new Date(B[1],H,B[3]||1,B[4]||0,B[5]||0,B[6]||0,z)}}return new Date(E)}(A),this.init()},M.init=function(){var A=this.$d;this.$y=A.getFullYear(),this.$M=A.getMonth(),this.$D=A.getDate(),this.$W=A.getDay(),this.$H=A.getHours(),this.$m=A.getMinutes(),this.$s=A.getSeconds(),this.$ms=A.getMilliseconds()},M.$utils=function(){return $},M.isValid=function(){return this.$d.toString()!==y},M.isSame=function(A,N){var E=x(A);return this.startOf(N)<=E&&E<=this.endOf(N)},M.isAfter=function(A,N){return x(A)[{label:"Today",startDate:e,endDate:e},{label:"Yesterday",startDate:tt(e).add(-1,"day").toDate(),endDate:tt(e).add(-1,"day").toDate()},{label:"This Week",startDate:tt(e).startOf("week").toDate(),endDate:tt(e).endOf("week").toDate()},{label:"Last Week",startDate:tt(e).add(-1,"week").startOf("week").toDate(),endDate:tt(e).add(-1,"week").endOf("week").toDate()},{label:"Last 7 Days",startDate:tt(e).add(-1,"week").toDate(),endDate:e},{label:"This Month",startDate:tt(e).startOf("month").toDate(),endDate:tt(e).endOf("month").toDate()},{label:"Last Month",startDate:tt(e).add(-1,"month").startOf("month").toDate(),endDate:tt(e).add(-1,"month").endOf("month").toDate()}];ND(new Date);tt(new Date).startOf("week").toDate(),tt(new Date).endOf("week").toDate();const DD="_container_a4vk2_3",jD="_checkedCircle_a4vk2_5",FD="_checked_a4vk2_5",BD="_disabled_a4vk2_60",Ku={container:DD,checkedCircle:jD,checked:FD,disabled:BD},xx=e=>{const{checked:t=!1,disabled:n=!1}=e;return g.jsx("div",{className:Gt(Ku.checkedCircle,{[Ku.checked]:t,[Ku.disabled]:n})},void 0)},Sx=rt.forwardRef(function(e,t){const{sx:n,disabled:r,checked:o,className:i,...a}=e;return g.jsx(HL,{ref:t,className:Gt(Ku.container,i),sx:{"&.Mui-disabled":{opacity:.5},...n},disableRipple:!0,disableTouchRipple:!0,color:"default",checkedIcon:g.jsx(xx,{checked:!0,disabled:r},void 0),icon:g.jsx(xx,{disabled:r},void 0),disabled:r,checked:o,...a},void 0)});rt.forwardRef(function(e,t){const{label:n="",...r}=e,o=zt();return n?g.jsx(M_,{control:g.jsx(Sx,{ref:t,...r},void 0),sx:{margin:0,display:"flex",alignSelf:"center",gap:"8px","& .MuiFormControlLabel-label":{fontSize:14,lineHeight:"135%",fontWeight:400,color:o.black.black1},"& .MuiFormControlLabel-label.Mui-disabled":{opacity:.5,color:o.black.black1},"& .MuiRadio-root":{padding:0,marginRight:0}},label:n},void 0):g.jsx(Sx,{ref:t,...r},void 0)});Yd(new Date).startOf("day"),Yd(new Date).endOf("day");tt.extend(OD);tt.extend(LD);const zD="_btnWrapper_mwgh3_3",HD="_titleWrapper_mwgh3_9",Sg={btnWrapper:zD,titleWrapper:HD},VD=rt.forwardRef(function(t,n){return g.jsx(y_,{ref:n,...t},void 0)}),WD=e=>{const{handleClose:t,severity:n="info",title:r,message:o,classes:i={root:"",title:"",message:""},icon:a,actions:s,showClose:l=!0,...c}=e,u=zt(),{iconStyles:d}=b.useMemo(()=>{let p=u.blue.blue2;switch(n){case"info":p=u.blue.blue2;break;case"error":p=u.red.red2;break;case"success":p=u.green.green2;break;case"warning":p=u.yellow.yellow2;break}return{iconStyles:{width:"20px",height:"20px",paddingTop:r?"2px":0,"& path":{fill:p}}}},[n,r]),f=g.jsx(hr,{"aria-label":"close",color:"inherit",size:"small",onClick:t,disableRipple:!0,sx:{"&.MuiIconButton-root":{"& path":{fill:u.black.black1},"&:hover":{"& path":{fill:u.black.black2}}}},children:g.jsx(O1,{size:16,fontSize:"inherit"},void 0)},void 0);return g.jsx(VD,{severity:n,variant:"outlined",iconMapping:{success:a||g.jsx(U_,{width:20,height:20,sx:d},void 0),info:a||g.jsx(Rm,{width:20,height:20,sx:d},void 0),warning:a||g.jsx(V_,{sx:d},void 0),error:a||g.jsx(W_,{sx:d},void 0)},sx:{boxShadow:"0px 1px 10px 0px rgba(107, 121, 141, 0.30)",padding:"16px",width:"fit-content",borderRadius:"12px",border:"none",backgroundColor:"#FFF","& .MuiAlert-icon":{paddingTop:0,paddingBottom:0,marginRight:"8px"},"& .MuiAlert-message":{display:"flex",alignItems:"center",fontWeight:400,color:u.black.black1,padding:0},"& .MuiAlert-action":{paddingTop:0,paddingRight:"6px"}},action:r||!l?void 0:f,...c,children:g.jsxs("div",{className:Gt(i.root,Sg.root),children:[r&&g.jsxs("div",{className:Sg.titleWrapper,children:[g.jsx(mt,{variant:"h4Semibold",children:r},void 0),l?f:g.jsx("span",{},void 0)]},void 0),g.jsx(mt,{variant:"body1Regular",component:"div",sx:{whiteSpace:"normal",overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:5,WebkitBoxOrient:"vertical",paddingRight:"30px"},className:i.message,children:o},void 0),s&&g.jsx("div",{className:Sg.btnWrapper,children:s.confirm&&g.jsx(L1,{variant:"textBlue",withMargin:!1,...s.confirm},void 0)},void 0)]},void 0)},void 0)},wx=300,Cx=({children:e,maxWidth:t="100%",tooltipProps:n={},typographyProps:r={}})=>{const o=b.useRef(null),[i,a]=b.useState(!1),{sx:s={},...l}=r;b.useEffect(()=>{const u=o.current;a(u.scrollWidth>u.offsetWidth||u.scrollHeight>u.offsetHeight)},[]);const c=b.useMemo(()=>{var d;const u=(d=o.current)==null?void 0:d.offsetWidth;return u?u>wx?u:wx:"100%"},[o.current]);return g.jsx(bp,{...n,title:i?e:"",sx:{maxWidth:c},children:g.jsx(mt,{component:"div",sx:{maxWidth:t,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",...s},ref:o,...l,children:e},void 0)},void 0)},UD=e=>g.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",...e,children:[g.jsx("path",{d:"M1.47656 33.8702C1.47656 34.5009 3.48086 35.1057 7.04852 35.5517C10.6162 35.9976 15.455 36.2482 20.5004 36.2482C25.5459 36.2482 30.3847 35.9976 33.9523 35.5517C37.52 35.1057 39.5243 34.5009 39.5243 33.8702C39.5243 33.2395 37.52 32.6346 33.9523 32.1887C30.3847 31.7427 25.5459 31.4922 20.5004 31.4922C15.455 31.4922 10.6162 31.7427 7.04852 32.1887C3.48086 32.6346 1.47656 33.2395 1.47656 33.8702Z",fill:"#F0F2F4"},void 0),g.jsx("path",{d:"M36.6449 17.8911V17.8435C36.6449 17.7959 36.6211 17.7722 36.6211 17.7246V17.7008L31.5085 7.53099C30.7713 5.27191 28.6787 3.75 26.3007 3.75H14.6723C12.2944 3.75 10.2017 5.27191 9.46457 7.53099L4.3519 17.7008V17.7246C4.32812 17.7722 4.32812 17.7959 4.32812 17.8435V27.4506C4.32812 30.4706 6.77745 32.9199 9.79748 32.9199H31.1993C34.2194 32.9199 36.6687 30.4706 36.6687 27.4506V17.9386C36.6449 17.9149 36.6449 17.9148 36.6449 17.8911ZM10.7962 8.03037C10.7962 8.03037 10.7962 8.00659 10.82 8.00659C11.3432 6.29444 12.9126 5.17679 14.6723 5.17679H26.2769C28.0366 5.17679 29.6061 6.29444 30.153 7.98281C30.153 7.98281 30.153 8.00659 30.1768 8.00659L34.909 17.2015H24.0416C23.6373 17.2015 23.3282 17.5106 23.3282 17.9148C23.3282 19.4843 22.0441 20.7684 20.4746 20.7684C18.9052 20.7684 17.621 19.4843 17.621 17.9148C17.621 17.5106 17.3119 17.2015 16.9077 17.2015H6.06405L10.7962 8.03037Z",fill:"#D1D6DC"},void 0),g.jsx("path",{d:"M35.2428 27.2126C35.2428 29.4479 33.4356 31.2552 31.2003 31.2552H9.79843C7.56313 31.2552 5.75586 29.4479 5.75586 27.2126V18.4141H16.2903C16.6232 20.4353 18.3829 21.981 20.4994 21.981C22.6158 21.981 24.3755 20.4353 24.7084 18.4141H35.2428V27.2126Z",fill:"#E0E3E7"},void 0)]},void 0),GD="_empty_1tvs0_3",qD="_text_1tvs0_13",_x={empty:GD,text:qD};var Va;(function(e){e.Left="left",e.Right="right"})(Va||(Va={}));const KD=b.forwardRef((e,t)=>{const{autoWidth:n,placeholder:r,options:o,onChange:i,onSelectChange:a,onClose:s,onOpen:l,disabled:c=!1,label:u,sxProps:d={},defaultValue:f="",maxWidth:p,classes:{root:h,label:y,container:w,select:v,placeholder:S}={},MenuProps:m,value:C="",size:_="medium",renderValue:R,empty:k={},selectorTooltip:T={},endAdornment:P,...x}=e,[$,I]=b.useState(""),O=zt(),D=L=>{const B=L.target.value;if(I(B),Array.isArray(B)){const z=o.filter(j=>B.includes(j.value)&&!j.disabled);a?a(L,z):i(z);return}const H=o.find(z=>z.value===B);H!=null&&H.disabled||(a?a(L,H):i(H))};b.useEffect(()=>{I(C)},[C]),b.useEffect(()=>{I(f)},[f]);const M=b.useMemo(()=>_==="small"?{minWidth:"83px",height:28,iconRightOffset:"8px",select:{padding:`6px ${P?"65px":"32px"} 6px 8px`,minHeight:"16px",fontSize:"13px",lineHeight:"135%",borderRadius:"6px"},placeholderVariant:"body2Regular"}:{minWidth:"120px",height:36,iconRightOffset:"12px",select:{padding:`8px ${P?"74px":"38px"} 8px 12px`,minHeight:"20px",fontSize:"14px",lineHeight:"135%",borderRadius:"8px"},placeholderVariant:"body1Regular"},[_,P]),A=b.useMemo(()=>f===""&&C===""?r?()=>g.jsx(mt,{variant:M.placeholderVariant,sx:{color:O.black.black3,...d.sxPlaceHolder},className:S,children:r},void 0):R:R||void 0,[f,C,r,R,M]),N=L=>L==="small"?12:14,E=P?L=>g.jsxs(Lr,{sx:{height:M.height,display:"flex",gap:_==="small"?"10px":"12px",position:"absolute",right:"12px",userSelect:"none",pointerEvents:"none",alignItems:"center"},children:[g.jsx(ia,{size:N(_)},void 0),g.jsx(Lr,{sx:{height:"100%",width:"1px",backgroundColor:O.stroke.stroke1}},void 0),g.jsx(mt,{component:"div",variant:"body2Regular",children:P},void 0)]},void 0):L=>g.jsx(ia,{size:N(_),...L},void 0);return g.jsxs(mt,{component:"div",sx:{display:"flex",flexDirection:"column",gap:"8px",...d.sxRoot},className:h,children:[u&&g.jsx(mt,{component:"label",variant:"h4Medium",sx:{marginTop:O.spacing(1),...d.sxLabel},className:y,children:u},void 0),g.jsx(Mc,{tooltip:T,children:g.jsx(Lr,{sx:{position:"relative",display:"inline-block",verticalAlign:"baseline",backgroundColor:c?O.black.black5:"#fff",borderRadius:M.select.borderRadius,width:"100%",...d.sxSelectContainer},className:w,children:g.jsx(vp,{autoWidth:n,value:C||$,onChange:c?()=>{}:D,onClose:s,onOpen:l,disabled:c,displayEmpty:!0,IconComponent:E,className:v,renderValue:A,MenuProps:{sx:{"& .MuiPaper-root":{marginTop:"6px",background:O.palette.common.white,boxShadow:aa,border:`1px solid ${O.stroke.stroke1}`,borderRadius:"8px","& > ul.MuiList-root":{padding:"6px 0","& li":{margin:"4px 0"}}},...d.sxMenu},anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},PaperProps:{sx:{maxHeight:"50vh"}},...m},sx:{width:n?"auto":"100%",minWidth:M.minWidth,height:M.height,transition:"all 0.2s",borderRadius:M.select.borderRadius,"& fieldset":{border:`1px solid ${O.stroke.stroke1}`,borderRadius:M.select.borderRadius,boxShadow:aa},"& > .MuiSelect-icon":{right:M.iconRightOffset,top:"auto",bottom:"auto",transform:"rotate(0)","& path":{fill:O.black.black1}},"&.Mui-focused fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.blue.blue1}`,boxShadow:`0px 0px 0px 4px ${O.blue.blue4}, ${pr}`,zIndex:"999"},"&.Mui-focused:hover fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.blue.blue1}`,boxShadow:"none"},"&.Mui-error":{transition:"none","&.Mui-error fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.red.red2}`,boxShadow:`0px 0px 0px 4px ${O.red.red4}, ${pr}`},"&.Mui-error:hover fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.red.red2}`,boxShadow:"none"}},"& .MuiSelect-select":{padding:M.select.padding,minHeight:M.select.minHeight,fontSize:M.select.fontSize,lineHeight:M.select.lineHeight,boxSizing:"border-box",".MuiTypography-root":{fontSize:M.select.fontSize,lineHeight:M.select.lineHeight},"& p":{fontSize:M.select.fontSize,lineHeight:M.select.lineHeight},"& span":{fontSize:M.select.fontSize,lineHeight:M.select.lineHeight}},"&:hover":{backgroundColor:c?"unset":O.palette.common.white,"&:not(.Mui-error)":{boxShadow:c?"none":`0px 0px 0px 4px ${O.blue.blue4}, ${pr}`},"&.Mui-error":{boxShadow:`0px 0px 0px 4px ${O.red.red4}, ${pr}`},"& fieldset.MuiOutlinedInput-notchedOutline":{borderColor:"transparent"}},"&:focus":{"& fieldset":{borderColor:O.blue.blue1,boxShadow:`0px 0px 0px 4px ${O.blue.blue4}, ${pr}`}},"&.Mui-disabled":{color:O.black.black3,"& > .MuiSelect-icon path":{fill:O.black.black3},"& fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.stroke.stroke1}`}},...d.sxSelect},...x,children:o.length>0?o.map(L=>QD(L,O,d.sxMenuItem,p)):g.jsx(ZD,{...k},void 0)},void 0)},void 0)},void 0)]},void 0)}),ZD=e=>{const{label:t,component:n,classes:r={root:"",text:"",img:""}}=e,o=zt();return g.jsx($c,{sx:{"&.Mui-disabled":{opacity:1,pointerEvents:"inherit","&:hover":{backgroundColor:"unset"}}},disabled:!0,children:n||g.jsxs("div",{className:Gt(_x.empty,r.root),children:[g.jsx(UD,{className:r.img},void 0),g.jsx(mt,{component:"div",className:Gt(_x.text,r.text),children:t||Kd(Ae.NoOptions,o.language)},void 0)]},void 0)},void 0)},QD=(e,t,n,r)=>{const{generateCustomEle:o,icon:i,label:a,tooltip:s,disabled:l,id:c,value:u,iconPosition:d=Va.Left}=e;if(o)return o();const f=({id:p,value:h,disabled:y,icon:w,label:v,iconPosition:S=Va.Left})=>g.jsx($c,{value:h,disableRipple:!0,disableTouchRipple:!0,disabled:y||!1,sx:{maxWidth:r||"inherit",padding:"8px 16px","&.Mui-disabled":{opacity:1,backgroundColor:"transparent",pointerEvents:"inherit","& > div":{color:t.black.black3}},"&.Mui-selected.Mui-focusVisible":{backgroundColor:t.palette.common.white},"&.Mui-selected":{backgroundColor:t.palette.common.white,"& > * span":{color:t.blue.blue1},"& > .MuiTypography-root":{color:t.blue.blue1}},"&:not(.Mui-disabled):hover":{backgroundColor:t.black.black5},...n},children:w?g.jsxs(mt,{component:"div",sx:{display:"flex",flexDirection:"row",alignItems:"center",gap:"8px"},children:[S===Va.Left?w:null,g.jsx(Cx,{typographyProps:{component:"span"},maxWidth:r?r-50:void 0,children:v},void 0),S===Va.Right?w:null]},void 0):g.jsx(Cx,{maxWidth:r||void 0,typographyProps:{sx:{minWidth:10}},children:v},void 0)},p===void 0?h:p);return l&&s?g.jsx(Mc,{tooltip:s,children:f({id:c,value:u,disabled:l,icon:i,label:a,iconPosition:d})},c):f({id:c,value:u,disabled:l,icon:i,label:a,iconPosition:d})},Z_=b.forwardRef((e,t)=>{const{options:n,handleChange:r,handleInputChange:o,inputParams:i={},fullWidth:a=!0,sx:s={},size:l,...c}=e,u=zt(),d=(h,y)=>{r&&r(y)},f=(h,y)=>{o&&o(y)},p=b.useMemo(()=>l==="small"?{height:28,iconRightOffset:"8px",select:{padding:"6px 32px 6px 8px",fontSize:"13px",lineHeight:"135%",endIconRight:"1px",borderRadius:"6px"}}:{height:36,iconRightOffset:"12px",select:{padding:"8px 38px 8px 12px",fontSize:"14px",lineHeight:"135%",endIconRight:"3px",borderRadius:"8px"}},[l]);return g.jsx(_I,{disablePortal:!0,sx:{"& .MuiOutlinedInput-root":{minHeight:p.height,padding:p.select.padding,borderRadius:p.select.borderRadius,".MuiOutlinedInput-notchedOutline":{borderColor:u.stroke.stroke1,boxShadow:aa},"&:hover":{cursor:"pointer","& .MuiOutlinedInput-notchedOutline":{borderColor:"transparent",boxShadow:`0px 0px 0px 4px ${u.blue.blue4}, ${pr}`}},"&.Mui-focused":{"& .MuiOutlinedInput-notchedOutline":{border:`1px solid ${u.blue.blue1}`,boxShadow:`0px 0px 0px 4px ${u.blue.blue4}, ${pr}`}},"& input.MuiInputBase-input":{fontSize:p.select.fontSize,lineHeight:p.select.lineHeight,padding:0,height:"auto"}},"& .MuiIconButton-root:hover":{background:"none"},"& div.MuiAutocomplete-endAdornment":{top:"calc(50% - 2px)",paddingRight:p.select.endIconRight},"& .MuiAutocomplete-popupIndicatorOpen":{transform:"none"},...s},PaperComponent:h=>g.jsx(Is,{sx:{marginTop:"6px",background:u.palette.common.white,boxShadow:aa,border:`1px solid ${u.stroke.stroke1}`,borderRadius:p.select.borderRadius,".MuiAutocomplete-listbox":{".MuiAutocomplete-option":{backgroundColor:u.palette.common.white,padding:"8px 16px","&:hover":{backgroundColor:`${u.black.black5} `}}},"& .MuiAutocomplete-option":{fontSize:p.select.fontSize,lineHeight:p.select.lineHeight},'& .MuiAutocomplete-option[aria-selected="true"]':{backgroundColor:`${u.palette.common.white} !important`,color:u.blue.blue1}},...h},void 0),popupIcon:g.jsx(ia,{size:14,style:{color:u.black.black1}},void 0),clearIcon:null,onChange:d,onInputChange:f,fullWidth:a,ref:t,componentsProps:{popupIndicator:{disableRipple:!0}},size:l,...c,options:n,renderInput:h=>g.jsx(D1,{...h,...i},void 0)},void 0)});function YD(e){return{id:`z-tab-${e}`,"aria-controls":`z-tabpanel-${e}`}}const XD=e=>{const{value:t,handleChange:n,labelConfigs:r=[],size:o="medium",tabsType:i="indicator",color:a,...s}=e;if(t===void 0||!n||!r.length)throw new Error("Props value, handleChange and labels are required");const l=zt(),{tabsStyle:c,tabStyle:u}=b.useMemo(()=>({tabStyle:{fontSize:o==="small"?"11px":"14px",lineHeight:o==="small"?"120%":"135%",minHeight:o==="small"?"20px":"28px",marginRight:i==="indicator"?"24px":"10px",padding:o==="small"?"4px 8px":"6px 12px",fontWeight:o==="small"?400:500},tabsStyle:{minHeight:i==="background"?"32px":"36px"}}),[i,o]);return g.jsxs(OA,{...s,value:t,onChange:n,"aria-label":"tab",sx:{...c,".MuiTabs-indicator":{display:i!=="indicator"?"none":"block",backgroundColor:l.blue.blue1}},children:[r.map((d,f)=>b.createElement(y7,{disableRipple:!0,...d,sx:{"&:hover":{color:l.black.black1},color:l.black.black2,borderRadius:"6px",minWidth:0,textTransform:"inherit",...u,"&.Mui-selected":{backgroundColor:i==="background"?a||l.black.black4:"transparent",color:i==="text"?l.blue.blue1:l.black.black1},...d.sx},key:f,...YD(f)})),g.jsx(Lr,{sx:{position:"absolute",left:0,bottom:"1px",right:0,height:"1px",backgroundColor:l.stroke.stroke1,display:i==="indicator"?"block":"none"}},void 0)]},void 0)};b.forwardRef((e,t)=>{const n=zt(),{sx:r,disabled:o,...i}=e;return g.jsx(g7,{ref:t,focusVisibleClassName:".Mui-focusVisible",disableRipple:!0,disabled:o,sx:{width:"30px",height:"18px",padding:0,borderRadius:"12px","&.MuiSwitch-root":{boxSizing:"inherit",borderRadius:"12px",border:"3px solid transparent","&:hover":{border:o?"3px solid transparent":`3px solid ${n.blue.blue4}`}},"& .MuiSwitch-switchBase":{padding:0,margin:"2px",transitionDuration:"300ms","&.Mui-disabled":{color:"#fff"},"&.Mui-disabled+.MuiSwitch-track":{opacity:.5,backgroundColor:n.stroke.stroke1},"&.Mui-checked":{transform:"translateX(12px)",color:"#fff","& + .MuiSwitch-track":{backgroundColor:n.blue.blue1,opacity:1,border:0},"&.Mui-disabled":{color:"#fff","& .MuiSwitch-thumb":{backgroundImage:`url('data:image/svg+xml,%3Csvg width="8" height="5" viewBox="0 0 8 5" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath opacity="0.5" d="M7.07386 0.267169L7.0742 0.266888L7.06621 0.258615C6.93931 0.1272 6.73491 0.126882 6.60764 0.257662L3.10802 3.77259L1.40194 2.0546C1.27467 1.92373 1.0702 1.92401 0.943272 2.05546C0.818909 2.18425 0.818909 2.38743 0.943272 2.51622L0.943261 2.51623L0.944741 2.51772L2.7084 4.29369C2.81588 4.40452 2.96228 4.45981 3.0982 4.45981C3.24579 4.45981 3.38185 4.40316 3.48793 4.29377L7.04276 0.723374C7.18062 0.595374 7.17948 0.394776 7.07386 0.267169ZM3.16713 3.83211L3.16614 3.83111C3.16648 3.83145 3.1668 3.83179 3.16712 3.83212L3.16713 3.83211Z" fill="%233F46FF" stroke="%233F46FF" stroke-width="0.3"/%3E%3C/svg%3E')`}},"& .MuiSwitch-thumb":{backgroundImage:`url('data:image/svg+xml,%3Csvg width="8" height="5" viewBox="0 0 8 5" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M7.07386 0.267169L7.0742 0.266888L7.06621 0.258615C6.93931 0.1272 6.73491 0.126882 6.60764 0.257662L3.10802 3.77259L1.40194 2.0546C1.27467 1.92373 1.0702 1.92401 0.943272 2.05546C0.818909 2.18425 0.818909 2.38743 0.943272 2.51622L0.943261 2.51623L0.944741 2.51772L2.7084 4.29369C2.81588 4.40452 2.96228 4.45981 3.0982 4.45981C3.24579 4.45981 3.38185 4.40316 3.48793 4.29377L7.04276 0.723374C7.18062 0.595374 7.17948 0.394776 7.07386 0.267169ZM3.16713 3.83211L3.16614 3.83111C3.16648 3.83145 3.1668 3.83179 3.16712 3.83212L3.16713 3.83211Z" fill="%233F46FF" stroke="%233F46FF" stroke-width="0.3"/%3E%3C/svg%3E')`,backgroundRepeat:"no-repeat",backgroundPosition:"center 60%"},"&.Mui-disabled+.MuiSwitch-track":{opacity:.5}},"&:hover":{backgroundColor:"transparent"}},"& .MuiSwitch-thumb":{width:"12px",height:"12px",boxShadow:"none",margin:"1px 0 0 1px"},"& .MuiSwitch-track":{backgroundColor:n.stroke.stroke2,transition:n.transitions.create(["background-color"],{duration:500}),borderRadius:"10px",opacity:1},...r},...i},void 0)});var bs;(function(e){e.PY="python",e.JS="javascript",e.JAVA="java",e.BASH="bash"})(bs||(bs={}));function JD(e,t){if(e==null)return{};var n,r,o=Ms(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;re.length)&&(t=e.length);for(var n=0,r=Array(t);n=4)return[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]}var wg={};function ij(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return wg[t]||(wg[t]=oj(e)),wg[t]}function aj(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=e.filter(function(i){return i!=="token"}),o=ij(r);return o.reduce(function(i,a){return Wa(Wa({},i),n[a])},t)}function Tx(e){return e.join(" ")}function sj(e,t){var n=0;return function(r){return n+=1,r.map(function(o,i){return Y_({node:o,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(i)})})}}function Y_(e){var t=e.node,n=e.stylesheet,r=e.style,o=r===void 0?{}:r,i=e.useInlineStyles,a=e.key,s=t.properties,l=t.type,c=t.tagName,u=t.value;if(l==="text")return u;if(c){var d=sj(n,i),f;if(!i)f=Wa(Wa({},s),{},{className:Tx(s.className)});else{var p=Object.keys(n).reduce(function(v,S){return S.split(".").forEach(function(m){v.includes(m)||v.push(m)}),v},[]),h=s.className&&s.className.includes("token")?["token"]:[],y=s.className&&h.concat(s.className.filter(function(v){return!p.includes(v)}));f=Wa(Wa({},s),{},{className:Tx(y)||void 0,style:aj(s.className,Object.assign({},s.style,o),n)})}var w=d(t.children);return rt.createElement(c,Ln({key:a},f),w)}}const lj=function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1};var cj=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function Px(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Qo(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=0;r2&&arguments[2]!==void 0?arguments[2]:[];return Zu({children:_,lineNumber:R,lineNumberStyle:s,largestLineNumber:a,showInlineLineNumbers:o,lineProps:n,className:k,showLineNumbers:r,wrapLongLines:l,wrapLines:t})}function y(_,R){if(r&&R&&o){var k=J_(s,R,a);_.unshift(X_(R,k))}return _}function w(_,R){var k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||k.length>0?h(_,R,k):y(_,R)}for(var v=function(){var R=u[p],k=R.children[0].value,T=dj(k);if(T){var P=k.split(` -`);P.forEach(function(x,$){var I=r&&d.length+i,O={type:"text",value:"".concat(x,` -`)};if($===0){var D=u.slice(f+1,p).concat(Zu({children:[O],className:R.properties.className})),M=w(D,I);d.push(M)}else if($===P.length-1){var A=u[p+1]&&u[p+1].children&&u[p+1].children[0],N={type:"text",value:"".concat(x)};if(A){var E=Zu({children:[N],className:R.properties.className});u.splice(p+1,0,E)}else{var L=[N],B=w(L,I,R.properties.className);d.push(B)}}else{var H=[O],z=w(H,I,R.properties.className);d.push(z)}}),f=p}p++};p/g,">").replace(/"/g,""").replace(/'/g,"'")}function Yo(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const o in r)n[o]=r[o]}),n}const xj="",$x=e=>!!e.kind;class Sj{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=Ja(t)}openNode(t){if(!$x(t))return;let n=t.kind;t.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(t){$x(t)&&(this.buffer+=xj)}value(){return this.buffer}span(t){this.buffer+=``}}class F1{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n={kind:t,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{F1._collapse(n)}))}}class wj extends F1{constructor(t){super(),this.options=t}addKeyword(t,n){t!==""&&(this.openNode(n),this.addText(t),this.closeNode())}addText(t){t!==""&&this.add(t)}addSublanguage(t,n){const r=t.root;r.kind=n,r.sublanguage=!0,this.add(r)}toHTML(){return new Sj(this,this.options).value()}finalize(){return!0}}function Cj(e){return new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function fc(e){return e?typeof e=="string"?e:e.source:null}function _j(...e){return e.map(n=>fc(n)).join("")}function Rj(...e){return"("+e.map(n=>fc(n)).join("|")+")"}function Tj(e){return new RegExp(e.toString()+"|").exec("").length-1}function Pj(e,t){const n=e&&e.exec(t);return n&&n.index===0}const kj=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function $j(e,t="|"){let n=0;return e.map(r=>{n+=1;const o=n;let i=fc(r),a="";for(;i.length>0;){const s=kj.exec(i);if(!s){a+=i;break}a+=i.substring(0,s.index),i=i.substring(s.index+s[0].length),s[0][0]==="\\"&&s[1]?a+="\\"+String(Number(s[1])+o):(a+=s[0],s[0]==="("&&n++)}return a}).map(r=>`(${r})`).join(t)}const Ej=/\b\B/,rR="[a-zA-Z]\\w*",B1="[a-zA-Z_]\\w*",z1="\\b\\d+(\\.\\d+)?",oR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",iR="\\b(0b[01]+)",Mj="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Ij=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=_j(t,/.*\b/,e.binary,/\b.*/)),Yo({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},pc={begin:"\\\\[\\s\\S]",relevance:0},Oj={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[pc]},Lj={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[pc]},aR={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},xp=function(e,t,n={}){const r=Yo({className:"comment",begin:e,end:t,contains:[]},n);return r.contains.push(aR),r.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),r},Aj=xp("//","$"),Nj=xp("/\\*","\\*/"),Dj=xp("#","$"),jj={className:"number",begin:z1,relevance:0},Fj={className:"number",begin:oR,relevance:0},Bj={className:"number",begin:iR,relevance:0},zj={className:"number",begin:z1+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},Hj={begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[pc,{begin:/\[/,end:/\]/,relevance:0,contains:[pc]}]}]},Vj={className:"title",begin:rR,relevance:0},Wj={className:"title",begin:B1,relevance:0},Uj={begin:"\\.\\s*"+B1,relevance:0},Gj=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var vu=Object.freeze({__proto__:null,MATCH_NOTHING_RE:Ej,IDENT_RE:rR,UNDERSCORE_IDENT_RE:B1,NUMBER_RE:z1,C_NUMBER_RE:oR,BINARY_NUMBER_RE:iR,RE_STARTERS_RE:Mj,SHEBANG:Ij,BACKSLASH_ESCAPE:pc,APOS_STRING_MODE:Oj,QUOTE_STRING_MODE:Lj,PHRASAL_WORDS_MODE:aR,COMMENT:xp,C_LINE_COMMENT_MODE:Aj,C_BLOCK_COMMENT_MODE:Nj,HASH_COMMENT_MODE:Dj,NUMBER_MODE:jj,C_NUMBER_MODE:Fj,BINARY_NUMBER_MODE:Bj,CSS_NUMBER_MODE:zj,REGEXP_MODE:Hj,TITLE_MODE:Vj,UNDERSCORE_TITLE_MODE:Wj,METHOD_GUARD:Uj,END_SAME_AS_BEGIN:Gj});function qj(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function Kj(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=qj,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function Zj(e,t){Array.isArray(e.illegal)&&(e.illegal=Rj(...e.illegal))}function Qj(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Yj(e,t){e.relevance===void 0&&(e.relevance=1)}const Xj=["of","and","for","in","not","or","if","then","parent","list","value"],Jj="keyword";function sR(e,t,n=Jj){const r={};return typeof e=="string"?o(n,e.split(" ")):Array.isArray(e)?o(n,e):Object.keys(e).forEach(function(i){Object.assign(r,sR(e[i],t,i))}),r;function o(i,a){t&&(a=a.map(s=>s.toLowerCase())),a.forEach(function(s){const l=s.split("|");r[l[0]]=[i,eF(l[0],l[1])]})}}function eF(e,t){return t?Number(t):tF(e)?0:1}function tF(e){return Xj.includes(e.toLowerCase())}function nF(e,{plugins:t}){function n(s,l){return new RegExp(fc(s),"m"+(e.case_insensitive?"i":"")+(l?"g":""))}class r{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(l,c){c.position=this.position++,this.matchIndexes[this.matchAt]=c,this.regexes.push([c,l]),this.matchAt+=Tj(l)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const l=this.regexes.map(c=>c[1]);this.matcherRe=n($j(l),!0),this.lastIndex=0}exec(l){this.matcherRe.lastIndex=this.lastIndex;const c=this.matcherRe.exec(l);if(!c)return null;const u=c.findIndex((f,p)=>p>0&&f!==void 0),d=this.matchIndexes[u];return c.splice(0,u),Object.assign(c,d)}}class o{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(l){if(this.multiRegexes[l])return this.multiRegexes[l];const c=new r;return this.rules.slice(l).forEach(([u,d])=>c.addRule(u,d)),c.compile(),this.multiRegexes[l]=c,c}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(l,c){this.rules.push([l,c]),c.type==="begin"&&this.count++}exec(l){const c=this.getMatcher(this.regexIndex);c.lastIndex=this.lastIndex;let u=c.exec(l);if(this.resumingScanAtSamePosition()&&!(u&&u.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,u=d.exec(l)}return u&&(this.regexIndex+=u.position+1,this.regexIndex===this.count&&this.considerAll()),u}}function i(s){const l=new o;return s.contains.forEach(c=>l.addRule(c.begin,{rule:c,type:"begin"})),s.terminatorEnd&&l.addRule(s.terminatorEnd,{type:"end"}),s.illegal&&l.addRule(s.illegal,{type:"illegal"}),l}function a(s,l){const c=s;if(s.isCompiled)return c;[Qj].forEach(d=>d(s,l)),e.compilerExtensions.forEach(d=>d(s,l)),s.__beforeBegin=null,[Kj,Zj,Yj].forEach(d=>d(s,l)),s.isCompiled=!0;let u=null;if(typeof s.keywords=="object"&&(u=s.keywords.$pattern,delete s.keywords.$pattern),s.keywords&&(s.keywords=sR(s.keywords,e.case_insensitive)),s.lexemes&&u)throw new Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");return u=u||s.lexemes||/\w+/,c.keywordPatternRe=n(u,!0),l&&(s.begin||(s.begin=/\B|\b/),c.beginRe=n(s.begin),s.endSameAsBegin&&(s.end=s.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(c.endRe=n(s.end)),c.terminatorEnd=fc(s.end)||"",s.endsWithParent&&l.terminatorEnd&&(c.terminatorEnd+=(s.end?"|":"")+l.terminatorEnd)),s.illegal&&(c.illegalRe=n(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map(function(d){return rF(d==="self"?s:d)})),s.contains.forEach(function(d){a(d,c)}),s.starts&&a(s.starts,l),c.matcher=i(c),c}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Yo(e.classNameAliases||{}),a(e)}function lR(e){return e?e.endsWithParent||lR(e.starts):!1}function rF(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return Yo(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:lR(e)?Yo(e,{starts:e.starts?Yo(e.starts):null}):Object.isFrozen(e)?Yo(e):e}var oF="10.7.3";function iF(e){return!!(e||e==="")}function aF(e){const t={props:["language","code","autodetect"],data:function(){return{detectedLanguage:"",unknownLanguage:!1}},computed:{className(){return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`),this.unknownLanguage=!0,Ja(this.code);let r={};return this.autoDetect?(r=e.highlightAuto(this.code),this.detectedLanguage=r.language):(r=e.highlight(this.language,this.code,this.ignoreIllegals),this.detectedLanguage=this.language),r.value},autoDetect(){return!this.language||iF(this.autodetect)},ignoreIllegals(){return!0}},render(r){return r("pre",{},[r("code",{class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{Component:t,VuePlugin:{install(r){r.component("highlightjs",t)}}}}const sF={"after:highlightElement":({el:e,result:t,text:n})=>{const r=Ex(e);if(!r.length)return;const o=document.createElement("div");o.innerHTML=t.value,t.value=lF(r,Ex(o),n)}};function km(e){return e.nodeName.toLowerCase()}function Ex(e){const t=[];return function n(r,o){for(let i=r.firstChild;i;i=i.nextSibling)i.nodeType===3?o+=i.nodeValue.length:i.nodeType===1&&(t.push({event:"start",offset:o,node:i}),o=n(i,o),km(i).match(/br|hr|img|input/)||t.push({event:"stop",offset:o,node:i}));return o}(e,0),t}function lF(e,t,n){let r=0,o="";const i=[];function a(){return!e.length||!t.length?e.length?e:t:e[0].offset!==t[0].offset?e[0].offset"}function l(u){o+=""}function c(u){(u.event==="start"?s:l)(u.node)}for(;e.length||t.length;){let u=a();if(o+=Ja(n.substring(r,u[0].offset)),r=u[0].offset,u===e){i.reverse().forEach(l);do c(u.splice(0,1)[0]),u=a();while(u===e&&u.length&&u[0].offset===r);i.reverse().forEach(s)}else u[0].event==="start"?i.push(u[0].node):i.pop(),c(u.splice(0,1)[0])}return o+Ja(n.substr(r))}const Mx={},Cg=e=>{console.error(e)},Ix=(e,...t)=>{console.log(`WARN: ${e}`,...t)},sr=(e,t)=>{Mx[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Mx[`${e}/${t}`]=!0)},_g=Ja,Ox=Yo,Lx=Symbol("nomatch"),cF=function(e){const t=Object.create(null),n=Object.create(null),r=[];let o=!0;const i=/(^(<[^>]+>|\t|)+|\n)/gm,a="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let l={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:null,__emitter:wj};function c(j){return l.noHighlightRe.test(j)}function u(j){let F=j.className+" ";F+=j.parentNode?j.parentNode.className:"";const W=l.languageDetectRe.exec(F);if(W){const V=M(W[1]);return V||(Ix(a.replace("{}",W[1])),Ix("Falling back to no-highlight mode for this block.",j)),V?W[1]:"no-highlight"}return F.split(/\s+/).find(V=>c(V)||M(V))}function d(j,F,W,V){let ee="",re="";typeof F=="object"?(ee=j,W=F.ignoreIllegals,re=F.language,V=void 0):(sr("10.7.0","highlight(lang, code, ...args) has been deprecated."),sr("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),re=j,ee=F);const U={code:ee,language:re};B("before:highlight",U);const K=U.result?U.result:f(U.language,U.code,W,V);return K.code=U.code,B("after:highlight",K),K}function f(j,F,W,V){function ee(pe,ne){const xe=be.case_insensitive?ne[0].toLowerCase():ne[0];return Object.prototype.hasOwnProperty.call(pe.keywords,xe)&&pe.keywords[xe]}function re(){if(!ge.keywords){Se.addText(ye);return}let pe=0;ge.keywordPatternRe.lastIndex=0;let ne=ge.keywordPatternRe.exec(ye),xe="";for(;ne;){xe+=ye.substring(pe,ne.index);const Le=ee(ge,ne);if(Le){const[fe,oe]=Le;if(Se.addText(xe),xe="",Ge+=oe,fe.startsWith("_"))xe+=ne[0];else{const me=be.classNameAliases[fe]||fe;Se.addKeyword(ne[0],me)}}else xe+=ne[0];pe=ge.keywordPatternRe.lastIndex,ne=ge.keywordPatternRe.exec(ye)}xe+=ye.substr(pe),Se.addText(xe)}function U(){if(ye==="")return;let pe=null;if(typeof ge.subLanguage=="string"){if(!t[ge.subLanguage]){Se.addText(ye);return}pe=f(ge.subLanguage,ye,!0,le[ge.subLanguage]),le[ge.subLanguage]=pe.top}else pe=h(ye,ge.subLanguage.length?ge.subLanguage:null);ge.relevance>0&&(Ge+=pe.relevance),Se.addSublanguage(pe.emitter,pe.language)}function K(){ge.subLanguage!=null?U():re(),ye=""}function se(pe){return pe.className&&Se.openNode(be.classNameAliases[pe.className]||pe.className),ge=Object.create(pe,{parent:{value:ge}}),ge}function q(pe,ne,xe){let Le=Pj(pe.endRe,xe);if(Le){if(pe["on:end"]){const fe=new kx(pe);pe["on:end"](ne,fe),fe.isMatchIgnored&&(Le=!1)}if(Le){for(;pe.endsParent&&pe.parent;)pe=pe.parent;return pe}}if(pe.endsWithParent)return q(pe.parent,ne,xe)}function ce(pe){return ge.matcher.regexIndex===0?(ye+=pe[0],1):(ke=!0,0)}function ue(pe){const ne=pe[0],xe=pe.rule,Le=new kx(xe),fe=[xe.__beforeBegin,xe["on:begin"]];for(const oe of fe)if(oe&&(oe(pe,Le),Le.isMatchIgnored))return ce(ne);return xe&&xe.endSameAsBegin&&(xe.endRe=Cj(ne)),xe.skip?ye+=ne:(xe.excludeBegin&&(ye+=ne),K(),!xe.returnBegin&&!xe.excludeBegin&&(ye=ne)),se(xe),xe.returnBegin?0:ne.length}function ie(pe){const ne=pe[0],xe=F.substr(pe.index),Le=q(ge,pe,xe);if(!Le)return Lx;const fe=ge;fe.skip?ye+=ne:(fe.returnEnd||fe.excludeEnd||(ye+=ne),K(),fe.excludeEnd&&(ye=ne));do ge.className&&Se.closeNode(),!ge.skip&&!ge.subLanguage&&(Ge+=ge.relevance),ge=ge.parent;while(ge!==Le.parent);return Le.starts&&(Le.endSameAsBegin&&(Le.starts.endRe=Le.endRe),se(Le.starts)),fe.returnEnd?0:ne.length}function te(){const pe=[];for(let ne=ge;ne!==be;ne=ne.parent)ne.className&&pe.unshift(ne.className);pe.forEach(ne=>Se.openNode(ne))}let de={};function Q(pe,ne){const xe=ne&&ne[0];if(ye+=pe,xe==null)return K(),0;if(de.type==="begin"&&ne.type==="end"&&de.index===ne.index&&xe===""){if(ye+=F.slice(ne.index,ne.index+1),!o){const Le=new Error("0 width match regex");throw Le.languageName=j,Le.badRule=de.rule,Le}return 1}if(de=ne,ne.type==="begin")return ue(ne);if(ne.type==="illegal"&&!W){const Le=new Error('Illegal lexeme "'+xe+'" for mode "'+(ge.className||"")+'"');throw Le.mode=ge,Le}else if(ne.type==="end"){const Le=ie(ne);if(Le!==Lx)return Le}if(ne.type==="illegal"&&xe==="")return 1;if(Re>1e5&&Re>ne.index*3)throw new Error("potential infinite loop, way more iterations than matches");return ye+=xe,xe.length}const be=M(j);if(!be)throw Cg(a.replace("{}",j)),new Error('Unknown language: "'+j+'"');const Te=nF(be,{plugins:r});let we="",ge=V||Te;const le={},Se=new l.__emitter(l);te();let ye="",Ge=0,Pe=0,Re=0,ke=!1;try{for(ge.matcher.considerAll();;){Re++,ke?ke=!1:ge.matcher.considerAll(),ge.matcher.lastIndex=Pe;const pe=ge.matcher.exec(F);if(!pe)break;const ne=F.substring(Pe,pe.index),xe=Q(ne,pe);Pe=pe.index+xe}return Q(F.substr(Pe)),Se.closeAllNodes(),Se.finalize(),we=Se.toHTML(),{relevance:Math.floor(Ge),value:we,language:j,illegal:!1,emitter:Se,top:ge}}catch(pe){if(pe.message&&pe.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:pe.message,context:F.slice(Pe-100,Pe+100),mode:pe.mode},sofar:we,relevance:0,value:_g(F),emitter:Se};if(o)return{illegal:!1,relevance:0,value:_g(F),emitter:Se,language:j,top:ge,errorRaised:pe};throw pe}}function p(j){const F={relevance:0,emitter:new l.__emitter(l),value:_g(j),illegal:!1,top:s};return F.emitter.addText(j),F}function h(j,F){F=F||l.languages||Object.keys(t);const W=p(j),V=F.filter(M).filter(N).map(se=>f(se,j,!1));V.unshift(W);const ee=V.sort((se,q)=>{if(se.relevance!==q.relevance)return q.relevance-se.relevance;if(se.language&&q.language){if(M(se.language).supersetOf===q.language)return 1;if(M(q.language).supersetOf===se.language)return-1}return 0}),[re,U]=ee,K=re;return K.second_best=U,K}function y(j){return l.tabReplace||l.useBR?j.replace(i,F=>F===` -`?l.useBR?"
":F:l.tabReplace?F.replace(/\t/g,l.tabReplace):F):j}function w(j,F,W){const V=F?n[F]:W;j.classList.add("hljs"),V&&j.classList.add(V)}const v={"before:highlightElement":({el:j})=>{l.useBR&&(j.innerHTML=j.innerHTML.replace(/\n/g,"").replace(//g,` -`))},"after:highlightElement":({result:j})=>{l.useBR&&(j.value=j.value.replace(/\n/g,"
"))}},S=/^(<[^>]+>|\t)+/gm,m={"after:highlightElement":({result:j})=>{l.tabReplace&&(j.value=j.value.replace(S,F=>F.replace(/\t/g,l.tabReplace)))}};function C(j){let F=null;const W=u(j);if(c(W))return;B("before:highlightElement",{el:j,language:W}),F=j;const V=F.textContent,ee=W?d(V,{language:W,ignoreIllegals:!0}):h(V);B("after:highlightElement",{el:j,result:ee,text:V}),j.innerHTML=ee.value,w(j,W,ee.language),j.result={language:ee.language,re:ee.relevance,relavance:ee.relevance},ee.second_best&&(j.second_best={language:ee.second_best.language,re:ee.second_best.relevance,relavance:ee.second_best.relevance})}function _(j){j.useBR&&(sr("10.3.0","'useBR' will be removed entirely in v11.0"),sr("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")),l=Ox(l,j)}const R=()=>{if(R.called)return;R.called=!0,sr("10.6.0","initHighlighting() is deprecated. Use highlightAll() instead."),document.querySelectorAll("pre code").forEach(C)};function k(){sr("10.6.0","initHighlightingOnLoad() is deprecated. Use highlightAll() instead."),T=!0}let T=!1;function P(){if(document.readyState==="loading"){T=!0;return}document.querySelectorAll("pre code").forEach(C)}function x(){T&&P()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",x,!1);function $(j,F){let W=null;try{W=F(e)}catch(V){if(Cg("Language definition for '{}' could not be registered.".replace("{}",j)),o)Cg(V);else throw V;W=s}W.name||(W.name=j),t[j]=W,W.rawDefinition=F.bind(null,e),W.aliases&&A(W.aliases,{languageName:j})}function I(j){delete t[j];for(const F of Object.keys(n))n[F]===j&&delete n[F]}function O(){return Object.keys(t)}function D(j){sr("10.4.0","requireLanguage will be removed entirely in v11."),sr("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844");const F=M(j);if(F)return F;throw new Error("The '{}' language is required, but not loaded.".replace("{}",j))}function M(j){return j=(j||"").toLowerCase(),t[j]||t[n[j]]}function A(j,{languageName:F}){typeof j=="string"&&(j=[j]),j.forEach(W=>{n[W.toLowerCase()]=F})}function N(j){const F=M(j);return F&&!F.disableAutodetect}function E(j){j["before:highlightBlock"]&&!j["before:highlightElement"]&&(j["before:highlightElement"]=F=>{j["before:highlightBlock"](Object.assign({block:F.el},F))}),j["after:highlightBlock"]&&!j["after:highlightElement"]&&(j["after:highlightElement"]=F=>{j["after:highlightBlock"](Object.assign({block:F.el},F))})}function L(j){E(j),r.push(j)}function B(j,F){const W=j;r.forEach(function(V){V[W]&&V[W](F)})}function H(j){return sr("10.2.0","fixMarkup will be removed entirely in v11.0"),sr("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"),y(j)}function z(j){return sr("10.7.0","highlightBlock will be removed entirely in v12.0"),sr("10.7.0","Please use highlightElement now."),C(j)}Object.assign(e,{highlight:d,highlightAuto:h,highlightAll:P,fixMarkup:H,highlightElement:C,highlightBlock:z,configure:_,initHighlighting:R,initHighlightingOnLoad:k,registerLanguage:$,unregisterLanguage:I,listLanguages:O,getLanguage:M,registerAliases:A,requireLanguage:D,autoDetection:N,inherit:Ox,addPlugin:L,vuePlugin:aF(e).VuePlugin}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString=oF;for(const j in vu)typeof vu[j]=="object"&&nR(vu[j]);return Object.assign(e,vu),e.addPlugin(v),e.addPlugin(sF),e.addPlugin(m),e};var uF=cF({}),dF=uF,cR={exports:{}};(function(e){(function(){var t;t=e.exports=o,t.format=o,t.vsprintf=r,typeof console<"u"&&typeof console.log=="function"&&(t.printf=n);function n(){console.log(o.apply(null,arguments))}function r(i,a){return o.apply(null,[i].concat(a))}function o(i){for(var a=1,s=[].slice.call(arguments),l=0,c=i.length,u="",d,f=!1,p,h,y=!1,w,v=function(){return s[a++]},S=function(){for(var m="";/\d/.test(i[l]);)m+=i[l++],d=i[l];return m.length>0?parseInt(m):null};ls.relevance&&(s=l),l.relevance>a.relevance&&(s=a,a=l));return s.language&&(a.secondBest=s),a}function vF(e,t){to.registerLanguage(e,t)}function yF(){return to.listLanguages()}function bF(e,t){var n=e,r;t&&(n={},n[e]=t);for(r in n)to.registerAliases(n[r],{languageName:r})}function Io(e){this.options=e,this.rootNode={children:[]},this.stack=[this.rootNode]}function xF(e,t){this.openNode(t),this.addText(e),this.closeNode()}function SF(e,t){var n=this.stack,r=n[n.length-1],o=e.rootNode.children,i=t?{type:"element",tagName:"span",properties:{className:[t]},children:o}:o;r.children=r.children.concat(i)}function wF(e){var t=this.stack,n,r;e!==""&&(n=t[t.length-1],r=n.children[n.children.length-1],r&&r.type==="text"?r.value+=e:n.children.push({type:"text",value:e}))}function CF(e){var t=this.stack,n=this.options.classPrefix+e,r=t[t.length-1],o={type:"element",tagName:"span",properties:{className:[n]},children:[]};r.children.push(o),t.push(o)}function _F(){this.stack.pop()}function RF(){return""}function dR(){}var Rg,Ax;function TF(){if(Ax)return Rg;Ax=1;function e(r){return r?typeof r=="string"?r:r.source:null}function t(...r){return r.map(i=>e(i)).join("")}function n(r){const o={},i={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[o]}]};Object.assign(o,{className:"variable",variants:[{begin:t(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},i]});const a={className:"subst",begin:/\$\(/,end:/\)/,contains:[r.BACKSLASH_ESCAPE]},s={begin:/<<-?\s*(?=\w+)/,starts:{contains:[r.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},l={className:"string",begin:/"/,end:/"/,contains:[r.BACKSLASH_ESCAPE,o,a]};a.contains.push(l);const c={className:"",begin:/\\"/},u={className:"string",begin:/'/,end:/'/},d={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},r.NUMBER_MODE,o]},f=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],p=r.SHEBANG({binary:`(${f.join("|")})`,relevance:10}),h={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[r.inherit(r.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/,keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp"},contains:[p,r.SHEBANG(),h,d,r.HASH_COMMENT_MODE,s,l,c,u,o]}}return Rg=n,Rg}var Tg,Nx;function PF(){if(Nx)return Tg;Nx=1;var e="[0-9](_*[0-9])*",t=`\\.(${e})`,n="[0-9a-fA-F](_*[0-9a-fA-F])*",r={className:"number",variants:[{begin:`(\\b(${e})((${t})|\\.)?|(${t}))[eE][+-]?(${e})[fFdD]?\\b`},{begin:`\\b(${e})((${t})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${t})[fFdD]?\\b`},{begin:`\\b(${e})[fFdD]\\b`},{begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?(${e})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function o(i){var a="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",s=a+"(<"+a+"(\\s*,\\s*"+a+")*>)?",l="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",c={className:"meta",begin:"@"+a,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]};const u=r;return{name:"Java",aliases:["jsp"],keywords:l,illegal:/<\/|#/,contains:[i.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE,i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface enum",end:/[{;=]/,excludeEnd:!0,relevance:1,keywords:"class interface enum",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},i.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"class",begin:"record\\s+"+i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,excludeEnd:!0,end:/[{;=]/,keywords:l,contains:[{beginKeywords:"record"},{begin:i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[i.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[i.C_BLOCK_COMMENT_MODE]},i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE]},{className:"function",begin:"("+s+"\\s+)+"+i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:l,contains:[{begin:i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[i.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[c,i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,i.C_BLOCK_COMMENT_MODE]},i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE]},u,c]}}return Tg=o,Tg}const Dx="[A-Za-z$_][0-9A-Za-z$_]*",kF=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],$F=["true","false","null","undefined","NaN","Infinity"],EF=["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],MF=["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],IF=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],OF=["arguments","this","super","console","window","document","localStorage","module","global"],LF=[].concat(IF,OF,EF,MF);function AF(e){return e?typeof e=="string"?e:e.source:null}function jx(e){return $m("(?=",e,")")}function $m(...e){return e.map(n=>AF(n)).join("")}function NF(e){const t=(C,{after:_})=>{const R="",end:""},o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(C,_)=>{const R=C[0].length+C.index,k=C.input[R];if(k==="<"){_.ignoreMatch();return}k===">"&&(t(C,{after:R})||_.ignoreMatch())}},i={$pattern:Dx,keyword:kF,literal:$F,built_in:LF},a="[0-9](_?[0-9])*",s=`\\.(${a})`,l="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",c={className:"number",variants:[{begin:`(\\b(${l})((${s})|\\.)?|(${s}))[eE][+-]?(${a})\\b`},{begin:`\\b(${l})\\b((${s})\\b|\\.)?|(${s})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",end:"\\}",keywords:i,contains:[]},d={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},f={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"css"}},p={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,u]},y={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",end:"\\}",relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},w=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,f,p,c,e.REGEXP_MODE];u.contains=w.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(w)});const v=[].concat(y,u.contains),S=v.concat([{begin:/\(/,end:/\)/,keywords:i,contains:["self"].concat(v)}]),m={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:S};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:S},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,f,p,y,c,{begin:$m(/[{,\n]\s*/,jx($m(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,n+"\\s*:"))),relevance:0,contains:[{className:"attr",begin:n+jx("\\s*:"),relevance:0}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[y,e.REGEXP_MODE,{className:"function",begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:S}]}]},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{variants:[{begin:r.begin,end:r.end},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:i,contains:["self",e.inherit(e.TITLE_MODE,{begin:n}),m],illegal:/%/},{beginKeywords:"while if switch catch for"},{className:"function",begin:e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,contains:[m,e.inherit(e.TITLE_MODE,{begin:n})]},{variants:[{begin:"\\."+n},{begin:"\\$"+n}],relevance:0},{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,end:/[{;]/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:n}),"self",m]},{begin:"(get|set)\\s+(?="+n+"\\()",end:/\{/,keywords:"get set",contains:[e.inherit(e.TITLE_MODE,{begin:n}),{begin:/\(\)/},m]},{begin:/\$[(.]/}]}}var DF=NF;const jF=$o(DF);var Pg,Fx;function FF(){if(Fx)return Pg;Fx=1;function e(o){return o?typeof o=="string"?o:o.source:null}function t(o){return n("(?=",o,")")}function n(...o){return o.map(a=>e(a)).join("")}function r(o){const c={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},u={className:"meta",begin:/^(>>>|\.\.\.) /},d={className:"subst",begin:/\{/,end:/\}/,keywords:c,illegal:/#/},f={begin:/\{\{/,relevance:0},p={className:"string",contains:[o.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[o.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[o.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[o.BACKSLASH_ESCAPE,u,f,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[o.BACKSLASH_ESCAPE,u,f,d]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[o.BACKSLASH_ESCAPE,f,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[o.BACKSLASH_ESCAPE,f,d]},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE]},h="[0-9](_?[0-9])*",y=`(\\b(${h}))?\\.(${h})|\\b(${h})\\.`,w={className:"number",relevance:0,variants:[{begin:`(\\b(${h})|(${y}))[eE][+-]?(${h})[jJ]?\\b`},{begin:`(${y})[jJ]?`},{begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${h})[jJ]\\b`}]},v={className:"comment",begin:t(/# type:/),end:/$/,keywords:c,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},S={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:["self",u,w,p,o.HASH_COMMENT_MODE]}]};return d.contains=[p,w,u],{name:"Python",aliases:["py","gyp","ipython"],keywords:c,illegal:/(<\/|->|\?)|=>/,contains:[u,w,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},p,v,o.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[o.UNDERSCORE_TITLE_MODE,S,{begin:/->/,endsWithParent:!0,keywords:c}]},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[w,S,p]}]}}return Pg=r,Pg}var Ic=yj(fa,{});Ic.registerLanguage=fa.registerLanguage;var fR={},pR={exports:{}};(function(e){function t(n){return n&&n.__esModule?n:{default:n}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(pR);var H1=pR.exports;(function(e){var t=H1;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(FF());e.default=n.default})(fR);const BF=$o(fR);var gR={};(function(e){var t=H1;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(PF());e.default=n.default})(gR);const zF=$o(gR);var hR={};(function(e){var t=H1;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(TF());e.default=n.default})(hR);const HF=$o(hR);Ic.registerLanguage(bs.JS,jF);Ic.registerLanguage(bs.PY,BF);Ic.registerLanguage(bs.JAVA,zF);Ic.registerLanguage(bs.BASH,HF);rt.forwardRef(e=>{const{supportSelectAll:t=!0,selectAllOptionLabel:n="",options:r=[],selectState:o,setSelectState:i,inputParams:a={},onChange:s,...l}=e,{placeholder:c="",...u}=a,[d,f]=rt.useState(!1),p=zt(),h=()=>{f(!1)},y=S=>{const m=!o.selectAll;i(C=>({selectAll:!C.selectAll,selectedItems:C.selectAll?[]:r})),s&&s(S,m?r:[],"selectOption")},w=(S,m,C)=>{switch(C){case"selectOption":i(_=>({..._,selectAll:m.length===r.length,selectedItems:m}));break;case"removeOption":i({selectAll:!1,selectedItems:m})}},v=b.useMemo(()=>{if(!(o.selectedItems.length>0||o.selectAll))return c},[o,c]);return g.jsx(rO,{onClickAway:h,children:g.jsx(Lr,{children:g.jsx(Z_,{options:r,open:d,sx:{"& .MuiBox-root":{"& .MuiFormControl-root":{"div.MuiOutlinedInput-root":{padding:"6px 28px 6px 12px"},"& .MuiInputBase-input":{maxHeight:"24px",height:"24px"},".Mui-error fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${p.red.red2}`,boxShadow:`0px 0px 0px 4px ${p.red.red4}, ${pr}`}}},".MuiAutocomplete-tag":{margin:"3px 4px"}},multiple:!0,ChipProps:{size:"small",deleteIcon:g.jsx(O1,{size:14},void 0),sx:{display:"flex",alignItems:"center",borderRadius:"6px",backgroundColor:p.black.black4,padding:"2px 8px",gap:"8px",height:"20px",".MuiChip-deleteIcon":{margin:0,color:p.black.black1},".MuiChip-label":{padding:0,fontSize:"14px",lineHeight:"20px",fontWeight:400,display:"inline-block",color:p.black.black1},"&:hover":{backgroundColor:p.black.black5,".MuiChip-deleteIcon":{color:p.black.black2}}}},renderOption:(S,m,C)=>{const{selected:_}=C;return m!=null&&m.generateCustomEle?m.generateCustomEle():g.jsxs("li",{...S,children:[g.jsx(Qd,{sx:{padding:"0 8px 0 0"},checked:_||o.selectAll},void 0),g.jsxs(Lr,{sx:{display:"flex",alignItems:"center",width:"100%",justifyContent:"space-between"},children:[g.jsx(mt,{variant:"body1Regular",component:"div",children:m.label},void 0),m.desc&&g.jsx(mt,{variant:"body3Regular",sx:{marginLeft:"8px",color:p.black.black3},children:m.desc},void 0)]},void 0)]},void 0)},onChange:(S,m,C)=>{w(S,m,C),s&&s(S,m,C)},onClose:(S,m)=>{m==="escape"&&f(!1)},onOpen:()=>{f(!0)},PopperComponent:S=>{const{children:m,style:C={},..._}=S;return g.jsx(kc,{..._,disablePortal:!0,onMouseDown:R=>R.preventDefault(),style:{...C,boxShadow:aa,border:`1px solid ${p.stroke.stroke1}`,borderRadius:"8px",backgroundColor:"#fff"},placement:"bottom",modifiers:[{name:"offset",options:{offset:[0,8]}}],children:g.jsxs(g.Fragment,{children:[m,g.jsx(Lr,{sx:{width:"100%",height:"1px",backgroundColor:p.black.black4}},void 0),t&&g.jsxs(Lr,{sx:{padding:"6px 16px",display:"flex",alignItems:"center",marginBottom:"4px","&:hover":{cursor:"pointer",color:p.blue.blue1,backgroundColor:p.black.black5}},onClick:y,children:[g.jsx(Qd,{sx:{padding:"0 16px 0 0"},checked:o.selectAll,indeterminate:!o.selectAll&&o.selectedItems.length>0},void 0),g.jsx(mt,{children:n||"Select all"},void 0)]},void 0)]},void 0)},void 0)},PaperComponent:S=>g.jsx(Is,{sx:{padding:0,boxShadow:"none",borderRadius:"8px","ul.MuiAutocomplete-listbox":{borderRadius:"8px",padding:0,"&::-webkit-scrollbar-track":{width:"3px",background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:p.black.black4},"& li":{margin:"4px 0"},"& > :first-child":{marginTop:"12px"},'& .MuiAutocomplete-option[aria-selected="true"]':{backgroundColor:"#fff","&.Mui-focused":{backgroundColor:"transparent"},"&:hover":{backgroundColor:p.black.black5},"& > * div.MuiTypography-body1Regular":{color:p.blue.blue1}},'.MuiAutocomplete-option[aria-selected="false"]':{backgroundColor:"transparent","&:hover":{backgroundColor:p.black.black5}}}},...S},void 0),isOptionEqualToValue:(S,m)=>S.value===m.value,value:o.selectedItems,inputParams:{placeholder:v,...u},...l},void 0)},void 0)},void 0)});function VF(e,t,n=void 0){const r={};for(const o in e){const i=e[o];let a="",s=!0;for(let l=0;l{t.current=e},[e]),t.current}const Bx=()=>{};function KF(e){const[,t]=b.useState(),{registerDescendant:n=Bx,unregisterDescendant:r=Bx,descendants:o=[],parentId:i=null}=b.useContext(mR),a=UF(o,c=>c.element===e.element),s=qF(o),l=o.some((c,u)=>s&&s[u]&&s[u].element!==c.element);return l9(()=>{if(e.element)return n(Ln({},e,{index:a})),()=>{r(e.element)};t({})},[n,r,a,l,e]),{parentId:i,index:a}}function ZF(e){const{children:t,id:n}=e,[r,o]=b.useState([]),i=b.useCallback(l=>{let{element:c}=l,u=Ms(l,WF);o(d=>{if(d.length===0)return[Ln({},u,{element:c,index:0})];const f=GF(d,c);let p;if(d[f]&&d[f].element===c)p=d;else{const h=Ln({},u,{element:c,index:f});p=d.slice(),p.splice(f,0,h)}return p.forEach((h,y)=>{h.index=y}),p})},[]),a=b.useCallback(l=>{o(c=>c.filter(u=>l!==u.element))},[]),s=b.useMemo(()=>({descendants:r,registerDescendant:i,unregisterDescendant:a,parentId:n}),[r,i,a,n]);return g.jsx(mR.Provider,{value:s,children:t})}const QF={instance:null,multiSelect:!1,disabledItemsFocusable:!1,treeId:void 0,icons:{defaultCollapseIcon:null,defaultExpandIcon:null,defaultParentIcon:null,defaultEndIcon:null}},YF=b.createContext(QF),vR=()=>b.useContext(YF);function XF(e){const{instance:t,multiSelect:n}=vR(),r=t?t.isNodeExpandable(e):!1,o=t?t.isNodeExpanded(e):!1,i=t?t.isNodeFocused(e):!1,a=t?t.isNodeSelected(e):!1,s=t?t.isNodeDisabled(e):!1;return{disabled:s,expanded:o,selected:a,focused:i,handleExpansion:d=>{if(t&&!s){i||t.focusNode(d,e);const f=n&&(d.shiftKey||d.ctrlKey||d.metaKey);r&&!(f&&t.isNodeExpanded(e))&&t.toggleNodeExpansion(d,e)}},handleSelection:d=>{t&&!s&&(i||t.focusNode(d,e),n&&(d.shiftKey||d.ctrlKey||d.metaKey)?d.shiftKey?t.selectRange(d,{end:e}):t.selectNode(d,e,!0):t.selectNode(d,e))},preventSelection:d=>{(d.shiftKey||d.ctrlKey||d.metaKey||s)&&d.preventDefault()}}}const JF=["classes","className","displayIcon","expansionIcon","icon","label","nodeId","onClick","onMouseDown"],yR=b.forwardRef(function(t,n){const{classes:r,className:o,displayIcon:i,expansionIcon:a,icon:s,label:l,nodeId:c,onClick:u,onMouseDown:d}=t,f=Ms(t,JF),{disabled:p,expanded:h,selected:y,focused:w,handleExpansion:v,handleSelection:S,preventSelection:m}=XF(c),C=s||a||i,_=k=>{m(k),d&&d(k)},R=k=>{v(k),S(k),u&&u(k)};return g.jsxs("div",Ln({},f,{className:ve(o,r.root,h&&r.expanded,y&&r.selected,w&&r.focused,p&&r.disabled),onClick:R,onMouseDown:_,ref:n,children:[g.jsx("div",{className:r.iconContainer,children:C}),g.jsx("div",{className:r.label,children:l})]}))});function eB(e){return G_("MuiTreeItem",e)}const Xt=p9("MuiTreeItem",["root","group","content","expanded","selected","focused","disabled","iconContainer","label"]),tB=["children","className","collapseIcon","ContentComponent","ContentProps","endIcon","expandIcon","disabled","icon","id","label","nodeId","onClick","onMouseDown","TransitionComponent","TransitionProps"],nB=e=>{const{classes:t}=e;return VF({root:["root"],content:["content"],expanded:["expanded"],selected:["selected"],focused:["focused"],disabled:["disabled"],iconContainer:["iconContainer"],label:["label"],group:["group"]},eB,t)},rB=J("li",{name:"MuiTreeItem",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),oB=J(yR,{name:"MuiTreeItem",slot:"Content",overridesResolver:(e,t)=>[t.content,t.iconContainer&&{[`& .${Xt.iconContainer}`]:t.iconContainer},t.label&&{[`& .${Xt.label}`]:t.label}]})(({theme:e})=>({padding:"0 8px",width:"100%",boxSizing:"border-box",display:"flex",alignItems:"center",cursor:"pointer",WebkitTapHighlightColor:"transparent","&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Xt.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"},[`&.${Xt.focused}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${Xt.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${Xt.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`& .${Xt.iconContainer}`]:{marginRight:4,width:15,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}},[`& .${Xt.label}`]:Ln({paddingLeft:4,width:"100%",boxSizing:"border-box",minWidth:0,position:"relative"},e.typography.body1)})),iB=J(ps,{name:"MuiTreeItem",slot:"Group",overridesResolver:(e,t)=>t.group})({margin:0,padding:0,marginLeft:17}),aB=b.forwardRef(function(t,n){const r=mM({props:t,name:"MuiTreeItem"}),{children:o,className:i,collapseIcon:a,ContentComponent:s=yR,ContentProps:l,endIcon:c,expandIcon:u,disabled:d,icon:f,id:p,label:h,nodeId:y,onClick:w,onMouseDown:v,TransitionComponent:S=ps,TransitionProps:m}=r,C=Ms(r,tB),{icons:_,multiSelect:R,disabledItemsFocusable:k,treeId:T,instance:P}=vR();let x;p!=null?x=p:T&&y&&(x=`${T}-${y}`);const[$,I]=b.useState(null),O=b.useRef(null),D=c9(I,n),M=b.useMemo(()=>({element:$,id:y}),[y,$]),{index:A,parentId:N}=KF(M),E=!!(Array.isArray(o)?o.length:o),L=P?P.isNodeExpanded(y):!1,B=P?P.isNodeFocused(y):!1,H=P?P.isNodeSelected(y):!1,z=P?P.isNodeDisabled(y):!1,j=Ln({},r,{expanded:L,focused:B,selected:H,disabled:z}),F=nB(j);let W,V;E&&(L?V=a||_.defaultCollapseIcon:V=u||_.defaultExpandIcon),E?W=_.defaultParentIcon:W=c||_.defaultEndIcon,b.useEffect(()=>{if(P&&A!==-1)return P.updateNode({id:y,idAttribute:x,index:A,parentId:N,expandable:E,disabled:d}),()=>P.removeNode(y)},[P,N,A,y,E,d,x]),b.useEffect(()=>{if(P&&h){var U,K;return P.mapFirstChar(y,((U=(K=O.current)==null?void 0:K.textContent)!=null?U:"").substring(0,1).toLowerCase())}},[P,y,h]);let ee;R?ee=H:H&&(ee=!0);function re(U){if(U.target===U.currentTarget){let se;typeof U.target.getRootNode=="function"?se=U.target.getRootNode():se=a9(U.target),se.getElementById(T).focus({preventScroll:!0})}const K=!k&&z;P&&!B&&U.currentTarget===U.target&&!K&&P.focusNode(U,y)}return g.jsxs(rB,Ln({className:ve(F.root,i),role:"treeitem","aria-expanded":E?L:void 0,"aria-selected":ee,"aria-disabled":z||void 0,id:x,tabIndex:-1},C,{ownerState:j,onFocus:re,ref:D,children:[g.jsx(oB,Ln({as:s,ref:O,classes:{root:F.content,expanded:F.expanded,selected:F.selected,focused:F.focused,disabled:F.disabled,iconContainer:F.iconContainer,label:F.label},label:h,nodeId:y,onClick:w,onMouseDown:v,icon:f,expansionIcon:V,displayIcon:W,ownerState:j},l)),o&&g.jsx(ZF,{id:y,children:g.jsx(iB,Ln({as:S,unmountOnExit:!0,className:F.group,in:L,component:"ul",role:"group"},m,{children:o}))})]}))});var zx;(function(e){e.LOADING="loading",e.NORMAL="normal",e.NONE="none"})(zx||(zx={}));J(e=>g.jsx(aB,{...e},void 0))(({theme:e})=>({[`& .${Xt.content}`]:{height:"32px",marginBottom:"8px",color:e.black.black1,padding:"4px",borderRadius:"6px",[`&.${Xt.selected}`]:{backgroundColor:e.blue.blue4,[`&.${Xt.focused}`]:{backgroundColor:e.blue.blue4},[`& .${Xt.label},.MuiTypography-root `]:{color:e.blue.blue1},[`& .${Xt.label}`]:{svg:{path:{fill:e.blue.blue1}}},[`& .${Xt.iconContainer}`]:{svg:{path:{fill:e.black.black1}}}},"&:hover":{backgroundColor:e.blue.blue4},[`& .${Xt.label}`]:{color:e.black.black3,fontSize:"12px",paddingLeft:0,svg:{path:{fill:"currentColor"}},".highlight":{color:e.black.black3}},[`& .${Xt.iconContainer}`]:{marginRight:e.spacing(.5),width:"auto",svg:{path:{fill:e.black.black2}}}},[`& .${Xt.group}`]:{position:"relative",top:"-10px",margin:"12px 0 0px 23px",paddingLeft:6,borderLeft:`1px solid ${e.stroke.stroke1}`,".loadingNode":{paddingLeft:8},[`& .${Xt.content}`]:{height:"28px",marginBottom:"4px",".MuiTypography-root":{fontSize:"13px"},svg:{path:{color:e.black.black2}}}}}));const bR=['"Helvetica Neue"','"Microsoft YaHei"',"-apple-system","sans-serif"],sB=['"Pingfang SC"',...bR],lB=['"Inter"',...bR],xR=e=>(e==="enUS"?lB:sB).join(","),Ht=(e,t,n)=>{const r=xR(n),o={h1:{fontSize:"22px",lineHeight:"150%"},h2:{fontSize:"18px",lineHeight:"150%"},h3:{fontSize:"16px",lineHeight:"150%"},h4:{fontSize:"14px",lineHeight:"135%"},body1:{fontSize:"14px",lineHeight:"135%"},body2:{fontSize:"13px",lineHeight:"135%"},body3:{fontSize:"12px",lineHeight:"135%"},body4:{fontSize:"11px",lineHeight:"135%"}},i={regular:{fontWeight:400},medium:{fontWeight:500},semibold:{fontWeight:600},bold:{fontWeight:n==="enUS"?700:600}};return{...o[e],...i[t],fontFamily:r}},cB=e=>({h1Regular:Ht("h1","regular",e),h1Medium:Ht("h1","medium",e),h1Semibold:Ht("h1","semibold",e),h1Bold:Ht("h1","bold",e),h2Regular:Ht("h2","regular",e),h2Medium:Ht("h2","medium",e),h2Semibold:Ht("h2","semibold",e),h3Regular:Ht("h3","regular",e),h3Medium:Ht("h3","medium",e),h3Semibold:Ht("h3","semibold",e),h4Medium:Ht("h4","medium",e),h4Semibold:Ht("h4","semibold",e),body1Regular:Ht("body1","regular",e),body1Medium:Ht("body1","medium",e),body2Regular:Ht("body2","regular",e),body2Medium:Ht("body2","medium",e),body3Regular:Ht("body3","regular",e),body3Medium:Ht("body3","medium",e),body4Regular:Ht("body4","regular",e)}),Vt={blue:{blue1:"#3f46ff",blue2:"#6066fd",blue3:"#dbe0ff",blue4:"#f2f3ff",blue5:"#f7f8ff",dark1:"#181eca",dark2:"#141c63",light1:"#ebedff"},black:{black1:"#1d2939",black2:"#5d6d85",black3:"#a6b1be",black4:"#f0f2f4",black5:"#f9f9fb"},green:{green1:"#166434",green2:"#49de80",green3:"#adf8c9",green4:"#effdf4"},yellow:{yellow1:"#854d0f",yellow2:"#ffb800",yellow3:"#ffe7a9",yellow4:"#fff8e2"},red:{red1:"#991b1b",red2:"#f26868",red3:"#fbc6c6",red4:"#fff1f1"},stroke:{stroke1:"#e4eaf1",stroke2:"#cdd8e8"},gradient:"linear-gradient(118deg,#00ef8b 0.51%,#0044e4 36.98%,#cd3fff 72.73%)"},uB=e=>{const t=xR(e),n=cB(e);return{typography:{fontFamily:t,...n}}},dB=(e="enUS")=>sp({palette:{primary:{main:Vt.blue.blue1,dark:Vt.blue.dark1,light:Vt.blue.blue2},success:{dark:Vt.green.green1,main:Vt.green.green2,light:Vt.green.green3},info:{dark:Vt.blue.blue1,main:Vt.blue.blue2,light:Vt.blue.blue3},warning:{dark:Vt.yellow.yellow1,main:Vt.yellow.yellow2,light:Vt.yellow.yellow3},error:{dark:Vt.red.red1,main:Vt.red.red2,light:Vt.red.red3},text:{primary:Vt.black.black1,secondary:Vt.black.black2,disabled:Vt.black.black3}},language:e,components:{MuiButton:{variants:[{props:{variant:"textGhost"},style:{}}]},MuiTypography:{defaultProps:{color:"textPrimary",variant:"body1Regular",variantMapping:{h1Regular:"h1",h1Medium:"h1",h1Semibold:"h1",h1Bold:"h1",h2Regular:"h2",h2Medium:"h2",h2Semibold:"h2",h3Regular:"h3",h3Medium:"h3",h3Semibold:"h3",h4Medium:"h4",h4Semibold:"h4",body1Regular:"p",body1Medium:"span",body2Regular:"span",body2Medium:"span",body3Regular:"span",body3Medium:"span",body4Regular:"span"}}}},spacing:4,...Vt,...uB(e)},SD[e]);/** - * table-core - * - * Copyright (c) TanStack - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Xo(e,t){return typeof e=="function"?e(t):e}function tr(e,t){return n=>{t.setState(r=>({...r,[e]:Xo(n,r[e])}))}}function Sp(e){return e instanceof Function}function fB(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function pB(e,t){const n=[],r=o=>{o.forEach(i=>{n.push(i);const a=t(i);a!=null&&a.length&&r(a)})};return r(e),n}function Me(e,t,n){let r=[],o;return i=>{let a;n.key&&n.debug&&(a=Date.now());const s=e(i);if(!(s.length!==r.length||s.some((u,d)=>r[d]!==u)))return o;r=s;let c;if(n.key&&n.debug&&(c=Date.now()),o=t(...s),n==null||n.onChange==null||n.onChange(o),n.key&&n.debug&&n!=null&&n.debug()){const u=Math.round((Date.now()-a)*100)/100,d=Math.round((Date.now()-c)*100)/100,f=d/16,p=(h,y)=>{for(h=String(h);h.length{var o;return(o=e==null?void 0:e.debugAll)!=null?o:e[t]},key:!1,onChange:r}}function gB(e,t,n,r){const o=()=>{var a;return(a=i.getValue())!=null?a:e.options.renderFallbackValue},i={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:o,getContext:Me(()=>[e,n,t,i],(a,s,l,c)=>({table:a,column:s,row:l,cell:c,getValue:c.getValue,renderValue:c.renderValue}),Ie(e.options,"debugCells"))};return e._features.forEach(a=>{a.createCell==null||a.createCell(i,n,t,e)},{}),i}function hB(e,t,n,r){var o,i;const s={...e._getDefaultColumnDef(),...t},l=s.accessorKey;let c=(o=(i=s.id)!=null?i:l?typeof String.prototype.replaceAll=="function"?l.replaceAll(".","_"):l.replace(/\./g,"_"):void 0)!=null?o:typeof s.header=="string"?s.header:void 0,u;if(s.accessorFn?u=s.accessorFn:l&&(l.includes(".")?u=f=>{let p=f;for(const y of l.split(".")){var h;p=(h=p)==null?void 0:h[y]}return p}:u=f=>f[s.accessorKey]),!c)throw new Error;let d={id:`${String(c)}`,accessorFn:u,parent:r,depth:n,columnDef:s,columns:[],getFlatColumns:Me(()=>[!0],()=>{var f;return[d,...(f=d.columns)==null?void 0:f.flatMap(p=>p.getFlatColumns())]},Ie(e.options,"debugColumns")),getLeafColumns:Me(()=>[e._getOrderColumnsFn()],f=>{var p;if((p=d.columns)!=null&&p.length){let h=d.columns.flatMap(y=>y.getLeafColumns());return f(h)}return[d]},Ie(e.options,"debugColumns"))};for(const f of e._features)f.createColumn==null||f.createColumn(d,e);return d}const gn="debugHeaders";function Hx(e,t,n){var r;let i={id:(r=n.id)!=null?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const a=[],s=l=>{l.subHeaders&&l.subHeaders.length&&l.subHeaders.map(s),a.push(l)};return s(i),a},getContext:()=>({table:e,header:i,column:t})};return e._features.forEach(a=>{a.createHeader==null||a.createHeader(i,e)}),i}const mB={createTable:e=>{e.getHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,o)=>{var i,a;const s=(i=r==null?void 0:r.map(d=>n.find(f=>f.id===d)).filter(Boolean))!=null?i:[],l=(a=o==null?void 0:o.map(d=>n.find(f=>f.id===d)).filter(Boolean))!=null?a:[],c=n.filter(d=>!(r!=null&&r.includes(d.id))&&!(o!=null&&o.includes(d.id)));return yu(t,[...s,...c,...l],e)},Ie(e.options,gn)),e.getCenterHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,o)=>(n=n.filter(i=>!(r!=null&&r.includes(i.id))&&!(o!=null&&o.includes(i.id))),yu(t,n,e,"center")),Ie(e.options,gn)),e.getLeftHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var o;const i=(o=r==null?void 0:r.map(a=>n.find(s=>s.id===a)).filter(Boolean))!=null?o:[];return yu(t,i,e,"left")},Ie(e.options,gn)),e.getRightHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var o;const i=(o=r==null?void 0:r.map(a=>n.find(s=>s.id===a)).filter(Boolean))!=null?o:[];return yu(t,i,e,"right")},Ie(e.options,gn)),e.getFooterGroups=Me(()=>[e.getHeaderGroups()],t=>[...t].reverse(),Ie(e.options,gn)),e.getLeftFooterGroups=Me(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),Ie(e.options,gn)),e.getCenterFooterGroups=Me(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),Ie(e.options,gn)),e.getRightFooterGroups=Me(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),Ie(e.options,gn)),e.getFlatHeaders=Me(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,gn)),e.getLeftFlatHeaders=Me(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,gn)),e.getCenterFlatHeaders=Me(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,gn)),e.getRightFlatHeaders=Me(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,gn)),e.getCenterLeafHeaders=Me(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ie(e.options,gn)),e.getLeftLeafHeaders=Me(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ie(e.options,gn)),e.getRightLeafHeaders=Me(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ie(e.options,gn)),e.getLeafHeaders=Me(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var o,i,a,s,l,c;return[...(o=(i=t[0])==null?void 0:i.headers)!=null?o:[],...(a=(s=n[0])==null?void 0:s.headers)!=null?a:[],...(l=(c=r[0])==null?void 0:c.headers)!=null?l:[]].map(u=>u.getLeafHeaders()).flat()},Ie(e.options,gn))}};function yu(e,t,n,r){var o,i;let a=0;const s=function(f,p){p===void 0&&(p=1),a=Math.max(a,p),f.filter(h=>h.getIsVisible()).forEach(h=>{var y;(y=h.columns)!=null&&y.length&&s(h.columns,p+1)},0)};s(e);let l=[];const c=(f,p)=>{const h={depth:p,id:[r,`${p}`].filter(Boolean).join("_"),headers:[]},y=[];f.forEach(w=>{const v=[...y].reverse()[0],S=w.column.depth===h.depth;let m,C=!1;if(S&&w.column.parent?m=w.column.parent:(m=w.column,C=!0),v&&(v==null?void 0:v.column)===m)v.subHeaders.push(w);else{const _=Hx(n,m,{id:[r,p,m.id,w==null?void 0:w.id].filter(Boolean).join("_"),isPlaceholder:C,placeholderId:C?`${y.filter(R=>R.column===m).length}`:void 0,depth:p,index:y.length});_.subHeaders.push(w),y.push(_)}h.headers.push(w),w.headerGroup=h}),l.push(h),p>0&&c(y,p-1)},u=t.map((f,p)=>Hx(n,f,{depth:a,index:p}));c(u,a-1),l.reverse();const d=f=>f.filter(h=>h.column.getIsVisible()).map(h=>{let y=0,w=0,v=[0];h.subHeaders&&h.subHeaders.length?(v=[],d(h.subHeaders).forEach(m=>{let{colSpan:C,rowSpan:_}=m;y+=C,v.push(_)})):y=1;const S=Math.min(...v);return w=w+S,h.colSpan=y,h.rowSpan=w,{colSpan:y,rowSpan:w}});return d((o=(i=l[0])==null?void 0:i.headers)!=null?o:[]),l}const vB=(e,t,n,r,o,i,a)=>{let s={id:t,index:r,original:n,depth:o,parentId:a,_valuesCache:{},_uniqueValuesCache:{},getValue:l=>{if(s._valuesCache.hasOwnProperty(l))return s._valuesCache[l];const c=e.getColumn(l);if(c!=null&&c.accessorFn)return s._valuesCache[l]=c.accessorFn(s.original,r),s._valuesCache[l]},getUniqueValues:l=>{if(s._uniqueValuesCache.hasOwnProperty(l))return s._uniqueValuesCache[l];const c=e.getColumn(l);if(c!=null&&c.accessorFn)return c.columnDef.getUniqueValues?(s._uniqueValuesCache[l]=c.columnDef.getUniqueValues(s.original,r),s._uniqueValuesCache[l]):(s._uniqueValuesCache[l]=[s.getValue(l)],s._uniqueValuesCache[l])},renderValue:l=>{var c;return(c=s.getValue(l))!=null?c:e.options.renderFallbackValue},subRows:[],getLeafRows:()=>pB(s.subRows,l=>l.subRows),getParentRow:()=>s.parentId?e.getRow(s.parentId,!0):void 0,getParentRows:()=>{let l=[],c=s;for(;;){const u=c.getParentRow();if(!u)break;l.push(u),c=u}return l.reverse()},getAllCells:Me(()=>[e.getAllLeafColumns()],l=>l.map(c=>gB(e,s,c,c.id)),Ie(e.options,"debugRows")),_getAllCellsByColumnId:Me(()=>[s.getAllCells()],l=>l.reduce((c,u)=>(c[u.column.id]=u,c),{}),Ie(e.options,"debugRows"))};for(let l=0;l{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},SR=(e,t,n)=>{var r,o;const i=n==null||(r=n.toString())==null?void 0:r.toLowerCase();return!!(!((o=e.getValue(t))==null||(o=o.toString())==null||(o=o.toLowerCase())==null)&&o.includes(i))};SR.autoRemove=e=>jr(e);const wR=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};wR.autoRemove=e=>jr(e);const CR=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===(n==null?void 0:n.toLowerCase())};CR.autoRemove=e=>jr(e);const _R=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};_R.autoRemove=e=>jr(e)||!(e!=null&&e.length);const RR=(e,t,n)=>!n.some(r=>{var o;return!((o=e.getValue(t))!=null&&o.includes(r))});RR.autoRemove=e=>jr(e)||!(e!=null&&e.length);const TR=(e,t,n)=>n.some(r=>{var o;return(o=e.getValue(t))==null?void 0:o.includes(r)});TR.autoRemove=e=>jr(e)||!(e!=null&&e.length);const PR=(e,t,n)=>e.getValue(t)===n;PR.autoRemove=e=>jr(e);const kR=(e,t,n)=>e.getValue(t)==n;kR.autoRemove=e=>jr(e);const V1=(e,t,n)=>{let[r,o]=n;const i=e.getValue(t);return i>=r&&i<=o};V1.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,o=typeof n!="number"?parseFloat(n):n,i=t===null||Number.isNaN(r)?-1/0:r,a=n===null||Number.isNaN(o)?1/0:o;if(i>a){const s=i;i=a,a=s}return[i,a]};V1.autoRemove=e=>jr(e)||jr(e[0])&&jr(e[1]);const go={includesString:SR,includesStringSensitive:wR,equalsString:CR,arrIncludes:_R,arrIncludesAll:RR,arrIncludesSome:TR,equals:PR,weakEquals:kR,inNumberRange:V1};function jr(e){return e==null||e===""}const bB={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:tr("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);return typeof r=="string"?go.includesString:typeof r=="number"?go.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?go.equals:Array.isArray(r)?go.arrIncludes:go.weakEquals},e.getFilterFn=()=>{var n,r;return Sp(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(r=t.options.filterFns)==null?void 0:r[e.columnDef.filterFn])!=null?n:go[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,r,o;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((o=t.options.enableFilters)!=null?o:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(r=>r.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(o=>o.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(r=>{const o=e.getFilterFn(),i=r==null?void 0:r.find(u=>u.id===e.id),a=Xo(n,i?i.value:void 0);if(Vx(o,a,e)){var s;return(s=r==null?void 0:r.filter(u=>u.id!==e.id))!=null?s:[]}const l={id:e.id,value:a};if(i){var c;return(c=r==null?void 0:r.map(u=>u.id===e.id?l:u))!=null?c:[]}return r!=null&&r.length?[...r,l]:[l]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),r=o=>{var i;return(i=Xo(t,o))==null?void 0:i.filter(a=>{const s=n.find(l=>l.id===a.id);if(s){const l=s.getFilterFn();if(Vx(l,a.value,s))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(r)},e.resetColumnFilters=t=>{var n,r;e.setColumnFilters(t?[]:(n=(r=e.initialState)==null?void 0:r.columnFilters)!=null?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function Vx(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const xB=(e,t,n)=>n.reduce((r,o)=>{const i=o.getValue(e);return r+(typeof i=="number"?i:0)},0),SB=(e,t,n)=>{let r;return n.forEach(o=>{const i=o.getValue(e);i!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}),r},wB=(e,t,n)=>{let r;return n.forEach(o=>{const i=o.getValue(e);i!=null&&(r=i)&&(r=i)}),r},CB=(e,t,n)=>{let r,o;return n.forEach(i=>{const a=i.getValue(e);a!=null&&(r===void 0?a>=a&&(r=o=a):(r>a&&(r=a),o{let n=0,r=0;if(t.forEach(o=>{let i=o.getValue(e);i!=null&&(i=+i)>=i&&(++n,r+=i)}),n)return r/n},RB=(e,t)=>{if(!t.length)return;const n=t.map(i=>i.getValue(e));if(!fB(n))return;if(n.length===1)return n[0];const r=Math.floor(n.length/2),o=n.sort((i,a)=>i-a);return n.length%2!==0?o[r]:(o[r-1]+o[r])/2},TB=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),PB=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,kB=(e,t)=>t.length,kg={sum:xB,min:SB,max:wB,extent:CB,mean:_B,median:RB,unique:TB,uniqueCount:PB,count:kB},$B={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:tr("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(r=>r!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,r;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((r=t.options.enableGrouping)!=null?r:!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const n=e.getCanGroup();return()=>{n&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);if(typeof r=="number")return kg.sum;if(Object.prototype.toString.call(r)==="[object Date]")return kg.extent},e.getAggregationFn=()=>{var n,r;if(!e)throw new Error;return Sp(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(r=t.options.aggregationFns)==null?void 0:r[e.columnDef.aggregationFn])!=null?n:kg[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,r;e.setGrouping(t?[]:(n=(r=e.initialState)==null?void 0:r.grouping)!=null?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var o;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((o=n.subRows)!=null&&o.length)}}};function EB(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(i=>!t.includes(i.id));return n==="remove"?r:[...t.map(i=>e.find(a=>a.id===i)).filter(Boolean),...r]}const MB={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:tr("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=Me(n=>[Ll(t,n)],n=>n.findIndex(r=>r.id===e.id),Ie(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var r;return((r=Ll(t,n)[0])==null?void 0:r.id)===e.id},e.getIsLastColumn=n=>{var r;const o=Ll(t,n);return((r=o[o.length-1])==null?void 0:r.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},e._getOrderColumnsFn=Me(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>o=>{let i=[];if(!(t!=null&&t.length))i=o;else{const a=[...t],s=[...o];for(;s.length&&a.length;){const l=a.shift(),c=s.findIndex(u=>u.id===l);c>-1&&i.push(s.splice(c,1)[0])}i=[...i,...s]}return EB(i,n,r)},Ie(e.options,"debugTable"))}},$g=()=>({left:[],right:[]}),IB={getInitialState:e=>({columnPinning:$g(),...e}),getDefaultOptions:e=>({onColumnPinningChange:tr("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const r=e.getLeafColumns().map(o=>o.id).filter(Boolean);t.setColumnPinning(o=>{var i,a;if(n==="right"){var s,l;return{left:((s=o==null?void 0:o.left)!=null?s:[]).filter(d=>!(r!=null&&r.includes(d))),right:[...((l=o==null?void 0:o.right)!=null?l:[]).filter(d=>!(r!=null&&r.includes(d))),...r]}}if(n==="left"){var c,u;return{left:[...((c=o==null?void 0:o.left)!=null?c:[]).filter(d=>!(r!=null&&r.includes(d))),...r],right:((u=o==null?void 0:o.right)!=null?u:[]).filter(d=>!(r!=null&&r.includes(d)))}}return{left:((i=o==null?void 0:o.left)!=null?i:[]).filter(d=>!(r!=null&&r.includes(d))),right:((a=o==null?void 0:o.right)!=null?a:[]).filter(d=>!(r!=null&&r.includes(d)))}})},e.getCanPin=()=>e.getLeafColumns().some(r=>{var o,i,a;return((o=r.columnDef.enablePinning)!=null?o:!0)&&((i=(a=t.options.enableColumnPinning)!=null?a:t.options.enablePinning)!=null?i:!0)}),e.getIsPinned=()=>{const n=e.getLeafColumns().map(s=>s.id),{left:r,right:o}=t.getState().columnPinning,i=n.some(s=>r==null?void 0:r.includes(s)),a=n.some(s=>o==null?void 0:o.includes(s));return i?"left":a?"right":!1},e.getPinnedIndex=()=>{var n,r;const o=e.getIsPinned();return o?(n=(r=t.getState().columnPinning)==null||(r=r[o])==null?void 0:r.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=Me(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,o)=>{const i=[...r??[],...o??[]];return n.filter(a=>!i.includes(a.column.id))},Ie(t.options,"debugRows")),e.getLeftVisibleCells=Me(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,r)=>(r??[]).map(i=>n.find(a=>a.column.id===i)).filter(Boolean).map(i=>({...i,position:"left"})),Ie(t.options,"debugRows")),e.getRightVisibleCells=Me(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r??[]).map(i=>n.find(a=>a.column.id===i)).filter(Boolean).map(i=>({...i,position:"right"})),Ie(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,r;return e.setColumnPinning(t?$g():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:$g())},e.getIsSomeColumnsPinned=t=>{var n;const r=e.getState().columnPinning;if(!t){var o,i;return!!((o=r.left)!=null&&o.length||(i=r.right)!=null&&i.length)}return!!((n=r[t])!=null&&n.length)},e.getLeftLeafColumns=Me(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(r=>t.find(o=>o.id===r)).filter(Boolean),Ie(e.options,"debugColumns")),e.getRightLeafColumns=Me(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(r=>t.find(o=>o.id===r)).filter(Boolean),Ie(e.options,"debugColumns")),e.getCenterLeafColumns=Me(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const o=[...n??[],...r??[]];return t.filter(i=>!o.includes(i.id))},Ie(e.options,"debugColumns"))}},bu={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},Eg=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),OB={getDefaultColumnDef:()=>bu,getInitialState:e=>({columnSizing:{},columnSizingInfo:Eg(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:tr("columnSizing",e),onColumnSizingInfoChange:tr("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,r,o;const i=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:bu.minSize,(r=i??e.columnDef.size)!=null?r:bu.size),(o=e.columnDef.maxSize)!=null?o:bu.maxSize)},e.getStart=Me(n=>[n,Ll(t,n),t.getState().columnSizing],(n,r)=>r.slice(0,e.getIndex(n)).reduce((o,i)=>o+i.getSize(),0),Ie(t.options,"debugColumns")),e.getAfter=Me(n=>[n,Ll(t,n),t.getState().columnSizing],(n,r)=>r.slice(e.getIndex(n)+1).reduce((o,i)=>o+i.getSize(),0),Ie(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:r,...o}=n;return o})},e.getCanResize=()=>{var n,r;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((r=t.options.enableColumnResizing)!=null?r:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const r=o=>{if(o.subHeaders.length)o.subHeaders.forEach(r);else{var i;n+=(i=o.column.getSize())!=null?i:0}};return r(e),n},e.getStart=()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},e.getResizeHandler=n=>{const r=t.getColumn(e.column.id),o=r==null?void 0:r.getCanResize();return i=>{if(!r||!o||(i.persist==null||i.persist(),Mg(i)&&i.touches&&i.touches.length>1))return;const a=e.getSize(),s=e?e.getLeafHeaders().map(v=>[v.column.id,v.column.getSize()]):[[r.id,r.getSize()]],l=Mg(i)?Math.round(i.touches[0].clientX):i.clientX,c={},u=(v,S)=>{typeof S=="number"&&(t.setColumnSizingInfo(m=>{var C,_;const R=t.options.columnResizeDirection==="rtl"?-1:1,k=(S-((C=m==null?void 0:m.startOffset)!=null?C:0))*R,T=Math.max(k/((_=m==null?void 0:m.startSize)!=null?_:0),-.999999);return m.columnSizingStart.forEach(P=>{let[x,$]=P;c[x]=Math.round(Math.max($+$*T,0)*100)/100}),{...m,deltaOffset:k,deltaPercentage:T}}),(t.options.columnResizeMode==="onChange"||v==="end")&&t.setColumnSizing(m=>({...m,...c})))},d=v=>u("move",v),f=v=>{u("end",v),t.setColumnSizingInfo(S=>({...S,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},p=n||typeof document<"u"?document:null,h={moveHandler:v=>d(v.clientX),upHandler:v=>{p==null||p.removeEventListener("mousemove",h.moveHandler),p==null||p.removeEventListener("mouseup",h.upHandler),f(v.clientX)}},y={moveHandler:v=>(v.cancelable&&(v.preventDefault(),v.stopPropagation()),d(v.touches[0].clientX),!1),upHandler:v=>{var S;p==null||p.removeEventListener("touchmove",y.moveHandler),p==null||p.removeEventListener("touchend",y.upHandler),v.cancelable&&(v.preventDefault(),v.stopPropagation()),f((S=v.touches[0])==null?void 0:S.clientX)}},w=LB()?{passive:!1}:!1;Mg(i)?(p==null||p.addEventListener("touchmove",y.moveHandler,w),p==null||p.addEventListener("touchend",y.upHandler,w)):(p==null||p.addEventListener("mousemove",h.moveHandler,w),p==null||p.addEventListener("mouseup",h.upHandler,w)),t.setColumnSizingInfo(v=>({...v,startOffset:l,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:s,isResizingColumn:r.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?Eg():(n=e.initialState.columnSizingInfo)!=null?n:Eg())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0}}};let xu=null;function LB(){if(typeof xu=="boolean")return xu;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return xu=e,xu}function Mg(e){return e.type==="touchstart"}const AB={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:tr("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(r=>({...r,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,r;const o=e.columns;return(n=o.length?o.some(i=>i.getIsVisible()):(r=t.getState().columnVisibility)==null?void 0:r[e.id])!=null?n:!0},e.getCanHide=()=>{var n,r;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((r=t.options.enableHiding)!=null?r:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=Me(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(r=>r.column.getIsVisible()),Ie(t.options,"debugRows")),e.getVisibleCells=Me(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,o)=>[...n,...r,...o],Ie(t.options,"debugRows"))},createTable:e=>{const t=(n,r)=>Me(()=>[r(),r().filter(o=>o.getIsVisible()).map(o=>o.id).join("_")],o=>o.filter(i=>i.getIsVisible==null?void 0:i.getIsVisible()),Ie(e.options,"debugColumns"));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),e.resetColumnVisibility=n=>{var r;e.setColumnVisibility(n?{}:(r=e.initialState.columnVisibility)!=null?r:{})},e.toggleAllColumnsVisible=n=>{var r;n=(r=n)!=null?r:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((o,i)=>({...o,[i.id]:n||!(i.getCanHide!=null&&i.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>n=>{var r;e.toggleAllColumnsVisible((r=n.target)==null?void 0:r.checked)}}};function Ll(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const NB={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},DB={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:tr("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const r=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof r=="string"||typeof r=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,r,o,i;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((o=t.options.enableFilters)!=null?o:!0)&&((i=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?i:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>go.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:r}=e.options;return Sp(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:go[r]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},jB={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:tr("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var r,o;if(!t){e._queue(()=>{t=!0});return}if((r=(o=e.options.autoResetAll)!=null?o:e.options.autoResetExpanded)!=null?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=r=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(r),e.toggleAllRowsExpanded=r=>{r??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=r=>{var o,i;e.setExpanded(r?{}:(o=(i=e.initialState)==null?void 0:i.expanded)!=null?o:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(r=>r.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>r=>{r.persist==null||r.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const r=e.getState().expanded;return r===!0||Object.values(r).some(Boolean)},e.getIsAllRowsExpanded=()=>{const r=e.getState().expanded;return typeof r=="boolean"?r===!0:!(!Object.keys(r).length||e.getRowModel().flatRows.some(o=>!o.getIsExpanded()))},e.getExpandedDepth=()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(i=>{const a=i.split(".");r=Math.max(r,a.length)}),r},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(r=>{var o;const i=r===!0?!0:!!(r!=null&&r[e.id]);let a={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(s=>{a[s]=!0}):a=r,n=(o=n)!=null?o:!i,!i&&n)return{...a,[e.id]:!0};if(i&&!n){const{[e.id]:s,...l}=a;return l}return r})},e.getIsExpanded=()=>{var n;const r=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:r===!0||r!=null&&r[e.id])},e.getCanExpand=()=>{var n,r,o;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((o=e.subRows)!=null&&o.length)},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},Em=0,Mm=10,Ig=()=>({pageIndex:Em,pageSize:Mm}),FB={getInitialState:e=>({...e,pagination:{...Ig(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:tr("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var r,o;if(!t){e._queue(()=>{t=!0});return}if((r=(o=e.options.autoResetAll)!=null?o:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=r=>{const o=i=>Xo(r,i);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(o)},e.resetPagination=r=>{var o;e.setPagination(r?Ig():(o=e.initialState.pagination)!=null?o:Ig())},e.setPageIndex=r=>{e.setPagination(o=>{let i=Xo(r,o.pageIndex);const a=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return i=Math.max(0,Math.min(i,a)),{...o,pageIndex:i}})},e.resetPageIndex=r=>{var o,i;e.setPageIndex(r?Em:(o=(i=e.initialState)==null||(i=i.pagination)==null?void 0:i.pageIndex)!=null?o:Em)},e.resetPageSize=r=>{var o,i;e.setPageSize(r?Mm:(o=(i=e.initialState)==null||(i=i.pagination)==null?void 0:i.pageSize)!=null?o:Mm)},e.setPageSize=r=>{e.setPagination(o=>{const i=Math.max(1,Xo(r,o.pageSize)),a=o.pageSize*o.pageIndex,s=Math.floor(a/i);return{...o,pageIndex:s,pageSize:i}})},e.setPageCount=r=>e.setPagination(o=>{var i;let a=Xo(r,(i=e.options.pageCount)!=null?i:-1);return typeof a=="number"&&(a=Math.max(-1,a)),{...o,pageCount:a}}),e.getPageOptions=Me(()=>[e.getPageCount()],r=>{let o=[];return r&&r>0&&(o=[...new Array(r)].fill(null).map((i,a)=>a)),o},Ie(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:r}=e.getState().pagination,o=e.getPageCount();return o===-1?!0:o===0?!1:re.setPageIndex(r=>r-1),e.nextPage=()=>e.setPageIndex(r=>r+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var r;return(r=e.options.pageCount)!=null?r:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var r;return(r=e.options.rowCount)!=null?r:e.getPrePaginationRowModel().rows.length}}},Og=()=>({top:[],bottom:[]}),BB={getInitialState:e=>({rowPinning:Og(),...e}),getDefaultOptions:e=>({onRowPinningChange:tr("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,r,o)=>{const i=r?e.getLeafRows().map(l=>{let{id:c}=l;return c}):[],a=o?e.getParentRows().map(l=>{let{id:c}=l;return c}):[],s=new Set([...a,e.id,...i]);t.setRowPinning(l=>{var c,u;if(n==="bottom"){var d,f;return{top:((d=l==null?void 0:l.top)!=null?d:[]).filter(y=>!(s!=null&&s.has(y))),bottom:[...((f=l==null?void 0:l.bottom)!=null?f:[]).filter(y=>!(s!=null&&s.has(y))),...Array.from(s)]}}if(n==="top"){var p,h;return{top:[...((p=l==null?void 0:l.top)!=null?p:[]).filter(y=>!(s!=null&&s.has(y))),...Array.from(s)],bottom:((h=l==null?void 0:l.bottom)!=null?h:[]).filter(y=>!(s!=null&&s.has(y)))}}return{top:((c=l==null?void 0:l.top)!=null?c:[]).filter(y=>!(s!=null&&s.has(y))),bottom:((u=l==null?void 0:l.bottom)!=null?u:[]).filter(y=>!(s!=null&&s.has(y)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:r,enablePinning:o}=t.options;return typeof r=="function"?r(e):(n=r??o)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:r,bottom:o}=t.getState().rowPinning,i=n.some(s=>r==null?void 0:r.includes(s)),a=n.some(s=>o==null?void 0:o.includes(s));return i?"top":a?"bottom":!1},e.getPinnedIndex=()=>{var n,r;const o=e.getIsPinned();if(!o)return-1;const i=(n=o==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(a=>{let{id:s}=a;return s});return(r=i==null?void 0:i.indexOf(e.id))!=null?r:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,r;return e.setRowPinning(t?Og():(n=(r=e.initialState)==null?void 0:r.rowPinning)!=null?n:Og())},e.getIsSomeRowsPinned=t=>{var n;const r=e.getState().rowPinning;if(!t){var o,i;return!!((o=r.top)!=null&&o.length||(i=r.bottom)!=null&&i.length)}return!!((n=r[t])!=null&&n.length)},e._getPinnedRows=(t,n,r)=>{var o;return((o=e.options.keepPinnedRows)==null||o?(n??[]).map(a=>{const s=e.getRow(a,!0);return s.getIsAllParentsExpanded()?s:null}):(n??[]).map(a=>t.find(s=>s.id===a))).filter(Boolean).map(a=>({...a,position:r}))},e.getTopRows=Me(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),Ie(e.options,"debugRows")),e.getBottomRows=Me(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),Ie(e.options,"debugRows")),e.getCenterRows=Me(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,r)=>{const o=new Set([...n??[],...r??[]]);return t.filter(i=>!o.has(i.id))},Ie(e.options,"debugRows"))}},zB={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:tr("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const r={...n},o=e.getPreGroupedRowModel().flatRows;return t?o.forEach(i=>{i.getCanSelect()&&(r[i.id]=!0)}):o.forEach(i=>{delete r[i.id]}),r})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),o={...n};return e.getRowModel().rows.forEach(i=>{Im(o,i.id,r,!0,e)}),o}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=Me(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?Lg(e,n):{rows:[],flatRows:[],rowsById:{}},Ie(e.options,"debugTable")),e.getFilteredSelectedRowModel=Me(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?Lg(e,n):{rows:[],flatRows:[],rowsById:{}},Ie(e.options,"debugTable")),e.getGroupedSelectedRowModel=Me(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?Lg(e,n):{rows:[],flatRows:[],rowsById:{}},Ie(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!(t.length&&Object.keys(n).length);return r&&t.some(o=>o.getCanSelect()&&!n[o.id])&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(o=>o.getCanSelect()),{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(o=>!n[o.id])&&(r=!1),r},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(n=>n.getCanSelect()).some(n=>n.getIsSelected()||n.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,r)=>{const o=e.getIsSelected();t.setRowSelection(i=>{var a;if(n=typeof n<"u"?n:!o,e.getCanSelect()&&o===n)return i;const s={...i};return Im(s,e.id,n,(a=r==null?void 0:r.selectChildren)!=null?a:!0,t),s})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return W1(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return Om(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return Om(e,n)==="all"},e.getCanSelect=()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},e.getCanSelectSubRows=()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},e.getCanMultiSelect=()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},e.getToggleSelectedHandler=()=>{const n=e.getCanSelect();return r=>{var o;n&&e.toggleSelected((o=r.target)==null?void 0:o.checked)}}}},Im=(e,t,n,r,o)=>{var i;const a=o.getRow(t,!0);n?(a.getCanMultiSelect()||Object.keys(e).forEach(s=>delete e[s]),a.getCanSelect()&&(e[t]=!0)):delete e[t],r&&(i=a.subRows)!=null&&i.length&&a.getCanSelectSubRows()&&a.subRows.forEach(s=>Im(e,s.id,n,r,o))};function Lg(e,t){const n=e.getState().rowSelection,r=[],o={},i=function(a,s){return a.map(l=>{var c;const u=W1(l,n);if(u&&(r.push(l),o[l.id]=l),(c=l.subRows)!=null&&c.length&&(l={...l,subRows:i(l.subRows)}),u)return l}).filter(Boolean)};return{rows:i(t.rows),flatRows:r,rowsById:o}}function W1(e,t){var n;return(n=t[e.id])!=null?n:!1}function Om(e,t,n){var r;if(!((r=e.subRows)!=null&&r.length))return!1;let o=!0,i=!1;return e.subRows.forEach(a=>{if(!(i&&!o)&&(a.getCanSelect()&&(W1(a,t)?i=!0:o=!1),a.subRows&&a.subRows.length)){const s=Om(a,t);s==="all"?i=!0:(s==="some"&&(i=!0),o=!1)}}),o?"all":i?"some":!1}const Lm=/([0-9]+)/gm,HB=(e,t,n)=>$R(gi(e.getValue(n)).toLowerCase(),gi(t.getValue(n)).toLowerCase()),VB=(e,t,n)=>$R(gi(e.getValue(n)),gi(t.getValue(n))),WB=(e,t,n)=>U1(gi(e.getValue(n)).toLowerCase(),gi(t.getValue(n)).toLowerCase()),UB=(e,t,n)=>U1(gi(e.getValue(n)),gi(t.getValue(n))),GB=(e,t,n)=>{const r=e.getValue(n),o=t.getValue(n);return r>o?1:rU1(e.getValue(n),t.getValue(n));function U1(e,t){return e===t?0:e>t?1:-1}function gi(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function $R(e,t){const n=e.split(Lm).filter(Boolean),r=t.split(Lm).filter(Boolean);for(;n.length&&r.length;){const o=n.shift(),i=r.shift(),a=parseInt(o,10),s=parseInt(i,10),l=[a,s].sort();if(isNaN(l[0])){if(o>i)return 1;if(i>o)return-1;continue}if(isNaN(l[1]))return isNaN(a)?-1:1;if(a>s)return 1;if(s>a)return-1}return n.length-r.length}const rl={alphanumeric:HB,alphanumericCaseSensitive:VB,text:WB,textCaseSensitive:UB,datetime:GB,basic:qB},KB={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:tr("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const o of n){const i=o==null?void 0:o.getValue(e.id);if(Object.prototype.toString.call(i)==="[object Date]")return rl.datetime;if(typeof i=="string"&&(r=!0,i.split(Lm).length>1))return rl.alphanumeric}return r?rl.text:rl.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof(n==null?void 0:n.getValue(e.id))=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,r;if(!e)throw new Error;return Sp(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(r=t.options.sortingFns)==null?void 0:r[e.columnDef.sortingFn])!=null?n:rl[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{const o=e.getNextSortingOrder(),i=typeof n<"u"&&n!==null;t.setSorting(a=>{const s=a==null?void 0:a.find(p=>p.id===e.id),l=a==null?void 0:a.findIndex(p=>p.id===e.id);let c=[],u,d=i?n:o==="desc";if(a!=null&&a.length&&e.getCanMultiSort()&&r?s?u="toggle":u="add":a!=null&&a.length&&l!==a.length-1?u="replace":s?u="toggle":u="replace",u==="toggle"&&(i||o||(u="remove")),u==="add"){var f;c=[...a,{id:e.id,desc:d}],c.splice(0,c.length-((f=t.options.maxMultiSortColCount)!=null?f:Number.MAX_SAFE_INTEGER))}else u==="toggle"?c=a.map(p=>p.id===e.id?{...p,desc:d}:p):u==="remove"?c=a.filter(p=>p.id!==e.id):c=[{id:e.id,desc:d}];return c})},e.getFirstSortDir=()=>{var n,r;return((n=(r=e.columnDef.sortDescFirst)!=null?r:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var r,o;const i=e.getFirstSortDir(),a=e.getIsSorted();return a?a!==i&&((r=t.options.enableSortingRemoval)==null||r)&&(!(n&&(o=t.options.enableMultiRemove)!=null)||o)?!1:a==="desc"?"asc":"desc":i},e.getCanSort=()=>{var n,r;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((r=t.options.enableSorting)!=null?r:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,r;return(n=(r=e.columnDef.enableMultiSort)!=null?r:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const r=(n=t.getState().sorting)==null?void 0:n.find(o=>o.id===e.id);return r?r.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,r;return(n=(r=t.getState().sorting)==null?void 0:r.findIndex(o=>o.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(r=>r.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return r=>{n&&(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,r;e.setSorting(t?[]:(n=(r=e.initialState)==null?void 0:r.sorting)!=null?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},ZB=[mB,AB,MB,IB,yB,bB,NB,DB,KB,$B,jB,FB,BB,zB,OB];function QB(e){var t,n;const r=[...ZB,...(t=e._features)!=null?t:[]];let o={_features:r};const i=o._features.reduce((f,p)=>Object.assign(f,p.getDefaultOptions==null?void 0:p.getDefaultOptions(o)),{}),a=f=>o.options.mergeOptions?o.options.mergeOptions(i,f):{...i,...f};let l={...{},...(n=e.initialState)!=null?n:{}};o._features.forEach(f=>{var p;l=(p=f.getInitialState==null?void 0:f.getInitialState(l))!=null?p:l});const c=[];let u=!1;const d={_features:r,options:{...i,...e},initialState:l,_queue:f=>{c.push(f),u||(u=!0,Promise.resolve().then(()=>{for(;c.length;)c.shift()();u=!1}).catch(p=>setTimeout(()=>{throw p})))},reset:()=>{o.setState(o.initialState)},setOptions:f=>{const p=Xo(f,o.options);o.options=a(p)},getState:()=>o.options.state,setState:f=>{o.options.onStateChange==null||o.options.onStateChange(f)},_getRowId:(f,p,h)=>{var y;return(y=o.options.getRowId==null?void 0:o.options.getRowId(f,p,h))!=null?y:`${h?[h.id,p].join("."):p}`},getCoreRowModel:()=>(o._getCoreRowModel||(o._getCoreRowModel=o.options.getCoreRowModel(o)),o._getCoreRowModel()),getRowModel:()=>o.getPaginationRowModel(),getRow:(f,p)=>{let h=(p?o.getPrePaginationRowModel():o.getRowModel()).rowsById[f];if(!h&&(h=o.getCoreRowModel().rowsById[f],!h))throw new Error;return h},_getDefaultColumnDef:Me(()=>[o.options.defaultColumn],f=>{var p;return f=(p=f)!=null?p:{},{header:h=>{const y=h.header.column.columnDef;return y.accessorKey?y.accessorKey:y.accessorFn?y.id:null},cell:h=>{var y,w;return(y=(w=h.renderValue())==null||w.toString==null?void 0:w.toString())!=null?y:null},...o._features.reduce((h,y)=>Object.assign(h,y.getDefaultColumnDef==null?void 0:y.getDefaultColumnDef()),{}),...f}},Ie(e,"debugColumns")),_getColumnDefs:()=>o.options.columns,getAllColumns:Me(()=>[o._getColumnDefs()],f=>{const p=function(h,y,w){return w===void 0&&(w=0),h.map(v=>{const S=hB(o,v,w,y),m=v;return S.columns=m.columns?p(m.columns,S,w+1):[],S})};return p(f)},Ie(e,"debugColumns")),getAllFlatColumns:Me(()=>[o.getAllColumns()],f=>f.flatMap(p=>p.getFlatColumns()),Ie(e,"debugColumns")),_getAllFlatColumnsById:Me(()=>[o.getAllFlatColumns()],f=>f.reduce((p,h)=>(p[h.id]=h,p),{}),Ie(e,"debugColumns")),getAllLeafColumns:Me(()=>[o.getAllColumns(),o._getOrderColumnsFn()],(f,p)=>{let h=f.flatMap(y=>y.getLeafColumns());return p(h)},Ie(e,"debugColumns")),getColumn:f=>o._getAllFlatColumnsById()[f]};Object.assign(o,d);for(let f=0;fMe(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(o,i,a){i===void 0&&(i=0);const s=[];for(let c=0;ce._autoResetPageIndex()))}function XB(e){const t=[],n=r=>{var o;t.push(r),(o=r.subRows)!=null&&o.length&&r.getIsExpanded()&&r.subRows.forEach(n)};return e.rows.forEach(n),{rows:t,flatRows:e.flatRows,rowsById:e.rowsById}}function JB(e){return t=>Me(()=>[t.getState().pagination,t.getPrePaginationRowModel(),t.options.paginateExpandedRows?void 0:t.getState().expanded],(n,r)=>{if(!r.rows.length)return r;const{pageSize:o,pageIndex:i}=n;let{rows:a,flatRows:s,rowsById:l}=r;const c=o*i,u=c+o;a=a.slice(c,u);let d;t.options.paginateExpandedRows?d={rows:a,flatRows:s,rowsById:l}:d=XB({rows:a,flatRows:s,rowsById:l}),d.flatRows=[];const f=p=>{d.flatRows.push(p),p.subRows.length&&p.subRows.forEach(f)};return d.rows.forEach(f),d},Ie(t.options,"debugTable"))}function ez(){return e=>Me(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,o=[],i=r.filter(l=>{var c;return(c=e.getColumn(l.id))==null?void 0:c.getCanSort()}),a={};i.forEach(l=>{const c=e.getColumn(l.id);c&&(a[l.id]={sortUndefined:c.columnDef.sortUndefined,invertSorting:c.columnDef.invertSorting,sortingFn:c.getSortingFn()})});const s=l=>{const c=l.map(u=>({...u}));return c.sort((u,d)=>{for(let p=0;p{var d;o.push(u),(d=u.subRows)!=null&&d.length&&(u.subRows=s(u.subRows))}),c};return{rows:s(n.rows),flatRows:o,rowsById:n.rowsById}},Ie(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}/** - * react-table - * - * Copyright (c) TanStack - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function ER(e,t){return e?tz(e)?b.createElement(e,t):e:null}function tz(e){return nz(e)||typeof e=="function"||rz(e)}function nz(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function rz(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function oz(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=b.useState(()=>({current:QB(t)})),[r,o]=b.useState(()=>n.current.initialState);return n.current.setOptions(i=>({...i,...e,state:{...r,...e.state},onStateChange:a=>{o(a),e.onStateChange==null||e.onStateChange(a)}})),n.current}const iz=e=>e.map(t=>({...t,accessorKey:t.field,header:t.renderHeader?({table:n})=>t.renderHeader({table:n}):t.headerName,minSize:t.minWidth,maxSize:t.maxWidth,size:t.width,cell:t.renderCell?n=>t.renderCell({...n,data:n.row.original}):n=>n.renderValue(),meta:{headerAlign:t.headerAlign,align:t.align}}));function MR(e,t){const n="column"in e?e.column:e,r=t?"header":"col";return{minWidth:`max(calc(var(--${r}-${n.id}-size) * 1px), ${n.columnDef.minSize??0}px)`,width:`min(calc(var(--${r}-${n.id}-size) * 1px), ${n.columnDef.size}px)`,maxWidth:`min(calc(var(--${r}-${n.id}-size) * 1px), ${n.columnDef.maxSize??Number.MAX_SAFE_INTEGER}px)`}}const IR=()=>{const[e,t]=b.useState(!1),[n,r]=b.useState(!1),o=b.useRef(null),i=b.useCallback(()=>{if(o.current){const{scrollLeft:s,scrollWidth:l,clientWidth:c}=o.current;t(s>0),r(s{i()},[]);function a(s,l){const c="column"in s?s.column:s,u=c.getIsPinned();return{position:u||l?"sticky":"relative",top:l?0:void 0,left:u==="left"?`${c.getStart("left")}px`:void 0,right:u==="right"?`${c.getAfter("right")}px`:void 0,zIndex:l?u?3:2:u?2:1,backgroundColor:u?"#fff":"transparent",transition:"all 0.1s ease"}}return{tableContainerRef:o,getCommonPinningStyles:a,updateShadows:i,showShadowState:{showLeftShadow:e,showRightShadow:n}}},Ag=[10,25,50,100],az=10,sz=10,lz=({paginationMode:e,paginationState:t,onPageChange:n,onPageSizeChange:r})=>{const{pageIndex:o=0,pageSize:i=sz,totalCount:a}=t||{},[s,l]=b.useState({pageIndex:o,pageSize:i}),c=b.useMemo(()=>{if(e!=="client")return Math.ceil(a/s.pageSize)},[e,a,s.pageSize]),u=b.useCallback(f=>{l(p=>({...p,pageIndex:f})),n&&n(f)},[n]),d=b.useCallback(f=>{const p=Number(f.target.value);l(h=>({...h,pageSize:p})),r&&r(p)},[r]);return{pagination:s,setPagination:l,pageCount:c,handlePageChange:u,handleRowsPerPageChange:d}},cz="_root_71ors_3",uz="_withBorder_71ors_6",dz="_tableContainer_71ors_15",fz="_resizer_71ors_21",pz="_cell_71ors_35",gz="_headerCell_71ors_53",hz="_bodyCell_71ors_54",mz="_pinnedRight_71ors_67",vz="_pinnedLeft_71ors_68",yz="_rowWhenHover_71ors_92",bz="_emptyCell_71ors_103",xz="_footer_71ors_110",Sz="_hide_71ors_114",wz="_onlyPagination_71ors_117",vn={root:cz,withBorder:uz,tableContainer:dz,resizer:fz,cell:pz,headerCell:gz,bodyCell:hz,pinnedRight:mz,pinnedLeft:vz,rowWhenHover:yz,emptyCell:bz,footer:xz,hide:Sz,onlyPagination:wz},Cz=e=>{const{isExpanded:t,row:n,renderDetail:r}=e;return g.jsx(yp,{children:g.jsx(ps,{in:t,children:r?r(n):null},void 0)},void 0)},_z=rt.memo(({row:e,rowProps:t,showShadowState:n})=>g.jsx(yp,{...t,hover:!0,classes:{hover:vn.rowWhenHover},children:e.getVisibleCells().map(r=>g.jsx(Rz,{cell:r,showShadowState:n},void 0))},void 0),(e,t)=>e.row===t.row&&e.showShadowState===t.showShadowState),Rz=rt.memo(({cell:e,showShadowState:t})=>{var r;const{getCommonPinningStyles:n}=IR();return g.jsx(ys,{classes:{root:vn.cell,body:Gt(vn.bodyCell,{[vn.pinnedRight]:e.column.getIsPinned()==="right"&&e.column.getIsFirstColumn("right")&&t.showRightShadow,[vn.pinnedLeft]:e.column.getIsPinned()==="left"&&e.column.getIsLastColumn("left")&&t.showLeftShadow})},style:{...MR(e),...n(e,!1),textAlign:((r=e.column.columnDef.meta)==null?void 0:r.align)||"left"},children:ER(e.column.columnDef.cell,e.getContext())},e.id)},(e,t)=>e.cell.getValue()===t.cell.getValue()&&e.showShadowState===t.showShadowState),OR=e=>{const{table:t,showShadowState:n,renderDetail:r,expandedRows:o,columnsCount:i}=e,a=t.getRowModel().rows,s=zt();return g.jsx(P7,{children:a.length===0?g.jsx(yp,{children:g.jsx(ys,{colSpan:i,className:vn.emptyCell,children:g.jsx(mt,{color:"textSecondary",children:Kd(Ae.NoRows,s.language)},void 0)},void 0)},void 0):a.map(l=>{const c=!!o[l.id];return g.jsxs(g.Fragment,{children:[g.jsx(_z,{rowProps:{key:l.id},row:l,showShadowState:n},void 0),r&&c&&g.jsx(Cz,{row:l.original,isExpanded:c,renderDetail:r},void 0)]},void 0)})},void 0)},Tz=rt.memo(OR,(e,t)=>e.table.options.data===t.table.options.data&&e.expandedRows===t.expandedRows),Pz=e=>{const{header:t}=e,n=b.useCallback(r=>{r.preventDefault(),t.getResizeHandler()(r.nativeEvent)},[t]);return g.jsx("div",{onMouseDown:n,className:Gt(vn.resizer,{[vn.isResizing]:t.column.getIsResizing()})},void 0)};var Am;(function(e){e[e.ManageColumnDisplay=0]="ManageColumnDisplay"})(Am||(Am={}));const kz=e=>{const{table:t}=e,[n,r]=b.useState(null),o=!!n,i=o?"simple-popover":void 0,a=(l,c)=>{r(l.currentTarget)},s=()=>{r(null)};return g.jsxs(F_,{sx:{display:"flex",justifyContent:"space-between"},children:[g.jsx(mt,{children:"Table"},void 0),g.jsxs("div",{children:[g.jsx(A1,{onClick:l=>a(l,Am.ManageColumnDisplay),children:g.jsx(XA,{size:24},void 0)},void 0),g.jsx(L_,{id:i,open:o,onClose:s,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:"right"},children:g.jsxs("div",{style:{padding:"16px",boxShadow:"0px 4px 4px rgba(0, 0, 0, 0.25)"},children:[g.jsx(mt,{sx:{marginBottom:"16px"},children:"Manage Column Display"},void 0),g.jsx("div",{children:t.getAllLeafColumns().map(l=>g.jsx("div",{className:"px-1",children:g.jsxs("label",{children:[g.jsx("input",{type:"checkbox",checked:l.getIsVisible(),onChange:l.getToggleVisibilityHandler()},void 0)," ",l.columnDef.header]},void 0)},l.id))},void 0)]},void 0)},void 0)]},void 0)]},void 0)},$z=e=>{const{header:t,children:n}=e;return t.column.getCanSort()?g.jsx(mA,{active:t.column.getIsSorted()!==!1,direction:t.column.getIsSorted()||"asc",onClick:t.column.getToggleSortingHandler(),children:n},void 0):g.jsx(g.Fragment,{children:n},void 0)},Ez=()=>{const[e,t]=b.useState({}),n=o=>{t(i=>({...i,[o]:!i[o]}))},r=b.useMemo(()=>({id:"expander",headerName:"",field:"expander",renderCell:({row:o})=>g.jsx(A1,{onClick:()=>n(o.id),size:"small",children:e[o.id]?g.jsx(KA,{size:24},void 0):g.jsx(ia,{size:24},void 0)},void 0)}),[e]);return{expandedRows:e,toggleRowExpanded:n,expandedColumn:r}},Mz=e=>{const{selectedIds:t}=e,n=t.reduce((a,s)=>(a[s]=!0,a),{}),[r,o]=b.useState(n||{});return{checkboxColumn:b.useMemo(()=>({id:"checkbox",headerName:"",field:"checkbox",renderHeader:({table:a})=>g.jsx(Qd,{checked:a.getIsAllRowsSelected(),indeterminate:a.getIsSomeRowsSelected(),onChange:a.getToggleAllRowsSelectedHandler()},void 0),renderCell:({row:a})=>g.jsx(Qd,{checked:a.getIsSelected(),disabled:!a.getCanSelect(),indeterminate:a.getIsSomeSelected(),onChange:a.getToggleSelectedHandler()},void 0)}),[]),setRowSelection:o,rowSelection:r}},pt=e=>{const{columns:t,rows:n,initialState:r,stickyHeader:o=!1,maxHeight:i,showPagination:a=!0,paginationMode:s="client",sortingMode:l="client",onSortingChange:c,rowCount:u=0,showPageSizeSelect:d=!0,pageSize:f,page:p,onPageChange:h,onPageSizeChange:y,enableColumnResizing:w=!1,showToolbar:v=!1,renderDetail:S,isRowSelectable:m,enableMultiRowSelection:C=!0,showCheckboxColumn:_=!1,onSelectChange:R,getRowId:k,renderFooter:T,classes:P={tableContainer:""},withBorder:x=!0,selectedRowIds:$=[]}=e,{tableContainerRef:I,getCommonPinningStyles:O,updateShadows:D,showShadowState:M}=IR(),{pagination:A,pageCount:N,handlePageChange:E,handleRowsPerPageChange:L}=lz({paginationMode:s,paginationState:{pageIndex:p,pageSize:f,totalCount:u},onPageChange:h,onPageSizeChange:y}),{expandedColumn:B,expandedRows:H}=Ez(),{rowSelection:z,setRowSelection:j,checkboxColumn:F}=Mz({selectedIds:$}),[W,V]=b.useState([]),ee=b.useMemo(()=>{const de=[...t].filter(Q=>!Q.hide);return S&&de.unshift(B),_&&de.unshift(F),iz(de)},[t,S,H,_]),re=oz({data:n,columns:ee,getCoreRowModel:YB(),getPaginationRowModel:JB(),getSortedRowModel:l==="client"?ez():void 0,onSortingChange:de=>{const Q=typeof de=="function"?de(W):de;V(Q),l==="server"&&c&&c(Q)},enableColumnPinning:!0,enableRowSelection:de=>_&&(m?m(de.original):!0),enableMultiRowSelection:C,initialState:r,defaultColumn:{enableSorting:!1},state:{pagination:A,sorting:W,rowSelection:z},manualPagination:s==="server",manualSorting:l==="server",pageCount:N,enableColumnResizing:w,columnResizeMode:"onChange",onRowSelectionChange:j,getRowId:de=>k?k(de):de.id}),{getState:U}=re,{columnSizing:K,columnSizingInfo:se}=U();b.useEffect(()=>{const de=Object.keys(z).filter(Q=>z[Q]);R&&R(de)},[z]);const{showPagination:q,totalCount:ce}=b.useMemo(()=>{const de=s==="server"?u:n.length;return{showPagination:a&&de>az,totalCount:de}},[a,s,n.length]),ue=b.useMemo(()=>d?!f||Ag.includes(f)?Ag:[f,...Ag]:[],[d,f]),ie=b.useMemo(()=>{const de=re.getFlatHeaders().length;return{table:re,showShadowState:M,renderDetail:S,expandedRows:H,columnsCount:de}},[re,M,S,H]),te=b.useMemo(()=>{const de=re.getFlatHeaders(),Q={};for(let be=0;beg.jsx(yp,{children:de.headers.map(Q=>{var be;return g.jsxs(ys,{padding:"none",classes:{root:vn.cell,head:vn.headerCell},style:{...MR(Q,!0),...O(Q,o),textAlign:((be=Q.column.columnDef.meta)==null?void 0:be.headerAlign)||"left",backgroundColor:"#fff"},children:[g.jsx($z,{header:Q,children:Q.isPlaceholder?null:ER(Q.column.columnDef.header,Q.getContext())},void 0),Q.column.getCanResize()&&g.jsx(Pz,{header:Q},void 0)]},Q.id)})},de.id))},void 0),se.isResizingColumn?g.jsx(Tz,{...ie},void 0):g.jsx(OR,{...ie},void 0)]},void 0)},void 0),g.jsxs(B7,{classes:{root:Gt(vn.footer,{[vn.hide]:!T&&!q,[vn.onlyPagination]:!T&&q})},children:[T&&T(Object.keys(z)),q&&g.jsx(ID,{rowsPerPage:A.pageSize,page:A.pageIndex,count:ce,onPageChange:(de,Q)=>E(Q),onRowsPerPageChange:L,rowsPerPageOptions:ue},void 0)]},void 0)]},void 0)};var LR={exports:{}},AR={};/** - * @license React - * use-sync-external-store-shim.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var xs=b;function Iz(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Oz=typeof Object.is=="function"?Object.is:Iz,Lz=xs.useState,Az=xs.useEffect,Nz=xs.useLayoutEffect,Dz=xs.useDebugValue;function jz(e,t){var n=t(),r=Lz({inst:{value:n,getSnapshot:t}}),o=r[0].inst,i=r[1];return Nz(function(){o.value=n,o.getSnapshot=t,Ng(o)&&i({inst:o})},[e,n,t]),Az(function(){return Ng(o)&&i({inst:o}),e(function(){Ng(o)&&i({inst:o})})},[e]),Dz(n),n}function Ng(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Oz(e,n)}catch{return!0}}function Fz(e,t){return t()}var Bz=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Fz:jz;AR.useSyncExternalStore=xs.useSyncExternalStore!==void 0?xs.useSyncExternalStore:Bz;LR.exports=AR;var zz=LR.exports;const Jo=()=>{},Pn=Jo(),Yu=Object,et=e=>e===Pn,Or=e=>typeof e=="function",ko=(e,t)=>({...e,...t}),Hz=e=>Or(e.then),Su=new WeakMap;let Vz=0;const gc=e=>{const t=typeof e,n=e&&e.constructor,r=n==Date;let o,i;if(Yu(e)===e&&!r&&n!=RegExp){if(o=Su.get(e),o)return o;if(o=++Vz+"~",Su.set(e,o),n==Array){for(o="@",i=0;iwp&&typeof window.requestAnimationFrame!=G1,NR=(e,t)=>{const n=vo.get(e);return[()=>!et(t)&&e.get(t)||Dg,r=>{if(!et(t)){const o=e.get(t);t in wu||(wu[t]=o),n[5](t,ko(o,r),o||Dg)}},n[6],()=>!et(t)&&t in wu?wu[t]:!et(t)&&e.get(t)||Dg]};let Dm=!0;const Uz=()=>Dm,[jm,Fm]=wp&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[Jo,Jo],Gz=()=>{const e=Nm&&document.visibilityState;return et(e)||e!=="hidden"},qz=e=>(Nm&&document.addEventListener("visibilitychange",e),jm("focus",e),()=>{Nm&&document.removeEventListener("visibilitychange",e),Fm("focus",e)}),Kz=e=>{const t=()=>{Dm=!0,e()},n=()=>{Dm=!1};return jm("online",t),jm("offline",n),()=>{Fm("online",t),Fm("offline",n)}},Zz={isOnline:Uz,isVisible:Gz},Qz={initFocus:qz,initReconnect:Kz},Wx=!rt.useId,hc=!wp||"Deno"in window,Yz=e=>Wz()?window.requestAnimationFrame(e):setTimeout(e,1),Xu=hc?b.useEffect:b.useLayoutEffect,jg=typeof navigator<"u"&&navigator.connection,Ux=!hc&&jg&&(["slow-2g","2g"].includes(jg.effectiveType)||jg.saveData),q1=e=>{if(Or(e))try{e=e()}catch{e=""}const t=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?gc(e):"",[e,t]};let Xz=0;const Bm=()=>++Xz,DR=0,jR=1,FR=2,Jz=3;var ol={__proto__:null,ERROR_REVALIDATE_EVENT:Jz,FOCUS_EVENT:DR,MUTATE_EVENT:FR,RECONNECT_EVENT:jR};async function BR(...e){const[t,n,r,o]=e,i=ko({populateCache:!0,throwOnError:!0},typeof o=="boolean"?{revalidate:o}:o||{});let a=i.populateCache;const s=i.rollbackOnError;let l=i.optimisticData;const c=f=>typeof s=="function"?s(f):s!==!1,u=i.throwOnError;if(Or(n)){const f=n,p=[],h=t.keys();for(const y of h)!/^\$(inf|sub)\$/.test(y)&&f(t.get(y)._k)&&p.push(y);return Promise.all(p.map(d))}return d(n);async function d(f){const[p]=q1(f);if(!p)return;const[h,y]=NR(t,p),[w,v,S,m]=vo.get(t),C=()=>{const O=w[p];return(Or(i.revalidate)?i.revalidate(h().data,f):i.revalidate!==!1)&&(delete S[p],delete m[p],O&&O[0])?O[0](FR).then(()=>h().data):h().data};if(e.length<3)return C();let _=r,R;const k=Bm();v[p]=[k,0];const T=!et(l),P=h(),x=P.data,$=P._c,I=et($)?x:$;if(T&&(l=Or(l)?l(I,x):l,y({data:l,_c:I})),Or(_))try{_=_(I)}catch(O){R=O}if(_&&Hz(_))if(_=await _.catch(O=>{R=O}),k!==v[p][0]){if(R)throw R;return _}else R&&T&&c(R)&&(a=!0,y({data:I,_c:Pn}));if(a&&!R)if(Or(a)){const O=a(_,I);y({data:O,error:Pn,_c:Pn})}else y({data:_,error:Pn,_c:Pn});if(v[p][1]=Bm(),Promise.resolve(C()).then(()=>{y({_c:Pn})}),R){if(u)throw R;return}return _}}const Gx=(e,t)=>{for(const n in e)e[n][0]&&e[n][0](t)},zR=(e,t)=>{if(!vo.has(e)){const n=ko(Qz,t),r={},o=BR.bind(Pn,e);let i=Jo;const a={},s=(u,d)=>{const f=a[u]||[];return a[u]=f,f.push(d),()=>f.splice(f.indexOf(d),1)},l=(u,d,f)=>{e.set(u,d);const p=a[u];if(p)for(const h of p)h(d,f)},c=()=>{if(!vo.has(e)&&(vo.set(e,[r,{},{},{},o,l,s]),!hc)){const u=n.initFocus(setTimeout.bind(Pn,Gx.bind(Pn,r,DR))),d=n.initReconnect(setTimeout.bind(Pn,Gx.bind(Pn,r,jR)));i=()=>{u&&u(),d&&d(),vo.delete(e)}}};return c(),[e,o,c,i]}return[e,vo.get(e)[4]]},eH=(e,t,n,r,o)=>{const i=n.errorRetryCount,a=o.retryCount,s=~~((Math.random()+.5)*(1<<(a<8?a:8)))*n.errorRetryInterval;!et(i)&&a>i||setTimeout(r,s,o)},tH=(e,t)=>gc(e)==gc(t),[K1,nH]=zR(new Map),HR=ko({onLoadingSlow:Jo,onSuccess:Jo,onError:Jo,onErrorRetry:eH,onDiscarded:Jo,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:Ux?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:Ux?5e3:3e3,compare:tH,isPaused:()=>!1,cache:K1,mutate:nH,fallback:{}},Zz),VR=(e,t)=>{const n=ko(e,t);if(t){const{use:r,fallback:o}=e,{use:i,fallback:a}=t;r&&i&&(n.use=r.concat(i)),o&&a&&(n.fallback=ko(o,a))}return n},zm=b.createContext({}),rH=e=>{const{value:t}=e,n=b.useContext(zm),r=Or(t),o=b.useMemo(()=>r?t(n):t,[r,n,t]),i=b.useMemo(()=>r?o:VR(n,o),[r,n,o]),a=o&&o.provider,s=b.useRef(Pn);a&&!s.current&&(s.current=zR(a(i.cache||K1),o));const l=s.current;return l&&(i.cache=l[0],i.mutate=l[1]),Xu(()=>{if(l)return l[2]&&l[2](),l[3]},[]),b.createElement(zm.Provider,ko(e,{value:i}))},oH="$inf$",WR=wp&&window.__SWR_DEVTOOLS_USE__,iH=WR?window.__SWR_DEVTOOLS_USE__:[],aH=()=>{WR&&(window.__SWR_DEVTOOLS_REACT__=rt)},sH=e=>Or(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(e[1]===null?e[2]:e[1])||{}],lH=()=>ko(HR,b.useContext(zm)),cH=e=>(t,n,r)=>e(t,n&&((...i)=>{const[a]=q1(t),[,,,s]=vo.get(K1);if(a.startsWith(oH))return n(...i);const l=s[a];return et(l)?n(...i):(delete s[a],l)}),r),uH=iH.concat(cH),dH=e=>function(...n){const r=lH(),[o,i,a]=sH(n),s=VR(r,a);let l=e;const{use:c}=s,u=(c||[]).concat(uH);for(let d=u.length;d--;)l=u[d](l);return l(o,i||s.fetcher||null,s)},fH=(e,t,n)=>{const r=t[e]||(t[e]=[]);return r.push(n),()=>{const o=r.indexOf(n);o>=0&&(r[o]=r[r.length-1],r.pop())}};aH();const qx=rt.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e)}),Fg={dedupe:!0},pH=(e,t,n)=>{const{cache:r,compare:o,suspense:i,fallbackData:a,revalidateOnMount:s,revalidateIfStale:l,refreshInterval:c,refreshWhenHidden:u,refreshWhenOffline:d,keepPreviousData:f}=n,[p,h,y,w]=vo.get(r),[v,S]=q1(e),m=b.useRef(!1),C=b.useRef(!1),_=b.useRef(v),R=b.useRef(t),k=b.useRef(n),T=()=>k.current,P=()=>T().isVisible()&&T().isOnline(),[x,$,I,O]=NR(r,v),D=b.useRef({}).current,M=et(a)?n.fallback[v]:a,A=(q,ce)=>{for(const ue in D){const ie=ue;if(ie==="data"){if(!o(q[ie],ce[ie])&&(!et(q[ie])||!o(W,ce[ie])))return!1}else if(ce[ie]!==q[ie])return!1}return!0},N=b.useMemo(()=>{const q=!v||!t?!1:et(s)?T().isPaused()||i?!1:et(l)?!0:l:s,ce=be=>{const Te=ko(be);return delete Te._k,q?{isValidating:!0,isLoading:!0,...Te}:Te},ue=x(),ie=O(),te=ce(ue),de=ue===ie?te:ce(ie);let Q=te;return[()=>{const be=ce(x());return A(be,Q)?(Q.data=be.data,Q.isLoading=be.isLoading,Q.isValidating=be.isValidating,Q.error=be.error,Q):(Q=be,be)},()=>de]},[r,v]),E=zz.useSyncExternalStore(b.useCallback(q=>I(v,(ce,ue)=>{A(ue,ce)||q()}),[r,v]),N[0],N[1]),L=!m.current,B=p[v]&&p[v].length>0,H=E.data,z=et(H)?M:H,j=E.error,F=b.useRef(z),W=f?et(H)?F.current:H:z,V=B&&!et(j)?!1:L&&!et(s)?s:T().isPaused()?!1:i?et(z)?!1:l:et(z)||l,ee=!!(v&&t&&L&&V),re=et(E.isValidating)?ee:E.isValidating,U=et(E.isLoading)?ee:E.isLoading,K=b.useCallback(async q=>{const ce=R.current;if(!v||!ce||C.current||T().isPaused())return!1;let ue,ie,te=!0;const de=q||{},Q=!y[v]||!de.dedupe,be=()=>Wx?!C.current&&v===_.current&&m.current:v===_.current,Te={isValidating:!1,isLoading:!1},we=()=>{$(Te)},ge=()=>{const Se=y[v];Se&&Se[1]===ie&&delete y[v]},le={isValidating:!0};et(x().data)&&(le.isLoading=!0);try{if(Q&&($(le),n.loadingTimeout&&et(x().data)&&setTimeout(()=>{te&&be()&&T().onLoadingSlow(v,n)},n.loadingTimeout),y[v]=[ce(S),Bm()]),[ue,ie]=y[v],ue=await ue,Q&&setTimeout(ge,n.dedupingInterval),!y[v]||y[v][1]!==ie)return Q&&be()&&T().onDiscarded(v),!1;Te.error=Pn;const Se=h[v];if(!et(Se)&&(ie<=Se[0]||ie<=Se[1]||Se[1]===0))return we(),Q&&be()&&T().onDiscarded(v),!1;const ye=x().data;Te.data=o(ye,ue)?ye:ue,Q&&be()&&T().onSuccess(ue,v,n)}catch(Se){ge();const ye=T(),{shouldRetryOnError:Ge}=ye;ye.isPaused()||(Te.error=Se,Q&&be()&&(ye.onError(Se,v,ye),(Ge===!0||Or(Ge)&&Ge(Se))&&(!T().revalidateOnFocus||!T().revalidateOnReconnect||P())&&ye.onErrorRetry(Se,v,ye,Pe=>{const Re=p[v];Re&&Re[0]&&Re[0](ol.ERROR_REVALIDATE_EVENT,Pe)},{retryCount:(de.retryCount||0)+1,dedupe:!0})))}return te=!1,we(),!0},[v,r]),se=b.useCallback((...q)=>BR(r,_.current,...q),[]);if(Xu(()=>{R.current=t,k.current=n,et(H)||(F.current=H)}),Xu(()=>{if(!v)return;const q=K.bind(Pn,Fg);let ce=0;const ie=fH(v,p,(te,de={})=>{if(te==ol.FOCUS_EVENT){const Q=Date.now();T().revalidateOnFocus&&Q>ce&&P()&&(ce=Q+T().focusThrottleInterval,q())}else if(te==ol.RECONNECT_EVENT)T().revalidateOnReconnect&&P()&&q();else{if(te==ol.MUTATE_EVENT)return K();if(te==ol.ERROR_REVALIDATE_EVENT)return K(de)}});return C.current=!1,_.current=v,m.current=!0,$({_k:S}),V&&(et(z)||hc?q():Yz(q)),()=>{C.current=!0,ie()}},[v]),Xu(()=>{let q;function ce(){const ie=Or(c)?c(x().data):c;ie&&q!==-1&&(q=setTimeout(ue,ie))}function ue(){!x().error&&(u||T().isVisible())&&(d||T().isOnline())?K(Fg).then(ce):ce()}return ce(),()=>{q&&(clearTimeout(q),q=-1)}},[c,u,d,v]),b.useDebugValue(W),i&&et(z)&&v){if(!Wx&&hc)throw new Error("Fallback data is required when using suspense in SSR.");R.current=t,k.current=n,C.current=!1;const q=w[v];if(!et(q)){const ce=se(q);qx(ce)}if(et(j)){const ce=K(Fg);et(W)||(ce.status="fulfilled",ce.value=!0),qx(ce)}else throw j}return{mutate:se,get data(){return D.data=!0,W},get error(){return D.error=!0,j},get isValidating(){return D.isValidating=!0,re},get isLoading(){return D.isLoading=!0,U}}},gH=Yu.defineProperty(rH,"defaultValue",{value:HR}),nt=dH(pH);function UR(e,t){return function(){return e.apply(t,arguments)}}const{toString:hH}=Object.prototype,{getPrototypeOf:Z1}=Object,Cp=(e=>t=>{const n=hH.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Wr=e=>(e=e.toLowerCase(),t=>Cp(t)===e),_p=e=>t=>typeof t===e,{isArray:Os}=Array,mc=_p("undefined");function mH(e){return e!==null&&!mc(e)&&e.constructor!==null&&!mc(e.constructor)&&Xn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const GR=Wr("ArrayBuffer");function vH(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&GR(e.buffer),t}const yH=_p("string"),Xn=_p("function"),qR=_p("number"),Rp=e=>e!==null&&typeof e=="object",bH=e=>e===!0||e===!1,Ju=e=>{if(Cp(e)!=="object")return!1;const t=Z1(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},xH=Wr("Date"),SH=Wr("File"),wH=Wr("Blob"),CH=Wr("FileList"),_H=e=>Rp(e)&&Xn(e.pipe),RH=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Xn(e.append)&&((t=Cp(e))==="formdata"||t==="object"&&Xn(e.toString)&&e.toString()==="[object FormData]"))},TH=Wr("URLSearchParams"),[PH,kH,$H,EH]=["ReadableStream","Request","Response","Headers"].map(Wr),MH=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Oc(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,o;if(typeof e!="object"&&(e=[e]),Os(e))for(r=0,o=e.length;r0;)if(o=n[r],t===o.toLowerCase())return o;return null}const ji=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,ZR=e=>!mc(e)&&e!==ji;function Hm(){const{caseless:e}=ZR(this)&&this||{},t={},n=(r,o)=>{const i=e&&KR(t,o)||o;Ju(t[i])&&Ju(r)?t[i]=Hm(t[i],r):Ju(r)?t[i]=Hm({},r):Os(r)?t[i]=r.slice():t[i]=r};for(let r=0,o=arguments.length;r(Oc(t,(o,i)=>{n&&Xn(o)?e[i]=UR(o,n):e[i]=o},{allOwnKeys:r}),e),OH=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),LH=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},AH=(e,t,n,r)=>{let o,i,a;const s={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)a=o[i],(!r||r(a,e,t))&&!s[a]&&(t[a]=e[a],s[a]=!0);e=n!==!1&&Z1(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},NH=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},DH=e=>{if(!e)return null;if(Os(e))return e;let t=e.length;if(!qR(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},jH=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Z1(Uint8Array)),FH=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let o;for(;(o=r.next())&&!o.done;){const i=o.value;t.call(e,i[0],i[1])}},BH=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},zH=Wr("HTMLFormElement"),HH=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,o){return r.toUpperCase()+o}),Kx=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),VH=Wr("RegExp"),QR=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Oc(n,(o,i)=>{let a;(a=t(o,i,e))!==!1&&(r[i]=a||o)}),Object.defineProperties(e,r)},WH=e=>{QR(e,(t,n)=>{if(Xn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Xn(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},UH=(e,t)=>{const n={},r=o=>{o.forEach(i=>{n[i]=!0})};return Os(e)?r(e):r(String(e).split(t)),n},GH=()=>{},qH=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,Bg="abcdefghijklmnopqrstuvwxyz",Zx="0123456789",YR={DIGIT:Zx,ALPHA:Bg,ALPHA_DIGIT:Bg+Bg.toUpperCase()+Zx},KH=(e=16,t=YR.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function ZH(e){return!!(e&&Xn(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const QH=e=>{const t=new Array(10),n=(r,o)=>{if(Rp(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[o]=r;const i=Os(r)?[]:{};return Oc(r,(a,s)=>{const l=n(a,o+1);!mc(l)&&(i[s]=l)}),t[o]=void 0,i}}return r};return n(e,0)},YH=Wr("AsyncFunction"),XH=e=>e&&(Rp(e)||Xn(e))&&Xn(e.then)&&Xn(e.catch),XR=((e,t)=>e?setImmediate:t?((n,r)=>(ji.addEventListener("message",({source:o,data:i})=>{o===ji&&i===n&&r.length&&r.shift()()},!1),o=>{r.push(o),ji.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Xn(ji.postMessage)),JH=typeof queueMicrotask<"u"?queueMicrotask.bind(ji):typeof process<"u"&&process.nextTick||XR,G={isArray:Os,isArrayBuffer:GR,isBuffer:mH,isFormData:RH,isArrayBufferView:vH,isString:yH,isNumber:qR,isBoolean:bH,isObject:Rp,isPlainObject:Ju,isReadableStream:PH,isRequest:kH,isResponse:$H,isHeaders:EH,isUndefined:mc,isDate:xH,isFile:SH,isBlob:wH,isRegExp:VH,isFunction:Xn,isStream:_H,isURLSearchParams:TH,isTypedArray:jH,isFileList:CH,forEach:Oc,merge:Hm,extend:IH,trim:MH,stripBOM:OH,inherits:LH,toFlatObject:AH,kindOf:Cp,kindOfTest:Wr,endsWith:NH,toArray:DH,forEachEntry:FH,matchAll:BH,isHTMLForm:zH,hasOwnProperty:Kx,hasOwnProp:Kx,reduceDescriptors:QR,freezeMethods:WH,toObjectSet:UH,toCamelCase:HH,noop:GH,toFiniteNumber:qH,findKey:KR,global:ji,isContextDefined:ZR,ALPHABET:YR,generateString:KH,isSpecCompliantForm:ZH,toJSONObject:QH,isAsyncFn:YH,isThenable:XH,setImmediate:XR,asap:JH};function ze(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}G.inherits(ze,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:G.toJSONObject(this.config),code:this.code,status:this.status}}});const JR=ze.prototype,e3={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{e3[e]={value:e}});Object.defineProperties(ze,e3);Object.defineProperty(JR,"isAxiosError",{value:!0});ze.from=(e,t,n,r,o,i)=>{const a=Object.create(JR);return G.toFlatObject(e,a,function(l){return l!==Error.prototype},s=>s!=="isAxiosError"),ze.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};const eV=null;function Vm(e){return G.isPlainObject(e)||G.isArray(e)}function t3(e){return G.endsWith(e,"[]")?e.slice(0,-2):e}function Qx(e,t,n){return e?e.concat(t).map(function(o,i){return o=t3(o),!n&&i?"["+o+"]":o}).join(n?".":""):t}function tV(e){return G.isArray(e)&&!e.some(Vm)}const nV=G.toFlatObject(G,{},null,function(t){return/^is[A-Z]/.test(t)});function Tp(e,t,n){if(!G.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=G.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(y,w){return!G.isUndefined(w[y])});const r=n.metaTokens,o=n.visitor||u,i=n.dots,a=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&G.isSpecCompliantForm(t);if(!G.isFunction(o))throw new TypeError("visitor must be a function");function c(h){if(h===null)return"";if(G.isDate(h))return h.toISOString();if(!l&&G.isBlob(h))throw new ze("Blob is not supported. Use a Buffer instead.");return G.isArrayBuffer(h)||G.isTypedArray(h)?l&&typeof Blob=="function"?new Blob([h]):Buffer.from(h):h}function u(h,y,w){let v=h;if(h&&!w&&typeof h=="object"){if(G.endsWith(y,"{}"))y=r?y:y.slice(0,-2),h=JSON.stringify(h);else if(G.isArray(h)&&tV(h)||(G.isFileList(h)||G.endsWith(y,"[]"))&&(v=G.toArray(h)))return y=t3(y),v.forEach(function(m,C){!(G.isUndefined(m)||m===null)&&t.append(a===!0?Qx([y],C,i):a===null?y:y+"[]",c(m))}),!1}return Vm(h)?!0:(t.append(Qx(w,y,i),c(h)),!1)}const d=[],f=Object.assign(nV,{defaultVisitor:u,convertValue:c,isVisitable:Vm});function p(h,y){if(!G.isUndefined(h)){if(d.indexOf(h)!==-1)throw Error("Circular reference detected in "+y.join("."));d.push(h),G.forEach(h,function(v,S){(!(G.isUndefined(v)||v===null)&&o.call(t,v,G.isString(S)?S.trim():S,y,f))===!0&&p(v,y?y.concat(S):[S])}),d.pop()}}if(!G.isObject(e))throw new TypeError("data must be an object");return p(e),t}function Yx(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Q1(e,t){this._pairs=[],e&&Tp(e,this,t)}const n3=Q1.prototype;n3.append=function(t,n){this._pairs.push([t,n])};n3.toString=function(t){const n=t?function(r){return t.call(this,r,Yx)}:Yx;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};function rV(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function r3(e,t,n){if(!t)return e;const r=n&&n.encode||rV,o=n&&n.serialize;let i;if(o?i=o(t,n):i=G.isURLSearchParams(t)?t.toString():new Q1(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class Xx{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){G.forEach(this.handlers,function(r){r!==null&&t(r)})}}const o3={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},oV=typeof URLSearchParams<"u"?URLSearchParams:Q1,iV=typeof FormData<"u"?FormData:null,aV=typeof Blob<"u"?Blob:null,sV={isBrowser:!0,classes:{URLSearchParams:oV,FormData:iV,Blob:aV},protocols:["http","https","file","blob","url","data"]},Y1=typeof window<"u"&&typeof document<"u",Wm=typeof navigator=="object"&&navigator||void 0,lV=Y1&&(!Wm||["ReactNative","NativeScript","NS"].indexOf(Wm.product)<0),cV=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",uV=Y1&&window.location.href||"http://localhost",dV=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Y1,hasStandardBrowserEnv:lV,hasStandardBrowserWebWorkerEnv:cV,navigator:Wm,origin:uV},Symbol.toStringTag,{value:"Module"})),Bn={...dV,...sV};function fV(e,t){return Tp(e,new Bn.classes.URLSearchParams,Object.assign({visitor:function(n,r,o,i){return Bn.isNode&&G.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},t))}function pV(e){return G.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function gV(e){const t={},n=Object.keys(e);let r;const o=n.length;let i;for(r=0;r=n.length;return a=!a&&G.isArray(o)?o.length:a,l?(G.hasOwnProp(o,a)?o[a]=[o[a],r]:o[a]=r,!s):((!o[a]||!G.isObject(o[a]))&&(o[a]=[]),t(n,r,o[a],i)&&G.isArray(o[a])&&(o[a]=gV(o[a])),!s)}if(G.isFormData(e)&&G.isFunction(e.entries)){const n={};return G.forEachEntry(e,(r,o)=>{t(pV(r),o,n,0)}),n}return null}function hV(e,t,n){if(G.isString(e))try{return(t||JSON.parse)(e),G.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(0,JSON.stringify)(e)}const Lc={transitional:o3,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",o=r.indexOf("application/json")>-1,i=G.isObject(t);if(i&&G.isHTMLForm(t)&&(t=new FormData(t)),G.isFormData(t))return o?JSON.stringify(i3(t)):t;if(G.isArrayBuffer(t)||G.isBuffer(t)||G.isStream(t)||G.isFile(t)||G.isBlob(t)||G.isReadableStream(t))return t;if(G.isArrayBufferView(t))return t.buffer;if(G.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return fV(t,this.formSerializer).toString();if((s=G.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Tp(s?{"files[]":t}:t,l&&new l,this.formSerializer)}}return i||o?(n.setContentType("application/json",!1),hV(t)):t}],transformResponse:[function(t){const n=this.transitional||Lc.transitional,r=n&&n.forcedJSONParsing,o=this.responseType==="json";if(G.isResponse(t)||G.isReadableStream(t))return t;if(t&&G.isString(t)&&(r&&!this.responseType||o)){const a=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t)}catch(s){if(a)throw s.name==="SyntaxError"?ze.from(s,ze.ERR_BAD_RESPONSE,this,null,this.response):s}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Bn.classes.FormData,Blob:Bn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};G.forEach(["delete","get","head","post","put","patch"],e=>{Lc.headers[e]={}});const mV=G.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),vV=e=>{const t={};let n,r,o;return e&&e.split(` -`).forEach(function(a){o=a.indexOf(":"),n=a.substring(0,o).trim().toLowerCase(),r=a.substring(o+1).trim(),!(!n||t[n]&&mV[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},Jx=Symbol("internals");function il(e){return e&&String(e).trim().toLowerCase()}function ed(e){return e===!1||e==null?e:G.isArray(e)?e.map(ed):String(e)}function yV(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const bV=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function zg(e,t,n,r,o){if(G.isFunction(r))return r.call(this,t,n);if(o&&(t=n),!!G.isString(t)){if(G.isString(r))return t.indexOf(r)!==-1;if(G.isRegExp(r))return r.test(t)}}function xV(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function SV(e,t){const n=G.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(o,i,a){return this[r].call(this,t,o,i,a)},configurable:!0})})}class zn{constructor(t){t&&this.set(t)}set(t,n,r){const o=this;function i(s,l,c){const u=il(l);if(!u)throw new Error("header name must be a non-empty string");const d=G.findKey(o,u);(!d||o[d]===void 0||c===!0||c===void 0&&o[d]!==!1)&&(o[d||l]=ed(s))}const a=(s,l)=>G.forEach(s,(c,u)=>i(c,u,l));if(G.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(G.isString(t)&&(t=t.trim())&&!bV(t))a(vV(t),n);else if(G.isHeaders(t))for(const[s,l]of t.entries())i(l,s,r);else t!=null&&i(n,t,r);return this}get(t,n){if(t=il(t),t){const r=G.findKey(this,t);if(r){const o=this[r];if(!n)return o;if(n===!0)return yV(o);if(G.isFunction(n))return n.call(this,o,r);if(G.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=il(t),t){const r=G.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||zg(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let o=!1;function i(a){if(a=il(a),a){const s=G.findKey(r,a);s&&(!n||zg(r,r[s],s,n))&&(delete r[s],o=!0)}}return G.isArray(t)?t.forEach(i):i(t),o}clear(t){const n=Object.keys(this);let r=n.length,o=!1;for(;r--;){const i=n[r];(!t||zg(this,this[i],i,t,!0))&&(delete this[i],o=!0)}return o}normalize(t){const n=this,r={};return G.forEach(this,(o,i)=>{const a=G.findKey(r,i);if(a){n[a]=ed(o),delete n[i];return}const s=t?xV(i):String(i).trim();s!==i&&delete n[i],n[s]=ed(o),r[s]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return G.forEach(this,(r,o)=>{r!=null&&r!==!1&&(n[o]=t&&G.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(o=>r.set(o)),r}static accessor(t){const r=(this[Jx]=this[Jx]={accessors:{}}).accessors,o=this.prototype;function i(a){const s=il(a);r[s]||(SV(o,a),r[s]=!0)}return G.isArray(t)?t.forEach(i):i(t),this}}zn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);G.reduceDescriptors(zn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});G.freezeMethods(zn);function Hg(e,t){const n=this||Lc,r=t||n,o=zn.from(r.headers);let i=r.data;return G.forEach(e,function(s){i=s.call(n,i,o.normalize(),t?t.status:void 0)}),o.normalize(),i}function a3(e){return!!(e&&e.__CANCEL__)}function Ls(e,t,n){ze.call(this,e??"canceled",ze.ERR_CANCELED,t,n),this.name="CanceledError"}G.inherits(Ls,ze,{__CANCEL__:!0});function s3(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new ze("Request failed with status code "+n.status,[ze.ERR_BAD_REQUEST,ze.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function wV(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function CV(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o=0,i=0,a;return t=t!==void 0?t:1e3,function(l){const c=Date.now(),u=r[i];a||(a=c),n[o]=l,r[o]=c;let d=i,f=0;for(;d!==o;)f+=n[d++],d=d%e;if(o=(o+1)%e,o===i&&(i=(i+1)%e),c-a{n=u,o=null,i&&(clearTimeout(i),i=null),e.apply(null,c)};return[(...c)=>{const u=Date.now(),d=u-n;d>=r?a(c,u):(o=c,i||(i=setTimeout(()=>{i=null,a(o)},r-d)))},()=>o&&a(o)]}const Xd=(e,t,n=3)=>{let r=0;const o=CV(50,250);return _V(i=>{const a=i.loaded,s=i.lengthComputable?i.total:void 0,l=a-r,c=o(l),u=a<=s;r=a;const d={loaded:a,total:s,progress:s?a/s:void 0,bytes:l,rate:c||void 0,estimated:c&&s&&u?(s-a)/c:void 0,event:i,lengthComputable:s!=null,[t?"download":"upload"]:!0};e(d)},n)},eS=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},tS=e=>(...t)=>G.asap(()=>e(...t)),RV=Bn.hasStandardBrowserEnv?function(){const t=Bn.navigator&&/(msie|trident)/i.test(Bn.navigator.userAgent),n=document.createElement("a");let r;function o(i){let a=i;return t&&(n.setAttribute("href",a),a=n.href),n.setAttribute("href",a),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=o(window.location.href),function(a){const s=G.isString(a)?o(a):a;return s.protocol===r.protocol&&s.host===r.host}}():function(){return function(){return!0}}(),TV=Bn.hasStandardBrowserEnv?{write(e,t,n,r,o,i){const a=[e+"="+encodeURIComponent(t)];G.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),G.isString(r)&&a.push("path="+r),G.isString(o)&&a.push("domain="+o),i===!0&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function PV(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function kV(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function l3(e,t){return e&&!PV(t)?kV(e,t):t}const nS=e=>e instanceof zn?{...e}:e;function sa(e,t){t=t||{};const n={};function r(c,u,d){return G.isPlainObject(c)&&G.isPlainObject(u)?G.merge.call({caseless:d},c,u):G.isPlainObject(u)?G.merge({},u):G.isArray(u)?u.slice():u}function o(c,u,d){if(G.isUndefined(u)){if(!G.isUndefined(c))return r(void 0,c,d)}else return r(c,u,d)}function i(c,u){if(!G.isUndefined(u))return r(void 0,u)}function a(c,u){if(G.isUndefined(u)){if(!G.isUndefined(c))return r(void 0,c)}else return r(void 0,u)}function s(c,u,d){if(d in t)return r(c,u);if(d in e)return r(void 0,c)}const l={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(c,u)=>o(nS(c),nS(u),!0)};return G.forEach(Object.keys(Object.assign({},e,t)),function(u){const d=l[u]||o,f=d(e[u],t[u],u);G.isUndefined(f)&&d!==s||(n[u]=f)}),n}const c3=e=>{const t=sa({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:o,xsrfCookieName:i,headers:a,auth:s}=t;t.headers=a=zn.from(a),t.url=r3(l3(t.baseURL,t.url),e.params,e.paramsSerializer),s&&a.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):"")));let l;if(G.isFormData(n)){if(Bn.hasStandardBrowserEnv||Bn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if((l=a.getContentType())!==!1){const[c,...u]=l?l.split(";").map(d=>d.trim()).filter(Boolean):[];a.setContentType([c||"multipart/form-data",...u].join("; "))}}if(Bn.hasStandardBrowserEnv&&(r&&G.isFunction(r)&&(r=r(t)),r||r!==!1&&RV(t.url))){const c=o&&i&&TV.read(i);c&&a.set(o,c)}return t},$V=typeof XMLHttpRequest<"u",EV=$V&&function(e){return new Promise(function(n,r){const o=c3(e);let i=o.data;const a=zn.from(o.headers).normalize();let{responseType:s,onUploadProgress:l,onDownloadProgress:c}=o,u,d,f,p,h;function y(){p&&p(),h&&h(),o.cancelToken&&o.cancelToken.unsubscribe(u),o.signal&&o.signal.removeEventListener("abort",u)}let w=new XMLHttpRequest;w.open(o.method.toUpperCase(),o.url,!0),w.timeout=o.timeout;function v(){if(!w)return;const m=zn.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),_={data:!s||s==="text"||s==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:m,config:e,request:w};s3(function(k){n(k),y()},function(k){r(k),y()},_),w=null}"onloadend"in w?w.onloadend=v:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)||setTimeout(v)},w.onabort=function(){w&&(r(new ze("Request aborted",ze.ECONNABORTED,e,w)),w=null)},w.onerror=function(){r(new ze("Network Error",ze.ERR_NETWORK,e,w)),w=null},w.ontimeout=function(){let C=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const _=o.transitional||o3;o.timeoutErrorMessage&&(C=o.timeoutErrorMessage),r(new ze(C,_.clarifyTimeoutError?ze.ETIMEDOUT:ze.ECONNABORTED,e,w)),w=null},i===void 0&&a.setContentType(null),"setRequestHeader"in w&&G.forEach(a.toJSON(),function(C,_){w.setRequestHeader(_,C)}),G.isUndefined(o.withCredentials)||(w.withCredentials=!!o.withCredentials),s&&s!=="json"&&(w.responseType=o.responseType),c&&([f,h]=Xd(c,!0),w.addEventListener("progress",f)),l&&w.upload&&([d,p]=Xd(l),w.upload.addEventListener("progress",d),w.upload.addEventListener("loadend",p)),(o.cancelToken||o.signal)&&(u=m=>{w&&(r(!m||m.type?new Ls(null,e,w):m),w.abort(),w=null)},o.cancelToken&&o.cancelToken.subscribe(u),o.signal&&(o.signal.aborted?u():o.signal.addEventListener("abort",u)));const S=wV(o.url);if(S&&Bn.protocols.indexOf(S)===-1){r(new ze("Unsupported protocol "+S+":",ze.ERR_BAD_REQUEST,e));return}w.send(i||null)})},MV=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,o;const i=function(c){if(!o){o=!0,s();const u=c instanceof Error?c:this.reason;r.abort(u instanceof ze?u:new Ls(u instanceof Error?u.message:u))}};let a=t&&setTimeout(()=>{a=null,i(new ze(`timeout ${t} of ms exceeded`,ze.ETIMEDOUT))},t);const s=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(c=>{c.unsubscribe?c.unsubscribe(i):c.removeEventListener("abort",i)}),e=null)};e.forEach(c=>c.addEventListener("abort",i));const{signal:l}=r;return l.unsubscribe=()=>G.asap(s),l}},IV=function*(e,t){let n=e.byteLength;if(n{const o=OV(e,t);let i=0,a,s=l=>{a||(a=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await o.next();if(c){s(),l.close();return}let d=u.byteLength;if(n){let f=i+=d;n(f)}l.enqueue(new Uint8Array(u))}catch(c){throw s(c),c}},cancel(l){return s(l),o.return()}},{highWaterMark:2})},Pp=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",u3=Pp&&typeof ReadableStream=="function",AV=Pp&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),d3=(e,...t)=>{try{return!!e(...t)}catch{return!1}},NV=u3&&d3(()=>{let e=!1;const t=new Request(Bn.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),oS=64*1024,Um=u3&&d3(()=>G.isReadableStream(new Response("").body)),Jd={stream:Um&&(e=>e.body)};Pp&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!Jd[t]&&(Jd[t]=G.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new ze(`Response type '${t}' is not supported`,ze.ERR_NOT_SUPPORT,r)})})})(new Response);const DV=async e=>{if(e==null)return 0;if(G.isBlob(e))return e.size;if(G.isSpecCompliantForm(e))return(await new Request(Bn.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(G.isArrayBufferView(e)||G.isArrayBuffer(e))return e.byteLength;if(G.isURLSearchParams(e)&&(e=e+""),G.isString(e))return(await AV(e)).byteLength},jV=async(e,t)=>{const n=G.toFiniteNumber(e.getContentLength());return n??DV(t)},FV=Pp&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:i,timeout:a,onDownloadProgress:s,onUploadProgress:l,responseType:c,headers:u,withCredentials:d="same-origin",fetchOptions:f}=c3(e);c=c?(c+"").toLowerCase():"text";let p=MV([o,i&&i.toAbortSignal()],a),h;const y=p&&p.unsubscribe&&(()=>{p.unsubscribe()});let w;try{if(l&&NV&&n!=="get"&&n!=="head"&&(w=await jV(u,r))!==0){let _=new Request(t,{method:"POST",body:r,duplex:"half"}),R;if(G.isFormData(r)&&(R=_.headers.get("content-type"))&&u.setContentType(R),_.body){const[k,T]=eS(w,Xd(tS(l)));r=rS(_.body,oS,k,T)}}G.isString(d)||(d=d?"include":"omit");const v="credentials"in Request.prototype;h=new Request(t,{...f,signal:p,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:v?d:void 0});let S=await fetch(h);const m=Um&&(c==="stream"||c==="response");if(Um&&(s||m&&y)){const _={};["status","statusText","headers"].forEach(P=>{_[P]=S[P]});const R=G.toFiniteNumber(S.headers.get("content-length")),[k,T]=s&&eS(R,Xd(tS(s),!0))||[];S=new Response(rS(S.body,oS,k,()=>{T&&T(),y&&y()}),_)}c=c||"text";let C=await Jd[G.findKey(Jd,c)||"text"](S,e);return!m&&y&&y(),await new Promise((_,R)=>{s3(_,R,{data:C,headers:zn.from(S.headers),status:S.status,statusText:S.statusText,config:e,request:h})})}catch(v){throw y&&y(),v&&v.name==="TypeError"&&/fetch/i.test(v.message)?Object.assign(new ze("Network Error",ze.ERR_NETWORK,e,h),{cause:v.cause||v}):ze.from(v,v&&v.code,e,h)}}),Gm={http:eV,xhr:EV,fetch:FV};G.forEach(Gm,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const iS=e=>`- ${e}`,BV=e=>G.isFunction(e)||e===null||e===!1,f3={getAdapter:e=>{e=G.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let i=0;i`adapter ${s} `+(l===!1?"is not supported by the environment":"is not available in the build"));let a=t?i.length>1?`since : -`+i.map(iS).join(` -`):" "+iS(i[0]):"as no adapter specified";throw new ze("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return r},adapters:Gm};function Vg(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ls(null,e)}function aS(e){return Vg(e),e.headers=zn.from(e.headers),e.data=Hg.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),f3.getAdapter(e.adapter||Lc.adapter)(e).then(function(r){return Vg(e),r.data=Hg.call(e,e.transformResponse,r),r.headers=zn.from(r.headers),r},function(r){return a3(r)||(Vg(e),r&&r.response&&(r.response.data=Hg.call(e,e.transformResponse,r.response),r.response.headers=zn.from(r.response.headers))),Promise.reject(r)})}const p3="1.7.7",X1={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{X1[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const sS={};X1.transitional=function(t,n,r){function o(i,a){return"[Axios v"+p3+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,s)=>{if(t===!1)throw new ze(o(a," has been removed"+(n?" in "+n:"")),ze.ERR_DEPRECATED);return n&&!sS[a]&&(sS[a]=!0,console.warn(o(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,s):!0}};function zV(e,t,n){if(typeof e!="object")throw new ze("options must be an object",ze.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const i=r[o],a=t[i];if(a){const s=e[i],l=s===void 0||a(s,i,e);if(l!==!0)throw new ze("option "+i+" must be "+l,ze.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new ze("Unknown option "+i,ze.ERR_BAD_OPTION)}}const qm={assertOptions:zV,validators:X1},No=qm.validators;class Wi{constructor(t){this.defaults=t,this.interceptors={request:new Xx,response:new Xx}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let o;Error.captureStackTrace?Error.captureStackTrace(o={}):o=new Error;const i=o.stack?o.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=sa(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:i}=n;r!==void 0&&qm.assertOptions(r,{silentJSONParsing:No.transitional(No.boolean),forcedJSONParsing:No.transitional(No.boolean),clarifyTimeoutError:No.transitional(No.boolean)},!1),o!=null&&(G.isFunction(o)?n.paramsSerializer={serialize:o}:qm.assertOptions(o,{encode:No.function,serialize:No.function},!0)),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&G.merge(i.common,i[n.method]);i&&G.forEach(["delete","get","head","post","put","patch","common"],h=>{delete i[h]}),n.headers=zn.concat(a,i);const s=[];let l=!0;this.interceptors.request.forEach(function(y){typeof y.runWhen=="function"&&y.runWhen(n)===!1||(l=l&&y.synchronous,s.unshift(y.fulfilled,y.rejected))});const c=[];this.interceptors.response.forEach(function(y){c.push(y.fulfilled,y.rejected)});let u,d=0,f;if(!l){const h=[aS.bind(this),void 0];for(h.unshift.apply(h,s),h.push.apply(h,c),f=h.length,u=Promise.resolve(n);d{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](o);r._listeners=null}),this.promise.then=o=>{let i;const a=new Promise(s=>{r.subscribe(s),i=s}).then(o);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,s){r.reason||(r.reason=new Ls(i,a,s),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new J1(function(o){t=o}),cancel:t}}}function HV(e){return function(n){return e.apply(null,n)}}function VV(e){return G.isObject(e)&&e.isAxiosError===!0}const Km={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Km).forEach(([e,t])=>{Km[t]=e});function g3(e){const t=new Wi(e),n=UR(Wi.prototype.request,t);return G.extend(n,Wi.prototype,t,{allOwnKeys:!0}),G.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return g3(sa(e,o))},n}const Bt=g3(Lc);Bt.Axios=Wi;Bt.CanceledError=Ls;Bt.CancelToken=J1;Bt.isCancel=a3;Bt.VERSION=p3;Bt.toFormData=Tp;Bt.AxiosError=ze;Bt.Cancel=Bt.CanceledError;Bt.all=function(t){return Promise.all(t)};Bt.spread=HV;Bt.isAxiosError=VV;Bt.mergeConfig=sa;Bt.AxiosHeaders=zn;Bt.formToJSON=e=>i3(G.isHTMLForm(e)?new FormData(e):e);Bt.getAdapter=f3.getAdapter;Bt.HttpStatusCode=Km;Bt.default=Bt;var WV=Error,UV=EvalError,GV=RangeError,qV=ReferenceError,h3=SyntaxError,Ac=TypeError,KV=URIError,ZV=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},n=Symbol("test"),r=Object(n);if(typeof n=="string"||Object.prototype.toString.call(n)!=="[object Symbol]"||Object.prototype.toString.call(r)!=="[object Symbol]")return!1;var o=42;t[n]=o;for(n in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var i=Object.getOwnPropertySymbols(t);if(i.length!==1||i[0]!==n||!Object.prototype.propertyIsEnumerable.call(t,n))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var a=Object.getOwnPropertyDescriptor(t,n);if(a.value!==o||a.enumerable!==!0)return!1}return!0},lS=typeof Symbol<"u"&&Symbol,QV=ZV,YV=function(){return typeof lS!="function"||typeof Symbol!="function"||typeof lS("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:QV()},Wg={__proto__:null,foo:{}},XV=Object,JV=function(){return{__proto__:Wg}.foo===Wg.foo&&!(Wg instanceof XV)},eW="Function.prototype.bind called on incompatible ",tW=Object.prototype.toString,nW=Math.max,rW="[object Function]",cS=function(t,n){for(var r=[],o=0;o"u"||!Yt?Qe:Yt(Uint8Array),Gi={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Qe:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Qe:ArrayBuffer,"%ArrayIteratorPrototype%":wa&&Yt?Yt([][Symbol.iterator]()):Qe,"%AsyncFromSyncIteratorPrototype%":Qe,"%AsyncFunction%":Ra,"%AsyncGenerator%":Ra,"%AsyncGeneratorFunction%":Ra,"%AsyncIteratorPrototype%":Ra,"%Atomics%":typeof Atomics>"u"?Qe:Atomics,"%BigInt%":typeof BigInt>"u"?Qe:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Qe:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Qe:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Qe:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":fW,"%eval%":eval,"%EvalError%":pW,"%Float32Array%":typeof Float32Array>"u"?Qe:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Qe:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Qe:FinalizationRegistry,"%Function%":m3,"%GeneratorFunction%":Ra,"%Int8Array%":typeof Int8Array>"u"?Qe:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Qe:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Qe:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":wa&&Yt?Yt(Yt([][Symbol.iterator]())):Qe,"%JSON%":typeof JSON=="object"?JSON:Qe,"%Map%":typeof Map>"u"?Qe:Map,"%MapIteratorPrototype%":typeof Map>"u"||!wa||!Yt?Qe:Yt(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Qe:Promise,"%Proxy%":typeof Proxy>"u"?Qe:Proxy,"%RangeError%":gW,"%ReferenceError%":hW,"%Reflect%":typeof Reflect>"u"?Qe:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Qe:Set,"%SetIteratorPrototype%":typeof Set>"u"||!wa||!Yt?Qe:Yt(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Qe:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":wa&&Yt?Yt(""[Symbol.iterator]()):Qe,"%Symbol%":wa?Symbol:Qe,"%SyntaxError%":Ss,"%ThrowTypeError%":vW,"%TypedArray%":bW,"%TypeError%":es,"%Uint8Array%":typeof Uint8Array>"u"?Qe:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Qe:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Qe:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Qe:Uint32Array,"%URIError%":mW,"%WeakMap%":typeof WeakMap>"u"?Qe:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Qe:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Qe:WeakSet};if(Yt)try{null.error}catch(e){var xW=Yt(Yt(e));Gi["%Error.prototype%"]=xW}var SW=function e(t){var n;if(t==="%AsyncFunction%")n=Ug("async function () {}");else if(t==="%GeneratorFunction%")n=Ug("function* () {}");else if(t==="%AsyncGeneratorFunction%")n=Ug("async function* () {}");else if(t==="%AsyncGenerator%"){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if(t==="%AsyncIteratorPrototype%"){var o=e("%AsyncGenerator%");o&&Yt&&(n=Yt(o.prototype))}return Gi[t]=n,n},uS={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Nc=ev,ef=dW,wW=Nc.call(Function.call,Array.prototype.concat),CW=Nc.call(Function.apply,Array.prototype.splice),dS=Nc.call(Function.call,String.prototype.replace),tf=Nc.call(Function.call,String.prototype.slice),_W=Nc.call(Function.call,RegExp.prototype.exec),RW=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,TW=/\\(\\)?/g,PW=function(t){var n=tf(t,0,1),r=tf(t,-1);if(n==="%"&&r!=="%")throw new Ss("invalid intrinsic syntax, expected closing `%`");if(r==="%"&&n!=="%")throw new Ss("invalid intrinsic syntax, expected opening `%`");var o=[];return dS(t,RW,function(i,a,s,l){o[o.length]=s?dS(l,TW,"$1"):a||i}),o},kW=function(t,n){var r=t,o;if(ef(uS,r)&&(o=uS[r],r="%"+o[0]+"%"),ef(Gi,r)){var i=Gi[r];if(i===Ra&&(i=SW(r)),typeof i>"u"&&!n)throw new es("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:o,name:r,value:i}}throw new Ss("intrinsic "+t+" does not exist!")},As=function(t,n){if(typeof t!="string"||t.length===0)throw new es("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof n!="boolean")throw new es('"allowMissing" argument must be a boolean');if(_W(/^%?[^%]*%?$/,t)===null)throw new Ss("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=PW(t),o=r.length>0?r[0]:"",i=kW("%"+o+"%",n),a=i.name,s=i.value,l=!1,c=i.alias;c&&(o=c[0],CW(r,wW([0,1],c)));for(var u=1,d=!0;u=r.length){var y=Ui(s,f);d=!!y,d&&"get"in y&&!("originalValue"in y.get)?s=y.get:s=s[f]}else d=ef(s,f),s=s[f];d&&!l&&(Gi[a]=s)}}return s},v3={exports:{}},qg,fS;function tv(){if(fS)return qg;fS=1;var e=As,t=e("%Object.defineProperty%",!0)||!1;if(t)try{t({},"a",{value:1})}catch{t=!1}return qg=t,qg}var $W=As,td=$W("%Object.getOwnPropertyDescriptor%",!0);if(td)try{td([],"length")}catch{td=null}var y3=td,pS=tv(),EW=h3,Ca=Ac,gS=y3,MW=function(t,n,r){if(!t||typeof t!="object"&&typeof t!="function")throw new Ca("`obj` must be an object or a function`");if(typeof n!="string"&&typeof n!="symbol")throw new Ca("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new Ca("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new Ca("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new Ca("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new Ca("`loose`, if provided, must be a boolean");var o=arguments.length>3?arguments[3]:null,i=arguments.length>4?arguments[4]:null,a=arguments.length>5?arguments[5]:null,s=arguments.length>6?arguments[6]:!1,l=!!gS&&gS(t,n);if(pS)pS(t,n,{configurable:a===null&&l?l.configurable:!a,enumerable:o===null&&l?l.enumerable:!o,value:r,writable:i===null&&l?l.writable:!i});else if(s||!o&&!i&&!a)t[n]=r;else throw new EW("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Zm=tv(),b3=function(){return!!Zm};b3.hasArrayLengthDefineBug=function(){if(!Zm)return null;try{return Zm([],"length",{value:1}).length!==1}catch{return!0}};var IW=b3,OW=As,hS=MW,LW=IW(),mS=y3,vS=Ac,AW=OW("%Math.floor%"),NW=function(t,n){if(typeof t!="function")throw new vS("`fn` is not a function");if(typeof n!="number"||n<0||n>4294967295||AW(n)!==n)throw new vS("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],o=!0,i=!0;if("length"in t&&mS){var a=mS(t,"length");a&&!a.configurable&&(o=!1),a&&!a.writable&&(i=!1)}return(o||i||!r)&&(LW?hS(t,"length",n,!0,!0):hS(t,"length",n)),t};(function(e){var t=ev,n=As,r=NW,o=Ac,i=n("%Function.prototype.apply%"),a=n("%Function.prototype.call%"),s=n("%Reflect.apply%",!0)||t.call(a,i),l=tv(),c=n("%Math.max%");e.exports=function(f){if(typeof f!="function")throw new o("a function is required");var p=s(t,a,arguments);return r(p,1+c(0,f.length-(arguments.length-1)),!0)};var u=function(){return s(t,i,arguments)};l?l(e.exports,"apply",{value:u}):e.exports.apply=u})(v3);var DW=v3.exports,x3=As,S3=DW,jW=S3(x3("String.prototype.indexOf")),FW=function(t,n){var r=x3(t,!!n);return typeof r=="function"&&jW(t,".prototype.")>-1?S3(r):r};const BW={},zW=Object.freeze(Object.defineProperty({__proto__:null,default:BW},Symbol.toStringTag,{value:"Module"})),HW=W3(zW);var nv=typeof Map=="function"&&Map.prototype,Kg=Object.getOwnPropertyDescriptor&&nv?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,nf=nv&&Kg&&typeof Kg.get=="function"?Kg.get:null,yS=nv&&Map.prototype.forEach,rv=typeof Set=="function"&&Set.prototype,Zg=Object.getOwnPropertyDescriptor&&rv?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,rf=rv&&Zg&&typeof Zg.get=="function"?Zg.get:null,bS=rv&&Set.prototype.forEach,VW=typeof WeakMap=="function"&&WeakMap.prototype,Al=VW?WeakMap.prototype.has:null,WW=typeof WeakSet=="function"&&WeakSet.prototype,Nl=WW?WeakSet.prototype.has:null,UW=typeof WeakRef=="function"&&WeakRef.prototype,xS=UW?WeakRef.prototype.deref:null,GW=Boolean.prototype.valueOf,qW=Object.prototype.toString,KW=Function.prototype.toString,ZW=String.prototype.match,ov=String.prototype.slice,ei=String.prototype.replace,QW=String.prototype.toUpperCase,SS=String.prototype.toLowerCase,w3=RegExp.prototype.test,wS=Array.prototype.concat,Jr=Array.prototype.join,YW=Array.prototype.slice,CS=Math.floor,Qm=typeof BigInt=="function"?BigInt.prototype.valueOf:null,Qg=Object.getOwnPropertySymbols,Ym=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,ws=typeof Symbol=="function"&&typeof Symbol.iterator=="object",Sn=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===ws||!0)?Symbol.toStringTag:null,C3=Object.prototype.propertyIsEnumerable,_S=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function RS(e,t){if(e===1/0||e===-1/0||e!==e||e&&e>-1e3&&e<1e3||w3.call(/e/,t))return t;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof e=="number"){var r=e<0?-CS(-e):CS(e);if(r!==e){var o=String(r),i=ov.call(t,o.length+1);return ei.call(o,n,"$&_")+"."+ei.call(ei.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return ei.call(t,n,"$&_")}var Xm=HW,TS=Xm.custom,PS=T3(TS)?TS:null,_3={__proto__:null,double:'"',single:"'"},XW={__proto__:null,double:/(["\\])/g,single:/(['\\])/g},JW=function e(t,n,r,o){var i=n||{};if(ho(i,"quoteStyle")&&!ho(_3,i.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(ho(i,"maxStringLength")&&(typeof i.maxStringLength=="number"?i.maxStringLength<0&&i.maxStringLength!==1/0:i.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var a=ho(i,"customInspect")?i.customInspect:!0;if(typeof a!="boolean"&&a!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(ho(i,"indent")&&i.indent!==null&&i.indent!==" "&&!(parseInt(i.indent,10)===i.indent&&i.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(ho(i,"numericSeparator")&&typeof i.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var s=i.numericSeparator;if(typeof t>"u")return"undefined";if(t===null)return"null";if(typeof t=="boolean")return t?"true":"false";if(typeof t=="string")return k3(t,i);if(typeof t=="number"){if(t===0)return 1/0/t>0?"0":"-0";var l=String(t);return s?RS(t,l):l}if(typeof t=="bigint"){var c=String(t)+"n";return s?RS(t,c):c}var u=typeof i.depth>"u"?5:i.depth;if(typeof r>"u"&&(r=0),r>=u&&u>0&&typeof t=="object")return Jm(t)?"[Array]":"[Object]";var d=vU(i,r);if(typeof o>"u")o=[];else if(P3(o,t)>=0)return"[Circular]";function f(O,D,M){if(D&&(o=YW.call(o),o.push(D)),M){var A={depth:i.depth};return ho(i,"quoteStyle")&&(A.quoteStyle=i.quoteStyle),e(O,A,r+1,o)}return e(O,i,r+1,o)}if(typeof t=="function"&&!kS(t)){var p=lU(t),h=Cu(t,f);return"[Function"+(p?": "+p:" (anonymous)")+"]"+(h.length>0?" { "+Jr.call(h,", ")+" }":"")}if(T3(t)){var y=ws?ei.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):Ym.call(t);return typeof t=="object"&&!ws?al(y):y}if(gU(t)){for(var w="<"+SS.call(String(t.nodeName)),v=t.attributes||[],S=0;S",w}if(Jm(t)){if(t.length===0)return"[]";var m=Cu(t,f);return d&&!mU(m)?"["+e0(m,d)+"]":"[ "+Jr.call(m,", ")+" ]"}if(nU(t)){var C=Cu(t,f);return!("cause"in Error.prototype)&&"cause"in t&&!C3.call(t,"cause")?"{ ["+String(t)+"] "+Jr.call(wS.call("[cause]: "+f(t.cause),C),", ")+" }":C.length===0?"["+String(t)+"]":"{ ["+String(t)+"] "+Jr.call(C,", ")+" }"}if(typeof t=="object"&&a){if(PS&&typeof t[PS]=="function"&&Xm)return Xm(t,{depth:u-r});if(a!=="symbol"&&typeof t.inspect=="function")return t.inspect()}if(cU(t)){var _=[];return yS&&yS.call(t,function(O,D){_.push(f(D,t,!0)+" => "+f(O,t))}),$S("Map",nf.call(t),_,d)}if(fU(t)){var R=[];return bS&&bS.call(t,function(O){R.push(f(O,t))}),$S("Set",rf.call(t),R,d)}if(uU(t))return Yg("WeakMap");if(pU(t))return Yg("WeakSet");if(dU(t))return Yg("WeakRef");if(oU(t))return al(f(Number(t)));if(aU(t))return al(f(Qm.call(t)));if(iU(t))return al(GW.call(t));if(rU(t))return al(f(String(t)));if(typeof window<"u"&&t===window)return"{ [object Window] }";if(typeof globalThis<"u"&&t===globalThis||typeof jl<"u"&&t===jl)return"{ [object globalThis] }";if(!tU(t)&&!kS(t)){var k=Cu(t,f),T=_S?_S(t)===Object.prototype:t instanceof Object||t.constructor===Object,P=t instanceof Object?"":"null prototype",x=!T&&Sn&&Object(t)===t&&Sn in t?ov.call(Ci(t),8,-1):P?"Object":"",$=T||typeof t.constructor!="function"?"":t.constructor.name?t.constructor.name+" ":"",I=$+(x||P?"["+Jr.call(wS.call([],x||[],P||[]),": ")+"] ":"");return k.length===0?I+"{}":d?I+"{"+e0(k,d)+"}":I+"{ "+Jr.call(k,", ")+" }"}return String(t)};function R3(e,t,n){var r=n.quoteStyle||t,o=_3[r];return o+e+o}function eU(e){return ei.call(String(e),/"/g,""")}function Jm(e){return Ci(e)==="[object Array]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function tU(e){return Ci(e)==="[object Date]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function kS(e){return Ci(e)==="[object RegExp]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function nU(e){return Ci(e)==="[object Error]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function rU(e){return Ci(e)==="[object String]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function oU(e){return Ci(e)==="[object Number]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function iU(e){return Ci(e)==="[object Boolean]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function T3(e){if(ws)return e&&typeof e=="object"&&e instanceof Symbol;if(typeof e=="symbol")return!0;if(!e||typeof e!="object"||!Ym)return!1;try{return Ym.call(e),!0}catch{}return!1}function aU(e){if(!e||typeof e!="object"||!Qm)return!1;try{return Qm.call(e),!0}catch{}return!1}var sU=Object.prototype.hasOwnProperty||function(e){return e in this};function ho(e,t){return sU.call(e,t)}function Ci(e){return qW.call(e)}function lU(e){if(e.name)return e.name;var t=ZW.call(KW.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}function P3(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;nt.maxStringLength){var n=e.length-t.maxStringLength,r="... "+n+" more character"+(n>1?"s":"");return k3(ov.call(e,0,t.maxStringLength),t)+r}var o=XW[t.quoteStyle||"single"];o.lastIndex=0;var i=ei.call(ei.call(e,o,"\\$1"),/[\x00-\x1f]/g,hU);return R3(i,"single",t)}function hU(e){var t=e.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return n?"\\"+n:"\\x"+(t<16?"0":"")+QW.call(t.toString(16))}function al(e){return"Object("+e+")"}function Yg(e){return e+" { ? }"}function $S(e,t,n,r){var o=r?e0(n,r):Jr.call(n,", ");return e+" ("+t+") {"+o+"}"}function mU(e){for(var t=0;t=0)return!1;return!0}function vU(e,t){var n;if(e.indent===" ")n=" ";else if(typeof e.indent=="number"&&e.indent>0)n=Jr.call(Array(e.indent+1)," ");else return null;return{base:n,prev:Jr.call(Array(t+1),n)}}function e0(e,t){if(e.length===0)return"";var n=` -`+t.prev+t.base;return n+Jr.call(e,","+n)+` -`+t.prev}function Cu(e,t){var n=Jm(e),r=[];if(n){r.length=e.length;for(var o=0;o1;){var n=t.pop(),r=n.obj[n.prop];if(Ii(r)){for(var o=[],i=0;i=eh?a.slice(l,l+eh):a,u=[],d=0;d=48&&f<=57||f>=65&&f<=90||f>=97&&f<=122||i===IU.RFC1738&&(f===40||f===41)){u[u.length]=c.charAt(d);continue}if(f<128){u[u.length]=Kr[f];continue}if(f<2048){u[u.length]=Kr[192|f>>6]+Kr[128|f&63];continue}if(f<55296||f>=57344){u[u.length]=Kr[224|f>>12]+Kr[128|f>>6&63]+Kr[128|f&63];continue}d+=1,f=65536+((f&1023)<<10|c.charCodeAt(d)&1023),u[u.length]=Kr[240|f>>18]+Kr[128|f>>12&63]+Kr[128|f>>6&63]+Kr[128|f&63]}s+=u.join("")}return s},jU=function(t){for(var n=[{obj:{o:t},prop:"o"}],r=[],o=0;o"u"&&(_=0)}if(typeof u=="function"?m=u(n,m):m instanceof Date?m=p(m):r==="comma"&&Qr(m)&&(m=nd.maybeMap(m,function(B){return B instanceof Date?p(B):B})),m===null){if(a)return c&&!w?c(n,Wt.encoder,v,"key",h):n;m=""}if(GU(m)||nd.isBuffer(m)){if(c){var T=w?n:c(n,Wt.encoder,v,"key",h);return[y(T)+"="+y(c(m,Wt.encoder,v,"value",h))]}return[y(n)+"="+y(String(m))]}var P=[];if(typeof m>"u")return P;var x;if(r==="comma"&&Qr(m))w&&c&&(m=nd.maybeMap(m,c)),x=[{value:m.length>0?m.join(",")||null:void 0}];else if(Qr(u))x=u;else{var $=Object.keys(m);x=d?$.sort(d):$}var I=l?n.replace(/\./g,"%2E"):n,O=o&&Qr(m)&&m.length===1?I+"[]":I;if(i&&Qr(m)&&m.length===0)return O+"[]";for(var D=0;D"u"?t.encodeDotInKeys===!0?!0:Wt.allowDots:!!t.allowDots;return{addQueryPrefix:typeof t.addQueryPrefix=="boolean"?t.addQueryPrefix:Wt.addQueryPrefix,allowDots:s,allowEmptyArrays:typeof t.allowEmptyArrays=="boolean"?!!t.allowEmptyArrays:Wt.allowEmptyArrays,arrayFormat:a,charset:n,charsetSentinel:typeof t.charsetSentinel=="boolean"?t.charsetSentinel:Wt.charsetSentinel,commaRoundTrip:t.commaRoundTrip,delimiter:typeof t.delimiter>"u"?Wt.delimiter:t.delimiter,encode:typeof t.encode=="boolean"?t.encode:Wt.encode,encodeDotInKeys:typeof t.encodeDotInKeys=="boolean"?t.encodeDotInKeys:Wt.encodeDotInKeys,encoder:typeof t.encoder=="function"?t.encoder:Wt.encoder,encodeValuesOnly:typeof t.encodeValuesOnly=="boolean"?t.encodeValuesOnly:Wt.encodeValuesOnly,filter:i,format:r,formatter:o,serializeDate:typeof t.serializeDate=="function"?t.serializeDate:Wt.serializeDate,skipNulls:typeof t.skipNulls=="boolean"?t.skipNulls:Wt.skipNulls,sort:typeof t.sort=="function"?t.sort:null,strictNullHandling:typeof t.strictNullHandling=="boolean"?t.strictNullHandling:Wt.strictNullHandling}},ZU=function(e,t){var n=e,r=KU(t),o,i;typeof r.filter=="function"?(i=r.filter,n=i("",n)):Qr(r.filter)&&(i=r.filter,o=i);var a=[];if(typeof n!="object"||n===null)return"";var s=O3[r.arrayFormat],l=s==="comma"&&r.commaRoundTrip;o||(o=Object.keys(n)),r.sort&&o.sort(r.sort);for(var c=I3(),u=0;u0?p+f:""},Cs=M3,t0=Object.prototype.hasOwnProperty,QU=Array.isArray,Et={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:Cs.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1},YU=function(e){return e.replace(/&#(\d+);/g,function(t,n){return String.fromCharCode(parseInt(n,10))})},A3=function(e,t){return e&&typeof e=="string"&&t.comma&&e.indexOf(",")>-1?e.split(","):e},XU="utf8=%26%2310003%3B",JU="utf8=%E2%9C%93",eG=function(t,n){var r={__proto__:null},o=n.ignoreQueryPrefix?t.replace(/^\?/,""):t;o=o.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var i=n.parameterLimit===1/0?void 0:n.parameterLimit,a=o.split(n.delimiter,i),s=-1,l,c=n.charset;if(n.charsetSentinel)for(l=0;l-1&&(h=QU(h)?[h]:h);var y=t0.call(r,p);y&&n.duplicates==="combine"?r[p]=Cs.combine(r[p],h):(!y||n.duplicates==="last")&&(r[p]=h)}return r},tG=function(e,t,n,r){for(var o=r?t:A3(t,n),i=e.length-1;i>=0;--i){var a,s=e[i];if(s==="[]"&&n.parseArrays)a=n.allowEmptyArrays&&(o===""||n.strictNullHandling&&o===null)?[]:[].concat(o);else{a=n.plainObjects?Object.create(null):{};var l=s.charAt(0)==="["&&s.charAt(s.length-1)==="]"?s.slice(1,-1):s,c=n.decodeDotInKeys?l.replace(/%2E/g,"."):l,u=parseInt(c,10);!n.parseArrays&&c===""?a={0:o}:!isNaN(u)&&s!==c&&String(u)===c&&u>=0&&n.parseArrays&&u<=n.arrayLimit?(a=[],a[u]=o):c!=="__proto__"&&(a[c]=o)}o=a}return o},nG=function(t,n,r,o){if(t){var i=r.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,a=/(\[[^[\]]*])/,s=/(\[[^[\]]*])/g,l=r.depth>0&&a.exec(i),c=l?i.slice(0,l.index):i,u=[];if(c){if(!r.plainObjects&&t0.call(Object.prototype,c)&&!r.allowPrototypes)return;u.push(c)}for(var d=0;r.depth>0&&(l=s.exec(i))!==null&&d"u"?Et.charset:t.charset,r=typeof t.duplicates>"u"?Et.duplicates:t.duplicates;if(r!=="combine"&&r!=="first"&&r!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var o=typeof t.allowDots>"u"?t.decodeDotInKeys===!0?!0:Et.allowDots:!!t.allowDots;return{allowDots:o,allowEmptyArrays:typeof t.allowEmptyArrays=="boolean"?!!t.allowEmptyArrays:Et.allowEmptyArrays,allowPrototypes:typeof t.allowPrototypes=="boolean"?t.allowPrototypes:Et.allowPrototypes,allowSparse:typeof t.allowSparse=="boolean"?t.allowSparse:Et.allowSparse,arrayLimit:typeof t.arrayLimit=="number"?t.arrayLimit:Et.arrayLimit,charset:n,charsetSentinel:typeof t.charsetSentinel=="boolean"?t.charsetSentinel:Et.charsetSentinel,comma:typeof t.comma=="boolean"?t.comma:Et.comma,decodeDotInKeys:typeof t.decodeDotInKeys=="boolean"?t.decodeDotInKeys:Et.decodeDotInKeys,decoder:typeof t.decoder=="function"?t.decoder:Et.decoder,delimiter:typeof t.delimiter=="string"||Cs.isRegExp(t.delimiter)?t.delimiter:Et.delimiter,depth:typeof t.depth=="number"||t.depth===!1?+t.depth:Et.depth,duplicates:r,ignoreQueryPrefix:t.ignoreQueryPrefix===!0,interpretNumericEntities:typeof t.interpretNumericEntities=="boolean"?t.interpretNumericEntities:Et.interpretNumericEntities,parameterLimit:typeof t.parameterLimit=="number"?t.parameterLimit:Et.parameterLimit,parseArrays:t.parseArrays!==!1,plainObjects:typeof t.plainObjects=="boolean"?t.plainObjects:Et.plainObjects,strictDepth:typeof t.strictDepth=="boolean"?!!t.strictDepth:Et.strictDepth,strictNullHandling:typeof t.strictNullHandling=="boolean"?t.strictNullHandling:Et.strictNullHandling}},oG=function(e,t){var n=rG(t);if(e===""||e===null||typeof e>"u")return n.plainObjects?Object.create(null):{};for(var r=typeof e=="string"?eG(e,n):e,o=n.plainObjects?Object.create(null):{},i=Object.keys(r),a=0;a{if(nh.has(rh))return nh.get(rh);const t=cG.parse(window.location.search,{ignoreQueryPrefix:!0}).debug==="true";return nh.set(rh,t),t},uG=`{ - "nodes_info": [ - { - "identifier": 1, - "connected": null, - "infos": { - "has_error": false, - "error_reason": "", - "name": "querynode1", - "hardware_infos": { - "ip": "172.18.20.7:21123", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "system_info": { - "system_version": "34cf5352ec", - "deploy_mode": "STANDALONE[MOCK]", - "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", - "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", - "used_go_version": "go version go1.22.3 darwin/amd64" - }, - "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", - "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", - "type": "querynode", - "id": 1, - "system_configurations": { - "simd_type": "auto" - }, - "quota_metrics": { - "Hms": { - "ip": "172.18.20.7:21123", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "Rms": [ - { - "Label": "InsertConsumeThroughput", - "Rate": 0 - }, - { - "Label": "DeleteConsumeThroughput", - "Rate": 0 - } - ], - "Fgm": { - "MinFlowGraphChannel": "", - "MinFlowGraphTt": 18446744073709551615, - "NumFlowGraph": 0 - }, - "GrowingSegmentsSize": 0, - "Effect": { - "NodeID": 1, - "CollectionIDs": [] - }, - "DeleteBufferInfo": { - "CollectionDeleteBufferNum": {}, - "CollectionDeleteBufferSize": {} - } - }, - "collection_metrics": { - "CollectionRows": {} - } - } - }, - { - "identifier": 1, - "connected": [ - { - "connected_identifier": 1, - "type": "manage", - "target_type": "querynode" - } - ], - "infos": { - "has_error": false, - "error_reason": "", - "name": "querycoord1", - "hardware_infos": { - "ip": "172.18.20.7:19531", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "system_info": { - "system_version": "34cf5352ec", - "deploy_mode": "STANDALONE[MOCK]", - "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", - "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", - "used_go_version": "go version go1.22.3 darwin/amd64" - }, - "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", - "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", - "type": "querycoord", - "id": 1, - "system_configurations": { - "search_channel_prefix": "", - "search_result_channel_prefix": "" - } - } - }, - { - "identifier": 1, - "connected": null, - "infos": { - "has_error": false, - "error_reason": "", - "name": "datanode1", - "hardware_infos": { - "ip": "172.18.20.7:21124", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "system_info": { - "system_version": "34cf5352ec", - "deploy_mode": "STANDALONE[MOCK]", - "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", - "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", - "used_go_version": "go version go1.22.3 darwin/amd64" - }, - "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", - "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", - "type": "datanode", - "id": 1, - "system_configurations": { - "flush_insert_buffer_size": 16777216 - }, - "quota_metrics": { - "Hms": { - "ip": "172.18.20.7:21124", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "Rms": [ - { - "Label": "InsertConsumeThroughput", - "Rate": 0 - }, - { - "Label": "DeleteConsumeThroughput", - "Rate": 0 - } - ], - "Fgm": { - "MinFlowGraphChannel": "", - "MinFlowGraphTt": 18446744073709551615, - "NumFlowGraph": 0 - }, - "Effect": { - "NodeID": 1, - "CollectionIDs": [] - } - } - } - }, - { - "identifier": 1, - "connected": null, - "infos": { - "has_error": false, - "error_reason": "", - "name": "indexnode1", - "hardware_infos": { - "ip": "172.18.20.7:21121", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "system_info": { - "system_version": "34cf5352ec", - "deploy_mode": "STANDALONE[MOCK]", - "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", - "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", - "used_go_version": "go version go1.22.3 darwin/amd64" - }, - "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", - "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", - "type": "indexnode", - "id": 1, - "system_configurations": { - "minio_bucket_name": "a-bucket", - "simd_type": "auto" - } - } - }, - { - "identifier": 1, - "connected": [ - { - "connected_identifier": 1, - "type": "manage", - "target_type": "datanode" - }, - { - "connected_identifier": 1, - "type": "manage", - "target_type": "indexnode" - } - ], - "infos": { - "has_error": false, - "error_reason": "", - "name": "datacoord1", - "hardware_infos": { - "ip": "172.18.20.7:13333", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "system_info": { - "system_version": "34cf5352ec", - "deploy_mode": "STANDALONE[MOCK]", - "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", - "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", - "used_go_version": "go version go1.22.3 darwin/amd64" - }, - "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", - "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", - "type": "datacoord", - "id": 1, - "system_configurations": { - "segment_max_size": 1024 - }, - "quota_metrics": { - "TotalBinlogSize": 0, - "CollectionBinlogSize": {}, - "PartitionsBinlogSize": {}, - "CollectionL0RowCount": {} - }, - "collection_metrics": { - "Collections": {} - } - } - }, - { - "identifier": 1, - "connected": [], - "infos": { - "has_error": false, - "error_reason": "", - "name": "rootcoord1", - "hardware_infos": { - "ip": "172.18.20.7:53100", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "system_info": { - "system_version": "34cf5352ec", - "deploy_mode": "STANDALONE[MOCK]", - "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", - "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", - "used_go_version": "go version go1.22.3 darwin/amd64" - }, - "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", - "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", - "type": "rootcoord", - "id": 1, - "system_configurations": { - "min_segment_size_to_enable_index": 1024 - } - } - }, - { - "identifier": 1, - "connected": [ - { - "connected_identifier": 1, - "type": "forward", - "target_type": "querycoord" - }, - { - "connected_identifier": 1, - "type": "forward", - "target_type": "datacoord" - }, - { - "connected_identifier": 1, - "type": "forward", - "target_type": "rootcoord" - } - ], - "infos": { - "has_error": false, - "error_reason": "", - "name": "proxy1", - "hardware_infos": { - "ip": "172.18.20.7:19529", - "cpu_core_count": 8, - "cpu_core_usage": 30.52004762940343, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "system_info": { - "system_version": "34cf5352ec", - "deploy_mode": "STANDALONE[MOCK]", - "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", - "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", - "used_go_version": "go version go1.22.3 darwin/amd64" - }, - "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", - "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", - "type": "proxy", - "id": 1, - "system_configurations": { - "default_partition_name": "_default", - "default_index_name": "_default_idx" - }, - "quota_metrics": null - } - } - ] -}`,dG=`[ - { - "sdk_type": "python", - "sdk_version": "1.0.0", - "local_time": "2023-10-01T12:00:00Z", - "user": "user1", - "host": "127.0.0.1", - "reserved": { - "last_active_time": "" - } - }, - { - "sdk_type": "golang", - "sdk_version": "1.1.0", - "local_time": "2023-10-01T12:05:00Z", - "user": "user2", - "host": "127.0.0.2", - "reserved": { - "last_active_time": "" - } - } -]`,fG=` -{ - "metastore": { - "health_status": true, - "unhealthy_reason": "", - "members_health": [ - { - "endpoint": "http://127.0.0.1:2379", - "health": true - } - ], - "meta_type": "etcd" - }, - "mq": { - "health_status": false, - "unhealthy_reason": "health check failed, err: Get \\"http://localhost:80/admin/v2/brokers/health\\": dial tcp [::1]:80: connect: connection refused", - "members_health": null, - "mq_type": "pulsar" - } -} -`,pG=` -{ - "MILVUS_GIT_BUILD_TAGS": "v2.2-testing-20240702-811-g38211f2b81-dev", - "MILVUS_GIT_COMMIT": "38211f2b81", - "common.bloomfilterapplybatchsize": "1000", - "common.bloomfiltersize": "100000", - "common.bloomfiltertype": "BlockedBloomFilter", - "common.buildindexthreadpoolratio": "0.75", - "common.defaultindexname": "_default_idx", - "common.defaultpartitionname": "_default", - "common.diskindex.beamwidthratio": "4", - "common.diskindex.buildnumthreadsratio": "1", - "common.diskindex.loadnumthreadratio": "8", - "common.diskindex.maxdegree": "56", - "common.diskindex.pqcodebudgetgbratio": "0.125", - "common.diskindex.searchcachebudgetgbratio": "0.1", - "common.diskindex.searchlistsize": "100", - "common.enablevectorclusteringkey": "false", - "common.entityexpiration": "-1", - "common.gracefulstoptimeout": "1800", - "common.gracefultime": "5000", - "common.indexslicesize": "16", - "common.locks.metrics.enable": "false" -} -`,gG=` -{ - "collection_names": [ - "collection_1", - "collection_2", - "collection_3", - "collection_4", - "collection_5", - "collection_6", - "collection_7", - "collection_8", - "collection_9", - "collection_10" - ], - "collection_ids": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10" - ], - "created_utc_timestamps": [ - "2021-10-01 00:00:00", - "2021-10-02 00:00:00", - "2021-10-03 00:00:00", - "2021-10-04 00:00:00", - "2021-10-05 00:00:00", - "2021-10-06 00:00:00", - "2021-10-07 00:00:00", - "2021-10-08 00:00:00", - "2021-10-09 00:00:00", - "2021-10-10 00:00:00" - ], - "inMemory_percentages": [ - 100, - 90, - 80, - 70, - 60, - 50, - 40, - 30, - 20, - 10 - ], - "query_service_available": [ - true, - true, - true, - true, - true, - false, - false, - false, - false, - false - ] -} -`,hG=` -{ - "collection_id": "1", - "collection_name": "example_collection", - "created_time": "2021-10-01 00:00:00", - "shards_num": 2, - "consistency_level": "Strong", - "aliases": ["alias1", "alias2"], - "properties": { - "property_key": "property_value" - }, - "db_name": "example_db", - "num_partitions": 3, - "virtual_channel_names": ["v_channel1", "v_channel2"], - "physical_channel_names": ["p_channel1", "p_channel2"], - "partition_infos": [ - { - "partition_name": "partition1", - "partition_id": "1", - "created_utc_timestamp": "2021-10-01 00:00:00" - } - ], - "enable_dynamic_field": true, - "fields": [ - { - "field_id": "1", - "name": "field1", - "is_primary_key": true, - "description": "description1", - "data_type": "int64", - "type_params": { - "param_key": "param_value" - }, - "index_params": { - "index_key": "index_value" - }, - "auto_id": false, - "element_type": "element_type1", - "default_value": "default_value1", - "is_dynamic": false, - "is_partition_key": false, - "is_clustering_key": false, - "nullable": true, - "is_function_output": false - } - ] -} -`,mG=` -{ - "db_names": [ - "database_1", - "database_2", - "database_3", - "database_4", - "database_5", - "database_6", - "database_7", - "database_8", - "database_9", - "database_10" - ], - "db_ids": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10" - ], - "created_timestamps": [ - "2021-10-01 00:00:00", - "2021-10-02 00:00:00", - "2021-10-03 00:00:00", - "2021-10-04 00:00:00", - "2021-10-05 00:00:00", - "2021-10-06 00:00:00", - "2021-10-07 00:00:00", - "2021-10-08 00:00:00", - "2021-10-09 00:00:00", - "2021-10-10 00:00:00" - ] -} -`,vG=` -{ - "db_name": "example_db", - "db_id": 1, - "created_timestamp": "2021-10-01 00:00:00", - "properties": [ - { - "key": "property_key", - "value": "property_value" - } - ] -} -`,yG=` -[ - { - "collection_id": 1, - "segments": [ - { - "segment_id": 1, - "collection_id": 1, - "partition_id": 1, - "channel": "channel1", - "num_of_rows": 1000, - "state": "Sealed", - "is_importing": false, - "compacted": false, - "level": "L0", - "is_sorted": true, - "node_id": 1, - "is_invisible": false, - "loaded_timestamp": "2021-10-01 00:00:00", - "index": [ - { - "field_id": 1, - "index_id": 1, - "build_id": 1, - "index_size": 1024, - "is_loaded": true - } - ], - "resource_group": "rg1", - "loaded_insert_row_count": 1000, - "mem_size": 2048 - } - ], - "dm_channels": [ - { - "node_id": 1, - "version": 1, - "collection_id": 1, - "channel_name": "channel1", - "unflushed_segment_ids": [ - "1" - ], - "flushed_segment_ids": [ - "2" - ], - "dropped_segment_ids": [ - "3" - ], - "level_zero_segment_ids": [ - "4" - ] - } - ] - } -] -`,bG=` -[ - { - "collection_id": 1, - "segments": [ - { - "segment_id": 2, - "collection_id": 1, - "partition_id": 1, - "channel": "channel2", - "num_of_rows": 1000, - "state": "Sealed", - "is_importing": false, - "compacted": false, - "level": "L0", - "is_sorted": true, - "node_id": 1, - "is_invisible": false, - "loaded_timestamp": 1633072800, - "index": [ - { - "field_id": 1, - "index_id": 1, - "build_id": 1, - "index_size": 1024, - "is_loaded": true - } - ], - "resource_group": "rg1", - "loaded_insert_row_count": 1000, - "mem_size": 2048 - } - ] - } -] -`,xG=` -{ - "segments": [ - { - "segment_id": 1, - "collection_id": 1, - "partition_id": 1, - "channel": "channel1", - "num_of_rows": 1000, - "state": "Sealed", - "is_importing": false, - "compacted": false, - "level": "L0", - "is_sorted": true, - "node_id": 1, - "is_invisible": false, - "loaded_timestamp": "2021-10-01 00:00:00", - "index": [ - { - "field_id": 1, - "index_id": 1, - "build_id": 1, - "index_size": 1024, - "is_loaded": true - } - ], - "resource_group": "rg1", - "loaded_insert_row_count": 1000, - "mem_size": 2048, - "flushed_rows": 1000, - "sync_buffer_rows": 0, - "syncing_rows": 0 - } - ], - "dm_channels": [ - { - "node_id": 1, - "version": 1, - "collection_id": 1, - "channel_name": "channel1", - "unflushed_segment_ids": ["1"], - "flushed_segment_ids": ["2"], - "dropped_segment_ids": ["3"], - "level_zero_segment_ids": ["4"], - "partition_stats_versions": { - "1": 1 - }, - "watch_state": "Healthy", - "start_watch_ts": "2021-10-01 00:00:00" - } - ], - "leader_views": [ - { - "leader_id": 1, - "collection_id": 1, - "node_id": 1, - "channel": "channel1", - "version": 1, - "sealed_segments": [ - { - "segment_id": 1, - "collection_id": 1, - "partition_id": 1, - "channel": "channel1", - "num_of_rows": 1000, - "state": "Sealed", - "is_importing": false, - "compacted": false, - "level": "L0", - "is_sorted": true, - "node_id": 1, - "is_invisible": false, - "loaded_timestamp": "2021-10-01 00:00:00", - "index": [ - { - "field_id": 1, - "index_id": 1, - "build_id": 1, - "index_size": 1024, - "is_loaded": true - } - ], - "resource_group": "rg1", - "loaded_insert_row_count": 1000, - "mem_size": 2048, - "flushed_rows": 1000, - "sync_buffer_rows": 0, - "syncing_rows": 0 - } - ], - "growing_segments": [], - "target_version": 1, - "num_of_growing_rows": 0, - "unserviceable_error": "" - } - ] -} -`,SG=` -[ - { - "ID": 1, - "collectionID": 1, - "rw_nodes": [1, 2], - "resource_group": "rg1", - "ro_nodes": [3], - "channel_to_rw_nodes": { - "channel1": [1, 2] - } - }, - { - "ID": 2, - "collectionID": 2, - "rw_nodes": [4, 5], - "resource_group": "rg2", - "ro_nodes": [6], - "channel_to_rw_nodes": { - "channel2": [4, 5] - } - } -] -`,wG=` -[ - { - "name": "rg1", - "nodes": [1, 2], - "cfg": { - "requests":{}, - "limits":{"node_num":1000000} - } - }, - { - "name": "rg2", - "nodes": [3, 4] - } -] -`,CG=` -[ - { - "task_name": "balance_checker-ChannelTask[1]-ch1", - "collection_id": 67890, - "replica_id": 11111, - "task_type": "Move", - "task_status": "started", - "priority": "Normal", - "actions": [ - "type:Grow node id : 1 channel name:channel_1" - ], - "step": 1, - "reason": "" - }, - { - "task_name": "index_checker-SegmentTask[2]-54321", - "collection_id": 12345, - "replica_id": 22222, - "task_type": "Grow", - "task_status": "completed", - "priority": "High", - "actions": [ - "type:Grow node id: 2 segment id:123 scope:DataScope_Streaming" - ], - "step": 2, - "reason": "" - }, - { - "task_name": "leader_checker-LeaderSegmentTask[3]-1", - "collection_id": 54321, - "replica_id": 33333, - "task_type": "Grow", - "task_status": "failed", - "priority": "Low", - "actions": [ - "type:Grow node id: 3 leader id:456 segment id:789 version:1" - ], - "step": 3, - "reason": "yet another reason" - } -] -`,_G=` -[ - { - "segment_id": 1, - "collection_id": 1, - "partition_id": 1, - "channel": "channel1", - "num_of_rows": 1000, - "state": "Sealed", - "is_importing": false, - "compacted": false, - "level": "L1", - "is_sorted": true, - "node_id": 1, - "is_invisible": false, - "loaded_timestamp": "2021-10-01 00:00:00", - "index": [ - { - "field_id": 1, - "index_id": 1, - "build_id": 1, - "index_size": 1024, - "is_loaded": true - } - ], - "resource_group": "rg1", - "loaded_insert_row_count": 1000, - "mem_size": 2048 - }, - { - "segment_id": 2, - "collection_id": 2, - "partition_id": 2, - "channel": "channel2", - "num_of_rows": 2000, - "state": "Sealed", - "is_importing": false, - "compacted": false, - "level": "L2", - "is_sorted": true, - "node_id": 2, - "is_invisible": false, - "loaded_timestamp": "2021-10-01 00:00:00", - "index": [ - { - "field_id": 2, - "index_id": 2, - "build_id": 2, - "index_size": 2048, - "is_loaded": true - } - ], - "resource_group": "rg2", - "loaded_insert_row_count": 2000, - "mem_size": 4096 - } -] -`,RG=` -[ - { - "name": "channel1", - "watch_state": "Healthy", - "assign_state": "assigned", - "latest_time_tick": "2023-10-01 12:00:00", - "node_id": 1, - "collection_id": 1 - }, - { - "name": "channel2", - "watch_state": "Healthy", - "assign_state": "assigned", - "latest_time_tick": "2023-10-01 12:05:00", - "node_id": 2, - "collection_id": 2 - } -] -`,TG=` -{ - "segments": [ - { - "segment_id": 1, - "collection_id": 1, - "partition_id": 1, - "channel": "channel1", - "num_of_rows": 1000, - "state": "Growing", - "is_importing": false, - "compacted": false, - "level": "L1", - "is_sorted": true, - "node_id": 1 - }, - { - "segment_id": 3, - "collection_id": 2, - "partition_id": 2, - "channel": "channel2", - "num_of_rows": 2000, - "state": "Growing", - "is_importing": true, - "compacted": true, - "level": "L2", - "is_sorted": false, - "node_id": 2 - } - ], - "dm_channels": [ - { - "node_id": 1, - "version": 1, - "collection_id": 100, - "channel_name": "channel1", - "unflushed_segment_ids": ["1", "2", "3"], - "flushed_segment_ids": ["4", "5", "6"], - "dropped_segment_ids": ["7", "8", "9"], - "watch_state": "success", - "start_watch_ts": "2023-10-01 12:05:00" - }, - { - "node_id": 1, - "version": 1, - "collection_id": 100, - "channel_name": "channel3", - "unflushed_segment_ids": ["1", "2", "3"], - "flushed_segment_ids": ["4", "5", "6"], - "dropped_segment_ids": ["7", "8", "9"], - "watch_state": "to_watch", - "start_watch_ts": "2023-10-01 12:05:00" - } - ] -} -`,PG=` -[ - { - "index_id": 1, - "collection_id": 1001, - "segment_id": 2001, - "build_id": 3001, - "index_state": "Finished", - "index_size": 1024, - "index_version": 1, - "create_time": "2023-10-01 12:05:00" - }, - { - "index_id": 2, - "collection_id": 1002, - "segment_id": 2002, - "build_id": 3002, - "index_state": "Failed", - "fail_reason": "Disk full", - "index_size": 2048, - "index_version": 2, - "create_time": "2023-10-01 12:05:00" - } -]`,kG=` -[ - { - "plan_id": 1, - "collection_id": 1, - "type": "Merge", - "state": "Completed", - "fail_reason": "", - "start_time": "2023-10-01 12:05:00", - "end_time": "2023-10-01 12:06:00", - "total_rows": 10000, - "input_segments": ["1", "2", "3"], - "result_segments": ["4"] - }, - { - "plan_id": 2, - "collection_id": 2, - "type": "Merge", - "state": "Failed", - "fail_reason": "Disk full", - "start_time": "2023-10-01 12:05:00", - "end_time": "2023-10-01 12:06:00", - "total_rows": 20000, - "input_segments": ["5", "6", "7"], - "result_segments": [] - } -]`,$G=` -[ - { - "segment_id": 1, - "batch_rows": 1000, - "segment_level": "L1", - "ts_from": "2023-10-01 12:05:00", - "ts_to": "2023-10-01 12:06:00", - "delta_row_count": 10, - "flush_size": 1024, - "running_time": "100000000", - "node_id": 1 - }, - { - "segment_id": 2, - "batch_rows": 2000, - "segment_level": "L2", - "ts_from": "2023-10-01 12:05:00", - "ts_to": "2023-10-01 12:06:00", - "delta_row_count": 20, - "flush_size": 2048, - "running_time": "200000000", - "node_id": 2 - } -] -`,EG=` -[ - { - "job_id": 1, - "task_id": 2, - "collection_id": 3, - "node_id": 4, - "state": "Pending", - "reason": "", - "task_type": "PreImportTask", - "created_time": "2023-10-01T00:00:00Z", - "complete_time": "2023-10-01T01:00:00Z" - }, - { - "job_id": 5, - "task_id": 6, - "collection_id": 7, - "node_id": 8, - "state": "Completed", - "reason": "", - "task_type": "ImportTask", - "created_time": "2023-10-01T00:00:00Z", - "complete_time": "2023-10-01T01:00:00Z" - }, - { - "job_id": 9, - "task_id": 10, - "collection_id": 11, - "node_id": 12, - "state": "Failed", - "reason": "some failure reason", - "task_type": "ImportTask", - "created_time": "2023-10-01T00:00:00Z", - "complete_time": "2023-10-01T01:00:00Z" - } -] -`,MG=` -[ - { - "segment_id": 1, - "collection_id": 1, - "partition_id": 1, - "channel": "channel1", - "num_of_rows": 1000, - "state": "Growing", - "is_importing": false, - "compacted": false, - "level": "L1", - "is_sorted": true, - "node_id": 1, - "flushed_rows": 1000, - "sync_buffer_rows": 0, - "syncing_rows": 0 - }, - { - "segment_id": 2, - "collection_id": 2, - "partition_id": 2, - "channel": "channel2", - "num_of_rows": 2000, - "state": "Sealed", - "is_importing": true, - "compacted": true, - "level": "L0", - "is_sorted": false, - "node_id": 2, - "flushed_rows": 2000, - "sync_buffer_rows": 100, - "syncing_rows": 50 - } -] -`,IG=` -[ - { - "name": "channel1", - "watch_state": "Healthy", - "assign_state": "assigned", - "latest_time_tick": "2023-10-01 12:00:00", - "node_id": 1, - "collection_id": 1, - "check_point_ts": "2023-10-01 12:00:00" - }, - { - "name": "channel2", - "watch_state": "Healthy", - "assign_state": "assigned", - "latest_time_tick": "2023-10-01 12:05:00", - "node_id": 2, - "collection_id": 2, - "check_point_ts": "2023-10-01 12:05:00" - } -] -`,OG=`[ - { - "role": "proxy", - "database": "test_db", - "collection": "test_collection", - "partitions": "partition1,partition2", - "consistency_level": "Bounded", - "use_default_consistency": true, - "guarantee_timestamp": 123456789, - "duration": "1.1s", - "user": "test_user", - "query_params": { - "search_params": [ - { - "dsl": ["dsl1"], - "search_params": ["param2=value2"], - "nq": [10] - } - ], - "output_fields": "field1,field2" - }, - "type": "Search", - "trace_id": "729b10a6a7f32ddd7ab5c16dd30f60dc", - "time": "2024-11-05 08:14:05" - }, - { - "role": "proxy", - "database": "test_db", - "collection": "test_collection", - "partitions": "partition1,partition2", - "consistency_level": "Bounded", - "use_default_consistency": true, - "guarantee_timestamp": 123456789, - "duration": "1.2s", - "user": "test_user", - "query_params": { - "expr": "expr1", - "output_fields": "field1,field2" - }, - "type": "Query", - "trace_id": "232955b7f33b135708d34c3c761b57e7", - "time": "2024-11-05 08:14:05" - }, - { - "role": "proxy", - "database": "test_db", - "collection": "test_collection", - "partitions": "partition1,partition2", - "consistency_level": "Bounded", - "use_default_consistency": true, - "guarantee_timestamp": 123456789, - "duration": "1.3s", - "user": "test_user", - "query_params": { - "search_params": [ - { - "dsl": ["dsl2"], - "search_params": ["param3=value3"], - "nq": [20] - } - ], - "output_fields": "field3,field4" - }, - "type": "HybridSearch", - "trace_id": "3a4b5c6d7e8f9a0b1c2d3e4f5g6h7i8j", - "time": "2024-11-05 08:14:05" - }, - { - "role": "proxy", - "database": "test_db", - "collection": "test_collection", - "partitions": "partition1,partition2", - "consistency_level": "Bounded", - "use_default_consistency": true, - "guarantee_timestamp": 123456789, - "duration": "1.4s", - "user": "test_user", - "query_params": { - "expr": "expr2", - "output_fields": "field5,field6" - }, - "type": "Query", - "trace_id": "4b5c6d7e8f9a0b1c2d3e4f5g6h7i8j9k", - "time": "2024-11-05 08:14:05" - }, - { - "role": "proxy", - "database": "test_db", - "collection": "test_collection", - "partitions": "partition1,partition2", - "consistency_level": "Bounded", - "use_default_consistency": true, - "guarantee_timestamp": 123456789, - "duration": "1.5s", - "user": "test_user", - "query_params": { - "search_params": [ - { - "dsl": ["dsl3"], - "search_params": ["param4=value4"], - "nq": [30] - } - ], - "output_fields": "field7,field8" - }, - "type": "Search", - "trace_id": "5c6d7e8f9a0b1c2d3e4f5g6h7i8j9k0l", - "time": "2024-11-05 08:14:05" - } -]`,LG="/api/v1",n0=Bt.create({baseURL:LG});n0.interceptors.response.use(e=>(e.status>=400&&WD({title:"Error",message:e.data.message||"Request Error",showClose:!1,handleClose:()=>{}}),e));const MS=(e,t)=>N3()&&e?Promise.resolve(e):t().then(n=>n.data),gt={get:(e,t,n)=>MS(JSON.parse(n||"null"),()=>n0.get(e,t)),post:(e,t,n,r)=>MS(JSON.parse(r||"null"),()=>n0.post(e,t,n))},AG="https://github.com/milvus-io/milvus/issues/new/choose",NG="https://zilliz.com/contact-sales",DG="WebUI: https://cloud.zilliz.com/signup?utm_source=partner&utm_medium=referral&utm_campaign=2024-12-19_resource_milvus-webUI_milvusio",sl=(e,t=2)=>(e/1024**3).toFixed(t),jG=e=>e.db_names.map((t,n)=>{var i;const r=(i=e.db_ids)==null?void 0:i[n],o=e.created_timestamps[n];return{name:t,id:r,created:o}}),FG=e=>e.collection_ids.map((t,n)=>{var s,l,c,u;const r=(s=e.collection_names)==null?void 0:s[n],o=(l=e.created_utc_timestamps)==null?void 0:l[n],i=(c=e.inMemory_percentages)==null?void 0:c[n],a=(u=e.query_service_available)==null?void 0:u[n];return{name:r,id:t,created:o,memoryPercentage:i,queryServiceAvailable:a}}),IS=()=>{},BG=async()=>(await gt.get("/_cluster/info",{},uG)).nodes_info,zG=async()=>gt.get("/_cluster/clients",{},dG),HG=async()=>gt.get("/_cluster/dependencies",{},fG),VG=async()=>{const e=await gt.get("/_db/list",{},mG);try{return jG(e)}catch(t){console.warn(t)}},WG=async e=>gt.get("/_db/desc",{params:{db_name:e}},vG),UG=async(e="default")=>{const t=await gt.get("/_collection/list",{params:{db_name:e}},gG);return FG(t)},GG=async(e,t="default")=>gt.get("/_collection/desc",{params:{db_name:t,collection_name:e}},hG),qG=async e=>gt.get("/_index/list",{params:{collection_id:e}}),KG=async e=>gt.get("/_dc/segments",{params:{collection_id:e,in:"dc"}}),ZG=async e=>gt.get("/_qc/segments",{params:{collection_id:e,in:"qc"}}),D3=async()=>gt.get("/_qc/dist",{},xG),sv=async()=>gt.get("/_qc/target",{},yG),lv=async()=>gt.get("/_qc/target",{params:{target_scope:2}},bG),QG=async()=>gt.get("/_qn/segments",{},_G),YG=async()=>gt.get("/_qn/channels",{},RG),XG=async()=>gt.get("/_qc/replica",{},SG),JG=async()=>gt.get("/_qc/resource_group",{},wG),eq=async()=>gt.get("/_dc/dist",{},TG),tq=async()=>gt.get("/_dn/channels",{},IG),nq=async()=>gt.get("/_dn/segments",{},MG),rq=async()=>gt.get("/_qc/tasks",{},CG),oq=async()=>gt.get("/_dc/tasks/compaction",{},kG),iq=async()=>gt.get("/_dc/tasks/build_index",{},PG),aq=async()=>gt.get("/_dc/tasks/import",{},EG),sq=async()=>gt.get("/_dn/tasks/sync",{},$G),lq=async()=>gt.get("/_cluster/slow_query",{},OG),cq=async()=>gt.get("/_cluster/configs",{},pG);var j3={exports:{}};/*! - Copyright (c) 2018 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var i="",a=0;ae?[{key:"system_version",name:"Git Commit",desc:"Git commit SHA that the current build of the system is based on"},{key:"deploy_mode",name:"Deploy Mode",desc:"The mode in which the system is deployed"},{key:"build_version",name:"Build Version",desc:"The version of the system that was built"},{key:"build_time",name:"Build Time",desc:"The exact time when the system was built"},{key:"used_go_version",name:"Go Version",desc:"The version of the Golang that was used to build the system"}].map(n=>({...n,value:e[n.key]})):[],pq=()=>{const e=nt("cluster-info",BG),t=b.useMemo(()=>{var l;const i=(l=e.data)==null?void 0:l[0],a=i==null?void 0:i.infos.system_info,s=fq(a);return s.push({key:"created_time",name:"Started Time",value:i==null?void 0:i.infos.created_time,desc:"The time when the system was started"}),s},[e.data]),n=b.useMemo(()=>{var i;return((i=e.data)==null?void 0:i.map(a=>({name:a.infos.name,ip:a.infos.hardware_infos.ip,created:a.infos.created_time,error:a.infos.has_error?a.infos.error_reason:""})))||[]},[e.data]),r=b.useMemo(()=>{var i;return((i=e.data)==null?void 0:i.map(a=>{const s=a.infos.hardware_infos,l=sl(s.cpu_core_usage),c=sl(s.memory),u=sl(s.memory_usage),d=sl(s.disk),f=sl(s.disk_usage);return{name:a.infos.name,cpu:`${l}%`,memory:`${u} / ${c}`,disk:`${f} / ${d}`,ioWait:"0.00",rpc:"100",netTP:"5",diskTP:"20"}}))||[]},[e.data]),o=b.useMemo(()=>[],[e.data]);return{...e,data:t,compData:n,runtimeMetricsData:r,requestData:o}},gq=()=>nt("cluster-clients",zG),hq=()=>{const e=nt("cluster-deps",HG),t=b.useMemo(()=>Object.keys(e.data||{}).map(n=>{const r=e.data[n],o="meta_type"in r?r.meta_type:r.mq_type,i=r.health_status?"":r.unhealthy_reason;return{name:`${n} [${o}]`,clusterStatus:i,members:r.members_health}}),[e.data]);return{...e,data:t}};var rd=(e=>(e.Node="none",e.Building="building",e.Completed="completed",e))(rd||{}),od=(e=>(e.Node="none",e.Loading="loading",e.Loaded="loaded",e))(od||{});const mq=()=>nt("databases",VG),vq=(e="default")=>nt(`collections-${e}`,()=>UG(e)),yq=e=>{var y;const[t,n]=e.split("-"),r=nt(`collections-${e}`,()=>GG(n,t)),o=(y=r.data)==null?void 0:y.collection_id,i=nt(o&&`collections-${o}-indexes`,()=>qG(o)),a=nt(o&&`collections-${o}-dcSegments`,()=>KG(o)),s=nt(o&&`collections-${o}-qcSegments`,()=>ZG(o)),l=nt("collections-currTarget",()=>sv()),c=nt("collections-currTarget",()=>lv()),u=nt("collections-dist",()=>D3()),d=(w,v)=>{var S;return(S=v==null?void 0:v.index_fields)!=null&&S.length?v.index_fields.every(m=>w.find(C=>C.index_id===m.index_id))||v.is_indexed?rd.Completed:rd.Building:rd.Node},f=(w,v)=>{var S,m;return(S=v==null?void 0:v.index_fields)!=null&&S.length&&v.index_fields.every(C=>w.find(_=>_.index_id===C.index_id))?od.Loaded:(m=v==null?void 0:v.index_fields)!=null&&m.length?od.Loading:od.Node},p=b.useMemo(()=>{var v,S;if(!a.data||!s.data||!i.data)return[];const w={};return(v=a.data)==null||v.forEach(m=>{w[m.segment_id]={dc:m}}),(S=s.data)==null||S.forEach(m=>{w[m.segment_id]={...w[m.segment_id],qc:m}}),Object.keys(w).map(m=>{var k,T,P,x;const{dc:C,qc:_}=w[m];return{id:((k=C||_)==null?void 0:k.segment_id)||"",nodeId:((T=C||_)==null?void 0:T.node_id.toString())||"",rowsCount:Number(((P=C||_)==null?void 0:P.num_of_rows)||0),state:C==null?void 0:C.state,level:((x=C||_)==null?void 0:x.level)||"",buildIndexState:d(i.data,C),loadIndexState:f(i.data,C)}})},[a.data,s.data,i.data]),h=()=>{var _;if(!u.data||!l.data||!c.data)return{name:"-"};const w=c.data.find(R=>R.collection_id===o),v=l.data.find(R=>R.collection_id===o);if(w&&!v)return{name:"Loading"};const{leader_views:S}=u.data,m=[],C=(_=v==null?void 0:v.segments)==null?void 0:_.every(R=>{var x,$;const k=(x=S.find(I=>I.collection_id===o))==null?void 0:x.growing_segments,T=($=S.find(I=>I.collection_id===o))==null?void 0:$.sealed_segments,P=(k==null?void 0:k.find(I=>I.segment_id===R.segment_id))||(T==null?void 0:T.find(I=>I.segment_id===R.segment_id));return P||m.push(R.segment_id),P});return v&&!C?{name:"Collection Segment Lack",desc:`There are segments need to load: ${m.join(", ")}`}:v?{name:"Loaded"}:{name:"-"}};return{collection:r.data,indexes:i.data,segments:p,collectionState:h()}},kp={isError:!1,message:"Ready"},OS=(e,t)=>{var o;const{collectionId:n,id:r}=e;return!!((o=t.find(i=>i.collection_id===n))!=null&&o.dm_channels.find(i=>i.flushed_segment_ids.includes(r)))},bq=(e,t,n)=>{const r=OS(e,n),o=OS(e,t),i=!!e.sourceData.distSegmentData,a=!!e.sourceData.leaderView;return r&&!i&&!a&&!o?{isError:!1,message:"Watch Channel Growing Generated"}:r&&i&&a&&!o?{isError:!1,message:"Load Growing"}:r&&i&&a&&o?{isError:!1,message:"Segment Ready"}:i&&a&&o?{isError:!1,message:"Growing Flushed"}:!r&&i&&a&&!o?{isError:!1,message:"Release Growing Sealed Loaded"}:!i&&!a&&o?{isError:!0,message:"Delegator Node Offline"}:kp},xq=e=>{const t=!!e.sourceData.nextTarSegment,n=!!e.sourceData.currTarSegment,r=!!e.sourceData.distSegmentData,o=!!e.sourceData.leaderView;return t&&!r&&!o&&!n?{isError:!1,message:"L0 Generated"}:t&&r&&o&&!n?{isError:!1,message:"L0 Loaded"}:t&&r&&o&&n?{isError:!1,message:"L0 Ready"}:r&&o&&n?{isError:!1,message:"L0 Compacted"}:!t&&r&&o&&!n?{isError:!1,message:"Release L0 Compact To Loaded"}:!r&&!o&&n?{isError:!0,message:"Delegator Node Offline"}:kp},Sq=e=>{const t=!!e.sourceData.nextTarSegment,n=!!e.sourceData.currTarSegment,r=!!e.sourceData.distSegmentData,o=!!e.sourceData.leaderView;return t&&!r&&!o&&!n?{isError:!1,message:"Load L1 L1 Generated"}:t&&r&&o&&!n?{isError:!1,message:"L1 Loaded"}:t&&r&&o&&n?{isError:!1,message:"L1 Ready"}:r&&o&&n?{isError:!1,message:"L1 Compacted"}:!t&&r&&o&&!n?{isError:!1,message:"Release L1 Compact To Loaded"}:r&&!o&&n?{isError:!0,message:"Add Router Delegator Node Offline"}:!r&&o&&!n?{isError:!0,message:"Remove Router Worker Node Offline"}:!r&&o&&n?{isError:!0,message:"Load L1 Worker Node Offline"}:r&&!o&&!n?{isError:!0,message:"Release L1 Delegator Node Offline"}:kp},wq=(e,t,n)=>e.map(r=>{let o=kp;return r.state==="Growing"&&(o=bq(r,t,n)),r.state==="Sealed"&&r.level==="L0"&&(o=xq(r)),r.state==="Sealed"&&r.level==="L1"&&(o=Sq(r)),{...r,stateDetail:o}}),Cq=e=>{const t=Object.keys(e).filter(n=>{var o;const r=(o=e[n])==null?void 0:o.state;return r&&r!=="SegmentStateNone"});return t.length?e[t[0]].state:"-"},_q=(e,t)=>{var p;const{distSegmentData:n,currTarSegment:r,nextTarSegment:o,queryNode:i,leaderView:a}=t,s=(n||r||o||i).collection_id,l=a!=null&&a.leader_id&&(a==null?void 0:a.leader_id)!=="Not Found"?a==null?void 0:a.leader_id:"-",c=(p=n||i)==null?void 0:p.node_id,u=n==null?void 0:n.num_of_rows,d=n==null?void 0:n.level,f=Cq(t);return{id:e,collectionId:s,leaderId:l,nodeId:c,state:f,rowsCount:u,level:d,sourceData:t}},Rq=(e,t,n,r)=>{var a;const o={};(a=e.segments)==null||a.forEach(s=>{o[s.segment_id]={...o[s.segment_id]||{},distSegmentData:s}}),e.leader_views.forEach(s=>{var l,c;(l=s.sealed_segments)==null||l.forEach(u=>{o[u.segment_id]={...o[u.segment_id]||{},leaderView:s}}),(c=s.growing_segments)==null||c.forEach(u=>{o[u.segment_id]={...o[u.segment_id]||{},leaderView:s}})}),t.forEach(s=>{var l;(l=s.segments)==null||l.forEach(c=>{o[c.segment_id]={...o[c.segment_id]||{},currTarSegment:c,currTarget:s}})}),n.forEach(s=>{var l;(l=s.segments)==null||l.forEach(c=>{o[c.segment_id]={...o[c.segment_id]||{},nextTarSegment:c,nextTarget:s}})}),r.forEach(s=>{o[s.segment_id]={...o[s.segment_id]||{},queryNode:s}});const i=Object.keys(o).map(s=>_q(s,o[s]));return wq(i,t,n)},Tq=()=>{const e=nt("query-dist",D3),t=nt("query-currTargets",sv),n=nt("query-nextTargets",lv),r=nt("query-seg",QG),o=nt("query-channel",YG),i=b.useMemo(()=>!e.data||!t.data||!n.data||!r.data?[]:Rq(e.data,t.data,n.data,r.data),[e.data,t.data,n.data,r.data]),a=b.useMemo(()=>!e.data||!t.data||!n.data||!o.data?[]:Eq(e.data,t.data,n.data,o.data),[e.data,t.data,n.data,o.data]);return{segsData:i,channelsData:a,isLoading:[e,t,n,r,o].some(s=>s.isLoading)}},Tu=e=>e.name||e.channel_name,Pq=e=>{const t=Object.keys(e).filter(n=>{var o;const r=(o=e[n])==null?void 0:o.watch_state;return r&&r!=="Healthy"});return t.length?e[t[0]].watch_state:"Healthy"},kq=e=>e.nextTarChannel&&!e.leaderView&&!e.currTarChannel?{isError:!1,message:"Sub Channel Load Collection"}:e.nextTarChannel&&e.leaderView&&!e.currTarChannel?{isError:!1,message:"Channel Watched"}:e.nextTarChannel&&e.leaderView&&e.currTarChannel?{isError:!1,message:"Channel Ready"}:!e.nextTarChannel&&e.leaderView&&!e.currTarChannel?{isError:!1,message:"UnSub Channel Release Collection"}:!e.leaderView&&e.currTarChannel?{isError:!0,message:"UnSub Channel Delegator Node Offline"}:{isError:!1,message:"Channel Ready"},$q=(e,t)=>{var d;const{distChannelData:n,currTarChannel:r,nextTarChannel:o,queryNode:i,leaderView:a}=t,s=(n||r||o||i).collection_id,l=a!=null&&a.leader_id&&(a==null?void 0:a.leader_id)!=="Not Found"?a==null?void 0:a.leader_id:"-",c=(d=n||i)==null?void 0:d.node_id,u=Pq(t);return{name:e,collectionId:s,leaderId:l,nodeId:c,watchState:u,stateDetail:kq(t),sourceData:t}},Eq=(e,t,n,r)=>{var i,a;const o={};return(i=e.dm_channels)==null||i.forEach(s=>{const l=Tu(s);o[l]={...o[l]||{},distChannelData:s}}),t.forEach(s=>{var l;(l=s.dm_channels)==null||l.forEach(c=>{const u=Tu(c);o[u]={...o[u]||{},currTarChannel:c}})}),n.forEach(s=>{var l;(l=s.dm_channels)==null||l.forEach(c=>{const u=Tu(c);o[u]={...o[u]||{},nextTarChannel:c}})}),r.forEach(s=>{const l=Tu(s);o[l]={...o[l]||{},queryNode:s}}),(a=e.leader_views)==null||a.forEach(s=>{s.channel&&(o[s.channel]={...o[s.channel]||{},leaderView:s})}),Object.keys(o).map(s=>$q(s,o[s]))},Mq=()=>nt("query-replicas",XG),Iq=()=>nt("query-rscGroups",JG),Oq=()=>{const e=nt("query-currTargets",sv),t=nt("query-nextTargets",lv),n=b.useMemo(()=>!e.data||!t.data?[]:Lq(e.data,t.data),[e.data,t.data]),r=b.useMemo(()=>!e.data||!t.data?[]:Aq(e.data,t.data),[]);return{isLoading:e.isLoading||t.isLoading,targetSeg:n,targetChannel:r}};function Lq(e,t){const n=[];return e.forEach(r=>{r.segments.forEach(o=>{o.targetScope="current",n.push(o)})}),t.forEach(r=>{r.segments.forEach(o=>{o.targetScope="next",n.push(o)})}),n}function Aq(e,t){const n=[];return e.forEach(r=>{r.dm_channels&&r.dm_channels.forEach(o=>{o.targetScope="current",n.push(o)})}),t.forEach(r=>{r.dm_channels&&r.dm_channels.forEach(o=>{o.targetScope="next",n.push(o)})}),n}const Nq=()=>{const e=nt("data-dist",eq),t=nt("data-seg",nq),n=nt("data-channel",tq),r=b.useMemo(()=>!e.data||!n.data?{data:[],notifications:[]}:Dq(n.data,e.data),[e.data,n.data]);return{seg:b.useMemo(()=>!e.data||!t.data?{data:[],notifications:[]}:jq(t.data,e.data),[e.data,t.data]),channel:r,isLoading:e.isLoading||t.isLoading||n.isLoading}},Dq=(e,t)=>{const n={},r=[],o=new Set(t.dm_channels.map(i=>i.channel_name));return e.forEach(i=>{const a=isNaN(Number(i.node_id))?i.node_id:`datanode-${i.node_id}`;i.node_id=a;const s={...i};o.has(i.name)||(s.notification="Not found in DataCoord",r.push(s)),n[i.name]=s}),t.dm_channels.forEach(i=>{const a=isNaN(Number(i.node_id))?i.node_id:`datacoord-${i.node_id}`;i.node_id=a;const s=i.channel_name;if(n[s])n[s].watch_state!=="Healthy"&&(i.watch_state=n[s].watch_state),n[s]={...n[s],...i};else{const l={...i,notification:"Not found in DataNode"};r.push(l),n[s]=l}}),{data:Object.values(n),notifications:r}},jq=(e,t)=>{const n={},r=[],o=new Set(t.segments.map(i=>i.segment_id));return e.forEach(i=>{var l;const a=isNaN(Number(i.node_id))?i.node_id:`datanode-${i.node_id}`;i.node_id=a;const s={...i};!o.has(i.segment_id)&&((l=i.level)==null?void 0:l.toLowerCase())!=="l0"&&(s.notification="Not found in DataCoord",r.push(s)),n[i.segment_id]=s}),t.segments.forEach(i=>{const a=isNaN(Number(i.node_id))?i.node_id:`datacoord-${i.node_id}`;i.node_id=a;const s=i.segment_id;if(n[s])n[s]={...n[s],...i};else{const l={...i,notification:"Not found in DataNode"};i.state!=="Dropped"&&i.state!=="Flushed"&&r.push(l),n[s]=l}}),{data:Object.values(n),notifications:r}},Fq=()=>nt("tasks",rq),Bq=()=>nt("compaction",oq),zq=()=>nt("buildIndex",iq),Hq=()=>nt("import",aq),Vq=()=>nt("sync",sq),Wq=()=>nt("slow-requests",lq),Uq=()=>{const e=nt("configurations",cq);return{...e,data:Object.keys(e.data||{}).map(t=>({key:t,value:e.data[t]}))}},Gq="_section_1fkka_1",qq="_title_1fkka_5",Kq="_separator_1fkka_8",oh={section:Gq,title:qq,separator:Kq},St=e=>{const{title:t,level:n=3,children:r,className:o}=e,i=()=>rt.createElement(`h${n}`,{className:oh.title,children:t});return g.jsxs("div",{className:He(oh.section,o),children:[i(),g.jsx("hr",{className:oh.separator}),r]})},ih={"filter-searcher":"_filter-searcher_162nl_1","filter-searcher-label":"_filter-searcher-label_162nl_5","filter-searcher-input":"_filter-searcher-input_162nl_9"},Zq=e=>{var u;const{defaultFilter:t,filters:n,className:r,onSearch:o}=e,[i,a]=b.useState({by:t}),s=d=>{a(()=>({by:d.value}))},l=d=>{a(f=>({...f,q:d.target.value}))},c=n.length?(u=n.find(d=>d.value===(i.by||n[0].value)))==null?void 0:u.label.toLowerCase():"";return b.useEffect(()=>{o(i)},[i.q]),g.jsxs("div",{className:He(ih["filter-searcher"],r),children:[g.jsx("div",{className:ih["filter-searcher-label"],children:"Filter: "}),n.length>1&&g.jsx(KD,{defaultValue:t||n[0].value,options:n,onChange:s,onPointerEnterCapture:IS,onPointerLeaveCapture:IS}),g.jsx(D1,{classes:{root:ih["filter-searcher-input"]},prefixComponent:g.jsx(HA,{}),type:"number",value:i.q,onChange:l,placeholder:c?`Search by ${c}`:"Search",onPointerEnterCapture:()=>{},onPointerLeaveCapture:()=>{}})]})},Qq="_wrapper_1j79b_1",ll={wrapper:Qq,"json-ellipsis":"_json-ellipsis_1j79b_7","json-ellipsis-brace":"_json-ellipsis-brace_1j79b_10","json-ellipsis-dot":"_json-ellipsis-dot_1j79b_14"},cv=e=>{const{json:t,ellipsis:n}=e,r=t?JSON.stringify(t,null,2):"",o=g.jsx("pre",{className:ll.wrapper,children:r});return n?g.jsx(bp,{title:o,placement:"top",children:g.jsxs("span",{className:ll["json-ellipsis"],children:[g.jsx("span",{className:ll["json-ellipsis-brace"],children:"{"}),g.jsx("span",{className:ll["json-ellipsis-dot"],children:"..."}),g.jsx("span",{className:ll["json-ellipsis-brace"],children:"}"})]})}):o},Yq="_state_v8a2b_12",Xq="_none_v8a2b_16",Jq="_building_v8a2b_19",eK="_loading_v8a2b_19",tK="_completed_v8a2b_22",nK="_loaded_v8a2b_22",rK="_healthy_v8a2b_22",oK="_deleted_v8a2b_25",iK="_icon_v8a2b_28",ah={state:Yq,none:Xq,false:"_false_v8a2b_16",building:Jq,loading:eK,completed:tK,loaded:nK,healthy:rK,true:"_true_v8a2b_22",deleted:oK,icon:iK},zo=e=>{const t=()=>{if(e.detail)return g.jsx(Mc,{tooltip:{title:e.detail,placement:"top"},children:g.jsx(YA,{className:ah.icon,size:16})})};return g.jsxs("span",{className:He(ah.state,ah[e.value.toLowerCase()]),children:[e.label||e.value,t()]})},qt=e=>{const[t,n]=b.useState({}),r=b.useMemo(()=>e.cols.filter(s=>s.searchable),[e.cols]),o=b.useMemo(()=>{var c;if(!t.by||!t.q)return e.list||[];const{searchBy:s}=r.find(u=>u.field===t.by)||{};if(s)return s==null?void 0:s(t.q,e.list||[]);const l=t.by;return((c=e.list)==null?void 0:c.filter(u=>{var d;return(d=u[l])==null?void 0:d.toString().includes(t.q||"")}))||[]},[t,e.list]),i=s=>{var l;n(s),(l=e.onSearch)==null||l.call(e,s)};return{list:o,renderSearcher:s=>{const l=r.map(c=>({label:c.headerName,value:c.field}));return g.jsx(Zq,{filters:l,onSearch:i,...s})}}},aK="_status_19mpp_12",sK="_error_19mpp_16",Qt={status:aK,error:sK,"comp-tabs":"_comp-tabs_19mpp_20","text-content":"_text-content_19mpp_25","member-list":"_member-list_19mpp_30","member-item-label":"_member-item-label_19mpp_34","helper-link":"_helper-link_19mpp_43"},lK=()=>{var R;const e=pq(),t=gq(),n=hq(),[r,o]=b.useState("base"),i=k=>g.jsx("div",{className:Qt["text-content"],children:k||"-"}),a=k=>i(k.getValue()),s=b.useMemo(()=>[{field:"name",headerName:"Attribute"},{field:"value",headerName:"Value",renderCell:a},{field:"desc",headerName:"Description",renderCell:a}],[]),l=b.useMemo(()=>[{label:"Base Stats",value:"base"},{label:"Runtime Metrics",value:"metrics"}],[]),c=k=>{const T=k||"Healthy",P=!!k;return g.jsx("span",{className:He(Qt.status,P&&Qt.error),children:T})},u=b.useMemo(()=>[{field:"name",headerName:"Node Name",renderCell:a,searchable:!0},{field:"ip",headerName:"Node IP",renderCell:a},{field:"created",headerName:"Start Time",renderCell:a},{field:"error",headerName:"Node Status",renderCell:T=>i(c(T.getValue()))}],[]),d=qt({cols:u,list:e.compData}),f=b.useMemo(()=>[{field:"name",headerName:"Node Name",renderCell:a,searchable:!0},{field:"cpu",headerName:"CPU Usage",renderCell:a},{field:"memory",headerName:"Usage / Memory (GB)",renderCell:a},{field:"disk",headerName:"Usage / Disk (GB)",renderCell:a},{field:"ioWait",headerName:"IO wait",renderCell:a},{field:"rpc",headerName:"RPC Ops/s",renderCell:a},{field:"netTP",headerName:"Network Throughput (MB/s)",renderCell:a},{field:"diskTP",headerName:"Disk Throughput (MB/s)",renderCell:a}],[]),p=qt({cols:f,list:e.runtimeMetricsData}),h=(k,T)=>{o(T)},y=b.useMemo(()=>[{field:"host",headerName:"Host",searchable:!0},{field:"user",headerName:"User",searchable:!0},{field:"sdk_type",headerName:"SDK Type",searchable:!0},{field:"sdk_version",headerName:"SDK Version",searchable:!0},{field:"local_time",headerName:"Local Time",renderCell:a},{field:"lastActiveTime",headerName:"Last Active Time",renderCell:a}],[]),w=qt({cols:y,list:(R=t.data)==null?void 0:R.map(k=>({...k,lastActiveTime:k.reserved.last_active_time}))}),v=k=>{const T=g.jsx("span",{className:Qt["member-endpoint"],children:k.endpoint}),P=c(k.health?"":"Unhealthy");return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:Qt["member-item-label"],children:"Endpoint:"}),T,g.jsx("span",{className:Qt["member-item-label"],children:"Health:"}),P]})},S=k=>{const T=k.getValue()||[];if(!T.length)return"-";const P=T.map(x=>g.jsx("li",{className:Qt["member-item"],children:v(x)},x.endpoint));return g.jsx("ul",{className:Qt["member-list"],children:P})},m=b.useMemo(()=>[{field:"name",headerName:"Sys Name",searchable:!0},{field:"clusterStatus",headerName:"Cluster Status",maxWidth:200,renderCell:T=>i(c(T.getValue()))},{field:"members",headerName:"Members Status",renderCell:S}],[]),C=qt({cols:m,list:n.data}),_=()=>{var x,$;const k=((x=e.compData)==null?void 0:x.every(I=>!I.error))&&(($=n.data)==null?void 0:$.every(I=>{var O;return!I.clusterStatus&&!((O=I.members)!=null&&O.some(D=>!D.health))})),T=k?"Your Cluster is running well!":g.jsxs(g.Fragment,{children:["Your Cluster is experiencing issues!"," ",g.jsxs("a",{className:Qt["helper-link"],href:AG,target:"_blank",children:["Ask a question in community",g.jsx(_m,{size:14})]})," ",g.jsxs("a",{className:Qt["helper-link"],href:NG,target:"_blank",children:["Contact Zilliz Experts",g.jsx(_m,{size:14})]})]}),P=k?"success":"error";return g.jsx(N1,{severity:P,children:T})};return g.jsxs("div",{className:He("page-wrapper",Qt.info),children:[g.jsx("div",{className:Qt.alerts,children:_()}),g.jsx(St,{title:"System Information",children:g.jsx(pt,{classes:{tableContainer:He(Qt["sys-info"],"table-view")},loading:e.isLoading,columns:s,rows:e.data})}),g.jsx(St,{title:"Component Information",children:g.jsxs(g.Fragment,{children:[g.jsx(XD,{className:Qt["comp-tabs"],value:r,labelConfigs:l,handleChange:h,tabsType:"background"}),r==="base"&&g.jsxs(g.Fragment,{children:[d.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Qt["comp-info"],"table-view")},loading:e.isLoading,columns:u,rows:d.list})]}),r==="metrics"&&g.jsxs(g.Fragment,{children:[p.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Qt["comp-info"],"table-view")},loading:e.isLoading,columns:f,rows:p.list})]})]})}),g.jsx(St,{title:"Connected Clients",children:g.jsxs(g.Fragment,{children:[w.renderSearcher({defaultFilter:"host",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Qt.clients,"table-view")},loading:t.isLoading,columns:y,rows:w.list})]})}),g.jsx(St,{title:"System Dependencies",children:g.jsxs(g.Fragment,{children:[C.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Qt["sys-deps"],"table-view")},loading:n.isLoading,columns:m,rows:C.list||[]})]})})]})},cK="_queryable_12ixl_12",uK="_error_12ixl_15",dK="_detail_12ixl_23",fK="_clear_12ixl_28",pK="_loading_12ixl_1",gK="_percentage_12ixl_73",hK="_unknown_12ixl_73",mn={queryable:cK,error:uK,"collection-filter":"_collection-filter_12ixl_19",detail:dK,clear:fK,"json-detail-wrapper":"_json-detail-wrapper_12ixl_40","json-detail-content":"_json-detail-content_12ixl_40","json-detail-loading":"_json-detail-loading_12ixl_46","json-detail-loading-icon":"_json-detail-loading-icon_12ixl_50",loading:pK,"collection-filter-wrapper":"_collection-filter-wrapper_12ixl_57","collection-name":"_collection-name_12ixl_65",percentage:gK,unknown:hK},mK=e=>{const{fetcher:t,uniqKey:n,className:r,errorMessage:o}=e,i=nt(n,t),a=b.useMemo(()=>i.data?i.error?o:JSON.stringify(i.data,null,2):"",[i.data,o]),s=()=>i.isLoading?g.jsx("div",{className:mn["json-detail-loading"],children:g.jsx(zA,{className:mn["json-detail-loading-icon"]})}):g.jsx("pre",{className:He(mn["json-detail-content"],i.error&&mn.error),children:a});return g.jsx("div",{className:He(mn["json-detail-wrapper"],r),children:s()})},vK=()=>{var S,m,C;const e=mq(),[t,n]=b.useState({}),r=vq(t.db),[o,i]=b.useState({page:0,pageSize:10}),[a,s]=b.useState({page:0,pageSize:10}),l=b.useMemo(()=>[{field:"name",headerName:"Name",searchable:!0},{field:"id",headerName:"ID",renderCell:R=>R.getValue()||"-",searchable:!0},{field:"created",headerName:"Created Time"}],[]),c=qt({cols:l,list:e.data,onSearch:()=>{i(_=>({..._,page:0}))}}),u=_=>{const R=_.getValue();return!R&&R!==0?"-":R==="unknown"?g.jsx("span",{className:He(mn.percentage,mn.unknown),children:"Unknown"}):g.jsxs("span",{className:mn.percentage,children:[_.getValue(),"%"]})},d=_=>{const R=_.data,k=t.db||"default",T=R.name,P=`${k}-${T}`;return g.jsx(a2,{className:mn["collection-name"],to:`/collections/${P}`,children:R.name})},f=b.useMemo(()=>[{field:"name",headerName:"Name",searchable:!0,renderCell:d},{field:"id",headerName:"Collection ID",searchable:!0},{field:"created",headerName:"Created Time"},{field:"memoryPercentage",headerName:"Loaded Percentages",renderCell:u}],[]),p=qt({cols:f,list:r.data,onSearch:()=>{s(_=>({..._,page:0}))}}),h=_=>{i(R=>({...R,page:_}))},y=_=>{s(R=>({...R,page:_}))},w=_=>g.jsx(mK,{className:mn.detail,uniqKey:`database-detail-${_.name}`,fetcher:()=>WG(_.name),errorMessage:"Failed to load database details."}),v=(_,R)=>{n(k=>({...k,db:R==null?void 0:R.value}))};return g.jsxs("div",{className:He("page-wrapper",mn.collections),children:[g.jsx(St,{title:"Database",children:g.jsxs(g.Fragment,{children:[c.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(mn["sys-deps"],"table-view")},columns:l,loading:e.isLoading,getRowId:_=>_.id,rows:c.list,renderDetail:w,page:o.page,pageSize:o.pageSize,paginationMode:"client",onPageChange:h,rowCount:((S=c.list)==null?void 0:S.length)||0})]})}),g.jsx(St,{title:"Collection",children:g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:mn["collection-filter-wrapper"],children:[g.jsx(Z_,{classes:{root:mn["collection-filter"]},onPointerEnterCapture:()=>{},onPointerLeaveCapture:()=>{},placeholder:"Search database",inputParams:{placeholder:"Search database..."},clearIcon:g.jsx(VA,{className:mn.clear,color:"secondary"}),options:((m=e.data)==null?void 0:m.map(_=>({label:_.name,value:_.name})))||[],onChange:v}),p.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"})]}),g.jsx(pt,{classes:{tableContainer:He(mn["sys-deps"],"table-view")},columns:f,loading:r.isLoading,getRowId:_=>_.id,rows:p.list||[],page:a.page,pageSize:a.pageSize,paginationMode:"client",showPagination:!0,onPageChange:y,rowCount:(C=p.list)==null?void 0:C.length})]})})]})},Ri={},sh={},yK=()=>{const e=Oq(),[t,n]=b.useState({page:0,pageSize:10}),[r,o]=b.useState({page:0,pageSize:10}),i=f=>{const p=f.getValue();return(p==null?void 0:p.join(", "))||"-"},a=b.useMemo(()=>[{field:"segment_id",headerName:"Segment ID"},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"partition_id",headerName:"Partition ID"},{field:"channel",headerName:"Channel",searchable:!0},{field:"num_of_rows",headerName:"Rows"},{field:"state",headerName:"State"},{field:"targetScope",headerName:"TargetScope"}],[]),s=qt({cols:a,list:e.targetSeg,onSearch:()=>{n(f=>({...f,page:0}))}}),l=b.useMemo(()=>[{field:"channel_name",headerName:"Channel Name",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"node_id",headerName:"Node ID",searchable:!0},{field:"version",headerName:"Version"},{field:"unflushed_segment_ids",headerName:"Unflushed Segments",renderCell:i},{field:"flushed_segment_ids",headerName:"Flushed Segments",renderCell:i},{field:"dropped_segment_ids",headerName:"Dropoed Segments",renderCell:i},{field:"targetScope",headerName:"TargetScope"}],[]),c=qt({cols:l,list:e.targetChannel,onSearch:()=>{o(f=>({...f,page:0}))}}),u=f=>{n(p=>({...p,page:f}))},d=f=>{o(p=>({...p,page:f}))};return g.jsxs("div",{className:He("page-wrapper",sh.query),children:[g.jsx(St,{title:"Target Segments",children:g.jsxs(g.Fragment,{children:[s.renderSearcher({defaultFilter:"collection_id",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(sh.segs,"table-view")},columns:a,loading:e.isLoading,getRowId:f=>f.segment_id,rows:s.list,page:t.page,pageSize:t.pageSize,paginationMode:"client",showPagination:!0,onPageChange:u,rowCount:s.list.length})]})}),g.jsx(St,{title:"Target Channels",children:g.jsxs(g.Fragment,{children:[c.renderSearcher({defaultFilter:"collection_id",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(sh.channels,"table-view")},columns:l,loading:e.isLoading,getRowId:f=>f.name,rows:c.list,page:r.page,pageSize:r.pageSize,paginationMode:"client",showPagination:!0,onPageChange:d,rowCount:c.list.length})]})})]})},bK=()=>{const e=Tq(),t=Mq(),n=Iq(),[r,o]=b.useState({page:0,pageSize:10}),[i,a]=b.useState({page:0,pageSize:10}),s=_=>{const R=_.getValue();return g.jsx("div",{className:He(Ri["state-detail"],(R==null?void 0:R.isError)&&Ri.error),children:R==null?void 0:R.message})},l=b.useMemo(()=>[{field:"id",headerName:"Segment ID",searchable:!0},{field:"collectionId",headerName:"Collection ID",searchable:!0},{field:"leaderId",headerName:"Leader ID",searchable:!0},{field:"nodeId",headerName:"Node ID",searchable:!0},{field:"rowsCount",headerName:"Rows",renderCell:R=>R.getValue()||"-"},{field:"state",headerName:"State",renderCell:R=>g.jsx(zo,{value:R.getValue()})},{field:"stateDetail",headerName:"State Detail",renderCell:s}],[]),c=qt({cols:l,list:e.segsData,onSearch:()=>{o(_=>({..._,page:0}))}}),u=_=>{const{data:R}=_;return R.name||R.channel_name},d=b.useMemo(()=>[{field:"name",headerName:"Channel Name",renderCell:u,searchable:!0},{field:"collectionId",headerName:"Collection ID",searchable:!0},{field:"leaderId",headerName:"Leader ID",searchable:!0},{field:"nodeId",headerName:"Node ID",searchable:!0,renderCell:R=>R.getValue()||"-"},{field:"watchState",headerName:"Watch State",renderCell:R=>g.jsx(zo,{value:R.getValue()})},{field:"stateDetail",headerName:"State Detail",renderCell:s}],[]),f=qt({cols:d,list:e.channelsData,onSearch:()=>{a(_=>({..._,page:0}))}}),p=_=>{const R=_.getValue();return(R==null?void 0:R.join(", "))||"-"},h=b.useMemo(()=>[{field:"ID",headerName:"ID",searchable:!0},{field:"collectionID",headerName:"Collection ID",renderCell:R=>R.getValue()||"-",searchable:!0},{field:"db_name",headerName:"DB Name",searchable:!0,renderCell:R=>R.getValue()||"-"},{field:"rw_nodes",headerName:"RW Nodes",renderCell:p},{field:"ro_nodes",headerName:"RO Nodes",renderCell:p},{field:"resource_group",headerName:"Resource Group",renderCell:R=>R.getValue()||"-",searchable:!0}],[]),y=qt({cols:h,list:t.data}),w=_=>{const R=_.getValue();return g.jsx(cv,{json:R})},v=b.useMemo(()=>[{field:"name",headerName:"Name",searchable:!0},{field:"nodes",headerName:"Nodes",renderCell:p},{field:"cfg",headerName:"Cfg",renderCell:w}],[]),S=qt({cols:v,list:n.data}),m=_=>{o(R=>({...R,page:_}))},C=_=>{a(R=>({...R,page:_}))};return g.jsxs("div",{className:He("page-wrapper",Ri.query),children:[g.jsx(St,{title:"Segments",children:g.jsxs(g.Fragment,{children:[c.renderSearcher({className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ri.segs,"table-view")},columns:l,loading:e.isLoading,getRowId:_=>_.segment_id,rows:c.list,page:r.page,pageSize:r.pageSize,paginationMode:"client",showPagination:!0,onPageChange:m,rowCount:c.list.length||0})]})}),g.jsx(St,{title:"Channels",children:g.jsxs(g.Fragment,{children:[f.renderSearcher({className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ri.channels,"table-view")},columns:d,loading:e.isLoading,getRowId:_=>_.name,rows:f.list,page:i.page,pageSize:i.pageSize,paginationMode:"client",showPagination:!0,onPageChange:C,rowCount:f.list.length})]})}),g.jsx(St,{title:"Replicas",children:g.jsxs(g.Fragment,{children:[y.renderSearcher({className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ri.replicas,"table-view")},columns:h,loading:t.isLoading,getRowId:_=>_.ID,rows:y.list||[],showPagination:!1})]})}),g.jsx(St,{title:"Resource Groups",children:g.jsxs(g.Fragment,{children:[S.renderSearcher({className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ri.resourceGroups,"table-view")},columns:v,loading:n.isLoading,getRowId:_=>_.name,rows:S.list||[],showPagination:!1})]})})]})},cl={"noty-list":"_noty-list_uuq1r_1","noty-item-content":"_noty-item-content_uuq1r_7"},xK=()=>{const e=Nq(),[t,n]=b.useState({page:0,pageSize:10}),[r,o]=b.useState({page:0,pageSize:10}),i=w=>{const{data:v}=w;return v.name||v.channel_name},a=w=>{const v=w.getValue();return new Date(v).getFullYear()===1970?"N/A":v||"N/A"},s=b.useMemo(()=>[{field:"channel_name",headerName:"Channel Name",searchable:!0,renderCell:i},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"watch_state",headerName:"Watch State",renderCell:a},{field:"node_id",headerName:"Node ID"},{field:"check_point_ts",headerName:"Checkpoint Ts",renderCell:a}],[]),l=b.useMemo(()=>[{field:"segment_id",headerName:"Segment ID",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"partition_id",headerName:"Partition ID"},{field:"channel",headerName:"Channel",searchable:!0},{field:"num_of_rows",headerName:"Num of Rows"},{field:"state",headerName:"State"},{field:"level",headerName:"Level",searchable:!0}],[]),c=qt({cols:l,list:e.seg.data,onSearch:()=>{o(w=>({...w,page:0}))}}),u=qt({cols:s,list:e.channel.data,onSearch:()=>{n(w=>({...w,page:0}))}}),d=w=>{o(v=>({...v,page:w}))},f=w=>{n(v=>({...v,page:w}))},p=w=>{const v=w==null?void 0:w.map(S=>g.jsx(N1,{severity:"warning",children:g.jsxs("div",{className:cl["noty-item-content"],children:[g.jsxs("strong",{children:[S.prefix,":"]}),g.jsx("span",{children:S.name}),g.jsx("strong",{children:S.msg})]})},S.name));return g.jsx("div",{className:cl["noty-list"],children:v})},h=e.channel.notifications.map(w=>({name:w.name||w.channel_name,prefix:"Channel",msg:w.notification})),y=e.seg.notifications.map(w=>({name:w.segment_id,prefix:"Segment",msg:w.notification}));return g.jsxs("div",{className:He("page-wrapper",cl.data),children:[g.jsx(St,{title:"Segments",children:g.jsxs(g.Fragment,{children:[c.renderSearcher({className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(cl[" = useTableFilter("],"table-view")},columns:l,loading:e.isLoading,getRowId:w=>w.name,rows:c.list,page:r.page,pageSize:r.pageSize,paginationMode:"client",showPagination:!0,onPageChange:d,rowCount:c.list.length}),p(y)]})}),g.jsx(St,{title:"Channels",children:g.jsxs(g.Fragment,{children:[u.renderSearcher({className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(cl.channels,"table-view")},columns:s,loading:e.isLoading,getRowId:w=>w.segment_id,rows:u.list,page:t.page,pageSize:t.pageSize,paginationMode:"client",showPagination:!0,onPageChange:f,rowCount:u.list.length}),p(h)]})})]})},Ti={"text-content":"_text-content_1tkuh_1"},SK=()=>{const e=Fq(),t=Bq(),n=zq(),r=Hq(),o=Vq(),i=C=>g.jsx("div",{className:Ti["text-content"],children:C||"-"}),a=C=>{const _=C.getValue();return(_==null?void 0:_.join(", "))||"-"},s=b.useMemo(()=>[{field:"task_name",headerName:"Task Name",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"task_type",headerName:"Task Type",searchable:!0},{field:"task_status",headerName:"Task Status",searchable:!0},{field:"actions",headerName:"Actions",renderCell:_=>i(a(_))}],[]),l=qt({cols:s,list:e.data}),c=(C,_)=>R=>{const{[C]:k,[_]:T}=R.data;return wK(Yd(k),Yd(T))},u=b.useMemo(()=>[{field:"plan_id",headerName:"Plan ID"},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"type",headerName:"Type",searchable:!0},{field:"state",headerName:"State",searchable:!0},{field:"start_time",headerName:"Start Time"},{field:"execution_time",headerName:"Execution Time",renderCell:c("start_time","end_Time")},{field:"total_rows",headerName:"Total Rows"},{field:"input_segments",headerName:"Input Segments",renderCell:a},{field:"result_segments",headerName:"Result Segments",renderCell:a}],[]),d=qt({cols:u,list:t.data}),f=b.useMemo(()=>[{field:"index_id",headerName:"Index ID",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"segment_id",headerName:"Segment ID",searchable:!0},{field:"build_id",headerName:"Build ID",searchable:!0},{field:"index_state",headerName:"Index State"},{field:"index_size",headerName:"Index Size",renderCell:_=>_.getValue()||"-"},{field:"__",headerName:"Execution Time",renderCell:c("create_time","finished_time")},{field:"create_time",headerName:"Create Time"}],[]),p=qt({cols:f,list:n.data}),h=C=>{const{state:_,reason:R}=C.data;return _==="Failed"?R:_},y=b.useMemo(()=>[{field:"job_id",headerName:"Job ID",searchable:!0},{field:"task_id",headerName:"Task ID",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"node_id",headerName:"Node ID",searchable:!0},{field:"state",headerName:"State",searchable:!0,renderCell:h,searchBy:(_,R)=>R.filter(k=>h({data:k}).toLowerCase().includes(_.toLowerCase().trim()))},{field:"task_type",headerName:"Task Type"},{field:"created_time",headerName:"Created Time"},{field:"execution_time",headerName:"Execution Time",renderCell:c("created_time","complete_time")}],[]),w=qt({cols:y,list:r.data}),v=C=>{const _=C.getValue();return _?`datanode-${_}`:"-"},S=b.useMemo(()=>[{field:"segment_id",headerName:"Segment ID",searchable:!0},{field:"batch_rows",headerName:"Batch Rows"},{field:"segment_level",headerName:"Segment Level",searchable:!0},{field:"ts_from",headerName:"Timestamp From"},{field:"ts_to",headerName:"Timestamp To"},{field:"delta_row_count",headerName:"Delta Row Count"},{field:"flush_size",headerName:"Flush Size"},{field:"running_time",headerName:"Running Time"},{field:"node_id",headerName:"Node ID",searchable:!0,renderCell:v}],[]),m=qt({cols:S,list:o.data});return g.jsxs("div",{className:He("page-wrapper",Ti.tasks),children:[g.jsx(St,{title:"QueryCoord Tasks",children:g.jsxs(g.Fragment,{children:[l.renderSearcher({defaultFilter:"task_name",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ti["tasks-table"],"table-view")},columns:s,loading:e.isLoading,getRowId:C=>C.task_name,rows:l.list||[]})]})}),g.jsx(St,{title:"Compaction Tasks",children:g.jsxs(g.Fragment,{children:[d.renderSearcher({defaultFilter:"collection_id",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ti.compaction,"table-view")},columns:u,loading:t.isLoading,getRowId:C=>C.plan_id,rows:d.list||[]})]})}),g.jsx(St,{title:"Index Build Tasks",children:g.jsxs(g.Fragment,{children:[p.renderSearcher({defaultFilter:"index_id",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ti["index-build"],"table-view")},columns:f,loading:n.isLoading,getRowId:C=>C.index_id,rows:p.list||[]})]})}),g.jsx(St,{title:"Import Tasks",children:g.jsxs(g.Fragment,{children:[w.renderSearcher({defaultFilter:"job_id",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ti.import,"table-view")},columns:y,loading:r.isLoading,getRowId:C=>C.job_id,rows:w.list||[]})]})}),g.jsx(St,{title:"Sync Tasks",children:g.jsxs(g.Fragment,{children:[m.renderSearcher({defaultFilter:"segment_id",className:"table-view-filter-searcher"}),g.jsx(pt,{classes:{tableContainer:He(Ti.sync,"table-view")},columns:S,loading:o.isLoading,getRowId:C=>C.segment_id,rows:m.list||[]})]})})]})};function wK(e,t){const n=t.diff(e),r=Math.floor(n/1e3),o=Math.floor(r/60),i=Math.floor(o/60),a=Math.floor(i/24),s=Math.floor(a/30),l=Math.floor(s/12);return l>0?`${l}year${l>1?"s":""}`:s>0?`${s} month${s>1?"s":""}`:a>0?`${a} day${a>1?"s":""}`:i>0?`${i} h`:o>0?`${o} m`:r>0?`${r} s`:"< 1s"}const CK="_notice_q5p05_5",lh={"slow-requests":"_slow-requests_q5p05_1","sr-table":"_sr-table_q5p05_1",notice:CK},_K=()=>{const e=Wq(),t=r=>g.jsx(cv,{ellipsis:!0,json:r.getValue()}),n=b.useMemo(()=>[{field:"time",headerName:"Time"},{field:"trace_id",headerName:"Trace ID"},{field:"type",headerName:"Request"},{field:"user",headerName:"User",renderCell:o=>o.getValue()||"unknown"},{field:"database",headerName:"Database"},{field:"collection",headerName:"Collection"},{field:"query_params",headerName:"Parameters",renderCell:t},{field:"duration",headerName:"Duration"}],[]);return g.jsx("div",{className:He("page-wrapper",lh["slow-requests"]),children:g.jsx(St,{title:"Slow Requests",children:g.jsxs(g.Fragment,{children:[g.jsx("div",{className:lh.notice,children:g.jsxs(N1,{severity:"warning",children:[g.jsx("strong",{children:"Notice: "})," Slow request in the last 5 minutes."]})}),g.jsx(pt,{classes:{tableContainer:He(lh["sr-table"],"table-view")},columns:n,loading:e.isLoading,getRowId:r=>r.task_name,rows:e.data||[]})]})})})},ch={},RK=()=>{const e=Uq(),[t,n]=b.useState({page:0,pageSize:10}),[r,o]=b.useState({}),i=u=>{n(d=>({...d,page:u}))},a=u=>g.jsx("div",{className:ch["text-content"],children:u||"-"}),s=b.useMemo(()=>[{field:"key",headerName:"Attribute"},{field:"value",headerName:"Value",renderCell:d=>a(d.getValue())}],[]),l=u=>{o(d=>({...d,q:u.target.value}))},c=b.useMemo(()=>{const u=r.q||"";return(e.data||[]).filter(d=>{const f=d.key.toLowerCase().includes(u.toLowerCase()),p=d.value.toLowerCase().includes(u.toLowerCase());return f||p})},[e.data,r]);return g.jsx("div",{className:He("page-wrapper",ch["slow-requests"]),children:g.jsx(St,{title:"Milvus Configurations",children:g.jsxs(g.Fragment,{children:[g.jsx(D1,{classes:{root:"table-view-searcher"},type:"number",value:r.q,onChange:l,placeholder:"Search attribute or value...",onPointerEnterCapture:()=>{},onPointerLeaveCapture:()=>{}}),g.jsx(pt,{classes:{tableContainer:He(ch["sr-table"],"table-view")},columns:s,loading:e.isLoading,getRowId:u=>u.task_name,rows:c,page:t.page,pageSize:t.pageSize,paginationMode:"client",showPagination:!0,onPageChange:i,rowCount:c.length})]})})})},TK="_trigger_1f0gw_1",PK="_opened_1f0gw_6",Pu={trigger:TK,opened:PK,"tools-menu":"_tools-menu_1f0gw_13","menu-item-content":"_menu-item-content_1f0gw_24"},kK=e=>{const[t,n]=b.useState(null),r=!!t,o=b.useMemo(()=>[{name:"Pprof",link:"/debug/pprof"},{name:"Memory Data Visualization",link:"/static"}],[]),i=f=>()=>{window.open(f.link,"_blank")},a=()=>o.map(f=>g.jsx($c,{onClick:i(f),children:g.jsxs("div",{className:Pu["menu-item-content"],children:[f.name,g.jsx(_m,{})]})})),s=()=>{n(null)},l=g.jsx(E1,{open:r,anchorEl:t,onClose:s,container:document.body,autoFocus:!1,classes:{paper:Pu["tools-menu"]},children:a()}),c=f=>{n(p=>p?null:f.currentTarget)},u=He(Pu.trigger,r&&Pu.opened,e.className),d=g.jsxs("span",{className:u,onClick:c,children:["Tools",g.jsx(ia,{})]});return g.jsxs(g.Fragment,{children:[d,l]})},$K="_header_wg0jk_7",EK="_nav_wg0jk_18",MK="_active_wg0jk_26",IK="_others_wg0jk_32",OK="_content_wg0jk_45",Tr={header:$K,nav:EK,"nav-item":"_nav-item_wg0jk_22",active:MK,others:IK,"zilliz-link":"_zilliz-link_wg0jk_35","zilliz-link-text":"_zilliz-link-text_wg0jk_41",content:OK,"with-ad":"_with-ad_wg0jk_49"},Pr={"base-info":"_base-info_ubkl2_12","info-row":"_info-row_ubkl2_15","info-row-label":"_info-row-label_ubkl2_22","info-row-value":"_info-row-value_ubkl2_26","base-info-form":"_base-info-form_ubkl2_29","base-info-form-label":"_base-info-form-label_ubkl2_32"},LK=()=>{const{identifier:e}=Vk(),{collection:t,indexes:n,segments:r,collectionState:o}=yq(e),i=[{label:"Collection Id",key:"collection_id"},{label:"Collection Name",key:"collection_name"},{label:"Database Name",key:"db_name"},{label:"Created Time",key:"created_time"},{label:"Fields",key:"fields",mapValueTo:y=>y==null?void 0:y.fields.length},{label:"Shards Num",key:"shards_num"},{label:"Consistency level",key:"consistency_level"},{label:"Virtual Channels",key:"virtual_channel_names",mapValueTo:y=>(y==null?void 0:y.virtual_channel_names.join(", "))||"-"},{label:"Physical Channels",key:"physical_channel_names",mapValueTo:y=>(y==null?void 0:y.physical_channel_names.join(", "))||"-"},{label:"Status",key:"__",mapValueTo:()=>g.jsx(zo,{value:o.name,detail:o.desc})}],a=y=>{const w=y.data;return g.jsx(cv,{ellipsis:!0,json:w.user_index_params})},s=y=>{const w=y.toString(),v=y?"deleted":"none";return g.jsx(zo,{value:v,label:w})},l=b.useMemo(()=>[{field:"index_id",headerName:"Index ID"},{field:"name",headerName:"Index Name"},{field:"field_id",headerName:"Field ID"},{field:"create_time",headerName:"Created Time"},{field:"is_deleted",headerName:"IsDeleted",renderCell:w=>s(w.getValue())},{field:"user_index_params",headerName:"User Index Params",renderCell:a}],[]),c=b.useMemo(()=>[{field:"id",headerName:"Segment ID"},{field:"nodeId",headerName:"Node ID"},{field:"rowsCount",headerName:"Rows"},{field:"state",headerName:"State"},{field:"level",headerName:"Level"},{field:"buildIndexState",headerName:"Build Index State",renderCell:w=>g.jsx(zo,{value:w.getValue()})},{field:"loadIndexState",headerName:"Load Index State",renderCell:w=>g.jsx(zo,{value:w.getValue()})}],[]),u=b.useMemo(()=>[{field:"name",headerName:"Name"},{field:"value",headerName:"Value"}],[]),d=b.useMemo(()=>[{field:"name",headerName:"Name"},{field:"field_id",headerName:"Field ID"},{field:"data_type",headerName:"Data Type"},{field:"element_type",headerName:"Element Type"},{field:"default_value",headerName:"Default Value"},{field:"is_primary_key",headerName:"Is Primary Key",renderCell:w=>g.jsx(zo,{value:(!!w.getValue()).toString()})},{field:"auto_id",headerName:"Auto ID",renderCell:w=>g.jsx(zo,{value:(!!w.getValue()).toString()})}],[]),f=b.useMemo(()=>[{field:"partition_name",headerName:"Name"},{field:"partition_id",headerName:"ID"},{field:"created_utc_timestamp",headerName:"Created Time"}],[]),p=()=>{if(!(t!=null&&t.properties)||!Object.keys(t.properties).length)return null;const y=Object.keys(t.properties).map(w=>({name:w,value:t.properties[w]}));return g.jsxs("div",{className:Pr["base-info-form"],children:[g.jsx("div",{className:Pr["base-info-form-label"],children:"Collection Properties"}),g.jsx(pt,{columns:u,rows:y})]})},h=()=>{const y=i.map(w=>g.jsxs("div",{className:Pr["info-row"],children:[g.jsx("div",{className:Pr["info-row-label"],children:w.label}),g.jsx("div",{className:Pr["info-row-value"],children:w.mapValueTo?w.mapValueTo(t):t==null?void 0:t[w.key]})]},w.key));return g.jsxs("div",{className:Pr["base-info"],children:[y,p(),g.jsxs("div",{className:Pr["base-info-form"],children:[g.jsx("div",{className:Pr["base-info-form-label"],children:"Collection Fields"}),g.jsx(pt,{columns:d,rows:(t==null?void 0:t.fields)||[]})]}),g.jsxs("div",{className:Pr["base-info-form"],children:[g.jsx("div",{className:Pr["base-info-form-label"],children:"Collection Partitions"}),g.jsx(pt,{columns:f,rows:(t==null?void 0:t.partition_infos)||[]})]})]})};return g.jsxs("div",{className:He("page-wrapper",Pr.wrapper),children:[g.jsx(St,{title:"Base Info",children:h()}),g.jsx(St,{title:"Indexes",children:g.jsx(pt,{columns:l,rows:n||[]})}),g.jsx(St,{title:"Segments",children:g.jsx(pt,{columns:c,rows:r||[]})})]})},AK="_wrapper_gbea3_12",NK="_title_gbea3_28",DK="_desc_gbea3_31",ku={wrapper:AK,title:NK,desc:DK,"link-btn":"_link-btn_gbea3_36"},jK=e=>{if(e.hidden)return!0;const t=()=>{window.open(DG,"_blank")};return g.jsxs("div",{className:ku.wrapper,children:[g.jsx(mt,{variant:"h4Medium",className:ku.title,children:"Try Managed Milvus for Free"}),g.jsx(mt,{variant:"body3Regular",className:ku.desc,children:"Zilliz Cloud is hassle-free, powered by Milvus and 10x faster."}),g.jsxs("div",{className:ku["link-btn"],onClick:t,children:["Get Started",g.jsx(FK,{})]})]})},FK=e=>g.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 14 14",...e,children:g.jsx("path",{d:"M3.5 11L11.0833 3.41669M11.0833 3.41669V10.6967M11.0833 3.41669H3.80333",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"})}),$u="withoutAd",BK=()=>{const e=X0(),[t]=x4(),n=b.useMemo(()=>{var d;const c=localStorage.getItem($u);if(t.has($u)){const f=((d=t.get($u))==null?void 0:d.toLowerCase())!=="false";return localStorage.setItem($u,f.toString()),f}return c?c==="true":!1},[t]),r=()=>{e("/")},o=b.useMemo(()=>[{name:"Home",id:"index",path:"/",Comp:lK},{name:"Collections",id:"collections",path:"/collections",Comp:vK},{name:"Collections Detail",id:"collections-detail",path:"/collections/:identifier",Comp:LK,withoutNav:!0},{name:"Query",id:"query",path:"/query_component",Comp:bK},{name:"Query Target",withoutNav:!0,id:"query_target",path:"/query_target",Comp:yK},{name:"Data",id:"data",path:"/data_component",Comp:xK},{name:"Tasks",id:"tasks",path:"/tasks",Comp:SK},{name:"Slow Requests",id:"slowRequests",path:"/slow_requests",Comp:_K},{name:"Configurations",id:"configs",path:"/configs",Comp:RK}],[]),i=()=>g.jsx("div",{className:Tr.logo,onClick:r,children:g.jsx("img",{src:dq})}),a=()=>{const c=o.filter(u=>!u.withoutNav).map(u=>g.jsx(v4,{className:({isActive:d})=>He(Tr["nav-item"],d&&Tr.active),to:u.path,children:u.name},u.id));return c.push(g.jsx(kK,{className:Tr["nav-item"]})),g.jsx("div",{className:Tr.nav,children:c})},s=()=>g.jsx("div",{className:Tr.others}),l=()=>o.map(c=>g.jsx(o2,{path:c.path,Component:c.Comp},c.id));return g.jsxs("div",{className:Tr.layout,children:[g.jsxs("header",{className:Tr.header,children:[i(),a(),s()]}),g.jsxs("div",{className:He(Tr.content,!n&&Tr["with-ad"]),children:[g.jsx("div",{className:Tr.detail,children:g.jsx(i4,{children:l()})}),g.jsx(jK,{hidden:!!n})]})]})},zK=()=>{const e=dB("enUS");N3(),GC(document.getElementById("root")).render(g.jsx(bM,{theme:e,children:g.jsx(g4,{basename:"webui",children:g.jsx(gH,{value:{revalidateIfStale:!1,revalidateOnFocus:!1,revalidateOnReconnect:!1},children:g.jsx(BK,{})})})}))};zK(); diff --git a/internal/http/webui/assets/index-D2OgaNZi.js b/internal/http/webui/assets/index-D2OgaNZi.js deleted file mode 100644 index b4a6af798a771..0000000000000 --- a/internal/http/webui/assets/index-D2OgaNZi.js +++ /dev/null @@ -1,1502 +0,0 @@ -var F3=Object.defineProperty;var B3=(e,t,n)=>t in e?F3(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var zs=(e,t,n)=>B3(e,typeof t!="symbol"?t+"":t,n);function z3(e,t){for(var n=0;nr[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}})();var jl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function $o(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function H3(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}),n}var IS={exports:{}},of={},OS={exports:{}},Ze={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var vc=Symbol.for("react.element"),V3=Symbol.for("react.portal"),W3=Symbol.for("react.fragment"),U3=Symbol.for("react.strict_mode"),G3=Symbol.for("react.profiler"),q3=Symbol.for("react.provider"),K3=Symbol.for("react.context"),Z3=Symbol.for("react.forward_ref"),Q3=Symbol.for("react.suspense"),Y3=Symbol.for("react.memo"),X3=Symbol.for("react.lazy"),dv=Symbol.iterator;function J3(e){return e===null||typeof e!="object"?null:(e=dv&&e[dv]||e["@@iterator"],typeof e=="function"?e:null)}var LS={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},AS=Object.assign,NS={};function _s(e,t,n){this.props=e,this.context=t,this.refs=NS,this.updater=n||LS}_s.prototype.isReactComponent={};_s.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};_s.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function DS(){}DS.prototype=_s.prototype;function n0(e,t,n){this.props=e,this.context=t,this.refs=NS,this.updater=n||LS}var r0=n0.prototype=new DS;r0.constructor=n0;AS(r0,_s.prototype);r0.isPureReactComponent=!0;var fv=Array.isArray,jS=Object.prototype.hasOwnProperty,o0={current:null},FS={key:!0,ref:!0,__self:!0,__source:!0};function BS(e,t,n){var r,o={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)jS.call(t,r)&&!FS.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(s===1)o.children=n;else if(1>>1,z=E[H];if(0>>1;Ho(W,B))Vo(ee,W)?(E[H]=ee,E[V]=B,H=V):(E[H]=W,E[F]=B,H=F);else if(Vo(ee,B))E[H]=ee,E[V]=B,H=V;else break e}}return L}function o(E,L){var B=E.sortIndex-L.sortIndex;return B!==0?B:E.id-L.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],c=[],u=1,d=null,f=3,p=!1,h=!1,y=!1,C=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,S=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function m(E){for(var L=n(c);L!==null;){if(L.callback===null)r(c);else if(L.startTime<=E)r(c),L.sortIndex=L.expirationTime,t(l,L);else break;L=n(c)}}function w(E){if(y=!1,m(E),!h)if(n(l)!==null)h=!0,A(_);else{var L=n(c);L!==null&&N(w,L.startTime-E)}}function _(E,L){h=!1,y&&(y=!1,v(T),T=-1),p=!0;var B=f;try{for(m(L),d=n(l);d!==null&&(!(d.expirationTime>L)||E&&!$());){var H=d.callback;if(typeof H=="function"){d.callback=null,f=d.priorityLevel;var z=H(d.expirationTime<=L);L=e.unstable_now(),typeof z=="function"?d.callback=z:d===n(l)&&r(l),m(L)}else r(l);d=n(l)}if(d!==null)var j=!0;else{var F=n(c);F!==null&&N(w,F.startTime-L),j=!1}return j}finally{d=null,f=B,p=!1}}var R=!1,k=null,T=-1,P=5,x=-1;function $(){return!(e.unstable_now()-xE||125H?(E.sortIndex=B,t(c,E),n(l)===null&&E===n(c)&&(y?(v(T),T=-1):y=!0,N(w,B-H))):(E.sortIndex=z,t(l,E),h||p||(h=!0,A(_))),E},e.unstable_shouldYield=$,e.unstable_wrapCallback=function(E){var L=f;return function(){var B=f;f=L;try{return E.apply(this,arguments)}finally{f=B}}}})(US);WS.exports=US;var uT=WS.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var dT=b,Jn=uT;function he(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ch=Object.prototype.hasOwnProperty,fT=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,gv={},hv={};function pT(e){return ch.call(hv,e)?!0:ch.call(gv,e)?!1:fT.test(e)?hv[e]=!0:(gv[e]=!0,!1)}function gT(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function hT(e,t,n,r){if(t===null||typeof t>"u"||gT(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function En(e,t,n,r,o,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var cn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){cn[e]=new En(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];cn[t]=new En(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){cn[e]=new En(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){cn[e]=new En(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){cn[e]=new En(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){cn[e]=new En(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){cn[e]=new En(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){cn[e]=new En(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){cn[e]=new En(e,5,!1,e.toLowerCase(),null,!1,!1)});var a0=/[\-:]([a-z])/g;function s0(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(a0,s0);cn[t]=new En(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(a0,s0);cn[t]=new En(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(a0,s0);cn[t]=new En(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){cn[e]=new En(e,1,!1,e.toLowerCase(),null,!1,!1)});cn.xlinkHref=new En("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){cn[e]=new En(e,1,!1,e.toLowerCase(),null,!0,!0)});function l0(e,t,n,r){var o=cn.hasOwnProperty(t)?cn[t]:null;(o!==null?o.type!==0:r||!(2s||o[a]!==i[s]){var l=` -`+o[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{Op=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ul(e):""}function mT(e){switch(e.tag){case 5:return ul(e.type);case 16:return ul("Lazy");case 13:return ul("Suspense");case 19:return ul("SuspenseList");case 0:case 2:case 15:return e=Lp(e.type,!1),e;case 11:return e=Lp(e.type.render,!1),e;case 1:return e=Lp(e.type,!0),e;default:return""}}function ph(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Pa:return"Fragment";case Ta:return"Portal";case uh:return"Profiler";case c0:return"StrictMode";case dh:return"Suspense";case fh:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case KS:return(e.displayName||"Context")+".Consumer";case qS:return(e._context.displayName||"Context")+".Provider";case u0:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case d0:return t=e.displayName||null,t!==null?t:ph(e.type)||"Memo";case Do:t=e._payload,e=e._init;try{return ph(e(t))}catch{}}return null}function vT(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ph(t);case 8:return t===c0?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ui(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function QS(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function yT(e){var t=QS(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Uc(e){e._valueTracker||(e._valueTracker=yT(e))}function YS(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=QS(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function ad(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function gh(e,t){var n=t.checked;return _t({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function vv(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ui(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function XS(e,t){t=t.checked,t!=null&&l0(e,"checked",t,!1)}function hh(e,t){XS(e,t);var n=ui(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?mh(e,t.type,n):t.hasOwnProperty("defaultValue")&&mh(e,t.type,ui(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function yv(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function mh(e,t,n){(t!=="number"||ad(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var dl=Array.isArray;function Ua(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=Gc.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Bl(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var yl={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},bT=["Webkit","ms","Moz","O"];Object.keys(yl).forEach(function(e){bT.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),yl[t]=yl[e]})});function nw(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||yl.hasOwnProperty(e)&&yl[e]?(""+t).trim():t+"px"}function rw(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=nw(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var xT=_t({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function bh(e,t){if(t){if(xT[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(he(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(he(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(he(61))}if(t.style!=null&&typeof t.style!="object")throw Error(he(62))}}function xh(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Sh=null;function f0(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var wh=null,Ga=null,qa=null;function Sv(e){if(e=xc(e)){if(typeof wh!="function")throw Error(he(280));var t=e.stateNode;t&&(t=uf(t),wh(e.stateNode,e.type,t))}}function ow(e){Ga?qa?qa.push(e):qa=[e]:Ga=e}function iw(){if(Ga){var e=Ga,t=qa;if(qa=Ga=null,Sv(e),t)for(e=0;e>>=0,e===0?32:31-(MT(e)/IT|0)|0}var qc=64,Kc=4194304;function fl(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ud(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~o;s!==0?r=fl(s):(i&=a,i!==0&&(r=fl(i)))}else a=n&~o,a!==0?r=fl(a):i!==0&&(r=fl(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&o)&&(o=r&-r,i=t&-t,o>=i||o===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function yc(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Lr(t),e[t]=n}function NT(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=xl),Ev=" ",Mv=!1;function Rw(e,t){switch(e){case"keyup":return uP.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Tw(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ka=!1;function fP(e,t){switch(e){case"compositionend":return Tw(t);case"keypress":return t.which!==32?null:(Mv=!0,Ev);case"textInput":return e=t.data,e===Ev&&Mv?null:e;default:return null}}function pP(e,t){if(ka)return e==="compositionend"||!x0&&Rw(e,t)?(e=Cw(),Ou=v0=qo=null,ka=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Av(n)}}function Ew(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ew(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Mw(){for(var e=window,t=ad();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=ad(e.document)}return t}function S0(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function wP(e){var t=Mw(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Ew(n.ownerDocument.documentElement,n)){if(r!==null&&S0(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,i=Math.min(r.start,o);r=r.end===void 0?i:Math.min(r.end,o),!e.extend&&i>r&&(o=r,r=i,i=o),o=Nv(n,i);var a=Nv(n,r);o&&a&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,$a=null,kh=null,wl=null,$h=!1;function Dv(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;$h||$a==null||$a!==ad(r)||(r=$a,"selectionStart"in r&&S0(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),wl&&Gl(wl,r)||(wl=r,r=pd(kh,"onSelect"),0Ia||(e.current=Ah[Ia],Ah[Ia]=null,Ia--)}function gt(e,t){Ia++,Ah[Ia]=e.current,e.current=t}var di={},xn=mi(di),An=mi(!1),qi=di;function ns(e,t){var n=e.type.contextTypes;if(!n)return di;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in n)o[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Nn(e){return e=e.childContextTypes,e!=null}function hd(){yt(An),yt(xn)}function Wv(e,t,n){if(xn.current!==di)throw Error(he(168));gt(xn,t),gt(An,n)}function Bw(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(he(108,vT(e)||"Unknown",o));return _t({},n,r)}function md(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||di,qi=xn.current,gt(xn,e),gt(An,An.current),!0}function Uv(e,t,n){var r=e.stateNode;if(!r)throw Error(he(169));n?(e=Bw(e,t,qi),r.__reactInternalMemoizedMergedChildContext=e,yt(An),yt(xn),gt(xn,e)):yt(An),gt(An,n)}var mo=null,df=!1,Kp=!1;function zw(e){mo===null?mo=[e]:mo.push(e)}function LP(e){df=!0,zw(e)}function vi(){if(!Kp&&mo!==null){Kp=!0;var e=0,t=st;try{var n=mo;for(st=1;e>=a,o-=a,yo=1<<32-Lr(t)+o|n<T?(P=k,k=null):P=k.sibling;var x=f(v,k,m[T],w);if(x===null){k===null&&(k=P);break}e&&k&&x.alternate===null&&t(v,k),S=i(x,S,T),R===null?_=x:R.sibling=x,R=x,k=P}if(T===m.length)return n(v,k),xt&&Pi(v,T),_;if(k===null){for(;TT?(P=k,k=null):P=k.sibling;var $=f(v,k,x.value,w);if($===null){k===null&&(k=P);break}e&&k&&$.alternate===null&&t(v,k),S=i($,S,T),R===null?_=$:R.sibling=$,R=$,k=P}if(x.done)return n(v,k),xt&&Pi(v,T),_;if(k===null){for(;!x.done;T++,x=m.next())x=d(v,x.value,w),x!==null&&(S=i(x,S,T),R===null?_=x:R.sibling=x,R=x);return xt&&Pi(v,T),_}for(k=r(v,k);!x.done;T++,x=m.next())x=p(k,v,T,x.value,w),x!==null&&(e&&x.alternate!==null&&k.delete(x.key===null?T:x.key),S=i(x,S,T),R===null?_=x:R.sibling=x,R=x);return e&&k.forEach(function(I){return t(v,I)}),xt&&Pi(v,T),_}function C(v,S,m,w){if(typeof m=="object"&&m!==null&&m.type===Pa&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case Wc:e:{for(var _=m.key,R=S;R!==null;){if(R.key===_){if(_=m.type,_===Pa){if(R.tag===7){n(v,R.sibling),S=o(R,m.props.children),S.return=v,v=S;break e}}else if(R.elementType===_||typeof _=="object"&&_!==null&&_.$$typeof===Do&&Kv(_)===R.type){n(v,R.sibling),S=o(R,m.props),S.ref=qs(v,R,m),S.return=v,v=S;break e}n(v,R);break}else t(v,R);R=R.sibling}m.type===Pa?(S=Bi(m.props.children,v.mode,w,m.key),S.return=v,v=S):(w=zu(m.type,m.key,m.props,null,v.mode,w),w.ref=qs(v,S,m),w.return=v,v=w)}return a(v);case Ta:e:{for(R=m.key;S!==null;){if(S.key===R)if(S.tag===4&&S.stateNode.containerInfo===m.containerInfo&&S.stateNode.implementation===m.implementation){n(v,S.sibling),S=o(S,m.children||[]),S.return=v,v=S;break e}else{n(v,S);break}else t(v,S);S=S.sibling}S=ng(m,v.mode,w),S.return=v,v=S}return a(v);case Do:return R=m._init,C(v,S,R(m._payload),w)}if(dl(m))return h(v,S,m,w);if(Hs(m))return y(v,S,m,w);tu(v,m)}return typeof m=="string"&&m!==""||typeof m=="number"?(m=""+m,S!==null&&S.tag===6?(n(v,S.sibling),S=o(S,m),S.return=v,v=S):(n(v,S),S=tg(m,v.mode,w),S.return=v,v=S),a(v)):n(v,S)}return C}var os=Uw(!0),Gw=Uw(!1),bd=mi(null),xd=null,Aa=null,R0=null;function T0(){R0=Aa=xd=null}function P0(e){var t=bd.current;yt(bd),e._currentValue=t}function jh(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Za(e,t){xd=e,R0=Aa=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(On=!0),e.firstContext=null)}function yr(e){var t=e._currentValue;if(R0!==e)if(e={context:e,memoizedValue:t,next:null},Aa===null){if(xd===null)throw Error(he(308));Aa=e,xd.dependencies={lanes:0,firstContext:e}}else Aa=Aa.next=e;return t}var Li=null;function k0(e){Li===null?Li=[e]:Li.push(e)}function qw(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,k0(t)):(n.next=o.next,o.next=n),t.interleaved=n,_o(e,r)}function _o(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var jo=!1;function $0(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Kw(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function xo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ii(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Je&2){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,_o(e,n)}return o=r.interleaved,o===null?(t.next=t,k0(r)):(t.next=o.next,o.next=t),r.interleaved=t,_o(e,n)}function Au(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,g0(e,n)}}function Zv(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?o=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?o=i=t:i=i.next=t}else o=i=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Sd(e,t,n,r){var o=e.updateQueue;jo=!1;var i=o.firstBaseUpdate,a=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var l=s,c=l.next;l.next=null,a===null?i=c:a.next=c,a=l;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==a&&(s===null?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(i!==null){var d=o.baseState;a=0,u=c=l=null,s=i;do{var f=s.lane,p=s.eventTime;if((r&f)===f){u!==null&&(u=u.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var h=e,y=s;switch(f=t,p=n,y.tag){case 1:if(h=y.payload,typeof h=="function"){d=h.call(p,d,f);break e}d=h;break e;case 3:h.flags=h.flags&-65537|128;case 0:if(h=y.payload,f=typeof h=="function"?h.call(p,d,f):h,f==null)break e;d=_t({},d,f);break e;case 2:jo=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,f=o.effects,f===null?o.effects=[s]:f.push(s))}else p={eventTime:p,lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(c=u=p,l=d):u=u.next=p,a|=f;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;f=s,s=f.next,f.next=null,o.lastBaseUpdate=f,o.shared.pending=null}}while(!0);if(u===null&&(l=d),o.baseState=l,o.firstBaseUpdate=c,o.lastBaseUpdate=u,t=o.shared.interleaved,t!==null){o=t;do a|=o.lane,o=o.next;while(o!==t)}else i===null&&(o.shared.lanes=0);Qi|=a,e.lanes=a,e.memoizedState=d}}function Qv(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Qp.transition;Qp.transition={};try{e(!1),t()}finally{st=n,Qp.transition=r}}function dC(){return br().memoizedState}function jP(e,t,n){var r=si(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},fC(e))pC(t,n);else if(n=qw(e,t,n,r),n!==null){var o=kn();Ar(n,e,r,o),gC(n,t,r)}}function FP(e,t,n){var r=si(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(fC(e))pC(t,o);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,s=i(a,n);if(o.hasEagerState=!0,o.eagerState=s,jr(s,a)){var l=t.interleaved;l===null?(o.next=o,k0(t)):(o.next=l.next,l.next=o),t.interleaved=o;return}}catch{}finally{}n=qw(e,t,o,r),n!==null&&(o=kn(),Ar(n,e,r,o),gC(n,t,r))}}function fC(e){var t=e.alternate;return e===Ct||t!==null&&t===Ct}function pC(e,t){Cl=Cd=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function gC(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,g0(e,n)}}var _d={readContext:yr,useCallback:fn,useContext:fn,useEffect:fn,useImperativeHandle:fn,useInsertionEffect:fn,useLayoutEffect:fn,useMemo:fn,useReducer:fn,useRef:fn,useState:fn,useDebugValue:fn,useDeferredValue:fn,useTransition:fn,useMutableSource:fn,useSyncExternalStore:fn,useId:fn,unstable_isNewReconciler:!1},BP={readContext:yr,useCallback:function(e,t){return Kr().memoizedState=[e,t===void 0?null:t],e},useContext:yr,useEffect:Xv,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Du(4194308,4,aC.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Du(4194308,4,e,t)},useInsertionEffect:function(e,t){return Du(4,2,e,t)},useMemo:function(e,t){var n=Kr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Kr();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=jP.bind(null,Ct,e),[r.memoizedState,e]},useRef:function(e){var t=Kr();return e={current:e},t.memoizedState=e},useState:Yv,useDebugValue:D0,useDeferredValue:function(e){return Kr().memoizedState=e},useTransition:function(){var e=Yv(!1),t=e[0];return e=DP.bind(null,e[1]),Kr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Ct,o=Kr();if(xt){if(n===void 0)throw Error(he(407));n=n()}else{if(n=t(),en===null)throw Error(he(349));Zi&30||Xw(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Xv(eC.bind(null,r,i,e),[e]),r.flags|=2048,ec(9,Jw.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Kr(),t=en.identifierPrefix;if(xt){var n=bo,r=yo;n=(r&~(1<<32-Lr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Xl++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Jr]=t,e[Zl]=r,_C(e,t,!1,!1),t.stateNode=e;e:{switch(a=xh(n,r),n){case"dialog":vt("cancel",e),vt("close",e),o=r;break;case"iframe":case"object":case"embed":vt("load",e),o=r;break;case"video":case"audio":for(o=0;oss&&(t.flags|=128,r=!0,Ks(i,!1),t.lanes=4194304)}else{if(!r)if(e=wd(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Ks(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!xt)return pn(t),null}else 2*Lt()-i.renderingStartTime>ss&&n!==1073741824&&(t.flags|=128,r=!0,Ks(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Lt(),t.sibling=null,n=wt.current,gt(wt,r?n&1|2:n&1),t):(pn(t),null);case 22:case 23:return V0(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Un&1073741824&&(pn(t),t.subtreeFlags&6&&(t.flags|=8192)):pn(t),null;case 24:return null;case 25:return null}throw Error(he(156,t.tag))}function KP(e,t){switch(C0(t),t.tag){case 1:return Nn(t.type)&&hd(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return is(),yt(An),yt(xn),I0(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return M0(t),null;case 13:if(yt(wt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(he(340));rs()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return yt(wt),null;case 4:return is(),null;case 10:return P0(t.type._context),null;case 22:case 23:return V0(),null;case 24:return null;default:return null}}var ru=!1,yn=!1,ZP=typeof WeakSet=="function"?WeakSet:Set,_e=null;function Na(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){It(e,t,r)}else n.current=null}function qh(e,t,n){try{n()}catch(r){It(e,t,r)}}var cy=!1;function QP(e,t){if(Eh=dd,e=Mw(),S0(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,s=-1,l=-1,c=0,u=0,d=e,f=null;t:for(;;){for(var p;d!==n||o!==0&&d.nodeType!==3||(s=a+o),d!==i||r!==0&&d.nodeType!==3||(l=a+r),d.nodeType===3&&(a+=d.nodeValue.length),(p=d.firstChild)!==null;)f=d,d=p;for(;;){if(d===e)break t;if(f===n&&++c===o&&(s=a),f===i&&++u===r&&(l=a),(p=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=p}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Mh={focusedElem:e,selectionRange:n},dd=!1,_e=t;_e!==null;)if(t=_e,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,_e=e;else for(;_e!==null;){t=_e;try{var h=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(h!==null){var y=h.memoizedProps,C=h.memoizedState,v=t.stateNode,S=v.getSnapshotBeforeUpdate(t.elementType===t.type?y:Pr(t.type,y),C);v.__reactInternalSnapshotBeforeUpdate=S}break;case 3:var m=t.stateNode.containerInfo;m.nodeType===1?m.textContent="":m.nodeType===9&&m.documentElement&&m.removeChild(m.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(he(163))}}catch(w){It(t,t.return,w)}if(e=t.sibling,e!==null){e.return=t.return,_e=e;break}_e=t.return}return h=cy,cy=!1,h}function _l(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var i=o.destroy;o.destroy=void 0,i!==void 0&&qh(t,n,i)}o=o.next}while(o!==r)}}function gf(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Kh(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function PC(e){var t=e.alternate;t!==null&&(e.alternate=null,PC(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Jr],delete t[Zl],delete t[Lh],delete t[IP],delete t[OP])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function kC(e){return e.tag===5||e.tag===3||e.tag===4}function uy(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||kC(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Zh(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=gd));else if(r!==4&&(e=e.child,e!==null))for(Zh(e,t,n),e=e.sibling;e!==null;)Zh(e,t,n),e=e.sibling}function Qh(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Qh(e,t,n),e=e.sibling;e!==null;)Qh(e,t,n),e=e.sibling}var rn=null,kr=!1;function Ao(e,t,n){for(n=n.child;n!==null;)$C(e,t,n),n=n.sibling}function $C(e,t,n){if(to&&typeof to.onCommitFiberUnmount=="function")try{to.onCommitFiberUnmount(af,n)}catch{}switch(n.tag){case 5:yn||Na(n,t);case 6:var r=rn,o=kr;rn=null,Ao(e,t,n),rn=r,kr=o,rn!==null&&(kr?(e=rn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):rn.removeChild(n.stateNode));break;case 18:rn!==null&&(kr?(e=rn,n=n.stateNode,e.nodeType===8?qp(e.parentNode,n):e.nodeType===1&&qp(e,n),Wl(e)):qp(rn,n.stateNode));break;case 4:r=rn,o=kr,rn=n.stateNode.containerInfo,kr=!0,Ao(e,t,n),rn=r,kr=o;break;case 0:case 11:case 14:case 15:if(!yn&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var i=o,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&qh(n,t,a),o=o.next}while(o!==r)}Ao(e,t,n);break;case 1:if(!yn&&(Na(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){It(n,t,s)}Ao(e,t,n);break;case 21:Ao(e,t,n);break;case 22:n.mode&1?(yn=(r=yn)||n.memoizedState!==null,Ao(e,t,n),yn=r):Ao(e,t,n);break;default:Ao(e,t,n)}}function dy(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new ZP),t.forEach(function(r){var o=ik.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function Rr(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=a),r&=~i}if(r=o,r=Lt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*XP(r/1960))-r,10e?16:e,Ko===null)var r=!1;else{if(e=Ko,Ko=null,Pd=0,Je&6)throw Error(he(331));var o=Je;for(Je|=4,_e=e.current;_e!==null;){var i=_e,a=i.child;if(_e.flags&16){var s=i.deletions;if(s!==null){for(var l=0;lLt()-z0?Fi(e,0):B0|=n),Dn(e,t)}function DC(e,t){t===0&&(e.mode&1?(t=Kc,Kc<<=1,!(Kc&130023424)&&(Kc=4194304)):t=1);var n=kn();e=_o(e,t),e!==null&&(yc(e,t,n),Dn(e,n))}function ok(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),DC(e,n)}function ik(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(he(314))}r!==null&&r.delete(t),DC(e,n)}var jC;jC=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||An.current)On=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return On=!1,GP(e,t,n);On=!!(e.flags&131072)}else On=!1,xt&&t.flags&1048576&&Hw(t,yd,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ju(e,t),e=t.pendingProps;var o=ns(t,xn.current);Za(t,n),o=L0(null,t,r,e,o,n);var i=A0();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Nn(r)?(i=!0,md(t)):i=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,$0(t),o.updater=pf,t.stateNode=o,o._reactInternals=t,Bh(t,r,e,n),t=Vh(null,t,r,!0,i,n)):(t.tag=0,xt&&i&&w0(t),Tn(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ju(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=sk(r),e=Pr(r,e),o){case 0:t=Hh(null,t,r,e,n);break e;case 1:t=ay(null,t,r,e,n);break e;case 11:t=oy(null,t,r,e,n);break e;case 14:t=iy(null,t,r,Pr(r.type,e),n);break e}throw Error(he(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Pr(r,o),Hh(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Pr(r,o),ay(e,t,r,o,n);case 3:e:{if(SC(t),e===null)throw Error(he(387));r=t.pendingProps,i=t.memoizedState,o=i.element,Kw(e,t),Sd(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){o=as(Error(he(423)),t),t=sy(e,t,r,n,o);break e}else if(r!==o){o=as(Error(he(424)),t),t=sy(e,t,r,n,o);break e}else for(Zn=oi(t.stateNode.containerInfo.firstChild),Qn=t,xt=!0,Er=null,n=Gw(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(rs(),r===o){t=Ro(e,t,n);break e}Tn(e,t,r,n)}t=t.child}return t;case 5:return Zw(t),e===null&&Dh(t),r=t.type,o=t.pendingProps,i=e!==null?e.memoizedProps:null,a=o.children,Ih(r,o)?a=null:i!==null&&Ih(r,i)&&(t.flags|=32),xC(e,t),Tn(e,t,a,n),t.child;case 6:return e===null&&Dh(t),null;case 13:return wC(e,t,n);case 4:return E0(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=os(t,null,r,n):Tn(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Pr(r,o),oy(e,t,r,o,n);case 7:return Tn(e,t,t.pendingProps,n),t.child;case 8:return Tn(e,t,t.pendingProps.children,n),t.child;case 12:return Tn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,a=o.value,gt(bd,r._currentValue),r._currentValue=a,i!==null)if(jr(i.value,a)){if(i.children===o.children&&!An.current){t=Ro(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){a=i.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(i.tag===1){l=xo(-1,n&-n),l.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var u=c.pending;u===null?l.next=l:(l.next=u.next,u.next=l),c.pending=l}}i.lanes|=n,l=i.alternate,l!==null&&(l.lanes|=n),jh(i.return,n,t),s.lanes|=n;break}l=l.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(he(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),jh(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Tn(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Za(t,n),o=yr(o),r=r(o),t.flags|=1,Tn(e,t,r,n),t.child;case 14:return r=t.type,o=Pr(r,t.pendingProps),o=Pr(r.type,o),iy(e,t,r,o,n);case 15:return yC(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Pr(r,o),ju(e,t),t.tag=1,Nn(r)?(e=!0,md(t)):e=!1,Za(t,n),hC(t,r,o),Bh(t,r,o,n),Vh(null,t,r,!0,e,n);case 19:return CC(e,t,n);case 22:return bC(e,t,n)}throw Error(he(156,t.tag))};function FC(e,t){return fw(e,t)}function ak(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function gr(e,t,n,r){return new ak(e,t,n,r)}function U0(e){return e=e.prototype,!(!e||!e.isReactComponent)}function sk(e){if(typeof e=="function")return U0(e)?1:0;if(e!=null){if(e=e.$$typeof,e===u0)return 11;if(e===d0)return 14}return 2}function li(e,t){var n=e.alternate;return n===null?(n=gr(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function zu(e,t,n,r,o,i){var a=2;if(r=e,typeof e=="function")U0(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Pa:return Bi(n.children,o,i,t);case c0:a=8,o|=8;break;case uh:return e=gr(12,n,t,o|2),e.elementType=uh,e.lanes=i,e;case dh:return e=gr(13,n,t,o),e.elementType=dh,e.lanes=i,e;case fh:return e=gr(19,n,t,o),e.elementType=fh,e.lanes=i,e;case ZS:return mf(n,o,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case qS:a=10;break e;case KS:a=9;break e;case u0:a=11;break e;case d0:a=14;break e;case Do:a=16,r=null;break e}throw Error(he(130,e==null?e:typeof e,""))}return t=gr(a,n,t,o),t.elementType=e,t.type=r,t.lanes=i,t}function Bi(e,t,n,r){return e=gr(7,e,r,t),e.lanes=n,e}function mf(e,t,n,r){return e=gr(22,e,r,t),e.elementType=ZS,e.lanes=n,e.stateNode={isHidden:!1},e}function tg(e,t,n){return e=gr(6,e,null,t),e.lanes=n,e}function ng(e,t,n){return t=gr(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function lk(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Np(0),this.expirationTimes=Np(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Np(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function G0(e,t,n,r,o,i,a,s,l){return e=new lk(e,t,n,s,l),t===1?(t=1,i===!0&&(t|=8)):t=0,i=gr(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},$0(i),e}function ck(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(VC)}catch(e){console.error(e)}}VC(),VS.exports=nr;var Q0=VS.exports;const au=$o(Q0);var WC,by=Q0;WC=by.createRoot,by.hydrateRoot;/** - * @remix-run/router v1.21.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function nc(){return nc=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function UC(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function hk(){return Math.random().toString(36).substr(2,8)}function Sy(e,t){return{usr:e.state,key:e.key,idx:t}}function tm(e,t,n,r){return n===void 0&&(n=null),nc({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ps(t):t,{state:n,key:t&&t.key||r||hk()})}function Ed(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Ps(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function mk(e,t,n,r){r===void 0&&(r={});let{window:o=document.defaultView,v5Compat:i=!1}=r,a=o.history,s=Zo.Pop,l=null,c=u();c==null&&(c=0,a.replaceState(nc({},a.state,{idx:c}),""));function u(){return(a.state||{idx:null}).idx}function d(){s=Zo.Pop;let C=u(),v=C==null?null:C-c;c=C,l&&l({action:s,location:y.location,delta:v})}function f(C,v){s=Zo.Push;let S=tm(y.location,C,v);c=u()+1;let m=Sy(S,c),w=y.createHref(S);try{a.pushState(m,"",w)}catch(_){if(_ instanceof DOMException&&_.name==="DataCloneError")throw _;o.location.assign(w)}i&&l&&l({action:s,location:y.location,delta:1})}function p(C,v){s=Zo.Replace;let S=tm(y.location,C,v);c=u();let m=Sy(S,c),w=y.createHref(S);a.replaceState(m,"",w),i&&l&&l({action:s,location:y.location,delta:0})}function h(C){let v=o.location.origin!=="null"?o.location.origin:o.location.href,S=typeof C=="string"?C:Ed(C);return S=S.replace(/ $/,"%20"),Ot(v,"No window.location.(origin|href) available to create URL for href: "+S),new URL(S,v)}let y={get action(){return s},get location(){return e(o,a)},listen(C){if(l)throw new Error("A history only accepts one active listener");return o.addEventListener(xy,d),l=C,()=>{o.removeEventListener(xy,d),l=null}},createHref(C){return t(o,C)},createURL:h,encodeLocation(C){let v=h(C);return{pathname:v.pathname,search:v.search,hash:v.hash}},push:f,replace:p,go(C){return a.go(C)}};return y}var wy;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(wy||(wy={}));function vk(e,t,n){return n===void 0&&(n="/"),yk(e,t,n,!1)}function yk(e,t,n,r){let o=typeof t=="string"?Ps(t):t,i=ls(o.pathname||"/",n);if(i==null)return null;let a=GC(e);bk(a);let s=null;for(let l=0;s==null&&l{let l={relativePath:s===void 0?i.path||"":s,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};l.relativePath.startsWith("/")&&(Ot(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let c=ci([r,l.relativePath]),u=n.concat(l);i.children&&i.children.length>0&&(Ot(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),GC(i.children,t,u,c)),!(i.path==null&&!i.index)&&t.push({path:c,score:Tk(c,i.index),routesMeta:u})};return e.forEach((i,a)=>{var s;if(i.path===""||!((s=i.path)!=null&&s.includes("?")))o(i,a);else for(let l of qC(i.path))o(i,a,l)}),t}function qC(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return o?[i,""]:[i];let a=qC(r.join("/")),s=[];return s.push(...a.map(l=>l===""?i:[i,l].join("/"))),o&&s.push(...a),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function bk(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Pk(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const xk=/^:[\w-]+$/,Sk=3,wk=2,Ck=1,_k=10,Rk=-2,Cy=e=>e==="*";function Tk(e,t){let n=e.split("/"),r=n.length;return n.some(Cy)&&(r+=Rk),t&&(r+=wk),n.filter(o=>!Cy(o)).reduce((o,i)=>o+(xk.test(i)?Sk:i===""?Ck:_k),r)}function Pk(e,t){return e.length===t.length&&e.slice(0,-1).every((r,o)=>r===t[o])?e[e.length-1]-t[t.length-1]:0}function kk(e,t,n){let{routesMeta:r}=e,o={},i="/",a=[];for(let s=0;s{let{paramName:f,isOptional:p}=u;if(f==="*"){let y=s[d]||"";a=i.slice(0,i.length-y.length).replace(/(.)\/+$/,"$1")}const h=s[d];return p&&!h?c[f]=void 0:c[f]=(h||"").replace(/%2F/g,"/"),c},{}),pathname:i,pathnameBase:a,pattern:e}}function $k(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),UC(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,s,l)=>(r.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":e!==""&&e!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),r]}function Ek(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return UC(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function ls(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function Mk(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:o=""}=typeof e=="string"?Ps(e):e;return{pathname:n?n.startsWith("/")?n:Ik(n,t):t,search:Ak(r),hash:Nk(o)}}function Ik(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(o=>{o===".."?n.length>1&&n.pop():o!=="."&&n.push(o)}),n.length>1?n.join("/"):"/"}function rg(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function Ok(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function KC(e,t){let n=Ok(e);return t?n.map((r,o)=>o===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function ZC(e,t,n,r){r===void 0&&(r=!1);let o;typeof e=="string"?o=Ps(e):(o=nc({},e),Ot(!o.pathname||!o.pathname.includes("?"),rg("?","pathname","search",o)),Ot(!o.pathname||!o.pathname.includes("#"),rg("#","pathname","hash",o)),Ot(!o.search||!o.search.includes("#"),rg("#","search","hash",o)));let i=e===""||o.pathname==="",a=i?"/":o.pathname,s;if(a==null)s=n;else{let d=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),d-=1;o.pathname=f.join("/")}s=d>=0?t[d]:"/"}let l=Mk(o,s),c=a&&a!=="/"&&a.endsWith("/"),u=(i||a===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(c||u)&&(l.pathname+="/"),l}const ci=e=>e.join("/").replace(/\/\/+/g,"/"),Lk=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Ak=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Nk=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function Dk(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const QC=["post","put","patch","delete"];new Set(QC);const jk=["get",...QC];new Set(jk);/** - * React Router v6.28.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function rc(){return rc=Object.assign?Object.assign.bind():function(e){for(var t=1;t{s.current=!0}),b.useCallback(function(c,u){if(u===void 0&&(u={}),!s.current)return;if(typeof c=="number"){r.go(c);return}let d=ZC(c,JSON.parse(a),i,u.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:ci([t,d.pathname])),(u.replace?r.replace:r.push)(d,u.state,u)},[t,r,a,i,e])}function zk(){let{matches:e}=b.useContext(bi),t=e[e.length-1];return t?t.params:{}}function Cf(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=b.useContext(yi),{matches:o}=b.useContext(bi),{pathname:i}=ks(),a=JSON.stringify(KC(o,r.v7_relativeSplatPath));return b.useMemo(()=>ZC(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function Hk(e,t){return Vk(e,t)}function Vk(e,t,n,r){wc()||Ot(!1);let{navigator:o}=b.useContext(yi),{matches:i}=b.useContext(bi),a=i[i.length-1],s=a?a.params:{};a&&a.pathname;let l=a?a.pathnameBase:"/";a&&a.route;let c=ks(),u;if(t){var d;let C=typeof t=="string"?Ps(t):t;l==="/"||(d=C.pathname)!=null&&d.startsWith(l)||Ot(!1),u=C}else u=c;let f=u.pathname||"/",p=f;if(l!=="/"){let C=l.replace(/^\//,"").split("/");p="/"+f.replace(/^\//,"").split("/").slice(C.length).join("/")}let h=vk(e,{pathname:p}),y=Kk(h&&h.map(C=>Object.assign({},C,{params:Object.assign({},s,C.params),pathname:ci([l,o.encodeLocation?o.encodeLocation(C.pathname).pathname:C.pathname]),pathnameBase:C.pathnameBase==="/"?l:ci([l,o.encodeLocation?o.encodeLocation(C.pathnameBase).pathname:C.pathnameBase])})),i,n,r);return t&&y?b.createElement(wf.Provider,{value:{location:rc({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:Zo.Pop}},y):y}function Wk(){let e=Xk(),t=Dk(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,o={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},t),n?b.createElement("pre",{style:o},n):null,null)}const Uk=b.createElement(Wk,null);class Gk extends b.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?b.createElement(bi.Provider,{value:this.props.routeContext},b.createElement(XC.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function qk(e){let{routeContext:t,match:n,children:r}=e,o=b.useContext(Sf);return o&&o.static&&o.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=n.route.id),b.createElement(bi.Provider,{value:t},r)}function Kk(e,t,n,r){var o;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,s=(o=n)==null?void 0:o.errors;if(s!=null){let u=a.findIndex(d=>d.route.id&&(s==null?void 0:s[d.route.id])!==void 0);u>=0||Ot(!1),a=a.slice(0,Math.min(a.length,u+1))}let l=!1,c=-1;if(n&&r&&r.v7_partialHydration)for(let u=0;u=0?a=a.slice(0,c+1):a=[a[0]];break}}}return a.reduceRight((u,d,f)=>{let p,h=!1,y=null,C=null;n&&(p=s&&d.route.id?s[d.route.id]:void 0,y=d.route.errorElement||Uk,l&&(c<0&&f===0?(h=!0,C=null):c===f&&(h=!0,C=d.route.hydrateFallbackElement||null)));let v=t.concat(a.slice(0,f+1)),S=()=>{let m;return p?m=y:h?m=C:d.route.Component?m=b.createElement(d.route.Component,null):d.route.element?m=d.route.element:m=u,b.createElement(qk,{match:d,routeContext:{outlet:u,matches:v,isDataRoute:n!=null},children:m})};return n&&(d.route.ErrorBoundary||d.route.errorElement||f===0)?b.createElement(Gk,{location:n.location,revalidation:n.revalidation,component:y,error:p,children:S(),routeContext:{outlet:null,matches:v,isDataRoute:!0}}):S()},null)}var e2=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(e2||{}),Id=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Id||{});function Zk(e){let t=b.useContext(Sf);return t||Ot(!1),t}function Qk(e){let t=b.useContext(YC);return t||Ot(!1),t}function Yk(e){let t=b.useContext(bi);return t||Ot(!1),t}function t2(e){let t=Yk(),n=t.matches[t.matches.length-1];return n.route.id||Ot(!1),n.route.id}function Xk(){var e;let t=b.useContext(XC),n=Qk(Id.UseRouteError),r=t2(Id.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function Jk(){let{router:e}=Zk(e2.UseNavigateStable),t=t2(Id.UseNavigateStable),n=b.useRef(!1);return JC(()=>{n.current=!0}),b.useCallback(function(o,i){i===void 0&&(i={}),n.current&&(typeof o=="number"?e.navigate(o):e.navigate(o,rc({fromRouteId:t},i)))},[e,t])}const _y={};function e4(e,t){_y[t]||(_y[t]=!0,console.warn(t))}const Ry=(e,t,n)=>e4(e,"⚠️ React Router Future Flag Warning: "+t+". "+("You can use the `"+e+"` future flag to opt-in early. ")+("For more information, see "+n+"."));function t4(e,t){e!=null&&e.v7_startTransition||Ry("v7_startTransition","React Router will begin wrapping state updates in `React.startTransition` in v7","https://reactrouter.com/v6/upgrading/future#v7_starttransition"),!(e!=null&&e.v7_relativeSplatPath)&&!t&&Ry("v7_relativeSplatPath","Relative route resolution within Splat routes is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath")}function n2(e){Ot(!1)}function n4(e){let{basename:t="/",children:n=null,location:r,navigationType:o=Zo.Pop,navigator:i,static:a=!1,future:s}=e;wc()&&Ot(!1);let l=t.replace(/^\/*/,"/"),c=b.useMemo(()=>({basename:l,navigator:i,static:a,future:rc({v7_relativeSplatPath:!1},s)}),[l,s,i,a]);typeof r=="string"&&(r=Ps(r));let{pathname:u="/",search:d="",hash:f="",state:p=null,key:h="default"}=r,y=b.useMemo(()=>{let C=ls(u,l);return C==null?null:{location:{pathname:C,search:d,hash:f,state:p,key:h},navigationType:o}},[l,u,d,f,p,h,o]);return y==null?null:b.createElement(yi.Provider,{value:c},b.createElement(wf.Provider,{children:n,value:y}))}function r4(e){let{children:t,location:n}=e;return Hk(nm(t),n)}new Promise(()=>{});function nm(e,t){t===void 0&&(t=[]);let n=[];return b.Children.forEach(e,(r,o)=>{if(!b.isValidElement(r))return;let i=[...t,o];if(r.type===b.Fragment){n.push.apply(n,nm(r.props.children,i));return}r.type!==n2&&Ot(!1),!r.props.index||!r.props.children||Ot(!1);let a={id:r.props.id||i.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(a.children=nm(r.props.children,i)),n.push(a)}),n}/** - * React Router DOM v6.28.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Od(){return Od=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[o]=e[o]);return n}function o4(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function i4(e,t){return e.button===0&&(!t||t==="_self")&&!o4(e)}function rm(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(o=>[n,o]):[[n,r]])},[]))}function a4(e,t){let n=rm(e);return t&&t.forEach((r,o)=>{n.has(o)||t.getAll(o).forEach(i=>{n.append(o,i)})}),n}const s4=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],l4=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],c4="6";try{window.__reactRouterVersion=c4}catch{}const u4=b.createContext({isTransitioning:!1}),d4="startTransition",Ty=id[d4];function f4(e){let{basename:t,children:n,future:r,window:o}=e,i=b.useRef();i.current==null&&(i.current=gk({window:o,v5Compat:!0}));let a=i.current,[s,l]=b.useState({action:a.action,location:a.location}),{v7_startTransition:c}=r||{},u=b.useCallback(d=>{c&&Ty?Ty(()=>l(d)):l(d)},[l,c]);return b.useLayoutEffect(()=>a.listen(u),[a,u]),b.useEffect(()=>t4(r),[r]),b.createElement(n4,{basename:t,children:n,location:s.location,navigationType:s.action,navigator:a,future:r})}const p4=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",g4=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,o2=b.forwardRef(function(t,n){let{onClick:r,relative:o,reloadDocument:i,replace:a,state:s,target:l,to:c,preventScrollReset:u,viewTransition:d}=t,f=r2(t,s4),{basename:p}=b.useContext(yi),h,y=!1;if(typeof c=="string"&&g4.test(c)&&(h=c,p4))try{let m=new URL(window.location.href),w=c.startsWith("//")?new URL(m.protocol+c):new URL(c),_=ls(w.pathname,p);w.origin===m.origin&&_!=null?c=_+w.search+w.hash:y=!0}catch{}let C=Fk(c,{relative:o}),v=v4(c,{replace:a,state:s,target:l,preventScrollReset:u,relative:o,viewTransition:d});function S(m){r&&r(m),m.defaultPrevented||v(m)}return b.createElement("a",Od({},f,{href:h||C,onClick:y||i?r:S,ref:n,target:l}))}),h4=b.forwardRef(function(t,n){let{"aria-current":r="page",caseSensitive:o=!1,className:i="",end:a=!1,style:s,to:l,viewTransition:c,children:u}=t,d=r2(t,l4),f=Cf(l,{relative:d.relative}),p=ks(),h=b.useContext(YC),{navigator:y,basename:C}=b.useContext(yi),v=h!=null&&b4(f)&&c===!0,S=y.encodeLocation?y.encodeLocation(f).pathname:f.pathname,m=p.pathname,w=h&&h.navigation&&h.navigation.location?h.navigation.location.pathname:null;o||(m=m.toLowerCase(),w=w?w.toLowerCase():null,S=S.toLowerCase()),w&&C&&(w=ls(w,C)||w);const _=S!=="/"&&S.endsWith("/")?S.length-1:S.length;let R=m===S||!a&&m.startsWith(S)&&m.charAt(_)==="/",k=w!=null&&(w===S||!a&&w.startsWith(S)&&w.charAt(S.length)==="/"),T={isActive:R,isPending:k,isTransitioning:v},P=R?r:void 0,x;typeof i=="function"?x=i(T):x=[i,R?"active":null,k?"pending":null,v?"transitioning":null].filter(Boolean).join(" ");let $=typeof s=="function"?s(T):s;return b.createElement(o2,Od({},d,{"aria-current":P,className:x,ref:n,style:$,to:l,viewTransition:c}),typeof u=="function"?u(T):u)});var om;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(om||(om={}));var Py;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Py||(Py={}));function m4(e){let t=b.useContext(Sf);return t||Ot(!1),t}function v4(e,t){let{target:n,replace:r,state:o,preventScrollReset:i,relative:a,viewTransition:s}=t===void 0?{}:t,l=Y0(),c=ks(),u=Cf(e,{relative:a});return b.useCallback(d=>{if(i4(d,n)){d.preventDefault();let f=r!==void 0?r:Ed(c)===Ed(u);l(e,{replace:f,state:o,preventScrollReset:i,relative:a,viewTransition:s})}},[c,l,u,r,o,n,e,i,a,s])}function y4(e){let t=b.useRef(rm(e)),n=b.useRef(!1),r=ks(),o=b.useMemo(()=>a4(r.search,n.current?null:t.current),[r.search]),i=Y0(),a=b.useCallback((s,l)=>{const c=rm(typeof s=="function"?s(o):s);n.current=!0,i("?"+c,l)},[i,o]);return[o,a]}function b4(e,t){t===void 0&&(t={});let n=b.useContext(u4);n==null&&Ot(!1);let{basename:r}=m4(om.useViewTransitionState),o=Cf(e,{relative:t.relative});if(!n.isTransitioning)return!1;let i=ls(n.currentLocation.pathname,r)||n.currentLocation.pathname,a=ls(n.nextLocation.pathname,r)||n.nextLocation.pathname;return Md(o.pathname,a)!=null||Md(o.pathname,i)!=null}var ky;(function(e){e.Bool="Bool",e.Int8="Int8",e.Int16="Int16",e.Int32="Int32",e.Int64="Int64",e.Float="Float",e.Double="Double",e.String="String",e.VarChar="VarChar",e.JSON="JSON",e.BinaryVector="BinaryVector",e.FloatVector="FloatVector",e.Array="Array"})(ky||(ky={}));var $y;(function(e){e[e.Bool=1]="Bool",e[e.Int8=2]="Int8",e[e.Int16=3]="Int16",e[e.Int32=4]="Int32",e[e.Int64=5]="Int64",e[e.Float=10]="Float",e[e.Double=11]="Double",e[e.VarChar=21]="VarChar",e[e.Array=22]="Array",e[e.JSON=23]="JSON",e[e.BinaryVector=100]="BinaryVector",e[e.FloatVector=101]="FloatVector"})($y||($y={}));var Ey;(function(e){e.L2="L2",e.IP="IP",e.COSINE="COSINE",e.HAMMING="HAMMING",e.JACCARD="JACCARD",e.TANIMOTO="TANIMOTO",e.SUBSTRUCTURE="SUBSTRUCTURE",e.SUPERSTRUCTURE="SUPERSTRUCTURE"})(Ey||(Ey={}));var My;(function(e){e.L2="Euclidean",e.IP="Inner product",e.COSINE="Cosine"})(My||(My={}));var Iy;(function(e){e.IVF_FLAT="IVF_FLAT",e.IVF_PQ="IVF_PQ",e.IVF_SQ8="IVF_SQ8",e.FLAT="FLAT",e.HNSW="HNSW",e.ANNOY="ANNOY",e.IVF_HNSW="IVF_HNSW",e.RHNSW_FLAT="RHNSW_FLAT",e.RHNSW_SQ="RHNSW_SQ",e.RHNSW_PQ="RHNSW_PQ",e.BIN_FLAT="BIN_FLAT",e.BIN_IVF_FLAT="BIN_IVF_FLAT",e.TRIE="TRIE",e.STL_SORT="STL_SORT"})(Iy||(Iy={}));var i2=60,a2=i2*60,s2=a2*24,x4=s2*7,cs=1e3,og=i2*cs,Oy=a2*cs,S4=s2*cs,w4=x4*cs,X0="millisecond",ja="second",Fa="minute",Ba="hour",Fo="day",Hu="week",$r="month",l2="quarter",Bo="year",za="date",C4="YYYY-MM-DDTHH:mm:ssZ",Ly="Invalid Date",_4=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,R4=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;const T4={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var n=["th","st","nd","rd"],r=t%100;return"["+t+(n[(r-20)%10]||n[r]||n[0])+"]"}};var im=function(t,n,r){var o=String(t);return!o||o.length>=n?t:""+Array(n+1-o.length).join(r)+t},P4=function(t){var n=-t.utcOffset(),r=Math.abs(n),o=Math.floor(r/60),i=r%60;return(n<=0?"+":"-")+im(o,2,"0")+":"+im(i,2,"0")},k4=function e(t,n){if(t.date()1)return e(a[0])}else{var s=t.name;zi[s]=t,o=s}return!r&&o&&(Pl=o),o||!r&&Pl},tt=function(t,n){if(J0(t))return t.clone();var r=typeof n=="object"?n:{};return r.date=t,r.args=arguments,new _f(r)},O4=function(t,n){return tt(t,{locale:n.$L,utc:n.$u,x:n.$x,$offset:n.$offset})},ct=I4;ct.l=Ld;ct.i=J0;ct.w=O4;var L4=function(t){var n=t.date,r=t.utc;if(n===null)return new Date(NaN);if(ct.u(n))return new Date;if(n instanceof Date)return new Date(n);if(typeof n=="string"&&!/Z$/i.test(n)){var o=n.match(_4);if(o){var i=o[2]-1||0,a=(o[7]||"0").substring(0,3);return r?new Date(Date.UTC(o[1],i,o[3]||1,o[4]||0,o[5]||0,o[6]||0,a)):new Date(o[1],i,o[3]||1,o[4]||0,o[5]||0,o[6]||0,a)}}return new Date(n)},_f=function(){function e(n){this.$L=Ld(n.locale,null,!0),this.parse(n),this.$x=this.$x||n.x||{},this[c2]=!0}var t=e.prototype;return t.parse=function(r){this.$d=L4(r),this.init()},t.init=function(){var r=this.$d;this.$y=r.getFullYear(),this.$M=r.getMonth(),this.$D=r.getDate(),this.$W=r.getDay(),this.$H=r.getHours(),this.$m=r.getMinutes(),this.$s=r.getSeconds(),this.$ms=r.getMilliseconds()},t.$utils=function(){return ct},t.isValid=function(){return this.$d.toString()!==Ly},t.isSame=function(r,o){var i=tt(r);return this.startOf(o)<=i&&i<=this.endOf(o)},t.isAfter=function(r,o){return tt(r)n.searchParams.append("args[]",r)),`Minified MUI error #${e}; visit ${n} for the full message.`}const Nr="$$material";function am(e,...t){const n=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(r=>n.searchParams.append("args[]",r)),`Minified MUI error #${e}; visit ${n} for the full message.`}function Ln(){return Ln=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?on($s,--Hn):0,us--,Dt===10&&(us=1,Tf--),Dt}function Yn(){return Dt=Hn2||ac(Dt)>3?"":" "}function X4(e,t){for(;--t&&Yn()&&!(Dt<48||Dt>102||Dt>57&&Dt<65||Dt>70&&Dt<97););return Cc(e,Vu()+(t<6&&ro()==32&&Yn()==32))}function lm(e){for(;Yn();)switch(Dt){case e:return Hn;case 34:case 39:e!==34&&e!==39&&lm(Dt);break;case 40:e===41&&lm(e);break;case 92:Yn();break}return Hn}function J4(e,t){for(;Yn()&&e+Dt!==57;)if(e+Dt===84&&ro()===47)break;return"/*"+Cc(t,Hn-1)+"*"+Rf(e===47?e:Yn())}function e$(e){for(;!ac(ro());)Yn();return Cc(e,Hn)}function t$(e){return y2(Uu("",null,null,null,[""],e=v2(e),0,[0],e))}function Uu(e,t,n,r,o,i,a,s,l){for(var c=0,u=0,d=a,f=0,p=0,h=0,y=1,C=1,v=1,S=0,m="",w=o,_=i,R=r,k=m;C;)switch(h=S,S=Yn()){case 40:if(h!=108&&on(k,d-1)==58){sm(k+=it(Wu(S),"&","&\f"),"&\f")!=-1&&(v=-1);break}case 34:case 39:case 91:k+=Wu(S);break;case 9:case 10:case 13:case 32:k+=Y4(h);break;case 92:k+=X4(Vu()-1,7);continue;case 47:switch(ro()){case 42:case 47:su(n$(J4(Yn(),Vu()),t,n),l);break;default:k+="/"}break;case 123*y:s[c++]=Qr(k)*v;case 125*y:case 59:case 0:switch(S){case 0:case 125:C=0;case 59+u:v==-1&&(k=it(k,/\f/g,"")),p>0&&Qr(k)-d&&su(p>32?Ny(k+";",r,n,d-1):Ny(it(k," ","")+";",r,n,d-2),l);break;case 59:k+=";";default:if(su(R=Ay(k,t,n,c,u,o,s,m,w=[],_=[],d),i),S===123)if(u===0)Uu(k,t,R,R,w,i,d,s,_);else switch(f===99&&on(k,3)===110?100:f){case 100:case 108:case 109:case 115:Uu(e,R,R,r&&su(Ay(e,R,R,0,0,o,s,m,o,w=[],d),_),o,_,d,s,r?w:_);break;default:Uu(k,R,R,R,[""],_,0,s,_)}}c=u=p=0,y=v=1,m=k="",d=a;break;case 58:d=1+Qr(k),p=h;default:if(y<1){if(S==123)--y;else if(S==125&&y++==0&&Q4()==125)continue}switch(k+=Rf(S),S*y){case 38:v=u>0?1:(k+="\f",-1);break;case 44:s[c++]=(Qr(k)-1)*v,v=1;break;case 64:ro()===45&&(k+=Wu(Yn())),f=ro(),u=d=Qr(m=k+=e$(Vu())),S++;break;case 45:h===45&&Qr(k)==2&&(y=0)}}return i}function Ay(e,t,n,r,o,i,a,s,l,c,u){for(var d=o-1,f=o===0?i:[""],p=n1(f),h=0,y=0,C=0;h0?f[v]+" "+S:it(S,/&\f/g,f[v])))&&(l[C++]=m);return Pf(e,t,n,o===0?e1:s,l,c,u)}function n$(e,t,n){return Pf(e,t,n,p2,Rf(Z4()),ic(e,2,-2),0)}function Ny(e,t,n,r){return Pf(e,t,n,t1,ic(e,0,r),ic(e,r+1,-1),r)}function Ya(e,t){for(var n="",r=n1(e),o=0;o6)switch(on(e,t+1)){case 109:if(on(e,t+4)!==45)break;case 102:return it(e,/(.+:)(.+)-([^]+)/,"$1"+ot+"$2-$3$1"+Ad+(on(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~sm(e,"stretch")?b2(it(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(on(e,t+1)!==115)break;case 6444:switch(on(e,Qr(e)-3-(~sm(e,"!important")&&10))){case 107:return it(e,":",":"+ot)+e;case 101:return it(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+ot+(on(e,14)===45?"inline-":"")+"box$3$1"+ot+"$2$3$1"+hn+"$2box$3")+e}break;case 5936:switch(on(e,t+11)){case 114:return ot+e+hn+it(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return ot+e+hn+it(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return ot+e+hn+it(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return ot+e+hn+e+e}return e}var d$=function(t,n,r,o){if(t.length>-1&&!t.return)switch(t.type){case t1:t.return=b2(t.value,t.length);break;case g2:return Ya([Ys(t,{value:it(t.value,"@","@"+ot)})],o);case e1:if(t.length)return K4(t.props,function(i){switch(q4(i,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return Ya([Ys(t,{props:[it(i,/:(read-\w+)/,":"+Ad+"$1")]})],o);case"::placeholder":return Ya([Ys(t,{props:[it(i,/:(plac\w+)/,":"+ot+"input-$1")]}),Ys(t,{props:[it(i,/:(plac\w+)/,":"+Ad+"$1")]}),Ys(t,{props:[it(i,/:(plac\w+)/,hn+"input-$1")]})],o)}return""})}},f$=[d$],p$=function(t){var n=t.key;if(n==="css"){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,function(y){var C=y.getAttribute("data-emotion");C.indexOf(" ")!==-1&&(document.head.appendChild(y),y.setAttribute("data-s",""))})}var o=t.stylisPlugins||f$,i={},a,s=[];a=t.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+n+' "]'),function(y){for(var C=y.getAttribute("data-emotion").split(" "),v=1;v=4;++r,o-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(o){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var R$={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},T$=!1,P$=/[A-Z]|^ms/g,k$=/_EMO_([^_]+?)_([^]*?)_EMO_/g,T2=function(t){return t.charCodeAt(1)===45},jy=function(t){return t!=null&&typeof t!="boolean"},ig=f2(function(e){return T2(e)?e:e.replace(P$,"-$&").toLowerCase()}),Fy=function(t,n){switch(t){case"animation":case"animationName":if(typeof n=="string")return n.replace(k$,function(r,o,i){return Yr={name:o,styles:i,next:Yr},o})}return R$[t]!==1&&!T2(t)&&typeof n=="number"&&n!==0?n+"px":n},$$="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function sc(e,t,n){if(n==null)return"";var r=n;if(r.__emotion_styles!==void 0)return r;switch(typeof n){case"boolean":return"";case"object":{var o=n;if(o.anim===1)return Yr={name:o.name,styles:o.styles,next:Yr},o.name;var i=n;if(i.styles!==void 0){var a=i.next;if(a!==void 0)for(;a!==void 0;)Yr={name:a.name,styles:a.styles,next:Yr},a=a.next;var s=i.styles+";";return s}return E$(e,t,n)}case"function":{if(e!==void 0){var l=Yr,c=n(e);return Yr=l,sc(e,t,c)}break}}var u=n;if(t==null)return u;var d=t[u];return d!==void 0?d:u}function E$(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o96?A$:N$},Vy=function(t,n,r){var o;if(n){var i=n.shouldForwardProp;o=t.__emotion_forwardProp&&i?function(a){return t.__emotion_forwardProp(a)&&i(a)}:i}return typeof o!="function"&&r&&(o=t.__emotion_forwardProp),o},D$=!1,j$=function(t){var n=t.cache,r=t.serialized,o=t.isStringTag;return _2(n,r,o),I$(function(){return R2(n,r,o)}),null},F$=function e(t,n){var r=t.__emotion_real===t,o=r&&t.__emotion_base||t,i,a;n!==void 0&&(i=n.label,a=n.target);var s=Vy(t,n,r),l=s||Hy(o),c=!l("as");return function(){var u=arguments,d=r&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(i!==void 0&&d.push("label:"+i+";"),u[0]==null||u[0].raw===void 0)d.push.apply(d,u);else{d.push(u[0][0]);for(var f=u.length,p=1;pt(z$(o)?n:o):t;return g.jsx(O$,{styles:r})}/** - * @mui/styled-engine v6.1.6 - * - * @license MIT - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */function M2(e,t){return cm(e,t)}function H$(e,t){Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}const Wy=[];function Uy(e){return Wy[0]=e,jf(Wy)}function Wo(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function I2(e){if(!Wo(e))return e;const t={};return Object.keys(e).forEach(n=>{t[n]=I2(e[n])}),t}function So(e,t,n={clone:!0}){const r=n.clone?{...e}:e;return Wo(e)&&Wo(t)&&Object.keys(t).forEach(o=>{Wo(t[o])&&Object.prototype.hasOwnProperty.call(e,o)&&Wo(e[o])?r[o]=So(e[o],t[o],n):n.clone?r[o]=Wo(t[o])?I2(t[o]):t[o]:r[o]=t[o]}),r}const V$=e=>{const t=Object.keys(e).map(n=>({key:n,val:e[n]}))||[];return t.sort((n,r)=>n.val-r.val),t.reduce((n,r)=>({...n,[r.key]:r.val}),{})};function W$(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:r=5,...o}=e,i=V$(t),a=Object.keys(i);function s(f){return`@media (min-width:${typeof t[f]=="number"?t[f]:f}${n})`}function l(f){return`@media (max-width:${(typeof t[f]=="number"?t[f]:f)-r/100}${n})`}function c(f,p){const h=a.indexOf(p);return`@media (min-width:${typeof t[f]=="number"?t[f]:f}${n}) and (max-width:${(h!==-1&&typeof t[a[h]]=="number"?t[a[h]]:p)-r/100}${n})`}function u(f){return a.indexOf(f)+1r.startsWith("@container")).sort((r,o)=>{var a,s;const i=/min-width:\s*([0-9.]+)/;return+(((a=r.match(i))==null?void 0:a[1])||0)-+(((s=o.match(i))==null?void 0:s[1])||0)});return n.length?n.reduce((r,o)=>{const i=t[o];return delete r[o],r[o]=i,r},{...t}):t}function G$(e,t){return t==="@"||t.startsWith("@")&&(e.some(n=>t.startsWith(`@${n}`))||!!t.match(/^@\d/))}function q$(e,t){const n=t.match(/^@([^/]+)?\/?(.+)?$/);if(!n)return null;const[,r,o]=n,i=Number.isNaN(+r)?r||0:+r;return e.containerQueries(o).up(i)}function K$(e){const t=(i,a)=>i.replace("@media",a?`@container ${a}`:"@container");function n(i,a){i.up=(...s)=>t(e.breakpoints.up(...s),a),i.down=(...s)=>t(e.breakpoints.down(...s),a),i.between=(...s)=>t(e.breakpoints.between(...s),a),i.only=(...s)=>t(e.breakpoints.only(...s),a),i.not=(...s)=>{const l=t(e.breakpoints.not(...s),a);return l.includes("not all and")?l.replace("not all and ","").replace("min-width:","width<").replace("max-width:","width>").replace("and","or"):l}}const r={},o=i=>(n(r,i),r);return n(o),{...e,containerQueries:o}}const Z$={borderRadius:4};function kl(e,t){return t?So(e,t,{clone:!1}):e}const Bf={xs:0,sm:600,md:900,lg:1200,xl:1536},Gy={keys:["xs","sm","md","lg","xl"],up:e=>`@media (min-width:${Bf[e]}px)`},Q$={containerQueries:e=>({up:t=>{let n=typeof t=="number"?t:Bf[t]||t;return typeof n=="number"&&(n=`${n}px`),e?`@container ${e} (min-width:${n})`:`@container (min-width:${n})`}})};function Fr(e,t,n){const r=e.theme||{};if(Array.isArray(t)){const i=r.breakpoints||Gy;return t.reduce((a,s,l)=>(a[i.up(i.keys[l])]=n(t[l]),a),{})}if(typeof t=="object"){const i=r.breakpoints||Gy;return Object.keys(t).reduce((a,s)=>{if(G$(i.keys,s)){const l=q$(r.containerQueries?r:Q$,s);l&&(a[l]=n(t[s],s))}else if(Object.keys(i.values||Bf).includes(s)){const l=i.up(s);a[l]=n(t[s],s)}else{const l=s;a[l]=t[l]}return a},{})}return n(t)}function O2(e={}){var n;return((n=e.keys)==null?void 0:n.reduce((r,o)=>{const i=e.up(o);return r[i]={},r},{}))||{}}function L2(e,t){return e.reduce((n,r)=>{const o=n[r];return(!o||Object.keys(o).length===0)&&delete n[r],n},t)}function Y$(e,...t){const n=O2(e),r=[n,...t].reduce((o,i)=>So(o,i),{});return L2(Object.keys(n),r)}function X$(e,t){if(typeof e!="object")return{};const n={},r=Object.keys(t);return Array.isArray(e)?r.forEach((o,i)=>{i{e[o]!=null&&(n[o]=!0)}),n}function ag({values:e,breakpoints:t,base:n}){const r=n||X$(e,t),o=Object.keys(r);if(o.length===0)return e;let i;return o.reduce((a,s,l)=>(Array.isArray(e)?(a[s]=e[l]!=null?e[l]:e[i],i=l):typeof e=="object"?(a[s]=e[s]!=null?e[s]:e[i],i=s):a[s]=e,a),{})}function A2(e){if(typeof e!="string")throw new Error(am(7));return e.charAt(0).toUpperCase()+e.slice(1)}function zf(e,t,n=!0){if(!t||typeof t!="string")return null;if(e&&e.vars&&n){const r=`vars.${t}`.split(".").reduce((o,i)=>o&&o[i]?o[i]:null,e);if(r!=null)return r}return t.split(".").reduce((r,o)=>r&&r[o]!=null?r[o]:null,e)}function Nd(e,t,n,r=n){let o;return typeof e=="function"?o=e(n):Array.isArray(e)?o=e[n]||r:o=zf(e,n)||r,t&&(o=t(o,r,e)),o}function At(e){const{prop:t,cssProperty:n=e.prop,themeKey:r,transform:o}=e,i=a=>{if(a[t]==null)return null;const s=a[t],l=a.theme,c=zf(l,r)||{};return Fr(a,s,d=>{let f=Nd(c,o,d);return d===f&&typeof d=="string"&&(f=Nd(c,o,`${t}${d==="default"?"":A2(d)}`,d)),n===!1?f:{[n]:f}})};return i.propTypes={},i.filterProps=[t],i}function J$(e){const t={};return n=>(t[n]===void 0&&(t[n]=e(n)),t[n])}const e5={m:"margin",p:"padding"},t5={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},qy={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},n5=J$(e=>{if(e.length>2)if(qy[e])e=qy[e];else return[e];const[t,n]=e.split(""),r=e5[t],o=t5[n]||"";return Array.isArray(o)?o.map(i=>r+i):[r+o]}),s1=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],l1=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];[...s1,...l1];function _c(e,t,n,r){const o=zf(e,t,!0)??n;return typeof o=="number"||typeof o=="string"?i=>typeof i=="string"?i:typeof o=="string"?`calc(${i} * ${o})`:o*i:Array.isArray(o)?i=>{if(typeof i=="string")return i;const a=Math.abs(i),s=o[a];return i>=0?s:typeof s=="number"?-s:`-${s}`}:typeof o=="function"?o:()=>{}}function Hf(e){return _c(e,"spacing",8)}function Ji(e,t){return typeof t=="string"||t==null?t:e(t)}function r5(e,t){return n=>e.reduce((r,o)=>(r[o]=Ji(t,n),r),{})}function o5(e,t,n,r){if(!t.includes(n))return null;const o=n5(n),i=r5(o,r),a=e[n];return Fr(e,a,i)}function N2(e,t){const n=Hf(e.theme);return Object.keys(e).map(r=>o5(e,t,r,n)).reduce(kl,{})}function kt(e){return N2(e,s1)}kt.propTypes={};kt.filterProps=s1;function $t(e){return N2(e,l1)}$t.propTypes={};$t.filterProps=l1;function D2(e=8,t=Hf({spacing:e})){if(e.mui)return e;const n=(...r)=>(r.length===0?[1]:r).map(i=>{const a=t(i);return typeof a=="number"?`${a}px`:a}).join(" ");return n.mui=!0,n}function Vf(...e){const t=e.reduce((r,o)=>(o.filterProps.forEach(i=>{r[i]=o}),r),{}),n=r=>Object.keys(r).reduce((o,i)=>t[i]?kl(o,t[i](r)):o,{});return n.propTypes={},n.filterProps=e.reduce((r,o)=>r.concat(o.filterProps),[]),n}function fr(e){return typeof e!="number"?e:`${e}px solid`}function wr(e,t){return At({prop:e,themeKey:"borders",transform:t})}const i5=wr("border",fr),a5=wr("borderTop",fr),s5=wr("borderRight",fr),l5=wr("borderBottom",fr),c5=wr("borderLeft",fr),u5=wr("borderColor"),d5=wr("borderTopColor"),f5=wr("borderRightColor"),p5=wr("borderBottomColor"),g5=wr("borderLeftColor"),h5=wr("outline",fr),m5=wr("outlineColor"),Wf=e=>{if(e.borderRadius!==void 0&&e.borderRadius!==null){const t=_c(e.theme,"shape.borderRadius",4),n=r=>({borderRadius:Ji(t,r)});return Fr(e,e.borderRadius,n)}return null};Wf.propTypes={};Wf.filterProps=["borderRadius"];Vf(i5,a5,s5,l5,c5,u5,d5,f5,p5,g5,Wf,h5,m5);const Uf=e=>{if(e.gap!==void 0&&e.gap!==null){const t=_c(e.theme,"spacing",8),n=r=>({gap:Ji(t,r)});return Fr(e,e.gap,n)}return null};Uf.propTypes={};Uf.filterProps=["gap"];const Gf=e=>{if(e.columnGap!==void 0&&e.columnGap!==null){const t=_c(e.theme,"spacing",8),n=r=>({columnGap:Ji(t,r)});return Fr(e,e.columnGap,n)}return null};Gf.propTypes={};Gf.filterProps=["columnGap"];const qf=e=>{if(e.rowGap!==void 0&&e.rowGap!==null){const t=_c(e.theme,"spacing",8),n=r=>({rowGap:Ji(t,r)});return Fr(e,e.rowGap,n)}return null};qf.propTypes={};qf.filterProps=["rowGap"];const v5=At({prop:"gridColumn"}),y5=At({prop:"gridRow"}),b5=At({prop:"gridAutoFlow"}),x5=At({prop:"gridAutoColumns"}),S5=At({prop:"gridAutoRows"}),w5=At({prop:"gridTemplateColumns"}),C5=At({prop:"gridTemplateRows"}),_5=At({prop:"gridTemplateAreas"}),R5=At({prop:"gridArea"});Vf(Uf,Gf,qf,v5,y5,b5,x5,S5,w5,C5,_5,R5);function Xa(e,t){return t==="grey"?t:e}const T5=At({prop:"color",themeKey:"palette",transform:Xa}),P5=At({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:Xa}),k5=At({prop:"backgroundColor",themeKey:"palette",transform:Xa});Vf(T5,P5,k5);function Kn(e){return e<=1&&e!==0?`${e*100}%`:e}const $5=At({prop:"width",transform:Kn}),c1=e=>{if(e.maxWidth!==void 0&&e.maxWidth!==null){const t=n=>{var o,i,a,s,l;const r=((a=(i=(o=e.theme)==null?void 0:o.breakpoints)==null?void 0:i.values)==null?void 0:a[n])||Bf[n];return r?((l=(s=e.theme)==null?void 0:s.breakpoints)==null?void 0:l.unit)!=="px"?{maxWidth:`${r}${e.theme.breakpoints.unit}`}:{maxWidth:r}:{maxWidth:Kn(n)}};return Fr(e,e.maxWidth,t)}return null};c1.filterProps=["maxWidth"];const E5=At({prop:"minWidth",transform:Kn}),M5=At({prop:"height",transform:Kn}),I5=At({prop:"maxHeight",transform:Kn}),O5=At({prop:"minHeight",transform:Kn});At({prop:"size",cssProperty:"width",transform:Kn});At({prop:"size",cssProperty:"height",transform:Kn});const L5=At({prop:"boxSizing"});Vf($5,c1,E5,M5,I5,O5,L5);const Rc={border:{themeKey:"borders",transform:fr},borderTop:{themeKey:"borders",transform:fr},borderRight:{themeKey:"borders",transform:fr},borderBottom:{themeKey:"borders",transform:fr},borderLeft:{themeKey:"borders",transform:fr},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:fr},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:Wf},color:{themeKey:"palette",transform:Xa},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:Xa},backgroundColor:{themeKey:"palette",transform:Xa},p:{style:$t},pt:{style:$t},pr:{style:$t},pb:{style:$t},pl:{style:$t},px:{style:$t},py:{style:$t},padding:{style:$t},paddingTop:{style:$t},paddingRight:{style:$t},paddingBottom:{style:$t},paddingLeft:{style:$t},paddingX:{style:$t},paddingY:{style:$t},paddingInline:{style:$t},paddingInlineStart:{style:$t},paddingInlineEnd:{style:$t},paddingBlock:{style:$t},paddingBlockStart:{style:$t},paddingBlockEnd:{style:$t},m:{style:kt},mt:{style:kt},mr:{style:kt},mb:{style:kt},ml:{style:kt},mx:{style:kt},my:{style:kt},margin:{style:kt},marginTop:{style:kt},marginRight:{style:kt},marginBottom:{style:kt},marginLeft:{style:kt},marginX:{style:kt},marginY:{style:kt},marginInline:{style:kt},marginInlineStart:{style:kt},marginInlineEnd:{style:kt},marginBlock:{style:kt},marginBlockStart:{style:kt},marginBlockEnd:{style:kt},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:Uf},rowGap:{style:qf},columnGap:{style:Gf},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:Kn},maxWidth:{style:c1},minWidth:{transform:Kn},height:{transform:Kn},maxHeight:{transform:Kn},minHeight:{transform:Kn},boxSizing:{},font:{themeKey:"font"},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}};function A5(...e){const t=e.reduce((r,o)=>r.concat(Object.keys(o)),[]),n=new Set(t);return e.every(r=>n.size===Object.keys(r).length)}function N5(e,t){return typeof e=="function"?e(t):e}function D5(){function e(n,r,o,i){const a={[n]:r,theme:o},s=i[n];if(!s)return{[n]:r};const{cssProperty:l=n,themeKey:c,transform:u,style:d}=s;if(r==null)return null;if(c==="typography"&&r==="inherit")return{[n]:r};const f=zf(o,c)||{};return d?d(a):Fr(a,r,h=>{let y=Nd(f,u,h);return h===y&&typeof h=="string"&&(y=Nd(f,u,`${n}${h==="default"?"":A2(h)}`,h)),l===!1?y:{[l]:y}})}function t(n){const{sx:r,theme:o={}}=n||{};if(!r)return null;const i=o.unstable_sxConfig??Rc;function a(s){let l=s;if(typeof s=="function")l=s(o);else if(typeof s!="object")return s;if(!l)return null;const c=O2(o.breakpoints),u=Object.keys(c);let d=c;return Object.keys(l).forEach(f=>{const p=N5(l[f],o);if(p!=null)if(typeof p=="object")if(i[f])d=kl(d,e(f,p,o,i));else{const h=Fr({theme:o},p,y=>({[f]:y}));A5(h,p)?d[f]=t({sx:p,theme:o}):d=kl(d,h)}else d=kl(d,e(f,p,o,i))}),U$(o,L2(u,d))}return Array.isArray(r)?r.map(a):a(r)}return t}const fi=D5();fi.filterProps=["sx"];function j5(e,t){var r;const n=this;if(n.vars){if(!((r=n.colorSchemes)!=null&&r[e])||typeof n.getColorSchemeSelector!="function")return{};let o=n.getColorSchemeSelector(e);return o==="&"?t:((o.includes("data-")||o.includes("."))&&(o=`*:where(${o.replace(/\s*&$/,"")}) &`),{[o]:t})}return n.palette.mode===e?t:{}}function Kf(e={},...t){const{breakpoints:n={},palette:r={},spacing:o,shape:i={},...a}=e,s=W$(n),l=D2(o);let c=So({breakpoints:s,direction:"ltr",components:{},palette:{mode:"light",...r},spacing:l,shape:{...Z$,...i}},a);return c=K$(c),c.applyStyles=j5,c=t.reduce((u,d)=>So(u,d),c),c.unstable_sxConfig={...Rc,...a==null?void 0:a.unstable_sxConfig},c.unstable_sx=function(d){return fi({sx:d,theme:this})},c}function F5(e){return Object.keys(e).length===0}function j2(e=null){const t=b.useContext(Ff);return!t||F5(t)?e:t}const B5=Kf();function Zf(e=B5){return j2(e)}function z5({styles:e,themeId:t,defaultTheme:n={}}){const r=Zf(n),o=typeof e=="function"?e(t&&r[t]||r):e;return g.jsx(E2,{styles:o})}const H5=e=>{var r;const t={systemProps:{},otherProps:{}},n=((r=e==null?void 0:e.theme)==null?void 0:r.unstable_sxConfig)??Rc;return Object.keys(e).forEach(o=>{n[o]?t.systemProps[o]=e[o]:t.otherProps[o]=e[o]}),t};function u1(e){const{sx:t,...n}=e,{systemProps:r,otherProps:o}=H5(n);let i;return Array.isArray(t)?i=[r,...t]:typeof t=="function"?i=(...a)=>{const s=t(...a);return Wo(s)?{...r,...s}:r}:i={...r,...t},{...o,sx:i}}const Ky=e=>e,V5=()=>{let e=Ky;return{configure(t){e=t},generate(t){return e(t)},reset(){e=Ky}}},W5=V5();function F2(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;ts!=="theme"&&s!=="sx"&&s!=="as"})(fi);return b.forwardRef(function(l,c){const u=Zf(n),{className:d,component:f="div",...p}=u1(l);return g.jsx(i,{as:f,ref:c,className:ve(d,o?o(r):r),theme:t&&u[t]||u,...p})})}const G5={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function q5(e,t,n="Mui"){const r=G5[t];return r?`${n}-${r}`:`${W5.generate(e)}-${t}`}var ut={};/** - * @license React - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var d1=Symbol.for("react.element"),f1=Symbol.for("react.portal"),Qf=Symbol.for("react.fragment"),Yf=Symbol.for("react.strict_mode"),Xf=Symbol.for("react.profiler"),Jf=Symbol.for("react.provider"),ep=Symbol.for("react.context"),K5=Symbol.for("react.server_context"),tp=Symbol.for("react.forward_ref"),np=Symbol.for("react.suspense"),rp=Symbol.for("react.suspense_list"),op=Symbol.for("react.memo"),ip=Symbol.for("react.lazy"),Z5=Symbol.for("react.offscreen"),B2;B2=Symbol.for("react.module.reference");function Cr(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case d1:switch(e=e.type,e){case Qf:case Xf:case Yf:case np:case rp:return e;default:switch(e=e&&e.$$typeof,e){case K5:case ep:case tp:case ip:case op:case Jf:return e;default:return t}}case f1:return t}}}ut.ContextConsumer=ep;ut.ContextProvider=Jf;ut.Element=d1;ut.ForwardRef=tp;ut.Fragment=Qf;ut.Lazy=ip;ut.Memo=op;ut.Portal=f1;ut.Profiler=Xf;ut.StrictMode=Yf;ut.Suspense=np;ut.SuspenseList=rp;ut.isAsyncMode=function(){return!1};ut.isConcurrentMode=function(){return!1};ut.isContextConsumer=function(e){return Cr(e)===ep};ut.isContextProvider=function(e){return Cr(e)===Jf};ut.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===d1};ut.isForwardRef=function(e){return Cr(e)===tp};ut.isFragment=function(e){return Cr(e)===Qf};ut.isLazy=function(e){return Cr(e)===ip};ut.isMemo=function(e){return Cr(e)===op};ut.isPortal=function(e){return Cr(e)===f1};ut.isProfiler=function(e){return Cr(e)===Xf};ut.isStrictMode=function(e){return Cr(e)===Yf};ut.isSuspense=function(e){return Cr(e)===np};ut.isSuspenseList=function(e){return Cr(e)===rp};ut.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Qf||e===Xf||e===Yf||e===np||e===rp||e===Z5||typeof e=="object"&&e!==null&&(e.$$typeof===ip||e.$$typeof===op||e.$$typeof===Jf||e.$$typeof===ep||e.$$typeof===tp||e.$$typeof===B2||e.getModuleId!==void 0)};ut.typeOf=Cr;function z2(e){const{variants:t,...n}=e,r={variants:t,style:Uy(n),isProcessed:!0};return r.style===n||t&&t.forEach(o=>{typeof o.style!="function"&&(o.style=Uy(o.style))}),r}const Q5=Kf();function sg(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}function Y5(e){return e?(t,n)=>n[e]:null}function X5(e,t,n){e.theme=eE(e.theme)?n:e.theme[t]||e.theme}function Gu(e,t){const n=typeof t=="function"?t(e):t;if(Array.isArray(n))return n.flatMap(r=>Gu(e,r));if(Array.isArray(n==null?void 0:n.variants)){let r;if(n.isProcessed)r=n.style;else{const{variants:o,...i}=n;r=i}return H2(e,n.variants,[r])}return n!=null&&n.isProcessed?n.style:n}function H2(e,t,n=[]){var o;let r;e:for(let i=0;i{H$(s,_=>_.filter(R=>R!==fi));const{name:c,slot:u,skipVariantsResolver:d,skipSx:f,overridesResolver:p=Y5(nE(u)),...h}=l,y=d!==void 0?d:u&&u!=="Root"&&u!=="root"||!1,C=f||!1;let v=sg;u==="Root"||u==="root"?v=r:u?v=o:tE(s)&&(v=void 0);const S=M2(s,{shouldForwardProp:v,label:J5(),...h}),m=_=>{if(typeof _=="function"&&_.__emotion_real!==_)return function(k){return Gu(k,_)};if(Wo(_)){const R=z2(_);return R.variants?function(T){return Gu(T,R)}:R.style}return _},w=(..._)=>{const R=[],k=_.map(m),T=[];if(R.push(i),c&&p&&T.push(function(I){var A,N;const D=(N=(A=I.theme.components)==null?void 0:A[c])==null?void 0:N.styleOverrides;if(!D)return null;const M={};for(const E in D)M[E]=Gu(I,D[E]);return p(I,M)}),c&&!y&&T.push(function(I){var M,A;const O=I.theme,D=(A=(M=O==null?void 0:O.components)==null?void 0:M[c])==null?void 0:A.variants;return D?H2(I,D):null}),C||T.push(fi),Array.isArray(k[0])){const $=k.shift(),I=new Array(R.length).fill(""),O=new Array(T.length).fill("");let D;D=[...I,...$,...O],D.raw=[...I,...$.raw,...O],R.unshift(D)}const P=[...R,...k,...T],x=S(...P);return s.muiName&&(x.muiName=s.muiName),x};return S.withConfig&&(w.withConfig=S.withConfig),w}}function J5(e,t){return void 0}function eE(e){for(const t in e)return!1;return!0}function tE(e){return typeof e=="string"&&e.charCodeAt(0)>96}function nE(e){return e&&e.charAt(0).toLowerCase()+e.slice(1)}const rE=V2();function Dd(e,t){const n={...t};for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const o=r;if(o==="components"||o==="slots")n[o]={...e[o],...n[o]};else if(o==="componentsProps"||o==="slotProps"){const i=e[o],a=t[o];if(!a)n[o]=i||{};else if(!i)n[o]=a;else{n[o]={...a};for(const s in i)if(Object.prototype.hasOwnProperty.call(i,s)){const l=s;n[o][l]=Dd(i[l],a[l])}}}else n[o]===void 0&&(n[o]=e[o])}return n}function oE(e){const{theme:t,name:n,props:r}=e;return!t||!t.components||!t.components[n]||!t.components[n].defaultProps?r:Dd(t.components[n].defaultProps,r)}function W2({props:e,name:t,defaultTheme:n,themeId:r}){let o=Zf(n);return r&&(o=o[r]||o),oE({theme:o,name:t,props:e})}function iE(e,t=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,n))}function p1(e,t=0,n=1){return iE(e,t,n)}function aE(e){e=e.slice(1);const t=new RegExp(`.{1,${e.length>=6?2:1}}`,"g");let n=e.match(t);return n&&n[0].length===1&&(n=n.map(r=>r+r)),n?`rgb${n.length===4?"a":""}(${n.map((r,o)=>o<3?parseInt(r,16):Math.round(parseInt(r,16)/255*1e3)/1e3).join(", ")})`:""}function pi(e){if(e.type)return e;if(e.charAt(0)==="#")return pi(aE(e));const t=e.indexOf("("),n=e.substring(0,t);if(!["rgb","rgba","hsl","hsla","color"].includes(n))throw new Error(am(9,e));let r=e.substring(t+1,e.length-1),o;if(n==="color"){if(r=r.split(" "),o=r.shift(),r.length===4&&r[3].charAt(0)==="/"&&(r[3]=r[3].slice(1)),!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(o))throw new Error(am(10,o))}else r=r.split(",");return r=r.map(i=>parseFloat(i)),{type:n,values:r,colorSpace:o}}const sE=e=>{const t=pi(e);return t.values.slice(0,3).map((n,r)=>t.type.includes("hsl")&&r!==0?`${n}%`:n).join(" ")},gl=(e,t)=>{try{return sE(e)}catch{return e}};function ap(e){const{type:t,colorSpace:n}=e;let{values:r}=e;return t.includes("rgb")?r=r.map((o,i)=>i<3?parseInt(o,10):o):t.includes("hsl")&&(r[1]=`${r[1]}%`,r[2]=`${r[2]}%`),t.includes("color")?r=`${n} ${r.join(" ")}`:r=`${r.join(", ")}`,`${t}(${r})`}function U2(e){e=pi(e);const{values:t}=e,n=t[0],r=t[1]/100,o=t[2]/100,i=r*Math.min(o,1-o),a=(c,u=(c+n/30)%12)=>o-i*Math.max(Math.min(u-3,9-u,1),-1);let s="rgb";const l=[Math.round(a(0)*255),Math.round(a(8)*255),Math.round(a(4)*255)];return e.type==="hsla"&&(s+="a",l.push(t[3])),ap({type:s,values:l})}function um(e){e=pi(e);let t=e.type==="hsl"||e.type==="hsla"?pi(U2(e)).values:e.values;return t=t.map(n=>(e.type!=="color"&&(n/=255),n<=.03928?n/12.92:((n+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function lE(e,t){const n=um(e),r=um(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function Be(e,t){return e=pi(e),t=p1(t),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.type==="color"?e.values[3]=`/${t}`:e.values[3]=t,ap(e)}function lu(e,t,n){try{return Be(e,t)}catch{return e}}function ea(e,t){if(e=pi(e),t=p1(t),e.type.includes("hsl"))e.values[2]*=1-t;else if(e.type.includes("rgb")||e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]*=1-t;return ap(e)}function dt(e,t,n){try{return ea(e,t)}catch{return e}}function ta(e,t){if(e=pi(e),t=p1(t),e.type.includes("hsl"))e.values[2]+=(100-e.values[2])*t;else if(e.type.includes("rgb"))for(let n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]+=(1-e.values[n])*t;return ap(e)}function ft(e,t,n){try{return ta(e,t)}catch{return e}}function cE(e,t=.15){return um(e)>.5?ea(e,t):ta(e,t)}function cu(e,t,n){try{return cE(e,t)}catch{return e}}const G2=b.createContext(null);function g1(){return b.useContext(G2)}const uE=typeof Symbol=="function"&&Symbol.for,dE=uE?Symbol.for("mui.nested"):"__THEME_NESTED__";function fE(e,t){return typeof t=="function"?t(e):{...e,...t}}function pE(e){const{children:t,theme:n}=e,r=g1(),o=b.useMemo(()=>{const i=r===null?{...n}:fE(r,n);return i!=null&&(i[dE]=r!==null),i},[n,r]);return g.jsx(G2.Provider,{value:o,children:t})}const q2=b.createContext();function gE({value:e,...t}){return g.jsx(q2.Provider,{value:e??!0,...t})}const Es=()=>b.useContext(q2)??!1,K2=b.createContext(void 0);function hE({value:e,children:t}){return g.jsx(K2.Provider,{value:e,children:t})}function mE(e){const{theme:t,name:n,props:r}=e;if(!t||!t.components||!t.components[n])return r;const o=t.components[n];return o.defaultProps?Dd(o.defaultProps,r):!o.styleOverrides&&!o.variants?Dd(o,r):r}function vE({props:e,name:t}){const n=b.useContext(K2);return mE({props:e,name:t,theme:{components:n}})}const Zy={};function Qy(e,t,n,r=!1){return b.useMemo(()=>{const o=e&&t[e]||t;if(typeof n=="function"){const i=n(o),a=e?{...t,[e]:i}:i;return r?()=>a:a}return e?{...t,[e]:n}:{...t,...n}},[e,t,n,r])}function Z2(e){const{children:t,theme:n,themeId:r}=e,o=j2(Zy),i=g1()||Zy,a=Qy(r,o,n),s=Qy(r,i,n,!0),l=a.direction==="rtl";return g.jsx(pE,{theme:s,children:g.jsx(Ff.Provider,{value:a,children:g.jsx(gE,{value:l,children:g.jsx(hE,{value:a==null?void 0:a.components,children:t})})})})}const Yy={theme:void 0};function yE(e){let t,n;return function(o){let i=t;return(i===void 0||o.theme!==n)&&(Yy.theme=o.theme,i=z2(e(Yy)),t=i,n=o.theme),i}}const h1="mode",m1="color-scheme",bE="data-color-scheme";function xE(e){const{defaultMode:t="system",defaultLightColorScheme:n="light",defaultDarkColorScheme:r="dark",modeStorageKey:o=h1,colorSchemeStorageKey:i=m1,attribute:a=bE,colorSchemeNode:s="document.documentElement",nonce:l}=e||{};let c="",u=a;if(a==="class"&&(u=".%s"),a==="data"&&(u="[data-%s]"),u.startsWith(".")){const f=u.substring(1);c+=`${s}.classList.remove('${f}'.replace('%s', light), '${f}'.replace('%s', dark)); - ${s}.classList.add('${f}'.replace('%s', colorScheme));`}const d=u.match(/\[([^\]]+)\]/);if(d){const[f,p]=d[1].split("=");p||(c+=`${s}.removeAttribute('${f}'.replace('%s', light)); - ${s}.removeAttribute('${f}'.replace('%s', dark));`),c+=` - ${s}.setAttribute('${f}'.replace('%s', colorScheme), ${p?`${p}.replace('%s', colorScheme)`:'""'});`}else c+=`${s}.setAttribute('${u}', colorScheme);`;return g.jsx("script",{suppressHydrationWarning:!0,nonce:typeof window>"u"?l:"",dangerouslySetInnerHTML:{__html:`(function() { -try { - let colorScheme = ''; - const mode = localStorage.getItem('${o}') || '${t}'; - const dark = localStorage.getItem('${i}-dark') || '${r}'; - const light = localStorage.getItem('${i}-light') || '${n}'; - if (mode === 'system') { - // handle system mode - const mql = window.matchMedia('(prefers-color-scheme: dark)'); - if (mql.matches) { - colorScheme = dark - } else { - colorScheme = light - } - } - if (mode === 'light') { - colorScheme = light; - } - if (mode === 'dark') { - colorScheme = dark; - } - if (colorScheme) { - ${c} - } -} catch(e){}})();`}},"mui-color-scheme-init")}function Xy(e){if(typeof window<"u"&&typeof window.matchMedia=="function"&&e==="system")return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Q2(e,t){if(e.mode==="light"||e.mode==="system"&&e.systemMode==="light")return t("light");if(e.mode==="dark"||e.mode==="system"&&e.systemMode==="dark")return t("dark")}function SE(e){return Q2(e,t=>{if(t==="light")return e.lightColorScheme;if(t==="dark")return e.darkColorScheme})}function lg(e,t){if(typeof window>"u")return;let n;try{n=localStorage.getItem(e)||void 0,n||localStorage.setItem(e,t)}catch{}return n||t}function wE(e){const{defaultMode:t="light",defaultLightColorScheme:n,defaultDarkColorScheme:r,supportedColorSchemes:o=[],modeStorageKey:i=h1,colorSchemeStorageKey:a=m1,storageWindow:s=typeof window>"u"?void 0:window}=e,l=o.join(","),c=o.length>1,[u,d]=b.useState(()=>{const m=lg(i,t),w=lg(`${a}-light`,n),_=lg(`${a}-dark`,r);return{mode:m,systemMode:Xy(m),lightColorScheme:w,darkColorScheme:_}}),[,f]=b.useState(!1),p=b.useRef(!1);b.useEffect(()=>{c&&f(!0),p.current=!0},[c]);const h=SE(u),y=b.useCallback(m=>{d(w=>{if(m===w.mode)return w;const _=m??t;try{localStorage.setItem(i,_)}catch{}return{...w,mode:_,systemMode:Xy(_)}})},[i,t]),C=b.useCallback(m=>{m?typeof m=="string"?m&&!l.includes(m)?console.error(`\`${m}\` does not exist in \`theme.colorSchemes\`.`):d(w=>{const _={...w};return Q2(w,R=>{try{localStorage.setItem(`${a}-${R}`,m)}catch{}R==="light"&&(_.lightColorScheme=m),R==="dark"&&(_.darkColorScheme=m)}),_}):d(w=>{const _={...w},R=m.light===null?n:m.light,k=m.dark===null?r:m.dark;if(R)if(!l.includes(R))console.error(`\`${R}\` does not exist in \`theme.colorSchemes\`.`);else{_.lightColorScheme=R;try{localStorage.setItem(`${a}-light`,R)}catch{}}if(k)if(!l.includes(k))console.error(`\`${k}\` does not exist in \`theme.colorSchemes\`.`);else{_.darkColorScheme=k;try{localStorage.setItem(`${a}-dark`,k)}catch{}}return _}):d(w=>{try{localStorage.setItem(`${a}-light`,n),localStorage.setItem(`${a}-dark`,r)}catch{}return{...w,lightColorScheme:n,darkColorScheme:r}})},[l,a,n,r]),v=b.useCallback(m=>{u.mode==="system"&&d(w=>{const _=m!=null&&m.matches?"dark":"light";return w.systemMode===_?w:{...w,systemMode:_}})},[u.mode]),S=b.useRef(v);return S.current=v,b.useEffect(()=>{if(typeof window.matchMedia!="function"||!c)return;const m=(..._)=>S.current(..._),w=window.matchMedia("(prefers-color-scheme: dark)");return w.addListener(m),m(w),()=>{w.removeListener(m)}},[c]),b.useEffect(()=>{if(s&&c){const m=w=>{const _=w.newValue;typeof w.key=="string"&&w.key.startsWith(a)&&(!_||l.match(_))&&(w.key.endsWith("light")&&C({light:_}),w.key.endsWith("dark")&&C({dark:_})),w.key===i&&(!_||["light","dark","system"].includes(_))&&y(_||t)};return s.addEventListener("storage",m),()=>{s.removeEventListener("storage",m)}}},[C,y,i,a,l,t,s,c]),{...u,mode:p.current||!c?u.mode:void 0,systemMode:p.current||!c?u.systemMode:void 0,colorScheme:p.current||!c?h:void 0,setMode:y,setColorScheme:C}}const CE="*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function _E(e){const{themeId:t,theme:n={},modeStorageKey:r=h1,colorSchemeStorageKey:o=m1,disableTransitionOnChange:i=!1,defaultColorScheme:a,resolveTheme:s}=e,l={allColorSchemes:[],colorScheme:void 0,darkColorScheme:void 0,lightColorScheme:void 0,mode:void 0,setColorScheme:()=>{},setMode:()=>{},systemMode:void 0},c=b.createContext(void 0),u=()=>b.useContext(c)||l;function d(y){var ge,le,Se,ye,Ge;const{children:C,theme:v,modeStorageKey:S=r,colorSchemeStorageKey:m=o,disableTransitionOnChange:w=i,storageWindow:_=typeof window>"u"?void 0:window,documentNode:R=typeof document>"u"?void 0:document,colorSchemeNode:k=typeof document>"u"?void 0:document.documentElement,disableNestedContext:T=!1,disableStyleSheetGeneration:P=!1,defaultMode:x="system"}=y,$=b.useRef(!1),I=g1(),O=b.useContext(c),D=!!O&&!T,M=b.useMemo(()=>v||(typeof n=="function"?n():n),[v]),A=M[t],{colorSchemes:N={},components:E={},cssVarPrefix:L,...B}=A||M,H=Object.keys(N).filter(Pe=>!!N[Pe]).join(","),z=b.useMemo(()=>H.split(","),[H]),j=typeof a=="string"?a:a.light,F=typeof a=="string"?a:a.dark,W=N[j]&&N[F]?x:((le=(ge=N[B.defaultColorScheme])==null?void 0:ge.palette)==null?void 0:le.mode)||((Se=B.palette)==null?void 0:Se.mode),{mode:V,setMode:ee,systemMode:re,lightColorScheme:U,darkColorScheme:K,colorScheme:se,setColorScheme:q}=wE({supportedColorSchemes:z,defaultLightColorScheme:j,defaultDarkColorScheme:F,modeStorageKey:S,colorSchemeStorageKey:m,defaultMode:W,storageWindow:_});let ce=V,ue=se;D&&(ce=O.mode,ue=O.colorScheme);const ie=ue||B.defaultColorScheme,te=((ye=B.generateThemeVars)==null?void 0:ye.call(B))||B.vars,de={...B,components:E,colorSchemes:N,cssVarPrefix:L,vars:te};if(typeof de.generateSpacing=="function"&&(de.spacing=de.generateSpacing()),ie){const Pe=N[ie];Pe&&typeof Pe=="object"&&Object.keys(Pe).forEach(Re=>{Pe[Re]&&typeof Pe[Re]=="object"?de[Re]={...de[Re],...Pe[Re]}:de[Re]=Pe[Re]})}const Q=B.colorSchemeSelector;b.useEffect(()=>{if(ue&&k&&Q&&Q!=="media"){const Pe=Q;let Re=Q;if(Pe==="class"&&(Re=".%s"),Pe==="data"&&(Re="[data-%s]"),Pe!=null&&Pe.startsWith("data-")&&!Pe.includes("%s")&&(Re=`[${Pe}="%s"]`),Re.startsWith("."))k.classList.remove(...z.map(ke=>Re.substring(1).replace("%s",ke))),k.classList.add(Re.substring(1).replace("%s",ue));else{const ke=Re.replace("%s",ue).match(/\[([^\]]+)\]/);if(ke){const[pe,ne]=ke[1].split("=");ne||z.forEach(xe=>{k.removeAttribute(pe.replace(ue,xe))}),k.setAttribute(pe,ne?ne.replace(/"|'/g,""):"")}else k.setAttribute(Re,ue)}}},[ue,Q,k,z]),b.useEffect(()=>{let Pe;if(w&&$.current&&R){const Re=R.createElement("style");Re.appendChild(R.createTextNode(CE)),R.head.appendChild(Re),window.getComputedStyle(R.body),Pe=setTimeout(()=>{R.head.removeChild(Re)},1)}return()=>{clearTimeout(Pe)}},[ue,w,R]),b.useEffect(()=>($.current=!0,()=>{$.current=!1}),[]);const be=b.useMemo(()=>({allColorSchemes:z,colorScheme:ue,darkColorScheme:K,lightColorScheme:U,mode:ce,setColorScheme:q,setMode:ee,systemMode:re}),[z,ue,K,U,ce,q,ee,re]);let Te=!0;(P||B.cssVariables===!1||D&&(I==null?void 0:I.cssVarPrefix)===L)&&(Te=!1);const we=g.jsxs(b.Fragment,{children:[g.jsx(Z2,{themeId:A?t:void 0,theme:s?s(de):de,children:C}),Te&&g.jsx(E2,{styles:((Ge=de.generateStyleSheets)==null?void 0:Ge.call(de))||[]})]});return D?we:g.jsx(c.Provider,{value:be,children:we})}const f=typeof a=="string"?a:a.light,p=typeof a=="string"?a:a.dark;return{CssVarsProvider:d,useColorScheme:u,getInitColorSchemeScript:y=>xE({colorSchemeStorageKey:o,defaultLightColorScheme:f,defaultDarkColorScheme:p,modeStorageKey:r,...y})}}function RE(e=""){function t(...r){if(!r.length)return"";const o=r[0];return typeof o=="string"&&!o.match(/(#|\(|\)|(-?(\d*\.)?\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\d*\.)?\d+)$|(\d+ \d+ \d+)/)?`, var(--${e?`${e}-`:""}${o}${t(...r.slice(1))})`:`, ${o}`}return(r,...o)=>`var(--${e?`${e}-`:""}${r}${t(...o)})`}const Jy=(e,t,n,r=[])=>{let o=e;t.forEach((i,a)=>{a===t.length-1?Array.isArray(o)?o[Number(i)]=n:o&&typeof o=="object"&&(o[i]=n):o&&typeof o=="object"&&(o[i]||(o[i]=r.includes(i)?[]:{}),o=o[i])})},TE=(e,t,n)=>{function r(o,i=[],a=[]){Object.entries(o).forEach(([s,l])=>{(!n||n&&!n([...i,s]))&&l!=null&&(typeof l=="object"&&Object.keys(l).length>0?r(l,[...i,s],Array.isArray(l)?[...a,s]:a):t([...i,s],l,a))})}r(e)},PE=(e,t)=>typeof t=="number"?["lineHeight","fontWeight","opacity","zIndex"].some(r=>e.includes(r))||e[e.length-1].toLowerCase().includes("opacity")?t:`${t}px`:t;function cg(e,t){const{prefix:n,shouldSkipGeneratingVar:r}=t||{},o={},i={},a={};return TE(e,(s,l,c)=>{if((typeof l=="string"||typeof l=="number")&&(!r||!r(s,l))){const u=`--${n?`${n}-`:""}${s.join("-")}`,d=PE(s,l);Object.assign(o,{[u]:d}),Jy(i,s,`var(${u})`,c),Jy(a,s,`var(${u}, ${d})`,c)}},s=>s[0]==="vars"),{css:o,vars:i,varsWithDefaults:a}}function kE(e,t={}){const{getSelector:n=C,disableCssColorScheme:r,colorSchemeSelector:o}=t,{colorSchemes:i={},components:a,defaultColorScheme:s="light",...l}=e,{vars:c,css:u,varsWithDefaults:d}=cg(l,t);let f=d;const p={},{[s]:h,...y}=i;if(Object.entries(y||{}).forEach(([m,w])=>{const{vars:_,css:R,varsWithDefaults:k}=cg(w,t);f=So(f,k),p[m]={css:R,vars:_}}),h){const{css:m,vars:w,varsWithDefaults:_}=cg(h,t);f=So(f,_),p[s]={css:m,vars:w}}function C(m,w){var R,k;let _=o;if(o==="class"&&(_=".%s"),o==="data"&&(_="[data-%s]"),o!=null&&o.startsWith("data-")&&!o.includes("%s")&&(_=`[${o}="%s"]`),m){if(_==="media")return e.defaultColorScheme===m?":root":{[`@media (prefers-color-scheme: ${((k=(R=i[m])==null?void 0:R.palette)==null?void 0:k.mode)||m})`]:{":root":w}};if(_)return e.defaultColorScheme===m?`:root, ${_.replace("%s",String(m))}`:_.replace("%s",String(m))}return":root"}return{vars:f,generateThemeVars:()=>{let m={...c};return Object.entries(p).forEach(([,{vars:w}])=>{m=So(m,w)}),m},generateStyleSheets:()=>{var T,P;const m=[],w=e.defaultColorScheme||"light";function _(x,$){Object.keys($).length&&m.push(typeof x=="string"?{[x]:{...$}}:x)}_(n(void 0,{...u}),u);const{[w]:R,...k}=p;if(R){const{css:x}=R,$=(P=(T=i[w])==null?void 0:T.palette)==null?void 0:P.mode,I=!r&&$?{colorScheme:$,...x}:{...x};_(n(w,{...I}),I)}return Object.entries(k).forEach(([x,{css:$}])=>{var D,M;const I=(M=(D=i[x])==null?void 0:D.palette)==null?void 0:M.mode,O=!r&&I?{colorScheme:I,...$}:{...$};_(n(x,{...O}),O)}),m}}}function $E(e){return function(n){return e==="media"?`@media (prefers-color-scheme: ${n})`:e?e.startsWith("data-")&&!e.includes("%s")?`[${e}="${n}"] &`:e==="class"?`.${n} &`:e==="data"?`[data-${n}] &`:`${e.replace("%s",n)} &`:"&"}}function EE(e,t,n=void 0){const r={};for(const o in e){const i=e[o];let a="",s=!0;for(let l=0;lt.root});function OE(e){return W2({props:e,name:"MuiStack",defaultTheme:ME})}function LE(e,t){const n=b.Children.toArray(e).filter(Boolean);return n.reduce((r,o,i)=>(r.push(o),i({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[e],NE=({ownerState:e,theme:t})=>{let n={display:"flex",flexDirection:"column",...Fr({theme:t},ag({values:e.direction,breakpoints:t.breakpoints.values}),r=>({flexDirection:r}))};if(e.spacing){const r=Hf(t),o=Object.keys(t.breakpoints.values).reduce((l,c)=>((typeof e.spacing=="object"&&e.spacing[c]!=null||typeof e.direction=="object"&&e.direction[c]!=null)&&(l[c]=!0),l),{}),i=ag({values:e.direction,base:o}),a=ag({values:e.spacing,base:o});typeof i=="object"&&Object.keys(i).forEach((l,c,u)=>{if(!i[l]){const f=c>0?i[u[c-1]]:"column";i[l]=f}}),n=So(n,Fr({theme:t},a,(l,c)=>e.useFlexGap?{gap:Ji(r,l)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${AE(c?i[c]:e.direction)}`]:Ji(r,l)}}))}return n=Y$(t.breakpoints,n),n};function DE(e={}){const{createStyledComponent:t=IE,useThemeProps:n=OE,componentName:r="MuiStack"}=e,o=()=>EE({root:["root"]},l=>q5(r,l),{}),i=t(NE);return b.forwardRef(function(l,c){const u=n(l),d=u1(u),{component:f="div",direction:p="column",spacing:h=0,divider:y,children:C,className:v,useFlexGap:S=!1,...m}=d,w={direction:p,spacing:h,useFlexGap:S},_=o();return g.jsx(i,{as:f,ownerState:w,ref:c,className:ve(_.root,v),...m,children:y?LE(C,y):C})})}function Uo(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function Y2(e){if(!Uo(e))return e;const t={};return Object.keys(e).forEach(n=>{t[n]=Y2(e[n])}),t}function oo(e,t,n={clone:!0}){const r=n.clone?{...e}:e;return Uo(e)&&Uo(t)&&Object.keys(t).forEach(o=>{Uo(t[o])&&Object.prototype.hasOwnProperty.call(e,o)&&Uo(e[o])?r[o]=oo(e[o],t[o],n):n.clone?r[o]=Uo(t[o])?Y2(t[o]):t[o]:r[o]=t[o]}),r}function X2(){return{text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:oc.white,default:oc.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}}}const jE=X2();function J2(){return{text:{primary:oc.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:oc.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}}}const eb=J2();function tb(e,t,n,r){const o=r.light||r,i=r.dark||r*1.5;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:t==="light"?e.light=ta(e.main,o):t==="dark"&&(e.dark=ea(e.main,i)))}function FE(e="light"){return e==="dark"?{main:va[200],light:va[50],dark:va[400]}:{main:va[700],light:va[400],dark:va[800]}}function BE(e="light"){return e==="dark"?{main:ma[200],light:ma[50],dark:ma[400]}:{main:ma[500],light:ma[300],dark:ma[700]}}function zE(e="light"){return e==="dark"?{main:ha[500],light:ha[300],dark:ha[700]}:{main:ha[700],light:ha[400],dark:ha[800]}}function HE(e="light"){return e==="dark"?{main:ya[400],light:ya[300],dark:ya[700]}:{main:ya[700],light:ya[500],dark:ya[900]}}function VE(e="light"){return e==="dark"?{main:ba[400],light:ba[300],dark:ba[700]}:{main:ba[800],light:ba[500],dark:ba[900]}}function WE(e="light"){return e==="dark"?{main:Qs[400],light:Qs[300],dark:Qs[700]}:{main:"#ed6c02",light:Qs[500],dark:Qs[900]}}function v1(e){const{mode:t="light",contrastThreshold:n=3,tonalOffset:r=.2,...o}=e,i=e.primary||FE(t),a=e.secondary||BE(t),s=e.error||zE(t),l=e.info||HE(t),c=e.success||VE(t),u=e.warning||WE(t);function d(y){return lE(y,eb.text.primary)>=n?eb.text.primary:jE.text.primary}const f=({color:y,name:C,mainShade:v=500,lightShade:S=300,darkShade:m=700})=>{if(y={...y},!y.main&&y[v]&&(y.main=y[v]),!y.hasOwnProperty("main"))throw new Error(Xi(11,C?` (${C})`:"",v));if(typeof y.main!="string")throw new Error(Xi(12,C?` (${C})`:"",JSON.stringify(y.main)));return tb(y,"light",S,r),tb(y,"dark",m,r),y.contrastText||(y.contrastText=d(y.main)),y};let p;return t==="light"?p=X2():t==="dark"&&(p=J2()),oo({common:{...oc},mode:t,primary:f({color:i,name:"primary"}),secondary:f({color:a,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:f({color:s,name:"error"}),warning:f({color:u,name:"warning"}),info:f({color:l,name:"info"}),success:f({color:c,name:"success"}),grey:A4,contrastThreshold:n,getContrastText:d,augmentColor:f,tonalOffset:r,...p},o)}function UE(e){const t={};return Object.entries(e).forEach(r=>{const[o,i]=r;typeof i=="object"&&(t[o]=`${i.fontStyle?`${i.fontStyle} `:""}${i.fontVariant?`${i.fontVariant} `:""}${i.fontWeight?`${i.fontWeight} `:""}${i.fontStretch?`${i.fontStretch} `:""}${i.fontSize||""}${i.lineHeight?`/${i.lineHeight} `:""}${i.fontFamily||""}`)}),t}const nb=e=>e,GE=()=>{let e=nb;return{configure(t){e=t},generate(t){return e(t)},reset(){e=nb}}},e_=GE(),qE={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function Oe(e,t,n="Mui"){const r=qE[t];return r?`${n}-${r}`:`${e_.generate(e)}-${t}`}function KE(e,t){return{toolbar:{minHeight:56,[e.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[e.up("sm")]:{minHeight:64}},...t}}function ZE(e){return Math.round(e*1e5)/1e5}const rb={textTransform:"uppercase"},ob='"Roboto", "Helvetica", "Arial", sans-serif';function t_(e,t){const{fontFamily:n=ob,fontSize:r=14,fontWeightLight:o=300,fontWeightRegular:i=400,fontWeightMedium:a=500,fontWeightBold:s=700,htmlFontSize:l=16,allVariants:c,pxToRem:u,...d}=typeof t=="function"?t(e):t,f=r/14,p=u||(C=>`${C/l*f}rem`),h=(C,v,S,m,w)=>({fontFamily:n,fontWeight:C,fontSize:p(v),lineHeight:S,...n===ob?{letterSpacing:`${ZE(m/v)}em`}:{},...w,...c}),y={h1:h(o,96,1.167,-1.5),h2:h(o,60,1.2,-.5),h3:h(i,48,1.167,0),h4:h(i,34,1.235,.25),h5:h(i,24,1.334,0),h6:h(a,20,1.6,.15),subtitle1:h(i,16,1.75,.15),subtitle2:h(a,14,1.57,.1),body1:h(i,16,1.5,.15),body2:h(i,14,1.43,.15),button:h(a,14,1.75,.4,rb),caption:h(i,12,1.66,.4),overline:h(i,12,2.66,1,rb),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return oo({htmlFontSize:l,pxToRem:p,fontFamily:n,fontSize:r,fontWeightLight:o,fontWeightRegular:i,fontWeightMedium:a,fontWeightBold:s,...y},d,{clone:!1})}const QE=.2,YE=.14,XE=.12;function bt(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,${QE})`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,${YE})`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,${XE})`].join(",")}const JE=["none",bt(0,2,1,-1,0,1,1,0,0,1,3,0),bt(0,3,1,-2,0,2,2,0,0,1,5,0),bt(0,3,3,-2,0,3,4,0,0,1,8,0),bt(0,2,4,-1,0,4,5,0,0,1,10,0),bt(0,3,5,-1,0,5,8,0,0,1,14,0),bt(0,3,5,-1,0,6,10,0,0,1,18,0),bt(0,4,5,-2,0,7,10,1,0,2,16,1),bt(0,5,5,-3,0,8,10,1,0,3,14,2),bt(0,5,6,-3,0,9,12,1,0,3,16,2),bt(0,6,6,-3,0,10,14,1,0,4,18,3),bt(0,6,7,-4,0,11,15,1,0,4,20,3),bt(0,7,8,-4,0,12,17,2,0,5,22,4),bt(0,7,8,-4,0,13,19,2,0,5,24,4),bt(0,7,9,-4,0,14,21,2,0,5,26,4),bt(0,8,9,-5,0,15,22,2,0,6,28,5),bt(0,8,10,-5,0,16,24,2,0,6,30,5),bt(0,8,11,-5,0,17,26,2,0,6,32,5),bt(0,9,11,-5,0,18,28,2,0,7,34,6),bt(0,9,12,-6,0,19,29,2,0,7,36,6),bt(0,10,13,-6,0,20,31,3,0,8,38,7),bt(0,10,13,-6,0,21,33,3,0,8,40,7),bt(0,10,14,-6,0,22,35,3,0,8,42,7),bt(0,11,14,-7,0,23,36,3,0,9,44,8),bt(0,11,15,-7,0,24,38,3,0,9,46,8)],eM={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},n_={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function ib(e){return`${Math.round(e)}ms`}function tM(e){if(!e)return 0;const t=e/36;return Math.min(Math.round((4+15*t**.25+t/5)*10),3e3)}function nM(e){const t={...eM,...e.easing},n={...n_,...e.duration};return{getAutoHeightDuration:tM,create:(o=["all"],i={})=>{const{duration:a=n.standard,easing:s=t.easeInOut,delay:l=0,...c}=i;return(Array.isArray(o)?o:[o]).map(u=>`${u} ${typeof a=="string"?a:ib(a)} ${s} ${typeof l=="string"?l:ib(l)}`).join(",")},...e,easing:t,duration:n}}const rM={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function oM(e){return Uo(e)||typeof e>"u"||typeof e=="string"||typeof e=="boolean"||typeof e=="number"||Array.isArray(e)}function r_(e={}){const t={...e};function n(r){const o=Object.entries(r);for(let i=0;ioo(p,h),f),f.unstable_sxConfig={...Rc,...c==null?void 0:c.unstable_sxConfig},f.unstable_sx=function(h){return fi({sx:h,theme:this})},f.toRuntimeSource=r_,f}function fm(e){let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}const iM=[...Array(25)].map((e,t)=>{if(t===0)return"none";const n=fm(t);return`linear-gradient(rgba(255 255 255 / ${n}), rgba(255 255 255 / ${n}))`});function o_(e){return{inputPlaceholder:e==="dark"?.5:.42,inputUnderline:e==="dark"?.7:.42,switchTrackDisabled:e==="dark"?.2:.12,switchTrack:e==="dark"?.3:.38}}function i_(e){return e==="dark"?iM:[]}function aM(e){const{palette:t={mode:"light"},opacity:n,overlays:r,...o}=e,i=v1(t);return{palette:i,opacity:{...o_(i.mode),...n},overlays:r||i_(i.mode),...o}}function sM(e){var t;return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]==="palette"&&!!((t=e[1])!=null&&t.match(/(mode|contrastThreshold|tonalOffset)/))}const lM=e=>[...[...Array(25)].map((t,n)=>`--${e?`${e}-`:""}overlays-${n}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],cM=e=>(t,n)=>{const r=e.rootSelector||":root",o=e.colorSchemeSelector;let i=o;if(o==="class"&&(i=".%s"),o==="data"&&(i="[data-%s]"),o!=null&&o.startsWith("data-")&&!o.includes("%s")&&(i=`[${o}="%s"]`),e.defaultColorScheme===t){if(t==="dark"){const a={};return lM(e.cssVarPrefix).forEach(s=>{a[s]=n[s],delete n[s]}),i==="media"?{[r]:n,"@media (prefers-color-scheme: dark)":{[r]:a}}:i?{[i.replace("%s",t)]:a,[`${r}, ${i.replace("%s",t)}`]:n}:{[r]:{...n,...a}}}if(i&&i!=="media")return`${r}, ${i.replace("%s",String(t))}`}else if(t){if(i==="media")return{[`@media (prefers-color-scheme: ${String(t)})`]:{[r]:n}};if(i)return i.replace("%s",String(t))}return r};function uM(e,t){t.forEach(n=>{e[n]||(e[n]={})})}function Z(e,t,n){!e[t]&&n&&(e[t]=n)}function hl(e){return!e||!e.startsWith("hsl")?e:U2(e)}function lo(e,t){`${t}Channel`in e||(e[`${t}Channel`]=gl(hl(e[t]),`MUI: Can't create \`palette.${t}Channel\` because \`palette.${t}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color(). -To suppress this warning, you need to explicitly provide the \`palette.${t}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function dM(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}const Gr=e=>{try{return e()}catch{}},fM=(e="mui")=>RE(e);function ug(e,t,n,r){if(!t)return;t=t===!0?{}:t;const o=r==="dark"?"dark":"light";if(!n){e[r]=aM({...t,palette:{mode:o,...t==null?void 0:t.palette}});return}const{palette:i,...a}=dm({...n,palette:{mode:o,...t==null?void 0:t.palette}});return e[r]={...t,palette:i,opacity:{...o_(o),...t==null?void 0:t.opacity},overlays:(t==null?void 0:t.overlays)||i_(o)},a}function pM(e={},...t){const{colorSchemes:n={light:!0},defaultColorScheme:r,disableCssColorScheme:o=!1,cssVarPrefix:i="mui",shouldSkipGeneratingVar:a=sM,colorSchemeSelector:s=n.light&&n.dark?"media":void 0,rootSelector:l=":root",...c}=e,u=Object.keys(n)[0],d=r||(n.light&&u!=="light"?"light":u),f=fM(i),{[d]:p,light:h,dark:y,...C}=n,v={...C};let S=p;if((d==="dark"&&!("dark"in n)||d==="light"&&!("light"in n))&&(S=!0),!S)throw new Error(Xi(21,d));const m=ug(v,S,c,d);h&&!v.light&&ug(v,h,void 0,"light"),y&&!v.dark&&ug(v,y,void 0,"dark");let w={defaultColorScheme:d,...m,cssVarPrefix:i,colorSchemeSelector:s,rootSelector:l,getCssVar:f,colorSchemes:v,font:{...UE(m.typography),...m.font},spacing:dM(c.spacing)};Object.keys(w.colorSchemes).forEach(P=>{const x=w.colorSchemes[P].palette,$=I=>{const O=I.split("-"),D=O[1],M=O[2];return f(I,x[D][M])};if(x.mode==="light"&&(Z(x.common,"background","#fff"),Z(x.common,"onBackground","#000")),x.mode==="dark"&&(Z(x.common,"background","#000"),Z(x.common,"onBackground","#fff")),uM(x,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),x.mode==="light"){Z(x.Alert,"errorColor",dt(x.error.light,.6)),Z(x.Alert,"infoColor",dt(x.info.light,.6)),Z(x.Alert,"successColor",dt(x.success.light,.6)),Z(x.Alert,"warningColor",dt(x.warning.light,.6)),Z(x.Alert,"errorFilledBg",$("palette-error-main")),Z(x.Alert,"infoFilledBg",$("palette-info-main")),Z(x.Alert,"successFilledBg",$("palette-success-main")),Z(x.Alert,"warningFilledBg",$("palette-warning-main")),Z(x.Alert,"errorFilledColor",Gr(()=>x.getContrastText(x.error.main))),Z(x.Alert,"infoFilledColor",Gr(()=>x.getContrastText(x.info.main))),Z(x.Alert,"successFilledColor",Gr(()=>x.getContrastText(x.success.main))),Z(x.Alert,"warningFilledColor",Gr(()=>x.getContrastText(x.warning.main))),Z(x.Alert,"errorStandardBg",ft(x.error.light,.9)),Z(x.Alert,"infoStandardBg",ft(x.info.light,.9)),Z(x.Alert,"successStandardBg",ft(x.success.light,.9)),Z(x.Alert,"warningStandardBg",ft(x.warning.light,.9)),Z(x.Alert,"errorIconColor",$("palette-error-main")),Z(x.Alert,"infoIconColor",$("palette-info-main")),Z(x.Alert,"successIconColor",$("palette-success-main")),Z(x.Alert,"warningIconColor",$("palette-warning-main")),Z(x.AppBar,"defaultBg",$("palette-grey-100")),Z(x.Avatar,"defaultBg",$("palette-grey-400")),Z(x.Button,"inheritContainedBg",$("palette-grey-300")),Z(x.Button,"inheritContainedHoverBg",$("palette-grey-A100")),Z(x.Chip,"defaultBorder",$("palette-grey-400")),Z(x.Chip,"defaultAvatarColor",$("palette-grey-700")),Z(x.Chip,"defaultIconColor",$("palette-grey-700")),Z(x.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),Z(x.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),Z(x.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),Z(x.LinearProgress,"primaryBg",ft(x.primary.main,.62)),Z(x.LinearProgress,"secondaryBg",ft(x.secondary.main,.62)),Z(x.LinearProgress,"errorBg",ft(x.error.main,.62)),Z(x.LinearProgress,"infoBg",ft(x.info.main,.62)),Z(x.LinearProgress,"successBg",ft(x.success.main,.62)),Z(x.LinearProgress,"warningBg",ft(x.warning.main,.62)),Z(x.Skeleton,"bg",`rgba(${$("palette-text-primaryChannel")} / 0.11)`),Z(x.Slider,"primaryTrack",ft(x.primary.main,.62)),Z(x.Slider,"secondaryTrack",ft(x.secondary.main,.62)),Z(x.Slider,"errorTrack",ft(x.error.main,.62)),Z(x.Slider,"infoTrack",ft(x.info.main,.62)),Z(x.Slider,"successTrack",ft(x.success.main,.62)),Z(x.Slider,"warningTrack",ft(x.warning.main,.62));const I=cu(x.background.default,.8);Z(x.SnackbarContent,"bg",I),Z(x.SnackbarContent,"color",Gr(()=>x.getContrastText(I))),Z(x.SpeedDialAction,"fabHoverBg",cu(x.background.paper,.15)),Z(x.StepConnector,"border",$("palette-grey-400")),Z(x.StepContent,"border",$("palette-grey-400")),Z(x.Switch,"defaultColor",$("palette-common-white")),Z(x.Switch,"defaultDisabledColor",$("palette-grey-100")),Z(x.Switch,"primaryDisabledColor",ft(x.primary.main,.62)),Z(x.Switch,"secondaryDisabledColor",ft(x.secondary.main,.62)),Z(x.Switch,"errorDisabledColor",ft(x.error.main,.62)),Z(x.Switch,"infoDisabledColor",ft(x.info.main,.62)),Z(x.Switch,"successDisabledColor",ft(x.success.main,.62)),Z(x.Switch,"warningDisabledColor",ft(x.warning.main,.62)),Z(x.TableCell,"border",ft(lu(x.divider,1),.88)),Z(x.Tooltip,"bg",lu(x.grey[700],.92))}if(x.mode==="dark"){Z(x.Alert,"errorColor",ft(x.error.light,.6)),Z(x.Alert,"infoColor",ft(x.info.light,.6)),Z(x.Alert,"successColor",ft(x.success.light,.6)),Z(x.Alert,"warningColor",ft(x.warning.light,.6)),Z(x.Alert,"errorFilledBg",$("palette-error-dark")),Z(x.Alert,"infoFilledBg",$("palette-info-dark")),Z(x.Alert,"successFilledBg",$("palette-success-dark")),Z(x.Alert,"warningFilledBg",$("palette-warning-dark")),Z(x.Alert,"errorFilledColor",Gr(()=>x.getContrastText(x.error.dark))),Z(x.Alert,"infoFilledColor",Gr(()=>x.getContrastText(x.info.dark))),Z(x.Alert,"successFilledColor",Gr(()=>x.getContrastText(x.success.dark))),Z(x.Alert,"warningFilledColor",Gr(()=>x.getContrastText(x.warning.dark))),Z(x.Alert,"errorStandardBg",dt(x.error.light,.9)),Z(x.Alert,"infoStandardBg",dt(x.info.light,.9)),Z(x.Alert,"successStandardBg",dt(x.success.light,.9)),Z(x.Alert,"warningStandardBg",dt(x.warning.light,.9)),Z(x.Alert,"errorIconColor",$("palette-error-main")),Z(x.Alert,"infoIconColor",$("palette-info-main")),Z(x.Alert,"successIconColor",$("palette-success-main")),Z(x.Alert,"warningIconColor",$("palette-warning-main")),Z(x.AppBar,"defaultBg",$("palette-grey-900")),Z(x.AppBar,"darkBg",$("palette-background-paper")),Z(x.AppBar,"darkColor",$("palette-text-primary")),Z(x.Avatar,"defaultBg",$("palette-grey-600")),Z(x.Button,"inheritContainedBg",$("palette-grey-800")),Z(x.Button,"inheritContainedHoverBg",$("palette-grey-700")),Z(x.Chip,"defaultBorder",$("palette-grey-700")),Z(x.Chip,"defaultAvatarColor",$("palette-grey-300")),Z(x.Chip,"defaultIconColor",$("palette-grey-300")),Z(x.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),Z(x.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),Z(x.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),Z(x.LinearProgress,"primaryBg",dt(x.primary.main,.5)),Z(x.LinearProgress,"secondaryBg",dt(x.secondary.main,.5)),Z(x.LinearProgress,"errorBg",dt(x.error.main,.5)),Z(x.LinearProgress,"infoBg",dt(x.info.main,.5)),Z(x.LinearProgress,"successBg",dt(x.success.main,.5)),Z(x.LinearProgress,"warningBg",dt(x.warning.main,.5)),Z(x.Skeleton,"bg",`rgba(${$("palette-text-primaryChannel")} / 0.13)`),Z(x.Slider,"primaryTrack",dt(x.primary.main,.5)),Z(x.Slider,"secondaryTrack",dt(x.secondary.main,.5)),Z(x.Slider,"errorTrack",dt(x.error.main,.5)),Z(x.Slider,"infoTrack",dt(x.info.main,.5)),Z(x.Slider,"successTrack",dt(x.success.main,.5)),Z(x.Slider,"warningTrack",dt(x.warning.main,.5));const I=cu(x.background.default,.98);Z(x.SnackbarContent,"bg",I),Z(x.SnackbarContent,"color",Gr(()=>x.getContrastText(I))),Z(x.SpeedDialAction,"fabHoverBg",cu(x.background.paper,.15)),Z(x.StepConnector,"border",$("palette-grey-600")),Z(x.StepContent,"border",$("palette-grey-600")),Z(x.Switch,"defaultColor",$("palette-grey-300")),Z(x.Switch,"defaultDisabledColor",$("palette-grey-600")),Z(x.Switch,"primaryDisabledColor",dt(x.primary.main,.55)),Z(x.Switch,"secondaryDisabledColor",dt(x.secondary.main,.55)),Z(x.Switch,"errorDisabledColor",dt(x.error.main,.55)),Z(x.Switch,"infoDisabledColor",dt(x.info.main,.55)),Z(x.Switch,"successDisabledColor",dt(x.success.main,.55)),Z(x.Switch,"warningDisabledColor",dt(x.warning.main,.55)),Z(x.TableCell,"border",dt(lu(x.divider,1),.68)),Z(x.Tooltip,"bg",lu(x.grey[700],.92))}lo(x.background,"default"),lo(x.background,"paper"),lo(x.common,"background"),lo(x.common,"onBackground"),lo(x,"divider"),Object.keys(x).forEach(I=>{const O=x[I];O&&typeof O=="object"&&(O.main&&Z(x[I],"mainChannel",gl(hl(O.main))),O.light&&Z(x[I],"lightChannel",gl(hl(O.light))),O.dark&&Z(x[I],"darkChannel",gl(hl(O.dark))),O.contrastText&&Z(x[I],"contrastTextChannel",gl(hl(O.contrastText))),I==="text"&&(lo(x[I],"primary"),lo(x[I],"secondary")),I==="action"&&(O.active&&lo(x[I],"active"),O.selected&&lo(x[I],"selected")))})}),w=t.reduce((P,x)=>oo(P,x),w);const _={prefix:i,disableCssColorScheme:o,shouldSkipGeneratingVar:a,getSelector:cM(w)},{vars:R,generateThemeVars:k,generateStyleSheets:T}=kE(w,_);return w.vars=R,Object.entries(w.colorSchemes[w.defaultColorScheme]).forEach(([P,x])=>{w[P]=x}),w.generateThemeVars=k,w.generateStyleSheets=T,w.generateSpacing=function(){return D2(c.spacing,Hf(this))},w.getColorSchemeSelector=$E(s),w.spacing=w.generateSpacing(),w.shouldSkipGeneratingVar=a,w.unstable_sxConfig={...Rc,...c==null?void 0:c.unstable_sxConfig},w.unstable_sx=function(x){return fi({sx:x,theme:this})},w.toRuntimeSource=r_,w}function ab(e,t,n){e.colorSchemes&&n&&(e.colorSchemes[t]={...n!==!0&&n,palette:v1({...n===!0?{}:n.palette,mode:t})})}function sp(e={},...t){const{palette:n,cssVariables:r=!1,colorSchemes:o=n?void 0:{light:!0},defaultColorScheme:i=n==null?void 0:n.mode,...a}=e,s=i||"light",l=o==null?void 0:o[s],c={...o,...n?{[s]:{...typeof l!="boolean"&&l,palette:n}}:void 0};if(r===!1){if(!("colorSchemes"in e))return dm(e,...t);let u=n;"palette"in e||c[s]&&(c[s]!==!0?u=c[s].palette:s==="dark"&&(u={mode:"dark"}));const d=dm({...e,palette:u},...t);return d.defaultColorScheme=s,d.colorSchemes=c,d.palette.mode==="light"&&(d.colorSchemes.light={...c.light!==!0&&c.light,palette:d.palette},ab(d,"dark",c.dark)),d.palette.mode==="dark"&&(d.colorSchemes.dark={...c.dark!==!0&&c.dark,palette:d.palette},ab(d,"light",c.light)),d}return!n&&!("light"in c)&&s==="light"&&(c.light=!0),pM({...a,colorSchemes:c,defaultColorScheme:s,...typeof r!="boolean"&&r},...t)}const lp=sp();function zt(){const e=Zf(lp);return e[Nr]||e}function gM({props:e,name:t}){return W2({props:e,name:t,defaultTheme:lp,themeId:Nr})}function a_(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const wn=e=>a_(e)&&e!=="classes",J=V2({themeId:Nr,defaultTheme:lp,rootShouldForwardProp:wn});function sb({theme:e,...t}){const n=Nr in e?e[Nr]:void 0;return g.jsx(Z2,{...t,themeId:n?Nr:void 0,theme:n||e})}const uu={attribute:"data-mui-color-scheme",colorSchemeStorageKey:"mui-color-scheme",defaultLightColorScheme:"light",defaultDarkColorScheme:"dark",modeStorageKey:"mui-mode"},{CssVarsProvider:hM,useColorScheme:FK,getInitColorSchemeScript:BK}=_E({themeId:Nr,theme:()=>sp({cssVariables:!0}),colorSchemeStorageKey:uu.colorSchemeStorageKey,modeStorageKey:uu.modeStorageKey,defaultColorScheme:{light:uu.defaultLightColorScheme,dark:uu.defaultDarkColorScheme},resolveTheme:e=>{const t={...e,typography:t_(e.palette,e.typography)};return t.unstable_sx=function(r){return fi({sx:r,theme:this})},t}}),mM=hM;function vM({theme:e,...t}){return typeof e=="function"?g.jsx(sb,{theme:e,...t}):"colorSchemes"in(Nr in e?e[Nr]:e)?g.jsx(mM,{theme:e,...t}):g.jsx(sb,{theme:e,...t})}function ae(e){if(typeof e!="string")throw new Error(Xi(7));return e.charAt(0).toUpperCase()+e.slice(1)}function pm(...e){return e.reduce((t,n)=>n==null?t:function(...o){t.apply(this,o),n.apply(this,o)},()=>{})}function cp(e,t=166){let n;function r(...o){const i=()=>{e.apply(this,o)};clearTimeout(n),n=setTimeout(i,t)}return r.clear=()=>{clearTimeout(n)},r}function dg(e,t){var n,r,o;return b.isValidElement(e)&&t.indexOf(e.type.muiName??((o=(r=(n=e.type)==null?void 0:n._payload)==null?void 0:r.value)==null?void 0:o.muiName))!==-1}function ln(e){return e&&e.ownerDocument||document}function Br(e){return ln(e).defaultView||window}function jd(e,t){typeof e=="function"?e(t):e&&(e.current=t)}const zr=typeof window<"u"?b.useLayoutEffect:b.useEffect;let lb=0;function yM(e){const[t,n]=b.useState(e),r=e||t;return b.useEffect(()=>{t==null&&(lb+=1,n(`mui-${lb}`))},[t]),r}const bM={...id},cb=bM.useId;function ds(e){if(cb!==void 0){const t=cb();return e??t}return yM(e)}function Hi({controlled:e,default:t,name:n,state:r="value"}){const{current:o}=b.useRef(e!==void 0),[i,a]=b.useState(t),s=o?e:i,l=b.useCallback(c=>{o||a(c)},[]);return[s,l]}function bn(e){const t=b.useRef(e);return zr(()=>{t.current=e}),b.useRef((...n)=>(0,t.current)(...n)).current}function Rt(...e){return b.useMemo(()=>e.every(t=>t==null)?null:t=>{e.forEach(n=>{jd(n,t)})},e)}const ub={};function s_(e,t){const n=b.useRef(ub);return n.current===ub&&(n.current=e(t)),n}const xM=[];function SM(e){b.useEffect(e,xM)}class up{constructor(){zs(this,"currentId",null);zs(this,"clear",()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)});zs(this,"disposeEffect",()=>this.clear)}static create(){return new up}start(t,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,n()},t)}}function Ni(){const e=s_(up.create).current;return SM(e.disposeEffect),e}function Fd(e){try{return e.matches(":focus-visible")}catch{}return!1}function l_(e=window){const t=e.document.documentElement.clientWidth;return e.innerWidth-t}const wM=e=>{const t=b.useRef({});return b.useEffect(()=>{t.current=e}),t.current};function c_(e,t){const n={...t};for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const o=r;if(o==="components"||o==="slots")n[o]={...e[o],...n[o]};else if(o==="componentsProps"||o==="slotProps"){const i=e[o],a=t[o];if(!a)n[o]=i||{};else if(!i)n[o]=a;else{n[o]={...a};for(const s in i)if(Object.prototype.hasOwnProperty.call(i,s)){const l=s;n[o][l]=c_(i[l],a[l])}}}else n[o]===void 0&&(n[o]=e[o])}return n}function Ne(e,t,n=void 0){const r={};for(const o in e){const i=e[o];let a="",s=!0;for(let l=0;l{r[o]=Oe(e,o,n)}),r}function CM(e){return typeof e=="string"}function Ha(e,t,n){return e===void 0||CM(e)?t:{...t,ownerState:{...t.ownerState,...n}}}function u_(e,t=[]){if(e===void 0)return{};const n={};return Object.keys(e).filter(r=>r.match(/^on[A-Z]/)&&typeof e[r]=="function"&&!t.includes(r)).forEach(r=>{n[r]=e[r]}),n}function db(e){if(e===void 0)return{};const t={};return Object.keys(e).filter(n=>!(n.match(/^on[A-Z]/)&&typeof e[n]=="function")).forEach(n=>{t[n]=e[n]}),t}function d_(e){const{getSlotProps:t,additionalProps:n,externalSlotProps:r,externalForwardedProps:o,className:i}=e;if(!t){const p=ve(n==null?void 0:n.className,i,o==null?void 0:o.className,r==null?void 0:r.className),h={...n==null?void 0:n.style,...o==null?void 0:o.style,...r==null?void 0:r.style},y={...n,...o,...r};return p.length>0&&(y.className=p),Object.keys(h).length>0&&(y.style=h),{props:y,internalRef:void 0}}const a=u_({...o,...r}),s=db(r),l=db(o),c=t(a),u=ve(c==null?void 0:c.className,n==null?void 0:n.className,i,o==null?void 0:o.className,r==null?void 0:r.className),d={...c==null?void 0:c.style,...n==null?void 0:n.style,...o==null?void 0:o.style,...r==null?void 0:r.style},f={...c,...n,...l,...s};return u.length>0&&(f.className=u),Object.keys(d).length>0&&(f.style=d),{props:f,internalRef:c.ref}}function f_(e,t,n){return typeof e=="function"?e(t,n):e}function na(e){var d;const{elementType:t,externalSlotProps:n,ownerState:r,skipResolvingSlotProps:o=!1,...i}=e,a=o?{}:f_(n,r),{props:s,internalRef:l}=d_({...i,externalSlotProps:a}),c=Rt(l,a==null?void 0:a.ref,(d=e.additionalProps)==null?void 0:d.ref);return Ha(t,{...s,ref:c},r)}function ua(e){var t;return parseInt(b.version,10)>=19?((t=e==null?void 0:e.props)==null?void 0:t.ref)||null:(e==null?void 0:e.ref)||null}function _M(e){return g.jsx(z5,{...e,defaultTheme:lp,themeId:Nr})}function RM(e){return function(n){return g.jsx(_M,{styles:typeof e=="function"?r=>e({theme:r,...n}):e})}}function TM(){return u1}const $e=yE;function De(e){return vE(e)}function PM(e){return Oe("MuiSvgIcon",e)}Ee("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);const kM=e=>{const{color:t,fontSize:n,classes:r}=e,o={root:["root",t!=="inherit"&&`color${ae(t)}`,`fontSize${ae(n)}`]};return Ne(o,PM,r)},$M=J("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="inherit"&&t[`color${ae(n.color)}`],t[`fontSize${ae(n.fontSize)}`]]}})($e(({theme:e})=>{var t,n,r,o,i,a,s,l,c,u,d,f,p,h;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",flexShrink:0,transition:(o=(t=e.transitions)==null?void 0:t.create)==null?void 0:o.call(t,"fill",{duration:(r=(n=(e.vars??e).transitions)==null?void 0:n.duration)==null?void 0:r.shorter}),variants:[{props:y=>!y.hasSvgAsChild,style:{fill:"currentColor"}},{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:((a=(i=e.typography)==null?void 0:i.pxToRem)==null?void 0:a.call(i,20))||"1.25rem"}},{props:{fontSize:"medium"},style:{fontSize:((l=(s=e.typography)==null?void 0:s.pxToRem)==null?void 0:l.call(s,24))||"1.5rem"}},{props:{fontSize:"large"},style:{fontSize:((u=(c=e.typography)==null?void 0:c.pxToRem)==null?void 0:u.call(c,35))||"2.1875rem"}},...Object.entries((e.vars??e).palette).filter(([,y])=>y&&y.main).map(([y])=>{var C,v;return{props:{color:y},style:{color:(v=(C=(e.vars??e).palette)==null?void 0:C[y])==null?void 0:v.main}}}),{props:{color:"action"},style:{color:(f=(d=(e.vars??e).palette)==null?void 0:d.action)==null?void 0:f.active}},{props:{color:"disabled"},style:{color:(h=(p=(e.vars??e).palette)==null?void 0:p.action)==null?void 0:h.disabled}},{props:{color:"inherit"},style:{color:void 0}}]}})),ra=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiSvgIcon"}),{children:o,className:i,color:a="inherit",component:s="svg",fontSize:l="medium",htmlColor:c,inheritViewBox:u=!1,titleAccess:d,viewBox:f="0 0 24 24",...p}=r,h=b.isValidElement(o)&&o.type==="svg",y={...r,color:a,component:s,fontSize:l,instanceFontSize:t.fontSize,inheritViewBox:u,viewBox:f,hasSvgAsChild:h},C={};u||(C.viewBox=f);const v=kM(y);return g.jsxs($M,{as:s,className:ve(v.root,i),focusable:"false",color:c,"aria-hidden":d?void 0:!0,role:d?"img":void 0,ref:n,...C,...p,...h&&o.props,ownerState:y,children:[h?o.props.children:o,d?g.jsx("title",{children:d}):null]})});ra&&(ra.muiName="SvgIcon");function un(e,t){function n(r,o){return g.jsx(ra,{"data-testid":`${t}Icon`,ref:o,...r,children:e})}return n.muiName=ra.muiName,b.memo(b.forwardRef(n))}function Ms(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}function gm(e,t){return gm=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},gm(e,t)}function p_(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,gm(e,t)}const fb={disabled:!1},Bd=rt.createContext(null);var EM=function(t){return t.scrollTop},ml="unmounted",$i="exited",Ei="entering",_a="entered",hm="exiting",Hr=function(e){p_(t,e);function t(r,o){var i;i=e.call(this,r,o)||this;var a=o,s=a&&!a.isMounting?r.enter:r.appear,l;return i.appearStatus=null,r.in?s?(l=$i,i.appearStatus=Ei):l=_a:r.unmountOnExit||r.mountOnEnter?l=ml:l=$i,i.state={status:l},i.nextCallback=null,i}t.getDerivedStateFromProps=function(o,i){var a=o.in;return a&&i.status===ml?{status:$i}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(o){var i=null;if(o!==this.props){var a=this.state.status;this.props.in?a!==Ei&&a!==_a&&(i=Ei):(a===Ei||a===_a)&&(i=hm)}this.updateStatus(!1,i)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var o=this.props.timeout,i,a,s;return i=a=s=o,o!=null&&typeof o!="number"&&(i=o.exit,a=o.enter,s=o.appear!==void 0?o.appear:a),{exit:i,enter:a,appear:s}},n.updateStatus=function(o,i){if(o===void 0&&(o=!1),i!==null)if(this.cancelNextCallback(),i===Ei){if(this.props.unmountOnExit||this.props.mountOnEnter){var a=this.props.nodeRef?this.props.nodeRef.current:au.findDOMNode(this);a&&EM(a)}this.performEnter(o)}else this.performExit();else this.props.unmountOnExit&&this.state.status===$i&&this.setState({status:ml})},n.performEnter=function(o){var i=this,a=this.props.enter,s=this.context?this.context.isMounting:o,l=this.props.nodeRef?[s]:[au.findDOMNode(this),s],c=l[0],u=l[1],d=this.getTimeouts(),f=s?d.appear:d.enter;if(!o&&!a||fb.disabled){this.safeSetState({status:_a},function(){i.props.onEntered(c)});return}this.props.onEnter(c,u),this.safeSetState({status:Ei},function(){i.props.onEntering(c,u),i.onTransitionEnd(f,function(){i.safeSetState({status:_a},function(){i.props.onEntered(c,u)})})})},n.performExit=function(){var o=this,i=this.props.exit,a=this.getTimeouts(),s=this.props.nodeRef?void 0:au.findDOMNode(this);if(!i||fb.disabled){this.safeSetState({status:$i},function(){o.props.onExited(s)});return}this.props.onExit(s),this.safeSetState({status:hm},function(){o.props.onExiting(s),o.onTransitionEnd(a.exit,function(){o.safeSetState({status:$i},function(){o.props.onExited(s)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(o,i){i=this.setNextCallback(i),this.setState(o,i)},n.setNextCallback=function(o){var i=this,a=!0;return this.nextCallback=function(s){a&&(a=!1,i.nextCallback=null,o(s))},this.nextCallback.cancel=function(){a=!1},this.nextCallback},n.onTransitionEnd=function(o,i){this.setNextCallback(i);var a=this.props.nodeRef?this.props.nodeRef.current:au.findDOMNode(this),s=o==null&&!this.props.addEndListener;if(!a||s){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var l=this.props.nodeRef?[this.nextCallback]:[a,this.nextCallback],c=l[0],u=l[1];this.props.addEndListener(c,u)}o!=null&&setTimeout(this.nextCallback,o)},n.render=function(){var o=this.state.status;if(o===ml)return null;var i=this.props,a=i.children;i.in,i.mountOnEnter,i.unmountOnExit,i.appear,i.enter,i.exit,i.timeout,i.addEndListener,i.onEnter,i.onEntering,i.onEntered,i.onExit,i.onExiting,i.onExited,i.nodeRef;var s=Ms(i,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return rt.createElement(Bd.Provider,{value:null},typeof a=="function"?a(o,s):rt.cloneElement(rt.Children.only(a),s))},t}(rt.Component);Hr.contextType=Bd;Hr.propTypes={};function xa(){}Hr.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:xa,onEntering:xa,onEntered:xa,onExit:xa,onExiting:xa,onExited:xa};Hr.UNMOUNTED=ml;Hr.EXITED=$i;Hr.ENTERING=Ei;Hr.ENTERED=_a;Hr.EXITING=hm;function MM(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function y1(e,t){var n=function(i){return t&&b.isValidElement(i)?t(i):i},r=Object.create(null);return e&&b.Children.map(e,function(o){return o}).forEach(function(o){r[o.key]=n(o)}),r}function IM(e,t){e=e||{},t=t||{};function n(u){return u in t?t[u]:e[u]}var r=Object.create(null),o=[];for(var i in e)i in t?o.length&&(r[i]=o,o=[]):o.push(i);var a,s={};for(var l in t){if(r[l])for(a=0;ae.scrollTop;function fs(e,t){const{timeout:n,easing:r,style:o={}}=e;return{duration:o.transitionDuration??(typeof n=="number"?n:n[t.mode]||0),easing:o.transitionTimingFunction??(typeof r=="object"?r[t.mode]:r),delay:o.transitionDelay}}function DM(e){return Oe("MuiCollapse",e)}Ee("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"]);const jM=e=>{const{orientation:t,classes:n}=e,r={root:["root",`${t}`],entered:["entered"],hidden:["hidden"],wrapper:["wrapper",`${t}`],wrapperInner:["wrapperInner",`${t}`]};return Ne(r,DM,n)},FM=J("div",{name:"MuiCollapse",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.orientation],n.state==="entered"&&t.entered,n.state==="exited"&&!n.in&&n.collapsedSize==="0px"&&t.hidden]}})($e(({theme:e})=>({height:0,overflow:"hidden",transition:e.transitions.create("height"),variants:[{props:{orientation:"horizontal"},style:{height:"auto",width:0,transition:e.transitions.create("width")}},{props:{state:"entered"},style:{height:"auto",overflow:"visible"}},{props:{state:"entered",orientation:"horizontal"},style:{width:"auto"}},{props:({ownerState:t})=>t.state==="exited"&&!t.in&&t.collapsedSize==="0px",style:{visibility:"hidden"}}]}))),BM=J("div",{name:"MuiCollapse",slot:"Wrapper",overridesResolver:(e,t)=>t.wrapper})({display:"flex",width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),zM=J("div",{name:"MuiCollapse",slot:"WrapperInner",overridesResolver:(e,t)=>t.wrapperInner})({width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),ps=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiCollapse"}),{addEndListener:o,children:i,className:a,collapsedSize:s="0px",component:l,easing:c,in:u,onEnter:d,onEntered:f,onEntering:p,onExit:h,onExited:y,onExiting:C,orientation:v="vertical",style:S,timeout:m=n_.standard,TransitionComponent:w=Hr,..._}=r,R={...r,orientation:v,collapsedSize:s},k=jM(R),T=zt(),P=Ni(),x=b.useRef(null),$=b.useRef(),I=typeof s=="number"?`${s}px`:s,O=v==="horizontal",D=O?"width":"height",M=b.useRef(null),A=Rt(n,M),N=V=>ee=>{if(V){const re=M.current;ee===void 0?V(re):V(re,ee)}},E=()=>x.current?x.current[O?"clientWidth":"clientHeight"]:0,L=N((V,ee)=>{x.current&&O&&(x.current.style.position="absolute"),V.style[D]=I,d&&d(V,ee)}),B=N((V,ee)=>{const re=E();x.current&&O&&(x.current.style.position="");const{duration:U,easing:K}=fs({style:S,timeout:m,easing:c},{mode:"enter"});if(m==="auto"){const se=T.transitions.getAutoHeightDuration(re);V.style.transitionDuration=`${se}ms`,$.current=se}else V.style.transitionDuration=typeof U=="string"?U:`${U}ms`;V.style[D]=`${re}px`,V.style.transitionTimingFunction=K,p&&p(V,ee)}),H=N((V,ee)=>{V.style[D]="auto",f&&f(V,ee)}),z=N(V=>{V.style[D]=`${E()}px`,h&&h(V)}),j=N(y),F=N(V=>{const ee=E(),{duration:re,easing:U}=fs({style:S,timeout:m,easing:c},{mode:"exit"});if(m==="auto"){const K=T.transitions.getAutoHeightDuration(ee);V.style.transitionDuration=`${K}ms`,$.current=K}else V.style.transitionDuration=typeof re=="string"?re:`${re}ms`;V.style[D]=I,V.style.transitionTimingFunction=U,C&&C(V)}),W=V=>{m==="auto"&&P.start($.current||0,V),o&&o(M.current,V)};return g.jsx(w,{in:u,onEnter:L,onEntered:H,onEntering:B,onExit:z,onExited:j,onExiting:F,addEndListener:W,nodeRef:M,timeout:m==="auto"?null:m,..._,children:(V,ee)=>g.jsx(FM,{as:l,className:ve(k.root,a,{entered:k.entered,exited:!u&&I==="0px"&&k.hidden}[V]),style:{[O?"minWidth":"minHeight"]:I,...S},ref:A,...ee,ownerState:{...R,state:V},children:g.jsx(BM,{ownerState:{...R,state:V},className:k.wrapper,ref:x,children:g.jsx(zM,{ownerState:{...R,state:V},className:k.wrapperInner,children:i})})})})});ps&&(ps.muiSupportAuto=!0);function HM(e){return Oe("MuiPaper",e)}Ee("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);const VM=e=>{const{square:t,elevation:n,variant:r,classes:o}=e,i={root:["root",r,!t&&"rounded",r==="elevation"&&`elevation${n}`]};return Ne(i,HM,o)},WM=J("div",{name:"MuiPaper",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],!n.square&&t.rounded,n.variant==="elevation"&&t[`elevation${n.elevation}`]]}})($e(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,color:(e.vars||e).palette.text.primary,transition:e.transitions.create("box-shadow"),variants:[{props:({ownerState:t})=>!t.square,style:{borderRadius:e.shape.borderRadius}},{props:{variant:"outlined"},style:{border:`1px solid ${(e.vars||e).palette.divider}`}},{props:{variant:"elevation"},style:{boxShadow:"var(--Paper-shadow)",backgroundImage:"var(--Paper-overlay)"}}]}))),Is=b.forwardRef(function(t,n){var p;const r=De({props:t,name:"MuiPaper"}),o=zt(),{className:i,component:a="div",elevation:s=1,square:l=!1,variant:c="elevation",...u}=r,d={...r,component:a,elevation:s,square:l,variant:c},f=VM(d);return g.jsx(WM,{as:a,ownerState:d,className:ve(f.root,i),ref:n,...u,style:{...c==="elevation"&&{"--Paper-shadow":(o.vars||o).shadows[s],...o.vars&&{"--Paper-overlay":(p=o.vars.overlays)==null?void 0:p[s]},...!o.vars&&o.palette.mode==="dark"&&{"--Paper-overlay":`linear-gradient(${Be("#fff",fm(s))}, ${Be("#fff",fm(s))})`}},...u.style}})});function an(e,t){const{className:n,elementType:r,ownerState:o,externalForwardedProps:i,getSlotOwnerState:a,internalForwardedProps:s,...l}=t,{component:c,slots:u={[e]:void 0},slotProps:d={[e]:void 0},...f}=i,p=u[e]||r,h=f_(d[e],o),{props:{component:y,...C},internalRef:v}=d_({className:n,...l,externalForwardedProps:e==="root"?f:void 0,externalSlotProps:h}),S=Rt(v,h==null?void 0:h.ref,t.ref),m=a?a(C):{},w={...o,...m},_=e==="root"?y||c:y,R=Ha(p,{...e==="root"&&!c&&!u[e]&&s,...e!=="root"&&!u[e]&&s,...C,..._&&{as:_},ref:S},w);return Object.keys(m).forEach(k=>{delete R[k]}),[p,R]}class zd{constructor(){zs(this,"mountEffect",()=>{this.shouldMount&&!this.didMount&&this.ref.current!==null&&(this.didMount=!0,this.mounted.resolve())});this.ref={current:null},this.mounted=null,this.didMount=!1,this.shouldMount=!1,this.setShouldMount=null}static create(){return new zd}static use(){const t=s_(zd.create).current,[n,r]=b.useState(!1);return t.shouldMount=n,t.setShouldMount=r,b.useEffect(t.mountEffect,[n]),t}mount(){return this.mounted||(this.mounted=GM(),this.shouldMount=!0,this.setShouldMount(this.shouldMount)),this.mounted}start(...t){this.mount().then(()=>{var n;return(n=this.ref.current)==null?void 0:n.start(...t)})}stop(...t){this.mount().then(()=>{var n;return(n=this.ref.current)==null?void 0:n.stop(...t)})}pulsate(...t){this.mount().then(()=>{var n;return(n=this.ref.current)==null?void 0:n.pulsate(...t)})}}function UM(){return zd.use()}function GM(){let e,t;const n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n}function qM(e){const{className:t,classes:n,pulsate:r=!1,rippleX:o,rippleY:i,rippleSize:a,in:s,onExited:l,timeout:c}=e,[u,d]=b.useState(!1),f=ve(t,n.ripple,n.rippleVisible,r&&n.ripplePulsate),p={width:a,height:a,top:-(a/2)+i,left:-(a/2)+o},h=ve(n.child,u&&n.childLeaving,r&&n.childPulsate);return!s&&!u&&d(!0),b.useEffect(()=>{if(!s&&l!=null){const y=setTimeout(l,c);return()=>{clearTimeout(y)}}},[l,s,c]),g.jsx("span",{className:f,style:p,children:g.jsx("span",{className:h})})}const cr=Ee("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),mm=550,KM=80,ZM=a1` - 0% { - transform: scale(0); - opacity: 0.1; - } - - 100% { - transform: scale(1); - opacity: 0.3; - } -`,QM=a1` - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - } -`,YM=a1` - 0% { - transform: scale(1); - } - - 50% { - transform: scale(0.92); - } - - 100% { - transform: scale(1); - } -`,XM=J("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),JM=J(qM,{name:"MuiTouchRipple",slot:"Ripple"})` - opacity: 0; - position: absolute; - - &.${cr.rippleVisible} { - opacity: 0.3; - transform: scale(1); - animation-name: ${ZM}; - animation-duration: ${mm}ms; - animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; - } - - &.${cr.ripplePulsate} { - animation-duration: ${({theme:e})=>e.transitions.duration.shorter}ms; - } - - & .${cr.child} { - opacity: 1; - display: block; - width: 100%; - height: 100%; - border-radius: 50%; - background-color: currentColor; - } - - & .${cr.childLeaving} { - opacity: 0; - animation-name: ${QM}; - animation-duration: ${mm}ms; - animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; - } - - & .${cr.childPulsate} { - position: absolute; - /* @noflip */ - left: 0px; - top: 0; - animation-name: ${YM}; - animation-duration: 2500ms; - animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; - animation-iteration-count: infinite; - animation-delay: 200ms; - } -`,e8=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTouchRipple"}),{center:o=!1,classes:i={},className:a,...s}=r,[l,c]=b.useState([]),u=b.useRef(0),d=b.useRef(null);b.useEffect(()=>{d.current&&(d.current(),d.current=null)},[l]);const f=b.useRef(!1),p=Ni(),h=b.useRef(null),y=b.useRef(null),C=b.useCallback(w=>{const{pulsate:_,rippleX:R,rippleY:k,rippleSize:T,cb:P}=w;c(x=>[...x,g.jsx(JM,{classes:{ripple:ve(i.ripple,cr.ripple),rippleVisible:ve(i.rippleVisible,cr.rippleVisible),ripplePulsate:ve(i.ripplePulsate,cr.ripplePulsate),child:ve(i.child,cr.child),childLeaving:ve(i.childLeaving,cr.childLeaving),childPulsate:ve(i.childPulsate,cr.childPulsate)},timeout:mm,pulsate:_,rippleX:R,rippleY:k,rippleSize:T},u.current)]),u.current+=1,d.current=P},[i]),v=b.useCallback((w={},_={},R=()=>{})=>{const{pulsate:k=!1,center:T=o||_.pulsate,fakeElement:P=!1}=_;if((w==null?void 0:w.type)==="mousedown"&&f.current){f.current=!1;return}(w==null?void 0:w.type)==="touchstart"&&(f.current=!0);const x=P?null:y.current,$=x?x.getBoundingClientRect():{width:0,height:0,left:0,top:0};let I,O,D;if(T||w===void 0||w.clientX===0&&w.clientY===0||!w.clientX&&!w.touches)I=Math.round($.width/2),O=Math.round($.height/2);else{const{clientX:M,clientY:A}=w.touches&&w.touches.length>0?w.touches[0]:w;I=Math.round(M-$.left),O=Math.round(A-$.top)}if(T)D=Math.sqrt((2*$.width**2+$.height**2)/3),D%2===0&&(D+=1);else{const M=Math.max(Math.abs((x?x.clientWidth:0)-I),I)*2+2,A=Math.max(Math.abs((x?x.clientHeight:0)-O),O)*2+2;D=Math.sqrt(M**2+A**2)}w!=null&&w.touches?h.current===null&&(h.current=()=>{C({pulsate:k,rippleX:I,rippleY:O,rippleSize:D,cb:R})},p.start(KM,()=>{h.current&&(h.current(),h.current=null)})):C({pulsate:k,rippleX:I,rippleY:O,rippleSize:D,cb:R})},[o,C,p]),S=b.useCallback(()=>{v({},{pulsate:!0})},[v]),m=b.useCallback((w,_)=>{if(p.clear(),(w==null?void 0:w.type)==="touchend"&&h.current){h.current(),h.current=null,p.start(0,()=>{m(w,_)});return}h.current=null,c(R=>R.length>0?R.slice(1):R),d.current=_},[p]);return b.useImperativeHandle(n,()=>({pulsate:S,start:v,stop:m}),[S,v,m]),g.jsx(XM,{className:ve(cr.root,i.root,a),ref:y,...s,children:g.jsx(b1,{component:null,exit:!0,children:l})})});function t8(e){return Oe("MuiButtonBase",e)}const n8=Ee("MuiButtonBase",["root","disabled","focusVisible"]),r8=e=>{const{disabled:t,focusVisible:n,focusVisibleClassName:r,classes:o}=e,a=Ne({root:["root",t&&"disabled",n&&"focusVisible"]},t8,o);return n&&r&&(a.root+=` ${r}`),a},o8=J("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${n8.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),To=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiButtonBase"}),{action:o,centerRipple:i=!1,children:a,className:s,component:l="button",disabled:c=!1,disableRipple:u=!1,disableTouchRipple:d=!1,focusRipple:f=!1,focusVisibleClassName:p,LinkComponent:h="a",onBlur:y,onClick:C,onContextMenu:v,onDragLeave:S,onFocus:m,onFocusVisible:w,onKeyDown:_,onKeyUp:R,onMouseDown:k,onMouseLeave:T,onMouseUp:P,onTouchEnd:x,onTouchMove:$,onTouchStart:I,tabIndex:O=0,TouchRippleProps:D,touchRippleRef:M,type:A,...N}=r,E=b.useRef(null),L=UM(),B=Rt(L.ref,M),[H,z]=b.useState(!1);c&&H&&z(!1),b.useImperativeHandle(o,()=>({focusVisible:()=>{z(!0),E.current.focus()}}),[]);const j=L.shouldMount&&!u&&!c;b.useEffect(()=>{H&&f&&!u&&L.pulsate()},[u,f,H,L]);function F(le,Se,ye=d){return bn(Ge=>(Se&&Se(Ge),ye||L[le](Ge),!0))}const W=F("start",k),V=F("stop",v),ee=F("stop",S),re=F("stop",P),U=F("stop",le=>{H&&le.preventDefault(),T&&T(le)}),K=F("start",I),se=F("stop",x),q=F("stop",$),ce=F("stop",le=>{Fd(le.target)||z(!1),y&&y(le)},!1),ue=bn(le=>{E.current||(E.current=le.currentTarget),Fd(le.target)&&(z(!0),w&&w(le)),m&&m(le)}),ie=()=>{const le=E.current;return l&&l!=="button"&&!(le.tagName==="A"&&le.href)},te=bn(le=>{f&&!le.repeat&&H&&le.key===" "&&L.stop(le,()=>{L.start(le)}),le.target===le.currentTarget&&ie()&&le.key===" "&&le.preventDefault(),_&&_(le),le.target===le.currentTarget&&ie()&&le.key==="Enter"&&!c&&(le.preventDefault(),C&&C(le))}),de=bn(le=>{f&&le.key===" "&&H&&!le.defaultPrevented&&L.stop(le,()=>{L.pulsate(le)}),R&&R(le),C&&le.target===le.currentTarget&&ie()&&le.key===" "&&!le.defaultPrevented&&C(le)});let Q=l;Q==="button"&&(N.href||N.to)&&(Q=h);const be={};Q==="button"?(be.type=A===void 0?"button":A,be.disabled=c):(!N.href&&!N.to&&(be.role="button"),c&&(be["aria-disabled"]=c));const Te=Rt(n,E),we={...r,centerRipple:i,component:l,disabled:c,disableRipple:u,disableTouchRipple:d,focusRipple:f,tabIndex:O,focusVisible:H},ge=r8(we);return g.jsxs(o8,{as:Q,className:ve(ge.root,s),ownerState:we,onBlur:ce,onClick:C,onContextMenu:V,onFocus:ue,onKeyDown:te,onKeyUp:de,onMouseDown:W,onMouseLeave:U,onMouseUp:re,onDragLeave:ee,onTouchEnd:se,onTouchMove:q,onTouchStart:K,ref:Te,tabIndex:c?-1:O,type:A,...be,...N,children:[a,j?g.jsx(e8,{ref:B,center:i,...D}):null]})});function i8(e){return typeof e.main=="string"}function a8(e,t=[]){if(!i8(e))return!1;for(const n of t)if(!e.hasOwnProperty(n)||typeof e[n]!="string")return!1;return!0}function Ft(e=[]){return([,t])=>t&&a8(t,e)}function s8(e){return Oe("MuiAlert",e)}const pb=Ee("MuiAlert",["root","action","icon","message","filled","colorSuccess","colorInfo","colorWarning","colorError","filledSuccess","filledInfo","filledWarning","filledError","outlined","outlinedSuccess","outlinedInfo","outlinedWarning","outlinedError","standard","standardSuccess","standardInfo","standardWarning","standardError"]);function l8(e){return Oe("MuiIconButton",e)}const c8=Ee("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge"]),u8=e=>{const{classes:t,disabled:n,color:r,edge:o,size:i}=e,a={root:["root",n&&"disabled",r!=="default"&&`color${ae(r)}`,o&&`edge${ae(o)}`,`size${ae(i)}`]};return Ne(a,l8,t)},d8=J(To,{name:"MuiIconButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="default"&&t[`color${ae(n.color)}`],n.edge&&t[`edge${ae(n.edge)}`],t[`size${ae(n.size)}`]]}})($e(({theme:e})=>({textAlign:"center",flex:"0 0 auto",fontSize:e.typography.pxToRem(24),padding:8,borderRadius:"50%",color:(e.vars||e).palette.action.active,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),variants:[{props:t=>!t.disableRipple,style:{"--IconButton-hoverBg":e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity),"&:hover":{backgroundColor:"var(--IconButton-hoverBg)","@media (hover: none)":{backgroundColor:"transparent"}}}},{props:{edge:"start"},style:{marginLeft:-12}},{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:{edge:"end"},style:{marginRight:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}}]})),$e(({theme:e})=>({variants:[{props:{color:"inherit"},style:{color:"inherit"}},...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t},style:{"--IconButton-hoverBg":e.vars?`rgba(${(e.vars||e).palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be((e.vars||e).palette[t].main,e.palette.action.hoverOpacity)}})),{props:{size:"small"},style:{padding:5,fontSize:e.typography.pxToRem(18)}},{props:{size:"large"},style:{padding:12,fontSize:e.typography.pxToRem(28)}}],[`&.${c8.disabled}`]:{backgroundColor:"transparent",color:(e.vars||e).palette.action.disabled}}))),hr=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiIconButton"}),{edge:o=!1,children:i,className:a,color:s="default",disabled:l=!1,disableFocusRipple:c=!1,size:u="medium",...d}=r,f={...r,edge:o,color:s,disabled:l,disableFocusRipple:c,size:u},p=u8(f);return g.jsx(d8,{className:ve(p.root,a),centerRipple:!0,focusRipple:!c,disabled:l,ref:n,...d,ownerState:f,children:i})}),f8=un(g.jsx("path",{d:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"}),"SuccessOutlined"),p8=un(g.jsx("path",{d:"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined"),g8=un(g.jsx("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"ErrorOutline"),h8=un(g.jsx("path",{d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"}),"InfoOutlined"),h_=un(g.jsx("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),m8=e=>{const{variant:t,color:n,severity:r,classes:o}=e,i={root:["root",`color${ae(n||r)}`,`${t}${ae(n||r)}`,`${t}`],icon:["icon"],message:["message"],action:["action"]};return Ne(i,s8,o)},v8=J(Is,{name:"MuiAlert",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`${n.variant}${ae(n.color||n.severity)}`]]}})($e(({theme:e})=>{const t=e.palette.mode==="light"?ea:ta,n=e.palette.mode==="light"?ta:ea;return{...e.typography.body2,backgroundColor:"transparent",display:"flex",padding:"6px 16px",variants:[...Object.entries(e.palette).filter(Ft(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"standard"},style:{color:e.vars?e.vars.palette.Alert[`${r}Color`]:t(e.palette[r].light,.6),backgroundColor:e.vars?e.vars.palette.Alert[`${r}StandardBg`]:n(e.palette[r].light,.9),[`& .${pb.icon}`]:e.vars?{color:e.vars.palette.Alert[`${r}IconColor`]}:{color:e.palette[r].main}}})),...Object.entries(e.palette).filter(Ft(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"outlined"},style:{color:e.vars?e.vars.palette.Alert[`${r}Color`]:t(e.palette[r].light,.6),border:`1px solid ${(e.vars||e).palette[r].light}`,[`& .${pb.icon}`]:e.vars?{color:e.vars.palette.Alert[`${r}IconColor`]}:{color:e.palette[r].main}}})),...Object.entries(e.palette).filter(Ft(["dark"])).map(([r])=>({props:{colorSeverity:r,variant:"filled"},style:{fontWeight:e.typography.fontWeightMedium,...e.vars?{color:e.vars.palette.Alert[`${r}FilledColor`],backgroundColor:e.vars.palette.Alert[`${r}FilledBg`]}:{backgroundColor:e.palette.mode==="dark"?e.palette[r].dark:e.palette[r].main,color:e.palette.getContrastText(e.palette[r].main)}}}))]}})),y8=J("div",{name:"MuiAlert",slot:"Icon",overridesResolver:(e,t)=>t.icon})({marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9}),b8=J("div",{name:"MuiAlert",slot:"Message",overridesResolver:(e,t)=>t.message})({padding:"8px 0",minWidth:0,overflow:"auto"}),gb=J("div",{name:"MuiAlert",slot:"Action",overridesResolver:(e,t)=>t.action})({display:"flex",alignItems:"flex-start",padding:"4px 0 0 16px",marginLeft:"auto",marginRight:-8}),hb={success:g.jsx(f8,{fontSize:"inherit"}),warning:g.jsx(p8,{fontSize:"inherit"}),error:g.jsx(g8,{fontSize:"inherit"}),info:g.jsx(h8,{fontSize:"inherit"})},m_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiAlert"}),{action:o,children:i,className:a,closeText:s="Close",color:l,components:c={},componentsProps:u={},icon:d,iconMapping:f=hb,onClose:p,role:h="alert",severity:y="success",slotProps:C={},slots:v={},variant:S="standard",...m}=r,w={...r,color:l,severity:y,variant:S,colorSeverity:l||y},_=m8(w),R={slots:{closeButton:c.CloseButton,closeIcon:c.CloseIcon,...v},slotProps:{...u,...C}},[k,T]=an("closeButton",{elementType:hr,externalForwardedProps:R,ownerState:w}),[P,x]=an("closeIcon",{elementType:h_,externalForwardedProps:R,ownerState:w});return g.jsxs(v8,{role:h,elevation:0,ownerState:w,className:ve(_.root,a),ref:n,...m,children:[d!==!1?g.jsx(y8,{ownerState:w,className:_.icon,children:d||f[y]||hb[y]}):null,g.jsx(b8,{ownerState:w,className:_.message,children:i}),o!=null?g.jsx(gb,{ownerState:w,className:_.action,children:o}):null,o==null&&p?g.jsx(gb,{ownerState:w,className:_.action,children:g.jsx(k,{size:"small","aria-label":s,title:s,color:"inherit",onClick:p,...T,children:g.jsx(P,{fontSize:"small",...x})})}):null]})});function x8(e){return Oe("MuiTypography",e)}Ee("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const S8={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},w8=TM(),C8=e=>{const{align:t,gutterBottom:n,noWrap:r,paragraph:o,variant:i,classes:a}=e,s={root:["root",i,e.align!=="inherit"&&`align${ae(t)}`,n&&"gutterBottom",r&&"noWrap",o&&"paragraph"]};return Ne(s,x8,a)},_8=J("span",{name:"MuiTypography",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],n.align!=="inherit"&&t[`align${ae(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom,n.paragraph&&t.paragraph]}})($e(({theme:e})=>{var t;return{margin:0,variants:[{props:{variant:"inherit"},style:{font:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}},...Object.entries(e.typography).filter(([n,r])=>n!=="inherit"&&r&&typeof r=="object").map(([n,r])=>({props:{variant:n},style:r})),...Object.entries(e.palette).filter(Ft()).map(([n])=>({props:{color:n},style:{color:(e.vars||e).palette[n].main}})),...Object.entries(((t=e.palette)==null?void 0:t.text)||{}).filter(([,n])=>typeof n=="string").map(([n])=>({props:{color:`text${ae(n)}`},style:{color:(e.vars||e).palette.text[n]}})),{props:({ownerState:n})=>n.align!=="inherit",style:{textAlign:"var(--Typography-textAlign)"}},{props:({ownerState:n})=>n.noWrap,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},{props:({ownerState:n})=>n.gutterBottom,style:{marginBottom:"0.35em"}},{props:({ownerState:n})=>n.paragraph,style:{marginBottom:16}}]}})),mb={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},mt=b.forwardRef(function(t,n){const{color:r,...o}=De({props:t,name:"MuiTypography"}),i=!S8[r],a=w8({...o,...i&&{color:r}}),{align:s="inherit",className:l,component:c,gutterBottom:u=!1,noWrap:d=!1,paragraph:f=!1,variant:p="body1",variantMapping:h=mb,...y}=a,C={...a,align:s,color:r,className:l,component:c,gutterBottom:u,noWrap:d,paragraph:f,variant:p,variantMapping:h},v=c||(f?"p":h[p]||mb[p])||"span",S=C8(C);return g.jsx(_8,{as:v,ref:n,className:ve(S.root,l),...y,ownerState:C,style:{...s!=="inherit"&&{"--Typography-textAlign":s},...y.style}})});function vb(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function R8(e={}){const{ignoreAccents:t=!0,ignoreCase:n=!0,limit:r,matchFrom:o="any",stringify:i,trim:a=!1}=e;return(s,{inputValue:l,getOptionLabel:c})=>{let u=a?l.trim():l;n&&(u=u.toLowerCase()),t&&(u=vb(u));const d=u?s.filter(f=>{let p=(i||c)(f);return n&&(p=p.toLowerCase()),t&&(p=vb(p)),o==="start"?p.startsWith(u):p.includes(u)}):s;return typeof r=="number"?d.slice(0,r):d}}const T8=R8(),yb=5,P8=e=>{var t;return e.current!==null&&((t=e.current.parentElement)==null?void 0:t.contains(document.activeElement))},k8=[];function $8(e){const{unstable_isActiveElementInListbox:t=P8,unstable_classNamePrefix:n="Mui",autoComplete:r=!1,autoHighlight:o=!1,autoSelect:i=!1,blurOnSelect:a=!1,clearOnBlur:s=!e.freeSolo,clearOnEscape:l=!1,componentName:c="useAutocomplete",defaultValue:u=e.multiple?k8:null,disableClearable:d=!1,disableCloseOnSelect:f=!1,disabled:p,disabledItemsFocusable:h=!1,disableListWrap:y=!1,filterOptions:C=T8,filterSelectedOptions:v=!1,freeSolo:S=!1,getOptionDisabled:m,getOptionKey:w,getOptionLabel:_=X=>X.label??X,groupBy:R,handleHomeEndKeys:k=!e.freeSolo,id:T,includeInputInList:P=!1,inputValue:x,isOptionEqualToValue:$=(X,Y)=>X===Y,multiple:I=!1,onChange:O,onClose:D,onHighlightChange:M,onInputChange:A,onOpen:N,open:E,openOnFocus:L=!1,options:B,readOnly:H=!1,selectOnFocus:z=!e.freeSolo,value:j}=e,F=ds(T);let W=_;W=X=>{const Y=_(X);return typeof Y!="string"?String(Y):Y};const V=b.useRef(!1),ee=b.useRef(!0),re=b.useRef(null),U=b.useRef(null),[K,se]=b.useState(null),[q,ce]=b.useState(-1),ue=o?0:-1,ie=b.useRef(ue),[te,de]=Hi({controlled:j,default:u,name:c}),[Q,be]=Hi({controlled:x,default:"",name:c,state:"inputValue"}),[Te,we]=b.useState(!1),ge=b.useCallback((X,Y,Ce)=>{if(!(I?te.length!(v&&(I?te:[te]).some(Y=>Y!==null&&$(X,Y)))),{inputValue:Pe&&ye?"":Q,getOptionLabel:W}):[],pe=wM({filteredOptions:ke,value:te,inputValue:Q});b.useEffect(()=>{const X=te!==pe.value;Te&&!X||S&&!X||ge(null,te,"reset")},[te,ge,Te,pe.value,S]);const ne=le&&ke.length>0&&!H,xe=bn(X=>{X===-1?re.current.focus():K.querySelector(`[data-tag-index="${X}"]`).focus()});b.useEffect(()=>{I&&q>te.length-1&&(ce(-1),xe(-1))},[te,I,q,xe]);function Le(X,Y){if(!U.current||X<0||X>=ke.length)return-1;let Ce=X;for(;;){const We=U.current.querySelector(`[data-option-index="${Ce}"]`),qe=h?!1:!We||We.disabled||We.getAttribute("aria-disabled")==="true";if(We&&We.hasAttribute("tabindex")&&!qe)return Ce;if(Y==="next"?Ce=(Ce+1)%ke.length:Ce=(Ce-1+ke.length)%ke.length,Ce===X)return-1}}const fe=bn(({event:X,index:Y,reason:Ce="auto"})=>{if(ie.current=Y,Y===-1?re.current.removeAttribute("aria-activedescendant"):re.current.setAttribute("aria-activedescendant",`${F}-option-${Y}`),M&&M(X,Y===-1?null:ke[Y],Ce),!U.current)return;const We=U.current.querySelector(`[role="option"].${n}-focused`);We&&(We.classList.remove(`${n}-focused`),We.classList.remove(`${n}-focusVisible`));let qe=U.current;if(U.current.getAttribute("role")!=="listbox"&&(qe=U.current.parentElement.querySelector('[role="listbox"]')),!qe)return;if(Y===-1){qe.scrollTop=0;return}const Pt=U.current.querySelector(`[data-option-index="${Y}"]`);if(Pt&&(Pt.classList.add(`${n}-focused`),Ce==="keyboard"&&Pt.classList.add(`${n}-focusVisible`),qe.scrollHeight>qe.clientHeight&&Ce!=="mouse"&&Ce!=="touch")){const at=Pt,_r=qe.clientHeight+qe.scrollTop,Fc=at.offsetTop+at.offsetHeight;Fc>_r?qe.scrollTop=Fc-qe.clientHeight:at.offsetTop-at.offsetHeight*(R?1.3:0){if(!Re)return;const Pt=Le((()=>{const at=ke.length-1;if(Y==="reset")return ue;if(Y==="start")return 0;if(Y==="end")return at;const _r=ie.current+Y;return _r<0?_r===-1&&P?-1:y&&ie.current!==-1||Math.abs(Y)>1?0:at:_r>at?_r===at+1&&P?-1:y||Math.abs(Y)>1?at:0:_r})(),Ce);if(fe({index:Pt,reason:We,event:X}),r&&Y!=="reset")if(Pt===-1)re.current.value=Q;else{const at=W(ke[Pt]);re.current.value=at,at.toLowerCase().indexOf(Q.toLowerCase())===0&&Q.length>0&&re.current.setSelectionRange(Q.length,at.length)}}),me=()=>{const X=(Y,Ce)=>{const We=Y?W(Y):"",qe=Ce?W(Ce):"";return We===qe};if(ie.current!==-1&&pe.filteredOptions&&pe.filteredOptions.length!==ke.length&&pe.inputValue===Q&&(I?te.length===pe.value.length&&pe.value.every((Y,Ce)=>W(te[Ce])===W(Y)):X(pe.value,te))){const Y=pe.filteredOptions[ie.current];if(Y)return ke.findIndex(Ce=>W(Ce)===W(Y))}return-1},je=b.useCallback(()=>{if(!Re)return;const X=me();if(X!==-1){ie.current=X;return}const Y=I?te[0]:te;if(ke.length===0||Y==null){oe({diff:"reset"});return}if(U.current){if(Y!=null){const Ce=ke[ie.current];if(I&&Ce&&te.findIndex(qe=>$(Ce,qe))!==-1)return;const We=ke.findIndex(qe=>$(qe,Y));We===-1?oe({diff:"reset"}):fe({index:We});return}if(ie.current>=ke.length-1){fe({index:ke.length-1});return}fe({index:ie.current})}},[ke.length,I?!1:te,v,oe,fe,Re,Q,I]),Ve=bn(X=>{jd(U,X),X&&je()});b.useEffect(()=>{je()},[je]);const Ye=X=>{le||(Se(!0),Ge(!0),N&&N(X))},Tt=(X,Y)=>{le&&(Se(!1),D&&D(X,Y))},Zt=(X,Y,Ce,We)=>{if(I){if(te.length===Y.length&&te.every((qe,Pt)=>qe===Y[Pt]))return}else if(te===Y)return;O&&O(X,Y,Ce,We),de(Y)},Mn=b.useRef(!1),ir=(X,Y,Ce="selectOption",We="options")=>{let qe=Ce,Pt=Y;if(I){Pt=Array.isArray(te)?te.slice():[];const at=Pt.findIndex(_r=>$(Y,_r));at===-1?Pt.push(Y):We!=="freeSolo"&&(Pt.splice(at,1),qe="removeOption")}ge(X,Pt,qe),Zt(X,Pt,qe,{option:Y}),!f&&(!X||!X.ctrlKey&&!X.metaKey)&&Tt(X,qe),(a===!0||a==="touch"&&Mn.current||a==="mouse"&&!Mn.current)&&re.current.blur()};function Vn(X,Y){if(X===-1)return-1;let Ce=X;for(;;){if(Y==="next"&&Ce===te.length||Y==="previous"&&Ce===-1)return-1;const We=K.querySelector(`[data-tag-index="${Ce}"]`);if(!We||!We.hasAttribute("tabindex")||We.disabled||We.getAttribute("aria-disabled")==="true")Ce+=Y==="next"?1:-1;else return Ce}}const Oo=(X,Y)=>{if(!I)return;Q===""&&Tt(X,"toggleInput");let Ce=q;q===-1?Q===""&&Y==="previous"&&(Ce=te.length-1):(Ce+=Y==="next"?1:-1,Ce<0&&(Ce=0),Ce===te.length&&(Ce=-1)),Ce=Vn(Ce,Y),ce(Ce),xe(Ce)},_i=X=>{V.current=!0,be(""),A&&A(X,"","clear"),Zt(X,I?[]:null,"clear")},Fe=X=>Y=>{if(X.onKeyDown&&X.onKeyDown(Y),!Y.defaultMuiPrevented&&(q!==-1&&!["ArrowLeft","ArrowRight"].includes(Y.key)&&(ce(-1),xe(-1)),Y.which!==229))switch(Y.key){case"Home":Re&&k&&(Y.preventDefault(),oe({diff:"start",direction:"next",reason:"keyboard",event:Y}));break;case"End":Re&&k&&(Y.preventDefault(),oe({diff:"end",direction:"previous",reason:"keyboard",event:Y}));break;case"PageUp":Y.preventDefault(),oe({diff:-yb,direction:"previous",reason:"keyboard",event:Y}),Ye(Y);break;case"PageDown":Y.preventDefault(),oe({diff:yb,direction:"next",reason:"keyboard",event:Y}),Ye(Y);break;case"ArrowDown":Y.preventDefault(),oe({diff:1,direction:"next",reason:"keyboard",event:Y}),Ye(Y);break;case"ArrowUp":Y.preventDefault(),oe({diff:-1,direction:"previous",reason:"keyboard",event:Y}),Ye(Y);break;case"ArrowLeft":Oo(Y,"previous");break;case"ArrowRight":Oo(Y,"next");break;case"Enter":if(ie.current!==-1&&Re){const Ce=ke[ie.current],We=m?m(Ce):!1;if(Y.preventDefault(),We)return;ir(Y,Ce,"selectOption"),r&&re.current.setSelectionRange(re.current.value.length,re.current.value.length)}else S&&Q!==""&&Pe===!1&&(I&&Y.preventDefault(),ir(Y,Q,"createOption","freeSolo"));break;case"Escape":Re?(Y.preventDefault(),Y.stopPropagation(),Tt(Y,"escape")):l&&(Q!==""||I&&te.length>0)&&(Y.preventDefault(),Y.stopPropagation(),_i(Y));break;case"Backspace":if(I&&!H&&Q===""&&te.length>0){const Ce=q===-1?te.length-1:q,We=te.slice();We.splice(Ce,1),Zt(Y,We,"removeOption",{option:te[Ce]})}break;case"Delete":if(I&&!H&&Q===""&&te.length>0&&q!==-1){const Ce=q,We=te.slice();We.splice(Ce,1),Zt(Y,We,"removeOption",{option:te[Ce]})}break}},_n=X=>{we(!0),L&&!V.current&&Ye(X)},Dc=X=>{if(t(U)){re.current.focus();return}we(!1),ee.current=!0,V.current=!1,i&&ie.current!==-1&&Re?ir(X,ke[ie.current],"blur"):i&&S&&Q!==""?ir(X,Q,"blur","freeSolo"):s&&ge(X,te,"blur"),Tt(X,"blur")},pa=X=>{const Y=X.target.value;Q!==Y&&(be(Y),Ge(!1),A&&A(X,Y,"input")),Y===""?!d&&!I&&Zt(X,null,"clear"):Ye(X)},Ds=X=>{const Y=Number(X.currentTarget.getAttribute("data-option-index"));ie.current!==Y&&fe({event:X,index:Y,reason:"mouse"})},js=X=>{fe({event:X,index:Number(X.currentTarget.getAttribute("data-option-index")),reason:"touch"}),Mn.current=!0},kp=X=>{const Y=Number(X.currentTarget.getAttribute("data-option-index"));ir(X,ke[Y],"selectOption"),Mn.current=!1},$p=X=>Y=>{const Ce=te.slice();Ce.splice(X,1),Zt(Y,Ce,"removeOption",{option:te[X]})},jc=X=>{le?Tt(X,"toggleInput"):Ye(X)},cv=X=>{X.currentTarget.contains(X.target)&&X.target.getAttribute("id")!==F&&X.preventDefault()},Fs=X=>{X.currentTarget.contains(X.target)&&(re.current.focus(),z&&ee.current&&re.current.selectionEnd-re.current.selectionStart===0&&re.current.select(),ee.current=!1)},dn=X=>{!p&&(Q===""||!le)&&jc(X)};let Nt=S&&Q.length>0;Nt=Nt||(I?te.length>0:te!==null);let so=ke;return R&&(so=ke.reduce((X,Y,Ce)=>{const We=R(Y);return X.length>0&&X[X.length-1].group===We?X[X.length-1].options.push(Y):X.push({key:Ce,index:Ce,group:We,options:[Y]}),X},[])),p&&Te&&Dc(),{getRootProps:(X={})=>({"aria-owns":ne?`${F}-listbox`:null,...X,onKeyDown:Fe(X),onMouseDown:cv,onClick:Fs}),getInputLabelProps:()=>({id:`${F}-label`,htmlFor:F}),getInputProps:()=>({id:F,value:Q,onBlur:Dc,onFocus:_n,onChange:pa,onMouseDown:dn,"aria-activedescendant":Re?"":null,"aria-autocomplete":r?"both":"list","aria-controls":ne?`${F}-listbox`:void 0,"aria-expanded":ne,autoComplete:"off",ref:re,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:p}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:_i}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:jc}),getTagProps:({index:X})=>({key:X,"data-tag-index":X,tabIndex:-1,...!H&&{onDelete:$p(X)}}),getListboxProps:()=>({role:"listbox",id:`${F}-listbox`,"aria-labelledby":`${F}-label`,ref:Ve,onMouseDown:X=>{X.preventDefault()}}),getOptionProps:({index:X,option:Y})=>{const Ce=(I?te:[te]).some(qe=>qe!=null&&$(Y,qe)),We=m?m(Y):!1;return{key:(w==null?void 0:w(Y))??W(Y),tabIndex:-1,role:"option",id:`${F}-option-${X}`,onMouseMove:Ds,onClick:kp,onTouchStart:js,"data-option-index":X,"aria-disabled":We,"aria-selected":Ce}},id:F,inputValue:Q,value:te,dirty:Nt,expanded:Re&&K,popupOpen:Re,focused:Te||q!==-1,anchorEl:K,setAnchorEl:se,focusedTag:q,groupedOptions:so}}var jn="top",xr="bottom",Sr="right",Fn="left",x1="auto",Tc=[jn,xr,Sr,Fn],gs="start",lc="end",E8="clippingParents",v_="viewport",Xs="popper",M8="reference",bb=Tc.reduce(function(e,t){return e.concat([t+"-"+gs,t+"-"+lc])},[]),y_=[].concat(Tc,[x1]).reduce(function(e,t){return e.concat([t,t+"-"+gs,t+"-"+lc])},[]),I8="beforeRead",O8="read",L8="afterRead",A8="beforeMain",N8="main",D8="afterMain",j8="beforeWrite",F8="write",B8="afterWrite",z8=[I8,O8,L8,A8,N8,D8,j8,F8,B8];function ao(e){return e?(e.nodeName||"").toLowerCase():null}function er(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function oa(e){var t=er(e).Element;return e instanceof t||e instanceof Element}function vr(e){var t=er(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function S1(e){if(typeof ShadowRoot>"u")return!1;var t=er(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function H8(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},o=t.attributes[n]||{},i=t.elements[n];!vr(i)||!ao(i)||(Object.assign(i.style,r),Object.keys(o).forEach(function(a){var s=o[a];s===!1?i.removeAttribute(a):i.setAttribute(a,s===!0?"":s)}))})}function V8(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var o=t.elements[r],i=t.attributes[r]||{},a=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),s=a.reduce(function(l,c){return l[c]="",l},{});!vr(o)||!ao(o)||(Object.assign(o.style,s),Object.keys(i).forEach(function(l){o.removeAttribute(l)}))})}}const W8={name:"applyStyles",enabled:!0,phase:"write",fn:H8,effect:V8,requires:["computeStyles"]};function io(e){return e.split("-")[0]}var Vi=Math.max,Hd=Math.min,hs=Math.round;function vm(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function b_(){return!/^((?!chrome|android).)*safari/i.test(vm())}function ms(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),o=1,i=1;t&&vr(e)&&(o=e.offsetWidth>0&&hs(r.width)/e.offsetWidth||1,i=e.offsetHeight>0&&hs(r.height)/e.offsetHeight||1);var a=oa(e)?er(e):window,s=a.visualViewport,l=!b_()&&n,c=(r.left+(l&&s?s.offsetLeft:0))/o,u=(r.top+(l&&s?s.offsetTop:0))/i,d=r.width/o,f=r.height/i;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c,x:c,y:u}}function w1(e){var t=ms(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function x_(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&S1(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Po(e){return er(e).getComputedStyle(e)}function U8(e){return["table","td","th"].indexOf(ao(e))>=0}function xi(e){return((oa(e)?e.ownerDocument:e.document)||window.document).documentElement}function dp(e){return ao(e)==="html"?e:e.assignedSlot||e.parentNode||(S1(e)?e.host:null)||xi(e)}function xb(e){return!vr(e)||Po(e).position==="fixed"?null:e.offsetParent}function G8(e){var t=/firefox/i.test(vm()),n=/Trident/i.test(vm());if(n&&vr(e)){var r=Po(e);if(r.position==="fixed")return null}var o=dp(e);for(S1(o)&&(o=o.host);vr(o)&&["html","body"].indexOf(ao(o))<0;){var i=Po(o);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||t&&i.willChange==="filter"||t&&i.filter&&i.filter!=="none")return o;o=o.parentNode}return null}function Pc(e){for(var t=er(e),n=xb(e);n&&U8(n)&&Po(n).position==="static";)n=xb(n);return n&&(ao(n)==="html"||ao(n)==="body"&&Po(n).position==="static")?t:n||G8(e)||t}function C1(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function $l(e,t,n){return Vi(e,Hd(t,n))}function q8(e,t,n){var r=$l(e,t,n);return r>n?n:r}function S_(){return{top:0,right:0,bottom:0,left:0}}function w_(e){return Object.assign({},S_(),e)}function C_(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var K8=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,w_(typeof t!="number"?t:C_(t,Tc))};function Z8(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=io(n.placement),l=C1(s),c=[Fn,Sr].indexOf(s)>=0,u=c?"height":"width";if(!(!i||!a)){var d=K8(o.padding,n),f=w1(i),p=l==="y"?jn:Fn,h=l==="y"?xr:Sr,y=n.rects.reference[u]+n.rects.reference[l]-a[l]-n.rects.popper[u],C=a[l]-n.rects.reference[l],v=Pc(i),S=v?l==="y"?v.clientHeight||0:v.clientWidth||0:0,m=y/2-C/2,w=d[p],_=S-f[u]-d[h],R=S/2-f[u]/2+m,k=$l(w,R,_),T=l;n.modifiersData[r]=(t={},t[T]=k,t.centerOffset=k-R,t)}}function Q8(e){var t=e.state,n=e.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=t.elements.popper.querySelector(o),!o)||x_(t.elements.popper,o)&&(t.elements.arrow=o))}const Y8={name:"arrow",enabled:!0,phase:"main",fn:Z8,effect:Q8,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function vs(e){return e.split("-")[1]}var X8={top:"auto",right:"auto",bottom:"auto",left:"auto"};function J8(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:hs(n*o)/o||0,y:hs(r*o)/o||0}}function Sb(e){var t,n=e.popper,r=e.popperRect,o=e.placement,i=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=a.x,p=f===void 0?0:f,h=a.y,y=h===void 0?0:h,C=typeof u=="function"?u({x:p,y}):{x:p,y};p=C.x,y=C.y;var v=a.hasOwnProperty("x"),S=a.hasOwnProperty("y"),m=Fn,w=jn,_=window;if(c){var R=Pc(n),k="clientHeight",T="clientWidth";if(R===er(n)&&(R=xi(n),Po(R).position!=="static"&&s==="absolute"&&(k="scrollHeight",T="scrollWidth")),R=R,o===jn||(o===Fn||o===Sr)&&i===lc){w=xr;var P=d&&R===_&&_.visualViewport?_.visualViewport.height:R[k];y-=P-r.height,y*=l?1:-1}if(o===Fn||(o===jn||o===xr)&&i===lc){m=Sr;var x=d&&R===_&&_.visualViewport?_.visualViewport.width:R[T];p-=x-r.width,p*=l?1:-1}}var $=Object.assign({position:s},c&&X8),I=u===!0?J8({x:p,y},er(n)):{x:p,y};if(p=I.x,y=I.y,l){var O;return Object.assign({},$,(O={},O[w]=S?"0":"",O[m]=v?"0":"",O.transform=(_.devicePixelRatio||1)<=1?"translate("+p+"px, "+y+"px)":"translate3d("+p+"px, "+y+"px, 0)",O))}return Object.assign({},$,(t={},t[w]=S?y+"px":"",t[m]=v?p+"px":"",t.transform="",t))}function e6(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=r===void 0?!0:r,i=n.adaptive,a=i===void 0?!0:i,s=n.roundOffsets,l=s===void 0?!0:s,c={placement:io(t.placement),variation:vs(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Sb(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Sb(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const t6={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:e6,data:{}};var du={passive:!0};function n6(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,i=o===void 0?!0:o,a=r.resize,s=a===void 0?!0:a,l=er(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&c.forEach(function(u){u.addEventListener("scroll",n.update,du)}),s&&l.addEventListener("resize",n.update,du),function(){i&&c.forEach(function(u){u.removeEventListener("scroll",n.update,du)}),s&&l.removeEventListener("resize",n.update,du)}}const r6={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:n6,data:{}};var o6={left:"right",right:"left",bottom:"top",top:"bottom"};function qu(e){return e.replace(/left|right|bottom|top/g,function(t){return o6[t]})}var i6={start:"end",end:"start"};function wb(e){return e.replace(/start|end/g,function(t){return i6[t]})}function _1(e){var t=er(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function R1(e){return ms(xi(e)).left+_1(e).scrollLeft}function a6(e,t){var n=er(e),r=xi(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,l=0;if(o){i=o.width,a=o.height;var c=b_();(c||!c&&t==="fixed")&&(s=o.offsetLeft,l=o.offsetTop)}return{width:i,height:a,x:s+R1(e),y:l}}function s6(e){var t,n=xi(e),r=_1(e),o=(t=e.ownerDocument)==null?void 0:t.body,i=Vi(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=Vi(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-r.scrollLeft+R1(e),l=-r.scrollTop;return Po(o||n).direction==="rtl"&&(s+=Vi(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:a,x:s,y:l}}function T1(e){var t=Po(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function __(e){return["html","body","#document"].indexOf(ao(e))>=0?e.ownerDocument.body:vr(e)&&T1(e)?e:__(dp(e))}function El(e,t){var n;t===void 0&&(t=[]);var r=__(e),o=r===((n=e.ownerDocument)==null?void 0:n.body),i=er(r),a=o?[i].concat(i.visualViewport||[],T1(r)?r:[]):r,s=t.concat(a);return o?s:s.concat(El(dp(a)))}function ym(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function l6(e,t){var n=ms(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Cb(e,t,n){return t===v_?ym(a6(e,n)):oa(t)?l6(t,n):ym(s6(xi(e)))}function c6(e){var t=El(dp(e)),n=["absolute","fixed"].indexOf(Po(e).position)>=0,r=n&&vr(e)?Pc(e):e;return oa(r)?t.filter(function(o){return oa(o)&&x_(o,r)&&ao(o)!=="body"}):[]}function u6(e,t,n,r){var o=t==="clippingParents"?c6(e):[].concat(t),i=[].concat(o,[n]),a=i[0],s=i.reduce(function(l,c){var u=Cb(e,c,r);return l.top=Vi(u.top,l.top),l.right=Hd(u.right,l.right),l.bottom=Hd(u.bottom,l.bottom),l.left=Vi(u.left,l.left),l},Cb(e,a,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function R_(e){var t=e.reference,n=e.element,r=e.placement,o=r?io(r):null,i=r?vs(r):null,a=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,l;switch(o){case jn:l={x:a,y:t.y-n.height};break;case xr:l={x:a,y:t.y+t.height};break;case Sr:l={x:t.x+t.width,y:s};break;case Fn:l={x:t.x-n.width,y:s};break;default:l={x:t.x,y:t.y}}var c=o?C1(o):null;if(c!=null){var u=c==="y"?"height":"width";switch(i){case gs:l[c]=l[c]-(t[u]/2-n[u]/2);break;case lc:l[c]=l[c]+(t[u]/2-n[u]/2);break}}return l}function cc(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=r===void 0?e.placement:r,i=n.strategy,a=i===void 0?e.strategy:i,s=n.boundary,l=s===void 0?E8:s,c=n.rootBoundary,u=c===void 0?v_:c,d=n.elementContext,f=d===void 0?Xs:d,p=n.altBoundary,h=p===void 0?!1:p,y=n.padding,C=y===void 0?0:y,v=w_(typeof C!="number"?C:C_(C,Tc)),S=f===Xs?M8:Xs,m=e.rects.popper,w=e.elements[h?S:f],_=u6(oa(w)?w:w.contextElement||xi(e.elements.popper),l,u,a),R=ms(e.elements.reference),k=R_({reference:R,element:m,strategy:"absolute",placement:o}),T=ym(Object.assign({},m,k)),P=f===Xs?T:R,x={top:_.top-P.top+v.top,bottom:P.bottom-_.bottom+v.bottom,left:_.left-P.left+v.left,right:P.right-_.right+v.right},$=e.modifiersData.offset;if(f===Xs&&$){var I=$[o];Object.keys(x).forEach(function(O){var D=[Sr,xr].indexOf(O)>=0?1:-1,M=[jn,xr].indexOf(O)>=0?"y":"x";x[O]+=I[M]*D})}return x}function d6(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,c=l===void 0?y_:l,u=vs(r),d=u?s?bb:bb.filter(function(h){return vs(h)===u}):Tc,f=d.filter(function(h){return c.indexOf(h)>=0});f.length===0&&(f=d);var p=f.reduce(function(h,y){return h[y]=cc(e,{placement:y,boundary:o,rootBoundary:i,padding:a})[io(y)],h},{});return Object.keys(p).sort(function(h,y){return p[h]-p[y]})}function f6(e){if(io(e)===x1)return[];var t=qu(e);return[wb(e),t,wb(t)]}function p6(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!0:a,l=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,h=p===void 0?!0:p,y=n.allowedAutoPlacements,C=t.options.placement,v=io(C),S=v===C,m=l||(S||!h?[qu(C)]:f6(C)),w=[C].concat(m).reduce(function(F,W){return F.concat(io(W)===x1?d6(t,{placement:W,boundary:u,rootBoundary:d,padding:c,flipVariations:h,allowedAutoPlacements:y}):W)},[]),_=t.rects.reference,R=t.rects.popper,k=new Map,T=!0,P=w[0],x=0;x=0,M=D?"width":"height",A=cc(t,{placement:$,boundary:u,rootBoundary:d,altBoundary:f,padding:c}),N=D?O?Sr:Fn:O?xr:jn;_[M]>R[M]&&(N=qu(N));var E=qu(N),L=[];if(i&&L.push(A[I]<=0),s&&L.push(A[N]<=0,A[E]<=0),L.every(function(F){return F})){P=$,T=!1;break}k.set($,L)}if(T)for(var B=h?3:1,H=function(W){var V=w.find(function(ee){var re=k.get(ee);if(re)return re.slice(0,W).every(function(U){return U})});if(V)return P=V,"break"},z=B;z>0;z--){var j=H(z);if(j==="break")break}t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}}const g6={name:"flip",enabled:!0,phase:"main",fn:p6,requiresIfExists:["offset"],data:{_skip:!1}};function _b(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Rb(e){return[jn,Sr,xr,Fn].some(function(t){return e[t]>=0})}function h6(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=cc(t,{elementContext:"reference"}),s=cc(t,{altBoundary:!0}),l=_b(a,r),c=_b(s,o,i),u=Rb(l),d=Rb(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}const m6={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:h6};function v6(e,t,n){var r=io(e),o=[Fn,jn].indexOf(r)>=0?-1:1,i=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[Fn,Sr].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}function y6(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=o===void 0?[0,0]:o,a=y_.reduce(function(u,d){return u[d]=v6(d,t.rects,i),u},{}),s=a[t.placement],l=s.x,c=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}const b6={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:y6};function x6(e){var t=e.state,n=e.name;t.modifiersData[n]=R_({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const S6={name:"popperOffsets",enabled:!0,phase:"read",fn:x6,data:{}};function w6(e){return e==="x"?"y":"x"}function C6(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!1:a,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0?!0:f,h=n.tetherOffset,y=h===void 0?0:h,C=cc(t,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),v=io(t.placement),S=vs(t.placement),m=!S,w=C1(v),_=w6(w),R=t.modifiersData.popperOffsets,k=t.rects.reference,T=t.rects.popper,P=typeof y=="function"?y(Object.assign({},t.rects,{placement:t.placement})):y,x=typeof P=="number"?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),$=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(R){if(i){var O,D=w==="y"?jn:Fn,M=w==="y"?xr:Sr,A=w==="y"?"height":"width",N=R[w],E=N+C[D],L=N-C[M],B=p?-T[A]/2:0,H=S===gs?k[A]:T[A],z=S===gs?-T[A]:-k[A],j=t.elements.arrow,F=p&&j?w1(j):{width:0,height:0},W=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:S_(),V=W[D],ee=W[M],re=$l(0,k[A],F[A]),U=m?k[A]/2-B-re-V-x.mainAxis:H-re-V-x.mainAxis,K=m?-k[A]/2+B+re+ee+x.mainAxis:z+re+ee+x.mainAxis,se=t.elements.arrow&&Pc(t.elements.arrow),q=se?w==="y"?se.clientTop||0:se.clientLeft||0:0,ce=(O=$==null?void 0:$[w])!=null?O:0,ue=N+U-ce-q,ie=N+K-ce,te=$l(p?Hd(E,ue):E,N,p?Vi(L,ie):L);R[w]=te,I[w]=te-N}if(s){var de,Q=w==="x"?jn:Fn,be=w==="x"?xr:Sr,Te=R[_],we=_==="y"?"height":"width",ge=Te+C[Q],le=Te-C[be],Se=[jn,Fn].indexOf(v)!==-1,ye=(de=$==null?void 0:$[_])!=null?de:0,Ge=Se?ge:Te-k[we]-T[we]-ye+x.altAxis,Pe=Se?Te+k[we]+T[we]-ye-x.altAxis:le,Re=p&&Se?q8(Ge,Te,Pe):$l(p?Ge:ge,Te,p?Pe:le);R[_]=Re,I[_]=Re-Te}t.modifiersData[r]=I}}const _6={name:"preventOverflow",enabled:!0,phase:"main",fn:C6,requiresIfExists:["offset"]};function R6(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function T6(e){return e===er(e)||!vr(e)?_1(e):R6(e)}function P6(e){var t=e.getBoundingClientRect(),n=hs(t.width)/e.offsetWidth||1,r=hs(t.height)/e.offsetHeight||1;return n!==1||r!==1}function k6(e,t,n){n===void 0&&(n=!1);var r=vr(t),o=vr(t)&&P6(t),i=xi(t),a=ms(e,o,n),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((ao(t)!=="body"||T1(i))&&(s=T6(t)),vr(t)?(l=ms(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):i&&(l.x=R1(i))),{x:a.left+s.scrollLeft-l.x,y:a.top+s.scrollTop-l.y,width:a.width,height:a.height}}function $6(e){var t=new Map,n=new Set,r=[];e.forEach(function(i){t.set(i.name,i)});function o(i){n.add(i.name);var a=[].concat(i.requires||[],i.requiresIfExists||[]);a.forEach(function(s){if(!n.has(s)){var l=t.get(s);l&&o(l)}}),r.push(i)}return e.forEach(function(i){n.has(i.name)||o(i)}),r}function E6(e){var t=$6(e);return z8.reduce(function(n,r){return n.concat(t.filter(function(o){return o.phase===r}))},[])}function M6(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function I6(e){var t=e.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var Tb={placement:"bottom",modifiers:[],strategy:"absolute"};function Pb(){for(var e=arguments.length,t=new Array(e),n=0;n{i||s(N6(o)||document.body)},[o,i]),zr(()=>{if(a&&!i)return jd(n,a),()=>{jd(n,null)}},[n,a,i]),i){if(b.isValidElement(r)){const c={ref:l};return b.cloneElement(r,c)}return g.jsx(b.Fragment,{children:r})}return g.jsx(b.Fragment,{children:a&&Q0.createPortal(r,a)})});function D6(e){return Oe("MuiPopper",e)}Ee("MuiPopper",["root"]);function j6(e,t){if(t==="ltr")return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}function bm(e){return typeof e=="function"?e():e}function F6(e){return e.nodeType!==void 0}const B6=e=>{const{classes:t}=e;return Ne({root:["root"]},D6,t)},z6={},H6=b.forwardRef(function(t,n){const{anchorEl:r,children:o,direction:i,disablePortal:a,modifiers:s,open:l,placement:c,popperOptions:u,popperRef:d,slotProps:f={},slots:p={},TransitionProps:h,ownerState:y,...C}=t,v=b.useRef(null),S=Rt(v,n),m=b.useRef(null),w=Rt(m,d),_=b.useRef(w);zr(()=>{_.current=w},[w]),b.useImperativeHandle(d,()=>m.current,[]);const R=j6(c,i),[k,T]=b.useState(R),[P,x]=b.useState(bm(r));b.useEffect(()=>{m.current&&m.current.forceUpdate()}),b.useEffect(()=>{r&&x(bm(r))},[r]),zr(()=>{if(!P||!l)return;const M=E=>{T(E.placement)};let A=[{name:"preventOverflow",options:{altBoundary:a}},{name:"flip",options:{altBoundary:a}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:E})=>{M(E)}}];s!=null&&(A=A.concat(s)),u&&u.modifiers!=null&&(A=A.concat(u.modifiers));const N=A6(P,v.current,{placement:R,...u,modifiers:A});return _.current(N),()=>{N.destroy(),_.current(null)}},[P,a,s,l,u,R]);const $={placement:k};h!==null&&($.TransitionProps=h);const I=B6(t),O=p.root??"div",D=na({elementType:O,externalSlotProps:f.root,externalForwardedProps:C,additionalProps:{role:"tooltip",ref:S},ownerState:t,className:I.root});return g.jsx(O,{...D,children:typeof o=="function"?o($):o})}),V6=b.forwardRef(function(t,n){const{anchorEl:r,children:o,container:i,direction:a="ltr",disablePortal:s=!1,keepMounted:l=!1,modifiers:c,open:u,placement:d="bottom",popperOptions:f=z6,popperRef:p,style:h,transition:y=!1,slotProps:C={},slots:v={},...S}=t,[m,w]=b.useState(!0),_=()=>{w(!1)},R=()=>{w(!0)};if(!l&&!u&&(!y||m))return null;let k;if(i)k=i;else if(r){const x=bm(r);k=x&&F6(x)?ln(x).body:ln(null).body}const T=!u&&l&&(!y||m)?"none":void 0,P=y?{in:u,onEnter:_,onExited:R}:void 0;return g.jsx(T_,{disablePortal:s,container:k,children:g.jsx(H6,{anchorEl:r,direction:a,disablePortal:s,modifiers:c,ref:n,open:y?!m:u,placement:d,popperOptions:f,popperRef:p,slotProps:C,slots:v,...S,style:{position:"fixed",top:0,left:0,display:T,...h},TransitionProps:P,children:o})})}),W6=J(V6,{name:"MuiPopper",slot:"Root",overridesResolver:(e,t)=>t.root})({}),kc=b.forwardRef(function(t,n){const r=Es(),o=De({props:t,name:"MuiPopper"}),{anchorEl:i,component:a,components:s,componentsProps:l,container:c,disablePortal:u,keepMounted:d,modifiers:f,open:p,placement:h,popperOptions:y,popperRef:C,transition:v,slots:S,slotProps:m,...w}=o,_=(S==null?void 0:S.root)??(s==null?void 0:s.Root),R={anchorEl:i,container:c,disablePortal:u,keepMounted:d,modifiers:f,open:p,placement:h,popperOptions:y,popperRef:C,transition:v,...w};return g.jsx(W6,{as:a,direction:r?"rtl":"ltr",slots:{root:_},slotProps:m??l,...R,ref:n})});function U6(e){return Oe("MuiListSubheader",e)}Ee("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);const G6=e=>{const{classes:t,color:n,disableGutters:r,inset:o,disableSticky:i}=e,a={root:["root",n!=="default"&&`color${ae(n)}`,!r&&"gutters",o&&"inset",!i&&"sticky"]};return Ne(a,U6,t)},q6=J("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="default"&&t[`color${ae(n.color)}`],!n.disableGutters&&t.gutters,n.inset&&t.inset,!n.disableSticky&&t.sticky]}})($e(({theme:e})=>({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(e.vars||e).palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14),variants:[{props:{color:"primary"},style:{color:(e.vars||e).palette.primary.main}},{props:{color:"inherit"},style:{color:"inherit"}},{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.inset,style:{paddingLeft:72}},{props:({ownerState:t})=>!t.disableSticky,style:{position:"sticky",top:0,zIndex:1,backgroundColor:(e.vars||e).palette.background.paper}}]}))),xm=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiListSubheader"}),{className:o,color:i="default",component:a="li",disableGutters:s=!1,disableSticky:l=!1,inset:c=!1,...u}=r,d={...r,color:i,component:a,disableGutters:s,disableSticky:l,inset:c},f=G6(d);return g.jsx(q6,{as:a,className:ve(f.root,o),ref:n,ownerState:d,...u})});xm&&(xm.muiSkipListHighlight=!0);const K6=un(g.jsx("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");function Z6(e){return Oe("MuiChip",e)}const Ke=Ee("MuiChip",["root","sizeSmall","sizeMedium","colorDefault","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","outlined","filled","outlinedPrimary","outlinedSecondary","filledPrimary","filledSecondary","avatar","avatarSmall","avatarMedium","avatarColorPrimary","avatarColorSecondary","icon","iconSmall","iconMedium","iconColorPrimary","iconColorSecondary","label","labelSmall","labelMedium","deleteIcon","deleteIconSmall","deleteIconMedium","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","deleteIconFilledColorPrimary","deleteIconFilledColorSecondary","focusVisible"]),Q6=e=>{const{classes:t,disabled:n,size:r,color:o,iconColor:i,onDelete:a,clickable:s,variant:l}=e,c={root:["root",l,n&&"disabled",`size${ae(r)}`,`color${ae(o)}`,s&&"clickable",s&&`clickableColor${ae(o)}`,a&&"deletable",a&&`deletableColor${ae(o)}`,`${l}${ae(o)}`],label:["label",`label${ae(r)}`],avatar:["avatar",`avatar${ae(r)}`,`avatarColor${ae(o)}`],icon:["icon",`icon${ae(r)}`,`iconColor${ae(i)}`],deleteIcon:["deleteIcon",`deleteIcon${ae(r)}`,`deleteIconColor${ae(o)}`,`deleteIcon${ae(l)}Color${ae(o)}`]};return Ne(c,Z6,t)},Y6=J("div",{name:"MuiChip",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e,{color:r,iconColor:o,clickable:i,onDelete:a,size:s,variant:l}=n;return[{[`& .${Ke.avatar}`]:t.avatar},{[`& .${Ke.avatar}`]:t[`avatar${ae(s)}`]},{[`& .${Ke.avatar}`]:t[`avatarColor${ae(r)}`]},{[`& .${Ke.icon}`]:t.icon},{[`& .${Ke.icon}`]:t[`icon${ae(s)}`]},{[`& .${Ke.icon}`]:t[`iconColor${ae(o)}`]},{[`& .${Ke.deleteIcon}`]:t.deleteIcon},{[`& .${Ke.deleteIcon}`]:t[`deleteIcon${ae(s)}`]},{[`& .${Ke.deleteIcon}`]:t[`deleteIconColor${ae(r)}`]},{[`& .${Ke.deleteIcon}`]:t[`deleteIcon${ae(l)}Color${ae(r)}`]},t.root,t[`size${ae(s)}`],t[`color${ae(r)}`],i&&t.clickable,i&&r!=="default"&&t[`clickableColor${ae(r)})`],a&&t.deletable,a&&r!=="default"&&t[`deletableColor${ae(r)}`],t[l],t[`${l}${ae(r)}`]]}})($e(({theme:e})=>{const t=e.palette.mode==="light"?e.palette.grey[700]:e.palette.grey[300];return{maxWidth:"100%",fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:(e.vars||e).palette.text.primary,backgroundColor:(e.vars||e).palette.action.selected,borderRadius:32/2,whiteSpace:"nowrap",transition:e.transitions.create(["background-color","box-shadow"]),cursor:"unset",outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${Ke.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${Ke.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:e.vars?e.vars.palette.Chip.defaultAvatarColor:t,fontSize:e.typography.pxToRem(12)},[`& .${Ke.avatarColorPrimary}`]:{color:(e.vars||e).palette.primary.contrastText,backgroundColor:(e.vars||e).palette.primary.dark},[`& .${Ke.avatarColorSecondary}`]:{color:(e.vars||e).palette.secondary.contrastText,backgroundColor:(e.vars||e).palette.secondary.dark},[`& .${Ke.avatarSmall}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:e.typography.pxToRem(10)},[`& .${Ke.icon}`]:{marginLeft:5,marginRight:-6},[`& .${Ke.deleteIcon}`]:{WebkitTapHighlightColor:"transparent",color:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.26)`:Be(e.palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.4)`:Be(e.palette.text.primary,.4)}},variants:[{props:{size:"small"},style:{height:24,[`& .${Ke.icon}`]:{fontSize:18,marginLeft:4,marginRight:-4},[`& .${Ke.deleteIcon}`]:{fontSize:16,marginRight:4,marginLeft:-4}}},...Object.entries(e.palette).filter(Ft(["contrastText"])).map(([n])=>({props:{color:n},style:{backgroundColor:(e.vars||e).palette[n].main,color:(e.vars||e).palette[n].contrastText,[`& .${Ke.deleteIcon}`]:{color:e.vars?`rgba(${e.vars.palette[n].contrastTextChannel} / 0.7)`:Be(e.palette[n].contrastText,.7),"&:hover, &:active":{color:(e.vars||e).palette[n].contrastText}}}})),{props:n=>n.iconColor===n.color,style:{[`& .${Ke.icon}`]:{color:e.vars?e.vars.palette.Chip.defaultIconColor:t}}},{props:n=>n.iconColor===n.color&&n.color!=="default",style:{[`& .${Ke.icon}`]:{color:"inherit"}}},{props:{onDelete:!0},style:{[`&.${Ke.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}},...Object.entries(e.palette).filter(Ft(["dark"])).map(([n])=>({props:{color:n,onDelete:!0},style:{[`&.${Ke.focusVisible}`]:{background:(e.vars||e).palette[n].dark}}})),{props:{clickable:!0},style:{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity)},[`&.${Ke.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)},"&:active":{boxShadow:(e.vars||e).shadows[1]}}},...Object.entries(e.palette).filter(Ft(["dark"])).map(([n])=>({props:{color:n,clickable:!0},style:{[`&:hover, &.${Ke.focusVisible}`]:{backgroundColor:(e.vars||e).palette[n].dark}}})),{props:{variant:"outlined"},style:{backgroundColor:"transparent",border:e.vars?`1px solid ${e.vars.palette.Chip.defaultBorder}`:`1px solid ${e.palette.mode==="light"?e.palette.grey[400]:e.palette.grey[700]}`,[`&.${Ke.clickable}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${Ke.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`& .${Ke.avatar}`]:{marginLeft:4},[`& .${Ke.avatarSmall}`]:{marginLeft:2},[`& .${Ke.icon}`]:{marginLeft:4},[`& .${Ke.iconSmall}`]:{marginLeft:2},[`& .${Ke.deleteIcon}`]:{marginRight:5},[`& .${Ke.deleteIconSmall}`]:{marginRight:3}}},...Object.entries(e.palette).filter(Ft()).map(([n])=>({props:{variant:"outlined",color:n},style:{color:(e.vars||e).palette[n].main,border:`1px solid ${e.vars?`rgba(${e.vars.palette[n].mainChannel} / 0.7)`:Be(e.palette[n].main,.7)}`,[`&.${Ke.clickable}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[n].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[n].main,e.palette.action.hoverOpacity)},[`&.${Ke.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[n].mainChannel} / ${e.vars.palette.action.focusOpacity})`:Be(e.palette[n].main,e.palette.action.focusOpacity)},[`& .${Ke.deleteIcon}`]:{color:e.vars?`rgba(${e.vars.palette[n].mainChannel} / 0.7)`:Be(e.palette[n].main,.7),"&:hover, &:active":{color:(e.vars||e).palette[n].main}}}}))]}})),X6=J("span",{name:"MuiChip",slot:"Label",overridesResolver:(e,t)=>{const{ownerState:n}=e,{size:r}=n;return[t.label,t[`label${ae(r)}`]]}})({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap",variants:[{props:{variant:"outlined"},style:{paddingLeft:11,paddingRight:11}},{props:{size:"small"},style:{paddingLeft:8,paddingRight:8}},{props:{size:"small",variant:"outlined"},style:{paddingLeft:7,paddingRight:7}}]});function kb(e){return e.key==="Backspace"||e.key==="Delete"}const J6=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiChip"}),{avatar:o,className:i,clickable:a,color:s="default",component:l,deleteIcon:c,disabled:u=!1,icon:d,label:f,onClick:p,onDelete:h,onKeyDown:y,onKeyUp:C,size:v="medium",variant:S="filled",tabIndex:m,skipFocusWhenDisabled:w=!1,..._}=r,R=b.useRef(null),k=Rt(R,n),T=L=>{L.stopPropagation(),h&&h(L)},P=L=>{L.currentTarget===L.target&&kb(L)&&L.preventDefault(),y&&y(L)},x=L=>{L.currentTarget===L.target&&h&&kb(L)&&h(L),C&&C(L)},$=a!==!1&&p?!0:a,I=$||h?To:l||"div",O={...r,component:I,disabled:u,size:v,color:s,iconColor:b.isValidElement(d)&&d.props.color||s,onDelete:!!h,clickable:$,variant:S},D=Q6(O),M=I===To?{component:l||"div",focusVisibleClassName:D.focusVisible,...h&&{disableRipple:!0}}:{};let A=null;h&&(A=c&&b.isValidElement(c)?b.cloneElement(c,{className:ve(c.props.className,D.deleteIcon),onClick:T}):g.jsx(K6,{className:ve(D.deleteIcon),onClick:T}));let N=null;o&&b.isValidElement(o)&&(N=b.cloneElement(o,{className:ve(D.avatar,o.props.className)}));let E=null;return d&&b.isValidElement(d)&&(E=b.cloneElement(d,{className:ve(D.icon,d.props.className)})),g.jsxs(Y6,{as:I,className:ve(D.root,i),disabled:$&&u?!0:void 0,onClick:p,onKeyDown:P,onKeyUp:x,ref:k,tabIndex:w&&u?-1:m,ownerState:O,...M,..._,children:[N||E,g.jsx(X6,{className:ve(D.label),ownerState:O,children:f}),A]})});function fu(e){return parseInt(e,10)||0}const eI={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function tI(e){return e==null||Object.keys(e).length===0||e.outerHeightStyle===0&&!e.overflowing}const nI=b.forwardRef(function(t,n){const{onChange:r,maxRows:o,minRows:i=1,style:a,value:s,...l}=t,{current:c}=b.useRef(s!=null),u=b.useRef(null),d=Rt(n,u),f=b.useRef(null),p=b.useRef(null),h=b.useCallback(()=>{const v=u.current,m=Br(v).getComputedStyle(v);if(m.width==="0px")return{outerHeightStyle:0,overflowing:!1};const w=p.current;w.style.width=m.width,w.value=v.value||t.placeholder||"x",w.value.slice(-1)===` -`&&(w.value+=" ");const _=m.boxSizing,R=fu(m.paddingBottom)+fu(m.paddingTop),k=fu(m.borderBottomWidth)+fu(m.borderTopWidth),T=w.scrollHeight;w.value="x";const P=w.scrollHeight;let x=T;i&&(x=Math.max(Number(i)*P,x)),o&&(x=Math.min(Number(o)*P,x)),x=Math.max(x,P);const $=x+(_==="border-box"?R+k:0),I=Math.abs(x-T)<=1;return{outerHeightStyle:$,overflowing:I}},[o,i,t.placeholder]),y=b.useCallback(()=>{const v=h();if(tI(v))return;const S=v.outerHeightStyle,m=u.current;f.current!==S&&(f.current=S,m.style.height=`${S}px`),m.style.overflow=v.overflowing?"hidden":""},[h]);zr(()=>{const v=()=>{y()};let S;const m=cp(v),w=u.current,_=Br(w);_.addEventListener("resize",m);let R;return typeof ResizeObserver<"u"&&(R=new ResizeObserver(v),R.observe(w)),()=>{m.clear(),cancelAnimationFrame(S),_.removeEventListener("resize",m),R&&R.disconnect()}},[h,y]),zr(()=>{y()});const C=v=>{c||y(),r&&r(v)};return g.jsxs(b.Fragment,{children:[g.jsx("textarea",{value:s,onChange:C,ref:d,rows:i,style:a,...l}),g.jsx("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:p,tabIndex:-1,style:{...eI.shadow,...a,paddingTop:0,paddingBottom:0}})]})});function Vd(e){return typeof e=="string"}function da({props:e,states:t,muiFormControl:n}){return t.reduce((r,o)=>(r[o]=e[o],n&&typeof e[o]>"u"&&(r[o]=n[o]),r),{})}const P1=b.createContext(void 0);function Mo(){return b.useContext(P1)}function $b(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function Wd(e,t=!1){return e&&($b(e.value)&&e.value!==""||t&&$b(e.defaultValue)&&e.defaultValue!=="")}function rI(e){return e.startAdornment}function oI(e){return Oe("MuiInputBase",e)}const Gn=Ee("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]);var Eb;const fp=(e,t)=>{const{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,n.size==="small"&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${ae(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},pp=(e,t)=>{const{ownerState:n}=e;return[t.input,n.size==="small"&&t.inputSizeSmall,n.multiline&&t.inputMultiline,n.type==="search"&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},iI=e=>{const{classes:t,color:n,disabled:r,error:o,endAdornment:i,focused:a,formControl:s,fullWidth:l,hiddenLabel:c,multiline:u,readOnly:d,size:f,startAdornment:p,type:h}=e,y={root:["root",`color${ae(n)}`,r&&"disabled",o&&"error",l&&"fullWidth",a&&"focused",s&&"formControl",f&&f!=="medium"&&`size${ae(f)}`,u&&"multiline",p&&"adornedStart",i&&"adornedEnd",c&&"hiddenLabel",d&&"readOnly"],input:["input",r&&"disabled",h==="search"&&"inputTypeSearch",u&&"inputMultiline",f==="small"&&"inputSizeSmall",c&&"inputHiddenLabel",p&&"inputAdornedStart",i&&"inputAdornedEnd",d&&"readOnly"]};return Ne(y,oI,t)},gp=J("div",{name:"MuiInputBase",slot:"Root",overridesResolver:fp})($e(({theme:e})=>({...e.typography.body1,color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${Gn.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:t})=>t.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:t,size:n})=>t.multiline&&n==="small",style:{paddingTop:1}},{props:({ownerState:t})=>t.fullWidth,style:{width:"100%"}}]}))),hp=J("input",{name:"MuiInputBase",slot:"Input",overridesResolver:pp})($e(({theme:e})=>{const t=e.palette.mode==="light",n={color:"currentColor",...e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5},transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},r={opacity:"0 !important"},o=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&::-ms-input-placeholder":n,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${Gn.formControl} &`]:{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":o,"&:focus::-moz-placeholder":o,"&:focus::-ms-input-placeholder":o},[`&.${Gn.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},variants:[{props:({ownerState:i})=>!i.disableInjectingGlobalStyles,style:{animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:i})=>i.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),Mb=RM({"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}),mp=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiInputBase"}),{"aria-describedby":o,autoComplete:i,autoFocus:a,className:s,color:l,components:c={},componentsProps:u={},defaultValue:d,disabled:f,disableInjectingGlobalStyles:p,endAdornment:h,error:y,fullWidth:C=!1,id:v,inputComponent:S="input",inputProps:m={},inputRef:w,margin:_,maxRows:R,minRows:k,multiline:T=!1,name:P,onBlur:x,onChange:$,onClick:I,onFocus:O,onKeyDown:D,onKeyUp:M,placeholder:A,readOnly:N,renderSuffix:E,rows:L,size:B,slotProps:H={},slots:z={},startAdornment:j,type:F="text",value:W,...V}=r,ee=m.value!=null?m.value:W,{current:re}=b.useRef(ee!=null),U=b.useRef(),K=b.useCallback(ne=>{},[]),se=Rt(U,w,m.ref,K),[q,ce]=b.useState(!1),ue=Mo(),ie=da({props:r,muiFormControl:ue,states:["color","disabled","error","hiddenLabel","size","required","filled"]});ie.focused=ue?ue.focused:q,b.useEffect(()=>{!ue&&f&&q&&(ce(!1),x&&x())},[ue,f,q,x]);const te=ue&&ue.onFilled,de=ue&&ue.onEmpty,Q=b.useCallback(ne=>{Wd(ne)?te&&te():de&&de()},[te,de]);zr(()=>{re&&Q({value:ee})},[ee,Q,re]);const be=ne=>{O&&O(ne),m.onFocus&&m.onFocus(ne),ue&&ue.onFocus?ue.onFocus(ne):ce(!0)},Te=ne=>{x&&x(ne),m.onBlur&&m.onBlur(ne),ue&&ue.onBlur?ue.onBlur(ne):ce(!1)},we=(ne,...xe)=>{if(!re){const Le=ne.target||U.current;if(Le==null)throw new Error(Xi(1));Q({value:Le.value})}m.onChange&&m.onChange(ne,...xe),$&&$(ne,...xe)};b.useEffect(()=>{Q(U.current)},[]);const ge=ne=>{U.current&&ne.currentTarget===ne.target&&U.current.focus(),I&&I(ne)};let le=S,Se=m;T&&le==="input"&&(L?Se={type:void 0,minRows:L,maxRows:L,...Se}:Se={type:void 0,maxRows:R,minRows:k,...Se},le=nI);const ye=ne=>{Q(ne.animationName==="mui-auto-fill-cancel"?U.current:{value:"x"})};b.useEffect(()=>{ue&&ue.setAdornedStart(!!j)},[ue,j]);const Ge={...r,color:ie.color||"primary",disabled:ie.disabled,endAdornment:h,error:ie.error,focused:ie.focused,formControl:ue,fullWidth:C,hiddenLabel:ie.hiddenLabel,multiline:T,size:ie.size,startAdornment:j,type:F},Pe=iI(Ge),Re=z.root||c.Root||gp,ke=H.root||u.root||{},pe=z.input||c.Input||hp;return Se={...Se,...H.input??u.input},g.jsxs(b.Fragment,{children:[!p&&typeof Mb=="function"&&(Eb||(Eb=g.jsx(Mb,{}))),g.jsxs(Re,{...ke,ref:n,onClick:ge,...V,...!Vd(Re)&&{ownerState:{...Ge,...ke.ownerState}},className:ve(Pe.root,ke.className,s,N&&"MuiInputBase-readOnly"),children:[j,g.jsx(P1.Provider,{value:null,children:g.jsx(pe,{"aria-invalid":ie.error,"aria-describedby":o,autoComplete:i,autoFocus:a,defaultValue:d,disabled:ie.disabled,id:v,onAnimationStart:ye,name:P,placeholder:A,readOnly:N,required:ie.required,rows:L,value:ee,onKeyDown:D,onKeyUp:M,type:F,...Se,...!Vd(pe)&&{as:le,ownerState:{...Ge,...Se.ownerState}},ref:se,className:ve(Pe.input,Se.className,N&&"MuiInputBase-readOnly"),onBlur:Te,onChange:we,onFocus:be})}),h,E?E({...ie,startAdornment:j}):null]})]})});function aI(e){return Oe("MuiInput",e)}const Go={...Gn,...Ee("MuiInput",["root","underline","input"])};function sI(e){return Oe("MuiOutlinedInput",e)}const lr={...Gn,...Ee("MuiOutlinedInput",["root","notchedOutline","input"])};function lI(e){return Oe("MuiFilledInput",e)}const qn={...Gn,...Ee("MuiFilledInput",["root","underline","input","adornedStart","adornedEnd","sizeSmall","multiline","hiddenLabel"])},P_=un(g.jsx("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown");function cI(e){return Oe("MuiAutocomplete",e)}const Ue=Ee("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var Ib,Ob;const uI=e=>{const{classes:t,disablePortal:n,expanded:r,focused:o,fullWidth:i,hasClearIcon:a,hasPopupIcon:s,inputFocused:l,popupOpen:c,size:u}=e,d={root:["root",r&&"expanded",o&&"focused",i&&"fullWidth",a&&"hasClearIcon",s&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${ae(u)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",c&&"popupIndicatorOpen"],popper:["popper",n&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return Ne(d,cI,t)},dI=J("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e,{fullWidth:r,hasClearIcon:o,hasPopupIcon:i,inputFocused:a,size:s}=n;return[{[`& .${Ue.tag}`]:t.tag},{[`& .${Ue.tag}`]:t[`tagSize${ae(s)}`]},{[`& .${Ue.inputRoot}`]:t.inputRoot},{[`& .${Ue.input}`]:t.input},{[`& .${Ue.input}`]:a&&t.inputFocused},t.root,r&&t.fullWidth,i&&t.hasPopupIcon,o&&t.hasClearIcon]}})({[`&.${Ue.focused} .${Ue.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${Ue.clearIndicator}`]:{visibility:"visible"}},[`& .${Ue.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${Ue.inputRoot}`]:{[`.${Ue.hasPopupIcon}&, .${Ue.hasClearIcon}&`]:{paddingRight:30},[`.${Ue.hasPopupIcon}.${Ue.hasClearIcon}&`]:{paddingRight:56},[`& .${Ue.input}`]:{width:0,minWidth:30}},[`& .${Go.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${Go.root}.${Gn.sizeSmall}`]:{[`& .${Go.input}`]:{padding:"2px 4px 3px 0"}},[`& .${lr.root}`]:{padding:9,[`.${Ue.hasPopupIcon}&, .${Ue.hasClearIcon}&`]:{paddingRight:39},[`.${Ue.hasPopupIcon}.${Ue.hasClearIcon}&`]:{paddingRight:65},[`& .${Ue.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${Ue.endAdornment}`]:{right:9}},[`& .${lr.root}.${Gn.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${Ue.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${qn.root}`]:{paddingTop:19,paddingLeft:8,[`.${Ue.hasPopupIcon}&, .${Ue.hasClearIcon}&`]:{paddingRight:39},[`.${Ue.hasPopupIcon}.${Ue.hasClearIcon}&`]:{paddingRight:65},[`& .${qn.input}`]:{padding:"7px 4px"},[`& .${Ue.endAdornment}`]:{right:9}},[`& .${qn.root}.${Gn.sizeSmall}`]:{paddingBottom:1,[`& .${qn.input}`]:{padding:"2.5px 4px"}},[`& .${Gn.hiddenLabel}`]:{paddingTop:8},[`& .${qn.root}.${Gn.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${Ue.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${qn.root}.${Gn.hiddenLabel}.${Gn.sizeSmall}`]:{[`& .${Ue.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${Ue.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${Ue.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${Ue.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${Ue.inputRoot}`]:{flexWrap:"wrap"}}}]}),fI=J("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(e,t)=>t.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),pI=J(hr,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(e,t)=>t.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),gI=J(hr,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:({ownerState:e},t)=>({...t.popupIndicator,...e.popupOpen&&t.popupIndicatorOpen})})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),hI=J(kc,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Ue.option}`]:t.option},t.popper,n.disablePortal&&t.popperDisablePortal]}})($e(({theme:e})=>({zIndex:(e.vars||e).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]}))),mI=J(Is,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(e,t)=>t.paper})($e(({theme:e})=>({...e.typography.body1,overflow:"auto"}))),vI=J("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(e,t)=>t.loading})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"}))),yI=J("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(e,t)=>t.noOptions})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"}))),bI=J("div",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(e,t)=>t.listbox})($e(({theme:e})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${Ue.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[e.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${Ue.focused}`]:{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${Ue.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${Ue.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${Ue.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}}}))),xI=J(xm,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(e,t)=>t.groupLabel})($e(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,top:-8}))),SI=J("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(e,t)=>t.groupUl})({padding:0,[`& .${Ue.option}`]:{paddingLeft:24}}),wI=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiAutocomplete"}),{autoComplete:o=!1,autoHighlight:i=!1,autoSelect:a=!1,blurOnSelect:s=!1,ChipProps:l,className:c,clearIcon:u=Ib||(Ib=g.jsx(h_,{fontSize:"small"})),clearOnBlur:d=!r.freeSolo,clearOnEscape:f=!1,clearText:p="Clear",closeText:h="Close",componentsProps:y,defaultValue:C=r.multiple?[]:null,disableClearable:v=!1,disableCloseOnSelect:S=!1,disabled:m=!1,disabledItemsFocusable:w=!1,disableListWrap:_=!1,disablePortal:R=!1,filterOptions:k,filterSelectedOptions:T=!1,forcePopupIcon:P="auto",freeSolo:x=!1,fullWidth:$=!1,getLimitTagsText:I=Xe=>`+${Xe}`,getOptionDisabled:O,getOptionKey:D,getOptionLabel:M,isOptionEqualToValue:A,groupBy:N,handleHomeEndKeys:E=!r.freeSolo,id:L,includeInputInList:B=!1,inputValue:H,limitTags:z=-1,ListboxComponent:j,ListboxProps:F,loading:W=!1,loadingText:V="Loading…",multiple:ee=!1,noOptionsText:re="No options",onChange:U,onClose:K,onHighlightChange:se,onInputChange:q,onOpen:ce,open:ue,openOnFocus:ie=!1,openText:te="Open",options:de,PaperComponent:Q,PopperComponent:be,popupIcon:Te=Ob||(Ob=g.jsx(P_,{})),readOnly:we=!1,renderGroup:ge,renderInput:le,renderOption:Se,renderTags:ye,selectOnFocus:Ge=!r.freeSolo,size:Pe="medium",slots:Re={},slotProps:ke={},value:pe,...ne}=r,{getRootProps:xe,getInputProps:Le,getInputLabelProps:fe,getPopupIndicatorProps:oe,getClearProps:me,getTagProps:je,getListboxProps:Ve,getOptionProps:Ye,value:Tt,dirty:Zt,expanded:Mn,id:ir,popupOpen:Vn,focused:Oo,focusedTag:_i,anchorEl:Fe,setAnchorEl:_n,inputValue:Dc,groupedOptions:pa}=$8({...r,componentName:"Autocomplete"}),Ds=!v&&!m&&Zt&&!we,js=(!x||P===!0)&&P!==!1,{onMouseDown:kp}=Le(),{ref:$p,...jc}=Ve(),Fs=M||(Xe=>Xe.label??Xe),dn={...r,disablePortal:R,expanded:Mn,focused:Oo,fullWidth:$,getOptionLabel:Fs,hasClearIcon:Ds,hasPopupIcon:js,inputFocused:_i===-1,popupOpen:Vn,size:Pe},Nt=uI(dn),so={slots:{paper:Q,popper:be,...Re},slotProps:{chip:l,listbox:F,...y,...ke}},[X,Y]=an("listbox",{elementType:bI,externalForwardedProps:so,ownerState:dn,className:Nt.listbox,additionalProps:jc,ref:$p}),[Ce,We]=an("paper",{elementType:Is,externalForwardedProps:so,ownerState:dn,className:Nt.paper}),[qe,Pt]=an("popper",{elementType:kc,externalForwardedProps:so,ownerState:dn,className:Nt.popper,additionalProps:{disablePortal:R,style:{width:Fe?Fe.clientWidth:null},role:"presentation",anchorEl:Fe,open:Vn}});let at;if(ee&&Tt.length>0){const Xe=Wr=>({className:Nt.tag,disabled:m,...je(Wr)});ye?at=ye(Tt,Xe,dn):at=Tt.map((Wr,Lo)=>{const{key:Bs,...j3}=Xe({index:Lo});return g.jsx(J6,{label:Fs(Wr),size:Pe,...j3,...so.slotProps.chip},Bs)})}if(z>-1&&Array.isArray(at)){const Xe=at.length-z;!Oo&&Xe>0&&(at=at.splice(0,z),at.push(g.jsx("span",{className:Nt.tag,children:I(Xe)},at.length)))}const Fc=ge||(Xe=>g.jsxs("li",{children:[g.jsx(xI,{className:Nt.groupLabel,ownerState:dn,component:"div",children:Xe.group}),g.jsx(SI,{className:Nt.groupUl,ownerState:dn,children:Xe.children})]},Xe.key)),D3=Se||((Xe,Wr)=>{const{key:Lo,...Bs}=Xe;return g.jsx("li",{...Bs,children:Fs(Wr)},Lo)}),uv=(Xe,Wr)=>{const Lo=Ye({option:Xe,index:Wr});return D3({...Lo,className:Nt.option},Xe,{selected:Lo["aria-selected"],index:Wr,inputValue:Dc},dn)},Bc=so.slotProps.clearIndicator,zc=so.slotProps.popupIndicator,Ep=Xe=>g.jsx(hI,{as:qe,...Pt,children:g.jsx(mI,{as:Ce,...We,children:Xe})});let Hc=null;return pa.length>0?Hc=Ep(g.jsx(X,{as:j,...Y,children:pa.map((Xe,Wr)=>N?Fc({key:Xe.key,group:Xe.group,children:Xe.options.map((Lo,Bs)=>uv(Lo,Xe.index+Bs))}):uv(Xe,Wr))})):W&&pa.length===0?Hc=Ep(g.jsx(vI,{className:Nt.loading,ownerState:dn,children:V})):pa.length===0&&!x&&!W&&(Hc=Ep(g.jsx(yI,{className:Nt.noOptions,ownerState:dn,role:"presentation",onMouseDown:Xe=>{Xe.preventDefault()},children:re}))),g.jsxs(b.Fragment,{children:[g.jsx(dI,{ref:n,className:ve(Nt.root,c),ownerState:dn,...xe(ne),children:le({id:ir,disabled:m,fullWidth:!0,size:Pe==="small"?"small":void 0,InputLabelProps:fe(),InputProps:{ref:_n,className:Nt.inputRoot,startAdornment:at,onMouseDown:Xe=>{Xe.target===Xe.currentTarget&&kp(Xe)},...(Ds||js)&&{endAdornment:g.jsxs(fI,{className:Nt.endAdornment,ownerState:dn,children:[Ds?g.jsx(pI,{...me(),"aria-label":p,title:p,ownerState:dn,...Bc,className:ve(Nt.clearIndicator,Bc==null?void 0:Bc.className),children:u}):null,js?g.jsx(gI,{...oe(),disabled:m,"aria-label":Vn?h:te,title:Vn?h:te,ownerState:dn,...zc,className:ve(Nt.popupIndicator,zc==null?void 0:zc.className),children:Te}):null]})}},inputProps:{className:Nt.input,disabled:m,readOnly:we,...Le()}})}),Fe?Hc:null]})}),CI={entering:{opacity:1},entered:{opacity:1}},_I=b.forwardRef(function(t,n){const r=zt(),o={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:i,appear:a=!0,children:s,easing:l,in:c,onEnter:u,onEntered:d,onEntering:f,onExit:p,onExited:h,onExiting:y,style:C,timeout:v=o,TransitionComponent:S=Hr,...m}=t,w=b.useRef(null),_=Rt(w,ua(s),n),R=D=>M=>{if(D){const A=w.current;M===void 0?D(A):D(A,M)}},k=R(f),T=R((D,M)=>{g_(D);const A=fs({style:C,timeout:v,easing:l},{mode:"enter"});D.style.webkitTransition=r.transitions.create("opacity",A),D.style.transition=r.transitions.create("opacity",A),u&&u(D,M)}),P=R(d),x=R(y),$=R(D=>{const M=fs({style:C,timeout:v,easing:l},{mode:"exit"});D.style.webkitTransition=r.transitions.create("opacity",M),D.style.transition=r.transitions.create("opacity",M),p&&p(D)}),I=R(h),O=D=>{i&&i(w.current,D)};return g.jsx(S,{appear:a,in:c,nodeRef:w,onEnter:T,onEntered:P,onEntering:k,onExit:$,onExited:I,onExiting:x,addEndListener:O,timeout:v,...m,children:(D,M)=>b.cloneElement(s,{style:{opacity:0,visibility:D==="exited"&&!c?"hidden":void 0,...CI[D],...C,...s.props.style},ref:_,...M})})});function RI(e){return Oe("MuiBackdrop",e)}Ee("MuiBackdrop",["root","invisible"]);const TI=e=>{const{ownerState:t,...n}=e;return n},PI=e=>{const{classes:t,invisible:n}=e;return Ne({root:["root",n&&"invisible"]},RI,t)},kI=J("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.invisible&&t.invisible]}})({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent",variants:[{props:{invisible:!0},style:{backgroundColor:"transparent"}}]}),$I=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiBackdrop"}),{children:o,className:i,component:a="div",invisible:s=!1,open:l,components:c={},componentsProps:u={},slotProps:d={},slots:f={},TransitionComponent:p,transitionDuration:h,...y}=r,C={...r,component:a,invisible:s},v=PI(C),S={transition:p,root:c.Root,...f},m={...u,...d},w={slots:S,slotProps:m},[_,R]=an("root",{elementType:kI,externalForwardedProps:w,className:ve(v.root,i),ownerState:C}),[k,T]=an("transition",{elementType:_I,externalForwardedProps:w,ownerState:C}),P=TI(T);return g.jsx(k,{in:l,timeout:h,...y,...P,children:g.jsx(_,{"aria-hidden":!0,...R,classes:v,ref:n,children:o})})}),EI=Ee("MuiBox",["root"]),MI=sp(),Or=U5({themeId:Nr,defaultTheme:MI,defaultClassName:EI.root,generateClassName:e_.generate});function II(e){return Oe("MuiButton",e)}const Sa=Ee("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),OI=b.createContext({}),LI=b.createContext(void 0),AI=e=>{const{color:t,disableElevation:n,fullWidth:r,size:o,variant:i,classes:a}=e,s={root:["root",i,`${i}${ae(t)}`,`size${ae(o)}`,`${i}Size${ae(o)}`,`color${ae(t)}`,n&&"disableElevation",r&&"fullWidth"],label:["label"],startIcon:["icon","startIcon",`iconSize${ae(o)}`],endIcon:["icon","endIcon",`iconSize${ae(o)}`]},l=Ne(s,II,a);return{...a,...l}},k_=[{props:{size:"small"},style:{"& > *:nth-of-type(1)":{fontSize:18}}},{props:{size:"medium"},style:{"& > *:nth-of-type(1)":{fontSize:20}}},{props:{size:"large"},style:{"& > *:nth-of-type(1)":{fontSize:22}}}],NI=J(To,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`${n.variant}${ae(n.color)}`],t[`size${ae(n.size)}`],t[`${n.variant}Size${ae(n.size)}`],n.color==="inherit"&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth]}})($e(({theme:e})=>{const t=e.palette.mode==="light"?e.palette.grey[300]:e.palette.grey[800],n=e.palette.mode==="light"?e.palette.grey.A100:e.palette.grey[700];return{...e.typography.button,minWidth:64,padding:"6px 16px",border:0,borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create(["background-color","box-shadow","border-color","color"],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:"none"},[`&.${Sa.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{variant:"contained"},style:{color:"var(--variant-containedColor)",backgroundColor:"var(--variant-containedBg)",boxShadow:(e.vars||e).shadows[2],"&:hover":{boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2]}},"&:active":{boxShadow:(e.vars||e).shadows[8]},[`&.${Sa.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},[`&.${Sa.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}},{props:{variant:"outlined"},style:{padding:"5px 15px",border:"1px solid currentColor",borderColor:"var(--variant-outlinedBorder, currentColor)",backgroundColor:"var(--variant-outlinedBg)",color:"var(--variant-outlinedColor)",[`&.${Sa.disabled}`]:{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`}}},{props:{variant:"text"},style:{padding:"6px 8px",color:"var(--variant-textColor)",backgroundColor:"var(--variant-textBg)"}},...Object.entries(e.palette).filter(Ft()).map(([r])=>({props:{color:r},style:{"--variant-textColor":(e.vars||e).palette[r].main,"--variant-outlinedColor":(e.vars||e).palette[r].main,"--variant-outlinedBorder":e.vars?`rgba(${e.vars.palette[r].mainChannel} / 0.5)`:Be(e.palette[r].main,.5),"--variant-containedColor":(e.vars||e).palette[r].contrastText,"--variant-containedBg":(e.vars||e).palette[r].main,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":(e.vars||e).palette[r].dark,"--variant-textBg":e.vars?`rgba(${e.vars.palette[r].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[r].main,e.palette.action.hoverOpacity),"--variant-outlinedBorder":(e.vars||e).palette[r].main,"--variant-outlinedBg":e.vars?`rgba(${e.vars.palette[r].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[r].main,e.palette.action.hoverOpacity)}}}})),{props:{color:"inherit"},style:{color:"inherit",borderColor:"currentColor","--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedBg:t,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedHoverBg:n,"--variant-textBg":e.vars?`rgba(${e.vars.palette.text.primaryChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.text.primary,e.palette.action.hoverOpacity),"--variant-outlinedBg":e.vars?`rgba(${e.vars.palette.text.primaryChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.text.primary,e.palette.action.hoverOpacity)}}}},{props:{size:"small",variant:"text"},style:{padding:"4px 5px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"text"},style:{padding:"8px 11px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"outlined"},style:{padding:"3px 9px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"outlined"},style:{padding:"7px 21px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"contained"},style:{padding:"4px 10px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"contained"},style:{padding:"8px 22px",fontSize:e.typography.pxToRem(15)}},{props:{disableElevation:!0},style:{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${Sa.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${Sa.disabled}`]:{boxShadow:"none"}}},{props:{fullWidth:!0},style:{width:"100%"}}]}})),DI=J("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.startIcon,t[`iconSize${ae(n.size)}`]]}})({display:"inherit",marginRight:8,marginLeft:-4,variants:[{props:{size:"small"},style:{marginLeft:-2}},...k_]}),jI=J("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.endIcon,t[`iconSize${ae(n.size)}`]]}})({display:"inherit",marginRight:-4,marginLeft:8,variants:[{props:{size:"small"},style:{marginRight:-2}},...k_]}),FI=b.forwardRef(function(t,n){const r=b.useContext(OI),o=b.useContext(LI),i=c_(r,t),a=De({props:i,name:"MuiButton"}),{children:s,color:l="primary",component:c="button",className:u,disabled:d=!1,disableElevation:f=!1,disableFocusRipple:p=!1,endIcon:h,focusVisibleClassName:y,fullWidth:C=!1,size:v="medium",startIcon:S,type:m,variant:w="text",..._}=a,R={...a,color:l,component:c,disabled:d,disableElevation:f,disableFocusRipple:p,fullWidth:C,size:v,type:m,variant:w},k=AI(R),T=S&&g.jsx(DI,{className:k.startIcon,ownerState:R,children:S}),P=h&&g.jsx(jI,{className:k.endIcon,ownerState:R,children:h}),x=o||"";return g.jsxs(NI,{ownerState:R,className:ve(r.className,k.root,u,x),component:c,disabled:d,focusRipple:!p,focusVisibleClassName:ve(k.focusVisible,y),ref:n,type:m,..._,classes:k,children:[T,s,P]})});function BI(e){return Oe("PrivateSwitchBase",e)}Ee("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const zI=e=>{const{classes:t,checked:n,disabled:r,edge:o}=e,i={root:["root",n&&"checked",r&&"disabled",o&&`edge${ae(o)}`],input:["input"]};return Ne(i,BI,t)},HI=J(To)({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:e,ownerState:t})=>e==="start"&&t.size!=="small",style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:e,ownerState:t})=>e==="end"&&t.size!=="small",style:{marginRight:-12}}]}),VI=J("input",{shouldForwardProp:wn})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),k1=b.forwardRef(function(t,n){const{autoFocus:r,checked:o,checkedIcon:i,className:a,defaultChecked:s,disabled:l,disableFocusRipple:c=!1,edge:u=!1,icon:d,id:f,inputProps:p,inputRef:h,name:y,onBlur:C,onChange:v,onFocus:S,readOnly:m,required:w=!1,tabIndex:_,type:R,value:k,...T}=t,[P,x]=Hi({controlled:o,default:!!s,name:"SwitchBase",state:"checked"}),$=Mo(),I=L=>{S&&S(L),$&&$.onFocus&&$.onFocus(L)},O=L=>{C&&C(L),$&&$.onBlur&&$.onBlur(L)},D=L=>{if(L.nativeEvent.defaultPrevented)return;const B=L.target.checked;x(B),v&&v(L,B)};let M=l;$&&typeof M>"u"&&(M=$.disabled);const A=R==="checkbox"||R==="radio",N={...t,checked:P,disabled:M,disableFocusRipple:c,edge:u},E=zI(N);return g.jsxs(HI,{component:"span",className:ve(E.root,a),centerRipple:!0,focusRipple:!c,disabled:M,tabIndex:null,role:void 0,onFocus:I,onBlur:O,ownerState:N,ref:n,...T,children:[g.jsx(VI,{autoFocus:r,checked:o,defaultChecked:s,className:E.input,disabled:M,id:A?f:void 0,name:y,onChange:D,readOnly:m,ref:h,required:w,ownerState:N,tabIndex:_,type:R,...R==="checkbox"&&k===void 0?{}:{value:k},...p}),P?i:d]})}),WI=un(g.jsx("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),UI=un(g.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),GI=un(g.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function qI(e){return Oe("MuiCheckbox",e)}const fg=Ee("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),KI=e=>{const{classes:t,indeterminate:n,color:r,size:o}=e,i={root:["root",n&&"indeterminate",`color${ae(r)}`,`size${ae(o)}`]},a=Ne(i,qI,t);return{...t,...a}},ZI=J(k1,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiCheckbox",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${ae(n.size)}`],n.color!=="default"&&t[`color${ae(n.color)}`]]}})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[t].main,e.palette.action.hoverOpacity)}}})),...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t},style:{[`&.${fg.checked}, &.${fg.indeterminate}`]:{color:(e.vars||e).palette[t].main},[`&.${fg.disabled}`]:{color:(e.vars||e).palette.action.disabled}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}))),QI=g.jsx(UI,{}),YI=g.jsx(WI,{}),XI=g.jsx(GI,{}),JI=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiCheckbox"}),{checkedIcon:o=QI,color:i="primary",icon:a=YI,indeterminate:s=!1,indeterminateIcon:l=XI,inputProps:c,size:u="medium",disableRipple:d=!1,className:f,...p}=r,h=s?l:a,y=s?l:o,C={...r,disableRipple:d,color:i,indeterminate:s,size:u},v=KI(C);return g.jsx(ZI,{type:"checkbox",inputProps:{"data-indeterminate":s,...c},icon:b.cloneElement(h,{fontSize:h.props.fontSize??u}),checkedIcon:b.cloneElement(y,{fontSize:y.props.fontSize??u}),ownerState:C,ref:n,className:ve(v.root,f),disableRipple:d,...p,classes:v})});function Lb(e){return e.substring(2).toLowerCase()}function eO(e,t){return t.documentElement.clientWidth(setTimeout(()=>{l.current=!0},0),()=>{l.current=!1}),[]);const u=Rt(ua(t),s),d=bn(h=>{const y=c.current;c.current=!1;const C=ln(s.current);if(!l.current||!s.current||"clientX"in h&&eO(h,C))return;if(a.current){a.current=!1;return}let v;h.composedPath?v=h.composedPath().includes(s.current):v=!C.documentElement.contains(h.target)||s.current.contains(h.target),!v&&(n||!y)&&o(h)}),f=h=>y=>{c.current=!0;const C=t.props[h];C&&C(y)},p={ref:u};return i!==!1&&(p[i]=f(i)),b.useEffect(()=>{if(i!==!1){const h=Lb(i),y=ln(s.current),C=()=>{a.current=!0};return y.addEventListener(h,d),y.addEventListener("touchmove",C),()=>{y.removeEventListener(h,d),y.removeEventListener("touchmove",C)}}},[d,i]),r!==!1&&(p[r]=f(r)),b.useEffect(()=>{if(r!==!1){const h=Lb(r),y=ln(s.current);return y.addEventListener(h,d),()=>{y.removeEventListener(h,d)}}},[d,r]),g.jsx(b.Fragment,{children:b.cloneElement(t,p)})}function nO(e){const t=ln(e);return t.body===e?Br(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function Ml(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function Ab(e){return parseInt(Br(e).getComputedStyle(e).paddingRight,10)||0}function rO(e){const n=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].includes(e.tagName),r=e.tagName==="INPUT"&&e.getAttribute("type")==="hidden";return n||r}function Nb(e,t,n,r,o){const i=[t,n,...r];[].forEach.call(e.children,a=>{const s=!i.includes(a),l=!rO(a);s&&l&&Ml(a,o)})}function pg(e,t){let n=-1;return e.some((r,o)=>t(r)?(n=o,!0):!1),n}function oO(e,t){const n=[],r=e.container;if(!t.disableScrollLock){if(nO(r)){const a=l_(Br(r));n.push({value:r.style.paddingRight,property:"padding-right",el:r}),r.style.paddingRight=`${Ab(r)+a}px`;const s=ln(r).querySelectorAll(".mui-fixed");[].forEach.call(s,l=>{n.push({value:l.style.paddingRight,property:"padding-right",el:l}),l.style.paddingRight=`${Ab(l)+a}px`})}let i;if(r.parentNode instanceof DocumentFragment)i=ln(r).body;else{const a=r.parentElement,s=Br(r);i=(a==null?void 0:a.nodeName)==="HTML"&&s.getComputedStyle(a).overflowY==="scroll"?a:r}n.push({value:i.style.overflow,property:"overflow",el:i},{value:i.style.overflowX,property:"overflow-x",el:i},{value:i.style.overflowY,property:"overflow-y",el:i}),i.style.overflow="hidden"}return()=>{n.forEach(({value:i,el:a,property:s})=>{i?a.style.setProperty(s,i):a.style.removeProperty(s)})}}function iO(e){const t=[];return[].forEach.call(e.children,n=>{n.getAttribute("aria-hidden")==="true"&&t.push(n)}),t}class aO{constructor(){this.modals=[],this.containers=[]}add(t,n){let r=this.modals.indexOf(t);if(r!==-1)return r;r=this.modals.length,this.modals.push(t),t.modalRef&&Ml(t.modalRef,!1);const o=iO(n);Nb(n,t.mount,t.modalRef,o,!0);const i=pg(this.containers,a=>a.container===n);return i!==-1?(this.containers[i].modals.push(t),r):(this.containers.push({modals:[t],container:n,restore:null,hiddenSiblings:o}),r)}mount(t,n){const r=pg(this.containers,i=>i.modals.includes(t)),o=this.containers[r];o.restore||(o.restore=oO(o,n))}remove(t,n=!0){const r=this.modals.indexOf(t);if(r===-1)return r;const o=pg(this.containers,a=>a.modals.includes(t)),i=this.containers[o];if(i.modals.splice(i.modals.indexOf(t),1),this.modals.splice(r,1),i.modals.length===0)i.restore&&i.restore(),t.modalRef&&Ml(t.modalRef,n),Nb(i.container,t.mount,t.modalRef,i.hiddenSiblings,!1),this.containers.splice(o,1);else{const a=i.modals[i.modals.length-1];a.modalRef&&Ml(a.modalRef,!1)}return r}isTopModal(t){return this.modals.length>0&&this.modals[this.modals.length-1]===t}}const sO=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function lO(e){const t=parseInt(e.getAttribute("tabindex")||"",10);return Number.isNaN(t)?e.contentEditable==="true"||(e.nodeName==="AUDIO"||e.nodeName==="VIDEO"||e.nodeName==="DETAILS")&&e.getAttribute("tabindex")===null?0:e.tabIndex:t}function cO(e){if(e.tagName!=="INPUT"||e.type!=="radio"||!e.name)return!1;const t=r=>e.ownerDocument.querySelector(`input[type="radio"]${r}`);let n=t(`[name="${e.name}"]:checked`);return n||(n=t(`[name="${e.name}"]`)),n!==e}function uO(e){return!(e.disabled||e.tagName==="INPUT"&&e.type==="hidden"||cO(e))}function dO(e){const t=[],n=[];return Array.from(e.querySelectorAll(sO)).forEach((r,o)=>{const i=lO(r);i===-1||!uO(r)||(i===0?t.push(r):n.push({documentOrder:o,tabIndex:i,node:r}))}),n.sort((r,o)=>r.tabIndex===o.tabIndex?r.documentOrder-o.documentOrder:r.tabIndex-o.tabIndex).map(r=>r.node).concat(t)}function fO(){return!0}function pO(e){const{children:t,disableAutoFocus:n=!1,disableEnforceFocus:r=!1,disableRestoreFocus:o=!1,getTabbable:i=dO,isEnabled:a=fO,open:s}=e,l=b.useRef(!1),c=b.useRef(null),u=b.useRef(null),d=b.useRef(null),f=b.useRef(null),p=b.useRef(!1),h=b.useRef(null),y=Rt(ua(t),h),C=b.useRef(null);b.useEffect(()=>{!s||!h.current||(p.current=!n)},[n,s]),b.useEffect(()=>{if(!s||!h.current)return;const m=ln(h.current);return h.current.contains(m.activeElement)||(h.current.hasAttribute("tabIndex")||h.current.setAttribute("tabIndex","-1"),p.current&&h.current.focus()),()=>{o||(d.current&&d.current.focus&&(l.current=!0,d.current.focus()),d.current=null)}},[s]),b.useEffect(()=>{if(!s||!h.current)return;const m=ln(h.current),w=k=>{C.current=k,!(r||!a()||k.key!=="Tab")&&m.activeElement===h.current&&k.shiftKey&&(l.current=!0,u.current&&u.current.focus())},_=()=>{var P,x;const k=h.current;if(k===null)return;if(!m.hasFocus()||!a()||l.current){l.current=!1;return}if(k.contains(m.activeElement)||r&&m.activeElement!==c.current&&m.activeElement!==u.current)return;if(m.activeElement!==f.current)f.current=null;else if(f.current!==null)return;if(!p.current)return;let T=[];if((m.activeElement===c.current||m.activeElement===u.current)&&(T=i(h.current)),T.length>0){const $=!!((P=C.current)!=null&&P.shiftKey&&((x=C.current)==null?void 0:x.key)==="Tab"),I=T[0],O=T[T.length-1];typeof I!="string"&&typeof O!="string"&&($?O.focus():I.focus())}else k.focus()};m.addEventListener("focusin",_),m.addEventListener("keydown",w,!0);const R=setInterval(()=>{m.activeElement&&m.activeElement.tagName==="BODY"&&_()},50);return()=>{clearInterval(R),m.removeEventListener("focusin",_),m.removeEventListener("keydown",w,!0)}},[n,r,o,a,s,i]);const v=m=>{d.current===null&&(d.current=m.relatedTarget),p.current=!0,f.current=m.target;const w=t.props.onFocus;w&&w(m)},S=m=>{d.current===null&&(d.current=m.relatedTarget),p.current=!0};return g.jsxs(b.Fragment,{children:[g.jsx("div",{tabIndex:s?0:-1,onFocus:S,ref:c,"data-testid":"sentinelStart"}),b.cloneElement(t,{ref:y,onFocus:v}),g.jsx("div",{tabIndex:s?0:-1,onFocus:S,ref:u,"data-testid":"sentinelEnd"})]})}function gO(e){return typeof e=="function"?e():e}function hO(e){return e?e.props.hasOwnProperty("in"):!1}const pu=new aO;function mO(e){const{container:t,disableEscapeKeyDown:n=!1,disableScrollLock:r=!1,closeAfterTransition:o=!1,onTransitionEnter:i,onTransitionExited:a,children:s,onClose:l,open:c,rootRef:u}=e,d=b.useRef({}),f=b.useRef(null),p=b.useRef(null),h=Rt(p,u),[y,C]=b.useState(!c),v=hO(s);let S=!0;(e["aria-hidden"]==="false"||e["aria-hidden"]===!1)&&(S=!1);const m=()=>ln(f.current),w=()=>(d.current.modalRef=p.current,d.current.mount=f.current,d.current),_=()=>{pu.mount(w(),{disableScrollLock:r}),p.current&&(p.current.scrollTop=0)},R=bn(()=>{const M=gO(t)||m().body;pu.add(w(),M),p.current&&_()}),k=()=>pu.isTopModal(w()),T=bn(M=>{f.current=M,M&&(c&&k()?_():p.current&&Ml(p.current,S))}),P=b.useCallback(()=>{pu.remove(w(),S)},[S]);b.useEffect(()=>()=>{P()},[P]),b.useEffect(()=>{c?R():(!v||!o)&&P()},[c,P,v,o,R]);const x=M=>A=>{var N;(N=M.onKeyDown)==null||N.call(M,A),!(A.key!=="Escape"||A.which===229||!k())&&(n||(A.stopPropagation(),l&&l(A,"escapeKeyDown")))},$=M=>A=>{var N;(N=M.onClick)==null||N.call(M,A),A.target===A.currentTarget&&l&&l(A,"backdropClick")};return{getRootProps:(M={})=>{const A=u_(e);delete A.onTransitionEnter,delete A.onTransitionExited;const N={...A,...M};return{role:"presentation",...N,onKeyDown:x(N),ref:h}},getBackdropProps:(M={})=>{const A=M;return{"aria-hidden":!0,...A,onClick:$(A),open:c}},getTransitionProps:()=>{const M=()=>{C(!1),i&&i()},A=()=>{C(!0),a&&a(),o&&P()};return{onEnter:pm(M,s==null?void 0:s.props.onEnter),onExited:pm(A,s==null?void 0:s.props.onExited)}},rootRef:h,portalRef:T,isTopModal:k,exited:y,hasTransition:v}}function vO(e){return Oe("MuiModal",e)}Ee("MuiModal",["root","hidden","backdrop"]);const yO=e=>{const{open:t,exited:n,classes:r}=e;return Ne({root:["root",!t&&n&&"hidden"],backdrop:["backdrop"]},vO,r)},bO=J("div",{name:"MuiModal",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.open&&n.exited&&t.hidden]}})($e(({theme:e})=>({position:"fixed",zIndex:(e.vars||e).zIndex.modal,right:0,bottom:0,top:0,left:0,variants:[{props:({ownerState:t})=>!t.open&&t.exited,style:{visibility:"hidden"}}]}))),xO=J($I,{name:"MuiModal",slot:"Backdrop",overridesResolver:(e,t)=>t.backdrop})({zIndex:-1}),SO=b.forwardRef(function(t,n){const r=De({name:"MuiModal",props:t}),{BackdropComponent:o=xO,BackdropProps:i,classes:a,className:s,closeAfterTransition:l=!1,children:c,container:u,component:d,components:f={},componentsProps:p={},disableAutoFocus:h=!1,disableEnforceFocus:y=!1,disableEscapeKeyDown:C=!1,disablePortal:v=!1,disableRestoreFocus:S=!1,disableScrollLock:m=!1,hideBackdrop:w=!1,keepMounted:_=!1,onBackdropClick:R,onClose:k,onTransitionEnter:T,onTransitionExited:P,open:x,slotProps:$={},slots:I={},theme:O,...D}=r,M={...r,closeAfterTransition:l,disableAutoFocus:h,disableEnforceFocus:y,disableEscapeKeyDown:C,disablePortal:v,disableRestoreFocus:S,disableScrollLock:m,hideBackdrop:w,keepMounted:_},{getRootProps:A,getBackdropProps:N,getTransitionProps:E,portalRef:L,isTopModal:B,exited:H,hasTransition:z}=mO({...M,rootRef:n}),j={...M,exited:H},F=yO(j),W={};if(c.props.tabIndex===void 0&&(W.tabIndex="-1"),z){const{onEnter:q,onExited:ce}=E();W.onEnter=q,W.onExited=ce}const V={...D,slots:{root:f.Root,backdrop:f.Backdrop,...I},slotProps:{...p,...$}},[ee,re]=an("root",{elementType:bO,externalForwardedProps:V,getSlotProps:A,additionalProps:{ref:n,as:d},ownerState:j,className:ve(s,F==null?void 0:F.root,!j.open&&j.exited&&(F==null?void 0:F.hidden))}),[U,K]=an("backdrop",{elementType:o,externalForwardedProps:V,additionalProps:i,getSlotProps:q=>N({...q,onClick:ce=>{R&&R(ce),q!=null&&q.onClick&&q.onClick(ce)}}),className:ve(i==null?void 0:i.className,F==null?void 0:F.backdrop),ownerState:j}),se=Rt(i==null?void 0:i.ref,K.ref);return!_&&!x&&(!z||H)?null:g.jsx(T_,{ref:L,container:u,disablePortal:v,children:g.jsxs(ee,{...re,children:[!w&&o?g.jsx(U,{...K,ref:se}):null,g.jsx(pO,{disableEnforceFocus:y,disableAutoFocus:h,disableRestoreFocus:S,isEnabled:B,open:x,children:b.cloneElement(c,W)})]})})}),Db=Ee("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]),wO=e=>{const{classes:t,disableUnderline:n,startAdornment:r,endAdornment:o,size:i,hiddenLabel:a,multiline:s}=e,l={root:["root",!n&&"underline",r&&"adornedStart",o&&"adornedEnd",i==="small"&&`size${ae(i)}`,a&&"hiddenLabel",s&&"multiline"],input:["input"]},c=Ne(l,lI,t);return{...t,...c}},CO=J(gp,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiFilledInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...fp(e,t),!n.disableUnderline&&t.underline]}})($e(({theme:e})=>{const t=e.palette.mode==="light",n=t?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",r=t?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",o=t?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",i=t?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return{position:"relative",backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r,borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:e.vars?e.vars.palette.FilledInput.hoverBg:o,"@media (hover: none)":{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r}},[`&.${qn.focused}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r},[`&.${qn.disabled}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.disabledBg:i},variants:[{props:({ownerState:a})=>!a.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${qn.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${qn.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`:n}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${qn.disabled}, .${qn.error}):before`]:{borderBottom:`1px solid ${(e.vars||e).palette.text.primary}`},[`&.${qn.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(Ft()).map(([a])=>{var s;return{props:{disableUnderline:!1,color:a},style:{"&::after":{borderBottom:`2px solid ${(s=(e.vars||e).palette[a])==null?void 0:s.main}`}}}}),{props:({ownerState:a})=>a.startAdornment,style:{paddingLeft:12}},{props:({ownerState:a})=>a.endAdornment,style:{paddingRight:12}},{props:({ownerState:a})=>a.multiline,style:{padding:"25px 12px 8px"}},{props:({ownerState:a,size:s})=>a.multiline&&s==="small",style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:a})=>a.multiline&&a.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:a})=>a.multiline&&a.hiddenLabel&&a.size==="small",style:{paddingTop:8,paddingBottom:9}}]}})),_O=J(hp,{name:"MuiFilledInput",slot:"Input",overridesResolver:pp})($e(({theme:e})=>({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12,...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},...e.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:t})=>t.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:t})=>t.startAdornment,style:{paddingLeft:0}},{props:({ownerState:t})=>t.endAdornment,style:{paddingRight:0}},{props:({ownerState:t})=>t.hiddenLabel&&t.size==="small",style:{paddingTop:8,paddingBottom:9}},{props:({ownerState:t})=>t.multiline,style:{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}}]}))),Ud=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFilledInput"}),{disableUnderline:o=!1,components:i={},componentsProps:a,fullWidth:s=!1,hiddenLabel:l,inputComponent:c="input",multiline:u=!1,slotProps:d,slots:f={},type:p="text",...h}=r,y={...r,disableUnderline:o,fullWidth:s,inputComponent:c,multiline:u,type:p},C=wO(r),v={root:{ownerState:y},input:{ownerState:y}},S=d??a?oo(v,d??a):v,m=f.root??i.Root??CO,w=f.input??i.Input??_O;return g.jsx(mp,{slots:{root:m,input:w},componentsProps:S,fullWidth:s,inputComponent:c,multiline:u,ref:n,type:p,...h,classes:C})});Ud&&(Ud.muiName="Input");function RO(e){return Oe("MuiFormControl",e)}Ee("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);const TO=e=>{const{classes:t,margin:n,fullWidth:r}=e,o={root:["root",n!=="none"&&`margin${ae(n)}`,r&&"fullWidth"]};return Ne(o,RO,t)},PO=J("div",{name:"MuiFormControl",slot:"Root",overridesResolver:({ownerState:e},t)=>({...t.root,...t[`margin${ae(e.margin)}`],...e.fullWidth&&t.fullWidth})})({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top",variants:[{props:{margin:"normal"},style:{marginTop:16,marginBottom:8}},{props:{margin:"dense"},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:"100%"}}]}),kO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormControl"}),{children:o,className:i,color:a="primary",component:s="div",disabled:l=!1,error:c=!1,focused:u,fullWidth:d=!1,hiddenLabel:f=!1,margin:p="none",required:h=!1,size:y="medium",variant:C="outlined",...v}=r,S={...r,color:a,component:s,disabled:l,error:c,fullWidth:d,hiddenLabel:f,margin:p,required:h,size:y,variant:C},m=TO(S),[w,_]=b.useState(()=>{let O=!1;return o&&b.Children.forEach(o,D=>{if(!dg(D,["Input","Select"]))return;const M=dg(D,["Select"])?D.props.input:D;M&&rI(M.props)&&(O=!0)}),O}),[R,k]=b.useState(()=>{let O=!1;return o&&b.Children.forEach(o,D=>{dg(D,["Input","Select"])&&(Wd(D.props,!0)||Wd(D.props.inputProps,!0))&&(O=!0)}),O}),[T,P]=b.useState(!1);l&&T&&P(!1);const x=u!==void 0&&!l?u:T;let $;b.useRef(!1);const I=b.useMemo(()=>({adornedStart:w,setAdornedStart:_,color:a,disabled:l,error:c,filled:R,focused:x,fullWidth:d,hiddenLabel:f,size:y,onBlur:()=>{P(!1)},onEmpty:()=>{k(!1)},onFilled:()=>{k(!0)},onFocus:()=>{P(!0)},registerEffect:$,required:h,variant:C}),[w,a,l,c,R,x,d,f,$,h,y,C]);return g.jsx(P1.Provider,{value:I,children:g.jsx(PO,{as:s,ownerState:S,className:ve(m.root,i),ref:n,...v,children:o})})});function $O(e){return Oe("MuiFormControlLabel",e)}const vl=Ee("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error","required","asterisk"]),EO=e=>{const{classes:t,disabled:n,labelPlacement:r,error:o,required:i}=e,a={root:["root",n&&"disabled",`labelPlacement${ae(r)}`,o&&"error",i&&"required"],label:["label",n&&"disabled"],asterisk:["asterisk",o&&"error"]};return Ne(a,$O,t)},MO=J("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${vl.label}`]:t.label},t.root,t[`labelPlacement${ae(n.labelPlacement)}`]]}})($e(({theme:e})=>({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16,[`&.${vl.disabled}`]:{cursor:"default"},[`& .${vl.label}`]:{[`&.${vl.disabled}`]:{color:(e.vars||e).palette.text.disabled}},variants:[{props:{labelPlacement:"start"},style:{flexDirection:"row-reverse",marginRight:-11}},{props:{labelPlacement:"top"},style:{flexDirection:"column-reverse"}},{props:{labelPlacement:"bottom"},style:{flexDirection:"column"}},{props:({labelPlacement:t})=>t==="start"||t==="top"||t==="bottom",style:{marginLeft:16}}]}))),IO=J("span",{name:"MuiFormControlLabel",slot:"Asterisk",overridesResolver:(e,t)=>t.asterisk})($e(({theme:e})=>({[`&.${vl.error}`]:{color:(e.vars||e).palette.error.main}}))),$_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormControlLabel"}),{checked:o,className:i,componentsProps:a={},control:s,disabled:l,disableTypography:c,inputRef:u,label:d,labelPlacement:f="end",name:p,onChange:h,required:y,slots:C={},slotProps:v={},value:S,...m}=r,w=Mo(),_=l??s.props.disabled??(w==null?void 0:w.disabled),R=y??s.props.required,k={disabled:_,required:R};["checked","name","onChange","value","inputRef"].forEach(M=>{typeof s.props[M]>"u"&&typeof r[M]<"u"&&(k[M]=r[M])});const T=da({props:r,muiFormControl:w,states:["error"]}),P={...r,disabled:_,labelPlacement:f,required:R,error:T.error},x=EO(P),$={slots:C,slotProps:{...a,...v}},[I,O]=an("typography",{elementType:mt,externalForwardedProps:$,ownerState:P});let D=d;return D!=null&&D.type!==mt&&!c&&(D=g.jsx(I,{component:"span",...O,className:ve(x.label,O==null?void 0:O.className),children:D})),g.jsxs(MO,{className:ve(x.root,i),ownerState:P,ref:n,...m,children:[b.cloneElement(s,k),R?g.jsxs("div",{children:[D,g.jsxs(IO,{ownerState:P,"aria-hidden":!0,className:x.asterisk,children:[" ","*"]})]}):D]})});function OO(e){return Oe("MuiFormHelperText",e)}const jb=Ee("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]);var Fb;const LO=e=>{const{classes:t,contained:n,size:r,disabled:o,error:i,filled:a,focused:s,required:l}=e,c={root:["root",o&&"disabled",i&&"error",r&&`size${ae(r)}`,n&&"contained",s&&"focused",a&&"filled",l&&"required"]};return Ne(c,OO,t)},AO=J("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.size&&t[`size${ae(n.size)}`],n.contained&&t.contained,n.filled&&t.filled]}})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.caption,textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${jb.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${jb.error}`]:{color:(e.vars||e).palette.error.main},variants:[{props:{size:"small"},style:{marginTop:4}},{props:({ownerState:t})=>t.contained,style:{marginLeft:14,marginRight:14}}]}))),NO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormHelperText"}),{children:o,className:i,component:a="p",disabled:s,error:l,filled:c,focused:u,margin:d,required:f,variant:p,...h}=r,y=Mo(),C=da({props:r,muiFormControl:y,states:["variant","size","disabled","error","filled","focused","required"]}),v={...r,component:a,contained:C.variant==="filled"||C.variant==="outlined",variant:C.variant,size:C.size,disabled:C.disabled,error:C.error,filled:C.filled,focused:C.focused,required:C.required};delete v.ownerState;const S=LO(v);return g.jsx(AO,{as:a,className:ve(S.root,i),ref:n,...h,ownerState:v,children:o===" "?Fb||(Fb=g.jsx("span",{className:"notranslate",children:"​"})):o})});function DO(e){return Oe("MuiFormLabel",e)}const Il=Ee("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),jO=e=>{const{classes:t,color:n,focused:r,disabled:o,error:i,filled:a,required:s}=e,l={root:["root",`color${ae(n)}`,o&&"disabled",i&&"error",a&&"filled",r&&"focused",s&&"required"],asterisk:["asterisk",i&&"error"]};return Ne(l,DO,t)},FO=J("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:({ownerState:e},t)=>({...t.root,...e.color==="secondary"&&t.colorSecondary,...e.filled&&t.filled})})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.body1,lineHeight:"1.4375em",padding:0,position:"relative",variants:[...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t},style:{[`&.${Il.focused}`]:{color:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${Il.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Il.error}`]:{color:(e.vars||e).palette.error.main}}}]}))),BO=J("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:(e,t)=>t.asterisk})($e(({theme:e})=>({[`&.${Il.error}`]:{color:(e.vars||e).palette.error.main}}))),zO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormLabel"}),{children:o,className:i,color:a,component:s="label",disabled:l,error:c,filled:u,focused:d,required:f,...p}=r,h=Mo(),y=da({props:r,muiFormControl:h,states:["color","required","focused","disabled","error","filled"]}),C={...r,color:y.color||"primary",component:s,disabled:y.disabled,error:y.error,filled:y.filled,focused:y.focused,required:y.required},v=jO(C);return g.jsxs(FO,{as:s,ownerState:C,className:ve(v.root,i),ref:n,...p,children:[o,y.required&&g.jsxs(BO,{ownerState:C,"aria-hidden":!0,className:v.asterisk,children:[" ","*"]})]})});function Sm(e){return`scale(${e}, ${e**2})`}const HO={entering:{opacity:1,transform:Sm(1)},entered:{opacity:1,transform:"none"}},gg=typeof navigator<"u"&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),uc=b.forwardRef(function(t,n){const{addEndListener:r,appear:o=!0,children:i,easing:a,in:s,onEnter:l,onEntered:c,onEntering:u,onExit:d,onExited:f,onExiting:p,style:h,timeout:y="auto",TransitionComponent:C=Hr,...v}=t,S=Ni(),m=b.useRef(),w=zt(),_=b.useRef(null),R=Rt(_,ua(i),n),k=M=>A=>{if(M){const N=_.current;A===void 0?M(N):M(N,A)}},T=k(u),P=k((M,A)=>{g_(M);const{duration:N,delay:E,easing:L}=fs({style:h,timeout:y,easing:a},{mode:"enter"});let B;y==="auto"?(B=w.transitions.getAutoHeightDuration(M.clientHeight),m.current=B):B=N,M.style.transition=[w.transitions.create("opacity",{duration:B,delay:E}),w.transitions.create("transform",{duration:gg?B:B*.666,delay:E,easing:L})].join(","),l&&l(M,A)}),x=k(c),$=k(p),I=k(M=>{const{duration:A,delay:N,easing:E}=fs({style:h,timeout:y,easing:a},{mode:"exit"});let L;y==="auto"?(L=w.transitions.getAutoHeightDuration(M.clientHeight),m.current=L):L=A,M.style.transition=[w.transitions.create("opacity",{duration:L,delay:N}),w.transitions.create("transform",{duration:gg?L:L*.666,delay:gg?N:N||L*.333,easing:E})].join(","),M.style.opacity=0,M.style.transform=Sm(.75),d&&d(M)}),O=k(f),D=M=>{y==="auto"&&S.start(m.current||0,M),r&&r(_.current,M)};return g.jsx(C,{appear:o,in:s,nodeRef:_,onEnter:P,onEntered:x,onEntering:T,onExit:I,onExited:O,onExiting:$,addEndListener:D,timeout:y==="auto"?null:y,...v,children:(M,A)=>b.cloneElement(i,{style:{opacity:0,transform:Sm(.75),visibility:M==="exited"&&!s?"hidden":void 0,...HO[M],...h,...i.props.style},ref:R,...A})})});uc&&(uc.muiSupportAuto=!0);const VO=e=>{const{classes:t,disableUnderline:n}=e,o=Ne({root:["root",!n&&"underline"],input:["input"]},aI,t);return{...t,...o}},WO=J(gp,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...fp(e,t),!n.disableUnderline&&t.underline]}})($e(({theme:e})=>{let n=e.palette.mode==="light"?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return e.vars&&(n=`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`),{position:"relative",variants:[{props:({ownerState:r})=>r.formControl,style:{"label + &":{marginTop:16}}},{props:({ownerState:r})=>!r.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Go.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Go.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${n}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Go.disabled}, .${Go.error}):before`]:{borderBottom:`2px solid ${(e.vars||e).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${n}`}},[`&.${Go.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(Ft()).map(([r])=>({props:{color:r,disableUnderline:!1},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[r].main}`}}}))]}})),UO=J(hp,{name:"MuiInput",slot:"Input",overridesResolver:pp})({}),Gd=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiInput"}),{disableUnderline:o=!1,components:i={},componentsProps:a,fullWidth:s=!1,inputComponent:l="input",multiline:c=!1,slotProps:u,slots:d={},type:f="text",...p}=r,h=VO(r),C={root:{ownerState:{disableUnderline:o}}},v=u??a?oo(u??a,C):C,S=d.root??i.Root??WO,m=d.input??i.Input??UO;return g.jsx(mp,{slots:{root:S,input:m},slotProps:v,fullWidth:s,inputComponent:l,multiline:c,ref:n,type:f,...p,classes:h})});Gd&&(Gd.muiName="Input");function GO(e){return Oe("MuiInputLabel",e)}Ee("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);const qO=e=>{const{classes:t,formControl:n,size:r,shrink:o,disableAnimation:i,variant:a,required:s}=e,l={root:["root",n&&"formControl",!i&&"animated",o&&"shrink",r&&r!=="normal"&&`size${ae(r)}`,a],asterisk:[s&&"asterisk"]},c=Ne(l,GO,t);return{...t,...c}},KO=J(zO,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Il.asterisk}`]:t.asterisk},t.root,n.formControl&&t.formControl,n.size==="small"&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,n.focused&&t.focused,t[n.variant]]}})($e(({theme:e})=>({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",variants:[{props:({ownerState:t})=>t.formControl,style:{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"}},{props:{size:"small"},style:{transform:"translate(0, 17px) scale(1)"}},{props:({ownerState:t})=>t.shrink,style:{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"}},{props:({ownerState:t})=>!t.disableAnimation,style:{transition:e.transitions.create(["color","transform","max-width"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})}},{props:{variant:"filled"},style:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"filled",size:"small"},style:{transform:"translate(12px, 13px) scale(1)"}},{props:({variant:t,ownerState:n})=>t==="filled"&&n.shrink,style:{userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"}},{props:({variant:t,ownerState:n,size:r})=>t==="filled"&&n.shrink&&r==="small",style:{transform:"translate(12px, 4px) scale(0.75)"}},{props:{variant:"outlined"},style:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"outlined",size:"small"},style:{transform:"translate(14px, 9px) scale(1)"}},{props:({variant:t,ownerState:n})=>t==="outlined"&&n.shrink,style:{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}}]}))),ZO=b.forwardRef(function(t,n){const r=De({name:"MuiInputLabel",props:t}),{disableAnimation:o=!1,margin:i,shrink:a,variant:s,className:l,...c}=r,u=Mo();let d=a;typeof d>"u"&&u&&(d=u.filled||u.focused||u.adornedStart);const f=da({props:r,muiFormControl:u,states:["size","variant","required","focused"]}),p={...r,disableAnimation:o,formControl:u,shrink:d,size:f.size,variant:f.variant,required:f.required,focused:f.focused},h=qO(p);return g.jsx(KO,{"data-shrink":d,ref:n,className:ve(h.root,l),...c,ownerState:p,classes:h})}),wm=b.createContext({});function QO(e){return Oe("MuiList",e)}Ee("MuiList",["root","padding","dense","subheader"]);const YO=e=>{const{classes:t,disablePadding:n,dense:r,subheader:o}=e;return Ne({root:["root",!n&&"padding",r&&"dense",o&&"subheader"]},QO,t)},XO=J("ul",{name:"MuiList",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})({listStyle:"none",margin:0,padding:0,position:"relative",variants:[{props:({ownerState:e})=>!e.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:e})=>e.subheader,style:{paddingTop:0}}]}),JO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiList"}),{children:o,className:i,component:a="ul",dense:s=!1,disablePadding:l=!1,subheader:c,...u}=r,d=b.useMemo(()=>({dense:s}),[s]),f={...r,component:a,dense:s,disablePadding:l},p=YO(f);return g.jsx(wm.Provider,{value:d,children:g.jsxs(XO,{as:a,className:ve(p.root,i),ref:n,ownerState:f,...u,children:[c,o]})})}),Bb=Ee("MuiListItemIcon",["root","alignItemsFlexStart"]),zb=Ee("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]);function hg(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function Hb(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function E_(e,t){if(t===void 0)return!0;let n=e.innerText;return n===void 0&&(n=e.textContent),n=n.trim().toLowerCase(),n.length===0?!1:t.repeating?n[0]===t.keys[0]:n.startsWith(t.keys.join(""))}function Js(e,t,n,r,o,i){let a=!1,s=o(e,t,t?n:!1);for(;s;){if(s===e.firstChild){if(a)return!1;a=!0}const l=r?!1:s.disabled||s.getAttribute("aria-disabled")==="true";if(!s.hasAttribute("tabindex")||!E_(s,i)||l)s=o(e,s,n);else return s.focus(),!0}return!1}const eL=b.forwardRef(function(t,n){const{actions:r,autoFocus:o=!1,autoFocusItem:i=!1,children:a,className:s,disabledItemsFocusable:l=!1,disableListWrap:c=!1,onKeyDown:u,variant:d="selectedMenu",...f}=t,p=b.useRef(null),h=b.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});zr(()=>{o&&p.current.focus()},[o]),b.useImperativeHandle(r,()=>({adjustStyleForScrollbar:(m,{direction:w})=>{const _=!p.current.style.width;if(m.clientHeight{const w=p.current,_=m.key;if(m.ctrlKey||m.metaKey||m.altKey){u&&u(m);return}const k=ln(w).activeElement;if(_==="ArrowDown")m.preventDefault(),Js(w,k,c,l,hg);else if(_==="ArrowUp")m.preventDefault(),Js(w,k,c,l,Hb);else if(_==="Home")m.preventDefault(),Js(w,null,c,l,hg);else if(_==="End")m.preventDefault(),Js(w,null,c,l,Hb);else if(_.length===1){const T=h.current,P=_.toLowerCase(),x=performance.now();T.keys.length>0&&(x-T.lastTime>500?(T.keys=[],T.repeating=!0,T.previousKeyMatched=!0):T.repeating&&P!==T.keys[0]&&(T.repeating=!1)),T.lastTime=x,T.keys.push(P);const $=k&&!T.repeating&&E_(k,T);T.previousKeyMatched&&($||Js(w,k,!1,l,hg,T))?m.preventDefault():T.previousKeyMatched=!1}u&&u(m)},C=Rt(p,n);let v=-1;b.Children.forEach(a,(m,w)=>{if(!b.isValidElement(m)){v===w&&(v+=1,v>=a.length&&(v=-1));return}m.props.disabled||(d==="selectedMenu"&&m.props.selected||v===-1)&&(v=w),v===w&&(m.props.disabled||m.props.muiSkipListHighlight||m.type.muiSkipListHighlight)&&(v+=1,v>=a.length&&(v=-1))});const S=b.Children.map(a,(m,w)=>{if(w===v){const _={};return i&&(_.autoFocus=!0),m.props.tabIndex===void 0&&d==="selectedMenu"&&(_.tabIndex=0),b.cloneElement(m,_)}return m});return g.jsx(JO,{role:"menu",ref:C,className:s,onKeyDown:y,tabIndex:o?0:-1,...f,children:S})});function tL(e){return Oe("MuiPopover",e)}Ee("MuiPopover",["root","paper"]);function Vb(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.height/2:t==="bottom"&&(n=e.height),n}function Wb(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.width/2:t==="right"&&(n=e.width),n}function Ub(e){return[e.horizontal,e.vertical].map(t=>typeof t=="number"?`${t}px`:t).join(" ")}function mg(e){return typeof e=="function"?e():e}const nL=e=>{const{classes:t}=e;return Ne({root:["root"],paper:["paper"]},tL,t)},rL=J(SO,{name:"MuiPopover",slot:"Root",overridesResolver:(e,t)=>t.root})({}),M_=J(Is,{name:"MuiPopover",slot:"Paper",overridesResolver:(e,t)=>t.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),I_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiPopover"}),{action:o,anchorEl:i,anchorOrigin:a={vertical:"top",horizontal:"left"},anchorPosition:s,anchorReference:l="anchorEl",children:c,className:u,container:d,elevation:f=8,marginThreshold:p=16,open:h,PaperProps:y={},slots:C={},slotProps:v={},transformOrigin:S={vertical:"top",horizontal:"left"},TransitionComponent:m=uc,transitionDuration:w="auto",TransitionProps:{onEntering:_,...R}={},disableScrollLock:k=!1,...T}=r,P=(v==null?void 0:v.paper)??y,x=b.useRef(),$={...r,anchorOrigin:a,anchorReference:l,elevation:f,marginThreshold:p,externalPaperSlotProps:P,transformOrigin:S,TransitionComponent:m,transitionDuration:w,TransitionProps:R},I=nL($),O=b.useCallback(()=>{if(l==="anchorPosition")return s;const K=mg(i),q=(K&&K.nodeType===1?K:ln(x.current).body).getBoundingClientRect();return{top:q.top+Vb(q,a.vertical),left:q.left+Wb(q,a.horizontal)}},[i,a.horizontal,a.vertical,s,l]),D=b.useCallback(K=>({vertical:Vb(K,S.vertical),horizontal:Wb(K,S.horizontal)}),[S.horizontal,S.vertical]),M=b.useCallback(K=>{const se={width:K.offsetWidth,height:K.offsetHeight},q=D(se);if(l==="none")return{top:null,left:null,transformOrigin:Ub(q)};const ce=O();let ue=ce.top-q.vertical,ie=ce.left-q.horizontal;const te=ue+se.height,de=ie+se.width,Q=Br(mg(i)),be=Q.innerHeight-p,Te=Q.innerWidth-p;if(p!==null&&uebe){const we=te-be;ue-=we,q.vertical+=we}if(p!==null&&ieTe){const we=de-Te;ie-=we,q.horizontal+=we}return{top:`${Math.round(ue)}px`,left:`${Math.round(ie)}px`,transformOrigin:Ub(q)}},[i,l,O,D,p]),[A,N]=b.useState(h),E=b.useCallback(()=>{const K=x.current;if(!K)return;const se=M(K);se.top!==null&&K.style.setProperty("top",se.top),se.left!==null&&(K.style.left=se.left),K.style.transformOrigin=se.transformOrigin,N(!0)},[M]);b.useEffect(()=>(k&&window.addEventListener("scroll",E),()=>window.removeEventListener("scroll",E)),[i,k,E]);const L=(K,se)=>{_&&_(K,se),E()},B=()=>{N(!1)};b.useEffect(()=>{h&&E()}),b.useImperativeHandle(o,()=>h?{updatePosition:()=>{E()}}:null,[h,E]),b.useEffect(()=>{if(!h)return;const K=cp(()=>{E()}),se=Br(i);return se.addEventListener("resize",K),()=>{K.clear(),se.removeEventListener("resize",K)}},[i,h,E]);let H=w;w==="auto"&&!m.muiSupportAuto&&(H=void 0);const z=d||(i?ln(mg(i)).body:void 0),j={slots:C,slotProps:{...v,paper:P}},[F,W]=an("paper",{elementType:M_,externalForwardedProps:j,additionalProps:{elevation:f,className:ve(I.paper,P==null?void 0:P.className),style:A?P.style:{...P.style,opacity:0}},ownerState:$}),[V,{slotProps:ee,...re}]=an("root",{elementType:rL,externalForwardedProps:j,additionalProps:{slotProps:{backdrop:{invisible:!0}},container:z,open:h},ownerState:$,className:ve(I.root,u)}),U=Rt(x,W.ref);return g.jsx(V,{...re,...!Vd(V)&&{slotProps:ee,disableScrollLock:k},...T,ref:n,children:g.jsx(m,{appear:!0,in:h,onEntering:L,onExited:B,timeout:H,...R,children:g.jsx(F,{...W,ref:U,children:c})})})});function oL(e){return Oe("MuiMenu",e)}Ee("MuiMenu",["root","paper","list"]);const iL={vertical:"top",horizontal:"right"},aL={vertical:"top",horizontal:"left"},sL=e=>{const{classes:t}=e;return Ne({root:["root"],paper:["paper"],list:["list"]},oL,t)},lL=J(I_,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiMenu",slot:"Root",overridesResolver:(e,t)=>t.root})({}),cL=J(M_,{name:"MuiMenu",slot:"Paper",overridesResolver:(e,t)=>t.paper})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),uL=J(eL,{name:"MuiMenu",slot:"List",overridesResolver:(e,t)=>t.list})({outline:0}),$1=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiMenu"}),{autoFocus:o=!0,children:i,className:a,disableAutoFocusItem:s=!1,MenuListProps:l={},onClose:c,open:u,PaperProps:d={},PopoverClasses:f,transitionDuration:p="auto",TransitionProps:{onEntering:h,...y}={},variant:C="selectedMenu",slots:v={},slotProps:S={},...m}=r,w=Es(),_={...r,autoFocus:o,disableAutoFocusItem:s,MenuListProps:l,onEntering:h,PaperProps:d,transitionDuration:p,TransitionProps:y,variant:C},R=sL(_),k=o&&!s&&u,T=b.useRef(null),P=(A,N)=>{T.current&&T.current.adjustStyleForScrollbar(A,{direction:w?"rtl":"ltr"}),h&&h(A,N)},x=A=>{A.key==="Tab"&&(A.preventDefault(),c&&c(A,"tabKeyDown"))};let $=-1;b.Children.map(i,(A,N)=>{b.isValidElement(A)&&(A.props.disabled||(C==="selectedMenu"&&A.props.selected||$===-1)&&($=N))});const I=v.paper??cL,O=S.paper??d,D=na({elementType:v.root,externalSlotProps:S.root,ownerState:_,className:[R.root,a]}),M=na({elementType:I,externalSlotProps:O,ownerState:_,className:R.paper});return g.jsx(lL,{onClose:c,anchorOrigin:{vertical:"bottom",horizontal:w?"right":"left"},transformOrigin:w?iL:aL,slots:{paper:I,root:v.root},slotProps:{root:D,paper:M},open:u,ref:n,transitionDuration:p,TransitionProps:{onEntering:P,...y},ownerState:_,...m,classes:f,children:g.jsx(uL,{onKeyDown:x,actions:T,autoFocus:o&&($===-1||s),autoFocusItem:k,variant:C,...l,className:ve(R.list,l.className),children:i})})});function dL(e){return Oe("MuiMenuItem",e)}const el=Ee("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),fL=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},pL=e=>{const{disabled:t,dense:n,divider:r,disableGutters:o,selected:i,classes:a}=e,l=Ne({root:["root",n&&"dense",t&&"disabled",!o&&"gutters",r&&"divider",i&&"selected"]},dL,a);return{...a,...l}},gL=J(To,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:fL})($e(({theme:e})=>({...e.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${el.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${el.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`&.${el.selected}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${el.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${el.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${Db.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${Db.inset}`]:{marginLeft:52},[`& .${zb.root}`]:{marginTop:0,marginBottom:0},[`& .${zb.inset}`]:{paddingLeft:36},[`& .${Bb.root}`]:{minWidth:36},variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:t})=>!t.dense,style:{[e.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:t})=>t.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...e.typography.body2,[`& .${Bb.root} svg`]:{fontSize:"1.25rem"}}}]}))),$c=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiMenuItem"}),{autoFocus:o=!1,component:i="li",dense:a=!1,divider:s=!1,disableGutters:l=!1,focusVisibleClassName:c,role:u="menuitem",tabIndex:d,className:f,...p}=r,h=b.useContext(wm),y=b.useMemo(()=>({dense:a||h.dense||!1,disableGutters:l}),[h.dense,a,l]),C=b.useRef(null);zr(()=>{o&&C.current&&C.current.focus()},[o]);const v={...r,dense:y.dense,divider:s,disableGutters:l},S=pL(r),m=Rt(C,n);let w;return r.disabled||(w=d!==void 0?d:-1),g.jsx(wm.Provider,{value:y,children:g.jsx(gL,{ref:m,role:u,tabIndex:w,component:i,focusVisibleClassName:ve(S.focusVisible,c),className:ve(S.root,f),...p,ownerState:v,classes:S})})});function hL(e){return Oe("MuiNativeSelect",e)}const E1=Ee("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),mL=e=>{const{classes:t,variant:n,disabled:r,multiple:o,open:i,error:a}=e,s={select:["select",n,r&&"disabled",o&&"multiple",a&&"error"],icon:["icon",`icon${ae(n)}`,i&&"iconOpen",r&&"disabled"]};return Ne(s,hL,t)},O_=J("select")(({theme:e})=>({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":{borderRadius:0},[`&.${E1.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(e.vars||e).palette.background.paper},variants:[{props:({ownerState:t})=>t.variant!=="filled"&&t.variant!=="outlined",style:{"&&&":{paddingRight:24,minWidth:16}}},{props:{variant:"filled"},style:{"&&&":{paddingRight:32}}},{props:{variant:"outlined"},style:{borderRadius:(e.vars||e).shape.borderRadius,"&:focus":{borderRadius:(e.vars||e).shape.borderRadius},"&&&":{paddingRight:32}}}]})),vL=J(O_,{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:wn,overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${E1.multiple}`]:t.multiple}]}})({}),L_=J("svg")(({theme:e})=>({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(e.vars||e).palette.action.active,[`&.${E1.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:({ownerState:t})=>t.open,style:{transform:"rotate(180deg)"}},{props:{variant:"filled"},style:{right:7}},{props:{variant:"outlined"},style:{right:7}}]})),yL=J(L_,{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${ae(n.variant)}`],n.open&&t.iconOpen]}})({}),bL=b.forwardRef(function(t,n){const{className:r,disabled:o,error:i,IconComponent:a,inputRef:s,variant:l="standard",...c}=t,u={...t,disabled:o,variant:l,error:i},d=mL(u);return g.jsxs(b.Fragment,{children:[g.jsx(vL,{ownerState:u,className:ve(d.select,r),disabled:o,ref:s||n,...c}),t.multiple?null:g.jsx(yL,{as:a,ownerState:u,className:d.icon})]})});var Gb;const xL=J("fieldset",{shouldForwardProp:wn})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),SL=J("legend",{shouldForwardProp:wn})($e(({theme:e})=>({float:"unset",width:"auto",overflow:"hidden",variants:[{props:({ownerState:t})=>!t.withLabel,style:{padding:0,lineHeight:"11px",transition:e.transitions.create("width",{duration:150,easing:e.transitions.easing.easeOut})}},{props:({ownerState:t})=>t.withLabel,style:{display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:e.transitions.create("max-width",{duration:50,easing:e.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}}},{props:({ownerState:t})=>t.withLabel&&t.notched,style:{maxWidth:"100%",transition:e.transitions.create("max-width",{duration:100,easing:e.transitions.easing.easeOut,delay:50})}}]})));function wL(e){const{children:t,classes:n,className:r,label:o,notched:i,...a}=e,s=o!=null&&o!=="",l={...e,notched:i,withLabel:s};return g.jsx(xL,{"aria-hidden":!0,className:r,ownerState:l,...a,children:g.jsx(SL,{ownerState:l,children:s?g.jsx("span",{children:o}):Gb||(Gb=g.jsx("span",{className:"notranslate",children:"​"}))})})}const CL=e=>{const{classes:t}=e,r=Ne({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},sI,t);return{...t,...r}},_L=J(gp,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:fp})($e(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{position:"relative",borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${lr.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${lr.notchedOutline}`]:{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:t}},[`&.${lr.focused} .${lr.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(e.palette).filter(Ft()).map(([n])=>({props:{color:n},style:{[`&.${lr.focused} .${lr.notchedOutline}`]:{borderColor:(e.vars||e).palette[n].main}}})),{props:{},style:{[`&.${lr.error} .${lr.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${lr.disabled} .${lr.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}}},{props:({ownerState:n})=>n.startAdornment,style:{paddingLeft:14}},{props:({ownerState:n})=>n.endAdornment,style:{paddingRight:14}},{props:({ownerState:n})=>n.multiline,style:{padding:"16.5px 14px"}},{props:({ownerState:n,size:r})=>n.multiline&&r==="small",style:{padding:"8.5px 14px"}}]}})),RL=J(wL,{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:(e,t)=>t.notchedOutline})($e(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:t}})),TL=J(hp,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:pp})($e(({theme:e})=>({padding:"16.5px 14px",...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},...e.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{padding:"8.5px 14px"}},{props:({ownerState:t})=>t.multiline,style:{padding:0}},{props:({ownerState:t})=>t.startAdornment,style:{paddingLeft:0}},{props:({ownerState:t})=>t.endAdornment,style:{paddingRight:0}}]}))),qd=b.forwardRef(function(t,n){var r;const o=De({props:t,name:"MuiOutlinedInput"}),{components:i={},fullWidth:a=!1,inputComponent:s="input",label:l,multiline:c=!1,notched:u,slots:d={},type:f="text",...p}=o,h=CL(o),y=Mo(),C=da({props:o,muiFormControl:y,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),v={...o,color:C.color||"primary",disabled:C.disabled,error:C.error,focused:C.focused,formControl:y,fullWidth:a,hiddenLabel:C.hiddenLabel,multiline:c,size:C.size,type:f},S=d.root??i.Root??_L,m=d.input??i.Input??TL;return g.jsx(mp,{slots:{root:S,input:m},renderSuffix:w=>g.jsx(RL,{ownerState:v,className:h.notchedOutline,label:l!=null&&l!==""&&C.required?r||(r=g.jsxs(b.Fragment,{children:[l," ","*"]})):l,notched:typeof u<"u"?u:!!(w.startAdornment||w.filled||w.focused)}),fullWidth:a,inputComponent:s,multiline:c,ref:n,type:f,...p,classes:{...h,notchedOutline:null}})});qd&&(qd.muiName="Input");const PL=un(g.jsx("path",{d:"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPage"),kL=un(g.jsx("path",{d:"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPage"),$L=un(g.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"RadioButtonUnchecked"),EL=un(g.jsx("path",{d:"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"}),"RadioButtonChecked"),ML=J("span",{shouldForwardProp:wn})({position:"relative",display:"flex"}),IL=J($L)({transform:"scale(1)"}),OL=J(EL)($e(({theme:e})=>({left:0,position:"absolute",transform:"scale(0)",transition:e.transitions.create("transform",{easing:e.transitions.easing.easeIn,duration:e.transitions.duration.shortest}),variants:[{props:{checked:!0},style:{transform:"scale(1)",transition:e.transitions.create("transform",{easing:e.transitions.easing.easeOut,duration:e.transitions.duration.shortest})}}]})));function A_(e){const{checked:t=!1,classes:n={},fontSize:r}=e,o={...e,checked:t};return g.jsxs(ML,{className:n.root,ownerState:o,children:[g.jsx(IL,{fontSize:r,className:n.background,ownerState:o}),g.jsx(OL,{fontSize:r,className:n.dot,ownerState:o})]})}const LL=b.createContext(void 0);function AL(){return b.useContext(LL)}function NL(e){return Oe("MuiRadio",e)}const qb=Ee("MuiRadio",["root","checked","disabled","colorPrimary","colorSecondary","sizeSmall"]),DL=e=>{const{classes:t,color:n,size:r}=e,o={root:["root",`color${ae(n)}`,r!=="medium"&&`size${ae(r)}`]};return{...t,...Ne(o,NL,t)}},jL=J(k1,{shouldForwardProp:e=>wn(e)||e==="classes",name:"MuiRadio",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.size!=="medium"&&t[`size${ae(n.size)}`],t[`color${ae(n.color)}`]]}})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,[`&.${qb.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{color:"default",disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t,disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[t].main,e.palette.action.hoverOpacity)}}})),...Object.entries(e.palette).filter(Ft()).map(([t])=>({props:{color:t,disabled:!1},style:{[`&.${qb.checked}`]:{color:(e.vars||e).palette[t].main}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]})));function FL(e,t){return typeof t=="object"&&t!==null?e===t:String(e)===String(t)}const Kb=g.jsx(A_,{checked:!0}),Zb=g.jsx(A_,{}),BL=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiRadio"}),{checked:o,checkedIcon:i=Kb,color:a="primary",icon:s=Zb,name:l,onChange:c,size:u="medium",className:d,disabled:f,disableRipple:p=!1,...h}=r,y=Mo();let C=f;y&&typeof C>"u"&&(C=y.disabled),C??(C=!1);const v={...r,disabled:C,disableRipple:p,color:a,size:u},S=DL(v),m=AL();let w=o;const _=pm(c,m&&m.onChange);let R=l;return m&&(typeof w>"u"&&(w=FL(m.value,r.value)),typeof R>"u"&&(R=m.name)),g.jsx(jL,{type:"radio",icon:b.cloneElement(s,{fontSize:Zb.props.fontSize??u}),checkedIcon:b.cloneElement(i,{fontSize:Kb.props.fontSize??u}),disabled:C,ownerState:v,classes:S,name:R,checked:w,onChange:_,ref:n,className:ve(S.root,d),...h})});function zL(e){return Oe("MuiSelect",e)}const tl=Ee("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]);var Qb;const HL=J(O_,{name:"MuiSelect",slot:"Select",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`&.${tl.select}`]:t.select},{[`&.${tl.select}`]:t[n.variant]},{[`&.${tl.error}`]:t.error},{[`&.${tl.multiple}`]:t.multiple}]}})({[`&.${tl.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),VL=J(L_,{name:"MuiSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${ae(n.variant)}`],n.open&&t.iconOpen]}})({}),WL=J("input",{shouldForwardProp:e=>a_(e)&&e!=="classes",name:"MuiSelect",slot:"NativeInput",overridesResolver:(e,t)=>t.nativeInput})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function Yb(e,t){return typeof t=="object"&&t!==null?e===t:String(e)===String(t)}function UL(e){return e==null||typeof e=="string"&&!e.trim()}const GL=e=>{const{classes:t,variant:n,disabled:r,multiple:o,open:i,error:a}=e,s={select:["select",n,r&&"disabled",o&&"multiple",a&&"error"],icon:["icon",`icon${ae(n)}`,i&&"iconOpen",r&&"disabled"],nativeInput:["nativeInput"]};return Ne(s,zL,t)},qL=b.forwardRef(function(t,n){var Le;const{"aria-describedby":r,"aria-label":o,autoFocus:i,autoWidth:a,children:s,className:l,defaultOpen:c,defaultValue:u,disabled:d,displayEmpty:f,error:p=!1,IconComponent:h,inputRef:y,labelId:C,MenuProps:v={},multiple:S,name:m,onBlur:w,onChange:_,onClose:R,onFocus:k,onOpen:T,open:P,readOnly:x,renderValue:$,SelectDisplayProps:I={},tabIndex:O,type:D,value:M,variant:A="standard",...N}=t,[E,L]=Hi({controlled:M,default:u,name:"Select"}),[B,H]=Hi({controlled:P,default:c,name:"Select"}),z=b.useRef(null),j=b.useRef(null),[F,W]=b.useState(null),{current:V}=b.useRef(P!=null),[ee,re]=b.useState(),U=Rt(n,y),K=b.useCallback(fe=>{j.current=fe,fe&&W(fe)},[]),se=F==null?void 0:F.parentNode;b.useImperativeHandle(U,()=>({focus:()=>{j.current.focus()},node:z.current,value:E}),[E]),b.useEffect(()=>{c&&B&&F&&!V&&(re(a?null:se.clientWidth),j.current.focus())},[F,a]),b.useEffect(()=>{i&&j.current.focus()},[i]),b.useEffect(()=>{if(!C)return;const fe=ln(j.current).getElementById(C);if(fe){const oe=()=>{getSelection().isCollapsed&&j.current.focus()};return fe.addEventListener("click",oe),()=>{fe.removeEventListener("click",oe)}}},[C]);const q=(fe,oe)=>{fe?T&&T(oe):R&&R(oe),V||(re(a?null:se.clientWidth),H(fe))},ce=fe=>{fe.button===0&&(fe.preventDefault(),j.current.focus(),q(!0,fe))},ue=fe=>{q(!1,fe)},ie=b.Children.toArray(s),te=fe=>{const oe=ie.find(me=>me.props.value===fe.target.value);oe!==void 0&&(L(oe.props.value),_&&_(fe,oe))},de=fe=>oe=>{let me;if(oe.currentTarget.hasAttribute("tabindex")){if(S){me=Array.isArray(E)?E.slice():[];const je=E.indexOf(fe.props.value);je===-1?me.push(fe.props.value):me.splice(je,1)}else me=fe.props.value;if(fe.props.onClick&&fe.props.onClick(oe),E!==me&&(L(me),_)){const je=oe.nativeEvent||oe,Ve=new je.constructor(je.type,je);Object.defineProperty(Ve,"target",{writable:!0,value:{value:me,name:m}}),_(Ve,fe)}S||q(!1,oe)}},Q=fe=>{x||[" ","ArrowUp","ArrowDown","Enter"].includes(fe.key)&&(fe.preventDefault(),q(!0,fe))},be=F!==null&&B,Te=fe=>{!be&&w&&(Object.defineProperty(fe,"target",{writable:!0,value:{value:E,name:m}}),w(fe))};delete N["aria-invalid"];let we,ge;const le=[];let Se=!1;(Wd({value:E})||f)&&($?we=$(E):Se=!0);const ye=ie.map(fe=>{if(!b.isValidElement(fe))return null;let oe;if(S){if(!Array.isArray(E))throw new Error(Xi(2));oe=E.some(me=>Yb(me,fe.props.value)),oe&&Se&&le.push(fe.props.children)}else oe=Yb(E,fe.props.value),oe&&Se&&(ge=fe.props.children);return b.cloneElement(fe,{"aria-selected":oe?"true":"false",onClick:de(fe),onKeyUp:me=>{me.key===" "&&me.preventDefault(),fe.props.onKeyUp&&fe.props.onKeyUp(me)},role:"option",selected:oe,value:void 0,"data-value":fe.props.value})});Se&&(S?le.length===0?we=null:we=le.reduce((fe,oe,me)=>(fe.push(oe),me{const{classes:t}=e;return t},M1={name:"MuiSelect",overridesResolver:(e,t)=>t.root,shouldForwardProp:e=>wn(e)&&e!=="variant",slot:"Root"},ZL=J(Gd,M1)(""),QL=J(qd,M1)(""),YL=J(Ud,M1)(""),vp=b.forwardRef(function(t,n){const r=De({name:"MuiSelect",props:t}),{autoWidth:o=!1,children:i,classes:a={},className:s,defaultOpen:l=!1,displayEmpty:c=!1,IconComponent:u=P_,id:d,input:f,inputProps:p,label:h,labelId:y,MenuProps:C,multiple:v=!1,native:S=!1,onClose:m,onOpen:w,open:_,renderValue:R,SelectDisplayProps:k,variant:T="outlined",...P}=r,x=S?bL:qL,$=Mo(),I=da({props:r,muiFormControl:$,states:["variant","error"]}),O=I.variant||T,D={...r,variant:O,classes:a},M=KL(D),{root:A,...N}=M,E=f||{standard:g.jsx(ZL,{ownerState:D}),outlined:g.jsx(QL,{label:h,ownerState:D}),filled:g.jsx(YL,{ownerState:D})}[O],L=Rt(n,ua(E));return g.jsx(b.Fragment,{children:b.cloneElement(E,{inputComponent:x,inputProps:{children:i,error:I.error,IconComponent:u,variant:O,type:void 0,multiple:v,...S?{id:d}:{autoWidth:o,defaultOpen:l,displayEmpty:c,labelId:y,MenuProps:C,onClose:m,onOpen:w,open:_,renderValue:R,SelectDisplayProps:{id:d,...k}},...p,classes:p?oo(N,p.classes):N,...f?f.props.inputProps:{}},...(v&&S||c)&&O==="outlined"?{notched:!0}:{},ref:L,className:ve(E.props.className,s,M.root),...!f&&{variant:O},...P})})});vp.muiName="Select";function XL(e){return Oe("MuiTooltip",e)}const Mt=Ee("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]);function JL(e){return Math.round(e*1e5)/1e5}const e7=e=>{const{classes:t,disableInteractive:n,arrow:r,touch:o,placement:i}=e,a={popper:["popper",!n&&"popperInteractive",r&&"popperArrow"],tooltip:["tooltip",r&&"tooltipArrow",o&&"touch",`tooltipPlacement${ae(i.split("-")[0])}`],arrow:["arrow"]};return Ne(a,XL,t)},t7=J(kc,{name:"MuiTooltip",slot:"Popper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.popper,!n.disableInteractive&&t.popperInteractive,n.arrow&&t.popperArrow,!n.open&&t.popperClose]}})($e(({theme:e})=>({zIndex:(e.vars||e).zIndex.tooltip,pointerEvents:"none",variants:[{props:({ownerState:t})=>!t.disableInteractive,style:{pointerEvents:"auto"}},{props:({open:t})=>!t,style:{pointerEvents:"none"}},{props:({ownerState:t})=>t.arrow,style:{[`&[data-popper-placement*="bottom"] .${Mt.arrow}`]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},[`&[data-popper-placement*="top"] .${Mt.arrow}`]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},[`&[data-popper-placement*="right"] .${Mt.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}},[`&[data-popper-placement*="left"] .${Mt.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}}}},{props:({ownerState:t})=>t.arrow&&!t.isRtl,style:{[`&[data-popper-placement*="right"] .${Mt.arrow}`]:{left:0,marginLeft:"-0.71em"}}},{props:({ownerState:t})=>t.arrow&&!!t.isRtl,style:{[`&[data-popper-placement*="right"] .${Mt.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:t})=>t.arrow&&!t.isRtl,style:{[`&[data-popper-placement*="left"] .${Mt.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:t})=>t.arrow&&!!t.isRtl,style:{[`&[data-popper-placement*="left"] .${Mt.arrow}`]:{left:0,marginLeft:"-0.71em"}}}]}))),n7=J("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.tooltip,n.touch&&t.touch,n.arrow&&t.tooltipArrow,t[`tooltipPlacement${ae(n.placement.split("-")[0])}`]]}})($e(({theme:e})=>({backgroundColor:e.vars?e.vars.palette.Tooltip.bg:Be(e.palette.grey[700],.92),borderRadius:(e.vars||e).shape.borderRadius,color:(e.vars||e).palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:e.typography.fontWeightMedium,[`.${Mt.popper}[data-popper-placement*="left"] &`]:{transformOrigin:"right center"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{transformOrigin:"left center"},[`.${Mt.popper}[data-popper-placement*="top"] &`]:{transformOrigin:"center bottom",marginBottom:"14px"},[`.${Mt.popper}[data-popper-placement*="bottom"] &`]:{transformOrigin:"center top",marginTop:"14px"},variants:[{props:({ownerState:t})=>t.arrow,style:{position:"relative",margin:0}},{props:({ownerState:t})=>t.touch,style:{padding:"8px 16px",fontSize:e.typography.pxToRem(14),lineHeight:`${JL(16/14)}em`,fontWeight:e.typography.fontWeightRegular}},{props:({ownerState:t})=>!t.isRtl,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginRight:"14px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginLeft:"14px"}}},{props:({ownerState:t})=>!t.isRtl&&t.touch,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginRight:"24px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginLeft:"24px"}}},{props:({ownerState:t})=>!!t.isRtl,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginLeft:"14px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginRight:"14px"}}},{props:({ownerState:t})=>!!t.isRtl&&t.touch,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginLeft:"24px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginRight:"24px"}}},{props:({ownerState:t})=>t.touch,style:{[`.${Mt.popper}[data-popper-placement*="top"] &`]:{marginBottom:"24px"}}},{props:({ownerState:t})=>t.touch,style:{[`.${Mt.popper}[data-popper-placement*="bottom"] &`]:{marginTop:"24px"}}}]}))),r7=J("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:(e,t)=>t.arrow})($e(({theme:e})=>({overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:e.vars?e.vars.palette.Tooltip.bg:Be(e.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}})));let gu=!1;const Xb=new up;let nl={x:0,y:0};function hu(e,t){return(n,...r)=>{t&&t(n,...r),e(n,...r)}}const o7=b.forwardRef(function(t,n){var Vn,Oo,_i;const r=De({props:t,name:"MuiTooltip"}),{arrow:o=!1,children:i,classes:a,components:s={},componentsProps:l={},describeChild:c=!1,disableFocusListener:u=!1,disableHoverListener:d=!1,disableInteractive:f=!1,disableTouchListener:p=!1,enterDelay:h=100,enterNextDelay:y=0,enterTouchDelay:C=700,followCursor:v=!1,id:S,leaveDelay:m=0,leaveTouchDelay:w=1500,onClose:_,onOpen:R,open:k,placement:T="bottom",PopperComponent:P,PopperProps:x={},slotProps:$={},slots:I={},title:O,TransitionComponent:D=uc,TransitionProps:M,...A}=r,N=b.isValidElement(i)?i:g.jsx("span",{children:i}),E=zt(),L=Es(),[B,H]=b.useState(),[z,j]=b.useState(null),F=b.useRef(!1),W=f||v,V=Ni(),ee=Ni(),re=Ni(),U=Ni(),[K,se]=Hi({controlled:k,default:!1,name:"Tooltip",state:"open"});let q=K;const ce=ds(S),ue=b.useRef(),ie=bn(()=>{ue.current!==void 0&&(document.body.style.WebkitUserSelect=ue.current,ue.current=void 0),U.clear()});b.useEffect(()=>ie,[ie]);const te=Fe=>{Xb.clear(),gu=!0,se(!0),R&&!q&&R(Fe)},de=bn(Fe=>{Xb.start(800+m,()=>{gu=!1}),se(!1),_&&q&&_(Fe),V.start(E.transitions.duration.shortest,()=>{F.current=!1})}),Q=Fe=>{F.current&&Fe.type!=="touchstart"||(B&&B.removeAttribute("title"),ee.clear(),re.clear(),h||gu&&y?ee.start(gu?y:h,()=>{te(Fe)}):te(Fe))},be=Fe=>{ee.clear(),re.start(m,()=>{de(Fe)})},[,Te]=b.useState(!1),we=Fe=>{Fd(Fe.target)||(Te(!1),be(Fe))},ge=Fe=>{B||H(Fe.currentTarget),Fd(Fe.target)&&(Te(!0),Q(Fe))},le=Fe=>{F.current=!0;const _n=N.props;_n.onTouchStart&&_n.onTouchStart(Fe)},Se=Fe=>{le(Fe),re.clear(),V.clear(),ie(),ue.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",U.start(C,()=>{document.body.style.WebkitUserSelect=ue.current,Q(Fe)})},ye=Fe=>{N.props.onTouchEnd&&N.props.onTouchEnd(Fe),ie(),re.start(w,()=>{de(Fe)})};b.useEffect(()=>{if(!q)return;function Fe(_n){_n.key==="Escape"&&de(_n)}return document.addEventListener("keydown",Fe),()=>{document.removeEventListener("keydown",Fe)}},[de,q]);const Ge=Rt(ua(N),H,n);!O&&O!==0&&(q=!1);const Pe=b.useRef(),Re=Fe=>{const _n=N.props;_n.onMouseMove&&_n.onMouseMove(Fe),nl={x:Fe.clientX,y:Fe.clientY},Pe.current&&Pe.current.update()},ke={},pe=typeof O=="string";c?(ke.title=!q&&pe&&!d?O:null,ke["aria-describedby"]=q?ce:null):(ke["aria-label"]=pe?O:null,ke["aria-labelledby"]=q&&!pe?ce:null);const ne={...ke,...A,...N.props,className:ve(A.className,N.props.className),onTouchStart:le,ref:Ge,...v?{onMouseMove:Re}:{}},xe={};p||(ne.onTouchStart=Se,ne.onTouchEnd=ye),d||(ne.onMouseOver=hu(Q,ne.onMouseOver),ne.onMouseLeave=hu(be,ne.onMouseLeave),W||(xe.onMouseOver=Q,xe.onMouseLeave=be)),u||(ne.onFocus=hu(ge,ne.onFocus),ne.onBlur=hu(we,ne.onBlur),W||(xe.onFocus=ge,xe.onBlur=we));const Le=b.useMemo(()=>{var _n;let Fe=[{name:"arrow",enabled:!!z,options:{element:z,padding:4}}];return(_n=x.popperOptions)!=null&&_n.modifiers&&(Fe=Fe.concat(x.popperOptions.modifiers)),{...x.popperOptions,modifiers:Fe}},[z,x]),fe={...r,isRtl:L,arrow:o,disableInteractive:W,placement:T,PopperComponentProp:P,touch:F.current},oe=e7(fe),me=I.popper??s.Popper??t7,je=I.transition??s.Transition??D??uc,Ve=I.tooltip??s.Tooltip??n7,Ye=I.arrow??s.Arrow??r7,Tt=Ha(me,{...x,...$.popper??l.popper,className:ve(oe.popper,x==null?void 0:x.className,(Vn=$.popper??l.popper)==null?void 0:Vn.className)},fe),Zt=Ha(je,{...M,...$.transition??l.transition},fe),Mn=Ha(Ve,{...$.tooltip??l.tooltip,className:ve(oe.tooltip,(Oo=$.tooltip??l.tooltip)==null?void 0:Oo.className)},fe),ir=Ha(Ye,{...$.arrow??l.arrow,className:ve(oe.arrow,(_i=$.arrow??l.arrow)==null?void 0:_i.className)},fe);return g.jsxs(b.Fragment,{children:[b.cloneElement(N,ne),g.jsx(me,{as:P??kc,placement:T,anchorEl:v?{getBoundingClientRect:()=>({top:nl.y,left:nl.x,right:nl.x,bottom:nl.y,width:0,height:0})}:B,popperRef:Pe,open:B?q:!1,id:ce,transition:!0,...xe,...Tt,popperOptions:Le,children:({TransitionProps:Fe})=>g.jsx(je,{timeout:E.transitions.duration.shorter,...Fe,...Zt,children:g.jsxs(Ve,{...Mn,children:[O,o?g.jsx(Ye,{...ir,ref:j}):null]})})})]})}),i7=DE({createStyledComponent:J("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,t)=>t.root}),useThemeProps:e=>De({props:e,name:"MuiStack"})});function a7(e){return Oe("MuiSwitch",e)}const Rn=Ee("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),s7=e=>{const{classes:t,edge:n,size:r,color:o,checked:i,disabled:a}=e,s={root:["root",n&&`edge${ae(n)}`,`size${ae(r)}`],switchBase:["switchBase",`color${ae(o)}`,i&&"checked",a&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},l=Ne(s,a7,t);return{...t,...l}},l7=J("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.edge&&t[`edge${ae(n.edge)}`],t[`size${ae(n.size)}`]]}})({display:"inline-flex",width:34+12*2,height:14+12*2,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"},variants:[{props:{edge:"start"},style:{marginLeft:-8}},{props:{edge:"end"},style:{marginRight:-8}},{props:{size:"small"},style:{width:40,height:24,padding:7,[`& .${Rn.thumb}`]:{width:16,height:16},[`& .${Rn.switchBase}`]:{padding:4,[`&.${Rn.checked}`]:{transform:"translateX(16px)"}}}}]}),c7=J(k1,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.switchBase,{[`& .${Rn.input}`]:t.input},n.color!=="default"&&t[`color${ae(n.color)}`]]}})($e(({theme:e})=>({position:"absolute",top:0,left:0,zIndex:1,color:e.vars?e.vars.palette.Switch.defaultColor:`${e.palette.mode==="light"?e.palette.common.white:e.palette.grey[300]}`,transition:e.transitions.create(["left","transform"],{duration:e.transitions.duration.shortest}),[`&.${Rn.checked}`]:{transform:"translateX(20px)"},[`&.${Rn.disabled}`]:{color:e.vars?e.vars.palette.Switch.defaultDisabledColor:`${e.palette.mode==="light"?e.palette.grey[100]:e.palette.grey[600]}`},[`&.${Rn.checked} + .${Rn.track}`]:{opacity:.5},[`&.${Rn.disabled} + .${Rn.track}`]:{opacity:e.vars?e.vars.opacity.switchTrackDisabled:`${e.palette.mode==="light"?.12:.2}`},[`& .${Rn.input}`]:{left:"-100%",width:"300%"}})),$e(({theme:e})=>({"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[...Object.entries(e.palette).filter(Ft(["light"])).map(([t])=>({props:{color:t},style:{[`&.${Rn.checked}`]:{color:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[t].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Rn.disabled}`]:{color:e.vars?e.vars.palette.Switch[`${t}DisabledColor`]:`${e.palette.mode==="light"?ta(e.palette[t].main,.62):ea(e.palette[t].main,.55)}`}},[`&.${Rn.checked} + .${Rn.track}`]:{backgroundColor:(e.vars||e).palette[t].main}}}))]}))),u7=J("span",{name:"MuiSwitch",slot:"Track",overridesResolver:(e,t)=>t.track})($e(({theme:e})=>({height:"100%",width:"100%",borderRadius:14/2,zIndex:-1,transition:e.transitions.create(["opacity","background-color"],{duration:e.transitions.duration.shortest}),backgroundColor:e.vars?e.vars.palette.common.onBackground:`${e.palette.mode==="light"?e.palette.common.black:e.palette.common.white}`,opacity:e.vars?e.vars.opacity.switchTrack:`${e.palette.mode==="light"?.38:.3}`}))),d7=J("span",{name:"MuiSwitch",slot:"Thumb",overridesResolver:(e,t)=>t.thumb})($e(({theme:e})=>({boxShadow:(e.vars||e).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"}))),f7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiSwitch"}),{className:o,color:i="primary",edge:a=!1,size:s="medium",sx:l,...c}=r,u={...r,color:i,edge:a,size:s},d=s7(u),f=g.jsx(d7,{className:d.thumb,ownerState:u});return g.jsxs(l7,{className:ve(d.root,o),sx:l,ownerState:u,children:[g.jsx(c7,{type:"checkbox",icon:f,checkedIcon:f,ref:n,ownerState:u,...c,classes:{...d,root:d.switchBase}}),g.jsx(u7,{className:d.track,ownerState:u})]})});function p7(e){return Oe("MuiTab",e)}const ar=Ee("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper","icon"]),g7=e=>{const{classes:t,textColor:n,fullWidth:r,wrapped:o,icon:i,label:a,selected:s,disabled:l}=e,c={root:["root",i&&a&&"labelIcon",`textColor${ae(n)}`,r&&"fullWidth",o&&"wrapped",s&&"selected",l&&"disabled"],icon:["iconWrapper","icon"]};return Ne(c,p7,t)},h7=J(To,{name:"MuiTab",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.label&&n.icon&&t.labelIcon,t[`textColor${ae(n.textColor)}`],n.fullWidth&&t.fullWidth,n.wrapped&&t.wrapped,{[`& .${ar.iconWrapper}`]:t.iconWrapper},{[`& .${ar.icon}`]:t.icon}]}})($e(({theme:e})=>({...e.typography.button,maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center",lineHeight:1.25,variants:[{props:({ownerState:t})=>t.label&&(t.iconPosition==="top"||t.iconPosition==="bottom"),style:{flexDirection:"column"}},{props:({ownerState:t})=>t.label&&t.iconPosition!=="top"&&t.iconPosition!=="bottom",style:{flexDirection:"row"}},{props:({ownerState:t})=>t.icon&&t.label,style:{minHeight:72,paddingTop:9,paddingBottom:9}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="top",style:{[`& > .${ar.icon}`]:{marginBottom:6}}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="bottom",style:{[`& > .${ar.icon}`]:{marginTop:6}}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="start",style:{[`& > .${ar.icon}`]:{marginRight:e.spacing(1)}}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="end",style:{[`& > .${ar.icon}`]:{marginLeft:e.spacing(1)}}},{props:{textColor:"inherit"},style:{color:"inherit",opacity:.6,[`&.${ar.selected}`]:{opacity:1},[`&.${ar.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity}}},{props:{textColor:"primary"},style:{color:(e.vars||e).palette.text.secondary,[`&.${ar.selected}`]:{color:(e.vars||e).palette.primary.main},[`&.${ar.disabled}`]:{color:(e.vars||e).palette.text.disabled}}},{props:{textColor:"secondary"},style:{color:(e.vars||e).palette.text.secondary,[`&.${ar.selected}`]:{color:(e.vars||e).palette.secondary.main},[`&.${ar.disabled}`]:{color:(e.vars||e).palette.text.disabled}}},{props:({ownerState:t})=>t.fullWidth,style:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"}},{props:({ownerState:t})=>t.wrapped,style:{fontSize:e.typography.pxToRem(12)}}]}))),m7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTab"}),{className:o,disabled:i=!1,disableFocusRipple:a=!1,fullWidth:s,icon:l,iconPosition:c="top",indicator:u,label:d,onChange:f,onClick:p,onFocus:h,selected:y,selectionFollowsFocus:C,textColor:v="inherit",value:S,wrapped:m=!1,...w}=r,_={...r,disabled:i,disableFocusRipple:a,selected:y,icon:!!l,iconPosition:c,label:!!d,fullWidth:s,textColor:v,wrapped:m},R=g7(_),k=l&&d&&b.isValidElement(l)?b.cloneElement(l,{className:ve(R.icon,l.props.className)}):l,T=x=>{!y&&f&&f(x,S),p&&p(x)},P=x=>{C&&!y&&f&&f(x,S),h&&h(x)};return g.jsxs(h7,{focusRipple:!a,className:ve(R.root,o),ref:n,role:"tab","aria-selected":y,disabled:i,onClick:T,onFocus:P,ownerState:_,tabIndex:y?0:-1,...w,children:[c==="top"||c==="start"?g.jsxs(b.Fragment,{children:[k,d]}):g.jsxs(b.Fragment,{children:[d,k]}),u]})}),N_=b.createContext();function v7(e){return Oe("MuiTable",e)}Ee("MuiTable",["root","stickyHeader"]);const y7=e=>{const{classes:t,stickyHeader:n}=e;return Ne({root:["root",n&&"stickyHeader"]},v7,t)},b7=J("table",{name:"MuiTable",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.stickyHeader&&t.stickyHeader]}})($e(({theme:e})=>({display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":{...e.typography.body2,padding:e.spacing(2),color:(e.vars||e).palette.text.secondary,textAlign:"left",captionSide:"bottom"},variants:[{props:({ownerState:t})=>t.stickyHeader,style:{borderCollapse:"separate"}}]}))),Jb="table",x7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTable"}),{className:o,component:i=Jb,padding:a="normal",size:s="medium",stickyHeader:l=!1,...c}=r,u={...r,component:i,padding:a,size:s,stickyHeader:l},d=y7(u),f=b.useMemo(()=>({padding:a,size:s,stickyHeader:l}),[a,s,l]);return g.jsx(N_.Provider,{value:f,children:g.jsx(b7,{as:i,role:i===Jb?null:"table",ref:n,className:ve(d.root,o),ownerState:u,...c})})}),Ec=b.createContext();function S7(e){return Oe("MuiTableBody",e)}Ee("MuiTableBody",["root"]);const w7=e=>{const{classes:t}=e;return Ne({root:["root"]},S7,t)},C7=J("tbody",{name:"MuiTableBody",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"table-row-group"}),_7={variant:"body"},ex="tbody",R7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableBody"}),{className:o,component:i=ex,...a}=r,s={...r,component:i},l=w7(s);return g.jsx(Ec.Provider,{value:_7,children:g.jsx(C7,{className:ve(l.root,o),as:i,ref:n,role:i===ex?null:"rowgroup",ownerState:s,...a})})});function T7(e){return Oe("MuiTableCell",e)}const P7=Ee("MuiTableCell",["root","head","body","footer","sizeSmall","sizeMedium","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","alignJustify","stickyHeader"]),k7=e=>{const{classes:t,variant:n,align:r,padding:o,size:i,stickyHeader:a}=e,s={root:["root",n,a&&"stickyHeader",r!=="inherit"&&`align${ae(r)}`,o!=="normal"&&`padding${ae(o)}`,`size${ae(i)}`]};return Ne(s,T7,t)},$7=J("td",{name:"MuiTableCell",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`size${ae(n.size)}`],n.padding!=="normal"&&t[`padding${ae(n.padding)}`],n.align!=="inherit"&&t[`align${ae(n.align)}`],n.stickyHeader&&t.stickyHeader]}})($e(({theme:e})=>({...e.typography.body2,display:"table-cell",verticalAlign:"inherit",borderBottom:e.vars?`1px solid ${e.vars.palette.TableCell.border}`:`1px solid - ${e.palette.mode==="light"?ta(Be(e.palette.divider,1),.88):ea(Be(e.palette.divider,1),.68)}`,textAlign:"left",padding:16,variants:[{props:{variant:"head"},style:{color:(e.vars||e).palette.text.primary,lineHeight:e.typography.pxToRem(24),fontWeight:e.typography.fontWeightMedium}},{props:{variant:"body"},style:{color:(e.vars||e).palette.text.primary}},{props:{variant:"footer"},style:{color:(e.vars||e).palette.text.secondary,lineHeight:e.typography.pxToRem(21),fontSize:e.typography.pxToRem(12)}},{props:{size:"small"},style:{padding:"6px 16px",[`&.${P7.paddingCheckbox}`]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}}},{props:{padding:"checkbox"},style:{width:48,padding:"0 0 0 4px"}},{props:{padding:"none"},style:{padding:0}},{props:{align:"left"},style:{textAlign:"left"}},{props:{align:"center"},style:{textAlign:"center"}},{props:{align:"right"},style:{textAlign:"right",flexDirection:"row-reverse"}},{props:{align:"justify"},style:{textAlign:"justify"}},{props:({ownerState:t})=>t.stickyHeader,style:{position:"sticky",top:0,zIndex:2,backgroundColor:(e.vars||e).palette.background.default}}]}))),ys=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableCell"}),{align:o="inherit",className:i,component:a,padding:s,scope:l,size:c,sortDirection:u,variant:d,...f}=r,p=b.useContext(N_),h=b.useContext(Ec),y=h&&h.variant==="head";let C;a?C=a:C=y?"th":"td";let v=l;C==="td"?v=void 0:!v&&y&&(v="col");const S=d||h&&h.variant,m={...r,align:o,component:C,padding:s||(p&&p.padding?p.padding:"normal"),size:c||(p&&p.size?p.size:"medium"),sortDirection:u,stickyHeader:S==="head"&&p&&p.stickyHeader,variant:S},w=k7(m);let _=null;return u&&(_=u==="asc"?"ascending":"descending"),g.jsx($7,{as:C,ref:n,className:ve(w.root,i),"aria-sort":_,scope:v,ownerState:m,...f})});function E7(e){return Oe("MuiTableContainer",e)}Ee("MuiTableContainer",["root"]);const M7=e=>{const{classes:t}=e;return Ne({root:["root"]},E7,t)},I7=J("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:(e,t)=>t.root})({width:"100%",overflowX:"auto"}),O7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableContainer"}),{className:o,component:i="div",...a}=r,s={...r,component:i},l=M7(s);return g.jsx(I7,{ref:n,as:i,className:ve(l.root,o),ownerState:s,...a})});function L7(e){return Oe("MuiTableFooter",e)}Ee("MuiTableFooter",["root"]);const A7=e=>{const{classes:t}=e;return Ne({root:["root"]},L7,t)},N7=J("tfoot",{name:"MuiTableFooter",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"table-footer-group"}),D7={variant:"footer"},tx="tfoot",j7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableFooter"}),{className:o,component:i=tx,...a}=r,s={...r,component:i},l=A7(s);return g.jsx(Ec.Provider,{value:D7,children:g.jsx(N7,{as:i,className:ve(l.root,o),ref:n,role:i===tx?null:"rowgroup",ownerState:s,...a})})});function F7(e){return Oe("MuiTableHead",e)}Ee("MuiTableHead",["root"]);const B7=e=>{const{classes:t}=e;return Ne({root:["root"]},F7,t)},z7=J("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"table-header-group"}),H7={variant:"head"},nx="thead",V7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableHead"}),{className:o,component:i=nx,...a}=r,s={...r,component:i},l=B7(s);return g.jsx(Ec.Provider,{value:H7,children:g.jsx(z7,{as:i,className:ve(l.root,o),ref:n,role:i===nx?null:"rowgroup",ownerState:s,...a})})});function W7(e){return Oe("MuiToolbar",e)}Ee("MuiToolbar",["root","gutters","regular","dense"]);const U7=e=>{const{classes:t,disableGutters:n,variant:r}=e;return Ne({root:["root",!n&&"gutters",r]},W7,t)},G7=J("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})($e(({theme:e})=>({position:"relative",display:"flex",alignItems:"center",variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:e.mixins.toolbar}]}))),D_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiToolbar"}),{className:o,component:i="div",disableGutters:a=!1,variant:s="regular",...l}=r,c={...r,component:i,disableGutters:a,variant:s},u=U7(c);return g.jsx(G7,{as:i,className:ve(u.root,o),ref:n,ownerState:c,...l})}),j_=un(g.jsx("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),F_=un(g.jsx("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight"),q7=b.forwardRef(function(t,n){const{backIconButtonProps:r,count:o,disabled:i=!1,getItemAriaLabel:a,nextIconButtonProps:s,onPageChange:l,page:c,rowsPerPage:u,showFirstButton:d,showLastButton:f,slots:p={},slotProps:h={},...y}=t,C=Es(),v=H=>{l(H,0)},S=H=>{l(H,c-1)},m=H=>{l(H,c+1)},w=H=>{l(H,Math.max(0,Math.ceil(o/u)-1))},_=p.firstButton??hr,R=p.lastButton??hr,k=p.nextButton??hr,T=p.previousButton??hr,P=p.firstButtonIcon??PL,x=p.lastButtonIcon??kL,$=p.nextButtonIcon??F_,I=p.previousButtonIcon??j_,O=C?R:_,D=C?k:T,M=C?T:k,A=C?_:R,N=C?h.lastButton:h.firstButton,E=C?h.nextButton:h.previousButton,L=C?h.previousButton:h.nextButton,B=C?h.firstButton:h.lastButton;return g.jsxs("div",{ref:n,...y,children:[d&&g.jsx(O,{onClick:v,disabled:i||c===0,"aria-label":a("first",c),title:a("first",c),...N,children:C?g.jsx(x,{...h.lastButtonIcon}):g.jsx(P,{...h.firstButtonIcon})}),g.jsx(D,{onClick:S,disabled:i||c===0,color:"inherit","aria-label":a("previous",c),title:a("previous",c),...E??r,children:C?g.jsx($,{...h.nextButtonIcon}):g.jsx(I,{...h.previousButtonIcon})}),g.jsx(M,{onClick:m,disabled:i||(o!==-1?c>=Math.ceil(o/u)-1:!1),color:"inherit","aria-label":a("next",c),title:a("next",c),...L??s,children:C?g.jsx(I,{...h.previousButtonIcon}):g.jsx($,{...h.nextButtonIcon})}),f&&g.jsx(A,{onClick:w,disabled:i||c>=Math.ceil(o/u)-1,"aria-label":a("last",c),title:a("last",c),...B,children:C?g.jsx(P,{...h.firstButtonIcon}):g.jsx(x,{...h.lastButtonIcon})})]})});function K7(e){return Oe("MuiTablePagination",e)}const Ol=Ee("MuiTablePagination",["root","toolbar","spacer","selectLabel","selectRoot","select","selectIcon","input","menuItem","displayedRows","actions"]);var rx;const Z7=J(ys,{name:"MuiTablePagination",slot:"Root",overridesResolver:(e,t)=>t.root})($e(({theme:e})=>({overflow:"auto",color:(e.vars||e).palette.text.primary,fontSize:e.typography.pxToRem(14),"&:last-child":{padding:0}}))),Q7=J(D_,{name:"MuiTablePagination",slot:"Toolbar",overridesResolver:(e,t)=>({[`& .${Ol.actions}`]:t.actions,...t.toolbar})})($e(({theme:e})=>({minHeight:52,paddingRight:2,[`${e.breakpoints.up("xs")} and (orientation: landscape)`]:{minHeight:52},[e.breakpoints.up("sm")]:{minHeight:52,paddingRight:2},[`& .${Ol.actions}`]:{flexShrink:0,marginLeft:20}}))),Y7=J("div",{name:"MuiTablePagination",slot:"Spacer",overridesResolver:(e,t)=>t.spacer})({flex:"1 1 100%"}),X7=J("p",{name:"MuiTablePagination",slot:"SelectLabel",overridesResolver:(e,t)=>t.selectLabel})($e(({theme:e})=>({...e.typography.body2,flexShrink:0}))),J7=J(vp,{name:"MuiTablePagination",slot:"Select",overridesResolver:(e,t)=>({[`& .${Ol.selectIcon}`]:t.selectIcon,[`& .${Ol.select}`]:t.select,...t.input,...t.selectRoot})})({color:"inherit",fontSize:"inherit",flexShrink:0,marginRight:32,marginLeft:8,[`& .${Ol.select}`]:{paddingLeft:8,paddingRight:24,textAlign:"right",textAlignLast:"right"}}),eA=J($c,{name:"MuiTablePagination",slot:"MenuItem",overridesResolver:(e,t)=>t.menuItem})({}),tA=J("p",{name:"MuiTablePagination",slot:"DisplayedRows",overridesResolver:(e,t)=>t.displayedRows})($e(({theme:e})=>({...e.typography.body2,flexShrink:0})));function nA({from:e,to:t,count:n}){return`${e}–${t} of ${n!==-1?n:`more than ${t}`}`}function rA(e){return`Go to ${e} page`}const oA=e=>{const{classes:t}=e;return Ne({root:["root"],toolbar:["toolbar"],spacer:["spacer"],selectLabel:["selectLabel"],select:["select"],input:["input"],selectIcon:["selectIcon"],menuItem:["menuItem"],displayedRows:["displayedRows"],actions:["actions"]},K7,t)},iA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTablePagination"}),{ActionsComponent:o=q7,backIconButtonProps:i,className:a,colSpan:s,component:l=ys,count:c,disabled:u=!1,getItemAriaLabel:d=rA,labelDisplayedRows:f=nA,labelRowsPerPage:p="Rows per page:",nextIconButtonProps:h,onPageChange:y,onRowsPerPageChange:C,page:v,rowsPerPage:S,rowsPerPageOptions:m=[10,25,50,100],SelectProps:w={},showFirstButton:_=!1,showLastButton:R=!1,slotProps:k={},slots:T={},...P}=r,x=r,$=oA(x),I=(k==null?void 0:k.select)??w,O=I.native?"option":eA;let D;(l===ys||l==="td")&&(D=s||1e3);const M=ds(I.id),A=ds(I.labelId),N=()=>c===-1?(v+1)*S:S===-1?c:Math.min(c,(v+1)*S);return g.jsx(Z7,{colSpan:D,ref:n,as:l,ownerState:x,className:ve($.root,a),...P,children:g.jsxs(Q7,{className:$.toolbar,children:[g.jsx(Y7,{className:$.spacer}),m.length>1&&g.jsx(X7,{className:$.selectLabel,id:A,children:p}),m.length>1&&g.jsx(J7,{variant:"standard",...!I.variant&&{input:rx||(rx=g.jsx(mp,{}))},value:S,onChange:C,id:M,labelId:A,...I,classes:{...I.classes,root:ve($.input,$.selectRoot,(I.classes||{}).root),select:ve($.select,(I.classes||{}).select),icon:ve($.selectIcon,(I.classes||{}).icon)},disabled:u,children:m.map(E=>b.createElement(O,{...!Vd(O)&&{ownerState:x},className:$.menuItem,key:E.label?E.label:E,value:E.value?E.value:E},E.label?E.label:E))}),g.jsx(tA,{className:$.displayedRows,children:f({from:c===0?0:v*S+1,to:N(),count:c===-1?-1:c,page:v})}),g.jsx(o,{className:$.actions,backIconButtonProps:i,count:c,nextIconButtonProps:h,onPageChange:y,page:v,rowsPerPage:S,showFirstButton:_,showLastButton:R,slotProps:k.actions,slots:T.actions,getItemAriaLabel:d,disabled:u})]})})});function aA(e){return Oe("MuiTableRow",e)}const ox=Ee("MuiTableRow",["root","selected","hover","head","footer"]),sA=e=>{const{classes:t,selected:n,hover:r,head:o,footer:i}=e;return Ne({root:["root",n&&"selected",r&&"hover",o&&"head",i&&"footer"]},aA,t)},lA=J("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.head&&t.head,n.footer&&t.footer]}})($e(({theme:e})=>({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,[`&.${ox.hover}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${ox.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity)}}}))),ix="tr",yp=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableRow"}),{className:o,component:i=ix,hover:a=!1,selected:s=!1,...l}=r,c=b.useContext(Ec),u={...r,component:i,hover:a,selected:s,head:c&&c.variant==="head",footer:c&&c.variant==="footer"},d=sA(u);return g.jsx(lA,{as:i,ref:n,className:ve(d.root,o),role:i===ix?null:"row",ownerState:u,...l})}),cA=un(g.jsx("path",{d:"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownward");function uA(e){return Oe("MuiTableSortLabel",e)}const vg=Ee("MuiTableSortLabel",["root","active","icon","iconDirectionDesc","iconDirectionAsc","directionDesc","directionAsc"]),dA=e=>{const{classes:t,direction:n,active:r}=e,o={root:["root",r&&"active",`direction${ae(n)}`],icon:["icon",`iconDirection${ae(n)}`]};return Ne(o,uA,t)},fA=J(To,{name:"MuiTableSortLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.active&&t.active]}})($e(({theme:e})=>({cursor:"pointer",display:"inline-flex",justifyContent:"flex-start",flexDirection:"inherit",alignItems:"center","&:focus":{color:(e.vars||e).palette.text.secondary},"&:hover":{color:(e.vars||e).palette.text.secondary,[`& .${vg.icon}`]:{opacity:.5}},[`&.${vg.active}`]:{color:(e.vars||e).palette.text.primary,[`& .${vg.icon}`]:{opacity:1,color:(e.vars||e).palette.text.secondary}}}))),pA=J("span",{name:"MuiTableSortLabel",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,t[`iconDirection${ae(n.direction)}`]]}})($e(({theme:e})=>({fontSize:18,marginRight:4,marginLeft:4,opacity:0,transition:e.transitions.create(["opacity","transform"],{duration:e.transitions.duration.shorter}),userSelect:"none",variants:[{props:{direction:"desc"},style:{transform:"rotate(0deg)"}},{props:{direction:"asc"},style:{transform:"rotate(180deg)"}}]}))),gA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableSortLabel"}),{active:o=!1,children:i,className:a,direction:s="asc",hideSortIcon:l=!1,IconComponent:c=cA,...u}=r,d={...r,active:o,direction:s,hideSortIcon:l,IconComponent:c},f=dA(d);return g.jsxs(fA,{className:ve(f.root,a),component:"span",disableRipple:!0,ownerState:d,ref:n,...u,children:[i,l&&!o?null:g.jsx(pA,{as:c,className:ve(f.icon),ownerState:d})]})});function hA(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}function mA(e,t,n,r={},o=()=>{}){const{ease:i=hA,duration:a=300}=r;let s=null;const l=t[e];let c=!1;const u=()=>{c=!0},d=f=>{if(c){o(new Error("Animation cancelled"));return}s===null&&(s=f);const p=Math.min(1,(f-s)/a);if(t[e]=i(p)*(n-l)+l,p>=1){requestAnimationFrame(()=>{o(null)});return}requestAnimationFrame(d)};return l===n?(o(new Error("Element already at target position")),u):(requestAnimationFrame(d),u)}const vA={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function yA(e){const{onChange:t,...n}=e,r=b.useRef(),o=b.useRef(null),i=()=>{r.current=o.current.offsetHeight-o.current.clientHeight};return zr(()=>{const a=cp(()=>{const l=r.current;i(),l!==r.current&&t(r.current)}),s=Br(o.current);return s.addEventListener("resize",a),()=>{a.clear(),s.removeEventListener("resize",a)}},[t]),b.useEffect(()=>{i(),t(r.current)},[t]),g.jsx("div",{style:vA,ref:o,...n})}function bA(e){return Oe("MuiTabScrollButton",e)}const xA=Ee("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),SA=e=>{const{classes:t,orientation:n,disabled:r}=e;return Ne({root:["root",n,r&&"disabled"]},bA,t)},wA=J(To,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.orientation&&t[n.orientation]]}})({width:40,flexShrink:0,opacity:.8,[`&.${xA.disabled}`]:{opacity:0},variants:[{props:{orientation:"vertical"},style:{width:"100%",height:40,"& svg":{transform:"var(--TabScrollButton-svgRotate)"}}}]}),CA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTabScrollButton"}),{className:o,slots:i={},slotProps:a={},direction:s,orientation:l,disabled:c,...u}=r,d=Es(),f={isRtl:d,...r},p=SA(f),h=i.StartScrollButtonIcon??j_,y=i.EndScrollButtonIcon??F_,C=na({elementType:h,externalSlotProps:a.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:f}),v=na({elementType:y,externalSlotProps:a.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:f});return g.jsx(wA,{component:"div",className:ve(p.root,o),ref:n,role:null,ownerState:f,tabIndex:null,...u,style:{...u.style,...l==="vertical"&&{"--TabScrollButton-svgRotate":`rotate(${d?-90:90}deg)`}},children:s==="left"?g.jsx(h,{...C}):g.jsx(y,{...v})})});function _A(e){return Oe("MuiTabs",e)}const yg=Ee("MuiTabs",["root","vertical","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),ax=(e,t)=>e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:e.firstChild,sx=(e,t)=>e===t?e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:e.lastChild,mu=(e,t,n)=>{let r=!1,o=n(e,t);for(;o;){if(o===e.firstChild){if(r)return;r=!0}const i=o.disabled||o.getAttribute("aria-disabled")==="true";if(!o.hasAttribute("tabindex")||i)o=n(e,o);else{o.focus();return}}},RA=e=>{const{vertical:t,fixed:n,hideScrollbar:r,scrollableX:o,scrollableY:i,centered:a,scrollButtonsHideMobile:s,classes:l}=e;return Ne({root:["root",t&&"vertical"],scroller:["scroller",n&&"fixed",r&&"hideScrollbar",o&&"scrollableX",i&&"scrollableY"],flexContainer:["flexContainer",t&&"flexContainerVertical",a&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",s&&"scrollButtonsHideMobile"],scrollableX:[o&&"scrollableX"],hideScrollbar:[r&&"hideScrollbar"]},_A,l)},TA=J("div",{name:"MuiTabs",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${yg.scrollButtons}`]:t.scrollButtons},{[`& .${yg.scrollButtons}`]:n.scrollButtonsHideMobile&&t.scrollButtonsHideMobile},t.root,n.vertical&&t.vertical]}})($e(({theme:e})=>({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex",variants:[{props:({ownerState:t})=>t.vertical,style:{flexDirection:"column"}},{props:({ownerState:t})=>t.scrollButtonsHideMobile,style:{[`& .${yg.scrollButtons}`]:{[e.breakpoints.down("sm")]:{display:"none"}}}}]}))),PA=J("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.scroller,n.fixed&&t.fixed,n.hideScrollbar&&t.hideScrollbar,n.scrollableX&&t.scrollableX,n.scrollableY&&t.scrollableY]}})({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap",variants:[{props:({ownerState:e})=>e.fixed,style:{overflowX:"hidden",width:"100%"}},{props:({ownerState:e})=>e.hideScrollbar,style:{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}},{props:({ownerState:e})=>e.scrollableX,style:{overflowX:"auto",overflowY:"hidden"}},{props:({ownerState:e})=>e.scrollableY,style:{overflowY:"auto",overflowX:"hidden"}}]}),kA=J("div",{name:"MuiTabs",slot:"FlexContainer",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.flexContainer,n.vertical&&t.flexContainerVertical,n.centered&&t.centered]}})({display:"flex",variants:[{props:({ownerState:e})=>e.vertical,style:{flexDirection:"column"}},{props:({ownerState:e})=>e.centered,style:{justifyContent:"center"}}]}),$A=J("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(e,t)=>t.indicator})($e(({theme:e})=>({position:"absolute",height:2,bottom:0,width:"100%",transition:e.transitions.create(),variants:[{props:{indicatorColor:"primary"},style:{backgroundColor:(e.vars||e).palette.primary.main}},{props:{indicatorColor:"secondary"},style:{backgroundColor:(e.vars||e).palette.secondary.main}},{props:({ownerState:t})=>t.vertical,style:{height:"100%",width:2,right:0}}]}))),EA=J(yA)({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),lx={},MA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTabs"}),o=zt(),i=Es(),{"aria-label":a,"aria-labelledby":s,action:l,centered:c=!1,children:u,className:d,component:f="div",allowScrollButtonsMobile:p=!1,indicatorColor:h="primary",onChange:y,orientation:C="horizontal",ScrollButtonComponent:v=CA,scrollButtons:S="auto",selectionFollowsFocus:m,slots:w={},slotProps:_={},TabIndicatorProps:R={},TabScrollButtonProps:k={},textColor:T="primary",value:P,variant:x="standard",visibleScrollbar:$=!1,...I}=r,O=x==="scrollable",D=C==="vertical",M=D?"scrollTop":"scrollLeft",A=D?"top":"left",N=D?"bottom":"right",E=D?"clientHeight":"clientWidth",L=D?"height":"width",B={...r,component:f,allowScrollButtonsMobile:p,indicatorColor:h,orientation:C,vertical:D,scrollButtons:S,textColor:T,variant:x,visibleScrollbar:$,fixed:!O,hideScrollbar:O&&!$,scrollableX:O&&!D,scrollableY:O&&D,centered:c&&!O,scrollButtonsHideMobile:!p},H=RA(B),z=na({elementType:w.StartScrollButtonIcon,externalSlotProps:_.startScrollButtonIcon,ownerState:B}),j=na({elementType:w.EndScrollButtonIcon,externalSlotProps:_.endScrollButtonIcon,ownerState:B}),[F,W]=b.useState(!1),[V,ee]=b.useState(lx),[re,U]=b.useState(!1),[K,se]=b.useState(!1),[q,ce]=b.useState(!1),[ue,ie]=b.useState({overflow:"hidden",scrollbarWidth:0}),te=new Map,de=b.useRef(null),Q=b.useRef(null),be=()=>{const oe=de.current;let me;if(oe){const Ve=oe.getBoundingClientRect();me={clientWidth:oe.clientWidth,scrollLeft:oe.scrollLeft,scrollTop:oe.scrollTop,scrollWidth:oe.scrollWidth,top:Ve.top,bottom:Ve.bottom,left:Ve.left,right:Ve.right}}let je;if(oe&&P!==!1){const Ve=Q.current.children;if(Ve.length>0){const Ye=Ve[te.get(P)];je=Ye?Ye.getBoundingClientRect():null}}return{tabsMeta:me,tabMeta:je}},Te=bn(()=>{const{tabsMeta:oe,tabMeta:me}=be();let je=0,Ve;D?(Ve="top",me&&oe&&(je=me.top-oe.top+oe.scrollTop)):(Ve=i?"right":"left",me&&oe&&(je=(i?-1:1)*(me[Ve]-oe[Ve]+oe.scrollLeft)));const Ye={[Ve]:je,[L]:me?me[L]:0};if(typeof V[Ve]!="number"||typeof V[L]!="number")ee(Ye);else{const Tt=Math.abs(V[Ve]-Ye[Ve]),Zt=Math.abs(V[L]-Ye[L]);(Tt>=1||Zt>=1)&&ee(Ye)}}),we=(oe,{animation:me=!0}={})=>{me?mA(M,de.current,oe,{duration:o.transitions.duration.standard}):de.current[M]=oe},ge=oe=>{let me=de.current[M];D?me+=oe:me+=oe*(i?-1:1),we(me)},le=()=>{const oe=de.current[E];let me=0;const je=Array.from(Q.current.children);for(let Ve=0;Veoe){Ve===0&&(me=oe);break}me+=Ye[E]}return me},Se=()=>{ge(-1*le())},ye=()=>{ge(le())},Ge=b.useCallback(oe=>{ie({overflow:null,scrollbarWidth:oe})},[]),Pe=()=>{const oe={};oe.scrollbarSizeListener=O?g.jsx(EA,{onChange:Ge,className:ve(H.scrollableX,H.hideScrollbar)}):null;const je=O&&(S==="auto"&&(re||K)||S===!0);return oe.scrollButtonStart=je?g.jsx(v,{slots:{StartScrollButtonIcon:w.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:z},orientation:C,direction:i?"right":"left",onClick:Se,disabled:!re,...k,className:ve(H.scrollButtons,k.className)}):null,oe.scrollButtonEnd=je?g.jsx(v,{slots:{EndScrollButtonIcon:w.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:j},orientation:C,direction:i?"left":"right",onClick:ye,disabled:!K,...k,className:ve(H.scrollButtons,k.className)}):null,oe},Re=bn(oe=>{const{tabsMeta:me,tabMeta:je}=be();if(!(!je||!me)){if(je[A]me[N]){const Ve=me[M]+(je[N]-me[N]);we(Ve,{animation:oe})}}}),ke=bn(()=>{O&&S!==!1&&ce(!q)});b.useEffect(()=>{const oe=cp(()=>{de.current&&Te()});let me;const je=Tt=>{Tt.forEach(Zt=>{Zt.removedNodes.forEach(Mn=>{me==null||me.unobserve(Mn)}),Zt.addedNodes.forEach(Mn=>{me==null||me.observe(Mn)})}),oe(),ke()},Ve=Br(de.current);Ve.addEventListener("resize",oe);let Ye;return typeof ResizeObserver<"u"&&(me=new ResizeObserver(oe),Array.from(Q.current.children).forEach(Tt=>{me.observe(Tt)})),typeof MutationObserver<"u"&&(Ye=new MutationObserver(je),Ye.observe(Q.current,{childList:!0})),()=>{oe.clear(),Ve.removeEventListener("resize",oe),Ye==null||Ye.disconnect(),me==null||me.disconnect()}},[Te,ke]),b.useEffect(()=>{const oe=Array.from(Q.current.children),me=oe.length;if(typeof IntersectionObserver<"u"&&me>0&&O&&S!==!1){const je=oe[0],Ve=oe[me-1],Ye={root:de.current,threshold:.99},Tt=Vn=>{U(!Vn[0].isIntersecting)},Zt=new IntersectionObserver(Tt,Ye);Zt.observe(je);const Mn=Vn=>{se(!Vn[0].isIntersecting)},ir=new IntersectionObserver(Mn,Ye);return ir.observe(Ve),()=>{Zt.disconnect(),ir.disconnect()}}},[O,S,q,u==null?void 0:u.length]),b.useEffect(()=>{W(!0)},[]),b.useEffect(()=>{Te()}),b.useEffect(()=>{Re(lx!==V)},[Re,V]),b.useImperativeHandle(l,()=>({updateIndicator:Te,updateScrollButtons:ke}),[Te,ke]);const pe=g.jsx($A,{...R,className:ve(H.indicator,R.className),ownerState:B,style:{...V,...R.style}});let ne=0;const xe=b.Children.map(u,oe=>{if(!b.isValidElement(oe))return null;const me=oe.props.value===void 0?ne:oe.props.value;te.set(me,ne);const je=me===P;return ne+=1,b.cloneElement(oe,{fullWidth:x==="fullWidth",indicator:je&&!F&&pe,selected:je,selectionFollowsFocus:m,onChange:y,textColor:T,value:me,...ne===1&&P===!1&&!oe.props.tabIndex?{tabIndex:0}:{}})}),Le=oe=>{const me=Q.current,je=ln(me).activeElement;if(je.getAttribute("role")!=="tab")return;let Ye=C==="horizontal"?"ArrowLeft":"ArrowUp",Tt=C==="horizontal"?"ArrowRight":"ArrowDown";switch(C==="horizontal"&&i&&(Ye="ArrowRight",Tt="ArrowLeft"),oe.key){case Ye:oe.preventDefault(),mu(me,je,sx);break;case Tt:oe.preventDefault(),mu(me,je,ax);break;case"Home":oe.preventDefault(),mu(me,null,ax);break;case"End":oe.preventDefault(),mu(me,null,sx);break}},fe=Pe();return g.jsxs(TA,{className:ve(H.root,d),ownerState:B,ref:n,as:f,...I,children:[fe.scrollButtonStart,fe.scrollbarSizeListener,g.jsxs(PA,{className:H.scroller,ownerState:B,style:{overflow:ue.overflow,[D?`margin${i?"Left":"Right"}`:"marginBottom"]:$?void 0:-ue.scrollbarWidth},ref:de,children:[g.jsx(kA,{"aria-label":a,"aria-labelledby":s,"aria-orientation":C==="vertical"?"vertical":null,className:H.flexContainer,ownerState:B,onKeyDown:Le,ref:Q,role:"tablist",children:xe}),F&&pe]}),fe.scrollButtonEnd]})});function IA(e){return Oe("MuiTextField",e)}Ee("MuiTextField",["root"]);const OA={standard:Gd,filled:Ud,outlined:qd},LA=e=>{const{classes:t}=e;return Ne({root:["root"]},IA,t)},AA=J(kO,{name:"MuiTextField",slot:"Root",overridesResolver:(e,t)=>t.root})({}),NA=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTextField"}),{autoComplete:o,autoFocus:i=!1,children:a,className:s,color:l="primary",defaultValue:c,disabled:u=!1,error:d=!1,FormHelperTextProps:f,fullWidth:p=!1,helperText:h,id:y,InputLabelProps:C,inputProps:v,InputProps:S,inputRef:m,label:w,maxRows:_,minRows:R,multiline:k=!1,name:T,onBlur:P,onChange:x,onFocus:$,placeholder:I,required:O=!1,rows:D,select:M=!1,SelectProps:A,slots:N={},slotProps:E={},type:L,value:B,variant:H="outlined",...z}=r,j={...r,autoFocus:i,color:l,disabled:u,error:d,fullWidth:p,multiline:k,required:O,select:M,variant:H},F=LA(j),W=ds(y),V=h&&W?`${W}-helper-text`:void 0,ee=w&&W?`${W}-label`:void 0,re=OA[H],U={slots:N,slotProps:{input:S,inputLabel:C,htmlInput:v,formHelperText:f,select:A,...E}},K={},se=U.slotProps.inputLabel;H==="outlined"&&(se&&typeof se.shrink<"u"&&(K.notched=se.shrink),K.label=w),M&&((!A||!A.native)&&(K.id=void 0),K["aria-describedby"]=void 0);const[q,ce]=an("input",{elementType:re,externalForwardedProps:U,additionalProps:K,ownerState:j}),[ue,ie]=an("inputLabel",{elementType:ZO,externalForwardedProps:U,ownerState:j}),[te,de]=an("htmlInput",{elementType:"input",externalForwardedProps:U,ownerState:j}),[Q,be]=an("formHelperText",{elementType:NO,externalForwardedProps:U,ownerState:j}),[Te,we]=an("select",{elementType:vp,externalForwardedProps:U,ownerState:j}),ge=g.jsx(q,{"aria-describedby":V,autoComplete:o,autoFocus:i,defaultValue:c,fullWidth:p,multiline:k,name:T,rows:D,maxRows:_,minRows:R,type:L,value:B,id:W,inputRef:m,onBlur:P,onChange:x,onFocus:$,placeholder:I,inputProps:de,slots:{input:N.htmlInput?te:void 0},...ce});return g.jsxs(AA,{className:ve(F.root,s),disabled:u,error:d,fullWidth:p,ref:n,required:O,color:l,variant:H,ownerState:j,...z,children:[w!=null&&w!==""&&g.jsx(ue,{htmlFor:W,id:ee,...ie,children:w}),M?g.jsx(Te,{"aria-describedby":V,id:W,labelId:ee,value:B,input:ge,...we,children:a}):ge,h&&g.jsx(Q,{id:V,...be,children:h})]})});var DA={exports:{}};/* @license -Papa Parse -v5.4.1 -https://github.com/mholt/PapaParse -License: MIT -*/(function(e,t){(function(n,r){e.exports=r()})(jl,function n(){var r=typeof self<"u"?self:typeof window<"u"?window:r!==void 0?r:{},o=!r.document&&!!r.postMessage,i=r.IS_PAPA_WORKER||!1,a={},s=0,l={parse:function(T,P){var x=(P=P||{}).dynamicTyping||!1;if(k(x)&&(P.dynamicTypingFunction=x,x={}),P.dynamicTyping=x,P.transform=!!k(P.transform)&&P.transform,P.worker&&l.WORKERS_SUPPORTED){var $=function(){if(!l.WORKERS_SUPPORTED)return!1;var O=(M=r.URL||r.webkitURL||null,A=n.toString(),l.BLOB_URL||(l.BLOB_URL=M.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",A,")();"],{type:"text/javascript"})))),D=new r.Worker(O),M,A;return D.onmessage=S,D.id=s++,a[D.id]=D}();return $.userStep=P.step,$.userChunk=P.chunk,$.userComplete=P.complete,$.userError=P.error,P.step=k(P.step),P.chunk=k(P.chunk),P.complete=k(P.complete),P.error=k(P.error),delete P.worker,void $.postMessage({input:T,config:P,workerId:$.id})}var I=null;return l.NODE_STREAM_INPUT,typeof T=="string"?(T=function(O){return O.charCodeAt(0)===65279?O.slice(1):O}(T),I=P.download?new d(P):new p(P)):T.readable===!0&&k(T.read)&&k(T.on)?I=new h(P):(r.File&&T instanceof File||T instanceof Object)&&(I=new f(P)),I.stream(T)},unparse:function(T,P){var x=!1,$=!0,I=",",O=`\r -`,D='"',M=D+D,A=!1,N=null,E=!1;(function(){if(typeof P=="object"){if(typeof P.delimiter!="string"||l.BAD_DELIMITERS.filter(function(z){return P.delimiter.indexOf(z)!==-1}).length||(I=P.delimiter),(typeof P.quotes=="boolean"||typeof P.quotes=="function"||Array.isArray(P.quotes))&&(x=P.quotes),typeof P.skipEmptyLines!="boolean"&&typeof P.skipEmptyLines!="string"||(A=P.skipEmptyLines),typeof P.newline=="string"&&(O=P.newline),typeof P.quoteChar=="string"&&(D=P.quoteChar),typeof P.header=="boolean"&&($=P.header),Array.isArray(P.columns)){if(P.columns.length===0)throw new Error("Option columns is empty");N=P.columns}P.escapeChar!==void 0&&(M=P.escapeChar+D),(typeof P.escapeFormulae=="boolean"||P.escapeFormulae instanceof RegExp)&&(E=P.escapeFormulae instanceof RegExp?P.escapeFormulae:/^[=+\-@\t\r].*$/)}})();var L=new RegExp(C(D),"g");if(typeof T=="string"&&(T=JSON.parse(T)),Array.isArray(T)){if(!T.length||Array.isArray(T[0]))return B(null,T,A);if(typeof T[0]=="object")return B(N||Object.keys(T[0]),T,A)}else if(typeof T=="object")return typeof T.data=="string"&&(T.data=JSON.parse(T.data)),Array.isArray(T.data)&&(T.fields||(T.fields=T.meta&&T.meta.fields||N),T.fields||(T.fields=Array.isArray(T.data[0])?T.fields:typeof T.data[0]=="object"?Object.keys(T.data[0]):[]),Array.isArray(T.data[0])||typeof T.data[0]=="object"||(T.data=[T.data])),B(T.fields||[],T.data||[],A);throw new Error("Unable to serialize unrecognized input");function B(z,j,F){var W="";typeof z=="string"&&(z=JSON.parse(z)),typeof j=="string"&&(j=JSON.parse(j));var V=Array.isArray(z)&&0=this._config.preview;if(i)r.postMessage({results:O,workerId:l.WORKER_ID,finished:M});else if(k(this._config.chunk)&&!x){if(this._config.chunk(O,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);O=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(O.data),this._completeResults.errors=this._completeResults.errors.concat(O.errors),this._completeResults.meta=O.meta),this._completed||!M||!k(this._config.complete)||O&&O.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),M||O&&O.meta.paused||this._nextChunk(),O}this._halted=!0},this._sendError=function(P){k(this._config.error)?this._config.error(P):i&&this._config.error&&r.postMessage({workerId:l.WORKER_ID,error:P,finished:!1})}}function d(T){var P;(T=T||{}).chunkSize||(T.chunkSize=l.RemoteChunkSize),u.call(this,T),this._nextChunk=o?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(x){this._input=x,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(P=new XMLHttpRequest,this._config.withCredentials&&(P.withCredentials=this._config.withCredentials),o||(P.onload=R(this._chunkLoaded,this),P.onerror=R(this._chunkError,this)),P.open(this._config.downloadRequestBody?"POST":"GET",this._input,!o),this._config.downloadRequestHeaders){var x=this._config.downloadRequestHeaders;for(var $ in x)P.setRequestHeader($,x[$])}if(this._config.chunkSize){var I=this._start+this._config.chunkSize-1;P.setRequestHeader("Range","bytes="+this._start+"-"+I)}try{P.send(this._config.downloadRequestBody)}catch(O){this._chunkError(O.message)}o&&P.status===0&&this._chunkError()}},this._chunkLoaded=function(){P.readyState===4&&(P.status<200||400<=P.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:P.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(x){var $=x.getResponseHeader("Content-Range");return $===null?-1:parseInt($.substring($.lastIndexOf("/")+1))}(P),this.parseChunk(P.responseText)))},this._chunkError=function(x){var $=P.statusText||x;this._sendError(new Error($))}}function f(T){var P,x;(T=T||{}).chunkSize||(T.chunkSize=l.LocalChunkSize),u.call(this,T);var $=typeof FileReader<"u";this.stream=function(I){this._input=I,x=I.slice||I.webkitSlice||I.mozSlice,$?((P=new FileReader).onload=R(this._chunkLoaded,this),P.onerror=R(this._chunkError,this)):P=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(I.target.result)},this._chunkError=function(){this._sendError(P.error)}}function p(T){var P;u.call(this,T=T||{}),this.stream=function(x){return P=x,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var x,$=this._config.chunkSize;return $?(x=P.substring(0,$),P=P.substring($)):(x=P,P=""),this._finished=!P,this.parseChunk(x)}}}function h(T){u.call(this,T=T||{});var P=[],x=!0,$=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(I){this._input=I,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){$&&P.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),P.length?this.parseChunk(P.shift()):x=!0},this._streamData=R(function(I){try{P.push(typeof I=="string"?I:I.toString(this._config.encoding)),x&&(x=!1,this._checkIsFinished(),this.parseChunk(P.shift()))}catch(O){this._streamError(O)}},this),this._streamError=R(function(I){this._streamCleanUp(),this._sendError(I)},this),this._streamEnd=R(function(){this._streamCleanUp(),$=!0,this._streamData("")},this),this._streamCleanUp=R(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function y(T){var P,x,$,I=Math.pow(2,53),O=-I,D=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,M=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,A=this,N=0,E=0,L=!1,B=!1,H=[],z={data:[],errors:[],meta:{}};if(k(T.step)){var j=T.step;T.step=function(U){if(z=U,V())W();else{if(W(),z.data.length===0)return;N+=U.data.length,T.preview&&N>T.preview?x.abort():(z.data=z.data[0],j(z,A))}}}function F(U){return T.skipEmptyLines==="greedy"?U.join("").trim()==="":U.length===1&&U[0].length===0}function W(){return z&&$&&(re("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+l.DefaultDelimiter+"'"),$=!1),T.skipEmptyLines&&(z.data=z.data.filter(function(U){return!F(U)})),V()&&function(){if(!z)return;function U(se,q){k(T.transformHeader)&&(se=T.transformHeader(se,q)),H.push(se)}if(Array.isArray(z.data[0])){for(var K=0;V()&&K=H.length?"__parsed_extra":H[ce]),T.transform&&(te=T.transform(te,ie)),te=ee(ie,te),ie==="__parsed_extra"?(ue[ie]=ue[ie]||[],ue[ie].push(te)):ue[ie]=te}return T.header&&(ce>H.length?re("FieldMismatch","TooManyFields","Too many fields: expected "+H.length+" fields but parsed "+ce,E+q):ce=Q.length/2?`\r -`:"\r"}(U,q)),$=!1,T.delimiter)k(T.delimiter)&&(T.delimiter=T.delimiter(U),z.meta.delimiter=T.delimiter);else{var ce=function(ie,te,de,Q,be){var Te,we,ge,le;be=be||[","," ","|",";",l.RECORD_SEP,l.UNIT_SEP];for(var Se=0;Se=D)return xe(!0)}else for(ye=N,N++;;){if((ye=L.indexOf(P,ye+1))===-1)return H||re.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:ee.length,index:N}),pe();if(ye===z-1)return pe(L.substring(N,ye).replace(Se,P));if(P!==A||L[ye+1]!==A){if(P===A||ye===0||L[ye-1]!==A){ge!==-1&&ge=D)return xe(!0);break}re.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:ee.length,index:N}),ye++}}else ye++}return pe();function Re(fe){ee.push(fe),K=N}function ke(fe){var oe=0;if(fe!==-1){var me=L.substring(ye+1,fe);me&&me.trim()===""&&(oe=me.length)}return oe}function pe(fe){return H||(fe===void 0&&(fe=L.substring(N)),U.push(fe),N=z,Re(U),V&&Le()),xe()}function ne(fe){N=fe,Re(U),U=[],le=L.indexOf($,N)}function xe(fe){return{data:ee,errors:re,meta:{delimiter:x,linebreak:$,aborted:E,truncated:!!fe,cursor:K+(B||0)}}}function Le(){O(xe()),ee=[],re=[]}},this.abort=function(){E=!0},this.getCharIndex=function(){return N}}function S(T){var P=T.data,x=a[P.workerId],$=!1;if(P.error)x.userError(P.error,P.file);else if(P.results&&P.results.data){var I={abort:function(){$=!0,m(P.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:w,resume:w};if(k(x.userStep)){for(var O=0;O{const{size:t,width:n=16,height:r=16,sx:o,...i}=e;return g.jsx(ra,{sx:{fill:"none",width:t||n,height:t||r,...o},viewBox:"0 0 16 16",...i,children:e.children},void 0)},jA=e=>{const{sx:t,...n}=e;return g.jsx(ra,{sx:{fill:"none",width:24,height:24,...t},viewBox:"0 0 24 24",...n,children:e.children},void 0)},B_=e=>{const{sx:t,...n}=e;return g.jsx(ra,{sx:{fill:"none",width:14,height:14,...t},viewBox:"0 0 14 14",...n,children:e.children},void 0)},FA=e=>g.jsx(jA,{...e,children:g.jsx("path",{d:"M18.861 16.1166C17.4619 18.4433 14.9127 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12H22C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C15.6409 22 18.8274 20.0542 20.5762 17.1457L18.861 16.1166Z",fill:"#1D2939"},void 0)},void 0),BA=e=>g.jsx(B_,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.08871 1.5C3.55444 1.5 1.5 3.55444 1.5 6.08871C1.5 8.62298 3.55444 10.6774 6.08871 10.6774C7.17572 10.6774 8.17445 10.2995 8.96065 9.66778L11.75 12.4571L12.4571 11.75L9.66776 8.96067C10.2994 8.17447 10.6774 7.17573 10.6774 6.08871C10.6774 3.55444 8.62298 1.5 6.08871 1.5ZM2.5 6.08871C2.5 4.10672 4.10672 2.5 6.08871 2.5C8.0707 2.5 9.67742 4.10672 9.67742 6.08871C9.67742 8.0707 8.0707 9.67742 6.08871 9.67742C4.10672 9.67742 2.5 8.0707 2.5 6.08871Z",fill:"#1D2939"},void 0)},void 0),zA=e=>g.jsx(B_,{...e,children:g.jsx("path",{d:"M6.99999 7.91921L3.45958 11.4596L2.54034 10.5404L6.08075 6.99997L2.54039 3.45961L3.45963 2.54037L6.99999 6.08073L10.5403 2.54037L11.4596 3.45961L7.91923 6.99997L11.4596 10.5404L10.5404 11.4596L6.99999 7.91921Z",fill:"#1D2939"},void 0)},void 0),I1=e=>g.jsx(Cn,{...e,children:g.jsx("path",{d:"M4.40029 3.55174C4.16598 3.31743 3.78608 3.31743 3.55177 3.55174C3.31745 3.78606 3.31745 4.16596 3.55177 4.40027L7.15147 7.99998L3.55178 11.5997C3.31746 11.834 3.31746 12.2139 3.55178 12.4482C3.78609 12.6825 4.16599 12.6825 4.40031 12.4482L8 8.84851L11.5997 12.4482C11.834 12.6825 12.2139 12.6825 12.4482 12.4482C12.6825 12.2139 12.6825 11.834 12.4482 11.5997L8.84853 7.99998L12.4482 4.40027C12.6826 4.16596 12.6826 3.78606 12.4482 3.55174C12.2139 3.31743 11.834 3.31743 11.5997 3.55174L8 7.15145L4.40029 3.55174Z",fill:"currentColor"},void 0)},void 0),HA=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.04214 5.95918C6.65053 5.95918 5.52241 7.0873 5.52241 8.47891C5.52241 9.87051 6.65053 10.9986 8.04214 10.9986C9.43374 10.9986 10.5619 9.87051 10.5619 8.47891C10.5619 7.0873 9.43374 5.95918 8.04214 5.95918ZM6.52241 8.47891C6.52241 7.63958 7.20281 6.95918 8.04214 6.95918C8.88146 6.95918 9.56187 7.63958 9.56187 8.47891C9.56187 9.31823 8.88146 9.99864 8.04214 9.99864C7.20281 9.99864 6.52241 9.31823 6.52241 8.47891Z",fill:"currentColor"},void 0),g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.9094 8.18455C14.9095 8.1847 14.9096 8.18483 14.5053 8.47891C14.9096 8.77299 14.9095 8.77312 14.9094 8.77327L14.9084 8.77465L14.9062 8.77775L14.8984 8.78819L14.8705 8.82542C14.8464 8.85725 14.8114 8.90281 14.766 8.96015C14.6753 9.07477 14.543 9.23673 14.3733 9.43024C14.0346 9.8166 13.544 10.3323 12.9362 10.8492C11.7356 11.8704 10.0053 12.9578 8.04214 12.9578C6.07894 12.9578 4.34871 11.8704 3.14808 10.8492C2.54026 10.3323 2.04969 9.8166 1.71095 9.43024C1.54128 9.23673 1.40893 9.07477 1.31822 8.96015C1.27285 8.90281 1.23784 8.85725 1.21374 8.82542L1.18582 8.78819L1.17811 8.77775L1.17584 8.77465L1.1751 8.77363C1.17499 8.77349 1.17463 8.77299 1.579 8.47891C1.17463 8.18483 1.17472 8.1847 1.17483 8.18455L1.17584 8.18318L1.17811 8.18007L1.18582 8.16963L1.21374 8.1324C1.23784 8.10057 1.27285 8.05501 1.31822 7.99767C1.40893 7.88305 1.54128 7.72109 1.71095 7.52758C2.04969 7.14122 2.54026 6.62552 3.14808 6.10858C4.34871 5.08746 6.07894 4 8.04214 4C10.0053 4 11.7356 5.08746 12.9362 6.10858C13.544 6.62552 14.0346 7.14122 14.3733 7.52758C14.543 7.72109 14.6753 7.88305 14.766 7.99767C14.8114 8.05501 14.8464 8.10057 14.8705 8.1324L14.8984 8.16963L14.9062 8.18007L14.9084 8.18318L14.9094 8.18455ZM2.46287 8.77099C2.36639 8.66095 2.28336 8.56242 2.21478 8.47891C2.28336 8.3954 2.36639 8.29687 2.46287 8.18683C2.77823 7.82714 3.23416 7.34812 3.79594 6.87033C4.93451 5.902 6.43584 5 8.04214 5C9.64843 5 11.1498 5.902 12.2883 6.87033C12.8501 7.34812 13.306 7.82714 13.6214 8.18683C13.7179 8.29687 13.8009 8.3954 13.8695 8.47891C13.8009 8.56241 13.7179 8.66095 13.6214 8.77099C13.306 9.13068 12.8501 9.6097 12.2883 10.0875C11.1498 11.0558 9.64843 11.9578 8.04214 11.9578C6.43584 11.9578 4.93451 11.0558 3.79594 10.0875C3.23416 9.6097 2.77823 9.13068 2.46287 8.77099Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M14.5053 8.47891L14.9094 8.18455C15.0369 8.35988 15.0369 8.59794 14.9094 8.77327L14.5053 8.47891Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M1.17483 8.18455L1.579 8.47891L1.1751 8.77363C1.0476 8.59831 1.04733 8.35988 1.17483 8.18455Z",fill:"currentColor"},void 0)]},void 0),VA=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.1106 3.65519C13.301 3.85517 13.2933 4.17165 13.0933 4.36209L9.97993 7.32691C9.96934 7.33914 9.95806 7.35097 9.94609 7.36234C9.93431 7.37355 9.92213 7.38406 9.90959 7.39389L3.64235 13.3621C3.44238 13.5525 3.12589 13.5448 2.93546 13.3448C2.74503 13.1448 2.75276 12.8283 2.95274 12.6379L4.06813 11.5757C3.24267 11.0059 2.55654 10.3585 2.06343 9.83657C1.78455 9.5414 1.56492 9.28373 1.41417 9.09871C1.33874 9.00614 1.28041 8.93157 1.24038 8.87939C1.22036 8.85329 1.2049 8.83278 1.19416 8.81838L1.1816 8.80145L1.178 8.79656L1.17688 8.79502C1.17682 8.79493 1.17621 8.79411 1.58059 8.50003C1.17621 8.20595 1.17631 8.20582 1.17642 8.20567L1.17742 8.20429L1.17969 8.2012L1.18738 8.19078L1.21522 8.15366C1.23926 8.12192 1.27416 8.07649 1.3194 8.01932C1.40984 7.90503 1.54179 7.74357 1.71095 7.55063C2.04868 7.16543 2.53777 6.65128 3.14377 6.13589C4.34075 5.11787 6.06595 4.03351 8.02359 4.03351C9.14779 4.03351 10.1926 4.39154 11.0977 4.88158L12.4037 3.63791C12.6037 3.44748 12.9201 3.45522 13.1106 3.65519ZM9.58316 6.32385L10.331 5.61171C9.60548 5.25934 8.82649 5.03351 8.02359 5.03351C6.42286 5.03351 4.92655 5.93241 3.79163 6.89765C3.23168 7.37388 2.77721 7.85136 2.46287 8.20989C2.36709 8.31913 2.2846 8.417 2.2164 8.50003C2.35319 8.66654 2.54714 8.89243 2.7903 9.14979C3.28839 9.67696 3.98395 10.3265 4.8096 10.8696L5.77368 9.95157C5.5034 9.53331 5.34632 9.03452 5.34632 8.50002C5.34632 7.02144 6.54494 5.82282 8.02352 5.82282C8.6053 5.82282 9.14412 6.00876 9.58316 6.32385ZM6.51881 9.24199C6.40832 9.01845 6.34632 8.76679 6.34632 8.50002C6.34632 7.57372 7.09723 6.82282 8.02352 6.82282C8.31925 6.82282 8.59685 6.89911 8.83805 7.03341L6.51881 9.24199Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M1.58059 8.50003L1.17621 8.79411C1.04871 8.61878 1.04891 8.38099 1.17642 8.20567L1.58059 8.50003Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M12.1782 6.17688C12.3566 5.96615 12.6721 5.93998 12.8828 6.11843C13.495 6.63678 13.9892 7.15531 14.3305 7.54409C14.5015 7.73883 14.6348 7.90192 14.7262 8.01738C14.772 8.07514 14.8073 8.12105 14.8315 8.15312L14.8597 8.19063L14.8675 8.20116L14.8698 8.20428L14.8705 8.2053C14.8705 8.20536 14.871 8.20595 14.4666 8.50003C14.871 8.79411 14.8709 8.79424 14.8708 8.79438L14.8698 8.79576L14.8675 8.79885L14.8598 8.80927L14.832 8.84639C14.8079 8.87813 14.773 8.92356 14.7278 8.98073C14.6373 9.09502 14.5054 9.25649 14.3362 9.44942C13.9985 9.83462 13.5094 10.3488 12.9034 10.8642C11.7064 11.8822 9.98123 12.9665 8.02359 12.9665C7.44356 12.9665 6.8846 12.8711 6.35578 12.7118C6.09137 12.6322 5.9416 12.3533 6.02125 12.0889C6.1009 11.8245 6.37981 11.6747 6.64422 11.7543C7.09234 11.8893 7.55384 11.9665 8.02359 11.9665C9.62432 11.9665 11.1206 11.0676 12.2555 10.1024C12.8155 9.62617 13.27 9.14869 13.5843 8.79017C13.6801 8.68092 13.7626 8.58305 13.8308 8.50002C13.7613 8.41547 13.677 8.31551 13.579 8.20382C13.2613 7.84189 12.8021 7.36041 12.2366 6.88157C12.0259 6.70311 11.9997 6.38761 12.1782 6.17688Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M14.4666 8.50003L14.8705 8.2053C14.998 8.38062 14.9983 8.61906 14.8708 8.79438L14.4666 8.50003Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M10.7007 8.50002C10.7007 8.22388 10.4769 8.00002 10.2007 8.00002C9.92458 8.00002 9.70072 8.22388 9.70072 8.50002C9.70072 9.42631 8.94981 10.1772 8.02352 10.1772C7.74738 10.1772 7.52352 10.4011 7.52352 10.6772C7.52352 10.9534 7.74738 11.1772 8.02352 11.1772C9.5021 11.1772 10.7007 9.9786 10.7007 8.50002Z",fill:"currentColor"},void 0)]},void 0),Cm=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{d:"M9.60001 2.10001C9.32387 2.10001 9.10001 2.32386 9.10001 2.60001C9.10001 2.87615 9.32387 3.10001 9.60001 3.10001L12.5722 3.10001L8.23955 7.60704C8.04818 7.80612 8.05442 8.12264 8.25349 8.31401C8.45257 8.50538 8.76909 8.49914 8.96046 8.30007L13.2465 3.8416V6.45354C13.2465 6.72968 13.4703 6.95354 13.7465 6.95354C14.0226 6.95354 14.2465 6.72968 14.2465 6.45354V2.60001C14.2465 2.32387 14.0226 2.10001 13.7465 2.10001H9.60001Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M3.60001 14.5L11.6 14.5C12.4284 14.5 13.1 13.8284 13.1 13V8.95355C13.1 8.67741 12.8761 8.45355 12.6 8.45355C12.3239 8.45355 12.1 8.67741 12.1 8.95355V13C12.1 13.2761 11.8761 13.5 11.6 13.5L3.60001 13.5C3.32386 13.5 3.10001 13.2761 3.10001 13L3.10001 4.45355C3.10001 4.17741 3.32386 3.95355 3.60001 3.95355L7.10001 3.95355C7.37615 3.95355 7.60001 3.7297 7.60001 3.45355C7.60001 3.17741 7.37615 2.95355 7.10001 2.95355L3.60001 2.95355C2.77158 2.95355 2.10001 3.62513 2.10001 4.45355V13C2.10001 13.8284 2.77158 14.5 3.60001 14.5Z",fill:"currentColor"},void 0)]},void 0),WA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.9348 2.51687C11.2017 2.75702 11.2233 3.16801 10.9831 3.43484L6.87449 8.00001L10.9831 12.5652C11.2233 12.832 11.2017 13.243 10.9348 13.4832C10.668 13.7233 10.257 13.7017 10.0169 13.4348L5.51686 8.43484C5.29439 8.18764 5.29439 7.81238 5.51686 7.56518L10.0169 2.56518C10.257 2.29835 10.668 2.27672 10.9348 2.51687Z",fill:"currentColor"},void 0)},void 0),UA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.56518 2.51687C5.29835 2.75702 5.27672 3.16801 5.51687 3.43484L9.62553 8.00001L5.51687 12.5652C5.27672 12.832 5.29835 13.243 5.56518 13.4832C5.83202 13.7233 6.243 13.7017 6.48315 13.4348L10.9832 8.43484C11.2056 8.18764 11.2056 7.81238 10.9832 7.56518L6.48315 2.56518C6.243 2.29835 5.83202 2.27672 5.56518 2.51687Z",fill:"currentColor"},void 0)},void 0),GA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.58839 5.49693C7.82783 5.30103 8.17216 5.30103 8.4116 5.49693L13.9116 9.99693C14.1894 10.2243 14.2304 10.6338 14.0031 10.9116C13.7757 11.1894 13.3662 11.2304 13.0884 11.0031L8 6.83985L2.9116 11.0031C2.63376 11.2304 2.22425 11.1894 1.99692 10.9116C1.7696 10.6338 1.81055 10.2243 2.08839 9.99693L7.58839 5.49693Z",fill:"currentColor"},void 0)},void 0),ia=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.58839 11.0031C7.82783 11.199 8.17216 11.199 8.4116 11.0031L13.9116 6.50307C14.1894 6.27574 14.2304 5.86623 14.0031 5.58839C13.7757 5.31055 13.3662 5.2696 13.0884 5.49692L8 9.66016L2.9116 5.49692C2.63376 5.2696 2.22425 5.31055 1.99692 5.58839C1.7696 5.86623 1.81055 6.27574 2.08839 6.50307L7.58839 11.0031Z",fill:"currentColor"},void 0)},void 0),qA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.3758 3.37871C13.5718 3.18427 13.5732 2.86769 13.3787 2.67161C13.1843 2.47553 12.8677 2.47421 12.6716 2.66865L7.21656 8.07829C5.97323 6.96347 4.06051 7.00362 2.8654 8.19873C1.62874 9.43539 1.62874 11.4404 2.8654 12.6771C4.10206 13.9137 6.10708 13.9137 7.34374 12.6771C8.37873 11.6421 8.54751 10.0689 7.85009 8.85838L9.64093 7.08244L11.3233 8.76477C11.5185 8.96003 11.8351 8.96003 12.0304 8.76477C12.2256 8.56951 12.2256 8.25292 12.0304 8.05766L10.351 6.37829L11.3316 5.40586L13.0068 7.08109C13.2021 7.27636 13.5187 7.27636 13.7139 7.08109C13.9092 6.88583 13.9092 6.56925 13.7139 6.37399L12.0417 4.70171L13.3758 3.37871ZM3.5725 8.90584C4.41864 8.0597 5.7905 8.0597 6.63663 8.90584C7.48277 9.75197 7.48277 11.1238 6.63663 11.97C5.7905 12.8161 4.41864 12.8161 3.5725 11.97C2.72637 11.1238 2.72637 9.75197 3.5725 8.90584Z",fill:"currentColor"},void 0)},void 0),KA=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8 3.69999C5.62518 3.69999 3.7 5.62516 3.7 7.99999C3.7 10.3748 5.62518 12.3 8 12.3C9.20303 12.3 10.2896 11.8069 11.0709 11.01C11.3415 10.7339 11.7847 10.7295 12.0608 11.0001C12.3368 11.2708 12.3412 11.7139 12.0706 11.99C11.0369 13.0445 9.59437 13.7 8 13.7C4.85198 13.7 2.3 11.148 2.3 7.99999C2.3 4.85196 4.85198 2.29999 8 2.29999C11.148 2.29999 13.7 4.85196 13.7 7.99999C13.7 8.38659 13.3866 8.69999 13 8.69999C12.6134 8.69999 12.3 8.38659 12.3 7.99999C12.3 5.62516 10.3748 3.69999 8 3.69999Z",fill:"currentColor"},void 0)},void 0),ZA=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{d:"M8 7.35C8.35898 7.35 8.65 7.64102 8.65 8V10.5C8.65 10.859 8.35898 11.15 8 11.15C7.64102 11.15 7.35 10.859 7.35 10.5V8C7.35 7.64102 7.64102 7.35 8 7.35Z",fill:"currentColor"},void 0),g.jsx("path",{d:"M8.65 5.5C8.65 5.14101 8.35898 4.85 8 4.85C7.64102 4.85 7.35 5.14102 7.35 5.5V5.6C7.35 5.95898 7.64102 6.25 8 6.25C8.35898 6.25 8.65 5.95898 8.65 5.6V5.5Z",fill:"currentColor"},void 0),g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8ZM8 2.5C4.96243 2.5 2.5 4.96243 2.5 8C2.5 11.0376 4.96243 13.5 8 13.5C11.0376 13.5 13.5 11.0376 13.5 8C13.5 4.96243 11.0376 2.5 8 2.5Z",fill:"currentColor"},void 0)]},void 0),_m=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM8 7.38747C8.33828 7.38747 8.6125 7.6617 8.6125 7.99997V10.5521C8.6125 10.8903 8.33828 11.1646 8 11.1646C7.66173 11.1646 7.3875 10.8903 7.3875 10.5521V7.99997C7.3875 7.6617 7.66173 7.38747 8 7.38747ZM8.6125 5.44789C8.6125 5.10962 8.33828 4.83539 8 4.83539C7.66173 4.83539 7.3875 5.10962 7.3875 5.44789V5.54997C7.3875 5.88825 7.66173 6.16247 8 6.16247C8.33828 6.16247 8.6125 5.88825 8.6125 5.54997V5.44789Z",fill:"currentColor"},void 0)},void 0),z_=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.14215 1.67713C8.64833 0.774291 7.35164 0.774289 6.85782 1.67713L1.16152 12.0915C0.686995 12.9591 1.31483 14.0181 2.30368 14.0181H13.6963C14.6851 14.0181 15.313 12.9591 14.8385 12.0915L9.14215 1.67713ZM8.00002 5.28887C8.3336 5.28887 8.60402 5.55929 8.60402 5.89287V8.40953C8.60402 8.74311 8.3336 9.01353 8.00002 9.01353C7.66644 9.01353 7.39602 8.74311 7.39602 8.40953V5.89287C7.39602 5.55929 7.66644 5.28887 8.00002 5.28887ZM8.60402 10.9262C8.60402 10.5926 8.3336 10.3222 8.00002 10.3222C7.66644 10.3222 7.39602 10.5926 7.39602 10.9262V11.0269C7.39602 11.3604 7.66644 11.6309 8.00002 11.6309C8.3336 11.6309 8.60402 11.3604 8.60402 11.0269V10.9262Z",fill:"currentColor"},void 0)},void 0),H_=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM5.52524 5.5252C5.76443 5.28601 6.15224 5.28601 6.39144 5.5252L8 7.13377L9.60857 5.5252C9.84776 5.28601 10.2356 5.28601 10.4748 5.5252C10.714 5.7644 10.714 6.15221 10.4748 6.39141L8.86621 7.99997L10.4748 9.60854C10.714 9.84773 10.714 10.2355 10.4748 10.4747C10.2356 10.7139 9.84776 10.7139 9.60857 10.4747L8 8.86618L6.39144 10.4747C6.15224 10.7139 5.76443 10.7139 5.52524 10.4747C5.28604 10.2355 5.28604 9.84773 5.52524 9.60854L7.1338 7.99997L5.52524 6.39141C5.28604 6.15221 5.28604 5.7644 5.52524 5.5252Z",fill:"currentColor"},void 0)},void 0),V_=e=>g.jsx(Cn,{...e,children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8 15C11.866 15 15 11.866 15 8C15 4.13401 11.866 1 8 1C4.13401 1 1 4.13401 1 8C1 11.866 4.13401 15 8 15ZM10.9852 6.39141C11.2244 6.15221 11.2244 5.7644 10.9852 5.5252C10.746 5.28601 10.3582 5.28601 10.119 5.5252L6.97916 8.66502L5.88102 7.56687C5.64182 7.32767 5.25401 7.32767 5.01481 7.56687C4.77561 7.80607 4.77561 8.19388 5.01481 8.43308L6.54606 9.96433C6.78526 10.2035 7.17307 10.2035 7.41227 9.96433L10.9852 6.39141Z",fill:"currentColor"},void 0)},void 0),QA=e=>g.jsxs(Cn,{...e,children:[g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.97302 2.34713C4.9413 2.02437 6.24717 1.83331 7.66667 1.83331C9.08617 1.83331 10.392 2.02437 11.3603 2.34713C11.8419 2.50764 12.2676 2.70978 12.5832 2.95853C12.8932 3.20284 13.1667 3.551 13.1667 3.99998V7.66667C13.1667 7.94281 12.9428 8.16667 12.6667 8.16667C12.3905 8.16667 12.1667 7.94281 12.1667 7.66667V5.31162C11.9268 5.44159 11.654 5.55495 11.3603 5.65283C10.392 5.97559 9.08617 6.16665 7.66667 6.16665C6.24717 6.16665 4.9413 5.97559 3.97302 5.65283C3.67939 5.55495 3.4065 5.44159 3.16667 5.31162V8C3.16667 8.16593 3.30186 8.46432 4.04786 8.73916C4.76055 9.00173 5.8604 9.16667 7.33334 9.16667C7.60948 9.16667 7.83334 9.39052 7.83334 9.66667C7.83334 9.94281 7.60948 10.1667 7.33334 10.1667C5.80628 10.1667 4.57279 9.99827 3.70215 9.6775C3.51458 9.6084 3.33399 9.52793 3.16667 9.43528V12C3.16667 12.0015 3.16776 12.0908 3.3783 12.2489C3.58092 12.401 3.9071 12.5595 4.35844 12.7016C5.25531 12.9838 6.53536 13.1667 8.00001 13.1667C8.27615 13.1667 8.50001 13.3905 8.50001 13.6667C8.50001 13.9428 8.27615 14.1667 8.00001 14.1667C6.46465 14.1667 5.07803 13.9764 4.05824 13.6554C3.55124 13.4959 3.10659 13.2953 2.77796 13.0486C2.45726 12.8079 2.16667 12.4587 2.16667 12V4C2.16667 3.55102 2.44011 3.20284 2.75011 2.95853C3.06574 2.70978 3.49149 2.50764 3.97302 2.34713ZM3.36908 3.74394C3.17306 3.89843 3.16667 3.98873 3.16667 3.99998C3.16667 4.01123 3.17306 4.10153 3.36908 4.25601C3.55947 4.40606 3.86596 4.56305 4.28925 4.70415C5.13061 4.9846 6.32474 5.16665 7.66667 5.16665C9.0086 5.16665 10.2027 4.9846 11.0441 4.70415C11.4674 4.56305 11.7739 4.40606 11.9643 4.25601C12.1603 4.10153 12.1667 4.01123 12.1667 3.99998C12.1667 3.98873 12.1603 3.89843 11.9643 3.74394C11.7739 3.5939 11.4674 3.43691 11.0441 3.29581C10.2027 3.01536 9.0086 2.83331 7.66667 2.83331C6.32474 2.83331 5.13061 3.01536 4.28925 3.29581C3.86596 3.43691 3.55947 3.5939 3.36908 3.74394Z",fill:"currentColor"},void 0),g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.8444 12.1373C13.0486 11.8068 13.1667 11.4169 13.1667 11C13.1667 9.80338 12.1966 8.83331 11 8.83331C9.80339 8.83331 8.83333 9.80338 8.83333 11C8.83333 12.1966 9.80339 13.1666 11 13.1666C11.4169 13.1666 11.8068 13.0486 12.1373 12.8444L13.3131 14.0202C13.5084 14.2155 13.825 14.2155 14.0202 14.0202C14.2155 13.8249 14.2155 13.5084 14.0202 13.3131L12.8444 12.1373ZM9.83333 11C9.83333 10.3557 10.3557 9.83331 11 9.83331C11.6443 9.83331 12.1667 10.3557 12.1667 11C12.1667 11.3223 12.0366 11.6133 11.825 11.8249C11.6133 12.0366 11.3223 12.1666 11 12.1666C10.3557 12.1666 9.83333 11.6443 9.83333 11Z",fill:"currentColor"},void 0)]},void 0),YA=e=>{const{severity:t="info"}=e;return{error:g.jsx(H_,{size:14},void 0),info:g.jsx(_m,{size:14},void 0),success:g.jsx(V_,{size:14},void 0),warning:g.jsx(z_,{size:14},void 0),regular:g.jsx(_m,{size:14},void 0),gradient:g.jsx(g.Fragment,{},void 0)}[t]||g.jsx(g.Fragment,{},void 0)},XA="_wrapper_f0zdf_1",JA={wrapper:XA},bp=e=>{const{title:t,sx:n={},PopperProps:r={},margin:o=12,...i}=e,a=zt();return g.jsx(o7,{PopperProps:{sx:{'&.MuiTooltip-popper[data-popper-placement*="top"]':{".MuiTooltip-tooltip":{marginBottom:`${o}px`}},'&.MuiTooltip-popper[data-popper-placement*="bottom"]':{".MuiTooltip-tooltip":{marginTop:`${o}px`}},'&.MuiTooltip-popper[data-popper-placement*="left"]':{".MuiTooltip-tooltip":{marginRight:`${o}px`}},'&.MuiTooltip-popper[data-popper-placement*="right"]':{".MuiTooltip-tooltip":{marginLeft:`${o}px`}},".MuiTooltip-tooltip":{borderRadius:"6px",boxShadow:" 0px 1px 10px 0px rgba(107, 121, 141, 0.30)",backgroundColor:"#fff",padding:"12px",color:a.black.black1,fontSize:12,lineHeight:"16px",fontWeight:400},"> * > .MuiTooltip-arrow":{color:"#fff"},...n},...r},title:t,arrow:!0,...i},void 0)},Mc=({tooltip:e,children:t,classes:n={root:""}})=>{const{title:r="",...o}=e||{};return e?g.jsx(bp,{title:r,...o,children:g.jsx("span",{className:Gt(JA.wrapper,n.root),children:t},void 0)},void 0):g.jsx(g.Fragment,{children:t},void 0)},eN="_zButton_2ljo4_3",tN="_disabled_2ljo4_16",nN="_xlarge_2ljo4_25",rN="_large_2ljo4_26",oN="_medium_2ljo4_27",iN="_small_2ljo4_58",aN="_tiny_2ljo4_74",sN="_contained_2ljo4_92",lN="_outlined_2ljo4_105",cN="_noShadow_2ljo4_111",uN="_danger_2ljo4_126",dN="_textBlue_2ljo4_135",fN="_noMargin_2ljo4_143",pN="_textBlack_2ljo4_159",gN="_textGhost_2ljo4_183",hN="_text_2ljo4_135",mN="_link_2ljo4_206",nn={zButton:eN,disabled:tN,xlarge:nN,large:rN,medium:oN,small:iN,tiny:aN,contained:sN,outlined:lN,noShadow:cN,danger:uN,textBlue:dN,noMargin:fN,textBlack:pN,textGhost:gN,text:hN,link:mN},O1=e=>{const{danger:t=!1,sx:n,loading:r,disabled:o=!1,activeIconStyle:i,tooltip:a,children:s,isLinkButton:l=!1,size:c="medium",variant:u="contained",withMargin:d=!0,withShadow:f=!0,className:p,...h}=e,y=r?!0:o,C=b.useMemo(()=>a?{PopperProps:{modifiers:[{name:"offset",options:{offset:[0,8]}}]},...a}:void 0,[a]),v=b.useMemo(()=>c==="xs"||c==="small"?"4px":"6px",[c]);return g.jsx(Mc,{tooltip:C,children:g.jsx(FI,{className:Gt(nn.zButton,{[nn.xlarge]:c==="xl",[nn.large]:c==="large",[nn.medium]:c==="medium",[nn.small]:c==="small",[nn.tiny]:c==="xs",[nn.contained]:u==="contained",[nn.outlined]:u==="outlined",[nn.danger]:t,[nn.textBlue]:u==="textBlue",[nn.textBlack]:u==="textBlack",[nn.textGhost]:u==="textGhost",[nn.text]:u==="text",[nn.link]:l,[nn.disabled]:y,[nn.noMargin]:!d,[nn.noShadow]:!f},p),sx:{" .MuiButton-startIcon":{marginLeft:0,marginRight:v}," .MuiButton-endIcon":{marginRight:0,marginLeft:v},...n},disableRipple:!0,disabled:y,variant:u,...h,children:r?g.jsxs(i7,{direction:"row",spacing:r?1:0,style:{alignItems:"center"},children:[g.jsx(Or,{sx:{display:"flex","@keyframes rotate":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}},style:{color:"white",animation:`${r?"rotate 1s linear infinite":""}`},children:r&&g.jsx(KA,{},void 0)},void 0),g.jsx(mt,{component:"span",sx:{color:"inherit",fontSize:"inherit",fontWeight:"inherit",lineHeight:"inherit"},children:s},void 0)]},void 0):s},void 0)},void 0)};O1.displayName="ZButton";const vN="_zIconButton_1y2v2_3",yN="_disabled_1y2v2_7",bN="_withMargin_1y2v2_13",xN="_noMargin_1y2v2_19",SN="_withBorder_1y2v2_28",wN="_large_1y2v2_37",CN="_medium_1y2v2_38",_N="_small_1y2v2_49",RN="_xs_1y2v2_60",co={zIconButton:vN,disabled:yN,withMargin:bN,noMargin:xN,withBorder:SN,large:wN,medium:CN,small:_N,xs:RN},L1=e=>{const{activeStyle:t={},sx:n,tooltip:r,size:o="medium",disabled:i,withBorder:a=!1,withMargin:s=!0,className:l,...c}=e;return g.jsx(Mc,{tooltip:r,children:g.jsx(hr,{className:Gt(co.zIconButton,l,{[co.large]:o==="large"||o==="xl",[co.medium]:o==="medium",[co.small]:o==="small",[co.xs]:o==="xs",[co.disabled]:i,[co.withBorder]:a,[co.withMargin]:s,[co.noMargin]:!s}),disabled:i,sx:n,disableRipple:!0,...c},void 0)},void 0)},TN=b.forwardRef(function(t,n){return g.jsx(m_,{ref:n,...t},void 0)}),A1=e=>{const{open:t=!0,handleClose:n,children:r,severity:o="info",action:i,buttonProps:a,icon:s,...l}=e,c=zt(),u={regular:{icon:c.black.black3,text:c.black.black1,border:c.stroke.stroke1,background:c.black.black5,actionHover:c.black.black2},info:{icon:c.blue.blue1,text:c.blue.dark2,border:c.blue.blue3,background:c.blue.blue4,actionHover:c.blue.dark1},success:{icon:c.green.green1,text:c.green.green1,border:c.green.green3,background:c.green.green4,actionHover:c.green.green2},warning:{icon:c.yellow.yellow2,text:c.yellow.yellow1,border:c.yellow.yellow3,background:c.yellow.yellow4,actionHover:c.yellow.yellow2},error:{icon:c.red.red2,text:c.red.red1,border:c.red.red3,background:c.red.red4,actionHover:c.red.red2},gradient:{icon:c.black.black1,text:c.black.black1,border:"transparent",background:"linear-gradient(118deg, rgba(0, 239, 139, 0.10) 0.51%, rgba(0, 68, 228, 0.10) 36.98%, rgba(205, 63, 255, 0.10) 72.73%);",actionHover:"transparent"}},d=()=>{n&&n()},f=b.useMemo(()=>u[o],[o,u]);return g.jsx(ps,{in:t,children:g.jsx(TN,{severity:o,sx:{"&.MuiPaper-root":{display:"flex",alignItems:"flex-start",padding:"12px",background:f.background,borderRadius:"12px",border:"1px solid",borderColor:f.border},"& .MuiAlert-message":{padding:0,color:f.text,fontSize:"13px",lineHeight:"135%",fontWeight:400},"& .MuiAlert-action":{padding:0,marginRight:0,display:"flex",alignItems:"center"},"& .MuiAlert-icon":{padding:0,marginRight:"8px",marginTop:"2px",color:f.icon,opacity:1}},icon:s||g.jsx(YA,{severity:o},void 0),action:g.jsxs(Or,{children:[i&&g.jsx(O1,{size:"small",variant:"outlined",withShadow:!1,sx:{"&.MuiButtonBase-root.MuiButton-outlined":{borderColor:f.text,backgroundColor:"transparent",minWidth:56,".MuiTypography-root":{color:f.text},"&:hover":{borderColor:f.actionHover,backgroundColor:"transparent",".MuiTypography-root":{color:f.actionHover}}}},onClick:i.onClick,...a,children:g.jsx(mt,{variant:"body2Medium",component:"div",children:i.label},void 0)},void 0),n&&g.jsx(L1,{sx:{"&.MuiButtonBase-root.MuiIconButton-root":{marginLeft:"12px","&:hover":{backgroundColor:"transparent","svg.MuiSvgIcon-root":{path:{fill:f.actionHover}}}},"svg.MuiSvgIcon-root":{path:{fill:f.text}}},size:"small",onClick:d,children:g.jsx(I1,{size:14},void 0)},void 0)]},void 0),...l,children:r},void 0)},void 0)};var Ae;(function(e){e[e.Sunday=0]="Sunday",e[e.Monday=1]="Monday",e[e.Tuesday=2]="Tuesday",e[e.Wednesday=3]="Wednesday",e[e.Thursday=4]="Thursday",e[e.Friday=5]="Friday",e[e.Saturday=6]="Saturday",e[e.RelativeRange=7]="RelativeRange",e[e.AbsoluteRange=8]="AbsoluteRange",e[e.Reset=9]="Reset",e[e.Or=10]="Or",e[e.Copy=11]="Copy",e[e.Copied=12]="Copied",e[e.HidePwd=13]="HidePwd",e[e.ShowPwd=14]="ShowPwd",e[e.StartDay=15]="StartDay",e[e.EndDay=16]="EndDay",e[e.StartTime=17]="StartTime",e[e.EndTime=18]="EndTime",e[e.NoRows=19]="NoRows",e[e.NoOptions=20]="NoOptions"})(Ae||(Ae={}));const PN={[Ae.Sunday]:"日",[Ae.Monday]:"一",[Ae.Tuesday]:"二",[Ae.Wednesday]:"三",[Ae.Thursday]:"四",[Ae.Friday]:"五",[Ae.Saturday]:"六",[Ae.RelativeRange]:"相对范围",[Ae.AbsoluteRange]:"绝对范围",[Ae.Reset]:"重置",[Ae.Or]:"或",[Ae.Copy]:"复制",[Ae.Copied]:"已复制",[Ae.HidePwd]:"隐藏密码",[Ae.ShowPwd]:"展示密码",[Ae.StartDay]:"开始日期",[Ae.EndDay]:"结束日期",[Ae.StartTime]:"开始时间",[Ae.EndTime]:"结束时间",[Ae.NoRows]:"无记录",[Ae.NoOptions]:"无数据"},kN={[Ae.Sunday]:"S",[Ae.Monday]:"M",[Ae.Tuesday]:"T",[Ae.Wednesday]:"W",[Ae.Thursday]:"T",[Ae.Friday]:"F",[Ae.Saturday]:"S",[Ae.RelativeRange]:"Relative Range",[Ae.AbsoluteRange]:"Absolute Range",[Ae.Reset]:"Reset",[Ae.Or]:" or ",[Ae.Copy]:"Copy",[Ae.Copied]:"Copied",[Ae.HidePwd]:"Hide password",[Ae.ShowPwd]:"Show password",[Ae.StartDay]:"Start date",[Ae.EndDay]:"End date",[Ae.StartTime]:"Start time",[Ae.EndTime]:"End time",[Ae.NoRows]:"No Data",[Ae.NoOptions]:"No Options"},Kd=(e,t)=>t==="zhCN"?PN[e]:kN[e],$N=b.forwardRef((e,t)=>{const[n,r]=b.useState(!1),[o,i]=b.useState(!1),{onChange:a,inputProps:s={},enableAutocomplete:l=!1,...c}=e,u=b.useMemo(()=>l?{}:{autoComplete:"new-password"},[l]),d=()=>{o&&r(!n)},f=v=>{const{value:S}=v.target;i(S!==""),a&&a(v)},p=zt(),h=p.language,y=Kd(Ae.HidePwd,h),C=Kd(Ae.ShowPwd,h);return g.jsx(Zd,{inputType:n?"text":"password",prefixComponent:g.jsx(qA,{size:e.size==="small"?12:14,style:{color:p.black.black2}},void 0),suffix:g.jsx(bp,{title:o?n?y:C:"",placement:"bottom",children:g.jsx(hr,{disableRipple:!0,sx:{padding:0,opacity:o?1:0,cursor:o?"pointer":"default","&:hover":{svg:{color:p.black.black2}}},"aria-label":"toggle password visibility",onClick:d,children:n?g.jsx(VA,{size:e.size==="small"?12:14,sx:{color:p.black.black1}},void 0):g.jsx(HA,{size:e.size==="small"?12:14,sx:{color:p.black.black1}},void 0)},void 0)},void 0),ref:t,onChange:f,inputProps:{...u,...s},...c},void 0)});var Mi;(function(e){e.default="default",e.password="pwd",e.number="number",e.suffixSelect="suffixSelect"})(Mi||(Mi={}));const EN="_button_n3sxg_3",MN="_disabled_n3sxg_16",IN="_text_n3sxg_23",ON="_parentInputDisabled_n3sxg_30",LN="_icon_n3sxg_41",AN="_smallButton_n3sxg_46",NN="_input_n3sxg_50",DN="_inputFocus_n3sxg_56",jN="_paper_n3sxg_63",FN="_menu_n3sxg_67",BN="_menuItem_n3sxg_71",zN="_selected_n3sxg_83",HN="_menuList_n3sxg_89",Wn={button:EN,disabled:MN,text:IN,parentInputDisabled:ON,icon:LN,smallButton:AN,input:NN,inputFocus:DN,paper:jN,menu:FN,menuItem:BN,selected:zN,menuList:HN},VN=({options:e=[],onSelectChange:t,defaultSelectedValue:n="",classes:r={label:"",menuRoot:"",menuList:"",menuItem:"",menuPaper:""},setIsSelectActive:o,disabled:i=!1,inputDisabled:a,size:s})=>{const[l,c]=b.useState(null),[u,d]=b.useState("");b.useEffect(()=>{const y=e.find(v=>v.value===n),C=(y==null?void 0:y.label)||"";d(C)},[n]);const f=()=>{c(null),o&&o(!1)},p=y=>{i||(c(y.currentTarget),o&&o(!0))},h=y=>{t&&t(y.value),d(y.label),f()};return g.jsxs(g.Fragment,{children:[g.jsxs(mt,{role:"button",component:"div",className:Gt(Wn.button,{[Wn.smallButton]:s==="small",[Wn.disabled]:i,[Wn.parentInputDisabled]:a},r.label),onClick:p,children:[g.jsx(mt,{variant:"body1",className:Wn.text,children:u},void 0),!i&&g.jsx(ia,{size:14,className:Wn.icon},void 0)]},void 0),g.jsx($1,{open:!!l,anchorEl:l,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},onClose:f,classes:{root:Gt(Wn.menu,r.menuRoot),paper:Gt(Wn.paper,r.menuPaper),list:Gt(Wn.menuList,r.menuList)},children:e.map(y=>g.jsx($c,{sx:{"&.Mui-selected.Mui-focusVisible":{backgroundColor:"#fff"}},className:Gt(Wn.menuItem,{[Wn.selected]:u===y.label},r.menuItem),onClick:()=>h(y),children:y.label},y.value))},void 0)]},void 0)},WN=b.forwardRef((e,t)=>{const{options:n,onSelectChange:r,defaultSelectedValue:o,selectClasses:i,disableSelect:a,disabled:s=!1,size:l,...c}=e,[u,d]=b.useState(!1);return g.jsx(Zd,{className:Gt(Wn.input,{[Wn.inputFocus]:u}),disabled:s,size:l,suffix:g.jsx(VN,{options:n,onSelectChange:r,defaultSelectedValue:o,classes:i,setIsSelectActive:d,disabled:a,inputDisabled:s,size:l},void 0),ref:t,...c},void 0)}),UN=e=>({"& .MuiFormHelperText-root":{margin:"4px 0 0 0",color:e.black.black3,fontSize:12,lineHeight:"135%","&.Mui-error":{color:e.red.red1}}}),pr="0px 1px 2px 4px rgba(33, 37, 44, 0.08)",aa="0px 1px 2px 0px rgba(33, 37, 44, 0.08)",GN=(e,t)=>({borderRadius:t==="small"?"6px":"8px","& .MuiOutlinedInput-notchedOutline":{borderColor:e.stroke.stroke1,boxShadow:aa,transition:"all 0.2s"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"transparent",borderWidth:1,boxShadow:`0px 0px 0px 4px ${e.blue.blue4}, ${pr}`},"&.Mui-disabled":{"& .MuiOutlinedInput-input":{zIndex:"1","::-webkit-input-placeholder":{color:e.black.black3,opacity:"1"}},"& .MuiOutlinedInput-notchedOutline":{borderColor:e.stroke.stroke1,backgroundColor:e.black.black5,borderWidth:1},"&:hover .MuiOutlinedInput-notchedOutline":{boxShadow:aa}},"&.Mui-focused":{"& .MuiOutlinedInput-notchedOutline":{borderColor:e.blue.blue1,borderWidth:1,boxShadow:`0px 0px 0px 4px ${e.blue.blue4}, ${pr}`}},"&.Mui-focused.Mui-error":{"& .MuiOutlinedInput-notchedOutline":{boxShadow:`0px 0px 0px 4px ${e.red.red4}, ${pr}`}},"&.Mui-error":{"& .MuiOutlinedInput-notchedOutline":{borderColor:e.red.red2},"&:hover .MuiOutlinedInput-notchedOutline":{boxShadow:`0px 0px 0px 4px ${e.red.red4}, ${pr}`}}}),qN=(e,t,n)=>({height:n==="small"?"28px":"36px",boxSizing:"border-box",padding:t?n==="small"?"4px 10px 4px 4px":"8px 12px 8px 4px":n==="small"?"4px 10px":"8px 12px",fontSize:n==="small"?13:14,fontWeight:400,color:e.black.black1,caretColor:e.black.black1,"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #fff inset",WebkitTextFillColor:e.black.black1},"&[type=password]":{WebkitTextStrokeWidth:"2.8px",letterSpacing:"4px"},"&[type=number]::-webkit-outer-spin-button, &[type=number]::-webkit-inner-spin-button":{WebkitAppearance:"none",margin:0}}),KN=(e,t,n,r)=>{let o=GN(e,r);return t&&(o={...o,paddingRight:r==="small"?"8px":"12px"}),n&&(o={...o,paddingLeft:"12px"}),o},Zd=b.forwardRef((e,t)=>{const{label:n,labelPosition:r="top",labelClassName:o="",wrapperClassName:i="",suffix:a=null,prefixComponent:s=null,inputType:l="text",inputProps:c,size:u="medium",...d}=e,{sx:f={},...p}=c||{},h=zt();return g.jsxs(Or,{sx:{display:"flex",alignItems:r==="top"?"flex-start":"center",gap:2,flexDirection:r==="top"?"column":"row"},className:i,children:[n?g.jsx(mt,{component:"div",variant:"h4Medium",className:o,children:n},void 0):null,g.jsx(NA,{InputProps:{sx:KN(h,a,s,u),endAdornment:a,startAdornment:s,type:l},inputProps:{sx:{...qN(h,s,u),...f},ref:t,...p},sx:UN(h),...d},void 0)]},void 0)}),N1=b.forwardRef((e,t)=>{const{inputComponentType:n=Mi.default,...r}=e,i={[Mi.default]:Zd,[Mi.password]:$N,[Mi.number]:Zd,[Mi.suffixSelect]:WN}[n];return g.jsx(i,{ref:t,...r},void 0)}),ZN="_root_903dp_3",QN="_label_903dp_6",YN="_checkboxIcon_903dp_19",XN="_inner_903dp_20",JN="_checkbox_903dp_19",e9="_disabledCheckbox_903dp_49",t9="_disabled_903dp_49",n9="_indeterminate_903dp_83",r9="_checked_903dp_84",Mr={root:ZN,label:QN,checkboxIcon:YN,inner:XN,checkbox:JN,disabledCheckbox:e9,disabled:t9,indeterminate:n9,checked:r9},cx=e=>g.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:e.children},void 0),bg=e=>{const{checked:t=!1,indeterminate:n=!1,disabled:r=!1}=e;return g.jsx("div",{className:Gt(Mr.checkboxIcon,{[Mr.checked]:t,[Mr.indeterminate]:n,[Mr.disabled]:r}),children:g.jsxs("div",{className:Mr.inner,children:[t&&g.jsx(cx,{children:g.jsx("path",{d:"M1 4L3.66667 7.33333L9 2",stroke:"white",strokeWidth:"1.4"},void 0)},void 0),n&&g.jsx(cx,{children:g.jsx("path",{d:"M1.22876 4.66665L8.77124 4.66665",stroke:"white",strokeWidth:"1.4"},void 0)},void 0)]},void 0)},void 0)},ux=rt.forwardRef((e,t)=>{const{disabled:n,...r}=e;return g.jsx(JI,{ref:t,disableRipple:!0,disableTouchRipple:!0,disabled:n,icon:g.jsx(bg,{disabled:n},void 0),checkedIcon:g.jsx(bg,{checked:!0,disabled:n},void 0),indeterminateIcon:g.jsx(bg,{indeterminate:!0},void 0),classes:{root:Mr.checkbox,checked:Mr.checkedCheckbox,disabled:Mr.disabledCheckbox,indeterminate:Mr.indeterminateCheckbox},...r},void 0)}),Qd=rt.forwardRef(function(e,t){const{label:n="",disabled:r,...o}=e;return n?g.jsx($_,{classes:{root:Mr.root},label:g.jsx(mt,{className:Mr.label,children:n},void 0),disabled:r,control:g.jsx(ux,{ref:t,...o},void 0)},void 0):g.jsx(ux,{ref:t,disabled:r,...o},void 0)});function o9(e){return e&&e.ownerDocument||document}function i9(e,t){typeof e=="function"?e(t):e&&(e.current=t)}const a9=typeof window<"u"?b.useLayoutEffect:b.useEffect;function s9(...e){return b.useMemo(()=>e.every(t=>t==null)?null:t=>{e.forEach(n=>{i9(n,t)})},e)}const dx=e=>e,l9=()=>{let e=dx;return{configure(t){e=t},generate(t){return e(t)},reset(){e=dx}}},c9=l9(),u9={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function W_(e,t,n="Mui"){const r=u9[t];return r?`${n}-${r}`:`${c9.generate(e)}-${t}`}function d9(e,t,n="Mui"){const r={};return t.forEach(o=>{r[o]=W_(e,o,n)}),r}function dc(e){"@babel/helpers - typeof";return dc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},dc(e)}function f9(e,t){if(dc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(dc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function p9(e){var t=f9(e,"string");return dc(t)=="symbol"?t:t+""}const g9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"መንገድ አሳይ"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ወደ መጀመሪያው ገጽ ይሂዱ":e==="last"?"ወደ መጨረሻው ገጽ ይሂዱ":e==="next"?"ወደ ቀጣዩ ገጽ ይሂዱ":"ወደ ቀዳሚው ገጽ ይሂዱ",labelRowsPerPage:"ረድፎች በአንድ ገጽ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t} ከ ${n!==-1?n:`${t} በላይ`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ኮከ${e!==1?"ቦች":"ብ"}`,emptyLabelText:"ባዶ"}},MuiAutocomplete:{defaultProps:{clearText:"አጽዳ",closeText:"ዝጋ",loadingText:"በመጫን ላይ…",noOptionsText:"አማራጮች የሉም",openText:"ክፈት"}},MuiAlert:{defaultProps:{closeText:"ዝጋ"}},MuiPagination:{defaultProps:{"aria-label":"የገጽ አሰሳ",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ወደ "}ገጽ ${t}${n?"":" ሂድ"}`:e==="first"?"ወደ መጀመሪያው ገጽ ይሂዱ":e==="last"?"ወደ መጨረሻው ገጽ ይሂዱ":e==="next"?"ወደ ቀጣዩ ገጽ ይሂዱ":"ወደ ቀዳሚው ገጽ ይሂዱ"}}}},h9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"إظهار المسار"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل إلى الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة",labelRowsPerPage:"عدد الصفوف في الصفحة:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} من ${n!==-1?n:` أكثر من${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"نجوم":"نجمة"}`,emptyLabelText:"فارغ"}},MuiAutocomplete:{defaultProps:{clearText:"مسح",closeText:"إغلاق",loadingText:"جار التحميل...",noOptionsText:"لا يوجد خيارات",openText:"فتح"}},MuiAlert:{defaultProps:{closeText:"إغلاق"}},MuiPagination:{defaultProps:{"aria-label":"التنقل عبر الصفحات",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"انتقل إلى "} صفحة ${t}`:e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل إلى الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة"}}}},m9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"إظهار المسار"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"الانتقال إلى الصفحة الأولى":e==="last"?"الانتقال إلى الصفحة الأخيرة":e==="next"?"الانتقال إلى الصفحة التالية":"الانتقال إلى الصفحة السابقة",labelRowsPerPage:"عدد الصفوف في الصفحة:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} من ${n!==-1?n:` أكثر من${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"نجوم":"نجمة"}`,emptyLabelText:"فارغ"}},MuiAutocomplete:{defaultProps:{clearText:"مسح",closeText:"إغلاق",loadingText:"جار التحميل...",noOptionsText:"لا توجد خيارات",openText:"فتح"}},MuiAlert:{defaultProps:{closeText:"إغلاق"}},MuiPagination:{defaultProps:{"aria-label":"التنقل عبر الصفحات",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"الانتقال إلى "} صفحة ${t}`:e==="first"?"الانتقال إلى الصفحة الأولى":e==="last"?"الانتقال الي الصفحة الأخيرة":e==="next"?"الانتقال إلى الصفحة التالية":"الانتقال إلى الصفحة السابقة"}}}},v9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"إظهار المسار"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل إلى الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة",labelRowsPerPage:"عدد الصفوف في الصفحة:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} من ${n!==-1?n:` أكثر من${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"نجوم":"نجمة"}`,emptyLabelText:"فارغ"}},MuiAutocomplete:{defaultProps:{clearText:"مسح",closeText:"إغلاق",loadingText:"جار التحميل...",noOptionsText:"لا يوجد خيارات",openText:"فتح"}},MuiAlert:{defaultProps:{closeText:"إغلاق"}},MuiPagination:{defaultProps:{"aria-label":"التنقل عبر الصفحات",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"انتقل إلى "} صفحة ${t}`:e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل الي الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة"}}}},y9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Yolu göstər"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Birinci səhifəyə keç":e==="last"?"Sonuncu səhifəyə keç":e==="next"?"Növbəti səhifəyə keç":"Əvvəlki səhifəyə keç",labelRowsPerPage:"Səhifəyə düşən sətrlər:"}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Ulduz";const n=e%10;return n>1&&n<5&&(t="Ulduzlar"),`${e} ${t}`},emptyLabelText:"Boş"}},MuiAutocomplete:{defaultProps:{clearText:"Silmək",closeText:"Bağlamaq",loadingText:"Yüklənir…",noOptionsText:"Seçimlər mövcud deyil",openText:"Открыть"}},MuiAlert:{defaultProps:{closeText:"Bağlamaq"}},MuiPagination:{defaultProps:{"aria-label":"Səhifənin naviqasiyası",getItemAriaLabel:(e,t,n)=>e==="page"?`${t} ${n?"səhifə":"səhifəyə keç"}`:e==="first"?"Birinci səhifəyə keç":e==="last"?"Sonuncu səhifəyə keç":e==="next"?"Növbəti səhifəyə keç":"Əvvəlki səhifəyə keç"}}}},b9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"পথ দেখান"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"প্রথম পৃষ্ঠায় যান":e==="last"?"শেষ পৃষ্ঠায় যান":e==="next"?"পরবর্তী পৃষ্ঠায় যান":"আগের পৃষ্ঠায় যান",labelRowsPerPage:"প্রতি পৃষ্ঠায় সারি:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`${t} থেকে বেশি`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} স্টার`,emptyLabelText:"খালি"}},MuiAutocomplete:{defaultProps:{clearText:"পরিষ্কার করুন",closeText:"বন্ধ করুন",loadingText:"লোড হচ্ছে…",noOptionsText:"কোন অপশন নেই",openText:"ওপেন করুন"}},MuiAlert:{defaultProps:{closeText:"বন্ধ করুন"}},MuiPagination:{defaultProps:{"aria-label":"পেজিনেশন নেভিগেশন",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"যান "}পৃষ্ঠা ${t}-এ`:e==="first"?"প্রথম পৃষ্ঠায় যান":e==="last"?"শেষ পৃষ্ঠায় যান":e==="next"?"পরবর্তী পৃষ্ঠায় যান":"আগের পৃষ্ঠায় যান"}}}},x9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Паказаць шлях"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Перайсці на першую старонку":e==="last"?"Перайсці на апошнюю старонку":e==="next"?"Перайсці на наступную старонку":"Перайсці на папярэднюю старонку",labelRowsPerPage:"Радкоў на старонцы:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} з ${n!==-1?n:`больш чым ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Зорак";const n=e%10;return n>1&&n<5&&(e<10||e>20)?t="Зоркі":n===1&&e%100!==11&&(t="Зорка"),`${e} ${t}`},emptyLabelText:"Рэйтынг адсутнічае"}},MuiAutocomplete:{defaultProps:{clearText:"Ачысціць",closeText:"Закрыць",loadingText:"Загрузка…",noOptionsText:"Няма варыянтаў",openText:"Адкрыць"}},MuiAlert:{defaultProps:{closeText:"Закрыць"}},MuiPagination:{defaultProps:{"aria-label":"Навігацыя па старонкам",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t} старонка`:`Перайсці на ${t} старонку`:e==="first"?"Перайсці на першую старонку":e==="last"?"Перайсці на апошнюю старонку":e==="next"?"Перайсці на наступную старонку":"Перайсці на папярэднюю старонку"}}}},S9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Показване на пътя"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Отиди на първата страница":e==="last"?"Отиди на последната страница":e==="next"?"Отиди на следващата страница":"Отиди на предишната страница",labelRowsPerPage:"Редове на страница:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Звезд${e!==1?"и":"а"}`,emptyLabelText:"Изчисти"}},MuiAutocomplete:{defaultProps:{clearText:"Изчисти",closeText:"Затвори",loadingText:"Зареждане…",noOptionsText:"Няма налични опции",openText:"Отвори"}},MuiAlert:{defaultProps:{closeText:"Затвори"}},MuiPagination:{defaultProps:{"aria-label":"Пагинация",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Към "}страница ${t}`:e==="first"?"Отиди на първата страница":e==="last"?"Отиди на последната страница":e==="next"?"Отиди на следващата страница":"Отиди на предишната страница"}}}},w9={components:{MuiTablePagination:{defaultProps:{labelRowsPerPage:"Files per pàgina:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"Estrelles":"Estrella"}`,emptyLabelText:"Buit"}},MuiAutocomplete:{defaultProps:{clearText:"Netejar",closeText:"Tancar",loadingText:"Carregant…",noOptionsText:"Sense opcions",openText:"Obert"}},MuiAlert:{defaultProps:{closeText:"Tancat"}}}},C9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Ukázat cestu"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Jít na první stránku":e==="last"?"Jít na poslední stránku":e==="next"?"Jít na další stránku":"Jít na předchozí stránku",labelRowsPerPage:"Řádků na stránce:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} z ${n!==-1?n:`více než ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>e===1?`${e} hvězdička`:e>=2&&e<=4?`${e} hvězdičky`:`${e} hvězdiček`,emptyLabelText:"Prázdné"}},MuiAutocomplete:{defaultProps:{clearText:"Vymazat",closeText:"Zavřít",loadingText:"Načítání…",noOptionsText:"Žádné možnosti",openText:"Otevřít"}},MuiAlert:{defaultProps:{closeText:"Zavřít"}},MuiPagination:{defaultProps:{"aria-label":"Navigace stránkováním",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Jít na "}${t}. stránku`:e==="first"?"Jít na první stránku":e==="last"?"Jít na poslední stránku":e==="next"?"Jít na další stránku":"Jít na předchozí stránku"}}}},_9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Vis sti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå til den første side":e==="last"?"Gå til den sidste side":e==="next"?"Gå til den næste side":"Gå til den forrige side",labelRowsPerPage:"Rækker pr side:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t} af ${n!==-1?n:`mere end ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stjern${e!==1?"er":""}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Slet",closeText:"Luk",loadingText:"Indlæser…",noOptionsText:"Ingen muligheder",openText:"Åben"}},MuiAlert:{defaultProps:{closeText:"Luk"}},MuiPagination:{defaultProps:{"aria-label":"Sideinddelings navigation",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Go to "}page ${t}`:e==="first"?"Gå til den første side":e==="last"?"Gå til den sidste side":e==="next"?"Gå til den næste side":"Gå til den forrige side"}}}},R9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pfad anzeigen"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Zur ersten Seite":e==="last"?"Zur letzten Seite":e==="next"?"Zur nächsten Seite":"Zur vorherigen Seite",labelRowsPerPage:"Zeilen pro Seite:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} von ${n!==-1?n:`mehr als ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"Sterne":"Stern"}`,emptyLabelText:"Keine Wertung"}},MuiAutocomplete:{defaultProps:{clearText:"Leeren",closeText:"Schließen",loadingText:"Wird geladen…",noOptionsText:"Keine Optionen",openText:"Öffnen"}},MuiAlert:{defaultProps:{closeText:"Schließen"}},MuiPagination:{defaultProps:{"aria-label":"Navigation via Seitennummerierung",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gehe zu "}Seite ${t}`:e==="first"?"Zur ersten Seite":e==="last"?"Zur letzten Seite":e==="next"?"Zur nächsten Seite":"Zur vorherigen Seite"}}}},T9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Εμφάνιση διαδρομής"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Πρώτη σελίδα":e==="last"?"Τελευταία σελίδα":e==="next"?"Επόμενη σελίδα":"Προηγούμενη σελίδα",labelRowsPerPage:"Γραμμές ανα σελίδα:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} από ${n!==-1?n:`πάνω από ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Αστέρι${e!==1?"α":""}`,emptyLabelText:"Χωρίς βαθμολόγηση"}},MuiAutocomplete:{defaultProps:{clearText:"Καθαρισμός",closeText:"Κλείσιμο",loadingText:"Φόρτωση…",noOptionsText:"Δεν υπάρχουν επιλογές",openText:"Άνοιγμα"}},MuiAlert:{defaultProps:{closeText:"Κλείσιμο"}},MuiPagination:{defaultProps:{"aria-label":"Πλοήγηση σε σελίδες",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Μετάβαση "}σελίδα ${t}`:e==="first"?"Πρώτη σελίδα":e==="last"?"Τελευταία σελίδα":e==="next"?"Επόμενη σελίδα":"Προηγούμενη σελίδα"}}}},P9={},k9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mostrar ruta"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ir a la primera página":e==="last"?"Ir a la última página":e==="next"?"Ir a la página siguiente":"Ir a la página anterior",labelRowsPerPage:"Filas por página:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} de ${n!==-1?n:`más de ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Estrella${e!==1?"s":""}`,emptyLabelText:"Vacío"}},MuiAutocomplete:{defaultProps:{clearText:"Limpiar",closeText:"Cerrar",loadingText:"Cargando…",noOptionsText:"Sin opciones",openText:"Abierto"}},MuiAlert:{defaultProps:{closeText:"Cerrar"}},MuiPagination:{defaultProps:{"aria-label":"Paginador",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ir a la "}página ${t}`:e==="first"?"Ir a la primera página":e==="last"?"Ir a la última página":e==="next"?"Ir a la página siguiente":"Ir a la página anterior"}}}},$9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Näita teed"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Vali esimene lehekülg":e==="last"?"Vali viimane lehekülg":e==="next"?"Vali järgmine lehekülg":"Vali eelmine lehekülg",labelRowsPerPage:"Ridu leheküljel:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`rohkem kui ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Tärn${e!==1?"i":""}`,emptyLabelText:"Tühi"}},MuiAutocomplete:{defaultProps:{clearText:"Tühjenda",closeText:"Sulge",loadingText:"Laen…",noOptionsText:"Valikuid ei ole",openText:"Ava"}},MuiAlert:{defaultProps:{closeText:"Sulge"}},MuiPagination:{defaultProps:{"aria-label":"Lehekülgede valik",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Vali "}lehekülg ${t}`:e==="first"?"Vali esimene lehekülg":e==="last"?"Vali viimane lehekülg":e==="next"?"Vali järgmine lehekülg":"Vali eelmine lehekülg"}}}},E9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"نمایش مسیر"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"رفتن به اولین صفحه":e==="last"?"رفتن به آخرین صفحه":e==="next"?"رفتن به صفحه‌ی بعدی":"رفتن به صفحه‌ی قبلی",labelRowsPerPage:"تعداد سطرهای هر صفحه:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} از ${n!==-1?n:`بیشتر از ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ستاره`,emptyLabelText:"خالی"}},MuiAutocomplete:{defaultProps:{clearText:"پاک‌کردن",closeText:"بستن",loadingText:"در حال بارگذاری…",noOptionsText:"بی‌نتیجه",openText:"بازکردن"}},MuiAlert:{defaultProps:{closeText:"بستن"}},MuiPagination:{defaultProps:{"aria-label":"ناوبری صفحه",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"رفتن به "}صفحهٔ ${t}`:e==="first"?"رفتن به اولین صفحه":e==="last"?"رفتن به آخرین صفحه":e==="next"?"رفتن به صفحه‌ی بعدی":"رفتن به صفحه‌ی قبلی"}}}},M9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Näytä reitti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Mene ensimmäiselle sivulle":e==="last"?"Mene viimeiselle sivulle":e==="next"?"Mene seuraavalle sivulle":"Mene edelliselle sivulle",labelRowsPerPage:"Rivejä per sivu:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`enemmän kuin ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Täht${e!==1?"eä":"i"}`,emptyLabelText:"Tyhjä"}},MuiAutocomplete:{defaultProps:{clearText:"Tyhjennä",closeText:"Sulje",loadingText:"Ladataan…",noOptionsText:"Ei valintoja",openText:"Avaa"}},MuiAlert:{defaultProps:{closeText:"Sulje"}},MuiPagination:{defaultProps:{"aria-label":"Sivutus navigaatio",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"sivu":"Mene sivulle"} ${t}`:e==="first"?"Mene ensimmäiselle sivulle":e==="last"?"Mene viimeiselle sivulle":e==="next"?"Mene seuraavalle sivulle":"Mene edelliselle sivulle"}}}},I9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Montrer le chemin"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Aller à la première page":e==="last"?"Aller à la dernière page":e==="next"?"Aller à la page suivante":"Aller à la page précédente",labelRowsPerPage:"Lignes par page :",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} sur ${n!==-1?n:`plus que ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Etoile${e!==1?"s":""}`,emptyLabelText:"Vide"}},MuiAutocomplete:{defaultProps:{clearText:"Vider",closeText:"Fermer",loadingText:"Chargement…",noOptionsText:"Pas de résultats",openText:"Ouvrir"}},MuiAlert:{defaultProps:{closeText:"Fermer"}},MuiPagination:{defaultProps:{"aria-label":"navigation de pagination",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Aller à la "}page ${t}`:e==="first"?"Aller à la première page":e==="last"?"Aller à la dernière page":e==="next"?"Aller à la page suivante":"Aller à la page précédente"}}}},O9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"הצג נתיב"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"לעמוד הראשון":e==="last"?"לעמוד האחרון":e==="next"?"לעמוד הבא":"לעמוד הקודם",labelRowsPerPage:"שורות בעמוד:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} מתוך ${n!==-1?n:`יותר מ ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} כוכב${e!==1?"ים":""}`,emptyLabelText:"ריק"}},MuiAutocomplete:{defaultProps:{clearText:"נקה",closeText:"סגור",loadingText:"טוען…",noOptionsText:"אין אופציות",openText:"פתח"}},MuiAlert:{defaultProps:{closeText:"סגור"}},MuiPagination:{defaultProps:{"aria-label":"ניווט בעמודים",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ל "}עמוד ${t}`:e==="first"?"לעמוד הראשון":e==="last"?"לעמוד האחרון":e==="next"?"לעמוד הבא":"לעמוד הקודם"}}}},L9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"रास्ता दिखायें"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"पहले पृष्ठ पर जाएँ":e==="last"?"अंतिम पृष्ठ पर जाएँ":e==="next"?"अगले पृष्ठ पर जाएँ":"पिछले पृष्ठ पर जाएँ",labelRowsPerPage:"पंक्तियाँ प्रति पृष्ठ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t===-1?n:t} कुल ${n} में`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} तार${e!==1?"े":"ा"}`,emptyLabelText:"रिक्त"}},MuiAutocomplete:{defaultProps:{clearText:"हटायें",closeText:"बंद करें",loadingText:"लोड हो रहा है…",noOptionsText:"कोई विकल्प नहीं",openText:"खोलें"}},MuiAlert:{defaultProps:{closeText:"बंद करें"}},MuiPagination:{defaultProps:{"aria-label":"पृस्ठानुसार संचालन",getItemAriaLabel:(e,t,n)=>e==="page"?`पृष्ठ ${t} ${n?"":" पर जाएँ"}`:e==="first"?"पहले पृष्ठ पर जाएँ":e==="last"?"अंतिम पृष्ठ पर जाएँ":e==="next"?"अगले पृष्ठ पर जाएँ":"पिछले पृष्ठ पर जाएँ"}}}},A9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pokaži putanju"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na posljednju stranicu":e==="next"?"Idi na sljedeću stranicu":"Idi na prethodnu stranicu",labelRowsPerPage:"Redova po stranici:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} od ${n!==-1?n:`više nego ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10,n=e%100;return[2,3,4].includes(t)&&![12,13,14].includes(n)?"Zvijezde":"Zvijezda"},emptyLabelText:"Prazno"}},MuiAutocomplete:{defaultProps:{clearText:"Briši",closeText:"Zatvori",loadingText:"Učitavanje…",noOptionsText:"Nema opcija",openText:"Otvori"}},MuiAlert:{defaultProps:{closeText:"Zatvori"}},MuiPagination:{defaultProps:{"aria-label":"Navigacija po stranicama",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Idi na "}stranicu ${t}`:e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na zadnju stranicu":e==="next"?"Idi na sljedeću stranicu":"Idi na prethodnu stranicu"}}}},N9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Útvonal"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Első oldalra":e==="last"?"Utolsó oldalra":e==="next"?"Következő oldalra":"Előző oldalra",labelRowsPerPage:"Sorok száma:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Csillag`,emptyLabelText:"Üres"}},MuiAutocomplete:{defaultProps:{clearText:"Törlés",closeText:"Bezárás",loadingText:"Töltés…",noOptionsText:"Nincs találat",openText:"Megnyitás"}},MuiAlert:{defaultProps:{closeText:"Bezárás"}},MuiPagination:{defaultProps:{"aria-label":"Lapozás",getItemAriaLabel:(e,t,n)=>e==="page"?`${t}. oldal${n?"":"ra"}`:e==="first"?"Első oldalra":e==="last"?"Utolsó oldalra":e==="next"?"Következő oldalra":"Előző oldalra"}}}},D9={components:{MuiTablePagination:{defaultProps:{labelRowsPerPage:"Տողեր մեկ էջում`"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Աստղ`,emptyLabelText:"Դատարկ"}},MuiAutocomplete:{defaultProps:{clearText:"Մաքրել",closeText:"Փակել",loadingText:"Բեռնում…",noOptionsText:"Տարբերակներ չկան",openText:"Բացել"}},MuiAlert:{defaultProps:{closeText:"Փակել"}}}},j9={components:{MuiTablePagination:{defaultProps:{labelRowsPerPage:"Baris per halaman:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Bintang`}},MuiAutocomplete:{defaultProps:{clearText:"Hapus",closeText:"Tutup",loadingText:"Memuat…",noOptionsText:"Tidak ada opsi",openText:"Buka"}},MuiAlert:{defaultProps:{closeText:"Tutup"}}}},F9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Sýna slóð"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Fara á fyrstu síðu":e==="last"?"Fara á síðustu síðu":e==="next"?"Fara á næstu síðu":"Fara á fyrri síðu",labelRowsPerPage:"Raðir á síðu:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} af ${n!==-1?n:`fleiri en ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e===1?"stjarna":"stjörnur"}`,emptyLabelText:"Tómt"}},MuiAutocomplete:{defaultProps:{clearText:"Hreinsa",closeText:"Loka",loadingText:"Hlaða…",noOptionsText:"Engar niðurstöður",openText:"Opna"}},MuiAlert:{defaultProps:{closeText:"Loka"}},MuiPagination:{defaultProps:{"aria-label":"Síðuflakk",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"Síða":"Fara á síðu"} ${t}`:e==="first"?"Fara á fyrstu síðu":e==="last"?"Fara á síðustu síðu":e==="next"?"Fara á næstu síðu":"Fara á fyrri síðu"}}}},B9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Visualizza percorso"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Vai alla prima pagina":e==="last"?"Vai all'ultima pagina":e==="next"?"Vai alla pagina successiva":"Vai alla pagina precedente",labelRowsPerPage:"Righe per pagina:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} di ${n!==-1?n:`più di ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stell${e!==1?"e":"a"}`,emptyLabelText:"Vuoto"}},MuiAutocomplete:{defaultProps:{clearText:"Svuota",closeText:"Chiudi",loadingText:"Caricamento in corso…",noOptionsText:"Nessuna opzione",openText:"Apri"}},MuiAlert:{defaultProps:{closeText:"Chiudi"}},MuiPagination:{defaultProps:{"aria-label":"Navigazione impaginata",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Vai alla "}pagina ${t}`:e==="first"?"Vai alla prima pagina":e==="last"?"Vai all'ultima pagina":e==="next"?"Vai alla pagina successiva":"Vai alla pagina precedente"}}}},z9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"すべて表示"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"最初のページへ":e==="last"?"最後のページへ":e==="next"?"次のページへ":"前のページへ",labelRowsPerPage:"ページあたりの行数:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}~${t} / ${n!==-1?n:`${t}以上`}`}},MuiRating:{defaultProps:{getLabelText:e=>`星${e}`,emptyLabelText:"星なし"}},MuiAutocomplete:{defaultProps:{clearText:"クリア",closeText:"閉じる",loadingText:"読み込み中…",noOptionsText:"データがありません",openText:"開く"}},MuiAlert:{defaultProps:{closeText:"閉じる"}},MuiPagination:{defaultProps:{"aria-label":"ページ選択",getItemAriaLabel:(e,t,n)=>e==="page"?`ページ${t}${n?"":"へ"}`:e==="first"?"最初のページへ":e==="last"?"最後のページへ":e==="next"?"次のページへ":"前のページへ"}}}},H9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"បង្ហាញផ្លូវ"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ទៅទំព័រដំបូង":e==="last"?"ទៅទំព័រចុងក្រោយ":e==="next"?"ទៅទំព័របន្ទាប់":"ទៅទំព័រមុន",labelRowsPerPage:"ចំនួនជួរដេកក្នុងមួយទំព័រ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e} - ${t} នៃ ${n!==-1?n:`ច្រើនជាង ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ផ្កាយ`,emptyLabelText:"ទទេ"}},MuiAutocomplete:{defaultProps:{clearText:"លុបចោល",closeText:"បិទ",loadingText:"កំពុងលោត…",noOptionsText:"គ្មានជម្រើស",openText:"បើក"}},MuiAlert:{defaultProps:{closeText:"បិទ"}},MuiPagination:{defaultProps:{"aria-label":"រុករកទំព័រ",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ទៅ "}ទំព័រ ${t}`:e==="first"?"ទៅទំព័រដំបូង":e==="last"?"ទៅទំព័រចុងក្រោយ":e==="next"?"ទៅទំព័របន្ទាប់":"ទៅទំព័រមុន"}}}},V9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"경로 보기"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"첫 번째 페이지로 이동":e==="last"?"마지막 페이지로 이동":e==="next"?"다음 페이지로 이동":"이전 페이지로 이동",labelRowsPerPage:"페이지 당 행:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`${t}개 이상`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 점`,emptyLabelText:"빈 텍스트"}},MuiAutocomplete:{defaultProps:{clearText:"지우기",closeText:"닫기",loadingText:"불러오는 중…",noOptionsText:"옵션 없음",openText:"열기"}},MuiAlert:{defaultProps:{closeText:"닫기"}},MuiPagination:{defaultProps:{"aria-label":"페이지네이션 네비게이션",getItemAriaLabel:(e,t,n)=>e==="page"?`${t} 번째 페이지${n?"":"로 이동"}`:e==="first"?"첫 번째 페이지로 이동":e==="last"?"마지막 페이지로 이동":e==="next"?"다음 페이지로 이동":"이전 페이지로 이동"}}}},W9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"ڕێچکە پیشان بدە"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"چوونە یەکەم پەڕە":e==="last"?"چوونە کۆتا پەڕە":e==="next"?"چوونە پەڕەی دواتر":"گەڕانەوە بۆ پەڕەی پێشوو",labelRowsPerPage:"ژمارەی ڕیزەکان لە هەر پەڕەیەک:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} لە ${n!==-1?n:` زیاترە لە${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"ئەستێرەکان":"ئەستێرە"}`,emptyLabelText:"خاڵیە"}},MuiAutocomplete:{defaultProps:{clearText:"سڕینەوە",closeText:"داخستن",loadingText:"لە بارکردندایە...",noOptionsText:"هیچ بژاردەیەک نیە",openText:"کردنەوە"}},MuiAlert:{defaultProps:{closeText:"داخستن"}},MuiPagination:{defaultProps:{"aria-label":"گەڕان لە پەڕەکان",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"چوون بۆ "} پەڕەی ${t}`:e==="first"?"چوونە یەکەم پەڕە":e==="last"?"چوونە کۆتا پەڕە":e==="next"?"چوونە پەڕەی دواتر":"گەڕانەوە بۆ پەڕەی پێشوو"}}}},U9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Rê nîşan bide"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Biçe rûpela yekem":e==="last"?"Biçe rûpela dawî":e==="next"?"Biçe rûpela din":"Biçe rûpela berê",labelRowsPerPage:"Rêz li ser rûpelê:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} of ${n!==-1?n:`zêdetir ji ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stêrk`,emptyLabelText:"Vala"}},MuiAutocomplete:{defaultProps:{clearText:"Paqij bike",closeText:"Bigre",loadingText:"Tê barkirin…",noOptionsText:"Vebijêrk tune",openText:"Veke"}},MuiAlert:{defaultProps:{closeText:"Bigre"}},MuiPagination:{defaultProps:{"aria-label":"Navîgasyona rûpelan",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Biçe "}rûpel ${t}`:e==="first"?"Biçe rûpela yekem":e==="last"?"Biçe rûpela dawî":e==="next"?"Biçe rûpela din":"Biçe rûpela berê"}}}},G9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Толық жолды көрсету"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Бірінші бетке өту":e==="last"?"Соңғы бетке өту":e==="next"?"Келесі бетке өту":"Алдыңғы бетке өту",labelRowsPerPage:"Беттегі қатарлар:",labelDisplayedRows:({from:e,to:t,count:n})=>`${n!==-1?n:`+${t}`} қатардың ішінен ${e}–${t}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} жұлдыз`,emptyLabelText:"Рейтинг жоқ"}},MuiAutocomplete:{defaultProps:{clearText:"Тазарту",closeText:"Жабу",loadingText:"Жүктелуде…",noOptionsText:"Қол жетімді нұсқалар жоқ",openText:"Ашу"}},MuiAlert:{defaultProps:{closeText:"Жабу"}},MuiPagination:{defaultProps:{"aria-label":"Беттерді шарлау",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t} — бет`:`${t} — бетке өту`:e==="first"?"Бірінші бетке өту":e==="last"?"Соңғы бетке өту":e==="next"?"Келесі бетке өту":"Алдыңғы бетке өту"}}}},q9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Прикажи патека"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Оди на прва страница":e==="last"?"Оди на последна страница":e==="next"?"Оди на следна страница":"Оди на предходна страница",labelRowsPerPage:"Редови по страница:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} од ${n!==-1?n:`повеќе од ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} Ѕвезд${t===1?"а":"и"}`},emptyLabelText:"Празно"}},MuiAutocomplete:{defaultProps:{clearText:"Избриши",closeText:"Затвори",loadingText:"Се презема",noOptionsText:"Нема опција",openText:"Отвори"}},MuiAlert:{defaultProps:{closeText:"Затвори"}},MuiPagination:{defaultProps:{"aria-label":"Навигација низ страници",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Оди на "}страница ${t}`:e==="first"?"Оди на прва страница":e==="last"?"Оди на последна страница":e==="next"?"Оди на следна страница":"Оди на предходна страница"}}}},K9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"လမ်းကြောင်းပြပါ။"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ပထမစာမျက်နှာသို့သွားပါ။":e==="last"?"နောက်ဆုံးစာမျက်နှာသို့သွားပါ။":e==="next"?"နောက်စာမျက်နှာသို့သွားပါ။":"ယခင်စာမျက်နှာသို့သွားပါ။",labelRowsPerPage:"စာမျက်နှာအလိုက် အတန်းများ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} ၏ ${n!==-1?n:`ထက်ပိုပြီး ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} ကြယ်ပွင့်${t===1?"၎":""}`},emptyLabelText:"ဗလာ"}},MuiAutocomplete:{defaultProps:{clearText:"ရှင်းလင်းသော",closeText:"ပိတ်လိုက်",loadingText:"ဖွင့်နေသည်…",noOptionsText:"ရွေးချယ်ခွင့်မရှိပါ။",openText:"ဖွင့်သည်။"}},MuiAlert:{defaultProps:{closeText:"ပိတ်လိုက်"}},MuiPagination:{defaultProps:{"aria-label":"Pagination အညွှန်း",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"သွားပါ။ "}စာမျက်နှာ ${t}`:e==="first"?"ပထမစာမျက်နှာသို့သွားပါ။":e==="last"?"နောက်ဆုံးစာမျက်နှာသို့သွားပါ။":e==="next"?"နောက်စာမျက်နှာသို့သွားပါ။":"ယခင်စာမျက်နှာသို့သွားပါ။"}}}},Z9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Tunjukkan laluan"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Pergi ke halaman pertama":e==="last"?"Pergi ke halaman terakhir":e==="next"?"Pergi ke halaman seterusnya":"Pergi ke halaman sebelumnya",labelRowsPerPage:"Baris setiap halaman:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} daripada ${n!==-1?n:`lebih daripada ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} Bintang${t===1?"s":""}`},emptyLabelText:"kosong"}},MuiAutocomplete:{defaultProps:{clearText:"Jelas",closeText:"tutup",loadingText:"Memuatkan…",noOptionsText:"Tiada pilihan",openText:"Buka"}},MuiAlert:{defaultProps:{closeText:"tutup"}},MuiPagination:{defaultProps:{"aria-label":"Navigasi penomboran",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Pergi ke "}muka surat ${t}`:e==="first"?"Pergi ke halaman pertama":e==="last"?"Pergi ke halaman terakhir":e==="next"?"Pergi ke halaman seterusnya":"Pergi ke halaman sebelumnya"}}}},Q9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"बाटो देखाउनुहोस्"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"पहिलो पृष्ठमा जानुहोस्":e==="last"?"अन्तिम पृष्ठमा जानुहोस्":e==="next"?"अर्को पृष्ठमा जानुहोस्":"अघिल्लो पृष्ठमा जानुहोस्",labelRowsPerPage:"प्रति पृष्ठ पङ्क्तिहरू:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} को ${n!==-1?n:`धेरै ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} तारा${t===1?"स":""}`},emptyLabelText:"खाली"}},MuiAutocomplete:{defaultProps:{clearText:"खाली गर्नुहोस्",closeText:"बन्द गर्नुहोस्",loadingText:"लोड हुँदै...",noOptionsText:"कुनै विकल्प छैन",openText:"खोल्नुहोस्"}},MuiAlert:{defaultProps:{closeText:"बन्द गर्नुहोस्"}},MuiPagination:{defaultProps:{"aria-label":"पृष्ठांकन नेभिगेसन",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"जाऊ त्यहाँ "}पृष्ठ ${t}`:e==="first"?"पहिलो पृष्ठमा जानुहोस्":e==="last"?"अन्तिम पृष्ठमा जानुहोस्":e==="next"?"अर्को पृष्ठमा जानुहोस्":"अघिल्लो पृष्ठमा जानुहोस्"}}}},Y9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Vis sti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til forrige side",labelRowsPerPage:"Rader per side:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} av ${n!==-1?n:`mer enn ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stjerne${e!==1?"r":""}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Tøm",closeText:"Lukk",loadingText:"Laster inn…",noOptionsText:"Ingen alternativer",openText:"Åpne"}},MuiAlert:{defaultProps:{closeText:"Lukk"}},MuiPagination:{defaultProps:{"aria-label":"Paginering navigasjon",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gå til "}side ${t}`:e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til forrige side"}}}},X9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Vis sti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til førre side",labelRowsPerPage:"Rader per side:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} av ${n!==-1?n:`fleire enn ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} stjerne${e!==1?"r":""}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Tøm",closeText:"Lukk",loadingText:"Lastar inn…",noOptionsText:"Ingen alternativ",openText:"Opna"}},MuiAlert:{defaultProps:{closeText:"Lukk"}},MuiPagination:{defaultProps:{"aria-label":"Navigasjon for paginering",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gå til "}side ${t}`:e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til førre side"}}}},J9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pad tonen"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ga naar eerste pagina":e==="last"?"Ga naar laatste pagina":e==="next"?"Ga naar volgende pagina":"Ga naar vorige pagina",labelRowsPerPage:"Regels per pagina:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} van ${n!==-1?n:`meer dan ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Ster${e!==1?"ren":""}`,emptyLabelText:"Leeg"}},MuiAutocomplete:{defaultProps:{clearText:"Wissen",closeText:"Sluiten",loadingText:"Laden…",noOptionsText:"Geen opties",openText:"Openen"}},MuiAlert:{defaultProps:{closeText:"Sluiten"}},MuiPagination:{defaultProps:{"aria-label":"Navigatie via paginering",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ga naar "}pagina ${t}`:e==="first"?"Ga naar eerste pagina":e==="last"?"Ga naar laatste pagina":e==="next"?"Ga naar volgende pagina":"Ga naar vorige pagina"}}}},eD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pokaż ścieżkę"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Przejdź do pierwszej strony":e==="last"?"Przejdź do ostatniej strony":e==="next"?"Przejdź do następnej strony":"Przejdź do poprzedniej strony",labelRowsPerPage:"Wierszy na stronę:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} z ${n!==-1?n:`ponad ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="gwiazdek";const n=e%10;return(e<10||e>20)&&n>1&&n<5?t="gwiazdki":e===1&&(t="gwiazdka"),`${e} ${t}`},emptyLabelText:"Brak gwiazdek"}},MuiAutocomplete:{defaultProps:{clearText:"Wyczyść",closeText:"Zamknij",loadingText:"Ładowanie…",noOptionsText:"Brak opcji",openText:"Otwórz"}},MuiAlert:{defaultProps:{closeText:"Zamknij"}},MuiPagination:{defaultProps:{"aria-label":"Nawigacja podziału na strony",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t}. strona`:`Przejdź do ${t}. strony`:e==="first"?"Przejdź do pierwszej strony":e==="last"?"Przejdź do ostatniej strony":e==="next"?"Przejdź do następnej strony":"Przejdź do poprzedniej strony"}}}},tD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"لاره ښکاره کړه"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"لومړۍ پاڼې ته لاړ شه":e==="last"?"ورستۍ پاڼې ته لاړ شه":e==="next"?"بلی پاڼې ته لاړ شه":"مخکینۍ پاڼې ته لاړ شه",labelRowsPerPage:"په پاڼه کی د کرښو شمیر",labelDisplayedRows:({from:e,to:t,count:n})=>`${n!==-1?n:`${t} زیات له`} ${t}- ${e} د`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ستوری`,emptyLabelText:"خالی"}},MuiAutocomplete:{defaultProps:{clearText:"پاک کول",closeText:"تړل",loadingText:"... لوډ کیږی",noOptionsText:"بی پایلی",openText:"خلاصول"}},MuiAlert:{defaultProps:{closeText:"تړل"}},MuiPagination:{defaultProps:{"aria-label":"د پاڼو ترتیب",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":" ته لاړ شه"}پاڼې ${t}`:e==="first"?"لومړۍ پاڼی ته لاړ شه":e==="last"?"وروستۍ پاڼې ته لاړه شه":e==="next"?"بلې پاڼې ته لاړ شه":"مخکنۍ پاڼې ته لاړ شه"}}}},nD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mostrar caminho"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ir para a primeira página":e==="last"?"Ir para a última página":e==="next"?"Ir para a próxima página":"Ir para a página anterior",labelRowsPerPage:"Linhas por página:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} de ${n!==-1?n:`mais de ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Estrela${e!==1?"s":""}`,emptyLabelText:"Vazio"}},MuiAutocomplete:{defaultProps:{clearText:"Limpar",closeText:"Fechar",loadingText:"Carregando…",noOptionsText:"Sem opções",openText:"Abrir"}},MuiAlert:{defaultProps:{closeText:"Fechar"}},MuiPagination:{defaultProps:{"aria-label":"Navegar pela paginação",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ir para a "}página ${t}`:e==="first"?"Ir para a primeira página":e==="last"?"Ir para a última página":e==="next"?"Ir para a próxima página":"Ir para a página anterior"}}}},rD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mostrar caminho"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Primeira página":e==="last"?"Última página":e==="next"?"Próxima página":"Página anterior",labelRowsPerPage:"Linhas por página:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} de ${n!==-1?n:`mais de ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Estrela${e!==1?"s":""}`,emptyLabelText:"Vazio"}},MuiAutocomplete:{defaultProps:{clearText:"Limpar",closeText:"Fechar",loadingText:"A carregar…",noOptionsText:"Sem opções",openText:"Abrir"}},MuiAlert:{defaultProps:{closeText:"Fechar"}},MuiPagination:{defaultProps:{"aria-label":"Navegar por páginas",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ir para a "}página ${t}`:e==="first"?"Primeira página":e==="last"?"Última página":e==="next"?"Próxima página":"Página anterior"}}}},oD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Arată calea"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Mergi la prima pagină":e==="last"?"Mergi la ultima pagină":e==="next"?"Mergi la pagina următoare":"Mergi la pagina precedentă",labelRowsPerPage:"Rânduri pe pagină:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} St${e!==1?"ele":"ea"}`,emptyLabelText:"Gol"}},MuiAutocomplete:{defaultProps:{clearText:"Șterge",closeText:"Închide",loadingText:"Se încarcă…",noOptionsText:"Nicio opțiune",openText:"Deschide"}},MuiAlert:{defaultProps:{closeText:"Închide"}},MuiPagination:{defaultProps:{"aria-label":"Navigare prin paginare",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Mergi la "}pagina ${t}`:e==="first"?"Mergi la prima pagină":e==="last"?"Mergi la ultima pagină":e==="next"?"Mergi la pagina următoare":"Mergi la pagina precedentă"}}}},iD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pokaži putanju"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na poslednju stranicu":e==="next"?"Idi na sledeću stranicu":"Idi na prethodnu stranicu",labelRowsPerPage:"Redova po stranici:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} od ${n!==-1?n:`više nego ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10,n=e%100;return[2,3,4].includes(t)&&![12,13,14].includes(n)?"Zvezde":"Zvezda"},emptyLabelText:"Prazno"}},MuiAutocomplete:{defaultProps:{clearText:"Briši",closeText:"Zatvori",loadingText:"Učitavanje…",noOptionsText:"Nema opcija",openText:"Otvori"}},MuiAlert:{defaultProps:{closeText:"Zatvori"}},MuiPagination:{defaultProps:{"aria-label":"Navigacija po stranicama",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Idi na "}stranicu ${t}`:e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na zadnju stranicu":e==="next"?"Idi na sledeću stranicu":"Idi na prethodnu stranicu"}}}},aD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Показать полный путь"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Перейти на первую страницу":e==="last"?"Перейти на последнюю страницу":e==="next"?"Перейти на следующую страницу":"Перейти на предыдущую страницу",labelRowsPerPage:"Строк на странице:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} из ${n!==-1?n:`более чем ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Звёзд";const n=e%10;return n>1&&n<5?t="Звезды":n===1&&(t="Звезда"),`${e} ${t}`},emptyLabelText:"Рейтинг отсутствует"}},MuiAutocomplete:{defaultProps:{clearText:"Очистить",closeText:"Закрыть",loadingText:"Загрузка…",noOptionsText:"Нет доступных вариантов",openText:"Открыть"}},MuiAlert:{defaultProps:{closeText:"Закрыть"}},MuiPagination:{defaultProps:{"aria-label":"Навигация по страницам",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t} страница`:`Перейти на ${t} страницу`:e==="first"?"Перейти на первую страницу":e==="last"?"Перейти на последнюю страницу":e==="next"?"Перейти на следующую страницу":"Перейти на предыдущую страницу"}}}},sD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"ගමන් මඟ පෙන්වන්න"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"පළමු පිටුවට යන්න":e==="last"?"අවසාන පිටුවට යන්න":e==="next"?"මීළඟ පිටුවට යන්න":"පෙර පිටුවට යන්න",labelRowsPerPage:"පිටුවක පේළි:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} දක්වා ${n!==-1?n:`${t} ට වැඩි ප්‍රමාණයකින්`}`}},MuiRating:{defaultProps:{getLabelText:e=>`තරු ${e}`,emptyLabelText:"හිස්"}},MuiAutocomplete:{defaultProps:{clearText:"මකන්න",closeText:"වසන්න",loadingText:"නැංවෙමින්…",noOptionsText:"විකල්ප නැත",openText:"විවෘත කරන්න"}},MuiAlert:{defaultProps:{closeText:"වසන්න"}},MuiPagination:{defaultProps:{"aria-label":"පිටු අතර සංචරණය",getItemAriaLabel:(e,t,n)=>e==="page"?`පිටුව ${t} ${n?"":"ට යන්න"}`:e==="first"?"පළමු පිටුවට යන්න":e==="last"?"අවසාන පිටුවට යන්න":e==="next"?"මීළඟ පිටුවට යන්න":"පෙර පිටුවට යන්න"}}}},lD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Ukázať cestu "}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ísť na prvú stránku":e==="last"?"Ísť na poslednú stránku":e==="next"?"Ísť na ďaľšiu stránku":"Ísť na predchádzajúcu stránku",labelRowsPerPage:"Riadkov na stránke:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} z ${n!==-1?n:`viac ako ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>e===1?`${e} hviezdička`:e>=2&&e<=4?`${e} hviezdičky`:`${e} hviezdičiek`,emptyLabelText:"Prázdne"}},MuiAutocomplete:{defaultProps:{clearText:"Vymazať",closeText:"Zavrieť",loadingText:"Načítanie…",noOptionsText:"Žiadne možnosti",openText:"Otvoriť"}},MuiAlert:{defaultProps:{closeText:"Zavrieť"}},MuiPagination:{defaultProps:{"aria-label":"Navigácia stránkovanim",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ísť na "}stránku ${t}`:e==="first"?"Ísť na prvú stránku":e==="last"?"Ísť na poslednú stránku":e==="next"?"Ísť na ďaľšiu stránku":"Ísť na predchádzajúcu stránku"}}}},cD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Visa sökväg"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå till första sidan":e==="last"?"Gå till sista sidan":e==="next"?"Gå till nästa sida":"Gå till föregående sida",labelRowsPerPage:"Rader per sida:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} av ${n!==-1?n:`fler än ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"Stjärnor":"Stjärna"}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Rensa",closeText:"Stäng",loadingText:"Laddar…",noOptionsText:"Inga alternativ",openText:"Öppna"}},MuiAlert:{defaultProps:{closeText:"Stäng"}},MuiPagination:{defaultProps:{"aria-label":"Sidnavigering",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gå till "}sida ${t}`:e==="first"?"Gå till första sidan":e==="last"?"Gå till sista sidan":e==="next"?"Gå till nästa sida":"Gå till föregående sida"}}}},uD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"แสดงเส้นทาง"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ไปที่หน้าแรก":e==="last"?"ไปที่หน้าสุดท้าย":e==="next"?"ไปที่หน้าถัดไป":"ไปที่หน้าก่อน",labelRowsPerPage:"จำนวนแถวต่อหน้า:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} จาก ${n!==-1?n:`มากกว่า ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ดาว`,emptyLabelText:"ว่างเปล่า"}},MuiAutocomplete:{defaultProps:{clearText:"เคลียร์",closeText:"ปิด",loadingText:"กำลังโหลด…",noOptionsText:"ไม่มีตัวเลือก",openText:"เปิด"}},MuiAlert:{defaultProps:{closeText:"ปิด"}},MuiPagination:{defaultProps:{"aria-label":"",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ไปที่"}หน้า ${t}`:e==="first"?"ไปที่หน้าแรก":e==="last"?"ไปที่หน้าสุดท้าย":e==="next"?"ไปที่หน้าถัดไป":"ไปที่หน้าก่อน"}}}},dD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Yolu göster"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"İlk sayfaya git":e==="last"?"Son sayfaya git":e==="next"?"Sonraki sayfaya git":"Önceki sayfaya git",labelRowsPerPage:"Sayfa başına satır:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t} / ${n!==-1?n:`${t}'den fazla`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Yıldız`,emptyLabelText:"Boş"}},MuiAutocomplete:{defaultProps:{clearText:"Temizle",closeText:"Kapat",loadingText:"Yükleniyor…",noOptionsText:"Seçenek yok",openText:"Aç"}},MuiAlert:{defaultProps:{closeText:"Kapat"}},MuiPagination:{defaultProps:{"aria-label":"Sayfa navigasyonu",getItemAriaLabel:(e,t,n)=>e==="page"?`${t}. ${n?"sayfa":"sayfaya git"}`:e==="first"?"İlk sayfaya git":e==="last"?"Son sayfaya git":e==="next"?"Sonraki sayfaya git":"Önceki sayfaya git"}}}},fD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Ipakita ang landas"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Pumunta sa unang pahina":e==="last"?"Pumunta sa huling pahina":e==="next"?"Pumunta sa susunod na pahina":"Pumunta sa nakaraang pahina",labelRowsPerPage:"Mga hilera bawat pahina:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} ng ${n!==-1?n:`higit sa ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Bituin${e!==1?"s":""}`,emptyLabelText:"Walang laman"}},MuiAutocomplete:{defaultProps:{clearText:"Maaliwalas",closeText:"Isara",loadingText:"Naglo-load…",noOptionsText:"Walang mga pagpipilian",openText:"Bukas"}},MuiAlert:{defaultProps:{closeText:"Isara"}},MuiPagination:{defaultProps:{"aria-label":"Sayfa navigasyonu",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Pumunta sa"}pahina ${t}`:e==="first"?"Pumunta sa unang pahina":e==="last"?"Pumunta sa huling pahina":e==="next"?"Pumunta sa susunod na pahina":"Pumunta sa nakaraang pahina"}}}},pD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Показати шлях сторінок"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Перейти на першу сторінку":e==="last"?"Перейти на останню сторінку":e==="next"?"Перейти на наступну сторінку":"Перейти на попередню сторінку",labelRowsPerPage:"Рядків на сторінці:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} з ${n!==-1?n:`понад ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Зірок";const n=e%10;return n>1&&n<5?t="Зірки":n===1&&(t="Зірка"),`${e} ${t}`},emptyLabelText:"Рейтинг відсутній"}},MuiAutocomplete:{defaultProps:{clearText:"Очистити",closeText:"Згорнути",loadingText:"Завантаження…",noOptionsText:"Немає варіантів",openText:"Розгорнути"}},MuiAlert:{defaultProps:{closeText:"Згорнути"}},MuiPagination:{defaultProps:{"aria-label":"Навігація сторінками",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Перейти на "}сторінку ${t}`:e==="first"?"Перейти на першу сторінку":e==="last"?"Перейти на останню сторінку":e==="next"?"Перейти на наступну сторінку":"Перейти на попередню сторінку"}}}},gD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"راستہ دکھائیں"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"پہلے صفحے پر جائیں":e==="last"?"آخری صفحے پر جائیں":e==="next"?"اگلے صفحے پر جائیں":"پچھلے صفحے پر جائیں",labelRowsPerPage:"ایک صفحے پر قطاریں:",labelDisplayedRows:({from:e,to:t,count:n})=>`${n!==-1?`${n} میں سے`:`${t} سے ذیادہ میں سے`} ${e} سے ${t} قطاریں`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ستار${e!==1?"ے":"ہ"}`,emptyLabelText:"خالی"}},MuiAutocomplete:{defaultProps:{clearText:"کلئیر",closeText:"بند کریں",loadingText:"لوڈ ہو رہا ہے۔۔۔",noOptionsText:"کوئی آپشن نہیں",openText:"کھولیں"}},MuiAlert:{defaultProps:{closeText:"بند کریں"}},MuiPagination:{defaultProps:{"aria-label":"صفحات کی ترتیب",getItemAriaLabel:(e,t,n)=>e==="page"?`صفحہ نمبر ${t}${n?"":" پر جائیں"}`:e==="first"?"پہلے صفحے پر جائیں":e==="last"?"آخری صفحے پر جائیں":e==="next"?"اگلے صفحے پر جائیں":"پچھلے صفحے پر جائیں"}}}},hD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mở ra"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Tới trang đầu tiên":e==="last"?"Tới trang cuối cùng":e==="next"?"Tới trang tiếp theo":"Về trang trước đó",labelRowsPerPage:"Số hàng mỗi trang:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} trong ${n!==-1?n:`nhiều hơn ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} sao`,emptyLabelText:"Không có dữ liệu"}},MuiAutocomplete:{defaultProps:{clearText:"Xóa",closeText:"Đóng",loadingText:"Đang tải…",noOptionsText:"Không có lựa chọn nào",openText:"Mở"}},MuiAlert:{defaultProps:{closeText:"Đóng"}},MuiPagination:{defaultProps:{"aria-label":"Thanh điều khiển trang",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Tới "}trang ${t}`:e==="first"?"Tới trang đầu tiên":e==="last"?"Tới trang cuối cùng":e==="next"?"Tới trang tiếp theo":"Về trang trước đó"}}}},mD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"展开"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"第一页":e==="last"?"最后一页":e==="next"?"下一页":"上一页",labelRowsPerPage:"每页行数:",labelDisplayedRows:({from:e,to:t,count:n})=>`第 ${e} 条到第 ${t} 条,${n!==-1?`共 ${n} 条`:`至少 ${t} 条`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 颗星`,emptyLabelText:"无标签"}},MuiAutocomplete:{defaultProps:{clearText:"清空",closeText:"关闭",loadingText:"加载中……",noOptionsText:"没有可用选项",openText:"打开"}},MuiAlert:{defaultProps:{closeText:"关闭"}}}},vD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"展開"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"第一頁":e==="last"?"最後一頁":e==="next"?"下一頁":"上一頁",labelRowsPerPage:"每頁行數:",labelDisplayedRows:({from:e,to:t,count:n})=>`第 ${e} 項至第 ${t} 項,${n!==-1?`共 ${n} 項`:`超過 ${t} 項`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 粒星`,emptyLabelText:"無標籤"}},MuiAutocomplete:{defaultProps:{clearText:"清除",closeText:"關閉",loadingText:"載入中……",noOptionsText:"沒有可用選項",openText:"開啟"}},MuiAlert:{defaultProps:{closeText:"關閉"}}}},yD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"展開"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"第一頁":e==="last"?"最後一頁":e==="next"?"下一頁":"上一頁",labelRowsPerPage:"每頁數量:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e} ~ ${t} / ${n!==-1?n:`${t} 以上`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 顆星`,emptyLabelText:"無標籤"}},MuiAutocomplete:{defaultProps:{clearText:"清空",closeText:"關閉",loadingText:"載入中…",noOptionsText:"沒有可用選項",openText:"打開"}},MuiAlert:{defaultProps:{closeText:"關閉"}}}},bD=Object.freeze(Object.defineProperty({__proto__:null,amET:g9,arEG:h9,arSA:m9,arSD:v9,azAZ:y9,beBY:x9,bgBG:S9,bnBD:b9,caES:w9,csCZ:C9,daDK:_9,deDE:R9,elGR:T9,enUS:P9,esES:k9,etEE:$9,faIR:E9,fiFI:M9,frFR:I9,heIL:O9,hiIN:L9,hrHR:A9,huHU:N9,hyAM:D9,idID:j9,isIS:F9,itIT:B9,jaJP:z9,khKH:H9,kkKZ:G9,koKR:V9,kuCKB:W9,kuLatn:U9,mkMK:q9,msMS:Z9,myMY:K9,nbNO:Y9,neNP:Q9,nlNL:J9,nnNO:X9,plPL:eD,psAF:tD,ptBR:nD,ptPT:rD,roRO:oD,ruRU:aD,siLK:sD,skSK:lD,srRS:iD,svSE:cD,thTH:uD,tlTL:fD,trTR:dD,ukUA:pD,urPK:gD,viVN:hD,zhCN:mD,zhHK:vD,zhTW:yD},Symbol.toStringTag,{value:"Module"}));var fx;(function(e){e.Single="single",e.Multiple="multiple"})(fx||(fx={}));const xD="_toolbar_158fz_3",SD="_actions_158fz_8",wD="_selectLabel_158fz_16",CD="_select_158fz_16",_D="_displayedRows_158fz_21",RD="_selectRoot_158fz_29",TD="_selectIcon_158fz_45",PD="_iconBtnRoot_158fz_56",kD="_iconBtnDisabled_158fz_68",po={toolbar:xD,actions:SD,selectLabel:wD,select:CD,displayedRows:_D,selectRoot:RD,selectIcon:TD,iconBtnRoot:PD,iconBtnDisabled:kD},px={root:po.iconBtnRoot,disabled:po.iconBtnDisabled},$D=e=>{const{className:t="",page:n,onPageChange:r,count:o,rowsPerPage:i}=e;return g.jsxs("div",{className:t,children:[g.jsx(hr,{disableRipple:!0,classes:px,disabled:n===0,onClick:a=>r(a,n-1),children:g.jsx(WA,{size:10},void 0)},void 0),g.jsx(hr,{disableRipple:!0,classes:px,disabled:n>=Math.ceil(o/i)-1,onClick:a=>r(a,n+1),children:g.jsx(UA,{size:10},void 0)},void 0)]},void 0)},ED=e=>{const n=zt().language==="zhCN";return g.jsx(iA,{component:"div",ActionsComponent:r=>g.jsx($D,{...r},void 0),classes:{toolbar:po.toolbar,actions:po.actions,displayedRows:po.displayedRows,selectLabel:po.selectLabel,select:po.select,selectIcon:po.selectIcon},SelectProps:{label:n?"每页显示":"Rows per page",className:po.selectRoot,IconComponent:()=>g.jsx(ia,{size:12},void 0)},labelDisplayedRows:({from:r,to:o,count:i})=>g.jsx(mt,{color:"textSecondary",children:n?g.jsxs(g.Fragment,{children:["共有 ",g.jsx("strong",{children:i},void 0)," 条,第 ",g.jsx("strong",{children:r},void 0),"-",g.jsx("strong",{children:o},void 0),"条"]},void 0):g.jsxs(g.Fragment,{children:[g.jsx("strong",{children:r},void 0),"-",g.jsx("strong",{children:o},void 0)," of"," ",g.jsx("strong",{children:i},void 0)]},void 0)},void 0),...e},void 0)};var gx;(function(e){e[e.Previous=-1]="Previous",e[e.Next=1]="Next"})(gx||(gx={}));var hx;(function(e){e[e.Left=1]="Left",e[e.Right=2]="Right"})(hx||(hx={}));var mx;(function(e){e.Small="small",e.Medium="medium"})(mx||(mx={}));const MD=function(e,t,n){t.prototype.isBetween=function(r,o,i,a){var s=n(r),l=n(o);a=a||"()";var c=a[0]==="(",u=a[1]===")";return(c?this.isAfter(s,i):!this.isBefore(s,i))&&(u?this.isBefore(l,i):!this.isAfter(l,i))||(c?this.isBefore(s,i):!this.isAfter(s,i))&&(u?this.isAfter(l,i):!this.isBefore(l,i))}},ID=function(e,t,n){var r=function(i,a){if(!a||!a.length||a.length===1&&!a[0]||a.length===1&&Array.isArray(a[0])&&!a[0].length)return null;if(a.length===1&&a[0].length>0){var s=a;a=s[0]}a=a.filter(function(d){return d});var l,c=a;l=c[0];for(var u=1;u=M?D:""+Array(M+1-N.length).join(A)+D},w={s:m,z:function(D){var M=-D.utcOffset(),A=Math.abs(M),N=Math.floor(A/60),E=A%60;return(M<=0?"+":"-")+m(N,2,"0")+":"+m(E,2,"0")},m:function D(M,A){if(M.date()1)return D(B[0])}else{var H=M.name;R[H]=M,E=H}return!N&&E&&(_=E),E||!N&&_},x=function(D,M){if(T(D))return D.clone();var A=typeof M=="object"?M:{};return A.date=D,A.args=arguments,new I(A)},$=w;$.l=P,$.i=T,$.w=function(D,M){return x(D,{locale:M.$L,utc:M.$u,x:M.$x,$offset:M.$offset})};var I=function(){function D(A){this.$L=P(A.locale,null,!0),this.parse(A),this.$x=this.$x||A.x||{},this[k]=!0}var M=D.prototype;return M.parse=function(A){this.$d=function(N){var E=N.date,L=N.utc;if(E===null)return new Date(NaN);if($.u(E))return new Date;if(E instanceof Date)return new Date(E);if(typeof E=="string"&&!/Z$/i.test(E)){var B=E.match(C);if(B){var H=B[2]-1||0,z=(B[7]||"0").substring(0,3);return L?new Date(Date.UTC(B[1],H,B[3]||1,B[4]||0,B[5]||0,B[6]||0,z)):new Date(B[1],H,B[3]||1,B[4]||0,B[5]||0,B[6]||0,z)}}return new Date(E)}(A),this.init()},M.init=function(){var A=this.$d;this.$y=A.getFullYear(),this.$M=A.getMonth(),this.$D=A.getDate(),this.$W=A.getDay(),this.$H=A.getHours(),this.$m=A.getMinutes(),this.$s=A.getSeconds(),this.$ms=A.getMilliseconds()},M.$utils=function(){return $},M.isValid=function(){return this.$d.toString()!==y},M.isSame=function(A,N){var E=x(A);return this.startOf(N)<=E&&E<=this.endOf(N)},M.isAfter=function(A,N){return x(A)[{label:"Today",startDate:e,endDate:e},{label:"Yesterday",startDate:tt(e).add(-1,"day").toDate(),endDate:tt(e).add(-1,"day").toDate()},{label:"This Week",startDate:tt(e).startOf("week").toDate(),endDate:tt(e).endOf("week").toDate()},{label:"Last Week",startDate:tt(e).add(-1,"week").startOf("week").toDate(),endDate:tt(e).add(-1,"week").endOf("week").toDate()},{label:"Last 7 Days",startDate:tt(e).add(-1,"week").toDate(),endDate:e},{label:"This Month",startDate:tt(e).startOf("month").toDate(),endDate:tt(e).endOf("month").toDate()},{label:"Last Month",startDate:tt(e).add(-1,"month").startOf("month").toDate(),endDate:tt(e).add(-1,"month").endOf("month").toDate()}];LD(new Date);tt(new Date).startOf("week").toDate(),tt(new Date).endOf("week").toDate();const AD="_container_a4vk2_3",ND="_checkedCircle_a4vk2_5",DD="_checked_a4vk2_5",jD="_disabled_a4vk2_60",Ku={container:AD,checkedCircle:ND,checked:DD,disabled:jD},bx=e=>{const{checked:t=!1,disabled:n=!1}=e;return g.jsx("div",{className:Gt(Ku.checkedCircle,{[Ku.checked]:t,[Ku.disabled]:n})},void 0)},xx=rt.forwardRef(function(e,t){const{sx:n,disabled:r,checked:o,className:i,...a}=e;return g.jsx(BL,{ref:t,className:Gt(Ku.container,i),sx:{"&.Mui-disabled":{opacity:.5},...n},disableRipple:!0,disableTouchRipple:!0,color:"default",checkedIcon:g.jsx(bx,{checked:!0,disabled:r},void 0),icon:g.jsx(bx,{disabled:r},void 0),disabled:r,checked:o,...a},void 0)});rt.forwardRef(function(e,t){const{label:n="",...r}=e,o=zt();return n?g.jsx($_,{control:g.jsx(xx,{ref:t,...r},void 0),sx:{margin:0,display:"flex",alignSelf:"center",gap:"8px","& .MuiFormControlLabel-label":{fontSize:14,lineHeight:"135%",fontWeight:400,color:o.black.black1},"& .MuiFormControlLabel-label.Mui-disabled":{opacity:.5,color:o.black.black1},"& .MuiRadio-root":{padding:0,marginRight:0}},label:n},void 0):g.jsx(xx,{ref:t,...r},void 0)});Yd(new Date).startOf("day"),Yd(new Date).endOf("day");tt.extend(MD);tt.extend(ID);const FD="_btnWrapper_mwgh3_3",BD="_titleWrapper_mwgh3_9",xg={btnWrapper:FD,titleWrapper:BD},zD=rt.forwardRef(function(t,n){return g.jsx(m_,{ref:n,...t},void 0)}),HD=e=>{const{handleClose:t,severity:n="info",title:r,message:o,classes:i={root:"",title:"",message:""},icon:a,actions:s,showClose:l=!0,...c}=e,u=zt(),{iconStyles:d}=b.useMemo(()=>{let p=u.blue.blue2;switch(n){case"info":p=u.blue.blue2;break;case"error":p=u.red.red2;break;case"success":p=u.green.green2;break;case"warning":p=u.yellow.yellow2;break}return{iconStyles:{width:"20px",height:"20px",paddingTop:r?"2px":0,"& path":{fill:p}}}},[n,r]),f=g.jsx(hr,{"aria-label":"close",color:"inherit",size:"small",onClick:t,disableRipple:!0,sx:{"&.MuiIconButton-root":{"& path":{fill:u.black.black1},"&:hover":{"& path":{fill:u.black.black2}}}},children:g.jsx(I1,{size:16,fontSize:"inherit"},void 0)},void 0);return g.jsx(zD,{severity:n,variant:"outlined",iconMapping:{success:a||g.jsx(V_,{width:20,height:20,sx:d},void 0),info:a||g.jsx(_m,{width:20,height:20,sx:d},void 0),warning:a||g.jsx(z_,{sx:d},void 0),error:a||g.jsx(H_,{sx:d},void 0)},sx:{boxShadow:"0px 1px 10px 0px rgba(107, 121, 141, 0.30)",padding:"16px",width:"fit-content",borderRadius:"12px",border:"none",backgroundColor:"#FFF","& .MuiAlert-icon":{paddingTop:0,paddingBottom:0,marginRight:"8px"},"& .MuiAlert-message":{display:"flex",alignItems:"center",fontWeight:400,color:u.black.black1,padding:0},"& .MuiAlert-action":{paddingTop:0,paddingRight:"6px"}},action:r||!l?void 0:f,...c,children:g.jsxs("div",{className:Gt(i.root,xg.root),children:[r&&g.jsxs("div",{className:xg.titleWrapper,children:[g.jsx(mt,{variant:"h4Semibold",children:r},void 0),l?f:g.jsx("span",{},void 0)]},void 0),g.jsx(mt,{variant:"body1Regular",component:"div",sx:{whiteSpace:"normal",overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:5,WebkitBoxOrient:"vertical",paddingRight:"30px"},className:i.message,children:o},void 0),s&&g.jsx("div",{className:xg.btnWrapper,children:s.confirm&&g.jsx(O1,{variant:"textBlue",withMargin:!1,...s.confirm},void 0)},void 0)]},void 0)},void 0)},Sx=300,wx=({children:e,maxWidth:t="100%",tooltipProps:n={},typographyProps:r={}})=>{const o=b.useRef(null),[i,a]=b.useState(!1),{sx:s={},...l}=r;b.useEffect(()=>{const u=o.current;a(u.scrollWidth>u.offsetWidth||u.scrollHeight>u.offsetHeight)},[]);const c=b.useMemo(()=>{var d;const u=(d=o.current)==null?void 0:d.offsetWidth;return u?u>Sx?u:Sx:"100%"},[o.current]);return g.jsx(bp,{...n,title:i?e:"",sx:{maxWidth:c},children:g.jsx(mt,{component:"div",sx:{maxWidth:t,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",...s},ref:o,...l,children:e},void 0)},void 0)},VD=e=>g.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",...e,children:[g.jsx("path",{d:"M1.47656 33.8702C1.47656 34.5009 3.48086 35.1057 7.04852 35.5517C10.6162 35.9976 15.455 36.2482 20.5004 36.2482C25.5459 36.2482 30.3847 35.9976 33.9523 35.5517C37.52 35.1057 39.5243 34.5009 39.5243 33.8702C39.5243 33.2395 37.52 32.6346 33.9523 32.1887C30.3847 31.7427 25.5459 31.4922 20.5004 31.4922C15.455 31.4922 10.6162 31.7427 7.04852 32.1887C3.48086 32.6346 1.47656 33.2395 1.47656 33.8702Z",fill:"#F0F2F4"},void 0),g.jsx("path",{d:"M36.6449 17.8911V17.8435C36.6449 17.7959 36.6211 17.7722 36.6211 17.7246V17.7008L31.5085 7.53099C30.7713 5.27191 28.6787 3.75 26.3007 3.75H14.6723C12.2944 3.75 10.2017 5.27191 9.46457 7.53099L4.3519 17.7008V17.7246C4.32812 17.7722 4.32812 17.7959 4.32812 17.8435V27.4506C4.32812 30.4706 6.77745 32.9199 9.79748 32.9199H31.1993C34.2194 32.9199 36.6687 30.4706 36.6687 27.4506V17.9386C36.6449 17.9149 36.6449 17.9148 36.6449 17.8911ZM10.7962 8.03037C10.7962 8.03037 10.7962 8.00659 10.82 8.00659C11.3432 6.29444 12.9126 5.17679 14.6723 5.17679H26.2769C28.0366 5.17679 29.6061 6.29444 30.153 7.98281C30.153 7.98281 30.153 8.00659 30.1768 8.00659L34.909 17.2015H24.0416C23.6373 17.2015 23.3282 17.5106 23.3282 17.9148C23.3282 19.4843 22.0441 20.7684 20.4746 20.7684C18.9052 20.7684 17.621 19.4843 17.621 17.9148C17.621 17.5106 17.3119 17.2015 16.9077 17.2015H6.06405L10.7962 8.03037Z",fill:"#D1D6DC"},void 0),g.jsx("path",{d:"M35.2428 27.2126C35.2428 29.4479 33.4356 31.2552 31.2003 31.2552H9.79843C7.56313 31.2552 5.75586 29.4479 5.75586 27.2126V18.4141H16.2903C16.6232 20.4353 18.3829 21.981 20.4994 21.981C22.6158 21.981 24.3755 20.4353 24.7084 18.4141H35.2428V27.2126Z",fill:"#E0E3E7"},void 0)]},void 0),WD="_empty_1tvs0_3",UD="_text_1tvs0_13",Cx={empty:WD,text:UD};var Va;(function(e){e.Left="left",e.Right="right"})(Va||(Va={}));const GD=b.forwardRef((e,t)=>{const{autoWidth:n,placeholder:r,options:o,onChange:i,onSelectChange:a,onClose:s,onOpen:l,disabled:c=!1,label:u,sxProps:d={},defaultValue:f="",maxWidth:p,classes:{root:h,label:y,container:C,select:v,placeholder:S}={},MenuProps:m,value:w="",size:_="medium",renderValue:R,empty:k={},selectorTooltip:T={},endAdornment:P,...x}=e,[$,I]=b.useState(""),O=zt(),D=L=>{const B=L.target.value;if(I(B),Array.isArray(B)){const z=o.filter(j=>B.includes(j.value)&&!j.disabled);a?a(L,z):i(z);return}const H=o.find(z=>z.value===B);H!=null&&H.disabled||(a?a(L,H):i(H))};b.useEffect(()=>{I(w)},[w]),b.useEffect(()=>{I(f)},[f]);const M=b.useMemo(()=>_==="small"?{minWidth:"83px",height:28,iconRightOffset:"8px",select:{padding:`6px ${P?"65px":"32px"} 6px 8px`,minHeight:"16px",fontSize:"13px",lineHeight:"135%",borderRadius:"6px"},placeholderVariant:"body2Regular"}:{minWidth:"120px",height:36,iconRightOffset:"12px",select:{padding:`8px ${P?"74px":"38px"} 8px 12px`,minHeight:"20px",fontSize:"14px",lineHeight:"135%",borderRadius:"8px"},placeholderVariant:"body1Regular"},[_,P]),A=b.useMemo(()=>f===""&&w===""?r?()=>g.jsx(mt,{variant:M.placeholderVariant,sx:{color:O.black.black3,...d.sxPlaceHolder},className:S,children:r},void 0):R:R||void 0,[f,w,r,R,M]),N=L=>L==="small"?12:14,E=P?L=>g.jsxs(Or,{sx:{height:M.height,display:"flex",gap:_==="small"?"10px":"12px",position:"absolute",right:"12px",userSelect:"none",pointerEvents:"none",alignItems:"center"},children:[g.jsx(ia,{size:N(_)},void 0),g.jsx(Or,{sx:{height:"100%",width:"1px",backgroundColor:O.stroke.stroke1}},void 0),g.jsx(mt,{component:"div",variant:"body2Regular",children:P},void 0)]},void 0):L=>g.jsx(ia,{size:N(_),...L},void 0);return g.jsxs(mt,{component:"div",sx:{display:"flex",flexDirection:"column",gap:"8px",...d.sxRoot},className:h,children:[u&&g.jsx(mt,{component:"label",variant:"h4Medium",sx:{marginTop:O.spacing(1),...d.sxLabel},className:y,children:u},void 0),g.jsx(Mc,{tooltip:T,children:g.jsx(Or,{sx:{position:"relative",display:"inline-block",verticalAlign:"baseline",backgroundColor:c?O.black.black5:"#fff",borderRadius:M.select.borderRadius,width:"100%",...d.sxSelectContainer},className:C,children:g.jsx(vp,{autoWidth:n,value:w||$,onChange:c?()=>{}:D,onClose:s,onOpen:l,disabled:c,displayEmpty:!0,IconComponent:E,className:v,renderValue:A,MenuProps:{sx:{"& .MuiPaper-root":{marginTop:"6px",background:O.palette.common.white,boxShadow:aa,border:`1px solid ${O.stroke.stroke1}`,borderRadius:"8px","& > ul.MuiList-root":{padding:"6px 0","& li":{margin:"4px 0"}}},...d.sxMenu},anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},PaperProps:{sx:{maxHeight:"50vh"}},...m},sx:{width:n?"auto":"100%",minWidth:M.minWidth,height:M.height,transition:"all 0.2s",borderRadius:M.select.borderRadius,"& fieldset":{border:`1px solid ${O.stroke.stroke1}`,borderRadius:M.select.borderRadius,boxShadow:aa},"& > .MuiSelect-icon":{right:M.iconRightOffset,top:"auto",bottom:"auto",transform:"rotate(0)","& path":{fill:O.black.black1}},"&.Mui-focused fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.blue.blue1}`,boxShadow:`0px 0px 0px 4px ${O.blue.blue4}, ${pr}`,zIndex:"999"},"&.Mui-focused:hover fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.blue.blue1}`,boxShadow:"none"},"&.Mui-error":{transition:"none","&.Mui-error fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.red.red2}`,boxShadow:`0px 0px 0px 4px ${O.red.red4}, ${pr}`},"&.Mui-error:hover fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.red.red2}`,boxShadow:"none"}},"& .MuiSelect-select":{padding:M.select.padding,minHeight:M.select.minHeight,fontSize:M.select.fontSize,lineHeight:M.select.lineHeight,boxSizing:"border-box",".MuiTypography-root":{fontSize:M.select.fontSize,lineHeight:M.select.lineHeight},"& p":{fontSize:M.select.fontSize,lineHeight:M.select.lineHeight},"& span":{fontSize:M.select.fontSize,lineHeight:M.select.lineHeight}},"&:hover":{backgroundColor:c?"unset":O.palette.common.white,"&:not(.Mui-error)":{boxShadow:c?"none":`0px 0px 0px 4px ${O.blue.blue4}, ${pr}`},"&.Mui-error":{boxShadow:`0px 0px 0px 4px ${O.red.red4}, ${pr}`},"& fieldset.MuiOutlinedInput-notchedOutline":{borderColor:"transparent"}},"&:focus":{"& fieldset":{borderColor:O.blue.blue1,boxShadow:`0px 0px 0px 4px ${O.blue.blue4}, ${pr}`}},"&.Mui-disabled":{color:O.black.black3,"& > .MuiSelect-icon path":{fill:O.black.black3},"& fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.stroke.stroke1}`}},...d.sxSelect},...x,children:o.length>0?o.map(L=>KD(L,O,d.sxMenuItem,p)):g.jsx(qD,{...k},void 0)},void 0)},void 0)},void 0)]},void 0)}),qD=e=>{const{label:t,component:n,classes:r={root:"",text:"",img:""}}=e,o=zt();return g.jsx($c,{sx:{"&.Mui-disabled":{opacity:1,pointerEvents:"inherit","&:hover":{backgroundColor:"unset"}}},disabled:!0,children:n||g.jsxs("div",{className:Gt(Cx.empty,r.root),children:[g.jsx(VD,{className:r.img},void 0),g.jsx(mt,{component:"div",className:Gt(Cx.text,r.text),children:t||Kd(Ae.NoOptions,o.language)},void 0)]},void 0)},void 0)},KD=(e,t,n,r)=>{const{generateCustomEle:o,icon:i,label:a,tooltip:s,disabled:l,id:c,value:u,iconPosition:d=Va.Left}=e;if(o)return o();const f=({id:p,value:h,disabled:y,icon:C,label:v,iconPosition:S=Va.Left})=>g.jsx($c,{value:h,disableRipple:!0,disableTouchRipple:!0,disabled:y||!1,sx:{maxWidth:r||"inherit",padding:"8px 16px","&.Mui-disabled":{opacity:1,backgroundColor:"transparent",pointerEvents:"inherit","& > div":{color:t.black.black3}},"&.Mui-selected.Mui-focusVisible":{backgroundColor:t.palette.common.white},"&.Mui-selected":{backgroundColor:t.palette.common.white,"& > * span":{color:t.blue.blue1},"& > .MuiTypography-root":{color:t.blue.blue1}},"&:not(.Mui-disabled):hover":{backgroundColor:t.black.black5},...n},children:C?g.jsxs(mt,{component:"div",sx:{display:"flex",flexDirection:"row",alignItems:"center",gap:"8px"},children:[S===Va.Left?C:null,g.jsx(wx,{typographyProps:{component:"span"},maxWidth:r?r-50:void 0,children:v},void 0),S===Va.Right?C:null]},void 0):g.jsx(wx,{maxWidth:r||void 0,typographyProps:{sx:{minWidth:10}},children:v},void 0)},p===void 0?h:p);return l&&s?g.jsx(Mc,{tooltip:s,children:f({id:c,value:u,disabled:l,icon:i,label:a,iconPosition:d})},c):f({id:c,value:u,disabled:l,icon:i,label:a,iconPosition:d})},q_=b.forwardRef((e,t)=>{const{options:n,handleChange:r,handleInputChange:o,inputParams:i={},fullWidth:a=!0,sx:s={},size:l,...c}=e,u=zt(),d=(h,y)=>{r&&r(y)},f=(h,y)=>{o&&o(y)},p=b.useMemo(()=>l==="small"?{height:28,iconRightOffset:"8px",select:{padding:"6px 32px 6px 8px",fontSize:"13px",lineHeight:"135%",endIconRight:"1px",borderRadius:"6px"}}:{height:36,iconRightOffset:"12px",select:{padding:"8px 38px 8px 12px",fontSize:"14px",lineHeight:"135%",endIconRight:"3px",borderRadius:"8px"}},[l]);return g.jsx(wI,{disablePortal:!0,sx:{"& .MuiOutlinedInput-root":{minHeight:p.height,padding:p.select.padding,borderRadius:p.select.borderRadius,".MuiOutlinedInput-notchedOutline":{borderColor:u.stroke.stroke1,boxShadow:aa},"&:hover":{cursor:"pointer","& .MuiOutlinedInput-notchedOutline":{borderColor:"transparent",boxShadow:`0px 0px 0px 4px ${u.blue.blue4}, ${pr}`}},"&.Mui-focused":{"& .MuiOutlinedInput-notchedOutline":{border:`1px solid ${u.blue.blue1}`,boxShadow:`0px 0px 0px 4px ${u.blue.blue4}, ${pr}`}},"& input.MuiInputBase-input":{fontSize:p.select.fontSize,lineHeight:p.select.lineHeight,padding:0,height:"auto"}},"& .MuiIconButton-root:hover":{background:"none"},"& div.MuiAutocomplete-endAdornment":{top:"calc(50% - 2px)",paddingRight:p.select.endIconRight},"& .MuiAutocomplete-popupIndicatorOpen":{transform:"none"},...s},PaperComponent:h=>g.jsx(Is,{sx:{marginTop:"6px",background:u.palette.common.white,boxShadow:aa,border:`1px solid ${u.stroke.stroke1}`,borderRadius:p.select.borderRadius,".MuiAutocomplete-listbox":{".MuiAutocomplete-option":{backgroundColor:u.palette.common.white,padding:"8px 16px","&:hover":{backgroundColor:`${u.black.black5} `}}},"& .MuiAutocomplete-option":{fontSize:p.select.fontSize,lineHeight:p.select.lineHeight},'& .MuiAutocomplete-option[aria-selected="true"]':{backgroundColor:`${u.palette.common.white} !important`,color:u.blue.blue1}},...h},void 0),popupIcon:g.jsx(ia,{size:14,style:{color:u.black.black1}},void 0),clearIcon:null,onChange:d,onInputChange:f,fullWidth:a,ref:t,componentsProps:{popupIndicator:{disableRipple:!0}},size:l,...c,options:n,renderInput:h=>g.jsx(N1,{...h,...i},void 0)},void 0)});function ZD(e){return{id:`z-tab-${e}`,"aria-controls":`z-tabpanel-${e}`}}const QD=e=>{const{value:t,handleChange:n,labelConfigs:r=[],size:o="medium",tabsType:i="indicator",color:a,...s}=e;if(t===void 0||!n||!r.length)throw new Error("Props value, handleChange and labels are required");const l=zt(),{tabsStyle:c,tabStyle:u}=b.useMemo(()=>({tabStyle:{fontSize:o==="small"?"11px":"14px",lineHeight:o==="small"?"120%":"135%",minHeight:o==="small"?"20px":"28px",marginRight:i==="indicator"?"24px":"10px",padding:o==="small"?"4px 8px":"6px 12px",fontWeight:o==="small"?400:500},tabsStyle:{minHeight:i==="background"?"32px":"36px"}}),[i,o]);return g.jsxs(MA,{...s,value:t,onChange:n,"aria-label":"tab",sx:{...c,".MuiTabs-indicator":{display:i!=="indicator"?"none":"block",backgroundColor:l.blue.blue1}},children:[r.map((d,f)=>b.createElement(m7,{disableRipple:!0,...d,sx:{"&:hover":{color:l.black.black1},color:l.black.black2,borderRadius:"6px",minWidth:0,textTransform:"inherit",...u,"&.Mui-selected":{backgroundColor:i==="background"?a||l.black.black4:"transparent",color:i==="text"?l.blue.blue1:l.black.black1},...d.sx},key:f,...ZD(f)})),g.jsx(Or,{sx:{position:"absolute",left:0,bottom:"1px",right:0,height:"1px",backgroundColor:l.stroke.stroke1,display:i==="indicator"?"block":"none"}},void 0)]},void 0)};b.forwardRef((e,t)=>{const n=zt(),{sx:r,disabled:o,...i}=e;return g.jsx(f7,{ref:t,focusVisibleClassName:".Mui-focusVisible",disableRipple:!0,disabled:o,sx:{width:"30px",height:"18px",padding:0,borderRadius:"12px","&.MuiSwitch-root":{boxSizing:"inherit",borderRadius:"12px",border:"3px solid transparent","&:hover":{border:o?"3px solid transparent":`3px solid ${n.blue.blue4}`}},"& .MuiSwitch-switchBase":{padding:0,margin:"2px",transitionDuration:"300ms","&.Mui-disabled":{color:"#fff"},"&.Mui-disabled+.MuiSwitch-track":{opacity:.5,backgroundColor:n.stroke.stroke1},"&.Mui-checked":{transform:"translateX(12px)",color:"#fff","& + .MuiSwitch-track":{backgroundColor:n.blue.blue1,opacity:1,border:0},"&.Mui-disabled":{color:"#fff","& .MuiSwitch-thumb":{backgroundImage:`url('data:image/svg+xml,%3Csvg width="8" height="5" viewBox="0 0 8 5" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath opacity="0.5" d="M7.07386 0.267169L7.0742 0.266888L7.06621 0.258615C6.93931 0.1272 6.73491 0.126882 6.60764 0.257662L3.10802 3.77259L1.40194 2.0546C1.27467 1.92373 1.0702 1.92401 0.943272 2.05546C0.818909 2.18425 0.818909 2.38743 0.943272 2.51622L0.943261 2.51623L0.944741 2.51772L2.7084 4.29369C2.81588 4.40452 2.96228 4.45981 3.0982 4.45981C3.24579 4.45981 3.38185 4.40316 3.48793 4.29377L7.04276 0.723374C7.18062 0.595374 7.17948 0.394776 7.07386 0.267169ZM3.16713 3.83211L3.16614 3.83111C3.16648 3.83145 3.1668 3.83179 3.16712 3.83212L3.16713 3.83211Z" fill="%233F46FF" stroke="%233F46FF" stroke-width="0.3"/%3E%3C/svg%3E')`}},"& .MuiSwitch-thumb":{backgroundImage:`url('data:image/svg+xml,%3Csvg width="8" height="5" viewBox="0 0 8 5" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M7.07386 0.267169L7.0742 0.266888L7.06621 0.258615C6.93931 0.1272 6.73491 0.126882 6.60764 0.257662L3.10802 3.77259L1.40194 2.0546C1.27467 1.92373 1.0702 1.92401 0.943272 2.05546C0.818909 2.18425 0.818909 2.38743 0.943272 2.51622L0.943261 2.51623L0.944741 2.51772L2.7084 4.29369C2.81588 4.40452 2.96228 4.45981 3.0982 4.45981C3.24579 4.45981 3.38185 4.40316 3.48793 4.29377L7.04276 0.723374C7.18062 0.595374 7.17948 0.394776 7.07386 0.267169ZM3.16713 3.83211L3.16614 3.83111C3.16648 3.83145 3.1668 3.83179 3.16712 3.83212L3.16713 3.83211Z" fill="%233F46FF" stroke="%233F46FF" stroke-width="0.3"/%3E%3C/svg%3E')`,backgroundRepeat:"no-repeat",backgroundPosition:"center 60%"},"&.Mui-disabled+.MuiSwitch-track":{opacity:.5}},"&:hover":{backgroundColor:"transparent"}},"& .MuiSwitch-thumb":{width:"12px",height:"12px",boxShadow:"none",margin:"1px 0 0 1px"},"& .MuiSwitch-track":{backgroundColor:n.stroke.stroke2,transition:n.transitions.create(["background-color"],{duration:500}),borderRadius:"10px",opacity:1},...r},...i},void 0)});var bs;(function(e){e.PY="python",e.JS="javascript",e.JAVA="java",e.BASH="bash"})(bs||(bs={}));function YD(e,t){if(e==null)return{};var n,r,o=Ms(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;re.length)&&(t=e.length);for(var n=0,r=Array(t);n=4)return[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]}var Sg={};function rj(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return Sg[t]||(Sg[t]=nj(e)),Sg[t]}function oj(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=e.filter(function(i){return i!=="token"}),o=rj(r);return o.reduce(function(i,a){return Wa(Wa({},i),n[a])},t)}function Rx(e){return e.join(" ")}function ij(e,t){var n=0;return function(r){return n+=1,r.map(function(o,i){return Z_({node:o,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(i)})})}}function Z_(e){var t=e.node,n=e.stylesheet,r=e.style,o=r===void 0?{}:r,i=e.useInlineStyles,a=e.key,s=t.properties,l=t.type,c=t.tagName,u=t.value;if(l==="text")return u;if(c){var d=ij(n,i),f;if(!i)f=Wa(Wa({},s),{},{className:Rx(s.className)});else{var p=Object.keys(n).reduce(function(v,S){return S.split(".").forEach(function(m){v.includes(m)||v.push(m)}),v},[]),h=s.className&&s.className.includes("token")?["token"]:[],y=s.className&&h.concat(s.className.filter(function(v){return!p.includes(v)}));f=Wa(Wa({},s),{},{className:Rx(y)||void 0,style:oj(s.className,Object.assign({},s.style,o),n)})}var C=d(t.children);return rt.createElement(c,Ln({key:a},f),C)}}const aj=function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1};var sj=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function Tx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Qo(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=0;r2&&arguments[2]!==void 0?arguments[2]:[];return Zu({children:_,lineNumber:R,lineNumberStyle:s,largestLineNumber:a,showInlineLineNumbers:o,lineProps:n,className:k,showLineNumbers:r,wrapLongLines:l,wrapLines:t})}function y(_,R){if(r&&R&&o){var k=Y_(s,R,a);_.unshift(Q_(R,k))}return _}function C(_,R){var k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||k.length>0?h(_,R,k):y(_,R)}for(var v=function(){var R=u[p],k=R.children[0].value,T=cj(k);if(T){var P=k.split(` -`);P.forEach(function(x,$){var I=r&&d.length+i,O={type:"text",value:"".concat(x,` -`)};if($===0){var D=u.slice(f+1,p).concat(Zu({children:[O],className:R.properties.className})),M=C(D,I);d.push(M)}else if($===P.length-1){var A=u[p+1]&&u[p+1].children&&u[p+1].children[0],N={type:"text",value:"".concat(x)};if(A){var E=Zu({children:[N],className:R.properties.className});u.splice(p+1,0,E)}else{var L=[N],B=C(L,I,R.properties.className);d.push(B)}}else{var H=[O],z=C(H,I,R.properties.className);d.push(z)}}),f=p}p++};p/g,">").replace(/"/g,""").replace(/'/g,"'")}function Yo(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const o in r)n[o]=r[o]}),n}const yj="
",kx=e=>!!e.kind;class bj{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=Ja(t)}openNode(t){if(!kx(t))return;let n=t.kind;t.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(t){kx(t)&&(this.buffer+=yj)}value(){return this.buffer}span(t){this.buffer+=``}}class j1{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n={kind:t,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{j1._collapse(n)}))}}class xj extends j1{constructor(t){super(),this.options=t}addKeyword(t,n){t!==""&&(this.openNode(n),this.addText(t),this.closeNode())}addText(t){t!==""&&this.add(t)}addSublanguage(t,n){const r=t.root;r.kind=n,r.sublanguage=!0,this.add(r)}toHTML(){return new bj(this,this.options).value()}finalize(){return!0}}function Sj(e){return new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function fc(e){return e?typeof e=="string"?e:e.source:null}function wj(...e){return e.map(n=>fc(n)).join("")}function Cj(...e){return"("+e.map(n=>fc(n)).join("|")+")"}function _j(e){return new RegExp(e.toString()+"|").exec("").length-1}function Rj(e,t){const n=e&&e.exec(t);return n&&n.index===0}const Tj=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Pj(e,t="|"){let n=0;return e.map(r=>{n+=1;const o=n;let i=fc(r),a="";for(;i.length>0;){const s=Tj.exec(i);if(!s){a+=i;break}a+=i.substring(0,s.index),i=i.substring(s.index+s[0].length),s[0][0]==="\\"&&s[1]?a+="\\"+String(Number(s[1])+o):(a+=s[0],s[0]==="("&&n++)}return a}).map(r=>`(${r})`).join(t)}const kj=/\b\B/,tR="[a-zA-Z]\\w*",F1="[a-zA-Z_]\\w*",B1="\\b\\d+(\\.\\d+)?",nR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",rR="\\b(0b[01]+)",$j="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Ej=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=wj(t,/.*\b/,e.binary,/\b.*/)),Yo({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},pc={begin:"\\\\[\\s\\S]",relevance:0},Mj={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[pc]},Ij={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[pc]},oR={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},xp=function(e,t,n={}){const r=Yo({className:"comment",begin:e,end:t,contains:[]},n);return r.contains.push(oR),r.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),r},Oj=xp("//","$"),Lj=xp("/\\*","\\*/"),Aj=xp("#","$"),Nj={className:"number",begin:B1,relevance:0},Dj={className:"number",begin:nR,relevance:0},jj={className:"number",begin:rR,relevance:0},Fj={className:"number",begin:B1+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},Bj={begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[pc,{begin:/\[/,end:/\]/,relevance:0,contains:[pc]}]}]},zj={className:"title",begin:tR,relevance:0},Hj={className:"title",begin:F1,relevance:0},Vj={begin:"\\.\\s*"+F1,relevance:0},Wj=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var vu=Object.freeze({__proto__:null,MATCH_NOTHING_RE:kj,IDENT_RE:tR,UNDERSCORE_IDENT_RE:F1,NUMBER_RE:B1,C_NUMBER_RE:nR,BINARY_NUMBER_RE:rR,RE_STARTERS_RE:$j,SHEBANG:Ej,BACKSLASH_ESCAPE:pc,APOS_STRING_MODE:Mj,QUOTE_STRING_MODE:Ij,PHRASAL_WORDS_MODE:oR,COMMENT:xp,C_LINE_COMMENT_MODE:Oj,C_BLOCK_COMMENT_MODE:Lj,HASH_COMMENT_MODE:Aj,NUMBER_MODE:Nj,C_NUMBER_MODE:Dj,BINARY_NUMBER_MODE:jj,CSS_NUMBER_MODE:Fj,REGEXP_MODE:Bj,TITLE_MODE:zj,UNDERSCORE_TITLE_MODE:Hj,METHOD_GUARD:Vj,END_SAME_AS_BEGIN:Wj});function Uj(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function Gj(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=Uj,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function qj(e,t){Array.isArray(e.illegal)&&(e.illegal=Cj(...e.illegal))}function Kj(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Zj(e,t){e.relevance===void 0&&(e.relevance=1)}const Qj=["of","and","for","in","not","or","if","then","parent","list","value"],Yj="keyword";function iR(e,t,n=Yj){const r={};return typeof e=="string"?o(n,e.split(" ")):Array.isArray(e)?o(n,e):Object.keys(e).forEach(function(i){Object.assign(r,iR(e[i],t,i))}),r;function o(i,a){t&&(a=a.map(s=>s.toLowerCase())),a.forEach(function(s){const l=s.split("|");r[l[0]]=[i,Xj(l[0],l[1])]})}}function Xj(e,t){return t?Number(t):Jj(e)?0:1}function Jj(e){return Qj.includes(e.toLowerCase())}function eF(e,{plugins:t}){function n(s,l){return new RegExp(fc(s),"m"+(e.case_insensitive?"i":"")+(l?"g":""))}class r{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(l,c){c.position=this.position++,this.matchIndexes[this.matchAt]=c,this.regexes.push([c,l]),this.matchAt+=_j(l)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const l=this.regexes.map(c=>c[1]);this.matcherRe=n(Pj(l),!0),this.lastIndex=0}exec(l){this.matcherRe.lastIndex=this.lastIndex;const c=this.matcherRe.exec(l);if(!c)return null;const u=c.findIndex((f,p)=>p>0&&f!==void 0),d=this.matchIndexes[u];return c.splice(0,u),Object.assign(c,d)}}class o{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(l){if(this.multiRegexes[l])return this.multiRegexes[l];const c=new r;return this.rules.slice(l).forEach(([u,d])=>c.addRule(u,d)),c.compile(),this.multiRegexes[l]=c,c}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(l,c){this.rules.push([l,c]),c.type==="begin"&&this.count++}exec(l){const c=this.getMatcher(this.regexIndex);c.lastIndex=this.lastIndex;let u=c.exec(l);if(this.resumingScanAtSamePosition()&&!(u&&u.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,u=d.exec(l)}return u&&(this.regexIndex+=u.position+1,this.regexIndex===this.count&&this.considerAll()),u}}function i(s){const l=new o;return s.contains.forEach(c=>l.addRule(c.begin,{rule:c,type:"begin"})),s.terminatorEnd&&l.addRule(s.terminatorEnd,{type:"end"}),s.illegal&&l.addRule(s.illegal,{type:"illegal"}),l}function a(s,l){const c=s;if(s.isCompiled)return c;[Kj].forEach(d=>d(s,l)),e.compilerExtensions.forEach(d=>d(s,l)),s.__beforeBegin=null,[Gj,qj,Zj].forEach(d=>d(s,l)),s.isCompiled=!0;let u=null;if(typeof s.keywords=="object"&&(u=s.keywords.$pattern,delete s.keywords.$pattern),s.keywords&&(s.keywords=iR(s.keywords,e.case_insensitive)),s.lexemes&&u)throw new Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");return u=u||s.lexemes||/\w+/,c.keywordPatternRe=n(u,!0),l&&(s.begin||(s.begin=/\B|\b/),c.beginRe=n(s.begin),s.endSameAsBegin&&(s.end=s.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(c.endRe=n(s.end)),c.terminatorEnd=fc(s.end)||"",s.endsWithParent&&l.terminatorEnd&&(c.terminatorEnd+=(s.end?"|":"")+l.terminatorEnd)),s.illegal&&(c.illegalRe=n(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map(function(d){return tF(d==="self"?s:d)})),s.contains.forEach(function(d){a(d,c)}),s.starts&&a(s.starts,l),c.matcher=i(c),c}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Yo(e.classNameAliases||{}),a(e)}function aR(e){return e?e.endsWithParent||aR(e.starts):!1}function tF(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return Yo(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:aR(e)?Yo(e,{starts:e.starts?Yo(e.starts):null}):Object.isFrozen(e)?Yo(e):e}var nF="10.7.3";function rF(e){return!!(e||e==="")}function oF(e){const t={props:["language","code","autodetect"],data:function(){return{detectedLanguage:"",unknownLanguage:!1}},computed:{className(){return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`),this.unknownLanguage=!0,Ja(this.code);let r={};return this.autoDetect?(r=e.highlightAuto(this.code),this.detectedLanguage=r.language):(r=e.highlight(this.language,this.code,this.ignoreIllegals),this.detectedLanguage=this.language),r.value},autoDetect(){return!this.language||rF(this.autodetect)},ignoreIllegals(){return!0}},render(r){return r("pre",{},[r("code",{class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{Component:t,VuePlugin:{install(r){r.component("highlightjs",t)}}}}const iF={"after:highlightElement":({el:e,result:t,text:n})=>{const r=$x(e);if(!r.length)return;const o=document.createElement("div");o.innerHTML=t.value,t.value=aF(r,$x(o),n)}};function Pm(e){return e.nodeName.toLowerCase()}function $x(e){const t=[];return function n(r,o){for(let i=r.firstChild;i;i=i.nextSibling)i.nodeType===3?o+=i.nodeValue.length:i.nodeType===1&&(t.push({event:"start",offset:o,node:i}),o=n(i,o),Pm(i).match(/br|hr|img|input/)||t.push({event:"stop",offset:o,node:i}));return o}(e,0),t}function aF(e,t,n){let r=0,o="";const i=[];function a(){return!e.length||!t.length?e.length?e:t:e[0].offset!==t[0].offset?e[0].offset"}function l(u){o+=""}function c(u){(u.event==="start"?s:l)(u.node)}for(;e.length||t.length;){let u=a();if(o+=Ja(n.substring(r,u[0].offset)),r=u[0].offset,u===e){i.reverse().forEach(l);do c(u.splice(0,1)[0]),u=a();while(u===e&&u.length&&u[0].offset===r);i.reverse().forEach(s)}else u[0].event==="start"?i.push(u[0].node):i.pop(),c(u.splice(0,1)[0])}return o+Ja(n.substr(r))}const Ex={},wg=e=>{console.error(e)},Mx=(e,...t)=>{console.log(`WARN: ${e}`,...t)},sr=(e,t)=>{Ex[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Ex[`${e}/${t}`]=!0)},Cg=Ja,Ix=Yo,Ox=Symbol("nomatch"),sF=function(e){const t=Object.create(null),n=Object.create(null),r=[];let o=!0;const i=/(^(<[^>]+>|\t|)+|\n)/gm,a="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let l={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:null,__emitter:xj};function c(j){return l.noHighlightRe.test(j)}function u(j){let F=j.className+" ";F+=j.parentNode?j.parentNode.className:"";const W=l.languageDetectRe.exec(F);if(W){const V=M(W[1]);return V||(Mx(a.replace("{}",W[1])),Mx("Falling back to no-highlight mode for this block.",j)),V?W[1]:"no-highlight"}return F.split(/\s+/).find(V=>c(V)||M(V))}function d(j,F,W,V){let ee="",re="";typeof F=="object"?(ee=j,W=F.ignoreIllegals,re=F.language,V=void 0):(sr("10.7.0","highlight(lang, code, ...args) has been deprecated."),sr("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),re=j,ee=F);const U={code:ee,language:re};B("before:highlight",U);const K=U.result?U.result:f(U.language,U.code,W,V);return K.code=U.code,B("after:highlight",K),K}function f(j,F,W,V){function ee(pe,ne){const xe=be.case_insensitive?ne[0].toLowerCase():ne[0];return Object.prototype.hasOwnProperty.call(pe.keywords,xe)&&pe.keywords[xe]}function re(){if(!ge.keywords){Se.addText(ye);return}let pe=0;ge.keywordPatternRe.lastIndex=0;let ne=ge.keywordPatternRe.exec(ye),xe="";for(;ne;){xe+=ye.substring(pe,ne.index);const Le=ee(ge,ne);if(Le){const[fe,oe]=Le;if(Se.addText(xe),xe="",Ge+=oe,fe.startsWith("_"))xe+=ne[0];else{const me=be.classNameAliases[fe]||fe;Se.addKeyword(ne[0],me)}}else xe+=ne[0];pe=ge.keywordPatternRe.lastIndex,ne=ge.keywordPatternRe.exec(ye)}xe+=ye.substr(pe),Se.addText(xe)}function U(){if(ye==="")return;let pe=null;if(typeof ge.subLanguage=="string"){if(!t[ge.subLanguage]){Se.addText(ye);return}pe=f(ge.subLanguage,ye,!0,le[ge.subLanguage]),le[ge.subLanguage]=pe.top}else pe=h(ye,ge.subLanguage.length?ge.subLanguage:null);ge.relevance>0&&(Ge+=pe.relevance),Se.addSublanguage(pe.emitter,pe.language)}function K(){ge.subLanguage!=null?U():re(),ye=""}function se(pe){return pe.className&&Se.openNode(be.classNameAliases[pe.className]||pe.className),ge=Object.create(pe,{parent:{value:ge}}),ge}function q(pe,ne,xe){let Le=Rj(pe.endRe,xe);if(Le){if(pe["on:end"]){const fe=new Px(pe);pe["on:end"](ne,fe),fe.isMatchIgnored&&(Le=!1)}if(Le){for(;pe.endsParent&&pe.parent;)pe=pe.parent;return pe}}if(pe.endsWithParent)return q(pe.parent,ne,xe)}function ce(pe){return ge.matcher.regexIndex===0?(ye+=pe[0],1):(ke=!0,0)}function ue(pe){const ne=pe[0],xe=pe.rule,Le=new Px(xe),fe=[xe.__beforeBegin,xe["on:begin"]];for(const oe of fe)if(oe&&(oe(pe,Le),Le.isMatchIgnored))return ce(ne);return xe&&xe.endSameAsBegin&&(xe.endRe=Sj(ne)),xe.skip?ye+=ne:(xe.excludeBegin&&(ye+=ne),K(),!xe.returnBegin&&!xe.excludeBegin&&(ye=ne)),se(xe),xe.returnBegin?0:ne.length}function ie(pe){const ne=pe[0],xe=F.substr(pe.index),Le=q(ge,pe,xe);if(!Le)return Ox;const fe=ge;fe.skip?ye+=ne:(fe.returnEnd||fe.excludeEnd||(ye+=ne),K(),fe.excludeEnd&&(ye=ne));do ge.className&&Se.closeNode(),!ge.skip&&!ge.subLanguage&&(Ge+=ge.relevance),ge=ge.parent;while(ge!==Le.parent);return Le.starts&&(Le.endSameAsBegin&&(Le.starts.endRe=Le.endRe),se(Le.starts)),fe.returnEnd?0:ne.length}function te(){const pe=[];for(let ne=ge;ne!==be;ne=ne.parent)ne.className&&pe.unshift(ne.className);pe.forEach(ne=>Se.openNode(ne))}let de={};function Q(pe,ne){const xe=ne&&ne[0];if(ye+=pe,xe==null)return K(),0;if(de.type==="begin"&&ne.type==="end"&&de.index===ne.index&&xe===""){if(ye+=F.slice(ne.index,ne.index+1),!o){const Le=new Error("0 width match regex");throw Le.languageName=j,Le.badRule=de.rule,Le}return 1}if(de=ne,ne.type==="begin")return ue(ne);if(ne.type==="illegal"&&!W){const Le=new Error('Illegal lexeme "'+xe+'" for mode "'+(ge.className||"")+'"');throw Le.mode=ge,Le}else if(ne.type==="end"){const Le=ie(ne);if(Le!==Ox)return Le}if(ne.type==="illegal"&&xe==="")return 1;if(Re>1e5&&Re>ne.index*3)throw new Error("potential infinite loop, way more iterations than matches");return ye+=xe,xe.length}const be=M(j);if(!be)throw wg(a.replace("{}",j)),new Error('Unknown language: "'+j+'"');const Te=eF(be,{plugins:r});let we="",ge=V||Te;const le={},Se=new l.__emitter(l);te();let ye="",Ge=0,Pe=0,Re=0,ke=!1;try{for(ge.matcher.considerAll();;){Re++,ke?ke=!1:ge.matcher.considerAll(),ge.matcher.lastIndex=Pe;const pe=ge.matcher.exec(F);if(!pe)break;const ne=F.substring(Pe,pe.index),xe=Q(ne,pe);Pe=pe.index+xe}return Q(F.substr(Pe)),Se.closeAllNodes(),Se.finalize(),we=Se.toHTML(),{relevance:Math.floor(Ge),value:we,language:j,illegal:!1,emitter:Se,top:ge}}catch(pe){if(pe.message&&pe.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:pe.message,context:F.slice(Pe-100,Pe+100),mode:pe.mode},sofar:we,relevance:0,value:Cg(F),emitter:Se};if(o)return{illegal:!1,relevance:0,value:Cg(F),emitter:Se,language:j,top:ge,errorRaised:pe};throw pe}}function p(j){const F={relevance:0,emitter:new l.__emitter(l),value:Cg(j),illegal:!1,top:s};return F.emitter.addText(j),F}function h(j,F){F=F||l.languages||Object.keys(t);const W=p(j),V=F.filter(M).filter(N).map(se=>f(se,j,!1));V.unshift(W);const ee=V.sort((se,q)=>{if(se.relevance!==q.relevance)return q.relevance-se.relevance;if(se.language&&q.language){if(M(se.language).supersetOf===q.language)return 1;if(M(q.language).supersetOf===se.language)return-1}return 0}),[re,U]=ee,K=re;return K.second_best=U,K}function y(j){return l.tabReplace||l.useBR?j.replace(i,F=>F===` -`?l.useBR?"
":F:l.tabReplace?F.replace(/\t/g,l.tabReplace):F):j}function C(j,F,W){const V=F?n[F]:W;j.classList.add("hljs"),V&&j.classList.add(V)}const v={"before:highlightElement":({el:j})=>{l.useBR&&(j.innerHTML=j.innerHTML.replace(/\n/g,"").replace(//g,` -`))},"after:highlightElement":({result:j})=>{l.useBR&&(j.value=j.value.replace(/\n/g,"
"))}},S=/^(<[^>]+>|\t)+/gm,m={"after:highlightElement":({result:j})=>{l.tabReplace&&(j.value=j.value.replace(S,F=>F.replace(/\t/g,l.tabReplace)))}};function w(j){let F=null;const W=u(j);if(c(W))return;B("before:highlightElement",{el:j,language:W}),F=j;const V=F.textContent,ee=W?d(V,{language:W,ignoreIllegals:!0}):h(V);B("after:highlightElement",{el:j,result:ee,text:V}),j.innerHTML=ee.value,C(j,W,ee.language),j.result={language:ee.language,re:ee.relevance,relavance:ee.relevance},ee.second_best&&(j.second_best={language:ee.second_best.language,re:ee.second_best.relevance,relavance:ee.second_best.relevance})}function _(j){j.useBR&&(sr("10.3.0","'useBR' will be removed entirely in v11.0"),sr("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")),l=Ix(l,j)}const R=()=>{if(R.called)return;R.called=!0,sr("10.6.0","initHighlighting() is deprecated. Use highlightAll() instead."),document.querySelectorAll("pre code").forEach(w)};function k(){sr("10.6.0","initHighlightingOnLoad() is deprecated. Use highlightAll() instead."),T=!0}let T=!1;function P(){if(document.readyState==="loading"){T=!0;return}document.querySelectorAll("pre code").forEach(w)}function x(){T&&P()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",x,!1);function $(j,F){let W=null;try{W=F(e)}catch(V){if(wg("Language definition for '{}' could not be registered.".replace("{}",j)),o)wg(V);else throw V;W=s}W.name||(W.name=j),t[j]=W,W.rawDefinition=F.bind(null,e),W.aliases&&A(W.aliases,{languageName:j})}function I(j){delete t[j];for(const F of Object.keys(n))n[F]===j&&delete n[F]}function O(){return Object.keys(t)}function D(j){sr("10.4.0","requireLanguage will be removed entirely in v11."),sr("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844");const F=M(j);if(F)return F;throw new Error("The '{}' language is required, but not loaded.".replace("{}",j))}function M(j){return j=(j||"").toLowerCase(),t[j]||t[n[j]]}function A(j,{languageName:F}){typeof j=="string"&&(j=[j]),j.forEach(W=>{n[W.toLowerCase()]=F})}function N(j){const F=M(j);return F&&!F.disableAutodetect}function E(j){j["before:highlightBlock"]&&!j["before:highlightElement"]&&(j["before:highlightElement"]=F=>{j["before:highlightBlock"](Object.assign({block:F.el},F))}),j["after:highlightBlock"]&&!j["after:highlightElement"]&&(j["after:highlightElement"]=F=>{j["after:highlightBlock"](Object.assign({block:F.el},F))})}function L(j){E(j),r.push(j)}function B(j,F){const W=j;r.forEach(function(V){V[W]&&V[W](F)})}function H(j){return sr("10.2.0","fixMarkup will be removed entirely in v11.0"),sr("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"),y(j)}function z(j){return sr("10.7.0","highlightBlock will be removed entirely in v12.0"),sr("10.7.0","Please use highlightElement now."),w(j)}Object.assign(e,{highlight:d,highlightAuto:h,highlightAll:P,fixMarkup:H,highlightElement:w,highlightBlock:z,configure:_,initHighlighting:R,initHighlightingOnLoad:k,registerLanguage:$,unregisterLanguage:I,listLanguages:O,getLanguage:M,registerAliases:A,requireLanguage:D,autoDetection:N,inherit:Ix,addPlugin:L,vuePlugin:oF(e).VuePlugin}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString=nF;for(const j in vu)typeof vu[j]=="object"&&eR(vu[j]);return Object.assign(e,vu),e.addPlugin(v),e.addPlugin(iF),e.addPlugin(m),e};var lF=sF({}),cF=lF,sR={exports:{}};(function(e){(function(){var t;t=e.exports=o,t.format=o,t.vsprintf=r,typeof console<"u"&&typeof console.log=="function"&&(t.printf=n);function n(){console.log(o.apply(null,arguments))}function r(i,a){return o.apply(null,[i].concat(a))}function o(i){for(var a=1,s=[].slice.call(arguments),l=0,c=i.length,u="",d,f=!1,p,h,y=!1,C,v=function(){return s[a++]},S=function(){for(var m="";/\d/.test(i[l]);)m+=i[l++],d=i[l];return m.length>0?parseInt(m):null};ls.relevance&&(s=l),l.relevance>a.relevance&&(s=a,a=l));return s.language&&(a.secondBest=s),a}function hF(e,t){eo.registerLanguage(e,t)}function mF(){return eo.listLanguages()}function vF(e,t){var n=e,r;t&&(n={},n[e]=t);for(r in n)eo.registerAliases(n[r],{languageName:r})}function Io(e){this.options=e,this.rootNode={children:[]},this.stack=[this.rootNode]}function yF(e,t){this.openNode(t),this.addText(e),this.closeNode()}function bF(e,t){var n=this.stack,r=n[n.length-1],o=e.rootNode.children,i=t?{type:"element",tagName:"span",properties:{className:[t]},children:o}:o;r.children=r.children.concat(i)}function xF(e){var t=this.stack,n,r;e!==""&&(n=t[t.length-1],r=n.children[n.children.length-1],r&&r.type==="text"?r.value+=e:n.children.push({type:"text",value:e}))}function SF(e){var t=this.stack,n=this.options.classPrefix+e,r=t[t.length-1],o={type:"element",tagName:"span",properties:{className:[n]},children:[]};r.children.push(o),t.push(o)}function wF(){this.stack.pop()}function CF(){return""}function cR(){}var _g,Lx;function _F(){if(Lx)return _g;Lx=1;function e(r){return r?typeof r=="string"?r:r.source:null}function t(...r){return r.map(i=>e(i)).join("")}function n(r){const o={},i={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[o]}]};Object.assign(o,{className:"variable",variants:[{begin:t(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},i]});const a={className:"subst",begin:/\$\(/,end:/\)/,contains:[r.BACKSLASH_ESCAPE]},s={begin:/<<-?\s*(?=\w+)/,starts:{contains:[r.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},l={className:"string",begin:/"/,end:/"/,contains:[r.BACKSLASH_ESCAPE,o,a]};a.contains.push(l);const c={className:"",begin:/\\"/},u={className:"string",begin:/'/,end:/'/},d={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},r.NUMBER_MODE,o]},f=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],p=r.SHEBANG({binary:`(${f.join("|")})`,relevance:10}),h={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[r.inherit(r.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/,keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp"},contains:[p,r.SHEBANG(),h,d,r.HASH_COMMENT_MODE,s,l,c,u,o]}}return _g=n,_g}var Rg,Ax;function RF(){if(Ax)return Rg;Ax=1;var e="[0-9](_*[0-9])*",t=`\\.(${e})`,n="[0-9a-fA-F](_*[0-9a-fA-F])*",r={className:"number",variants:[{begin:`(\\b(${e})((${t})|\\.)?|(${t}))[eE][+-]?(${e})[fFdD]?\\b`},{begin:`\\b(${e})((${t})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${t})[fFdD]?\\b`},{begin:`\\b(${e})[fFdD]\\b`},{begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?(${e})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function o(i){var a="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",s=a+"(<"+a+"(\\s*,\\s*"+a+")*>)?",l="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",c={className:"meta",begin:"@"+a,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]};const u=r;return{name:"Java",aliases:["jsp"],keywords:l,illegal:/<\/|#/,contains:[i.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE,i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface enum",end:/[{;=]/,excludeEnd:!0,relevance:1,keywords:"class interface enum",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},i.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"class",begin:"record\\s+"+i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,excludeEnd:!0,end:/[{;=]/,keywords:l,contains:[{beginKeywords:"record"},{begin:i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[i.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[i.C_BLOCK_COMMENT_MODE]},i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE]},{className:"function",begin:"("+s+"\\s+)+"+i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:l,contains:[{begin:i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[i.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[c,i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,i.C_BLOCK_COMMENT_MODE]},i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE]},u,c]}}return Rg=o,Rg}const Nx="[A-Za-z$_][0-9A-Za-z$_]*",TF=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],PF=["true","false","null","undefined","NaN","Infinity"],kF=["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],$F=["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],EF=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],MF=["arguments","this","super","console","window","document","localStorage","module","global"],IF=[].concat(EF,MF,kF,$F);function OF(e){return e?typeof e=="string"?e:e.source:null}function Dx(e){return km("(?=",e,")")}function km(...e){return e.map(n=>OF(n)).join("")}function LF(e){const t=(w,{after:_})=>{const R="",end:""},o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(w,_)=>{const R=w[0].length+w.index,k=w.input[R];if(k==="<"){_.ignoreMatch();return}k===">"&&(t(w,{after:R})||_.ignoreMatch())}},i={$pattern:Nx,keyword:TF,literal:PF,built_in:IF},a="[0-9](_?[0-9])*",s=`\\.(${a})`,l="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",c={className:"number",variants:[{begin:`(\\b(${l})((${s})|\\.)?|(${s}))[eE][+-]?(${a})\\b`},{begin:`\\b(${l})\\b((${s})\\b|\\.)?|(${s})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",end:"\\}",keywords:i,contains:[]},d={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},f={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"css"}},p={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,u]},y={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",end:"\\}",relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},C=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,f,p,c,e.REGEXP_MODE];u.contains=C.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(C)});const v=[].concat(y,u.contains),S=v.concat([{begin:/\(/,end:/\)/,keywords:i,contains:["self"].concat(v)}]),m={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:S};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:S},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,f,p,y,c,{begin:km(/[{,\n]\s*/,Dx(km(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,n+"\\s*:"))),relevance:0,contains:[{className:"attr",begin:n+Dx("\\s*:"),relevance:0}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[y,e.REGEXP_MODE,{className:"function",begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:S}]}]},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{variants:[{begin:r.begin,end:r.end},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:i,contains:["self",e.inherit(e.TITLE_MODE,{begin:n}),m],illegal:/%/},{beginKeywords:"while if switch catch for"},{className:"function",begin:e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,contains:[m,e.inherit(e.TITLE_MODE,{begin:n})]},{variants:[{begin:"\\."+n},{begin:"\\$"+n}],relevance:0},{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,end:/[{;]/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:n}),"self",m]},{begin:"(get|set)\\s+(?="+n+"\\()",end:/\{/,keywords:"get set",contains:[e.inherit(e.TITLE_MODE,{begin:n}),{begin:/\(\)/},m]},{begin:/\$[(.]/}]}}var AF=LF;const NF=$o(AF);var Tg,jx;function DF(){if(jx)return Tg;jx=1;function e(o){return o?typeof o=="string"?o:o.source:null}function t(o){return n("(?=",o,")")}function n(...o){return o.map(a=>e(a)).join("")}function r(o){const c={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},u={className:"meta",begin:/^(>>>|\.\.\.) /},d={className:"subst",begin:/\{/,end:/\}/,keywords:c,illegal:/#/},f={begin:/\{\{/,relevance:0},p={className:"string",contains:[o.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[o.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[o.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[o.BACKSLASH_ESCAPE,u,f,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[o.BACKSLASH_ESCAPE,u,f,d]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[o.BACKSLASH_ESCAPE,f,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[o.BACKSLASH_ESCAPE,f,d]},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE]},h="[0-9](_?[0-9])*",y=`(\\b(${h}))?\\.(${h})|\\b(${h})\\.`,C={className:"number",relevance:0,variants:[{begin:`(\\b(${h})|(${y}))[eE][+-]?(${h})[jJ]?\\b`},{begin:`(${y})[jJ]?`},{begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${h})[jJ]\\b`}]},v={className:"comment",begin:t(/# type:/),end:/$/,keywords:c,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},S={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:["self",u,C,p,o.HASH_COMMENT_MODE]}]};return d.contains=[p,C,u],{name:"Python",aliases:["py","gyp","ipython"],keywords:c,illegal:/(<\/|->|\?)|=>/,contains:[u,C,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},p,v,o.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[o.UNDERSCORE_TITLE_MODE,S,{begin:/->/,endsWithParent:!0,keywords:c}]},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[C,S,p]}]}}return Tg=r,Tg}var Ic=mj(fa,{});Ic.registerLanguage=fa.registerLanguage;var uR={},dR={exports:{}};(function(e){function t(n){return n&&n.__esModule?n:{default:n}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(dR);var z1=dR.exports;(function(e){var t=z1;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(DF());e.default=n.default})(uR);const jF=$o(uR);var fR={};(function(e){var t=z1;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(RF());e.default=n.default})(fR);const FF=$o(fR);var pR={};(function(e){var t=z1;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(_F());e.default=n.default})(pR);const BF=$o(pR);Ic.registerLanguage(bs.JS,NF);Ic.registerLanguage(bs.PY,jF);Ic.registerLanguage(bs.JAVA,FF);Ic.registerLanguage(bs.BASH,BF);rt.forwardRef(e=>{const{supportSelectAll:t=!0,selectAllOptionLabel:n="",options:r=[],selectState:o,setSelectState:i,inputParams:a={},onChange:s,...l}=e,{placeholder:c="",...u}=a,[d,f]=rt.useState(!1),p=zt(),h=()=>{f(!1)},y=S=>{const m=!o.selectAll;i(w=>({selectAll:!w.selectAll,selectedItems:w.selectAll?[]:r})),s&&s(S,m?r:[],"selectOption")},C=(S,m,w)=>{switch(w){case"selectOption":i(_=>({..._,selectAll:m.length===r.length,selectedItems:m}));break;case"removeOption":i({selectAll:!1,selectedItems:m})}},v=b.useMemo(()=>{if(!(o.selectedItems.length>0||o.selectAll))return c},[o,c]);return g.jsx(tO,{onClickAway:h,children:g.jsx(Or,{children:g.jsx(q_,{options:r,open:d,sx:{"& .MuiBox-root":{"& .MuiFormControl-root":{"div.MuiOutlinedInput-root":{padding:"6px 28px 6px 12px"},"& .MuiInputBase-input":{maxHeight:"24px",height:"24px"},".Mui-error fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${p.red.red2}`,boxShadow:`0px 0px 0px 4px ${p.red.red4}, ${pr}`}}},".MuiAutocomplete-tag":{margin:"3px 4px"}},multiple:!0,ChipProps:{size:"small",deleteIcon:g.jsx(I1,{size:14},void 0),sx:{display:"flex",alignItems:"center",borderRadius:"6px",backgroundColor:p.black.black4,padding:"2px 8px",gap:"8px",height:"20px",".MuiChip-deleteIcon":{margin:0,color:p.black.black1},".MuiChip-label":{padding:0,fontSize:"14px",lineHeight:"20px",fontWeight:400,display:"inline-block",color:p.black.black1},"&:hover":{backgroundColor:p.black.black5,".MuiChip-deleteIcon":{color:p.black.black2}}}},renderOption:(S,m,w)=>{const{selected:_}=w;return m!=null&&m.generateCustomEle?m.generateCustomEle():g.jsxs("li",{...S,children:[g.jsx(Qd,{sx:{padding:"0 8px 0 0"},checked:_||o.selectAll},void 0),g.jsxs(Or,{sx:{display:"flex",alignItems:"center",width:"100%",justifyContent:"space-between"},children:[g.jsx(mt,{variant:"body1Regular",component:"div",children:m.label},void 0),m.desc&&g.jsx(mt,{variant:"body3Regular",sx:{marginLeft:"8px",color:p.black.black3},children:m.desc},void 0)]},void 0)]},void 0)},onChange:(S,m,w)=>{C(S,m,w),s&&s(S,m,w)},onClose:(S,m)=>{m==="escape"&&f(!1)},onOpen:()=>{f(!0)},PopperComponent:S=>{const{children:m,style:w={},..._}=S;return g.jsx(kc,{..._,disablePortal:!0,onMouseDown:R=>R.preventDefault(),style:{...w,boxShadow:aa,border:`1px solid ${p.stroke.stroke1}`,borderRadius:"8px",backgroundColor:"#fff"},placement:"bottom",modifiers:[{name:"offset",options:{offset:[0,8]}}],children:g.jsxs(g.Fragment,{children:[m,g.jsx(Or,{sx:{width:"100%",height:"1px",backgroundColor:p.black.black4}},void 0),t&&g.jsxs(Or,{sx:{padding:"6px 16px",display:"flex",alignItems:"center",marginBottom:"4px","&:hover":{cursor:"pointer",color:p.blue.blue1,backgroundColor:p.black.black5}},onClick:y,children:[g.jsx(Qd,{sx:{padding:"0 16px 0 0"},checked:o.selectAll,indeterminate:!o.selectAll&&o.selectedItems.length>0},void 0),g.jsx(mt,{children:n||"Select all"},void 0)]},void 0)]},void 0)},void 0)},PaperComponent:S=>g.jsx(Is,{sx:{padding:0,boxShadow:"none",borderRadius:"8px","ul.MuiAutocomplete-listbox":{borderRadius:"8px",padding:0,"&::-webkit-scrollbar-track":{width:"3px",background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:p.black.black4},"& li":{margin:"4px 0"},"& > :first-child":{marginTop:"12px"},'& .MuiAutocomplete-option[aria-selected="true"]':{backgroundColor:"#fff","&.Mui-focused":{backgroundColor:"transparent"},"&:hover":{backgroundColor:p.black.black5},"& > * div.MuiTypography-body1Regular":{color:p.blue.blue1}},'.MuiAutocomplete-option[aria-selected="false"]':{backgroundColor:"transparent","&:hover":{backgroundColor:p.black.black5}}}},...S},void 0),isOptionEqualToValue:(S,m)=>S.value===m.value,value:o.selectedItems,inputParams:{placeholder:v,...u},...l},void 0)},void 0)},void 0)});function zF(e,t,n=void 0){const r={};for(const o in e){const i=e[o];let a="",s=!0;for(let l=0;l{t.current=e},[e]),t.current}const Fx=()=>{};function GF(e){const[,t]=b.useState(),{registerDescendant:n=Fx,unregisterDescendant:r=Fx,descendants:o=[],parentId:i=null}=b.useContext(gR),a=VF(o,c=>c.element===e.element),s=UF(o),l=o.some((c,u)=>s&&s[u]&&s[u].element!==c.element);return a9(()=>{if(e.element)return n(Ln({},e,{index:a})),()=>{r(e.element)};t({})},[n,r,a,l,e]),{parentId:i,index:a}}function qF(e){const{children:t,id:n}=e,[r,o]=b.useState([]),i=b.useCallback(l=>{let{element:c}=l,u=Ms(l,HF);o(d=>{if(d.length===0)return[Ln({},u,{element:c,index:0})];const f=WF(d,c);let p;if(d[f]&&d[f].element===c)p=d;else{const h=Ln({},u,{element:c,index:f});p=d.slice(),p.splice(f,0,h)}return p.forEach((h,y)=>{h.index=y}),p})},[]),a=b.useCallback(l=>{o(c=>c.filter(u=>l!==u.element))},[]),s=b.useMemo(()=>({descendants:r,registerDescendant:i,unregisterDescendant:a,parentId:n}),[r,i,a,n]);return g.jsx(gR.Provider,{value:s,children:t})}const KF={instance:null,multiSelect:!1,disabledItemsFocusable:!1,treeId:void 0,icons:{defaultCollapseIcon:null,defaultExpandIcon:null,defaultParentIcon:null,defaultEndIcon:null}},ZF=b.createContext(KF),hR=()=>b.useContext(ZF);function QF(e){const{instance:t,multiSelect:n}=hR(),r=t?t.isNodeExpandable(e):!1,o=t?t.isNodeExpanded(e):!1,i=t?t.isNodeFocused(e):!1,a=t?t.isNodeSelected(e):!1,s=t?t.isNodeDisabled(e):!1;return{disabled:s,expanded:o,selected:a,focused:i,handleExpansion:d=>{if(t&&!s){i||t.focusNode(d,e);const f=n&&(d.shiftKey||d.ctrlKey||d.metaKey);r&&!(f&&t.isNodeExpanded(e))&&t.toggleNodeExpansion(d,e)}},handleSelection:d=>{t&&!s&&(i||t.focusNode(d,e),n&&(d.shiftKey||d.ctrlKey||d.metaKey)?d.shiftKey?t.selectRange(d,{end:e}):t.selectNode(d,e,!0):t.selectNode(d,e))},preventSelection:d=>{(d.shiftKey||d.ctrlKey||d.metaKey||s)&&d.preventDefault()}}}const YF=["classes","className","displayIcon","expansionIcon","icon","label","nodeId","onClick","onMouseDown"],mR=b.forwardRef(function(t,n){const{classes:r,className:o,displayIcon:i,expansionIcon:a,icon:s,label:l,nodeId:c,onClick:u,onMouseDown:d}=t,f=Ms(t,YF),{disabled:p,expanded:h,selected:y,focused:C,handleExpansion:v,handleSelection:S,preventSelection:m}=QF(c),w=s||a||i,_=k=>{m(k),d&&d(k)},R=k=>{v(k),S(k),u&&u(k)};return g.jsxs("div",Ln({},f,{className:ve(o,r.root,h&&r.expanded,y&&r.selected,C&&r.focused,p&&r.disabled),onClick:R,onMouseDown:_,ref:n,children:[g.jsx("div",{className:r.iconContainer,children:w}),g.jsx("div",{className:r.label,children:l})]}))});function XF(e){return W_("MuiTreeItem",e)}const Xt=d9("MuiTreeItem",["root","group","content","expanded","selected","focused","disabled","iconContainer","label"]),JF=["children","className","collapseIcon","ContentComponent","ContentProps","endIcon","expandIcon","disabled","icon","id","label","nodeId","onClick","onMouseDown","TransitionComponent","TransitionProps"],eB=e=>{const{classes:t}=e;return zF({root:["root"],content:["content"],expanded:["expanded"],selected:["selected"],focused:["focused"],disabled:["disabled"],iconContainer:["iconContainer"],label:["label"],group:["group"]},XF,t)},tB=J("li",{name:"MuiTreeItem",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),nB=J(mR,{name:"MuiTreeItem",slot:"Content",overridesResolver:(e,t)=>[t.content,t.iconContainer&&{[`& .${Xt.iconContainer}`]:t.iconContainer},t.label&&{[`& .${Xt.label}`]:t.label}]})(({theme:e})=>({padding:"0 8px",width:"100%",boxSizing:"border-box",display:"flex",alignItems:"center",cursor:"pointer",WebkitTapHighlightColor:"transparent","&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Xt.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"},[`&.${Xt.focused}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${Xt.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${Xt.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`& .${Xt.iconContainer}`]:{marginRight:4,width:15,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}},[`& .${Xt.label}`]:Ln({paddingLeft:4,width:"100%",boxSizing:"border-box",minWidth:0,position:"relative"},e.typography.body1)})),rB=J(ps,{name:"MuiTreeItem",slot:"Group",overridesResolver:(e,t)=>t.group})({margin:0,padding:0,marginLeft:17}),oB=b.forwardRef(function(t,n){const r=gM({props:t,name:"MuiTreeItem"}),{children:o,className:i,collapseIcon:a,ContentComponent:s=mR,ContentProps:l,endIcon:c,expandIcon:u,disabled:d,icon:f,id:p,label:h,nodeId:y,onClick:C,onMouseDown:v,TransitionComponent:S=ps,TransitionProps:m}=r,w=Ms(r,JF),{icons:_,multiSelect:R,disabledItemsFocusable:k,treeId:T,instance:P}=hR();let x;p!=null?x=p:T&&y&&(x=`${T}-${y}`);const[$,I]=b.useState(null),O=b.useRef(null),D=s9(I,n),M=b.useMemo(()=>({element:$,id:y}),[y,$]),{index:A,parentId:N}=GF(M),E=!!(Array.isArray(o)?o.length:o),L=P?P.isNodeExpanded(y):!1,B=P?P.isNodeFocused(y):!1,H=P?P.isNodeSelected(y):!1,z=P?P.isNodeDisabled(y):!1,j=Ln({},r,{expanded:L,focused:B,selected:H,disabled:z}),F=eB(j);let W,V;E&&(L?V=a||_.defaultCollapseIcon:V=u||_.defaultExpandIcon),E?W=_.defaultParentIcon:W=c||_.defaultEndIcon,b.useEffect(()=>{if(P&&A!==-1)return P.updateNode({id:y,idAttribute:x,index:A,parentId:N,expandable:E,disabled:d}),()=>P.removeNode(y)},[P,N,A,y,E,d,x]),b.useEffect(()=>{if(P&&h){var U,K;return P.mapFirstChar(y,((U=(K=O.current)==null?void 0:K.textContent)!=null?U:"").substring(0,1).toLowerCase())}},[P,y,h]);let ee;R?ee=H:H&&(ee=!0);function re(U){if(U.target===U.currentTarget){let se;typeof U.target.getRootNode=="function"?se=U.target.getRootNode():se=o9(U.target),se.getElementById(T).focus({preventScroll:!0})}const K=!k&&z;P&&!B&&U.currentTarget===U.target&&!K&&P.focusNode(U,y)}return g.jsxs(tB,Ln({className:ve(F.root,i),role:"treeitem","aria-expanded":E?L:void 0,"aria-selected":ee,"aria-disabled":z||void 0,id:x,tabIndex:-1},w,{ownerState:j,onFocus:re,ref:D,children:[g.jsx(nB,Ln({as:s,ref:O,classes:{root:F.content,expanded:F.expanded,selected:F.selected,focused:F.focused,disabled:F.disabled,iconContainer:F.iconContainer,label:F.label},label:h,nodeId:y,onClick:C,onMouseDown:v,icon:f,expansionIcon:V,displayIcon:W,ownerState:j},l)),o&&g.jsx(qF,{id:y,children:g.jsx(rB,Ln({as:S,unmountOnExit:!0,className:F.group,in:L,component:"ul",role:"group"},m,{children:o}))})]}))});var Bx;(function(e){e.LOADING="loading",e.NORMAL="normal",e.NONE="none"})(Bx||(Bx={}));J(e=>g.jsx(oB,{...e},void 0))(({theme:e})=>({[`& .${Xt.content}`]:{height:"32px",marginBottom:"8px",color:e.black.black1,padding:"4px",borderRadius:"6px",[`&.${Xt.selected}`]:{backgroundColor:e.blue.blue4,[`&.${Xt.focused}`]:{backgroundColor:e.blue.blue4},[`& .${Xt.label},.MuiTypography-root `]:{color:e.blue.blue1},[`& .${Xt.label}`]:{svg:{path:{fill:e.blue.blue1}}},[`& .${Xt.iconContainer}`]:{svg:{path:{fill:e.black.black1}}}},"&:hover":{backgroundColor:e.blue.blue4},[`& .${Xt.label}`]:{color:e.black.black3,fontSize:"12px",paddingLeft:0,svg:{path:{fill:"currentColor"}},".highlight":{color:e.black.black3}},[`& .${Xt.iconContainer}`]:{marginRight:e.spacing(.5),width:"auto",svg:{path:{fill:e.black.black2}}}},[`& .${Xt.group}`]:{position:"relative",top:"-10px",margin:"12px 0 0px 23px",paddingLeft:6,borderLeft:`1px solid ${e.stroke.stroke1}`,".loadingNode":{paddingLeft:8},[`& .${Xt.content}`]:{height:"28px",marginBottom:"4px",".MuiTypography-root":{fontSize:"13px"},svg:{path:{color:e.black.black2}}}}}));const vR=['"Helvetica Neue"','"Microsoft YaHei"',"-apple-system","sans-serif"],iB=['"Pingfang SC"',...vR],aB=['"Inter"',...vR],yR=e=>(e==="enUS"?aB:iB).join(","),Ht=(e,t,n)=>{const r=yR(n),o={h1:{fontSize:"22px",lineHeight:"150%"},h2:{fontSize:"18px",lineHeight:"150%"},h3:{fontSize:"16px",lineHeight:"150%"},h4:{fontSize:"14px",lineHeight:"135%"},body1:{fontSize:"14px",lineHeight:"135%"},body2:{fontSize:"13px",lineHeight:"135%"},body3:{fontSize:"12px",lineHeight:"135%"},body4:{fontSize:"11px",lineHeight:"135%"}},i={regular:{fontWeight:400},medium:{fontWeight:500},semibold:{fontWeight:600},bold:{fontWeight:n==="enUS"?700:600}};return{...o[e],...i[t],fontFamily:r}},sB=e=>({h1Regular:Ht("h1","regular",e),h1Medium:Ht("h1","medium",e),h1Semibold:Ht("h1","semibold",e),h1Bold:Ht("h1","bold",e),h2Regular:Ht("h2","regular",e),h2Medium:Ht("h2","medium",e),h2Semibold:Ht("h2","semibold",e),h3Regular:Ht("h3","regular",e),h3Medium:Ht("h3","medium",e),h3Semibold:Ht("h3","semibold",e),h4Medium:Ht("h4","medium",e),h4Semibold:Ht("h4","semibold",e),body1Regular:Ht("body1","regular",e),body1Medium:Ht("body1","medium",e),body2Regular:Ht("body2","regular",e),body2Medium:Ht("body2","medium",e),body3Regular:Ht("body3","regular",e),body3Medium:Ht("body3","medium",e),body4Regular:Ht("body4","regular",e)}),Vt={blue:{blue1:"#3f46ff",blue2:"#6066fd",blue3:"#dbe0ff",blue4:"#f2f3ff",blue5:"#f7f8ff",dark1:"#181eca",dark2:"#141c63",light1:"#ebedff"},black:{black1:"#1d2939",black2:"#5d6d85",black3:"#a6b1be",black4:"#f0f2f4",black5:"#f9f9fb"},green:{green1:"#166434",green2:"#49de80",green3:"#adf8c9",green4:"#effdf4"},yellow:{yellow1:"#854d0f",yellow2:"#ffb800",yellow3:"#ffe7a9",yellow4:"#fff8e2"},red:{red1:"#991b1b",red2:"#f26868",red3:"#fbc6c6",red4:"#fff1f1"},stroke:{stroke1:"#e4eaf1",stroke2:"#cdd8e8"},gradient:"linear-gradient(118deg,#00ef8b 0.51%,#0044e4 36.98%,#cd3fff 72.73%)"},lB=e=>{const t=yR(e),n=sB(e);return{typography:{fontFamily:t,...n}}},cB=(e="enUS")=>sp({palette:{primary:{main:Vt.blue.blue1,dark:Vt.blue.dark1,light:Vt.blue.blue2},success:{dark:Vt.green.green1,main:Vt.green.green2,light:Vt.green.green3},info:{dark:Vt.blue.blue1,main:Vt.blue.blue2,light:Vt.blue.blue3},warning:{dark:Vt.yellow.yellow1,main:Vt.yellow.yellow2,light:Vt.yellow.yellow3},error:{dark:Vt.red.red1,main:Vt.red.red2,light:Vt.red.red3},text:{primary:Vt.black.black1,secondary:Vt.black.black2,disabled:Vt.black.black3}},language:e,components:{MuiButton:{variants:[{props:{variant:"textGhost"},style:{}}]},MuiTypography:{defaultProps:{color:"textPrimary",variant:"body1Regular",variantMapping:{h1Regular:"h1",h1Medium:"h1",h1Semibold:"h1",h1Bold:"h1",h2Regular:"h2",h2Medium:"h2",h2Semibold:"h2",h3Regular:"h3",h3Medium:"h3",h3Semibold:"h3",h4Medium:"h4",h4Semibold:"h4",body1Regular:"p",body1Medium:"span",body2Regular:"span",body2Medium:"span",body3Regular:"span",body3Medium:"span",body4Regular:"span"}}}},spacing:4,...Vt,...lB(e)},bD[e]);/** - * table-core - * - * Copyright (c) TanStack - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Xo(e,t){return typeof e=="function"?e(t):e}function tr(e,t){return n=>{t.setState(r=>({...r,[e]:Xo(n,r[e])}))}}function Sp(e){return e instanceof Function}function uB(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function dB(e,t){const n=[],r=o=>{o.forEach(i=>{n.push(i);const a=t(i);a!=null&&a.length&&r(a)})};return r(e),n}function Me(e,t,n){let r=[],o;return i=>{let a;n.key&&n.debug&&(a=Date.now());const s=e(i);if(!(s.length!==r.length||s.some((u,d)=>r[d]!==u)))return o;r=s;let c;if(n.key&&n.debug&&(c=Date.now()),o=t(...s),n==null||n.onChange==null||n.onChange(o),n.key&&n.debug&&n!=null&&n.debug()){const u=Math.round((Date.now()-a)*100)/100,d=Math.round((Date.now()-c)*100)/100,f=d/16,p=(h,y)=>{for(h=String(h);h.length{var o;return(o=e==null?void 0:e.debugAll)!=null?o:e[t]},key:!1,onChange:r}}function fB(e,t,n,r){const o=()=>{var a;return(a=i.getValue())!=null?a:e.options.renderFallbackValue},i={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:o,getContext:Me(()=>[e,n,t,i],(a,s,l,c)=>({table:a,column:s,row:l,cell:c,getValue:c.getValue,renderValue:c.renderValue}),Ie(e.options,"debugCells"))};return e._features.forEach(a=>{a.createCell==null||a.createCell(i,n,t,e)},{}),i}function pB(e,t,n,r){var o,i;const s={...e._getDefaultColumnDef(),...t},l=s.accessorKey;let c=(o=(i=s.id)!=null?i:l?typeof String.prototype.replaceAll=="function"?l.replaceAll(".","_"):l.replace(/\./g,"_"):void 0)!=null?o:typeof s.header=="string"?s.header:void 0,u;if(s.accessorFn?u=s.accessorFn:l&&(l.includes(".")?u=f=>{let p=f;for(const y of l.split(".")){var h;p=(h=p)==null?void 0:h[y]}return p}:u=f=>f[s.accessorKey]),!c)throw new Error;let d={id:`${String(c)}`,accessorFn:u,parent:r,depth:n,columnDef:s,columns:[],getFlatColumns:Me(()=>[!0],()=>{var f;return[d,...(f=d.columns)==null?void 0:f.flatMap(p=>p.getFlatColumns())]},Ie(e.options,"debugColumns")),getLeafColumns:Me(()=>[e._getOrderColumnsFn()],f=>{var p;if((p=d.columns)!=null&&p.length){let h=d.columns.flatMap(y=>y.getLeafColumns());return f(h)}return[d]},Ie(e.options,"debugColumns"))};for(const f of e._features)f.createColumn==null||f.createColumn(d,e);return d}const gn="debugHeaders";function zx(e,t,n){var r;let i={id:(r=n.id)!=null?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const a=[],s=l=>{l.subHeaders&&l.subHeaders.length&&l.subHeaders.map(s),a.push(l)};return s(i),a},getContext:()=>({table:e,header:i,column:t})};return e._features.forEach(a=>{a.createHeader==null||a.createHeader(i,e)}),i}const gB={createTable:e=>{e.getHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,o)=>{var i,a;const s=(i=r==null?void 0:r.map(d=>n.find(f=>f.id===d)).filter(Boolean))!=null?i:[],l=(a=o==null?void 0:o.map(d=>n.find(f=>f.id===d)).filter(Boolean))!=null?a:[],c=n.filter(d=>!(r!=null&&r.includes(d.id))&&!(o!=null&&o.includes(d.id)));return yu(t,[...s,...c,...l],e)},Ie(e.options,gn)),e.getCenterHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,o)=>(n=n.filter(i=>!(r!=null&&r.includes(i.id))&&!(o!=null&&o.includes(i.id))),yu(t,n,e,"center")),Ie(e.options,gn)),e.getLeftHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var o;const i=(o=r==null?void 0:r.map(a=>n.find(s=>s.id===a)).filter(Boolean))!=null?o:[];return yu(t,i,e,"left")},Ie(e.options,gn)),e.getRightHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var o;const i=(o=r==null?void 0:r.map(a=>n.find(s=>s.id===a)).filter(Boolean))!=null?o:[];return yu(t,i,e,"right")},Ie(e.options,gn)),e.getFooterGroups=Me(()=>[e.getHeaderGroups()],t=>[...t].reverse(),Ie(e.options,gn)),e.getLeftFooterGroups=Me(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),Ie(e.options,gn)),e.getCenterFooterGroups=Me(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),Ie(e.options,gn)),e.getRightFooterGroups=Me(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),Ie(e.options,gn)),e.getFlatHeaders=Me(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,gn)),e.getLeftFlatHeaders=Me(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,gn)),e.getCenterFlatHeaders=Me(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,gn)),e.getRightFlatHeaders=Me(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,gn)),e.getCenterLeafHeaders=Me(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ie(e.options,gn)),e.getLeftLeafHeaders=Me(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ie(e.options,gn)),e.getRightLeafHeaders=Me(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ie(e.options,gn)),e.getLeafHeaders=Me(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var o,i,a,s,l,c;return[...(o=(i=t[0])==null?void 0:i.headers)!=null?o:[],...(a=(s=n[0])==null?void 0:s.headers)!=null?a:[],...(l=(c=r[0])==null?void 0:c.headers)!=null?l:[]].map(u=>u.getLeafHeaders()).flat()},Ie(e.options,gn))}};function yu(e,t,n,r){var o,i;let a=0;const s=function(f,p){p===void 0&&(p=1),a=Math.max(a,p),f.filter(h=>h.getIsVisible()).forEach(h=>{var y;(y=h.columns)!=null&&y.length&&s(h.columns,p+1)},0)};s(e);let l=[];const c=(f,p)=>{const h={depth:p,id:[r,`${p}`].filter(Boolean).join("_"),headers:[]},y=[];f.forEach(C=>{const v=[...y].reverse()[0],S=C.column.depth===h.depth;let m,w=!1;if(S&&C.column.parent?m=C.column.parent:(m=C.column,w=!0),v&&(v==null?void 0:v.column)===m)v.subHeaders.push(C);else{const _=zx(n,m,{id:[r,p,m.id,C==null?void 0:C.id].filter(Boolean).join("_"),isPlaceholder:w,placeholderId:w?`${y.filter(R=>R.column===m).length}`:void 0,depth:p,index:y.length});_.subHeaders.push(C),y.push(_)}h.headers.push(C),C.headerGroup=h}),l.push(h),p>0&&c(y,p-1)},u=t.map((f,p)=>zx(n,f,{depth:a,index:p}));c(u,a-1),l.reverse();const d=f=>f.filter(h=>h.column.getIsVisible()).map(h=>{let y=0,C=0,v=[0];h.subHeaders&&h.subHeaders.length?(v=[],d(h.subHeaders).forEach(m=>{let{colSpan:w,rowSpan:_}=m;y+=w,v.push(_)})):y=1;const S=Math.min(...v);return C=C+S,h.colSpan=y,h.rowSpan=C,{colSpan:y,rowSpan:C}});return d((o=(i=l[0])==null?void 0:i.headers)!=null?o:[]),l}const hB=(e,t,n,r,o,i,a)=>{let s={id:t,index:r,original:n,depth:o,parentId:a,_valuesCache:{},_uniqueValuesCache:{},getValue:l=>{if(s._valuesCache.hasOwnProperty(l))return s._valuesCache[l];const c=e.getColumn(l);if(c!=null&&c.accessorFn)return s._valuesCache[l]=c.accessorFn(s.original,r),s._valuesCache[l]},getUniqueValues:l=>{if(s._uniqueValuesCache.hasOwnProperty(l))return s._uniqueValuesCache[l];const c=e.getColumn(l);if(c!=null&&c.accessorFn)return c.columnDef.getUniqueValues?(s._uniqueValuesCache[l]=c.columnDef.getUniqueValues(s.original,r),s._uniqueValuesCache[l]):(s._uniqueValuesCache[l]=[s.getValue(l)],s._uniqueValuesCache[l])},renderValue:l=>{var c;return(c=s.getValue(l))!=null?c:e.options.renderFallbackValue},subRows:[],getLeafRows:()=>dB(s.subRows,l=>l.subRows),getParentRow:()=>s.parentId?e.getRow(s.parentId,!0):void 0,getParentRows:()=>{let l=[],c=s;for(;;){const u=c.getParentRow();if(!u)break;l.push(u),c=u}return l.reverse()},getAllCells:Me(()=>[e.getAllLeafColumns()],l=>l.map(c=>fB(e,s,c,c.id)),Ie(e.options,"debugRows")),_getAllCellsByColumnId:Me(()=>[s.getAllCells()],l=>l.reduce((c,u)=>(c[u.column.id]=u,c),{}),Ie(e.options,"debugRows"))};for(let l=0;l{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},bR=(e,t,n)=>{var r,o;const i=n==null||(r=n.toString())==null?void 0:r.toLowerCase();return!!(!((o=e.getValue(t))==null||(o=o.toString())==null||(o=o.toLowerCase())==null)&&o.includes(i))};bR.autoRemove=e=>Dr(e);const xR=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};xR.autoRemove=e=>Dr(e);const SR=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===(n==null?void 0:n.toLowerCase())};SR.autoRemove=e=>Dr(e);const wR=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};wR.autoRemove=e=>Dr(e)||!(e!=null&&e.length);const CR=(e,t,n)=>!n.some(r=>{var o;return!((o=e.getValue(t))!=null&&o.includes(r))});CR.autoRemove=e=>Dr(e)||!(e!=null&&e.length);const _R=(e,t,n)=>n.some(r=>{var o;return(o=e.getValue(t))==null?void 0:o.includes(r)});_R.autoRemove=e=>Dr(e)||!(e!=null&&e.length);const RR=(e,t,n)=>e.getValue(t)===n;RR.autoRemove=e=>Dr(e);const TR=(e,t,n)=>e.getValue(t)==n;TR.autoRemove=e=>Dr(e);const H1=(e,t,n)=>{let[r,o]=n;const i=e.getValue(t);return i>=r&&i<=o};H1.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,o=typeof n!="number"?parseFloat(n):n,i=t===null||Number.isNaN(r)?-1/0:r,a=n===null||Number.isNaN(o)?1/0:o;if(i>a){const s=i;i=a,a=s}return[i,a]};H1.autoRemove=e=>Dr(e)||Dr(e[0])&&Dr(e[1]);const go={includesString:bR,includesStringSensitive:xR,equalsString:SR,arrIncludes:wR,arrIncludesAll:CR,arrIncludesSome:_R,equals:RR,weakEquals:TR,inNumberRange:H1};function Dr(e){return e==null||e===""}const vB={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:tr("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);return typeof r=="string"?go.includesString:typeof r=="number"?go.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?go.equals:Array.isArray(r)?go.arrIncludes:go.weakEquals},e.getFilterFn=()=>{var n,r;return Sp(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(r=t.options.filterFns)==null?void 0:r[e.columnDef.filterFn])!=null?n:go[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,r,o;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((o=t.options.enableFilters)!=null?o:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(r=>r.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(o=>o.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(r=>{const o=e.getFilterFn(),i=r==null?void 0:r.find(u=>u.id===e.id),a=Xo(n,i?i.value:void 0);if(Hx(o,a,e)){var s;return(s=r==null?void 0:r.filter(u=>u.id!==e.id))!=null?s:[]}const l={id:e.id,value:a};if(i){var c;return(c=r==null?void 0:r.map(u=>u.id===e.id?l:u))!=null?c:[]}return r!=null&&r.length?[...r,l]:[l]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),r=o=>{var i;return(i=Xo(t,o))==null?void 0:i.filter(a=>{const s=n.find(l=>l.id===a.id);if(s){const l=s.getFilterFn();if(Hx(l,a.value,s))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(r)},e.resetColumnFilters=t=>{var n,r;e.setColumnFilters(t?[]:(n=(r=e.initialState)==null?void 0:r.columnFilters)!=null?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function Hx(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const yB=(e,t,n)=>n.reduce((r,o)=>{const i=o.getValue(e);return r+(typeof i=="number"?i:0)},0),bB=(e,t,n)=>{let r;return n.forEach(o=>{const i=o.getValue(e);i!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}),r},xB=(e,t,n)=>{let r;return n.forEach(o=>{const i=o.getValue(e);i!=null&&(r=i)&&(r=i)}),r},SB=(e,t,n)=>{let r,o;return n.forEach(i=>{const a=i.getValue(e);a!=null&&(r===void 0?a>=a&&(r=o=a):(r>a&&(r=a),o{let n=0,r=0;if(t.forEach(o=>{let i=o.getValue(e);i!=null&&(i=+i)>=i&&(++n,r+=i)}),n)return r/n},CB=(e,t)=>{if(!t.length)return;const n=t.map(i=>i.getValue(e));if(!uB(n))return;if(n.length===1)return n[0];const r=Math.floor(n.length/2),o=n.sort((i,a)=>i-a);return n.length%2!==0?o[r]:(o[r-1]+o[r])/2},_B=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),RB=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,TB=(e,t)=>t.length,Pg={sum:yB,min:bB,max:xB,extent:SB,mean:wB,median:CB,unique:_B,uniqueCount:RB,count:TB},PB={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:tr("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(r=>r!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,r;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((r=t.options.enableGrouping)!=null?r:!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const n=e.getCanGroup();return()=>{n&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);if(typeof r=="number")return Pg.sum;if(Object.prototype.toString.call(r)==="[object Date]")return Pg.extent},e.getAggregationFn=()=>{var n,r;if(!e)throw new Error;return Sp(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(r=t.options.aggregationFns)==null?void 0:r[e.columnDef.aggregationFn])!=null?n:Pg[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,r;e.setGrouping(t?[]:(n=(r=e.initialState)==null?void 0:r.grouping)!=null?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var o;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((o=n.subRows)!=null&&o.length)}}};function kB(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(i=>!t.includes(i.id));return n==="remove"?r:[...t.map(i=>e.find(a=>a.id===i)).filter(Boolean),...r]}const $B={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:tr("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=Me(n=>[Ll(t,n)],n=>n.findIndex(r=>r.id===e.id),Ie(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var r;return((r=Ll(t,n)[0])==null?void 0:r.id)===e.id},e.getIsLastColumn=n=>{var r;const o=Ll(t,n);return((r=o[o.length-1])==null?void 0:r.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},e._getOrderColumnsFn=Me(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>o=>{let i=[];if(!(t!=null&&t.length))i=o;else{const a=[...t],s=[...o];for(;s.length&&a.length;){const l=a.shift(),c=s.findIndex(u=>u.id===l);c>-1&&i.push(s.splice(c,1)[0])}i=[...i,...s]}return kB(i,n,r)},Ie(e.options,"debugTable"))}},kg=()=>({left:[],right:[]}),EB={getInitialState:e=>({columnPinning:kg(),...e}),getDefaultOptions:e=>({onColumnPinningChange:tr("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const r=e.getLeafColumns().map(o=>o.id).filter(Boolean);t.setColumnPinning(o=>{var i,a;if(n==="right"){var s,l;return{left:((s=o==null?void 0:o.left)!=null?s:[]).filter(d=>!(r!=null&&r.includes(d))),right:[...((l=o==null?void 0:o.right)!=null?l:[]).filter(d=>!(r!=null&&r.includes(d))),...r]}}if(n==="left"){var c,u;return{left:[...((c=o==null?void 0:o.left)!=null?c:[]).filter(d=>!(r!=null&&r.includes(d))),...r],right:((u=o==null?void 0:o.right)!=null?u:[]).filter(d=>!(r!=null&&r.includes(d)))}}return{left:((i=o==null?void 0:o.left)!=null?i:[]).filter(d=>!(r!=null&&r.includes(d))),right:((a=o==null?void 0:o.right)!=null?a:[]).filter(d=>!(r!=null&&r.includes(d)))}})},e.getCanPin=()=>e.getLeafColumns().some(r=>{var o,i,a;return((o=r.columnDef.enablePinning)!=null?o:!0)&&((i=(a=t.options.enableColumnPinning)!=null?a:t.options.enablePinning)!=null?i:!0)}),e.getIsPinned=()=>{const n=e.getLeafColumns().map(s=>s.id),{left:r,right:o}=t.getState().columnPinning,i=n.some(s=>r==null?void 0:r.includes(s)),a=n.some(s=>o==null?void 0:o.includes(s));return i?"left":a?"right":!1},e.getPinnedIndex=()=>{var n,r;const o=e.getIsPinned();return o?(n=(r=t.getState().columnPinning)==null||(r=r[o])==null?void 0:r.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=Me(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,o)=>{const i=[...r??[],...o??[]];return n.filter(a=>!i.includes(a.column.id))},Ie(t.options,"debugRows")),e.getLeftVisibleCells=Me(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,r)=>(r??[]).map(i=>n.find(a=>a.column.id===i)).filter(Boolean).map(i=>({...i,position:"left"})),Ie(t.options,"debugRows")),e.getRightVisibleCells=Me(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r??[]).map(i=>n.find(a=>a.column.id===i)).filter(Boolean).map(i=>({...i,position:"right"})),Ie(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,r;return e.setColumnPinning(t?kg():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:kg())},e.getIsSomeColumnsPinned=t=>{var n;const r=e.getState().columnPinning;if(!t){var o,i;return!!((o=r.left)!=null&&o.length||(i=r.right)!=null&&i.length)}return!!((n=r[t])!=null&&n.length)},e.getLeftLeafColumns=Me(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(r=>t.find(o=>o.id===r)).filter(Boolean),Ie(e.options,"debugColumns")),e.getRightLeafColumns=Me(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(r=>t.find(o=>o.id===r)).filter(Boolean),Ie(e.options,"debugColumns")),e.getCenterLeafColumns=Me(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const o=[...n??[],...r??[]];return t.filter(i=>!o.includes(i.id))},Ie(e.options,"debugColumns"))}},bu={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},$g=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),MB={getDefaultColumnDef:()=>bu,getInitialState:e=>({columnSizing:{},columnSizingInfo:$g(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:tr("columnSizing",e),onColumnSizingInfoChange:tr("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,r,o;const i=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:bu.minSize,(r=i??e.columnDef.size)!=null?r:bu.size),(o=e.columnDef.maxSize)!=null?o:bu.maxSize)},e.getStart=Me(n=>[n,Ll(t,n),t.getState().columnSizing],(n,r)=>r.slice(0,e.getIndex(n)).reduce((o,i)=>o+i.getSize(),0),Ie(t.options,"debugColumns")),e.getAfter=Me(n=>[n,Ll(t,n),t.getState().columnSizing],(n,r)=>r.slice(e.getIndex(n)+1).reduce((o,i)=>o+i.getSize(),0),Ie(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:r,...o}=n;return o})},e.getCanResize=()=>{var n,r;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((r=t.options.enableColumnResizing)!=null?r:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const r=o=>{if(o.subHeaders.length)o.subHeaders.forEach(r);else{var i;n+=(i=o.column.getSize())!=null?i:0}};return r(e),n},e.getStart=()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},e.getResizeHandler=n=>{const r=t.getColumn(e.column.id),o=r==null?void 0:r.getCanResize();return i=>{if(!r||!o||(i.persist==null||i.persist(),Eg(i)&&i.touches&&i.touches.length>1))return;const a=e.getSize(),s=e?e.getLeafHeaders().map(v=>[v.column.id,v.column.getSize()]):[[r.id,r.getSize()]],l=Eg(i)?Math.round(i.touches[0].clientX):i.clientX,c={},u=(v,S)=>{typeof S=="number"&&(t.setColumnSizingInfo(m=>{var w,_;const R=t.options.columnResizeDirection==="rtl"?-1:1,k=(S-((w=m==null?void 0:m.startOffset)!=null?w:0))*R,T=Math.max(k/((_=m==null?void 0:m.startSize)!=null?_:0),-.999999);return m.columnSizingStart.forEach(P=>{let[x,$]=P;c[x]=Math.round(Math.max($+$*T,0)*100)/100}),{...m,deltaOffset:k,deltaPercentage:T}}),(t.options.columnResizeMode==="onChange"||v==="end")&&t.setColumnSizing(m=>({...m,...c})))},d=v=>u("move",v),f=v=>{u("end",v),t.setColumnSizingInfo(S=>({...S,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},p=n||typeof document<"u"?document:null,h={moveHandler:v=>d(v.clientX),upHandler:v=>{p==null||p.removeEventListener("mousemove",h.moveHandler),p==null||p.removeEventListener("mouseup",h.upHandler),f(v.clientX)}},y={moveHandler:v=>(v.cancelable&&(v.preventDefault(),v.stopPropagation()),d(v.touches[0].clientX),!1),upHandler:v=>{var S;p==null||p.removeEventListener("touchmove",y.moveHandler),p==null||p.removeEventListener("touchend",y.upHandler),v.cancelable&&(v.preventDefault(),v.stopPropagation()),f((S=v.touches[0])==null?void 0:S.clientX)}},C=IB()?{passive:!1}:!1;Eg(i)?(p==null||p.addEventListener("touchmove",y.moveHandler,C),p==null||p.addEventListener("touchend",y.upHandler,C)):(p==null||p.addEventListener("mousemove",h.moveHandler,C),p==null||p.addEventListener("mouseup",h.upHandler,C)),t.setColumnSizingInfo(v=>({...v,startOffset:l,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:s,isResizingColumn:r.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?$g():(n=e.initialState.columnSizingInfo)!=null?n:$g())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0}}};let xu=null;function IB(){if(typeof xu=="boolean")return xu;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return xu=e,xu}function Eg(e){return e.type==="touchstart"}const OB={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:tr("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(r=>({...r,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,r;const o=e.columns;return(n=o.length?o.some(i=>i.getIsVisible()):(r=t.getState().columnVisibility)==null?void 0:r[e.id])!=null?n:!0},e.getCanHide=()=>{var n,r;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((r=t.options.enableHiding)!=null?r:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=Me(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(r=>r.column.getIsVisible()),Ie(t.options,"debugRows")),e.getVisibleCells=Me(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,o)=>[...n,...r,...o],Ie(t.options,"debugRows"))},createTable:e=>{const t=(n,r)=>Me(()=>[r(),r().filter(o=>o.getIsVisible()).map(o=>o.id).join("_")],o=>o.filter(i=>i.getIsVisible==null?void 0:i.getIsVisible()),Ie(e.options,"debugColumns"));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),e.resetColumnVisibility=n=>{var r;e.setColumnVisibility(n?{}:(r=e.initialState.columnVisibility)!=null?r:{})},e.toggleAllColumnsVisible=n=>{var r;n=(r=n)!=null?r:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((o,i)=>({...o,[i.id]:n||!(i.getCanHide!=null&&i.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>n=>{var r;e.toggleAllColumnsVisible((r=n.target)==null?void 0:r.checked)}}};function Ll(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const LB={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},AB={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:tr("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const r=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof r=="string"||typeof r=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,r,o,i;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((o=t.options.enableFilters)!=null?o:!0)&&((i=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?i:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>go.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:r}=e.options;return Sp(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:go[r]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},NB={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:tr("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var r,o;if(!t){e._queue(()=>{t=!0});return}if((r=(o=e.options.autoResetAll)!=null?o:e.options.autoResetExpanded)!=null?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=r=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(r),e.toggleAllRowsExpanded=r=>{r??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=r=>{var o,i;e.setExpanded(r?{}:(o=(i=e.initialState)==null?void 0:i.expanded)!=null?o:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(r=>r.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>r=>{r.persist==null||r.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const r=e.getState().expanded;return r===!0||Object.values(r).some(Boolean)},e.getIsAllRowsExpanded=()=>{const r=e.getState().expanded;return typeof r=="boolean"?r===!0:!(!Object.keys(r).length||e.getRowModel().flatRows.some(o=>!o.getIsExpanded()))},e.getExpandedDepth=()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(i=>{const a=i.split(".");r=Math.max(r,a.length)}),r},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(r=>{var o;const i=r===!0?!0:!!(r!=null&&r[e.id]);let a={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(s=>{a[s]=!0}):a=r,n=(o=n)!=null?o:!i,!i&&n)return{...a,[e.id]:!0};if(i&&!n){const{[e.id]:s,...l}=a;return l}return r})},e.getIsExpanded=()=>{var n;const r=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:r===!0||r!=null&&r[e.id])},e.getCanExpand=()=>{var n,r,o;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((o=e.subRows)!=null&&o.length)},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},$m=0,Em=10,Mg=()=>({pageIndex:$m,pageSize:Em}),DB={getInitialState:e=>({...e,pagination:{...Mg(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:tr("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var r,o;if(!t){e._queue(()=>{t=!0});return}if((r=(o=e.options.autoResetAll)!=null?o:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=r=>{const o=i=>Xo(r,i);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(o)},e.resetPagination=r=>{var o;e.setPagination(r?Mg():(o=e.initialState.pagination)!=null?o:Mg())},e.setPageIndex=r=>{e.setPagination(o=>{let i=Xo(r,o.pageIndex);const a=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return i=Math.max(0,Math.min(i,a)),{...o,pageIndex:i}})},e.resetPageIndex=r=>{var o,i;e.setPageIndex(r?$m:(o=(i=e.initialState)==null||(i=i.pagination)==null?void 0:i.pageIndex)!=null?o:$m)},e.resetPageSize=r=>{var o,i;e.setPageSize(r?Em:(o=(i=e.initialState)==null||(i=i.pagination)==null?void 0:i.pageSize)!=null?o:Em)},e.setPageSize=r=>{e.setPagination(o=>{const i=Math.max(1,Xo(r,o.pageSize)),a=o.pageSize*o.pageIndex,s=Math.floor(a/i);return{...o,pageIndex:s,pageSize:i}})},e.setPageCount=r=>e.setPagination(o=>{var i;let a=Xo(r,(i=e.options.pageCount)!=null?i:-1);return typeof a=="number"&&(a=Math.max(-1,a)),{...o,pageCount:a}}),e.getPageOptions=Me(()=>[e.getPageCount()],r=>{let o=[];return r&&r>0&&(o=[...new Array(r)].fill(null).map((i,a)=>a)),o},Ie(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:r}=e.getState().pagination,o=e.getPageCount();return o===-1?!0:o===0?!1:re.setPageIndex(r=>r-1),e.nextPage=()=>e.setPageIndex(r=>r+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var r;return(r=e.options.pageCount)!=null?r:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var r;return(r=e.options.rowCount)!=null?r:e.getPrePaginationRowModel().rows.length}}},Ig=()=>({top:[],bottom:[]}),jB={getInitialState:e=>({rowPinning:Ig(),...e}),getDefaultOptions:e=>({onRowPinningChange:tr("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,r,o)=>{const i=r?e.getLeafRows().map(l=>{let{id:c}=l;return c}):[],a=o?e.getParentRows().map(l=>{let{id:c}=l;return c}):[],s=new Set([...a,e.id,...i]);t.setRowPinning(l=>{var c,u;if(n==="bottom"){var d,f;return{top:((d=l==null?void 0:l.top)!=null?d:[]).filter(y=>!(s!=null&&s.has(y))),bottom:[...((f=l==null?void 0:l.bottom)!=null?f:[]).filter(y=>!(s!=null&&s.has(y))),...Array.from(s)]}}if(n==="top"){var p,h;return{top:[...((p=l==null?void 0:l.top)!=null?p:[]).filter(y=>!(s!=null&&s.has(y))),...Array.from(s)],bottom:((h=l==null?void 0:l.bottom)!=null?h:[]).filter(y=>!(s!=null&&s.has(y)))}}return{top:((c=l==null?void 0:l.top)!=null?c:[]).filter(y=>!(s!=null&&s.has(y))),bottom:((u=l==null?void 0:l.bottom)!=null?u:[]).filter(y=>!(s!=null&&s.has(y)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:r,enablePinning:o}=t.options;return typeof r=="function"?r(e):(n=r??o)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:r,bottom:o}=t.getState().rowPinning,i=n.some(s=>r==null?void 0:r.includes(s)),a=n.some(s=>o==null?void 0:o.includes(s));return i?"top":a?"bottom":!1},e.getPinnedIndex=()=>{var n,r;const o=e.getIsPinned();if(!o)return-1;const i=(n=o==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(a=>{let{id:s}=a;return s});return(r=i==null?void 0:i.indexOf(e.id))!=null?r:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,r;return e.setRowPinning(t?Ig():(n=(r=e.initialState)==null?void 0:r.rowPinning)!=null?n:Ig())},e.getIsSomeRowsPinned=t=>{var n;const r=e.getState().rowPinning;if(!t){var o,i;return!!((o=r.top)!=null&&o.length||(i=r.bottom)!=null&&i.length)}return!!((n=r[t])!=null&&n.length)},e._getPinnedRows=(t,n,r)=>{var o;return((o=e.options.keepPinnedRows)==null||o?(n??[]).map(a=>{const s=e.getRow(a,!0);return s.getIsAllParentsExpanded()?s:null}):(n??[]).map(a=>t.find(s=>s.id===a))).filter(Boolean).map(a=>({...a,position:r}))},e.getTopRows=Me(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),Ie(e.options,"debugRows")),e.getBottomRows=Me(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),Ie(e.options,"debugRows")),e.getCenterRows=Me(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,r)=>{const o=new Set([...n??[],...r??[]]);return t.filter(i=>!o.has(i.id))},Ie(e.options,"debugRows"))}},FB={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:tr("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const r={...n},o=e.getPreGroupedRowModel().flatRows;return t?o.forEach(i=>{i.getCanSelect()&&(r[i.id]=!0)}):o.forEach(i=>{delete r[i.id]}),r})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),o={...n};return e.getRowModel().rows.forEach(i=>{Mm(o,i.id,r,!0,e)}),o}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=Me(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?Og(e,n):{rows:[],flatRows:[],rowsById:{}},Ie(e.options,"debugTable")),e.getFilteredSelectedRowModel=Me(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?Og(e,n):{rows:[],flatRows:[],rowsById:{}},Ie(e.options,"debugTable")),e.getGroupedSelectedRowModel=Me(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?Og(e,n):{rows:[],flatRows:[],rowsById:{}},Ie(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!(t.length&&Object.keys(n).length);return r&&t.some(o=>o.getCanSelect()&&!n[o.id])&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(o=>o.getCanSelect()),{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(o=>!n[o.id])&&(r=!1),r},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(n=>n.getCanSelect()).some(n=>n.getIsSelected()||n.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,r)=>{const o=e.getIsSelected();t.setRowSelection(i=>{var a;if(n=typeof n<"u"?n:!o,e.getCanSelect()&&o===n)return i;const s={...i};return Mm(s,e.id,n,(a=r==null?void 0:r.selectChildren)!=null?a:!0,t),s})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return V1(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return Im(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return Im(e,n)==="all"},e.getCanSelect=()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},e.getCanSelectSubRows=()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},e.getCanMultiSelect=()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},e.getToggleSelectedHandler=()=>{const n=e.getCanSelect();return r=>{var o;n&&e.toggleSelected((o=r.target)==null?void 0:o.checked)}}}},Mm=(e,t,n,r,o)=>{var i;const a=o.getRow(t,!0);n?(a.getCanMultiSelect()||Object.keys(e).forEach(s=>delete e[s]),a.getCanSelect()&&(e[t]=!0)):delete e[t],r&&(i=a.subRows)!=null&&i.length&&a.getCanSelectSubRows()&&a.subRows.forEach(s=>Mm(e,s.id,n,r,o))};function Og(e,t){const n=e.getState().rowSelection,r=[],o={},i=function(a,s){return a.map(l=>{var c;const u=V1(l,n);if(u&&(r.push(l),o[l.id]=l),(c=l.subRows)!=null&&c.length&&(l={...l,subRows:i(l.subRows)}),u)return l}).filter(Boolean)};return{rows:i(t.rows),flatRows:r,rowsById:o}}function V1(e,t){var n;return(n=t[e.id])!=null?n:!1}function Im(e,t,n){var r;if(!((r=e.subRows)!=null&&r.length))return!1;let o=!0,i=!1;return e.subRows.forEach(a=>{if(!(i&&!o)&&(a.getCanSelect()&&(V1(a,t)?i=!0:o=!1),a.subRows&&a.subRows.length)){const s=Im(a,t);s==="all"?i=!0:(s==="some"&&(i=!0),o=!1)}}),o?"all":i?"some":!1}const Om=/([0-9]+)/gm,BB=(e,t,n)=>PR(gi(e.getValue(n)).toLowerCase(),gi(t.getValue(n)).toLowerCase()),zB=(e,t,n)=>PR(gi(e.getValue(n)),gi(t.getValue(n))),HB=(e,t,n)=>W1(gi(e.getValue(n)).toLowerCase(),gi(t.getValue(n)).toLowerCase()),VB=(e,t,n)=>W1(gi(e.getValue(n)),gi(t.getValue(n))),WB=(e,t,n)=>{const r=e.getValue(n),o=t.getValue(n);return r>o?1:rW1(e.getValue(n),t.getValue(n));function W1(e,t){return e===t?0:e>t?1:-1}function gi(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function PR(e,t){const n=e.split(Om).filter(Boolean),r=t.split(Om).filter(Boolean);for(;n.length&&r.length;){const o=n.shift(),i=r.shift(),a=parseInt(o,10),s=parseInt(i,10),l=[a,s].sort();if(isNaN(l[0])){if(o>i)return 1;if(i>o)return-1;continue}if(isNaN(l[1]))return isNaN(a)?-1:1;if(a>s)return 1;if(s>a)return-1}return n.length-r.length}const rl={alphanumeric:BB,alphanumericCaseSensitive:zB,text:HB,textCaseSensitive:VB,datetime:WB,basic:UB},GB={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:tr("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const o of n){const i=o==null?void 0:o.getValue(e.id);if(Object.prototype.toString.call(i)==="[object Date]")return rl.datetime;if(typeof i=="string"&&(r=!0,i.split(Om).length>1))return rl.alphanumeric}return r?rl.text:rl.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof(n==null?void 0:n.getValue(e.id))=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,r;if(!e)throw new Error;return Sp(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(r=t.options.sortingFns)==null?void 0:r[e.columnDef.sortingFn])!=null?n:rl[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{const o=e.getNextSortingOrder(),i=typeof n<"u"&&n!==null;t.setSorting(a=>{const s=a==null?void 0:a.find(p=>p.id===e.id),l=a==null?void 0:a.findIndex(p=>p.id===e.id);let c=[],u,d=i?n:o==="desc";if(a!=null&&a.length&&e.getCanMultiSort()&&r?s?u="toggle":u="add":a!=null&&a.length&&l!==a.length-1?u="replace":s?u="toggle":u="replace",u==="toggle"&&(i||o||(u="remove")),u==="add"){var f;c=[...a,{id:e.id,desc:d}],c.splice(0,c.length-((f=t.options.maxMultiSortColCount)!=null?f:Number.MAX_SAFE_INTEGER))}else u==="toggle"?c=a.map(p=>p.id===e.id?{...p,desc:d}:p):u==="remove"?c=a.filter(p=>p.id!==e.id):c=[{id:e.id,desc:d}];return c})},e.getFirstSortDir=()=>{var n,r;return((n=(r=e.columnDef.sortDescFirst)!=null?r:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var r,o;const i=e.getFirstSortDir(),a=e.getIsSorted();return a?a!==i&&((r=t.options.enableSortingRemoval)==null||r)&&(!(n&&(o=t.options.enableMultiRemove)!=null)||o)?!1:a==="desc"?"asc":"desc":i},e.getCanSort=()=>{var n,r;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((r=t.options.enableSorting)!=null?r:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,r;return(n=(r=e.columnDef.enableMultiSort)!=null?r:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const r=(n=t.getState().sorting)==null?void 0:n.find(o=>o.id===e.id);return r?r.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,r;return(n=(r=t.getState().sorting)==null?void 0:r.findIndex(o=>o.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(r=>r.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return r=>{n&&(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,r;e.setSorting(t?[]:(n=(r=e.initialState)==null?void 0:r.sorting)!=null?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},qB=[gB,OB,$B,EB,mB,vB,LB,AB,GB,PB,NB,DB,jB,FB,MB];function KB(e){var t,n;const r=[...qB,...(t=e._features)!=null?t:[]];let o={_features:r};const i=o._features.reduce((f,p)=>Object.assign(f,p.getDefaultOptions==null?void 0:p.getDefaultOptions(o)),{}),a=f=>o.options.mergeOptions?o.options.mergeOptions(i,f):{...i,...f};let l={...{},...(n=e.initialState)!=null?n:{}};o._features.forEach(f=>{var p;l=(p=f.getInitialState==null?void 0:f.getInitialState(l))!=null?p:l});const c=[];let u=!1;const d={_features:r,options:{...i,...e},initialState:l,_queue:f=>{c.push(f),u||(u=!0,Promise.resolve().then(()=>{for(;c.length;)c.shift()();u=!1}).catch(p=>setTimeout(()=>{throw p})))},reset:()=>{o.setState(o.initialState)},setOptions:f=>{const p=Xo(f,o.options);o.options=a(p)},getState:()=>o.options.state,setState:f=>{o.options.onStateChange==null||o.options.onStateChange(f)},_getRowId:(f,p,h)=>{var y;return(y=o.options.getRowId==null?void 0:o.options.getRowId(f,p,h))!=null?y:`${h?[h.id,p].join("."):p}`},getCoreRowModel:()=>(o._getCoreRowModel||(o._getCoreRowModel=o.options.getCoreRowModel(o)),o._getCoreRowModel()),getRowModel:()=>o.getPaginationRowModel(),getRow:(f,p)=>{let h=(p?o.getPrePaginationRowModel():o.getRowModel()).rowsById[f];if(!h&&(h=o.getCoreRowModel().rowsById[f],!h))throw new Error;return h},_getDefaultColumnDef:Me(()=>[o.options.defaultColumn],f=>{var p;return f=(p=f)!=null?p:{},{header:h=>{const y=h.header.column.columnDef;return y.accessorKey?y.accessorKey:y.accessorFn?y.id:null},cell:h=>{var y,C;return(y=(C=h.renderValue())==null||C.toString==null?void 0:C.toString())!=null?y:null},...o._features.reduce((h,y)=>Object.assign(h,y.getDefaultColumnDef==null?void 0:y.getDefaultColumnDef()),{}),...f}},Ie(e,"debugColumns")),_getColumnDefs:()=>o.options.columns,getAllColumns:Me(()=>[o._getColumnDefs()],f=>{const p=function(h,y,C){return C===void 0&&(C=0),h.map(v=>{const S=pB(o,v,C,y),m=v;return S.columns=m.columns?p(m.columns,S,C+1):[],S})};return p(f)},Ie(e,"debugColumns")),getAllFlatColumns:Me(()=>[o.getAllColumns()],f=>f.flatMap(p=>p.getFlatColumns()),Ie(e,"debugColumns")),_getAllFlatColumnsById:Me(()=>[o.getAllFlatColumns()],f=>f.reduce((p,h)=>(p[h.id]=h,p),{}),Ie(e,"debugColumns")),getAllLeafColumns:Me(()=>[o.getAllColumns(),o._getOrderColumnsFn()],(f,p)=>{let h=f.flatMap(y=>y.getLeafColumns());return p(h)},Ie(e,"debugColumns")),getColumn:f=>o._getAllFlatColumnsById()[f]};Object.assign(o,d);for(let f=0;fMe(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(o,i,a){i===void 0&&(i=0);const s=[];for(let c=0;ce._autoResetPageIndex()))}function QB(e){const t=[],n=r=>{var o;t.push(r),(o=r.subRows)!=null&&o.length&&r.getIsExpanded()&&r.subRows.forEach(n)};return e.rows.forEach(n),{rows:t,flatRows:e.flatRows,rowsById:e.rowsById}}function YB(e){return t=>Me(()=>[t.getState().pagination,t.getPrePaginationRowModel(),t.options.paginateExpandedRows?void 0:t.getState().expanded],(n,r)=>{if(!r.rows.length)return r;const{pageSize:o,pageIndex:i}=n;let{rows:a,flatRows:s,rowsById:l}=r;const c=o*i,u=c+o;a=a.slice(c,u);let d;t.options.paginateExpandedRows?d={rows:a,flatRows:s,rowsById:l}:d=QB({rows:a,flatRows:s,rowsById:l}),d.flatRows=[];const f=p=>{d.flatRows.push(p),p.subRows.length&&p.subRows.forEach(f)};return d.rows.forEach(f),d},Ie(t.options,"debugTable"))}function XB(){return e=>Me(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,o=[],i=r.filter(l=>{var c;return(c=e.getColumn(l.id))==null?void 0:c.getCanSort()}),a={};i.forEach(l=>{const c=e.getColumn(l.id);c&&(a[l.id]={sortUndefined:c.columnDef.sortUndefined,invertSorting:c.columnDef.invertSorting,sortingFn:c.getSortingFn()})});const s=l=>{const c=l.map(u=>({...u}));return c.sort((u,d)=>{for(let p=0;p{var d;o.push(u),(d=u.subRows)!=null&&d.length&&(u.subRows=s(u.subRows))}),c};return{rows:s(n.rows),flatRows:o,rowsById:n.rowsById}},Ie(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}/** - * react-table - * - * Copyright (c) TanStack - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function kR(e,t){return e?JB(e)?b.createElement(e,t):e:null}function JB(e){return ez(e)||typeof e=="function"||tz(e)}function ez(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function tz(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function nz(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=b.useState(()=>({current:KB(t)})),[r,o]=b.useState(()=>n.current.initialState);return n.current.setOptions(i=>({...i,...e,state:{...r,...e.state},onStateChange:a=>{o(a),e.onStateChange==null||e.onStateChange(a)}})),n.current}const rz=e=>e.map(t=>({...t,accessorKey:t.field,header:t.renderHeader?({table:n})=>t.renderHeader({table:n}):t.headerName,minSize:t.minWidth,maxSize:t.maxWidth,size:t.width,cell:t.renderCell?n=>t.renderCell({...n,data:n.row.original}):n=>n.renderValue(),meta:{headerAlign:t.headerAlign,align:t.align}}));function $R(e,t){const n="column"in e?e.column:e,r=t?"header":"col";return{minWidth:`max(calc(var(--${r}-${n.id}-size) * 1px), ${n.columnDef.minSize??0}px)`,width:`min(calc(var(--${r}-${n.id}-size) * 1px), ${n.columnDef.size}px)`,maxWidth:`min(calc(var(--${r}-${n.id}-size) * 1px), ${n.columnDef.maxSize??Number.MAX_SAFE_INTEGER}px)`}}const ER=()=>{const[e,t]=b.useState(!1),[n,r]=b.useState(!1),o=b.useRef(null),i=b.useCallback(()=>{if(o.current){const{scrollLeft:s,scrollWidth:l,clientWidth:c}=o.current;t(s>0),r(s{i()},[]);function a(s,l){const c="column"in s?s.column:s,u=c.getIsPinned();return{position:u||l?"sticky":"relative",top:l?0:void 0,left:u==="left"?`${c.getStart("left")}px`:void 0,right:u==="right"?`${c.getAfter("right")}px`:void 0,zIndex:l?u?3:2:u?2:1,backgroundColor:u?"#fff":"transparent",transition:"all 0.1s ease"}}return{tableContainerRef:o,getCommonPinningStyles:a,updateShadows:i,showShadowState:{showLeftShadow:e,showRightShadow:n}}},Lg=[10,25,50,100],oz=10,iz=10,az=({paginationMode:e,paginationState:t,onPageChange:n,onPageSizeChange:r})=>{const{pageIndex:o=0,pageSize:i=iz,totalCount:a}=t||{},[s,l]=b.useState({pageIndex:o,pageSize:i}),c=b.useMemo(()=>{if(e!=="client")return Math.ceil(a/s.pageSize)},[e,a,s.pageSize]),u=b.useCallback(f=>{l(p=>({...p,pageIndex:f})),n&&n(f)},[n]),d=b.useCallback(f=>{const p=Number(f.target.value);l(h=>({...h,pageSize:p})),r&&r(p)},[r]);return{pagination:s,setPagination:l,pageCount:c,handlePageChange:u,handleRowsPerPageChange:d}},sz="_root_71ors_3",lz="_withBorder_71ors_6",cz="_tableContainer_71ors_15",uz="_resizer_71ors_21",dz="_cell_71ors_35",fz="_headerCell_71ors_53",pz="_bodyCell_71ors_54",gz="_pinnedRight_71ors_67",hz="_pinnedLeft_71ors_68",mz="_rowWhenHover_71ors_92",vz="_emptyCell_71ors_103",yz="_footer_71ors_110",bz="_hide_71ors_114",xz="_onlyPagination_71ors_117",vn={root:sz,withBorder:lz,tableContainer:cz,resizer:uz,cell:dz,headerCell:fz,bodyCell:pz,pinnedRight:gz,pinnedLeft:hz,rowWhenHover:mz,emptyCell:vz,footer:yz,hide:bz,onlyPagination:xz},Sz=e=>{const{isExpanded:t,row:n,renderDetail:r}=e;return g.jsx(yp,{children:g.jsx(ps,{in:t,children:r?r(n):null},void 0)},void 0)},wz=rt.memo(({row:e,rowProps:t,showShadowState:n})=>g.jsx(yp,{...t,hover:!0,classes:{hover:vn.rowWhenHover},children:e.getVisibleCells().map(r=>g.jsx(Cz,{cell:r,showShadowState:n},void 0))},void 0),(e,t)=>e.row===t.row&&e.showShadowState===t.showShadowState),Cz=rt.memo(({cell:e,showShadowState:t})=>{var r;const{getCommonPinningStyles:n}=ER();return g.jsx(ys,{classes:{root:vn.cell,body:Gt(vn.bodyCell,{[vn.pinnedRight]:e.column.getIsPinned()==="right"&&e.column.getIsFirstColumn("right")&&t.showRightShadow,[vn.pinnedLeft]:e.column.getIsPinned()==="left"&&e.column.getIsLastColumn("left")&&t.showLeftShadow})},style:{...$R(e),...n(e,!1),textAlign:((r=e.column.columnDef.meta)==null?void 0:r.align)||"left"},children:kR(e.column.columnDef.cell,e.getContext())},e.id)},(e,t)=>e.cell.getValue()===t.cell.getValue()&&e.showShadowState===t.showShadowState),MR=e=>{const{table:t,showShadowState:n,renderDetail:r,expandedRows:o,columnsCount:i}=e,a=t.getRowModel().rows,s=zt();return g.jsx(R7,{children:a.length===0?g.jsx(yp,{children:g.jsx(ys,{colSpan:i,className:vn.emptyCell,children:g.jsx(mt,{color:"textSecondary",children:Kd(Ae.NoRows,s.language)},void 0)},void 0)},void 0):a.map(l=>{const c=!!o[l.id];return g.jsxs(g.Fragment,{children:[g.jsx(wz,{rowProps:{key:l.id},row:l,showShadowState:n},void 0),r&&c&&g.jsx(Sz,{row:l.original,isExpanded:c,renderDetail:r},void 0)]},void 0)})},void 0)},_z=rt.memo(MR,(e,t)=>e.table.options.data===t.table.options.data&&e.expandedRows===t.expandedRows),Rz=e=>{const{header:t}=e,n=b.useCallback(r=>{r.preventDefault(),t.getResizeHandler()(r.nativeEvent)},[t]);return g.jsx("div",{onMouseDown:n,className:Gt(vn.resizer,{[vn.isResizing]:t.column.getIsResizing()})},void 0)};var Lm;(function(e){e[e.ManageColumnDisplay=0]="ManageColumnDisplay"})(Lm||(Lm={}));const Tz=e=>{const{table:t}=e,[n,r]=b.useState(null),o=!!n,i=o?"simple-popover":void 0,a=(l,c)=>{r(l.currentTarget)},s=()=>{r(null)};return g.jsxs(D_,{sx:{display:"flex",justifyContent:"space-between"},children:[g.jsx(mt,{children:"Table"},void 0),g.jsxs("div",{children:[g.jsx(L1,{onClick:l=>a(l,Lm.ManageColumnDisplay),children:g.jsx(QA,{size:24},void 0)},void 0),g.jsx(I_,{id:i,open:o,onClose:s,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:"right"},children:g.jsxs("div",{style:{padding:"16px",boxShadow:"0px 4px 4px rgba(0, 0, 0, 0.25)"},children:[g.jsx(mt,{sx:{marginBottom:"16px"},children:"Manage Column Display"},void 0),g.jsx("div",{children:t.getAllLeafColumns().map(l=>g.jsx("div",{className:"px-1",children:g.jsxs("label",{children:[g.jsx("input",{type:"checkbox",checked:l.getIsVisible(),onChange:l.getToggleVisibilityHandler()},void 0)," ",l.columnDef.header]},void 0)},l.id))},void 0)]},void 0)},void 0)]},void 0)]},void 0)},Pz=e=>{const{header:t,children:n}=e;return t.column.getCanSort()?g.jsx(gA,{active:t.column.getIsSorted()!==!1,direction:t.column.getIsSorted()||"asc",onClick:t.column.getToggleSortingHandler(),children:n},void 0):g.jsx(g.Fragment,{children:n},void 0)},kz=()=>{const[e,t]=b.useState({}),n=o=>{t(i=>({...i,[o]:!i[o]}))},r=b.useMemo(()=>({id:"expander",headerName:"",field:"expander",renderCell:({row:o})=>g.jsx(L1,{onClick:()=>n(o.id),size:"small",children:e[o.id]?g.jsx(GA,{size:24},void 0):g.jsx(ia,{size:24},void 0)},void 0)}),[e]);return{expandedRows:e,toggleRowExpanded:n,expandedColumn:r}},$z=e=>{const{selectedIds:t}=e,n=t.reduce((a,s)=>(a[s]=!0,a),{}),[r,o]=b.useState(n||{});return{checkboxColumn:b.useMemo(()=>({id:"checkbox",headerName:"",field:"checkbox",renderHeader:({table:a})=>g.jsx(Qd,{checked:a.getIsAllRowsSelected(),indeterminate:a.getIsSomeRowsSelected(),onChange:a.getToggleAllRowsSelectedHandler()},void 0),renderCell:({row:a})=>g.jsx(Qd,{checked:a.getIsSelected(),disabled:!a.getCanSelect(),indeterminate:a.getIsSomeSelected(),onChange:a.getToggleSelectedHandler()},void 0)}),[]),setRowSelection:o,rowSelection:r}},ht=e=>{const{columns:t,rows:n,initialState:r,stickyHeader:o=!1,maxHeight:i,showPagination:a=!0,paginationMode:s="client",sortingMode:l="client",onSortingChange:c,rowCount:u=0,showPageSizeSelect:d=!0,pageSize:f,page:p,onPageChange:h,onPageSizeChange:y,enableColumnResizing:C=!1,showToolbar:v=!1,renderDetail:S,isRowSelectable:m,enableMultiRowSelection:w=!0,showCheckboxColumn:_=!1,onSelectChange:R,getRowId:k,renderFooter:T,classes:P={tableContainer:""},withBorder:x=!0,selectedRowIds:$=[]}=e,{tableContainerRef:I,getCommonPinningStyles:O,updateShadows:D,showShadowState:M}=ER(),{pagination:A,pageCount:N,handlePageChange:E,handleRowsPerPageChange:L}=az({paginationMode:s,paginationState:{pageIndex:p,pageSize:f,totalCount:u},onPageChange:h,onPageSizeChange:y}),{expandedColumn:B,expandedRows:H}=kz(),{rowSelection:z,setRowSelection:j,checkboxColumn:F}=$z({selectedIds:$}),[W,V]=b.useState([]),ee=b.useMemo(()=>{const de=[...t].filter(Q=>!Q.hide);return S&&de.unshift(B),_&&de.unshift(F),rz(de)},[t,S,H,_]),re=nz({data:n,columns:ee,getCoreRowModel:ZB(),getPaginationRowModel:YB(),getSortedRowModel:l==="client"?XB():void 0,onSortingChange:de=>{const Q=typeof de=="function"?de(W):de;V(Q),l==="server"&&c&&c(Q)},enableColumnPinning:!0,enableRowSelection:de=>_&&(m?m(de.original):!0),enableMultiRowSelection:w,initialState:r,defaultColumn:{enableSorting:!1},state:{pagination:A,sorting:W,rowSelection:z},manualPagination:s==="server",manualSorting:l==="server",pageCount:N,enableColumnResizing:C,columnResizeMode:"onChange",onRowSelectionChange:j,getRowId:de=>k?k(de):de.id}),{getState:U}=re,{columnSizing:K,columnSizingInfo:se}=U();b.useEffect(()=>{const de=Object.keys(z).filter(Q=>z[Q]);R&&R(de)},[z]);const{showPagination:q,totalCount:ce}=b.useMemo(()=>{const de=s==="server"?u:n.length;return{showPagination:a&&de>oz,totalCount:de}},[a,s,n.length]),ue=b.useMemo(()=>d?!f||Lg.includes(f)?Lg:[f,...Lg]:[],[d,f]),ie=b.useMemo(()=>{const de=re.getFlatHeaders().length;return{table:re,showShadowState:M,renderDetail:S,expandedRows:H,columnsCount:de}},[re,M,S,H]),te=b.useMemo(()=>{const de=re.getFlatHeaders(),Q={};for(let be=0;beg.jsx(yp,{children:de.headers.map(Q=>{var be;return g.jsxs(ys,{padding:"none",classes:{root:vn.cell,head:vn.headerCell},style:{...$R(Q,!0),...O(Q,o),textAlign:((be=Q.column.columnDef.meta)==null?void 0:be.headerAlign)||"left",backgroundColor:"#fff"},children:[g.jsx(Pz,{header:Q,children:Q.isPlaceholder?null:kR(Q.column.columnDef.header,Q.getContext())},void 0),Q.column.getCanResize()&&g.jsx(Rz,{header:Q},void 0)]},Q.id)})},de.id))},void 0),se.isResizingColumn?g.jsx(_z,{...ie},void 0):g.jsx(MR,{...ie},void 0)]},void 0)},void 0),g.jsxs(j7,{classes:{root:Gt(vn.footer,{[vn.hide]:!T&&!q,[vn.onlyPagination]:!T&&q})},children:[T&&T(Object.keys(z)),q&&g.jsx(ED,{rowsPerPage:A.pageSize,page:A.pageIndex,count:ce,onPageChange:(de,Q)=>E(Q),onRowsPerPageChange:L,rowsPerPageOptions:ue},void 0)]},void 0)]},void 0)};var IR={exports:{}},OR={};/** - * @license React - * use-sync-external-store-shim.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var xs=b;function Ez(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Mz=typeof Object.is=="function"?Object.is:Ez,Iz=xs.useState,Oz=xs.useEffect,Lz=xs.useLayoutEffect,Az=xs.useDebugValue;function Nz(e,t){var n=t(),r=Iz({inst:{value:n,getSnapshot:t}}),o=r[0].inst,i=r[1];return Lz(function(){o.value=n,o.getSnapshot=t,Ag(o)&&i({inst:o})},[e,n,t]),Oz(function(){return Ag(o)&&i({inst:o}),e(function(){Ag(o)&&i({inst:o})})},[e]),Az(n),n}function Ag(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Mz(e,n)}catch{return!0}}function Dz(e,t){return t()}var jz=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Dz:Nz;OR.useSyncExternalStore=xs.useSyncExternalStore!==void 0?xs.useSyncExternalStore:jz;IR.exports=OR;var Fz=IR.exports;const Jo=()=>{},Pn=Jo(),Yu=Object,et=e=>e===Pn,Ir=e=>typeof e=="function",ko=(e,t)=>({...e,...t}),Bz=e=>Ir(e.then),Su=new WeakMap;let zz=0;const gc=e=>{const t=typeof e,n=e&&e.constructor,r=n==Date;let o,i;if(Yu(e)===e&&!r&&n!=RegExp){if(o=Su.get(e),o)return o;if(o=++zz+"~",Su.set(e,o),n==Array){for(o="@",i=0;iwp&&typeof window.requestAnimationFrame!=U1,LR=(e,t)=>{const n=vo.get(e);return[()=>!et(t)&&e.get(t)||Ng,r=>{if(!et(t)){const o=e.get(t);t in wu||(wu[t]=o),n[5](t,ko(o,r),o||Ng)}},n[6],()=>!et(t)&&t in wu?wu[t]:!et(t)&&e.get(t)||Ng]};let Nm=!0;const Vz=()=>Nm,[Dm,jm]=wp&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[Jo,Jo],Wz=()=>{const e=Am&&document.visibilityState;return et(e)||e!=="hidden"},Uz=e=>(Am&&document.addEventListener("visibilitychange",e),Dm("focus",e),()=>{Am&&document.removeEventListener("visibilitychange",e),jm("focus",e)}),Gz=e=>{const t=()=>{Nm=!0,e()},n=()=>{Nm=!1};return Dm("online",t),Dm("offline",n),()=>{jm("online",t),jm("offline",n)}},qz={isOnline:Vz,isVisible:Wz},Kz={initFocus:Uz,initReconnect:Gz},Vx=!rt.useId,hc=!wp||"Deno"in window,Zz=e=>Hz()?window.requestAnimationFrame(e):setTimeout(e,1),Xu=hc?b.useEffect:b.useLayoutEffect,Dg=typeof navigator<"u"&&navigator.connection,Wx=!hc&&Dg&&(["slow-2g","2g"].includes(Dg.effectiveType)||Dg.saveData),G1=e=>{if(Ir(e))try{e=e()}catch{e=""}const t=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?gc(e):"",[e,t]};let Qz=0;const Fm=()=>++Qz,AR=0,NR=1,DR=2,Yz=3;var ol={__proto__:null,ERROR_REVALIDATE_EVENT:Yz,FOCUS_EVENT:AR,MUTATE_EVENT:DR,RECONNECT_EVENT:NR};async function jR(...e){const[t,n,r,o]=e,i=ko({populateCache:!0,throwOnError:!0},typeof o=="boolean"?{revalidate:o}:o||{});let a=i.populateCache;const s=i.rollbackOnError;let l=i.optimisticData;const c=f=>typeof s=="function"?s(f):s!==!1,u=i.throwOnError;if(Ir(n)){const f=n,p=[],h=t.keys();for(const y of h)!/^\$(inf|sub)\$/.test(y)&&f(t.get(y)._k)&&p.push(y);return Promise.all(p.map(d))}return d(n);async function d(f){const[p]=G1(f);if(!p)return;const[h,y]=LR(t,p),[C,v,S,m]=vo.get(t),w=()=>{const O=C[p];return(Ir(i.revalidate)?i.revalidate(h().data,f):i.revalidate!==!1)&&(delete S[p],delete m[p],O&&O[0])?O[0](DR).then(()=>h().data):h().data};if(e.length<3)return w();let _=r,R;const k=Fm();v[p]=[k,0];const T=!et(l),P=h(),x=P.data,$=P._c,I=et($)?x:$;if(T&&(l=Ir(l)?l(I,x):l,y({data:l,_c:I})),Ir(_))try{_=_(I)}catch(O){R=O}if(_&&Bz(_))if(_=await _.catch(O=>{R=O}),k!==v[p][0]){if(R)throw R;return _}else R&&T&&c(R)&&(a=!0,y({data:I,_c:Pn}));if(a&&!R)if(Ir(a)){const O=a(_,I);y({data:O,error:Pn,_c:Pn})}else y({data:_,error:Pn,_c:Pn});if(v[p][1]=Fm(),Promise.resolve(w()).then(()=>{y({_c:Pn})}),R){if(u)throw R;return}return _}}const Ux=(e,t)=>{for(const n in e)e[n][0]&&e[n][0](t)},FR=(e,t)=>{if(!vo.has(e)){const n=ko(Kz,t),r={},o=jR.bind(Pn,e);let i=Jo;const a={},s=(u,d)=>{const f=a[u]||[];return a[u]=f,f.push(d),()=>f.splice(f.indexOf(d),1)},l=(u,d,f)=>{e.set(u,d);const p=a[u];if(p)for(const h of p)h(d,f)},c=()=>{if(!vo.has(e)&&(vo.set(e,[r,{},{},{},o,l,s]),!hc)){const u=n.initFocus(setTimeout.bind(Pn,Ux.bind(Pn,r,AR))),d=n.initReconnect(setTimeout.bind(Pn,Ux.bind(Pn,r,NR)));i=()=>{u&&u(),d&&d(),vo.delete(e)}}};return c(),[e,o,c,i]}return[e,vo.get(e)[4]]},Xz=(e,t,n,r,o)=>{const i=n.errorRetryCount,a=o.retryCount,s=~~((Math.random()+.5)*(1<<(a<8?a:8)))*n.errorRetryInterval;!et(i)&&a>i||setTimeout(r,s,o)},Jz=(e,t)=>gc(e)==gc(t),[q1,eH]=FR(new Map),BR=ko({onLoadingSlow:Jo,onSuccess:Jo,onError:Jo,onErrorRetry:Xz,onDiscarded:Jo,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:Wx?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:Wx?5e3:3e3,compare:Jz,isPaused:()=>!1,cache:q1,mutate:eH,fallback:{}},qz),zR=(e,t)=>{const n=ko(e,t);if(t){const{use:r,fallback:o}=e,{use:i,fallback:a}=t;r&&i&&(n.use=r.concat(i)),o&&a&&(n.fallback=ko(o,a))}return n},Bm=b.createContext({}),tH=e=>{const{value:t}=e,n=b.useContext(Bm),r=Ir(t),o=b.useMemo(()=>r?t(n):t,[r,n,t]),i=b.useMemo(()=>r?o:zR(n,o),[r,n,o]),a=o&&o.provider,s=b.useRef(Pn);a&&!s.current&&(s.current=FR(a(i.cache||q1),o));const l=s.current;return l&&(i.cache=l[0],i.mutate=l[1]),Xu(()=>{if(l)return l[2]&&l[2](),l[3]},[]),b.createElement(Bm.Provider,ko(e,{value:i}))},nH="$inf$",HR=wp&&window.__SWR_DEVTOOLS_USE__,rH=HR?window.__SWR_DEVTOOLS_USE__:[],oH=()=>{HR&&(window.__SWR_DEVTOOLS_REACT__=rt)},iH=e=>Ir(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(e[1]===null?e[2]:e[1])||{}],aH=()=>ko(BR,b.useContext(Bm)),sH=e=>(t,n,r)=>e(t,n&&((...i)=>{const[a]=G1(t),[,,,s]=vo.get(q1);if(a.startsWith(nH))return n(...i);const l=s[a];return et(l)?n(...i):(delete s[a],l)}),r),lH=rH.concat(sH),cH=e=>function(...n){const r=aH(),[o,i,a]=iH(n),s=zR(r,a);let l=e;const{use:c}=s,u=(c||[]).concat(lH);for(let d=u.length;d--;)l=u[d](l);return l(o,i||s.fetcher||null,s)},uH=(e,t,n)=>{const r=t[e]||(t[e]=[]);return r.push(n),()=>{const o=r.indexOf(n);o>=0&&(r[o]=r[r.length-1],r.pop())}};oH();const Gx=rt.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e)}),jg={dedupe:!0},dH=(e,t,n)=>{const{cache:r,compare:o,suspense:i,fallbackData:a,revalidateOnMount:s,revalidateIfStale:l,refreshInterval:c,refreshWhenHidden:u,refreshWhenOffline:d,keepPreviousData:f}=n,[p,h,y,C]=vo.get(r),[v,S]=G1(e),m=b.useRef(!1),w=b.useRef(!1),_=b.useRef(v),R=b.useRef(t),k=b.useRef(n),T=()=>k.current,P=()=>T().isVisible()&&T().isOnline(),[x,$,I,O]=LR(r,v),D=b.useRef({}).current,M=et(a)?n.fallback[v]:a,A=(q,ce)=>{for(const ue in D){const ie=ue;if(ie==="data"){if(!o(q[ie],ce[ie])&&(!et(q[ie])||!o(W,ce[ie])))return!1}else if(ce[ie]!==q[ie])return!1}return!0},N=b.useMemo(()=>{const q=!v||!t?!1:et(s)?T().isPaused()||i?!1:et(l)?!0:l:s,ce=be=>{const Te=ko(be);return delete Te._k,q?{isValidating:!0,isLoading:!0,...Te}:Te},ue=x(),ie=O(),te=ce(ue),de=ue===ie?te:ce(ie);let Q=te;return[()=>{const be=ce(x());return A(be,Q)?(Q.data=be.data,Q.isLoading=be.isLoading,Q.isValidating=be.isValidating,Q.error=be.error,Q):(Q=be,be)},()=>de]},[r,v]),E=Fz.useSyncExternalStore(b.useCallback(q=>I(v,(ce,ue)=>{A(ue,ce)||q()}),[r,v]),N[0],N[1]),L=!m.current,B=p[v]&&p[v].length>0,H=E.data,z=et(H)?M:H,j=E.error,F=b.useRef(z),W=f?et(H)?F.current:H:z,V=B&&!et(j)?!1:L&&!et(s)?s:T().isPaused()?!1:i?et(z)?!1:l:et(z)||l,ee=!!(v&&t&&L&&V),re=et(E.isValidating)?ee:E.isValidating,U=et(E.isLoading)?ee:E.isLoading,K=b.useCallback(async q=>{const ce=R.current;if(!v||!ce||w.current||T().isPaused())return!1;let ue,ie,te=!0;const de=q||{},Q=!y[v]||!de.dedupe,be=()=>Vx?!w.current&&v===_.current&&m.current:v===_.current,Te={isValidating:!1,isLoading:!1},we=()=>{$(Te)},ge=()=>{const Se=y[v];Se&&Se[1]===ie&&delete y[v]},le={isValidating:!0};et(x().data)&&(le.isLoading=!0);try{if(Q&&($(le),n.loadingTimeout&&et(x().data)&&setTimeout(()=>{te&&be()&&T().onLoadingSlow(v,n)},n.loadingTimeout),y[v]=[ce(S),Fm()]),[ue,ie]=y[v],ue=await ue,Q&&setTimeout(ge,n.dedupingInterval),!y[v]||y[v][1]!==ie)return Q&&be()&&T().onDiscarded(v),!1;Te.error=Pn;const Se=h[v];if(!et(Se)&&(ie<=Se[0]||ie<=Se[1]||Se[1]===0))return we(),Q&&be()&&T().onDiscarded(v),!1;const ye=x().data;Te.data=o(ye,ue)?ye:ue,Q&&be()&&T().onSuccess(ue,v,n)}catch(Se){ge();const ye=T(),{shouldRetryOnError:Ge}=ye;ye.isPaused()||(Te.error=Se,Q&&be()&&(ye.onError(Se,v,ye),(Ge===!0||Ir(Ge)&&Ge(Se))&&(!T().revalidateOnFocus||!T().revalidateOnReconnect||P())&&ye.onErrorRetry(Se,v,ye,Pe=>{const Re=p[v];Re&&Re[0]&&Re[0](ol.ERROR_REVALIDATE_EVENT,Pe)},{retryCount:(de.retryCount||0)+1,dedupe:!0})))}return te=!1,we(),!0},[v,r]),se=b.useCallback((...q)=>jR(r,_.current,...q),[]);if(Xu(()=>{R.current=t,k.current=n,et(H)||(F.current=H)}),Xu(()=>{if(!v)return;const q=K.bind(Pn,jg);let ce=0;const ie=uH(v,p,(te,de={})=>{if(te==ol.FOCUS_EVENT){const Q=Date.now();T().revalidateOnFocus&&Q>ce&&P()&&(ce=Q+T().focusThrottleInterval,q())}else if(te==ol.RECONNECT_EVENT)T().revalidateOnReconnect&&P()&&q();else{if(te==ol.MUTATE_EVENT)return K();if(te==ol.ERROR_REVALIDATE_EVENT)return K(de)}});return w.current=!1,_.current=v,m.current=!0,$({_k:S}),V&&(et(z)||hc?q():Zz(q)),()=>{w.current=!0,ie()}},[v]),Xu(()=>{let q;function ce(){const ie=Ir(c)?c(x().data):c;ie&&q!==-1&&(q=setTimeout(ue,ie))}function ue(){!x().error&&(u||T().isVisible())&&(d||T().isOnline())?K(jg).then(ce):ce()}return ce(),()=>{q&&(clearTimeout(q),q=-1)}},[c,u,d,v]),b.useDebugValue(W),i&&et(z)&&v){if(!Vx&&hc)throw new Error("Fallback data is required when using suspense in SSR.");R.current=t,k.current=n,w.current=!1;const q=C[v];if(!et(q)){const ce=se(q);Gx(ce)}if(et(j)){const ce=K(jg);et(W)||(ce.status="fulfilled",ce.value=!0),Gx(ce)}else throw j}return{mutate:se,get data(){return D.data=!0,W},get error(){return D.error=!0,j},get isValidating(){return D.isValidating=!0,re},get isLoading(){return D.isLoading=!0,U}}},fH=Yu.defineProperty(tH,"defaultValue",{value:BR}),nt=cH(dH);function VR(e,t){return function(){return e.apply(t,arguments)}}const{toString:pH}=Object.prototype,{getPrototypeOf:K1}=Object,Cp=(e=>t=>{const n=pH.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Vr=e=>(e=e.toLowerCase(),t=>Cp(t)===e),_p=e=>t=>typeof t===e,{isArray:Os}=Array,mc=_p("undefined");function gH(e){return e!==null&&!mc(e)&&e.constructor!==null&&!mc(e.constructor)&&Xn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const WR=Vr("ArrayBuffer");function hH(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&WR(e.buffer),t}const mH=_p("string"),Xn=_p("function"),UR=_p("number"),Rp=e=>e!==null&&typeof e=="object",vH=e=>e===!0||e===!1,Ju=e=>{if(Cp(e)!=="object")return!1;const t=K1(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},yH=Vr("Date"),bH=Vr("File"),xH=Vr("Blob"),SH=Vr("FileList"),wH=e=>Rp(e)&&Xn(e.pipe),CH=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Xn(e.append)&&((t=Cp(e))==="formdata"||t==="object"&&Xn(e.toString)&&e.toString()==="[object FormData]"))},_H=Vr("URLSearchParams"),[RH,TH,PH,kH]=["ReadableStream","Request","Response","Headers"].map(Vr),$H=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Oc(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,o;if(typeof e!="object"&&(e=[e]),Os(e))for(r=0,o=e.length;r0;)if(o=n[r],t===o.toLowerCase())return o;return null}const ji=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,qR=e=>!mc(e)&&e!==ji;function zm(){const{caseless:e}=qR(this)&&this||{},t={},n=(r,o)=>{const i=e&&GR(t,o)||o;Ju(t[i])&&Ju(r)?t[i]=zm(t[i],r):Ju(r)?t[i]=zm({},r):Os(r)?t[i]=r.slice():t[i]=r};for(let r=0,o=arguments.length;r(Oc(t,(o,i)=>{n&&Xn(o)?e[i]=VR(o,n):e[i]=o},{allOwnKeys:r}),e),MH=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),IH=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},OH=(e,t,n,r)=>{let o,i,a;const s={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)a=o[i],(!r||r(a,e,t))&&!s[a]&&(t[a]=e[a],s[a]=!0);e=n!==!1&&K1(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},LH=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},AH=e=>{if(!e)return null;if(Os(e))return e;let t=e.length;if(!UR(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},NH=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&K1(Uint8Array)),DH=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let o;for(;(o=r.next())&&!o.done;){const i=o.value;t.call(e,i[0],i[1])}},jH=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},FH=Vr("HTMLFormElement"),BH=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,o){return r.toUpperCase()+o}),qx=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),zH=Vr("RegExp"),KR=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Oc(n,(o,i)=>{let a;(a=t(o,i,e))!==!1&&(r[i]=a||o)}),Object.defineProperties(e,r)},HH=e=>{KR(e,(t,n)=>{if(Xn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Xn(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},VH=(e,t)=>{const n={},r=o=>{o.forEach(i=>{n[i]=!0})};return Os(e)?r(e):r(String(e).split(t)),n},WH=()=>{},UH=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,Fg="abcdefghijklmnopqrstuvwxyz",Kx="0123456789",ZR={DIGIT:Kx,ALPHA:Fg,ALPHA_DIGIT:Fg+Fg.toUpperCase()+Kx},GH=(e=16,t=ZR.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function qH(e){return!!(e&&Xn(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const KH=e=>{const t=new Array(10),n=(r,o)=>{if(Rp(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[o]=r;const i=Os(r)?[]:{};return Oc(r,(a,s)=>{const l=n(a,o+1);!mc(l)&&(i[s]=l)}),t[o]=void 0,i}}return r};return n(e,0)},ZH=Vr("AsyncFunction"),QH=e=>e&&(Rp(e)||Xn(e))&&Xn(e.then)&&Xn(e.catch),QR=((e,t)=>e?setImmediate:t?((n,r)=>(ji.addEventListener("message",({source:o,data:i})=>{o===ji&&i===n&&r.length&&r.shift()()},!1),o=>{r.push(o),ji.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Xn(ji.postMessage)),YH=typeof queueMicrotask<"u"?queueMicrotask.bind(ji):typeof process<"u"&&process.nextTick||QR,G={isArray:Os,isArrayBuffer:WR,isBuffer:gH,isFormData:CH,isArrayBufferView:hH,isString:mH,isNumber:UR,isBoolean:vH,isObject:Rp,isPlainObject:Ju,isReadableStream:RH,isRequest:TH,isResponse:PH,isHeaders:kH,isUndefined:mc,isDate:yH,isFile:bH,isBlob:xH,isRegExp:zH,isFunction:Xn,isStream:wH,isURLSearchParams:_H,isTypedArray:NH,isFileList:SH,forEach:Oc,merge:zm,extend:EH,trim:$H,stripBOM:MH,inherits:IH,toFlatObject:OH,kindOf:Cp,kindOfTest:Vr,endsWith:LH,toArray:AH,forEachEntry:DH,matchAll:jH,isHTMLForm:FH,hasOwnProperty:qx,hasOwnProp:qx,reduceDescriptors:KR,freezeMethods:HH,toObjectSet:VH,toCamelCase:BH,noop:WH,toFiniteNumber:UH,findKey:GR,global:ji,isContextDefined:qR,ALPHABET:ZR,generateString:GH,isSpecCompliantForm:qH,toJSONObject:KH,isAsyncFn:ZH,isThenable:QH,setImmediate:QR,asap:YH};function ze(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}G.inherits(ze,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:G.toJSONObject(this.config),code:this.code,status:this.status}}});const YR=ze.prototype,XR={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{XR[e]={value:e}});Object.defineProperties(ze,XR);Object.defineProperty(YR,"isAxiosError",{value:!0});ze.from=(e,t,n,r,o,i)=>{const a=Object.create(YR);return G.toFlatObject(e,a,function(l){return l!==Error.prototype},s=>s!=="isAxiosError"),ze.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};const XH=null;function Hm(e){return G.isPlainObject(e)||G.isArray(e)}function JR(e){return G.endsWith(e,"[]")?e.slice(0,-2):e}function Zx(e,t,n){return e?e.concat(t).map(function(o,i){return o=JR(o),!n&&i?"["+o+"]":o}).join(n?".":""):t}function JH(e){return G.isArray(e)&&!e.some(Hm)}const eV=G.toFlatObject(G,{},null,function(t){return/^is[A-Z]/.test(t)});function Tp(e,t,n){if(!G.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=G.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(y,C){return!G.isUndefined(C[y])});const r=n.metaTokens,o=n.visitor||u,i=n.dots,a=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&G.isSpecCompliantForm(t);if(!G.isFunction(o))throw new TypeError("visitor must be a function");function c(h){if(h===null)return"";if(G.isDate(h))return h.toISOString();if(!l&&G.isBlob(h))throw new ze("Blob is not supported. Use a Buffer instead.");return G.isArrayBuffer(h)||G.isTypedArray(h)?l&&typeof Blob=="function"?new Blob([h]):Buffer.from(h):h}function u(h,y,C){let v=h;if(h&&!C&&typeof h=="object"){if(G.endsWith(y,"{}"))y=r?y:y.slice(0,-2),h=JSON.stringify(h);else if(G.isArray(h)&&JH(h)||(G.isFileList(h)||G.endsWith(y,"[]"))&&(v=G.toArray(h)))return y=JR(y),v.forEach(function(m,w){!(G.isUndefined(m)||m===null)&&t.append(a===!0?Zx([y],w,i):a===null?y:y+"[]",c(m))}),!1}return Hm(h)?!0:(t.append(Zx(C,y,i),c(h)),!1)}const d=[],f=Object.assign(eV,{defaultVisitor:u,convertValue:c,isVisitable:Hm});function p(h,y){if(!G.isUndefined(h)){if(d.indexOf(h)!==-1)throw Error("Circular reference detected in "+y.join("."));d.push(h),G.forEach(h,function(v,S){(!(G.isUndefined(v)||v===null)&&o.call(t,v,G.isString(S)?S.trim():S,y,f))===!0&&p(v,y?y.concat(S):[S])}),d.pop()}}if(!G.isObject(e))throw new TypeError("data must be an object");return p(e),t}function Qx(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Z1(e,t){this._pairs=[],e&&Tp(e,this,t)}const e3=Z1.prototype;e3.append=function(t,n){this._pairs.push([t,n])};e3.toString=function(t){const n=t?function(r){return t.call(this,r,Qx)}:Qx;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};function tV(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function t3(e,t,n){if(!t)return e;const r=n&&n.encode||tV,o=n&&n.serialize;let i;if(o?i=o(t,n):i=G.isURLSearchParams(t)?t.toString():new Z1(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class Yx{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){G.forEach(this.handlers,function(r){r!==null&&t(r)})}}const n3={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},nV=typeof URLSearchParams<"u"?URLSearchParams:Z1,rV=typeof FormData<"u"?FormData:null,oV=typeof Blob<"u"?Blob:null,iV={isBrowser:!0,classes:{URLSearchParams:nV,FormData:rV,Blob:oV},protocols:["http","https","file","blob","url","data"]},Q1=typeof window<"u"&&typeof document<"u",Vm=typeof navigator=="object"&&navigator||void 0,aV=Q1&&(!Vm||["ReactNative","NativeScript","NS"].indexOf(Vm.product)<0),sV=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",lV=Q1&&window.location.href||"http://localhost",cV=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Q1,hasStandardBrowserEnv:aV,hasStandardBrowserWebWorkerEnv:sV,navigator:Vm,origin:lV},Symbol.toStringTag,{value:"Module"})),Bn={...cV,...iV};function uV(e,t){return Tp(e,new Bn.classes.URLSearchParams,Object.assign({visitor:function(n,r,o,i){return Bn.isNode&&G.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},t))}function dV(e){return G.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function fV(e){const t={},n=Object.keys(e);let r;const o=n.length;let i;for(r=0;r=n.length;return a=!a&&G.isArray(o)?o.length:a,l?(G.hasOwnProp(o,a)?o[a]=[o[a],r]:o[a]=r,!s):((!o[a]||!G.isObject(o[a]))&&(o[a]=[]),t(n,r,o[a],i)&&G.isArray(o[a])&&(o[a]=fV(o[a])),!s)}if(G.isFormData(e)&&G.isFunction(e.entries)){const n={};return G.forEachEntry(e,(r,o)=>{t(dV(r),o,n,0)}),n}return null}function pV(e,t,n){if(G.isString(e))try{return(t||JSON.parse)(e),G.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(0,JSON.stringify)(e)}const Lc={transitional:n3,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",o=r.indexOf("application/json")>-1,i=G.isObject(t);if(i&&G.isHTMLForm(t)&&(t=new FormData(t)),G.isFormData(t))return o?JSON.stringify(r3(t)):t;if(G.isArrayBuffer(t)||G.isBuffer(t)||G.isStream(t)||G.isFile(t)||G.isBlob(t)||G.isReadableStream(t))return t;if(G.isArrayBufferView(t))return t.buffer;if(G.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return uV(t,this.formSerializer).toString();if((s=G.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Tp(s?{"files[]":t}:t,l&&new l,this.formSerializer)}}return i||o?(n.setContentType("application/json",!1),pV(t)):t}],transformResponse:[function(t){const n=this.transitional||Lc.transitional,r=n&&n.forcedJSONParsing,o=this.responseType==="json";if(G.isResponse(t)||G.isReadableStream(t))return t;if(t&&G.isString(t)&&(r&&!this.responseType||o)){const a=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t)}catch(s){if(a)throw s.name==="SyntaxError"?ze.from(s,ze.ERR_BAD_RESPONSE,this,null,this.response):s}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Bn.classes.FormData,Blob:Bn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};G.forEach(["delete","get","head","post","put","patch"],e=>{Lc.headers[e]={}});const gV=G.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),hV=e=>{const t={};let n,r,o;return e&&e.split(` -`).forEach(function(a){o=a.indexOf(":"),n=a.substring(0,o).trim().toLowerCase(),r=a.substring(o+1).trim(),!(!n||t[n]&&gV[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},Xx=Symbol("internals");function il(e){return e&&String(e).trim().toLowerCase()}function ed(e){return e===!1||e==null?e:G.isArray(e)?e.map(ed):String(e)}function mV(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const vV=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Bg(e,t,n,r,o){if(G.isFunction(r))return r.call(this,t,n);if(o&&(t=n),!!G.isString(t)){if(G.isString(r))return t.indexOf(r)!==-1;if(G.isRegExp(r))return r.test(t)}}function yV(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function bV(e,t){const n=G.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(o,i,a){return this[r].call(this,t,o,i,a)},configurable:!0})})}class zn{constructor(t){t&&this.set(t)}set(t,n,r){const o=this;function i(s,l,c){const u=il(l);if(!u)throw new Error("header name must be a non-empty string");const d=G.findKey(o,u);(!d||o[d]===void 0||c===!0||c===void 0&&o[d]!==!1)&&(o[d||l]=ed(s))}const a=(s,l)=>G.forEach(s,(c,u)=>i(c,u,l));if(G.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(G.isString(t)&&(t=t.trim())&&!vV(t))a(hV(t),n);else if(G.isHeaders(t))for(const[s,l]of t.entries())i(l,s,r);else t!=null&&i(n,t,r);return this}get(t,n){if(t=il(t),t){const r=G.findKey(this,t);if(r){const o=this[r];if(!n)return o;if(n===!0)return mV(o);if(G.isFunction(n))return n.call(this,o,r);if(G.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=il(t),t){const r=G.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Bg(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let o=!1;function i(a){if(a=il(a),a){const s=G.findKey(r,a);s&&(!n||Bg(r,r[s],s,n))&&(delete r[s],o=!0)}}return G.isArray(t)?t.forEach(i):i(t),o}clear(t){const n=Object.keys(this);let r=n.length,o=!1;for(;r--;){const i=n[r];(!t||Bg(this,this[i],i,t,!0))&&(delete this[i],o=!0)}return o}normalize(t){const n=this,r={};return G.forEach(this,(o,i)=>{const a=G.findKey(r,i);if(a){n[a]=ed(o),delete n[i];return}const s=t?yV(i):String(i).trim();s!==i&&delete n[i],n[s]=ed(o),r[s]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return G.forEach(this,(r,o)=>{r!=null&&r!==!1&&(n[o]=t&&G.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(o=>r.set(o)),r}static accessor(t){const r=(this[Xx]=this[Xx]={accessors:{}}).accessors,o=this.prototype;function i(a){const s=il(a);r[s]||(bV(o,a),r[s]=!0)}return G.isArray(t)?t.forEach(i):i(t),this}}zn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);G.reduceDescriptors(zn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});G.freezeMethods(zn);function zg(e,t){const n=this||Lc,r=t||n,o=zn.from(r.headers);let i=r.data;return G.forEach(e,function(s){i=s.call(n,i,o.normalize(),t?t.status:void 0)}),o.normalize(),i}function o3(e){return!!(e&&e.__CANCEL__)}function Ls(e,t,n){ze.call(this,e??"canceled",ze.ERR_CANCELED,t,n),this.name="CanceledError"}G.inherits(Ls,ze,{__CANCEL__:!0});function i3(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new ze("Request failed with status code "+n.status,[ze.ERR_BAD_REQUEST,ze.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function xV(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function SV(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o=0,i=0,a;return t=t!==void 0?t:1e3,function(l){const c=Date.now(),u=r[i];a||(a=c),n[o]=l,r[o]=c;let d=i,f=0;for(;d!==o;)f+=n[d++],d=d%e;if(o=(o+1)%e,o===i&&(i=(i+1)%e),c-a{n=u,o=null,i&&(clearTimeout(i),i=null),e.apply(null,c)};return[(...c)=>{const u=Date.now(),d=u-n;d>=r?a(c,u):(o=c,i||(i=setTimeout(()=>{i=null,a(o)},r-d)))},()=>o&&a(o)]}const Xd=(e,t,n=3)=>{let r=0;const o=SV(50,250);return wV(i=>{const a=i.loaded,s=i.lengthComputable?i.total:void 0,l=a-r,c=o(l),u=a<=s;r=a;const d={loaded:a,total:s,progress:s?a/s:void 0,bytes:l,rate:c||void 0,estimated:c&&s&&u?(s-a)/c:void 0,event:i,lengthComputable:s!=null,[t?"download":"upload"]:!0};e(d)},n)},Jx=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},eS=e=>(...t)=>G.asap(()=>e(...t)),CV=Bn.hasStandardBrowserEnv?function(){const t=Bn.navigator&&/(msie|trident)/i.test(Bn.navigator.userAgent),n=document.createElement("a");let r;function o(i){let a=i;return t&&(n.setAttribute("href",a),a=n.href),n.setAttribute("href",a),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=o(window.location.href),function(a){const s=G.isString(a)?o(a):a;return s.protocol===r.protocol&&s.host===r.host}}():function(){return function(){return!0}}(),_V=Bn.hasStandardBrowserEnv?{write(e,t,n,r,o,i){const a=[e+"="+encodeURIComponent(t)];G.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),G.isString(r)&&a.push("path="+r),G.isString(o)&&a.push("domain="+o),i===!0&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function RV(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function TV(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function a3(e,t){return e&&!RV(t)?TV(e,t):t}const tS=e=>e instanceof zn?{...e}:e;function sa(e,t){t=t||{};const n={};function r(c,u,d){return G.isPlainObject(c)&&G.isPlainObject(u)?G.merge.call({caseless:d},c,u):G.isPlainObject(u)?G.merge({},u):G.isArray(u)?u.slice():u}function o(c,u,d){if(G.isUndefined(u)){if(!G.isUndefined(c))return r(void 0,c,d)}else return r(c,u,d)}function i(c,u){if(!G.isUndefined(u))return r(void 0,u)}function a(c,u){if(G.isUndefined(u)){if(!G.isUndefined(c))return r(void 0,c)}else return r(void 0,u)}function s(c,u,d){if(d in t)return r(c,u);if(d in e)return r(void 0,c)}const l={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(c,u)=>o(tS(c),tS(u),!0)};return G.forEach(Object.keys(Object.assign({},e,t)),function(u){const d=l[u]||o,f=d(e[u],t[u],u);G.isUndefined(f)&&d!==s||(n[u]=f)}),n}const s3=e=>{const t=sa({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:o,xsrfCookieName:i,headers:a,auth:s}=t;t.headers=a=zn.from(a),t.url=t3(a3(t.baseURL,t.url),e.params,e.paramsSerializer),s&&a.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):"")));let l;if(G.isFormData(n)){if(Bn.hasStandardBrowserEnv||Bn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if((l=a.getContentType())!==!1){const[c,...u]=l?l.split(";").map(d=>d.trim()).filter(Boolean):[];a.setContentType([c||"multipart/form-data",...u].join("; "))}}if(Bn.hasStandardBrowserEnv&&(r&&G.isFunction(r)&&(r=r(t)),r||r!==!1&&CV(t.url))){const c=o&&i&&_V.read(i);c&&a.set(o,c)}return t},PV=typeof XMLHttpRequest<"u",kV=PV&&function(e){return new Promise(function(n,r){const o=s3(e);let i=o.data;const a=zn.from(o.headers).normalize();let{responseType:s,onUploadProgress:l,onDownloadProgress:c}=o,u,d,f,p,h;function y(){p&&p(),h&&h(),o.cancelToken&&o.cancelToken.unsubscribe(u),o.signal&&o.signal.removeEventListener("abort",u)}let C=new XMLHttpRequest;C.open(o.method.toUpperCase(),o.url,!0),C.timeout=o.timeout;function v(){if(!C)return;const m=zn.from("getAllResponseHeaders"in C&&C.getAllResponseHeaders()),_={data:!s||s==="text"||s==="json"?C.responseText:C.response,status:C.status,statusText:C.statusText,headers:m,config:e,request:C};i3(function(k){n(k),y()},function(k){r(k),y()},_),C=null}"onloadend"in C?C.onloadend=v:C.onreadystatechange=function(){!C||C.readyState!==4||C.status===0&&!(C.responseURL&&C.responseURL.indexOf("file:")===0)||setTimeout(v)},C.onabort=function(){C&&(r(new ze("Request aborted",ze.ECONNABORTED,e,C)),C=null)},C.onerror=function(){r(new ze("Network Error",ze.ERR_NETWORK,e,C)),C=null},C.ontimeout=function(){let w=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const _=o.transitional||n3;o.timeoutErrorMessage&&(w=o.timeoutErrorMessage),r(new ze(w,_.clarifyTimeoutError?ze.ETIMEDOUT:ze.ECONNABORTED,e,C)),C=null},i===void 0&&a.setContentType(null),"setRequestHeader"in C&&G.forEach(a.toJSON(),function(w,_){C.setRequestHeader(_,w)}),G.isUndefined(o.withCredentials)||(C.withCredentials=!!o.withCredentials),s&&s!=="json"&&(C.responseType=o.responseType),c&&([f,h]=Xd(c,!0),C.addEventListener("progress",f)),l&&C.upload&&([d,p]=Xd(l),C.upload.addEventListener("progress",d),C.upload.addEventListener("loadend",p)),(o.cancelToken||o.signal)&&(u=m=>{C&&(r(!m||m.type?new Ls(null,e,C):m),C.abort(),C=null)},o.cancelToken&&o.cancelToken.subscribe(u),o.signal&&(o.signal.aborted?u():o.signal.addEventListener("abort",u)));const S=xV(o.url);if(S&&Bn.protocols.indexOf(S)===-1){r(new ze("Unsupported protocol "+S+":",ze.ERR_BAD_REQUEST,e));return}C.send(i||null)})},$V=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,o;const i=function(c){if(!o){o=!0,s();const u=c instanceof Error?c:this.reason;r.abort(u instanceof ze?u:new Ls(u instanceof Error?u.message:u))}};let a=t&&setTimeout(()=>{a=null,i(new ze(`timeout ${t} of ms exceeded`,ze.ETIMEDOUT))},t);const s=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(c=>{c.unsubscribe?c.unsubscribe(i):c.removeEventListener("abort",i)}),e=null)};e.forEach(c=>c.addEventListener("abort",i));const{signal:l}=r;return l.unsubscribe=()=>G.asap(s),l}},EV=function*(e,t){let n=e.byteLength;if(n{const o=MV(e,t);let i=0,a,s=l=>{a||(a=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await o.next();if(c){s(),l.close();return}let d=u.byteLength;if(n){let f=i+=d;n(f)}l.enqueue(new Uint8Array(u))}catch(c){throw s(c),c}},cancel(l){return s(l),o.return()}},{highWaterMark:2})},Pp=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",l3=Pp&&typeof ReadableStream=="function",OV=Pp&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),c3=(e,...t)=>{try{return!!e(...t)}catch{return!1}},LV=l3&&c3(()=>{let e=!1;const t=new Request(Bn.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),rS=64*1024,Wm=l3&&c3(()=>G.isReadableStream(new Response("").body)),Jd={stream:Wm&&(e=>e.body)};Pp&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!Jd[t]&&(Jd[t]=G.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new ze(`Response type '${t}' is not supported`,ze.ERR_NOT_SUPPORT,r)})})})(new Response);const AV=async e=>{if(e==null)return 0;if(G.isBlob(e))return e.size;if(G.isSpecCompliantForm(e))return(await new Request(Bn.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(G.isArrayBufferView(e)||G.isArrayBuffer(e))return e.byteLength;if(G.isURLSearchParams(e)&&(e=e+""),G.isString(e))return(await OV(e)).byteLength},NV=async(e,t)=>{const n=G.toFiniteNumber(e.getContentLength());return n??AV(t)},DV=Pp&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:i,timeout:a,onDownloadProgress:s,onUploadProgress:l,responseType:c,headers:u,withCredentials:d="same-origin",fetchOptions:f}=s3(e);c=c?(c+"").toLowerCase():"text";let p=$V([o,i&&i.toAbortSignal()],a),h;const y=p&&p.unsubscribe&&(()=>{p.unsubscribe()});let C;try{if(l&&LV&&n!=="get"&&n!=="head"&&(C=await NV(u,r))!==0){let _=new Request(t,{method:"POST",body:r,duplex:"half"}),R;if(G.isFormData(r)&&(R=_.headers.get("content-type"))&&u.setContentType(R),_.body){const[k,T]=Jx(C,Xd(eS(l)));r=nS(_.body,rS,k,T)}}G.isString(d)||(d=d?"include":"omit");const v="credentials"in Request.prototype;h=new Request(t,{...f,signal:p,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:v?d:void 0});let S=await fetch(h);const m=Wm&&(c==="stream"||c==="response");if(Wm&&(s||m&&y)){const _={};["status","statusText","headers"].forEach(P=>{_[P]=S[P]});const R=G.toFiniteNumber(S.headers.get("content-length")),[k,T]=s&&Jx(R,Xd(eS(s),!0))||[];S=new Response(nS(S.body,rS,k,()=>{T&&T(),y&&y()}),_)}c=c||"text";let w=await Jd[G.findKey(Jd,c)||"text"](S,e);return!m&&y&&y(),await new Promise((_,R)=>{i3(_,R,{data:w,headers:zn.from(S.headers),status:S.status,statusText:S.statusText,config:e,request:h})})}catch(v){throw y&&y(),v&&v.name==="TypeError"&&/fetch/i.test(v.message)?Object.assign(new ze("Network Error",ze.ERR_NETWORK,e,h),{cause:v.cause||v}):ze.from(v,v&&v.code,e,h)}}),Um={http:XH,xhr:kV,fetch:DV};G.forEach(Um,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const oS=e=>`- ${e}`,jV=e=>G.isFunction(e)||e===null||e===!1,u3={getAdapter:e=>{e=G.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let i=0;i`adapter ${s} `+(l===!1?"is not supported by the environment":"is not available in the build"));let a=t?i.length>1?`since : -`+i.map(oS).join(` -`):" "+oS(i[0]):"as no adapter specified";throw new ze("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return r},adapters:Um};function Hg(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ls(null,e)}function iS(e){return Hg(e),e.headers=zn.from(e.headers),e.data=zg.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),u3.getAdapter(e.adapter||Lc.adapter)(e).then(function(r){return Hg(e),r.data=zg.call(e,e.transformResponse,r),r.headers=zn.from(r.headers),r},function(r){return o3(r)||(Hg(e),r&&r.response&&(r.response.data=zg.call(e,e.transformResponse,r.response),r.response.headers=zn.from(r.response.headers))),Promise.reject(r)})}const d3="1.7.7",Y1={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Y1[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const aS={};Y1.transitional=function(t,n,r){function o(i,a){return"[Axios v"+d3+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,s)=>{if(t===!1)throw new ze(o(a," has been removed"+(n?" in "+n:"")),ze.ERR_DEPRECATED);return n&&!aS[a]&&(aS[a]=!0,console.warn(o(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,s):!0}};function FV(e,t,n){if(typeof e!="object")throw new ze("options must be an object",ze.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const i=r[o],a=t[i];if(a){const s=e[i],l=s===void 0||a(s,i,e);if(l!==!0)throw new ze("option "+i+" must be "+l,ze.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new ze("Unknown option "+i,ze.ERR_BAD_OPTION)}}const Gm={assertOptions:FV,validators:Y1},No=Gm.validators;class Wi{constructor(t){this.defaults=t,this.interceptors={request:new Yx,response:new Yx}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let o;Error.captureStackTrace?Error.captureStackTrace(o={}):o=new Error;const i=o.stack?o.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=sa(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:i}=n;r!==void 0&&Gm.assertOptions(r,{silentJSONParsing:No.transitional(No.boolean),forcedJSONParsing:No.transitional(No.boolean),clarifyTimeoutError:No.transitional(No.boolean)},!1),o!=null&&(G.isFunction(o)?n.paramsSerializer={serialize:o}:Gm.assertOptions(o,{encode:No.function,serialize:No.function},!0)),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&G.merge(i.common,i[n.method]);i&&G.forEach(["delete","get","head","post","put","patch","common"],h=>{delete i[h]}),n.headers=zn.concat(a,i);const s=[];let l=!0;this.interceptors.request.forEach(function(y){typeof y.runWhen=="function"&&y.runWhen(n)===!1||(l=l&&y.synchronous,s.unshift(y.fulfilled,y.rejected))});const c=[];this.interceptors.response.forEach(function(y){c.push(y.fulfilled,y.rejected)});let u,d=0,f;if(!l){const h=[iS.bind(this),void 0];for(h.unshift.apply(h,s),h.push.apply(h,c),f=h.length,u=Promise.resolve(n);d{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](o);r._listeners=null}),this.promise.then=o=>{let i;const a=new Promise(s=>{r.subscribe(s),i=s}).then(o);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,s){r.reason||(r.reason=new Ls(i,a,s),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new X1(function(o){t=o}),cancel:t}}}function BV(e){return function(n){return e.apply(null,n)}}function zV(e){return G.isObject(e)&&e.isAxiosError===!0}const qm={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(qm).forEach(([e,t])=>{qm[t]=e});function f3(e){const t=new Wi(e),n=VR(Wi.prototype.request,t);return G.extend(n,Wi.prototype,t,{allOwnKeys:!0}),G.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return f3(sa(e,o))},n}const Bt=f3(Lc);Bt.Axios=Wi;Bt.CanceledError=Ls;Bt.CancelToken=X1;Bt.isCancel=o3;Bt.VERSION=d3;Bt.toFormData=Tp;Bt.AxiosError=ze;Bt.Cancel=Bt.CanceledError;Bt.all=function(t){return Promise.all(t)};Bt.spread=BV;Bt.isAxiosError=zV;Bt.mergeConfig=sa;Bt.AxiosHeaders=zn;Bt.formToJSON=e=>r3(G.isHTMLForm(e)?new FormData(e):e);Bt.getAdapter=u3.getAdapter;Bt.HttpStatusCode=qm;Bt.default=Bt;var HV=Error,VV=EvalError,WV=RangeError,UV=ReferenceError,p3=SyntaxError,Ac=TypeError,GV=URIError,qV=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},n=Symbol("test"),r=Object(n);if(typeof n=="string"||Object.prototype.toString.call(n)!=="[object Symbol]"||Object.prototype.toString.call(r)!=="[object Symbol]")return!1;var o=42;t[n]=o;for(n in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var i=Object.getOwnPropertySymbols(t);if(i.length!==1||i[0]!==n||!Object.prototype.propertyIsEnumerable.call(t,n))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var a=Object.getOwnPropertyDescriptor(t,n);if(a.value!==o||a.enumerable!==!0)return!1}return!0},sS=typeof Symbol<"u"&&Symbol,KV=qV,ZV=function(){return typeof sS!="function"||typeof Symbol!="function"||typeof sS("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:KV()},Vg={__proto__:null,foo:{}},QV=Object,YV=function(){return{__proto__:Vg}.foo===Vg.foo&&!(Vg instanceof QV)},XV="Function.prototype.bind called on incompatible ",JV=Object.prototype.toString,eW=Math.max,tW="[object Function]",lS=function(t,n){for(var r=[],o=0;o"u"||!Yt?Qe:Yt(Uint8Array),Gi={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Qe:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Qe:ArrayBuffer,"%ArrayIteratorPrototype%":wa&&Yt?Yt([][Symbol.iterator]()):Qe,"%AsyncFromSyncIteratorPrototype%":Qe,"%AsyncFunction%":Ra,"%AsyncGenerator%":Ra,"%AsyncGeneratorFunction%":Ra,"%AsyncIteratorPrototype%":Ra,"%Atomics%":typeof Atomics>"u"?Qe:Atomics,"%BigInt%":typeof BigInt>"u"?Qe:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Qe:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Qe:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Qe:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":uW,"%eval%":eval,"%EvalError%":dW,"%Float32Array%":typeof Float32Array>"u"?Qe:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Qe:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Qe:FinalizationRegistry,"%Function%":g3,"%GeneratorFunction%":Ra,"%Int8Array%":typeof Int8Array>"u"?Qe:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Qe:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Qe:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":wa&&Yt?Yt(Yt([][Symbol.iterator]())):Qe,"%JSON%":typeof JSON=="object"?JSON:Qe,"%Map%":typeof Map>"u"?Qe:Map,"%MapIteratorPrototype%":typeof Map>"u"||!wa||!Yt?Qe:Yt(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Qe:Promise,"%Proxy%":typeof Proxy>"u"?Qe:Proxy,"%RangeError%":fW,"%ReferenceError%":pW,"%Reflect%":typeof Reflect>"u"?Qe:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Qe:Set,"%SetIteratorPrototype%":typeof Set>"u"||!wa||!Yt?Qe:Yt(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Qe:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":wa&&Yt?Yt(""[Symbol.iterator]()):Qe,"%Symbol%":wa?Symbol:Qe,"%SyntaxError%":Ss,"%ThrowTypeError%":hW,"%TypedArray%":vW,"%TypeError%":es,"%Uint8Array%":typeof Uint8Array>"u"?Qe:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Qe:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Qe:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Qe:Uint32Array,"%URIError%":gW,"%WeakMap%":typeof WeakMap>"u"?Qe:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Qe:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Qe:WeakSet};if(Yt)try{null.error}catch(e){var yW=Yt(Yt(e));Gi["%Error.prototype%"]=yW}var bW=function e(t){var n;if(t==="%AsyncFunction%")n=Wg("async function () {}");else if(t==="%GeneratorFunction%")n=Wg("function* () {}");else if(t==="%AsyncGeneratorFunction%")n=Wg("async function* () {}");else if(t==="%AsyncGenerator%"){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if(t==="%AsyncIteratorPrototype%"){var o=e("%AsyncGenerator%");o&&Yt&&(n=Yt(o.prototype))}return Gi[t]=n,n},cS={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Nc=J1,ef=cW,xW=Nc.call(Function.call,Array.prototype.concat),SW=Nc.call(Function.apply,Array.prototype.splice),uS=Nc.call(Function.call,String.prototype.replace),tf=Nc.call(Function.call,String.prototype.slice),wW=Nc.call(Function.call,RegExp.prototype.exec),CW=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,_W=/\\(\\)?/g,RW=function(t){var n=tf(t,0,1),r=tf(t,-1);if(n==="%"&&r!=="%")throw new Ss("invalid intrinsic syntax, expected closing `%`");if(r==="%"&&n!=="%")throw new Ss("invalid intrinsic syntax, expected opening `%`");var o=[];return uS(t,CW,function(i,a,s,l){o[o.length]=s?uS(l,_W,"$1"):a||i}),o},TW=function(t,n){var r=t,o;if(ef(cS,r)&&(o=cS[r],r="%"+o[0]+"%"),ef(Gi,r)){var i=Gi[r];if(i===Ra&&(i=bW(r)),typeof i>"u"&&!n)throw new es("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:o,name:r,value:i}}throw new Ss("intrinsic "+t+" does not exist!")},As=function(t,n){if(typeof t!="string"||t.length===0)throw new es("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof n!="boolean")throw new es('"allowMissing" argument must be a boolean');if(wW(/^%?[^%]*%?$/,t)===null)throw new Ss("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=RW(t),o=r.length>0?r[0]:"",i=TW("%"+o+"%",n),a=i.name,s=i.value,l=!1,c=i.alias;c&&(o=c[0],SW(r,xW([0,1],c)));for(var u=1,d=!0;u=r.length){var y=Ui(s,f);d=!!y,d&&"get"in y&&!("originalValue"in y.get)?s=y.get:s=s[f]}else d=ef(s,f),s=s[f];d&&!l&&(Gi[a]=s)}}return s},h3={exports:{}},Gg,dS;function ev(){if(dS)return Gg;dS=1;var e=As,t=e("%Object.defineProperty%",!0)||!1;if(t)try{t({},"a",{value:1})}catch{t=!1}return Gg=t,Gg}var PW=As,td=PW("%Object.getOwnPropertyDescriptor%",!0);if(td)try{td([],"length")}catch{td=null}var m3=td,fS=ev(),kW=p3,Ca=Ac,pS=m3,$W=function(t,n,r){if(!t||typeof t!="object"&&typeof t!="function")throw new Ca("`obj` must be an object or a function`");if(typeof n!="string"&&typeof n!="symbol")throw new Ca("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new Ca("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new Ca("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new Ca("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new Ca("`loose`, if provided, must be a boolean");var o=arguments.length>3?arguments[3]:null,i=arguments.length>4?arguments[4]:null,a=arguments.length>5?arguments[5]:null,s=arguments.length>6?arguments[6]:!1,l=!!pS&&pS(t,n);if(fS)fS(t,n,{configurable:a===null&&l?l.configurable:!a,enumerable:o===null&&l?l.enumerable:!o,value:r,writable:i===null&&l?l.writable:!i});else if(s||!o&&!i&&!a)t[n]=r;else throw new kW("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Km=ev(),v3=function(){return!!Km};v3.hasArrayLengthDefineBug=function(){if(!Km)return null;try{return Km([],"length",{value:1}).length!==1}catch{return!0}};var EW=v3,MW=As,gS=$W,IW=EW(),hS=m3,mS=Ac,OW=MW("%Math.floor%"),LW=function(t,n){if(typeof t!="function")throw new mS("`fn` is not a function");if(typeof n!="number"||n<0||n>4294967295||OW(n)!==n)throw new mS("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],o=!0,i=!0;if("length"in t&&hS){var a=hS(t,"length");a&&!a.configurable&&(o=!1),a&&!a.writable&&(i=!1)}return(o||i||!r)&&(IW?gS(t,"length",n,!0,!0):gS(t,"length",n)),t};(function(e){var t=J1,n=As,r=LW,o=Ac,i=n("%Function.prototype.apply%"),a=n("%Function.prototype.call%"),s=n("%Reflect.apply%",!0)||t.call(a,i),l=ev(),c=n("%Math.max%");e.exports=function(f){if(typeof f!="function")throw new o("a function is required");var p=s(t,a,arguments);return r(p,1+c(0,f.length-(arguments.length-1)),!0)};var u=function(){return s(t,i,arguments)};l?l(e.exports,"apply",{value:u}):e.exports.apply=u})(h3);var AW=h3.exports,y3=As,b3=AW,NW=b3(y3("String.prototype.indexOf")),DW=function(t,n){var r=y3(t,!!n);return typeof r=="function"&&NW(t,".prototype.")>-1?b3(r):r};const jW={},FW=Object.freeze(Object.defineProperty({__proto__:null,default:jW},Symbol.toStringTag,{value:"Module"})),BW=H3(FW);var tv=typeof Map=="function"&&Map.prototype,qg=Object.getOwnPropertyDescriptor&&tv?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,nf=tv&&qg&&typeof qg.get=="function"?qg.get:null,vS=tv&&Map.prototype.forEach,nv=typeof Set=="function"&&Set.prototype,Kg=Object.getOwnPropertyDescriptor&&nv?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,rf=nv&&Kg&&typeof Kg.get=="function"?Kg.get:null,yS=nv&&Set.prototype.forEach,zW=typeof WeakMap=="function"&&WeakMap.prototype,Al=zW?WeakMap.prototype.has:null,HW=typeof WeakSet=="function"&&WeakSet.prototype,Nl=HW?WeakSet.prototype.has:null,VW=typeof WeakRef=="function"&&WeakRef.prototype,bS=VW?WeakRef.prototype.deref:null,WW=Boolean.prototype.valueOf,UW=Object.prototype.toString,GW=Function.prototype.toString,qW=String.prototype.match,rv=String.prototype.slice,ei=String.prototype.replace,KW=String.prototype.toUpperCase,xS=String.prototype.toLowerCase,x3=RegExp.prototype.test,SS=Array.prototype.concat,Xr=Array.prototype.join,ZW=Array.prototype.slice,wS=Math.floor,Zm=typeof BigInt=="function"?BigInt.prototype.valueOf:null,Zg=Object.getOwnPropertySymbols,Qm=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,ws=typeof Symbol=="function"&&typeof Symbol.iterator=="object",Sn=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===ws||!0)?Symbol.toStringTag:null,S3=Object.prototype.propertyIsEnumerable,CS=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function _S(e,t){if(e===1/0||e===-1/0||e!==e||e&&e>-1e3&&e<1e3||x3.call(/e/,t))return t;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof e=="number"){var r=e<0?-wS(-e):wS(e);if(r!==e){var o=String(r),i=rv.call(t,o.length+1);return ei.call(o,n,"$&_")+"."+ei.call(ei.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return ei.call(t,n,"$&_")}var Ym=BW,RS=Ym.custom,TS=_3(RS)?RS:null,w3={__proto__:null,double:'"',single:"'"},QW={__proto__:null,double:/(["\\])/g,single:/(['\\])/g},YW=function e(t,n,r,o){var i=n||{};if(ho(i,"quoteStyle")&&!ho(w3,i.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(ho(i,"maxStringLength")&&(typeof i.maxStringLength=="number"?i.maxStringLength<0&&i.maxStringLength!==1/0:i.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var a=ho(i,"customInspect")?i.customInspect:!0;if(typeof a!="boolean"&&a!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(ho(i,"indent")&&i.indent!==null&&i.indent!==" "&&!(parseInt(i.indent,10)===i.indent&&i.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(ho(i,"numericSeparator")&&typeof i.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var s=i.numericSeparator;if(typeof t>"u")return"undefined";if(t===null)return"null";if(typeof t=="boolean")return t?"true":"false";if(typeof t=="string")return T3(t,i);if(typeof t=="number"){if(t===0)return 1/0/t>0?"0":"-0";var l=String(t);return s?_S(t,l):l}if(typeof t=="bigint"){var c=String(t)+"n";return s?_S(t,c):c}var u=typeof i.depth>"u"?5:i.depth;if(typeof r>"u"&&(r=0),r>=u&&u>0&&typeof t=="object")return Xm(t)?"[Array]":"[Object]";var d=hU(i,r);if(typeof o>"u")o=[];else if(R3(o,t)>=0)return"[Circular]";function f(O,D,M){if(D&&(o=ZW.call(o),o.push(D)),M){var A={depth:i.depth};return ho(i,"quoteStyle")&&(A.quoteStyle=i.quoteStyle),e(O,A,r+1,o)}return e(O,i,r+1,o)}if(typeof t=="function"&&!PS(t)){var p=aU(t),h=Cu(t,f);return"[Function"+(p?": "+p:" (anonymous)")+"]"+(h.length>0?" { "+Xr.call(h,", ")+" }":"")}if(_3(t)){var y=ws?ei.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):Qm.call(t);return typeof t=="object"&&!ws?al(y):y}if(fU(t)){for(var C="<"+xS.call(String(t.nodeName)),v=t.attributes||[],S=0;S",C}if(Xm(t)){if(t.length===0)return"[]";var m=Cu(t,f);return d&&!gU(m)?"["+Jm(m,d)+"]":"[ "+Xr.call(m,", ")+" ]"}if(eU(t)){var w=Cu(t,f);return!("cause"in Error.prototype)&&"cause"in t&&!S3.call(t,"cause")?"{ ["+String(t)+"] "+Xr.call(SS.call("[cause]: "+f(t.cause),w),", ")+" }":w.length===0?"["+String(t)+"]":"{ ["+String(t)+"] "+Xr.call(w,", ")+" }"}if(typeof t=="object"&&a){if(TS&&typeof t[TS]=="function"&&Ym)return Ym(t,{depth:u-r});if(a!=="symbol"&&typeof t.inspect=="function")return t.inspect()}if(sU(t)){var _=[];return vS&&vS.call(t,function(O,D){_.push(f(D,t,!0)+" => "+f(O,t))}),kS("Map",nf.call(t),_,d)}if(uU(t)){var R=[];return yS&&yS.call(t,function(O){R.push(f(O,t))}),kS("Set",rf.call(t),R,d)}if(lU(t))return Qg("WeakMap");if(dU(t))return Qg("WeakSet");if(cU(t))return Qg("WeakRef");if(nU(t))return al(f(Number(t)));if(oU(t))return al(f(Zm.call(t)));if(rU(t))return al(WW.call(t));if(tU(t))return al(f(String(t)));if(typeof window<"u"&&t===window)return"{ [object Window] }";if(typeof globalThis<"u"&&t===globalThis||typeof jl<"u"&&t===jl)return"{ [object globalThis] }";if(!JW(t)&&!PS(t)){var k=Cu(t,f),T=CS?CS(t)===Object.prototype:t instanceof Object||t.constructor===Object,P=t instanceof Object?"":"null prototype",x=!T&&Sn&&Object(t)===t&&Sn in t?rv.call(Ci(t),8,-1):P?"Object":"",$=T||typeof t.constructor!="function"?"":t.constructor.name?t.constructor.name+" ":"",I=$+(x||P?"["+Xr.call(SS.call([],x||[],P||[]),": ")+"] ":"");return k.length===0?I+"{}":d?I+"{"+Jm(k,d)+"}":I+"{ "+Xr.call(k,", ")+" }"}return String(t)};function C3(e,t,n){var r=n.quoteStyle||t,o=w3[r];return o+e+o}function XW(e){return ei.call(String(e),/"/g,""")}function Xm(e){return Ci(e)==="[object Array]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function JW(e){return Ci(e)==="[object Date]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function PS(e){return Ci(e)==="[object RegExp]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function eU(e){return Ci(e)==="[object Error]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function tU(e){return Ci(e)==="[object String]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function nU(e){return Ci(e)==="[object Number]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function rU(e){return Ci(e)==="[object Boolean]"&&(!Sn||!(typeof e=="object"&&Sn in e))}function _3(e){if(ws)return e&&typeof e=="object"&&e instanceof Symbol;if(typeof e=="symbol")return!0;if(!e||typeof e!="object"||!Qm)return!1;try{return Qm.call(e),!0}catch{}return!1}function oU(e){if(!e||typeof e!="object"||!Zm)return!1;try{return Zm.call(e),!0}catch{}return!1}var iU=Object.prototype.hasOwnProperty||function(e){return e in this};function ho(e,t){return iU.call(e,t)}function Ci(e){return UW.call(e)}function aU(e){if(e.name)return e.name;var t=qW.call(GW.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}function R3(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;nt.maxStringLength){var n=e.length-t.maxStringLength,r="... "+n+" more character"+(n>1?"s":"");return T3(rv.call(e,0,t.maxStringLength),t)+r}var o=QW[t.quoteStyle||"single"];o.lastIndex=0;var i=ei.call(ei.call(e,o,"\\$1"),/[\x00-\x1f]/g,pU);return C3(i,"single",t)}function pU(e){var t=e.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return n?"\\"+n:"\\x"+(t<16?"0":"")+KW.call(t.toString(16))}function al(e){return"Object("+e+")"}function Qg(e){return e+" { ? }"}function kS(e,t,n,r){var o=r?Jm(n,r):Xr.call(n,", ");return e+" ("+t+") {"+o+"}"}function gU(e){for(var t=0;t=0)return!1;return!0}function hU(e,t){var n;if(e.indent===" ")n=" ";else if(typeof e.indent=="number"&&e.indent>0)n=Xr.call(Array(e.indent+1)," ");else return null;return{base:n,prev:Xr.call(Array(t+1),n)}}function Jm(e,t){if(e.length===0)return"";var n=` -`+t.prev+t.base;return n+Xr.call(e,","+n)+` -`+t.prev}function Cu(e,t){var n=Xm(e),r=[];if(n){r.length=e.length;for(var o=0;o1;){var n=t.pop(),r=n.obj[n.prop];if(Ii(r)){for(var o=[],i=0;i=Jg?a.slice(l,l+Jg):a,u=[],d=0;d=48&&f<=57||f>=65&&f<=90||f>=97&&f<=122||i===EU.RFC1738&&(f===40||f===41)){u[u.length]=c.charAt(d);continue}if(f<128){u[u.length]=qr[f];continue}if(f<2048){u[u.length]=qr[192|f>>6]+qr[128|f&63];continue}if(f<55296||f>=57344){u[u.length]=qr[224|f>>12]+qr[128|f>>6&63]+qr[128|f&63];continue}d+=1,f=65536+((f&1023)<<10|c.charCodeAt(d)&1023),u[u.length]=qr[240|f>>18]+qr[128|f>>12&63]+qr[128|f>>6&63]+qr[128|f&63]}s+=u.join("")}return s},NU=function(t){for(var n=[{obj:{o:t},prop:"o"}],r=[],o=0;o"u"&&(_=0)}if(typeof u=="function"?m=u(n,m):m instanceof Date?m=p(m):r==="comma"&&Zr(m)&&(m=nd.maybeMap(m,function(B){return B instanceof Date?p(B):B})),m===null){if(a)return c&&!C?c(n,Wt.encoder,v,"key",h):n;m=""}if(WU(m)||nd.isBuffer(m)){if(c){var T=C?n:c(n,Wt.encoder,v,"key",h);return[y(T)+"="+y(c(m,Wt.encoder,v,"value",h))]}return[y(n)+"="+y(String(m))]}var P=[];if(typeof m>"u")return P;var x;if(r==="comma"&&Zr(m))C&&c&&(m=nd.maybeMap(m,c)),x=[{value:m.length>0?m.join(",")||null:void 0}];else if(Zr(u))x=u;else{var $=Object.keys(m);x=d?$.sort(d):$}var I=l?n.replace(/\./g,"%2E"):n,O=o&&Zr(m)&&m.length===1?I+"[]":I;if(i&&Zr(m)&&m.length===0)return O+"[]";for(var D=0;D"u"?t.encodeDotInKeys===!0?!0:Wt.allowDots:!!t.allowDots;return{addQueryPrefix:typeof t.addQueryPrefix=="boolean"?t.addQueryPrefix:Wt.addQueryPrefix,allowDots:s,allowEmptyArrays:typeof t.allowEmptyArrays=="boolean"?!!t.allowEmptyArrays:Wt.allowEmptyArrays,arrayFormat:a,charset:n,charsetSentinel:typeof t.charsetSentinel=="boolean"?t.charsetSentinel:Wt.charsetSentinel,commaRoundTrip:t.commaRoundTrip,delimiter:typeof t.delimiter>"u"?Wt.delimiter:t.delimiter,encode:typeof t.encode=="boolean"?t.encode:Wt.encode,encodeDotInKeys:typeof t.encodeDotInKeys=="boolean"?t.encodeDotInKeys:Wt.encodeDotInKeys,encoder:typeof t.encoder=="function"?t.encoder:Wt.encoder,encodeValuesOnly:typeof t.encodeValuesOnly=="boolean"?t.encodeValuesOnly:Wt.encodeValuesOnly,filter:i,format:r,formatter:o,serializeDate:typeof t.serializeDate=="function"?t.serializeDate:Wt.serializeDate,skipNulls:typeof t.skipNulls=="boolean"?t.skipNulls:Wt.skipNulls,sort:typeof t.sort=="function"?t.sort:null,strictNullHandling:typeof t.strictNullHandling=="boolean"?t.strictNullHandling:Wt.strictNullHandling}},qU=function(e,t){var n=e,r=GU(t),o,i;typeof r.filter=="function"?(i=r.filter,n=i("",n)):Zr(r.filter)&&(i=r.filter,o=i);var a=[];if(typeof n!="object"||n===null)return"";var s=M3[r.arrayFormat],l=s==="comma"&&r.commaRoundTrip;o||(o=Object.keys(n)),r.sort&&o.sort(r.sort);for(var c=E3(),u=0;u0?p+f:""},Cs=$3,e0=Object.prototype.hasOwnProperty,KU=Array.isArray,Et={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:Cs.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1},ZU=function(e){return e.replace(/&#(\d+);/g,function(t,n){return String.fromCharCode(parseInt(n,10))})},O3=function(e,t){return e&&typeof e=="string"&&t.comma&&e.indexOf(",")>-1?e.split(","):e},QU="utf8=%26%2310003%3B",YU="utf8=%E2%9C%93",XU=function(t,n){var r={__proto__:null},o=n.ignoreQueryPrefix?t.replace(/^\?/,""):t;o=o.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var i=n.parameterLimit===1/0?void 0:n.parameterLimit,a=o.split(n.delimiter,i),s=-1,l,c=n.charset;if(n.charsetSentinel)for(l=0;l-1&&(h=KU(h)?[h]:h);var y=e0.call(r,p);y&&n.duplicates==="combine"?r[p]=Cs.combine(r[p],h):(!y||n.duplicates==="last")&&(r[p]=h)}return r},JU=function(e,t,n,r){for(var o=r?t:O3(t,n),i=e.length-1;i>=0;--i){var a,s=e[i];if(s==="[]"&&n.parseArrays)a=n.allowEmptyArrays&&(o===""||n.strictNullHandling&&o===null)?[]:[].concat(o);else{a=n.plainObjects?Object.create(null):{};var l=s.charAt(0)==="["&&s.charAt(s.length-1)==="]"?s.slice(1,-1):s,c=n.decodeDotInKeys?l.replace(/%2E/g,"."):l,u=parseInt(c,10);!n.parseArrays&&c===""?a={0:o}:!isNaN(u)&&s!==c&&String(u)===c&&u>=0&&n.parseArrays&&u<=n.arrayLimit?(a=[],a[u]=o):c!=="__proto__"&&(a[c]=o)}o=a}return o},eG=function(t,n,r,o){if(t){var i=r.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,a=/(\[[^[\]]*])/,s=/(\[[^[\]]*])/g,l=r.depth>0&&a.exec(i),c=l?i.slice(0,l.index):i,u=[];if(c){if(!r.plainObjects&&e0.call(Object.prototype,c)&&!r.allowPrototypes)return;u.push(c)}for(var d=0;r.depth>0&&(l=s.exec(i))!==null&&d"u"?Et.charset:t.charset,r=typeof t.duplicates>"u"?Et.duplicates:t.duplicates;if(r!=="combine"&&r!=="first"&&r!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var o=typeof t.allowDots>"u"?t.decodeDotInKeys===!0?!0:Et.allowDots:!!t.allowDots;return{allowDots:o,allowEmptyArrays:typeof t.allowEmptyArrays=="boolean"?!!t.allowEmptyArrays:Et.allowEmptyArrays,allowPrototypes:typeof t.allowPrototypes=="boolean"?t.allowPrototypes:Et.allowPrototypes,allowSparse:typeof t.allowSparse=="boolean"?t.allowSparse:Et.allowSparse,arrayLimit:typeof t.arrayLimit=="number"?t.arrayLimit:Et.arrayLimit,charset:n,charsetSentinel:typeof t.charsetSentinel=="boolean"?t.charsetSentinel:Et.charsetSentinel,comma:typeof t.comma=="boolean"?t.comma:Et.comma,decodeDotInKeys:typeof t.decodeDotInKeys=="boolean"?t.decodeDotInKeys:Et.decodeDotInKeys,decoder:typeof t.decoder=="function"?t.decoder:Et.decoder,delimiter:typeof t.delimiter=="string"||Cs.isRegExp(t.delimiter)?t.delimiter:Et.delimiter,depth:typeof t.depth=="number"||t.depth===!1?+t.depth:Et.depth,duplicates:r,ignoreQueryPrefix:t.ignoreQueryPrefix===!0,interpretNumericEntities:typeof t.interpretNumericEntities=="boolean"?t.interpretNumericEntities:Et.interpretNumericEntities,parameterLimit:typeof t.parameterLimit=="number"?t.parameterLimit:Et.parameterLimit,parseArrays:t.parseArrays!==!1,plainObjects:typeof t.plainObjects=="boolean"?t.plainObjects:Et.plainObjects,strictDepth:typeof t.strictDepth=="boolean"?!!t.strictDepth:Et.strictDepth,strictNullHandling:typeof t.strictNullHandling=="boolean"?t.strictNullHandling:Et.strictNullHandling}},nG=function(e,t){var n=tG(t);if(e===""||e===null||typeof e>"u")return n.plainObjects?Object.create(null):{};for(var r=typeof e=="string"?XU(e,n):e,o=n.plainObjects?Object.create(null):{},i=Object.keys(r),a=0;a{if(th.has(nh))return th.get(nh);const t=sG.parse(window.location.search,{ignoreQueryPrefix:!0}).debug==="true";return th.set(nh,t),t},lG=`{ - "nodes_info": [ - { - "identifier": 1, - "connected": null, - "infos": { - "has_error": false, - "error_reason": "", - "name": "querynode1", - "hardware_infos": { - "ip": "172.18.20.7:21123", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "system_info": { - "system_version": "34cf5352ec", - "deploy_mode": "STANDALONE[MOCK]", - "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", - "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", - "used_go_version": "go version go1.22.3 darwin/amd64" - }, - "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", - "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", - "type": "querynode", - "id": 1, - "system_configurations": { - "simd_type": "auto" - }, - "quota_metrics": { - "Hms": { - "ip": "172.18.20.7:21123", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "Rms": [ - { - "Label": "InsertConsumeThroughput", - "Rate": 0 - }, - { - "Label": "DeleteConsumeThroughput", - "Rate": 0 - } - ], - "Fgm": { - "MinFlowGraphChannel": "", - "MinFlowGraphTt": 18446744073709551615, - "NumFlowGraph": 0 - }, - "GrowingSegmentsSize": 0, - "Effect": { - "NodeID": 1, - "CollectionIDs": [] - }, - "DeleteBufferInfo": { - "CollectionDeleteBufferNum": {}, - "CollectionDeleteBufferSize": {} - } - }, - "collection_metrics": { - "CollectionRows": {} - } - } - }, - { - "identifier": 1, - "connected": [ - { - "connected_identifier": 1, - "type": "manage", - "target_type": "querynode" - } - ], - "infos": { - "has_error": false, - "error_reason": "", - "name": "querycoord1", - "hardware_infos": { - "ip": "172.18.20.7:19531", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "system_info": { - "system_version": "34cf5352ec", - "deploy_mode": "STANDALONE[MOCK]", - "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", - "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", - "used_go_version": "go version go1.22.3 darwin/amd64" - }, - "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", - "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", - "type": "querycoord", - "id": 1, - "system_configurations": { - "search_channel_prefix": "", - "search_result_channel_prefix": "" - } - } - }, - { - "identifier": 1, - "connected": null, - "infos": { - "has_error": false, - "error_reason": "", - "name": "datanode1", - "hardware_infos": { - "ip": "172.18.20.7:21124", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "system_info": { - "system_version": "34cf5352ec", - "deploy_mode": "STANDALONE[MOCK]", - "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", - "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", - "used_go_version": "go version go1.22.3 darwin/amd64" - }, - "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", - "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", - "type": "datanode", - "id": 1, - "system_configurations": { - "flush_insert_buffer_size": 16777216 - }, - "quota_metrics": { - "Hms": { - "ip": "172.18.20.7:21124", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "Rms": [ - { - "Label": "InsertConsumeThroughput", - "Rate": 0 - }, - { - "Label": "DeleteConsumeThroughput", - "Rate": 0 - } - ], - "Fgm": { - "MinFlowGraphChannel": "", - "MinFlowGraphTt": 18446744073709551615, - "NumFlowGraph": 0 - }, - "Effect": { - "NodeID": 1, - "CollectionIDs": [] - } - } - } - }, - { - "identifier": 1, - "connected": null, - "infos": { - "has_error": false, - "error_reason": "", - "name": "indexnode1", - "hardware_infos": { - "ip": "172.18.20.7:21121", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "system_info": { - "system_version": "34cf5352ec", - "deploy_mode": "STANDALONE[MOCK]", - "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", - "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", - "used_go_version": "go version go1.22.3 darwin/amd64" - }, - "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", - "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", - "type": "indexnode", - "id": 1, - "system_configurations": { - "minio_bucket_name": "a-bucket", - "simd_type": "auto" - } - } - }, - { - "identifier": 1, - "connected": [ - { - "connected_identifier": 1, - "type": "manage", - "target_type": "datanode" - }, - { - "connected_identifier": 1, - "type": "manage", - "target_type": "indexnode" - } - ], - "infos": { - "has_error": false, - "error_reason": "", - "name": "datacoord1", - "hardware_infos": { - "ip": "172.18.20.7:13333", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "system_info": { - "system_version": "34cf5352ec", - "deploy_mode": "STANDALONE[MOCK]", - "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", - "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", - "used_go_version": "go version go1.22.3 darwin/amd64" - }, - "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", - "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", - "type": "datacoord", - "id": 1, - "system_configurations": { - "segment_max_size": 1024 - }, - "quota_metrics": { - "TotalBinlogSize": 0, - "CollectionBinlogSize": {}, - "PartitionsBinlogSize": {}, - "CollectionL0RowCount": {} - }, - "collection_metrics": { - "Collections": {} - } - } - }, - { - "identifier": 1, - "connected": [], - "infos": { - "has_error": false, - "error_reason": "", - "name": "rootcoord1", - "hardware_infos": { - "ip": "172.18.20.7:53100", - "cpu_core_count": 8, - "cpu_core_usage": 0, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "system_info": { - "system_version": "34cf5352ec", - "deploy_mode": "STANDALONE[MOCK]", - "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", - "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", - "used_go_version": "go version go1.22.3 darwin/amd64" - }, - "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", - "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", - "type": "rootcoord", - "id": 1, - "system_configurations": { - "min_segment_size_to_enable_index": 1024 - } - } - }, - { - "identifier": 1, - "connected": [ - { - "connected_identifier": 1, - "type": "forward", - "target_type": "querycoord" - }, - { - "connected_identifier": 1, - "type": "forward", - "target_type": "datacoord" - }, - { - "connected_identifier": 1, - "type": "forward", - "target_type": "rootcoord" - } - ], - "infos": { - "has_error": false, - "error_reason": "", - "name": "proxy1", - "hardware_infos": { - "ip": "172.18.20.7:19529", - "cpu_core_count": 8, - "cpu_core_usage": 30.52004762940343, - "memory": 34359738368, - "memory_usage": 18362302464, - "disk": 104857600, - "disk_usage": 2097152 - }, - "system_info": { - "system_version": "34cf5352ec", - "deploy_mode": "STANDALONE[MOCK]", - "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", - "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", - "used_go_version": "go version go1.22.3 darwin/amd64" - }, - "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", - "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", - "type": "proxy", - "id": 1, - "system_configurations": { - "default_partition_name": "_default", - "default_index_name": "_default_idx" - }, - "quota_metrics": null - } - } - ] -}`,cG=`[ - { - "sdk_type": "python", - "sdk_version": "1.0.0", - "local_time": "2023-10-01T12:00:00Z", - "user": "user1", - "host": "127.0.0.1", - "reserved": { - "last_active_time": "" - } - }, - { - "sdk_type": "golang", - "sdk_version": "1.1.0", - "local_time": "2023-10-01T12:05:00Z", - "user": "user2", - "host": "127.0.0.2", - "reserved": { - "last_active_time": "" - } - } -]`,uG=` -{ - "metastore": { - "health_status": true, - "unhealthy_reason": "", - "members_health": [ - { - "endpoint": "http://127.0.0.1:2379", - "health": true - } - ], - "meta_type": "etcd" - }, - "mq": { - "health_status": false, - "unhealthy_reason": "health check failed, err: Get \\"http://localhost:80/admin/v2/brokers/health\\": dial tcp [::1]:80: connect: connection refused", - "members_health": null, - "mq_type": "pulsar" - } -} -`,dG=` -{ - "MILVUS_GIT_BUILD_TAGS": "v2.2-testing-20240702-811-g38211f2b81-dev", - "MILVUS_GIT_COMMIT": "38211f2b81", - "common.bloomfilterapplybatchsize": "1000", - "common.bloomfiltersize": "100000", - "common.bloomfiltertype": "BlockedBloomFilter", - "common.buildindexthreadpoolratio": "0.75", - "common.defaultindexname": "_default_idx", - "common.defaultpartitionname": "_default", - "common.diskindex.beamwidthratio": "4", - "common.diskindex.buildnumthreadsratio": "1", - "common.diskindex.loadnumthreadratio": "8", - "common.diskindex.maxdegree": "56", - "common.diskindex.pqcodebudgetgbratio": "0.125", - "common.diskindex.searchcachebudgetgbratio": "0.1", - "common.diskindex.searchlistsize": "100", - "common.enablevectorclusteringkey": "false", - "common.entityexpiration": "-1", - "common.gracefulstoptimeout": "1800", - "common.gracefultime": "5000", - "common.indexslicesize": "16", - "common.locks.metrics.enable": "false" -} -`,fG=` -{ - "collection_names": [ - "collection_1", - "collection_2", - "collection_3", - "collection_4", - "collection_5", - "collection_6", - "collection_7", - "collection_8", - "collection_9", - "collection_10" - ], - "collection_ids": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10" - ], - "created_utc_timestamps": [ - "2021-10-01 00:00:00", - "2021-10-02 00:00:00", - "2021-10-03 00:00:00", - "2021-10-04 00:00:00", - "2021-10-05 00:00:00", - "2021-10-06 00:00:00", - "2021-10-07 00:00:00", - "2021-10-08 00:00:00", - "2021-10-09 00:00:00", - "2021-10-10 00:00:00" - ], - "inMemory_percentages": [ - 100, - 90, - 80, - 70, - 60, - 50, - 40, - 30, - 20, - 10 - ], - "query_service_available": [ - true, - true, - true, - true, - true, - false, - false, - false, - false, - false - ] -} -`,pG=` -{ - "collection_id": "1", - "collection_name": "example_collection", - "created_time": "2021-10-01 00:00:00", - "shards_num": 2, - "consistency_level": "Strong", - "aliases": ["alias1", "alias2"], - "properties": { - "property_key": "property_value" - }, - "db_name": "example_db", - "num_partitions": 3, - "virtual_channel_names": ["v_channel1", "v_channel2"], - "physical_channel_names": ["p_channel1", "p_channel2"], - "partition_infos": [ - { - "partition_name": "partition1", - "partition_id": "1", - "created_utc_timestamp": "2021-10-01 00:00:00" - } - ], - "enable_dynamic_field": true, - "fields": [ - { - "field_id": "1", - "name": "field1", - "is_primary_key": true, - "description": "description1", - "data_type": "int64", - "type_params": { - "param_key": "param_value" - }, - "index_params": { - "index_key": "index_value" - }, - "auto_id": false, - "element_type": "element_type1", - "default_value": "default_value1", - "is_dynamic": false, - "is_partition_key": false, - "is_clustering_key": false, - "nullable": true, - "is_function_output": false - } - ] -} -`,gG=` -{ - "db_names": [ - "database_1", - "database_2", - "database_3", - "database_4", - "database_5", - "database_6", - "database_7", - "database_8", - "database_9", - "database_10" - ], - "db_ids": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10" - ], - "created_timestamps": [ - "2021-10-01 00:00:00", - "2021-10-02 00:00:00", - "2021-10-03 00:00:00", - "2021-10-04 00:00:00", - "2021-10-05 00:00:00", - "2021-10-06 00:00:00", - "2021-10-07 00:00:00", - "2021-10-08 00:00:00", - "2021-10-09 00:00:00", - "2021-10-10 00:00:00" - ] -} -`,hG=` -{ - "db_name": "example_db", - "db_id": 1, - "created_timestamp": "2021-10-01 00:00:00", - "properties": [ - { - "key": "property_key", - "value": "property_value" - } - ] -} -`,mG=` -[ - { - "collection_id": 1, - "segments": [ - { - "segment_id": 1, - "collection_id": 1, - "partition_id": 1, - "channel": "channel1", - "num_of_rows": 1000, - "state": "Sealed", - "is_importing": false, - "compacted": false, - "level": "L0", - "is_sorted": true, - "node_id": 1, - "is_invisible": false, - "loaded_timestamp": "2021-10-01 00:00:00", - "index": [ - { - "field_id": 1, - "index_id": 1, - "build_id": 1, - "index_size": 1024, - "is_loaded": true - } - ], - "resource_group": "rg1", - "loaded_insert_row_count": 1000, - "mem_size": 2048 - } - ], - "dm_channels": [ - { - "node_id": 1, - "version": 1, - "collection_id": 1, - "channel_name": "channel1", - "unflushed_segment_ids": [ - "1" - ], - "flushed_segment_ids": [ - "2" - ], - "dropped_segment_ids": [ - "3" - ], - "level_zero_segment_ids": [ - "4" - ] - } - ] - } -] -`,vG=` -[ - { - "collection_id": 1, - "segments": [ - { - "segment_id": 2, - "collection_id": 1, - "partition_id": 1, - "channel": "channel2", - "num_of_rows": 1000, - "state": "Sealed", - "is_importing": false, - "compacted": false, - "level": "L0", - "is_sorted": true, - "node_id": 1, - "is_invisible": false, - "loaded_timestamp": 1633072800, - "index": [ - { - "field_id": 1, - "index_id": 1, - "build_id": 1, - "index_size": 1024, - "is_loaded": true - } - ], - "resource_group": "rg1", - "loaded_insert_row_count": 1000, - "mem_size": 2048 - } - ] - } -] -`,yG=` -{ - "segments": [ - { - "segment_id": 1, - "collection_id": 1, - "partition_id": 1, - "channel": "channel1", - "num_of_rows": 1000, - "state": "Sealed", - "is_importing": false, - "compacted": false, - "level": "L0", - "is_sorted": true, - "node_id": 1, - "is_invisible": false, - "loaded_timestamp": "2021-10-01 00:00:00", - "index": [ - { - "field_id": 1, - "index_id": 1, - "build_id": 1, - "index_size": 1024, - "is_loaded": true - } - ], - "resource_group": "rg1", - "loaded_insert_row_count": 1000, - "mem_size": 2048, - "flushed_rows": 1000, - "sync_buffer_rows": 0, - "syncing_rows": 0 - } - ], - "dm_channels": [ - { - "node_id": 1, - "version": 1, - "collection_id": 1, - "channel_name": "channel1", - "unflushed_segment_ids": ["1"], - "flushed_segment_ids": ["2"], - "dropped_segment_ids": ["3"], - "level_zero_segment_ids": ["4"], - "partition_stats_versions": { - "1": 1 - }, - "watch_state": "Healthy", - "start_watch_ts": "2021-10-01 00:00:00" - } - ], - "leader_views": [ - { - "leader_id": 1, - "collection_id": 1, - "node_id": 1, - "channel": "channel1", - "version": 1, - "sealed_segments": [ - { - "segment_id": 1, - "collection_id": 1, - "partition_id": 1, - "channel": "channel1", - "num_of_rows": 1000, - "state": "Sealed", - "is_importing": false, - "compacted": false, - "level": "L0", - "is_sorted": true, - "node_id": 1, - "is_invisible": false, - "loaded_timestamp": "2021-10-01 00:00:00", - "index": [ - { - "field_id": 1, - "index_id": 1, - "build_id": 1, - "index_size": 1024, - "is_loaded": true - } - ], - "resource_group": "rg1", - "loaded_insert_row_count": 1000, - "mem_size": 2048, - "flushed_rows": 1000, - "sync_buffer_rows": 0, - "syncing_rows": 0 - } - ], - "growing_segments": [], - "target_version": 1, - "num_of_growing_rows": 0, - "unserviceable_error": "" - } - ] -} -`,bG=` -[ - { - "ID": 1, - "collectionID": 1, - "rw_nodes": [1, 2], - "resource_group": "rg1", - "ro_nodes": [3], - "channel_to_rw_nodes": { - "channel1": [1, 2] - } - }, - { - "ID": 2, - "collectionID": 2, - "rw_nodes": [4, 5], - "resource_group": "rg2", - "ro_nodes": [6], - "channel_to_rw_nodes": { - "channel2": [4, 5] - } - } -] -`,xG=` -[ - { - "name": "rg1", - "nodes": [1, 2], - "cfg": { - "requests":{}, - "limits":{"node_num":1000000} - } - }, - { - "name": "rg2", - "nodes": [3, 4] - } -] -`,SG=` -[ - { - "task_name": "balance_checker-ChannelTask[1]-ch1", - "collection_id": 67890, - "replica_id": 11111, - "task_type": "Move", - "task_status": "started", - "priority": "Normal", - "actions": [ - "type:Grow node id : 1 channel name:channel_1" - ], - "step": 1, - "reason": "" - }, - { - "task_name": "index_checker-SegmentTask[2]-54321", - "collection_id": 12345, - "replica_id": 22222, - "task_type": "Grow", - "task_status": "completed", - "priority": "High", - "actions": [ - "type:Grow node id: 2 segment id:123 scope:DataScope_Streaming" - ], - "step": 2, - "reason": "" - }, - { - "task_name": "leader_checker-LeaderSegmentTask[3]-1", - "collection_id": 54321, - "replica_id": 33333, - "task_type": "Grow", - "task_status": "failed", - "priority": "Low", - "actions": [ - "type:Grow node id: 3 leader id:456 segment id:789 version:1" - ], - "step": 3, - "reason": "yet another reason" - } -] -`,wG=` -[ - { - "segment_id": 1, - "collection_id": 1, - "partition_id": 1, - "channel": "channel1", - "num_of_rows": 1000, - "state": "Sealed", - "is_importing": false, - "compacted": false, - "level": "L1", - "is_sorted": true, - "node_id": 1, - "is_invisible": false, - "loaded_timestamp": "2021-10-01 00:00:00", - "index": [ - { - "field_id": 1, - "index_id": 1, - "build_id": 1, - "index_size": 1024, - "is_loaded": true - } - ], - "resource_group": "rg1", - "loaded_insert_row_count": 1000, - "mem_size": 2048 - }, - { - "segment_id": 2, - "collection_id": 2, - "partition_id": 2, - "channel": "channel2", - "num_of_rows": 2000, - "state": "Sealed", - "is_importing": false, - "compacted": false, - "level": "L2", - "is_sorted": true, - "node_id": 2, - "is_invisible": false, - "loaded_timestamp": "2021-10-01 00:00:00", - "index": [ - { - "field_id": 2, - "index_id": 2, - "build_id": 2, - "index_size": 2048, - "is_loaded": true - } - ], - "resource_group": "rg2", - "loaded_insert_row_count": 2000, - "mem_size": 4096 - } -] -`,CG=` -[ - { - "name": "channel1", - "watch_state": "Healthy", - "assign_state": "assigned", - "latest_time_tick": "2023-10-01 12:00:00", - "node_id": 1, - "collection_id": 1 - }, - { - "name": "channel2", - "watch_state": "Healthy", - "assign_state": "assigned", - "latest_time_tick": "2023-10-01 12:05:00", - "node_id": 2, - "collection_id": 2 - } -] -`,_G=` -{ - "segments": [ - { - "segment_id": 1, - "collection_id": 1, - "partition_id": 1, - "channel": "channel1", - "num_of_rows": 1000, - "state": "Growing", - "is_importing": false, - "compacted": false, - "level": "L1", - "is_sorted": true, - "node_id": 1 - }, - { - "segment_id": 3, - "collection_id": 2, - "partition_id": 2, - "channel": "channel2", - "num_of_rows": 2000, - "state": "Growing", - "is_importing": true, - "compacted": true, - "level": "L2", - "is_sorted": false, - "node_id": 2 - } - ], - "dm_channels": [ - { - "node_id": 1, - "version": 1, - "collection_id": 100, - "channel_name": "channel1", - "unflushed_segment_ids": ["1", "2", "3"], - "flushed_segment_ids": ["4", "5", "6"], - "dropped_segment_ids": ["7", "8", "9"], - "watch_state": "success", - "start_watch_ts": "2023-10-01 12:05:00" - }, - { - "node_id": 1, - "version": 1, - "collection_id": 100, - "channel_name": "channel3", - "unflushed_segment_ids": ["1", "2", "3"], - "flushed_segment_ids": ["4", "5", "6"], - "dropped_segment_ids": ["7", "8", "9"], - "watch_state": "to_watch", - "start_watch_ts": "2023-10-01 12:05:00" - } - ] -} -`,RG=` -[ - { - "index_id": 1, - "collection_id": 1001, - "segment_id": 2001, - "build_id": 3001, - "index_state": "Finished", - "index_size": 1024, - "index_version": 1, - "create_time": "2023-10-01 12:05:00" - }, - { - "index_id": 2, - "collection_id": 1002, - "segment_id": 2002, - "build_id": 3002, - "index_state": "Failed", - "fail_reason": "Disk full", - "index_size": 2048, - "index_version": 2, - "create_time": "2023-10-01 12:05:00" - } -]`,TG=` -[ - { - "plan_id": 1, - "collection_id": 1, - "type": "Merge", - "state": "Completed", - "fail_reason": "", - "start_time": "2023-10-01 12:05:00", - "end_time": "2023-10-01 12:06:00", - "total_rows": 10000, - "input_segments": ["1", "2", "3"], - "result_segments": ["4"] - }, - { - "plan_id": 2, - "collection_id": 2, - "type": "Merge", - "state": "Failed", - "fail_reason": "Disk full", - "start_time": "2023-10-01 12:05:00", - "end_time": "2023-10-01 12:06:00", - "total_rows": 20000, - "input_segments": ["5", "6", "7"], - "result_segments": [] - } -]`,PG=` -[ - { - "segment_id": 1, - "batch_rows": 1000, - "segment_level": "L1", - "ts_from": "2023-10-01 12:05:00", - "ts_to": "2023-10-01 12:06:00", - "delta_row_count": 10, - "flush_size": 1024, - "running_time": "100000000", - "node_id": 1 - }, - { - "segment_id": 2, - "batch_rows": 2000, - "segment_level": "L2", - "ts_from": "2023-10-01 12:05:00", - "ts_to": "2023-10-01 12:06:00", - "delta_row_count": 20, - "flush_size": 2048, - "running_time": "200000000", - "node_id": 2 - } -] -`,kG=` -[ - { - "job_id": 1, - "task_id": 2, - "collection_id": 3, - "node_id": 4, - "state": "Pending", - "reason": "", - "task_type": "PreImportTask", - "created_time": "2023-10-01T00:00:00Z", - "complete_time": "2023-10-01T01:00:00Z" - }, - { - "job_id": 5, - "task_id": 6, - "collection_id": 7, - "node_id": 8, - "state": "Completed", - "reason": "", - "task_type": "ImportTask", - "created_time": "2023-10-01T00:00:00Z", - "complete_time": "2023-10-01T01:00:00Z" - }, - { - "job_id": 9, - "task_id": 10, - "collection_id": 11, - "node_id": 12, - "state": "Failed", - "reason": "some failure reason", - "task_type": "ImportTask", - "created_time": "2023-10-01T00:00:00Z", - "complete_time": "2023-10-01T01:00:00Z" - } -] -`,$G=` -[ - { - "segment_id": 1, - "collection_id": 1, - "partition_id": 1, - "channel": "channel1", - "num_of_rows": 1000, - "state": "Growing", - "is_importing": false, - "compacted": false, - "level": "L1", - "is_sorted": true, - "node_id": 1, - "flushed_rows": 1000, - "sync_buffer_rows": 0, - "syncing_rows": 0 - }, - { - "segment_id": 2, - "collection_id": 2, - "partition_id": 2, - "channel": "channel2", - "num_of_rows": 2000, - "state": "Sealed", - "is_importing": true, - "compacted": true, - "level": "L2", - "is_sorted": false, - "node_id": 2, - "flushed_rows": 2000, - "sync_buffer_rows": 100, - "syncing_rows": 50 - } -] -`,EG=` -[ - { - "name": "channel1", - "watch_state": "Healthy", - "assign_state": "assigned", - "latest_time_tick": "2023-10-01 12:00:00", - "node_id": 1, - "collection_id": 1, - "check_point_ts": "2023-10-01 12:00:00" - }, - { - "name": "channel2", - "watch_state": "Healthy", - "assign_state": "assigned", - "latest_time_tick": "2023-10-01 12:05:00", - "node_id": 2, - "collection_id": 2, - "check_point_ts": "2023-10-01 12:05:00" - } -] -`,MG=`[ - { - "role": "proxy", - "database": "test_db", - "collection": "test_collection", - "partitions": "partition1,partition2", - "consistency_level": "Bounded", - "use_default_consistency": true, - "guarantee_timestamp": 123456789, - "duration": "1.1s", - "user": "test_user", - "query_params": { - "search_params": [ - { - "dsl": ["dsl1"], - "search_params": ["param2=value2"], - "nq": [10] - } - ], - "output_fields": "field1,field2" - }, - "type": "Search", - "trace_id": "729b10a6a7f32ddd7ab5c16dd30f60dc", - "time": "2024-11-05 08:14:05" - }, - { - "role": "proxy", - "database": "test_db", - "collection": "test_collection", - "partitions": "partition1,partition2", - "consistency_level": "Bounded", - "use_default_consistency": true, - "guarantee_timestamp": 123456789, - "duration": "1.2s", - "user": "test_user", - "query_params": { - "expr": "expr1", - "output_fields": "field1,field2" - }, - "type": "Query", - "trace_id": "232955b7f33b135708d34c3c761b57e7", - "time": "2024-11-05 08:14:05" - }, - { - "role": "proxy", - "database": "test_db", - "collection": "test_collection", - "partitions": "partition1,partition2", - "consistency_level": "Bounded", - "use_default_consistency": true, - "guarantee_timestamp": 123456789, - "duration": "1.3s", - "user": "test_user", - "query_params": { - "search_params": [ - { - "dsl": ["dsl2"], - "search_params": ["param3=value3"], - "nq": [20] - } - ], - "output_fields": "field3,field4" - }, - "type": "HybridSearch", - "trace_id": "3a4b5c6d7e8f9a0b1c2d3e4f5g6h7i8j", - "time": "2024-11-05 08:14:05" - }, - { - "role": "proxy", - "database": "test_db", - "collection": "test_collection", - "partitions": "partition1,partition2", - "consistency_level": "Bounded", - "use_default_consistency": true, - "guarantee_timestamp": 123456789, - "duration": "1.4s", - "user": "test_user", - "query_params": { - "expr": "expr2", - "output_fields": "field5,field6" - }, - "type": "Query", - "trace_id": "4b5c6d7e8f9a0b1c2d3e4f5g6h7i8j9k", - "time": "2024-11-05 08:14:05" - }, - { - "role": "proxy", - "database": "test_db", - "collection": "test_collection", - "partitions": "partition1,partition2", - "consistency_level": "Bounded", - "use_default_consistency": true, - "guarantee_timestamp": 123456789, - "duration": "1.5s", - "user": "test_user", - "query_params": { - "search_params": [ - { - "dsl": ["dsl3"], - "search_params": ["param4=value4"], - "nq": [30] - } - ], - "output_fields": "field7,field8" - }, - "type": "Search", - "trace_id": "5c6d7e8f9a0b1c2d3e4f5g6h7i8j9k0l", - "time": "2024-11-05 08:14:05" - } -]`,IG="/api/v1",t0=Bt.create({baseURL:IG});t0.interceptors.response.use(e=>(e.status>=400&&HD({title:"Error",message:e.data.message||"Request Error",showClose:!1,handleClose:()=>{}}),e));const ES=(e,t)=>L3()&&e?Promise.resolve(e):t().then(n=>n.data),pt={get:(e,t,n)=>ES(JSON.parse(n||"null"),()=>t0.get(e,t)),post:(e,t,n,r)=>ES(JSON.parse(r||"null"),()=>t0.post(e,t,n))},OG="https://github.com/milvus-io/milvus/issues/new/choose",LG="https://zilliz.com/contact-sales",AG="WebUI: https://cloud.zilliz.com/signup?utm_source=partner&utm_medium=referral&utm_campaign=2024-12-19_resource_milvus-webUI_milvusio",sl=(e,t=2)=>(e/1024**3).toFixed(t),NG=e=>e.db_names.map((t,n)=>{var i;const r=(i=e.db_ids)==null?void 0:i[n],o=e.created_timestamps[n];return{name:t,id:r,created:o}}),DG=e=>e.collection_ids.map((t,n)=>{var s,l,c,u;const r=(s=e.collection_names)==null?void 0:s[n],o=(l=e.created_utc_timestamps)==null?void 0:l[n],i=(c=e.inMemory_percentages)==null?void 0:c[n],a=(u=e.query_service_available)==null?void 0:u[n];return{name:r,id:t,created:o,memoryPercentage:i,queryServiceAvailable:a}}),MS=()=>{},jG=async()=>(await pt.get("/_cluster/info",{},lG)).nodes_info,FG=async()=>pt.get("/_cluster/clients",{},cG),BG=async()=>pt.get("/_cluster/dependencies",{},uG),zG=async()=>{const e=await pt.get("/_db/list",{},gG);try{return NG(e)}catch(t){console.warn(t)}},HG=async e=>pt.get("/_db/desc",{params:{db_name:e}},hG),VG=async(e="default")=>{const t=await pt.get("/_collection/list",{params:{db_name:e}},fG);return DG(t)},WG=async(e,t="default")=>pt.get("/_collection/desc",{params:{db_name:t,collection_name:e}},pG),UG=async e=>pt.get("/_index/list",{params:{collection_id:e}}),GG=async e=>pt.get("/_dc/segments",{params:{collection_id:e,in:"dc"}}),qG=async e=>pt.get("/_qc/segments",{params:{collection_id:e,in:"qc"}}),A3=async()=>pt.get("/_qc/dist",{},yG),av=async()=>pt.get("/_qc/target",{},mG),sv=async()=>pt.get("/_qc/target",{params:{target_scope:2}},vG),KG=async()=>pt.get("/_qn/segments",{},wG),ZG=async()=>pt.get("/_qn/channels",{},CG),QG=async()=>pt.get("/_qc/replica",{},bG),YG=async()=>pt.get("/_qc/resource_group",{},xG),XG=async()=>pt.get("/_dc/dist",{},_G),JG=async()=>pt.get("/_dn/channels",{},EG),eq=async()=>pt.get("/_dn/segments",{},$G),tq=async()=>pt.get("/_qc/tasks",{},SG),nq=async()=>pt.get("/_dc/tasks/compaction",{},TG),rq=async()=>pt.get("/_dc/tasks/build_index",{},RG),oq=async()=>pt.get("/_dc/tasks/import",{},kG),iq=async()=>pt.get("/_dn/tasks/sync",{},PG),aq=async()=>pt.get("/_cluster/slow_query",{},MG),sq=async()=>pt.get("/_cluster/configs",{},dG);var N3={exports:{}};/*! - Copyright (c) 2018 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var i="",a=0;ae?[{key:"system_version",name:"Git Commit",desc:"Git commit SHA that the current build of the system is based on"},{key:"deploy_mode",name:"Deploy Mode",desc:"The mode in which the system is deployed"},{key:"build_version",name:"Build Version",desc:"The version of the system that was built"},{key:"build_time",name:"Build Time",desc:"The exact time when the system was built"},{key:"used_go_version",name:"Go Version",desc:"The version of the Golang that was used to build the system"}].map(n=>({...n,value:e[n.key]})):[],dq=()=>{const e=nt("cluster-info",jG),t=b.useMemo(()=>{var l;const i=(l=e.data)==null?void 0:l[0],a=i==null?void 0:i.infos.system_info,s=uq(a);return s.push({key:"created_time",name:"Started Time",value:i==null?void 0:i.infos.created_time,desc:"The time when the system was started"}),s},[e.data]),n=b.useMemo(()=>{var i;return((i=e.data)==null?void 0:i.map(a=>({name:a.infos.name,ip:a.infos.hardware_infos.ip,created:a.infos.created_time,error:a.infos.has_error?a.infos.error_reason:""})))||[]},[e.data]),r=b.useMemo(()=>{var i;return((i=e.data)==null?void 0:i.map(a=>{const s=a.infos.hardware_infos,l=sl(s.cpu_core_usage),c=sl(s.memory),u=sl(s.memory_usage),d=sl(s.disk),f=sl(s.disk_usage);return{name:a.infos.name,cpu:`${l}%`,memory:`${u} / ${c}`,disk:`${f} / ${d}`,ioWait:"0.00",rpc:"100",netTP:"5",diskTP:"20"}}))||[]},[e.data]),o=b.useMemo(()=>[],[e.data]);return{...e,data:t,compData:n,runtimeMetricsData:r,requestData:o}},fq=()=>nt("cluster-clients",FG),pq=()=>{const e=nt("cluster-deps",BG),t=b.useMemo(()=>Object.keys(e.data||{}).map(n=>{const r=e.data[n],o="meta_type"in r?r.meta_type:r.mq_type,i=r.health_status?"":r.unhealthy_reason;return{name:`${n} [${o}]`,clusterStatus:i,members:r.members_health}}),[e.data]);return{...e,data:t}};var rd=(e=>(e.Node="none",e.Building="building",e.Completed="completed",e))(rd||{}),od=(e=>(e.Node="none",e.Loading="loading",e.Loaded="loaded",e))(od||{});const gq=()=>nt("databases",zG),hq=(e="default")=>nt(`collections-${e}`,()=>VG(e)),mq=e=>{var y;const[t,n]=e.split("-"),r=nt(`collections-${e}`,()=>WG(n,t)),o=(y=r.data)==null?void 0:y.collection_id,i=nt(o&&`collections-${o}-indexes`,()=>UG(o)),a=nt(o&&`collections-${o}-dcSegments`,()=>GG(o)),s=nt(o&&`collections-${o}-qcSegments`,()=>qG(o)),l=nt("collections-currTarget",()=>av()),c=nt("collections-currTarget",()=>sv()),u=nt("collections-dist",()=>A3()),d=(C,v)=>{var S;return(S=v==null?void 0:v.index_fields)!=null&&S.length?v.index_fields.every(m=>C.find(w=>w.index_id===m.index_id))||v.is_indexed?rd.Completed:rd.Building:rd.Node},f=(C,v)=>{var S,m;return(S=v==null?void 0:v.index_fields)!=null&&S.length&&v.index_fields.every(w=>C.find(_=>_.index_id===w.index_id))?od.Loaded:(m=v==null?void 0:v.index_fields)!=null&&m.length?od.Loading:od.Node},p=b.useMemo(()=>{var v,S;if(!a.data||!s.data||!i.data)return[];const C={};return(v=a.data)==null||v.forEach(m=>{C[m.segment_id]={dc:m}}),(S=s.data)==null||S.forEach(m=>{C[m.segment_id]={...C[m.segment_id],qc:m}}),Object.keys(C).map(m=>{var k,T,P,x;const{dc:w,qc:_}=C[m];return{id:((k=w||_)==null?void 0:k.segment_id)||"",nodeId:((T=w||_)==null?void 0:T.node_id.toString())||"",rowsCount:Number(((P=w||_)==null?void 0:P.num_of_rows)||0),state:w==null?void 0:w.state,level:((x=w||_)==null?void 0:x.level)||"",buildIndexState:d(i.data,w),loadIndexState:f(i.data,w)}})},[a.data,s.data,i.data]),h=()=>{var _;if(!u.data||!l.data||!c.data)return{name:"-"};const C=c.data.find(R=>R.collection_id===o),v=l.data.find(R=>R.collection_id===o);if(C&&!v)return{name:"Loading"};const{leader_views:S}=u.data,m=[],w=(_=v==null?void 0:v.segments)==null?void 0:_.every(R=>{var x,$;const k=(x=S.find(I=>I.collection_id===o))==null?void 0:x.growing_segments,T=($=S.find(I=>I.collection_id===o))==null?void 0:$.sealed_segments,P=(k==null?void 0:k.find(I=>I.segment_id===R.segment_id))||(T==null?void 0:T.find(I=>I.segment_id===R.segment_id));return P||m.push(R.segment_id),P});return v&&!w?{name:"Collection Segment Lack",desc:`There are segments need to load: ${m.join(", ")}`}:v?{name:"Loaded"}:{name:"-"}};return{collection:r.data,indexes:i.data,segments:p,collectionState:h()}},vq=()=>{const e=nt("query-dist",A3),t=nt("query-currTargets",av),n=nt("query-nextTargets",sv),r=nt("query-seg",KG),o=nt("query-channel",ZG),i=b.useMemo(()=>!e.data||!t.data||!n.data||!r.data?[]:Sq(e.data,t.data,n.data,r.data),[e.data,t.data,n.data,r.data]),a=b.useMemo(()=>!e.data||!t.data||!n.data||!o.data?[]:Rq(e.data,t.data,n.data,o.data),[e.data,t.data,n.data,o.data]);return{segsData:i,channelsData:a,isLoading:[e,t,n,r,o].some(s=>s.isLoading)}},yq=(e,t,n)=>{if(n.nextTarSegment&&!n.distSegmentData&&!n.leaderView&&!n.currTarSegment)return e==="L0"&&t==="Sealed"?{isError:!1,message:"L0 Generated"}:e==="L1"&&t==="Sealed"?{isError:!1,message:"L1 Generated"}:{isError:!1,message:"Watch Channel Growing Generated"};if(n.nextTarSegment&&n.distSegmentData&&n.leaderView&&!n.currTarSegment)return e==="L0"&&t==="Sealed"?{isError:!1,message:"L0 Loaded"}:e==="L1"&&t==="Sealed"?{isError:!1,message:"L1 Loaded"}:{isError:!1,message:"Load Growing"};if(n.nextTarSegment&&n.distSegmentData&&n.leaderView&&n.currTarSegment)return e==="L0"&&t==="Sealed"?{isError:!1,message:"L0 Ready"}:e==="L1"&&t==="Sealed"?{isError:!1,message:"L1 Ready"}:{isError:!1,message:"Segment Ready"};if(!n.nextTarSegment&&n.distSegmentData&&n.leaderView&&n.currTarSegment)return e==="L0"&&t==="Sealed"?{isError:!1,message:"L0 Compacted"}:e==="L1"&&t==="Sealed"?{isError:!1,message:"L1 Compacted"}:{isError:!1,message:"Growing Flushed"};if(!n.nextTarSegment&&n.distSegmentData&&n.leaderView&&!n.currTarSegment)return["L0","L1"].includes(e)&&t==="Sealed"?{isError:!1,message:"Growing Generated"}:{isError:!1,message:"Release Growing Sealed Loaded"};if(!n.nextTarSegment&&!n.distSegmentData&&!n.leaderView&&n.currTarSegment)return{isError:!0,message:"Delegator Node Offline"};if(e==="L1"){if(!n.nextTarSegment&&n.distSegmentData&&!n.leaderView&&n.currTarSegment)return{isError:!0,message:"Add Router Delegator Node Offline"};if(!n.nextTarSegment&&!n.distSegmentData&&n.leaderView&&!n.currTarSegment)return{isError:!0,message:"Remove Router Worker Node Offline"};if(!n.nextTarSegment&&!n.distSegmentData&&n.leaderView&&n.currTarSegment)return{isError:!0,message:"Load L1 Worker Node Offline"};if(!n.nextTarSegment&&n.distSegmentData&&!n.leaderView&&!n.currTarSegment)return{isError:!0,message:"Release L1 Delegator Node Offline"}}return{isError:!1,message:"Ready"}},bq=e=>{const t=Object.keys(e).filter(n=>{var o;const r=(o=e[n])==null?void 0:o.state;return r&&r!=="SegmentStateNone"});return t.length?e[t[0]].state:"-"},xq=(e,t)=>{var p;const{distSegmentData:n,currTarSegment:r,nextTarSegment:o,queryNode:i,leaderView:a}=t,s=(n||r||o||i).collection_id,l=a!=null&&a.leader_id&&(a==null?void 0:a.leader_id)!=="Not Found"?a==null?void 0:a.leader_id:"-",c=(p=n||i)==null?void 0:p.node_id,u=n==null?void 0:n.num_of_rows,d=n==null?void 0:n.level,f=bq(t);return{id:e,collectionId:s,leaderId:l,nodeId:c,state:f,rowsCount:u,stateDetail:yq(d,f,t),sourceData:t}},Sq=(e,t,n,r)=>{var i;const o={};return(i=e.segments)==null||i.forEach(a=>{o[a.segment_id]={...o[a.segment_id]||{},distSegmentData:a}}),e.leader_views.forEach(a=>{var s,l;(s=a.sealed_segments)==null||s.forEach(c=>{o[c.segment_id]={...o[c.segment_id]||{},leaderView:a}}),(l=a.growing_segments)==null||l.forEach(c=>{o[c.segment_id]={...o[c.segment_id]||{},leaderView:a}})}),t.forEach(a=>{var s;(s=a.segments)==null||s.forEach(l=>{o[l.segment_id]={...o[l.segment_id]||{},currTarSegment:l}})}),n.forEach(a=>{var s;(s=a.segments)==null||s.forEach(l=>{o[l.segment_id]={...o[l.segment_id]||{},nextTarSegment:l}})}),r.forEach(a=>{o[a.segment_id]={...o[a.segment_id]||{},queryNode:a}}),Object.keys(o).map(a=>xq(a,o[a]))},Tu=e=>e.name||e.channel_name,wq=e=>{const t=Object.keys(e).filter(n=>{var o;const r=(o=e[n])==null?void 0:o.watch_state;return r&&r!=="Healthy"});return t.length?e[t[0]].watch_state:"Healthy"},Cq=e=>e.nextTarChannel&&!e.leaderView&&!e.currTarChannel?{isError:!1,message:"Sub Channel Load Collection"}:e.nextTarChannel&&e.leaderView&&!e.currTarChannel?{isError:!1,message:"Channel Watched"}:e.nextTarChannel&&e.leaderView&&e.currTarChannel?{isError:!1,message:"Channel Ready"}:!e.nextTarChannel&&e.leaderView&&!e.currTarChannel?{isError:!1,message:"UnSub Channel Release Collection"}:!e.nextTarChannel&&!e.leaderView&&e.currTarChannel?{isError:!0,message:"UnSub Channel Delegator Node Offline"}:{isError:!1,message:"Channel Ready"},_q=(e,t)=>{var d;const{distChannelData:n,currTarChannel:r,nextTarChannel:o,queryNode:i,leaderView:a}=t,s=(n||r||o||i).collection_id,l=a!=null&&a.leader_id&&(a==null?void 0:a.leader_id)!=="Not Found"?a==null?void 0:a.leader_id:"-",c=(d=n||i)==null?void 0:d.node_id,u=wq(t);return{name:e,collectionId:s,leaderId:l,nodeId:c,watchState:u,stateDetail:Cq(t),sourceData:t}},Rq=(e,t,n,r)=>{var i,a;const o={};return(i=e.dm_channels)==null||i.forEach(s=>{const l=Tu(s);o[l]={...o[l]||{},distChannelData:s}}),t.forEach(s=>{var l;(l=s.dm_channels)==null||l.forEach(c=>{const u=Tu(c);o[u]={...o[u]||{},currTarChannel:c}})}),n.forEach(s=>{var l;(l=s.dm_channels)==null||l.forEach(c=>{const u=Tu(c);o[u]={...o[u]||{},nextTarChannel:c}})}),r.forEach(s=>{const l=Tu(s);o[l]={...o[l]||{},queryNode:s}}),(a=e.leader_views)==null||a.forEach(s=>{s.channel&&(o[s.channel]={...o[s.channel]||{},leaderView:s})}),Object.keys(o).map(s=>_q(s,o[s]))},Tq=()=>nt("query-replicas",QG),Pq=()=>nt("query-rscGroups",YG),kq=()=>{const e=nt("query-currTargets",av),t=nt("query-nextTargets",sv),n=b.useMemo(()=>!e.data||!t.data?[]:$q(e.data,t.data),[e.data,t.data]),r=b.useMemo(()=>!e.data||!t.data?[]:Eq(e.data,t.data),[]);return{isLoading:e.isLoading||t.isLoading,targetSeg:n,targetChannel:r}};function $q(e,t){const n=[];return e.forEach(r=>{r.segments.forEach(o=>{o.targetScope="current",n.push(o)})}),t.forEach(r=>{r.segments.forEach(o=>{o.targetScope="next",n.push(o)})}),n}function Eq(e,t){const n=[];return e.forEach(r=>{r.dm_channels&&r.dm_channels.forEach(o=>{o.targetScope="current",n.push(o)})}),t.forEach(r=>{r.dm_channels&&r.dm_channels.forEach(o=>{o.targetScope="next",n.push(o)})}),n}const Mq=()=>{const e=nt("data-dist",XG),t=nt("data-seg",eq),n=nt("data-channel",JG),r=b.useMemo(()=>!e.data||!n.data?{data:[],notifications:[]}:Iq(n.data,e.data),[e.data,n.data]);return{seg:b.useMemo(()=>!e.data||!t.data?{data:[],notifications:[]}:Oq(t.data,e.data),[e.data,t.data]),channel:r,isLoading:e.isLoading||t.isLoading||n.isLoading}},Iq=(e,t)=>{const n={},r=[],o=new Set(t.dm_channels.map(i=>i.channel_name));return e.forEach(i=>{const a=isNaN(Number(i.node_id))?i.node_id:`datanode-${i.node_id}`;i.node_id=a;const s={...i};o.has(i.name)||(s.notification="Not found in DataCoord",r.push(s)),n[i.name]=s}),t.dm_channels.forEach(i=>{const a=isNaN(Number(i.node_id))?i.node_id:`datacoord-${i.node_id}`;i.node_id=a;const s=i.channel_name;if(n[s])n[s].watch_state!=="Healthy"&&(i.watch_state=n[s].watch_state),n[s]={...n[s],...i};else{const l={...i,notification:"Not found in DataNode"};r.push(l),n[s]=l}}),{data:Object.values(n),notifications:r}},Oq=(e,t)=>{const n={},r=[],o=new Set(t.segments.map(i=>i.segment_id));return e.forEach(i=>{const a=isNaN(Number(i.node_id))?i.node_id:`datanode-${i.node_id}`;i.node_id=a;const s={...i};o.has(i.segment_id)||(s.notification="Not found in DataCoord",r.push(s)),n[i.segment_id]=s}),t.segments.forEach(i=>{const a=isNaN(Number(i.node_id))?i.node_id:`datacoord-${i.node_id}`;i.node_id=a;const s=i.segment_id;if(n[s])n[s]={...n[s],...i};else{const l={...i,notification:"Not found in DataNode"};i.state!=="Dropped"&&i.state!=="Flushed"&&r.push(l),n[s]=l}}),{data:Object.values(n),notifications:r}},Lq=()=>nt("tasks",tq),Aq=()=>nt("compaction",nq),Nq=()=>nt("buildIndex",rq),Dq=()=>nt("import",oq),jq=()=>nt("sync",iq),Fq=()=>nt("slow-requests",aq),Bq=()=>{const e=nt("configurations",sq);return{...e,data:Object.keys(e.data||{}).map(t=>({key:t,value:e.data[t]}))}},zq="_section_1fkka_1",Hq="_title_1fkka_5",Vq="_separator_1fkka_8",rh={section:zq,title:Hq,separator:Vq},St=e=>{const{title:t,level:n=3,children:r,className:o}=e,i=()=>rt.createElement(`h${n}`,{className:rh.title,children:t});return g.jsxs("div",{className:He(rh.section,o),children:[i(),g.jsx("hr",{className:rh.separator}),r]})},oh={"filter-searcher":"_filter-searcher_162nl_1","filter-searcher-label":"_filter-searcher-label_162nl_5","filter-searcher-input":"_filter-searcher-input_162nl_9"},Wq=e=>{var u;const{defaultFilter:t,filters:n,className:r,onSearch:o}=e,[i,a]=b.useState({by:t}),s=d=>{a(()=>({by:d.value}))},l=d=>{a(f=>({...f,q:d.target.value}))},c=n.length?(u=n.find(d=>d.value===(i.by||n[0].value)))==null?void 0:u.label.toLowerCase():"";return b.useEffect(()=>{o(i)},[i.q]),g.jsxs("div",{className:He(oh["filter-searcher"],r),children:[g.jsx("div",{className:oh["filter-searcher-label"],children:"Filter: "}),n.length>1&&g.jsx(GD,{defaultValue:t,options:n,onChange:s,onPointerEnterCapture:MS,onPointerLeaveCapture:MS}),g.jsx(N1,{classes:{root:oh["filter-searcher-input"]},prefixComponent:g.jsx(BA,{}),type:"number",value:i.q,onChange:l,placeholder:c?`Search by ${c}`:"Search",onPointerEnterCapture:()=>{},onPointerLeaveCapture:()=>{}})]})},Uq="_wrapper_1j79b_1",ll={wrapper:Uq,"json-ellipsis":"_json-ellipsis_1j79b_7","json-ellipsis-brace":"_json-ellipsis-brace_1j79b_10","json-ellipsis-dot":"_json-ellipsis-dot_1j79b_14"},lv=e=>{const{json:t,ellipsis:n}=e,r=t?JSON.stringify(t,null,2):"",o=g.jsx("pre",{className:ll.wrapper,children:r});return n?g.jsx(bp,{title:o,placement:"top",children:g.jsxs("span",{className:ll["json-ellipsis"],children:[g.jsx("span",{className:ll["json-ellipsis-brace"],children:"{"}),g.jsx("span",{className:ll["json-ellipsis-dot"],children:"..."}),g.jsx("span",{className:ll["json-ellipsis-brace"],children:"}"})]})}):o},Gq="_state_v8a2b_12",qq="_none_v8a2b_16",Kq="_building_v8a2b_19",Zq="_loading_v8a2b_19",Qq="_completed_v8a2b_22",Yq="_loaded_v8a2b_22",Xq="_healthy_v8a2b_22",Jq="_deleted_v8a2b_25",eK="_icon_v8a2b_28",ih={state:Gq,none:qq,false:"_false_v8a2b_16",building:Kq,loading:Zq,completed:Qq,loaded:Yq,healthy:Xq,true:"_true_v8a2b_22",deleted:Jq,icon:eK},zo=e=>{const t=()=>{if(e.detail)return g.jsx(Mc,{tooltip:{title:e.detail,placement:"top"},children:g.jsx(ZA,{className:ih.icon,size:16})})};return g.jsxs("span",{className:He(ih.state,ih[e.value.toLowerCase()]),children:[e.label||e.value,t()]})},qt=e=>{const[t,n]=b.useState({}),r=b.useMemo(()=>e.cols.filter(s=>s.searchable),[e.cols]),o=b.useMemo(()=>{var c;if(!t.by||!t.q)return e.list||[];const{searchBy:s}=r.find(u=>u.field===t.by)||{};if(s)return s==null?void 0:s(t.q,e.list||[]);const l=t.by;return((c=e.list)==null?void 0:c.filter(u=>{var d;return(d=u[l])==null?void 0:d.toString().includes(t.q||"")}))||[]},[t,e.list]),i=s=>{var l;n(s),(l=e.onSearch)==null||l.call(e,s)};return{list:o,renderSearcher:s=>{const l=r.map(c=>({label:c.headerName,value:c.field}));return g.jsx(Wq,{filters:l,onSearch:i,...s})}}},tK="_status_19mpp_12",nK="_error_19mpp_16",Qt={status:tK,error:nK,"comp-tabs":"_comp-tabs_19mpp_20","text-content":"_text-content_19mpp_25","member-list":"_member-list_19mpp_30","member-item-label":"_member-item-label_19mpp_34","helper-link":"_helper-link_19mpp_43"},rK=()=>{var R;const e=dq(),t=fq(),n=pq(),[r,o]=b.useState("base"),i=k=>g.jsx("div",{className:Qt["text-content"],children:k||"-"}),a=k=>i(k.getValue()),s=b.useMemo(()=>[{field:"name",headerName:"Attribute"},{field:"value",headerName:"Value",renderCell:a},{field:"desc",headerName:"Description",renderCell:a}],[]),l=b.useMemo(()=>[{label:"Base Stats",value:"base"},{label:"Runtime Metrics",value:"metrics"}],[]),c=k=>{const T=k||"Healthy",P=!!k;return g.jsx("span",{className:He(Qt.status,P&&Qt.error),children:T})},u=b.useMemo(()=>[{field:"name",headerName:"Node Name",renderCell:a,searchable:!0},{field:"ip",headerName:"Node IP",renderCell:a},{field:"created",headerName:"Start Time",renderCell:a},{field:"error",headerName:"Node Status",renderCell:T=>i(c(T.getValue()))}],[]),d=qt({cols:u,list:e.compData}),f=b.useMemo(()=>[{field:"name",headerName:"Node Name",renderCell:a,searchable:!0},{field:"cpu",headerName:"CPU Usage",renderCell:a},{field:"memory",headerName:"Usage / Memory (GB)",renderCell:a},{field:"disk",headerName:"Usage / Disk (GB)",renderCell:a},{field:"ioWait",headerName:"IO wait",renderCell:a},{field:"rpc",headerName:"RPC Ops/s",renderCell:a},{field:"netTP",headerName:"Network Throughput (MB/s)",renderCell:a},{field:"diskTP",headerName:"Disk Throughput (MB/s)",renderCell:a}],[]),p=qt({cols:f,list:e.runtimeMetricsData}),h=(k,T)=>{o(T)},y=b.useMemo(()=>[{field:"host",headerName:"Host",searchable:!0},{field:"user",headerName:"User",searchable:!0},{field:"sdk_type",headerName:"SDK Type",searchable:!0},{field:"sdk_version",headerName:"SDK Version",searchable:!0},{field:"local_time",headerName:"Local Time",renderCell:a},{field:"lastActiveTime",headerName:"Last Active Time",renderCell:a}],[]),C=qt({cols:y,list:(R=t.data)==null?void 0:R.map(k=>({...k,lastActiveTime:k.reserved.last_active_time}))}),v=k=>{const T=g.jsx("span",{className:Qt["member-endpoint"],children:k.endpoint}),P=c(k.health?"":"Unhealthy");return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:Qt["member-item-label"],children:"Endpoint:"}),T,g.jsx("span",{className:Qt["member-item-label"],children:"Health:"}),P]})},S=k=>{const T=k.getValue()||[];if(!T.length)return"-";const P=T.map(x=>g.jsx("li",{className:Qt["member-item"],children:v(x)},x.endpoint));return g.jsx("ul",{className:Qt["member-list"],children:P})},m=b.useMemo(()=>[{field:"name",headerName:"Sys Name",searchable:!0},{field:"clusterStatus",headerName:"Cluster Status",maxWidth:200,renderCell:T=>i(c(T.getValue()))},{field:"members",headerName:"Members Status",renderCell:S}],[]),w=qt({cols:m,list:n.data}),_=()=>{var x,$;const k=((x=e.compData)==null?void 0:x.every(I=>!I.error))&&(($=n.data)==null?void 0:$.every(I=>{var O;return!I.clusterStatus&&!((O=I.members)!=null&&O.some(D=>!D.health))})),T=k?"Your Cluster is running well!":g.jsxs(g.Fragment,{children:["Your Cluster is experiencing issues!"," ",g.jsxs("a",{className:Qt["helper-link"],href:OG,target:"_blank",children:["Ask a question in community",g.jsx(Cm,{size:14})]})," ",g.jsxs("a",{className:Qt["helper-link"],href:LG,target:"_blank",children:["Contact Zilliz Experts",g.jsx(Cm,{size:14})]})]}),P=k?"success":"error";return g.jsx(A1,{severity:P,children:T})};return g.jsxs("div",{className:He("page-wrapper",Qt.info),children:[g.jsx("div",{className:Qt.alerts,children:_()}),g.jsx(St,{title:"System Information",children:g.jsx(ht,{classes:{tableContainer:He(Qt["sys-info"],"table-view")},loading:e.isLoading,columns:s,rows:e.data})}),g.jsx(St,{title:"Component Information",children:g.jsxs(g.Fragment,{children:[g.jsx(QD,{className:Qt["comp-tabs"],value:r,labelConfigs:l,handleChange:h,tabsType:"background"}),r==="base"&&g.jsxs(g.Fragment,{children:[d.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(Qt["comp-info"],"table-view")},loading:e.isLoading,columns:u,rows:d.list})]}),r==="metrics"&&g.jsxs(g.Fragment,{children:[p.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(Qt["comp-info"],"table-view")},loading:e.isLoading,columns:f,rows:p.list})]})]})}),g.jsx(St,{title:"Connected Clients",children:g.jsxs(g.Fragment,{children:[C.renderSearcher({defaultFilter:"host",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(Qt.clients,"table-view")},loading:t.isLoading,columns:y,rows:C.list})]})}),g.jsx(St,{title:"System Dependencies",children:g.jsxs(g.Fragment,{children:[w.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(Qt["sys-deps"],"table-view")},loading:n.isLoading,columns:m,rows:w.list||[]})]})})]})},oK="_queryable_12ixl_12",iK="_error_12ixl_15",aK="_detail_12ixl_23",sK="_clear_12ixl_28",lK="_loading_12ixl_1",cK="_percentage_12ixl_73",uK="_unknown_12ixl_73",mn={queryable:oK,error:iK,"collection-filter":"_collection-filter_12ixl_19",detail:aK,clear:sK,"json-detail-wrapper":"_json-detail-wrapper_12ixl_40","json-detail-content":"_json-detail-content_12ixl_40","json-detail-loading":"_json-detail-loading_12ixl_46","json-detail-loading-icon":"_json-detail-loading-icon_12ixl_50",loading:lK,"collection-filter-wrapper":"_collection-filter-wrapper_12ixl_57","collection-name":"_collection-name_12ixl_65",percentage:cK,unknown:uK},dK=e=>{const{fetcher:t,uniqKey:n,className:r,errorMessage:o}=e,i=nt(n,t),a=b.useMemo(()=>i.data?i.error?o:JSON.stringify(i.data,null,2):"",[i.data,o]),s=()=>i.isLoading?g.jsx("div",{className:mn["json-detail-loading"],children:g.jsx(FA,{className:mn["json-detail-loading-icon"]})}):g.jsx("pre",{className:He(mn["json-detail-content"],i.error&&mn.error),children:a});return g.jsx("div",{className:He(mn["json-detail-wrapper"],r),children:s()})},fK=()=>{var S,m,w;const e=gq(),[t,n]=b.useState({}),r=hq(t.db),[o,i]=b.useState({page:0,pageSize:10}),[a,s]=b.useState({page:0,pageSize:10}),l=b.useMemo(()=>[{field:"name",headerName:"Name",searchable:!0},{field:"id",headerName:"ID",renderCell:R=>R.getValue()||"-",searchable:!0},{field:"created",headerName:"Created Time"}],[]),c=qt({cols:l,list:e.data,onSearch:()=>{i(_=>({..._,page:0}))}}),u=_=>{const R=_.getValue();return!R&&R!==0?"-":R==="unknown"?g.jsx("span",{className:He(mn.percentage,mn.unknown),children:"Unknown"}):g.jsxs("span",{className:mn.percentage,children:[_.getValue(),"%"]})},d=_=>{const R=_.data,k=t.db||"default",T=R.name,P=`${k}-${T}`;return g.jsx(o2,{className:mn["collection-name"],to:`/collections/${P}`,children:R.name})},f=b.useMemo(()=>[{field:"name",headerName:"Name",searchable:!0,renderCell:d},{field:"id",headerName:"Collection ID",searchable:!0},{field:"created",headerName:"Created Time"},{field:"memoryPercentage",headerName:"Loaded Percentages",renderCell:u}],[]),p=qt({cols:f,list:r.data,onSearch:()=>{s(_=>({..._,page:0}))}}),h=_=>{i(R=>({...R,page:_}))},y=_=>{s(R=>({...R,page:_}))},C=_=>g.jsx(dK,{className:mn.detail,uniqKey:`database-detail-${_.name}`,fetcher:()=>HG(_.name),errorMessage:"Failed to load database details."}),v=(_,R)=>{n(k=>({...k,db:R==null?void 0:R.value}))};return g.jsxs("div",{className:He("page-wrapper",mn.collections),children:[g.jsx(St,{title:"Database",children:g.jsxs(g.Fragment,{children:[c.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(mn["sys-deps"],"table-view")},columns:l,loading:e.isLoading,getRowId:_=>_.id,rows:c.list,renderDetail:C,page:o.page,pageSize:o.pageSize,paginationMode:"client",onPageChange:h,rowCount:((S=c.list)==null?void 0:S.length)||0})]})}),g.jsx(St,{title:"Collection",children:g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:mn["collection-filter-wrapper"],children:[g.jsx(q_,{classes:{root:mn["collection-filter"]},onPointerEnterCapture:()=>{},onPointerLeaveCapture:()=>{},placeholder:"Search database",inputParams:{placeholder:"Search database..."},clearIcon:g.jsx(zA,{className:mn.clear,color:"secondary"}),options:((m=e.data)==null?void 0:m.map(_=>({label:_.name,value:_.name})))||[],onChange:v}),p.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"})]}),g.jsx(ht,{classes:{tableContainer:He(mn["sys-deps"],"table-view")},columns:f,loading:r.isLoading,getRowId:_=>_.id,rows:p.list||[],page:a.page,pageSize:a.pageSize,paginationMode:"client",showPagination:!0,onPageChange:y,rowCount:(w=p.list)==null?void 0:w.length})]})})]})},Ri={},ah={},pK=()=>{const e=kq(),[t,n]=b.useState({page:0,pageSize:10}),[r,o]=b.useState({page:0,pageSize:10}),i=f=>{const p=f.getValue();return(p==null?void 0:p.join(", "))||"-"},a=b.useMemo(()=>[{field:"segment_id",headerName:"Segment ID"},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"partition_id",headerName:"Partition ID"},{field:"channel",headerName:"Channel",searchable:!0},{field:"num_of_rows",headerName:"Rows"},{field:"state",headerName:"State"},{field:"targetScope",headerName:"TargetScope"}],[]),s=qt({cols:a,list:e.targetSeg,onSearch:()=>{n(f=>({...f,page:0}))}}),l=b.useMemo(()=>[{field:"channel_name",headerName:"Channel Name",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"node_id",headerName:"Node ID",searchable:!0},{field:"version",headerName:"Version"},{field:"unflushed_segment_ids",headerName:"Unflushed Segments",renderCell:i},{field:"flushed_segment_ids",headerName:"Flushed Segments",renderCell:i},{field:"dropped_segment_ids",headerName:"Dropoed Segments",renderCell:i},{field:"targetScope",headerName:"TargetScope"}],[]),c=qt({cols:l,list:e.targetChannel,onSearch:()=>{o(f=>({...f,page:0}))}}),u=f=>{n(p=>({...p,page:f}))},d=f=>{o(p=>({...p,page:f}))};return g.jsxs("div",{className:He("page-wrapper",ah.query),children:[g.jsx(St,{title:"Target Segments",children:g.jsxs(g.Fragment,{children:[s.renderSearcher({defaultFilter:"collection_id",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(ah.segs,"table-view")},columns:a,loading:e.isLoading,getRowId:f=>f.segment_id,rows:s.list,page:t.page,pageSize:t.pageSize,paginationMode:"client",showPagination:!0,onPageChange:u,rowCount:s.list.length})]})}),g.jsx(St,{title:"Target Channels",children:g.jsxs(g.Fragment,{children:[c.renderSearcher({defaultFilter:"collection_id",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(ah.channels,"table-view")},columns:l,loading:e.isLoading,getRowId:f=>f.name,rows:c.list,page:r.page,pageSize:r.pageSize,paginationMode:"client",showPagination:!0,onPageChange:d,rowCount:c.list.length})]})})]})},gK=()=>{const e=vq(),t=Tq(),n=Pq(),[r,o]=b.useState({page:0,pageSize:10}),[i,a]=b.useState({page:0,pageSize:10}),s=_=>{const R=_.getValue();return g.jsx("div",{className:He(Ri["state-detail"],(R==null?void 0:R.isError)&&Ri.error),children:R==null?void 0:R.message})},l=b.useMemo(()=>[{field:"id",headerName:"Segment ID"},{field:"collectionId",headerName:"Collection ID",searchable:!0},{field:"leaderId",headerName:"Leader ID",searchable:!0},{field:"nodeId",headerName:"Node ID",searchable:!0},{field:"rowsCount",headerName:"Rows",renderCell:R=>R.getValue()||"-"},{field:"state",headerName:"State",renderCell:R=>g.jsx(zo,{value:R.getValue()})},{field:"stateDetail",headerName:"State Detail",renderCell:s}],[]),c=qt({cols:l,list:e.segsData,onSearch:()=>{o(_=>({..._,page:0}))}}),u=_=>{const{data:R}=_;return R.name||R.channel_name},d=b.useMemo(()=>[{field:"name",headerName:"Channel Name",renderCell:u,searchable:!0},{field:"collectionId",headerName:"Collection ID",searchable:!0},{field:"leaderId",headerName:"Leader ID",searchable:!0},{field:"nodeId",headerName:"Node ID",searchable:!0,renderCell:R=>R.getValue()||"-"},{field:"watchState",headerName:"Watch State",renderCell:R=>g.jsx(zo,{value:R.getValue()})},{field:"stateDetail",headerName:"State Detail",renderCell:s}],[]),f=qt({cols:d,list:e.channelsData,onSearch:()=>{a(_=>({..._,page:0}))}}),p=_=>{const R=_.getValue();return(R==null?void 0:R.join(", "))||"-"},h=b.useMemo(()=>[{field:"ID",headerName:"ID",searchable:!0},{field:"collectionID",headerName:"Collection ID",renderCell:R=>R.getValue()||"-",searchable:!0},{field:"rw_nodes",headerName:"RW Nodes",renderCell:p},{field:"ro_nodes",headerName:"RO Nodes",renderCell:p},{field:"resource_group",headerName:"Resource Group",renderCell:R=>R.getValue()||"-",searchable:!0}],[]),y=qt({cols:h,list:t.data}),C=_=>{const R=_.getValue();return g.jsx(lv,{json:R})},v=b.useMemo(()=>[{field:"name",headerName:"Name",searchable:!0},{field:"nodes",headerName:"Nodes",renderCell:p},{field:"cfg",headerName:"Cfg",renderCell:C}],[]),S=qt({cols:v,list:n.data}),m=_=>{o(R=>({...R,page:_}))},w=_=>{a(R=>({...R,page:_}))};return g.jsxs("div",{className:He("page-wrapper",Ri.query),children:[g.jsx(St,{title:"Segments",children:g.jsxs(g.Fragment,{children:[c.renderSearcher({defaultFilter:"collectionId",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(Ri.segs,"table-view")},columns:l,loading:e.isLoading,getRowId:_=>_.segment_id,rows:c.list,page:r.page,pageSize:r.pageSize,paginationMode:"client",showPagination:!0,onPageChange:m,rowCount:c.list.length||0})]})}),g.jsx(St,{title:"Channels",children:g.jsxs(g.Fragment,{children:[f.renderSearcher({defaultFilter:"collectionId",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(Ri.channels,"table-view")},columns:d,loading:e.isLoading,getRowId:_=>_.name,rows:f.list,page:i.page,pageSize:i.pageSize,paginationMode:"client",showPagination:!0,onPageChange:w,rowCount:f.list.length})]})}),g.jsx(St,{title:"Replicas",children:g.jsxs(g.Fragment,{children:[y.renderSearcher({defaultFilter:"ID",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(Ri.replicas,"table-view")},columns:h,loading:t.isLoading,getRowId:_=>_.ID,rows:y.list||[],showPagination:!1})]})}),g.jsx(St,{title:"Resource Groups",children:g.jsxs(g.Fragment,{children:[S.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(Ri.resourceGroups,"table-view")},columns:v,loading:n.isLoading,getRowId:_=>_.name,rows:S.list||[],showPagination:!1})]})})]})},cl={"noty-list":"_noty-list_uuq1r_1","noty-item-content":"_noty-item-content_uuq1r_7"},hK=()=>{const e=Mq(),[t,n]=b.useState({page:0,pageSize:10}),[r,o]=b.useState({page:0,pageSize:10}),i=C=>{const{data:v}=C;return v.name||v.channel_name},a=C=>{const v=C.getValue();return new Date(v).getFullYear()===1970?"N/A":v||"N/A"},s=b.useMemo(()=>[{field:"channel_name",headerName:"Channel Name",searchable:!0,renderCell:i},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"watch_state",headerName:"Watch State",renderCell:a},{field:"node_id",headerName:"Node ID"},{field:"check_point_ts",headerName:"Checkpoint Ts",renderCell:a}],[]),l=b.useMemo(()=>[{field:"segment_id",headerName:"Segment ID"},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"partition_id",headerName:"Partition ID"},{field:"channel",headerName:"Channel",searchable:!0},{field:"num_of_rows",headerName:"Num of Rows"},{field:"state",headerName:"State"},{field:"level",headerName:"Level",searchable:!0}],[]),c=qt({cols:l,list:e.seg.data,onSearch:()=>{o(C=>({...C,page:0}))}}),u=qt({cols:s,list:e.channel.data,onSearch:()=>{n(C=>({...C,page:0}))}}),d=C=>{o(v=>({...v,page:C}))},f=C=>{n(v=>({...v,page:C}))},p=C=>{const v=C==null?void 0:C.map(S=>g.jsx(A1,{severity:"warning",children:g.jsxs("div",{className:cl["noty-item-content"],children:[g.jsxs("strong",{children:[S.prefix,":"]}),g.jsx("span",{children:S.name}),g.jsx("strong",{children:S.msg})]})},S.name));return g.jsx("div",{className:cl["noty-list"],children:v})},h=e.channel.notifications.map(C=>({name:C.name||C.channel_name,prefix:"Channel",msg:C.notification})),y=e.seg.notifications.map(C=>({name:C.segment_id,prefix:"Segment",msg:C.notification}));return g.jsxs("div",{className:He("page-wrapper",cl.data),children:[g.jsx(St,{title:"Segments",children:g.jsxs(g.Fragment,{children:[c.renderSearcher({defaultFilter:"collection_id",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(cl[" = useTableFilter("],"table-view")},columns:l,loading:e.isLoading,getRowId:C=>C.name,rows:c.list,page:r.page,pageSize:r.pageSize,paginationMode:"client",showPagination:!0,onPageChange:d,rowCount:c.list.length}),p(y)]})}),g.jsx(St,{title:"Channels",children:g.jsxs(g.Fragment,{children:[u.renderSearcher({defaultFilter:"collection_id",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(cl.channels,"table-view")},columns:s,loading:e.isLoading,getRowId:C=>C.segment_id,rows:u.list,page:t.page,pageSize:t.pageSize,paginationMode:"client",showPagination:!0,onPageChange:f,rowCount:u.list.length}),p(h)]})})]})},Ti={"text-content":"_text-content_1tkuh_1"},mK=()=>{const e=Lq(),t=Aq(),n=Nq(),r=Dq(),o=jq(),i=w=>g.jsx("div",{className:Ti["text-content"],children:w||"-"}),a=w=>{const _=w.getValue();return(_==null?void 0:_.join(", "))||"-"},s=b.useMemo(()=>[{field:"task_name",headerName:"Task Name",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"task_type",headerName:"Task Type",searchable:!0},{field:"task_status",headerName:"Task Status",searchable:!0},{field:"actions",headerName:"Actions",renderCell:_=>i(a(_))}],[]),l=qt({cols:s,list:e.data}),c=(w,_)=>R=>{const{[w]:k,[_]:T}=R.data;return vK(Yd(k),Yd(T))},u=b.useMemo(()=>[{field:"plan_id",headerName:"Plan ID"},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"type",headerName:"Type",searchable:!0},{field:"state",headerName:"State",searchable:!0},{field:"start_time",headerName:"Start Time"},{field:"execution_time",headerName:"Execution Time",renderCell:c("start_time","end_Time")},{field:"total_rows",headerName:"Total Rows"},{field:"input_segments",headerName:"Input Segments",renderCell:a},{field:"result_segments",headerName:"Result Segments",renderCell:a}],[]),d=qt({cols:u,list:t.data}),f=b.useMemo(()=>[{field:"index_id",headerName:"Index ID",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"segment_id",headerName:"Segment ID",searchable:!0},{field:"build_id",headerName:"Build ID",searchable:!0},{field:"index_state",headerName:"Index State"},{field:"index_size",headerName:"Index Size",renderCell:_=>_.getValue()||"-"},{field:"__",headerName:"Execution Time",renderCell:c("create_time","finished_time")},{field:"create_time",headerName:"Create Time"}],[]),p=qt({cols:f,list:n.data}),h=w=>{const{state:_,reason:R}=w.data;return _==="Failed"?R:_},y=b.useMemo(()=>[{field:"job_id",headerName:"Job ID",searchable:!0},{field:"task_id",headerName:"Task ID",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"node_id",headerName:"Node ID",searchable:!0},{field:"state",headerName:"State",searchable:!0,renderCell:h,searchBy:(_,R)=>R.filter(k=>h({data:k}).toLowerCase().includes(_.toLowerCase().trim()))},{field:"task_type",headerName:"Task Type"},{field:"created_time",headerName:"Created Time"},{field:"execution_time",headerName:"Execution Time",renderCell:c("created_time","complete_time")}],[]),C=qt({cols:y,list:r.data}),v=w=>{const _=w.getValue();return _?`datanode-${_}`:"-"},S=b.useMemo(()=>[{field:"segment_id",headerName:"Segment ID",searchable:!0},{field:"batch_rows",headerName:"Batch Rows"},{field:"segment_level",headerName:"Segment Level",searchable:!0},{field:"ts_from",headerName:"Timestamp From"},{field:"ts_to",headerName:"Timestamp To"},{field:"delta_row_count",headerName:"Delta Row Count"},{field:"flush_size",headerName:"Flush Size"},{field:"running_time",headerName:"Running Time"},{field:"node_id",headerName:"Node ID",searchable:!0,renderCell:v}],[]),m=qt({cols:S,list:o.data});return g.jsxs("div",{className:He("page-wrapper",Ti.tasks),children:[g.jsx(St,{title:"QueryCoord Tasks",children:g.jsxs(g.Fragment,{children:[l.renderSearcher({defaultFilter:"task_name",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(Ti["tasks-table"],"table-view")},columns:s,loading:e.isLoading,getRowId:w=>w.task_name,rows:l.list||[]})]})}),g.jsx(St,{title:"Compaction Tasks",children:g.jsxs(g.Fragment,{children:[d.renderSearcher({defaultFilter:"collection_id",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(Ti.compaction,"table-view")},columns:u,loading:t.isLoading,getRowId:w=>w.plan_id,rows:d.list||[]})]})}),g.jsx(St,{title:"Index Build Tasks",children:g.jsxs(g.Fragment,{children:[p.renderSearcher({defaultFilter:"index_id",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(Ti["index-build"],"table-view")},columns:f,loading:n.isLoading,getRowId:w=>w.index_id,rows:p.list||[]})]})}),g.jsx(St,{title:"Import Tasks",children:g.jsxs(g.Fragment,{children:[C.renderSearcher({defaultFilter:"job_id",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(Ti.import,"table-view")},columns:y,loading:r.isLoading,getRowId:w=>w.job_id,rows:C.list||[]})]})}),g.jsx(St,{title:"Sync Tasks",children:g.jsxs(g.Fragment,{children:[m.renderSearcher({defaultFilter:"segment_id",className:"table-view-filter-searcher"}),g.jsx(ht,{classes:{tableContainer:He(Ti.sync,"table-view")},columns:S,loading:o.isLoading,getRowId:w=>w.segment_id,rows:m.list||[]})]})})]})};function vK(e,t){const n=t.diff(e),r=Math.floor(n/1e3),o=Math.floor(r/60),i=Math.floor(o/60),a=Math.floor(i/24),s=Math.floor(a/30),l=Math.floor(s/12);return l>0?`${l}year${l>1?"s":""}`:s>0?`${s} month${s>1?"s":""}`:a>0?`${a} day${a>1?"s":""}`:i>0?`${i} h`:o>0?`${o} m`:r>0?`${r} s`:"< 1s"}const yK="_notice_q5p05_5",sh={"slow-requests":"_slow-requests_q5p05_1","sr-table":"_sr-table_q5p05_1",notice:yK},bK=()=>{const e=Fq(),t=r=>g.jsx(lv,{ellipsis:!0,json:r.getValue()}),n=b.useMemo(()=>[{field:"time",headerName:"Time"},{field:"trace_id",headerName:"Trace ID"},{field:"type",headerName:"Request"},{field:"user",headerName:"User",renderCell:o=>o.getValue()||"unknown"},{field:"database",headerName:"Database"},{field:"collection",headerName:"Collection"},{field:"query_params",headerName:"Parameters",renderCell:t},{field:"duration",headerName:"Duration"}],[]);return g.jsx("div",{className:He("page-wrapper",sh["slow-requests"]),children:g.jsx(St,{title:"Slow Requests",children:g.jsxs(g.Fragment,{children:[g.jsx("div",{className:sh.notice,children:g.jsxs(A1,{severity:"warning",children:[g.jsx("strong",{children:"Notice: "})," Slow request in the last 5 minutes."]})}),g.jsx(ht,{classes:{tableContainer:He(sh["sr-table"],"table-view")},columns:n,loading:e.isLoading,getRowId:r=>r.task_name,rows:e.data||[]})]})})})},lh={},xK=()=>{const e=Bq(),[t,n]=b.useState({page:0,pageSize:10}),[r,o]=b.useState({}),i=u=>{n(d=>({...d,page:u}))},a=u=>g.jsx("div",{className:lh["text-content"],children:u||"-"}),s=b.useMemo(()=>[{field:"key",headerName:"Attribute"},{field:"value",headerName:"Value",renderCell:d=>a(d.getValue())}],[]),l=u=>{o(d=>({...d,q:u.target.value}))},c=b.useMemo(()=>{const u=r.q||"";return(e.data||[]).filter(d=>{const f=d.key.toLowerCase().includes(u.toLowerCase()),p=d.value.toLowerCase().includes(u.toLowerCase());return f||p})},[e.data,r]);return g.jsx("div",{className:He("page-wrapper",lh["slow-requests"]),children:g.jsx(St,{title:"Milvus Configurations",children:g.jsxs(g.Fragment,{children:[g.jsx(N1,{classes:{root:"table-view-searcher"},type:"number",value:r.q,onChange:l,placeholder:"Search attribute or value...",onPointerEnterCapture:()=>{},onPointerLeaveCapture:()=>{}}),g.jsx(ht,{classes:{tableContainer:He(lh["sr-table"],"table-view")},columns:s,loading:e.isLoading,getRowId:u=>u.task_name,rows:c,page:t.page,pageSize:t.pageSize,paginationMode:"client",showPagination:!0,onPageChange:i,rowCount:c.length})]})})})},SK="_trigger_1f0gw_1",wK="_opened_1f0gw_6",Pu={trigger:SK,opened:wK,"tools-menu":"_tools-menu_1f0gw_13","menu-item-content":"_menu-item-content_1f0gw_24"},CK=e=>{const[t,n]=b.useState(null),r=!!t,o=b.useMemo(()=>[{name:"Pprof",link:"/debug/pprof"},{name:"Memory Data Visualization",link:"/static"}],[]),i=f=>()=>{window.open(f.link,"_blank")},a=()=>o.map(f=>g.jsx($c,{onClick:i(f),children:g.jsxs("div",{className:Pu["menu-item-content"],children:[f.name,g.jsx(Cm,{})]})})),s=()=>{n(null)},l=g.jsx($1,{open:r,anchorEl:t,onClose:s,container:document.body,autoFocus:!1,classes:{paper:Pu["tools-menu"]},children:a()}),c=f=>{n(p=>p?null:f.currentTarget)},u=He(Pu.trigger,r&&Pu.opened,e.className),d=g.jsxs("span",{className:u,onClick:c,children:["Tools",g.jsx(ia,{})]});return g.jsxs(g.Fragment,{children:[d,l]})},_K="_header_wg0jk_7",RK="_nav_wg0jk_18",TK="_active_wg0jk_26",PK="_others_wg0jk_32",kK="_content_wg0jk_45",Tr={header:_K,nav:RK,"nav-item":"_nav-item_wg0jk_22",active:TK,others:PK,"zilliz-link":"_zilliz-link_wg0jk_35","zilliz-link-text":"_zilliz-link-text_wg0jk_41",content:kK,"with-ad":"_with-ad_wg0jk_49"},uo={"base-info":"_base-info_ubkl2_12","info-row":"_info-row_ubkl2_15","info-row-label":"_info-row-label_ubkl2_22","info-row-value":"_info-row-value_ubkl2_26","base-info-form":"_base-info-form_ubkl2_29","base-info-form-label":"_base-info-form-label_ubkl2_32"},$K=()=>{const{identifier:e}=zk(),{collection:t,indexes:n,segments:r,collectionState:o}=mq(e),i=[{label:"Collection Id",key:"collection_id"},{label:"Collection Name",key:"collection_name"},{label:"Database Name",key:"db_name"},{label:"Created Time",key:"created_time"},{label:"Fields",key:"fields",mapValueTo:p=>p==null?void 0:p.fields.length},{label:"Shards Num",key:"shards_num"},{label:"Consistency level",key:"consistency_level"},{label:"Virtual Channels",key:"virtual_channel_names",mapValueTo:p=>(p==null?void 0:p.virtual_channel_names.join(", "))||"-"},{label:"Physical Channels",key:"physical_channel_names",mapValueTo:p=>(p==null?void 0:p.physical_channel_names.join(", "))||"-"},{label:"Status",key:"__",mapValueTo:()=>g.jsx(zo,{value:o.name,detail:o.desc})}],a=p=>{const h=p.data;return g.jsx(lv,{ellipsis:!0,json:h.user_index_params})},s=p=>{const h=p.toString(),y=p?"deleted":"none";return g.jsx(zo,{value:y,label:h})},l=b.useMemo(()=>[{field:"index_id",headerName:"Index ID"},{field:"name",headerName:"Index Name"},{field:"field_id",headerName:"Field ID"},{field:"create_time",headerName:"Created Time"},{field:"is_deleted",headerName:"IsDeleted",renderCell:h=>s(h.getValue())},{field:"user_index_params",headerName:"User Index Params",renderCell:a}],[]),c=b.useMemo(()=>[{field:"id",headerName:"Segment ID"},{field:"nodeId",headerName:"Node ID"},{field:"rowsCount",headerName:"Rows"},{field:"state",headerName:"State"},{field:"level",headerName:"Level"},{field:"buildIndexState",headerName:"Build Index State",renderCell:h=>g.jsx(zo,{value:h.getValue()})},{field:"loadIndexState",headerName:"Load Index State",renderCell:h=>g.jsx(zo,{value:h.getValue()})}],[]),u=b.useMemo(()=>[{field:"name",headerName:"Name"},{field:"field_id",headerName:"Field ID"},{field:"data_type",headerName:"Data Type"},{field:"element_type",headerName:"Element Type"},{field:"default_value",headerName:"Default Value"},{field:"is_primary_key",headerName:"Is Primary Key",renderCell:h=>g.jsx(zo,{value:(!!h.getValue()).toString()})},{field:"auto_id",headerName:"Auto ID",renderCell:h=>g.jsx(zo,{value:(!!h.getValue()).toString()})}],[]),d=b.useMemo(()=>[{field:"partition_name",headerName:"Name"},{field:"partition_id",headerName:"ID"},{field:"created_utc_timestamp",headerName:"Created Time"}],[]),f=()=>{const p=i.map(h=>g.jsxs("div",{className:uo["info-row"],children:[g.jsx("div",{className:uo["info-row-label"],children:h.label}),g.jsx("div",{className:uo["info-row-value"],children:h.mapValueTo?h.mapValueTo(t):t==null?void 0:t[h.key]})]},h.key));return g.jsxs("div",{className:uo["base-info"],children:[p,g.jsxs("div",{className:uo["base-info-form"],children:[g.jsx("div",{className:uo["base-info-form-label"],children:"Collection Fields"}),g.jsx(ht,{columns:u,rows:(t==null?void 0:t.fields)||[]})]}),g.jsxs("div",{className:uo["base-info-form"],children:[g.jsx("div",{className:uo["base-info-form-label"],children:"Collection Partitions"}),g.jsx(ht,{columns:d,rows:(t==null?void 0:t.partition_infos)||[]})]})]})};return g.jsxs("div",{className:He("page-wrapper",uo.wrapper),children:[g.jsx(St,{title:"Base Info",children:f()}),g.jsx(St,{title:"Indexes",children:g.jsx(ht,{columns:l,rows:n||[]})}),g.jsx(St,{title:"Segments",children:g.jsx(ht,{columns:c,rows:r||[]})})]})},EK="_wrapper_gbea3_12",MK="_title_gbea3_28",IK="_desc_gbea3_31",ku={wrapper:EK,title:MK,desc:IK,"link-btn":"_link-btn_gbea3_36"},OK=e=>{if(e.hidden)return!0;const t=()=>{window.open(AG,"_blank")};return g.jsxs("div",{className:ku.wrapper,children:[g.jsx(mt,{variant:"h4Medium",className:ku.title,children:"Try Managed Milvus for Free"}),g.jsx(mt,{variant:"body3Regular",className:ku.desc,children:"Zilliz Cloud is hassle-free, powered by Milvus and 10x faster."}),g.jsxs("div",{className:ku["link-btn"],onClick:t,children:["Get Started",g.jsx(LK,{})]})]})},LK=e=>g.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 14 14",...e,children:g.jsx("path",{d:"M3.5 11L11.0833 3.41669M11.0833 3.41669V10.6967M11.0833 3.41669H3.80333",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"})}),$u="withoutAd",AK=()=>{const e=Y0(),[t]=y4(),n=b.useMemo(()=>{var d;const c=localStorage.getItem($u);if(t.has($u)){const f=((d=t.get($u))==null?void 0:d.toLowerCase())!=="false";return localStorage.setItem($u,f.toString()),f}return c?c==="true":!1},[t]),r=()=>{e("/")},o=b.useMemo(()=>[{name:"Home",id:"index",path:"/",Comp:rK},{name:"Collections",id:"collections",path:"/collections",Comp:fK},{name:"Collections Detail",id:"collections-detail",path:"/collections/:identifier",Comp:$K,withoutNav:!0},{name:"Query",id:"query",path:"/query_component",Comp:gK},{name:"Query Target",withoutNav:!0,id:"query_target",path:"/query_target",Comp:pK},{name:"Data",id:"data",path:"/data_component",Comp:hK},{name:"Tasks",id:"tasks",path:"/tasks",Comp:mK},{name:"Slow Requests",id:"slowRequests",path:"/slow_requests",Comp:bK},{name:"Configurations",id:"configs",path:"/configs",Comp:xK}],[]),i=()=>g.jsx("div",{className:Tr.logo,onClick:r,children:g.jsx("img",{src:cq})}),a=()=>{const c=o.filter(u=>!u.withoutNav).map(u=>g.jsx(h4,{className:({isActive:d})=>He(Tr["nav-item"],d&&Tr.active),to:u.path,children:u.name},u.id));return c.push(g.jsx(CK,{className:Tr["nav-item"]})),g.jsx("div",{className:Tr.nav,children:c})},s=()=>g.jsx("div",{className:Tr.others}),l=()=>o.map(c=>g.jsx(n2,{path:c.path,Component:c.Comp},c.id));return g.jsxs("div",{className:Tr.layout,children:[g.jsxs("header",{className:Tr.header,children:[i(),a(),s()]}),g.jsxs("div",{className:He(Tr.content,!n&&Tr["with-ad"]),children:[g.jsx("div",{className:Tr.detail,children:g.jsx(r4,{children:l()})}),g.jsx(OK,{hidden:!!n})]})]})},NK=()=>{const e=cB("enUS");L3(),WC(document.getElementById("root")).render(g.jsx(vM,{theme:e,children:g.jsx(f4,{basename:"webui",children:g.jsx(fH,{value:{revalidateIfStale:!1,revalidateOnFocus:!1,revalidateOnReconnect:!1},children:g.jsx(AK,{})})})}))};NK(); diff --git a/internal/http/webui/assets/index-DH8a4Gc3.js b/internal/http/webui/assets/index-DH8a4Gc3.js new file mode 100644 index 0000000000000..dce69e6b298ab --- /dev/null +++ b/internal/http/webui/assets/index-DH8a4Gc3.js @@ -0,0 +1,1502 @@ +var Z3=Object.defineProperty;var Q3=(e,t,n)=>t in e?Z3(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Us=(e,t,n)=>Q3(e,typeof t!="symbol"?t+"":t,n);function Y3(e,t){for(var n=0;nr[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}})();var Vl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Oo(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function X3(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}),n}var BS={exports:{}},uf={},zS={exports:{}},Ze={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var wc=Symbol.for("react.element"),J3=Symbol.for("react.portal"),eT=Symbol.for("react.fragment"),tT=Symbol.for("react.strict_mode"),nT=Symbol.for("react.profiler"),rT=Symbol.for("react.provider"),oT=Symbol.for("react.context"),iT=Symbol.for("react.forward_ref"),aT=Symbol.for("react.suspense"),sT=Symbol.for("react.memo"),lT=Symbol.for("react.lazy"),yv=Symbol.iterator;function cT(e){return e===null||typeof e!="object"?null:(e=yv&&e[yv]||e["@@iterator"],typeof e=="function"?e:null)}var HS={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},VS=Object.assign,WS={};function ks(e,t,n){this.props=e,this.context=t,this.refs=WS,this.updater=n||HS}ks.prototype.isReactComponent={};ks.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ks.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function US(){}US.prototype=ks.prototype;function u0(e,t,n){this.props=e,this.context=t,this.refs=WS,this.updater=n||HS}var d0=u0.prototype=new US;d0.constructor=u0;VS(d0,ks.prototype);d0.isPureReactComponent=!0;var bv=Array.isArray,GS=Object.prototype.hasOwnProperty,f0={current:null},qS={key:!0,ref:!0,__self:!0,__source:!0};function KS(e,t,n){var r,o={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)GS.call(t,r)&&!qS.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(s===1)o.children=n;else if(1>>1,z=E[H];if(0>>1;Ho(W,B))Vo(ee,W)?(E[H]=ee,E[V]=B,H=V):(E[H]=W,E[F]=B,H=F);else if(Vo(ee,B))E[H]=ee,E[V]=B,H=V;else break e}}return L}function o(E,L){var B=E.sortIndex-L.sortIndex;return B!==0?B:E.id-L.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],c=[],u=1,d=null,f=3,g=!1,m=!1,y=!1,C=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,S=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function h(E){for(var L=n(c);L!==null;){if(L.callback===null)r(c);else if(L.startTime<=E)r(c),L.sortIndex=L.expirationTime,t(l,L);else break;L=n(c)}}function w(E){if(y=!1,h(E),!m)if(n(l)!==null)m=!0,N(_);else{var L=n(c);L!==null&&A(w,L.startTime-E)}}function _(E,L){m=!1,y&&(y=!1,v(R),R=-1),g=!0;var B=f;try{for(h(L),d=n(l);d!==null&&(!(d.expirationTime>L)||E&&!$());){var H=d.callback;if(typeof H=="function"){d.callback=null,f=d.priorityLevel;var z=H(d.expirationTime<=L);L=e.unstable_now(),typeof z=="function"?d.callback=z:d===n(l)&&r(l),h(L)}else r(l);d=n(l)}if(d!==null)var j=!0;else{var F=n(c);F!==null&&A(w,F.startTime-L),j=!1}return j}finally{d=null,f=B,g=!1}}var T=!1,k=null,R=-1,P=5,x=-1;function $(){return!(e.unstable_now()-xE||125H?(E.sortIndex=B,t(c,E),n(l)===null&&E===n(c)&&(y?(v(R),R=-1):y=!0,A(w,B-H))):(E.sortIndex=z,t(l,E),m||g||(m=!0,N(_))),E},e.unstable_shouldYield=$,e.unstable_wrapCallback=function(E){var L=f;return function(){var B=f;f=L;try{return E.apply(this,arguments)}finally{f=B}}}})(JS);XS.exports=JS;var xT=XS.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ST=b,tr=xT;function he(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),vh=Object.prototype.hasOwnProperty,wT=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Sv={},wv={};function CT(e){return vh.call(wv,e)?!0:vh.call(Sv,e)?!1:wT.test(e)?wv[e]=!0:(Sv[e]=!0,!1)}function _T(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function RT(e,t,n,r){if(t===null||typeof t>"u"||_T(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function In(e,t,n,r,o,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var cn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){cn[e]=new In(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];cn[t]=new In(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){cn[e]=new In(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){cn[e]=new In(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){cn[e]=new In(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){cn[e]=new In(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){cn[e]=new In(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){cn[e]=new In(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){cn[e]=new In(e,5,!1,e.toLowerCase(),null,!1,!1)});var g0=/[\-:]([a-z])/g;function h0(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(g0,h0);cn[t]=new In(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(g0,h0);cn[t]=new In(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(g0,h0);cn[t]=new In(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){cn[e]=new In(e,1,!1,e.toLowerCase(),null,!1,!1)});cn.xlinkHref=new In("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){cn[e]=new In(e,1,!1,e.toLowerCase(),null,!0,!0)});function m0(e,t,n,r){var o=cn.hasOwnProperty(t)?cn[t]:null;(o!==null?o.type!==0:r||!(2s||o[a]!==i[s]){var l=` +`+o[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{zp=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?gl(e):""}function TT(e){switch(e.tag){case 5:return gl(e.type);case 16:return gl("Lazy");case 13:return gl("Suspense");case 19:return gl("SuspenseList");case 0:case 2:case 15:return e=Hp(e.type,!1),e;case 11:return e=Hp(e.type.render,!1),e;case 1:return e=Hp(e.type,!0),e;default:return""}}function Sh(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ma:return"Fragment";case Ea:return"Portal";case yh:return"Profiler";case v0:return"StrictMode";case bh:return"Suspense";case xh:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case nw:return(e.displayName||"Context")+".Consumer";case tw:return(e._context.displayName||"Context")+".Provider";case y0:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case b0:return t=e.displayName||null,t!==null?t:Sh(e.type)||"Memo";case zo:t=e._payload,e=e._init;try{return Sh(e(t))}catch{}}return null}function PT(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Sh(t);case 8:return t===v0?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function pi(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ow(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function kT(e){var t=ow(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Zc(e){e._valueTracker||(e._valueTracker=kT(e))}function iw(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ow(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function dd(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function wh(e,t){var n=t.checked;return _t({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function _v(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=pi(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function aw(e,t){t=t.checked,t!=null&&m0(e,"checked",t,!1)}function Ch(e,t){aw(e,t);var n=pi(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?_h(e,t.type,n):t.hasOwnProperty("defaultValue")&&_h(e,t.type,pi(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Rv(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function _h(e,t,n){(t!=="number"||dd(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var hl=Array.isArray;function Za(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=Qc.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ul(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Cl={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},$T=["Webkit","ms","Moz","O"];Object.keys(Cl).forEach(function(e){$T.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Cl[t]=Cl[e]})});function uw(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Cl.hasOwnProperty(e)&&Cl[e]?(""+t).trim():t+"px"}function dw(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=uw(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var ET=_t({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ph(e,t){if(t){if(ET[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(he(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(he(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(he(61))}if(t.style!=null&&typeof t.style!="object")throw Error(he(62))}}function kh(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var $h=null;function x0(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Eh=null,Qa=null,Ya=null;function kv(e){if(e=Rc(e)){if(typeof Eh!="function")throw Error(he(280));var t=e.stateNode;t&&(t=hf(t),Eh(e.stateNode,e.type,t))}}function fw(e){Qa?Ya?Ya.push(e):Ya=[e]:Qa=e}function pw(){if(Qa){var e=Qa,t=Ya;if(Ya=Qa=null,kv(e),t)for(e=0;e>>=0,e===0?32:31-(zT(e)/HT|0)|0}var Yc=64,Xc=4194304;function ml(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function hd(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~o;s!==0?r=ml(s):(i&=a,i!==0&&(r=ml(i)))}else a=n&~o,a!==0?r=ml(a):i!==0&&(r=ml(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&o)&&(o=r&-r,i=t&-t,o>=i||o===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Cc(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Dr(t),e[t]=n}function GT(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Rl),Dv=" ",jv=!1;function Ow(e,t){switch(e){case"keyup":return xP.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Lw(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ia=!1;function wP(e,t){switch(e){case"compositionend":return Lw(t);case"keypress":return t.which!==32?null:(jv=!0,Dv);case"textInput":return e=t.data,e===Dv&&jv?null:e;default:return null}}function CP(e,t){if(Ia)return e==="compositionend"||!k0&&Ow(e,t)?(e=Mw(),Du=R0=Qo=null,Ia=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Hv(n)}}function jw(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?jw(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Fw(){for(var e=window,t=dd();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=dd(e.document)}return t}function $0(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function IP(e){var t=Fw(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&jw(n.ownerDocument.documentElement,n)){if(r!==null&&$0(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,i=Math.min(r.start,o);r=r.end===void 0?i:Math.min(r.end,o),!e.extend&&i>r&&(o=r,r=i,i=o),o=Vv(n,i);var a=Vv(n,r);o&&a&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Oa=null,Ah=null,Pl=null,Dh=!1;function Wv(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Dh||Oa==null||Oa!==dd(r)||(r=Oa,"selectionStart"in r&&$0(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Pl&&Yl(Pl,r)||(Pl=r,r=yd(Ah,"onSelect"),0Aa||(e.current=Vh[Aa],Vh[Aa]=null,Aa--)}function mt(e,t){Aa++,Vh[Aa]=e.current,e.current=t}var gi={},wn=bi(gi),Dn=bi(!1),Qi=gi;function as(e,t){var n=e.type.contextTypes;if(!n)return gi;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in n)o[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function jn(e){return e=e.childContextTypes,e!=null}function xd(){bt(Dn),bt(wn)}function Yv(e,t,n){if(wn.current!==gi)throw Error(he(168));mt(wn,t),mt(Dn,n)}function Kw(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(he(108,PT(e)||"Unknown",o));return _t({},n,r)}function Sd(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||gi,Qi=wn.current,mt(wn,e),mt(Dn,Dn.current),!0}function Xv(e,t,n){var r=e.stateNode;if(!r)throw Error(he(169));n?(e=Kw(e,t,Qi),r.__reactInternalMemoizedMergedChildContext=e,bt(Dn),bt(wn),mt(wn,e)):bt(Dn),mt(Dn,n)}var xo=null,mf=!1,ng=!1;function Zw(e){xo===null?xo=[e]:xo.push(e)}function WP(e){mf=!0,Zw(e)}function xi(){if(!ng&&xo!==null){ng=!0;var e=0,t=lt;try{var n=xo;for(lt=1;e>=a,o-=a,wo=1<<32-Dr(t)+o|n<R?(P=k,k=null):P=k.sibling;var x=f(v,k,h[R],w);if(x===null){k===null&&(k=P);break}e&&k&&x.alternate===null&&t(v,k),S=i(x,S,R),T===null?_=x:T.sibling=x,T=x,k=P}if(R===h.length)return n(v,k),St&&$i(v,R),_;if(k===null){for(;RR?(P=k,k=null):P=k.sibling;var $=f(v,k,x.value,w);if($===null){k===null&&(k=P);break}e&&k&&$.alternate===null&&t(v,k),S=i($,S,R),T===null?_=$:T.sibling=$,T=$,k=P}if(x.done)return n(v,k),St&&$i(v,R),_;if(k===null){for(;!x.done;R++,x=h.next())x=d(v,x.value,w),x!==null&&(S=i(x,S,R),T===null?_=x:T.sibling=x,T=x);return St&&$i(v,R),_}for(k=r(v,k);!x.done;R++,x=h.next())x=g(k,v,R,x.value,w),x!==null&&(e&&x.alternate!==null&&k.delete(x.key===null?R:x.key),S=i(x,S,R),T===null?_=x:T.sibling=x,T=x);return e&&k.forEach(function(I){return t(v,I)}),St&&$i(v,R),_}function C(v,S,h,w){if(typeof h=="object"&&h!==null&&h.type===Ma&&h.key===null&&(h=h.props.children),typeof h=="object"&&h!==null){switch(h.$$typeof){case Kc:e:{for(var _=h.key,T=S;T!==null;){if(T.key===_){if(_=h.type,_===Ma){if(T.tag===7){n(v,T.sibling),S=o(T,h.props.children),S.return=v,v=S;break e}}else if(T.elementType===_||typeof _=="object"&&_!==null&&_.$$typeof===zo&&ty(_)===T.type){n(v,T.sibling),S=o(T,h.props),S.ref=Ys(v,T,h),S.return=v,v=S;break e}n(v,T);break}else t(v,T);T=T.sibling}h.type===Ma?(S=Vi(h.props.children,v.mode,w,h.key),S.return=v,v=S):(w=Uu(h.type,h.key,h.props,null,v.mode,w),w.ref=Ys(v,S,h),w.return=v,v=w)}return a(v);case Ea:e:{for(T=h.key;S!==null;){if(S.key===T)if(S.tag===4&&S.stateNode.containerInfo===h.containerInfo&&S.stateNode.implementation===h.implementation){n(v,S.sibling),S=o(S,h.children||[]),S.return=v,v=S;break e}else{n(v,S);break}else t(v,S);S=S.sibling}S=ug(h,v.mode,w),S.return=v,v=S}return a(v);case zo:return T=h._init,C(v,S,T(h._payload),w)}if(hl(h))return m(v,S,h,w);if(Gs(h))return y(v,S,h,w);iu(v,h)}return typeof h=="string"&&h!==""||typeof h=="number"?(h=""+h,S!==null&&S.tag===6?(n(v,S.sibling),S=o(S,h),S.return=v,v=S):(n(v,S),S=cg(h,v.mode,w),S.return=v,v=S),a(v)):n(v,S)}return C}var ls=Jw(!0),eC=Jw(!1),_d=bi(null),Rd=null,Fa=null,O0=null;function L0(){O0=Fa=Rd=null}function N0(e){var t=_d.current;bt(_d),e._currentValue=t}function Gh(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Ja(e,t){Rd=e,O0=Fa=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Nn=!0),e.firstContext=null)}function xr(e){var t=e._currentValue;if(O0!==e)if(e={context:e,memoizedValue:t,next:null},Fa===null){if(Rd===null)throw Error(he(308));Fa=e,Rd.dependencies={lanes:0,firstContext:e}}else Fa=Fa.next=e;return t}var Di=null;function A0(e){Di===null?Di=[e]:Di.push(e)}function tC(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,A0(t)):(n.next=o.next,o.next=n),t.interleaved=n,ko(e,r)}function ko(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Ho=!1;function D0(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function nC(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function _o(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function li(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,et&2){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,ko(e,n)}return o=r.interleaved,o===null?(t.next=t,A0(r)):(t.next=o.next,o.next=t),r.interleaved=t,ko(e,n)}function Fu(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,w0(e,n)}}function ny(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?o=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?o=i=t:i=i.next=t}else o=i=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Td(e,t,n,r){var o=e.updateQueue;Ho=!1;var i=o.firstBaseUpdate,a=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var l=s,c=l.next;l.next=null,a===null?i=c:a.next=c,a=l;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==a&&(s===null?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(i!==null){var d=o.baseState;a=0,u=c=l=null,s=i;do{var f=s.lane,g=s.eventTime;if((r&f)===f){u!==null&&(u=u.next={eventTime:g,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var m=e,y=s;switch(f=t,g=n,y.tag){case 1:if(m=y.payload,typeof m=="function"){d=m.call(g,d,f);break e}d=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=y.payload,f=typeof m=="function"?m.call(g,d,f):m,f==null)break e;d=_t({},d,f);break e;case 2:Ho=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,f=o.effects,f===null?o.effects=[s]:f.push(s))}else g={eventTime:g,lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(c=u=g,l=d):u=u.next=g,a|=f;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;f=s,s=f.next,f.next=null,o.lastBaseUpdate=f,o.shared.pending=null}}while(!0);if(u===null&&(l=d),o.baseState=l,o.firstBaseUpdate=c,o.lastBaseUpdate=u,t=o.shared.interleaved,t!==null){o=t;do a|=o.lane,o=o.next;while(o!==t)}else i===null&&(o.shared.lanes=0);Ji|=a,e.lanes=a,e.memoizedState=d}}function ry(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=og.transition;og.transition={};try{e(!1),t()}finally{lt=n,og.transition=r}}function bC(){return Sr().memoizedState}function KP(e,t,n){var r=ui(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},xC(e))SC(t,n);else if(n=tC(e,t,n,r),n!==null){var o=En();jr(n,e,r,o),wC(n,t,r)}}function ZP(e,t,n){var r=ui(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(xC(e))SC(t,o);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,s=i(a,n);if(o.hasEagerState=!0,o.eagerState=s,zr(s,a)){var l=t.interleaved;l===null?(o.next=o,A0(t)):(o.next=l.next,l.next=o),t.interleaved=o;return}}catch{}finally{}n=tC(e,t,o,r),n!==null&&(o=En(),jr(n,e,r,o),wC(n,t,r))}}function xC(e){var t=e.alternate;return e===Ct||t!==null&&t===Ct}function SC(e,t){kl=kd=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function wC(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,w0(e,n)}}var $d={readContext:xr,useCallback:pn,useContext:pn,useEffect:pn,useImperativeHandle:pn,useInsertionEffect:pn,useLayoutEffect:pn,useMemo:pn,useReducer:pn,useRef:pn,useState:pn,useDebugValue:pn,useDeferredValue:pn,useTransition:pn,useMutableSource:pn,useSyncExternalStore:pn,useId:pn,unstable_isNewReconciler:!1},QP={readContext:xr,useCallback:function(e,t){return Yr().memoizedState=[e,t===void 0?null:t],e},useContext:xr,useEffect:iy,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,zu(4194308,4,gC.bind(null,t,e),n)},useLayoutEffect:function(e,t){return zu(4194308,4,e,t)},useInsertionEffect:function(e,t){return zu(4,2,e,t)},useMemo:function(e,t){var n=Yr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Yr();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=KP.bind(null,Ct,e),[r.memoizedState,e]},useRef:function(e){var t=Yr();return e={current:e},t.memoizedState=e},useState:oy,useDebugValue:U0,useDeferredValue:function(e){return Yr().memoizedState=e},useTransition:function(){var e=oy(!1),t=e[0];return e=qP.bind(null,e[1]),Yr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Ct,o=Yr();if(St){if(n===void 0)throw Error(he(407));n=n()}else{if(n=t(),en===null)throw Error(he(349));Xi&30||aC(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,iy(lC.bind(null,r,i,e),[e]),r.flags|=2048,ic(9,sC.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Yr(),t=en.identifierPrefix;if(St){var n=Co,r=wo;n=(r&~(1<<32-Dr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=rc++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[no]=t,e[ec]=r,IC(e,t,!1,!1),t.stateNode=e;e:{switch(a=kh(n,r),n){case"dialog":yt("cancel",e),yt("close",e),o=r;break;case"iframe":case"object":case"embed":yt("load",e),o=r;break;case"video":case"audio":for(o=0;ods&&(t.flags|=128,r=!0,Xs(i,!1),t.lanes=4194304)}else{if(!r)if(e=Pd(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Xs(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!St)return gn(t),null}else 2*Lt()-i.renderingStartTime>ds&&n!==1073741824&&(t.flags|=128,r=!0,Xs(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Lt(),t.sibling=null,n=wt.current,mt(wt,r?n&1|2:n&1),t):(gn(t),null);case 22:case 23:return Y0(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?qn&1073741824&&(gn(t),t.subtreeFlags&6&&(t.flags|=8192)):gn(t),null;case 24:return null;case 25:return null}throw Error(he(156,t.tag))}function ok(e,t){switch(M0(t),t.tag){case 1:return jn(t.type)&&xd(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return cs(),bt(Dn),bt(wn),B0(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return F0(t),null;case 13:if(bt(wt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(he(340));ss()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return bt(wt),null;case 4:return cs(),null;case 10:return N0(t.type._context),null;case 22:case 23:return Y0(),null;case 24:return null;default:return null}}var su=!1,xn=!1,ik=typeof WeakSet=="function"?WeakSet:Set,_e=null;function Ba(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){It(e,t,r)}else n.current=null}function tm(e,t,n){try{n()}catch(r){It(e,t,r)}}var my=!1;function ak(e,t){if(jh=md,e=Fw(),$0(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,s=-1,l=-1,c=0,u=0,d=e,f=null;t:for(;;){for(var g;d!==n||o!==0&&d.nodeType!==3||(s=a+o),d!==i||r!==0&&d.nodeType!==3||(l=a+r),d.nodeType===3&&(a+=d.nodeValue.length),(g=d.firstChild)!==null;)f=d,d=g;for(;;){if(d===e)break t;if(f===n&&++c===o&&(s=a),f===i&&++u===r&&(l=a),(g=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=g}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Fh={focusedElem:e,selectionRange:n},md=!1,_e=t;_e!==null;)if(t=_e,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,_e=e;else for(;_e!==null;){t=_e;try{var m=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var y=m.memoizedProps,C=m.memoizedState,v=t.stateNode,S=v.getSnapshotBeforeUpdate(t.elementType===t.type?y:Er(t.type,y),C);v.__reactInternalSnapshotBeforeUpdate=S}break;case 3:var h=t.stateNode.containerInfo;h.nodeType===1?h.textContent="":h.nodeType===9&&h.documentElement&&h.removeChild(h.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(he(163))}}catch(w){It(t,t.return,w)}if(e=t.sibling,e!==null){e.return=t.return,_e=e;break}_e=t.return}return m=my,my=!1,m}function $l(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var i=o.destroy;o.destroy=void 0,i!==void 0&&tm(t,n,i)}o=o.next}while(o!==r)}}function bf(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function nm(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function NC(e){var t=e.alternate;t!==null&&(e.alternate=null,NC(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[no],delete t[ec],delete t[Hh],delete t[HP],delete t[VP])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function AC(e){return e.tag===5||e.tag===3||e.tag===4}function vy(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||AC(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function rm(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=bd));else if(r!==4&&(e=e.child,e!==null))for(rm(e,t,n),e=e.sibling;e!==null;)rm(e,t,n),e=e.sibling}function om(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(om(e,t,n),e=e.sibling;e!==null;)om(e,t,n),e=e.sibling}var rn=null,Mr=!1;function Fo(e,t,n){for(n=n.child;n!==null;)DC(e,t,n),n=n.sibling}function DC(e,t,n){if(oo&&typeof oo.onCommitFiberUnmount=="function")try{oo.onCommitFiberUnmount(df,n)}catch{}switch(n.tag){case 5:xn||Ba(n,t);case 6:var r=rn,o=Mr;rn=null,Fo(e,t,n),rn=r,Mr=o,rn!==null&&(Mr?(e=rn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):rn.removeChild(n.stateNode));break;case 18:rn!==null&&(Mr?(e=rn,n=n.stateNode,e.nodeType===8?tg(e.parentNode,n):e.nodeType===1&&tg(e,n),Zl(e)):tg(rn,n.stateNode));break;case 4:r=rn,o=Mr,rn=n.stateNode.containerInfo,Mr=!0,Fo(e,t,n),rn=r,Mr=o;break;case 0:case 11:case 14:case 15:if(!xn&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var i=o,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&tm(n,t,a),o=o.next}while(o!==r)}Fo(e,t,n);break;case 1:if(!xn&&(Ba(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){It(n,t,s)}Fo(e,t,n);break;case 21:Fo(e,t,n);break;case 22:n.mode&1?(xn=(r=xn)||n.memoizedState!==null,Fo(e,t,n),xn=r):Fo(e,t,n);break;default:Fo(e,t,n)}}function yy(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new ik),t.forEach(function(r){var o=hk.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function Pr(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=a),r&=~i}if(r=o,r=Lt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*lk(r/1960))-r,10e?16:e,Yo===null)var r=!1;else{if(e=Yo,Yo=null,Id=0,et&6)throw Error(he(331));var o=et;for(et|=4,_e=e.current;_e!==null;){var i=_e,a=i.child;if(_e.flags&16){var s=i.deletions;if(s!==null){for(var l=0;lLt()-Z0?Hi(e,0):K0|=n),Fn(e,t)}function UC(e,t){t===0&&(e.mode&1?(t=Xc,Xc<<=1,!(Xc&130023424)&&(Xc=4194304)):t=1);var n=En();e=ko(e,t),e!==null&&(Cc(e,t,n),Fn(e,n))}function gk(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),UC(e,n)}function hk(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(he(314))}r!==null&&r.delete(t),UC(e,n)}var GC;GC=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Dn.current)Nn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Nn=!1,nk(e,t,n);Nn=!!(e.flags&131072)}else Nn=!1,St&&t.flags&1048576&&Qw(t,Cd,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Hu(e,t),e=t.pendingProps;var o=as(t,wn.current);Ja(t,n),o=H0(null,t,r,e,o,n);var i=V0();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,jn(r)?(i=!0,Sd(t)):i=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,D0(t),o.updater=yf,t.stateNode=o,o._reactInternals=t,Kh(t,r,e,n),t=Yh(null,t,r,!0,i,n)):(t.tag=0,St&&i&&E0(t),kn(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Hu(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=vk(r),e=Er(r,e),o){case 0:t=Qh(null,t,r,e,n);break e;case 1:t=py(null,t,r,e,n);break e;case 11:t=dy(null,t,r,e,n);break e;case 14:t=fy(null,t,r,Er(r.type,e),n);break e}throw Error(he(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Er(r,o),Qh(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Er(r,o),py(e,t,r,o,n);case 3:e:{if($C(t),e===null)throw Error(he(387));r=t.pendingProps,i=t.memoizedState,o=i.element,nC(e,t),Td(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){o=us(Error(he(423)),t),t=gy(e,t,r,n,o);break e}else if(r!==o){o=us(Error(he(424)),t),t=gy(e,t,r,n,o);break e}else for(Yn=si(t.stateNode.containerInfo.firstChild),Xn=t,St=!0,Or=null,n=eC(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ss(),r===o){t=$o(e,t,n);break e}kn(e,t,r,n)}t=t.child}return t;case 5:return rC(t),e===null&&Uh(t),r=t.type,o=t.pendingProps,i=e!==null?e.memoizedProps:null,a=o.children,Bh(r,o)?a=null:i!==null&&Bh(r,i)&&(t.flags|=32),kC(e,t),kn(e,t,a,n),t.child;case 6:return e===null&&Uh(t),null;case 13:return EC(e,t,n);case 4:return j0(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=ls(t,null,r,n):kn(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Er(r,o),dy(e,t,r,o,n);case 7:return kn(e,t,t.pendingProps,n),t.child;case 8:return kn(e,t,t.pendingProps.children,n),t.child;case 12:return kn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,a=o.value,mt(_d,r._currentValue),r._currentValue=a,i!==null)if(zr(i.value,a)){if(i.children===o.children&&!Dn.current){t=$o(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){a=i.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(i.tag===1){l=_o(-1,n&-n),l.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var u=c.pending;u===null?l.next=l:(l.next=u.next,u.next=l),c.pending=l}}i.lanes|=n,l=i.alternate,l!==null&&(l.lanes|=n),Gh(i.return,n,t),s.lanes|=n;break}l=l.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(he(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),Gh(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}kn(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Ja(t,n),o=xr(o),r=r(o),t.flags|=1,kn(e,t,r,n),t.child;case 14:return r=t.type,o=Er(r,t.pendingProps),o=Er(r.type,o),fy(e,t,r,o,n);case 15:return TC(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Er(r,o),Hu(e,t),t.tag=1,jn(r)?(e=!0,Sd(t)):e=!1,Ja(t,n),CC(t,r,o),Kh(t,r,o,n),Yh(null,t,r,!0,e,n);case 19:return MC(e,t,n);case 22:return PC(e,t,n)}throw Error(he(156,t.tag))};function qC(e,t){return xw(e,t)}function mk(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function mr(e,t,n,r){return new mk(e,t,n,r)}function J0(e){return e=e.prototype,!(!e||!e.isReactComponent)}function vk(e){if(typeof e=="function")return J0(e)?1:0;if(e!=null){if(e=e.$$typeof,e===y0)return 11;if(e===b0)return 14}return 2}function di(e,t){var n=e.alternate;return n===null?(n=mr(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Uu(e,t,n,r,o,i){var a=2;if(r=e,typeof e=="function")J0(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Ma:return Vi(n.children,o,i,t);case v0:a=8,o|=8;break;case yh:return e=mr(12,n,t,o|2),e.elementType=yh,e.lanes=i,e;case bh:return e=mr(13,n,t,o),e.elementType=bh,e.lanes=i,e;case xh:return e=mr(19,n,t,o),e.elementType=xh,e.lanes=i,e;case rw:return Sf(n,o,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case tw:a=10;break e;case nw:a=9;break e;case y0:a=11;break e;case b0:a=14;break e;case zo:a=16,r=null;break e}throw Error(he(130,e==null?e:typeof e,""))}return t=mr(a,n,t,o),t.elementType=e,t.type=r,t.lanes=i,t}function Vi(e,t,n,r){return e=mr(7,e,r,t),e.lanes=n,e}function Sf(e,t,n,r){return e=mr(22,e,r,t),e.elementType=rw,e.lanes=n,e.stateNode={isHidden:!1},e}function cg(e,t,n){return e=mr(6,e,null,t),e.lanes=n,e}function ug(e,t,n){return t=mr(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function yk(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Wp(0),this.expirationTimes=Wp(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Wp(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function e1(e,t,n,r,o,i,a,s,l){return e=new yk(e,t,n,s,l),t===1?(t=1,i===!0&&(t|=8)):t=0,i=mr(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},D0(i),e}function bk(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(YC)}catch(e){console.error(e)}}YC(),YS.exports=or;var o1=YS.exports;const uu=Oo(o1);var XC,Ty=o1;XC=Ty.createRoot,Ty.hydrateRoot;/** + * @remix-run/router v1.21.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function sc(){return sc=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function JC(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Rk(){return Math.random().toString(36).substr(2,8)}function ky(e,t){return{usr:e.state,key:e.key,idx:t}}function cm(e,t,n,r){return n===void 0&&(n=null),sc({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ms(t):t,{state:n,key:t&&t.key||r||Rk()})}function Nd(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Ms(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function Tk(e,t,n,r){r===void 0&&(r={});let{window:o=document.defaultView,v5Compat:i=!1}=r,a=o.history,s=Xo.Pop,l=null,c=u();c==null&&(c=0,a.replaceState(sc({},a.state,{idx:c}),""));function u(){return(a.state||{idx:null}).idx}function d(){s=Xo.Pop;let C=u(),v=C==null?null:C-c;c=C,l&&l({action:s,location:y.location,delta:v})}function f(C,v){s=Xo.Push;let S=cm(y.location,C,v);c=u()+1;let h=ky(S,c),w=y.createHref(S);try{a.pushState(h,"",w)}catch(_){if(_ instanceof DOMException&&_.name==="DataCloneError")throw _;o.location.assign(w)}i&&l&&l({action:s,location:y.location,delta:1})}function g(C,v){s=Xo.Replace;let S=cm(y.location,C,v);c=u();let h=ky(S,c),w=y.createHref(S);a.replaceState(h,"",w),i&&l&&l({action:s,location:y.location,delta:0})}function m(C){let v=o.location.origin!=="null"?o.location.origin:o.location.href,S=typeof C=="string"?C:Nd(C);return S=S.replace(/ $/,"%20"),Ot(v,"No window.location.(origin|href) available to create URL for href: "+S),new URL(S,v)}let y={get action(){return s},get location(){return e(o,a)},listen(C){if(l)throw new Error("A history only accepts one active listener");return o.addEventListener(Py,d),l=C,()=>{o.removeEventListener(Py,d),l=null}},createHref(C){return t(o,C)},createURL:m,encodeLocation(C){let v=m(C);return{pathname:v.pathname,search:v.search,hash:v.hash}},push:f,replace:g,go(C){return a.go(C)}};return y}var $y;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})($y||($y={}));function Pk(e,t,n){return n===void 0&&(n="/"),kk(e,t,n,!1)}function kk(e,t,n,r){let o=typeof t=="string"?Ms(t):t,i=fs(o.pathname||"/",n);if(i==null)return null;let a=e2(e);$k(a);let s=null;for(let l=0;s==null&&l{let l={relativePath:s===void 0?i.path||"":s,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};l.relativePath.startsWith("/")&&(Ot(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let c=fi([r,l.relativePath]),u=n.concat(l);i.children&&i.children.length>0&&(Ot(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),e2(i.children,t,u,c)),!(i.path==null&&!i.index)&&t.push({path:c,score:Ak(c,i.index),routesMeta:u})};return e.forEach((i,a)=>{var s;if(i.path===""||!((s=i.path)!=null&&s.includes("?")))o(i,a);else for(let l of t2(i.path))o(i,a,l)}),t}function t2(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return o?[i,""]:[i];let a=t2(r.join("/")),s=[];return s.push(...a.map(l=>l===""?i:[i,l].join("/"))),o&&s.push(...a),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function $k(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Dk(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const Ek=/^:[\w-]+$/,Mk=3,Ik=2,Ok=1,Lk=10,Nk=-2,Ey=e=>e==="*";function Ak(e,t){let n=e.split("/"),r=n.length;return n.some(Ey)&&(r+=Nk),t&&(r+=Ik),n.filter(o=>!Ey(o)).reduce((o,i)=>o+(Ek.test(i)?Mk:i===""?Ok:Lk),r)}function Dk(e,t){return e.length===t.length&&e.slice(0,-1).every((r,o)=>r===t[o])?e[e.length-1]-t[t.length-1]:0}function jk(e,t,n){let{routesMeta:r}=e,o={},i="/",a=[];for(let s=0;s{let{paramName:f,isOptional:g}=u;if(f==="*"){let y=s[d]||"";a=i.slice(0,i.length-y.length).replace(/(.)\/+$/,"$1")}const m=s[d];return g&&!m?c[f]=void 0:c[f]=(m||"").replace(/%2F/g,"/"),c},{}),pathname:i,pathnameBase:a,pattern:e}}function Fk(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),JC(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,s,l)=>(r.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":e!==""&&e!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),r]}function Bk(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return JC(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function fs(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function zk(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:o=""}=typeof e=="string"?Ms(e):e;return{pathname:n?n.startsWith("/")?n:Hk(n,t):t,search:Uk(r),hash:Gk(o)}}function Hk(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(o=>{o===".."?n.length>1&&n.pop():o!=="."&&n.push(o)}),n.length>1?n.join("/"):"/"}function dg(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function Vk(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function n2(e,t){let n=Vk(e);return t?n.map((r,o)=>o===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function r2(e,t,n,r){r===void 0&&(r=!1);let o;typeof e=="string"?o=Ms(e):(o=sc({},e),Ot(!o.pathname||!o.pathname.includes("?"),dg("?","pathname","search",o)),Ot(!o.pathname||!o.pathname.includes("#"),dg("#","pathname","hash",o)),Ot(!o.search||!o.search.includes("#"),dg("#","search","hash",o)));let i=e===""||o.pathname==="",a=i?"/":o.pathname,s;if(a==null)s=n;else{let d=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),d-=1;o.pathname=f.join("/")}s=d>=0?t[d]:"/"}let l=zk(o,s),c=a&&a!=="/"&&a.endsWith("/"),u=(i||a===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(c||u)&&(l.pathname+="/"),l}const fi=e=>e.join("/").replace(/\/\/+/g,"/"),Wk=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Uk=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Gk=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function qk(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const o2=["post","put","patch","delete"];new Set(o2);const Kk=["get",...o2];new Set(Kk);/** + * React Router v6.28.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function lc(){return lc=Object.assign?Object.assign.bind():function(e){for(var t=1;t{s.current=!0}),b.useCallback(function(c,u){if(u===void 0&&(u={}),!s.current)return;if(typeof c=="number"){r.go(c);return}let d=r2(c,JSON.parse(a),i,u.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:fi([t,d.pathname])),(u.replace?r.replace:r.push)(d,u.state,u)},[t,r,a,i,e])}function Yk(){let{matches:e}=b.useContext(wi),t=e[e.length-1];return t?t.params:{}}function $f(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=b.useContext(Si),{matches:o}=b.useContext(wi),{pathname:i}=Is(),a=JSON.stringify(n2(o,r.v7_relativeSplatPath));return b.useMemo(()=>r2(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function Xk(e,t){return Jk(e,t)}function Jk(e,t,n,r){Pc()||Ot(!1);let{navigator:o}=b.useContext(Si),{matches:i}=b.useContext(wi),a=i[i.length-1],s=a?a.params:{};a&&a.pathname;let l=a?a.pathnameBase:"/";a&&a.route;let c=Is(),u;if(t){var d;let C=typeof t=="string"?Ms(t):t;l==="/"||(d=C.pathname)!=null&&d.startsWith(l)||Ot(!1),u=C}else u=c;let f=u.pathname||"/",g=f;if(l!=="/"){let C=l.replace(/^\//,"").split("/");g="/"+f.replace(/^\//,"").split("/").slice(C.length).join("/")}let m=Pk(e,{pathname:g}),y=o4(m&&m.map(C=>Object.assign({},C,{params:Object.assign({},s,C.params),pathname:fi([l,o.encodeLocation?o.encodeLocation(C.pathname).pathname:C.pathname]),pathnameBase:C.pathnameBase==="/"?l:fi([l,o.encodeLocation?o.encodeLocation(C.pathnameBase).pathname:C.pathnameBase])})),i,n,r);return t&&y?b.createElement(Pf.Provider,{value:{location:lc({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:Xo.Pop}},y):y}function e4(){let e=l4(),t=qk(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,o={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},t),n?b.createElement("pre",{style:o},n):null,null)}const t4=b.createElement(e4,null);class n4 extends b.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?b.createElement(wi.Provider,{value:this.props.routeContext},b.createElement(a2.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function r4(e){let{routeContext:t,match:n,children:r}=e,o=b.useContext(Tf);return o&&o.static&&o.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=n.route.id),b.createElement(wi.Provider,{value:t},r)}function o4(e,t,n,r){var o;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,s=(o=n)==null?void 0:o.errors;if(s!=null){let u=a.findIndex(d=>d.route.id&&(s==null?void 0:s[d.route.id])!==void 0);u>=0||Ot(!1),a=a.slice(0,Math.min(a.length,u+1))}let l=!1,c=-1;if(n&&r&&r.v7_partialHydration)for(let u=0;u=0?a=a.slice(0,c+1):a=[a[0]];break}}}return a.reduceRight((u,d,f)=>{let g,m=!1,y=null,C=null;n&&(g=s&&d.route.id?s[d.route.id]:void 0,y=d.route.errorElement||t4,l&&(c<0&&f===0?(m=!0,C=null):c===f&&(m=!0,C=d.route.hydrateFallbackElement||null)));let v=t.concat(a.slice(0,f+1)),S=()=>{let h;return g?h=y:m?h=C:d.route.Component?h=b.createElement(d.route.Component,null):d.route.element?h=d.route.element:h=u,b.createElement(r4,{match:d,routeContext:{outlet:u,matches:v,isDataRoute:n!=null},children:h})};return n&&(d.route.ErrorBoundary||d.route.errorElement||f===0)?b.createElement(n4,{location:n.location,revalidation:n.revalidation,component:y,error:g,children:S(),routeContext:{outlet:null,matches:v,isDataRoute:!0}}):S()},null)}var l2=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(l2||{}),Dd=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Dd||{});function i4(e){let t=b.useContext(Tf);return t||Ot(!1),t}function a4(e){let t=b.useContext(i2);return t||Ot(!1),t}function s4(e){let t=b.useContext(wi);return t||Ot(!1),t}function c2(e){let t=s4(),n=t.matches[t.matches.length-1];return n.route.id||Ot(!1),n.route.id}function l4(){var e;let t=b.useContext(a2),n=a4(Dd.UseRouteError),r=c2(Dd.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function c4(){let{router:e}=i4(l2.UseNavigateStable),t=c2(Dd.UseNavigateStable),n=b.useRef(!1);return s2(()=>{n.current=!0}),b.useCallback(function(o,i){i===void 0&&(i={}),n.current&&(typeof o=="number"?e.navigate(o):e.navigate(o,lc({fromRouteId:t},i)))},[e,t])}const My={};function u4(e,t){My[t]||(My[t]=!0,console.warn(t))}const Iy=(e,t,n)=>u4(e,"⚠️ React Router Future Flag Warning: "+t+". "+("You can use the `"+e+"` future flag to opt-in early. ")+("For more information, see "+n+"."));function d4(e,t){e!=null&&e.v7_startTransition||Iy("v7_startTransition","React Router will begin wrapping state updates in `React.startTransition` in v7","https://reactrouter.com/v6/upgrading/future#v7_starttransition"),!(e!=null&&e.v7_relativeSplatPath)&&!t&&Iy("v7_relativeSplatPath","Relative route resolution within Splat routes is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath")}function u2(e){Ot(!1)}function f4(e){let{basename:t="/",children:n=null,location:r,navigationType:o=Xo.Pop,navigator:i,static:a=!1,future:s}=e;Pc()&&Ot(!1);let l=t.replace(/^\/*/,"/"),c=b.useMemo(()=>({basename:l,navigator:i,static:a,future:lc({v7_relativeSplatPath:!1},s)}),[l,s,i,a]);typeof r=="string"&&(r=Ms(r));let{pathname:u="/",search:d="",hash:f="",state:g=null,key:m="default"}=r,y=b.useMemo(()=>{let C=fs(u,l);return C==null?null:{location:{pathname:C,search:d,hash:f,state:g,key:m},navigationType:o}},[l,u,d,f,g,m,o]);return y==null?null:b.createElement(Si.Provider,{value:c},b.createElement(Pf.Provider,{children:n,value:y}))}function p4(e){let{children:t,location:n}=e;return Xk(um(t),n)}new Promise(()=>{});function um(e,t){t===void 0&&(t=[]);let n=[];return b.Children.forEach(e,(r,o)=>{if(!b.isValidElement(r))return;let i=[...t,o];if(r.type===b.Fragment){n.push.apply(n,um(r.props.children,i));return}r.type!==u2&&Ot(!1),!r.props.index||!r.props.children||Ot(!1);let a={id:r.props.id||i.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(a.children=um(r.props.children,i)),n.push(a)}),n}/** + * React Router DOM v6.28.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function jd(){return jd=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[o]=e[o]);return n}function g4(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function h4(e,t){return e.button===0&&(!t||t==="_self")&&!g4(e)}function dm(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(o=>[n,o]):[[n,r]])},[]))}function m4(e,t){let n=dm(e);return t&&t.forEach((r,o)=>{n.has(o)||t.getAll(o).forEach(i=>{n.append(o,i)})}),n}const v4=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],y4=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],b4="6";try{window.__reactRouterVersion=b4}catch{}const x4=b.createContext({isTransitioning:!1}),S4="startTransition",Oy=ud[S4];function w4(e){let{basename:t,children:n,future:r,window:o}=e,i=b.useRef();i.current==null&&(i.current=_k({window:o,v5Compat:!0}));let a=i.current,[s,l]=b.useState({action:a.action,location:a.location}),{v7_startTransition:c}=r||{},u=b.useCallback(d=>{c&&Oy?Oy(()=>l(d)):l(d)},[l,c]);return b.useLayoutEffect(()=>a.listen(u),[a,u]),b.useEffect(()=>d4(r),[r]),b.createElement(f4,{basename:t,children:n,location:s.location,navigationType:s.action,navigator:a,future:r})}const C4=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",_4=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,f2=b.forwardRef(function(t,n){let{onClick:r,relative:o,reloadDocument:i,replace:a,state:s,target:l,to:c,preventScrollReset:u,viewTransition:d}=t,f=d2(t,v4),{basename:g}=b.useContext(Si),m,y=!1;if(typeof c=="string"&&_4.test(c)&&(m=c,C4))try{let h=new URL(window.location.href),w=c.startsWith("//")?new URL(h.protocol+c):new URL(c),_=fs(w.pathname,g);w.origin===h.origin&&_!=null?c=_+w.search+w.hash:y=!0}catch{}let C=Zk(c,{relative:o}),v=P4(c,{replace:a,state:s,target:l,preventScrollReset:u,relative:o,viewTransition:d});function S(h){r&&r(h),h.defaultPrevented||v(h)}return b.createElement("a",jd({},f,{href:m||C,onClick:y||i?r:S,ref:n,target:l}))}),R4=b.forwardRef(function(t,n){let{"aria-current":r="page",caseSensitive:o=!1,className:i="",end:a=!1,style:s,to:l,viewTransition:c,children:u}=t,d=d2(t,y4),f=$f(l,{relative:d.relative}),g=Is(),m=b.useContext(i2),{navigator:y,basename:C}=b.useContext(Si),v=m!=null&&$4(f)&&c===!0,S=y.encodeLocation?y.encodeLocation(f).pathname:f.pathname,h=g.pathname,w=m&&m.navigation&&m.navigation.location?m.navigation.location.pathname:null;o||(h=h.toLowerCase(),w=w?w.toLowerCase():null,S=S.toLowerCase()),w&&C&&(w=fs(w,C)||w);const _=S!=="/"&&S.endsWith("/")?S.length-1:S.length;let T=h===S||!a&&h.startsWith(S)&&h.charAt(_)==="/",k=w!=null&&(w===S||!a&&w.startsWith(S)&&w.charAt(S.length)==="/"),R={isActive:T,isPending:k,isTransitioning:v},P=T?r:void 0,x;typeof i=="function"?x=i(R):x=[i,T?"active":null,k?"pending":null,v?"transitioning":null].filter(Boolean).join(" ");let $=typeof s=="function"?s(R):s;return b.createElement(f2,jd({},d,{"aria-current":P,className:x,ref:n,style:$,to:l,viewTransition:c}),typeof u=="function"?u(R):u)});var fm;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(fm||(fm={}));var Ly;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Ly||(Ly={}));function T4(e){let t=b.useContext(Tf);return t||Ot(!1),t}function P4(e,t){let{target:n,replace:r,state:o,preventScrollReset:i,relative:a,viewTransition:s}=t===void 0?{}:t,l=kf(),c=Is(),u=$f(e,{relative:a});return b.useCallback(d=>{if(h4(d,n)){d.preventDefault();let f=r!==void 0?r:Nd(c)===Nd(u);l(e,{replace:f,state:o,preventScrollReset:i,relative:a,viewTransition:s})}},[c,l,u,r,o,n,e,i,a,s])}function k4(e){let t=b.useRef(dm(e)),n=b.useRef(!1),r=Is(),o=b.useMemo(()=>m4(r.search,n.current?null:t.current),[r.search]),i=kf(),a=b.useCallback((s,l)=>{const c=dm(typeof s=="function"?s(o):s);n.current=!0,i("?"+c,l)},[i,o]);return[o,a]}function $4(e,t){t===void 0&&(t={});let n=b.useContext(x4);n==null&&Ot(!1);let{basename:r}=T4(fm.useViewTransitionState),o=$f(e,{relative:t.relative});if(!n.isTransitioning)return!1;let i=fs(n.currentLocation.pathname,r)||n.currentLocation.pathname,a=fs(n.nextLocation.pathname,r)||n.nextLocation.pathname;return Ad(o.pathname,a)!=null||Ad(o.pathname,i)!=null}var Ny;(function(e){e.Bool="Bool",e.Int8="Int8",e.Int16="Int16",e.Int32="Int32",e.Int64="Int64",e.Float="Float",e.Double="Double",e.String="String",e.VarChar="VarChar",e.JSON="JSON",e.BinaryVector="BinaryVector",e.FloatVector="FloatVector",e.Array="Array"})(Ny||(Ny={}));var Ay;(function(e){e[e.Bool=1]="Bool",e[e.Int8=2]="Int8",e[e.Int16=3]="Int16",e[e.Int32=4]="Int32",e[e.Int64=5]="Int64",e[e.Float=10]="Float",e[e.Double=11]="Double",e[e.VarChar=21]="VarChar",e[e.Array=22]="Array",e[e.JSON=23]="JSON",e[e.BinaryVector=100]="BinaryVector",e[e.FloatVector=101]="FloatVector"})(Ay||(Ay={}));var Dy;(function(e){e.L2="L2",e.IP="IP",e.COSINE="COSINE",e.HAMMING="HAMMING",e.JACCARD="JACCARD",e.TANIMOTO="TANIMOTO",e.SUBSTRUCTURE="SUBSTRUCTURE",e.SUPERSTRUCTURE="SUPERSTRUCTURE"})(Dy||(Dy={}));var jy;(function(e){e.L2="Euclidean",e.IP="Inner product",e.COSINE="Cosine"})(jy||(jy={}));var Fy;(function(e){e.IVF_FLAT="IVF_FLAT",e.IVF_PQ="IVF_PQ",e.IVF_SQ8="IVF_SQ8",e.FLAT="FLAT",e.HNSW="HNSW",e.ANNOY="ANNOY",e.IVF_HNSW="IVF_HNSW",e.RHNSW_FLAT="RHNSW_FLAT",e.RHNSW_SQ="RHNSW_SQ",e.RHNSW_PQ="RHNSW_PQ",e.BIN_FLAT="BIN_FLAT",e.BIN_IVF_FLAT="BIN_IVF_FLAT",e.TRIE="TRIE",e.STL_SORT="STL_SORT"})(Fy||(Fy={}));var p2=60,g2=p2*60,h2=g2*24,E4=h2*7,ps=1e3,fg=p2*ps,By=g2*ps,M4=h2*ps,I4=E4*ps,i1="millisecond",Ha="second",Va="minute",Wa="hour",Vo="day",Gu="week",Ir="month",m2="quarter",Wo="year",Ua="date",O4="YYYY-MM-DDTHH:mm:ssZ",zy="Invalid Date",L4=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,N4=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;const A4={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var n=["th","st","nd","rd"],r=t%100;return"["+t+(n[(r-20)%10]||n[r]||n[0])+"]"}};var pm=function(t,n,r){var o=String(t);return!o||o.length>=n?t:""+Array(n+1-o.length).join(r)+t},D4=function(t){var n=-t.utcOffset(),r=Math.abs(n),o=Math.floor(r/60),i=r%60;return(n<=0?"+":"-")+pm(o,2,"0")+":"+pm(i,2,"0")},j4=function e(t,n){if(t.date()1)return e(a[0])}else{var s=t.name;Wi[s]=t,o=s}return!r&&o&&(Il=o),o||!r&&Il},nt=function(t,n){if(a1(t))return t.clone();var r=typeof n=="object"?n:{};return r.date=t,r.args=arguments,new Ef(r)},V4=function(t,n){return nt(t,{locale:n.$L,utc:n.$u,x:n.$x,$offset:n.$offset})},ut=H4;ut.l=Fd;ut.i=a1;ut.w=V4;var W4=function(t){var n=t.date,r=t.utc;if(n===null)return new Date(NaN);if(ut.u(n))return new Date;if(n instanceof Date)return new Date(n);if(typeof n=="string"&&!/Z$/i.test(n)){var o=n.match(L4);if(o){var i=o[2]-1||0,a=(o[7]||"0").substring(0,3);return r?new Date(Date.UTC(o[1],i,o[3]||1,o[4]||0,o[5]||0,o[6]||0,a)):new Date(o[1],i,o[3]||1,o[4]||0,o[5]||0,o[6]||0,a)}}return new Date(n)},Ef=function(){function e(n){this.$L=Fd(n.locale,null,!0),this.parse(n),this.$x=this.$x||n.x||{},this[v2]=!0}var t=e.prototype;return t.parse=function(r){this.$d=W4(r),this.init()},t.init=function(){var r=this.$d;this.$y=r.getFullYear(),this.$M=r.getMonth(),this.$D=r.getDate(),this.$W=r.getDay(),this.$H=r.getHours(),this.$m=r.getMinutes(),this.$s=r.getSeconds(),this.$ms=r.getMilliseconds()},t.$utils=function(){return ut},t.isValid=function(){return this.$d.toString()!==zy},t.isSame=function(r,o){var i=nt(r);return this.startOf(o)<=i&&i<=this.endOf(o)},t.isAfter=function(r,o){return nt(r)n.searchParams.append("args[]",r)),`Minified MUI error #${e}; visit ${n} for the full message.`}const Fr="$$material";function gm(e,...t){const n=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(r=>n.searchParams.append("args[]",r)),`Minified MUI error #${e}; visit ${n} for the full message.`}function An(){return An=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?on(Os,--Wn):0,gs--,jt===10&&(gs=1,If--),jt}function Jn(){return jt=Wn<_2?on(Os,Wn++):0,gs++,jt===10&&(gs=1,If++),jt}function ao(){return on(Os,Wn)}function qu(){return Wn}function kc(e,t){return uc(Os,e,t)}function dc(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function R2(e){return If=gs=1,_2=Jr(Os=e),Wn=0,[]}function T2(e){return Os="",e}function Ku(e){return C2(kc(Wn-1,mm(e===91?e+2:e===40?e+1:e)))}function s$(e){for(;(jt=ao())&&jt<33;)Jn();return dc(e)>2||dc(jt)>3?"":" "}function l$(e,t){for(;--t&&Jn()&&!(jt<48||jt>102||jt>57&&jt<65||jt>70&&jt<97););return kc(e,qu()+(t<6&&ao()==32&&Jn()==32))}function mm(e){for(;Jn();)switch(jt){case e:return Wn;case 34:case 39:e!==34&&e!==39&&mm(jt);break;case 40:e===41&&mm(e);break;case 92:Jn();break}return Wn}function c$(e,t){for(;Jn()&&e+jt!==57;)if(e+jt===84&&ao()===47)break;return"/*"+kc(t,Wn-1)+"*"+Mf(e===47?e:Jn())}function u$(e){for(;!dc(ao());)Jn();return kc(e,Wn)}function d$(e){return T2(Zu("",null,null,null,[""],e=R2(e),0,[0],e))}function Zu(e,t,n,r,o,i,a,s,l){for(var c=0,u=0,d=a,f=0,g=0,m=0,y=1,C=1,v=1,S=0,h="",w=o,_=i,T=r,k=h;C;)switch(m=S,S=Jn()){case 40:if(m!=108&&on(k,d-1)==58){hm(k+=it(Ku(S),"&","&\f"),"&\f")!=-1&&(v=-1);break}case 34:case 39:case 91:k+=Ku(S);break;case 9:case 10:case 13:case 32:k+=s$(m);break;case 92:k+=l$(qu()-1,7);continue;case 47:switch(ao()){case 42:case 47:du(f$(c$(Jn(),qu()),t,n),l);break;default:k+="/"}break;case 123*y:s[c++]=Jr(k)*v;case 125*y:case 59:case 0:switch(S){case 0:case 125:C=0;case 59+u:v==-1&&(k=it(k,/\f/g,"")),g>0&&Jr(k)-d&&du(g>32?Vy(k+";",r,n,d-1):Vy(it(k," ","")+";",r,n,d-2),l);break;case 59:k+=";";default:if(du(T=Hy(k,t,n,c,u,o,s,h,w=[],_=[],d),i),S===123)if(u===0)Zu(k,t,T,T,w,i,d,s,_);else switch(f===99&&on(k,3)===110?100:f){case 100:case 108:case 109:case 115:Zu(e,T,T,r&&du(Hy(e,T,T,0,0,o,s,h,o,w=[],d),_),o,_,d,s,r?w:_);break;default:Zu(k,T,T,T,[""],_,0,s,_)}}c=u=g=0,y=v=1,h=k="",d=a;break;case 58:d=1+Jr(k),g=m;default:if(y<1){if(S==123)--y;else if(S==125&&y++==0&&a$()==125)continue}switch(k+=Mf(S),S*y){case 38:v=u>0?1:(k+="\f",-1);break;case 44:s[c++]=(Jr(k)-1)*v,v=1;break;case 64:ao()===45&&(k+=Ku(Jn())),f=ao(),u=d=Jr(h=k+=u$(qu())),S++;break;case 45:m===45&&Jr(k)==2&&(y=0)}}return i}function Hy(e,t,n,r,o,i,a,s,l,c,u){for(var d=o-1,f=o===0?i:[""],g=c1(f),m=0,y=0,C=0;m0?f[v]+" "+S:it(S,/&\f/g,f[v])))&&(l[C++]=h);return Of(e,t,n,o===0?s1:s,l,c,u)}function f$(e,t,n){return Of(e,t,n,S2,Mf(i$()),uc(e,2,-2),0)}function Vy(e,t,n,r){return Of(e,t,n,l1,uc(e,0,r),uc(e,r+1,-1),r)}function ts(e,t){for(var n="",r=c1(e),o=0;o6)switch(on(e,t+1)){case 109:if(on(e,t+4)!==45)break;case 102:return it(e,/(.+:)(.+)-([^]+)/,"$1"+ot+"$2-$3$1"+Bd+(on(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~hm(e,"stretch")?P2(it(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(on(e,t+1)!==115)break;case 6444:switch(on(e,Jr(e)-3-(~hm(e,"!important")&&10))){case 107:return it(e,":",":"+ot)+e;case 101:return it(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+ot+(on(e,14)===45?"inline-":"")+"box$3$1"+ot+"$2$3$1"+mn+"$2box$3")+e}break;case 5936:switch(on(e,t+11)){case 114:return ot+e+mn+it(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return ot+e+mn+it(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return ot+e+mn+it(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return ot+e+mn+e+e}return e}var S$=function(t,n,r,o){if(t.length>-1&&!t.return)switch(t.type){case l1:t.return=P2(t.value,t.length);break;case w2:return ts([tl(t,{value:it(t.value,"@","@"+ot)})],o);case s1:if(t.length)return o$(t.props,function(i){switch(r$(i,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return ts([tl(t,{props:[it(i,/:(read-\w+)/,":"+Bd+"$1")]})],o);case"::placeholder":return ts([tl(t,{props:[it(i,/:(plac\w+)/,":"+ot+"input-$1")]}),tl(t,{props:[it(i,/:(plac\w+)/,":"+Bd+"$1")]}),tl(t,{props:[it(i,/:(plac\w+)/,mn+"input-$1")]})],o)}return""})}},w$=[S$],C$=function(t){var n=t.key;if(n==="css"){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,function(y){var C=y.getAttribute("data-emotion");C.indexOf(" ")!==-1&&(document.head.appendChild(y),y.setAttribute("data-s",""))})}var o=t.stylisPlugins||w$,i={},a,s=[];a=t.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+n+' "]'),function(y){for(var C=y.getAttribute("data-emotion").split(" "),v=1;v=4;++r,o-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(o){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var N$={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},A$=!1,D$=/[A-Z]|^ms/g,j$=/_EMO_([^_]+?)_([^]*?)_EMO_/g,L2=function(t){return t.charCodeAt(1)===45},Uy=function(t){return t!=null&&typeof t!="boolean"},pg=x2(function(e){return L2(e)?e:e.replace(D$,"-$&").toLowerCase()}),Gy=function(t,n){switch(t){case"animation":case"animationName":if(typeof n=="string")return n.replace(j$,function(r,o,i){return eo={name:o,styles:i,next:eo},o})}return N$[t]!==1&&!L2(t)&&typeof n=="number"&&n!==0?n+"px":n},F$="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function fc(e,t,n){if(n==null)return"";var r=n;if(r.__emotion_styles!==void 0)return r;switch(typeof n){case"boolean":return"";case"object":{var o=n;if(o.anim===1)return eo={name:o.name,styles:o.styles,next:eo},o.name;var i=n;if(i.styles!==void 0){var a=i.next;if(a!==void 0)for(;a!==void 0;)eo={name:a.name,styles:a.styles,next:eo},a=a.next;var s=i.styles+";";return s}return B$(e,t,n)}case"function":{if(e!==void 0){var l=eo,c=n(e);return eo=l,fc(e,t,c)}break}}var u=n;if(t==null)return u;var d=t[u];return d!==void 0?d:u}function B$(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o96?U$:G$},Qy=function(t,n,r){var o;if(n){var i=n.shouldForwardProp;o=t.__emotion_forwardProp&&i?function(a){return t.__emotion_forwardProp(a)&&i(a)}:i}return typeof o!="function"&&r&&(o=t.__emotion_forwardProp),o},q$=!1,K$=function(t){var n=t.cache,r=t.serialized,o=t.isStringTag;return I2(n,r,o),H$(function(){return O2(n,r,o)}),null},Z$=function e(t,n){var r=t.__emotion_real===t,o=r&&t.__emotion_base||t,i,a;n!==void 0&&(i=n.label,a=n.target);var s=Qy(t,n,r),l=s||Zy(o),c=!l("as");return function(){var u=arguments,d=r&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(i!==void 0&&d.push("label:"+i+";"),u[0]==null||u[0].raw===void 0)d.push.apply(d,u);else{d.push(u[0][0]);for(var f=u.length,g=1;gt(Y$(o)?n:o):t;return p.jsx(V$,{styles:r})}/** + * @mui/styled-engine v6.1.6 + * + * @license MIT + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */function F2(e,t){return vm(e,t)}function X$(e,t){Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}const Yy=[];function Xy(e){return Yy[0]=e,Wf(Yy)}function qo(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function B2(e){if(!qo(e))return e;const t={};return Object.keys(e).forEach(n=>{t[n]=B2(e[n])}),t}function Ro(e,t,n={clone:!0}){const r=n.clone?{...e}:e;return qo(e)&&qo(t)&&Object.keys(t).forEach(o=>{qo(t[o])&&Object.prototype.hasOwnProperty.call(e,o)&&qo(e[o])?r[o]=Ro(e[o],t[o],n):n.clone?r[o]=qo(t[o])?B2(t[o]):t[o]:r[o]=t[o]}),r}const J$=e=>{const t=Object.keys(e).map(n=>({key:n,val:e[n]}))||[];return t.sort((n,r)=>n.val-r.val),t.reduce((n,r)=>({...n,[r.key]:r.val}),{})};function e5(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:r=5,...o}=e,i=J$(t),a=Object.keys(i);function s(f){return`@media (min-width:${typeof t[f]=="number"?t[f]:f}${n})`}function l(f){return`@media (max-width:${(typeof t[f]=="number"?t[f]:f)-r/100}${n})`}function c(f,g){const m=a.indexOf(g);return`@media (min-width:${typeof t[f]=="number"?t[f]:f}${n}) and (max-width:${(m!==-1&&typeof t[a[m]]=="number"?t[a[m]]:g)-r/100}${n})`}function u(f){return a.indexOf(f)+1r.startsWith("@container")).sort((r,o)=>{var a,s;const i=/min-width:\s*([0-9.]+)/;return+(((a=r.match(i))==null?void 0:a[1])||0)-+(((s=o.match(i))==null?void 0:s[1])||0)});return n.length?n.reduce((r,o)=>{const i=t[o];return delete r[o],r[o]=i,r},{...t}):t}function n5(e,t){return t==="@"||t.startsWith("@")&&(e.some(n=>t.startsWith(`@${n}`))||!!t.match(/^@\d/))}function r5(e,t){const n=t.match(/^@([^/]+)?\/?(.+)?$/);if(!n)return null;const[,r,o]=n,i=Number.isNaN(+r)?r||0:+r;return e.containerQueries(o).up(i)}function o5(e){const t=(i,a)=>i.replace("@media",a?`@container ${a}`:"@container");function n(i,a){i.up=(...s)=>t(e.breakpoints.up(...s),a),i.down=(...s)=>t(e.breakpoints.down(...s),a),i.between=(...s)=>t(e.breakpoints.between(...s),a),i.only=(...s)=>t(e.breakpoints.only(...s),a),i.not=(...s)=>{const l=t(e.breakpoints.not(...s),a);return l.includes("not all and")?l.replace("not all and ","").replace("min-width:","width<").replace("max-width:","width>").replace("and","or"):l}}const r={},o=i=>(n(r,i),r);return n(o),{...e,containerQueries:o}}const i5={borderRadius:4};function Ol(e,t){return t?Ro(e,t,{clone:!1}):e}const Gf={xs:0,sm:600,md:900,lg:1200,xl:1536},Jy={keys:["xs","sm","md","lg","xl"],up:e=>`@media (min-width:${Gf[e]}px)`},a5={containerQueries:e=>({up:t=>{let n=typeof t=="number"?t:Gf[t]||t;return typeof n=="number"&&(n=`${n}px`),e?`@container ${e} (min-width:${n})`:`@container (min-width:${n})`}})};function Hr(e,t,n){const r=e.theme||{};if(Array.isArray(t)){const i=r.breakpoints||Jy;return t.reduce((a,s,l)=>(a[i.up(i.keys[l])]=n(t[l]),a),{})}if(typeof t=="object"){const i=r.breakpoints||Jy;return Object.keys(t).reduce((a,s)=>{if(n5(i.keys,s)){const l=r5(r.containerQueries?r:a5,s);l&&(a[l]=n(t[s],s))}else if(Object.keys(i.values||Gf).includes(s)){const l=i.up(s);a[l]=n(t[s],s)}else{const l=s;a[l]=t[l]}return a},{})}return n(t)}function z2(e={}){var n;return((n=e.keys)==null?void 0:n.reduce((r,o)=>{const i=e.up(o);return r[i]={},r},{}))||{}}function H2(e,t){return e.reduce((n,r)=>{const o=n[r];return(!o||Object.keys(o).length===0)&&delete n[r],n},t)}function s5(e,...t){const n=z2(e),r=[n,...t].reduce((o,i)=>Ro(o,i),{});return H2(Object.keys(n),r)}function l5(e,t){if(typeof e!="object")return{};const n={},r=Object.keys(t);return Array.isArray(e)?r.forEach((o,i)=>{i{e[o]!=null&&(n[o]=!0)}),n}function gg({values:e,breakpoints:t,base:n}){const r=n||l5(e,t),o=Object.keys(r);if(o.length===0)return e;let i;return o.reduce((a,s,l)=>(Array.isArray(e)?(a[s]=e[l]!=null?e[l]:e[i],i=l):typeof e=="object"?(a[s]=e[s]!=null?e[s]:e[i],i=s):a[s]=e,a),{})}function V2(e){if(typeof e!="string")throw new Error(gm(7));return e.charAt(0).toUpperCase()+e.slice(1)}function qf(e,t,n=!0){if(!t||typeof t!="string")return null;if(e&&e.vars&&n){const r=`vars.${t}`.split(".").reduce((o,i)=>o&&o[i]?o[i]:null,e);if(r!=null)return r}return t.split(".").reduce((r,o)=>r&&r[o]!=null?r[o]:null,e)}function zd(e,t,n,r=n){let o;return typeof e=="function"?o=e(n):Array.isArray(e)?o=e[n]||r:o=qf(e,n)||r,t&&(o=t(o,r,e)),o}function At(e){const{prop:t,cssProperty:n=e.prop,themeKey:r,transform:o}=e,i=a=>{if(a[t]==null)return null;const s=a[t],l=a.theme,c=qf(l,r)||{};return Hr(a,s,d=>{let f=zd(c,o,d);return d===f&&typeof d=="string"&&(f=zd(c,o,`${t}${d==="default"?"":V2(d)}`,d)),n===!1?f:{[n]:f}})};return i.propTypes={},i.filterProps=[t],i}function c5(e){const t={};return n=>(t[n]===void 0&&(t[n]=e(n)),t[n])}const u5={m:"margin",p:"padding"},d5={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},eb={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},f5=c5(e=>{if(e.length>2)if(eb[e])e=eb[e];else return[e];const[t,n]=e.split(""),r=u5[t],o=d5[n]||"";return Array.isArray(o)?o.map(i=>r+i):[r+o]}),g1=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],h1=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];[...g1,...h1];function $c(e,t,n,r){const o=qf(e,t,!0)??n;return typeof o=="number"||typeof o=="string"?i=>typeof i=="string"?i:typeof o=="string"?`calc(${i} * ${o})`:o*i:Array.isArray(o)?i=>{if(typeof i=="string")return i;const a=Math.abs(i),s=o[a];return i>=0?s:typeof s=="number"?-s:`-${s}`}:typeof o=="function"?o:()=>{}}function Kf(e){return $c(e,"spacing",8)}function na(e,t){return typeof t=="string"||t==null?t:e(t)}function p5(e,t){return n=>e.reduce((r,o)=>(r[o]=na(t,n),r),{})}function g5(e,t,n,r){if(!t.includes(n))return null;const o=f5(n),i=p5(o,r),a=e[n];return Hr(e,a,i)}function W2(e,t){const n=Kf(e.theme);return Object.keys(e).map(r=>g5(e,t,r,n)).reduce(Ol,{})}function kt(e){return W2(e,g1)}kt.propTypes={};kt.filterProps=g1;function $t(e){return W2(e,h1)}$t.propTypes={};$t.filterProps=h1;function U2(e=8,t=Kf({spacing:e})){if(e.mui)return e;const n=(...r)=>(r.length===0?[1]:r).map(i=>{const a=t(i);return typeof a=="number"?`${a}px`:a}).join(" ");return n.mui=!0,n}function Zf(...e){const t=e.reduce((r,o)=>(o.filterProps.forEach(i=>{r[i]=o}),r),{}),n=r=>Object.keys(r).reduce((o,i)=>t[i]?Ol(o,t[i](r)):o,{});return n.propTypes={},n.filterProps=e.reduce((r,o)=>r.concat(o.filterProps),[]),n}function gr(e){return typeof e!="number"?e:`${e}px solid`}function _r(e,t){return At({prop:e,themeKey:"borders",transform:t})}const h5=_r("border",gr),m5=_r("borderTop",gr),v5=_r("borderRight",gr),y5=_r("borderBottom",gr),b5=_r("borderLeft",gr),x5=_r("borderColor"),S5=_r("borderTopColor"),w5=_r("borderRightColor"),C5=_r("borderBottomColor"),_5=_r("borderLeftColor"),R5=_r("outline",gr),T5=_r("outlineColor"),Qf=e=>{if(e.borderRadius!==void 0&&e.borderRadius!==null){const t=$c(e.theme,"shape.borderRadius",4),n=r=>({borderRadius:na(t,r)});return Hr(e,e.borderRadius,n)}return null};Qf.propTypes={};Qf.filterProps=["borderRadius"];Zf(h5,m5,v5,y5,b5,x5,S5,w5,C5,_5,Qf,R5,T5);const Yf=e=>{if(e.gap!==void 0&&e.gap!==null){const t=$c(e.theme,"spacing",8),n=r=>({gap:na(t,r)});return Hr(e,e.gap,n)}return null};Yf.propTypes={};Yf.filterProps=["gap"];const Xf=e=>{if(e.columnGap!==void 0&&e.columnGap!==null){const t=$c(e.theme,"spacing",8),n=r=>({columnGap:na(t,r)});return Hr(e,e.columnGap,n)}return null};Xf.propTypes={};Xf.filterProps=["columnGap"];const Jf=e=>{if(e.rowGap!==void 0&&e.rowGap!==null){const t=$c(e.theme,"spacing",8),n=r=>({rowGap:na(t,r)});return Hr(e,e.rowGap,n)}return null};Jf.propTypes={};Jf.filterProps=["rowGap"];const P5=At({prop:"gridColumn"}),k5=At({prop:"gridRow"}),$5=At({prop:"gridAutoFlow"}),E5=At({prop:"gridAutoColumns"}),M5=At({prop:"gridAutoRows"}),I5=At({prop:"gridTemplateColumns"}),O5=At({prop:"gridTemplateRows"}),L5=At({prop:"gridTemplateAreas"}),N5=At({prop:"gridArea"});Zf(Yf,Xf,Jf,P5,k5,$5,E5,M5,I5,O5,L5,N5);function ns(e,t){return t==="grey"?t:e}const A5=At({prop:"color",themeKey:"palette",transform:ns}),D5=At({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:ns}),j5=At({prop:"backgroundColor",themeKey:"palette",transform:ns});Zf(A5,D5,j5);function Qn(e){return e<=1&&e!==0?`${e*100}%`:e}const F5=At({prop:"width",transform:Qn}),m1=e=>{if(e.maxWidth!==void 0&&e.maxWidth!==null){const t=n=>{var o,i,a,s,l;const r=((a=(i=(o=e.theme)==null?void 0:o.breakpoints)==null?void 0:i.values)==null?void 0:a[n])||Gf[n];return r?((l=(s=e.theme)==null?void 0:s.breakpoints)==null?void 0:l.unit)!=="px"?{maxWidth:`${r}${e.theme.breakpoints.unit}`}:{maxWidth:r}:{maxWidth:Qn(n)}};return Hr(e,e.maxWidth,t)}return null};m1.filterProps=["maxWidth"];const B5=At({prop:"minWidth",transform:Qn}),z5=At({prop:"height",transform:Qn}),H5=At({prop:"maxHeight",transform:Qn}),V5=At({prop:"minHeight",transform:Qn});At({prop:"size",cssProperty:"width",transform:Qn});At({prop:"size",cssProperty:"height",transform:Qn});const W5=At({prop:"boxSizing"});Zf(F5,m1,B5,z5,H5,V5,W5);const Ec={border:{themeKey:"borders",transform:gr},borderTop:{themeKey:"borders",transform:gr},borderRight:{themeKey:"borders",transform:gr},borderBottom:{themeKey:"borders",transform:gr},borderLeft:{themeKey:"borders",transform:gr},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:gr},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:Qf},color:{themeKey:"palette",transform:ns},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:ns},backgroundColor:{themeKey:"palette",transform:ns},p:{style:$t},pt:{style:$t},pr:{style:$t},pb:{style:$t},pl:{style:$t},px:{style:$t},py:{style:$t},padding:{style:$t},paddingTop:{style:$t},paddingRight:{style:$t},paddingBottom:{style:$t},paddingLeft:{style:$t},paddingX:{style:$t},paddingY:{style:$t},paddingInline:{style:$t},paddingInlineStart:{style:$t},paddingInlineEnd:{style:$t},paddingBlock:{style:$t},paddingBlockStart:{style:$t},paddingBlockEnd:{style:$t},m:{style:kt},mt:{style:kt},mr:{style:kt},mb:{style:kt},ml:{style:kt},mx:{style:kt},my:{style:kt},margin:{style:kt},marginTop:{style:kt},marginRight:{style:kt},marginBottom:{style:kt},marginLeft:{style:kt},marginX:{style:kt},marginY:{style:kt},marginInline:{style:kt},marginInlineStart:{style:kt},marginInlineEnd:{style:kt},marginBlock:{style:kt},marginBlockStart:{style:kt},marginBlockEnd:{style:kt},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:Yf},rowGap:{style:Jf},columnGap:{style:Xf},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:Qn},maxWidth:{style:m1},minWidth:{transform:Qn},height:{transform:Qn},maxHeight:{transform:Qn},minHeight:{transform:Qn},boxSizing:{},font:{themeKey:"font"},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}};function U5(...e){const t=e.reduce((r,o)=>r.concat(Object.keys(o)),[]),n=new Set(t);return e.every(r=>n.size===Object.keys(r).length)}function G5(e,t){return typeof e=="function"?e(t):e}function q5(){function e(n,r,o,i){const a={[n]:r,theme:o},s=i[n];if(!s)return{[n]:r};const{cssProperty:l=n,themeKey:c,transform:u,style:d}=s;if(r==null)return null;if(c==="typography"&&r==="inherit")return{[n]:r};const f=qf(o,c)||{};return d?d(a):Hr(a,r,m=>{let y=zd(f,u,m);return m===y&&typeof m=="string"&&(y=zd(f,u,`${n}${m==="default"?"":V2(m)}`,m)),l===!1?y:{[l]:y}})}function t(n){const{sx:r,theme:o={}}=n||{};if(!r)return null;const i=o.unstable_sxConfig??Ec;function a(s){let l=s;if(typeof s=="function")l=s(o);else if(typeof s!="object")return s;if(!l)return null;const c=z2(o.breakpoints),u=Object.keys(c);let d=c;return Object.keys(l).forEach(f=>{const g=G5(l[f],o);if(g!=null)if(typeof g=="object")if(i[f])d=Ol(d,e(f,g,o,i));else{const m=Hr({theme:o},g,y=>({[f]:y}));U5(m,g)?d[f]=t({sx:g,theme:o}):d=Ol(d,m)}else d=Ol(d,e(f,g,o,i))}),t5(o,H2(u,d))}return Array.isArray(r)?r.map(a):a(r)}return t}const hi=q5();hi.filterProps=["sx"];function K5(e,t){var r;const n=this;if(n.vars){if(!((r=n.colorSchemes)!=null&&r[e])||typeof n.getColorSchemeSelector!="function")return{};let o=n.getColorSchemeSelector(e);return o==="&"?t:((o.includes("data-")||o.includes("."))&&(o=`*:where(${o.replace(/\s*&$/,"")}) &`),{[o]:t})}return n.palette.mode===e?t:{}}function ep(e={},...t){const{breakpoints:n={},palette:r={},spacing:o,shape:i={},...a}=e,s=e5(n),l=U2(o);let c=Ro({breakpoints:s,direction:"ltr",components:{},palette:{mode:"light",...r},spacing:l,shape:{...i5,...i}},a);return c=o5(c),c.applyStyles=K5,c=t.reduce((u,d)=>Ro(u,d),c),c.unstable_sxConfig={...Ec,...a==null?void 0:a.unstable_sxConfig},c.unstable_sx=function(d){return hi({sx:d,theme:this})},c}function Z5(e){return Object.keys(e).length===0}function G2(e=null){const t=b.useContext(Uf);return!t||Z5(t)?e:t}const Q5=ep();function tp(e=Q5){return G2(e)}function Y5({styles:e,themeId:t,defaultTheme:n={}}){const r=tp(n),o=typeof e=="function"?e(t&&r[t]||r):e;return p.jsx(j2,{styles:o})}const X5=e=>{var r;const t={systemProps:{},otherProps:{}},n=((r=e==null?void 0:e.theme)==null?void 0:r.unstable_sxConfig)??Ec;return Object.keys(e).forEach(o=>{n[o]?t.systemProps[o]=e[o]:t.otherProps[o]=e[o]}),t};function v1(e){const{sx:t,...n}=e,{systemProps:r,otherProps:o}=X5(n);let i;return Array.isArray(t)?i=[r,...t]:typeof t=="function"?i=(...a)=>{const s=t(...a);return qo(s)?{...r,...s}:r}:i={...r,...t},{...o,sx:i}}const tb=e=>e,J5=()=>{let e=tb;return{configure(t){e=t},generate(t){return e(t)},reset(){e=tb}}},eE=J5();function q2(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;ts!=="theme"&&s!=="sx"&&s!=="as"})(hi);return b.forwardRef(function(l,c){const u=tp(n),{className:d,component:f="div",...g}=v1(l);return p.jsx(i,{as:f,ref:c,className:ve(d,o?o(r):r),theme:t&&u[t]||u,...g})})}const nE={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function rE(e,t,n="Mui"){const r=nE[t];return r?`${n}-${r}`:`${eE.generate(e)}-${t}`}var dt={};/** + * @license React + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var y1=Symbol.for("react.element"),b1=Symbol.for("react.portal"),np=Symbol.for("react.fragment"),rp=Symbol.for("react.strict_mode"),op=Symbol.for("react.profiler"),ip=Symbol.for("react.provider"),ap=Symbol.for("react.context"),oE=Symbol.for("react.server_context"),sp=Symbol.for("react.forward_ref"),lp=Symbol.for("react.suspense"),cp=Symbol.for("react.suspense_list"),up=Symbol.for("react.memo"),dp=Symbol.for("react.lazy"),iE=Symbol.for("react.offscreen"),K2;K2=Symbol.for("react.module.reference");function Rr(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case y1:switch(e=e.type,e){case np:case op:case rp:case lp:case cp:return e;default:switch(e=e&&e.$$typeof,e){case oE:case ap:case sp:case dp:case up:case ip:return e;default:return t}}case b1:return t}}}dt.ContextConsumer=ap;dt.ContextProvider=ip;dt.Element=y1;dt.ForwardRef=sp;dt.Fragment=np;dt.Lazy=dp;dt.Memo=up;dt.Portal=b1;dt.Profiler=op;dt.StrictMode=rp;dt.Suspense=lp;dt.SuspenseList=cp;dt.isAsyncMode=function(){return!1};dt.isConcurrentMode=function(){return!1};dt.isContextConsumer=function(e){return Rr(e)===ap};dt.isContextProvider=function(e){return Rr(e)===ip};dt.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===y1};dt.isForwardRef=function(e){return Rr(e)===sp};dt.isFragment=function(e){return Rr(e)===np};dt.isLazy=function(e){return Rr(e)===dp};dt.isMemo=function(e){return Rr(e)===up};dt.isPortal=function(e){return Rr(e)===b1};dt.isProfiler=function(e){return Rr(e)===op};dt.isStrictMode=function(e){return Rr(e)===rp};dt.isSuspense=function(e){return Rr(e)===lp};dt.isSuspenseList=function(e){return Rr(e)===cp};dt.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===np||e===op||e===rp||e===lp||e===cp||e===iE||typeof e=="object"&&e!==null&&(e.$$typeof===dp||e.$$typeof===up||e.$$typeof===ip||e.$$typeof===ap||e.$$typeof===sp||e.$$typeof===K2||e.getModuleId!==void 0)};dt.typeOf=Rr;function Z2(e){const{variants:t,...n}=e,r={variants:t,style:Xy(n),isProcessed:!0};return r.style===n||t&&t.forEach(o=>{typeof o.style!="function"&&(o.style=Xy(o.style))}),r}const aE=ep();function hg(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}function sE(e){return e?(t,n)=>n[e]:null}function lE(e,t,n){e.theme=uE(e.theme)?n:e.theme[t]||e.theme}function Qu(e,t){const n=typeof t=="function"?t(e):t;if(Array.isArray(n))return n.flatMap(r=>Qu(e,r));if(Array.isArray(n==null?void 0:n.variants)){let r;if(n.isProcessed)r=n.style;else{const{variants:o,...i}=n;r=i}return Q2(e,n.variants,[r])}return n!=null&&n.isProcessed?n.style:n}function Q2(e,t,n=[]){var o;let r;e:for(let i=0;i{X$(s,_=>_.filter(T=>T!==hi));const{name:c,slot:u,skipVariantsResolver:d,skipSx:f,overridesResolver:g=sE(fE(u)),...m}=l,y=d!==void 0?d:u&&u!=="Root"&&u!=="root"||!1,C=f||!1;let v=hg;u==="Root"||u==="root"?v=r:u?v=o:dE(s)&&(v=void 0);const S=F2(s,{shouldForwardProp:v,label:cE(),...m}),h=_=>{if(typeof _=="function"&&_.__emotion_real!==_)return function(k){return Qu(k,_)};if(qo(_)){const T=Z2(_);return T.variants?function(R){return Qu(R,T)}:T.style}return _},w=(..._)=>{const T=[],k=_.map(h),R=[];if(T.push(i),c&&g&&R.push(function(I){var N,A;const D=(A=(N=I.theme.components)==null?void 0:N[c])==null?void 0:A.styleOverrides;if(!D)return null;const M={};for(const E in D)M[E]=Qu(I,D[E]);return g(I,M)}),c&&!y&&R.push(function(I){var M,N;const O=I.theme,D=(N=(M=O==null?void 0:O.components)==null?void 0:M[c])==null?void 0:N.variants;return D?Q2(I,D):null}),C||R.push(hi),Array.isArray(k[0])){const $=k.shift(),I=new Array(T.length).fill(""),O=new Array(R.length).fill("");let D;D=[...I,...$,...O],D.raw=[...I,...$.raw,...O],T.unshift(D)}const P=[...T,...k,...R],x=S(...P);return s.muiName&&(x.muiName=s.muiName),x};return S.withConfig&&(w.withConfig=S.withConfig),w}}function cE(e,t){return void 0}function uE(e){for(const t in e)return!1;return!0}function dE(e){return typeof e=="string"&&e.charCodeAt(0)>96}function fE(e){return e&&e.charAt(0).toLowerCase()+e.slice(1)}const pE=Y2();function Hd(e,t){const n={...t};for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const o=r;if(o==="components"||o==="slots")n[o]={...e[o],...n[o]};else if(o==="componentsProps"||o==="slotProps"){const i=e[o],a=t[o];if(!a)n[o]=i||{};else if(!i)n[o]=a;else{n[o]={...a};for(const s in i)if(Object.prototype.hasOwnProperty.call(i,s)){const l=s;n[o][l]=Hd(i[l],a[l])}}}else n[o]===void 0&&(n[o]=e[o])}return n}function gE(e){const{theme:t,name:n,props:r}=e;return!t||!t.components||!t.components[n]||!t.components[n].defaultProps?r:Hd(t.components[n].defaultProps,r)}function X2({props:e,name:t,defaultTheme:n,themeId:r}){let o=tp(n);return r&&(o=o[r]||o),gE({theme:o,name:t,props:e})}function hE(e,t=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,n))}function x1(e,t=0,n=1){return hE(e,t,n)}function mE(e){e=e.slice(1);const t=new RegExp(`.{1,${e.length>=6?2:1}}`,"g");let n=e.match(t);return n&&n[0].length===1&&(n=n.map(r=>r+r)),n?`rgb${n.length===4?"a":""}(${n.map((r,o)=>o<3?parseInt(r,16):Math.round(parseInt(r,16)/255*1e3)/1e3).join(", ")})`:""}function mi(e){if(e.type)return e;if(e.charAt(0)==="#")return mi(mE(e));const t=e.indexOf("("),n=e.substring(0,t);if(!["rgb","rgba","hsl","hsla","color"].includes(n))throw new Error(gm(9,e));let r=e.substring(t+1,e.length-1),o;if(n==="color"){if(r=r.split(" "),o=r.shift(),r.length===4&&r[3].charAt(0)==="/"&&(r[3]=r[3].slice(1)),!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(o))throw new Error(gm(10,o))}else r=r.split(",");return r=r.map(i=>parseFloat(i)),{type:n,values:r,colorSpace:o}}const vE=e=>{const t=mi(e);return t.values.slice(0,3).map((n,r)=>t.type.includes("hsl")&&r!==0?`${n}%`:n).join(" ")},yl=(e,t)=>{try{return vE(e)}catch{return e}};function fp(e){const{type:t,colorSpace:n}=e;let{values:r}=e;return t.includes("rgb")?r=r.map((o,i)=>i<3?parseInt(o,10):o):t.includes("hsl")&&(r[1]=`${r[1]}%`,r[2]=`${r[2]}%`),t.includes("color")?r=`${n} ${r.join(" ")}`:r=`${r.join(", ")}`,`${t}(${r})`}function J2(e){e=mi(e);const{values:t}=e,n=t[0],r=t[1]/100,o=t[2]/100,i=r*Math.min(o,1-o),a=(c,u=(c+n/30)%12)=>o-i*Math.max(Math.min(u-3,9-u,1),-1);let s="rgb";const l=[Math.round(a(0)*255),Math.round(a(8)*255),Math.round(a(4)*255)];return e.type==="hsla"&&(s+="a",l.push(t[3])),fp({type:s,values:l})}function ym(e){e=mi(e);let t=e.type==="hsl"||e.type==="hsla"?mi(J2(e)).values:e.values;return t=t.map(n=>(e.type!=="color"&&(n/=255),n<=.03928?n/12.92:((n+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function yE(e,t){const n=ym(e),r=ym(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function Be(e,t){return e=mi(e),t=x1(t),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.type==="color"?e.values[3]=`/${t}`:e.values[3]=t,fp(e)}function fu(e,t,n){try{return Be(e,t)}catch{return e}}function ra(e,t){if(e=mi(e),t=x1(t),e.type.includes("hsl"))e.values[2]*=1-t;else if(e.type.includes("rgb")||e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]*=1-t;return fp(e)}function pt(e,t,n){try{return ra(e,t)}catch{return e}}function oa(e,t){if(e=mi(e),t=x1(t),e.type.includes("hsl"))e.values[2]+=(100-e.values[2])*t;else if(e.type.includes("rgb"))for(let n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]+=(1-e.values[n])*t;return fp(e)}function gt(e,t,n){try{return oa(e,t)}catch{return e}}function bE(e,t=.15){return ym(e)>.5?ra(e,t):oa(e,t)}function pu(e,t,n){try{return bE(e,t)}catch{return e}}const e_=b.createContext(null);function S1(){return b.useContext(e_)}const xE=typeof Symbol=="function"&&Symbol.for,SE=xE?Symbol.for("mui.nested"):"__THEME_NESTED__";function wE(e,t){return typeof t=="function"?t(e):{...e,...t}}function CE(e){const{children:t,theme:n}=e,r=S1(),o=b.useMemo(()=>{const i=r===null?{...n}:wE(r,n);return i!=null&&(i[SE]=r!==null),i},[n,r]);return p.jsx(e_.Provider,{value:o,children:t})}const t_=b.createContext();function _E({value:e,...t}){return p.jsx(t_.Provider,{value:e??!0,...t})}const Ls=()=>b.useContext(t_)??!1,n_=b.createContext(void 0);function RE({value:e,children:t}){return p.jsx(n_.Provider,{value:e,children:t})}function TE(e){const{theme:t,name:n,props:r}=e;if(!t||!t.components||!t.components[n])return r;const o=t.components[n];return o.defaultProps?Hd(o.defaultProps,r):!o.styleOverrides&&!o.variants?Hd(o,r):r}function PE({props:e,name:t}){const n=b.useContext(n_);return TE({props:e,name:t,theme:{components:n}})}const nb={};function rb(e,t,n,r=!1){return b.useMemo(()=>{const o=e&&t[e]||t;if(typeof n=="function"){const i=n(o),a=e?{...t,[e]:i}:i;return r?()=>a:a}return e?{...t,[e]:n}:{...t,...n}},[e,t,n,r])}function r_(e){const{children:t,theme:n,themeId:r}=e,o=G2(nb),i=S1()||nb,a=rb(r,o,n),s=rb(r,i,n,!0),l=a.direction==="rtl";return p.jsx(CE,{theme:s,children:p.jsx(Uf.Provider,{value:a,children:p.jsx(_E,{value:l,children:p.jsx(RE,{value:a==null?void 0:a.components,children:t})})})})}const ob={theme:void 0};function kE(e){let t,n;return function(o){let i=t;return(i===void 0||o.theme!==n)&&(ob.theme=o.theme,i=Z2(e(ob)),t=i,n=o.theme),i}}const w1="mode",C1="color-scheme",$E="data-color-scheme";function EE(e){const{defaultMode:t="system",defaultLightColorScheme:n="light",defaultDarkColorScheme:r="dark",modeStorageKey:o=w1,colorSchemeStorageKey:i=C1,attribute:a=$E,colorSchemeNode:s="document.documentElement",nonce:l}=e||{};let c="",u=a;if(a==="class"&&(u=".%s"),a==="data"&&(u="[data-%s]"),u.startsWith(".")){const f=u.substring(1);c+=`${s}.classList.remove('${f}'.replace('%s', light), '${f}'.replace('%s', dark)); + ${s}.classList.add('${f}'.replace('%s', colorScheme));`}const d=u.match(/\[([^\]]+)\]/);if(d){const[f,g]=d[1].split("=");g||(c+=`${s}.removeAttribute('${f}'.replace('%s', light)); + ${s}.removeAttribute('${f}'.replace('%s', dark));`),c+=` + ${s}.setAttribute('${f}'.replace('%s', colorScheme), ${g?`${g}.replace('%s', colorScheme)`:'""'});`}else c+=`${s}.setAttribute('${u}', colorScheme);`;return p.jsx("script",{suppressHydrationWarning:!0,nonce:typeof window>"u"?l:"",dangerouslySetInnerHTML:{__html:`(function() { +try { + let colorScheme = ''; + const mode = localStorage.getItem('${o}') || '${t}'; + const dark = localStorage.getItem('${i}-dark') || '${r}'; + const light = localStorage.getItem('${i}-light') || '${n}'; + if (mode === 'system') { + // handle system mode + const mql = window.matchMedia('(prefers-color-scheme: dark)'); + if (mql.matches) { + colorScheme = dark + } else { + colorScheme = light + } + } + if (mode === 'light') { + colorScheme = light; + } + if (mode === 'dark') { + colorScheme = dark; + } + if (colorScheme) { + ${c} + } +} catch(e){}})();`}},"mui-color-scheme-init")}function ib(e){if(typeof window<"u"&&typeof window.matchMedia=="function"&&e==="system")return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function o_(e,t){if(e.mode==="light"||e.mode==="system"&&e.systemMode==="light")return t("light");if(e.mode==="dark"||e.mode==="system"&&e.systemMode==="dark")return t("dark")}function ME(e){return o_(e,t=>{if(t==="light")return e.lightColorScheme;if(t==="dark")return e.darkColorScheme})}function mg(e,t){if(typeof window>"u")return;let n;try{n=localStorage.getItem(e)||void 0,n||localStorage.setItem(e,t)}catch{}return n||t}function IE(e){const{defaultMode:t="light",defaultLightColorScheme:n,defaultDarkColorScheme:r,supportedColorSchemes:o=[],modeStorageKey:i=w1,colorSchemeStorageKey:a=C1,storageWindow:s=typeof window>"u"?void 0:window}=e,l=o.join(","),c=o.length>1,[u,d]=b.useState(()=>{const h=mg(i,t),w=mg(`${a}-light`,n),_=mg(`${a}-dark`,r);return{mode:h,systemMode:ib(h),lightColorScheme:w,darkColorScheme:_}}),[,f]=b.useState(!1),g=b.useRef(!1);b.useEffect(()=>{c&&f(!0),g.current=!0},[c]);const m=ME(u),y=b.useCallback(h=>{d(w=>{if(h===w.mode)return w;const _=h??t;try{localStorage.setItem(i,_)}catch{}return{...w,mode:_,systemMode:ib(_)}})},[i,t]),C=b.useCallback(h=>{h?typeof h=="string"?h&&!l.includes(h)?console.error(`\`${h}\` does not exist in \`theme.colorSchemes\`.`):d(w=>{const _={...w};return o_(w,T=>{try{localStorage.setItem(`${a}-${T}`,h)}catch{}T==="light"&&(_.lightColorScheme=h),T==="dark"&&(_.darkColorScheme=h)}),_}):d(w=>{const _={...w},T=h.light===null?n:h.light,k=h.dark===null?r:h.dark;if(T)if(!l.includes(T))console.error(`\`${T}\` does not exist in \`theme.colorSchemes\`.`);else{_.lightColorScheme=T;try{localStorage.setItem(`${a}-light`,T)}catch{}}if(k)if(!l.includes(k))console.error(`\`${k}\` does not exist in \`theme.colorSchemes\`.`);else{_.darkColorScheme=k;try{localStorage.setItem(`${a}-dark`,k)}catch{}}return _}):d(w=>{try{localStorage.setItem(`${a}-light`,n),localStorage.setItem(`${a}-dark`,r)}catch{}return{...w,lightColorScheme:n,darkColorScheme:r}})},[l,a,n,r]),v=b.useCallback(h=>{u.mode==="system"&&d(w=>{const _=h!=null&&h.matches?"dark":"light";return w.systemMode===_?w:{...w,systemMode:_}})},[u.mode]),S=b.useRef(v);return S.current=v,b.useEffect(()=>{if(typeof window.matchMedia!="function"||!c)return;const h=(..._)=>S.current(..._),w=window.matchMedia("(prefers-color-scheme: dark)");return w.addListener(h),h(w),()=>{w.removeListener(h)}},[c]),b.useEffect(()=>{if(s&&c){const h=w=>{const _=w.newValue;typeof w.key=="string"&&w.key.startsWith(a)&&(!_||l.match(_))&&(w.key.endsWith("light")&&C({light:_}),w.key.endsWith("dark")&&C({dark:_})),w.key===i&&(!_||["light","dark","system"].includes(_))&&y(_||t)};return s.addEventListener("storage",h),()=>{s.removeEventListener("storage",h)}}},[C,y,i,a,l,t,s,c]),{...u,mode:g.current||!c?u.mode:void 0,systemMode:g.current||!c?u.systemMode:void 0,colorScheme:g.current||!c?m:void 0,setMode:y,setColorScheme:C}}const OE="*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function LE(e){const{themeId:t,theme:n={},modeStorageKey:r=w1,colorSchemeStorageKey:o=C1,disableTransitionOnChange:i=!1,defaultColorScheme:a,resolveTheme:s}=e,l={allColorSchemes:[],colorScheme:void 0,darkColorScheme:void 0,lightColorScheme:void 0,mode:void 0,setColorScheme:()=>{},setMode:()=>{},systemMode:void 0},c=b.createContext(void 0),u=()=>b.useContext(c)||l;function d(y){var ge,le,Se,ye,Ge;const{children:C,theme:v,modeStorageKey:S=r,colorSchemeStorageKey:h=o,disableTransitionOnChange:w=i,storageWindow:_=typeof window>"u"?void 0:window,documentNode:T=typeof document>"u"?void 0:document,colorSchemeNode:k=typeof document>"u"?void 0:document.documentElement,disableNestedContext:R=!1,disableStyleSheetGeneration:P=!1,defaultMode:x="system"}=y,$=b.useRef(!1),I=S1(),O=b.useContext(c),D=!!O&&!R,M=b.useMemo(()=>v||(typeof n=="function"?n():n),[v]),N=M[t],{colorSchemes:A={},components:E={},cssVarPrefix:L,...B}=N||M,H=Object.keys(A).filter(Pe=>!!A[Pe]).join(","),z=b.useMemo(()=>H.split(","),[H]),j=typeof a=="string"?a:a.light,F=typeof a=="string"?a:a.dark,W=A[j]&&A[F]?x:((le=(ge=A[B.defaultColorScheme])==null?void 0:ge.palette)==null?void 0:le.mode)||((Se=B.palette)==null?void 0:Se.mode),{mode:V,setMode:ee,systemMode:re,lightColorScheme:U,darkColorScheme:K,colorScheme:se,setColorScheme:q}=IE({supportedColorSchemes:z,defaultLightColorScheme:j,defaultDarkColorScheme:F,modeStorageKey:S,colorSchemeStorageKey:h,defaultMode:W,storageWindow:_});let ce=V,ue=se;D&&(ce=O.mode,ue=O.colorScheme);const ie=ue||B.defaultColorScheme,te=((ye=B.generateThemeVars)==null?void 0:ye.call(B))||B.vars,de={...B,components:E,colorSchemes:A,cssVarPrefix:L,vars:te};if(typeof de.generateSpacing=="function"&&(de.spacing=de.generateSpacing()),ie){const Pe=A[ie];Pe&&typeof Pe=="object"&&Object.keys(Pe).forEach(Re=>{Pe[Re]&&typeof Pe[Re]=="object"?de[Re]={...de[Re],...Pe[Re]}:de[Re]=Pe[Re]})}const Q=B.colorSchemeSelector;b.useEffect(()=>{if(ue&&k&&Q&&Q!=="media"){const Pe=Q;let Re=Q;if(Pe==="class"&&(Re=".%s"),Pe==="data"&&(Re="[data-%s]"),Pe!=null&&Pe.startsWith("data-")&&!Pe.includes("%s")&&(Re=`[${Pe}="%s"]`),Re.startsWith("."))k.classList.remove(...z.map(ke=>Re.substring(1).replace("%s",ke))),k.classList.add(Re.substring(1).replace("%s",ue));else{const ke=Re.replace("%s",ue).match(/\[([^\]]+)\]/);if(ke){const[pe,ne]=ke[1].split("=");ne||z.forEach(xe=>{k.removeAttribute(pe.replace(ue,xe))}),k.setAttribute(pe,ne?ne.replace(/"|'/g,""):"")}else k.setAttribute(Re,ue)}}},[ue,Q,k,z]),b.useEffect(()=>{let Pe;if(w&&$.current&&T){const Re=T.createElement("style");Re.appendChild(T.createTextNode(OE)),T.head.appendChild(Re),window.getComputedStyle(T.body),Pe=setTimeout(()=>{T.head.removeChild(Re)},1)}return()=>{clearTimeout(Pe)}},[ue,w,T]),b.useEffect(()=>($.current=!0,()=>{$.current=!1}),[]);const be=b.useMemo(()=>({allColorSchemes:z,colorScheme:ue,darkColorScheme:K,lightColorScheme:U,mode:ce,setColorScheme:q,setMode:ee,systemMode:re}),[z,ue,K,U,ce,q,ee,re]);let Te=!0;(P||B.cssVariables===!1||D&&(I==null?void 0:I.cssVarPrefix)===L)&&(Te=!1);const we=p.jsxs(b.Fragment,{children:[p.jsx(r_,{themeId:N?t:void 0,theme:s?s(de):de,children:C}),Te&&p.jsx(j2,{styles:((Ge=de.generateStyleSheets)==null?void 0:Ge.call(de))||[]})]});return D?we:p.jsx(c.Provider,{value:be,children:we})}const f=typeof a=="string"?a:a.light,g=typeof a=="string"?a:a.dark;return{CssVarsProvider:d,useColorScheme:u,getInitColorSchemeScript:y=>EE({colorSchemeStorageKey:o,defaultLightColorScheme:f,defaultDarkColorScheme:g,modeStorageKey:r,...y})}}function NE(e=""){function t(...r){if(!r.length)return"";const o=r[0];return typeof o=="string"&&!o.match(/(#|\(|\)|(-?(\d*\.)?\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\d*\.)?\d+)$|(\d+ \d+ \d+)/)?`, var(--${e?`${e}-`:""}${o}${t(...r.slice(1))})`:`, ${o}`}return(r,...o)=>`var(--${e?`${e}-`:""}${r}${t(...o)})`}const ab=(e,t,n,r=[])=>{let o=e;t.forEach((i,a)=>{a===t.length-1?Array.isArray(o)?o[Number(i)]=n:o&&typeof o=="object"&&(o[i]=n):o&&typeof o=="object"&&(o[i]||(o[i]=r.includes(i)?[]:{}),o=o[i])})},AE=(e,t,n)=>{function r(o,i=[],a=[]){Object.entries(o).forEach(([s,l])=>{(!n||n&&!n([...i,s]))&&l!=null&&(typeof l=="object"&&Object.keys(l).length>0?r(l,[...i,s],Array.isArray(l)?[...a,s]:a):t([...i,s],l,a))})}r(e)},DE=(e,t)=>typeof t=="number"?["lineHeight","fontWeight","opacity","zIndex"].some(r=>e.includes(r))||e[e.length-1].toLowerCase().includes("opacity")?t:`${t}px`:t;function vg(e,t){const{prefix:n,shouldSkipGeneratingVar:r}=t||{},o={},i={},a={};return AE(e,(s,l,c)=>{if((typeof l=="string"||typeof l=="number")&&(!r||!r(s,l))){const u=`--${n?`${n}-`:""}${s.join("-")}`,d=DE(s,l);Object.assign(o,{[u]:d}),ab(i,s,`var(${u})`,c),ab(a,s,`var(${u}, ${d})`,c)}},s=>s[0]==="vars"),{css:o,vars:i,varsWithDefaults:a}}function jE(e,t={}){const{getSelector:n=C,disableCssColorScheme:r,colorSchemeSelector:o}=t,{colorSchemes:i={},components:a,defaultColorScheme:s="light",...l}=e,{vars:c,css:u,varsWithDefaults:d}=vg(l,t);let f=d;const g={},{[s]:m,...y}=i;if(Object.entries(y||{}).forEach(([h,w])=>{const{vars:_,css:T,varsWithDefaults:k}=vg(w,t);f=Ro(f,k),g[h]={css:T,vars:_}}),m){const{css:h,vars:w,varsWithDefaults:_}=vg(m,t);f=Ro(f,_),g[s]={css:h,vars:w}}function C(h,w){var T,k;let _=o;if(o==="class"&&(_=".%s"),o==="data"&&(_="[data-%s]"),o!=null&&o.startsWith("data-")&&!o.includes("%s")&&(_=`[${o}="%s"]`),h){if(_==="media")return e.defaultColorScheme===h?":root":{[`@media (prefers-color-scheme: ${((k=(T=i[h])==null?void 0:T.palette)==null?void 0:k.mode)||h})`]:{":root":w}};if(_)return e.defaultColorScheme===h?`:root, ${_.replace("%s",String(h))}`:_.replace("%s",String(h))}return":root"}return{vars:f,generateThemeVars:()=>{let h={...c};return Object.entries(g).forEach(([,{vars:w}])=>{h=Ro(h,w)}),h},generateStyleSheets:()=>{var R,P;const h=[],w=e.defaultColorScheme||"light";function _(x,$){Object.keys($).length&&h.push(typeof x=="string"?{[x]:{...$}}:x)}_(n(void 0,{...u}),u);const{[w]:T,...k}=g;if(T){const{css:x}=T,$=(P=(R=i[w])==null?void 0:R.palette)==null?void 0:P.mode,I=!r&&$?{colorScheme:$,...x}:{...x};_(n(w,{...I}),I)}return Object.entries(k).forEach(([x,{css:$}])=>{var D,M;const I=(M=(D=i[x])==null?void 0:D.palette)==null?void 0:M.mode,O=!r&&I?{colorScheme:I,...$}:{...$};_(n(x,{...O}),O)}),h}}}function FE(e){return function(n){return e==="media"?`@media (prefers-color-scheme: ${n})`:e?e.startsWith("data-")&&!e.includes("%s")?`[${e}="${n}"] &`:e==="class"?`.${n} &`:e==="data"?`[data-${n}] &`:`${e.replace("%s",n)} &`:"&"}}function BE(e,t,n=void 0){const r={};for(const o in e){const i=e[o];let a="",s=!0;for(let l=0;lt.root});function VE(e){return X2({props:e,name:"MuiStack",defaultTheme:zE})}function WE(e,t){const n=b.Children.toArray(e).filter(Boolean);return n.reduce((r,o,i)=>(r.push(o),i({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[e],GE=({ownerState:e,theme:t})=>{let n={display:"flex",flexDirection:"column",...Hr({theme:t},gg({values:e.direction,breakpoints:t.breakpoints.values}),r=>({flexDirection:r}))};if(e.spacing){const r=Kf(t),o=Object.keys(t.breakpoints.values).reduce((l,c)=>((typeof e.spacing=="object"&&e.spacing[c]!=null||typeof e.direction=="object"&&e.direction[c]!=null)&&(l[c]=!0),l),{}),i=gg({values:e.direction,base:o}),a=gg({values:e.spacing,base:o});typeof i=="object"&&Object.keys(i).forEach((l,c,u)=>{if(!i[l]){const f=c>0?i[u[c-1]]:"column";i[l]=f}}),n=Ro(n,Hr({theme:t},a,(l,c)=>e.useFlexGap?{gap:na(r,l)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${UE(c?i[c]:e.direction)}`]:na(r,l)}}))}return n=s5(t.breakpoints,n),n};function qE(e={}){const{createStyledComponent:t=HE,useThemeProps:n=VE,componentName:r="MuiStack"}=e,o=()=>BE({root:["root"]},l=>rE(r,l),{}),i=t(GE);return b.forwardRef(function(l,c){const u=n(l),d=v1(u),{component:f="div",direction:g="column",spacing:m=0,divider:y,children:C,className:v,useFlexGap:S=!1,...h}=d,w={direction:g,spacing:m,useFlexGap:S},_=o();return p.jsx(i,{as:f,ownerState:w,ref:c,className:ve(_.root,v),...h,children:y?WE(C,y):C})})}function Ko(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function i_(e){if(!Ko(e))return e;const t={};return Object.keys(e).forEach(n=>{t[n]=i_(e[n])}),t}function so(e,t,n={clone:!0}){const r=n.clone?{...e}:e;return Ko(e)&&Ko(t)&&Object.keys(t).forEach(o=>{Ko(t[o])&&Object.prototype.hasOwnProperty.call(e,o)&&Ko(e[o])?r[o]=so(e[o],t[o],n):n.clone?r[o]=Ko(t[o])?i_(t[o]):t[o]:r[o]=t[o]}),r}function a_(){return{text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:cc.white,default:cc.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}}}const KE=a_();function s_(){return{text:{primary:cc.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:cc.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}}}const sb=s_();function lb(e,t,n,r){const o=r.light||r,i=r.dark||r*1.5;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:t==="light"?e.light=oa(e.main,o):t==="dark"&&(e.dark=ra(e.main,i)))}function ZE(e="light"){return e==="dark"?{main:Sa[200],light:Sa[50],dark:Sa[400]}:{main:Sa[700],light:Sa[400],dark:Sa[800]}}function QE(e="light"){return e==="dark"?{main:xa[200],light:xa[50],dark:xa[400]}:{main:xa[500],light:xa[300],dark:xa[700]}}function YE(e="light"){return e==="dark"?{main:ba[500],light:ba[300],dark:ba[700]}:{main:ba[700],light:ba[400],dark:ba[800]}}function XE(e="light"){return e==="dark"?{main:wa[400],light:wa[300],dark:wa[700]}:{main:wa[700],light:wa[500],dark:wa[900]}}function JE(e="light"){return e==="dark"?{main:Ca[400],light:Ca[300],dark:Ca[700]}:{main:Ca[800],light:Ca[500],dark:Ca[900]}}function e8(e="light"){return e==="dark"?{main:el[400],light:el[300],dark:el[700]}:{main:"#ed6c02",light:el[500],dark:el[900]}}function _1(e){const{mode:t="light",contrastThreshold:n=3,tonalOffset:r=.2,...o}=e,i=e.primary||ZE(t),a=e.secondary||QE(t),s=e.error||YE(t),l=e.info||XE(t),c=e.success||JE(t),u=e.warning||e8(t);function d(y){return yE(y,sb.text.primary)>=n?sb.text.primary:KE.text.primary}const f=({color:y,name:C,mainShade:v=500,lightShade:S=300,darkShade:h=700})=>{if(y={...y},!y.main&&y[v]&&(y.main=y[v]),!y.hasOwnProperty("main"))throw new Error(ta(11,C?` (${C})`:"",v));if(typeof y.main!="string")throw new Error(ta(12,C?` (${C})`:"",JSON.stringify(y.main)));return lb(y,"light",S,r),lb(y,"dark",h,r),y.contrastText||(y.contrastText=d(y.main)),y};let g;return t==="light"?g=a_():t==="dark"&&(g=s_()),so({common:{...cc},mode:t,primary:f({color:i,name:"primary"}),secondary:f({color:a,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:f({color:s,name:"error"}),warning:f({color:u,name:"warning"}),info:f({color:l,name:"info"}),success:f({color:c,name:"success"}),grey:U4,contrastThreshold:n,getContrastText:d,augmentColor:f,tonalOffset:r,...g},o)}function t8(e){const t={};return Object.entries(e).forEach(r=>{const[o,i]=r;typeof i=="object"&&(t[o]=`${i.fontStyle?`${i.fontStyle} `:""}${i.fontVariant?`${i.fontVariant} `:""}${i.fontWeight?`${i.fontWeight} `:""}${i.fontStretch?`${i.fontStretch} `:""}${i.fontSize||""}${i.lineHeight?`/${i.lineHeight} `:""}${i.fontFamily||""}`)}),t}const cb=e=>e,n8=()=>{let e=cb;return{configure(t){e=t},generate(t){return e(t)},reset(){e=cb}}},l_=n8(),r8={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function Oe(e,t,n="Mui"){const r=r8[t];return r?`${n}-${r}`:`${l_.generate(e)}-${t}`}function o8(e,t){return{toolbar:{minHeight:56,[e.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[e.up("sm")]:{minHeight:64}},...t}}function i8(e){return Math.round(e*1e5)/1e5}const ub={textTransform:"uppercase"},db='"Roboto", "Helvetica", "Arial", sans-serif';function c_(e,t){const{fontFamily:n=db,fontSize:r=14,fontWeightLight:o=300,fontWeightRegular:i=400,fontWeightMedium:a=500,fontWeightBold:s=700,htmlFontSize:l=16,allVariants:c,pxToRem:u,...d}=typeof t=="function"?t(e):t,f=r/14,g=u||(C=>`${C/l*f}rem`),m=(C,v,S,h,w)=>({fontFamily:n,fontWeight:C,fontSize:g(v),lineHeight:S,...n===db?{letterSpacing:`${i8(h/v)}em`}:{},...w,...c}),y={h1:m(o,96,1.167,-1.5),h2:m(o,60,1.2,-.5),h3:m(i,48,1.167,0),h4:m(i,34,1.235,.25),h5:m(i,24,1.334,0),h6:m(a,20,1.6,.15),subtitle1:m(i,16,1.75,.15),subtitle2:m(a,14,1.57,.1),body1:m(i,16,1.5,.15),body2:m(i,14,1.43,.15),button:m(a,14,1.75,.4,ub),caption:m(i,12,1.66,.4),overline:m(i,12,2.66,1,ub),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return so({htmlFontSize:l,pxToRem:g,fontFamily:n,fontSize:r,fontWeightLight:o,fontWeightRegular:i,fontWeightMedium:a,fontWeightBold:s,...y},d,{clone:!1})}const a8=.2,s8=.14,l8=.12;function xt(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,${a8})`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,${s8})`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,${l8})`].join(",")}const c8=["none",xt(0,2,1,-1,0,1,1,0,0,1,3,0),xt(0,3,1,-2,0,2,2,0,0,1,5,0),xt(0,3,3,-2,0,3,4,0,0,1,8,0),xt(0,2,4,-1,0,4,5,0,0,1,10,0),xt(0,3,5,-1,0,5,8,0,0,1,14,0),xt(0,3,5,-1,0,6,10,0,0,1,18,0),xt(0,4,5,-2,0,7,10,1,0,2,16,1),xt(0,5,5,-3,0,8,10,1,0,3,14,2),xt(0,5,6,-3,0,9,12,1,0,3,16,2),xt(0,6,6,-3,0,10,14,1,0,4,18,3),xt(0,6,7,-4,0,11,15,1,0,4,20,3),xt(0,7,8,-4,0,12,17,2,0,5,22,4),xt(0,7,8,-4,0,13,19,2,0,5,24,4),xt(0,7,9,-4,0,14,21,2,0,5,26,4),xt(0,8,9,-5,0,15,22,2,0,6,28,5),xt(0,8,10,-5,0,16,24,2,0,6,30,5),xt(0,8,11,-5,0,17,26,2,0,6,32,5),xt(0,9,11,-5,0,18,28,2,0,7,34,6),xt(0,9,12,-6,0,19,29,2,0,7,36,6),xt(0,10,13,-6,0,20,31,3,0,8,38,7),xt(0,10,13,-6,0,21,33,3,0,8,40,7),xt(0,10,14,-6,0,22,35,3,0,8,42,7),xt(0,11,14,-7,0,23,36,3,0,9,44,8),xt(0,11,15,-7,0,24,38,3,0,9,46,8)],u8={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},u_={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function fb(e){return`${Math.round(e)}ms`}function d8(e){if(!e)return 0;const t=e/36;return Math.min(Math.round((4+15*t**.25+t/5)*10),3e3)}function f8(e){const t={...u8,...e.easing},n={...u_,...e.duration};return{getAutoHeightDuration:d8,create:(o=["all"],i={})=>{const{duration:a=n.standard,easing:s=t.easeInOut,delay:l=0,...c}=i;return(Array.isArray(o)?o:[o]).map(u=>`${u} ${typeof a=="string"?a:fb(a)} ${s} ${typeof l=="string"?l:fb(l)}`).join(",")},...e,easing:t,duration:n}}const p8={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function g8(e){return Ko(e)||typeof e>"u"||typeof e=="string"||typeof e=="boolean"||typeof e=="number"||Array.isArray(e)}function d_(e={}){const t={...e};function n(r){const o=Object.entries(r);for(let i=0;iso(g,m),f),f.unstable_sxConfig={...Ec,...c==null?void 0:c.unstable_sxConfig},f.unstable_sx=function(m){return hi({sx:m,theme:this})},f.toRuntimeSource=d_,f}function xm(e){let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}const h8=[...Array(25)].map((e,t)=>{if(t===0)return"none";const n=xm(t);return`linear-gradient(rgba(255 255 255 / ${n}), rgba(255 255 255 / ${n}))`});function f_(e){return{inputPlaceholder:e==="dark"?.5:.42,inputUnderline:e==="dark"?.7:.42,switchTrackDisabled:e==="dark"?.2:.12,switchTrack:e==="dark"?.3:.38}}function p_(e){return e==="dark"?h8:[]}function m8(e){const{palette:t={mode:"light"},opacity:n,overlays:r,...o}=e,i=_1(t);return{palette:i,opacity:{...f_(i.mode),...n},overlays:r||p_(i.mode),...o}}function v8(e){var t;return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]==="palette"&&!!((t=e[1])!=null&&t.match(/(mode|contrastThreshold|tonalOffset)/))}const y8=e=>[...[...Array(25)].map((t,n)=>`--${e?`${e}-`:""}overlays-${n}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],b8=e=>(t,n)=>{const r=e.rootSelector||":root",o=e.colorSchemeSelector;let i=o;if(o==="class"&&(i=".%s"),o==="data"&&(i="[data-%s]"),o!=null&&o.startsWith("data-")&&!o.includes("%s")&&(i=`[${o}="%s"]`),e.defaultColorScheme===t){if(t==="dark"){const a={};return y8(e.cssVarPrefix).forEach(s=>{a[s]=n[s],delete n[s]}),i==="media"?{[r]:n,"@media (prefers-color-scheme: dark)":{[r]:a}}:i?{[i.replace("%s",t)]:a,[`${r}, ${i.replace("%s",t)}`]:n}:{[r]:{...n,...a}}}if(i&&i!=="media")return`${r}, ${i.replace("%s",String(t))}`}else if(t){if(i==="media")return{[`@media (prefers-color-scheme: ${String(t)})`]:{[r]:n}};if(i)return i.replace("%s",String(t))}return r};function x8(e,t){t.forEach(n=>{e[n]||(e[n]={})})}function Z(e,t,n){!e[t]&&n&&(e[t]=n)}function bl(e){return!e||!e.startsWith("hsl")?e:J2(e)}function fo(e,t){`${t}Channel`in e||(e[`${t}Channel`]=yl(bl(e[t]),`MUI: Can't create \`palette.${t}Channel\` because \`palette.${t}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color(). +To suppress this warning, you need to explicitly provide the \`palette.${t}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function S8(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}const Zr=e=>{try{return e()}catch{}},w8=(e="mui")=>NE(e);function yg(e,t,n,r){if(!t)return;t=t===!0?{}:t;const o=r==="dark"?"dark":"light";if(!n){e[r]=m8({...t,palette:{mode:o,...t==null?void 0:t.palette}});return}const{palette:i,...a}=bm({...n,palette:{mode:o,...t==null?void 0:t.palette}});return e[r]={...t,palette:i,opacity:{...f_(o),...t==null?void 0:t.opacity},overlays:(t==null?void 0:t.overlays)||p_(o)},a}function C8(e={},...t){const{colorSchemes:n={light:!0},defaultColorScheme:r,disableCssColorScheme:o=!1,cssVarPrefix:i="mui",shouldSkipGeneratingVar:a=v8,colorSchemeSelector:s=n.light&&n.dark?"media":void 0,rootSelector:l=":root",...c}=e,u=Object.keys(n)[0],d=r||(n.light&&u!=="light"?"light":u),f=w8(i),{[d]:g,light:m,dark:y,...C}=n,v={...C};let S=g;if((d==="dark"&&!("dark"in n)||d==="light"&&!("light"in n))&&(S=!0),!S)throw new Error(ta(21,d));const h=yg(v,S,c,d);m&&!v.light&&yg(v,m,void 0,"light"),y&&!v.dark&&yg(v,y,void 0,"dark");let w={defaultColorScheme:d,...h,cssVarPrefix:i,colorSchemeSelector:s,rootSelector:l,getCssVar:f,colorSchemes:v,font:{...t8(h.typography),...h.font},spacing:S8(c.spacing)};Object.keys(w.colorSchemes).forEach(P=>{const x=w.colorSchemes[P].palette,$=I=>{const O=I.split("-"),D=O[1],M=O[2];return f(I,x[D][M])};if(x.mode==="light"&&(Z(x.common,"background","#fff"),Z(x.common,"onBackground","#000")),x.mode==="dark"&&(Z(x.common,"background","#000"),Z(x.common,"onBackground","#fff")),x8(x,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),x.mode==="light"){Z(x.Alert,"errorColor",pt(x.error.light,.6)),Z(x.Alert,"infoColor",pt(x.info.light,.6)),Z(x.Alert,"successColor",pt(x.success.light,.6)),Z(x.Alert,"warningColor",pt(x.warning.light,.6)),Z(x.Alert,"errorFilledBg",$("palette-error-main")),Z(x.Alert,"infoFilledBg",$("palette-info-main")),Z(x.Alert,"successFilledBg",$("palette-success-main")),Z(x.Alert,"warningFilledBg",$("palette-warning-main")),Z(x.Alert,"errorFilledColor",Zr(()=>x.getContrastText(x.error.main))),Z(x.Alert,"infoFilledColor",Zr(()=>x.getContrastText(x.info.main))),Z(x.Alert,"successFilledColor",Zr(()=>x.getContrastText(x.success.main))),Z(x.Alert,"warningFilledColor",Zr(()=>x.getContrastText(x.warning.main))),Z(x.Alert,"errorStandardBg",gt(x.error.light,.9)),Z(x.Alert,"infoStandardBg",gt(x.info.light,.9)),Z(x.Alert,"successStandardBg",gt(x.success.light,.9)),Z(x.Alert,"warningStandardBg",gt(x.warning.light,.9)),Z(x.Alert,"errorIconColor",$("palette-error-main")),Z(x.Alert,"infoIconColor",$("palette-info-main")),Z(x.Alert,"successIconColor",$("palette-success-main")),Z(x.Alert,"warningIconColor",$("palette-warning-main")),Z(x.AppBar,"defaultBg",$("palette-grey-100")),Z(x.Avatar,"defaultBg",$("palette-grey-400")),Z(x.Button,"inheritContainedBg",$("palette-grey-300")),Z(x.Button,"inheritContainedHoverBg",$("palette-grey-A100")),Z(x.Chip,"defaultBorder",$("palette-grey-400")),Z(x.Chip,"defaultAvatarColor",$("palette-grey-700")),Z(x.Chip,"defaultIconColor",$("palette-grey-700")),Z(x.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),Z(x.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),Z(x.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),Z(x.LinearProgress,"primaryBg",gt(x.primary.main,.62)),Z(x.LinearProgress,"secondaryBg",gt(x.secondary.main,.62)),Z(x.LinearProgress,"errorBg",gt(x.error.main,.62)),Z(x.LinearProgress,"infoBg",gt(x.info.main,.62)),Z(x.LinearProgress,"successBg",gt(x.success.main,.62)),Z(x.LinearProgress,"warningBg",gt(x.warning.main,.62)),Z(x.Skeleton,"bg",`rgba(${$("palette-text-primaryChannel")} / 0.11)`),Z(x.Slider,"primaryTrack",gt(x.primary.main,.62)),Z(x.Slider,"secondaryTrack",gt(x.secondary.main,.62)),Z(x.Slider,"errorTrack",gt(x.error.main,.62)),Z(x.Slider,"infoTrack",gt(x.info.main,.62)),Z(x.Slider,"successTrack",gt(x.success.main,.62)),Z(x.Slider,"warningTrack",gt(x.warning.main,.62));const I=pu(x.background.default,.8);Z(x.SnackbarContent,"bg",I),Z(x.SnackbarContent,"color",Zr(()=>x.getContrastText(I))),Z(x.SpeedDialAction,"fabHoverBg",pu(x.background.paper,.15)),Z(x.StepConnector,"border",$("palette-grey-400")),Z(x.StepContent,"border",$("palette-grey-400")),Z(x.Switch,"defaultColor",$("palette-common-white")),Z(x.Switch,"defaultDisabledColor",$("palette-grey-100")),Z(x.Switch,"primaryDisabledColor",gt(x.primary.main,.62)),Z(x.Switch,"secondaryDisabledColor",gt(x.secondary.main,.62)),Z(x.Switch,"errorDisabledColor",gt(x.error.main,.62)),Z(x.Switch,"infoDisabledColor",gt(x.info.main,.62)),Z(x.Switch,"successDisabledColor",gt(x.success.main,.62)),Z(x.Switch,"warningDisabledColor",gt(x.warning.main,.62)),Z(x.TableCell,"border",gt(fu(x.divider,1),.88)),Z(x.Tooltip,"bg",fu(x.grey[700],.92))}if(x.mode==="dark"){Z(x.Alert,"errorColor",gt(x.error.light,.6)),Z(x.Alert,"infoColor",gt(x.info.light,.6)),Z(x.Alert,"successColor",gt(x.success.light,.6)),Z(x.Alert,"warningColor",gt(x.warning.light,.6)),Z(x.Alert,"errorFilledBg",$("palette-error-dark")),Z(x.Alert,"infoFilledBg",$("palette-info-dark")),Z(x.Alert,"successFilledBg",$("palette-success-dark")),Z(x.Alert,"warningFilledBg",$("palette-warning-dark")),Z(x.Alert,"errorFilledColor",Zr(()=>x.getContrastText(x.error.dark))),Z(x.Alert,"infoFilledColor",Zr(()=>x.getContrastText(x.info.dark))),Z(x.Alert,"successFilledColor",Zr(()=>x.getContrastText(x.success.dark))),Z(x.Alert,"warningFilledColor",Zr(()=>x.getContrastText(x.warning.dark))),Z(x.Alert,"errorStandardBg",pt(x.error.light,.9)),Z(x.Alert,"infoStandardBg",pt(x.info.light,.9)),Z(x.Alert,"successStandardBg",pt(x.success.light,.9)),Z(x.Alert,"warningStandardBg",pt(x.warning.light,.9)),Z(x.Alert,"errorIconColor",$("palette-error-main")),Z(x.Alert,"infoIconColor",$("palette-info-main")),Z(x.Alert,"successIconColor",$("palette-success-main")),Z(x.Alert,"warningIconColor",$("palette-warning-main")),Z(x.AppBar,"defaultBg",$("palette-grey-900")),Z(x.AppBar,"darkBg",$("palette-background-paper")),Z(x.AppBar,"darkColor",$("palette-text-primary")),Z(x.Avatar,"defaultBg",$("palette-grey-600")),Z(x.Button,"inheritContainedBg",$("palette-grey-800")),Z(x.Button,"inheritContainedHoverBg",$("palette-grey-700")),Z(x.Chip,"defaultBorder",$("palette-grey-700")),Z(x.Chip,"defaultAvatarColor",$("palette-grey-300")),Z(x.Chip,"defaultIconColor",$("palette-grey-300")),Z(x.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),Z(x.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),Z(x.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),Z(x.LinearProgress,"primaryBg",pt(x.primary.main,.5)),Z(x.LinearProgress,"secondaryBg",pt(x.secondary.main,.5)),Z(x.LinearProgress,"errorBg",pt(x.error.main,.5)),Z(x.LinearProgress,"infoBg",pt(x.info.main,.5)),Z(x.LinearProgress,"successBg",pt(x.success.main,.5)),Z(x.LinearProgress,"warningBg",pt(x.warning.main,.5)),Z(x.Skeleton,"bg",`rgba(${$("palette-text-primaryChannel")} / 0.13)`),Z(x.Slider,"primaryTrack",pt(x.primary.main,.5)),Z(x.Slider,"secondaryTrack",pt(x.secondary.main,.5)),Z(x.Slider,"errorTrack",pt(x.error.main,.5)),Z(x.Slider,"infoTrack",pt(x.info.main,.5)),Z(x.Slider,"successTrack",pt(x.success.main,.5)),Z(x.Slider,"warningTrack",pt(x.warning.main,.5));const I=pu(x.background.default,.98);Z(x.SnackbarContent,"bg",I),Z(x.SnackbarContent,"color",Zr(()=>x.getContrastText(I))),Z(x.SpeedDialAction,"fabHoverBg",pu(x.background.paper,.15)),Z(x.StepConnector,"border",$("palette-grey-600")),Z(x.StepContent,"border",$("palette-grey-600")),Z(x.Switch,"defaultColor",$("palette-grey-300")),Z(x.Switch,"defaultDisabledColor",$("palette-grey-600")),Z(x.Switch,"primaryDisabledColor",pt(x.primary.main,.55)),Z(x.Switch,"secondaryDisabledColor",pt(x.secondary.main,.55)),Z(x.Switch,"errorDisabledColor",pt(x.error.main,.55)),Z(x.Switch,"infoDisabledColor",pt(x.info.main,.55)),Z(x.Switch,"successDisabledColor",pt(x.success.main,.55)),Z(x.Switch,"warningDisabledColor",pt(x.warning.main,.55)),Z(x.TableCell,"border",pt(fu(x.divider,1),.68)),Z(x.Tooltip,"bg",fu(x.grey[700],.92))}fo(x.background,"default"),fo(x.background,"paper"),fo(x.common,"background"),fo(x.common,"onBackground"),fo(x,"divider"),Object.keys(x).forEach(I=>{const O=x[I];O&&typeof O=="object"&&(O.main&&Z(x[I],"mainChannel",yl(bl(O.main))),O.light&&Z(x[I],"lightChannel",yl(bl(O.light))),O.dark&&Z(x[I],"darkChannel",yl(bl(O.dark))),O.contrastText&&Z(x[I],"contrastTextChannel",yl(bl(O.contrastText))),I==="text"&&(fo(x[I],"primary"),fo(x[I],"secondary")),I==="action"&&(O.active&&fo(x[I],"active"),O.selected&&fo(x[I],"selected")))})}),w=t.reduce((P,x)=>so(P,x),w);const _={prefix:i,disableCssColorScheme:o,shouldSkipGeneratingVar:a,getSelector:b8(w)},{vars:T,generateThemeVars:k,generateStyleSheets:R}=jE(w,_);return w.vars=T,Object.entries(w.colorSchemes[w.defaultColorScheme]).forEach(([P,x])=>{w[P]=x}),w.generateThemeVars=k,w.generateStyleSheets=R,w.generateSpacing=function(){return U2(c.spacing,Kf(this))},w.getColorSchemeSelector=FE(s),w.spacing=w.generateSpacing(),w.shouldSkipGeneratingVar=a,w.unstable_sxConfig={...Ec,...c==null?void 0:c.unstable_sxConfig},w.unstable_sx=function(x){return hi({sx:x,theme:this})},w.toRuntimeSource=d_,w}function pb(e,t,n){e.colorSchemes&&n&&(e.colorSchemes[t]={...n!==!0&&n,palette:_1({...n===!0?{}:n.palette,mode:t})})}function pp(e={},...t){const{palette:n,cssVariables:r=!1,colorSchemes:o=n?void 0:{light:!0},defaultColorScheme:i=n==null?void 0:n.mode,...a}=e,s=i||"light",l=o==null?void 0:o[s],c={...o,...n?{[s]:{...typeof l!="boolean"&&l,palette:n}}:void 0};if(r===!1){if(!("colorSchemes"in e))return bm(e,...t);let u=n;"palette"in e||c[s]&&(c[s]!==!0?u=c[s].palette:s==="dark"&&(u={mode:"dark"}));const d=bm({...e,palette:u},...t);return d.defaultColorScheme=s,d.colorSchemes=c,d.palette.mode==="light"&&(d.colorSchemes.light={...c.light!==!0&&c.light,palette:d.palette},pb(d,"dark",c.dark)),d.palette.mode==="dark"&&(d.colorSchemes.dark={...c.dark!==!0&&c.dark,palette:d.palette},pb(d,"light",c.light)),d}return!n&&!("light"in c)&&s==="light"&&(c.light=!0),C8({...a,colorSchemes:c,defaultColorScheme:s,...typeof r!="boolean"&&r},...t)}const gp=pp();function Ht(){const e=tp(gp);return e[Fr]||e}function _8({props:e,name:t}){return X2({props:e,name:t,defaultTheme:gp,themeId:Fr})}function g_(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const _n=e=>g_(e)&&e!=="classes",J=Y2({themeId:Fr,defaultTheme:gp,rootShouldForwardProp:_n});function gb({theme:e,...t}){const n=Fr in e?e[Fr]:void 0;return p.jsx(r_,{...t,themeId:n?Fr:void 0,theme:n||e})}const gu={attribute:"data-mui-color-scheme",colorSchemeStorageKey:"mui-color-scheme",defaultLightColorScheme:"light",defaultDarkColorScheme:"dark",modeStorageKey:"mui-mode"},{CssVarsProvider:R8,useColorScheme:tZ,getInitColorSchemeScript:nZ}=LE({themeId:Fr,theme:()=>pp({cssVariables:!0}),colorSchemeStorageKey:gu.colorSchemeStorageKey,modeStorageKey:gu.modeStorageKey,defaultColorScheme:{light:gu.defaultLightColorScheme,dark:gu.defaultDarkColorScheme},resolveTheme:e=>{const t={...e,typography:c_(e.palette,e.typography)};return t.unstable_sx=function(r){return hi({sx:r,theme:this})},t}}),T8=R8;function P8({theme:e,...t}){return typeof e=="function"?p.jsx(gb,{theme:e,...t}):"colorSchemes"in(Fr in e?e[Fr]:e)?p.jsx(T8,{theme:e,...t}):p.jsx(gb,{theme:e,...t})}function ae(e){if(typeof e!="string")throw new Error(ta(7));return e.charAt(0).toUpperCase()+e.slice(1)}function Sm(...e){return e.reduce((t,n)=>n==null?t:function(...o){t.apply(this,o),n.apply(this,o)},()=>{})}function hp(e,t=166){let n;function r(...o){const i=()=>{e.apply(this,o)};clearTimeout(n),n=setTimeout(i,t)}return r.clear=()=>{clearTimeout(n)},r}function bg(e,t){var n,r,o;return b.isValidElement(e)&&t.indexOf(e.type.muiName??((o=(r=(n=e.type)==null?void 0:n._payload)==null?void 0:r.value)==null?void 0:o.muiName))!==-1}function ln(e){return e&&e.ownerDocument||document}function Vr(e){return ln(e).defaultView||window}function Vd(e,t){typeof e=="function"?e(t):e&&(e.current=t)}const Wr=typeof window<"u"?b.useLayoutEffect:b.useEffect;let hb=0;function k8(e){const[t,n]=b.useState(e),r=e||t;return b.useEffect(()=>{t==null&&(hb+=1,n(`mui-${hb}`))},[t]),r}const $8={...ud},mb=$8.useId;function hs(e){if(mb!==void 0){const t=mb();return e??t}return k8(e)}function Ui({controlled:e,default:t,name:n,state:r="value"}){const{current:o}=b.useRef(e!==void 0),[i,a]=b.useState(t),s=o?e:i,l=b.useCallback(c=>{o||a(c)},[]);return[s,l]}function Sn(e){const t=b.useRef(e);return Wr(()=>{t.current=e}),b.useRef((...n)=>(0,t.current)(...n)).current}function Rt(...e){return b.useMemo(()=>e.every(t=>t==null)?null:t=>{e.forEach(n=>{Vd(n,t)})},e)}const vb={};function h_(e,t){const n=b.useRef(vb);return n.current===vb&&(n.current=e(t)),n}const E8=[];function M8(e){b.useEffect(e,E8)}class mp{constructor(){Us(this,"currentId",null);Us(this,"clear",()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)});Us(this,"disposeEffect",()=>this.clear)}static create(){return new mp}start(t,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,n()},t)}}function Fi(){const e=h_(mp.create).current;return M8(e.disposeEffect),e}function Wd(e){try{return e.matches(":focus-visible")}catch{}return!1}function m_(e=window){const t=e.document.documentElement.clientWidth;return e.innerWidth-t}const I8=e=>{const t=b.useRef({});return b.useEffect(()=>{t.current=e}),t.current};function v_(e,t){const n={...t};for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const o=r;if(o==="components"||o==="slots")n[o]={...e[o],...n[o]};else if(o==="componentsProps"||o==="slotProps"){const i=e[o],a=t[o];if(!a)n[o]=i||{};else if(!i)n[o]=a;else{n[o]={...a};for(const s in i)if(Object.prototype.hasOwnProperty.call(i,s)){const l=s;n[o][l]=v_(i[l],a[l])}}}else n[o]===void 0&&(n[o]=e[o])}return n}function Ae(e,t,n=void 0){const r={};for(const o in e){const i=e[o];let a="",s=!0;for(let l=0;l{r[o]=Oe(e,o,n)}),r}function O8(e){return typeof e=="string"}function Ga(e,t,n){return e===void 0||O8(e)?t:{...t,ownerState:{...t.ownerState,...n}}}function y_(e,t=[]){if(e===void 0)return{};const n={};return Object.keys(e).filter(r=>r.match(/^on[A-Z]/)&&typeof e[r]=="function"&&!t.includes(r)).forEach(r=>{n[r]=e[r]}),n}function yb(e){if(e===void 0)return{};const t={};return Object.keys(e).filter(n=>!(n.match(/^on[A-Z]/)&&typeof e[n]=="function")).forEach(n=>{t[n]=e[n]}),t}function b_(e){const{getSlotProps:t,additionalProps:n,externalSlotProps:r,externalForwardedProps:o,className:i}=e;if(!t){const g=ve(n==null?void 0:n.className,i,o==null?void 0:o.className,r==null?void 0:r.className),m={...n==null?void 0:n.style,...o==null?void 0:o.style,...r==null?void 0:r.style},y={...n,...o,...r};return g.length>0&&(y.className=g),Object.keys(m).length>0&&(y.style=m),{props:y,internalRef:void 0}}const a=y_({...o,...r}),s=yb(r),l=yb(o),c=t(a),u=ve(c==null?void 0:c.className,n==null?void 0:n.className,i,o==null?void 0:o.className,r==null?void 0:r.className),d={...c==null?void 0:c.style,...n==null?void 0:n.style,...o==null?void 0:o.style,...r==null?void 0:r.style},f={...c,...n,...l,...s};return u.length>0&&(f.className=u),Object.keys(d).length>0&&(f.style=d),{props:f,internalRef:c.ref}}function x_(e,t,n){return typeof e=="function"?e(t,n):e}function ia(e){var d;const{elementType:t,externalSlotProps:n,ownerState:r,skipResolvingSlotProps:o=!1,...i}=e,a=o?{}:x_(n,r),{props:s,internalRef:l}=b_({...i,externalSlotProps:a}),c=Rt(l,a==null?void 0:a.ref,(d=e.additionalProps)==null?void 0:d.ref);return Ga(t,{...s,ref:c},r)}function pa(e){var t;return parseInt(b.version,10)>=19?((t=e==null?void 0:e.props)==null?void 0:t.ref)||null:(e==null?void 0:e.ref)||null}function L8(e){return p.jsx(Y5,{...e,defaultTheme:gp,themeId:Fr})}function N8(e){return function(n){return p.jsx(L8,{styles:typeof e=="function"?r=>e({theme:r,...n}):e})}}function A8(){return v1}const $e=kE;function De(e){return PE(e)}function D8(e){return Oe("MuiSvgIcon",e)}Ee("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);const j8=e=>{const{color:t,fontSize:n,classes:r}=e,o={root:["root",t!=="inherit"&&`color${ae(t)}`,`fontSize${ae(n)}`]};return Ae(o,D8,r)},F8=J("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="inherit"&&t[`color${ae(n.color)}`],t[`fontSize${ae(n.fontSize)}`]]}})($e(({theme:e})=>{var t,n,r,o,i,a,s,l,c,u,d,f,g,m;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",flexShrink:0,transition:(o=(t=e.transitions)==null?void 0:t.create)==null?void 0:o.call(t,"fill",{duration:(r=(n=(e.vars??e).transitions)==null?void 0:n.duration)==null?void 0:r.shorter}),variants:[{props:y=>!y.hasSvgAsChild,style:{fill:"currentColor"}},{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:((a=(i=e.typography)==null?void 0:i.pxToRem)==null?void 0:a.call(i,20))||"1.25rem"}},{props:{fontSize:"medium"},style:{fontSize:((l=(s=e.typography)==null?void 0:s.pxToRem)==null?void 0:l.call(s,24))||"1.5rem"}},{props:{fontSize:"large"},style:{fontSize:((u=(c=e.typography)==null?void 0:c.pxToRem)==null?void 0:u.call(c,35))||"2.1875rem"}},...Object.entries((e.vars??e).palette).filter(([,y])=>y&&y.main).map(([y])=>{var C,v;return{props:{color:y},style:{color:(v=(C=(e.vars??e).palette)==null?void 0:C[y])==null?void 0:v.main}}}),{props:{color:"action"},style:{color:(f=(d=(e.vars??e).palette)==null?void 0:d.action)==null?void 0:f.active}},{props:{color:"disabled"},style:{color:(m=(g=(e.vars??e).palette)==null?void 0:g.action)==null?void 0:m.disabled}},{props:{color:"inherit"},style:{color:void 0}}]}})),aa=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiSvgIcon"}),{children:o,className:i,color:a="inherit",component:s="svg",fontSize:l="medium",htmlColor:c,inheritViewBox:u=!1,titleAccess:d,viewBox:f="0 0 24 24",...g}=r,m=b.isValidElement(o)&&o.type==="svg",y={...r,color:a,component:s,fontSize:l,instanceFontSize:t.fontSize,inheritViewBox:u,viewBox:f,hasSvgAsChild:m},C={};u||(C.viewBox=f);const v=j8(y);return p.jsxs(F8,{as:s,className:ve(v.root,i),focusable:"false",color:c,"aria-hidden":d?void 0:!0,role:d?"img":void 0,ref:n,...C,...g,...m&&o.props,ownerState:y,children:[m?o.props.children:o,d?p.jsx("title",{children:d}):null]})});aa&&(aa.muiName="SvgIcon");function un(e,t){function n(r,o){return p.jsx(aa,{"data-testid":`${t}Icon`,ref:o,...r,children:e})}return n.muiName=aa.muiName,b.memo(b.forwardRef(n))}function Ns(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}function wm(e,t){return wm=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},wm(e,t)}function S_(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,wm(e,t)}const bb={disabled:!1},Ud=rt.createContext(null);var B8=function(t){return t.scrollTop},xl="unmounted",Mi="exited",Ii="entering",ka="entered",Cm="exiting",Ur=function(e){S_(t,e);function t(r,o){var i;i=e.call(this,r,o)||this;var a=o,s=a&&!a.isMounting?r.enter:r.appear,l;return i.appearStatus=null,r.in?s?(l=Mi,i.appearStatus=Ii):l=ka:r.unmountOnExit||r.mountOnEnter?l=xl:l=Mi,i.state={status:l},i.nextCallback=null,i}t.getDerivedStateFromProps=function(o,i){var a=o.in;return a&&i.status===xl?{status:Mi}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(o){var i=null;if(o!==this.props){var a=this.state.status;this.props.in?a!==Ii&&a!==ka&&(i=Ii):(a===Ii||a===ka)&&(i=Cm)}this.updateStatus(!1,i)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var o=this.props.timeout,i,a,s;return i=a=s=o,o!=null&&typeof o!="number"&&(i=o.exit,a=o.enter,s=o.appear!==void 0?o.appear:a),{exit:i,enter:a,appear:s}},n.updateStatus=function(o,i){if(o===void 0&&(o=!1),i!==null)if(this.cancelNextCallback(),i===Ii){if(this.props.unmountOnExit||this.props.mountOnEnter){var a=this.props.nodeRef?this.props.nodeRef.current:uu.findDOMNode(this);a&&B8(a)}this.performEnter(o)}else this.performExit();else this.props.unmountOnExit&&this.state.status===Mi&&this.setState({status:xl})},n.performEnter=function(o){var i=this,a=this.props.enter,s=this.context?this.context.isMounting:o,l=this.props.nodeRef?[s]:[uu.findDOMNode(this),s],c=l[0],u=l[1],d=this.getTimeouts(),f=s?d.appear:d.enter;if(!o&&!a||bb.disabled){this.safeSetState({status:ka},function(){i.props.onEntered(c)});return}this.props.onEnter(c,u),this.safeSetState({status:Ii},function(){i.props.onEntering(c,u),i.onTransitionEnd(f,function(){i.safeSetState({status:ka},function(){i.props.onEntered(c,u)})})})},n.performExit=function(){var o=this,i=this.props.exit,a=this.getTimeouts(),s=this.props.nodeRef?void 0:uu.findDOMNode(this);if(!i||bb.disabled){this.safeSetState({status:Mi},function(){o.props.onExited(s)});return}this.props.onExit(s),this.safeSetState({status:Cm},function(){o.props.onExiting(s),o.onTransitionEnd(a.exit,function(){o.safeSetState({status:Mi},function(){o.props.onExited(s)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(o,i){i=this.setNextCallback(i),this.setState(o,i)},n.setNextCallback=function(o){var i=this,a=!0;return this.nextCallback=function(s){a&&(a=!1,i.nextCallback=null,o(s))},this.nextCallback.cancel=function(){a=!1},this.nextCallback},n.onTransitionEnd=function(o,i){this.setNextCallback(i);var a=this.props.nodeRef?this.props.nodeRef.current:uu.findDOMNode(this),s=o==null&&!this.props.addEndListener;if(!a||s){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var l=this.props.nodeRef?[this.nextCallback]:[a,this.nextCallback],c=l[0],u=l[1];this.props.addEndListener(c,u)}o!=null&&setTimeout(this.nextCallback,o)},n.render=function(){var o=this.state.status;if(o===xl)return null;var i=this.props,a=i.children;i.in,i.mountOnEnter,i.unmountOnExit,i.appear,i.enter,i.exit,i.timeout,i.addEndListener,i.onEnter,i.onEntering,i.onEntered,i.onExit,i.onExiting,i.onExited,i.nodeRef;var s=Ns(i,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return rt.createElement(Ud.Provider,{value:null},typeof a=="function"?a(o,s):rt.cloneElement(rt.Children.only(a),s))},t}(rt.Component);Ur.contextType=Ud;Ur.propTypes={};function _a(){}Ur.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:_a,onEntering:_a,onEntered:_a,onExit:_a,onExiting:_a,onExited:_a};Ur.UNMOUNTED=xl;Ur.EXITED=Mi;Ur.ENTERING=Ii;Ur.ENTERED=ka;Ur.EXITING=Cm;function z8(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function R1(e,t){var n=function(i){return t&&b.isValidElement(i)?t(i):i},r=Object.create(null);return e&&b.Children.map(e,function(o){return o}).forEach(function(o){r[o.key]=n(o)}),r}function H8(e,t){e=e||{},t=t||{};function n(u){return u in t?t[u]:e[u]}var r=Object.create(null),o=[];for(var i in e)i in t?o.length&&(r[i]=o,o=[]):o.push(i);var a,s={};for(var l in t){if(r[l])for(a=0;ae.scrollTop;function ms(e,t){const{timeout:n,easing:r,style:o={}}=e;return{duration:o.transitionDuration??(typeof n=="number"?n:n[t.mode]||0),easing:o.transitionTimingFunction??(typeof r=="object"?r[t.mode]:r),delay:o.transitionDelay}}function q8(e){return Oe("MuiCollapse",e)}Ee("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"]);const K8=e=>{const{orientation:t,classes:n}=e,r={root:["root",`${t}`],entered:["entered"],hidden:["hidden"],wrapper:["wrapper",`${t}`],wrapperInner:["wrapperInner",`${t}`]};return Ae(r,q8,n)},Z8=J("div",{name:"MuiCollapse",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.orientation],n.state==="entered"&&t.entered,n.state==="exited"&&!n.in&&n.collapsedSize==="0px"&&t.hidden]}})($e(({theme:e})=>({height:0,overflow:"hidden",transition:e.transitions.create("height"),variants:[{props:{orientation:"horizontal"},style:{height:"auto",width:0,transition:e.transitions.create("width")}},{props:{state:"entered"},style:{height:"auto",overflow:"visible"}},{props:{state:"entered",orientation:"horizontal"},style:{width:"auto"}},{props:({ownerState:t})=>t.state==="exited"&&!t.in&&t.collapsedSize==="0px",style:{visibility:"hidden"}}]}))),Q8=J("div",{name:"MuiCollapse",slot:"Wrapper",overridesResolver:(e,t)=>t.wrapper})({display:"flex",width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),Y8=J("div",{name:"MuiCollapse",slot:"WrapperInner",overridesResolver:(e,t)=>t.wrapperInner})({width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),vs=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiCollapse"}),{addEndListener:o,children:i,className:a,collapsedSize:s="0px",component:l,easing:c,in:u,onEnter:d,onEntered:f,onEntering:g,onExit:m,onExited:y,onExiting:C,orientation:v="vertical",style:S,timeout:h=u_.standard,TransitionComponent:w=Ur,..._}=r,T={...r,orientation:v,collapsedSize:s},k=K8(T),R=Ht(),P=Fi(),x=b.useRef(null),$=b.useRef(),I=typeof s=="number"?`${s}px`:s,O=v==="horizontal",D=O?"width":"height",M=b.useRef(null),N=Rt(n,M),A=V=>ee=>{if(V){const re=M.current;ee===void 0?V(re):V(re,ee)}},E=()=>x.current?x.current[O?"clientWidth":"clientHeight"]:0,L=A((V,ee)=>{x.current&&O&&(x.current.style.position="absolute"),V.style[D]=I,d&&d(V,ee)}),B=A((V,ee)=>{const re=E();x.current&&O&&(x.current.style.position="");const{duration:U,easing:K}=ms({style:S,timeout:h,easing:c},{mode:"enter"});if(h==="auto"){const se=R.transitions.getAutoHeightDuration(re);V.style.transitionDuration=`${se}ms`,$.current=se}else V.style.transitionDuration=typeof U=="string"?U:`${U}ms`;V.style[D]=`${re}px`,V.style.transitionTimingFunction=K,g&&g(V,ee)}),H=A((V,ee)=>{V.style[D]="auto",f&&f(V,ee)}),z=A(V=>{V.style[D]=`${E()}px`,m&&m(V)}),j=A(y),F=A(V=>{const ee=E(),{duration:re,easing:U}=ms({style:S,timeout:h,easing:c},{mode:"exit"});if(h==="auto"){const K=R.transitions.getAutoHeightDuration(ee);V.style.transitionDuration=`${K}ms`,$.current=K}else V.style.transitionDuration=typeof re=="string"?re:`${re}ms`;V.style[D]=I,V.style.transitionTimingFunction=U,C&&C(V)}),W=V=>{h==="auto"&&P.start($.current||0,V),o&&o(M.current,V)};return p.jsx(w,{in:u,onEnter:L,onEntered:H,onEntering:B,onExit:z,onExited:j,onExiting:F,addEndListener:W,nodeRef:M,timeout:h==="auto"?null:h,..._,children:(V,ee)=>p.jsx(Z8,{as:l,className:ve(k.root,a,{entered:k.entered,exited:!u&&I==="0px"&&k.hidden}[V]),style:{[O?"minWidth":"minHeight"]:I,...S},ref:N,...ee,ownerState:{...T,state:V},children:p.jsx(Q8,{ownerState:{...T,state:V},className:k.wrapper,ref:x,children:p.jsx(Y8,{ownerState:{...T,state:V},className:k.wrapperInner,children:i})})})})});vs&&(vs.muiSupportAuto=!0);function X8(e){return Oe("MuiPaper",e)}Ee("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);const J8=e=>{const{square:t,elevation:n,variant:r,classes:o}=e,i={root:["root",r,!t&&"rounded",r==="elevation"&&`elevation${n}`]};return Ae(i,X8,o)},eM=J("div",{name:"MuiPaper",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],!n.square&&t.rounded,n.variant==="elevation"&&t[`elevation${n.elevation}`]]}})($e(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,color:(e.vars||e).palette.text.primary,transition:e.transitions.create("box-shadow"),variants:[{props:({ownerState:t})=>!t.square,style:{borderRadius:e.shape.borderRadius}},{props:{variant:"outlined"},style:{border:`1px solid ${(e.vars||e).palette.divider}`}},{props:{variant:"elevation"},style:{boxShadow:"var(--Paper-shadow)",backgroundImage:"var(--Paper-overlay)"}}]}))),As=b.forwardRef(function(t,n){var g;const r=De({props:t,name:"MuiPaper"}),o=Ht(),{className:i,component:a="div",elevation:s=1,square:l=!1,variant:c="elevation",...u}=r,d={...r,component:a,elevation:s,square:l,variant:c},f=J8(d);return p.jsx(eM,{as:a,ownerState:d,className:ve(f.root,i),ref:n,...u,style:{...c==="elevation"&&{"--Paper-shadow":(o.vars||o).shadows[s],...o.vars&&{"--Paper-overlay":(g=o.vars.overlays)==null?void 0:g[s]},...!o.vars&&o.palette.mode==="dark"&&{"--Paper-overlay":`linear-gradient(${Be("#fff",xm(s))}, ${Be("#fff",xm(s))})`}},...u.style}})});function an(e,t){const{className:n,elementType:r,ownerState:o,externalForwardedProps:i,getSlotOwnerState:a,internalForwardedProps:s,...l}=t,{component:c,slots:u={[e]:void 0},slotProps:d={[e]:void 0},...f}=i,g=u[e]||r,m=x_(d[e],o),{props:{component:y,...C},internalRef:v}=b_({className:n,...l,externalForwardedProps:e==="root"?f:void 0,externalSlotProps:m}),S=Rt(v,m==null?void 0:m.ref,t.ref),h=a?a(C):{},w={...o,...h},_=e==="root"?y||c:y,T=Ga(g,{...e==="root"&&!c&&!u[e]&&s,...e!=="root"&&!u[e]&&s,...C,..._&&{as:_},ref:S},w);return Object.keys(h).forEach(k=>{delete T[k]}),[g,T]}class Gd{constructor(){Us(this,"mountEffect",()=>{this.shouldMount&&!this.didMount&&this.ref.current!==null&&(this.didMount=!0,this.mounted.resolve())});this.ref={current:null},this.mounted=null,this.didMount=!1,this.shouldMount=!1,this.setShouldMount=null}static create(){return new Gd}static use(){const t=h_(Gd.create).current,[n,r]=b.useState(!1);return t.shouldMount=n,t.setShouldMount=r,b.useEffect(t.mountEffect,[n]),t}mount(){return this.mounted||(this.mounted=nM(),this.shouldMount=!0,this.setShouldMount(this.shouldMount)),this.mounted}start(...t){this.mount().then(()=>{var n;return(n=this.ref.current)==null?void 0:n.start(...t)})}stop(...t){this.mount().then(()=>{var n;return(n=this.ref.current)==null?void 0:n.stop(...t)})}pulsate(...t){this.mount().then(()=>{var n;return(n=this.ref.current)==null?void 0:n.pulsate(...t)})}}function tM(){return Gd.use()}function nM(){let e,t;const n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n}function rM(e){const{className:t,classes:n,pulsate:r=!1,rippleX:o,rippleY:i,rippleSize:a,in:s,onExited:l,timeout:c}=e,[u,d]=b.useState(!1),f=ve(t,n.ripple,n.rippleVisible,r&&n.ripplePulsate),g={width:a,height:a,top:-(a/2)+i,left:-(a/2)+o},m=ve(n.child,u&&n.childLeaving,r&&n.childPulsate);return!s&&!u&&d(!0),b.useEffect(()=>{if(!s&&l!=null){const y=setTimeout(l,c);return()=>{clearTimeout(y)}}},[l,s,c]),p.jsx("span",{className:f,style:g,children:p.jsx("span",{className:m})})}const dr=Ee("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),_m=550,oM=80,iM=p1` + 0% { + transform: scale(0); + opacity: 0.1; + } + + 100% { + transform: scale(1); + opacity: 0.3; + } +`,aM=p1` + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +`,sM=p1` + 0% { + transform: scale(1); + } + + 50% { + transform: scale(0.92); + } + + 100% { + transform: scale(1); + } +`,lM=J("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),cM=J(rM,{name:"MuiTouchRipple",slot:"Ripple"})` + opacity: 0; + position: absolute; + + &.${dr.rippleVisible} { + opacity: 0.3; + transform: scale(1); + animation-name: ${iM}; + animation-duration: ${_m}ms; + animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; + } + + &.${dr.ripplePulsate} { + animation-duration: ${({theme:e})=>e.transitions.duration.shorter}ms; + } + + & .${dr.child} { + opacity: 1; + display: block; + width: 100%; + height: 100%; + border-radius: 50%; + background-color: currentColor; + } + + & .${dr.childLeaving} { + opacity: 0; + animation-name: ${aM}; + animation-duration: ${_m}ms; + animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; + } + + & .${dr.childPulsate} { + position: absolute; + /* @noflip */ + left: 0px; + top: 0; + animation-name: ${sM}; + animation-duration: 2500ms; + animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; + animation-iteration-count: infinite; + animation-delay: 200ms; + } +`,uM=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTouchRipple"}),{center:o=!1,classes:i={},className:a,...s}=r,[l,c]=b.useState([]),u=b.useRef(0),d=b.useRef(null);b.useEffect(()=>{d.current&&(d.current(),d.current=null)},[l]);const f=b.useRef(!1),g=Fi(),m=b.useRef(null),y=b.useRef(null),C=b.useCallback(w=>{const{pulsate:_,rippleX:T,rippleY:k,rippleSize:R,cb:P}=w;c(x=>[...x,p.jsx(cM,{classes:{ripple:ve(i.ripple,dr.ripple),rippleVisible:ve(i.rippleVisible,dr.rippleVisible),ripplePulsate:ve(i.ripplePulsate,dr.ripplePulsate),child:ve(i.child,dr.child),childLeaving:ve(i.childLeaving,dr.childLeaving),childPulsate:ve(i.childPulsate,dr.childPulsate)},timeout:_m,pulsate:_,rippleX:T,rippleY:k,rippleSize:R},u.current)]),u.current+=1,d.current=P},[i]),v=b.useCallback((w={},_={},T=()=>{})=>{const{pulsate:k=!1,center:R=o||_.pulsate,fakeElement:P=!1}=_;if((w==null?void 0:w.type)==="mousedown"&&f.current){f.current=!1;return}(w==null?void 0:w.type)==="touchstart"&&(f.current=!0);const x=P?null:y.current,$=x?x.getBoundingClientRect():{width:0,height:0,left:0,top:0};let I,O,D;if(R||w===void 0||w.clientX===0&&w.clientY===0||!w.clientX&&!w.touches)I=Math.round($.width/2),O=Math.round($.height/2);else{const{clientX:M,clientY:N}=w.touches&&w.touches.length>0?w.touches[0]:w;I=Math.round(M-$.left),O=Math.round(N-$.top)}if(R)D=Math.sqrt((2*$.width**2+$.height**2)/3),D%2===0&&(D+=1);else{const M=Math.max(Math.abs((x?x.clientWidth:0)-I),I)*2+2,N=Math.max(Math.abs((x?x.clientHeight:0)-O),O)*2+2;D=Math.sqrt(M**2+N**2)}w!=null&&w.touches?m.current===null&&(m.current=()=>{C({pulsate:k,rippleX:I,rippleY:O,rippleSize:D,cb:T})},g.start(oM,()=>{m.current&&(m.current(),m.current=null)})):C({pulsate:k,rippleX:I,rippleY:O,rippleSize:D,cb:T})},[o,C,g]),S=b.useCallback(()=>{v({},{pulsate:!0})},[v]),h=b.useCallback((w,_)=>{if(g.clear(),(w==null?void 0:w.type)==="touchend"&&m.current){m.current(),m.current=null,g.start(0,()=>{h(w,_)});return}m.current=null,c(T=>T.length>0?T.slice(1):T),d.current=_},[g]);return b.useImperativeHandle(n,()=>({pulsate:S,start:v,stop:h}),[S,v,h]),p.jsx(lM,{className:ve(dr.root,i.root,a),ref:y,...s,children:p.jsx(T1,{component:null,exit:!0,children:l})})});function dM(e){return Oe("MuiButtonBase",e)}const fM=Ee("MuiButtonBase",["root","disabled","focusVisible"]),pM=e=>{const{disabled:t,focusVisible:n,focusVisibleClassName:r,classes:o}=e,a=Ae({root:["root",t&&"disabled",n&&"focusVisible"]},dM,o);return n&&r&&(a.root+=` ${r}`),a},gM=J("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${fM.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),Eo=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiButtonBase"}),{action:o,centerRipple:i=!1,children:a,className:s,component:l="button",disabled:c=!1,disableRipple:u=!1,disableTouchRipple:d=!1,focusRipple:f=!1,focusVisibleClassName:g,LinkComponent:m="a",onBlur:y,onClick:C,onContextMenu:v,onDragLeave:S,onFocus:h,onFocusVisible:w,onKeyDown:_,onKeyUp:T,onMouseDown:k,onMouseLeave:R,onMouseUp:P,onTouchEnd:x,onTouchMove:$,onTouchStart:I,tabIndex:O=0,TouchRippleProps:D,touchRippleRef:M,type:N,...A}=r,E=b.useRef(null),L=tM(),B=Rt(L.ref,M),[H,z]=b.useState(!1);c&&H&&z(!1),b.useImperativeHandle(o,()=>({focusVisible:()=>{z(!0),E.current.focus()}}),[]);const j=L.shouldMount&&!u&&!c;b.useEffect(()=>{H&&f&&!u&&L.pulsate()},[u,f,H,L]);function F(le,Se,ye=d){return Sn(Ge=>(Se&&Se(Ge),ye||L[le](Ge),!0))}const W=F("start",k),V=F("stop",v),ee=F("stop",S),re=F("stop",P),U=F("stop",le=>{H&&le.preventDefault(),R&&R(le)}),K=F("start",I),se=F("stop",x),q=F("stop",$),ce=F("stop",le=>{Wd(le.target)||z(!1),y&&y(le)},!1),ue=Sn(le=>{E.current||(E.current=le.currentTarget),Wd(le.target)&&(z(!0),w&&w(le)),h&&h(le)}),ie=()=>{const le=E.current;return l&&l!=="button"&&!(le.tagName==="A"&&le.href)},te=Sn(le=>{f&&!le.repeat&&H&&le.key===" "&&L.stop(le,()=>{L.start(le)}),le.target===le.currentTarget&&ie()&&le.key===" "&&le.preventDefault(),_&&_(le),le.target===le.currentTarget&&ie()&&le.key==="Enter"&&!c&&(le.preventDefault(),C&&C(le))}),de=Sn(le=>{f&&le.key===" "&&H&&!le.defaultPrevented&&L.stop(le,()=>{L.pulsate(le)}),T&&T(le),C&&le.target===le.currentTarget&&ie()&&le.key===" "&&!le.defaultPrevented&&C(le)});let Q=l;Q==="button"&&(A.href||A.to)&&(Q=m);const be={};Q==="button"?(be.type=N===void 0?"button":N,be.disabled=c):(!A.href&&!A.to&&(be.role="button"),c&&(be["aria-disabled"]=c));const Te=Rt(n,E),we={...r,centerRipple:i,component:l,disabled:c,disableRipple:u,disableTouchRipple:d,focusRipple:f,tabIndex:O,focusVisible:H},ge=pM(we);return p.jsxs(gM,{as:Q,className:ve(ge.root,s),ownerState:we,onBlur:ce,onClick:C,onContextMenu:V,onFocus:ue,onKeyDown:te,onKeyUp:de,onMouseDown:W,onMouseLeave:U,onMouseUp:re,onDragLeave:ee,onTouchEnd:se,onTouchMove:q,onTouchStart:K,ref:Te,tabIndex:c?-1:O,type:N,...be,...A,children:[a,j?p.jsx(uM,{ref:B,center:i,...D}):null]})});function hM(e){return typeof e.main=="string"}function mM(e,t=[]){if(!hM(e))return!1;for(const n of t)if(!e.hasOwnProperty(n)||typeof e[n]!="string")return!1;return!0}function Bt(e=[]){return([,t])=>t&&mM(t,e)}function vM(e){return Oe("MuiAlert",e)}const xb=Ee("MuiAlert",["root","action","icon","message","filled","colorSuccess","colorInfo","colorWarning","colorError","filledSuccess","filledInfo","filledWarning","filledError","outlined","outlinedSuccess","outlinedInfo","outlinedWarning","outlinedError","standard","standardSuccess","standardInfo","standardWarning","standardError"]);function yM(e){return Oe("MuiIconButton",e)}const bM=Ee("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge"]),xM=e=>{const{classes:t,disabled:n,color:r,edge:o,size:i}=e,a={root:["root",n&&"disabled",r!=="default"&&`color${ae(r)}`,o&&`edge${ae(o)}`,`size${ae(i)}`]};return Ae(a,yM,t)},SM=J(Eo,{name:"MuiIconButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="default"&&t[`color${ae(n.color)}`],n.edge&&t[`edge${ae(n.edge)}`],t[`size${ae(n.size)}`]]}})($e(({theme:e})=>({textAlign:"center",flex:"0 0 auto",fontSize:e.typography.pxToRem(24),padding:8,borderRadius:"50%",color:(e.vars||e).palette.action.active,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),variants:[{props:t=>!t.disableRipple,style:{"--IconButton-hoverBg":e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity),"&:hover":{backgroundColor:"var(--IconButton-hoverBg)","@media (hover: none)":{backgroundColor:"transparent"}}}},{props:{edge:"start"},style:{marginLeft:-12}},{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:{edge:"end"},style:{marginRight:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}}]})),$e(({theme:e})=>({variants:[{props:{color:"inherit"},style:{color:"inherit"}},...Object.entries(e.palette).filter(Bt()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette).filter(Bt()).map(([t])=>({props:{color:t},style:{"--IconButton-hoverBg":e.vars?`rgba(${(e.vars||e).palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be((e.vars||e).palette[t].main,e.palette.action.hoverOpacity)}})),{props:{size:"small"},style:{padding:5,fontSize:e.typography.pxToRem(18)}},{props:{size:"large"},style:{padding:12,fontSize:e.typography.pxToRem(28)}}],[`&.${bM.disabled}`]:{backgroundColor:"transparent",color:(e.vars||e).palette.action.disabled}}))),vr=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiIconButton"}),{edge:o=!1,children:i,className:a,color:s="default",disabled:l=!1,disableFocusRipple:c=!1,size:u="medium",...d}=r,f={...r,edge:o,color:s,disabled:l,disableFocusRipple:c,size:u},g=xM(f);return p.jsx(SM,{className:ve(g.root,a),centerRipple:!0,focusRipple:!c,disabled:l,ref:n,...d,ownerState:f,children:i})}),wM=un(p.jsx("path",{d:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"}),"SuccessOutlined"),CM=un(p.jsx("path",{d:"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined"),_M=un(p.jsx("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"ErrorOutline"),RM=un(p.jsx("path",{d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"}),"InfoOutlined"),C_=un(p.jsx("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),TM=e=>{const{variant:t,color:n,severity:r,classes:o}=e,i={root:["root",`color${ae(n||r)}`,`${t}${ae(n||r)}`,`${t}`],icon:["icon"],message:["message"],action:["action"]};return Ae(i,vM,o)},PM=J(As,{name:"MuiAlert",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`${n.variant}${ae(n.color||n.severity)}`]]}})($e(({theme:e})=>{const t=e.palette.mode==="light"?ra:oa,n=e.palette.mode==="light"?oa:ra;return{...e.typography.body2,backgroundColor:"transparent",display:"flex",padding:"6px 16px",variants:[...Object.entries(e.palette).filter(Bt(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"standard"},style:{color:e.vars?e.vars.palette.Alert[`${r}Color`]:t(e.palette[r].light,.6),backgroundColor:e.vars?e.vars.palette.Alert[`${r}StandardBg`]:n(e.palette[r].light,.9),[`& .${xb.icon}`]:e.vars?{color:e.vars.palette.Alert[`${r}IconColor`]}:{color:e.palette[r].main}}})),...Object.entries(e.palette).filter(Bt(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"outlined"},style:{color:e.vars?e.vars.palette.Alert[`${r}Color`]:t(e.palette[r].light,.6),border:`1px solid ${(e.vars||e).palette[r].light}`,[`& .${xb.icon}`]:e.vars?{color:e.vars.palette.Alert[`${r}IconColor`]}:{color:e.palette[r].main}}})),...Object.entries(e.palette).filter(Bt(["dark"])).map(([r])=>({props:{colorSeverity:r,variant:"filled"},style:{fontWeight:e.typography.fontWeightMedium,...e.vars?{color:e.vars.palette.Alert[`${r}FilledColor`],backgroundColor:e.vars.palette.Alert[`${r}FilledBg`]}:{backgroundColor:e.palette.mode==="dark"?e.palette[r].dark:e.palette[r].main,color:e.palette.getContrastText(e.palette[r].main)}}}))]}})),kM=J("div",{name:"MuiAlert",slot:"Icon",overridesResolver:(e,t)=>t.icon})({marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9}),$M=J("div",{name:"MuiAlert",slot:"Message",overridesResolver:(e,t)=>t.message})({padding:"8px 0",minWidth:0,overflow:"auto"}),Sb=J("div",{name:"MuiAlert",slot:"Action",overridesResolver:(e,t)=>t.action})({display:"flex",alignItems:"flex-start",padding:"4px 0 0 16px",marginLeft:"auto",marginRight:-8}),wb={success:p.jsx(wM,{fontSize:"inherit"}),warning:p.jsx(CM,{fontSize:"inherit"}),error:p.jsx(_M,{fontSize:"inherit"}),info:p.jsx(RM,{fontSize:"inherit"})},__=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiAlert"}),{action:o,children:i,className:a,closeText:s="Close",color:l,components:c={},componentsProps:u={},icon:d,iconMapping:f=wb,onClose:g,role:m="alert",severity:y="success",slotProps:C={},slots:v={},variant:S="standard",...h}=r,w={...r,color:l,severity:y,variant:S,colorSeverity:l||y},_=TM(w),T={slots:{closeButton:c.CloseButton,closeIcon:c.CloseIcon,...v},slotProps:{...u,...C}},[k,R]=an("closeButton",{elementType:vr,externalForwardedProps:T,ownerState:w}),[P,x]=an("closeIcon",{elementType:C_,externalForwardedProps:T,ownerState:w});return p.jsxs(PM,{role:m,elevation:0,ownerState:w,className:ve(_.root,a),ref:n,...h,children:[d!==!1?p.jsx(kM,{ownerState:w,className:_.icon,children:d||f[y]||wb[y]}):null,p.jsx($M,{ownerState:w,className:_.message,children:i}),o!=null?p.jsx(Sb,{ownerState:w,className:_.action,children:o}):null,o==null&&g?p.jsx(Sb,{ownerState:w,className:_.action,children:p.jsx(k,{size:"small","aria-label":s,title:s,color:"inherit",onClick:g,...R,children:p.jsx(P,{fontSize:"small",...x})})}):null]})});function EM(e){return Oe("MuiTypography",e)}Ee("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const MM={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},IM=A8(),OM=e=>{const{align:t,gutterBottom:n,noWrap:r,paragraph:o,variant:i,classes:a}=e,s={root:["root",i,e.align!=="inherit"&&`align${ae(t)}`,n&&"gutterBottom",r&&"noWrap",o&&"paragraph"]};return Ae(s,EM,a)},LM=J("span",{name:"MuiTypography",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],n.align!=="inherit"&&t[`align${ae(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom,n.paragraph&&t.paragraph]}})($e(({theme:e})=>{var t;return{margin:0,variants:[{props:{variant:"inherit"},style:{font:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}},...Object.entries(e.typography).filter(([n,r])=>n!=="inherit"&&r&&typeof r=="object").map(([n,r])=>({props:{variant:n},style:r})),...Object.entries(e.palette).filter(Bt()).map(([n])=>({props:{color:n},style:{color:(e.vars||e).palette[n].main}})),...Object.entries(((t=e.palette)==null?void 0:t.text)||{}).filter(([,n])=>typeof n=="string").map(([n])=>({props:{color:`text${ae(n)}`},style:{color:(e.vars||e).palette.text[n]}})),{props:({ownerState:n})=>n.align!=="inherit",style:{textAlign:"var(--Typography-textAlign)"}},{props:({ownerState:n})=>n.noWrap,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},{props:({ownerState:n})=>n.gutterBottom,style:{marginBottom:"0.35em"}},{props:({ownerState:n})=>n.paragraph,style:{marginBottom:16}}]}})),Cb={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},vt=b.forwardRef(function(t,n){const{color:r,...o}=De({props:t,name:"MuiTypography"}),i=!MM[r],a=IM({...o,...i&&{color:r}}),{align:s="inherit",className:l,component:c,gutterBottom:u=!1,noWrap:d=!1,paragraph:f=!1,variant:g="body1",variantMapping:m=Cb,...y}=a,C={...a,align:s,color:r,className:l,component:c,gutterBottom:u,noWrap:d,paragraph:f,variant:g,variantMapping:m},v=c||(f?"p":m[g]||Cb[g])||"span",S=OM(C);return p.jsx(LM,{as:v,ref:n,className:ve(S.root,l),...y,ownerState:C,style:{...s!=="inherit"&&{"--Typography-textAlign":s},...y.style}})});function _b(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function NM(e={}){const{ignoreAccents:t=!0,ignoreCase:n=!0,limit:r,matchFrom:o="any",stringify:i,trim:a=!1}=e;return(s,{inputValue:l,getOptionLabel:c})=>{let u=a?l.trim():l;n&&(u=u.toLowerCase()),t&&(u=_b(u));const d=u?s.filter(f=>{let g=(i||c)(f);return n&&(g=g.toLowerCase()),t&&(g=_b(g)),o==="start"?g.startsWith(u):g.includes(u)}):s;return typeof r=="number"?d.slice(0,r):d}}const AM=NM(),Rb=5,DM=e=>{var t;return e.current!==null&&((t=e.current.parentElement)==null?void 0:t.contains(document.activeElement))},jM=[];function FM(e){const{unstable_isActiveElementInListbox:t=DM,unstable_classNamePrefix:n="Mui",autoComplete:r=!1,autoHighlight:o=!1,autoSelect:i=!1,blurOnSelect:a=!1,clearOnBlur:s=!e.freeSolo,clearOnEscape:l=!1,componentName:c="useAutocomplete",defaultValue:u=e.multiple?jM:null,disableClearable:d=!1,disableCloseOnSelect:f=!1,disabled:g,disabledItemsFocusable:m=!1,disableListWrap:y=!1,filterOptions:C=AM,filterSelectedOptions:v=!1,freeSolo:S=!1,getOptionDisabled:h,getOptionKey:w,getOptionLabel:_=X=>X.label??X,groupBy:T,handleHomeEndKeys:k=!e.freeSolo,id:R,includeInputInList:P=!1,inputValue:x,isOptionEqualToValue:$=(X,Y)=>X===Y,multiple:I=!1,onChange:O,onClose:D,onHighlightChange:M,onInputChange:N,onOpen:A,open:E,openOnFocus:L=!1,options:B,readOnly:H=!1,selectOnFocus:z=!e.freeSolo,value:j}=e,F=hs(R);let W=_;W=X=>{const Y=_(X);return typeof Y!="string"?String(Y):Y};const V=b.useRef(!1),ee=b.useRef(!0),re=b.useRef(null),U=b.useRef(null),[K,se]=b.useState(null),[q,ce]=b.useState(-1),ue=o?0:-1,ie=b.useRef(ue),[te,de]=Ui({controlled:j,default:u,name:c}),[Q,be]=Ui({controlled:x,default:"",name:c,state:"inputValue"}),[Te,we]=b.useState(!1),ge=b.useCallback((X,Y,Ce)=>{if(!(I?te.length!(v&&(I?te:[te]).some(Y=>Y!==null&&$(X,Y)))),{inputValue:Pe&&ye?"":Q,getOptionLabel:W}):[],pe=I8({filteredOptions:ke,value:te,inputValue:Q});b.useEffect(()=>{const X=te!==pe.value;Te&&!X||S&&!X||ge(null,te,"reset")},[te,ge,Te,pe.value,S]);const ne=le&&ke.length>0&&!H,xe=Sn(X=>{X===-1?re.current.focus():K.querySelector(`[data-tag-index="${X}"]`).focus()});b.useEffect(()=>{I&&q>te.length-1&&(ce(-1),xe(-1))},[te,I,q,xe]);function Le(X,Y){if(!U.current||X<0||X>=ke.length)return-1;let Ce=X;for(;;){const We=U.current.querySelector(`[data-option-index="${Ce}"]`),qe=m?!1:!We||We.disabled||We.getAttribute("aria-disabled")==="true";if(We&&We.hasAttribute("tabindex")&&!qe)return Ce;if(Y==="next"?Ce=(Ce+1)%ke.length:Ce=(Ce-1+ke.length)%ke.length,Ce===X)return-1}}const fe=Sn(({event:X,index:Y,reason:Ce="auto"})=>{if(ie.current=Y,Y===-1?re.current.removeAttribute("aria-activedescendant"):re.current.setAttribute("aria-activedescendant",`${F}-option-${Y}`),M&&M(X,Y===-1?null:ke[Y],Ce),!U.current)return;const We=U.current.querySelector(`[role="option"].${n}-focused`);We&&(We.classList.remove(`${n}-focused`),We.classList.remove(`${n}-focusVisible`));let qe=U.current;if(U.current.getAttribute("role")!=="listbox"&&(qe=U.current.parentElement.querySelector('[role="listbox"]')),!qe)return;if(Y===-1){qe.scrollTop=0;return}const Pt=U.current.querySelector(`[data-option-index="${Y}"]`);if(Pt&&(Pt.classList.add(`${n}-focused`),Ce==="keyboard"&&Pt.classList.add(`${n}-focusVisible`),qe.scrollHeight>qe.clientHeight&&Ce!=="mouse"&&Ce!=="touch")){const st=Pt,Tr=qe.clientHeight+qe.scrollTop,Vc=st.offsetTop+st.offsetHeight;Vc>Tr?qe.scrollTop=Vc-qe.clientHeight:st.offsetTop-st.offsetHeight*(T?1.3:0){if(!Re)return;const Pt=Le((()=>{const st=ke.length-1;if(Y==="reset")return ue;if(Y==="start")return 0;if(Y==="end")return st;const Tr=ie.current+Y;return Tr<0?Tr===-1&&P?-1:y&&ie.current!==-1||Math.abs(Y)>1?0:st:Tr>st?Tr===st+1&&P?-1:y||Math.abs(Y)>1?st:0:Tr})(),Ce);if(fe({index:Pt,reason:We,event:X}),r&&Y!=="reset")if(Pt===-1)re.current.value=Q;else{const st=W(ke[Pt]);re.current.value=st,st.toLowerCase().indexOf(Q.toLowerCase())===0&&Q.length>0&&re.current.setSelectionRange(Q.length,st.length)}}),me=()=>{const X=(Y,Ce)=>{const We=Y?W(Y):"",qe=Ce?W(Ce):"";return We===qe};if(ie.current!==-1&&pe.filteredOptions&&pe.filteredOptions.length!==ke.length&&pe.inputValue===Q&&(I?te.length===pe.value.length&&pe.value.every((Y,Ce)=>W(te[Ce])===W(Y)):X(pe.value,te))){const Y=pe.filteredOptions[ie.current];if(Y)return ke.findIndex(Ce=>W(Ce)===W(Y))}return-1},je=b.useCallback(()=>{if(!Re)return;const X=me();if(X!==-1){ie.current=X;return}const Y=I?te[0]:te;if(ke.length===0||Y==null){oe({diff:"reset"});return}if(U.current){if(Y!=null){const Ce=ke[ie.current];if(I&&Ce&&te.findIndex(qe=>$(Ce,qe))!==-1)return;const We=ke.findIndex(qe=>$(qe,Y));We===-1?oe({diff:"reset"}):fe({index:We});return}if(ie.current>=ke.length-1){fe({index:ke.length-1});return}fe({index:ie.current})}},[ke.length,I?!1:te,v,oe,fe,Re,Q,I]),Ve=Sn(X=>{Vd(U,X),X&&je()});b.useEffect(()=>{je()},[je]);const Ye=X=>{le||(Se(!0),Ge(!0),A&&A(X))},Tt=(X,Y)=>{le&&(Se(!1),D&&D(X,Y))},Zt=(X,Y,Ce,We)=>{if(I){if(te.length===Y.length&&te.every((qe,Pt)=>qe===Y[Pt]))return}else if(te===Y)return;O&&O(X,Y,Ce,We),de(Y)},On=b.useRef(!1),sr=(X,Y,Ce="selectOption",We="options")=>{let qe=Ce,Pt=Y;if(I){Pt=Array.isArray(te)?te.slice():[];const st=Pt.findIndex(Tr=>$(Y,Tr));st===-1?Pt.push(Y):We!=="freeSolo"&&(Pt.splice(st,1),qe="removeOption")}ge(X,Pt,qe),Zt(X,Pt,qe,{option:Y}),!f&&(!X||!X.ctrlKey&&!X.metaKey)&&Tt(X,qe),(a===!0||a==="touch"&&On.current||a==="mouse"&&!On.current)&&re.current.blur()};function Un(X,Y){if(X===-1)return-1;let Ce=X;for(;;){if(Y==="next"&&Ce===te.length||Y==="previous"&&Ce===-1)return-1;const We=K.querySelector(`[data-tag-index="${Ce}"]`);if(!We||!We.hasAttribute("tabindex")||We.disabled||We.getAttribute("aria-disabled")==="true")Ce+=Y==="next"?1:-1;else return Ce}}const Do=(X,Y)=>{if(!I)return;Q===""&&Tt(X,"toggleInput");let Ce=q;q===-1?Q===""&&Y==="previous"&&(Ce=te.length-1):(Ce+=Y==="next"?1:-1,Ce<0&&(Ce=0),Ce===te.length&&(Ce=-1)),Ce=Un(Ce,Y),ce(Ce),xe(Ce)},Pi=X=>{V.current=!0,be(""),N&&N(X,"","clear"),Zt(X,I?[]:null,"clear")},Fe=X=>Y=>{if(X.onKeyDown&&X.onKeyDown(Y),!Y.defaultMuiPrevented&&(q!==-1&&!["ArrowLeft","ArrowRight"].includes(Y.key)&&(ce(-1),xe(-1)),Y.which!==229))switch(Y.key){case"Home":Re&&k&&(Y.preventDefault(),oe({diff:"start",direction:"next",reason:"keyboard",event:Y}));break;case"End":Re&&k&&(Y.preventDefault(),oe({diff:"end",direction:"previous",reason:"keyboard",event:Y}));break;case"PageUp":Y.preventDefault(),oe({diff:-Rb,direction:"previous",reason:"keyboard",event:Y}),Ye(Y);break;case"PageDown":Y.preventDefault(),oe({diff:Rb,direction:"next",reason:"keyboard",event:Y}),Ye(Y);break;case"ArrowDown":Y.preventDefault(),oe({diff:1,direction:"next",reason:"keyboard",event:Y}),Ye(Y);break;case"ArrowUp":Y.preventDefault(),oe({diff:-1,direction:"previous",reason:"keyboard",event:Y}),Ye(Y);break;case"ArrowLeft":Do(Y,"previous");break;case"ArrowRight":Do(Y,"next");break;case"Enter":if(ie.current!==-1&&Re){const Ce=ke[ie.current],We=h?h(Ce):!1;if(Y.preventDefault(),We)return;sr(Y,Ce,"selectOption"),r&&re.current.setSelectionRange(re.current.value.length,re.current.value.length)}else S&&Q!==""&&Pe===!1&&(I&&Y.preventDefault(),sr(Y,Q,"createOption","freeSolo"));break;case"Escape":Re?(Y.preventDefault(),Y.stopPropagation(),Tt(Y,"escape")):l&&(Q!==""||I&&te.length>0)&&(Y.preventDefault(),Y.stopPropagation(),Pi(Y));break;case"Backspace":if(I&&!H&&Q===""&&te.length>0){const Ce=q===-1?te.length-1:q,We=te.slice();We.splice(Ce,1),Zt(Y,We,"removeOption",{option:te[Ce]})}break;case"Delete":if(I&&!H&&Q===""&&te.length>0&&q!==-1){const Ce=q,We=te.slice();We.splice(Ce,1),Zt(Y,We,"removeOption",{option:te[Ce]})}break}},Rn=X=>{we(!0),L&&!V.current&&Ye(X)},zc=X=>{if(t(U)){re.current.focus();return}we(!1),ee.current=!0,V.current=!1,i&&ie.current!==-1&&Re?sr(X,ke[ie.current],"blur"):i&&S&&Q!==""?sr(X,Q,"blur","freeSolo"):s&&ge(X,te,"blur"),Tt(X,"blur")},va=X=>{const Y=X.target.value;Q!==Y&&(be(Y),Ge(!1),N&&N(X,Y,"input")),Y===""?!d&&!I&&Zt(X,null,"clear"):Ye(X)},zs=X=>{const Y=Number(X.currentTarget.getAttribute("data-option-index"));ie.current!==Y&&fe({event:X,index:Y,reason:"mouse"})},Hs=X=>{fe({event:X,index:Number(X.currentTarget.getAttribute("data-option-index")),reason:"touch"}),On.current=!0},Ap=X=>{const Y=Number(X.currentTarget.getAttribute("data-option-index"));sr(X,ke[Y],"selectOption"),On.current=!1},Dp=X=>Y=>{const Ce=te.slice();Ce.splice(X,1),Zt(Y,Ce,"removeOption",{option:te[X]})},Hc=X=>{le?Tt(X,"toggleInput"):Ye(X)},mv=X=>{X.currentTarget.contains(X.target)&&X.target.getAttribute("id")!==F&&X.preventDefault()},Vs=X=>{X.currentTarget.contains(X.target)&&(re.current.focus(),z&&ee.current&&re.current.selectionEnd-re.current.selectionStart===0&&re.current.select(),ee.current=!1)},fn=X=>{!g&&(Q===""||!le)&&Hc(X)};let Dt=S&&Q.length>0;Dt=Dt||(I?te.length>0:te!==null);let uo=ke;return T&&(uo=ke.reduce((X,Y,Ce)=>{const We=T(Y);return X.length>0&&X[X.length-1].group===We?X[X.length-1].options.push(Y):X.push({key:Ce,index:Ce,group:We,options:[Y]}),X},[])),g&&Te&&zc(),{getRootProps:(X={})=>({"aria-owns":ne?`${F}-listbox`:null,...X,onKeyDown:Fe(X),onMouseDown:mv,onClick:Vs}),getInputLabelProps:()=>({id:`${F}-label`,htmlFor:F}),getInputProps:()=>({id:F,value:Q,onBlur:zc,onFocus:Rn,onChange:va,onMouseDown:fn,"aria-activedescendant":Re?"":null,"aria-autocomplete":r?"both":"list","aria-controls":ne?`${F}-listbox`:void 0,"aria-expanded":ne,autoComplete:"off",ref:re,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:g}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:Pi}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:Hc}),getTagProps:({index:X})=>({key:X,"data-tag-index":X,tabIndex:-1,...!H&&{onDelete:Dp(X)}}),getListboxProps:()=>({role:"listbox",id:`${F}-listbox`,"aria-labelledby":`${F}-label`,ref:Ve,onMouseDown:X=>{X.preventDefault()}}),getOptionProps:({index:X,option:Y})=>{const Ce=(I?te:[te]).some(qe=>qe!=null&&$(Y,qe)),We=h?h(Y):!1;return{key:(w==null?void 0:w(Y))??W(Y),tabIndex:-1,role:"option",id:`${F}-option-${X}`,onMouseMove:zs,onClick:Ap,onTouchStart:Hs,"data-option-index":X,"aria-disabled":We,"aria-selected":Ce}},id:F,inputValue:Q,value:te,dirty:Dt,expanded:Re&&K,popupOpen:Re,focused:Te||q!==-1,anchorEl:K,setAnchorEl:se,focusedTag:q,groupedOptions:uo}}var Bn="top",wr="bottom",Cr="right",zn="left",P1="auto",Mc=[Bn,wr,Cr,zn],ys="start",pc="end",BM="clippingParents",R_="viewport",nl="popper",zM="reference",Tb=Mc.reduce(function(e,t){return e.concat([t+"-"+ys,t+"-"+pc])},[]),T_=[].concat(Mc,[P1]).reduce(function(e,t){return e.concat([t,t+"-"+ys,t+"-"+pc])},[]),HM="beforeRead",VM="read",WM="afterRead",UM="beforeMain",GM="main",qM="afterMain",KM="beforeWrite",ZM="write",QM="afterWrite",YM=[HM,VM,WM,UM,GM,qM,KM,ZM,QM];function co(e){return e?(e.nodeName||"").toLowerCase():null}function nr(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function sa(e){var t=nr(e).Element;return e instanceof t||e instanceof Element}function br(e){var t=nr(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function k1(e){if(typeof ShadowRoot>"u")return!1;var t=nr(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function XM(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},o=t.attributes[n]||{},i=t.elements[n];!br(i)||!co(i)||(Object.assign(i.style,r),Object.keys(o).forEach(function(a){var s=o[a];s===!1?i.removeAttribute(a):i.setAttribute(a,s===!0?"":s)}))})}function JM(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var o=t.elements[r],i=t.attributes[r]||{},a=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),s=a.reduce(function(l,c){return l[c]="",l},{});!br(o)||!co(o)||(Object.assign(o.style,s),Object.keys(i).forEach(function(l){o.removeAttribute(l)}))})}}const e6={name:"applyStyles",enabled:!0,phase:"write",fn:XM,effect:JM,requires:["computeStyles"]};function lo(e){return e.split("-")[0]}var Gi=Math.max,qd=Math.min,bs=Math.round;function Rm(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function P_(){return!/^((?!chrome|android).)*safari/i.test(Rm())}function xs(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),o=1,i=1;t&&br(e)&&(o=e.offsetWidth>0&&bs(r.width)/e.offsetWidth||1,i=e.offsetHeight>0&&bs(r.height)/e.offsetHeight||1);var a=sa(e)?nr(e):window,s=a.visualViewport,l=!P_()&&n,c=(r.left+(l&&s?s.offsetLeft:0))/o,u=(r.top+(l&&s?s.offsetTop:0))/i,d=r.width/o,f=r.height/i;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c,x:c,y:u}}function $1(e){var t=xs(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function k_(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&k1(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Mo(e){return nr(e).getComputedStyle(e)}function t6(e){return["table","td","th"].indexOf(co(e))>=0}function Ci(e){return((sa(e)?e.ownerDocument:e.document)||window.document).documentElement}function vp(e){return co(e)==="html"?e:e.assignedSlot||e.parentNode||(k1(e)?e.host:null)||Ci(e)}function Pb(e){return!br(e)||Mo(e).position==="fixed"?null:e.offsetParent}function n6(e){var t=/firefox/i.test(Rm()),n=/Trident/i.test(Rm());if(n&&br(e)){var r=Mo(e);if(r.position==="fixed")return null}var o=vp(e);for(k1(o)&&(o=o.host);br(o)&&["html","body"].indexOf(co(o))<0;){var i=Mo(o);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||t&&i.willChange==="filter"||t&&i.filter&&i.filter!=="none")return o;o=o.parentNode}return null}function Ic(e){for(var t=nr(e),n=Pb(e);n&&t6(n)&&Mo(n).position==="static";)n=Pb(n);return n&&(co(n)==="html"||co(n)==="body"&&Mo(n).position==="static")?t:n||n6(e)||t}function E1(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Ll(e,t,n){return Gi(e,qd(t,n))}function r6(e,t,n){var r=Ll(e,t,n);return r>n?n:r}function $_(){return{top:0,right:0,bottom:0,left:0}}function E_(e){return Object.assign({},$_(),e)}function M_(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var o6=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,E_(typeof t!="number"?t:M_(t,Mc))};function i6(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=lo(n.placement),l=E1(s),c=[zn,Cr].indexOf(s)>=0,u=c?"height":"width";if(!(!i||!a)){var d=o6(o.padding,n),f=$1(i),g=l==="y"?Bn:zn,m=l==="y"?wr:Cr,y=n.rects.reference[u]+n.rects.reference[l]-a[l]-n.rects.popper[u],C=a[l]-n.rects.reference[l],v=Ic(i),S=v?l==="y"?v.clientHeight||0:v.clientWidth||0:0,h=y/2-C/2,w=d[g],_=S-f[u]-d[m],T=S/2-f[u]/2+h,k=Ll(w,T,_),R=l;n.modifiersData[r]=(t={},t[R]=k,t.centerOffset=k-T,t)}}function a6(e){var t=e.state,n=e.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=t.elements.popper.querySelector(o),!o)||k_(t.elements.popper,o)&&(t.elements.arrow=o))}const s6={name:"arrow",enabled:!0,phase:"main",fn:i6,effect:a6,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ss(e){return e.split("-")[1]}var l6={top:"auto",right:"auto",bottom:"auto",left:"auto"};function c6(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:bs(n*o)/o||0,y:bs(r*o)/o||0}}function kb(e){var t,n=e.popper,r=e.popperRect,o=e.placement,i=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=a.x,g=f===void 0?0:f,m=a.y,y=m===void 0?0:m,C=typeof u=="function"?u({x:g,y}):{x:g,y};g=C.x,y=C.y;var v=a.hasOwnProperty("x"),S=a.hasOwnProperty("y"),h=zn,w=Bn,_=window;if(c){var T=Ic(n),k="clientHeight",R="clientWidth";if(T===nr(n)&&(T=Ci(n),Mo(T).position!=="static"&&s==="absolute"&&(k="scrollHeight",R="scrollWidth")),T=T,o===Bn||(o===zn||o===Cr)&&i===pc){w=wr;var P=d&&T===_&&_.visualViewport?_.visualViewport.height:T[k];y-=P-r.height,y*=l?1:-1}if(o===zn||(o===Bn||o===wr)&&i===pc){h=Cr;var x=d&&T===_&&_.visualViewport?_.visualViewport.width:T[R];g-=x-r.width,g*=l?1:-1}}var $=Object.assign({position:s},c&&l6),I=u===!0?c6({x:g,y},nr(n)):{x:g,y};if(g=I.x,y=I.y,l){var O;return Object.assign({},$,(O={},O[w]=S?"0":"",O[h]=v?"0":"",O.transform=(_.devicePixelRatio||1)<=1?"translate("+g+"px, "+y+"px)":"translate3d("+g+"px, "+y+"px, 0)",O))}return Object.assign({},$,(t={},t[w]=S?y+"px":"",t[h]=v?g+"px":"",t.transform="",t))}function u6(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=r===void 0?!0:r,i=n.adaptive,a=i===void 0?!0:i,s=n.roundOffsets,l=s===void 0?!0:s,c={placement:lo(t.placement),variation:Ss(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,kb(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,kb(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const d6={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:u6,data:{}};var hu={passive:!0};function f6(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,i=o===void 0?!0:o,a=r.resize,s=a===void 0?!0:a,l=nr(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&c.forEach(function(u){u.addEventListener("scroll",n.update,hu)}),s&&l.addEventListener("resize",n.update,hu),function(){i&&c.forEach(function(u){u.removeEventListener("scroll",n.update,hu)}),s&&l.removeEventListener("resize",n.update,hu)}}const p6={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:f6,data:{}};var g6={left:"right",right:"left",bottom:"top",top:"bottom"};function Yu(e){return e.replace(/left|right|bottom|top/g,function(t){return g6[t]})}var h6={start:"end",end:"start"};function $b(e){return e.replace(/start|end/g,function(t){return h6[t]})}function M1(e){var t=nr(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function I1(e){return xs(Ci(e)).left+M1(e).scrollLeft}function m6(e,t){var n=nr(e),r=Ci(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,l=0;if(o){i=o.width,a=o.height;var c=P_();(c||!c&&t==="fixed")&&(s=o.offsetLeft,l=o.offsetTop)}return{width:i,height:a,x:s+I1(e),y:l}}function v6(e){var t,n=Ci(e),r=M1(e),o=(t=e.ownerDocument)==null?void 0:t.body,i=Gi(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=Gi(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-r.scrollLeft+I1(e),l=-r.scrollTop;return Mo(o||n).direction==="rtl"&&(s+=Gi(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:a,x:s,y:l}}function O1(e){var t=Mo(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function I_(e){return["html","body","#document"].indexOf(co(e))>=0?e.ownerDocument.body:br(e)&&O1(e)?e:I_(vp(e))}function Nl(e,t){var n;t===void 0&&(t=[]);var r=I_(e),o=r===((n=e.ownerDocument)==null?void 0:n.body),i=nr(r),a=o?[i].concat(i.visualViewport||[],O1(r)?r:[]):r,s=t.concat(a);return o?s:s.concat(Nl(vp(a)))}function Tm(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function y6(e,t){var n=xs(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Eb(e,t,n){return t===R_?Tm(m6(e,n)):sa(t)?y6(t,n):Tm(v6(Ci(e)))}function b6(e){var t=Nl(vp(e)),n=["absolute","fixed"].indexOf(Mo(e).position)>=0,r=n&&br(e)?Ic(e):e;return sa(r)?t.filter(function(o){return sa(o)&&k_(o,r)&&co(o)!=="body"}):[]}function x6(e,t,n,r){var o=t==="clippingParents"?b6(e):[].concat(t),i=[].concat(o,[n]),a=i[0],s=i.reduce(function(l,c){var u=Eb(e,c,r);return l.top=Gi(u.top,l.top),l.right=qd(u.right,l.right),l.bottom=qd(u.bottom,l.bottom),l.left=Gi(u.left,l.left),l},Eb(e,a,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function O_(e){var t=e.reference,n=e.element,r=e.placement,o=r?lo(r):null,i=r?Ss(r):null,a=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,l;switch(o){case Bn:l={x:a,y:t.y-n.height};break;case wr:l={x:a,y:t.y+t.height};break;case Cr:l={x:t.x+t.width,y:s};break;case zn:l={x:t.x-n.width,y:s};break;default:l={x:t.x,y:t.y}}var c=o?E1(o):null;if(c!=null){var u=c==="y"?"height":"width";switch(i){case ys:l[c]=l[c]-(t[u]/2-n[u]/2);break;case pc:l[c]=l[c]+(t[u]/2-n[u]/2);break}}return l}function gc(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=r===void 0?e.placement:r,i=n.strategy,a=i===void 0?e.strategy:i,s=n.boundary,l=s===void 0?BM:s,c=n.rootBoundary,u=c===void 0?R_:c,d=n.elementContext,f=d===void 0?nl:d,g=n.altBoundary,m=g===void 0?!1:g,y=n.padding,C=y===void 0?0:y,v=E_(typeof C!="number"?C:M_(C,Mc)),S=f===nl?zM:nl,h=e.rects.popper,w=e.elements[m?S:f],_=x6(sa(w)?w:w.contextElement||Ci(e.elements.popper),l,u,a),T=xs(e.elements.reference),k=O_({reference:T,element:h,strategy:"absolute",placement:o}),R=Tm(Object.assign({},h,k)),P=f===nl?R:T,x={top:_.top-P.top+v.top,bottom:P.bottom-_.bottom+v.bottom,left:_.left-P.left+v.left,right:P.right-_.right+v.right},$=e.modifiersData.offset;if(f===nl&&$){var I=$[o];Object.keys(x).forEach(function(O){var D=[Cr,wr].indexOf(O)>=0?1:-1,M=[Bn,wr].indexOf(O)>=0?"y":"x";x[O]+=I[M]*D})}return x}function S6(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,c=l===void 0?T_:l,u=Ss(r),d=u?s?Tb:Tb.filter(function(m){return Ss(m)===u}):Mc,f=d.filter(function(m){return c.indexOf(m)>=0});f.length===0&&(f=d);var g=f.reduce(function(m,y){return m[y]=gc(e,{placement:y,boundary:o,rootBoundary:i,padding:a})[lo(y)],m},{});return Object.keys(g).sort(function(m,y){return g[m]-g[y]})}function w6(e){if(lo(e)===P1)return[];var t=Yu(e);return[$b(e),t,$b(t)]}function C6(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!0:a,l=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,g=n.flipVariations,m=g===void 0?!0:g,y=n.allowedAutoPlacements,C=t.options.placement,v=lo(C),S=v===C,h=l||(S||!m?[Yu(C)]:w6(C)),w=[C].concat(h).reduce(function(F,W){return F.concat(lo(W)===P1?S6(t,{placement:W,boundary:u,rootBoundary:d,padding:c,flipVariations:m,allowedAutoPlacements:y}):W)},[]),_=t.rects.reference,T=t.rects.popper,k=new Map,R=!0,P=w[0],x=0;x=0,M=D?"width":"height",N=gc(t,{placement:$,boundary:u,rootBoundary:d,altBoundary:f,padding:c}),A=D?O?Cr:zn:O?wr:Bn;_[M]>T[M]&&(A=Yu(A));var E=Yu(A),L=[];if(i&&L.push(N[I]<=0),s&&L.push(N[A]<=0,N[E]<=0),L.every(function(F){return F})){P=$,R=!1;break}k.set($,L)}if(R)for(var B=m?3:1,H=function(W){var V=w.find(function(ee){var re=k.get(ee);if(re)return re.slice(0,W).every(function(U){return U})});if(V)return P=V,"break"},z=B;z>0;z--){var j=H(z);if(j==="break")break}t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}}const _6={name:"flip",enabled:!0,phase:"main",fn:C6,requiresIfExists:["offset"],data:{_skip:!1}};function Mb(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Ib(e){return[Bn,Cr,wr,zn].some(function(t){return e[t]>=0})}function R6(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=gc(t,{elementContext:"reference"}),s=gc(t,{altBoundary:!0}),l=Mb(a,r),c=Mb(s,o,i),u=Ib(l),d=Ib(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}const T6={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:R6};function P6(e,t,n){var r=lo(e),o=[zn,Bn].indexOf(r)>=0?-1:1,i=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[zn,Cr].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}function k6(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=o===void 0?[0,0]:o,a=T_.reduce(function(u,d){return u[d]=P6(d,t.rects,i),u},{}),s=a[t.placement],l=s.x,c=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}const $6={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:k6};function E6(e){var t=e.state,n=e.name;t.modifiersData[n]=O_({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const M6={name:"popperOffsets",enabled:!0,phase:"read",fn:E6,data:{}};function I6(e){return e==="x"?"y":"x"}function O6(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!1:a,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,g=f===void 0?!0:f,m=n.tetherOffset,y=m===void 0?0:m,C=gc(t,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),v=lo(t.placement),S=Ss(t.placement),h=!S,w=E1(v),_=I6(w),T=t.modifiersData.popperOffsets,k=t.rects.reference,R=t.rects.popper,P=typeof y=="function"?y(Object.assign({},t.rects,{placement:t.placement})):y,x=typeof P=="number"?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),$=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(T){if(i){var O,D=w==="y"?Bn:zn,M=w==="y"?wr:Cr,N=w==="y"?"height":"width",A=T[w],E=A+C[D],L=A-C[M],B=g?-R[N]/2:0,H=S===ys?k[N]:R[N],z=S===ys?-R[N]:-k[N],j=t.elements.arrow,F=g&&j?$1(j):{width:0,height:0},W=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:$_(),V=W[D],ee=W[M],re=Ll(0,k[N],F[N]),U=h?k[N]/2-B-re-V-x.mainAxis:H-re-V-x.mainAxis,K=h?-k[N]/2+B+re+ee+x.mainAxis:z+re+ee+x.mainAxis,se=t.elements.arrow&&Ic(t.elements.arrow),q=se?w==="y"?se.clientTop||0:se.clientLeft||0:0,ce=(O=$==null?void 0:$[w])!=null?O:0,ue=A+U-ce-q,ie=A+K-ce,te=Ll(g?qd(E,ue):E,A,g?Gi(L,ie):L);T[w]=te,I[w]=te-A}if(s){var de,Q=w==="x"?Bn:zn,be=w==="x"?wr:Cr,Te=T[_],we=_==="y"?"height":"width",ge=Te+C[Q],le=Te-C[be],Se=[Bn,zn].indexOf(v)!==-1,ye=(de=$==null?void 0:$[_])!=null?de:0,Ge=Se?ge:Te-k[we]-R[we]-ye+x.altAxis,Pe=Se?Te+k[we]+R[we]-ye-x.altAxis:le,Re=g&&Se?r6(Ge,Te,Pe):Ll(g?Ge:ge,Te,g?Pe:le);T[_]=Re,I[_]=Re-Te}t.modifiersData[r]=I}}const L6={name:"preventOverflow",enabled:!0,phase:"main",fn:O6,requiresIfExists:["offset"]};function N6(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function A6(e){return e===nr(e)||!br(e)?M1(e):N6(e)}function D6(e){var t=e.getBoundingClientRect(),n=bs(t.width)/e.offsetWidth||1,r=bs(t.height)/e.offsetHeight||1;return n!==1||r!==1}function j6(e,t,n){n===void 0&&(n=!1);var r=br(t),o=br(t)&&D6(t),i=Ci(t),a=xs(e,o,n),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((co(t)!=="body"||O1(i))&&(s=A6(t)),br(t)?(l=xs(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):i&&(l.x=I1(i))),{x:a.left+s.scrollLeft-l.x,y:a.top+s.scrollTop-l.y,width:a.width,height:a.height}}function F6(e){var t=new Map,n=new Set,r=[];e.forEach(function(i){t.set(i.name,i)});function o(i){n.add(i.name);var a=[].concat(i.requires||[],i.requiresIfExists||[]);a.forEach(function(s){if(!n.has(s)){var l=t.get(s);l&&o(l)}}),r.push(i)}return e.forEach(function(i){n.has(i.name)||o(i)}),r}function B6(e){var t=F6(e);return YM.reduce(function(n,r){return n.concat(t.filter(function(o){return o.phase===r}))},[])}function z6(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function H6(e){var t=e.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var Ob={placement:"bottom",modifiers:[],strategy:"absolute"};function Lb(){for(var e=arguments.length,t=new Array(e),n=0;n{i||s(G6(o)||document.body)},[o,i]),Wr(()=>{if(a&&!i)return Vd(n,a),()=>{Vd(n,null)}},[n,a,i]),i){if(b.isValidElement(r)){const c={ref:l};return b.cloneElement(r,c)}return p.jsx(b.Fragment,{children:r})}return p.jsx(b.Fragment,{children:a&&o1.createPortal(r,a)})});function q6(e){return Oe("MuiPopper",e)}Ee("MuiPopper",["root"]);function K6(e,t){if(t==="ltr")return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}function Pm(e){return typeof e=="function"?e():e}function Z6(e){return e.nodeType!==void 0}const Q6=e=>{const{classes:t}=e;return Ae({root:["root"]},q6,t)},Y6={},X6=b.forwardRef(function(t,n){const{anchorEl:r,children:o,direction:i,disablePortal:a,modifiers:s,open:l,placement:c,popperOptions:u,popperRef:d,slotProps:f={},slots:g={},TransitionProps:m,ownerState:y,...C}=t,v=b.useRef(null),S=Rt(v,n),h=b.useRef(null),w=Rt(h,d),_=b.useRef(w);Wr(()=>{_.current=w},[w]),b.useImperativeHandle(d,()=>h.current,[]);const T=K6(c,i),[k,R]=b.useState(T),[P,x]=b.useState(Pm(r));b.useEffect(()=>{h.current&&h.current.forceUpdate()}),b.useEffect(()=>{r&&x(Pm(r))},[r]),Wr(()=>{if(!P||!l)return;const M=E=>{R(E.placement)};let N=[{name:"preventOverflow",options:{altBoundary:a}},{name:"flip",options:{altBoundary:a}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:E})=>{M(E)}}];s!=null&&(N=N.concat(s)),u&&u.modifiers!=null&&(N=N.concat(u.modifiers));const A=U6(P,v.current,{placement:T,...u,modifiers:N});return _.current(A),()=>{A.destroy(),_.current(null)}},[P,a,s,l,u,T]);const $={placement:k};m!==null&&($.TransitionProps=m);const I=Q6(t),O=g.root??"div",D=ia({elementType:O,externalSlotProps:f.root,externalForwardedProps:C,additionalProps:{role:"tooltip",ref:S},ownerState:t,className:I.root});return p.jsx(O,{...D,children:typeof o=="function"?o($):o})}),J6=b.forwardRef(function(t,n){const{anchorEl:r,children:o,container:i,direction:a="ltr",disablePortal:s=!1,keepMounted:l=!1,modifiers:c,open:u,placement:d="bottom",popperOptions:f=Y6,popperRef:g,style:m,transition:y=!1,slotProps:C={},slots:v={},...S}=t,[h,w]=b.useState(!0),_=()=>{w(!1)},T=()=>{w(!0)};if(!l&&!u&&(!y||h))return null;let k;if(i)k=i;else if(r){const x=Pm(r);k=x&&Z6(x)?ln(x).body:ln(null).body}const R=!u&&l&&(!y||h)?"none":void 0,P=y?{in:u,onEnter:_,onExited:T}:void 0;return p.jsx(L_,{disablePortal:s,container:k,children:p.jsx(X6,{anchorEl:r,direction:a,disablePortal:s,modifiers:c,ref:n,open:y?!h:u,placement:d,popperOptions:f,popperRef:g,slotProps:C,slots:v,...S,style:{position:"fixed",top:0,left:0,display:R,...m},TransitionProps:P,children:o})})}),eI=J(J6,{name:"MuiPopper",slot:"Root",overridesResolver:(e,t)=>t.root})({}),Oc=b.forwardRef(function(t,n){const r=Ls(),o=De({props:t,name:"MuiPopper"}),{anchorEl:i,component:a,components:s,componentsProps:l,container:c,disablePortal:u,keepMounted:d,modifiers:f,open:g,placement:m,popperOptions:y,popperRef:C,transition:v,slots:S,slotProps:h,...w}=o,_=(S==null?void 0:S.root)??(s==null?void 0:s.Root),T={anchorEl:i,container:c,disablePortal:u,keepMounted:d,modifiers:f,open:g,placement:m,popperOptions:y,popperRef:C,transition:v,...w};return p.jsx(eI,{as:a,direction:r?"rtl":"ltr",slots:{root:_},slotProps:h??l,...T,ref:n})});function tI(e){return Oe("MuiListSubheader",e)}Ee("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);const nI=e=>{const{classes:t,color:n,disableGutters:r,inset:o,disableSticky:i}=e,a={root:["root",n!=="default"&&`color${ae(n)}`,!r&&"gutters",o&&"inset",!i&&"sticky"]};return Ae(a,tI,t)},rI=J("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="default"&&t[`color${ae(n.color)}`],!n.disableGutters&&t.gutters,n.inset&&t.inset,!n.disableSticky&&t.sticky]}})($e(({theme:e})=>({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(e.vars||e).palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14),variants:[{props:{color:"primary"},style:{color:(e.vars||e).palette.primary.main}},{props:{color:"inherit"},style:{color:"inherit"}},{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.inset,style:{paddingLeft:72}},{props:({ownerState:t})=>!t.disableSticky,style:{position:"sticky",top:0,zIndex:1,backgroundColor:(e.vars||e).palette.background.paper}}]}))),km=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiListSubheader"}),{className:o,color:i="default",component:a="li",disableGutters:s=!1,disableSticky:l=!1,inset:c=!1,...u}=r,d={...r,color:i,component:a,disableGutters:s,disableSticky:l,inset:c},f=nI(d);return p.jsx(rI,{as:a,className:ve(f.root,o),ref:n,ownerState:d,...u})});km&&(km.muiSkipListHighlight=!0);const oI=un(p.jsx("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");function iI(e){return Oe("MuiChip",e)}const Ke=Ee("MuiChip",["root","sizeSmall","sizeMedium","colorDefault","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","outlined","filled","outlinedPrimary","outlinedSecondary","filledPrimary","filledSecondary","avatar","avatarSmall","avatarMedium","avatarColorPrimary","avatarColorSecondary","icon","iconSmall","iconMedium","iconColorPrimary","iconColorSecondary","label","labelSmall","labelMedium","deleteIcon","deleteIconSmall","deleteIconMedium","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","deleteIconFilledColorPrimary","deleteIconFilledColorSecondary","focusVisible"]),aI=e=>{const{classes:t,disabled:n,size:r,color:o,iconColor:i,onDelete:a,clickable:s,variant:l}=e,c={root:["root",l,n&&"disabled",`size${ae(r)}`,`color${ae(o)}`,s&&"clickable",s&&`clickableColor${ae(o)}`,a&&"deletable",a&&`deletableColor${ae(o)}`,`${l}${ae(o)}`],label:["label",`label${ae(r)}`],avatar:["avatar",`avatar${ae(r)}`,`avatarColor${ae(o)}`],icon:["icon",`icon${ae(r)}`,`iconColor${ae(i)}`],deleteIcon:["deleteIcon",`deleteIcon${ae(r)}`,`deleteIconColor${ae(o)}`,`deleteIcon${ae(l)}Color${ae(o)}`]};return Ae(c,iI,t)},sI=J("div",{name:"MuiChip",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e,{color:r,iconColor:o,clickable:i,onDelete:a,size:s,variant:l}=n;return[{[`& .${Ke.avatar}`]:t.avatar},{[`& .${Ke.avatar}`]:t[`avatar${ae(s)}`]},{[`& .${Ke.avatar}`]:t[`avatarColor${ae(r)}`]},{[`& .${Ke.icon}`]:t.icon},{[`& .${Ke.icon}`]:t[`icon${ae(s)}`]},{[`& .${Ke.icon}`]:t[`iconColor${ae(o)}`]},{[`& .${Ke.deleteIcon}`]:t.deleteIcon},{[`& .${Ke.deleteIcon}`]:t[`deleteIcon${ae(s)}`]},{[`& .${Ke.deleteIcon}`]:t[`deleteIconColor${ae(r)}`]},{[`& .${Ke.deleteIcon}`]:t[`deleteIcon${ae(l)}Color${ae(r)}`]},t.root,t[`size${ae(s)}`],t[`color${ae(r)}`],i&&t.clickable,i&&r!=="default"&&t[`clickableColor${ae(r)})`],a&&t.deletable,a&&r!=="default"&&t[`deletableColor${ae(r)}`],t[l],t[`${l}${ae(r)}`]]}})($e(({theme:e})=>{const t=e.palette.mode==="light"?e.palette.grey[700]:e.palette.grey[300];return{maxWidth:"100%",fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:(e.vars||e).palette.text.primary,backgroundColor:(e.vars||e).palette.action.selected,borderRadius:32/2,whiteSpace:"nowrap",transition:e.transitions.create(["background-color","box-shadow"]),cursor:"unset",outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${Ke.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${Ke.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:e.vars?e.vars.palette.Chip.defaultAvatarColor:t,fontSize:e.typography.pxToRem(12)},[`& .${Ke.avatarColorPrimary}`]:{color:(e.vars||e).palette.primary.contrastText,backgroundColor:(e.vars||e).palette.primary.dark},[`& .${Ke.avatarColorSecondary}`]:{color:(e.vars||e).palette.secondary.contrastText,backgroundColor:(e.vars||e).palette.secondary.dark},[`& .${Ke.avatarSmall}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:e.typography.pxToRem(10)},[`& .${Ke.icon}`]:{marginLeft:5,marginRight:-6},[`& .${Ke.deleteIcon}`]:{WebkitTapHighlightColor:"transparent",color:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.26)`:Be(e.palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.4)`:Be(e.palette.text.primary,.4)}},variants:[{props:{size:"small"},style:{height:24,[`& .${Ke.icon}`]:{fontSize:18,marginLeft:4,marginRight:-4},[`& .${Ke.deleteIcon}`]:{fontSize:16,marginRight:4,marginLeft:-4}}},...Object.entries(e.palette).filter(Bt(["contrastText"])).map(([n])=>({props:{color:n},style:{backgroundColor:(e.vars||e).palette[n].main,color:(e.vars||e).palette[n].contrastText,[`& .${Ke.deleteIcon}`]:{color:e.vars?`rgba(${e.vars.palette[n].contrastTextChannel} / 0.7)`:Be(e.palette[n].contrastText,.7),"&:hover, &:active":{color:(e.vars||e).palette[n].contrastText}}}})),{props:n=>n.iconColor===n.color,style:{[`& .${Ke.icon}`]:{color:e.vars?e.vars.palette.Chip.defaultIconColor:t}}},{props:n=>n.iconColor===n.color&&n.color!=="default",style:{[`& .${Ke.icon}`]:{color:"inherit"}}},{props:{onDelete:!0},style:{[`&.${Ke.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}},...Object.entries(e.palette).filter(Bt(["dark"])).map(([n])=>({props:{color:n,onDelete:!0},style:{[`&.${Ke.focusVisible}`]:{background:(e.vars||e).palette[n].dark}}})),{props:{clickable:!0},style:{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity)},[`&.${Ke.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)},"&:active":{boxShadow:(e.vars||e).shadows[1]}}},...Object.entries(e.palette).filter(Bt(["dark"])).map(([n])=>({props:{color:n,clickable:!0},style:{[`&:hover, &.${Ke.focusVisible}`]:{backgroundColor:(e.vars||e).palette[n].dark}}})),{props:{variant:"outlined"},style:{backgroundColor:"transparent",border:e.vars?`1px solid ${e.vars.palette.Chip.defaultBorder}`:`1px solid ${e.palette.mode==="light"?e.palette.grey[400]:e.palette.grey[700]}`,[`&.${Ke.clickable}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${Ke.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`& .${Ke.avatar}`]:{marginLeft:4},[`& .${Ke.avatarSmall}`]:{marginLeft:2},[`& .${Ke.icon}`]:{marginLeft:4},[`& .${Ke.iconSmall}`]:{marginLeft:2},[`& .${Ke.deleteIcon}`]:{marginRight:5},[`& .${Ke.deleteIconSmall}`]:{marginRight:3}}},...Object.entries(e.palette).filter(Bt()).map(([n])=>({props:{variant:"outlined",color:n},style:{color:(e.vars||e).palette[n].main,border:`1px solid ${e.vars?`rgba(${e.vars.palette[n].mainChannel} / 0.7)`:Be(e.palette[n].main,.7)}`,[`&.${Ke.clickable}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[n].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[n].main,e.palette.action.hoverOpacity)},[`&.${Ke.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[n].mainChannel} / ${e.vars.palette.action.focusOpacity})`:Be(e.palette[n].main,e.palette.action.focusOpacity)},[`& .${Ke.deleteIcon}`]:{color:e.vars?`rgba(${e.vars.palette[n].mainChannel} / 0.7)`:Be(e.palette[n].main,.7),"&:hover, &:active":{color:(e.vars||e).palette[n].main}}}}))]}})),lI=J("span",{name:"MuiChip",slot:"Label",overridesResolver:(e,t)=>{const{ownerState:n}=e,{size:r}=n;return[t.label,t[`label${ae(r)}`]]}})({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap",variants:[{props:{variant:"outlined"},style:{paddingLeft:11,paddingRight:11}},{props:{size:"small"},style:{paddingLeft:8,paddingRight:8}},{props:{size:"small",variant:"outlined"},style:{paddingLeft:7,paddingRight:7}}]});function Nb(e){return e.key==="Backspace"||e.key==="Delete"}const cI=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiChip"}),{avatar:o,className:i,clickable:a,color:s="default",component:l,deleteIcon:c,disabled:u=!1,icon:d,label:f,onClick:g,onDelete:m,onKeyDown:y,onKeyUp:C,size:v="medium",variant:S="filled",tabIndex:h,skipFocusWhenDisabled:w=!1,..._}=r,T=b.useRef(null),k=Rt(T,n),R=L=>{L.stopPropagation(),m&&m(L)},P=L=>{L.currentTarget===L.target&&Nb(L)&&L.preventDefault(),y&&y(L)},x=L=>{L.currentTarget===L.target&&m&&Nb(L)&&m(L),C&&C(L)},$=a!==!1&&g?!0:a,I=$||m?Eo:l||"div",O={...r,component:I,disabled:u,size:v,color:s,iconColor:b.isValidElement(d)&&d.props.color||s,onDelete:!!m,clickable:$,variant:S},D=aI(O),M=I===Eo?{component:l||"div",focusVisibleClassName:D.focusVisible,...m&&{disableRipple:!0}}:{};let N=null;m&&(N=c&&b.isValidElement(c)?b.cloneElement(c,{className:ve(c.props.className,D.deleteIcon),onClick:R}):p.jsx(oI,{className:ve(D.deleteIcon),onClick:R}));let A=null;o&&b.isValidElement(o)&&(A=b.cloneElement(o,{className:ve(D.avatar,o.props.className)}));let E=null;return d&&b.isValidElement(d)&&(E=b.cloneElement(d,{className:ve(D.icon,d.props.className)})),p.jsxs(sI,{as:I,className:ve(D.root,i),disabled:$&&u?!0:void 0,onClick:g,onKeyDown:P,onKeyUp:x,ref:k,tabIndex:w&&u?-1:h,ownerState:O,...M,..._,children:[A||E,p.jsx(lI,{className:ve(D.label),ownerState:O,children:f}),N]})});function mu(e){return parseInt(e,10)||0}const uI={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function dI(e){return e==null||Object.keys(e).length===0||e.outerHeightStyle===0&&!e.overflowing}const fI=b.forwardRef(function(t,n){const{onChange:r,maxRows:o,minRows:i=1,style:a,value:s,...l}=t,{current:c}=b.useRef(s!=null),u=b.useRef(null),d=Rt(n,u),f=b.useRef(null),g=b.useRef(null),m=b.useCallback(()=>{const v=u.current,h=Vr(v).getComputedStyle(v);if(h.width==="0px")return{outerHeightStyle:0,overflowing:!1};const w=g.current;w.style.width=h.width,w.value=v.value||t.placeholder||"x",w.value.slice(-1)===` +`&&(w.value+=" ");const _=h.boxSizing,T=mu(h.paddingBottom)+mu(h.paddingTop),k=mu(h.borderBottomWidth)+mu(h.borderTopWidth),R=w.scrollHeight;w.value="x";const P=w.scrollHeight;let x=R;i&&(x=Math.max(Number(i)*P,x)),o&&(x=Math.min(Number(o)*P,x)),x=Math.max(x,P);const $=x+(_==="border-box"?T+k:0),I=Math.abs(x-R)<=1;return{outerHeightStyle:$,overflowing:I}},[o,i,t.placeholder]),y=b.useCallback(()=>{const v=m();if(dI(v))return;const S=v.outerHeightStyle,h=u.current;f.current!==S&&(f.current=S,h.style.height=`${S}px`),h.style.overflow=v.overflowing?"hidden":""},[m]);Wr(()=>{const v=()=>{y()};let S;const h=hp(v),w=u.current,_=Vr(w);_.addEventListener("resize",h);let T;return typeof ResizeObserver<"u"&&(T=new ResizeObserver(v),T.observe(w)),()=>{h.clear(),cancelAnimationFrame(S),_.removeEventListener("resize",h),T&&T.disconnect()}},[m,y]),Wr(()=>{y()});const C=v=>{c||y(),r&&r(v)};return p.jsxs(b.Fragment,{children:[p.jsx("textarea",{value:s,onChange:C,ref:d,rows:i,style:a,...l}),p.jsx("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:g,tabIndex:-1,style:{...uI.shadow,...a,paddingTop:0,paddingBottom:0}})]})});function Kd(e){return typeof e=="string"}function ga({props:e,states:t,muiFormControl:n}){return t.reduce((r,o)=>(r[o]=e[o],n&&typeof e[o]>"u"&&(r[o]=n[o]),r),{})}const L1=b.createContext(void 0);function No(){return b.useContext(L1)}function Ab(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function Zd(e,t=!1){return e&&(Ab(e.value)&&e.value!==""||t&&Ab(e.defaultValue)&&e.defaultValue!=="")}function pI(e){return e.startAdornment}function gI(e){return Oe("MuiInputBase",e)}const Kn=Ee("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]);var Db;const yp=(e,t)=>{const{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,n.size==="small"&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${ae(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},bp=(e,t)=>{const{ownerState:n}=e;return[t.input,n.size==="small"&&t.inputSizeSmall,n.multiline&&t.inputMultiline,n.type==="search"&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},hI=e=>{const{classes:t,color:n,disabled:r,error:o,endAdornment:i,focused:a,formControl:s,fullWidth:l,hiddenLabel:c,multiline:u,readOnly:d,size:f,startAdornment:g,type:m}=e,y={root:["root",`color${ae(n)}`,r&&"disabled",o&&"error",l&&"fullWidth",a&&"focused",s&&"formControl",f&&f!=="medium"&&`size${ae(f)}`,u&&"multiline",g&&"adornedStart",i&&"adornedEnd",c&&"hiddenLabel",d&&"readOnly"],input:["input",r&&"disabled",m==="search"&&"inputTypeSearch",u&&"inputMultiline",f==="small"&&"inputSizeSmall",c&&"inputHiddenLabel",g&&"inputAdornedStart",i&&"inputAdornedEnd",d&&"readOnly"]};return Ae(y,gI,t)},xp=J("div",{name:"MuiInputBase",slot:"Root",overridesResolver:yp})($e(({theme:e})=>({...e.typography.body1,color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${Kn.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:t})=>t.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:t,size:n})=>t.multiline&&n==="small",style:{paddingTop:1}},{props:({ownerState:t})=>t.fullWidth,style:{width:"100%"}}]}))),Sp=J("input",{name:"MuiInputBase",slot:"Input",overridesResolver:bp})($e(({theme:e})=>{const t=e.palette.mode==="light",n={color:"currentColor",...e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5},transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},r={opacity:"0 !important"},o=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&::-ms-input-placeholder":n,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${Kn.formControl} &`]:{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":o,"&:focus::-moz-placeholder":o,"&:focus::-ms-input-placeholder":o},[`&.${Kn.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},variants:[{props:({ownerState:i})=>!i.disableInjectingGlobalStyles,style:{animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:i})=>i.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),jb=N8({"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}),wp=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiInputBase"}),{"aria-describedby":o,autoComplete:i,autoFocus:a,className:s,color:l,components:c={},componentsProps:u={},defaultValue:d,disabled:f,disableInjectingGlobalStyles:g,endAdornment:m,error:y,fullWidth:C=!1,id:v,inputComponent:S="input",inputProps:h={},inputRef:w,margin:_,maxRows:T,minRows:k,multiline:R=!1,name:P,onBlur:x,onChange:$,onClick:I,onFocus:O,onKeyDown:D,onKeyUp:M,placeholder:N,readOnly:A,renderSuffix:E,rows:L,size:B,slotProps:H={},slots:z={},startAdornment:j,type:F="text",value:W,...V}=r,ee=h.value!=null?h.value:W,{current:re}=b.useRef(ee!=null),U=b.useRef(),K=b.useCallback(ne=>{},[]),se=Rt(U,w,h.ref,K),[q,ce]=b.useState(!1),ue=No(),ie=ga({props:r,muiFormControl:ue,states:["color","disabled","error","hiddenLabel","size","required","filled"]});ie.focused=ue?ue.focused:q,b.useEffect(()=>{!ue&&f&&q&&(ce(!1),x&&x())},[ue,f,q,x]);const te=ue&&ue.onFilled,de=ue&&ue.onEmpty,Q=b.useCallback(ne=>{Zd(ne)?te&&te():de&&de()},[te,de]);Wr(()=>{re&&Q({value:ee})},[ee,Q,re]);const be=ne=>{O&&O(ne),h.onFocus&&h.onFocus(ne),ue&&ue.onFocus?ue.onFocus(ne):ce(!0)},Te=ne=>{x&&x(ne),h.onBlur&&h.onBlur(ne),ue&&ue.onBlur?ue.onBlur(ne):ce(!1)},we=(ne,...xe)=>{if(!re){const Le=ne.target||U.current;if(Le==null)throw new Error(ta(1));Q({value:Le.value})}h.onChange&&h.onChange(ne,...xe),$&&$(ne,...xe)};b.useEffect(()=>{Q(U.current)},[]);const ge=ne=>{U.current&&ne.currentTarget===ne.target&&U.current.focus(),I&&I(ne)};let le=S,Se=h;R&&le==="input"&&(L?Se={type:void 0,minRows:L,maxRows:L,...Se}:Se={type:void 0,maxRows:T,minRows:k,...Se},le=fI);const ye=ne=>{Q(ne.animationName==="mui-auto-fill-cancel"?U.current:{value:"x"})};b.useEffect(()=>{ue&&ue.setAdornedStart(!!j)},[ue,j]);const Ge={...r,color:ie.color||"primary",disabled:ie.disabled,endAdornment:m,error:ie.error,focused:ie.focused,formControl:ue,fullWidth:C,hiddenLabel:ie.hiddenLabel,multiline:R,size:ie.size,startAdornment:j,type:F},Pe=hI(Ge),Re=z.root||c.Root||xp,ke=H.root||u.root||{},pe=z.input||c.Input||Sp;return Se={...Se,...H.input??u.input},p.jsxs(b.Fragment,{children:[!g&&typeof jb=="function"&&(Db||(Db=p.jsx(jb,{}))),p.jsxs(Re,{...ke,ref:n,onClick:ge,...V,...!Kd(Re)&&{ownerState:{...Ge,...ke.ownerState}},className:ve(Pe.root,ke.className,s,A&&"MuiInputBase-readOnly"),children:[j,p.jsx(L1.Provider,{value:null,children:p.jsx(pe,{"aria-invalid":ie.error,"aria-describedby":o,autoComplete:i,autoFocus:a,defaultValue:d,disabled:ie.disabled,id:v,onAnimationStart:ye,name:P,placeholder:N,readOnly:A,required:ie.required,rows:L,value:ee,onKeyDown:D,onKeyUp:M,type:F,...Se,...!Kd(pe)&&{as:le,ownerState:{...Ge,...Se.ownerState}},ref:se,className:ve(Pe.input,Se.className,A&&"MuiInputBase-readOnly"),onBlur:Te,onChange:we,onFocus:be})}),m,E?E({...ie,startAdornment:j}):null]})]})});function mI(e){return Oe("MuiInput",e)}const Zo={...Kn,...Ee("MuiInput",["root","underline","input"])};function vI(e){return Oe("MuiOutlinedInput",e)}const ur={...Kn,...Ee("MuiOutlinedInput",["root","notchedOutline","input"])};function yI(e){return Oe("MuiFilledInput",e)}const Zn={...Kn,...Ee("MuiFilledInput",["root","underline","input","adornedStart","adornedEnd","sizeSmall","multiline","hiddenLabel"])},N_=un(p.jsx("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown");function bI(e){return Oe("MuiAutocomplete",e)}const Ue=Ee("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var Fb,Bb;const xI=e=>{const{classes:t,disablePortal:n,expanded:r,focused:o,fullWidth:i,hasClearIcon:a,hasPopupIcon:s,inputFocused:l,popupOpen:c,size:u}=e,d={root:["root",r&&"expanded",o&&"focused",i&&"fullWidth",a&&"hasClearIcon",s&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${ae(u)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",c&&"popupIndicatorOpen"],popper:["popper",n&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return Ae(d,bI,t)},SI=J("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e,{fullWidth:r,hasClearIcon:o,hasPopupIcon:i,inputFocused:a,size:s}=n;return[{[`& .${Ue.tag}`]:t.tag},{[`& .${Ue.tag}`]:t[`tagSize${ae(s)}`]},{[`& .${Ue.inputRoot}`]:t.inputRoot},{[`& .${Ue.input}`]:t.input},{[`& .${Ue.input}`]:a&&t.inputFocused},t.root,r&&t.fullWidth,i&&t.hasPopupIcon,o&&t.hasClearIcon]}})({[`&.${Ue.focused} .${Ue.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${Ue.clearIndicator}`]:{visibility:"visible"}},[`& .${Ue.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${Ue.inputRoot}`]:{[`.${Ue.hasPopupIcon}&, .${Ue.hasClearIcon}&`]:{paddingRight:30},[`.${Ue.hasPopupIcon}.${Ue.hasClearIcon}&`]:{paddingRight:56},[`& .${Ue.input}`]:{width:0,minWidth:30}},[`& .${Zo.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${Zo.root}.${Kn.sizeSmall}`]:{[`& .${Zo.input}`]:{padding:"2px 4px 3px 0"}},[`& .${ur.root}`]:{padding:9,[`.${Ue.hasPopupIcon}&, .${Ue.hasClearIcon}&`]:{paddingRight:39},[`.${Ue.hasPopupIcon}.${Ue.hasClearIcon}&`]:{paddingRight:65},[`& .${Ue.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${Ue.endAdornment}`]:{right:9}},[`& .${ur.root}.${Kn.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${Ue.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${Zn.root}`]:{paddingTop:19,paddingLeft:8,[`.${Ue.hasPopupIcon}&, .${Ue.hasClearIcon}&`]:{paddingRight:39},[`.${Ue.hasPopupIcon}.${Ue.hasClearIcon}&`]:{paddingRight:65},[`& .${Zn.input}`]:{padding:"7px 4px"},[`& .${Ue.endAdornment}`]:{right:9}},[`& .${Zn.root}.${Kn.sizeSmall}`]:{paddingBottom:1,[`& .${Zn.input}`]:{padding:"2.5px 4px"}},[`& .${Kn.hiddenLabel}`]:{paddingTop:8},[`& .${Zn.root}.${Kn.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${Ue.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${Zn.root}.${Kn.hiddenLabel}.${Kn.sizeSmall}`]:{[`& .${Ue.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${Ue.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${Ue.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${Ue.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${Ue.inputRoot}`]:{flexWrap:"wrap"}}}]}),wI=J("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(e,t)=>t.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),CI=J(vr,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(e,t)=>t.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),_I=J(vr,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:({ownerState:e},t)=>({...t.popupIndicator,...e.popupOpen&&t.popupIndicatorOpen})})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),RI=J(Oc,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Ue.option}`]:t.option},t.popper,n.disablePortal&&t.popperDisablePortal]}})($e(({theme:e})=>({zIndex:(e.vars||e).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]}))),TI=J(As,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(e,t)=>t.paper})($e(({theme:e})=>({...e.typography.body1,overflow:"auto"}))),PI=J("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(e,t)=>t.loading})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"}))),kI=J("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(e,t)=>t.noOptions})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"}))),$I=J("div",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(e,t)=>t.listbox})($e(({theme:e})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${Ue.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[e.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${Ue.focused}`]:{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${Ue.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${Ue.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${Ue.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}}}))),EI=J(km,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(e,t)=>t.groupLabel})($e(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,top:-8}))),MI=J("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(e,t)=>t.groupUl})({padding:0,[`& .${Ue.option}`]:{paddingLeft:24}}),II=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiAutocomplete"}),{autoComplete:o=!1,autoHighlight:i=!1,autoSelect:a=!1,blurOnSelect:s=!1,ChipProps:l,className:c,clearIcon:u=Fb||(Fb=p.jsx(C_,{fontSize:"small"})),clearOnBlur:d=!r.freeSolo,clearOnEscape:f=!1,clearText:g="Clear",closeText:m="Close",componentsProps:y,defaultValue:C=r.multiple?[]:null,disableClearable:v=!1,disableCloseOnSelect:S=!1,disabled:h=!1,disabledItemsFocusable:w=!1,disableListWrap:_=!1,disablePortal:T=!1,filterOptions:k,filterSelectedOptions:R=!1,forcePopupIcon:P="auto",freeSolo:x=!1,fullWidth:$=!1,getLimitTagsText:I=Xe=>`+${Xe}`,getOptionDisabled:O,getOptionKey:D,getOptionLabel:M,isOptionEqualToValue:N,groupBy:A,handleHomeEndKeys:E=!r.freeSolo,id:L,includeInputInList:B=!1,inputValue:H,limitTags:z=-1,ListboxComponent:j,ListboxProps:F,loading:W=!1,loadingText:V="Loading…",multiple:ee=!1,noOptionsText:re="No options",onChange:U,onClose:K,onHighlightChange:se,onInputChange:q,onOpen:ce,open:ue,openOnFocus:ie=!1,openText:te="Open",options:de,PaperComponent:Q,PopperComponent:be,popupIcon:Te=Bb||(Bb=p.jsx(N_,{})),readOnly:we=!1,renderGroup:ge,renderInput:le,renderOption:Se,renderTags:ye,selectOnFocus:Ge=!r.freeSolo,size:Pe="medium",slots:Re={},slotProps:ke={},value:pe,...ne}=r,{getRootProps:xe,getInputProps:Le,getInputLabelProps:fe,getPopupIndicatorProps:oe,getClearProps:me,getTagProps:je,getListboxProps:Ve,getOptionProps:Ye,value:Tt,dirty:Zt,expanded:On,id:sr,popupOpen:Un,focused:Do,focusedTag:Pi,anchorEl:Fe,setAnchorEl:Rn,inputValue:zc,groupedOptions:va}=FM({...r,componentName:"Autocomplete"}),zs=!v&&!h&&Zt&&!we,Hs=(!x||P===!0)&&P!==!1,{onMouseDown:Ap}=Le(),{ref:Dp,...Hc}=Ve(),Vs=M||(Xe=>Xe.label??Xe),fn={...r,disablePortal:T,expanded:On,focused:Do,fullWidth:$,getOptionLabel:Vs,hasClearIcon:zs,hasPopupIcon:Hs,inputFocused:Pi===-1,popupOpen:Un,size:Pe},Dt=xI(fn),uo={slots:{paper:Q,popper:be,...Re},slotProps:{chip:l,listbox:F,...y,...ke}},[X,Y]=an("listbox",{elementType:$I,externalForwardedProps:uo,ownerState:fn,className:Dt.listbox,additionalProps:Hc,ref:Dp}),[Ce,We]=an("paper",{elementType:As,externalForwardedProps:uo,ownerState:fn,className:Dt.paper}),[qe,Pt]=an("popper",{elementType:Oc,externalForwardedProps:uo,ownerState:fn,className:Dt.popper,additionalProps:{disablePortal:T,style:{width:Fe?Fe.clientWidth:null},role:"presentation",anchorEl:Fe,open:Un}});let st;if(ee&&Tt.length>0){const Xe=qr=>({className:Dt.tag,disabled:h,...je(qr)});ye?st=ye(Tt,Xe,fn):st=Tt.map((qr,jo)=>{const{key:Ws,...K3}=Xe({index:jo});return p.jsx(cI,{label:Vs(qr),size:Pe,...K3,...uo.slotProps.chip},Ws)})}if(z>-1&&Array.isArray(st)){const Xe=st.length-z;!Do&&Xe>0&&(st=st.splice(0,z),st.push(p.jsx("span",{className:Dt.tag,children:I(Xe)},st.length)))}const Vc=ge||(Xe=>p.jsxs("li",{children:[p.jsx(EI,{className:Dt.groupLabel,ownerState:fn,component:"div",children:Xe.group}),p.jsx(MI,{className:Dt.groupUl,ownerState:fn,children:Xe.children})]},Xe.key)),q3=Se||((Xe,qr)=>{const{key:jo,...Ws}=Xe;return p.jsx("li",{...Ws,children:Vs(qr)},jo)}),vv=(Xe,qr)=>{const jo=Ye({option:Xe,index:qr});return q3({...jo,className:Dt.option},Xe,{selected:jo["aria-selected"],index:qr,inputValue:zc},fn)},Wc=uo.slotProps.clearIndicator,Uc=uo.slotProps.popupIndicator,jp=Xe=>p.jsx(RI,{as:qe,...Pt,children:p.jsx(TI,{as:Ce,...We,children:Xe})});let Gc=null;return va.length>0?Gc=jp(p.jsx(X,{as:j,...Y,children:va.map((Xe,qr)=>A?Vc({key:Xe.key,group:Xe.group,children:Xe.options.map((jo,Ws)=>vv(jo,Xe.index+Ws))}):vv(Xe,qr))})):W&&va.length===0?Gc=jp(p.jsx(PI,{className:Dt.loading,ownerState:fn,children:V})):va.length===0&&!x&&!W&&(Gc=jp(p.jsx(kI,{className:Dt.noOptions,ownerState:fn,role:"presentation",onMouseDown:Xe=>{Xe.preventDefault()},children:re}))),p.jsxs(b.Fragment,{children:[p.jsx(SI,{ref:n,className:ve(Dt.root,c),ownerState:fn,...xe(ne),children:le({id:sr,disabled:h,fullWidth:!0,size:Pe==="small"?"small":void 0,InputLabelProps:fe(),InputProps:{ref:Rn,className:Dt.inputRoot,startAdornment:st,onMouseDown:Xe=>{Xe.target===Xe.currentTarget&&Ap(Xe)},...(zs||Hs)&&{endAdornment:p.jsxs(wI,{className:Dt.endAdornment,ownerState:fn,children:[zs?p.jsx(CI,{...me(),"aria-label":g,title:g,ownerState:fn,...Wc,className:ve(Dt.clearIndicator,Wc==null?void 0:Wc.className),children:u}):null,Hs?p.jsx(_I,{...oe(),disabled:h,"aria-label":Un?m:te,title:Un?m:te,ownerState:fn,...Uc,className:ve(Dt.popupIndicator,Uc==null?void 0:Uc.className),children:Te}):null]})}},inputProps:{className:Dt.input,disabled:h,readOnly:we,...Le()}})}),Fe?Gc:null]})}),OI={entering:{opacity:1},entered:{opacity:1}},LI=b.forwardRef(function(t,n){const r=Ht(),o={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:i,appear:a=!0,children:s,easing:l,in:c,onEnter:u,onEntered:d,onEntering:f,onExit:g,onExited:m,onExiting:y,style:C,timeout:v=o,TransitionComponent:S=Ur,...h}=t,w=b.useRef(null),_=Rt(w,pa(s),n),T=D=>M=>{if(D){const N=w.current;M===void 0?D(N):D(N,M)}},k=T(f),R=T((D,M)=>{w_(D);const N=ms({style:C,timeout:v,easing:l},{mode:"enter"});D.style.webkitTransition=r.transitions.create("opacity",N),D.style.transition=r.transitions.create("opacity",N),u&&u(D,M)}),P=T(d),x=T(y),$=T(D=>{const M=ms({style:C,timeout:v,easing:l},{mode:"exit"});D.style.webkitTransition=r.transitions.create("opacity",M),D.style.transition=r.transitions.create("opacity",M),g&&g(D)}),I=T(m),O=D=>{i&&i(w.current,D)};return p.jsx(S,{appear:a,in:c,nodeRef:w,onEnter:R,onEntered:P,onEntering:k,onExit:$,onExited:I,onExiting:x,addEndListener:O,timeout:v,...h,children:(D,M)=>b.cloneElement(s,{style:{opacity:0,visibility:D==="exited"&&!c?"hidden":void 0,...OI[D],...C,...s.props.style},ref:_,...M})})});function NI(e){return Oe("MuiBackdrop",e)}Ee("MuiBackdrop",["root","invisible"]);const AI=e=>{const{ownerState:t,...n}=e;return n},DI=e=>{const{classes:t,invisible:n}=e;return Ae({root:["root",n&&"invisible"]},NI,t)},jI=J("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.invisible&&t.invisible]}})({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent",variants:[{props:{invisible:!0},style:{backgroundColor:"transparent"}}]}),FI=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiBackdrop"}),{children:o,className:i,component:a="div",invisible:s=!1,open:l,components:c={},componentsProps:u={},slotProps:d={},slots:f={},TransitionComponent:g,transitionDuration:m,...y}=r,C={...r,component:a,invisible:s},v=DI(C),S={transition:g,root:c.Root,...f},h={...u,...d},w={slots:S,slotProps:h},[_,T]=an("root",{elementType:jI,externalForwardedProps:w,className:ve(v.root,i),ownerState:C}),[k,R]=an("transition",{elementType:LI,externalForwardedProps:w,ownerState:C}),P=AI(R);return p.jsx(k,{in:l,timeout:m,...y,...P,children:p.jsx(_,{"aria-hidden":!0,...T,classes:v,ref:n,children:o})})}),BI=Ee("MuiBox",["root"]),zI=pp(),Ar=tE({themeId:Fr,defaultTheme:zI,defaultClassName:BI.root,generateClassName:l_.generate});function HI(e){return Oe("MuiButton",e)}const Ra=Ee("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),VI=b.createContext({}),WI=b.createContext(void 0),UI=e=>{const{color:t,disableElevation:n,fullWidth:r,size:o,variant:i,classes:a}=e,s={root:["root",i,`${i}${ae(t)}`,`size${ae(o)}`,`${i}Size${ae(o)}`,`color${ae(t)}`,n&&"disableElevation",r&&"fullWidth"],label:["label"],startIcon:["icon","startIcon",`iconSize${ae(o)}`],endIcon:["icon","endIcon",`iconSize${ae(o)}`]},l=Ae(s,HI,a);return{...a,...l}},A_=[{props:{size:"small"},style:{"& > *:nth-of-type(1)":{fontSize:18}}},{props:{size:"medium"},style:{"& > *:nth-of-type(1)":{fontSize:20}}},{props:{size:"large"},style:{"& > *:nth-of-type(1)":{fontSize:22}}}],GI=J(Eo,{shouldForwardProp:e=>_n(e)||e==="classes",name:"MuiButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`${n.variant}${ae(n.color)}`],t[`size${ae(n.size)}`],t[`${n.variant}Size${ae(n.size)}`],n.color==="inherit"&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth]}})($e(({theme:e})=>{const t=e.palette.mode==="light"?e.palette.grey[300]:e.palette.grey[800],n=e.palette.mode==="light"?e.palette.grey.A100:e.palette.grey[700];return{...e.typography.button,minWidth:64,padding:"6px 16px",border:0,borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create(["background-color","box-shadow","border-color","color"],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:"none"},[`&.${Ra.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{variant:"contained"},style:{color:"var(--variant-containedColor)",backgroundColor:"var(--variant-containedBg)",boxShadow:(e.vars||e).shadows[2],"&:hover":{boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2]}},"&:active":{boxShadow:(e.vars||e).shadows[8]},[`&.${Ra.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},[`&.${Ra.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}},{props:{variant:"outlined"},style:{padding:"5px 15px",border:"1px solid currentColor",borderColor:"var(--variant-outlinedBorder, currentColor)",backgroundColor:"var(--variant-outlinedBg)",color:"var(--variant-outlinedColor)",[`&.${Ra.disabled}`]:{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`}}},{props:{variant:"text"},style:{padding:"6px 8px",color:"var(--variant-textColor)",backgroundColor:"var(--variant-textBg)"}},...Object.entries(e.palette).filter(Bt()).map(([r])=>({props:{color:r},style:{"--variant-textColor":(e.vars||e).palette[r].main,"--variant-outlinedColor":(e.vars||e).palette[r].main,"--variant-outlinedBorder":e.vars?`rgba(${e.vars.palette[r].mainChannel} / 0.5)`:Be(e.palette[r].main,.5),"--variant-containedColor":(e.vars||e).palette[r].contrastText,"--variant-containedBg":(e.vars||e).palette[r].main,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":(e.vars||e).palette[r].dark,"--variant-textBg":e.vars?`rgba(${e.vars.palette[r].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[r].main,e.palette.action.hoverOpacity),"--variant-outlinedBorder":(e.vars||e).palette[r].main,"--variant-outlinedBg":e.vars?`rgba(${e.vars.palette[r].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[r].main,e.palette.action.hoverOpacity)}}}})),{props:{color:"inherit"},style:{color:"inherit",borderColor:"currentColor","--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedBg:t,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedHoverBg:n,"--variant-textBg":e.vars?`rgba(${e.vars.palette.text.primaryChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.text.primary,e.palette.action.hoverOpacity),"--variant-outlinedBg":e.vars?`rgba(${e.vars.palette.text.primaryChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.text.primary,e.palette.action.hoverOpacity)}}}},{props:{size:"small",variant:"text"},style:{padding:"4px 5px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"text"},style:{padding:"8px 11px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"outlined"},style:{padding:"3px 9px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"outlined"},style:{padding:"7px 21px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"contained"},style:{padding:"4px 10px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"contained"},style:{padding:"8px 22px",fontSize:e.typography.pxToRem(15)}},{props:{disableElevation:!0},style:{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${Ra.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${Ra.disabled}`]:{boxShadow:"none"}}},{props:{fullWidth:!0},style:{width:"100%"}}]}})),qI=J("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.startIcon,t[`iconSize${ae(n.size)}`]]}})({display:"inherit",marginRight:8,marginLeft:-4,variants:[{props:{size:"small"},style:{marginLeft:-2}},...A_]}),KI=J("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.endIcon,t[`iconSize${ae(n.size)}`]]}})({display:"inherit",marginRight:-4,marginLeft:8,variants:[{props:{size:"small"},style:{marginRight:-2}},...A_]}),ZI=b.forwardRef(function(t,n){const r=b.useContext(VI),o=b.useContext(WI),i=v_(r,t),a=De({props:i,name:"MuiButton"}),{children:s,color:l="primary",component:c="button",className:u,disabled:d=!1,disableElevation:f=!1,disableFocusRipple:g=!1,endIcon:m,focusVisibleClassName:y,fullWidth:C=!1,size:v="medium",startIcon:S,type:h,variant:w="text",..._}=a,T={...a,color:l,component:c,disabled:d,disableElevation:f,disableFocusRipple:g,fullWidth:C,size:v,type:h,variant:w},k=UI(T),R=S&&p.jsx(qI,{className:k.startIcon,ownerState:T,children:S}),P=m&&p.jsx(KI,{className:k.endIcon,ownerState:T,children:m}),x=o||"";return p.jsxs(GI,{ownerState:T,className:ve(r.className,k.root,u,x),component:c,disabled:d,focusRipple:!g,focusVisibleClassName:ve(k.focusVisible,y),ref:n,type:h,..._,classes:k,children:[R,s,P]})});function QI(e){return Oe("PrivateSwitchBase",e)}Ee("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const YI=e=>{const{classes:t,checked:n,disabled:r,edge:o}=e,i={root:["root",n&&"checked",r&&"disabled",o&&`edge${ae(o)}`],input:["input"]};return Ae(i,QI,t)},XI=J(Eo)({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:e,ownerState:t})=>e==="start"&&t.size!=="small",style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:e,ownerState:t})=>e==="end"&&t.size!=="small",style:{marginRight:-12}}]}),JI=J("input",{shouldForwardProp:_n})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),N1=b.forwardRef(function(t,n){const{autoFocus:r,checked:o,checkedIcon:i,className:a,defaultChecked:s,disabled:l,disableFocusRipple:c=!1,edge:u=!1,icon:d,id:f,inputProps:g,inputRef:m,name:y,onBlur:C,onChange:v,onFocus:S,readOnly:h,required:w=!1,tabIndex:_,type:T,value:k,...R}=t,[P,x]=Ui({controlled:o,default:!!s,name:"SwitchBase",state:"checked"}),$=No(),I=L=>{S&&S(L),$&&$.onFocus&&$.onFocus(L)},O=L=>{C&&C(L),$&&$.onBlur&&$.onBlur(L)},D=L=>{if(L.nativeEvent.defaultPrevented)return;const B=L.target.checked;x(B),v&&v(L,B)};let M=l;$&&typeof M>"u"&&(M=$.disabled);const N=T==="checkbox"||T==="radio",A={...t,checked:P,disabled:M,disableFocusRipple:c,edge:u},E=YI(A);return p.jsxs(XI,{component:"span",className:ve(E.root,a),centerRipple:!0,focusRipple:!c,disabled:M,tabIndex:null,role:void 0,onFocus:I,onBlur:O,ownerState:A,ref:n,...R,children:[p.jsx(JI,{autoFocus:r,checked:o,defaultChecked:s,className:E.input,disabled:M,id:N?f:void 0,name:y,onChange:D,readOnly:h,ref:m,required:w,ownerState:A,tabIndex:_,type:T,...T==="checkbox"&&k===void 0?{}:{value:k},...g}),P?i:d]})}),eO=un(p.jsx("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),tO=un(p.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),nO=un(p.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function rO(e){return Oe("MuiCheckbox",e)}const xg=Ee("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),oO=e=>{const{classes:t,indeterminate:n,color:r,size:o}=e,i={root:["root",n&&"indeterminate",`color${ae(r)}`,`size${ae(o)}`]},a=Ae(i,rO,t);return{...t,...a}},iO=J(N1,{shouldForwardProp:e=>_n(e)||e==="classes",name:"MuiCheckbox",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${ae(n.size)}`],n.color!=="default"&&t[`color${ae(n.color)}`]]}})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter(Bt()).map(([t])=>({props:{color:t,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[t].main,e.palette.action.hoverOpacity)}}})),...Object.entries(e.palette).filter(Bt()).map(([t])=>({props:{color:t},style:{[`&.${xg.checked}, &.${xg.indeterminate}`]:{color:(e.vars||e).palette[t].main},[`&.${xg.disabled}`]:{color:(e.vars||e).palette.action.disabled}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}))),aO=p.jsx(tO,{}),sO=p.jsx(eO,{}),lO=p.jsx(nO,{}),cO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiCheckbox"}),{checkedIcon:o=aO,color:i="primary",icon:a=sO,indeterminate:s=!1,indeterminateIcon:l=lO,inputProps:c,size:u="medium",disableRipple:d=!1,className:f,...g}=r,m=s?l:a,y=s?l:o,C={...r,disableRipple:d,color:i,indeterminate:s,size:u},v=oO(C);return p.jsx(iO,{type:"checkbox",inputProps:{"data-indeterminate":s,...c},icon:b.cloneElement(m,{fontSize:m.props.fontSize??u}),checkedIcon:b.cloneElement(y,{fontSize:y.props.fontSize??u}),ownerState:C,ref:n,className:ve(v.root,f),disableRipple:d,...g,classes:v})});function zb(e){return e.substring(2).toLowerCase()}function uO(e,t){return t.documentElement.clientWidth(setTimeout(()=>{l.current=!0},0),()=>{l.current=!1}),[]);const u=Rt(pa(t),s),d=Sn(m=>{const y=c.current;c.current=!1;const C=ln(s.current);if(!l.current||!s.current||"clientX"in m&&uO(m,C))return;if(a.current){a.current=!1;return}let v;m.composedPath?v=m.composedPath().includes(s.current):v=!C.documentElement.contains(m.target)||s.current.contains(m.target),!v&&(n||!y)&&o(m)}),f=m=>y=>{c.current=!0;const C=t.props[m];C&&C(y)},g={ref:u};return i!==!1&&(g[i]=f(i)),b.useEffect(()=>{if(i!==!1){const m=zb(i),y=ln(s.current),C=()=>{a.current=!0};return y.addEventListener(m,d),y.addEventListener("touchmove",C),()=>{y.removeEventListener(m,d),y.removeEventListener("touchmove",C)}}},[d,i]),r!==!1&&(g[r]=f(r)),b.useEffect(()=>{if(r!==!1){const m=zb(r),y=ln(s.current);return y.addEventListener(m,d),()=>{y.removeEventListener(m,d)}}},[d,r]),p.jsx(b.Fragment,{children:b.cloneElement(t,g)})}function fO(e){const t=ln(e);return t.body===e?Vr(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function Al(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function Hb(e){return parseInt(Vr(e).getComputedStyle(e).paddingRight,10)||0}function pO(e){const n=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].includes(e.tagName),r=e.tagName==="INPUT"&&e.getAttribute("type")==="hidden";return n||r}function Vb(e,t,n,r,o){const i=[t,n,...r];[].forEach.call(e.children,a=>{const s=!i.includes(a),l=!pO(a);s&&l&&Al(a,o)})}function Sg(e,t){let n=-1;return e.some((r,o)=>t(r)?(n=o,!0):!1),n}function gO(e,t){const n=[],r=e.container;if(!t.disableScrollLock){if(fO(r)){const a=m_(Vr(r));n.push({value:r.style.paddingRight,property:"padding-right",el:r}),r.style.paddingRight=`${Hb(r)+a}px`;const s=ln(r).querySelectorAll(".mui-fixed");[].forEach.call(s,l=>{n.push({value:l.style.paddingRight,property:"padding-right",el:l}),l.style.paddingRight=`${Hb(l)+a}px`})}let i;if(r.parentNode instanceof DocumentFragment)i=ln(r).body;else{const a=r.parentElement,s=Vr(r);i=(a==null?void 0:a.nodeName)==="HTML"&&s.getComputedStyle(a).overflowY==="scroll"?a:r}n.push({value:i.style.overflow,property:"overflow",el:i},{value:i.style.overflowX,property:"overflow-x",el:i},{value:i.style.overflowY,property:"overflow-y",el:i}),i.style.overflow="hidden"}return()=>{n.forEach(({value:i,el:a,property:s})=>{i?a.style.setProperty(s,i):a.style.removeProperty(s)})}}function hO(e){const t=[];return[].forEach.call(e.children,n=>{n.getAttribute("aria-hidden")==="true"&&t.push(n)}),t}class mO{constructor(){this.modals=[],this.containers=[]}add(t,n){let r=this.modals.indexOf(t);if(r!==-1)return r;r=this.modals.length,this.modals.push(t),t.modalRef&&Al(t.modalRef,!1);const o=hO(n);Vb(n,t.mount,t.modalRef,o,!0);const i=Sg(this.containers,a=>a.container===n);return i!==-1?(this.containers[i].modals.push(t),r):(this.containers.push({modals:[t],container:n,restore:null,hiddenSiblings:o}),r)}mount(t,n){const r=Sg(this.containers,i=>i.modals.includes(t)),o=this.containers[r];o.restore||(o.restore=gO(o,n))}remove(t,n=!0){const r=this.modals.indexOf(t);if(r===-1)return r;const o=Sg(this.containers,a=>a.modals.includes(t)),i=this.containers[o];if(i.modals.splice(i.modals.indexOf(t),1),this.modals.splice(r,1),i.modals.length===0)i.restore&&i.restore(),t.modalRef&&Al(t.modalRef,n),Vb(i.container,t.mount,t.modalRef,i.hiddenSiblings,!1),this.containers.splice(o,1);else{const a=i.modals[i.modals.length-1];a.modalRef&&Al(a.modalRef,!1)}return r}isTopModal(t){return this.modals.length>0&&this.modals[this.modals.length-1]===t}}const vO=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function yO(e){const t=parseInt(e.getAttribute("tabindex")||"",10);return Number.isNaN(t)?e.contentEditable==="true"||(e.nodeName==="AUDIO"||e.nodeName==="VIDEO"||e.nodeName==="DETAILS")&&e.getAttribute("tabindex")===null?0:e.tabIndex:t}function bO(e){if(e.tagName!=="INPUT"||e.type!=="radio"||!e.name)return!1;const t=r=>e.ownerDocument.querySelector(`input[type="radio"]${r}`);let n=t(`[name="${e.name}"]:checked`);return n||(n=t(`[name="${e.name}"]`)),n!==e}function xO(e){return!(e.disabled||e.tagName==="INPUT"&&e.type==="hidden"||bO(e))}function SO(e){const t=[],n=[];return Array.from(e.querySelectorAll(vO)).forEach((r,o)=>{const i=yO(r);i===-1||!xO(r)||(i===0?t.push(r):n.push({documentOrder:o,tabIndex:i,node:r}))}),n.sort((r,o)=>r.tabIndex===o.tabIndex?r.documentOrder-o.documentOrder:r.tabIndex-o.tabIndex).map(r=>r.node).concat(t)}function wO(){return!0}function CO(e){const{children:t,disableAutoFocus:n=!1,disableEnforceFocus:r=!1,disableRestoreFocus:o=!1,getTabbable:i=SO,isEnabled:a=wO,open:s}=e,l=b.useRef(!1),c=b.useRef(null),u=b.useRef(null),d=b.useRef(null),f=b.useRef(null),g=b.useRef(!1),m=b.useRef(null),y=Rt(pa(t),m),C=b.useRef(null);b.useEffect(()=>{!s||!m.current||(g.current=!n)},[n,s]),b.useEffect(()=>{if(!s||!m.current)return;const h=ln(m.current);return m.current.contains(h.activeElement)||(m.current.hasAttribute("tabIndex")||m.current.setAttribute("tabIndex","-1"),g.current&&m.current.focus()),()=>{o||(d.current&&d.current.focus&&(l.current=!0,d.current.focus()),d.current=null)}},[s]),b.useEffect(()=>{if(!s||!m.current)return;const h=ln(m.current),w=k=>{C.current=k,!(r||!a()||k.key!=="Tab")&&h.activeElement===m.current&&k.shiftKey&&(l.current=!0,u.current&&u.current.focus())},_=()=>{var P,x;const k=m.current;if(k===null)return;if(!h.hasFocus()||!a()||l.current){l.current=!1;return}if(k.contains(h.activeElement)||r&&h.activeElement!==c.current&&h.activeElement!==u.current)return;if(h.activeElement!==f.current)f.current=null;else if(f.current!==null)return;if(!g.current)return;let R=[];if((h.activeElement===c.current||h.activeElement===u.current)&&(R=i(m.current)),R.length>0){const $=!!((P=C.current)!=null&&P.shiftKey&&((x=C.current)==null?void 0:x.key)==="Tab"),I=R[0],O=R[R.length-1];typeof I!="string"&&typeof O!="string"&&($?O.focus():I.focus())}else k.focus()};h.addEventListener("focusin",_),h.addEventListener("keydown",w,!0);const T=setInterval(()=>{h.activeElement&&h.activeElement.tagName==="BODY"&&_()},50);return()=>{clearInterval(T),h.removeEventListener("focusin",_),h.removeEventListener("keydown",w,!0)}},[n,r,o,a,s,i]);const v=h=>{d.current===null&&(d.current=h.relatedTarget),g.current=!0,f.current=h.target;const w=t.props.onFocus;w&&w(h)},S=h=>{d.current===null&&(d.current=h.relatedTarget),g.current=!0};return p.jsxs(b.Fragment,{children:[p.jsx("div",{tabIndex:s?0:-1,onFocus:S,ref:c,"data-testid":"sentinelStart"}),b.cloneElement(t,{ref:y,onFocus:v}),p.jsx("div",{tabIndex:s?0:-1,onFocus:S,ref:u,"data-testid":"sentinelEnd"})]})}function _O(e){return typeof e=="function"?e():e}function RO(e){return e?e.props.hasOwnProperty("in"):!1}const vu=new mO;function TO(e){const{container:t,disableEscapeKeyDown:n=!1,disableScrollLock:r=!1,closeAfterTransition:o=!1,onTransitionEnter:i,onTransitionExited:a,children:s,onClose:l,open:c,rootRef:u}=e,d=b.useRef({}),f=b.useRef(null),g=b.useRef(null),m=Rt(g,u),[y,C]=b.useState(!c),v=RO(s);let S=!0;(e["aria-hidden"]==="false"||e["aria-hidden"]===!1)&&(S=!1);const h=()=>ln(f.current),w=()=>(d.current.modalRef=g.current,d.current.mount=f.current,d.current),_=()=>{vu.mount(w(),{disableScrollLock:r}),g.current&&(g.current.scrollTop=0)},T=Sn(()=>{const M=_O(t)||h().body;vu.add(w(),M),g.current&&_()}),k=()=>vu.isTopModal(w()),R=Sn(M=>{f.current=M,M&&(c&&k()?_():g.current&&Al(g.current,S))}),P=b.useCallback(()=>{vu.remove(w(),S)},[S]);b.useEffect(()=>()=>{P()},[P]),b.useEffect(()=>{c?T():(!v||!o)&&P()},[c,P,v,o,T]);const x=M=>N=>{var A;(A=M.onKeyDown)==null||A.call(M,N),!(N.key!=="Escape"||N.which===229||!k())&&(n||(N.stopPropagation(),l&&l(N,"escapeKeyDown")))},$=M=>N=>{var A;(A=M.onClick)==null||A.call(M,N),N.target===N.currentTarget&&l&&l(N,"backdropClick")};return{getRootProps:(M={})=>{const N=y_(e);delete N.onTransitionEnter,delete N.onTransitionExited;const A={...N,...M};return{role:"presentation",...A,onKeyDown:x(A),ref:m}},getBackdropProps:(M={})=>{const N=M;return{"aria-hidden":!0,...N,onClick:$(N),open:c}},getTransitionProps:()=>{const M=()=>{C(!1),i&&i()},N=()=>{C(!0),a&&a(),o&&P()};return{onEnter:Sm(M,s==null?void 0:s.props.onEnter),onExited:Sm(N,s==null?void 0:s.props.onExited)}},rootRef:m,portalRef:R,isTopModal:k,exited:y,hasTransition:v}}function PO(e){return Oe("MuiModal",e)}Ee("MuiModal",["root","hidden","backdrop"]);const kO=e=>{const{open:t,exited:n,classes:r}=e;return Ae({root:["root",!t&&n&&"hidden"],backdrop:["backdrop"]},PO,r)},$O=J("div",{name:"MuiModal",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.open&&n.exited&&t.hidden]}})($e(({theme:e})=>({position:"fixed",zIndex:(e.vars||e).zIndex.modal,right:0,bottom:0,top:0,left:0,variants:[{props:({ownerState:t})=>!t.open&&t.exited,style:{visibility:"hidden"}}]}))),EO=J(FI,{name:"MuiModal",slot:"Backdrop",overridesResolver:(e,t)=>t.backdrop})({zIndex:-1}),MO=b.forwardRef(function(t,n){const r=De({name:"MuiModal",props:t}),{BackdropComponent:o=EO,BackdropProps:i,classes:a,className:s,closeAfterTransition:l=!1,children:c,container:u,component:d,components:f={},componentsProps:g={},disableAutoFocus:m=!1,disableEnforceFocus:y=!1,disableEscapeKeyDown:C=!1,disablePortal:v=!1,disableRestoreFocus:S=!1,disableScrollLock:h=!1,hideBackdrop:w=!1,keepMounted:_=!1,onBackdropClick:T,onClose:k,onTransitionEnter:R,onTransitionExited:P,open:x,slotProps:$={},slots:I={},theme:O,...D}=r,M={...r,closeAfterTransition:l,disableAutoFocus:m,disableEnforceFocus:y,disableEscapeKeyDown:C,disablePortal:v,disableRestoreFocus:S,disableScrollLock:h,hideBackdrop:w,keepMounted:_},{getRootProps:N,getBackdropProps:A,getTransitionProps:E,portalRef:L,isTopModal:B,exited:H,hasTransition:z}=TO({...M,rootRef:n}),j={...M,exited:H},F=kO(j),W={};if(c.props.tabIndex===void 0&&(W.tabIndex="-1"),z){const{onEnter:q,onExited:ce}=E();W.onEnter=q,W.onExited=ce}const V={...D,slots:{root:f.Root,backdrop:f.Backdrop,...I},slotProps:{...g,...$}},[ee,re]=an("root",{elementType:$O,externalForwardedProps:V,getSlotProps:N,additionalProps:{ref:n,as:d},ownerState:j,className:ve(s,F==null?void 0:F.root,!j.open&&j.exited&&(F==null?void 0:F.hidden))}),[U,K]=an("backdrop",{elementType:o,externalForwardedProps:V,additionalProps:i,getSlotProps:q=>A({...q,onClick:ce=>{T&&T(ce),q!=null&&q.onClick&&q.onClick(ce)}}),className:ve(i==null?void 0:i.className,F==null?void 0:F.backdrop),ownerState:j}),se=Rt(i==null?void 0:i.ref,K.ref);return!_&&!x&&(!z||H)?null:p.jsx(L_,{ref:L,container:u,disablePortal:v,children:p.jsxs(ee,{...re,children:[!w&&o?p.jsx(U,{...K,ref:se}):null,p.jsx(CO,{disableEnforceFocus:y,disableAutoFocus:m,disableRestoreFocus:S,isEnabled:B,open:x,children:b.cloneElement(c,W)})]})})}),Wb=Ee("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]),IO=e=>{const{classes:t,disableUnderline:n,startAdornment:r,endAdornment:o,size:i,hiddenLabel:a,multiline:s}=e,l={root:["root",!n&&"underline",r&&"adornedStart",o&&"adornedEnd",i==="small"&&`size${ae(i)}`,a&&"hiddenLabel",s&&"multiline"],input:["input"]},c=Ae(l,yI,t);return{...t,...c}},OO=J(xp,{shouldForwardProp:e=>_n(e)||e==="classes",name:"MuiFilledInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...yp(e,t),!n.disableUnderline&&t.underline]}})($e(({theme:e})=>{const t=e.palette.mode==="light",n=t?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",r=t?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",o=t?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",i=t?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return{position:"relative",backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r,borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:e.vars?e.vars.palette.FilledInput.hoverBg:o,"@media (hover: none)":{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r}},[`&.${Zn.focused}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r},[`&.${Zn.disabled}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.disabledBg:i},variants:[{props:({ownerState:a})=>!a.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Zn.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Zn.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`:n}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Zn.disabled}, .${Zn.error}):before`]:{borderBottom:`1px solid ${(e.vars||e).palette.text.primary}`},[`&.${Zn.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(Bt()).map(([a])=>{var s;return{props:{disableUnderline:!1,color:a},style:{"&::after":{borderBottom:`2px solid ${(s=(e.vars||e).palette[a])==null?void 0:s.main}`}}}}),{props:({ownerState:a})=>a.startAdornment,style:{paddingLeft:12}},{props:({ownerState:a})=>a.endAdornment,style:{paddingRight:12}},{props:({ownerState:a})=>a.multiline,style:{padding:"25px 12px 8px"}},{props:({ownerState:a,size:s})=>a.multiline&&s==="small",style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:a})=>a.multiline&&a.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:a})=>a.multiline&&a.hiddenLabel&&a.size==="small",style:{paddingTop:8,paddingBottom:9}}]}})),LO=J(Sp,{name:"MuiFilledInput",slot:"Input",overridesResolver:bp})($e(({theme:e})=>({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12,...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},...e.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:t})=>t.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:t})=>t.startAdornment,style:{paddingLeft:0}},{props:({ownerState:t})=>t.endAdornment,style:{paddingRight:0}},{props:({ownerState:t})=>t.hiddenLabel&&t.size==="small",style:{paddingTop:8,paddingBottom:9}},{props:({ownerState:t})=>t.multiline,style:{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}}]}))),Qd=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFilledInput"}),{disableUnderline:o=!1,components:i={},componentsProps:a,fullWidth:s=!1,hiddenLabel:l,inputComponent:c="input",multiline:u=!1,slotProps:d,slots:f={},type:g="text",...m}=r,y={...r,disableUnderline:o,fullWidth:s,inputComponent:c,multiline:u,type:g},C=IO(r),v={root:{ownerState:y},input:{ownerState:y}},S=d??a?so(v,d??a):v,h=f.root??i.Root??OO,w=f.input??i.Input??LO;return p.jsx(wp,{slots:{root:h,input:w},componentsProps:S,fullWidth:s,inputComponent:c,multiline:u,ref:n,type:g,...m,classes:C})});Qd&&(Qd.muiName="Input");function NO(e){return Oe("MuiFormControl",e)}Ee("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);const AO=e=>{const{classes:t,margin:n,fullWidth:r}=e,o={root:["root",n!=="none"&&`margin${ae(n)}`,r&&"fullWidth"]};return Ae(o,NO,t)},DO=J("div",{name:"MuiFormControl",slot:"Root",overridesResolver:({ownerState:e},t)=>({...t.root,...t[`margin${ae(e.margin)}`],...e.fullWidth&&t.fullWidth})})({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top",variants:[{props:{margin:"normal"},style:{marginTop:16,marginBottom:8}},{props:{margin:"dense"},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:"100%"}}]}),jO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormControl"}),{children:o,className:i,color:a="primary",component:s="div",disabled:l=!1,error:c=!1,focused:u,fullWidth:d=!1,hiddenLabel:f=!1,margin:g="none",required:m=!1,size:y="medium",variant:C="outlined",...v}=r,S={...r,color:a,component:s,disabled:l,error:c,fullWidth:d,hiddenLabel:f,margin:g,required:m,size:y,variant:C},h=AO(S),[w,_]=b.useState(()=>{let O=!1;return o&&b.Children.forEach(o,D=>{if(!bg(D,["Input","Select"]))return;const M=bg(D,["Select"])?D.props.input:D;M&&pI(M.props)&&(O=!0)}),O}),[T,k]=b.useState(()=>{let O=!1;return o&&b.Children.forEach(o,D=>{bg(D,["Input","Select"])&&(Zd(D.props,!0)||Zd(D.props.inputProps,!0))&&(O=!0)}),O}),[R,P]=b.useState(!1);l&&R&&P(!1);const x=u!==void 0&&!l?u:R;let $;b.useRef(!1);const I=b.useMemo(()=>({adornedStart:w,setAdornedStart:_,color:a,disabled:l,error:c,filled:T,focused:x,fullWidth:d,hiddenLabel:f,size:y,onBlur:()=>{P(!1)},onEmpty:()=>{k(!1)},onFilled:()=>{k(!0)},onFocus:()=>{P(!0)},registerEffect:$,required:m,variant:C}),[w,a,l,c,T,x,d,f,$,m,y,C]);return p.jsx(L1.Provider,{value:I,children:p.jsx(DO,{as:s,ownerState:S,className:ve(h.root,i),ref:n,...v,children:o})})});function FO(e){return Oe("MuiFormControlLabel",e)}const Sl=Ee("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error","required","asterisk"]),BO=e=>{const{classes:t,disabled:n,labelPlacement:r,error:o,required:i}=e,a={root:["root",n&&"disabled",`labelPlacement${ae(r)}`,o&&"error",i&&"required"],label:["label",n&&"disabled"],asterisk:["asterisk",o&&"error"]};return Ae(a,FO,t)},zO=J("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Sl.label}`]:t.label},t.root,t[`labelPlacement${ae(n.labelPlacement)}`]]}})($e(({theme:e})=>({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16,[`&.${Sl.disabled}`]:{cursor:"default"},[`& .${Sl.label}`]:{[`&.${Sl.disabled}`]:{color:(e.vars||e).palette.text.disabled}},variants:[{props:{labelPlacement:"start"},style:{flexDirection:"row-reverse",marginRight:-11}},{props:{labelPlacement:"top"},style:{flexDirection:"column-reverse"}},{props:{labelPlacement:"bottom"},style:{flexDirection:"column"}},{props:({labelPlacement:t})=>t==="start"||t==="top"||t==="bottom",style:{marginLeft:16}}]}))),HO=J("span",{name:"MuiFormControlLabel",slot:"Asterisk",overridesResolver:(e,t)=>t.asterisk})($e(({theme:e})=>({[`&.${Sl.error}`]:{color:(e.vars||e).palette.error.main}}))),D_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormControlLabel"}),{checked:o,className:i,componentsProps:a={},control:s,disabled:l,disableTypography:c,inputRef:u,label:d,labelPlacement:f="end",name:g,onChange:m,required:y,slots:C={},slotProps:v={},value:S,...h}=r,w=No(),_=l??s.props.disabled??(w==null?void 0:w.disabled),T=y??s.props.required,k={disabled:_,required:T};["checked","name","onChange","value","inputRef"].forEach(M=>{typeof s.props[M]>"u"&&typeof r[M]<"u"&&(k[M]=r[M])});const R=ga({props:r,muiFormControl:w,states:["error"]}),P={...r,disabled:_,labelPlacement:f,required:T,error:R.error},x=BO(P),$={slots:C,slotProps:{...a,...v}},[I,O]=an("typography",{elementType:vt,externalForwardedProps:$,ownerState:P});let D=d;return D!=null&&D.type!==vt&&!c&&(D=p.jsx(I,{component:"span",...O,className:ve(x.label,O==null?void 0:O.className),children:D})),p.jsxs(zO,{className:ve(x.root,i),ownerState:P,ref:n,...h,children:[b.cloneElement(s,k),T?p.jsxs("div",{children:[D,p.jsxs(HO,{ownerState:P,"aria-hidden":!0,className:x.asterisk,children:[" ","*"]})]}):D]})});function VO(e){return Oe("MuiFormHelperText",e)}const Ub=Ee("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]);var Gb;const WO=e=>{const{classes:t,contained:n,size:r,disabled:o,error:i,filled:a,focused:s,required:l}=e,c={root:["root",o&&"disabled",i&&"error",r&&`size${ae(r)}`,n&&"contained",s&&"focused",a&&"filled",l&&"required"]};return Ae(c,VO,t)},UO=J("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.size&&t[`size${ae(n.size)}`],n.contained&&t.contained,n.filled&&t.filled]}})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.caption,textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${Ub.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Ub.error}`]:{color:(e.vars||e).palette.error.main},variants:[{props:{size:"small"},style:{marginTop:4}},{props:({ownerState:t})=>t.contained,style:{marginLeft:14,marginRight:14}}]}))),GO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormHelperText"}),{children:o,className:i,component:a="p",disabled:s,error:l,filled:c,focused:u,margin:d,required:f,variant:g,...m}=r,y=No(),C=ga({props:r,muiFormControl:y,states:["variant","size","disabled","error","filled","focused","required"]}),v={...r,component:a,contained:C.variant==="filled"||C.variant==="outlined",variant:C.variant,size:C.size,disabled:C.disabled,error:C.error,filled:C.filled,focused:C.focused,required:C.required};delete v.ownerState;const S=WO(v);return p.jsx(UO,{as:a,className:ve(S.root,i),ref:n,...m,ownerState:v,children:o===" "?Gb||(Gb=p.jsx("span",{className:"notranslate",children:"​"})):o})});function qO(e){return Oe("MuiFormLabel",e)}const Dl=Ee("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),KO=e=>{const{classes:t,color:n,focused:r,disabled:o,error:i,filled:a,required:s}=e,l={root:["root",`color${ae(n)}`,o&&"disabled",i&&"error",a&&"filled",r&&"focused",s&&"required"],asterisk:["asterisk",i&&"error"]};return Ae(l,qO,t)},ZO=J("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:({ownerState:e},t)=>({...t.root,...e.color==="secondary"&&t.colorSecondary,...e.filled&&t.filled})})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.body1,lineHeight:"1.4375em",padding:0,position:"relative",variants:[...Object.entries(e.palette).filter(Bt()).map(([t])=>({props:{color:t},style:{[`&.${Dl.focused}`]:{color:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${Dl.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Dl.error}`]:{color:(e.vars||e).palette.error.main}}}]}))),QO=J("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:(e,t)=>t.asterisk})($e(({theme:e})=>({[`&.${Dl.error}`]:{color:(e.vars||e).palette.error.main}}))),YO=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiFormLabel"}),{children:o,className:i,color:a,component:s="label",disabled:l,error:c,filled:u,focused:d,required:f,...g}=r,m=No(),y=ga({props:r,muiFormControl:m,states:["color","required","focused","disabled","error","filled"]}),C={...r,color:y.color||"primary",component:s,disabled:y.disabled,error:y.error,filled:y.filled,focused:y.focused,required:y.required},v=KO(C);return p.jsxs(ZO,{as:s,ownerState:C,className:ve(v.root,i),ref:n,...g,children:[o,y.required&&p.jsxs(QO,{ownerState:C,"aria-hidden":!0,className:v.asterisk,children:[" ","*"]})]})});function $m(e){return`scale(${e}, ${e**2})`}const XO={entering:{opacity:1,transform:$m(1)},entered:{opacity:1,transform:"none"}},wg=typeof navigator<"u"&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),hc=b.forwardRef(function(t,n){const{addEndListener:r,appear:o=!0,children:i,easing:a,in:s,onEnter:l,onEntered:c,onEntering:u,onExit:d,onExited:f,onExiting:g,style:m,timeout:y="auto",TransitionComponent:C=Ur,...v}=t,S=Fi(),h=b.useRef(),w=Ht(),_=b.useRef(null),T=Rt(_,pa(i),n),k=M=>N=>{if(M){const A=_.current;N===void 0?M(A):M(A,N)}},R=k(u),P=k((M,N)=>{w_(M);const{duration:A,delay:E,easing:L}=ms({style:m,timeout:y,easing:a},{mode:"enter"});let B;y==="auto"?(B=w.transitions.getAutoHeightDuration(M.clientHeight),h.current=B):B=A,M.style.transition=[w.transitions.create("opacity",{duration:B,delay:E}),w.transitions.create("transform",{duration:wg?B:B*.666,delay:E,easing:L})].join(","),l&&l(M,N)}),x=k(c),$=k(g),I=k(M=>{const{duration:N,delay:A,easing:E}=ms({style:m,timeout:y,easing:a},{mode:"exit"});let L;y==="auto"?(L=w.transitions.getAutoHeightDuration(M.clientHeight),h.current=L):L=N,M.style.transition=[w.transitions.create("opacity",{duration:L,delay:A}),w.transitions.create("transform",{duration:wg?L:L*.666,delay:wg?A:A||L*.333,easing:E})].join(","),M.style.opacity=0,M.style.transform=$m(.75),d&&d(M)}),O=k(f),D=M=>{y==="auto"&&S.start(h.current||0,M),r&&r(_.current,M)};return p.jsx(C,{appear:o,in:s,nodeRef:_,onEnter:P,onEntered:x,onEntering:R,onExit:I,onExited:O,onExiting:$,addEndListener:D,timeout:y==="auto"?null:y,...v,children:(M,N)=>b.cloneElement(i,{style:{opacity:0,transform:$m(.75),visibility:M==="exited"&&!s?"hidden":void 0,...XO[M],...m,...i.props.style},ref:T,...N})})});hc&&(hc.muiSupportAuto=!0);const JO=e=>{const{classes:t,disableUnderline:n}=e,o=Ae({root:["root",!n&&"underline"],input:["input"]},mI,t);return{...t,...o}},eL=J(xp,{shouldForwardProp:e=>_n(e)||e==="classes",name:"MuiInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...yp(e,t),!n.disableUnderline&&t.underline]}})($e(({theme:e})=>{let n=e.palette.mode==="light"?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return e.vars&&(n=`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`),{position:"relative",variants:[{props:({ownerState:r})=>r.formControl,style:{"label + &":{marginTop:16}}},{props:({ownerState:r})=>!r.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Zo.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Zo.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${n}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Zo.disabled}, .${Zo.error}):before`]:{borderBottom:`2px solid ${(e.vars||e).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${n}`}},[`&.${Zo.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(Bt()).map(([r])=>({props:{color:r,disableUnderline:!1},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[r].main}`}}}))]}})),tL=J(Sp,{name:"MuiInput",slot:"Input",overridesResolver:bp})({}),Yd=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiInput"}),{disableUnderline:o=!1,components:i={},componentsProps:a,fullWidth:s=!1,inputComponent:l="input",multiline:c=!1,slotProps:u,slots:d={},type:f="text",...g}=r,m=JO(r),C={root:{ownerState:{disableUnderline:o}}},v=u??a?so(u??a,C):C,S=d.root??i.Root??eL,h=d.input??i.Input??tL;return p.jsx(wp,{slots:{root:S,input:h},slotProps:v,fullWidth:s,inputComponent:l,multiline:c,ref:n,type:f,...g,classes:m})});Yd&&(Yd.muiName="Input");function nL(e){return Oe("MuiInputLabel",e)}Ee("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);const rL=e=>{const{classes:t,formControl:n,size:r,shrink:o,disableAnimation:i,variant:a,required:s}=e,l={root:["root",n&&"formControl",!i&&"animated",o&&"shrink",r&&r!=="normal"&&`size${ae(r)}`,a],asterisk:[s&&"asterisk"]},c=Ae(l,nL,t);return{...t,...c}},oL=J(YO,{shouldForwardProp:e=>_n(e)||e==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Dl.asterisk}`]:t.asterisk},t.root,n.formControl&&t.formControl,n.size==="small"&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,n.focused&&t.focused,t[n.variant]]}})($e(({theme:e})=>({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",variants:[{props:({ownerState:t})=>t.formControl,style:{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"}},{props:{size:"small"},style:{transform:"translate(0, 17px) scale(1)"}},{props:({ownerState:t})=>t.shrink,style:{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"}},{props:({ownerState:t})=>!t.disableAnimation,style:{transition:e.transitions.create(["color","transform","max-width"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})}},{props:{variant:"filled"},style:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"filled",size:"small"},style:{transform:"translate(12px, 13px) scale(1)"}},{props:({variant:t,ownerState:n})=>t==="filled"&&n.shrink,style:{userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"}},{props:({variant:t,ownerState:n,size:r})=>t==="filled"&&n.shrink&&r==="small",style:{transform:"translate(12px, 4px) scale(0.75)"}},{props:{variant:"outlined"},style:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"outlined",size:"small"},style:{transform:"translate(14px, 9px) scale(1)"}},{props:({variant:t,ownerState:n})=>t==="outlined"&&n.shrink,style:{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}}]}))),iL=b.forwardRef(function(t,n){const r=De({name:"MuiInputLabel",props:t}),{disableAnimation:o=!1,margin:i,shrink:a,variant:s,className:l,...c}=r,u=No();let d=a;typeof d>"u"&&u&&(d=u.filled||u.focused||u.adornedStart);const f=ga({props:r,muiFormControl:u,states:["size","variant","required","focused"]}),g={...r,disableAnimation:o,formControl:u,shrink:d,size:f.size,variant:f.variant,required:f.required,focused:f.focused},m=rL(g);return p.jsx(oL,{"data-shrink":d,ref:n,className:ve(m.root,l),...c,ownerState:g,classes:m})}),Em=b.createContext({});function aL(e){return Oe("MuiList",e)}Ee("MuiList",["root","padding","dense","subheader"]);const sL=e=>{const{classes:t,disablePadding:n,dense:r,subheader:o}=e;return Ae({root:["root",!n&&"padding",r&&"dense",o&&"subheader"]},aL,t)},lL=J("ul",{name:"MuiList",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})({listStyle:"none",margin:0,padding:0,position:"relative",variants:[{props:({ownerState:e})=>!e.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:e})=>e.subheader,style:{paddingTop:0}}]}),cL=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiList"}),{children:o,className:i,component:a="ul",dense:s=!1,disablePadding:l=!1,subheader:c,...u}=r,d=b.useMemo(()=>({dense:s}),[s]),f={...r,component:a,dense:s,disablePadding:l},g=sL(f);return p.jsx(Em.Provider,{value:d,children:p.jsxs(lL,{as:a,className:ve(g.root,i),ref:n,ownerState:f,...u,children:[c,o]})})}),qb=Ee("MuiListItemIcon",["root","alignItemsFlexStart"]),Kb=Ee("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]);function Cg(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function Zb(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function j_(e,t){if(t===void 0)return!0;let n=e.innerText;return n===void 0&&(n=e.textContent),n=n.trim().toLowerCase(),n.length===0?!1:t.repeating?n[0]===t.keys[0]:n.startsWith(t.keys.join(""))}function rl(e,t,n,r,o,i){let a=!1,s=o(e,t,t?n:!1);for(;s;){if(s===e.firstChild){if(a)return!1;a=!0}const l=r?!1:s.disabled||s.getAttribute("aria-disabled")==="true";if(!s.hasAttribute("tabindex")||!j_(s,i)||l)s=o(e,s,n);else return s.focus(),!0}return!1}const uL=b.forwardRef(function(t,n){const{actions:r,autoFocus:o=!1,autoFocusItem:i=!1,children:a,className:s,disabledItemsFocusable:l=!1,disableListWrap:c=!1,onKeyDown:u,variant:d="selectedMenu",...f}=t,g=b.useRef(null),m=b.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});Wr(()=>{o&&g.current.focus()},[o]),b.useImperativeHandle(r,()=>({adjustStyleForScrollbar:(h,{direction:w})=>{const _=!g.current.style.width;if(h.clientHeight{const w=g.current,_=h.key;if(h.ctrlKey||h.metaKey||h.altKey){u&&u(h);return}const k=ln(w).activeElement;if(_==="ArrowDown")h.preventDefault(),rl(w,k,c,l,Cg);else if(_==="ArrowUp")h.preventDefault(),rl(w,k,c,l,Zb);else if(_==="Home")h.preventDefault(),rl(w,null,c,l,Cg);else if(_==="End")h.preventDefault(),rl(w,null,c,l,Zb);else if(_.length===1){const R=m.current,P=_.toLowerCase(),x=performance.now();R.keys.length>0&&(x-R.lastTime>500?(R.keys=[],R.repeating=!0,R.previousKeyMatched=!0):R.repeating&&P!==R.keys[0]&&(R.repeating=!1)),R.lastTime=x,R.keys.push(P);const $=k&&!R.repeating&&j_(k,R);R.previousKeyMatched&&($||rl(w,k,!1,l,Cg,R))?h.preventDefault():R.previousKeyMatched=!1}u&&u(h)},C=Rt(g,n);let v=-1;b.Children.forEach(a,(h,w)=>{if(!b.isValidElement(h)){v===w&&(v+=1,v>=a.length&&(v=-1));return}h.props.disabled||(d==="selectedMenu"&&h.props.selected||v===-1)&&(v=w),v===w&&(h.props.disabled||h.props.muiSkipListHighlight||h.type.muiSkipListHighlight)&&(v+=1,v>=a.length&&(v=-1))});const S=b.Children.map(a,(h,w)=>{if(w===v){const _={};return i&&(_.autoFocus=!0),h.props.tabIndex===void 0&&d==="selectedMenu"&&(_.tabIndex=0),b.cloneElement(h,_)}return h});return p.jsx(cL,{role:"menu",ref:C,className:s,onKeyDown:y,tabIndex:o?0:-1,...f,children:S})});function dL(e){return Oe("MuiPopover",e)}Ee("MuiPopover",["root","paper"]);function Qb(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.height/2:t==="bottom"&&(n=e.height),n}function Yb(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.width/2:t==="right"&&(n=e.width),n}function Xb(e){return[e.horizontal,e.vertical].map(t=>typeof t=="number"?`${t}px`:t).join(" ")}function _g(e){return typeof e=="function"?e():e}const fL=e=>{const{classes:t}=e;return Ae({root:["root"],paper:["paper"]},dL,t)},pL=J(MO,{name:"MuiPopover",slot:"Root",overridesResolver:(e,t)=>t.root})({}),F_=J(As,{name:"MuiPopover",slot:"Paper",overridesResolver:(e,t)=>t.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),B_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiPopover"}),{action:o,anchorEl:i,anchorOrigin:a={vertical:"top",horizontal:"left"},anchorPosition:s,anchorReference:l="anchorEl",children:c,className:u,container:d,elevation:f=8,marginThreshold:g=16,open:m,PaperProps:y={},slots:C={},slotProps:v={},transformOrigin:S={vertical:"top",horizontal:"left"},TransitionComponent:h=hc,transitionDuration:w="auto",TransitionProps:{onEntering:_,...T}={},disableScrollLock:k=!1,...R}=r,P=(v==null?void 0:v.paper)??y,x=b.useRef(),$={...r,anchorOrigin:a,anchorReference:l,elevation:f,marginThreshold:g,externalPaperSlotProps:P,transformOrigin:S,TransitionComponent:h,transitionDuration:w,TransitionProps:T},I=fL($),O=b.useCallback(()=>{if(l==="anchorPosition")return s;const K=_g(i),q=(K&&K.nodeType===1?K:ln(x.current).body).getBoundingClientRect();return{top:q.top+Qb(q,a.vertical),left:q.left+Yb(q,a.horizontal)}},[i,a.horizontal,a.vertical,s,l]),D=b.useCallback(K=>({vertical:Qb(K,S.vertical),horizontal:Yb(K,S.horizontal)}),[S.horizontal,S.vertical]),M=b.useCallback(K=>{const se={width:K.offsetWidth,height:K.offsetHeight},q=D(se);if(l==="none")return{top:null,left:null,transformOrigin:Xb(q)};const ce=O();let ue=ce.top-q.vertical,ie=ce.left-q.horizontal;const te=ue+se.height,de=ie+se.width,Q=Vr(_g(i)),be=Q.innerHeight-g,Te=Q.innerWidth-g;if(g!==null&&uebe){const we=te-be;ue-=we,q.vertical+=we}if(g!==null&&ieTe){const we=de-Te;ie-=we,q.horizontal+=we}return{top:`${Math.round(ue)}px`,left:`${Math.round(ie)}px`,transformOrigin:Xb(q)}},[i,l,O,D,g]),[N,A]=b.useState(m),E=b.useCallback(()=>{const K=x.current;if(!K)return;const se=M(K);se.top!==null&&K.style.setProperty("top",se.top),se.left!==null&&(K.style.left=se.left),K.style.transformOrigin=se.transformOrigin,A(!0)},[M]);b.useEffect(()=>(k&&window.addEventListener("scroll",E),()=>window.removeEventListener("scroll",E)),[i,k,E]);const L=(K,se)=>{_&&_(K,se),E()},B=()=>{A(!1)};b.useEffect(()=>{m&&E()}),b.useImperativeHandle(o,()=>m?{updatePosition:()=>{E()}}:null,[m,E]),b.useEffect(()=>{if(!m)return;const K=hp(()=>{E()}),se=Vr(i);return se.addEventListener("resize",K),()=>{K.clear(),se.removeEventListener("resize",K)}},[i,m,E]);let H=w;w==="auto"&&!h.muiSupportAuto&&(H=void 0);const z=d||(i?ln(_g(i)).body:void 0),j={slots:C,slotProps:{...v,paper:P}},[F,W]=an("paper",{elementType:F_,externalForwardedProps:j,additionalProps:{elevation:f,className:ve(I.paper,P==null?void 0:P.className),style:N?P.style:{...P.style,opacity:0}},ownerState:$}),[V,{slotProps:ee,...re}]=an("root",{elementType:pL,externalForwardedProps:j,additionalProps:{slotProps:{backdrop:{invisible:!0}},container:z,open:m},ownerState:$,className:ve(I.root,u)}),U=Rt(x,W.ref);return p.jsx(V,{...re,...!Kd(V)&&{slotProps:ee,disableScrollLock:k},...R,ref:n,children:p.jsx(h,{appear:!0,in:m,onEntering:L,onExited:B,timeout:H,...T,children:p.jsx(F,{...W,ref:U,children:c})})})});function gL(e){return Oe("MuiMenu",e)}Ee("MuiMenu",["root","paper","list"]);const hL={vertical:"top",horizontal:"right"},mL={vertical:"top",horizontal:"left"},vL=e=>{const{classes:t}=e;return Ae({root:["root"],paper:["paper"],list:["list"]},gL,t)},yL=J(B_,{shouldForwardProp:e=>_n(e)||e==="classes",name:"MuiMenu",slot:"Root",overridesResolver:(e,t)=>t.root})({}),bL=J(F_,{name:"MuiMenu",slot:"Paper",overridesResolver:(e,t)=>t.paper})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),xL=J(uL,{name:"MuiMenu",slot:"List",overridesResolver:(e,t)=>t.list})({outline:0}),A1=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiMenu"}),{autoFocus:o=!0,children:i,className:a,disableAutoFocusItem:s=!1,MenuListProps:l={},onClose:c,open:u,PaperProps:d={},PopoverClasses:f,transitionDuration:g="auto",TransitionProps:{onEntering:m,...y}={},variant:C="selectedMenu",slots:v={},slotProps:S={},...h}=r,w=Ls(),_={...r,autoFocus:o,disableAutoFocusItem:s,MenuListProps:l,onEntering:m,PaperProps:d,transitionDuration:g,TransitionProps:y,variant:C},T=vL(_),k=o&&!s&&u,R=b.useRef(null),P=(N,A)=>{R.current&&R.current.adjustStyleForScrollbar(N,{direction:w?"rtl":"ltr"}),m&&m(N,A)},x=N=>{N.key==="Tab"&&(N.preventDefault(),c&&c(N,"tabKeyDown"))};let $=-1;b.Children.map(i,(N,A)=>{b.isValidElement(N)&&(N.props.disabled||(C==="selectedMenu"&&N.props.selected||$===-1)&&($=A))});const I=v.paper??bL,O=S.paper??d,D=ia({elementType:v.root,externalSlotProps:S.root,ownerState:_,className:[T.root,a]}),M=ia({elementType:I,externalSlotProps:O,ownerState:_,className:T.paper});return p.jsx(yL,{onClose:c,anchorOrigin:{vertical:"bottom",horizontal:w?"right":"left"},transformOrigin:w?hL:mL,slots:{paper:I,root:v.root},slotProps:{root:D,paper:M},open:u,ref:n,transitionDuration:g,TransitionProps:{onEntering:P,...y},ownerState:_,...h,classes:f,children:p.jsx(xL,{onKeyDown:x,actions:R,autoFocus:o&&($===-1||s),autoFocusItem:k,variant:C,...l,className:ve(T.list,l.className),children:i})})});function SL(e){return Oe("MuiMenuItem",e)}const ol=Ee("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),wL=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},CL=e=>{const{disabled:t,dense:n,divider:r,disableGutters:o,selected:i,classes:a}=e,l=Ae({root:["root",n&&"dense",t&&"disabled",!o&&"gutters",r&&"divider",i&&"selected"]},SL,a);return{...a,...l}},_L=J(Eo,{shouldForwardProp:e=>_n(e)||e==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:wL})($e(({theme:e})=>({...e.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${ol.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${ol.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`&.${ol.selected}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${ol.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${ol.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${Wb.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${Wb.inset}`]:{marginLeft:52},[`& .${Kb.root}`]:{marginTop:0,marginBottom:0},[`& .${Kb.inset}`]:{paddingLeft:36},[`& .${qb.root}`]:{minWidth:36},variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:t})=>!t.dense,style:{[e.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:t})=>t.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...e.typography.body2,[`& .${qb.root} svg`]:{fontSize:"1.25rem"}}}]}))),Lc=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiMenuItem"}),{autoFocus:o=!1,component:i="li",dense:a=!1,divider:s=!1,disableGutters:l=!1,focusVisibleClassName:c,role:u="menuitem",tabIndex:d,className:f,...g}=r,m=b.useContext(Em),y=b.useMemo(()=>({dense:a||m.dense||!1,disableGutters:l}),[m.dense,a,l]),C=b.useRef(null);Wr(()=>{o&&C.current&&C.current.focus()},[o]);const v={...r,dense:y.dense,divider:s,disableGutters:l},S=CL(r),h=Rt(C,n);let w;return r.disabled||(w=d!==void 0?d:-1),p.jsx(Em.Provider,{value:y,children:p.jsx(_L,{ref:h,role:u,tabIndex:w,component:i,focusVisibleClassName:ve(S.focusVisible,c),className:ve(S.root,f),...g,ownerState:v,classes:S})})});function RL(e){return Oe("MuiNativeSelect",e)}const D1=Ee("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),TL=e=>{const{classes:t,variant:n,disabled:r,multiple:o,open:i,error:a}=e,s={select:["select",n,r&&"disabled",o&&"multiple",a&&"error"],icon:["icon",`icon${ae(n)}`,i&&"iconOpen",r&&"disabled"]};return Ae(s,RL,t)},z_=J("select")(({theme:e})=>({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":{borderRadius:0},[`&.${D1.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(e.vars||e).palette.background.paper},variants:[{props:({ownerState:t})=>t.variant!=="filled"&&t.variant!=="outlined",style:{"&&&":{paddingRight:24,minWidth:16}}},{props:{variant:"filled"},style:{"&&&":{paddingRight:32}}},{props:{variant:"outlined"},style:{borderRadius:(e.vars||e).shape.borderRadius,"&:focus":{borderRadius:(e.vars||e).shape.borderRadius},"&&&":{paddingRight:32}}}]})),PL=J(z_,{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:_n,overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${D1.multiple}`]:t.multiple}]}})({}),H_=J("svg")(({theme:e})=>({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(e.vars||e).palette.action.active,[`&.${D1.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:({ownerState:t})=>t.open,style:{transform:"rotate(180deg)"}},{props:{variant:"filled"},style:{right:7}},{props:{variant:"outlined"},style:{right:7}}]})),kL=J(H_,{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${ae(n.variant)}`],n.open&&t.iconOpen]}})({}),$L=b.forwardRef(function(t,n){const{className:r,disabled:o,error:i,IconComponent:a,inputRef:s,variant:l="standard",...c}=t,u={...t,disabled:o,variant:l,error:i},d=TL(u);return p.jsxs(b.Fragment,{children:[p.jsx(PL,{ownerState:u,className:ve(d.select,r),disabled:o,ref:s||n,...c}),t.multiple?null:p.jsx(kL,{as:a,ownerState:u,className:d.icon})]})});var Jb;const EL=J("fieldset",{shouldForwardProp:_n})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),ML=J("legend",{shouldForwardProp:_n})($e(({theme:e})=>({float:"unset",width:"auto",overflow:"hidden",variants:[{props:({ownerState:t})=>!t.withLabel,style:{padding:0,lineHeight:"11px",transition:e.transitions.create("width",{duration:150,easing:e.transitions.easing.easeOut})}},{props:({ownerState:t})=>t.withLabel,style:{display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:e.transitions.create("max-width",{duration:50,easing:e.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}}},{props:({ownerState:t})=>t.withLabel&&t.notched,style:{maxWidth:"100%",transition:e.transitions.create("max-width",{duration:100,easing:e.transitions.easing.easeOut,delay:50})}}]})));function IL(e){const{children:t,classes:n,className:r,label:o,notched:i,...a}=e,s=o!=null&&o!=="",l={...e,notched:i,withLabel:s};return p.jsx(EL,{"aria-hidden":!0,className:r,ownerState:l,...a,children:p.jsx(ML,{ownerState:l,children:s?p.jsx("span",{children:o}):Jb||(Jb=p.jsx("span",{className:"notranslate",children:"​"}))})})}const OL=e=>{const{classes:t}=e,r=Ae({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},vI,t);return{...t,...r}},LL=J(xp,{shouldForwardProp:e=>_n(e)||e==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:yp})($e(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{position:"relative",borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${ur.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${ur.notchedOutline}`]:{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:t}},[`&.${ur.focused} .${ur.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(e.palette).filter(Bt()).map(([n])=>({props:{color:n},style:{[`&.${ur.focused} .${ur.notchedOutline}`]:{borderColor:(e.vars||e).palette[n].main}}})),{props:{},style:{[`&.${ur.error} .${ur.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${ur.disabled} .${ur.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}}},{props:({ownerState:n})=>n.startAdornment,style:{paddingLeft:14}},{props:({ownerState:n})=>n.endAdornment,style:{paddingRight:14}},{props:({ownerState:n})=>n.multiline,style:{padding:"16.5px 14px"}},{props:({ownerState:n,size:r})=>n.multiline&&r==="small",style:{padding:"8.5px 14px"}}]}})),NL=J(IL,{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:(e,t)=>t.notchedOutline})($e(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:t}})),AL=J(Sp,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:bp})($e(({theme:e})=>({padding:"16.5px 14px",...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},...e.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{padding:"8.5px 14px"}},{props:({ownerState:t})=>t.multiline,style:{padding:0}},{props:({ownerState:t})=>t.startAdornment,style:{paddingLeft:0}},{props:({ownerState:t})=>t.endAdornment,style:{paddingRight:0}}]}))),Xd=b.forwardRef(function(t,n){var r;const o=De({props:t,name:"MuiOutlinedInput"}),{components:i={},fullWidth:a=!1,inputComponent:s="input",label:l,multiline:c=!1,notched:u,slots:d={},type:f="text",...g}=o,m=OL(o),y=No(),C=ga({props:o,muiFormControl:y,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),v={...o,color:C.color||"primary",disabled:C.disabled,error:C.error,focused:C.focused,formControl:y,fullWidth:a,hiddenLabel:C.hiddenLabel,multiline:c,size:C.size,type:f},S=d.root??i.Root??LL,h=d.input??i.Input??AL;return p.jsx(wp,{slots:{root:S,input:h},renderSuffix:w=>p.jsx(NL,{ownerState:v,className:m.notchedOutline,label:l!=null&&l!==""&&C.required?r||(r=p.jsxs(b.Fragment,{children:[l," ","*"]})):l,notched:typeof u<"u"?u:!!(w.startAdornment||w.filled||w.focused)}),fullWidth:a,inputComponent:s,multiline:c,ref:n,type:f,...g,classes:{...m,notchedOutline:null}})});Xd&&(Xd.muiName="Input");const DL=un(p.jsx("path",{d:"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPage"),jL=un(p.jsx("path",{d:"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPage"),FL=un(p.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"RadioButtonUnchecked"),BL=un(p.jsx("path",{d:"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"}),"RadioButtonChecked"),zL=J("span",{shouldForwardProp:_n})({position:"relative",display:"flex"}),HL=J(FL)({transform:"scale(1)"}),VL=J(BL)($e(({theme:e})=>({left:0,position:"absolute",transform:"scale(0)",transition:e.transitions.create("transform",{easing:e.transitions.easing.easeIn,duration:e.transitions.duration.shortest}),variants:[{props:{checked:!0},style:{transform:"scale(1)",transition:e.transitions.create("transform",{easing:e.transitions.easing.easeOut,duration:e.transitions.duration.shortest})}}]})));function V_(e){const{checked:t=!1,classes:n={},fontSize:r}=e,o={...e,checked:t};return p.jsxs(zL,{className:n.root,ownerState:o,children:[p.jsx(HL,{fontSize:r,className:n.background,ownerState:o}),p.jsx(VL,{fontSize:r,className:n.dot,ownerState:o})]})}const WL=b.createContext(void 0);function UL(){return b.useContext(WL)}function GL(e){return Oe("MuiRadio",e)}const ex=Ee("MuiRadio",["root","checked","disabled","colorPrimary","colorSecondary","sizeSmall"]),qL=e=>{const{classes:t,color:n,size:r}=e,o={root:["root",`color${ae(n)}`,r!=="medium"&&`size${ae(r)}`]};return{...t,...Ae(o,GL,t)}},KL=J(N1,{shouldForwardProp:e=>_n(e)||e==="classes",name:"MuiRadio",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.size!=="medium"&&t[`size${ae(n.size)}`],t[`color${ae(n.color)}`]]}})($e(({theme:e})=>({color:(e.vars||e).palette.text.secondary,[`&.${ex.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{color:"default",disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter(Bt()).map(([t])=>({props:{color:t,disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[t].main,e.palette.action.hoverOpacity)}}})),...Object.entries(e.palette).filter(Bt()).map(([t])=>({props:{color:t,disabled:!1},style:{[`&.${ex.checked}`]:{color:(e.vars||e).palette[t].main}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]})));function ZL(e,t){return typeof t=="object"&&t!==null?e===t:String(e)===String(t)}const tx=p.jsx(V_,{checked:!0}),nx=p.jsx(V_,{}),QL=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiRadio"}),{checked:o,checkedIcon:i=tx,color:a="primary",icon:s=nx,name:l,onChange:c,size:u="medium",className:d,disabled:f,disableRipple:g=!1,...m}=r,y=No();let C=f;y&&typeof C>"u"&&(C=y.disabled),C??(C=!1);const v={...r,disabled:C,disableRipple:g,color:a,size:u},S=qL(v),h=UL();let w=o;const _=Sm(c,h&&h.onChange);let T=l;return h&&(typeof w>"u"&&(w=ZL(h.value,r.value)),typeof T>"u"&&(T=h.name)),p.jsx(KL,{type:"radio",icon:b.cloneElement(s,{fontSize:nx.props.fontSize??u}),checkedIcon:b.cloneElement(i,{fontSize:tx.props.fontSize??u}),disabled:C,ownerState:v,classes:S,name:T,checked:w,onChange:_,ref:n,className:ve(S.root,d),...m})});function YL(e){return Oe("MuiSelect",e)}const il=Ee("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]);var rx;const XL=J(z_,{name:"MuiSelect",slot:"Select",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`&.${il.select}`]:t.select},{[`&.${il.select}`]:t[n.variant]},{[`&.${il.error}`]:t.error},{[`&.${il.multiple}`]:t.multiple}]}})({[`&.${il.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),JL=J(H_,{name:"MuiSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${ae(n.variant)}`],n.open&&t.iconOpen]}})({}),e7=J("input",{shouldForwardProp:e=>g_(e)&&e!=="classes",name:"MuiSelect",slot:"NativeInput",overridesResolver:(e,t)=>t.nativeInput})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function ox(e,t){return typeof t=="object"&&t!==null?e===t:String(e)===String(t)}function t7(e){return e==null||typeof e=="string"&&!e.trim()}const n7=e=>{const{classes:t,variant:n,disabled:r,multiple:o,open:i,error:a}=e,s={select:["select",n,r&&"disabled",o&&"multiple",a&&"error"],icon:["icon",`icon${ae(n)}`,i&&"iconOpen",r&&"disabled"],nativeInput:["nativeInput"]};return Ae(s,YL,t)},r7=b.forwardRef(function(t,n){var Le;const{"aria-describedby":r,"aria-label":o,autoFocus:i,autoWidth:a,children:s,className:l,defaultOpen:c,defaultValue:u,disabled:d,displayEmpty:f,error:g=!1,IconComponent:m,inputRef:y,labelId:C,MenuProps:v={},multiple:S,name:h,onBlur:w,onChange:_,onClose:T,onFocus:k,onOpen:R,open:P,readOnly:x,renderValue:$,SelectDisplayProps:I={},tabIndex:O,type:D,value:M,variant:N="standard",...A}=t,[E,L]=Ui({controlled:M,default:u,name:"Select"}),[B,H]=Ui({controlled:P,default:c,name:"Select"}),z=b.useRef(null),j=b.useRef(null),[F,W]=b.useState(null),{current:V}=b.useRef(P!=null),[ee,re]=b.useState(),U=Rt(n,y),K=b.useCallback(fe=>{j.current=fe,fe&&W(fe)},[]),se=F==null?void 0:F.parentNode;b.useImperativeHandle(U,()=>({focus:()=>{j.current.focus()},node:z.current,value:E}),[E]),b.useEffect(()=>{c&&B&&F&&!V&&(re(a?null:se.clientWidth),j.current.focus())},[F,a]),b.useEffect(()=>{i&&j.current.focus()},[i]),b.useEffect(()=>{if(!C)return;const fe=ln(j.current).getElementById(C);if(fe){const oe=()=>{getSelection().isCollapsed&&j.current.focus()};return fe.addEventListener("click",oe),()=>{fe.removeEventListener("click",oe)}}},[C]);const q=(fe,oe)=>{fe?R&&R(oe):T&&T(oe),V||(re(a?null:se.clientWidth),H(fe))},ce=fe=>{fe.button===0&&(fe.preventDefault(),j.current.focus(),q(!0,fe))},ue=fe=>{q(!1,fe)},ie=b.Children.toArray(s),te=fe=>{const oe=ie.find(me=>me.props.value===fe.target.value);oe!==void 0&&(L(oe.props.value),_&&_(fe,oe))},de=fe=>oe=>{let me;if(oe.currentTarget.hasAttribute("tabindex")){if(S){me=Array.isArray(E)?E.slice():[];const je=E.indexOf(fe.props.value);je===-1?me.push(fe.props.value):me.splice(je,1)}else me=fe.props.value;if(fe.props.onClick&&fe.props.onClick(oe),E!==me&&(L(me),_)){const je=oe.nativeEvent||oe,Ve=new je.constructor(je.type,je);Object.defineProperty(Ve,"target",{writable:!0,value:{value:me,name:h}}),_(Ve,fe)}S||q(!1,oe)}},Q=fe=>{x||[" ","ArrowUp","ArrowDown","Enter"].includes(fe.key)&&(fe.preventDefault(),q(!0,fe))},be=F!==null&&B,Te=fe=>{!be&&w&&(Object.defineProperty(fe,"target",{writable:!0,value:{value:E,name:h}}),w(fe))};delete A["aria-invalid"];let we,ge;const le=[];let Se=!1;(Zd({value:E})||f)&&($?we=$(E):Se=!0);const ye=ie.map(fe=>{if(!b.isValidElement(fe))return null;let oe;if(S){if(!Array.isArray(E))throw new Error(ta(2));oe=E.some(me=>ox(me,fe.props.value)),oe&&Se&&le.push(fe.props.children)}else oe=ox(E,fe.props.value),oe&&Se&&(ge=fe.props.children);return b.cloneElement(fe,{"aria-selected":oe?"true":"false",onClick:de(fe),onKeyUp:me=>{me.key===" "&&me.preventDefault(),fe.props.onKeyUp&&fe.props.onKeyUp(me)},role:"option",selected:oe,value:void 0,"data-value":fe.props.value})});Se&&(S?le.length===0?we=null:we=le.reduce((fe,oe,me)=>(fe.push(oe),me{const{classes:t}=e;return t},j1={name:"MuiSelect",overridesResolver:(e,t)=>t.root,shouldForwardProp:e=>_n(e)&&e!=="variant",slot:"Root"},i7=J(Yd,j1)(""),a7=J(Xd,j1)(""),s7=J(Qd,j1)(""),Cp=b.forwardRef(function(t,n){const r=De({name:"MuiSelect",props:t}),{autoWidth:o=!1,children:i,classes:a={},className:s,defaultOpen:l=!1,displayEmpty:c=!1,IconComponent:u=N_,id:d,input:f,inputProps:g,label:m,labelId:y,MenuProps:C,multiple:v=!1,native:S=!1,onClose:h,onOpen:w,open:_,renderValue:T,SelectDisplayProps:k,variant:R="outlined",...P}=r,x=S?$L:r7,$=No(),I=ga({props:r,muiFormControl:$,states:["variant","error"]}),O=I.variant||R,D={...r,variant:O,classes:a},M=o7(D),{root:N,...A}=M,E=f||{standard:p.jsx(i7,{ownerState:D}),outlined:p.jsx(a7,{label:m,ownerState:D}),filled:p.jsx(s7,{ownerState:D})}[O],L=Rt(n,pa(E));return p.jsx(b.Fragment,{children:b.cloneElement(E,{inputComponent:x,inputProps:{children:i,error:I.error,IconComponent:u,variant:O,type:void 0,multiple:v,...S?{id:d}:{autoWidth:o,defaultOpen:l,displayEmpty:c,labelId:y,MenuProps:C,onClose:h,onOpen:w,open:_,renderValue:T,SelectDisplayProps:{id:d,...k}},...g,classes:g?so(A,g.classes):A,...f?f.props.inputProps:{}},...(v&&S||c)&&O==="outlined"?{notched:!0}:{},ref:L,className:ve(E.props.className,s,M.root),...!f&&{variant:O},...P})})});Cp.muiName="Select";function l7(e){return Oe("MuiTooltip",e)}const Mt=Ee("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]);function c7(e){return Math.round(e*1e5)/1e5}const u7=e=>{const{classes:t,disableInteractive:n,arrow:r,touch:o,placement:i}=e,a={popper:["popper",!n&&"popperInteractive",r&&"popperArrow"],tooltip:["tooltip",r&&"tooltipArrow",o&&"touch",`tooltipPlacement${ae(i.split("-")[0])}`],arrow:["arrow"]};return Ae(a,l7,t)},d7=J(Oc,{name:"MuiTooltip",slot:"Popper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.popper,!n.disableInteractive&&t.popperInteractive,n.arrow&&t.popperArrow,!n.open&&t.popperClose]}})($e(({theme:e})=>({zIndex:(e.vars||e).zIndex.tooltip,pointerEvents:"none",variants:[{props:({ownerState:t})=>!t.disableInteractive,style:{pointerEvents:"auto"}},{props:({open:t})=>!t,style:{pointerEvents:"none"}},{props:({ownerState:t})=>t.arrow,style:{[`&[data-popper-placement*="bottom"] .${Mt.arrow}`]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},[`&[data-popper-placement*="top"] .${Mt.arrow}`]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},[`&[data-popper-placement*="right"] .${Mt.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}},[`&[data-popper-placement*="left"] .${Mt.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}}}},{props:({ownerState:t})=>t.arrow&&!t.isRtl,style:{[`&[data-popper-placement*="right"] .${Mt.arrow}`]:{left:0,marginLeft:"-0.71em"}}},{props:({ownerState:t})=>t.arrow&&!!t.isRtl,style:{[`&[data-popper-placement*="right"] .${Mt.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:t})=>t.arrow&&!t.isRtl,style:{[`&[data-popper-placement*="left"] .${Mt.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:t})=>t.arrow&&!!t.isRtl,style:{[`&[data-popper-placement*="left"] .${Mt.arrow}`]:{left:0,marginLeft:"-0.71em"}}}]}))),f7=J("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.tooltip,n.touch&&t.touch,n.arrow&&t.tooltipArrow,t[`tooltipPlacement${ae(n.placement.split("-")[0])}`]]}})($e(({theme:e})=>({backgroundColor:e.vars?e.vars.palette.Tooltip.bg:Be(e.palette.grey[700],.92),borderRadius:(e.vars||e).shape.borderRadius,color:(e.vars||e).palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:e.typography.fontWeightMedium,[`.${Mt.popper}[data-popper-placement*="left"] &`]:{transformOrigin:"right center"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{transformOrigin:"left center"},[`.${Mt.popper}[data-popper-placement*="top"] &`]:{transformOrigin:"center bottom",marginBottom:"14px"},[`.${Mt.popper}[data-popper-placement*="bottom"] &`]:{transformOrigin:"center top",marginTop:"14px"},variants:[{props:({ownerState:t})=>t.arrow,style:{position:"relative",margin:0}},{props:({ownerState:t})=>t.touch,style:{padding:"8px 16px",fontSize:e.typography.pxToRem(14),lineHeight:`${c7(16/14)}em`,fontWeight:e.typography.fontWeightRegular}},{props:({ownerState:t})=>!t.isRtl,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginRight:"14px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginLeft:"14px"}}},{props:({ownerState:t})=>!t.isRtl&&t.touch,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginRight:"24px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginLeft:"24px"}}},{props:({ownerState:t})=>!!t.isRtl,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginLeft:"14px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginRight:"14px"}}},{props:({ownerState:t})=>!!t.isRtl&&t.touch,style:{[`.${Mt.popper}[data-popper-placement*="left"] &`]:{marginLeft:"24px"},[`.${Mt.popper}[data-popper-placement*="right"] &`]:{marginRight:"24px"}}},{props:({ownerState:t})=>t.touch,style:{[`.${Mt.popper}[data-popper-placement*="top"] &`]:{marginBottom:"24px"}}},{props:({ownerState:t})=>t.touch,style:{[`.${Mt.popper}[data-popper-placement*="bottom"] &`]:{marginTop:"24px"}}}]}))),p7=J("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:(e,t)=>t.arrow})($e(({theme:e})=>({overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:e.vars?e.vars.palette.Tooltip.bg:Be(e.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}})));let yu=!1;const ix=new mp;let al={x:0,y:0};function bu(e,t){return(n,...r)=>{t&&t(n,...r),e(n,...r)}}const g7=b.forwardRef(function(t,n){var Un,Do,Pi;const r=De({props:t,name:"MuiTooltip"}),{arrow:o=!1,children:i,classes:a,components:s={},componentsProps:l={},describeChild:c=!1,disableFocusListener:u=!1,disableHoverListener:d=!1,disableInteractive:f=!1,disableTouchListener:g=!1,enterDelay:m=100,enterNextDelay:y=0,enterTouchDelay:C=700,followCursor:v=!1,id:S,leaveDelay:h=0,leaveTouchDelay:w=1500,onClose:_,onOpen:T,open:k,placement:R="bottom",PopperComponent:P,PopperProps:x={},slotProps:$={},slots:I={},title:O,TransitionComponent:D=hc,TransitionProps:M,...N}=r,A=b.isValidElement(i)?i:p.jsx("span",{children:i}),E=Ht(),L=Ls(),[B,H]=b.useState(),[z,j]=b.useState(null),F=b.useRef(!1),W=f||v,V=Fi(),ee=Fi(),re=Fi(),U=Fi(),[K,se]=Ui({controlled:k,default:!1,name:"Tooltip",state:"open"});let q=K;const ce=hs(S),ue=b.useRef(),ie=Sn(()=>{ue.current!==void 0&&(document.body.style.WebkitUserSelect=ue.current,ue.current=void 0),U.clear()});b.useEffect(()=>ie,[ie]);const te=Fe=>{ix.clear(),yu=!0,se(!0),T&&!q&&T(Fe)},de=Sn(Fe=>{ix.start(800+h,()=>{yu=!1}),se(!1),_&&q&&_(Fe),V.start(E.transitions.duration.shortest,()=>{F.current=!1})}),Q=Fe=>{F.current&&Fe.type!=="touchstart"||(B&&B.removeAttribute("title"),ee.clear(),re.clear(),m||yu&&y?ee.start(yu?y:m,()=>{te(Fe)}):te(Fe))},be=Fe=>{ee.clear(),re.start(h,()=>{de(Fe)})},[,Te]=b.useState(!1),we=Fe=>{Wd(Fe.target)||(Te(!1),be(Fe))},ge=Fe=>{B||H(Fe.currentTarget),Wd(Fe.target)&&(Te(!0),Q(Fe))},le=Fe=>{F.current=!0;const Rn=A.props;Rn.onTouchStart&&Rn.onTouchStart(Fe)},Se=Fe=>{le(Fe),re.clear(),V.clear(),ie(),ue.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",U.start(C,()=>{document.body.style.WebkitUserSelect=ue.current,Q(Fe)})},ye=Fe=>{A.props.onTouchEnd&&A.props.onTouchEnd(Fe),ie(),re.start(w,()=>{de(Fe)})};b.useEffect(()=>{if(!q)return;function Fe(Rn){Rn.key==="Escape"&&de(Rn)}return document.addEventListener("keydown",Fe),()=>{document.removeEventListener("keydown",Fe)}},[de,q]);const Ge=Rt(pa(A),H,n);!O&&O!==0&&(q=!1);const Pe=b.useRef(),Re=Fe=>{const Rn=A.props;Rn.onMouseMove&&Rn.onMouseMove(Fe),al={x:Fe.clientX,y:Fe.clientY},Pe.current&&Pe.current.update()},ke={},pe=typeof O=="string";c?(ke.title=!q&&pe&&!d?O:null,ke["aria-describedby"]=q?ce:null):(ke["aria-label"]=pe?O:null,ke["aria-labelledby"]=q&&!pe?ce:null);const ne={...ke,...N,...A.props,className:ve(N.className,A.props.className),onTouchStart:le,ref:Ge,...v?{onMouseMove:Re}:{}},xe={};g||(ne.onTouchStart=Se,ne.onTouchEnd=ye),d||(ne.onMouseOver=bu(Q,ne.onMouseOver),ne.onMouseLeave=bu(be,ne.onMouseLeave),W||(xe.onMouseOver=Q,xe.onMouseLeave=be)),u||(ne.onFocus=bu(ge,ne.onFocus),ne.onBlur=bu(we,ne.onBlur),W||(xe.onFocus=ge,xe.onBlur=we));const Le=b.useMemo(()=>{var Rn;let Fe=[{name:"arrow",enabled:!!z,options:{element:z,padding:4}}];return(Rn=x.popperOptions)!=null&&Rn.modifiers&&(Fe=Fe.concat(x.popperOptions.modifiers)),{...x.popperOptions,modifiers:Fe}},[z,x]),fe={...r,isRtl:L,arrow:o,disableInteractive:W,placement:R,PopperComponentProp:P,touch:F.current},oe=u7(fe),me=I.popper??s.Popper??d7,je=I.transition??s.Transition??D??hc,Ve=I.tooltip??s.Tooltip??f7,Ye=I.arrow??s.Arrow??p7,Tt=Ga(me,{...x,...$.popper??l.popper,className:ve(oe.popper,x==null?void 0:x.className,(Un=$.popper??l.popper)==null?void 0:Un.className)},fe),Zt=Ga(je,{...M,...$.transition??l.transition},fe),On=Ga(Ve,{...$.tooltip??l.tooltip,className:ve(oe.tooltip,(Do=$.tooltip??l.tooltip)==null?void 0:Do.className)},fe),sr=Ga(Ye,{...$.arrow??l.arrow,className:ve(oe.arrow,(Pi=$.arrow??l.arrow)==null?void 0:Pi.className)},fe);return p.jsxs(b.Fragment,{children:[b.cloneElement(A,ne),p.jsx(me,{as:P??Oc,placement:R,anchorEl:v?{getBoundingClientRect:()=>({top:al.y,left:al.x,right:al.x,bottom:al.y,width:0,height:0})}:B,popperRef:Pe,open:B?q:!1,id:ce,transition:!0,...xe,...Tt,popperOptions:Le,children:({TransitionProps:Fe})=>p.jsx(je,{timeout:E.transitions.duration.shorter,...Fe,...Zt,children:p.jsxs(Ve,{...On,children:[O,o?p.jsx(Ye,{...sr,ref:j}):null]})})})]})}),h7=qE({createStyledComponent:J("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,t)=>t.root}),useThemeProps:e=>De({props:e,name:"MuiStack"})});function m7(e){return Oe("MuiSwitch",e)}const Pn=Ee("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),v7=e=>{const{classes:t,edge:n,size:r,color:o,checked:i,disabled:a}=e,s={root:["root",n&&`edge${ae(n)}`,`size${ae(r)}`],switchBase:["switchBase",`color${ae(o)}`,i&&"checked",a&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},l=Ae(s,m7,t);return{...t,...l}},y7=J("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.edge&&t[`edge${ae(n.edge)}`],t[`size${ae(n.size)}`]]}})({display:"inline-flex",width:34+12*2,height:14+12*2,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"},variants:[{props:{edge:"start"},style:{marginLeft:-8}},{props:{edge:"end"},style:{marginRight:-8}},{props:{size:"small"},style:{width:40,height:24,padding:7,[`& .${Pn.thumb}`]:{width:16,height:16},[`& .${Pn.switchBase}`]:{padding:4,[`&.${Pn.checked}`]:{transform:"translateX(16px)"}}}}]}),b7=J(N1,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.switchBase,{[`& .${Pn.input}`]:t.input},n.color!=="default"&&t[`color${ae(n.color)}`]]}})($e(({theme:e})=>({position:"absolute",top:0,left:0,zIndex:1,color:e.vars?e.vars.palette.Switch.defaultColor:`${e.palette.mode==="light"?e.palette.common.white:e.palette.grey[300]}`,transition:e.transitions.create(["left","transform"],{duration:e.transitions.duration.shortest}),[`&.${Pn.checked}`]:{transform:"translateX(20px)"},[`&.${Pn.disabled}`]:{color:e.vars?e.vars.palette.Switch.defaultDisabledColor:`${e.palette.mode==="light"?e.palette.grey[100]:e.palette.grey[600]}`},[`&.${Pn.checked} + .${Pn.track}`]:{opacity:.5},[`&.${Pn.disabled} + .${Pn.track}`]:{opacity:e.vars?e.vars.opacity.switchTrackDisabled:`${e.palette.mode==="light"?.12:.2}`},[`& .${Pn.input}`]:{left:"-100%",width:"300%"}})),$e(({theme:e})=>({"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette.action.active,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[...Object.entries(e.palette).filter(Bt(["light"])).map(([t])=>({props:{color:t},style:{[`&.${Pn.checked}`]:{color:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette[t].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Be(e.palette[t].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Pn.disabled}`]:{color:e.vars?e.vars.palette.Switch[`${t}DisabledColor`]:`${e.palette.mode==="light"?oa(e.palette[t].main,.62):ra(e.palette[t].main,.55)}`}},[`&.${Pn.checked} + .${Pn.track}`]:{backgroundColor:(e.vars||e).palette[t].main}}}))]}))),x7=J("span",{name:"MuiSwitch",slot:"Track",overridesResolver:(e,t)=>t.track})($e(({theme:e})=>({height:"100%",width:"100%",borderRadius:14/2,zIndex:-1,transition:e.transitions.create(["opacity","background-color"],{duration:e.transitions.duration.shortest}),backgroundColor:e.vars?e.vars.palette.common.onBackground:`${e.palette.mode==="light"?e.palette.common.black:e.palette.common.white}`,opacity:e.vars?e.vars.opacity.switchTrack:`${e.palette.mode==="light"?.38:.3}`}))),S7=J("span",{name:"MuiSwitch",slot:"Thumb",overridesResolver:(e,t)=>t.thumb})($e(({theme:e})=>({boxShadow:(e.vars||e).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"}))),w7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiSwitch"}),{className:o,color:i="primary",edge:a=!1,size:s="medium",sx:l,...c}=r,u={...r,color:i,edge:a,size:s},d=v7(u),f=p.jsx(S7,{className:d.thumb,ownerState:u});return p.jsxs(y7,{className:ve(d.root,o),sx:l,ownerState:u,children:[p.jsx(b7,{type:"checkbox",icon:f,checkedIcon:f,ref:n,ownerState:u,...c,classes:{...d,root:d.switchBase}}),p.jsx(x7,{className:d.track,ownerState:u})]})});function C7(e){return Oe("MuiTab",e)}const lr=Ee("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper","icon"]),_7=e=>{const{classes:t,textColor:n,fullWidth:r,wrapped:o,icon:i,label:a,selected:s,disabled:l}=e,c={root:["root",i&&a&&"labelIcon",`textColor${ae(n)}`,r&&"fullWidth",o&&"wrapped",s&&"selected",l&&"disabled"],icon:["iconWrapper","icon"]};return Ae(c,C7,t)},R7=J(Eo,{name:"MuiTab",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.label&&n.icon&&t.labelIcon,t[`textColor${ae(n.textColor)}`],n.fullWidth&&t.fullWidth,n.wrapped&&t.wrapped,{[`& .${lr.iconWrapper}`]:t.iconWrapper},{[`& .${lr.icon}`]:t.icon}]}})($e(({theme:e})=>({...e.typography.button,maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center",lineHeight:1.25,variants:[{props:({ownerState:t})=>t.label&&(t.iconPosition==="top"||t.iconPosition==="bottom"),style:{flexDirection:"column"}},{props:({ownerState:t})=>t.label&&t.iconPosition!=="top"&&t.iconPosition!=="bottom",style:{flexDirection:"row"}},{props:({ownerState:t})=>t.icon&&t.label,style:{minHeight:72,paddingTop:9,paddingBottom:9}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="top",style:{[`& > .${lr.icon}`]:{marginBottom:6}}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="bottom",style:{[`& > .${lr.icon}`]:{marginTop:6}}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="start",style:{[`& > .${lr.icon}`]:{marginRight:e.spacing(1)}}},{props:({ownerState:t,iconPosition:n})=>t.icon&&t.label&&n==="end",style:{[`& > .${lr.icon}`]:{marginLeft:e.spacing(1)}}},{props:{textColor:"inherit"},style:{color:"inherit",opacity:.6,[`&.${lr.selected}`]:{opacity:1},[`&.${lr.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity}}},{props:{textColor:"primary"},style:{color:(e.vars||e).palette.text.secondary,[`&.${lr.selected}`]:{color:(e.vars||e).palette.primary.main},[`&.${lr.disabled}`]:{color:(e.vars||e).palette.text.disabled}}},{props:{textColor:"secondary"},style:{color:(e.vars||e).palette.text.secondary,[`&.${lr.selected}`]:{color:(e.vars||e).palette.secondary.main},[`&.${lr.disabled}`]:{color:(e.vars||e).palette.text.disabled}}},{props:({ownerState:t})=>t.fullWidth,style:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"}},{props:({ownerState:t})=>t.wrapped,style:{fontSize:e.typography.pxToRem(12)}}]}))),T7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTab"}),{className:o,disabled:i=!1,disableFocusRipple:a=!1,fullWidth:s,icon:l,iconPosition:c="top",indicator:u,label:d,onChange:f,onClick:g,onFocus:m,selected:y,selectionFollowsFocus:C,textColor:v="inherit",value:S,wrapped:h=!1,...w}=r,_={...r,disabled:i,disableFocusRipple:a,selected:y,icon:!!l,iconPosition:c,label:!!d,fullWidth:s,textColor:v,wrapped:h},T=_7(_),k=l&&d&&b.isValidElement(l)?b.cloneElement(l,{className:ve(T.icon,l.props.className)}):l,R=x=>{!y&&f&&f(x,S),g&&g(x)},P=x=>{C&&!y&&f&&f(x,S),m&&m(x)};return p.jsxs(R7,{focusRipple:!a,className:ve(T.root,o),ref:n,role:"tab","aria-selected":y,disabled:i,onClick:R,onFocus:P,ownerState:_,tabIndex:y?0:-1,...w,children:[c==="top"||c==="start"?p.jsxs(b.Fragment,{children:[k,d]}):p.jsxs(b.Fragment,{children:[d,k]}),u]})}),W_=b.createContext();function P7(e){return Oe("MuiTable",e)}Ee("MuiTable",["root","stickyHeader"]);const k7=e=>{const{classes:t,stickyHeader:n}=e;return Ae({root:["root",n&&"stickyHeader"]},P7,t)},$7=J("table",{name:"MuiTable",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.stickyHeader&&t.stickyHeader]}})($e(({theme:e})=>({display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":{...e.typography.body2,padding:e.spacing(2),color:(e.vars||e).palette.text.secondary,textAlign:"left",captionSide:"bottom"},variants:[{props:({ownerState:t})=>t.stickyHeader,style:{borderCollapse:"separate"}}]}))),ax="table",E7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTable"}),{className:o,component:i=ax,padding:a="normal",size:s="medium",stickyHeader:l=!1,...c}=r,u={...r,component:i,padding:a,size:s,stickyHeader:l},d=k7(u),f=b.useMemo(()=>({padding:a,size:s,stickyHeader:l}),[a,s,l]);return p.jsx(W_.Provider,{value:f,children:p.jsx($7,{as:i,role:i===ax?null:"table",ref:n,className:ve(d.root,o),ownerState:u,...c})})}),Nc=b.createContext();function M7(e){return Oe("MuiTableBody",e)}Ee("MuiTableBody",["root"]);const I7=e=>{const{classes:t}=e;return Ae({root:["root"]},M7,t)},O7=J("tbody",{name:"MuiTableBody",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"table-row-group"}),L7={variant:"body"},sx="tbody",N7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableBody"}),{className:o,component:i=sx,...a}=r,s={...r,component:i},l=I7(s);return p.jsx(Nc.Provider,{value:L7,children:p.jsx(O7,{className:ve(l.root,o),as:i,ref:n,role:i===sx?null:"rowgroup",ownerState:s,...a})})});function A7(e){return Oe("MuiTableCell",e)}const D7=Ee("MuiTableCell",["root","head","body","footer","sizeSmall","sizeMedium","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","alignJustify","stickyHeader"]),j7=e=>{const{classes:t,variant:n,align:r,padding:o,size:i,stickyHeader:a}=e,s={root:["root",n,a&&"stickyHeader",r!=="inherit"&&`align${ae(r)}`,o!=="normal"&&`padding${ae(o)}`,`size${ae(i)}`]};return Ae(s,A7,t)},F7=J("td",{name:"MuiTableCell",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`size${ae(n.size)}`],n.padding!=="normal"&&t[`padding${ae(n.padding)}`],n.align!=="inherit"&&t[`align${ae(n.align)}`],n.stickyHeader&&t.stickyHeader]}})($e(({theme:e})=>({...e.typography.body2,display:"table-cell",verticalAlign:"inherit",borderBottom:e.vars?`1px solid ${e.vars.palette.TableCell.border}`:`1px solid + ${e.palette.mode==="light"?oa(Be(e.palette.divider,1),.88):ra(Be(e.palette.divider,1),.68)}`,textAlign:"left",padding:16,variants:[{props:{variant:"head"},style:{color:(e.vars||e).palette.text.primary,lineHeight:e.typography.pxToRem(24),fontWeight:e.typography.fontWeightMedium}},{props:{variant:"body"},style:{color:(e.vars||e).palette.text.primary}},{props:{variant:"footer"},style:{color:(e.vars||e).palette.text.secondary,lineHeight:e.typography.pxToRem(21),fontSize:e.typography.pxToRem(12)}},{props:{size:"small"},style:{padding:"6px 16px",[`&.${D7.paddingCheckbox}`]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}}},{props:{padding:"checkbox"},style:{width:48,padding:"0 0 0 4px"}},{props:{padding:"none"},style:{padding:0}},{props:{align:"left"},style:{textAlign:"left"}},{props:{align:"center"},style:{textAlign:"center"}},{props:{align:"right"},style:{textAlign:"right",flexDirection:"row-reverse"}},{props:{align:"justify"},style:{textAlign:"justify"}},{props:({ownerState:t})=>t.stickyHeader,style:{position:"sticky",top:0,zIndex:2,backgroundColor:(e.vars||e).palette.background.default}}]}))),ws=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableCell"}),{align:o="inherit",className:i,component:a,padding:s,scope:l,size:c,sortDirection:u,variant:d,...f}=r,g=b.useContext(W_),m=b.useContext(Nc),y=m&&m.variant==="head";let C;a?C=a:C=y?"th":"td";let v=l;C==="td"?v=void 0:!v&&y&&(v="col");const S=d||m&&m.variant,h={...r,align:o,component:C,padding:s||(g&&g.padding?g.padding:"normal"),size:c||(g&&g.size?g.size:"medium"),sortDirection:u,stickyHeader:S==="head"&&g&&g.stickyHeader,variant:S},w=j7(h);let _=null;return u&&(_=u==="asc"?"ascending":"descending"),p.jsx(F7,{as:C,ref:n,className:ve(w.root,i),"aria-sort":_,scope:v,ownerState:h,...f})});function B7(e){return Oe("MuiTableContainer",e)}Ee("MuiTableContainer",["root"]);const z7=e=>{const{classes:t}=e;return Ae({root:["root"]},B7,t)},H7=J("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:(e,t)=>t.root})({width:"100%",overflowX:"auto"}),V7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableContainer"}),{className:o,component:i="div",...a}=r,s={...r,component:i},l=z7(s);return p.jsx(H7,{ref:n,as:i,className:ve(l.root,o),ownerState:s,...a})});function W7(e){return Oe("MuiTableFooter",e)}Ee("MuiTableFooter",["root"]);const U7=e=>{const{classes:t}=e;return Ae({root:["root"]},W7,t)},G7=J("tfoot",{name:"MuiTableFooter",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"table-footer-group"}),q7={variant:"footer"},lx="tfoot",K7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableFooter"}),{className:o,component:i=lx,...a}=r,s={...r,component:i},l=U7(s);return p.jsx(Nc.Provider,{value:q7,children:p.jsx(G7,{as:i,className:ve(l.root,o),ref:n,role:i===lx?null:"rowgroup",ownerState:s,...a})})});function Z7(e){return Oe("MuiTableHead",e)}Ee("MuiTableHead",["root"]);const Q7=e=>{const{classes:t}=e;return Ae({root:["root"]},Z7,t)},Y7=J("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"table-header-group"}),X7={variant:"head"},cx="thead",J7=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableHead"}),{className:o,component:i=cx,...a}=r,s={...r,component:i},l=Q7(s);return p.jsx(Nc.Provider,{value:X7,children:p.jsx(Y7,{as:i,className:ve(l.root,o),ref:n,role:i===cx?null:"rowgroup",ownerState:s,...a})})});function eN(e){return Oe("MuiToolbar",e)}Ee("MuiToolbar",["root","gutters","regular","dense"]);const tN=e=>{const{classes:t,disableGutters:n,variant:r}=e;return Ae({root:["root",!n&&"gutters",r]},eN,t)},nN=J("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})($e(({theme:e})=>({position:"relative",display:"flex",alignItems:"center",variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:e.mixins.toolbar}]}))),U_=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiToolbar"}),{className:o,component:i="div",disableGutters:a=!1,variant:s="regular",...l}=r,c={...r,component:i,disableGutters:a,variant:s},u=tN(c);return p.jsx(nN,{as:i,className:ve(u.root,o),ref:n,ownerState:c,...l})}),G_=un(p.jsx("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),q_=un(p.jsx("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight"),rN=b.forwardRef(function(t,n){const{backIconButtonProps:r,count:o,disabled:i=!1,getItemAriaLabel:a,nextIconButtonProps:s,onPageChange:l,page:c,rowsPerPage:u,showFirstButton:d,showLastButton:f,slots:g={},slotProps:m={},...y}=t,C=Ls(),v=H=>{l(H,0)},S=H=>{l(H,c-1)},h=H=>{l(H,c+1)},w=H=>{l(H,Math.max(0,Math.ceil(o/u)-1))},_=g.firstButton??vr,T=g.lastButton??vr,k=g.nextButton??vr,R=g.previousButton??vr,P=g.firstButtonIcon??DL,x=g.lastButtonIcon??jL,$=g.nextButtonIcon??q_,I=g.previousButtonIcon??G_,O=C?T:_,D=C?k:R,M=C?R:k,N=C?_:T,A=C?m.lastButton:m.firstButton,E=C?m.nextButton:m.previousButton,L=C?m.previousButton:m.nextButton,B=C?m.firstButton:m.lastButton;return p.jsxs("div",{ref:n,...y,children:[d&&p.jsx(O,{onClick:v,disabled:i||c===0,"aria-label":a("first",c),title:a("first",c),...A,children:C?p.jsx(x,{...m.lastButtonIcon}):p.jsx(P,{...m.firstButtonIcon})}),p.jsx(D,{onClick:S,disabled:i||c===0,color:"inherit","aria-label":a("previous",c),title:a("previous",c),...E??r,children:C?p.jsx($,{...m.nextButtonIcon}):p.jsx(I,{...m.previousButtonIcon})}),p.jsx(M,{onClick:h,disabled:i||(o!==-1?c>=Math.ceil(o/u)-1:!1),color:"inherit","aria-label":a("next",c),title:a("next",c),...L??s,children:C?p.jsx(I,{...m.previousButtonIcon}):p.jsx($,{...m.nextButtonIcon})}),f&&p.jsx(N,{onClick:w,disabled:i||c>=Math.ceil(o/u)-1,"aria-label":a("last",c),title:a("last",c),...B,children:C?p.jsx(P,{...m.firstButtonIcon}):p.jsx(x,{...m.lastButtonIcon})})]})});function oN(e){return Oe("MuiTablePagination",e)}const jl=Ee("MuiTablePagination",["root","toolbar","spacer","selectLabel","selectRoot","select","selectIcon","input","menuItem","displayedRows","actions"]);var ux;const iN=J(ws,{name:"MuiTablePagination",slot:"Root",overridesResolver:(e,t)=>t.root})($e(({theme:e})=>({overflow:"auto",color:(e.vars||e).palette.text.primary,fontSize:e.typography.pxToRem(14),"&:last-child":{padding:0}}))),aN=J(U_,{name:"MuiTablePagination",slot:"Toolbar",overridesResolver:(e,t)=>({[`& .${jl.actions}`]:t.actions,...t.toolbar})})($e(({theme:e})=>({minHeight:52,paddingRight:2,[`${e.breakpoints.up("xs")} and (orientation: landscape)`]:{minHeight:52},[e.breakpoints.up("sm")]:{minHeight:52,paddingRight:2},[`& .${jl.actions}`]:{flexShrink:0,marginLeft:20}}))),sN=J("div",{name:"MuiTablePagination",slot:"Spacer",overridesResolver:(e,t)=>t.spacer})({flex:"1 1 100%"}),lN=J("p",{name:"MuiTablePagination",slot:"SelectLabel",overridesResolver:(e,t)=>t.selectLabel})($e(({theme:e})=>({...e.typography.body2,flexShrink:0}))),cN=J(Cp,{name:"MuiTablePagination",slot:"Select",overridesResolver:(e,t)=>({[`& .${jl.selectIcon}`]:t.selectIcon,[`& .${jl.select}`]:t.select,...t.input,...t.selectRoot})})({color:"inherit",fontSize:"inherit",flexShrink:0,marginRight:32,marginLeft:8,[`& .${jl.select}`]:{paddingLeft:8,paddingRight:24,textAlign:"right",textAlignLast:"right"}}),uN=J(Lc,{name:"MuiTablePagination",slot:"MenuItem",overridesResolver:(e,t)=>t.menuItem})({}),dN=J("p",{name:"MuiTablePagination",slot:"DisplayedRows",overridesResolver:(e,t)=>t.displayedRows})($e(({theme:e})=>({...e.typography.body2,flexShrink:0})));function fN({from:e,to:t,count:n}){return`${e}–${t} of ${n!==-1?n:`more than ${t}`}`}function pN(e){return`Go to ${e} page`}const gN=e=>{const{classes:t}=e;return Ae({root:["root"],toolbar:["toolbar"],spacer:["spacer"],selectLabel:["selectLabel"],select:["select"],input:["input"],selectIcon:["selectIcon"],menuItem:["menuItem"],displayedRows:["displayedRows"],actions:["actions"]},oN,t)},hN=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTablePagination"}),{ActionsComponent:o=rN,backIconButtonProps:i,className:a,colSpan:s,component:l=ws,count:c,disabled:u=!1,getItemAriaLabel:d=pN,labelDisplayedRows:f=fN,labelRowsPerPage:g="Rows per page:",nextIconButtonProps:m,onPageChange:y,onRowsPerPageChange:C,page:v,rowsPerPage:S,rowsPerPageOptions:h=[10,25,50,100],SelectProps:w={},showFirstButton:_=!1,showLastButton:T=!1,slotProps:k={},slots:R={},...P}=r,x=r,$=gN(x),I=(k==null?void 0:k.select)??w,O=I.native?"option":uN;let D;(l===ws||l==="td")&&(D=s||1e3);const M=hs(I.id),N=hs(I.labelId),A=()=>c===-1?(v+1)*S:S===-1?c:Math.min(c,(v+1)*S);return p.jsx(iN,{colSpan:D,ref:n,as:l,ownerState:x,className:ve($.root,a),...P,children:p.jsxs(aN,{className:$.toolbar,children:[p.jsx(sN,{className:$.spacer}),h.length>1&&p.jsx(lN,{className:$.selectLabel,id:N,children:g}),h.length>1&&p.jsx(cN,{variant:"standard",...!I.variant&&{input:ux||(ux=p.jsx(wp,{}))},value:S,onChange:C,id:M,labelId:N,...I,classes:{...I.classes,root:ve($.input,$.selectRoot,(I.classes||{}).root),select:ve($.select,(I.classes||{}).select),icon:ve($.selectIcon,(I.classes||{}).icon)},disabled:u,children:h.map(E=>b.createElement(O,{...!Kd(O)&&{ownerState:x},className:$.menuItem,key:E.label?E.label:E,value:E.value?E.value:E},E.label?E.label:E))}),p.jsx(dN,{className:$.displayedRows,children:f({from:c===0?0:v*S+1,to:A(),count:c===-1?-1:c,page:v})}),p.jsx(o,{className:$.actions,backIconButtonProps:i,count:c,nextIconButtonProps:m,onPageChange:y,page:v,rowsPerPage:S,showFirstButton:_,showLastButton:T,slotProps:k.actions,slots:R.actions,getItemAriaLabel:d,disabled:u})]})})});function mN(e){return Oe("MuiTableRow",e)}const dx=Ee("MuiTableRow",["root","selected","hover","head","footer"]),vN=e=>{const{classes:t,selected:n,hover:r,head:o,footer:i}=e;return Ae({root:["root",n&&"selected",r&&"hover",o&&"head",i&&"footer"]},mN,t)},yN=J("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.head&&t.head,n.footer&&t.footer]}})($e(({theme:e})=>({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,[`&.${dx.hover}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${dx.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity)}}}))),fx="tr",_p=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableRow"}),{className:o,component:i=fx,hover:a=!1,selected:s=!1,...l}=r,c=b.useContext(Nc),u={...r,component:i,hover:a,selected:s,head:c&&c.variant==="head",footer:c&&c.variant==="footer"},d=vN(u);return p.jsx(yN,{as:i,ref:n,className:ve(d.root,o),role:i===fx?null:"row",ownerState:u,...l})}),bN=un(p.jsx("path",{d:"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownward");function xN(e){return Oe("MuiTableSortLabel",e)}const Rg=Ee("MuiTableSortLabel",["root","active","icon","iconDirectionDesc","iconDirectionAsc","directionDesc","directionAsc"]),SN=e=>{const{classes:t,direction:n,active:r}=e,o={root:["root",r&&"active",`direction${ae(n)}`],icon:["icon",`iconDirection${ae(n)}`]};return Ae(o,xN,t)},wN=J(Eo,{name:"MuiTableSortLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.active&&t.active]}})($e(({theme:e})=>({cursor:"pointer",display:"inline-flex",justifyContent:"flex-start",flexDirection:"inherit",alignItems:"center","&:focus":{color:(e.vars||e).palette.text.secondary},"&:hover":{color:(e.vars||e).palette.text.secondary,[`& .${Rg.icon}`]:{opacity:.5}},[`&.${Rg.active}`]:{color:(e.vars||e).palette.text.primary,[`& .${Rg.icon}`]:{opacity:1,color:(e.vars||e).palette.text.secondary}}}))),CN=J("span",{name:"MuiTableSortLabel",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,t[`iconDirection${ae(n.direction)}`]]}})($e(({theme:e})=>({fontSize:18,marginRight:4,marginLeft:4,opacity:0,transition:e.transitions.create(["opacity","transform"],{duration:e.transitions.duration.shorter}),userSelect:"none",variants:[{props:{direction:"desc"},style:{transform:"rotate(0deg)"}},{props:{direction:"asc"},style:{transform:"rotate(180deg)"}}]}))),_N=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTableSortLabel"}),{active:o=!1,children:i,className:a,direction:s="asc",hideSortIcon:l=!1,IconComponent:c=bN,...u}=r,d={...r,active:o,direction:s,hideSortIcon:l,IconComponent:c},f=SN(d);return p.jsxs(wN,{className:ve(f.root,a),component:"span",disableRipple:!0,ownerState:d,ref:n,...u,children:[i,l&&!o?null:p.jsx(CN,{as:c,className:ve(f.icon),ownerState:d})]})});function RN(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}function TN(e,t,n,r={},o=()=>{}){const{ease:i=RN,duration:a=300}=r;let s=null;const l=t[e];let c=!1;const u=()=>{c=!0},d=f=>{if(c){o(new Error("Animation cancelled"));return}s===null&&(s=f);const g=Math.min(1,(f-s)/a);if(t[e]=i(g)*(n-l)+l,g>=1){requestAnimationFrame(()=>{o(null)});return}requestAnimationFrame(d)};return l===n?(o(new Error("Element already at target position")),u):(requestAnimationFrame(d),u)}const PN={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function kN(e){const{onChange:t,...n}=e,r=b.useRef(),o=b.useRef(null),i=()=>{r.current=o.current.offsetHeight-o.current.clientHeight};return Wr(()=>{const a=hp(()=>{const l=r.current;i(),l!==r.current&&t(r.current)}),s=Vr(o.current);return s.addEventListener("resize",a),()=>{a.clear(),s.removeEventListener("resize",a)}},[t]),b.useEffect(()=>{i(),t(r.current)},[t]),p.jsx("div",{style:PN,ref:o,...n})}function $N(e){return Oe("MuiTabScrollButton",e)}const EN=Ee("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),MN=e=>{const{classes:t,orientation:n,disabled:r}=e;return Ae({root:["root",n,r&&"disabled"]},$N,t)},IN=J(Eo,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.orientation&&t[n.orientation]]}})({width:40,flexShrink:0,opacity:.8,[`&.${EN.disabled}`]:{opacity:0},variants:[{props:{orientation:"vertical"},style:{width:"100%",height:40,"& svg":{transform:"var(--TabScrollButton-svgRotate)"}}}]}),ON=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTabScrollButton"}),{className:o,slots:i={},slotProps:a={},direction:s,orientation:l,disabled:c,...u}=r,d=Ls(),f={isRtl:d,...r},g=MN(f),m=i.StartScrollButtonIcon??G_,y=i.EndScrollButtonIcon??q_,C=ia({elementType:m,externalSlotProps:a.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:f}),v=ia({elementType:y,externalSlotProps:a.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:f});return p.jsx(IN,{component:"div",className:ve(g.root,o),ref:n,role:null,ownerState:f,tabIndex:null,...u,style:{...u.style,...l==="vertical"&&{"--TabScrollButton-svgRotate":`rotate(${d?-90:90}deg)`}},children:s==="left"?p.jsx(m,{...C}):p.jsx(y,{...v})})});function LN(e){return Oe("MuiTabs",e)}const Tg=Ee("MuiTabs",["root","vertical","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),px=(e,t)=>e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:e.firstChild,gx=(e,t)=>e===t?e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:e.lastChild,xu=(e,t,n)=>{let r=!1,o=n(e,t);for(;o;){if(o===e.firstChild){if(r)return;r=!0}const i=o.disabled||o.getAttribute("aria-disabled")==="true";if(!o.hasAttribute("tabindex")||i)o=n(e,o);else{o.focus();return}}},NN=e=>{const{vertical:t,fixed:n,hideScrollbar:r,scrollableX:o,scrollableY:i,centered:a,scrollButtonsHideMobile:s,classes:l}=e;return Ae({root:["root",t&&"vertical"],scroller:["scroller",n&&"fixed",r&&"hideScrollbar",o&&"scrollableX",i&&"scrollableY"],flexContainer:["flexContainer",t&&"flexContainerVertical",a&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",s&&"scrollButtonsHideMobile"],scrollableX:[o&&"scrollableX"],hideScrollbar:[r&&"hideScrollbar"]},LN,l)},AN=J("div",{name:"MuiTabs",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Tg.scrollButtons}`]:t.scrollButtons},{[`& .${Tg.scrollButtons}`]:n.scrollButtonsHideMobile&&t.scrollButtonsHideMobile},t.root,n.vertical&&t.vertical]}})($e(({theme:e})=>({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex",variants:[{props:({ownerState:t})=>t.vertical,style:{flexDirection:"column"}},{props:({ownerState:t})=>t.scrollButtonsHideMobile,style:{[`& .${Tg.scrollButtons}`]:{[e.breakpoints.down("sm")]:{display:"none"}}}}]}))),DN=J("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.scroller,n.fixed&&t.fixed,n.hideScrollbar&&t.hideScrollbar,n.scrollableX&&t.scrollableX,n.scrollableY&&t.scrollableY]}})({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap",variants:[{props:({ownerState:e})=>e.fixed,style:{overflowX:"hidden",width:"100%"}},{props:({ownerState:e})=>e.hideScrollbar,style:{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}},{props:({ownerState:e})=>e.scrollableX,style:{overflowX:"auto",overflowY:"hidden"}},{props:({ownerState:e})=>e.scrollableY,style:{overflowY:"auto",overflowX:"hidden"}}]}),jN=J("div",{name:"MuiTabs",slot:"FlexContainer",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.flexContainer,n.vertical&&t.flexContainerVertical,n.centered&&t.centered]}})({display:"flex",variants:[{props:({ownerState:e})=>e.vertical,style:{flexDirection:"column"}},{props:({ownerState:e})=>e.centered,style:{justifyContent:"center"}}]}),FN=J("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(e,t)=>t.indicator})($e(({theme:e})=>({position:"absolute",height:2,bottom:0,width:"100%",transition:e.transitions.create(),variants:[{props:{indicatorColor:"primary"},style:{backgroundColor:(e.vars||e).palette.primary.main}},{props:{indicatorColor:"secondary"},style:{backgroundColor:(e.vars||e).palette.secondary.main}},{props:({ownerState:t})=>t.vertical,style:{height:"100%",width:2,right:0}}]}))),BN=J(kN)({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),hx={},zN=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTabs"}),o=Ht(),i=Ls(),{"aria-label":a,"aria-labelledby":s,action:l,centered:c=!1,children:u,className:d,component:f="div",allowScrollButtonsMobile:g=!1,indicatorColor:m="primary",onChange:y,orientation:C="horizontal",ScrollButtonComponent:v=ON,scrollButtons:S="auto",selectionFollowsFocus:h,slots:w={},slotProps:_={},TabIndicatorProps:T={},TabScrollButtonProps:k={},textColor:R="primary",value:P,variant:x="standard",visibleScrollbar:$=!1,...I}=r,O=x==="scrollable",D=C==="vertical",M=D?"scrollTop":"scrollLeft",N=D?"top":"left",A=D?"bottom":"right",E=D?"clientHeight":"clientWidth",L=D?"height":"width",B={...r,component:f,allowScrollButtonsMobile:g,indicatorColor:m,orientation:C,vertical:D,scrollButtons:S,textColor:R,variant:x,visibleScrollbar:$,fixed:!O,hideScrollbar:O&&!$,scrollableX:O&&!D,scrollableY:O&&D,centered:c&&!O,scrollButtonsHideMobile:!g},H=NN(B),z=ia({elementType:w.StartScrollButtonIcon,externalSlotProps:_.startScrollButtonIcon,ownerState:B}),j=ia({elementType:w.EndScrollButtonIcon,externalSlotProps:_.endScrollButtonIcon,ownerState:B}),[F,W]=b.useState(!1),[V,ee]=b.useState(hx),[re,U]=b.useState(!1),[K,se]=b.useState(!1),[q,ce]=b.useState(!1),[ue,ie]=b.useState({overflow:"hidden",scrollbarWidth:0}),te=new Map,de=b.useRef(null),Q=b.useRef(null),be=()=>{const oe=de.current;let me;if(oe){const Ve=oe.getBoundingClientRect();me={clientWidth:oe.clientWidth,scrollLeft:oe.scrollLeft,scrollTop:oe.scrollTop,scrollWidth:oe.scrollWidth,top:Ve.top,bottom:Ve.bottom,left:Ve.left,right:Ve.right}}let je;if(oe&&P!==!1){const Ve=Q.current.children;if(Ve.length>0){const Ye=Ve[te.get(P)];je=Ye?Ye.getBoundingClientRect():null}}return{tabsMeta:me,tabMeta:je}},Te=Sn(()=>{const{tabsMeta:oe,tabMeta:me}=be();let je=0,Ve;D?(Ve="top",me&&oe&&(je=me.top-oe.top+oe.scrollTop)):(Ve=i?"right":"left",me&&oe&&(je=(i?-1:1)*(me[Ve]-oe[Ve]+oe.scrollLeft)));const Ye={[Ve]:je,[L]:me?me[L]:0};if(typeof V[Ve]!="number"||typeof V[L]!="number")ee(Ye);else{const Tt=Math.abs(V[Ve]-Ye[Ve]),Zt=Math.abs(V[L]-Ye[L]);(Tt>=1||Zt>=1)&&ee(Ye)}}),we=(oe,{animation:me=!0}={})=>{me?TN(M,de.current,oe,{duration:o.transitions.duration.standard}):de.current[M]=oe},ge=oe=>{let me=de.current[M];D?me+=oe:me+=oe*(i?-1:1),we(me)},le=()=>{const oe=de.current[E];let me=0;const je=Array.from(Q.current.children);for(let Ve=0;Veoe){Ve===0&&(me=oe);break}me+=Ye[E]}return me},Se=()=>{ge(-1*le())},ye=()=>{ge(le())},Ge=b.useCallback(oe=>{ie({overflow:null,scrollbarWidth:oe})},[]),Pe=()=>{const oe={};oe.scrollbarSizeListener=O?p.jsx(BN,{onChange:Ge,className:ve(H.scrollableX,H.hideScrollbar)}):null;const je=O&&(S==="auto"&&(re||K)||S===!0);return oe.scrollButtonStart=je?p.jsx(v,{slots:{StartScrollButtonIcon:w.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:z},orientation:C,direction:i?"right":"left",onClick:Se,disabled:!re,...k,className:ve(H.scrollButtons,k.className)}):null,oe.scrollButtonEnd=je?p.jsx(v,{slots:{EndScrollButtonIcon:w.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:j},orientation:C,direction:i?"left":"right",onClick:ye,disabled:!K,...k,className:ve(H.scrollButtons,k.className)}):null,oe},Re=Sn(oe=>{const{tabsMeta:me,tabMeta:je}=be();if(!(!je||!me)){if(je[N]me[A]){const Ve=me[M]+(je[A]-me[A]);we(Ve,{animation:oe})}}}),ke=Sn(()=>{O&&S!==!1&&ce(!q)});b.useEffect(()=>{const oe=hp(()=>{de.current&&Te()});let me;const je=Tt=>{Tt.forEach(Zt=>{Zt.removedNodes.forEach(On=>{me==null||me.unobserve(On)}),Zt.addedNodes.forEach(On=>{me==null||me.observe(On)})}),oe(),ke()},Ve=Vr(de.current);Ve.addEventListener("resize",oe);let Ye;return typeof ResizeObserver<"u"&&(me=new ResizeObserver(oe),Array.from(Q.current.children).forEach(Tt=>{me.observe(Tt)})),typeof MutationObserver<"u"&&(Ye=new MutationObserver(je),Ye.observe(Q.current,{childList:!0})),()=>{oe.clear(),Ve.removeEventListener("resize",oe),Ye==null||Ye.disconnect(),me==null||me.disconnect()}},[Te,ke]),b.useEffect(()=>{const oe=Array.from(Q.current.children),me=oe.length;if(typeof IntersectionObserver<"u"&&me>0&&O&&S!==!1){const je=oe[0],Ve=oe[me-1],Ye={root:de.current,threshold:.99},Tt=Un=>{U(!Un[0].isIntersecting)},Zt=new IntersectionObserver(Tt,Ye);Zt.observe(je);const On=Un=>{se(!Un[0].isIntersecting)},sr=new IntersectionObserver(On,Ye);return sr.observe(Ve),()=>{Zt.disconnect(),sr.disconnect()}}},[O,S,q,u==null?void 0:u.length]),b.useEffect(()=>{W(!0)},[]),b.useEffect(()=>{Te()}),b.useEffect(()=>{Re(hx!==V)},[Re,V]),b.useImperativeHandle(l,()=>({updateIndicator:Te,updateScrollButtons:ke}),[Te,ke]);const pe=p.jsx(FN,{...T,className:ve(H.indicator,T.className),ownerState:B,style:{...V,...T.style}});let ne=0;const xe=b.Children.map(u,oe=>{if(!b.isValidElement(oe))return null;const me=oe.props.value===void 0?ne:oe.props.value;te.set(me,ne);const je=me===P;return ne+=1,b.cloneElement(oe,{fullWidth:x==="fullWidth",indicator:je&&!F&&pe,selected:je,selectionFollowsFocus:h,onChange:y,textColor:R,value:me,...ne===1&&P===!1&&!oe.props.tabIndex?{tabIndex:0}:{}})}),Le=oe=>{const me=Q.current,je=ln(me).activeElement;if(je.getAttribute("role")!=="tab")return;let Ye=C==="horizontal"?"ArrowLeft":"ArrowUp",Tt=C==="horizontal"?"ArrowRight":"ArrowDown";switch(C==="horizontal"&&i&&(Ye="ArrowRight",Tt="ArrowLeft"),oe.key){case Ye:oe.preventDefault(),xu(me,je,gx);break;case Tt:oe.preventDefault(),xu(me,je,px);break;case"Home":oe.preventDefault(),xu(me,null,px);break;case"End":oe.preventDefault(),xu(me,null,gx);break}},fe=Pe();return p.jsxs(AN,{className:ve(H.root,d),ownerState:B,ref:n,as:f,...I,children:[fe.scrollButtonStart,fe.scrollbarSizeListener,p.jsxs(DN,{className:H.scroller,ownerState:B,style:{overflow:ue.overflow,[D?`margin${i?"Left":"Right"}`:"marginBottom"]:$?void 0:-ue.scrollbarWidth},ref:de,children:[p.jsx(jN,{"aria-label":a,"aria-labelledby":s,"aria-orientation":C==="vertical"?"vertical":null,className:H.flexContainer,ownerState:B,onKeyDown:Le,ref:Q,role:"tablist",children:xe}),F&&pe]}),fe.scrollButtonEnd]})});function HN(e){return Oe("MuiTextField",e)}Ee("MuiTextField",["root"]);const VN={standard:Yd,filled:Qd,outlined:Xd},WN=e=>{const{classes:t}=e;return Ae({root:["root"]},HN,t)},UN=J(jO,{name:"MuiTextField",slot:"Root",overridesResolver:(e,t)=>t.root})({}),GN=b.forwardRef(function(t,n){const r=De({props:t,name:"MuiTextField"}),{autoComplete:o,autoFocus:i=!1,children:a,className:s,color:l="primary",defaultValue:c,disabled:u=!1,error:d=!1,FormHelperTextProps:f,fullWidth:g=!1,helperText:m,id:y,InputLabelProps:C,inputProps:v,InputProps:S,inputRef:h,label:w,maxRows:_,minRows:T,multiline:k=!1,name:R,onBlur:P,onChange:x,onFocus:$,placeholder:I,required:O=!1,rows:D,select:M=!1,SelectProps:N,slots:A={},slotProps:E={},type:L,value:B,variant:H="outlined",...z}=r,j={...r,autoFocus:i,color:l,disabled:u,error:d,fullWidth:g,multiline:k,required:O,select:M,variant:H},F=WN(j),W=hs(y),V=m&&W?`${W}-helper-text`:void 0,ee=w&&W?`${W}-label`:void 0,re=VN[H],U={slots:A,slotProps:{input:S,inputLabel:C,htmlInput:v,formHelperText:f,select:N,...E}},K={},se=U.slotProps.inputLabel;H==="outlined"&&(se&&typeof se.shrink<"u"&&(K.notched=se.shrink),K.label=w),M&&((!N||!N.native)&&(K.id=void 0),K["aria-describedby"]=void 0);const[q,ce]=an("input",{elementType:re,externalForwardedProps:U,additionalProps:K,ownerState:j}),[ue,ie]=an("inputLabel",{elementType:iL,externalForwardedProps:U,ownerState:j}),[te,de]=an("htmlInput",{elementType:"input",externalForwardedProps:U,ownerState:j}),[Q,be]=an("formHelperText",{elementType:GO,externalForwardedProps:U,ownerState:j}),[Te,we]=an("select",{elementType:Cp,externalForwardedProps:U,ownerState:j}),ge=p.jsx(q,{"aria-describedby":V,autoComplete:o,autoFocus:i,defaultValue:c,fullWidth:g,multiline:k,name:R,rows:D,maxRows:_,minRows:T,type:L,value:B,id:W,inputRef:h,onBlur:P,onChange:x,onFocus:$,placeholder:I,inputProps:de,slots:{input:A.htmlInput?te:void 0},...ce});return p.jsxs(UN,{className:ve(F.root,s),disabled:u,error:d,fullWidth:g,ref:n,required:O,color:l,variant:H,ownerState:j,...z,children:[w!=null&&w!==""&&p.jsx(ue,{htmlFor:W,id:ee,...ie,children:w}),M?p.jsx(Te,{"aria-describedby":V,id:W,labelId:ee,value:B,input:ge,...we,children:a}):ge,m&&p.jsx(Q,{id:V,...be,children:m})]})});var qN={exports:{}};/* @license +Papa Parse +v5.4.1 +https://github.com/mholt/PapaParse +License: MIT +*/(function(e,t){(function(n,r){e.exports=r()})(Vl,function n(){var r=typeof self<"u"?self:typeof window<"u"?window:r!==void 0?r:{},o=!r.document&&!!r.postMessage,i=r.IS_PAPA_WORKER||!1,a={},s=0,l={parse:function(R,P){var x=(P=P||{}).dynamicTyping||!1;if(k(x)&&(P.dynamicTypingFunction=x,x={}),P.dynamicTyping=x,P.transform=!!k(P.transform)&&P.transform,P.worker&&l.WORKERS_SUPPORTED){var $=function(){if(!l.WORKERS_SUPPORTED)return!1;var O=(M=r.URL||r.webkitURL||null,N=n.toString(),l.BLOB_URL||(l.BLOB_URL=M.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",N,")();"],{type:"text/javascript"})))),D=new r.Worker(O),M,N;return D.onmessage=S,D.id=s++,a[D.id]=D}();return $.userStep=P.step,$.userChunk=P.chunk,$.userComplete=P.complete,$.userError=P.error,P.step=k(P.step),P.chunk=k(P.chunk),P.complete=k(P.complete),P.error=k(P.error),delete P.worker,void $.postMessage({input:R,config:P,workerId:$.id})}var I=null;return l.NODE_STREAM_INPUT,typeof R=="string"?(R=function(O){return O.charCodeAt(0)===65279?O.slice(1):O}(R),I=P.download?new d(P):new g(P)):R.readable===!0&&k(R.read)&&k(R.on)?I=new m(P):(r.File&&R instanceof File||R instanceof Object)&&(I=new f(P)),I.stream(R)},unparse:function(R,P){var x=!1,$=!0,I=",",O=`\r +`,D='"',M=D+D,N=!1,A=null,E=!1;(function(){if(typeof P=="object"){if(typeof P.delimiter!="string"||l.BAD_DELIMITERS.filter(function(z){return P.delimiter.indexOf(z)!==-1}).length||(I=P.delimiter),(typeof P.quotes=="boolean"||typeof P.quotes=="function"||Array.isArray(P.quotes))&&(x=P.quotes),typeof P.skipEmptyLines!="boolean"&&typeof P.skipEmptyLines!="string"||(N=P.skipEmptyLines),typeof P.newline=="string"&&(O=P.newline),typeof P.quoteChar=="string"&&(D=P.quoteChar),typeof P.header=="boolean"&&($=P.header),Array.isArray(P.columns)){if(P.columns.length===0)throw new Error("Option columns is empty");A=P.columns}P.escapeChar!==void 0&&(M=P.escapeChar+D),(typeof P.escapeFormulae=="boolean"||P.escapeFormulae instanceof RegExp)&&(E=P.escapeFormulae instanceof RegExp?P.escapeFormulae:/^[=+\-@\t\r].*$/)}})();var L=new RegExp(C(D),"g");if(typeof R=="string"&&(R=JSON.parse(R)),Array.isArray(R)){if(!R.length||Array.isArray(R[0]))return B(null,R,N);if(typeof R[0]=="object")return B(A||Object.keys(R[0]),R,N)}else if(typeof R=="object")return typeof R.data=="string"&&(R.data=JSON.parse(R.data)),Array.isArray(R.data)&&(R.fields||(R.fields=R.meta&&R.meta.fields||A),R.fields||(R.fields=Array.isArray(R.data[0])?R.fields:typeof R.data[0]=="object"?Object.keys(R.data[0]):[]),Array.isArray(R.data[0])||typeof R.data[0]=="object"||(R.data=[R.data])),B(R.fields||[],R.data||[],N);throw new Error("Unable to serialize unrecognized input");function B(z,j,F){var W="";typeof z=="string"&&(z=JSON.parse(z)),typeof j=="string"&&(j=JSON.parse(j));var V=Array.isArray(z)&&0=this._config.preview;if(i)r.postMessage({results:O,workerId:l.WORKER_ID,finished:M});else if(k(this._config.chunk)&&!x){if(this._config.chunk(O,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);O=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(O.data),this._completeResults.errors=this._completeResults.errors.concat(O.errors),this._completeResults.meta=O.meta),this._completed||!M||!k(this._config.complete)||O&&O.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),M||O&&O.meta.paused||this._nextChunk(),O}this._halted=!0},this._sendError=function(P){k(this._config.error)?this._config.error(P):i&&this._config.error&&r.postMessage({workerId:l.WORKER_ID,error:P,finished:!1})}}function d(R){var P;(R=R||{}).chunkSize||(R.chunkSize=l.RemoteChunkSize),u.call(this,R),this._nextChunk=o?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(x){this._input=x,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(P=new XMLHttpRequest,this._config.withCredentials&&(P.withCredentials=this._config.withCredentials),o||(P.onload=T(this._chunkLoaded,this),P.onerror=T(this._chunkError,this)),P.open(this._config.downloadRequestBody?"POST":"GET",this._input,!o),this._config.downloadRequestHeaders){var x=this._config.downloadRequestHeaders;for(var $ in x)P.setRequestHeader($,x[$])}if(this._config.chunkSize){var I=this._start+this._config.chunkSize-1;P.setRequestHeader("Range","bytes="+this._start+"-"+I)}try{P.send(this._config.downloadRequestBody)}catch(O){this._chunkError(O.message)}o&&P.status===0&&this._chunkError()}},this._chunkLoaded=function(){P.readyState===4&&(P.status<200||400<=P.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:P.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(x){var $=x.getResponseHeader("Content-Range");return $===null?-1:parseInt($.substring($.lastIndexOf("/")+1))}(P),this.parseChunk(P.responseText)))},this._chunkError=function(x){var $=P.statusText||x;this._sendError(new Error($))}}function f(R){var P,x;(R=R||{}).chunkSize||(R.chunkSize=l.LocalChunkSize),u.call(this,R);var $=typeof FileReader<"u";this.stream=function(I){this._input=I,x=I.slice||I.webkitSlice||I.mozSlice,$?((P=new FileReader).onload=T(this._chunkLoaded,this),P.onerror=T(this._chunkError,this)):P=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(I.target.result)},this._chunkError=function(){this._sendError(P.error)}}function g(R){var P;u.call(this,R=R||{}),this.stream=function(x){return P=x,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var x,$=this._config.chunkSize;return $?(x=P.substring(0,$),P=P.substring($)):(x=P,P=""),this._finished=!P,this.parseChunk(x)}}}function m(R){u.call(this,R=R||{});var P=[],x=!0,$=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(I){this._input=I,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){$&&P.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),P.length?this.parseChunk(P.shift()):x=!0},this._streamData=T(function(I){try{P.push(typeof I=="string"?I:I.toString(this._config.encoding)),x&&(x=!1,this._checkIsFinished(),this.parseChunk(P.shift()))}catch(O){this._streamError(O)}},this),this._streamError=T(function(I){this._streamCleanUp(),this._sendError(I)},this),this._streamEnd=T(function(){this._streamCleanUp(),$=!0,this._streamData("")},this),this._streamCleanUp=T(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function y(R){var P,x,$,I=Math.pow(2,53),O=-I,D=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,M=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,N=this,A=0,E=0,L=!1,B=!1,H=[],z={data:[],errors:[],meta:{}};if(k(R.step)){var j=R.step;R.step=function(U){if(z=U,V())W();else{if(W(),z.data.length===0)return;A+=U.data.length,R.preview&&A>R.preview?x.abort():(z.data=z.data[0],j(z,N))}}}function F(U){return R.skipEmptyLines==="greedy"?U.join("").trim()==="":U.length===1&&U[0].length===0}function W(){return z&&$&&(re("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+l.DefaultDelimiter+"'"),$=!1),R.skipEmptyLines&&(z.data=z.data.filter(function(U){return!F(U)})),V()&&function(){if(!z)return;function U(se,q){k(R.transformHeader)&&(se=R.transformHeader(se,q)),H.push(se)}if(Array.isArray(z.data[0])){for(var K=0;V()&&K=H.length?"__parsed_extra":H[ce]),R.transform&&(te=R.transform(te,ie)),te=ee(ie,te),ie==="__parsed_extra"?(ue[ie]=ue[ie]||[],ue[ie].push(te)):ue[ie]=te}return R.header&&(ce>H.length?re("FieldMismatch","TooManyFields","Too many fields: expected "+H.length+" fields but parsed "+ce,E+q):ce=Q.length/2?`\r +`:"\r"}(U,q)),$=!1,R.delimiter)k(R.delimiter)&&(R.delimiter=R.delimiter(U),z.meta.delimiter=R.delimiter);else{var ce=function(ie,te,de,Q,be){var Te,we,ge,le;be=be||[","," ","|",";",l.RECORD_SEP,l.UNIT_SEP];for(var Se=0;Se=D)return xe(!0)}else for(ye=A,A++;;){if((ye=L.indexOf(P,ye+1))===-1)return H||re.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:ee.length,index:A}),pe();if(ye===z-1)return pe(L.substring(A,ye).replace(Se,P));if(P!==N||L[ye+1]!==N){if(P===N||ye===0||L[ye-1]!==N){ge!==-1&&ge=D)return xe(!0);break}re.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:ee.length,index:A}),ye++}}else ye++}return pe();function Re(fe){ee.push(fe),K=A}function ke(fe){var oe=0;if(fe!==-1){var me=L.substring(ye+1,fe);me&&me.trim()===""&&(oe=me.length)}return oe}function pe(fe){return H||(fe===void 0&&(fe=L.substring(A)),U.push(fe),A=z,Re(U),V&&Le()),xe()}function ne(fe){A=fe,Re(U),U=[],le=L.indexOf($,A)}function xe(fe){return{data:ee,errors:re,meta:{delimiter:x,linebreak:$,aborted:E,truncated:!!fe,cursor:K+(B||0)}}}function Le(){O(xe()),ee=[],re=[]}},this.abort=function(){E=!0},this.getCharIndex=function(){return A}}function S(R){var P=R.data,x=a[P.workerId],$=!1;if(P.error)x.userError(P.error,P.file);else if(P.results&&P.results.data){var I={abort:function(){$=!0,h(P.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:w,resume:w};if(k(x.userStep)){for(var O=0;O{const{size:t,width:n=16,height:r=16,sx:o,...i}=e;return p.jsx(aa,{sx:{fill:"none",width:t||n,height:t||r,...o},viewBox:"0 0 16 16",...i,children:e.children},void 0)},KN=e=>{const{sx:t,...n}=e;return p.jsx(aa,{sx:{fill:"none",width:24,height:24,...t},viewBox:"0 0 24 24",...n,children:e.children},void 0)},K_=e=>{const{sx:t,...n}=e;return p.jsx(aa,{sx:{fill:"none",width:14,height:14,...t},viewBox:"0 0 14 14",...n,children:e.children},void 0)},ZN=e=>p.jsx(KN,{...e,children:p.jsx("path",{d:"M18.861 16.1166C17.4619 18.4433 14.9127 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12H22C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C15.6409 22 18.8274 20.0542 20.5762 17.1457L18.861 16.1166Z",fill:"#1D2939"},void 0)},void 0),QN=e=>p.jsx(K_,{...e,children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.08871 1.5C3.55444 1.5 1.5 3.55444 1.5 6.08871C1.5 8.62298 3.55444 10.6774 6.08871 10.6774C7.17572 10.6774 8.17445 10.2995 8.96065 9.66778L11.75 12.4571L12.4571 11.75L9.66776 8.96067C10.2994 8.17447 10.6774 7.17573 10.6774 6.08871C10.6774 3.55444 8.62298 1.5 6.08871 1.5ZM2.5 6.08871C2.5 4.10672 4.10672 2.5 6.08871 2.5C8.0707 2.5 9.67742 4.10672 9.67742 6.08871C9.67742 8.0707 8.0707 9.67742 6.08871 9.67742C4.10672 9.67742 2.5 8.0707 2.5 6.08871Z",fill:"#1D2939"},void 0)},void 0),YN=e=>p.jsx(K_,{...e,children:p.jsx("path",{d:"M6.99999 7.91921L3.45958 11.4596L2.54034 10.5404L6.08075 6.99997L2.54039 3.45961L3.45963 2.54037L6.99999 6.08073L10.5403 2.54037L11.4596 3.45961L7.91923 6.99997L11.4596 10.5404L10.5404 11.4596L6.99999 7.91921Z",fill:"#1D2939"},void 0)},void 0),XN=e=>p.jsx(dn,{...e,children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.3173 3.14463C13.5851 2.87684 14.0192 2.87684 14.287 3.14463C14.5548 3.41241 14.5548 3.84658 14.287 4.11437L6.17176 12.2297C5.90397 12.4975 5.4698 12.4975 5.20201 12.2297C5.17098 12.1987 5.14355 12.1654 5.11971 12.1304C5.10826 12.1204 5.09706 12.1099 5.08614 12.099L1.71296 8.72582C1.44517 8.45803 1.44517 8.02386 1.71296 7.75607C1.98075 7.48828 2.41492 7.48828 2.68271 7.75607L5.6943 10.7677L13.3173 3.14463Z",fill:"currentColor"},void 0)},void 0),Rp=e=>p.jsx(dn,{...e,children:p.jsx("path",{d:"M4.40029 3.55174C4.16598 3.31743 3.78608 3.31743 3.55177 3.55174C3.31745 3.78606 3.31745 4.16596 3.55177 4.40027L7.15147 7.99998L3.55178 11.5997C3.31746 11.834 3.31746 12.2139 3.55178 12.4482C3.78609 12.6825 4.16599 12.6825 4.40031 12.4482L8 8.84851L11.5997 12.4482C11.834 12.6825 12.2139 12.6825 12.4482 12.4482C12.6825 12.2139 12.6825 11.834 12.4482 11.5997L8.84853 7.99998L12.4482 4.40027C12.6826 4.16596 12.6826 3.78606 12.4482 3.55174C12.2139 3.31743 11.834 3.31743 11.5997 3.55174L8 7.15145L4.40029 3.55174Z",fill:"currentColor"},void 0)},void 0),JN=e=>p.jsxs(dn,{...e,children:[p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.04214 5.95918C6.65053 5.95918 5.52241 7.0873 5.52241 8.47891C5.52241 9.87051 6.65053 10.9986 8.04214 10.9986C9.43374 10.9986 10.5619 9.87051 10.5619 8.47891C10.5619 7.0873 9.43374 5.95918 8.04214 5.95918ZM6.52241 8.47891C6.52241 7.63958 7.20281 6.95918 8.04214 6.95918C8.88146 6.95918 9.56187 7.63958 9.56187 8.47891C9.56187 9.31823 8.88146 9.99864 8.04214 9.99864C7.20281 9.99864 6.52241 9.31823 6.52241 8.47891Z",fill:"currentColor"},void 0),p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.9094 8.18455C14.9095 8.1847 14.9096 8.18483 14.5053 8.47891C14.9096 8.77299 14.9095 8.77312 14.9094 8.77327L14.9084 8.77465L14.9062 8.77775L14.8984 8.78819L14.8705 8.82542C14.8464 8.85725 14.8114 8.90281 14.766 8.96015C14.6753 9.07477 14.543 9.23673 14.3733 9.43024C14.0346 9.8166 13.544 10.3323 12.9362 10.8492C11.7356 11.8704 10.0053 12.9578 8.04214 12.9578C6.07894 12.9578 4.34871 11.8704 3.14808 10.8492C2.54026 10.3323 2.04969 9.8166 1.71095 9.43024C1.54128 9.23673 1.40893 9.07477 1.31822 8.96015C1.27285 8.90281 1.23784 8.85725 1.21374 8.82542L1.18582 8.78819L1.17811 8.77775L1.17584 8.77465L1.1751 8.77363C1.17499 8.77349 1.17463 8.77299 1.579 8.47891C1.17463 8.18483 1.17472 8.1847 1.17483 8.18455L1.17584 8.18318L1.17811 8.18007L1.18582 8.16963L1.21374 8.1324C1.23784 8.10057 1.27285 8.05501 1.31822 7.99767C1.40893 7.88305 1.54128 7.72109 1.71095 7.52758C2.04969 7.14122 2.54026 6.62552 3.14808 6.10858C4.34871 5.08746 6.07894 4 8.04214 4C10.0053 4 11.7356 5.08746 12.9362 6.10858C13.544 6.62552 14.0346 7.14122 14.3733 7.52758C14.543 7.72109 14.6753 7.88305 14.766 7.99767C14.8114 8.05501 14.8464 8.10057 14.8705 8.1324L14.8984 8.16963L14.9062 8.18007L14.9084 8.18318L14.9094 8.18455ZM2.46287 8.77099C2.36639 8.66095 2.28336 8.56242 2.21478 8.47891C2.28336 8.3954 2.36639 8.29687 2.46287 8.18683C2.77823 7.82714 3.23416 7.34812 3.79594 6.87033C4.93451 5.902 6.43584 5 8.04214 5C9.64843 5 11.1498 5.902 12.2883 6.87033C12.8501 7.34812 13.306 7.82714 13.6214 8.18683C13.7179 8.29687 13.8009 8.3954 13.8695 8.47891C13.8009 8.56241 13.7179 8.66095 13.6214 8.77099C13.306 9.13068 12.8501 9.6097 12.2883 10.0875C11.1498 11.0558 9.64843 11.9578 8.04214 11.9578C6.43584 11.9578 4.93451 11.0558 3.79594 10.0875C3.23416 9.6097 2.77823 9.13068 2.46287 8.77099Z",fill:"currentColor"},void 0),p.jsx("path",{d:"M14.5053 8.47891L14.9094 8.18455C15.0369 8.35988 15.0369 8.59794 14.9094 8.77327L14.5053 8.47891Z",fill:"currentColor"},void 0),p.jsx("path",{d:"M1.17483 8.18455L1.579 8.47891L1.1751 8.77363C1.0476 8.59831 1.04733 8.35988 1.17483 8.18455Z",fill:"currentColor"},void 0)]},void 0),eA=e=>p.jsxs(dn,{...e,children:[p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.1106 3.65519C13.301 3.85517 13.2933 4.17165 13.0933 4.36209L9.97993 7.32691C9.96934 7.33914 9.95806 7.35097 9.94609 7.36234C9.93431 7.37355 9.92213 7.38406 9.90959 7.39389L3.64235 13.3621C3.44238 13.5525 3.12589 13.5448 2.93546 13.3448C2.74503 13.1448 2.75276 12.8283 2.95274 12.6379L4.06813 11.5757C3.24267 11.0059 2.55654 10.3585 2.06343 9.83657C1.78455 9.5414 1.56492 9.28373 1.41417 9.09871C1.33874 9.00614 1.28041 8.93157 1.24038 8.87939C1.22036 8.85329 1.2049 8.83278 1.19416 8.81838L1.1816 8.80145L1.178 8.79656L1.17688 8.79502C1.17682 8.79493 1.17621 8.79411 1.58059 8.50003C1.17621 8.20595 1.17631 8.20582 1.17642 8.20567L1.17742 8.20429L1.17969 8.2012L1.18738 8.19078L1.21522 8.15366C1.23926 8.12192 1.27416 8.07649 1.3194 8.01932C1.40984 7.90503 1.54179 7.74357 1.71095 7.55063C2.04868 7.16543 2.53777 6.65128 3.14377 6.13589C4.34075 5.11787 6.06595 4.03351 8.02359 4.03351C9.14779 4.03351 10.1926 4.39154 11.0977 4.88158L12.4037 3.63791C12.6037 3.44748 12.9201 3.45522 13.1106 3.65519ZM9.58316 6.32385L10.331 5.61171C9.60548 5.25934 8.82649 5.03351 8.02359 5.03351C6.42286 5.03351 4.92655 5.93241 3.79163 6.89765C3.23168 7.37388 2.77721 7.85136 2.46287 8.20989C2.36709 8.31913 2.2846 8.417 2.2164 8.50003C2.35319 8.66654 2.54714 8.89243 2.7903 9.14979C3.28839 9.67696 3.98395 10.3265 4.8096 10.8696L5.77368 9.95157C5.5034 9.53331 5.34632 9.03452 5.34632 8.50002C5.34632 7.02144 6.54494 5.82282 8.02352 5.82282C8.6053 5.82282 9.14412 6.00876 9.58316 6.32385ZM6.51881 9.24199C6.40832 9.01845 6.34632 8.76679 6.34632 8.50002C6.34632 7.57372 7.09723 6.82282 8.02352 6.82282C8.31925 6.82282 8.59685 6.89911 8.83805 7.03341L6.51881 9.24199Z",fill:"currentColor"},void 0),p.jsx("path",{d:"M1.58059 8.50003L1.17621 8.79411C1.04871 8.61878 1.04891 8.38099 1.17642 8.20567L1.58059 8.50003Z",fill:"currentColor"},void 0),p.jsx("path",{d:"M12.1782 6.17688C12.3566 5.96615 12.6721 5.93998 12.8828 6.11843C13.495 6.63678 13.9892 7.15531 14.3305 7.54409C14.5015 7.73883 14.6348 7.90192 14.7262 8.01738C14.772 8.07514 14.8073 8.12105 14.8315 8.15312L14.8597 8.19063L14.8675 8.20116L14.8698 8.20428L14.8705 8.2053C14.8705 8.20536 14.871 8.20595 14.4666 8.50003C14.871 8.79411 14.8709 8.79424 14.8708 8.79438L14.8698 8.79576L14.8675 8.79885L14.8598 8.80927L14.832 8.84639C14.8079 8.87813 14.773 8.92356 14.7278 8.98073C14.6373 9.09502 14.5054 9.25649 14.3362 9.44942C13.9985 9.83462 13.5094 10.3488 12.9034 10.8642C11.7064 11.8822 9.98123 12.9665 8.02359 12.9665C7.44356 12.9665 6.8846 12.8711 6.35578 12.7118C6.09137 12.6322 5.9416 12.3533 6.02125 12.0889C6.1009 11.8245 6.37981 11.6747 6.64422 11.7543C7.09234 11.8893 7.55384 11.9665 8.02359 11.9665C9.62432 11.9665 11.1206 11.0676 12.2555 10.1024C12.8155 9.62617 13.27 9.14869 13.5843 8.79017C13.6801 8.68092 13.7626 8.58305 13.8308 8.50002C13.7613 8.41547 13.677 8.31551 13.579 8.20382C13.2613 7.84189 12.8021 7.36041 12.2366 6.88157C12.0259 6.70311 11.9997 6.38761 12.1782 6.17688Z",fill:"currentColor"},void 0),p.jsx("path",{d:"M14.4666 8.50003L14.8705 8.2053C14.998 8.38062 14.9983 8.61906 14.8708 8.79438L14.4666 8.50003Z",fill:"currentColor"},void 0),p.jsx("path",{d:"M10.7007 8.50002C10.7007 8.22388 10.4769 8.00002 10.2007 8.00002C9.92458 8.00002 9.70072 8.22388 9.70072 8.50002C9.70072 9.42631 8.94981 10.1772 8.02352 10.1772C7.74738 10.1772 7.52352 10.4011 7.52352 10.6772C7.52352 10.9534 7.74738 11.1772 8.02352 11.1772C9.5021 11.1772 10.7007 9.9786 10.7007 8.50002Z",fill:"currentColor"},void 0)]},void 0),Mm=e=>p.jsxs(dn,{...e,children:[p.jsx("path",{d:"M9.60001 2.10001C9.32387 2.10001 9.10001 2.32386 9.10001 2.60001C9.10001 2.87615 9.32387 3.10001 9.60001 3.10001L12.5722 3.10001L8.23955 7.60704C8.04818 7.80612 8.05442 8.12264 8.25349 8.31401C8.45257 8.50538 8.76909 8.49914 8.96046 8.30007L13.2465 3.8416V6.45354C13.2465 6.72968 13.4703 6.95354 13.7465 6.95354C14.0226 6.95354 14.2465 6.72968 14.2465 6.45354V2.60001C14.2465 2.32387 14.0226 2.10001 13.7465 2.10001H9.60001Z",fill:"currentColor"},void 0),p.jsx("path",{d:"M3.60001 14.5L11.6 14.5C12.4284 14.5 13.1 13.8284 13.1 13V8.95355C13.1 8.67741 12.8761 8.45355 12.6 8.45355C12.3239 8.45355 12.1 8.67741 12.1 8.95355V13C12.1 13.2761 11.8761 13.5 11.6 13.5L3.60001 13.5C3.32386 13.5 3.10001 13.2761 3.10001 13L3.10001 4.45355C3.10001 4.17741 3.32386 3.95355 3.60001 3.95355L7.10001 3.95355C7.37615 3.95355 7.60001 3.7297 7.60001 3.45355C7.60001 3.17741 7.37615 2.95355 7.10001 2.95355L3.60001 2.95355C2.77158 2.95355 2.10001 3.62513 2.10001 4.45355V13C2.10001 13.8284 2.77158 14.5 3.60001 14.5Z",fill:"currentColor"},void 0)]},void 0),tA=e=>p.jsx(dn,{...e,children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.9348 2.51687C11.2017 2.75702 11.2233 3.16801 10.9831 3.43484L6.87449 8.00001L10.9831 12.5652C11.2233 12.832 11.2017 13.243 10.9348 13.4832C10.668 13.7233 10.257 13.7017 10.0169 13.4348L5.51686 8.43484C5.29439 8.18764 5.29439 7.81238 5.51686 7.56518L10.0169 2.56518C10.257 2.29835 10.668 2.27672 10.9348 2.51687Z",fill:"currentColor"},void 0)},void 0),nA=e=>p.jsx(dn,{...e,children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.56518 2.51687C5.29835 2.75702 5.27672 3.16801 5.51687 3.43484L9.62553 8.00001L5.51687 12.5652C5.27672 12.832 5.29835 13.243 5.56518 13.4832C5.83202 13.7233 6.243 13.7017 6.48315 13.4348L10.9832 8.43484C11.2056 8.18764 11.2056 7.81238 10.9832 7.56518L6.48315 2.56518C6.243 2.29835 5.83202 2.27672 5.56518 2.51687Z",fill:"currentColor"},void 0)},void 0),rA=e=>p.jsx(dn,{...e,children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.58839 5.49693C7.82783 5.30103 8.17216 5.30103 8.4116 5.49693L13.9116 9.99693C14.1894 10.2243 14.2304 10.6338 14.0031 10.9116C13.7757 11.1894 13.3662 11.2304 13.0884 11.0031L8 6.83985L2.9116 11.0031C2.63376 11.2304 2.22425 11.1894 1.99692 10.9116C1.7696 10.6338 1.81055 10.2243 2.08839 9.99693L7.58839 5.49693Z",fill:"currentColor"},void 0)},void 0),la=e=>p.jsx(dn,{...e,children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.58839 11.0031C7.82783 11.199 8.17216 11.199 8.4116 11.0031L13.9116 6.50307C14.1894 6.27574 14.2304 5.86623 14.0031 5.58839C13.7757 5.31055 13.3662 5.2696 13.0884 5.49692L8 9.66016L2.9116 5.49692C2.63376 5.2696 2.22425 5.31055 1.99692 5.58839C1.7696 5.86623 1.81055 6.27574 2.08839 6.50307L7.58839 11.0031Z",fill:"currentColor"},void 0)},void 0),oA=e=>p.jsx(dn,{...e,children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.3758 3.37871C13.5718 3.18427 13.5732 2.86769 13.3787 2.67161C13.1843 2.47553 12.8677 2.47421 12.6716 2.66865L7.21656 8.07829C5.97323 6.96347 4.06051 7.00362 2.8654 8.19873C1.62874 9.43539 1.62874 11.4404 2.8654 12.6771C4.10206 13.9137 6.10708 13.9137 7.34374 12.6771C8.37873 11.6421 8.54751 10.0689 7.85009 8.85838L9.64093 7.08244L11.3233 8.76477C11.5185 8.96003 11.8351 8.96003 12.0304 8.76477C12.2256 8.56951 12.2256 8.25292 12.0304 8.05766L10.351 6.37829L11.3316 5.40586L13.0068 7.08109C13.2021 7.27636 13.5187 7.27636 13.7139 7.08109C13.9092 6.88583 13.9092 6.56925 13.7139 6.37399L12.0417 4.70171L13.3758 3.37871ZM3.5725 8.90584C4.41864 8.0597 5.7905 8.0597 6.63663 8.90584C7.48277 9.75197 7.48277 11.1238 6.63663 11.97C5.7905 12.8161 4.41864 12.8161 3.5725 11.97C2.72637 11.1238 2.72637 9.75197 3.5725 8.90584Z",fill:"currentColor"},void 0)},void 0),iA=e=>p.jsx(dn,{...e,children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8 3.69999C5.62518 3.69999 3.7 5.62516 3.7 7.99999C3.7 10.3748 5.62518 12.3 8 12.3C9.20303 12.3 10.2896 11.8069 11.0709 11.01C11.3415 10.7339 11.7847 10.7295 12.0608 11.0001C12.3368 11.2708 12.3412 11.7139 12.0706 11.99C11.0369 13.0445 9.59437 13.7 8 13.7C4.85198 13.7 2.3 11.148 2.3 7.99999C2.3 4.85196 4.85198 2.29999 8 2.29999C11.148 2.29999 13.7 4.85196 13.7 7.99999C13.7 8.38659 13.3866 8.69999 13 8.69999C12.6134 8.69999 12.3 8.38659 12.3 7.99999C12.3 5.62516 10.3748 3.69999 8 3.69999Z",fill:"currentColor"},void 0)},void 0),F1=e=>p.jsxs(dn,{...e,children:[p.jsx("path",{d:"M8 7.35C8.35898 7.35 8.65 7.64102 8.65 8V10.5C8.65 10.859 8.35898 11.15 8 11.15C7.64102 11.15 7.35 10.859 7.35 10.5V8C7.35 7.64102 7.64102 7.35 8 7.35Z",fill:"currentColor"},void 0),p.jsx("path",{d:"M8.65 5.5C8.65 5.14101 8.35898 4.85 8 4.85C7.64102 4.85 7.35 5.14102 7.35 5.5V5.6C7.35 5.95898 7.64102 6.25 8 6.25C8.35898 6.25 8.65 5.95898 8.65 5.6V5.5Z",fill:"currentColor"},void 0),p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8ZM8 2.5C4.96243 2.5 2.5 4.96243 2.5 8C2.5 11.0376 4.96243 13.5 8 13.5C11.0376 13.5 13.5 11.0376 13.5 8C13.5 4.96243 11.0376 2.5 8 2.5Z",fill:"currentColor"},void 0)]},void 0),Im=e=>p.jsx(dn,{...e,children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM8 7.38747C8.33828 7.38747 8.6125 7.6617 8.6125 7.99997V10.5521C8.6125 10.8903 8.33828 11.1646 8 11.1646C7.66173 11.1646 7.3875 10.8903 7.3875 10.5521V7.99997C7.3875 7.6617 7.66173 7.38747 8 7.38747ZM8.6125 5.44789C8.6125 5.10962 8.33828 4.83539 8 4.83539C7.66173 4.83539 7.3875 5.10962 7.3875 5.44789V5.54997C7.3875 5.88825 7.66173 6.16247 8 6.16247C8.33828 6.16247 8.6125 5.88825 8.6125 5.54997V5.44789Z",fill:"currentColor"},void 0)},void 0),Z_=e=>p.jsx(dn,{...e,children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.14215 1.67713C8.64833 0.774291 7.35164 0.774289 6.85782 1.67713L1.16152 12.0915C0.686995 12.9591 1.31483 14.0181 2.30368 14.0181H13.6963C14.6851 14.0181 15.313 12.9591 14.8385 12.0915L9.14215 1.67713ZM8.00002 5.28887C8.3336 5.28887 8.60402 5.55929 8.60402 5.89287V8.40953C8.60402 8.74311 8.3336 9.01353 8.00002 9.01353C7.66644 9.01353 7.39602 8.74311 7.39602 8.40953V5.89287C7.39602 5.55929 7.66644 5.28887 8.00002 5.28887ZM8.60402 10.9262C8.60402 10.5926 8.3336 10.3222 8.00002 10.3222C7.66644 10.3222 7.39602 10.5926 7.39602 10.9262V11.0269C7.39602 11.3604 7.66644 11.6309 8.00002 11.6309C8.3336 11.6309 8.60402 11.3604 8.60402 11.0269V10.9262Z",fill:"currentColor"},void 0)},void 0),Q_=e=>p.jsx(dn,{...e,children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM5.52524 5.5252C5.76443 5.28601 6.15224 5.28601 6.39144 5.5252L8 7.13377L9.60857 5.5252C9.84776 5.28601 10.2356 5.28601 10.4748 5.5252C10.714 5.7644 10.714 6.15221 10.4748 6.39141L8.86621 7.99997L10.4748 9.60854C10.714 9.84773 10.714 10.2355 10.4748 10.4747C10.2356 10.7139 9.84776 10.7139 9.60857 10.4747L8 8.86618L6.39144 10.4747C6.15224 10.7139 5.76443 10.7139 5.52524 10.4747C5.28604 10.2355 5.28604 9.84773 5.52524 9.60854L7.1338 7.99997L5.52524 6.39141C5.28604 6.15221 5.28604 5.7644 5.52524 5.5252Z",fill:"currentColor"},void 0)},void 0),Y_=e=>p.jsx(dn,{...e,children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8 15C11.866 15 15 11.866 15 8C15 4.13401 11.866 1 8 1C4.13401 1 1 4.13401 1 8C1 11.866 4.13401 15 8 15ZM10.9852 6.39141C11.2244 6.15221 11.2244 5.7644 10.9852 5.5252C10.746 5.28601 10.3582 5.28601 10.119 5.5252L6.97916 8.66502L5.88102 7.56687C5.64182 7.32767 5.25401 7.32767 5.01481 7.56687C4.77561 7.80607 4.77561 8.19388 5.01481 8.43308L6.54606 9.96433C6.78526 10.2035 7.17307 10.2035 7.41227 9.96433L10.9852 6.39141Z",fill:"currentColor"},void 0)},void 0),aA=e=>p.jsxs(dn,{...e,children:[p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.97302 2.34713C4.9413 2.02437 6.24717 1.83331 7.66667 1.83331C9.08617 1.83331 10.392 2.02437 11.3603 2.34713C11.8419 2.50764 12.2676 2.70978 12.5832 2.95853C12.8932 3.20284 13.1667 3.551 13.1667 3.99998V7.66667C13.1667 7.94281 12.9428 8.16667 12.6667 8.16667C12.3905 8.16667 12.1667 7.94281 12.1667 7.66667V5.31162C11.9268 5.44159 11.654 5.55495 11.3603 5.65283C10.392 5.97559 9.08617 6.16665 7.66667 6.16665C6.24717 6.16665 4.9413 5.97559 3.97302 5.65283C3.67939 5.55495 3.4065 5.44159 3.16667 5.31162V8C3.16667 8.16593 3.30186 8.46432 4.04786 8.73916C4.76055 9.00173 5.8604 9.16667 7.33334 9.16667C7.60948 9.16667 7.83334 9.39052 7.83334 9.66667C7.83334 9.94281 7.60948 10.1667 7.33334 10.1667C5.80628 10.1667 4.57279 9.99827 3.70215 9.6775C3.51458 9.6084 3.33399 9.52793 3.16667 9.43528V12C3.16667 12.0015 3.16776 12.0908 3.3783 12.2489C3.58092 12.401 3.9071 12.5595 4.35844 12.7016C5.25531 12.9838 6.53536 13.1667 8.00001 13.1667C8.27615 13.1667 8.50001 13.3905 8.50001 13.6667C8.50001 13.9428 8.27615 14.1667 8.00001 14.1667C6.46465 14.1667 5.07803 13.9764 4.05824 13.6554C3.55124 13.4959 3.10659 13.2953 2.77796 13.0486C2.45726 12.8079 2.16667 12.4587 2.16667 12V4C2.16667 3.55102 2.44011 3.20284 2.75011 2.95853C3.06574 2.70978 3.49149 2.50764 3.97302 2.34713ZM3.36908 3.74394C3.17306 3.89843 3.16667 3.98873 3.16667 3.99998C3.16667 4.01123 3.17306 4.10153 3.36908 4.25601C3.55947 4.40606 3.86596 4.56305 4.28925 4.70415C5.13061 4.9846 6.32474 5.16665 7.66667 5.16665C9.0086 5.16665 10.2027 4.9846 11.0441 4.70415C11.4674 4.56305 11.7739 4.40606 11.9643 4.25601C12.1603 4.10153 12.1667 4.01123 12.1667 3.99998C12.1667 3.98873 12.1603 3.89843 11.9643 3.74394C11.7739 3.5939 11.4674 3.43691 11.0441 3.29581C10.2027 3.01536 9.0086 2.83331 7.66667 2.83331C6.32474 2.83331 5.13061 3.01536 4.28925 3.29581C3.86596 3.43691 3.55947 3.5939 3.36908 3.74394Z",fill:"currentColor"},void 0),p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.8444 12.1373C13.0486 11.8068 13.1667 11.4169 13.1667 11C13.1667 9.80338 12.1966 8.83331 11 8.83331C9.80339 8.83331 8.83333 9.80338 8.83333 11C8.83333 12.1966 9.80339 13.1666 11 13.1666C11.4169 13.1666 11.8068 13.0486 12.1373 12.8444L13.3131 14.0202C13.5084 14.2155 13.825 14.2155 14.0202 14.0202C14.2155 13.8249 14.2155 13.5084 14.0202 13.3131L12.8444 12.1373ZM9.83333 11C9.83333 10.3557 10.3557 9.83331 11 9.83331C11.6443 9.83331 12.1667 10.3557 12.1667 11C12.1667 11.3223 12.0366 11.6133 11.825 11.8249C11.6133 12.0366 11.3223 12.1666 11 12.1666C10.3557 12.1666 9.83333 11.6443 9.83333 11Z",fill:"currentColor"},void 0)]},void 0),sA=e=>{const{severity:t="info"}=e;return{error:p.jsx(Q_,{size:14},void 0),info:p.jsx(Im,{size:14},void 0),success:p.jsx(Y_,{size:14},void 0),warning:p.jsx(Z_,{size:14},void 0),regular:p.jsx(Im,{size:14},void 0),gradient:p.jsx(p.Fragment,{},void 0)}[t]||p.jsx(p.Fragment,{},void 0)},lA="_wrapper_f0zdf_1",cA={wrapper:lA},Tp=e=>{const{title:t,sx:n={},PopperProps:r={},margin:o=12,...i}=e,a=Ht();return p.jsx(g7,{PopperProps:{sx:{'&.MuiTooltip-popper[data-popper-placement*="top"]':{".MuiTooltip-tooltip":{marginBottom:`${o}px`}},'&.MuiTooltip-popper[data-popper-placement*="bottom"]':{".MuiTooltip-tooltip":{marginTop:`${o}px`}},'&.MuiTooltip-popper[data-popper-placement*="left"]':{".MuiTooltip-tooltip":{marginRight:`${o}px`}},'&.MuiTooltip-popper[data-popper-placement*="right"]':{".MuiTooltip-tooltip":{marginLeft:`${o}px`}},".MuiTooltip-tooltip":{borderRadius:"6px",boxShadow:" 0px 1px 10px 0px rgba(107, 121, 141, 0.30)",backgroundColor:"#fff",padding:"12px",color:a.black.black1,fontSize:12,lineHeight:"16px",fontWeight:400},"> * > .MuiTooltip-arrow":{color:"#fff"},...n},...r},title:t,arrow:!0,...i},void 0)},ha=({tooltip:e,children:t,classes:n={root:""}})=>{const{title:r="",...o}=e||{};return e?p.jsx(Tp,{title:r,...o,children:p.jsx("span",{className:qt(cA.wrapper,n.root),children:t},void 0)},void 0):p.jsx(p.Fragment,{children:t},void 0)},uA="_zButton_2ljo4_3",dA="_disabled_2ljo4_16",fA="_xlarge_2ljo4_25",pA="_large_2ljo4_26",gA="_medium_2ljo4_27",hA="_small_2ljo4_58",mA="_tiny_2ljo4_74",vA="_contained_2ljo4_92",yA="_outlined_2ljo4_105",bA="_noShadow_2ljo4_111",xA="_danger_2ljo4_126",SA="_textBlue_2ljo4_135",wA="_noMargin_2ljo4_143",CA="_textBlack_2ljo4_159",_A="_textGhost_2ljo4_183",RA="_text_2ljo4_135",TA="_link_2ljo4_206",nn={zButton:uA,disabled:dA,xlarge:fA,large:pA,medium:gA,small:hA,tiny:mA,contained:vA,outlined:yA,noShadow:bA,danger:xA,textBlue:SA,noMargin:wA,textBlack:CA,textGhost:_A,text:RA,link:TA},B1=e=>{const{danger:t=!1,sx:n,loading:r,disabled:o=!1,activeIconStyle:i,tooltip:a,children:s,isLinkButton:l=!1,size:c="medium",variant:u="contained",withMargin:d=!0,withShadow:f=!0,className:g,...m}=e,y=r?!0:o,C=b.useMemo(()=>a?{PopperProps:{modifiers:[{name:"offset",options:{offset:[0,8]}}]},...a}:void 0,[a]),v=b.useMemo(()=>c==="xs"||c==="small"?"4px":"6px",[c]);return p.jsx(ha,{tooltip:C,children:p.jsx(ZI,{className:qt(nn.zButton,{[nn.xlarge]:c==="xl",[nn.large]:c==="large",[nn.medium]:c==="medium",[nn.small]:c==="small",[nn.tiny]:c==="xs",[nn.contained]:u==="contained",[nn.outlined]:u==="outlined",[nn.danger]:t,[nn.textBlue]:u==="textBlue",[nn.textBlack]:u==="textBlack",[nn.textGhost]:u==="textGhost",[nn.text]:u==="text",[nn.link]:l,[nn.disabled]:y,[nn.noMargin]:!d,[nn.noShadow]:!f},g),sx:{" .MuiButton-startIcon":{marginLeft:0,marginRight:v}," .MuiButton-endIcon":{marginRight:0,marginLeft:v},...n},disableRipple:!0,disabled:y,variant:u,...m,children:r?p.jsxs(h7,{direction:"row",spacing:r?1:0,style:{alignItems:"center"},children:[p.jsx(Ar,{sx:{display:"flex","@keyframes rotate":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}},style:{color:"white",animation:`${r?"rotate 1s linear infinite":""}`},children:r&&p.jsx(iA,{},void 0)},void 0),p.jsx(vt,{component:"span",sx:{color:"inherit",fontSize:"inherit",fontWeight:"inherit",lineHeight:"inherit"},children:s},void 0)]},void 0):s},void 0)},void 0)};B1.displayName="ZButton";const PA="_zIconButton_1y2v2_3",kA="_disabled_1y2v2_7",$A="_withMargin_1y2v2_13",EA="_noMargin_1y2v2_19",MA="_withBorder_1y2v2_28",IA="_large_1y2v2_37",OA="_medium_1y2v2_38",LA="_small_1y2v2_49",NA="_xs_1y2v2_60",po={zIconButton:PA,disabled:kA,withMargin:$A,noMargin:EA,withBorder:MA,large:IA,medium:OA,small:LA,xs:NA},z1=e=>{const{activeStyle:t={},sx:n,tooltip:r,size:o="medium",disabled:i,withBorder:a=!1,withMargin:s=!0,className:l,...c}=e;return p.jsx(ha,{tooltip:r,children:p.jsx(vr,{className:qt(po.zIconButton,l,{[po.large]:o==="large"||o==="xl",[po.medium]:o==="medium",[po.small]:o==="small",[po.xs]:o==="xs",[po.disabled]:i,[po.withBorder]:a,[po.withMargin]:s,[po.noMargin]:!s}),disabled:i,sx:n,disableRipple:!0,...c},void 0)},void 0)},AA=b.forwardRef(function(t,n){return p.jsx(__,{ref:n,...t},void 0)}),H1=e=>{const{open:t=!0,handleClose:n,children:r,severity:o="info",action:i,buttonProps:a,icon:s,...l}=e,c=Ht(),u={regular:{icon:c.black.black3,text:c.black.black1,border:c.stroke.stroke1,background:c.black.black5,actionHover:c.black.black2},info:{icon:c.blue.blue1,text:c.blue.dark2,border:c.blue.blue3,background:c.blue.blue4,actionHover:c.blue.dark1},success:{icon:c.green.green1,text:c.green.green1,border:c.green.green3,background:c.green.green4,actionHover:c.green.green2},warning:{icon:c.yellow.yellow2,text:c.yellow.yellow1,border:c.yellow.yellow3,background:c.yellow.yellow4,actionHover:c.yellow.yellow2},error:{icon:c.red.red2,text:c.red.red1,border:c.red.red3,background:c.red.red4,actionHover:c.red.red2},gradient:{icon:c.black.black1,text:c.black.black1,border:"transparent",background:"linear-gradient(118deg, rgba(0, 239, 139, 0.10) 0.51%, rgba(0, 68, 228, 0.10) 36.98%, rgba(205, 63, 255, 0.10) 72.73%);",actionHover:"transparent"}},d=()=>{n&&n()},f=b.useMemo(()=>u[o],[o,u]);return p.jsx(vs,{in:t,children:p.jsx(AA,{severity:o,sx:{"&.MuiPaper-root":{display:"flex",alignItems:"flex-start",padding:"12px",background:f.background,borderRadius:"12px",border:"1px solid",borderColor:f.border},"& .MuiAlert-message":{padding:0,color:f.text,fontSize:"13px",lineHeight:"135%",fontWeight:400},"& .MuiAlert-action":{padding:0,marginRight:0,display:"flex",alignItems:"center"},"& .MuiAlert-icon":{padding:0,marginRight:"8px",marginTop:"2px",color:f.icon,opacity:1}},icon:s||p.jsx(sA,{severity:o},void 0),action:p.jsxs(Ar,{children:[i&&p.jsx(B1,{size:"small",variant:"outlined",withShadow:!1,sx:{"&.MuiButtonBase-root.MuiButton-outlined":{borderColor:f.text,backgroundColor:"transparent",minWidth:56,".MuiTypography-root":{color:f.text},"&:hover":{borderColor:f.actionHover,backgroundColor:"transparent",".MuiTypography-root":{color:f.actionHover}}}},onClick:i.onClick,...a,children:p.jsx(vt,{variant:"body2Medium",component:"div",children:i.label},void 0)},void 0),n&&p.jsx(z1,{sx:{"&.MuiButtonBase-root.MuiIconButton-root":{marginLeft:"12px","&:hover":{backgroundColor:"transparent","svg.MuiSvgIcon-root":{path:{fill:f.actionHover}}}},"svg.MuiSvgIcon-root":{path:{fill:f.text}}},size:"small",onClick:d,children:p.jsx(Rp,{size:14},void 0)},void 0)]},void 0),...l,children:r},void 0)},void 0)};var Ne;(function(e){e[e.Sunday=0]="Sunday",e[e.Monday=1]="Monday",e[e.Tuesday=2]="Tuesday",e[e.Wednesday=3]="Wednesday",e[e.Thursday=4]="Thursday",e[e.Friday=5]="Friday",e[e.Saturday=6]="Saturday",e[e.RelativeRange=7]="RelativeRange",e[e.AbsoluteRange=8]="AbsoluteRange",e[e.Reset=9]="Reset",e[e.Or=10]="Or",e[e.Copy=11]="Copy",e[e.Copied=12]="Copied",e[e.HidePwd=13]="HidePwd",e[e.ShowPwd=14]="ShowPwd",e[e.StartDay=15]="StartDay",e[e.EndDay=16]="EndDay",e[e.StartTime=17]="StartTime",e[e.EndTime=18]="EndTime",e[e.NoRows=19]="NoRows",e[e.NoOptions=20]="NoOptions"})(Ne||(Ne={}));const DA={[Ne.Sunday]:"日",[Ne.Monday]:"一",[Ne.Tuesday]:"二",[Ne.Wednesday]:"三",[Ne.Thursday]:"四",[Ne.Friday]:"五",[Ne.Saturday]:"六",[Ne.RelativeRange]:"相对范围",[Ne.AbsoluteRange]:"绝对范围",[Ne.Reset]:"重置",[Ne.Or]:"或",[Ne.Copy]:"复制",[Ne.Copied]:"已复制",[Ne.HidePwd]:"隐藏密码",[Ne.ShowPwd]:"展示密码",[Ne.StartDay]:"开始日期",[Ne.EndDay]:"结束日期",[Ne.StartTime]:"开始时间",[Ne.EndTime]:"结束时间",[Ne.NoRows]:"无记录",[Ne.NoOptions]:"无数据"},jA={[Ne.Sunday]:"S",[Ne.Monday]:"M",[Ne.Tuesday]:"T",[Ne.Wednesday]:"W",[Ne.Thursday]:"T",[Ne.Friday]:"F",[Ne.Saturday]:"S",[Ne.RelativeRange]:"Relative Range",[Ne.AbsoluteRange]:"Absolute Range",[Ne.Reset]:"Reset",[Ne.Or]:" or ",[Ne.Copy]:"Copy",[Ne.Copied]:"Copied",[Ne.HidePwd]:"Hide password",[Ne.ShowPwd]:"Show password",[Ne.StartDay]:"Start date",[Ne.EndDay]:"End date",[Ne.StartTime]:"Start time",[Ne.EndTime]:"End time",[Ne.NoRows]:"No Data",[Ne.NoOptions]:"No Options"},Jd=(e,t)=>t==="zhCN"?DA[e]:jA[e],FA=b.forwardRef((e,t)=>{const[n,r]=b.useState(!1),[o,i]=b.useState(!1),{onChange:a,inputProps:s={},enableAutocomplete:l=!1,...c}=e,u=b.useMemo(()=>l?{}:{autoComplete:"new-password"},[l]),d=()=>{o&&r(!n)},f=v=>{const{value:S}=v.target;i(S!==""),a&&a(v)},g=Ht(),m=g.language,y=Jd(Ne.HidePwd,m),C=Jd(Ne.ShowPwd,m);return p.jsx(ef,{inputType:n?"text":"password",prefixComponent:p.jsx(oA,{size:e.size==="small"?12:14,style:{color:g.black.black2}},void 0),suffix:p.jsx(Tp,{title:o?n?y:C:"",placement:"bottom",children:p.jsx(vr,{disableRipple:!0,sx:{padding:0,opacity:o?1:0,cursor:o?"pointer":"default","&:hover":{svg:{color:g.black.black2}}},"aria-label":"toggle password visibility",onClick:d,children:n?p.jsx(eA,{size:e.size==="small"?12:14,sx:{color:g.black.black1}},void 0):p.jsx(JN,{size:e.size==="small"?12:14,sx:{color:g.black.black1}},void 0)},void 0)},void 0),ref:t,onChange:f,inputProps:{...u,...s},...c},void 0)});var Li;(function(e){e.default="default",e.password="pwd",e.number="number",e.suffixSelect="suffixSelect"})(Li||(Li={}));const BA="_button_n3sxg_3",zA="_disabled_n3sxg_16",HA="_text_n3sxg_23",VA="_parentInputDisabled_n3sxg_30",WA="_icon_n3sxg_41",UA="_smallButton_n3sxg_46",GA="_input_n3sxg_50",qA="_inputFocus_n3sxg_56",KA="_paper_n3sxg_63",ZA="_menu_n3sxg_67",QA="_menuItem_n3sxg_71",YA="_selected_n3sxg_83",XA="_menuList_n3sxg_89",Gn={button:BA,disabled:zA,text:HA,parentInputDisabled:VA,icon:WA,smallButton:UA,input:GA,inputFocus:qA,paper:KA,menu:ZA,menuItem:QA,selected:YA,menuList:XA},JA=({options:e=[],onSelectChange:t,defaultSelectedValue:n="",classes:r={label:"",menuRoot:"",menuList:"",menuItem:"",menuPaper:""},setIsSelectActive:o,disabled:i=!1,inputDisabled:a,size:s})=>{const[l,c]=b.useState(null),[u,d]=b.useState("");b.useEffect(()=>{const y=e.find(v=>v.value===n),C=(y==null?void 0:y.label)||"";d(C)},[n]);const f=()=>{c(null),o&&o(!1)},g=y=>{i||(c(y.currentTarget),o&&o(!0))},m=y=>{t&&t(y.value),d(y.label),f()};return p.jsxs(p.Fragment,{children:[p.jsxs(vt,{role:"button",component:"div",className:qt(Gn.button,{[Gn.smallButton]:s==="small",[Gn.disabled]:i,[Gn.parentInputDisabled]:a},r.label),onClick:g,children:[p.jsx(vt,{variant:"body1",className:Gn.text,children:u},void 0),!i&&p.jsx(la,{size:14,className:Gn.icon},void 0)]},void 0),p.jsx(A1,{open:!!l,anchorEl:l,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},onClose:f,classes:{root:qt(Gn.menu,r.menuRoot),paper:qt(Gn.paper,r.menuPaper),list:qt(Gn.menuList,r.menuList)},children:e.map(y=>p.jsx(Lc,{sx:{"&.Mui-selected.Mui-focusVisible":{backgroundColor:"#fff"}},className:qt(Gn.menuItem,{[Gn.selected]:u===y.label},r.menuItem),onClick:()=>m(y),children:y.label},y.value))},void 0)]},void 0)},e9=b.forwardRef((e,t)=>{const{options:n,onSelectChange:r,defaultSelectedValue:o,selectClasses:i,disableSelect:a,disabled:s=!1,size:l,...c}=e,[u,d]=b.useState(!1);return p.jsx(ef,{className:qt(Gn.input,{[Gn.inputFocus]:u}),disabled:s,size:l,suffix:p.jsx(JA,{options:n,onSelectChange:r,defaultSelectedValue:o,classes:i,setIsSelectActive:d,disabled:a,inputDisabled:s,size:l},void 0),ref:t,...c},void 0)}),t9=e=>({"& .MuiFormHelperText-root":{margin:"4px 0 0 0",color:e.black.black3,fontSize:12,lineHeight:"135%","&.Mui-error":{color:e.red.red1}}}),hr="0px 1px 2px 4px rgba(33, 37, 44, 0.08)",ca="0px 1px 2px 0px rgba(33, 37, 44, 0.08)",n9=(e,t)=>({borderRadius:t==="small"?"6px":"8px","& .MuiOutlinedInput-notchedOutline":{borderColor:e.stroke.stroke1,boxShadow:ca,transition:"all 0.2s"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"transparent",borderWidth:1,boxShadow:`0px 0px 0px 4px ${e.blue.blue4}, ${hr}`},"&.Mui-disabled":{"& .MuiOutlinedInput-input":{zIndex:"1","::-webkit-input-placeholder":{color:e.black.black3,opacity:"1"}},"& .MuiOutlinedInput-notchedOutline":{borderColor:e.stroke.stroke1,backgroundColor:e.black.black5,borderWidth:1},"&:hover .MuiOutlinedInput-notchedOutline":{boxShadow:ca}},"&.Mui-focused":{"& .MuiOutlinedInput-notchedOutline":{borderColor:e.blue.blue1,borderWidth:1,boxShadow:`0px 0px 0px 4px ${e.blue.blue4}, ${hr}`}},"&.Mui-focused.Mui-error":{"& .MuiOutlinedInput-notchedOutline":{boxShadow:`0px 0px 0px 4px ${e.red.red4}, ${hr}`}},"&.Mui-error":{"& .MuiOutlinedInput-notchedOutline":{borderColor:e.red.red2},"&:hover .MuiOutlinedInput-notchedOutline":{boxShadow:`0px 0px 0px 4px ${e.red.red4}, ${hr}`}}}),r9=(e,t,n)=>({height:n==="small"?"28px":"36px",boxSizing:"border-box",padding:t?n==="small"?"4px 10px 4px 4px":"8px 12px 8px 4px":n==="small"?"4px 10px":"8px 12px",fontSize:n==="small"?13:14,fontWeight:400,color:e.black.black1,caretColor:e.black.black1,"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #fff inset",WebkitTextFillColor:e.black.black1},"&[type=password]":{WebkitTextStrokeWidth:"2.8px",letterSpacing:"4px"},"&[type=number]::-webkit-outer-spin-button, &[type=number]::-webkit-inner-spin-button":{WebkitAppearance:"none",margin:0}}),o9=(e,t,n,r)=>{let o=n9(e,r);return t&&(o={...o,paddingRight:r==="small"?"8px":"12px"}),n&&(o={...o,paddingLeft:"12px"}),o},ef=b.forwardRef((e,t)=>{const{label:n,labelPosition:r="top",labelClassName:o="",wrapperClassName:i="",suffix:a=null,prefixComponent:s=null,inputType:l="text",inputProps:c,size:u="medium",...d}=e,{sx:f={},...g}=c||{},m=Ht();return p.jsxs(Ar,{sx:{display:"flex",alignItems:r==="top"?"flex-start":"center",gap:2,flexDirection:r==="top"?"column":"row"},className:i,children:[n?p.jsx(vt,{component:"div",variant:"h4Medium",className:o,children:n},void 0):null,p.jsx(GN,{InputProps:{sx:o9(m,a,s,u),endAdornment:a,startAdornment:s,type:l},inputProps:{sx:{...r9(m,s,u),...f},ref:t,...g},sx:t9(m),...d},void 0)]},void 0)}),V1=b.forwardRef((e,t)=>{const{inputComponentType:n=Li.default,...r}=e,i={[Li.default]:ef,[Li.password]:FA,[Li.number]:ef,[Li.suffixSelect]:e9}[n];return p.jsx(i,{ref:t,...r},void 0)}),i9="_root_903dp_3",a9="_label_903dp_6",s9="_checkboxIcon_903dp_19",l9="_inner_903dp_20",c9="_checkbox_903dp_19",u9="_disabledCheckbox_903dp_49",d9="_disabled_903dp_49",f9="_indeterminate_903dp_83",p9="_checked_903dp_84",Lr={root:i9,label:a9,checkboxIcon:s9,inner:l9,checkbox:c9,disabledCheckbox:u9,disabled:d9,indeterminate:f9,checked:p9},mx=e=>p.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:e.children},void 0),Pg=e=>{const{checked:t=!1,indeterminate:n=!1,disabled:r=!1}=e;return p.jsx("div",{className:qt(Lr.checkboxIcon,{[Lr.checked]:t,[Lr.indeterminate]:n,[Lr.disabled]:r}),children:p.jsxs("div",{className:Lr.inner,children:[t&&p.jsx(mx,{children:p.jsx("path",{d:"M1 4L3.66667 7.33333L9 2",stroke:"white",strokeWidth:"1.4"},void 0)},void 0),n&&p.jsx(mx,{children:p.jsx("path",{d:"M1.22876 4.66665L8.77124 4.66665",stroke:"white",strokeWidth:"1.4"},void 0)},void 0)]},void 0)},void 0)},vx=rt.forwardRef((e,t)=>{const{disabled:n,...r}=e;return p.jsx(cO,{ref:t,disableRipple:!0,disableTouchRipple:!0,disabled:n,icon:p.jsx(Pg,{disabled:n},void 0),checkedIcon:p.jsx(Pg,{checked:!0,disabled:n},void 0),indeterminateIcon:p.jsx(Pg,{indeterminate:!0},void 0),classes:{root:Lr.checkbox,checked:Lr.checkedCheckbox,disabled:Lr.disabledCheckbox,indeterminate:Lr.indeterminateCheckbox},...r},void 0)}),tf=rt.forwardRef(function(e,t){const{label:n="",disabled:r,...o}=e;return n?p.jsx(D_,{classes:{root:Lr.root},label:p.jsx(vt,{className:Lr.label,children:n},void 0),disabled:r,control:p.jsx(vx,{ref:t,...o},void 0)},void 0):p.jsx(vx,{ref:t,disabled:r,...o},void 0)});function g9(e){return e&&e.ownerDocument||document}function h9(e,t){typeof e=="function"?e(t):e&&(e.current=t)}const m9=typeof window<"u"?b.useLayoutEffect:b.useEffect;function v9(...e){return b.useMemo(()=>e.every(t=>t==null)?null:t=>{e.forEach(n=>{h9(n,t)})},e)}const yx=e=>e,y9=()=>{let e=yx;return{configure(t){e=t},generate(t){return e(t)},reset(){e=yx}}},b9=y9(),x9={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function X_(e,t,n="Mui"){const r=x9[t];return r?`${n}-${r}`:`${b9.generate(e)}-${t}`}function S9(e,t,n="Mui"){const r={};return t.forEach(o=>{r[o]=X_(e,o,n)}),r}function mc(e){"@babel/helpers - typeof";return mc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},mc(e)}function w9(e,t){if(mc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(mc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function C9(e){var t=w9(e,"string");return mc(t)=="symbol"?t:t+""}const _9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"መንገድ አሳይ"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ወደ መጀመሪያው ገጽ ይሂዱ":e==="last"?"ወደ መጨረሻው ገጽ ይሂዱ":e==="next"?"ወደ ቀጣዩ ገጽ ይሂዱ":"ወደ ቀዳሚው ገጽ ይሂዱ",labelRowsPerPage:"ረድፎች በአንድ ገጽ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t} ከ ${n!==-1?n:`${t} በላይ`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ኮከ${e!==1?"ቦች":"ብ"}`,emptyLabelText:"ባዶ"}},MuiAutocomplete:{defaultProps:{clearText:"አጽዳ",closeText:"ዝጋ",loadingText:"በመጫን ላይ…",noOptionsText:"አማራጮች የሉም",openText:"ክፈት"}},MuiAlert:{defaultProps:{closeText:"ዝጋ"}},MuiPagination:{defaultProps:{"aria-label":"የገጽ አሰሳ",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ወደ "}ገጽ ${t}${n?"":" ሂድ"}`:e==="first"?"ወደ መጀመሪያው ገጽ ይሂዱ":e==="last"?"ወደ መጨረሻው ገጽ ይሂዱ":e==="next"?"ወደ ቀጣዩ ገጽ ይሂዱ":"ወደ ቀዳሚው ገጽ ይሂዱ"}}}},R9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"إظهار المسار"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل إلى الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة",labelRowsPerPage:"عدد الصفوف في الصفحة:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} من ${n!==-1?n:` أكثر من${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"نجوم":"نجمة"}`,emptyLabelText:"فارغ"}},MuiAutocomplete:{defaultProps:{clearText:"مسح",closeText:"إغلاق",loadingText:"جار التحميل...",noOptionsText:"لا يوجد خيارات",openText:"فتح"}},MuiAlert:{defaultProps:{closeText:"إغلاق"}},MuiPagination:{defaultProps:{"aria-label":"التنقل عبر الصفحات",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"انتقل إلى "} صفحة ${t}`:e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل إلى الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة"}}}},T9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"إظهار المسار"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"الانتقال إلى الصفحة الأولى":e==="last"?"الانتقال إلى الصفحة الأخيرة":e==="next"?"الانتقال إلى الصفحة التالية":"الانتقال إلى الصفحة السابقة",labelRowsPerPage:"عدد الصفوف في الصفحة:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} من ${n!==-1?n:` أكثر من${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"نجوم":"نجمة"}`,emptyLabelText:"فارغ"}},MuiAutocomplete:{defaultProps:{clearText:"مسح",closeText:"إغلاق",loadingText:"جار التحميل...",noOptionsText:"لا توجد خيارات",openText:"فتح"}},MuiAlert:{defaultProps:{closeText:"إغلاق"}},MuiPagination:{defaultProps:{"aria-label":"التنقل عبر الصفحات",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"الانتقال إلى "} صفحة ${t}`:e==="first"?"الانتقال إلى الصفحة الأولى":e==="last"?"الانتقال الي الصفحة الأخيرة":e==="next"?"الانتقال إلى الصفحة التالية":"الانتقال إلى الصفحة السابقة"}}}},P9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"إظهار المسار"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل إلى الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة",labelRowsPerPage:"عدد الصفوف في الصفحة:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} من ${n!==-1?n:` أكثر من${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"نجوم":"نجمة"}`,emptyLabelText:"فارغ"}},MuiAutocomplete:{defaultProps:{clearText:"مسح",closeText:"إغلاق",loadingText:"جار التحميل...",noOptionsText:"لا يوجد خيارات",openText:"فتح"}},MuiAlert:{defaultProps:{closeText:"إغلاق"}},MuiPagination:{defaultProps:{"aria-label":"التنقل عبر الصفحات",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"انتقل إلى "} صفحة ${t}`:e==="first"?"انتقل إلى الصفحة الأولى":e==="last"?"انتقل الي الصفحة الأخيرة":e==="next"?"انتقل إلى الصفحة التالية":"انتقل إلى الصفحة السابقة"}}}},k9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Yolu göstər"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Birinci səhifəyə keç":e==="last"?"Sonuncu səhifəyə keç":e==="next"?"Növbəti səhifəyə keç":"Əvvəlki səhifəyə keç",labelRowsPerPage:"Səhifəyə düşən sətrlər:"}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Ulduz";const n=e%10;return n>1&&n<5&&(t="Ulduzlar"),`${e} ${t}`},emptyLabelText:"Boş"}},MuiAutocomplete:{defaultProps:{clearText:"Silmək",closeText:"Bağlamaq",loadingText:"Yüklənir…",noOptionsText:"Seçimlər mövcud deyil",openText:"Открыть"}},MuiAlert:{defaultProps:{closeText:"Bağlamaq"}},MuiPagination:{defaultProps:{"aria-label":"Səhifənin naviqasiyası",getItemAriaLabel:(e,t,n)=>e==="page"?`${t} ${n?"səhifə":"səhifəyə keç"}`:e==="first"?"Birinci səhifəyə keç":e==="last"?"Sonuncu səhifəyə keç":e==="next"?"Növbəti səhifəyə keç":"Əvvəlki səhifəyə keç"}}}},$9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"পথ দেখান"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"প্রথম পৃষ্ঠায় যান":e==="last"?"শেষ পৃষ্ঠায় যান":e==="next"?"পরবর্তী পৃষ্ঠায় যান":"আগের পৃষ্ঠায় যান",labelRowsPerPage:"প্রতি পৃষ্ঠায় সারি:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`${t} থেকে বেশি`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} স্টার`,emptyLabelText:"খালি"}},MuiAutocomplete:{defaultProps:{clearText:"পরিষ্কার করুন",closeText:"বন্ধ করুন",loadingText:"লোড হচ্ছে…",noOptionsText:"কোন অপশন নেই",openText:"ওপেন করুন"}},MuiAlert:{defaultProps:{closeText:"বন্ধ করুন"}},MuiPagination:{defaultProps:{"aria-label":"পেজিনেশন নেভিগেশন",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"যান "}পৃষ্ঠা ${t}-এ`:e==="first"?"প্রথম পৃষ্ঠায় যান":e==="last"?"শেষ পৃষ্ঠায় যান":e==="next"?"পরবর্তী পৃষ্ঠায় যান":"আগের পৃষ্ঠায় যান"}}}},E9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Паказаць шлях"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Перайсці на першую старонку":e==="last"?"Перайсці на апошнюю старонку":e==="next"?"Перайсці на наступную старонку":"Перайсці на папярэднюю старонку",labelRowsPerPage:"Радкоў на старонцы:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} з ${n!==-1?n:`больш чым ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Зорак";const n=e%10;return n>1&&n<5&&(e<10||e>20)?t="Зоркі":n===1&&e%100!==11&&(t="Зорка"),`${e} ${t}`},emptyLabelText:"Рэйтынг адсутнічае"}},MuiAutocomplete:{defaultProps:{clearText:"Ачысціць",closeText:"Закрыць",loadingText:"Загрузка…",noOptionsText:"Няма варыянтаў",openText:"Адкрыць"}},MuiAlert:{defaultProps:{closeText:"Закрыць"}},MuiPagination:{defaultProps:{"aria-label":"Навігацыя па старонкам",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t} старонка`:`Перайсці на ${t} старонку`:e==="first"?"Перайсці на першую старонку":e==="last"?"Перайсці на апошнюю старонку":e==="next"?"Перайсці на наступную старонку":"Перайсці на папярэднюю старонку"}}}},M9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Показване на пътя"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Отиди на първата страница":e==="last"?"Отиди на последната страница":e==="next"?"Отиди на следващата страница":"Отиди на предишната страница",labelRowsPerPage:"Редове на страница:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Звезд${e!==1?"и":"а"}`,emptyLabelText:"Изчисти"}},MuiAutocomplete:{defaultProps:{clearText:"Изчисти",closeText:"Затвори",loadingText:"Зареждане…",noOptionsText:"Няма налични опции",openText:"Отвори"}},MuiAlert:{defaultProps:{closeText:"Затвори"}},MuiPagination:{defaultProps:{"aria-label":"Пагинация",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Към "}страница ${t}`:e==="first"?"Отиди на първата страница":e==="last"?"Отиди на последната страница":e==="next"?"Отиди на следващата страница":"Отиди на предишната страница"}}}},I9={components:{MuiTablePagination:{defaultProps:{labelRowsPerPage:"Files per pàgina:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"Estrelles":"Estrella"}`,emptyLabelText:"Buit"}},MuiAutocomplete:{defaultProps:{clearText:"Netejar",closeText:"Tancar",loadingText:"Carregant…",noOptionsText:"Sense opcions",openText:"Obert"}},MuiAlert:{defaultProps:{closeText:"Tancat"}}}},O9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Ukázat cestu"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Jít na první stránku":e==="last"?"Jít na poslední stránku":e==="next"?"Jít na další stránku":"Jít na předchozí stránku",labelRowsPerPage:"Řádků na stránce:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} z ${n!==-1?n:`více než ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>e===1?`${e} hvězdička`:e>=2&&e<=4?`${e} hvězdičky`:`${e} hvězdiček`,emptyLabelText:"Prázdné"}},MuiAutocomplete:{defaultProps:{clearText:"Vymazat",closeText:"Zavřít",loadingText:"Načítání…",noOptionsText:"Žádné možnosti",openText:"Otevřít"}},MuiAlert:{defaultProps:{closeText:"Zavřít"}},MuiPagination:{defaultProps:{"aria-label":"Navigace stránkováním",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Jít na "}${t}. stránku`:e==="first"?"Jít na první stránku":e==="last"?"Jít na poslední stránku":e==="next"?"Jít na další stránku":"Jít na předchozí stránku"}}}},L9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Vis sti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå til den første side":e==="last"?"Gå til den sidste side":e==="next"?"Gå til den næste side":"Gå til den forrige side",labelRowsPerPage:"Rækker pr side:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t} af ${n!==-1?n:`mere end ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stjern${e!==1?"er":""}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Slet",closeText:"Luk",loadingText:"Indlæser…",noOptionsText:"Ingen muligheder",openText:"Åben"}},MuiAlert:{defaultProps:{closeText:"Luk"}},MuiPagination:{defaultProps:{"aria-label":"Sideinddelings navigation",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Go to "}page ${t}`:e==="first"?"Gå til den første side":e==="last"?"Gå til den sidste side":e==="next"?"Gå til den næste side":"Gå til den forrige side"}}}},N9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pfad anzeigen"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Zur ersten Seite":e==="last"?"Zur letzten Seite":e==="next"?"Zur nächsten Seite":"Zur vorherigen Seite",labelRowsPerPage:"Zeilen pro Seite:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} von ${n!==-1?n:`mehr als ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"Sterne":"Stern"}`,emptyLabelText:"Keine Wertung"}},MuiAutocomplete:{defaultProps:{clearText:"Leeren",closeText:"Schließen",loadingText:"Wird geladen…",noOptionsText:"Keine Optionen",openText:"Öffnen"}},MuiAlert:{defaultProps:{closeText:"Schließen"}},MuiPagination:{defaultProps:{"aria-label":"Navigation via Seitennummerierung",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gehe zu "}Seite ${t}`:e==="first"?"Zur ersten Seite":e==="last"?"Zur letzten Seite":e==="next"?"Zur nächsten Seite":"Zur vorherigen Seite"}}}},A9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Εμφάνιση διαδρομής"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Πρώτη σελίδα":e==="last"?"Τελευταία σελίδα":e==="next"?"Επόμενη σελίδα":"Προηγούμενη σελίδα",labelRowsPerPage:"Γραμμές ανα σελίδα:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} από ${n!==-1?n:`πάνω από ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Αστέρι${e!==1?"α":""}`,emptyLabelText:"Χωρίς βαθμολόγηση"}},MuiAutocomplete:{defaultProps:{clearText:"Καθαρισμός",closeText:"Κλείσιμο",loadingText:"Φόρτωση…",noOptionsText:"Δεν υπάρχουν επιλογές",openText:"Άνοιγμα"}},MuiAlert:{defaultProps:{closeText:"Κλείσιμο"}},MuiPagination:{defaultProps:{"aria-label":"Πλοήγηση σε σελίδες",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Μετάβαση "}σελίδα ${t}`:e==="first"?"Πρώτη σελίδα":e==="last"?"Τελευταία σελίδα":e==="next"?"Επόμενη σελίδα":"Προηγούμενη σελίδα"}}}},D9={},j9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mostrar ruta"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ir a la primera página":e==="last"?"Ir a la última página":e==="next"?"Ir a la página siguiente":"Ir a la página anterior",labelRowsPerPage:"Filas por página:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} de ${n!==-1?n:`más de ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Estrella${e!==1?"s":""}`,emptyLabelText:"Vacío"}},MuiAutocomplete:{defaultProps:{clearText:"Limpiar",closeText:"Cerrar",loadingText:"Cargando…",noOptionsText:"Sin opciones",openText:"Abierto"}},MuiAlert:{defaultProps:{closeText:"Cerrar"}},MuiPagination:{defaultProps:{"aria-label":"Paginador",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ir a la "}página ${t}`:e==="first"?"Ir a la primera página":e==="last"?"Ir a la última página":e==="next"?"Ir a la página siguiente":"Ir a la página anterior"}}}},F9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Näita teed"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Vali esimene lehekülg":e==="last"?"Vali viimane lehekülg":e==="next"?"Vali järgmine lehekülg":"Vali eelmine lehekülg",labelRowsPerPage:"Ridu leheküljel:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`rohkem kui ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Tärn${e!==1?"i":""}`,emptyLabelText:"Tühi"}},MuiAutocomplete:{defaultProps:{clearText:"Tühjenda",closeText:"Sulge",loadingText:"Laen…",noOptionsText:"Valikuid ei ole",openText:"Ava"}},MuiAlert:{defaultProps:{closeText:"Sulge"}},MuiPagination:{defaultProps:{"aria-label":"Lehekülgede valik",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Vali "}lehekülg ${t}`:e==="first"?"Vali esimene lehekülg":e==="last"?"Vali viimane lehekülg":e==="next"?"Vali järgmine lehekülg":"Vali eelmine lehekülg"}}}},B9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"نمایش مسیر"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"رفتن به اولین صفحه":e==="last"?"رفتن به آخرین صفحه":e==="next"?"رفتن به صفحه‌ی بعدی":"رفتن به صفحه‌ی قبلی",labelRowsPerPage:"تعداد سطرهای هر صفحه:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} از ${n!==-1?n:`بیشتر از ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ستاره`,emptyLabelText:"خالی"}},MuiAutocomplete:{defaultProps:{clearText:"پاک‌کردن",closeText:"بستن",loadingText:"در حال بارگذاری…",noOptionsText:"بی‌نتیجه",openText:"بازکردن"}},MuiAlert:{defaultProps:{closeText:"بستن"}},MuiPagination:{defaultProps:{"aria-label":"ناوبری صفحه",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"رفتن به "}صفحهٔ ${t}`:e==="first"?"رفتن به اولین صفحه":e==="last"?"رفتن به آخرین صفحه":e==="next"?"رفتن به صفحه‌ی بعدی":"رفتن به صفحه‌ی قبلی"}}}},z9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Näytä reitti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Mene ensimmäiselle sivulle":e==="last"?"Mene viimeiselle sivulle":e==="next"?"Mene seuraavalle sivulle":"Mene edelliselle sivulle",labelRowsPerPage:"Rivejä per sivu:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`enemmän kuin ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Täht${e!==1?"eä":"i"}`,emptyLabelText:"Tyhjä"}},MuiAutocomplete:{defaultProps:{clearText:"Tyhjennä",closeText:"Sulje",loadingText:"Ladataan…",noOptionsText:"Ei valintoja",openText:"Avaa"}},MuiAlert:{defaultProps:{closeText:"Sulje"}},MuiPagination:{defaultProps:{"aria-label":"Sivutus navigaatio",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"sivu":"Mene sivulle"} ${t}`:e==="first"?"Mene ensimmäiselle sivulle":e==="last"?"Mene viimeiselle sivulle":e==="next"?"Mene seuraavalle sivulle":"Mene edelliselle sivulle"}}}},H9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Montrer le chemin"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Aller à la première page":e==="last"?"Aller à la dernière page":e==="next"?"Aller à la page suivante":"Aller à la page précédente",labelRowsPerPage:"Lignes par page :",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} sur ${n!==-1?n:`plus que ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Etoile${e!==1?"s":""}`,emptyLabelText:"Vide"}},MuiAutocomplete:{defaultProps:{clearText:"Vider",closeText:"Fermer",loadingText:"Chargement…",noOptionsText:"Pas de résultats",openText:"Ouvrir"}},MuiAlert:{defaultProps:{closeText:"Fermer"}},MuiPagination:{defaultProps:{"aria-label":"navigation de pagination",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Aller à la "}page ${t}`:e==="first"?"Aller à la première page":e==="last"?"Aller à la dernière page":e==="next"?"Aller à la page suivante":"Aller à la page précédente"}}}},V9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"הצג נתיב"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"לעמוד הראשון":e==="last"?"לעמוד האחרון":e==="next"?"לעמוד הבא":"לעמוד הקודם",labelRowsPerPage:"שורות בעמוד:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} מתוך ${n!==-1?n:`יותר מ ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} כוכב${e!==1?"ים":""}`,emptyLabelText:"ריק"}},MuiAutocomplete:{defaultProps:{clearText:"נקה",closeText:"סגור",loadingText:"טוען…",noOptionsText:"אין אופציות",openText:"פתח"}},MuiAlert:{defaultProps:{closeText:"סגור"}},MuiPagination:{defaultProps:{"aria-label":"ניווט בעמודים",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ל "}עמוד ${t}`:e==="first"?"לעמוד הראשון":e==="last"?"לעמוד האחרון":e==="next"?"לעמוד הבא":"לעמוד הקודם"}}}},W9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"रास्ता दिखायें"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"पहले पृष्ठ पर जाएँ":e==="last"?"अंतिम पृष्ठ पर जाएँ":e==="next"?"अगले पृष्ठ पर जाएँ":"पिछले पृष्ठ पर जाएँ",labelRowsPerPage:"पंक्तियाँ प्रति पृष्ठ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t===-1?n:t} कुल ${n} में`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} तार${e!==1?"े":"ा"}`,emptyLabelText:"रिक्त"}},MuiAutocomplete:{defaultProps:{clearText:"हटायें",closeText:"बंद करें",loadingText:"लोड हो रहा है…",noOptionsText:"कोई विकल्प नहीं",openText:"खोलें"}},MuiAlert:{defaultProps:{closeText:"बंद करें"}},MuiPagination:{defaultProps:{"aria-label":"पृस्ठानुसार संचालन",getItemAriaLabel:(e,t,n)=>e==="page"?`पृष्ठ ${t} ${n?"":" पर जाएँ"}`:e==="first"?"पहले पृष्ठ पर जाएँ":e==="last"?"अंतिम पृष्ठ पर जाएँ":e==="next"?"अगले पृष्ठ पर जाएँ":"पिछले पृष्ठ पर जाएँ"}}}},U9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pokaži putanju"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na posljednju stranicu":e==="next"?"Idi na sljedeću stranicu":"Idi na prethodnu stranicu",labelRowsPerPage:"Redova po stranici:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} od ${n!==-1?n:`više nego ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10,n=e%100;return[2,3,4].includes(t)&&![12,13,14].includes(n)?"Zvijezde":"Zvijezda"},emptyLabelText:"Prazno"}},MuiAutocomplete:{defaultProps:{clearText:"Briši",closeText:"Zatvori",loadingText:"Učitavanje…",noOptionsText:"Nema opcija",openText:"Otvori"}},MuiAlert:{defaultProps:{closeText:"Zatvori"}},MuiPagination:{defaultProps:{"aria-label":"Navigacija po stranicama",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Idi na "}stranicu ${t}`:e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na zadnju stranicu":e==="next"?"Idi na sljedeću stranicu":"Idi na prethodnu stranicu"}}}},G9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Útvonal"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Első oldalra":e==="last"?"Utolsó oldalra":e==="next"?"Következő oldalra":"Előző oldalra",labelRowsPerPage:"Sorok száma:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Csillag`,emptyLabelText:"Üres"}},MuiAutocomplete:{defaultProps:{clearText:"Törlés",closeText:"Bezárás",loadingText:"Töltés…",noOptionsText:"Nincs találat",openText:"Megnyitás"}},MuiAlert:{defaultProps:{closeText:"Bezárás"}},MuiPagination:{defaultProps:{"aria-label":"Lapozás",getItemAriaLabel:(e,t,n)=>e==="page"?`${t}. oldal${n?"":"ra"}`:e==="first"?"Első oldalra":e==="last"?"Utolsó oldalra":e==="next"?"Következő oldalra":"Előző oldalra"}}}},q9={components:{MuiTablePagination:{defaultProps:{labelRowsPerPage:"Տողեր մեկ էջում`"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Աստղ`,emptyLabelText:"Դատարկ"}},MuiAutocomplete:{defaultProps:{clearText:"Մաքրել",closeText:"Փակել",loadingText:"Բեռնում…",noOptionsText:"Տարբերակներ չկան",openText:"Բացել"}},MuiAlert:{defaultProps:{closeText:"Փակել"}}}},K9={components:{MuiTablePagination:{defaultProps:{labelRowsPerPage:"Baris per halaman:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Bintang`}},MuiAutocomplete:{defaultProps:{clearText:"Hapus",closeText:"Tutup",loadingText:"Memuat…",noOptionsText:"Tidak ada opsi",openText:"Buka"}},MuiAlert:{defaultProps:{closeText:"Tutup"}}}},Z9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Sýna slóð"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Fara á fyrstu síðu":e==="last"?"Fara á síðustu síðu":e==="next"?"Fara á næstu síðu":"Fara á fyrri síðu",labelRowsPerPage:"Raðir á síðu:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} af ${n!==-1?n:`fleiri en ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e===1?"stjarna":"stjörnur"}`,emptyLabelText:"Tómt"}},MuiAutocomplete:{defaultProps:{clearText:"Hreinsa",closeText:"Loka",loadingText:"Hlaða…",noOptionsText:"Engar niðurstöður",openText:"Opna"}},MuiAlert:{defaultProps:{closeText:"Loka"}},MuiPagination:{defaultProps:{"aria-label":"Síðuflakk",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"Síða":"Fara á síðu"} ${t}`:e==="first"?"Fara á fyrstu síðu":e==="last"?"Fara á síðustu síðu":e==="next"?"Fara á næstu síðu":"Fara á fyrri síðu"}}}},Q9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Visualizza percorso"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Vai alla prima pagina":e==="last"?"Vai all'ultima pagina":e==="next"?"Vai alla pagina successiva":"Vai alla pagina precedente",labelRowsPerPage:"Righe per pagina:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} di ${n!==-1?n:`più di ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stell${e!==1?"e":"a"}`,emptyLabelText:"Vuoto"}},MuiAutocomplete:{defaultProps:{clearText:"Svuota",closeText:"Chiudi",loadingText:"Caricamento in corso…",noOptionsText:"Nessuna opzione",openText:"Apri"}},MuiAlert:{defaultProps:{closeText:"Chiudi"}},MuiPagination:{defaultProps:{"aria-label":"Navigazione impaginata",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Vai alla "}pagina ${t}`:e==="first"?"Vai alla prima pagina":e==="last"?"Vai all'ultima pagina":e==="next"?"Vai alla pagina successiva":"Vai alla pagina precedente"}}}},Y9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"すべて表示"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"最初のページへ":e==="last"?"最後のページへ":e==="next"?"次のページへ":"前のページへ",labelRowsPerPage:"ページあたりの行数:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}~${t} / ${n!==-1?n:`${t}以上`}`}},MuiRating:{defaultProps:{getLabelText:e=>`星${e}`,emptyLabelText:"星なし"}},MuiAutocomplete:{defaultProps:{clearText:"クリア",closeText:"閉じる",loadingText:"読み込み中…",noOptionsText:"データがありません",openText:"開く"}},MuiAlert:{defaultProps:{closeText:"閉じる"}},MuiPagination:{defaultProps:{"aria-label":"ページ選択",getItemAriaLabel:(e,t,n)=>e==="page"?`ページ${t}${n?"":"へ"}`:e==="first"?"最初のページへ":e==="last"?"最後のページへ":e==="next"?"次のページへ":"前のページへ"}}}},X9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"បង្ហាញផ្លូវ"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ទៅទំព័រដំបូង":e==="last"?"ទៅទំព័រចុងក្រោយ":e==="next"?"ទៅទំព័របន្ទាប់":"ទៅទំព័រមុន",labelRowsPerPage:"ចំនួនជួរដេកក្នុងមួយទំព័រ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e} - ${t} នៃ ${n!==-1?n:`ច្រើនជាង ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ផ្កាយ`,emptyLabelText:"ទទេ"}},MuiAutocomplete:{defaultProps:{clearText:"លុបចោល",closeText:"បិទ",loadingText:"កំពុងលោត…",noOptionsText:"គ្មានជម្រើស",openText:"បើក"}},MuiAlert:{defaultProps:{closeText:"បិទ"}},MuiPagination:{defaultProps:{"aria-label":"រុករកទំព័រ",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ទៅ "}ទំព័រ ${t}`:e==="first"?"ទៅទំព័រដំបូង":e==="last"?"ទៅទំព័រចុងក្រោយ":e==="next"?"ទៅទំព័របន្ទាប់":"ទៅទំព័រមុន"}}}},J9={components:{MuiBreadcrumbs:{defaultProps:{expandText:"경로 보기"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"첫 번째 페이지로 이동":e==="last"?"마지막 페이지로 이동":e==="next"?"다음 페이지로 이동":"이전 페이지로 이동",labelRowsPerPage:"페이지 당 행:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} / ${n!==-1?n:`${t}개 이상`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 점`,emptyLabelText:"빈 텍스트"}},MuiAutocomplete:{defaultProps:{clearText:"지우기",closeText:"닫기",loadingText:"불러오는 중…",noOptionsText:"옵션 없음",openText:"열기"}},MuiAlert:{defaultProps:{closeText:"닫기"}},MuiPagination:{defaultProps:{"aria-label":"페이지네이션 네비게이션",getItemAriaLabel:(e,t,n)=>e==="page"?`${t} 번째 페이지${n?"":"로 이동"}`:e==="first"?"첫 번째 페이지로 이동":e==="last"?"마지막 페이지로 이동":e==="next"?"다음 페이지로 이동":"이전 페이지로 이동"}}}},eD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"ڕێچکە پیشان بدە"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"چوونە یەکەم پەڕە":e==="last"?"چوونە کۆتا پەڕە":e==="next"?"چوونە پەڕەی دواتر":"گەڕانەوە بۆ پەڕەی پێشوو",labelRowsPerPage:"ژمارەی ڕیزەکان لە هەر پەڕەیەک:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} لە ${n!==-1?n:` زیاترە لە${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"ئەستێرەکان":"ئەستێرە"}`,emptyLabelText:"خاڵیە"}},MuiAutocomplete:{defaultProps:{clearText:"سڕینەوە",closeText:"داخستن",loadingText:"لە بارکردندایە...",noOptionsText:"هیچ بژاردەیەک نیە",openText:"کردنەوە"}},MuiAlert:{defaultProps:{closeText:"داخستن"}},MuiPagination:{defaultProps:{"aria-label":"گەڕان لە پەڕەکان",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"چوون بۆ "} پەڕەی ${t}`:e==="first"?"چوونە یەکەم پەڕە":e==="last"?"چوونە کۆتا پەڕە":e==="next"?"چوونە پەڕەی دواتر":"گەڕانەوە بۆ پەڕەی پێشوو"}}}},tD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Rê nîşan bide"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Biçe rûpela yekem":e==="last"?"Biçe rûpela dawî":e==="next"?"Biçe rûpela din":"Biçe rûpela berê",labelRowsPerPage:"Rêz li ser rûpelê:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} of ${n!==-1?n:`zêdetir ji ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stêrk`,emptyLabelText:"Vala"}},MuiAutocomplete:{defaultProps:{clearText:"Paqij bike",closeText:"Bigre",loadingText:"Tê barkirin…",noOptionsText:"Vebijêrk tune",openText:"Veke"}},MuiAlert:{defaultProps:{closeText:"Bigre"}},MuiPagination:{defaultProps:{"aria-label":"Navîgasyona rûpelan",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Biçe "}rûpel ${t}`:e==="first"?"Biçe rûpela yekem":e==="last"?"Biçe rûpela dawî":e==="next"?"Biçe rûpela din":"Biçe rûpela berê"}}}},nD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Толық жолды көрсету"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Бірінші бетке өту":e==="last"?"Соңғы бетке өту":e==="next"?"Келесі бетке өту":"Алдыңғы бетке өту",labelRowsPerPage:"Беттегі қатарлар:",labelDisplayedRows:({from:e,to:t,count:n})=>`${n!==-1?n:`+${t}`} қатардың ішінен ${e}–${t}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} жұлдыз`,emptyLabelText:"Рейтинг жоқ"}},MuiAutocomplete:{defaultProps:{clearText:"Тазарту",closeText:"Жабу",loadingText:"Жүктелуде…",noOptionsText:"Қол жетімді нұсқалар жоқ",openText:"Ашу"}},MuiAlert:{defaultProps:{closeText:"Жабу"}},MuiPagination:{defaultProps:{"aria-label":"Беттерді шарлау",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t} — бет`:`${t} — бетке өту`:e==="first"?"Бірінші бетке өту":e==="last"?"Соңғы бетке өту":e==="next"?"Келесі бетке өту":"Алдыңғы бетке өту"}}}},rD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Прикажи патека"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Оди на прва страница":e==="last"?"Оди на последна страница":e==="next"?"Оди на следна страница":"Оди на предходна страница",labelRowsPerPage:"Редови по страница:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} од ${n!==-1?n:`повеќе од ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} Ѕвезд${t===1?"а":"и"}`},emptyLabelText:"Празно"}},MuiAutocomplete:{defaultProps:{clearText:"Избриши",closeText:"Затвори",loadingText:"Се презема",noOptionsText:"Нема опција",openText:"Отвори"}},MuiAlert:{defaultProps:{closeText:"Затвори"}},MuiPagination:{defaultProps:{"aria-label":"Навигација низ страници",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Оди на "}страница ${t}`:e==="first"?"Оди на прва страница":e==="last"?"Оди на последна страница":e==="next"?"Оди на следна страница":"Оди на предходна страница"}}}},oD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"လမ်းကြောင်းပြပါ။"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ပထမစာမျက်နှာသို့သွားပါ။":e==="last"?"နောက်ဆုံးစာမျက်နှာသို့သွားပါ။":e==="next"?"နောက်စာမျက်နှာသို့သွားပါ။":"ယခင်စာမျက်နှာသို့သွားပါ။",labelRowsPerPage:"စာမျက်နှာအလိုက် အတန်းများ:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} ၏ ${n!==-1?n:`ထက်ပိုပြီး ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} ကြယ်ပွင့်${t===1?"၎":""}`},emptyLabelText:"ဗလာ"}},MuiAutocomplete:{defaultProps:{clearText:"ရှင်းလင်းသော",closeText:"ပိတ်လိုက်",loadingText:"ဖွင့်နေသည်…",noOptionsText:"ရွေးချယ်ခွင့်မရှိပါ။",openText:"ဖွင့်သည်။"}},MuiAlert:{defaultProps:{closeText:"ပိတ်လိုက်"}},MuiPagination:{defaultProps:{"aria-label":"Pagination အညွှန်း",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"သွားပါ။ "}စာမျက်နှာ ${t}`:e==="first"?"ပထမစာမျက်နှာသို့သွားပါ။":e==="last"?"နောက်ဆုံးစာမျက်နှာသို့သွားပါ။":e==="next"?"နောက်စာမျက်နှာသို့သွားပါ။":"ယခင်စာမျက်နှာသို့သွားပါ။"}}}},iD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Tunjukkan laluan"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Pergi ke halaman pertama":e==="last"?"Pergi ke halaman terakhir":e==="next"?"Pergi ke halaman seterusnya":"Pergi ke halaman sebelumnya",labelRowsPerPage:"Baris setiap halaman:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} daripada ${n!==-1?n:`lebih daripada ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} Bintang${t===1?"s":""}`},emptyLabelText:"kosong"}},MuiAutocomplete:{defaultProps:{clearText:"Jelas",closeText:"tutup",loadingText:"Memuatkan…",noOptionsText:"Tiada pilihan",openText:"Buka"}},MuiAlert:{defaultProps:{closeText:"tutup"}},MuiPagination:{defaultProps:{"aria-label":"Navigasi penomboran",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Pergi ke "}muka surat ${t}`:e==="first"?"Pergi ke halaman pertama":e==="last"?"Pergi ke halaman terakhir":e==="next"?"Pergi ke halaman seterusnya":"Pergi ke halaman sebelumnya"}}}},aD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"बाटो देखाउनुहोस्"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"पहिलो पृष्ठमा जानुहोस्":e==="last"?"अन्तिम पृष्ठमा जानुहोस्":e==="next"?"अर्को पृष्ठमा जानुहोस्":"अघिल्लो पृष्ठमा जानुहोस्",labelRowsPerPage:"प्रति पृष्ठ पङ्क्तिहरू:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} को ${n!==-1?n:`धेरै ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10;return`${e} तारा${t===1?"स":""}`},emptyLabelText:"खाली"}},MuiAutocomplete:{defaultProps:{clearText:"खाली गर्नुहोस्",closeText:"बन्द गर्नुहोस्",loadingText:"लोड हुँदै...",noOptionsText:"कुनै विकल्प छैन",openText:"खोल्नुहोस्"}},MuiAlert:{defaultProps:{closeText:"बन्द गर्नुहोस्"}},MuiPagination:{defaultProps:{"aria-label":"पृष्ठांकन नेभिगेसन",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"जाऊ त्यहाँ "}पृष्ठ ${t}`:e==="first"?"पहिलो पृष्ठमा जानुहोस्":e==="last"?"अन्तिम पृष्ठमा जानुहोस्":e==="next"?"अर्को पृष्ठमा जानुहोस्":"अघिल्लो पृष्ठमा जानुहोस्"}}}},sD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Vis sti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til forrige side",labelRowsPerPage:"Rader per side:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} av ${n!==-1?n:`mer enn ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Stjerne${e!==1?"r":""}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Tøm",closeText:"Lukk",loadingText:"Laster inn…",noOptionsText:"Ingen alternativer",openText:"Åpne"}},MuiAlert:{defaultProps:{closeText:"Lukk"}},MuiPagination:{defaultProps:{"aria-label":"Paginering navigasjon",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gå til "}side ${t}`:e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til forrige side"}}}},lD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Vis sti"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til førre side",labelRowsPerPage:"Rader per side:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} av ${n!==-1?n:`fleire enn ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} stjerne${e!==1?"r":""}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Tøm",closeText:"Lukk",loadingText:"Lastar inn…",noOptionsText:"Ingen alternativ",openText:"Opna"}},MuiAlert:{defaultProps:{closeText:"Lukk"}},MuiPagination:{defaultProps:{"aria-label":"Navigasjon for paginering",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gå til "}side ${t}`:e==="first"?"Gå til første side":e==="last"?"Gå til siste side":e==="next"?"Gå til neste side":"Gå til førre side"}}}},cD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pad tonen"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ga naar eerste pagina":e==="last"?"Ga naar laatste pagina":e==="next"?"Ga naar volgende pagina":"Ga naar vorige pagina",labelRowsPerPage:"Regels per pagina:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} van ${n!==-1?n:`meer dan ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Ster${e!==1?"ren":""}`,emptyLabelText:"Leeg"}},MuiAutocomplete:{defaultProps:{clearText:"Wissen",closeText:"Sluiten",loadingText:"Laden…",noOptionsText:"Geen opties",openText:"Openen"}},MuiAlert:{defaultProps:{closeText:"Sluiten"}},MuiPagination:{defaultProps:{"aria-label":"Navigatie via paginering",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ga naar "}pagina ${t}`:e==="first"?"Ga naar eerste pagina":e==="last"?"Ga naar laatste pagina":e==="next"?"Ga naar volgende pagina":"Ga naar vorige pagina"}}}},uD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pokaż ścieżkę"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Przejdź do pierwszej strony":e==="last"?"Przejdź do ostatniej strony":e==="next"?"Przejdź do następnej strony":"Przejdź do poprzedniej strony",labelRowsPerPage:"Wierszy na stronę:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} z ${n!==-1?n:`ponad ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="gwiazdek";const n=e%10;return(e<10||e>20)&&n>1&&n<5?t="gwiazdki":e===1&&(t="gwiazdka"),`${e} ${t}`},emptyLabelText:"Brak gwiazdek"}},MuiAutocomplete:{defaultProps:{clearText:"Wyczyść",closeText:"Zamknij",loadingText:"Ładowanie…",noOptionsText:"Brak opcji",openText:"Otwórz"}},MuiAlert:{defaultProps:{closeText:"Zamknij"}},MuiPagination:{defaultProps:{"aria-label":"Nawigacja podziału na strony",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t}. strona`:`Przejdź do ${t}. strony`:e==="first"?"Przejdź do pierwszej strony":e==="last"?"Przejdź do ostatniej strony":e==="next"?"Przejdź do następnej strony":"Przejdź do poprzedniej strony"}}}},dD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"لاره ښکاره کړه"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"لومړۍ پاڼې ته لاړ شه":e==="last"?"ورستۍ پاڼې ته لاړ شه":e==="next"?"بلی پاڼې ته لاړ شه":"مخکینۍ پاڼې ته لاړ شه",labelRowsPerPage:"په پاڼه کی د کرښو شمیر",labelDisplayedRows:({from:e,to:t,count:n})=>`${n!==-1?n:`${t} زیات له`} ${t}- ${e} د`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ستوری`,emptyLabelText:"خالی"}},MuiAutocomplete:{defaultProps:{clearText:"پاک کول",closeText:"تړل",loadingText:"... لوډ کیږی",noOptionsText:"بی پایلی",openText:"خلاصول"}},MuiAlert:{defaultProps:{closeText:"تړل"}},MuiPagination:{defaultProps:{"aria-label":"د پاڼو ترتیب",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":" ته لاړ شه"}پاڼې ${t}`:e==="first"?"لومړۍ پاڼی ته لاړ شه":e==="last"?"وروستۍ پاڼې ته لاړه شه":e==="next"?"بلې پاڼې ته لاړ شه":"مخکنۍ پاڼې ته لاړ شه"}}}},fD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mostrar caminho"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ir para a primeira página":e==="last"?"Ir para a última página":e==="next"?"Ir para a próxima página":"Ir para a página anterior",labelRowsPerPage:"Linhas por página:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} de ${n!==-1?n:`mais de ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Estrela${e!==1?"s":""}`,emptyLabelText:"Vazio"}},MuiAutocomplete:{defaultProps:{clearText:"Limpar",closeText:"Fechar",loadingText:"Carregando…",noOptionsText:"Sem opções",openText:"Abrir"}},MuiAlert:{defaultProps:{closeText:"Fechar"}},MuiPagination:{defaultProps:{"aria-label":"Navegar pela paginação",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ir para a "}página ${t}`:e==="first"?"Ir para a primeira página":e==="last"?"Ir para a última página":e==="next"?"Ir para a próxima página":"Ir para a página anterior"}}}},pD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mostrar caminho"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Primeira página":e==="last"?"Última página":e==="next"?"Próxima página":"Página anterior",labelRowsPerPage:"Linhas por página:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} de ${n!==-1?n:`mais de ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Estrela${e!==1?"s":""}`,emptyLabelText:"Vazio"}},MuiAutocomplete:{defaultProps:{clearText:"Limpar",closeText:"Fechar",loadingText:"A carregar…",noOptionsText:"Sem opções",openText:"Abrir"}},MuiAlert:{defaultProps:{closeText:"Fechar"}},MuiPagination:{defaultProps:{"aria-label":"Navegar por páginas",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ir para a "}página ${t}`:e==="first"?"Primeira página":e==="last"?"Última página":e==="next"?"Próxima página":"Página anterior"}}}},gD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Arată calea"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Mergi la prima pagină":e==="last"?"Mergi la ultima pagină":e==="next"?"Mergi la pagina următoare":"Mergi la pagina precedentă",labelRowsPerPage:"Rânduri pe pagină:"}},MuiRating:{defaultProps:{getLabelText:e=>`${e} St${e!==1?"ele":"ea"}`,emptyLabelText:"Gol"}},MuiAutocomplete:{defaultProps:{clearText:"Șterge",closeText:"Închide",loadingText:"Se încarcă…",noOptionsText:"Nicio opțiune",openText:"Deschide"}},MuiAlert:{defaultProps:{closeText:"Închide"}},MuiPagination:{defaultProps:{"aria-label":"Navigare prin paginare",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Mergi la "}pagina ${t}`:e==="first"?"Mergi la prima pagină":e==="last"?"Mergi la ultima pagină":e==="next"?"Mergi la pagina următoare":"Mergi la pagina precedentă"}}}},hD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Pokaži putanju"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na poslednju stranicu":e==="next"?"Idi na sledeću stranicu":"Idi na prethodnu stranicu",labelRowsPerPage:"Redova po stranici:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} od ${n!==-1?n:`više nego ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{const t=e%10,n=e%100;return[2,3,4].includes(t)&&![12,13,14].includes(n)?"Zvezde":"Zvezda"},emptyLabelText:"Prazno"}},MuiAutocomplete:{defaultProps:{clearText:"Briši",closeText:"Zatvori",loadingText:"Učitavanje…",noOptionsText:"Nema opcija",openText:"Otvori"}},MuiAlert:{defaultProps:{closeText:"Zatvori"}},MuiPagination:{defaultProps:{"aria-label":"Navigacija po stranicama",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Idi na "}stranicu ${t}`:e==="first"?"Idi na prvu stranicu":e==="last"?"Idi na zadnju stranicu":e==="next"?"Idi na sledeću stranicu":"Idi na prethodnu stranicu"}}}},mD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Показать полный путь"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Перейти на первую страницу":e==="last"?"Перейти на последнюю страницу":e==="next"?"Перейти на следующую страницу":"Перейти на предыдущую страницу",labelRowsPerPage:"Строк на странице:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} из ${n!==-1?n:`более чем ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Звёзд";const n=e%10;return n>1&&n<5?t="Звезды":n===1&&(t="Звезда"),`${e} ${t}`},emptyLabelText:"Рейтинг отсутствует"}},MuiAutocomplete:{defaultProps:{clearText:"Очистить",closeText:"Закрыть",loadingText:"Загрузка…",noOptionsText:"Нет доступных вариантов",openText:"Открыть"}},MuiAlert:{defaultProps:{closeText:"Закрыть"}},MuiPagination:{defaultProps:{"aria-label":"Навигация по страницам",getItemAriaLabel:(e,t,n)=>e==="page"?n?`${t} страница`:`Перейти на ${t} страницу`:e==="first"?"Перейти на первую страницу":e==="last"?"Перейти на последнюю страницу":e==="next"?"Перейти на следующую страницу":"Перейти на предыдущую страницу"}}}},vD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"ගමන් මඟ පෙන්වන්න"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"පළමු පිටුවට යන්න":e==="last"?"අවසාන පිටුවට යන්න":e==="next"?"මීළඟ පිටුවට යන්න":"පෙර පිටුවට යන්න",labelRowsPerPage:"පිටුවක පේළි:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} දක්වා ${n!==-1?n:`${t} ට වැඩි ප්‍රමාණයකින්`}`}},MuiRating:{defaultProps:{getLabelText:e=>`තරු ${e}`,emptyLabelText:"හිස්"}},MuiAutocomplete:{defaultProps:{clearText:"මකන්න",closeText:"වසන්න",loadingText:"නැංවෙමින්…",noOptionsText:"විකල්ප නැත",openText:"විවෘත කරන්න"}},MuiAlert:{defaultProps:{closeText:"වසන්න"}},MuiPagination:{defaultProps:{"aria-label":"පිටු අතර සංචරණය",getItemAriaLabel:(e,t,n)=>e==="page"?`පිටුව ${t} ${n?"":"ට යන්න"}`:e==="first"?"පළමු පිටුවට යන්න":e==="last"?"අවසාන පිටුවට යන්න":e==="next"?"මීළඟ පිටුවට යන්න":"පෙර පිටුවට යන්න"}}}},yD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Ukázať cestu "}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Ísť na prvú stránku":e==="last"?"Ísť na poslednú stránku":e==="next"?"Ísť na ďaľšiu stránku":"Ísť na predchádzajúcu stránku",labelRowsPerPage:"Riadkov na stránke:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} z ${n!==-1?n:`viac ako ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>e===1?`${e} hviezdička`:e>=2&&e<=4?`${e} hviezdičky`:`${e} hviezdičiek`,emptyLabelText:"Prázdne"}},MuiAutocomplete:{defaultProps:{clearText:"Vymazať",closeText:"Zavrieť",loadingText:"Načítanie…",noOptionsText:"Žiadne možnosti",openText:"Otvoriť"}},MuiAlert:{defaultProps:{closeText:"Zavrieť"}},MuiPagination:{defaultProps:{"aria-label":"Navigácia stránkovanim",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Ísť na "}stránku ${t}`:e==="first"?"Ísť na prvú stránku":e==="last"?"Ísť na poslednú stránku":e==="next"?"Ísť na ďaľšiu stránku":"Ísť na predchádzajúcu stránku"}}}},bD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Visa sökväg"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Gå till första sidan":e==="last"?"Gå till sista sidan":e==="next"?"Gå till nästa sida":"Gå till föregående sida",labelRowsPerPage:"Rader per sida:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} av ${n!==-1?n:`fler än ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ${e!==1?"Stjärnor":"Stjärna"}`,emptyLabelText:"Tom"}},MuiAutocomplete:{defaultProps:{clearText:"Rensa",closeText:"Stäng",loadingText:"Laddar…",noOptionsText:"Inga alternativ",openText:"Öppna"}},MuiAlert:{defaultProps:{closeText:"Stäng"}},MuiPagination:{defaultProps:{"aria-label":"Sidnavigering",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Gå till "}sida ${t}`:e==="first"?"Gå till första sidan":e==="last"?"Gå till sista sidan":e==="next"?"Gå till nästa sida":"Gå till föregående sida"}}}},xD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"แสดงเส้นทาง"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"ไปที่หน้าแรก":e==="last"?"ไปที่หน้าสุดท้าย":e==="next"?"ไปที่หน้าถัดไป":"ไปที่หน้าก่อน",labelRowsPerPage:"จำนวนแถวต่อหน้า:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} จาก ${n!==-1?n:`มากกว่า ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ดาว`,emptyLabelText:"ว่างเปล่า"}},MuiAutocomplete:{defaultProps:{clearText:"เคลียร์",closeText:"ปิด",loadingText:"กำลังโหลด…",noOptionsText:"ไม่มีตัวเลือก",openText:"เปิด"}},MuiAlert:{defaultProps:{closeText:"ปิด"}},MuiPagination:{defaultProps:{"aria-label":"",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"ไปที่"}หน้า ${t}`:e==="first"?"ไปที่หน้าแรก":e==="last"?"ไปที่หน้าสุดท้าย":e==="next"?"ไปที่หน้าถัดไป":"ไปที่หน้าก่อน"}}}},SD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Yolu göster"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"İlk sayfaya git":e==="last"?"Son sayfaya git":e==="next"?"Sonraki sayfaya git":"Önceki sayfaya git",labelRowsPerPage:"Sayfa başına satır:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}-${t} / ${n!==-1?n:`${t}'den fazla`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Yıldız`,emptyLabelText:"Boş"}},MuiAutocomplete:{defaultProps:{clearText:"Temizle",closeText:"Kapat",loadingText:"Yükleniyor…",noOptionsText:"Seçenek yok",openText:"Aç"}},MuiAlert:{defaultProps:{closeText:"Kapat"}},MuiPagination:{defaultProps:{"aria-label":"Sayfa navigasyonu",getItemAriaLabel:(e,t,n)=>e==="page"?`${t}. ${n?"sayfa":"sayfaya git"}`:e==="first"?"İlk sayfaya git":e==="last"?"Son sayfaya git":e==="next"?"Sonraki sayfaya git":"Önceki sayfaya git"}}}},wD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Ipakita ang landas"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Pumunta sa unang pahina":e==="last"?"Pumunta sa huling pahina":e==="next"?"Pumunta sa susunod na pahina":"Pumunta sa nakaraang pahina",labelRowsPerPage:"Mga hilera bawat pahina:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} ng ${n!==-1?n:`higit sa ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} Bituin${e!==1?"s":""}`,emptyLabelText:"Walang laman"}},MuiAutocomplete:{defaultProps:{clearText:"Maaliwalas",closeText:"Isara",loadingText:"Naglo-load…",noOptionsText:"Walang mga pagpipilian",openText:"Bukas"}},MuiAlert:{defaultProps:{closeText:"Isara"}},MuiPagination:{defaultProps:{"aria-label":"Sayfa navigasyonu",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Pumunta sa"}pahina ${t}`:e==="first"?"Pumunta sa unang pahina":e==="last"?"Pumunta sa huling pahina":e==="next"?"Pumunta sa susunod na pahina":"Pumunta sa nakaraang pahina"}}}},CD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Показати шлях сторінок"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Перейти на першу сторінку":e==="last"?"Перейти на останню сторінку":e==="next"?"Перейти на наступну сторінку":"Перейти на попередню сторінку",labelRowsPerPage:"Рядків на сторінці:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} з ${n!==-1?n:`понад ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>{let t="Зірок";const n=e%10;return n>1&&n<5?t="Зірки":n===1&&(t="Зірка"),`${e} ${t}`},emptyLabelText:"Рейтинг відсутній"}},MuiAutocomplete:{defaultProps:{clearText:"Очистити",closeText:"Згорнути",loadingText:"Завантаження…",noOptionsText:"Немає варіантів",openText:"Розгорнути"}},MuiAlert:{defaultProps:{closeText:"Згорнути"}},MuiPagination:{defaultProps:{"aria-label":"Навігація сторінками",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Перейти на "}сторінку ${t}`:e==="first"?"Перейти на першу сторінку":e==="last"?"Перейти на останню сторінку":e==="next"?"Перейти на наступну сторінку":"Перейти на попередню сторінку"}}}},_D={components:{MuiBreadcrumbs:{defaultProps:{expandText:"راستہ دکھائیں"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"پہلے صفحے پر جائیں":e==="last"?"آخری صفحے پر جائیں":e==="next"?"اگلے صفحے پر جائیں":"پچھلے صفحے پر جائیں",labelRowsPerPage:"ایک صفحے پر قطاریں:",labelDisplayedRows:({from:e,to:t,count:n})=>`${n!==-1?`${n} میں سے`:`${t} سے ذیادہ میں سے`} ${e} سے ${t} قطاریں`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} ستار${e!==1?"ے":"ہ"}`,emptyLabelText:"خالی"}},MuiAutocomplete:{defaultProps:{clearText:"کلئیر",closeText:"بند کریں",loadingText:"لوڈ ہو رہا ہے۔۔۔",noOptionsText:"کوئی آپشن نہیں",openText:"کھولیں"}},MuiAlert:{defaultProps:{closeText:"بند کریں"}},MuiPagination:{defaultProps:{"aria-label":"صفحات کی ترتیب",getItemAriaLabel:(e,t,n)=>e==="page"?`صفحہ نمبر ${t}${n?"":" پر جائیں"}`:e==="first"?"پہلے صفحے پر جائیں":e==="last"?"آخری صفحے پر جائیں":e==="next"?"اگلے صفحے پر جائیں":"پچھلے صفحے پر جائیں"}}}},RD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"Mở ra"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"Tới trang đầu tiên":e==="last"?"Tới trang cuối cùng":e==="next"?"Tới trang tiếp theo":"Về trang trước đó",labelRowsPerPage:"Số hàng mỗi trang:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e}–${t} trong ${n!==-1?n:`nhiều hơn ${t}`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} sao`,emptyLabelText:"Không có dữ liệu"}},MuiAutocomplete:{defaultProps:{clearText:"Xóa",closeText:"Đóng",loadingText:"Đang tải…",noOptionsText:"Không có lựa chọn nào",openText:"Mở"}},MuiAlert:{defaultProps:{closeText:"Đóng"}},MuiPagination:{defaultProps:{"aria-label":"Thanh điều khiển trang",getItemAriaLabel:(e,t,n)=>e==="page"?`${n?"":"Tới "}trang ${t}`:e==="first"?"Tới trang đầu tiên":e==="last"?"Tới trang cuối cùng":e==="next"?"Tới trang tiếp theo":"Về trang trước đó"}}}},TD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"展开"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"第一页":e==="last"?"最后一页":e==="next"?"下一页":"上一页",labelRowsPerPage:"每页行数:",labelDisplayedRows:({from:e,to:t,count:n})=>`第 ${e} 条到第 ${t} 条,${n!==-1?`共 ${n} 条`:`至少 ${t} 条`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 颗星`,emptyLabelText:"无标签"}},MuiAutocomplete:{defaultProps:{clearText:"清空",closeText:"关闭",loadingText:"加载中……",noOptionsText:"没有可用选项",openText:"打开"}},MuiAlert:{defaultProps:{closeText:"关闭"}}}},PD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"展開"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"第一頁":e==="last"?"最後一頁":e==="next"?"下一頁":"上一頁",labelRowsPerPage:"每頁行數:",labelDisplayedRows:({from:e,to:t,count:n})=>`第 ${e} 項至第 ${t} 項,${n!==-1?`共 ${n} 項`:`超過 ${t} 項`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 粒星`,emptyLabelText:"無標籤"}},MuiAutocomplete:{defaultProps:{clearText:"清除",closeText:"關閉",loadingText:"載入中……",noOptionsText:"沒有可用選項",openText:"開啟"}},MuiAlert:{defaultProps:{closeText:"關閉"}}}},kD={components:{MuiBreadcrumbs:{defaultProps:{expandText:"展開"}},MuiTablePagination:{defaultProps:{getItemAriaLabel:e=>e==="first"?"第一頁":e==="last"?"最後一頁":e==="next"?"下一頁":"上一頁",labelRowsPerPage:"每頁數量:",labelDisplayedRows:({from:e,to:t,count:n})=>`${e} ~ ${t} / ${n!==-1?n:`${t} 以上`}`}},MuiRating:{defaultProps:{getLabelText:e=>`${e} 顆星`,emptyLabelText:"無標籤"}},MuiAutocomplete:{defaultProps:{clearText:"清空",closeText:"關閉",loadingText:"載入中…",noOptionsText:"沒有可用選項",openText:"打開"}},MuiAlert:{defaultProps:{closeText:"關閉"}}}},$D=Object.freeze(Object.defineProperty({__proto__:null,amET:_9,arEG:R9,arSA:T9,arSD:P9,azAZ:k9,beBY:E9,bgBG:M9,bnBD:$9,caES:I9,csCZ:O9,daDK:L9,deDE:N9,elGR:A9,enUS:D9,esES:j9,etEE:F9,faIR:B9,fiFI:z9,frFR:H9,heIL:V9,hiIN:W9,hrHR:U9,huHU:G9,hyAM:q9,idID:K9,isIS:Z9,itIT:Q9,jaJP:Y9,khKH:X9,kkKZ:nD,koKR:J9,kuCKB:eD,kuLatn:tD,mkMK:rD,msMS:iD,myMY:oD,nbNO:sD,neNP:aD,nlNL:cD,nnNO:lD,plPL:uD,psAF:dD,ptBR:fD,ptPT:pD,roRO:gD,ruRU:mD,siLK:vD,skSK:yD,srRS:hD,svSE:bD,thTH:xD,tlTL:wD,trTR:SD,ukUA:CD,urPK:_D,viVN:RD,zhCN:TD,zhHK:PD,zhTW:kD},Symbol.toStringTag,{value:"Module"}));var bx;(function(e){e.Single="single",e.Multiple="multiple"})(bx||(bx={}));const ED="_toolbar_158fz_3",MD="_actions_158fz_8",ID="_selectLabel_158fz_16",OD="_select_158fz_16",LD="_displayedRows_158fz_21",ND="_selectRoot_158fz_29",AD="_selectIcon_158fz_45",DD="_iconBtnRoot_158fz_56",jD="_iconBtnDisabled_158fz_68",mo={toolbar:ED,actions:MD,selectLabel:ID,select:OD,displayedRows:LD,selectRoot:ND,selectIcon:AD,iconBtnRoot:DD,iconBtnDisabled:jD},xx={root:mo.iconBtnRoot,disabled:mo.iconBtnDisabled},FD=e=>{const{className:t="",page:n,onPageChange:r,count:o,rowsPerPage:i}=e;return p.jsxs("div",{className:t,children:[p.jsx(vr,{disableRipple:!0,classes:xx,disabled:n===0,onClick:a=>r(a,n-1),children:p.jsx(tA,{size:10},void 0)},void 0),p.jsx(vr,{disableRipple:!0,classes:xx,disabled:n>=Math.ceil(o/i)-1,onClick:a=>r(a,n+1),children:p.jsx(nA,{size:10},void 0)},void 0)]},void 0)},BD=e=>{const n=Ht().language==="zhCN";return p.jsx(hN,{component:"div",ActionsComponent:r=>p.jsx(FD,{...r},void 0),classes:{toolbar:mo.toolbar,actions:mo.actions,displayedRows:mo.displayedRows,selectLabel:mo.selectLabel,select:mo.select,selectIcon:mo.selectIcon},SelectProps:{label:n?"每页显示":"Rows per page",className:mo.selectRoot,IconComponent:()=>p.jsx(la,{size:12},void 0)},labelDisplayedRows:({from:r,to:o,count:i})=>p.jsx(vt,{color:"textSecondary",children:n?p.jsxs(p.Fragment,{children:["共有 ",p.jsx("strong",{children:i},void 0)," 条,第 ",p.jsx("strong",{children:r},void 0),"-",p.jsx("strong",{children:o},void 0),"条"]},void 0):p.jsxs(p.Fragment,{children:[p.jsx("strong",{children:r},void 0),"-",p.jsx("strong",{children:o},void 0)," of"," ",p.jsx("strong",{children:i},void 0)]},void 0)},void 0),...e},void 0)};var Sx;(function(e){e[e.Previous=-1]="Previous",e[e.Next=1]="Next"})(Sx||(Sx={}));var wx;(function(e){e[e.Left=1]="Left",e[e.Right=2]="Right"})(wx||(wx={}));var Cx;(function(e){e.Small="small",e.Medium="medium"})(Cx||(Cx={}));const zD=function(e,t,n){t.prototype.isBetween=function(r,o,i,a){var s=n(r),l=n(o);a=a||"()";var c=a[0]==="(",u=a[1]===")";return(c?this.isAfter(s,i):!this.isBefore(s,i))&&(u?this.isBefore(l,i):!this.isAfter(l,i))||(c?this.isBefore(s,i):!this.isAfter(s,i))&&(u?this.isAfter(l,i):!this.isBefore(l,i))}},HD=function(e,t,n){var r=function(i,a){if(!a||!a.length||a.length===1&&!a[0]||a.length===1&&Array.isArray(a[0])&&!a[0].length)return null;if(a.length===1&&a[0].length>0){var s=a;a=s[0]}a=a.filter(function(d){return d});var l,c=a;l=c[0];for(var u=1;u=M?D:""+Array(M+1-A.length).join(N)+D},w={s:h,z:function(D){var M=-D.utcOffset(),N=Math.abs(M),A=Math.floor(N/60),E=N%60;return(M<=0?"+":"-")+h(A,2,"0")+":"+h(E,2,"0")},m:function D(M,N){if(M.date()1)return D(B[0])}else{var H=M.name;T[H]=M,E=H}return!A&&E&&(_=E),E||!A&&_},x=function(D,M){if(R(D))return D.clone();var N=typeof M=="object"?M:{};return N.date=D,N.args=arguments,new I(N)},$=w;$.l=P,$.i=R,$.w=function(D,M){return x(D,{locale:M.$L,utc:M.$u,x:M.$x,$offset:M.$offset})};var I=function(){function D(N){this.$L=P(N.locale,null,!0),this.parse(N),this.$x=this.$x||N.x||{},this[k]=!0}var M=D.prototype;return M.parse=function(N){this.$d=function(A){var E=A.date,L=A.utc;if(E===null)return new Date(NaN);if($.u(E))return new Date;if(E instanceof Date)return new Date(E);if(typeof E=="string"&&!/Z$/i.test(E)){var B=E.match(C);if(B){var H=B[2]-1||0,z=(B[7]||"0").substring(0,3);return L?new Date(Date.UTC(B[1],H,B[3]||1,B[4]||0,B[5]||0,B[6]||0,z)):new Date(B[1],H,B[3]||1,B[4]||0,B[5]||0,B[6]||0,z)}}return new Date(E)}(N),this.init()},M.init=function(){var N=this.$d;this.$y=N.getFullYear(),this.$M=N.getMonth(),this.$D=N.getDate(),this.$W=N.getDay(),this.$H=N.getHours(),this.$m=N.getMinutes(),this.$s=N.getSeconds(),this.$ms=N.getMilliseconds()},M.$utils=function(){return $},M.isValid=function(){return this.$d.toString()!==y},M.isSame=function(N,A){var E=x(N);return this.startOf(A)<=E&&E<=this.endOf(A)},M.isAfter=function(N,A){return x(N)[{label:"Today",startDate:e,endDate:e},{label:"Yesterday",startDate:nt(e).add(-1,"day").toDate(),endDate:nt(e).add(-1,"day").toDate()},{label:"This Week",startDate:nt(e).startOf("week").toDate(),endDate:nt(e).endOf("week").toDate()},{label:"Last Week",startDate:nt(e).add(-1,"week").startOf("week").toDate(),endDate:nt(e).add(-1,"week").endOf("week").toDate()},{label:"Last 7 Days",startDate:nt(e).add(-1,"week").toDate(),endDate:e},{label:"This Month",startDate:nt(e).startOf("month").toDate(),endDate:nt(e).endOf("month").toDate()},{label:"Last Month",startDate:nt(e).add(-1,"month").startOf("month").toDate(),endDate:nt(e).add(-1,"month").endOf("month").toDate()}];WD(new Date);nt(new Date).startOf("week").toDate(),nt(new Date).endOf("week").toDate();const UD="_container_a4vk2_3",GD="_checkedCircle_a4vk2_5",qD="_checked_a4vk2_5",KD="_disabled_a4vk2_60",Xu={container:UD,checkedCircle:GD,checked:qD,disabled:KD},Tx=e=>{const{checked:t=!1,disabled:n=!1}=e;return p.jsx("div",{className:qt(Xu.checkedCircle,{[Xu.checked]:t,[Xu.disabled]:n})},void 0)},Px=rt.forwardRef(function(e,t){const{sx:n,disabled:r,checked:o,className:i,...a}=e;return p.jsx(QL,{ref:t,className:qt(Xu.container,i),sx:{"&.Mui-disabled":{opacity:.5},...n},disableRipple:!0,disableTouchRipple:!0,color:"default",checkedIcon:p.jsx(Tx,{checked:!0,disabled:r},void 0),icon:p.jsx(Tx,{disabled:r},void 0),disabled:r,checked:o,...a},void 0)});rt.forwardRef(function(e,t){const{label:n="",...r}=e,o=Ht();return n?p.jsx(D_,{control:p.jsx(Px,{ref:t,...r},void 0),sx:{margin:0,display:"flex",alignSelf:"center",gap:"8px","& .MuiFormControlLabel-label":{fontSize:14,lineHeight:"135%",fontWeight:400,color:o.black.black1},"& .MuiFormControlLabel-label.Mui-disabled":{opacity:.5,color:o.black.black1},"& .MuiRadio-root":{padding:0,marginRight:0}},label:n},void 0):p.jsx(Px,{ref:t,...r},void 0)});nf(new Date).startOf("day"),nf(new Date).endOf("day");nt.extend(zD);nt.extend(HD);const ZD="_btnWrapper_mwgh3_3",QD="_titleWrapper_mwgh3_9",kg={btnWrapper:ZD,titleWrapper:QD},YD=rt.forwardRef(function(t,n){return p.jsx(__,{ref:n,...t},void 0)}),XD=e=>{const{handleClose:t,severity:n="info",title:r,message:o,classes:i={root:"",title:"",message:""},icon:a,actions:s,showClose:l=!0,...c}=e,u=Ht(),{iconStyles:d}=b.useMemo(()=>{let g=u.blue.blue2;switch(n){case"info":g=u.blue.blue2;break;case"error":g=u.red.red2;break;case"success":g=u.green.green2;break;case"warning":g=u.yellow.yellow2;break}return{iconStyles:{width:"20px",height:"20px",paddingTop:r?"2px":0,"& path":{fill:g}}}},[n,r]),f=p.jsx(vr,{"aria-label":"close",color:"inherit",size:"small",onClick:t,disableRipple:!0,sx:{"&.MuiIconButton-root":{"& path":{fill:u.black.black1},"&:hover":{"& path":{fill:u.black.black2}}}},children:p.jsx(Rp,{size:16,fontSize:"inherit"},void 0)},void 0);return p.jsx(YD,{severity:n,variant:"outlined",iconMapping:{success:a||p.jsx(Y_,{width:20,height:20,sx:d},void 0),info:a||p.jsx(Im,{width:20,height:20,sx:d},void 0),warning:a||p.jsx(Z_,{sx:d},void 0),error:a||p.jsx(Q_,{sx:d},void 0)},sx:{boxShadow:"0px 1px 10px 0px rgba(107, 121, 141, 0.30)",padding:"16px",width:"fit-content",borderRadius:"12px",border:"none",backgroundColor:"#FFF","& .MuiAlert-icon":{paddingTop:0,paddingBottom:0,marginRight:"8px"},"& .MuiAlert-message":{display:"flex",alignItems:"center",fontWeight:400,color:u.black.black1,padding:0},"& .MuiAlert-action":{paddingTop:0,paddingRight:"6px"}},action:r||!l?void 0:f,...c,children:p.jsxs("div",{className:qt(i.root,kg.root),children:[r&&p.jsxs("div",{className:kg.titleWrapper,children:[p.jsx(vt,{variant:"h4Semibold",children:r},void 0),l?f:p.jsx("span",{},void 0)]},void 0),p.jsx(vt,{variant:"body1Regular",component:"div",sx:{whiteSpace:"normal",overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:5,WebkitBoxOrient:"vertical",paddingRight:"30px"},className:i.message,children:o},void 0),s&&p.jsx("div",{className:kg.btnWrapper,children:s.confirm&&p.jsx(B1,{variant:"textBlue",withMargin:!1,...s.confirm},void 0)},void 0)]},void 0)},void 0)},kx=300,$x=({children:e,maxWidth:t="100%",tooltipProps:n={},typographyProps:r={}})=>{const o=b.useRef(null),[i,a]=b.useState(!1),{sx:s={},...l}=r;b.useEffect(()=>{const u=o.current;a(u.scrollWidth>u.offsetWidth||u.scrollHeight>u.offsetHeight)},[]);const c=b.useMemo(()=>{var d;const u=(d=o.current)==null?void 0:d.offsetWidth;return u?u>kx?u:kx:"100%"},[o.current]);return p.jsx(Tp,{...n,title:i?e:"",sx:{maxWidth:c},children:p.jsx(vt,{component:"div",sx:{maxWidth:t,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",...s},ref:o,...l,children:e},void 0)},void 0)},JD=e=>p.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",...e,children:[p.jsx("path",{d:"M1.47656 33.8702C1.47656 34.5009 3.48086 35.1057 7.04852 35.5517C10.6162 35.9976 15.455 36.2482 20.5004 36.2482C25.5459 36.2482 30.3847 35.9976 33.9523 35.5517C37.52 35.1057 39.5243 34.5009 39.5243 33.8702C39.5243 33.2395 37.52 32.6346 33.9523 32.1887C30.3847 31.7427 25.5459 31.4922 20.5004 31.4922C15.455 31.4922 10.6162 31.7427 7.04852 32.1887C3.48086 32.6346 1.47656 33.2395 1.47656 33.8702Z",fill:"#F0F2F4"},void 0),p.jsx("path",{d:"M36.6449 17.8911V17.8435C36.6449 17.7959 36.6211 17.7722 36.6211 17.7246V17.7008L31.5085 7.53099C30.7713 5.27191 28.6787 3.75 26.3007 3.75H14.6723C12.2944 3.75 10.2017 5.27191 9.46457 7.53099L4.3519 17.7008V17.7246C4.32812 17.7722 4.32812 17.7959 4.32812 17.8435V27.4506C4.32812 30.4706 6.77745 32.9199 9.79748 32.9199H31.1993C34.2194 32.9199 36.6687 30.4706 36.6687 27.4506V17.9386C36.6449 17.9149 36.6449 17.9148 36.6449 17.8911ZM10.7962 8.03037C10.7962 8.03037 10.7962 8.00659 10.82 8.00659C11.3432 6.29444 12.9126 5.17679 14.6723 5.17679H26.2769C28.0366 5.17679 29.6061 6.29444 30.153 7.98281C30.153 7.98281 30.153 8.00659 30.1768 8.00659L34.909 17.2015H24.0416C23.6373 17.2015 23.3282 17.5106 23.3282 17.9148C23.3282 19.4843 22.0441 20.7684 20.4746 20.7684C18.9052 20.7684 17.621 19.4843 17.621 17.9148C17.621 17.5106 17.3119 17.2015 16.9077 17.2015H6.06405L10.7962 8.03037Z",fill:"#D1D6DC"},void 0),p.jsx("path",{d:"M35.2428 27.2126C35.2428 29.4479 33.4356 31.2552 31.2003 31.2552H9.79843C7.56313 31.2552 5.75586 29.4479 5.75586 27.2126V18.4141H16.2903C16.6232 20.4353 18.3829 21.981 20.4994 21.981C22.6158 21.981 24.3755 20.4353 24.7084 18.4141H35.2428V27.2126Z",fill:"#E0E3E7"},void 0)]},void 0),ej="_empty_1tvs0_3",tj="_text_1tvs0_13",Ex={empty:ej,text:tj};var qa;(function(e){e.Left="left",e.Right="right"})(qa||(qa={}));const nj=b.forwardRef((e,t)=>{const{autoWidth:n,placeholder:r,options:o,onChange:i,onSelectChange:a,onClose:s,onOpen:l,disabled:c=!1,label:u,sxProps:d={},defaultValue:f="",maxWidth:g,classes:{root:m,label:y,container:C,select:v,placeholder:S}={},MenuProps:h,value:w="",size:_="medium",renderValue:T,empty:k={},selectorTooltip:R={},endAdornment:P,...x}=e,[$,I]=b.useState(""),O=Ht(),D=L=>{const B=L.target.value;if(I(B),Array.isArray(B)){const z=o.filter(j=>B.includes(j.value)&&!j.disabled);a?a(L,z):i(z);return}const H=o.find(z=>z.value===B);H!=null&&H.disabled||(a?a(L,H):i(H))};b.useEffect(()=>{I(w)},[w]),b.useEffect(()=>{I(f)},[f]);const M=b.useMemo(()=>_==="small"?{minWidth:"83px",height:28,iconRightOffset:"8px",select:{padding:`6px ${P?"65px":"32px"} 6px 8px`,minHeight:"16px",fontSize:"13px",lineHeight:"135%",borderRadius:"6px"},placeholderVariant:"body2Regular"}:{minWidth:"120px",height:36,iconRightOffset:"12px",select:{padding:`8px ${P?"74px":"38px"} 8px 12px`,minHeight:"20px",fontSize:"14px",lineHeight:"135%",borderRadius:"8px"},placeholderVariant:"body1Regular"},[_,P]),N=b.useMemo(()=>f===""&&w===""?r?()=>p.jsx(vt,{variant:M.placeholderVariant,sx:{color:O.black.black3,...d.sxPlaceHolder},className:S,children:r},void 0):T:T||void 0,[f,w,r,T,M]),A=L=>L==="small"?12:14,E=P?L=>p.jsxs(Ar,{sx:{height:M.height,display:"flex",gap:_==="small"?"10px":"12px",position:"absolute",right:"12px",userSelect:"none",pointerEvents:"none",alignItems:"center"},children:[p.jsx(la,{size:A(_)},void 0),p.jsx(Ar,{sx:{height:"100%",width:"1px",backgroundColor:O.stroke.stroke1}},void 0),p.jsx(vt,{component:"div",variant:"body2Regular",children:P},void 0)]},void 0):L=>p.jsx(la,{size:A(_),...L},void 0);return p.jsxs(vt,{component:"div",sx:{display:"flex",flexDirection:"column",gap:"8px",...d.sxRoot},className:m,children:[u&&p.jsx(vt,{component:"label",variant:"h4Medium",sx:{marginTop:O.spacing(1),...d.sxLabel},className:y,children:u},void 0),p.jsx(ha,{tooltip:R,children:p.jsx(Ar,{sx:{position:"relative",display:"inline-block",verticalAlign:"baseline",backgroundColor:c?O.black.black5:"#fff",borderRadius:M.select.borderRadius,width:"100%",...d.sxSelectContainer},className:C,children:p.jsx(Cp,{autoWidth:n,value:w||$,onChange:c?()=>{}:D,onClose:s,onOpen:l,disabled:c,displayEmpty:!0,IconComponent:E,className:v,renderValue:N,MenuProps:{sx:{"& .MuiPaper-root":{marginTop:"6px",background:O.palette.common.white,boxShadow:ca,border:`1px solid ${O.stroke.stroke1}`,borderRadius:"8px","& > ul.MuiList-root":{padding:"6px 0","& li":{margin:"4px 0"}}},...d.sxMenu},anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},PaperProps:{sx:{maxHeight:"50vh"}},...h},sx:{width:n?"auto":"100%",minWidth:M.minWidth,height:M.height,transition:"all 0.2s",borderRadius:M.select.borderRadius,"& fieldset":{border:`1px solid ${O.stroke.stroke1}`,borderRadius:M.select.borderRadius,boxShadow:ca},"& > .MuiSelect-icon":{right:M.iconRightOffset,top:"auto",bottom:"auto",transform:"rotate(0)","& path":{fill:O.black.black1}},"&.Mui-focused fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.blue.blue1}`,boxShadow:`0px 0px 0px 4px ${O.blue.blue4}, ${hr}`,zIndex:"999"},"&.Mui-focused:hover fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.blue.blue1}`,boxShadow:"none"},"&.Mui-error":{transition:"none","&.Mui-error fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.red.red2}`,boxShadow:`0px 0px 0px 4px ${O.red.red4}, ${hr}`},"&.Mui-error:hover fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.red.red2}`,boxShadow:"none"}},"& .MuiSelect-select":{padding:M.select.padding,minHeight:M.select.minHeight,fontSize:M.select.fontSize,lineHeight:M.select.lineHeight,boxSizing:"border-box",".MuiTypography-root":{fontSize:M.select.fontSize,lineHeight:M.select.lineHeight},"& p":{fontSize:M.select.fontSize,lineHeight:M.select.lineHeight},"& span":{fontSize:M.select.fontSize,lineHeight:M.select.lineHeight}},"&:hover":{backgroundColor:c?"unset":O.palette.common.white,"&:not(.Mui-error)":{boxShadow:c?"none":`0px 0px 0px 4px ${O.blue.blue4}, ${hr}`},"&.Mui-error":{boxShadow:`0px 0px 0px 4px ${O.red.red4}, ${hr}`},"& fieldset.MuiOutlinedInput-notchedOutline":{borderColor:"transparent"}},"&:focus":{"& fieldset":{borderColor:O.blue.blue1,boxShadow:`0px 0px 0px 4px ${O.blue.blue4}, ${hr}`}},"&.Mui-disabled":{color:O.black.black3,"& > .MuiSelect-icon path":{fill:O.black.black3},"& fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${O.stroke.stroke1}`}},...d.sxSelect},...x,children:o.length>0?o.map(L=>oj(L,O,d.sxMenuItem,g)):p.jsx(rj,{...k},void 0)},void 0)},void 0)},void 0)]},void 0)}),rj=e=>{const{label:t,component:n,classes:r={root:"",text:"",img:""}}=e,o=Ht();return p.jsx(Lc,{sx:{"&.Mui-disabled":{opacity:1,pointerEvents:"inherit","&:hover":{backgroundColor:"unset"}}},disabled:!0,children:n||p.jsxs("div",{className:qt(Ex.empty,r.root),children:[p.jsx(JD,{className:r.img},void 0),p.jsx(vt,{component:"div",className:qt(Ex.text,r.text),children:t||Jd(Ne.NoOptions,o.language)},void 0)]},void 0)},void 0)},oj=(e,t,n,r)=>{const{generateCustomEle:o,icon:i,label:a,tooltip:s,disabled:l,id:c,value:u,iconPosition:d=qa.Left}=e;if(o)return o();const f=({id:g,value:m,disabled:y,icon:C,label:v,iconPosition:S=qa.Left})=>p.jsx(Lc,{value:m,disableRipple:!0,disableTouchRipple:!0,disabled:y||!1,sx:{maxWidth:r||"inherit",padding:"8px 16px","&.Mui-disabled":{opacity:1,backgroundColor:"transparent",pointerEvents:"inherit","& > div":{color:t.black.black3}},"&.Mui-selected.Mui-focusVisible":{backgroundColor:t.palette.common.white},"&.Mui-selected":{backgroundColor:t.palette.common.white,"& > * span":{color:t.blue.blue1},"& > .MuiTypography-root":{color:t.blue.blue1}},"&:not(.Mui-disabled):hover":{backgroundColor:t.black.black5},...n},children:C?p.jsxs(vt,{component:"div",sx:{display:"flex",flexDirection:"row",alignItems:"center",gap:"8px"},children:[S===qa.Left?C:null,p.jsx($x,{typographyProps:{component:"span"},maxWidth:r?r-50:void 0,children:v},void 0),S===qa.Right?C:null]},void 0):p.jsx($x,{maxWidth:r||void 0,typographyProps:{sx:{minWidth:10}},children:v},void 0)},g===void 0?m:g);return l&&s?p.jsx(ha,{tooltip:s,children:f({id:c,value:u,disabled:l,icon:i,label:a,iconPosition:d})},c):f({id:c,value:u,disabled:l,icon:i,label:a,iconPosition:d})},tR=b.forwardRef((e,t)=>{const{options:n,handleChange:r,handleInputChange:o,inputParams:i={},fullWidth:a=!0,sx:s={},size:l,...c}=e,u=Ht(),d=(m,y)=>{r&&r(y)},f=(m,y)=>{o&&o(y)},g=b.useMemo(()=>l==="small"?{height:28,iconRightOffset:"8px",select:{padding:"6px 32px 6px 8px",fontSize:"13px",lineHeight:"135%",endIconRight:"1px",borderRadius:"6px"}}:{height:36,iconRightOffset:"12px",select:{padding:"8px 38px 8px 12px",fontSize:"14px",lineHeight:"135%",endIconRight:"3px",borderRadius:"8px"}},[l]);return p.jsx(II,{disablePortal:!0,sx:{"& .MuiOutlinedInput-root":{minHeight:g.height,padding:g.select.padding,borderRadius:g.select.borderRadius,".MuiOutlinedInput-notchedOutline":{borderColor:u.stroke.stroke1,boxShadow:ca},"&:hover":{cursor:"pointer","& .MuiOutlinedInput-notchedOutline":{borderColor:"transparent",boxShadow:`0px 0px 0px 4px ${u.blue.blue4}, ${hr}`}},"&.Mui-focused":{"& .MuiOutlinedInput-notchedOutline":{border:`1px solid ${u.blue.blue1}`,boxShadow:`0px 0px 0px 4px ${u.blue.blue4}, ${hr}`}},"& input.MuiInputBase-input":{fontSize:g.select.fontSize,lineHeight:g.select.lineHeight,padding:0,height:"auto"}},"& .MuiIconButton-root:hover":{background:"none"},"& div.MuiAutocomplete-endAdornment":{top:"calc(50% - 2px)",paddingRight:g.select.endIconRight},"& .MuiAutocomplete-popupIndicatorOpen":{transform:"none"},...s},PaperComponent:m=>p.jsx(As,{sx:{marginTop:"6px",background:u.palette.common.white,boxShadow:ca,border:`1px solid ${u.stroke.stroke1}`,borderRadius:g.select.borderRadius,".MuiAutocomplete-listbox":{".MuiAutocomplete-option":{backgroundColor:u.palette.common.white,padding:"8px 16px","&:hover":{backgroundColor:`${u.black.black5} `}}},"& .MuiAutocomplete-option":{fontSize:g.select.fontSize,lineHeight:g.select.lineHeight},'& .MuiAutocomplete-option[aria-selected="true"]':{backgroundColor:`${u.palette.common.white} !important`,color:u.blue.blue1}},...m},void 0),popupIcon:p.jsx(la,{size:14,style:{color:u.black.black1}},void 0),clearIcon:null,onChange:d,onInputChange:f,fullWidth:a,ref:t,componentsProps:{popupIndicator:{disableRipple:!0}},size:l,...c,options:n,renderInput:m=>p.jsx(V1,{...m,...i},void 0)},void 0)});function ij(e){return{id:`z-tab-${e}`,"aria-controls":`z-tabpanel-${e}`}}const aj=e=>{const{value:t,handleChange:n,labelConfigs:r=[],size:o="medium",tabsType:i="indicator",color:a,...s}=e;if(t===void 0||!n||!r.length)throw new Error("Props value, handleChange and labels are required");const l=Ht(),{tabsStyle:c,tabStyle:u}=b.useMemo(()=>({tabStyle:{fontSize:o==="small"?"11px":"14px",lineHeight:o==="small"?"120%":"135%",minHeight:o==="small"?"20px":"28px",marginRight:i==="indicator"?"24px":"10px",padding:o==="small"?"4px 8px":"6px 12px",fontWeight:o==="small"?400:500},tabsStyle:{minHeight:i==="background"?"32px":"36px"}}),[i,o]);return p.jsxs(zN,{...s,value:t,onChange:n,"aria-label":"tab",sx:{...c,".MuiTabs-indicator":{display:i!=="indicator"?"none":"block",backgroundColor:l.blue.blue1}},children:[r.map((d,f)=>b.createElement(T7,{disableRipple:!0,...d,sx:{"&:hover":{color:l.black.black1},color:l.black.black2,borderRadius:"6px",minWidth:0,textTransform:"inherit",...u,"&.Mui-selected":{backgroundColor:i==="background"?a||l.black.black4:"transparent",color:i==="text"?l.blue.blue1:l.black.black1},...d.sx},key:f,...ij(f)})),p.jsx(Ar,{sx:{position:"absolute",left:0,bottom:"1px",right:0,height:"1px",backgroundColor:l.stroke.stroke1,display:i==="indicator"?"block":"none"}},void 0)]},void 0)};b.forwardRef((e,t)=>{const n=Ht(),{sx:r,disabled:o,...i}=e;return p.jsx(w7,{ref:t,focusVisibleClassName:".Mui-focusVisible",disableRipple:!0,disabled:o,sx:{width:"30px",height:"18px",padding:0,borderRadius:"12px","&.MuiSwitch-root":{boxSizing:"inherit",borderRadius:"12px",border:"3px solid transparent","&:hover":{border:o?"3px solid transparent":`3px solid ${n.blue.blue4}`}},"& .MuiSwitch-switchBase":{padding:0,margin:"2px",transitionDuration:"300ms","&.Mui-disabled":{color:"#fff"},"&.Mui-disabled+.MuiSwitch-track":{opacity:.5,backgroundColor:n.stroke.stroke1},"&.Mui-checked":{transform:"translateX(12px)",color:"#fff","& + .MuiSwitch-track":{backgroundColor:n.blue.blue1,opacity:1,border:0},"&.Mui-disabled":{color:"#fff","& .MuiSwitch-thumb":{backgroundImage:`url('data:image/svg+xml,%3Csvg width="8" height="5" viewBox="0 0 8 5" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath opacity="0.5" d="M7.07386 0.267169L7.0742 0.266888L7.06621 0.258615C6.93931 0.1272 6.73491 0.126882 6.60764 0.257662L3.10802 3.77259L1.40194 2.0546C1.27467 1.92373 1.0702 1.92401 0.943272 2.05546C0.818909 2.18425 0.818909 2.38743 0.943272 2.51622L0.943261 2.51623L0.944741 2.51772L2.7084 4.29369C2.81588 4.40452 2.96228 4.45981 3.0982 4.45981C3.24579 4.45981 3.38185 4.40316 3.48793 4.29377L7.04276 0.723374C7.18062 0.595374 7.17948 0.394776 7.07386 0.267169ZM3.16713 3.83211L3.16614 3.83111C3.16648 3.83145 3.1668 3.83179 3.16712 3.83212L3.16713 3.83211Z" fill="%233F46FF" stroke="%233F46FF" stroke-width="0.3"/%3E%3C/svg%3E')`}},"& .MuiSwitch-thumb":{backgroundImage:`url('data:image/svg+xml,%3Csvg width="8" height="5" viewBox="0 0 8 5" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M7.07386 0.267169L7.0742 0.266888L7.06621 0.258615C6.93931 0.1272 6.73491 0.126882 6.60764 0.257662L3.10802 3.77259L1.40194 2.0546C1.27467 1.92373 1.0702 1.92401 0.943272 2.05546C0.818909 2.18425 0.818909 2.38743 0.943272 2.51622L0.943261 2.51623L0.944741 2.51772L2.7084 4.29369C2.81588 4.40452 2.96228 4.45981 3.0982 4.45981C3.24579 4.45981 3.38185 4.40316 3.48793 4.29377L7.04276 0.723374C7.18062 0.595374 7.17948 0.394776 7.07386 0.267169ZM3.16713 3.83211L3.16614 3.83111C3.16648 3.83145 3.1668 3.83179 3.16712 3.83212L3.16713 3.83211Z" fill="%233F46FF" stroke="%233F46FF" stroke-width="0.3"/%3E%3C/svg%3E')`,backgroundRepeat:"no-repeat",backgroundPosition:"center 60%"},"&.Mui-disabled+.MuiSwitch-track":{opacity:.5}},"&:hover":{backgroundColor:"transparent"}},"& .MuiSwitch-thumb":{width:"12px",height:"12px",boxShadow:"none",margin:"1px 0 0 1px"},"& .MuiSwitch-track":{backgroundColor:n.stroke.stroke2,transition:n.transitions.create(["background-color"],{duration:500}),borderRadius:"10px",opacity:1},...r},...i},void 0)});var Cs;(function(e){e.PY="python",e.JS="javascript",e.JAVA="java",e.BASH="bash"})(Cs||(Cs={}));function sj(e,t){if(e==null)return{};var n,r,o=Ns(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;re.length)&&(t=e.length);for(var n=0,r=Array(t);n=4)return[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]}var $g={};function pj(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return $g[t]||($g[t]=fj(e)),$g[t]}function gj(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=e.filter(function(i){return i!=="token"}),o=pj(r);return o.reduce(function(i,a){return Ka(Ka({},i),n[a])},t)}function Ix(e){return e.join(" ")}function hj(e,t){var n=0;return function(r){return n+=1,r.map(function(o,i){return rR({node:o,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(i)})})}}function rR(e){var t=e.node,n=e.stylesheet,r=e.style,o=r===void 0?{}:r,i=e.useInlineStyles,a=e.key,s=t.properties,l=t.type,c=t.tagName,u=t.value;if(l==="text")return u;if(c){var d=hj(n,i),f;if(!i)f=Ka(Ka({},s),{},{className:Ix(s.className)});else{var g=Object.keys(n).reduce(function(v,S){return S.split(".").forEach(function(h){v.includes(h)||v.push(h)}),v},[]),m=s.className&&s.className.includes("token")?["token"]:[],y=s.className&&m.concat(s.className.filter(function(v){return!g.includes(v)}));f=Ka(Ka({},s),{},{className:Ix(y)||void 0,style:gj(s.className,Object.assign({},s.style,o),n)})}var C=d(t.children);return rt.createElement(c,An({key:a},f),C)}}const mj=function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1};var vj=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function Ox(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Jo(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=0;r2&&arguments[2]!==void 0?arguments[2]:[];return Ju({children:_,lineNumber:T,lineNumberStyle:s,largestLineNumber:a,showInlineLineNumbers:o,lineProps:n,className:k,showLineNumbers:r,wrapLongLines:l,wrapLines:t})}function y(_,T){if(r&&T&&o){var k=iR(s,T,a);_.unshift(oR(T,k))}return _}function C(_,T){var k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||k.length>0?m(_,T,k):y(_,T)}for(var v=function(){var T=u[g],k=T.children[0].value,R=bj(k);if(R){var P=k.split(` +`);P.forEach(function(x,$){var I=r&&d.length+i,O={type:"text",value:"".concat(x,` +`)};if($===0){var D=u.slice(f+1,g).concat(Ju({children:[O],className:T.properties.className})),M=C(D,I);d.push(M)}else if($===P.length-1){var N=u[g+1]&&u[g+1].children&&u[g+1].children[0],A={type:"text",value:"".concat(x)};if(N){var E=Ju({children:[A],className:T.properties.className});u.splice(g+1,0,E)}else{var L=[A],B=C(L,I,T.properties.className);d.push(B)}}else{var H=[O],z=C(H,I,T.properties.className);d.push(z)}}),f=g}g++};g/g,">").replace(/"/g,""").replace(/'/g,"'")}function ei(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const o in r)n[o]=r[o]}),n}const kj="
",Nx=e=>!!e.kind;class $j{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=rs(t)}openNode(t){if(!Nx(t))return;let n=t.kind;t.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(t){Nx(t)&&(this.buffer+=kj)}value(){return this.buffer}span(t){this.buffer+=``}}class U1{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n={kind:t,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{U1._collapse(n)}))}}class Ej extends U1{constructor(t){super(),this.options=t}addKeyword(t,n){t!==""&&(this.openNode(n),this.addText(t),this.closeNode())}addText(t){t!==""&&this.add(t)}addSublanguage(t,n){const r=t.root;r.kind=n,r.sublanguage=!0,this.add(r)}toHTML(){return new $j(this,this.options).value()}finalize(){return!0}}function Mj(e){return new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function vc(e){return e?typeof e=="string"?e:e.source:null}function Ij(...e){return e.map(n=>vc(n)).join("")}function Oj(...e){return"("+e.map(n=>vc(n)).join("|")+")"}function Lj(e){return new RegExp(e.toString()+"|").exec("").length-1}function Nj(e,t){const n=e&&e.exec(t);return n&&n.index===0}const Aj=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Dj(e,t="|"){let n=0;return e.map(r=>{n+=1;const o=n;let i=vc(r),a="";for(;i.length>0;){const s=Aj.exec(i);if(!s){a+=i;break}a+=i.substring(0,s.index),i=i.substring(s.index+s[0].length),s[0][0]==="\\"&&s[1]?a+="\\"+String(Number(s[1])+o):(a+=s[0],s[0]==="("&&n++)}return a}).map(r=>`(${r})`).join(t)}const jj=/\b\B/,cR="[a-zA-Z]\\w*",G1="[a-zA-Z_]\\w*",q1="\\b\\d+(\\.\\d+)?",uR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",dR="\\b(0b[01]+)",Fj="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Bj=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=Ij(t,/.*\b/,e.binary,/\b.*/)),ei({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},yc={begin:"\\\\[\\s\\S]",relevance:0},zj={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[yc]},Hj={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[yc]},fR={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Pp=function(e,t,n={}){const r=ei({className:"comment",begin:e,end:t,contains:[]},n);return r.contains.push(fR),r.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),r},Vj=Pp("//","$"),Wj=Pp("/\\*","\\*/"),Uj=Pp("#","$"),Gj={className:"number",begin:q1,relevance:0},qj={className:"number",begin:uR,relevance:0},Kj={className:"number",begin:dR,relevance:0},Zj={className:"number",begin:q1+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},Qj={begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[yc,{begin:/\[/,end:/\]/,relevance:0,contains:[yc]}]}]},Yj={className:"title",begin:cR,relevance:0},Xj={className:"title",begin:G1,relevance:0},Jj={begin:"\\.\\s*"+G1,relevance:0},eF=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var Su=Object.freeze({__proto__:null,MATCH_NOTHING_RE:jj,IDENT_RE:cR,UNDERSCORE_IDENT_RE:G1,NUMBER_RE:q1,C_NUMBER_RE:uR,BINARY_NUMBER_RE:dR,RE_STARTERS_RE:Fj,SHEBANG:Bj,BACKSLASH_ESCAPE:yc,APOS_STRING_MODE:zj,QUOTE_STRING_MODE:Hj,PHRASAL_WORDS_MODE:fR,COMMENT:Pp,C_LINE_COMMENT_MODE:Vj,C_BLOCK_COMMENT_MODE:Wj,HASH_COMMENT_MODE:Uj,NUMBER_MODE:Gj,C_NUMBER_MODE:qj,BINARY_NUMBER_MODE:Kj,CSS_NUMBER_MODE:Zj,REGEXP_MODE:Qj,TITLE_MODE:Yj,UNDERSCORE_TITLE_MODE:Xj,METHOD_GUARD:Jj,END_SAME_AS_BEGIN:eF});function tF(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function nF(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=tF,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function rF(e,t){Array.isArray(e.illegal)&&(e.illegal=Oj(...e.illegal))}function oF(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function iF(e,t){e.relevance===void 0&&(e.relevance=1)}const aF=["of","and","for","in","not","or","if","then","parent","list","value"],sF="keyword";function pR(e,t,n=sF){const r={};return typeof e=="string"?o(n,e.split(" ")):Array.isArray(e)?o(n,e):Object.keys(e).forEach(function(i){Object.assign(r,pR(e[i],t,i))}),r;function o(i,a){t&&(a=a.map(s=>s.toLowerCase())),a.forEach(function(s){const l=s.split("|");r[l[0]]=[i,lF(l[0],l[1])]})}}function lF(e,t){return t?Number(t):cF(e)?0:1}function cF(e){return aF.includes(e.toLowerCase())}function uF(e,{plugins:t}){function n(s,l){return new RegExp(vc(s),"m"+(e.case_insensitive?"i":"")+(l?"g":""))}class r{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(l,c){c.position=this.position++,this.matchIndexes[this.matchAt]=c,this.regexes.push([c,l]),this.matchAt+=Lj(l)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const l=this.regexes.map(c=>c[1]);this.matcherRe=n(Dj(l),!0),this.lastIndex=0}exec(l){this.matcherRe.lastIndex=this.lastIndex;const c=this.matcherRe.exec(l);if(!c)return null;const u=c.findIndex((f,g)=>g>0&&f!==void 0),d=this.matchIndexes[u];return c.splice(0,u),Object.assign(c,d)}}class o{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(l){if(this.multiRegexes[l])return this.multiRegexes[l];const c=new r;return this.rules.slice(l).forEach(([u,d])=>c.addRule(u,d)),c.compile(),this.multiRegexes[l]=c,c}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(l,c){this.rules.push([l,c]),c.type==="begin"&&this.count++}exec(l){const c=this.getMatcher(this.regexIndex);c.lastIndex=this.lastIndex;let u=c.exec(l);if(this.resumingScanAtSamePosition()&&!(u&&u.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,u=d.exec(l)}return u&&(this.regexIndex+=u.position+1,this.regexIndex===this.count&&this.considerAll()),u}}function i(s){const l=new o;return s.contains.forEach(c=>l.addRule(c.begin,{rule:c,type:"begin"})),s.terminatorEnd&&l.addRule(s.terminatorEnd,{type:"end"}),s.illegal&&l.addRule(s.illegal,{type:"illegal"}),l}function a(s,l){const c=s;if(s.isCompiled)return c;[oF].forEach(d=>d(s,l)),e.compilerExtensions.forEach(d=>d(s,l)),s.__beforeBegin=null,[nF,rF,iF].forEach(d=>d(s,l)),s.isCompiled=!0;let u=null;if(typeof s.keywords=="object"&&(u=s.keywords.$pattern,delete s.keywords.$pattern),s.keywords&&(s.keywords=pR(s.keywords,e.case_insensitive)),s.lexemes&&u)throw new Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");return u=u||s.lexemes||/\w+/,c.keywordPatternRe=n(u,!0),l&&(s.begin||(s.begin=/\B|\b/),c.beginRe=n(s.begin),s.endSameAsBegin&&(s.end=s.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(c.endRe=n(s.end)),c.terminatorEnd=vc(s.end)||"",s.endsWithParent&&l.terminatorEnd&&(c.terminatorEnd+=(s.end?"|":"")+l.terminatorEnd)),s.illegal&&(c.illegalRe=n(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map(function(d){return dF(d==="self"?s:d)})),s.contains.forEach(function(d){a(d,c)}),s.starts&&a(s.starts,l),c.matcher=i(c),c}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=ei(e.classNameAliases||{}),a(e)}function gR(e){return e?e.endsWithParent||gR(e.starts):!1}function dF(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return ei(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:gR(e)?ei(e,{starts:e.starts?ei(e.starts):null}):Object.isFrozen(e)?ei(e):e}var fF="10.7.3";function pF(e){return!!(e||e==="")}function gF(e){const t={props:["language","code","autodetect"],data:function(){return{detectedLanguage:"",unknownLanguage:!1}},computed:{className(){return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`),this.unknownLanguage=!0,rs(this.code);let r={};return this.autoDetect?(r=e.highlightAuto(this.code),this.detectedLanguage=r.language):(r=e.highlight(this.language,this.code,this.ignoreIllegals),this.detectedLanguage=this.language),r.value},autoDetect(){return!this.language||pF(this.autodetect)},ignoreIllegals(){return!0}},render(r){return r("pre",{},[r("code",{class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{Component:t,VuePlugin:{install(r){r.component("highlightjs",t)}}}}const hF={"after:highlightElement":({el:e,result:t,text:n})=>{const r=Ax(e);if(!r.length)return;const o=document.createElement("div");o.innerHTML=t.value,t.value=mF(r,Ax(o),n)}};function Nm(e){return e.nodeName.toLowerCase()}function Ax(e){const t=[];return function n(r,o){for(let i=r.firstChild;i;i=i.nextSibling)i.nodeType===3?o+=i.nodeValue.length:i.nodeType===1&&(t.push({event:"start",offset:o,node:i}),o=n(i,o),Nm(i).match(/br|hr|img|input/)||t.push({event:"stop",offset:o,node:i}));return o}(e,0),t}function mF(e,t,n){let r=0,o="";const i=[];function a(){return!e.length||!t.length?e.length?e:t:e[0].offset!==t[0].offset?e[0].offset"}function l(u){o+=""}function c(u){(u.event==="start"?s:l)(u.node)}for(;e.length||t.length;){let u=a();if(o+=rs(n.substring(r,u[0].offset)),r=u[0].offset,u===e){i.reverse().forEach(l);do c(u.splice(0,1)[0]),u=a();while(u===e&&u.length&&u[0].offset===r);i.reverse().forEach(s)}else u[0].event==="start"?i.push(u[0].node):i.pop(),c(u.splice(0,1)[0])}return o+rs(n.substr(r))}const Dx={},Eg=e=>{console.error(e)},jx=(e,...t)=>{console.log(`WARN: ${e}`,...t)},cr=(e,t)=>{Dx[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Dx[`${e}/${t}`]=!0)},Mg=rs,Fx=ei,Bx=Symbol("nomatch"),vF=function(e){const t=Object.create(null),n=Object.create(null),r=[];let o=!0;const i=/(^(<[^>]+>|\t|)+|\n)/gm,a="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let l={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:null,__emitter:Ej};function c(j){return l.noHighlightRe.test(j)}function u(j){let F=j.className+" ";F+=j.parentNode?j.parentNode.className:"";const W=l.languageDetectRe.exec(F);if(W){const V=M(W[1]);return V||(jx(a.replace("{}",W[1])),jx("Falling back to no-highlight mode for this block.",j)),V?W[1]:"no-highlight"}return F.split(/\s+/).find(V=>c(V)||M(V))}function d(j,F,W,V){let ee="",re="";typeof F=="object"?(ee=j,W=F.ignoreIllegals,re=F.language,V=void 0):(cr("10.7.0","highlight(lang, code, ...args) has been deprecated."),cr("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),re=j,ee=F);const U={code:ee,language:re};B("before:highlight",U);const K=U.result?U.result:f(U.language,U.code,W,V);return K.code=U.code,B("after:highlight",K),K}function f(j,F,W,V){function ee(pe,ne){const xe=be.case_insensitive?ne[0].toLowerCase():ne[0];return Object.prototype.hasOwnProperty.call(pe.keywords,xe)&&pe.keywords[xe]}function re(){if(!ge.keywords){Se.addText(ye);return}let pe=0;ge.keywordPatternRe.lastIndex=0;let ne=ge.keywordPatternRe.exec(ye),xe="";for(;ne;){xe+=ye.substring(pe,ne.index);const Le=ee(ge,ne);if(Le){const[fe,oe]=Le;if(Se.addText(xe),xe="",Ge+=oe,fe.startsWith("_"))xe+=ne[0];else{const me=be.classNameAliases[fe]||fe;Se.addKeyword(ne[0],me)}}else xe+=ne[0];pe=ge.keywordPatternRe.lastIndex,ne=ge.keywordPatternRe.exec(ye)}xe+=ye.substr(pe),Se.addText(xe)}function U(){if(ye==="")return;let pe=null;if(typeof ge.subLanguage=="string"){if(!t[ge.subLanguage]){Se.addText(ye);return}pe=f(ge.subLanguage,ye,!0,le[ge.subLanguage]),le[ge.subLanguage]=pe.top}else pe=m(ye,ge.subLanguage.length?ge.subLanguage:null);ge.relevance>0&&(Ge+=pe.relevance),Se.addSublanguage(pe.emitter,pe.language)}function K(){ge.subLanguage!=null?U():re(),ye=""}function se(pe){return pe.className&&Se.openNode(be.classNameAliases[pe.className]||pe.className),ge=Object.create(pe,{parent:{value:ge}}),ge}function q(pe,ne,xe){let Le=Nj(pe.endRe,xe);if(Le){if(pe["on:end"]){const fe=new Lx(pe);pe["on:end"](ne,fe),fe.isMatchIgnored&&(Le=!1)}if(Le){for(;pe.endsParent&&pe.parent;)pe=pe.parent;return pe}}if(pe.endsWithParent)return q(pe.parent,ne,xe)}function ce(pe){return ge.matcher.regexIndex===0?(ye+=pe[0],1):(ke=!0,0)}function ue(pe){const ne=pe[0],xe=pe.rule,Le=new Lx(xe),fe=[xe.__beforeBegin,xe["on:begin"]];for(const oe of fe)if(oe&&(oe(pe,Le),Le.isMatchIgnored))return ce(ne);return xe&&xe.endSameAsBegin&&(xe.endRe=Mj(ne)),xe.skip?ye+=ne:(xe.excludeBegin&&(ye+=ne),K(),!xe.returnBegin&&!xe.excludeBegin&&(ye=ne)),se(xe),xe.returnBegin?0:ne.length}function ie(pe){const ne=pe[0],xe=F.substr(pe.index),Le=q(ge,pe,xe);if(!Le)return Bx;const fe=ge;fe.skip?ye+=ne:(fe.returnEnd||fe.excludeEnd||(ye+=ne),K(),fe.excludeEnd&&(ye=ne));do ge.className&&Se.closeNode(),!ge.skip&&!ge.subLanguage&&(Ge+=ge.relevance),ge=ge.parent;while(ge!==Le.parent);return Le.starts&&(Le.endSameAsBegin&&(Le.starts.endRe=Le.endRe),se(Le.starts)),fe.returnEnd?0:ne.length}function te(){const pe=[];for(let ne=ge;ne!==be;ne=ne.parent)ne.className&&pe.unshift(ne.className);pe.forEach(ne=>Se.openNode(ne))}let de={};function Q(pe,ne){const xe=ne&&ne[0];if(ye+=pe,xe==null)return K(),0;if(de.type==="begin"&&ne.type==="end"&&de.index===ne.index&&xe===""){if(ye+=F.slice(ne.index,ne.index+1),!o){const Le=new Error("0 width match regex");throw Le.languageName=j,Le.badRule=de.rule,Le}return 1}if(de=ne,ne.type==="begin")return ue(ne);if(ne.type==="illegal"&&!W){const Le=new Error('Illegal lexeme "'+xe+'" for mode "'+(ge.className||"")+'"');throw Le.mode=ge,Le}else if(ne.type==="end"){const Le=ie(ne);if(Le!==Bx)return Le}if(ne.type==="illegal"&&xe==="")return 1;if(Re>1e5&&Re>ne.index*3)throw new Error("potential infinite loop, way more iterations than matches");return ye+=xe,xe.length}const be=M(j);if(!be)throw Eg(a.replace("{}",j)),new Error('Unknown language: "'+j+'"');const Te=uF(be,{plugins:r});let we="",ge=V||Te;const le={},Se=new l.__emitter(l);te();let ye="",Ge=0,Pe=0,Re=0,ke=!1;try{for(ge.matcher.considerAll();;){Re++,ke?ke=!1:ge.matcher.considerAll(),ge.matcher.lastIndex=Pe;const pe=ge.matcher.exec(F);if(!pe)break;const ne=F.substring(Pe,pe.index),xe=Q(ne,pe);Pe=pe.index+xe}return Q(F.substr(Pe)),Se.closeAllNodes(),Se.finalize(),we=Se.toHTML(),{relevance:Math.floor(Ge),value:we,language:j,illegal:!1,emitter:Se,top:ge}}catch(pe){if(pe.message&&pe.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:pe.message,context:F.slice(Pe-100,Pe+100),mode:pe.mode},sofar:we,relevance:0,value:Mg(F),emitter:Se};if(o)return{illegal:!1,relevance:0,value:Mg(F),emitter:Se,language:j,top:ge,errorRaised:pe};throw pe}}function g(j){const F={relevance:0,emitter:new l.__emitter(l),value:Mg(j),illegal:!1,top:s};return F.emitter.addText(j),F}function m(j,F){F=F||l.languages||Object.keys(t);const W=g(j),V=F.filter(M).filter(A).map(se=>f(se,j,!1));V.unshift(W);const ee=V.sort((se,q)=>{if(se.relevance!==q.relevance)return q.relevance-se.relevance;if(se.language&&q.language){if(M(se.language).supersetOf===q.language)return 1;if(M(q.language).supersetOf===se.language)return-1}return 0}),[re,U]=ee,K=re;return K.second_best=U,K}function y(j){return l.tabReplace||l.useBR?j.replace(i,F=>F===` +`?l.useBR?"
":F:l.tabReplace?F.replace(/\t/g,l.tabReplace):F):j}function C(j,F,W){const V=F?n[F]:W;j.classList.add("hljs"),V&&j.classList.add(V)}const v={"before:highlightElement":({el:j})=>{l.useBR&&(j.innerHTML=j.innerHTML.replace(/\n/g,"").replace(//g,` +`))},"after:highlightElement":({result:j})=>{l.useBR&&(j.value=j.value.replace(/\n/g,"
"))}},S=/^(<[^>]+>|\t)+/gm,h={"after:highlightElement":({result:j})=>{l.tabReplace&&(j.value=j.value.replace(S,F=>F.replace(/\t/g,l.tabReplace)))}};function w(j){let F=null;const W=u(j);if(c(W))return;B("before:highlightElement",{el:j,language:W}),F=j;const V=F.textContent,ee=W?d(V,{language:W,ignoreIllegals:!0}):m(V);B("after:highlightElement",{el:j,result:ee,text:V}),j.innerHTML=ee.value,C(j,W,ee.language),j.result={language:ee.language,re:ee.relevance,relavance:ee.relevance},ee.second_best&&(j.second_best={language:ee.second_best.language,re:ee.second_best.relevance,relavance:ee.second_best.relevance})}function _(j){j.useBR&&(cr("10.3.0","'useBR' will be removed entirely in v11.0"),cr("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")),l=Fx(l,j)}const T=()=>{if(T.called)return;T.called=!0,cr("10.6.0","initHighlighting() is deprecated. Use highlightAll() instead."),document.querySelectorAll("pre code").forEach(w)};function k(){cr("10.6.0","initHighlightingOnLoad() is deprecated. Use highlightAll() instead."),R=!0}let R=!1;function P(){if(document.readyState==="loading"){R=!0;return}document.querySelectorAll("pre code").forEach(w)}function x(){R&&P()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",x,!1);function $(j,F){let W=null;try{W=F(e)}catch(V){if(Eg("Language definition for '{}' could not be registered.".replace("{}",j)),o)Eg(V);else throw V;W=s}W.name||(W.name=j),t[j]=W,W.rawDefinition=F.bind(null,e),W.aliases&&N(W.aliases,{languageName:j})}function I(j){delete t[j];for(const F of Object.keys(n))n[F]===j&&delete n[F]}function O(){return Object.keys(t)}function D(j){cr("10.4.0","requireLanguage will be removed entirely in v11."),cr("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844");const F=M(j);if(F)return F;throw new Error("The '{}' language is required, but not loaded.".replace("{}",j))}function M(j){return j=(j||"").toLowerCase(),t[j]||t[n[j]]}function N(j,{languageName:F}){typeof j=="string"&&(j=[j]),j.forEach(W=>{n[W.toLowerCase()]=F})}function A(j){const F=M(j);return F&&!F.disableAutodetect}function E(j){j["before:highlightBlock"]&&!j["before:highlightElement"]&&(j["before:highlightElement"]=F=>{j["before:highlightBlock"](Object.assign({block:F.el},F))}),j["after:highlightBlock"]&&!j["after:highlightElement"]&&(j["after:highlightElement"]=F=>{j["after:highlightBlock"](Object.assign({block:F.el},F))})}function L(j){E(j),r.push(j)}function B(j,F){const W=j;r.forEach(function(V){V[W]&&V[W](F)})}function H(j){return cr("10.2.0","fixMarkup will be removed entirely in v11.0"),cr("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"),y(j)}function z(j){return cr("10.7.0","highlightBlock will be removed entirely in v12.0"),cr("10.7.0","Please use highlightElement now."),w(j)}Object.assign(e,{highlight:d,highlightAuto:m,highlightAll:P,fixMarkup:H,highlightElement:w,highlightBlock:z,configure:_,initHighlighting:T,initHighlightingOnLoad:k,registerLanguage:$,unregisterLanguage:I,listLanguages:O,getLanguage:M,registerAliases:N,requireLanguage:D,autoDetection:A,inherit:Fx,addPlugin:L,vuePlugin:gF(e).VuePlugin}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString=fF;for(const j in Su)typeof Su[j]=="object"&&lR(Su[j]);return Object.assign(e,Su),e.addPlugin(v),e.addPlugin(hF),e.addPlugin(h),e};var yF=vF({}),bF=yF,hR={exports:{}};(function(e){(function(){var t;t=e.exports=o,t.format=o,t.vsprintf=r,typeof console<"u"&&typeof console.log=="function"&&(t.printf=n);function n(){console.log(o.apply(null,arguments))}function r(i,a){return o.apply(null,[i].concat(a))}function o(i){for(var a=1,s=[].slice.call(arguments),l=0,c=i.length,u="",d,f=!1,g,m,y=!1,C,v=function(){return s[a++]},S=function(){for(var h="";/\d/.test(i[l]);)h+=i[l++],d=i[l];return h.length>0?parseInt(h):null};ls.relevance&&(s=l),l.relevance>a.relevance&&(s=a,a=l));return s.language&&(a.secondBest=s),a}function RF(e,t){ro.registerLanguage(e,t)}function TF(){return ro.listLanguages()}function PF(e,t){var n=e,r;t&&(n={},n[e]=t);for(r in n)ro.registerAliases(n[r],{languageName:r})}function Ao(e){this.options=e,this.rootNode={children:[]},this.stack=[this.rootNode]}function kF(e,t){this.openNode(t),this.addText(e),this.closeNode()}function $F(e,t){var n=this.stack,r=n[n.length-1],o=e.rootNode.children,i=t?{type:"element",tagName:"span",properties:{className:[t]},children:o}:o;r.children=r.children.concat(i)}function EF(e){var t=this.stack,n,r;e!==""&&(n=t[t.length-1],r=n.children[n.children.length-1],r&&r.type==="text"?r.value+=e:n.children.push({type:"text",value:e}))}function MF(e){var t=this.stack,n=this.options.classPrefix+e,r=t[t.length-1],o={type:"element",tagName:"span",properties:{className:[n]},children:[]};r.children.push(o),t.push(o)}function IF(){this.stack.pop()}function OF(){return""}function vR(){}var Ig,zx;function LF(){if(zx)return Ig;zx=1;function e(r){return r?typeof r=="string"?r:r.source:null}function t(...r){return r.map(i=>e(i)).join("")}function n(r){const o={},i={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[o]}]};Object.assign(o,{className:"variable",variants:[{begin:t(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},i]});const a={className:"subst",begin:/\$\(/,end:/\)/,contains:[r.BACKSLASH_ESCAPE]},s={begin:/<<-?\s*(?=\w+)/,starts:{contains:[r.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},l={className:"string",begin:/"/,end:/"/,contains:[r.BACKSLASH_ESCAPE,o,a]};a.contains.push(l);const c={className:"",begin:/\\"/},u={className:"string",begin:/'/,end:/'/},d={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},r.NUMBER_MODE,o]},f=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],g=r.SHEBANG({binary:`(${f.join("|")})`,relevance:10}),m={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[r.inherit(r.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/,keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp"},contains:[g,r.SHEBANG(),m,d,r.HASH_COMMENT_MODE,s,l,c,u,o]}}return Ig=n,Ig}var Og,Hx;function NF(){if(Hx)return Og;Hx=1;var e="[0-9](_*[0-9])*",t=`\\.(${e})`,n="[0-9a-fA-F](_*[0-9a-fA-F])*",r={className:"number",variants:[{begin:`(\\b(${e})((${t})|\\.)?|(${t}))[eE][+-]?(${e})[fFdD]?\\b`},{begin:`\\b(${e})((${t})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${t})[fFdD]?\\b`},{begin:`\\b(${e})[fFdD]\\b`},{begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?(${e})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function o(i){var a="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",s=a+"(<"+a+"(\\s*,\\s*"+a+")*>)?",l="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",c={className:"meta",begin:"@"+a,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]};const u=r;return{name:"Java",aliases:["jsp"],keywords:l,illegal:/<\/|#/,contains:[i.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE,i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface enum",end:/[{;=]/,excludeEnd:!0,relevance:1,keywords:"class interface enum",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},i.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"class",begin:"record\\s+"+i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,excludeEnd:!0,end:/[{;=]/,keywords:l,contains:[{beginKeywords:"record"},{begin:i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[i.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[i.C_BLOCK_COMMENT_MODE]},i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE]},{className:"function",begin:"("+s+"\\s+)+"+i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:l,contains:[{begin:i.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[i.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[c,i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,i.C_BLOCK_COMMENT_MODE]},i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE]},u,c]}}return Og=o,Og}const Vx="[A-Za-z$_][0-9A-Za-z$_]*",AF=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],DF=["true","false","null","undefined","NaN","Infinity"],jF=["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],FF=["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],BF=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],zF=["arguments","this","super","console","window","document","localStorage","module","global"],HF=[].concat(BF,zF,jF,FF);function VF(e){return e?typeof e=="string"?e:e.source:null}function Wx(e){return Am("(?=",e,")")}function Am(...e){return e.map(n=>VF(n)).join("")}function WF(e){const t=(w,{after:_})=>{const T="",end:""},o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(w,_)=>{const T=w[0].length+w.index,k=w.input[T];if(k==="<"){_.ignoreMatch();return}k===">"&&(t(w,{after:T})||_.ignoreMatch())}},i={$pattern:Vx,keyword:AF,literal:DF,built_in:HF},a="[0-9](_?[0-9])*",s=`\\.(${a})`,l="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",c={className:"number",variants:[{begin:`(\\b(${l})((${s})|\\.)?|(${s}))[eE][+-]?(${a})\\b`},{begin:`\\b(${l})\\b((${s})\\b|\\.)?|(${s})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",end:"\\}",keywords:i,contains:[]},d={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},f={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"css"}},g={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,u]},y={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",end:"\\}",relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},C=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,f,g,c,e.REGEXP_MODE];u.contains=C.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(C)});const v=[].concat(y,u.contains),S=v.concat([{begin:/\(/,end:/\)/,keywords:i,contains:["self"].concat(v)}]),h={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:S};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:S},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,f,g,y,c,{begin:Am(/[{,\n]\s*/,Wx(Am(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,n+"\\s*:"))),relevance:0,contains:[{className:"attr",begin:n+Wx("\\s*:"),relevance:0}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[y,e.REGEXP_MODE,{className:"function",begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:S}]}]},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{variants:[{begin:r.begin,end:r.end},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:i,contains:["self",e.inherit(e.TITLE_MODE,{begin:n}),h],illegal:/%/},{beginKeywords:"while if switch catch for"},{className:"function",begin:e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,contains:[h,e.inherit(e.TITLE_MODE,{begin:n})]},{variants:[{begin:"\\."+n},{begin:"\\$"+n}],relevance:0},{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,end:/[{;]/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:n}),"self",h]},{begin:"(get|set)\\s+(?="+n+"\\()",end:/\{/,keywords:"get set",contains:[e.inherit(e.TITLE_MODE,{begin:n}),{begin:/\(\)/},h]},{begin:/\$[(.]/}]}}var UF=WF;const GF=Oo(UF);var Lg,Ux;function qF(){if(Ux)return Lg;Ux=1;function e(o){return o?typeof o=="string"?o:o.source:null}function t(o){return n("(?=",o,")")}function n(...o){return o.map(a=>e(a)).join("")}function r(o){const c={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},u={className:"meta",begin:/^(>>>|\.\.\.) /},d={className:"subst",begin:/\{/,end:/\}/,keywords:c,illegal:/#/},f={begin:/\{\{/,relevance:0},g={className:"string",contains:[o.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[o.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[o.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[o.BACKSLASH_ESCAPE,u,f,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[o.BACKSLASH_ESCAPE,u,f,d]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[o.BACKSLASH_ESCAPE,f,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[o.BACKSLASH_ESCAPE,f,d]},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE]},m="[0-9](_?[0-9])*",y=`(\\b(${m}))?\\.(${m})|\\b(${m})\\.`,C={className:"number",relevance:0,variants:[{begin:`(\\b(${m})|(${y}))[eE][+-]?(${m})[jJ]?\\b`},{begin:`(${y})[jJ]?`},{begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${m})[jJ]\\b`}]},v={className:"comment",begin:t(/# type:/),end:/$/,keywords:c,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},S={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:["self",u,C,g,o.HASH_COMMENT_MODE]}]};return d.contains=[g,C,u],{name:"Python",aliases:["py","gyp","ipython"],keywords:c,illegal:/(<\/|->|\?)|=>/,contains:[u,C,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},g,v,o.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[o.UNDERSCORE_TITLE_MODE,S,{begin:/->/,endsWithParent:!0,keywords:c}]},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[C,S,g]}]}}return Lg=r,Lg}var Ac=Tj(ma,{});Ac.registerLanguage=ma.registerLanguage;var yR={},bR={exports:{}};(function(e){function t(n){return n&&n.__esModule?n:{default:n}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(bR);var K1=bR.exports;(function(e){var t=K1;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(qF());e.default=n.default})(yR);const KF=Oo(yR);var xR={};(function(e){var t=K1;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(NF());e.default=n.default})(xR);const ZF=Oo(xR);var SR={};(function(e){var t=K1;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(LF());e.default=n.default})(SR);const QF=Oo(SR);Ac.registerLanguage(Cs.JS,GF);Ac.registerLanguage(Cs.PY,KF);Ac.registerLanguage(Cs.JAVA,ZF);Ac.registerLanguage(Cs.BASH,QF);rt.forwardRef(e=>{const{supportSelectAll:t=!0,selectAllOptionLabel:n="",options:r=[],selectState:o,setSelectState:i,inputParams:a={},onChange:s,...l}=e,{placeholder:c="",...u}=a,[d,f]=rt.useState(!1),g=Ht(),m=()=>{f(!1)},y=S=>{const h=!o.selectAll;i(w=>({selectAll:!w.selectAll,selectedItems:w.selectAll?[]:r})),s&&s(S,h?r:[],"selectOption")},C=(S,h,w)=>{switch(w){case"selectOption":i(_=>({..._,selectAll:h.length===r.length,selectedItems:h}));break;case"removeOption":i({selectAll:!1,selectedItems:h})}},v=b.useMemo(()=>{if(!(o.selectedItems.length>0||o.selectAll))return c},[o,c]);return p.jsx(dO,{onClickAway:m,children:p.jsx(Ar,{children:p.jsx(tR,{options:r,open:d,sx:{"& .MuiBox-root":{"& .MuiFormControl-root":{"div.MuiOutlinedInput-root":{padding:"6px 28px 6px 12px"},"& .MuiInputBase-input":{maxHeight:"24px",height:"24px"},".Mui-error fieldset.MuiOutlinedInput-notchedOutline":{border:`1px solid ${g.red.red2}`,boxShadow:`0px 0px 0px 4px ${g.red.red4}, ${hr}`}}},".MuiAutocomplete-tag":{margin:"3px 4px"}},multiple:!0,ChipProps:{size:"small",deleteIcon:p.jsx(Rp,{size:14},void 0),sx:{display:"flex",alignItems:"center",borderRadius:"6px",backgroundColor:g.black.black4,padding:"2px 8px",gap:"8px",height:"20px",".MuiChip-deleteIcon":{margin:0,color:g.black.black1},".MuiChip-label":{padding:0,fontSize:"14px",lineHeight:"20px",fontWeight:400,display:"inline-block",color:g.black.black1},"&:hover":{backgroundColor:g.black.black5,".MuiChip-deleteIcon":{color:g.black.black2}}}},renderOption:(S,h,w)=>{const{selected:_}=w;return h!=null&&h.generateCustomEle?h.generateCustomEle():p.jsxs("li",{...S,children:[p.jsx(tf,{sx:{padding:"0 8px 0 0"},checked:_||o.selectAll},void 0),p.jsxs(Ar,{sx:{display:"flex",alignItems:"center",width:"100%",justifyContent:"space-between"},children:[p.jsx(vt,{variant:"body1Regular",component:"div",children:h.label},void 0),h.desc&&p.jsx(vt,{variant:"body3Regular",sx:{marginLeft:"8px",color:g.black.black3},children:h.desc},void 0)]},void 0)]},void 0)},onChange:(S,h,w)=>{C(S,h,w),s&&s(S,h,w)},onClose:(S,h)=>{h==="escape"&&f(!1)},onOpen:()=>{f(!0)},PopperComponent:S=>{const{children:h,style:w={},..._}=S;return p.jsx(Oc,{..._,disablePortal:!0,onMouseDown:T=>T.preventDefault(),style:{...w,boxShadow:ca,border:`1px solid ${g.stroke.stroke1}`,borderRadius:"8px",backgroundColor:"#fff"},placement:"bottom",modifiers:[{name:"offset",options:{offset:[0,8]}}],children:p.jsxs(p.Fragment,{children:[h,p.jsx(Ar,{sx:{width:"100%",height:"1px",backgroundColor:g.black.black4}},void 0),t&&p.jsxs(Ar,{sx:{padding:"6px 16px",display:"flex",alignItems:"center",marginBottom:"4px","&:hover":{cursor:"pointer",color:g.blue.blue1,backgroundColor:g.black.black5}},onClick:y,children:[p.jsx(tf,{sx:{padding:"0 16px 0 0"},checked:o.selectAll,indeterminate:!o.selectAll&&o.selectedItems.length>0},void 0),p.jsx(vt,{children:n||"Select all"},void 0)]},void 0)]},void 0)},void 0)},PaperComponent:S=>p.jsx(As,{sx:{padding:0,boxShadow:"none",borderRadius:"8px","ul.MuiAutocomplete-listbox":{borderRadius:"8px",padding:0,"&::-webkit-scrollbar-track":{width:"3px",background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:g.black.black4},"& li":{margin:"4px 0"},"& > :first-child":{marginTop:"12px"},'& .MuiAutocomplete-option[aria-selected="true"]':{backgroundColor:"#fff","&.Mui-focused":{backgroundColor:"transparent"},"&:hover":{backgroundColor:g.black.black5},"& > * div.MuiTypography-body1Regular":{color:g.blue.blue1}},'.MuiAutocomplete-option[aria-selected="false"]':{backgroundColor:"transparent","&:hover":{backgroundColor:g.black.black5}}}},...S},void 0),isOptionEqualToValue:(S,h)=>S.value===h.value,value:o.selectedItems,inputParams:{placeholder:v,...u},...l},void 0)},void 0)},void 0)});function YF(e,t,n=void 0){const r={};for(const o in e){const i=e[o];let a="",s=!0;for(let l=0;l{t.current=e},[e]),t.current}const Gx=()=>{};function nB(e){const[,t]=b.useState(),{registerDescendant:n=Gx,unregisterDescendant:r=Gx,descendants:o=[],parentId:i=null}=b.useContext(wR),a=JF(o,c=>c.element===e.element),s=tB(o),l=o.some((c,u)=>s&&s[u]&&s[u].element!==c.element);return m9(()=>{if(e.element)return n(An({},e,{index:a})),()=>{r(e.element)};t({})},[n,r,a,l,e]),{parentId:i,index:a}}function rB(e){const{children:t,id:n}=e,[r,o]=b.useState([]),i=b.useCallback(l=>{let{element:c}=l,u=Ns(l,XF);o(d=>{if(d.length===0)return[An({},u,{element:c,index:0})];const f=eB(d,c);let g;if(d[f]&&d[f].element===c)g=d;else{const m=An({},u,{element:c,index:f});g=d.slice(),g.splice(f,0,m)}return g.forEach((m,y)=>{m.index=y}),g})},[]),a=b.useCallback(l=>{o(c=>c.filter(u=>l!==u.element))},[]),s=b.useMemo(()=>({descendants:r,registerDescendant:i,unregisterDescendant:a,parentId:n}),[r,i,a,n]);return p.jsx(wR.Provider,{value:s,children:t})}const oB={instance:null,multiSelect:!1,disabledItemsFocusable:!1,treeId:void 0,icons:{defaultCollapseIcon:null,defaultExpandIcon:null,defaultParentIcon:null,defaultEndIcon:null}},iB=b.createContext(oB),CR=()=>b.useContext(iB);function aB(e){const{instance:t,multiSelect:n}=CR(),r=t?t.isNodeExpandable(e):!1,o=t?t.isNodeExpanded(e):!1,i=t?t.isNodeFocused(e):!1,a=t?t.isNodeSelected(e):!1,s=t?t.isNodeDisabled(e):!1;return{disabled:s,expanded:o,selected:a,focused:i,handleExpansion:d=>{if(t&&!s){i||t.focusNode(d,e);const f=n&&(d.shiftKey||d.ctrlKey||d.metaKey);r&&!(f&&t.isNodeExpanded(e))&&t.toggleNodeExpansion(d,e)}},handleSelection:d=>{t&&!s&&(i||t.focusNode(d,e),n&&(d.shiftKey||d.ctrlKey||d.metaKey)?d.shiftKey?t.selectRange(d,{end:e}):t.selectNode(d,e,!0):t.selectNode(d,e))},preventSelection:d=>{(d.shiftKey||d.ctrlKey||d.metaKey||s)&&d.preventDefault()}}}const sB=["classes","className","displayIcon","expansionIcon","icon","label","nodeId","onClick","onMouseDown"],_R=b.forwardRef(function(t,n){const{classes:r,className:o,displayIcon:i,expansionIcon:a,icon:s,label:l,nodeId:c,onClick:u,onMouseDown:d}=t,f=Ns(t,sB),{disabled:g,expanded:m,selected:y,focused:C,handleExpansion:v,handleSelection:S,preventSelection:h}=aB(c),w=s||a||i,_=k=>{h(k),d&&d(k)},T=k=>{v(k),S(k),u&&u(k)};return p.jsxs("div",An({},f,{className:ve(o,r.root,m&&r.expanded,y&&r.selected,C&&r.focused,g&&r.disabled),onClick:T,onMouseDown:_,ref:n,children:[p.jsx("div",{className:r.iconContainer,children:w}),p.jsx("div",{className:r.label,children:l})]}))});function lB(e){return X_("MuiTreeItem",e)}const Xt=S9("MuiTreeItem",["root","group","content","expanded","selected","focused","disabled","iconContainer","label"]),cB=["children","className","collapseIcon","ContentComponent","ContentProps","endIcon","expandIcon","disabled","icon","id","label","nodeId","onClick","onMouseDown","TransitionComponent","TransitionProps"],uB=e=>{const{classes:t}=e;return YF({root:["root"],content:["content"],expanded:["expanded"],selected:["selected"],focused:["focused"],disabled:["disabled"],iconContainer:["iconContainer"],label:["label"],group:["group"]},lB,t)},dB=J("li",{name:"MuiTreeItem",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),fB=J(_R,{name:"MuiTreeItem",slot:"Content",overridesResolver:(e,t)=>[t.content,t.iconContainer&&{[`& .${Xt.iconContainer}`]:t.iconContainer},t.label&&{[`& .${Xt.label}`]:t.label}]})(({theme:e})=>({padding:"0 8px",width:"100%",boxSizing:"border-box",display:"flex",alignItems:"center",cursor:"pointer",WebkitTapHighlightColor:"transparent","&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Xt.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"},[`&.${Xt.focused}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${Xt.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:Be(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${Xt.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:Be(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`& .${Xt.iconContainer}`]:{marginRight:4,width:15,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}},[`& .${Xt.label}`]:An({paddingLeft:4,width:"100%",boxSizing:"border-box",minWidth:0,position:"relative"},e.typography.body1)})),pB=J(vs,{name:"MuiTreeItem",slot:"Group",overridesResolver:(e,t)=>t.group})({margin:0,padding:0,marginLeft:17}),gB=b.forwardRef(function(t,n){const r=_8({props:t,name:"MuiTreeItem"}),{children:o,className:i,collapseIcon:a,ContentComponent:s=_R,ContentProps:l,endIcon:c,expandIcon:u,disabled:d,icon:f,id:g,label:m,nodeId:y,onClick:C,onMouseDown:v,TransitionComponent:S=vs,TransitionProps:h}=r,w=Ns(r,cB),{icons:_,multiSelect:T,disabledItemsFocusable:k,treeId:R,instance:P}=CR();let x;g!=null?x=g:R&&y&&(x=`${R}-${y}`);const[$,I]=b.useState(null),O=b.useRef(null),D=v9(I,n),M=b.useMemo(()=>({element:$,id:y}),[y,$]),{index:N,parentId:A}=nB(M),E=!!(Array.isArray(o)?o.length:o),L=P?P.isNodeExpanded(y):!1,B=P?P.isNodeFocused(y):!1,H=P?P.isNodeSelected(y):!1,z=P?P.isNodeDisabled(y):!1,j=An({},r,{expanded:L,focused:B,selected:H,disabled:z}),F=uB(j);let W,V;E&&(L?V=a||_.defaultCollapseIcon:V=u||_.defaultExpandIcon),E?W=_.defaultParentIcon:W=c||_.defaultEndIcon,b.useEffect(()=>{if(P&&N!==-1)return P.updateNode({id:y,idAttribute:x,index:N,parentId:A,expandable:E,disabled:d}),()=>P.removeNode(y)},[P,A,N,y,E,d,x]),b.useEffect(()=>{if(P&&m){var U,K;return P.mapFirstChar(y,((U=(K=O.current)==null?void 0:K.textContent)!=null?U:"").substring(0,1).toLowerCase())}},[P,y,m]);let ee;T?ee=H:H&&(ee=!0);function re(U){if(U.target===U.currentTarget){let se;typeof U.target.getRootNode=="function"?se=U.target.getRootNode():se=g9(U.target),se.getElementById(R).focus({preventScroll:!0})}const K=!k&&z;P&&!B&&U.currentTarget===U.target&&!K&&P.focusNode(U,y)}return p.jsxs(dB,An({className:ve(F.root,i),role:"treeitem","aria-expanded":E?L:void 0,"aria-selected":ee,"aria-disabled":z||void 0,id:x,tabIndex:-1},w,{ownerState:j,onFocus:re,ref:D,children:[p.jsx(fB,An({as:s,ref:O,classes:{root:F.content,expanded:F.expanded,selected:F.selected,focused:F.focused,disabled:F.disabled,iconContainer:F.iconContainer,label:F.label},label:m,nodeId:y,onClick:C,onMouseDown:v,icon:f,expansionIcon:V,displayIcon:W,ownerState:j},l)),o&&p.jsx(rB,{id:y,children:p.jsx(pB,An({as:S,unmountOnExit:!0,className:F.group,in:L,component:"ul",role:"group"},h,{children:o}))})]}))});var qx;(function(e){e.LOADING="loading",e.NORMAL="normal",e.NONE="none"})(qx||(qx={}));J(e=>p.jsx(gB,{...e},void 0))(({theme:e})=>({[`& .${Xt.content}`]:{height:"32px",marginBottom:"8px",color:e.black.black1,padding:"4px",borderRadius:"6px",[`&.${Xt.selected}`]:{backgroundColor:e.blue.blue4,[`&.${Xt.focused}`]:{backgroundColor:e.blue.blue4},[`& .${Xt.label},.MuiTypography-root `]:{color:e.blue.blue1},[`& .${Xt.label}`]:{svg:{path:{fill:e.blue.blue1}}},[`& .${Xt.iconContainer}`]:{svg:{path:{fill:e.black.black1}}}},"&:hover":{backgroundColor:e.blue.blue4},[`& .${Xt.label}`]:{color:e.black.black3,fontSize:"12px",paddingLeft:0,svg:{path:{fill:"currentColor"}},".highlight":{color:e.black.black3}},[`& .${Xt.iconContainer}`]:{marginRight:e.spacing(.5),width:"auto",svg:{path:{fill:e.black.black2}}}},[`& .${Xt.group}`]:{position:"relative",top:"-10px",margin:"12px 0 0px 23px",paddingLeft:6,borderLeft:`1px solid ${e.stroke.stroke1}`,".loadingNode":{paddingLeft:8},[`& .${Xt.content}`]:{height:"28px",marginBottom:"4px",".MuiTypography-root":{fontSize:"13px"},svg:{path:{color:e.black.black2}}}}}));const RR=['"Helvetica Neue"','"Microsoft YaHei"',"-apple-system","sans-serif"],hB=['"Pingfang SC"',...RR],mB=['"Inter"',...RR],TR=e=>(e==="enUS"?mB:hB).join(","),Vt=(e,t,n)=>{const r=TR(n),o={h1:{fontSize:"22px",lineHeight:"150%"},h2:{fontSize:"18px",lineHeight:"150%"},h3:{fontSize:"16px",lineHeight:"150%"},h4:{fontSize:"14px",lineHeight:"135%"},body1:{fontSize:"14px",lineHeight:"135%"},body2:{fontSize:"13px",lineHeight:"135%"},body3:{fontSize:"12px",lineHeight:"135%"},body4:{fontSize:"11px",lineHeight:"135%"}},i={regular:{fontWeight:400},medium:{fontWeight:500},semibold:{fontWeight:600},bold:{fontWeight:n==="enUS"?700:600}};return{...o[e],...i[t],fontFamily:r}},vB=e=>({h1Regular:Vt("h1","regular",e),h1Medium:Vt("h1","medium",e),h1Semibold:Vt("h1","semibold",e),h1Bold:Vt("h1","bold",e),h2Regular:Vt("h2","regular",e),h2Medium:Vt("h2","medium",e),h2Semibold:Vt("h2","semibold",e),h3Regular:Vt("h3","regular",e),h3Medium:Vt("h3","medium",e),h3Semibold:Vt("h3","semibold",e),h4Medium:Vt("h4","medium",e),h4Semibold:Vt("h4","semibold",e),body1Regular:Vt("body1","regular",e),body1Medium:Vt("body1","medium",e),body2Regular:Vt("body2","regular",e),body2Medium:Vt("body2","medium",e),body3Regular:Vt("body3","regular",e),body3Medium:Vt("body3","medium",e),body4Regular:Vt("body4","regular",e)}),Wt={blue:{blue1:"#3f46ff",blue2:"#6066fd",blue3:"#dbe0ff",blue4:"#f2f3ff",blue5:"#f7f8ff",dark1:"#181eca",dark2:"#141c63",light1:"#ebedff"},black:{black1:"#1d2939",black2:"#5d6d85",black3:"#a6b1be",black4:"#f0f2f4",black5:"#f9f9fb"},green:{green1:"#166434",green2:"#49de80",green3:"#adf8c9",green4:"#effdf4"},yellow:{yellow1:"#854d0f",yellow2:"#ffb800",yellow3:"#ffe7a9",yellow4:"#fff8e2"},red:{red1:"#991b1b",red2:"#f26868",red3:"#fbc6c6",red4:"#fff1f1"},stroke:{stroke1:"#e4eaf1",stroke2:"#cdd8e8"},gradient:"linear-gradient(118deg,#00ef8b 0.51%,#0044e4 36.98%,#cd3fff 72.73%)"},yB=e=>{const t=TR(e),n=vB(e);return{typography:{fontFamily:t,...n}}},bB=(e="enUS")=>pp({palette:{primary:{main:Wt.blue.blue1,dark:Wt.blue.dark1,light:Wt.blue.blue2},success:{dark:Wt.green.green1,main:Wt.green.green2,light:Wt.green.green3},info:{dark:Wt.blue.blue1,main:Wt.blue.blue2,light:Wt.blue.blue3},warning:{dark:Wt.yellow.yellow1,main:Wt.yellow.yellow2,light:Wt.yellow.yellow3},error:{dark:Wt.red.red1,main:Wt.red.red2,light:Wt.red.red3},text:{primary:Wt.black.black1,secondary:Wt.black.black2,disabled:Wt.black.black3}},language:e,components:{MuiButton:{variants:[{props:{variant:"textGhost"},style:{}}]},MuiTypography:{defaultProps:{color:"textPrimary",variant:"body1Regular",variantMapping:{h1Regular:"h1",h1Medium:"h1",h1Semibold:"h1",h1Bold:"h1",h2Regular:"h2",h2Medium:"h2",h2Semibold:"h2",h3Regular:"h3",h3Medium:"h3",h3Semibold:"h3",h4Medium:"h4",h4Semibold:"h4",body1Regular:"p",body1Medium:"span",body2Regular:"span",body2Medium:"span",body3Regular:"span",body3Medium:"span",body4Regular:"span"}}}},spacing:4,...Wt,...yB(e)},$D[e]);/** + * table-core + * + * Copyright (c) TanStack + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function ti(e,t){return typeof e=="function"?e(t):e}function rr(e,t){return n=>{t.setState(r=>({...r,[e]:ti(n,r[e])}))}}function kp(e){return e instanceof Function}function xB(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function SB(e,t){const n=[],r=o=>{o.forEach(i=>{n.push(i);const a=t(i);a!=null&&a.length&&r(a)})};return r(e),n}function Me(e,t,n){let r=[],o;return i=>{let a;n.key&&n.debug&&(a=Date.now());const s=e(i);if(!(s.length!==r.length||s.some((u,d)=>r[d]!==u)))return o;r=s;let c;if(n.key&&n.debug&&(c=Date.now()),o=t(...s),n==null||n.onChange==null||n.onChange(o),n.key&&n.debug&&n!=null&&n.debug()){const u=Math.round((Date.now()-a)*100)/100,d=Math.round((Date.now()-c)*100)/100,f=d/16,g=(m,y)=>{for(m=String(m);m.length{var o;return(o=e==null?void 0:e.debugAll)!=null?o:e[t]},key:!1,onChange:r}}function wB(e,t,n,r){const o=()=>{var a;return(a=i.getValue())!=null?a:e.options.renderFallbackValue},i={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:o,getContext:Me(()=>[e,n,t,i],(a,s,l,c)=>({table:a,column:s,row:l,cell:c,getValue:c.getValue,renderValue:c.renderValue}),Ie(e.options,"debugCells"))};return e._features.forEach(a=>{a.createCell==null||a.createCell(i,n,t,e)},{}),i}function CB(e,t,n,r){var o,i;const s={...e._getDefaultColumnDef(),...t},l=s.accessorKey;let c=(o=(i=s.id)!=null?i:l?typeof String.prototype.replaceAll=="function"?l.replaceAll(".","_"):l.replace(/\./g,"_"):void 0)!=null?o:typeof s.header=="string"?s.header:void 0,u;if(s.accessorFn?u=s.accessorFn:l&&(l.includes(".")?u=f=>{let g=f;for(const y of l.split(".")){var m;g=(m=g)==null?void 0:m[y]}return g}:u=f=>f[s.accessorKey]),!c)throw new Error;let d={id:`${String(c)}`,accessorFn:u,parent:r,depth:n,columnDef:s,columns:[],getFlatColumns:Me(()=>[!0],()=>{var f;return[d,...(f=d.columns)==null?void 0:f.flatMap(g=>g.getFlatColumns())]},Ie(e.options,"debugColumns")),getLeafColumns:Me(()=>[e._getOrderColumnsFn()],f=>{var g;if((g=d.columns)!=null&&g.length){let m=d.columns.flatMap(y=>y.getLeafColumns());return f(m)}return[d]},Ie(e.options,"debugColumns"))};for(const f of e._features)f.createColumn==null||f.createColumn(d,e);return d}const hn="debugHeaders";function Kx(e,t,n){var r;let i={id:(r=n.id)!=null?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const a=[],s=l=>{l.subHeaders&&l.subHeaders.length&&l.subHeaders.map(s),a.push(l)};return s(i),a},getContext:()=>({table:e,header:i,column:t})};return e._features.forEach(a=>{a.createHeader==null||a.createHeader(i,e)}),i}const _B={createTable:e=>{e.getHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,o)=>{var i,a;const s=(i=r==null?void 0:r.map(d=>n.find(f=>f.id===d)).filter(Boolean))!=null?i:[],l=(a=o==null?void 0:o.map(d=>n.find(f=>f.id===d)).filter(Boolean))!=null?a:[],c=n.filter(d=>!(r!=null&&r.includes(d.id))&&!(o!=null&&o.includes(d.id)));return wu(t,[...s,...c,...l],e)},Ie(e.options,hn)),e.getCenterHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,o)=>(n=n.filter(i=>!(r!=null&&r.includes(i.id))&&!(o!=null&&o.includes(i.id))),wu(t,n,e,"center")),Ie(e.options,hn)),e.getLeftHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var o;const i=(o=r==null?void 0:r.map(a=>n.find(s=>s.id===a)).filter(Boolean))!=null?o:[];return wu(t,i,e,"left")},Ie(e.options,hn)),e.getRightHeaderGroups=Me(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var o;const i=(o=r==null?void 0:r.map(a=>n.find(s=>s.id===a)).filter(Boolean))!=null?o:[];return wu(t,i,e,"right")},Ie(e.options,hn)),e.getFooterGroups=Me(()=>[e.getHeaderGroups()],t=>[...t].reverse(),Ie(e.options,hn)),e.getLeftFooterGroups=Me(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),Ie(e.options,hn)),e.getCenterFooterGroups=Me(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),Ie(e.options,hn)),e.getRightFooterGroups=Me(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),Ie(e.options,hn)),e.getFlatHeaders=Me(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,hn)),e.getLeftFlatHeaders=Me(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,hn)),e.getCenterFlatHeaders=Me(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,hn)),e.getRightFlatHeaders=Me(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ie(e.options,hn)),e.getCenterLeafHeaders=Me(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ie(e.options,hn)),e.getLeftLeafHeaders=Me(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ie(e.options,hn)),e.getRightLeafHeaders=Me(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ie(e.options,hn)),e.getLeafHeaders=Me(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var o,i,a,s,l,c;return[...(o=(i=t[0])==null?void 0:i.headers)!=null?o:[],...(a=(s=n[0])==null?void 0:s.headers)!=null?a:[],...(l=(c=r[0])==null?void 0:c.headers)!=null?l:[]].map(u=>u.getLeafHeaders()).flat()},Ie(e.options,hn))}};function wu(e,t,n,r){var o,i;let a=0;const s=function(f,g){g===void 0&&(g=1),a=Math.max(a,g),f.filter(m=>m.getIsVisible()).forEach(m=>{var y;(y=m.columns)!=null&&y.length&&s(m.columns,g+1)},0)};s(e);let l=[];const c=(f,g)=>{const m={depth:g,id:[r,`${g}`].filter(Boolean).join("_"),headers:[]},y=[];f.forEach(C=>{const v=[...y].reverse()[0],S=C.column.depth===m.depth;let h,w=!1;if(S&&C.column.parent?h=C.column.parent:(h=C.column,w=!0),v&&(v==null?void 0:v.column)===h)v.subHeaders.push(C);else{const _=Kx(n,h,{id:[r,g,h.id,C==null?void 0:C.id].filter(Boolean).join("_"),isPlaceholder:w,placeholderId:w?`${y.filter(T=>T.column===h).length}`:void 0,depth:g,index:y.length});_.subHeaders.push(C),y.push(_)}m.headers.push(C),C.headerGroup=m}),l.push(m),g>0&&c(y,g-1)},u=t.map((f,g)=>Kx(n,f,{depth:a,index:g}));c(u,a-1),l.reverse();const d=f=>f.filter(m=>m.column.getIsVisible()).map(m=>{let y=0,C=0,v=[0];m.subHeaders&&m.subHeaders.length?(v=[],d(m.subHeaders).forEach(h=>{let{colSpan:w,rowSpan:_}=h;y+=w,v.push(_)})):y=1;const S=Math.min(...v);return C=C+S,m.colSpan=y,m.rowSpan=C,{colSpan:y,rowSpan:C}});return d((o=(i=l[0])==null?void 0:i.headers)!=null?o:[]),l}const RB=(e,t,n,r,o,i,a)=>{let s={id:t,index:r,original:n,depth:o,parentId:a,_valuesCache:{},_uniqueValuesCache:{},getValue:l=>{if(s._valuesCache.hasOwnProperty(l))return s._valuesCache[l];const c=e.getColumn(l);if(c!=null&&c.accessorFn)return s._valuesCache[l]=c.accessorFn(s.original,r),s._valuesCache[l]},getUniqueValues:l=>{if(s._uniqueValuesCache.hasOwnProperty(l))return s._uniqueValuesCache[l];const c=e.getColumn(l);if(c!=null&&c.accessorFn)return c.columnDef.getUniqueValues?(s._uniqueValuesCache[l]=c.columnDef.getUniqueValues(s.original,r),s._uniqueValuesCache[l]):(s._uniqueValuesCache[l]=[s.getValue(l)],s._uniqueValuesCache[l])},renderValue:l=>{var c;return(c=s.getValue(l))!=null?c:e.options.renderFallbackValue},subRows:[],getLeafRows:()=>SB(s.subRows,l=>l.subRows),getParentRow:()=>s.parentId?e.getRow(s.parentId,!0):void 0,getParentRows:()=>{let l=[],c=s;for(;;){const u=c.getParentRow();if(!u)break;l.push(u),c=u}return l.reverse()},getAllCells:Me(()=>[e.getAllLeafColumns()],l=>l.map(c=>wB(e,s,c,c.id)),Ie(e.options,"debugRows")),_getAllCellsByColumnId:Me(()=>[s.getAllCells()],l=>l.reduce((c,u)=>(c[u.column.id]=u,c),{}),Ie(e.options,"debugRows"))};for(let l=0;l{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},PR=(e,t,n)=>{var r,o;const i=n==null||(r=n.toString())==null?void 0:r.toLowerCase();return!!(!((o=e.getValue(t))==null||(o=o.toString())==null||(o=o.toLowerCase())==null)&&o.includes(i))};PR.autoRemove=e=>Br(e);const kR=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};kR.autoRemove=e=>Br(e);const $R=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===(n==null?void 0:n.toLowerCase())};$R.autoRemove=e=>Br(e);const ER=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};ER.autoRemove=e=>Br(e)||!(e!=null&&e.length);const MR=(e,t,n)=>!n.some(r=>{var o;return!((o=e.getValue(t))!=null&&o.includes(r))});MR.autoRemove=e=>Br(e)||!(e!=null&&e.length);const IR=(e,t,n)=>n.some(r=>{var o;return(o=e.getValue(t))==null?void 0:o.includes(r)});IR.autoRemove=e=>Br(e)||!(e!=null&&e.length);const OR=(e,t,n)=>e.getValue(t)===n;OR.autoRemove=e=>Br(e);const LR=(e,t,n)=>e.getValue(t)==n;LR.autoRemove=e=>Br(e);const Z1=(e,t,n)=>{let[r,o]=n;const i=e.getValue(t);return i>=r&&i<=o};Z1.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,o=typeof n!="number"?parseFloat(n):n,i=t===null||Number.isNaN(r)?-1/0:r,a=n===null||Number.isNaN(o)?1/0:o;if(i>a){const s=i;i=a,a=s}return[i,a]};Z1.autoRemove=e=>Br(e)||Br(e[0])&&Br(e[1]);const vo={includesString:PR,includesStringSensitive:kR,equalsString:$R,arrIncludes:ER,arrIncludesAll:MR,arrIncludesSome:IR,equals:OR,weakEquals:LR,inNumberRange:Z1};function Br(e){return e==null||e===""}const PB={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:rr("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);return typeof r=="string"?vo.includesString:typeof r=="number"?vo.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?vo.equals:Array.isArray(r)?vo.arrIncludes:vo.weakEquals},e.getFilterFn=()=>{var n,r;return kp(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(r=t.options.filterFns)==null?void 0:r[e.columnDef.filterFn])!=null?n:vo[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,r,o;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((o=t.options.enableFilters)!=null?o:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(r=>r.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(o=>o.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(r=>{const o=e.getFilterFn(),i=r==null?void 0:r.find(u=>u.id===e.id),a=ti(n,i?i.value:void 0);if(Zx(o,a,e)){var s;return(s=r==null?void 0:r.filter(u=>u.id!==e.id))!=null?s:[]}const l={id:e.id,value:a};if(i){var c;return(c=r==null?void 0:r.map(u=>u.id===e.id?l:u))!=null?c:[]}return r!=null&&r.length?[...r,l]:[l]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),r=o=>{var i;return(i=ti(t,o))==null?void 0:i.filter(a=>{const s=n.find(l=>l.id===a.id);if(s){const l=s.getFilterFn();if(Zx(l,a.value,s))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(r)},e.resetColumnFilters=t=>{var n,r;e.setColumnFilters(t?[]:(n=(r=e.initialState)==null?void 0:r.columnFilters)!=null?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function Zx(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const kB=(e,t,n)=>n.reduce((r,o)=>{const i=o.getValue(e);return r+(typeof i=="number"?i:0)},0),$B=(e,t,n)=>{let r;return n.forEach(o=>{const i=o.getValue(e);i!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}),r},EB=(e,t,n)=>{let r;return n.forEach(o=>{const i=o.getValue(e);i!=null&&(r=i)&&(r=i)}),r},MB=(e,t,n)=>{let r,o;return n.forEach(i=>{const a=i.getValue(e);a!=null&&(r===void 0?a>=a&&(r=o=a):(r>a&&(r=a),o{let n=0,r=0;if(t.forEach(o=>{let i=o.getValue(e);i!=null&&(i=+i)>=i&&(++n,r+=i)}),n)return r/n},OB=(e,t)=>{if(!t.length)return;const n=t.map(i=>i.getValue(e));if(!xB(n))return;if(n.length===1)return n[0];const r=Math.floor(n.length/2),o=n.sort((i,a)=>i-a);return n.length%2!==0?o[r]:(o[r-1]+o[r])/2},LB=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),NB=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,AB=(e,t)=>t.length,Ng={sum:kB,min:$B,max:EB,extent:MB,mean:IB,median:OB,unique:LB,uniqueCount:NB,count:AB},DB={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:rr("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(r=>r!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,r;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((r=t.options.enableGrouping)!=null?r:!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const n=e.getCanGroup();return()=>{n&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);if(typeof r=="number")return Ng.sum;if(Object.prototype.toString.call(r)==="[object Date]")return Ng.extent},e.getAggregationFn=()=>{var n,r;if(!e)throw new Error;return kp(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(r=t.options.aggregationFns)==null?void 0:r[e.columnDef.aggregationFn])!=null?n:Ng[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,r;e.setGrouping(t?[]:(n=(r=e.initialState)==null?void 0:r.grouping)!=null?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var o;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((o=n.subRows)!=null&&o.length)}}};function jB(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(i=>!t.includes(i.id));return n==="remove"?r:[...t.map(i=>e.find(a=>a.id===i)).filter(Boolean),...r]}const FB={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:rr("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=Me(n=>[Fl(t,n)],n=>n.findIndex(r=>r.id===e.id),Ie(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var r;return((r=Fl(t,n)[0])==null?void 0:r.id)===e.id},e.getIsLastColumn=n=>{var r;const o=Fl(t,n);return((r=o[o.length-1])==null?void 0:r.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},e._getOrderColumnsFn=Me(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>o=>{let i=[];if(!(t!=null&&t.length))i=o;else{const a=[...t],s=[...o];for(;s.length&&a.length;){const l=a.shift(),c=s.findIndex(u=>u.id===l);c>-1&&i.push(s.splice(c,1)[0])}i=[...i,...s]}return jB(i,n,r)},Ie(e.options,"debugTable"))}},Ag=()=>({left:[],right:[]}),BB={getInitialState:e=>({columnPinning:Ag(),...e}),getDefaultOptions:e=>({onColumnPinningChange:rr("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const r=e.getLeafColumns().map(o=>o.id).filter(Boolean);t.setColumnPinning(o=>{var i,a;if(n==="right"){var s,l;return{left:((s=o==null?void 0:o.left)!=null?s:[]).filter(d=>!(r!=null&&r.includes(d))),right:[...((l=o==null?void 0:o.right)!=null?l:[]).filter(d=>!(r!=null&&r.includes(d))),...r]}}if(n==="left"){var c,u;return{left:[...((c=o==null?void 0:o.left)!=null?c:[]).filter(d=>!(r!=null&&r.includes(d))),...r],right:((u=o==null?void 0:o.right)!=null?u:[]).filter(d=>!(r!=null&&r.includes(d)))}}return{left:((i=o==null?void 0:o.left)!=null?i:[]).filter(d=>!(r!=null&&r.includes(d))),right:((a=o==null?void 0:o.right)!=null?a:[]).filter(d=>!(r!=null&&r.includes(d)))}})},e.getCanPin=()=>e.getLeafColumns().some(r=>{var o,i,a;return((o=r.columnDef.enablePinning)!=null?o:!0)&&((i=(a=t.options.enableColumnPinning)!=null?a:t.options.enablePinning)!=null?i:!0)}),e.getIsPinned=()=>{const n=e.getLeafColumns().map(s=>s.id),{left:r,right:o}=t.getState().columnPinning,i=n.some(s=>r==null?void 0:r.includes(s)),a=n.some(s=>o==null?void 0:o.includes(s));return i?"left":a?"right":!1},e.getPinnedIndex=()=>{var n,r;const o=e.getIsPinned();return o?(n=(r=t.getState().columnPinning)==null||(r=r[o])==null?void 0:r.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=Me(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,o)=>{const i=[...r??[],...o??[]];return n.filter(a=>!i.includes(a.column.id))},Ie(t.options,"debugRows")),e.getLeftVisibleCells=Me(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,r)=>(r??[]).map(i=>n.find(a=>a.column.id===i)).filter(Boolean).map(i=>({...i,position:"left"})),Ie(t.options,"debugRows")),e.getRightVisibleCells=Me(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r??[]).map(i=>n.find(a=>a.column.id===i)).filter(Boolean).map(i=>({...i,position:"right"})),Ie(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,r;return e.setColumnPinning(t?Ag():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:Ag())},e.getIsSomeColumnsPinned=t=>{var n;const r=e.getState().columnPinning;if(!t){var o,i;return!!((o=r.left)!=null&&o.length||(i=r.right)!=null&&i.length)}return!!((n=r[t])!=null&&n.length)},e.getLeftLeafColumns=Me(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(r=>t.find(o=>o.id===r)).filter(Boolean),Ie(e.options,"debugColumns")),e.getRightLeafColumns=Me(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(r=>t.find(o=>o.id===r)).filter(Boolean),Ie(e.options,"debugColumns")),e.getCenterLeafColumns=Me(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const o=[...n??[],...r??[]];return t.filter(i=>!o.includes(i.id))},Ie(e.options,"debugColumns"))}},Cu={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},Dg=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),zB={getDefaultColumnDef:()=>Cu,getInitialState:e=>({columnSizing:{},columnSizingInfo:Dg(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:rr("columnSizing",e),onColumnSizingInfoChange:rr("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,r,o;const i=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:Cu.minSize,(r=i??e.columnDef.size)!=null?r:Cu.size),(o=e.columnDef.maxSize)!=null?o:Cu.maxSize)},e.getStart=Me(n=>[n,Fl(t,n),t.getState().columnSizing],(n,r)=>r.slice(0,e.getIndex(n)).reduce((o,i)=>o+i.getSize(),0),Ie(t.options,"debugColumns")),e.getAfter=Me(n=>[n,Fl(t,n),t.getState().columnSizing],(n,r)=>r.slice(e.getIndex(n)+1).reduce((o,i)=>o+i.getSize(),0),Ie(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:r,...o}=n;return o})},e.getCanResize=()=>{var n,r;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((r=t.options.enableColumnResizing)!=null?r:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const r=o=>{if(o.subHeaders.length)o.subHeaders.forEach(r);else{var i;n+=(i=o.column.getSize())!=null?i:0}};return r(e),n},e.getStart=()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},e.getResizeHandler=n=>{const r=t.getColumn(e.column.id),o=r==null?void 0:r.getCanResize();return i=>{if(!r||!o||(i.persist==null||i.persist(),jg(i)&&i.touches&&i.touches.length>1))return;const a=e.getSize(),s=e?e.getLeafHeaders().map(v=>[v.column.id,v.column.getSize()]):[[r.id,r.getSize()]],l=jg(i)?Math.round(i.touches[0].clientX):i.clientX,c={},u=(v,S)=>{typeof S=="number"&&(t.setColumnSizingInfo(h=>{var w,_;const T=t.options.columnResizeDirection==="rtl"?-1:1,k=(S-((w=h==null?void 0:h.startOffset)!=null?w:0))*T,R=Math.max(k/((_=h==null?void 0:h.startSize)!=null?_:0),-.999999);return h.columnSizingStart.forEach(P=>{let[x,$]=P;c[x]=Math.round(Math.max($+$*R,0)*100)/100}),{...h,deltaOffset:k,deltaPercentage:R}}),(t.options.columnResizeMode==="onChange"||v==="end")&&t.setColumnSizing(h=>({...h,...c})))},d=v=>u("move",v),f=v=>{u("end",v),t.setColumnSizingInfo(S=>({...S,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},g=n||typeof document<"u"?document:null,m={moveHandler:v=>d(v.clientX),upHandler:v=>{g==null||g.removeEventListener("mousemove",m.moveHandler),g==null||g.removeEventListener("mouseup",m.upHandler),f(v.clientX)}},y={moveHandler:v=>(v.cancelable&&(v.preventDefault(),v.stopPropagation()),d(v.touches[0].clientX),!1),upHandler:v=>{var S;g==null||g.removeEventListener("touchmove",y.moveHandler),g==null||g.removeEventListener("touchend",y.upHandler),v.cancelable&&(v.preventDefault(),v.stopPropagation()),f((S=v.touches[0])==null?void 0:S.clientX)}},C=HB()?{passive:!1}:!1;jg(i)?(g==null||g.addEventListener("touchmove",y.moveHandler,C),g==null||g.addEventListener("touchend",y.upHandler,C)):(g==null||g.addEventListener("mousemove",m.moveHandler,C),g==null||g.addEventListener("mouseup",m.upHandler,C)),t.setColumnSizingInfo(v=>({...v,startOffset:l,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:s,isResizingColumn:r.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?Dg():(n=e.initialState.columnSizingInfo)!=null?n:Dg())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0}}};let _u=null;function HB(){if(typeof _u=="boolean")return _u;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return _u=e,_u}function jg(e){return e.type==="touchstart"}const VB={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:rr("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(r=>({...r,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,r;const o=e.columns;return(n=o.length?o.some(i=>i.getIsVisible()):(r=t.getState().columnVisibility)==null?void 0:r[e.id])!=null?n:!0},e.getCanHide=()=>{var n,r;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((r=t.options.enableHiding)!=null?r:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=Me(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(r=>r.column.getIsVisible()),Ie(t.options,"debugRows")),e.getVisibleCells=Me(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,o)=>[...n,...r,...o],Ie(t.options,"debugRows"))},createTable:e=>{const t=(n,r)=>Me(()=>[r(),r().filter(o=>o.getIsVisible()).map(o=>o.id).join("_")],o=>o.filter(i=>i.getIsVisible==null?void 0:i.getIsVisible()),Ie(e.options,"debugColumns"));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),e.resetColumnVisibility=n=>{var r;e.setColumnVisibility(n?{}:(r=e.initialState.columnVisibility)!=null?r:{})},e.toggleAllColumnsVisible=n=>{var r;n=(r=n)!=null?r:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((o,i)=>({...o,[i.id]:n||!(i.getCanHide!=null&&i.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>n=>{var r;e.toggleAllColumnsVisible((r=n.target)==null?void 0:r.checked)}}};function Fl(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const WB={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},UB={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:rr("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const r=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof r=="string"||typeof r=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,r,o,i;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((o=t.options.enableFilters)!=null?o:!0)&&((i=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?i:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>vo.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:r}=e.options;return kp(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:vo[r]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},GB={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:rr("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var r,o;if(!t){e._queue(()=>{t=!0});return}if((r=(o=e.options.autoResetAll)!=null?o:e.options.autoResetExpanded)!=null?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=r=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(r),e.toggleAllRowsExpanded=r=>{r??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=r=>{var o,i;e.setExpanded(r?{}:(o=(i=e.initialState)==null?void 0:i.expanded)!=null?o:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(r=>r.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>r=>{r.persist==null||r.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const r=e.getState().expanded;return r===!0||Object.values(r).some(Boolean)},e.getIsAllRowsExpanded=()=>{const r=e.getState().expanded;return typeof r=="boolean"?r===!0:!(!Object.keys(r).length||e.getRowModel().flatRows.some(o=>!o.getIsExpanded()))},e.getExpandedDepth=()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(i=>{const a=i.split(".");r=Math.max(r,a.length)}),r},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(r=>{var o;const i=r===!0?!0:!!(r!=null&&r[e.id]);let a={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(s=>{a[s]=!0}):a=r,n=(o=n)!=null?o:!i,!i&&n)return{...a,[e.id]:!0};if(i&&!n){const{[e.id]:s,...l}=a;return l}return r})},e.getIsExpanded=()=>{var n;const r=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:r===!0||r!=null&&r[e.id])},e.getCanExpand=()=>{var n,r,o;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((o=e.subRows)!=null&&o.length)},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},Dm=0,jm=10,Fg=()=>({pageIndex:Dm,pageSize:jm}),qB={getInitialState:e=>({...e,pagination:{...Fg(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:rr("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var r,o;if(!t){e._queue(()=>{t=!0});return}if((r=(o=e.options.autoResetAll)!=null?o:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=r=>{const o=i=>ti(r,i);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(o)},e.resetPagination=r=>{var o;e.setPagination(r?Fg():(o=e.initialState.pagination)!=null?o:Fg())},e.setPageIndex=r=>{e.setPagination(o=>{let i=ti(r,o.pageIndex);const a=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return i=Math.max(0,Math.min(i,a)),{...o,pageIndex:i}})},e.resetPageIndex=r=>{var o,i;e.setPageIndex(r?Dm:(o=(i=e.initialState)==null||(i=i.pagination)==null?void 0:i.pageIndex)!=null?o:Dm)},e.resetPageSize=r=>{var o,i;e.setPageSize(r?jm:(o=(i=e.initialState)==null||(i=i.pagination)==null?void 0:i.pageSize)!=null?o:jm)},e.setPageSize=r=>{e.setPagination(o=>{const i=Math.max(1,ti(r,o.pageSize)),a=o.pageSize*o.pageIndex,s=Math.floor(a/i);return{...o,pageIndex:s,pageSize:i}})},e.setPageCount=r=>e.setPagination(o=>{var i;let a=ti(r,(i=e.options.pageCount)!=null?i:-1);return typeof a=="number"&&(a=Math.max(-1,a)),{...o,pageCount:a}}),e.getPageOptions=Me(()=>[e.getPageCount()],r=>{let o=[];return r&&r>0&&(o=[...new Array(r)].fill(null).map((i,a)=>a)),o},Ie(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:r}=e.getState().pagination,o=e.getPageCount();return o===-1?!0:o===0?!1:re.setPageIndex(r=>r-1),e.nextPage=()=>e.setPageIndex(r=>r+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var r;return(r=e.options.pageCount)!=null?r:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var r;return(r=e.options.rowCount)!=null?r:e.getPrePaginationRowModel().rows.length}}},Bg=()=>({top:[],bottom:[]}),KB={getInitialState:e=>({rowPinning:Bg(),...e}),getDefaultOptions:e=>({onRowPinningChange:rr("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,r,o)=>{const i=r?e.getLeafRows().map(l=>{let{id:c}=l;return c}):[],a=o?e.getParentRows().map(l=>{let{id:c}=l;return c}):[],s=new Set([...a,e.id,...i]);t.setRowPinning(l=>{var c,u;if(n==="bottom"){var d,f;return{top:((d=l==null?void 0:l.top)!=null?d:[]).filter(y=>!(s!=null&&s.has(y))),bottom:[...((f=l==null?void 0:l.bottom)!=null?f:[]).filter(y=>!(s!=null&&s.has(y))),...Array.from(s)]}}if(n==="top"){var g,m;return{top:[...((g=l==null?void 0:l.top)!=null?g:[]).filter(y=>!(s!=null&&s.has(y))),...Array.from(s)],bottom:((m=l==null?void 0:l.bottom)!=null?m:[]).filter(y=>!(s!=null&&s.has(y)))}}return{top:((c=l==null?void 0:l.top)!=null?c:[]).filter(y=>!(s!=null&&s.has(y))),bottom:((u=l==null?void 0:l.bottom)!=null?u:[]).filter(y=>!(s!=null&&s.has(y)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:r,enablePinning:o}=t.options;return typeof r=="function"?r(e):(n=r??o)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:r,bottom:o}=t.getState().rowPinning,i=n.some(s=>r==null?void 0:r.includes(s)),a=n.some(s=>o==null?void 0:o.includes(s));return i?"top":a?"bottom":!1},e.getPinnedIndex=()=>{var n,r;const o=e.getIsPinned();if(!o)return-1;const i=(n=o==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(a=>{let{id:s}=a;return s});return(r=i==null?void 0:i.indexOf(e.id))!=null?r:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,r;return e.setRowPinning(t?Bg():(n=(r=e.initialState)==null?void 0:r.rowPinning)!=null?n:Bg())},e.getIsSomeRowsPinned=t=>{var n;const r=e.getState().rowPinning;if(!t){var o,i;return!!((o=r.top)!=null&&o.length||(i=r.bottom)!=null&&i.length)}return!!((n=r[t])!=null&&n.length)},e._getPinnedRows=(t,n,r)=>{var o;return((o=e.options.keepPinnedRows)==null||o?(n??[]).map(a=>{const s=e.getRow(a,!0);return s.getIsAllParentsExpanded()?s:null}):(n??[]).map(a=>t.find(s=>s.id===a))).filter(Boolean).map(a=>({...a,position:r}))},e.getTopRows=Me(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),Ie(e.options,"debugRows")),e.getBottomRows=Me(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),Ie(e.options,"debugRows")),e.getCenterRows=Me(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,r)=>{const o=new Set([...n??[],...r??[]]);return t.filter(i=>!o.has(i.id))},Ie(e.options,"debugRows"))}},ZB={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:rr("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const r={...n},o=e.getPreGroupedRowModel().flatRows;return t?o.forEach(i=>{i.getCanSelect()&&(r[i.id]=!0)}):o.forEach(i=>{delete r[i.id]}),r})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),o={...n};return e.getRowModel().rows.forEach(i=>{Fm(o,i.id,r,!0,e)}),o}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=Me(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?zg(e,n):{rows:[],flatRows:[],rowsById:{}},Ie(e.options,"debugTable")),e.getFilteredSelectedRowModel=Me(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?zg(e,n):{rows:[],flatRows:[],rowsById:{}},Ie(e.options,"debugTable")),e.getGroupedSelectedRowModel=Me(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?zg(e,n):{rows:[],flatRows:[],rowsById:{}},Ie(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!(t.length&&Object.keys(n).length);return r&&t.some(o=>o.getCanSelect()&&!n[o.id])&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(o=>o.getCanSelect()),{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(o=>!n[o.id])&&(r=!1),r},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(n=>n.getCanSelect()).some(n=>n.getIsSelected()||n.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,r)=>{const o=e.getIsSelected();t.setRowSelection(i=>{var a;if(n=typeof n<"u"?n:!o,e.getCanSelect()&&o===n)return i;const s={...i};return Fm(s,e.id,n,(a=r==null?void 0:r.selectChildren)!=null?a:!0,t),s})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return Q1(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return Bm(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return Bm(e,n)==="all"},e.getCanSelect=()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},e.getCanSelectSubRows=()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},e.getCanMultiSelect=()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},e.getToggleSelectedHandler=()=>{const n=e.getCanSelect();return r=>{var o;n&&e.toggleSelected((o=r.target)==null?void 0:o.checked)}}}},Fm=(e,t,n,r,o)=>{var i;const a=o.getRow(t,!0);n?(a.getCanMultiSelect()||Object.keys(e).forEach(s=>delete e[s]),a.getCanSelect()&&(e[t]=!0)):delete e[t],r&&(i=a.subRows)!=null&&i.length&&a.getCanSelectSubRows()&&a.subRows.forEach(s=>Fm(e,s.id,n,r,o))};function zg(e,t){const n=e.getState().rowSelection,r=[],o={},i=function(a,s){return a.map(l=>{var c;const u=Q1(l,n);if(u&&(r.push(l),o[l.id]=l),(c=l.subRows)!=null&&c.length&&(l={...l,subRows:i(l.subRows)}),u)return l}).filter(Boolean)};return{rows:i(t.rows),flatRows:r,rowsById:o}}function Q1(e,t){var n;return(n=t[e.id])!=null?n:!1}function Bm(e,t,n){var r;if(!((r=e.subRows)!=null&&r.length))return!1;let o=!0,i=!1;return e.subRows.forEach(a=>{if(!(i&&!o)&&(a.getCanSelect()&&(Q1(a,t)?i=!0:o=!1),a.subRows&&a.subRows.length)){const s=Bm(a,t);s==="all"?i=!0:(s==="some"&&(i=!0),o=!1)}}),o?"all":i?"some":!1}const zm=/([0-9]+)/gm,QB=(e,t,n)=>NR(vi(e.getValue(n)).toLowerCase(),vi(t.getValue(n)).toLowerCase()),YB=(e,t,n)=>NR(vi(e.getValue(n)),vi(t.getValue(n))),XB=(e,t,n)=>Y1(vi(e.getValue(n)).toLowerCase(),vi(t.getValue(n)).toLowerCase()),JB=(e,t,n)=>Y1(vi(e.getValue(n)),vi(t.getValue(n))),ez=(e,t,n)=>{const r=e.getValue(n),o=t.getValue(n);return r>o?1:rY1(e.getValue(n),t.getValue(n));function Y1(e,t){return e===t?0:e>t?1:-1}function vi(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function NR(e,t){const n=e.split(zm).filter(Boolean),r=t.split(zm).filter(Boolean);for(;n.length&&r.length;){const o=n.shift(),i=r.shift(),a=parseInt(o,10),s=parseInt(i,10),l=[a,s].sort();if(isNaN(l[0])){if(o>i)return 1;if(i>o)return-1;continue}if(isNaN(l[1]))return isNaN(a)?-1:1;if(a>s)return 1;if(s>a)return-1}return n.length-r.length}const sl={alphanumeric:QB,alphanumericCaseSensitive:YB,text:XB,textCaseSensitive:JB,datetime:ez,basic:tz},nz={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:rr("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const o of n){const i=o==null?void 0:o.getValue(e.id);if(Object.prototype.toString.call(i)==="[object Date]")return sl.datetime;if(typeof i=="string"&&(r=!0,i.split(zm).length>1))return sl.alphanumeric}return r?sl.text:sl.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof(n==null?void 0:n.getValue(e.id))=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,r;if(!e)throw new Error;return kp(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(r=t.options.sortingFns)==null?void 0:r[e.columnDef.sortingFn])!=null?n:sl[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{const o=e.getNextSortingOrder(),i=typeof n<"u"&&n!==null;t.setSorting(a=>{const s=a==null?void 0:a.find(g=>g.id===e.id),l=a==null?void 0:a.findIndex(g=>g.id===e.id);let c=[],u,d=i?n:o==="desc";if(a!=null&&a.length&&e.getCanMultiSort()&&r?s?u="toggle":u="add":a!=null&&a.length&&l!==a.length-1?u="replace":s?u="toggle":u="replace",u==="toggle"&&(i||o||(u="remove")),u==="add"){var f;c=[...a,{id:e.id,desc:d}],c.splice(0,c.length-((f=t.options.maxMultiSortColCount)!=null?f:Number.MAX_SAFE_INTEGER))}else u==="toggle"?c=a.map(g=>g.id===e.id?{...g,desc:d}:g):u==="remove"?c=a.filter(g=>g.id!==e.id):c=[{id:e.id,desc:d}];return c})},e.getFirstSortDir=()=>{var n,r;return((n=(r=e.columnDef.sortDescFirst)!=null?r:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var r,o;const i=e.getFirstSortDir(),a=e.getIsSorted();return a?a!==i&&((r=t.options.enableSortingRemoval)==null||r)&&(!(n&&(o=t.options.enableMultiRemove)!=null)||o)?!1:a==="desc"?"asc":"desc":i},e.getCanSort=()=>{var n,r;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((r=t.options.enableSorting)!=null?r:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,r;return(n=(r=e.columnDef.enableMultiSort)!=null?r:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const r=(n=t.getState().sorting)==null?void 0:n.find(o=>o.id===e.id);return r?r.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,r;return(n=(r=t.getState().sorting)==null?void 0:r.findIndex(o=>o.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(r=>r.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return r=>{n&&(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,r;e.setSorting(t?[]:(n=(r=e.initialState)==null?void 0:r.sorting)!=null?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},rz=[_B,VB,FB,BB,TB,PB,WB,UB,nz,DB,GB,qB,KB,ZB,zB];function oz(e){var t,n;const r=[...rz,...(t=e._features)!=null?t:[]];let o={_features:r};const i=o._features.reduce((f,g)=>Object.assign(f,g.getDefaultOptions==null?void 0:g.getDefaultOptions(o)),{}),a=f=>o.options.mergeOptions?o.options.mergeOptions(i,f):{...i,...f};let l={...{},...(n=e.initialState)!=null?n:{}};o._features.forEach(f=>{var g;l=(g=f.getInitialState==null?void 0:f.getInitialState(l))!=null?g:l});const c=[];let u=!1;const d={_features:r,options:{...i,...e},initialState:l,_queue:f=>{c.push(f),u||(u=!0,Promise.resolve().then(()=>{for(;c.length;)c.shift()();u=!1}).catch(g=>setTimeout(()=>{throw g})))},reset:()=>{o.setState(o.initialState)},setOptions:f=>{const g=ti(f,o.options);o.options=a(g)},getState:()=>o.options.state,setState:f=>{o.options.onStateChange==null||o.options.onStateChange(f)},_getRowId:(f,g,m)=>{var y;return(y=o.options.getRowId==null?void 0:o.options.getRowId(f,g,m))!=null?y:`${m?[m.id,g].join("."):g}`},getCoreRowModel:()=>(o._getCoreRowModel||(o._getCoreRowModel=o.options.getCoreRowModel(o)),o._getCoreRowModel()),getRowModel:()=>o.getPaginationRowModel(),getRow:(f,g)=>{let m=(g?o.getPrePaginationRowModel():o.getRowModel()).rowsById[f];if(!m&&(m=o.getCoreRowModel().rowsById[f],!m))throw new Error;return m},_getDefaultColumnDef:Me(()=>[o.options.defaultColumn],f=>{var g;return f=(g=f)!=null?g:{},{header:m=>{const y=m.header.column.columnDef;return y.accessorKey?y.accessorKey:y.accessorFn?y.id:null},cell:m=>{var y,C;return(y=(C=m.renderValue())==null||C.toString==null?void 0:C.toString())!=null?y:null},...o._features.reduce((m,y)=>Object.assign(m,y.getDefaultColumnDef==null?void 0:y.getDefaultColumnDef()),{}),...f}},Ie(e,"debugColumns")),_getColumnDefs:()=>o.options.columns,getAllColumns:Me(()=>[o._getColumnDefs()],f=>{const g=function(m,y,C){return C===void 0&&(C=0),m.map(v=>{const S=CB(o,v,C,y),h=v;return S.columns=h.columns?g(h.columns,S,C+1):[],S})};return g(f)},Ie(e,"debugColumns")),getAllFlatColumns:Me(()=>[o.getAllColumns()],f=>f.flatMap(g=>g.getFlatColumns()),Ie(e,"debugColumns")),_getAllFlatColumnsById:Me(()=>[o.getAllFlatColumns()],f=>f.reduce((g,m)=>(g[m.id]=m,g),{}),Ie(e,"debugColumns")),getAllLeafColumns:Me(()=>[o.getAllColumns(),o._getOrderColumnsFn()],(f,g)=>{let m=f.flatMap(y=>y.getLeafColumns());return g(m)},Ie(e,"debugColumns")),getColumn:f=>o._getAllFlatColumnsById()[f]};Object.assign(o,d);for(let f=0;fMe(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(o,i,a){i===void 0&&(i=0);const s=[];for(let c=0;ce._autoResetPageIndex()))}function az(e){const t=[],n=r=>{var o;t.push(r),(o=r.subRows)!=null&&o.length&&r.getIsExpanded()&&r.subRows.forEach(n)};return e.rows.forEach(n),{rows:t,flatRows:e.flatRows,rowsById:e.rowsById}}function sz(e){return t=>Me(()=>[t.getState().pagination,t.getPrePaginationRowModel(),t.options.paginateExpandedRows?void 0:t.getState().expanded],(n,r)=>{if(!r.rows.length)return r;const{pageSize:o,pageIndex:i}=n;let{rows:a,flatRows:s,rowsById:l}=r;const c=o*i,u=c+o;a=a.slice(c,u);let d;t.options.paginateExpandedRows?d={rows:a,flatRows:s,rowsById:l}:d=az({rows:a,flatRows:s,rowsById:l}),d.flatRows=[];const f=g=>{d.flatRows.push(g),g.subRows.length&&g.subRows.forEach(f)};return d.rows.forEach(f),d},Ie(t.options,"debugTable"))}function lz(){return e=>Me(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,o=[],i=r.filter(l=>{var c;return(c=e.getColumn(l.id))==null?void 0:c.getCanSort()}),a={};i.forEach(l=>{const c=e.getColumn(l.id);c&&(a[l.id]={sortUndefined:c.columnDef.sortUndefined,invertSorting:c.columnDef.invertSorting,sortingFn:c.getSortingFn()})});const s=l=>{const c=l.map(u=>({...u}));return c.sort((u,d)=>{for(let g=0;g{var d;o.push(u),(d=u.subRows)!=null&&d.length&&(u.subRows=s(u.subRows))}),c};return{rows:s(n.rows),flatRows:o,rowsById:n.rowsById}},Ie(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}/** + * react-table + * + * Copyright (c) TanStack + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function AR(e,t){return e?cz(e)?b.createElement(e,t):e:null}function cz(e){return uz(e)||typeof e=="function"||dz(e)}function uz(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function dz(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function fz(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=b.useState(()=>({current:oz(t)})),[r,o]=b.useState(()=>n.current.initialState);return n.current.setOptions(i=>({...i,...e,state:{...r,...e.state},onStateChange:a=>{o(a),e.onStateChange==null||e.onStateChange(a)}})),n.current}const pz=e=>e.map(t=>({...t,accessorKey:t.field,header:t.renderHeader?({table:n})=>t.renderHeader({table:n}):t.headerName,minSize:t.minWidth,maxSize:t.maxWidth,size:t.width,cell:t.renderCell?n=>t.renderCell({...n,data:n.row.original}):n=>n.renderValue(),meta:{headerAlign:t.headerAlign,align:t.align}}));function DR(e,t){const n="column"in e?e.column:e,r=t?"header":"col";return{minWidth:`max(calc(var(--${r}-${n.id}-size) * 1px), ${n.columnDef.minSize??0}px)`,width:`min(calc(var(--${r}-${n.id}-size) * 1px), ${n.columnDef.size}px)`,maxWidth:`min(calc(var(--${r}-${n.id}-size) * 1px), ${n.columnDef.maxSize??Number.MAX_SAFE_INTEGER}px)`}}const jR=()=>{const[e,t]=b.useState(!1),[n,r]=b.useState(!1),o=b.useRef(null),i=b.useCallback(()=>{if(o.current){const{scrollLeft:s,scrollWidth:l,clientWidth:c}=o.current;t(s>0),r(s{i()},[]);function a(s,l){const c="column"in s?s.column:s,u=c.getIsPinned();return{position:u||l?"sticky":"relative",top:l?0:void 0,left:u==="left"?`${c.getStart("left")}px`:void 0,right:u==="right"?`${c.getAfter("right")}px`:void 0,zIndex:l?u?3:2:u?2:1,backgroundColor:u?"#fff":"transparent",transition:"all 0.1s ease"}}return{tableContainerRef:o,getCommonPinningStyles:a,updateShadows:i,showShadowState:{showLeftShadow:e,showRightShadow:n}}},Hg=[10,25,50,100],gz=10,hz=10,mz=({paginationMode:e,paginationState:t,onPageChange:n,onPageSizeChange:r})=>{const{pageIndex:o=0,pageSize:i=hz,totalCount:a}=t||{},[s,l]=b.useState({pageIndex:o,pageSize:i}),c=b.useMemo(()=>{if(e!=="client")return Math.ceil(a/s.pageSize)},[e,a,s.pageSize]),u=b.useCallback(f=>{l(g=>({...g,pageIndex:f})),n&&n(f)},[n]),d=b.useCallback(f=>{const g=Number(f.target.value);l(m=>({...m,pageSize:g})),r&&r(g)},[r]);return{pagination:s,setPagination:l,pageCount:c,handlePageChange:u,handleRowsPerPageChange:d}},vz="_root_71ors_3",yz="_withBorder_71ors_6",bz="_tableContainer_71ors_15",xz="_resizer_71ors_21",Sz="_cell_71ors_35",wz="_headerCell_71ors_53",Cz="_bodyCell_71ors_54",_z="_pinnedRight_71ors_67",Rz="_pinnedLeft_71ors_68",Tz="_rowWhenHover_71ors_92",Pz="_emptyCell_71ors_103",kz="_footer_71ors_110",$z="_hide_71ors_114",Ez="_onlyPagination_71ors_117",bn={root:vz,withBorder:yz,tableContainer:bz,resizer:xz,cell:Sz,headerCell:wz,bodyCell:Cz,pinnedRight:_z,pinnedLeft:Rz,rowWhenHover:Tz,emptyCell:Pz,footer:kz,hide:$z,onlyPagination:Ez},Mz=e=>{const{isExpanded:t,row:n,renderDetail:r}=e;return p.jsx(_p,{children:p.jsx(vs,{in:t,children:r?r(n):null},void 0)},void 0)},Iz=rt.memo(({row:e,rowProps:t,showShadowState:n})=>p.jsx(_p,{...t,hover:!0,classes:{hover:bn.rowWhenHover},children:e.getVisibleCells().map(r=>p.jsx(Oz,{cell:r,showShadowState:n},void 0))},void 0),(e,t)=>e.row===t.row&&e.showShadowState===t.showShadowState),Oz=rt.memo(({cell:e,showShadowState:t})=>{var r;const{getCommonPinningStyles:n}=jR();return p.jsx(ws,{classes:{root:bn.cell,body:qt(bn.bodyCell,{[bn.pinnedRight]:e.column.getIsPinned()==="right"&&e.column.getIsFirstColumn("right")&&t.showRightShadow,[bn.pinnedLeft]:e.column.getIsPinned()==="left"&&e.column.getIsLastColumn("left")&&t.showLeftShadow})},style:{...DR(e),...n(e,!1),textAlign:((r=e.column.columnDef.meta)==null?void 0:r.align)||"left"},children:AR(e.column.columnDef.cell,e.getContext())},e.id)},(e,t)=>e.cell.getValue()===t.cell.getValue()&&e.showShadowState===t.showShadowState),FR=e=>{const{table:t,showShadowState:n,renderDetail:r,expandedRows:o,columnsCount:i}=e,a=t.getRowModel().rows,s=Ht();return p.jsx(N7,{children:a.length===0?p.jsx(_p,{children:p.jsx(ws,{colSpan:i,className:bn.emptyCell,children:p.jsx(vt,{color:"textSecondary",children:Jd(Ne.NoRows,s.language)},void 0)},void 0)},void 0):a.map(l=>{const c=!!o[l.id];return p.jsxs(p.Fragment,{children:[p.jsx(Iz,{rowProps:{key:l.id},row:l,showShadowState:n},void 0),r&&c&&p.jsx(Mz,{row:l.original,isExpanded:c,renderDetail:r},void 0)]},void 0)})},void 0)},Lz=rt.memo(FR,(e,t)=>e.table.options.data===t.table.options.data&&e.expandedRows===t.expandedRows),Nz=e=>{const{header:t}=e,n=b.useCallback(r=>{r.preventDefault(),t.getResizeHandler()(r.nativeEvent)},[t]);return p.jsx("div",{onMouseDown:n,className:qt(bn.resizer,{[bn.isResizing]:t.column.getIsResizing()})},void 0)};var Hm;(function(e){e[e.ManageColumnDisplay=0]="ManageColumnDisplay"})(Hm||(Hm={}));const Az=e=>{const{table:t}=e,[n,r]=b.useState(null),o=!!n,i=o?"simple-popover":void 0,a=(l,c)=>{r(l.currentTarget)},s=()=>{r(null)};return p.jsxs(U_,{sx:{display:"flex",justifyContent:"space-between"},children:[p.jsx(vt,{children:"Table"},void 0),p.jsxs("div",{children:[p.jsx(z1,{onClick:l=>a(l,Hm.ManageColumnDisplay),children:p.jsx(aA,{size:24},void 0)},void 0),p.jsx(B_,{id:i,open:o,onClose:s,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:"right"},children:p.jsxs("div",{style:{padding:"16px",boxShadow:"0px 4px 4px rgba(0, 0, 0, 0.25)"},children:[p.jsx(vt,{sx:{marginBottom:"16px"},children:"Manage Column Display"},void 0),p.jsx("div",{children:t.getAllLeafColumns().map(l=>p.jsx("div",{className:"px-1",children:p.jsxs("label",{children:[p.jsx("input",{type:"checkbox",checked:l.getIsVisible(),onChange:l.getToggleVisibilityHandler()},void 0)," ",l.columnDef.header]},void 0)},l.id))},void 0)]},void 0)},void 0)]},void 0)]},void 0)},Dz=e=>{const{header:t,children:n}=e;return t.column.getCanSort()?p.jsx(_N,{active:t.column.getIsSorted()!==!1,direction:t.column.getIsSorted()||"asc",onClick:t.column.getToggleSortingHandler(),children:n},void 0):p.jsx(p.Fragment,{children:n},void 0)},jz=()=>{const[e,t]=b.useState({}),n=o=>{t(i=>({...i,[o]:!i[o]}))},r=b.useMemo(()=>({id:"expander",headerName:"",field:"expander",renderCell:({row:o})=>p.jsx(z1,{onClick:()=>n(o.id),size:"small",children:e[o.id]?p.jsx(rA,{size:24},void 0):p.jsx(la,{size:24},void 0)},void 0)}),[e]);return{expandedRows:e,toggleRowExpanded:n,expandedColumn:r}},Fz=e=>{const{selectedIds:t}=e,n=t.reduce((a,s)=>(a[s]=!0,a),{}),[r,o]=b.useState(n||{});return{checkboxColumn:b.useMemo(()=>({id:"checkbox",headerName:"",field:"checkbox",renderHeader:({table:a})=>p.jsx(tf,{checked:a.getIsAllRowsSelected(),indeterminate:a.getIsSomeRowsSelected(),onChange:a.getToggleAllRowsSelectedHandler()},void 0),renderCell:({row:a})=>p.jsx(tf,{checked:a.getIsSelected(),disabled:!a.getCanSelect(),indeterminate:a.getIsSomeSelected(),onChange:a.getToggleSelectedHandler()},void 0)}),[]),setRowSelection:o,rowSelection:r}},at=e=>{const{columns:t,rows:n,initialState:r,stickyHeader:o=!1,maxHeight:i,showPagination:a=!0,paginationMode:s="client",sortingMode:l="client",onSortingChange:c,rowCount:u=0,showPageSizeSelect:d=!0,pageSize:f,page:g,onPageChange:m,onPageSizeChange:y,enableColumnResizing:C=!1,showToolbar:v=!1,renderDetail:S,isRowSelectable:h,enableMultiRowSelection:w=!0,showCheckboxColumn:_=!1,onSelectChange:T,getRowId:k,renderFooter:R,classes:P={tableContainer:""},withBorder:x=!0,selectedRowIds:$=[]}=e,{tableContainerRef:I,getCommonPinningStyles:O,updateShadows:D,showShadowState:M}=jR(),{pagination:N,pageCount:A,handlePageChange:E,handleRowsPerPageChange:L}=mz({paginationMode:s,paginationState:{pageIndex:g,pageSize:f,totalCount:u},onPageChange:m,onPageSizeChange:y}),{expandedColumn:B,expandedRows:H}=jz(),{rowSelection:z,setRowSelection:j,checkboxColumn:F}=Fz({selectedIds:$}),[W,V]=b.useState([]),ee=b.useMemo(()=>{const de=[...t].filter(Q=>!Q.hide);return S&&de.unshift(B),_&&de.unshift(F),pz(de)},[t,S,H,_]),re=fz({data:n,columns:ee,getCoreRowModel:iz(),getPaginationRowModel:sz(),getSortedRowModel:l==="client"?lz():void 0,onSortingChange:de=>{const Q=typeof de=="function"?de(W):de;V(Q),l==="server"&&c&&c(Q)},enableColumnPinning:!0,enableRowSelection:de=>_&&(h?h(de.original):!0),enableMultiRowSelection:w,initialState:r,defaultColumn:{enableSorting:!1},state:{pagination:N,sorting:W,rowSelection:z},manualPagination:s==="server",manualSorting:l==="server",pageCount:A,enableColumnResizing:C,columnResizeMode:"onChange",onRowSelectionChange:j,getRowId:de=>k?k(de):de.id}),{getState:U}=re,{columnSizing:K,columnSizingInfo:se}=U();b.useEffect(()=>{const de=Object.keys(z).filter(Q=>z[Q]);T&&T(de)},[z]);const{showPagination:q,totalCount:ce}=b.useMemo(()=>{const de=s==="server"?u:n.length;return{showPagination:a&&de>gz,totalCount:de}},[a,s,n.length]),ue=b.useMemo(()=>d?!f||Hg.includes(f)?Hg:[f,...Hg]:[],[d,f]),ie=b.useMemo(()=>{const de=re.getFlatHeaders().length;return{table:re,showShadowState:M,renderDetail:S,expandedRows:H,columnsCount:de}},[re,M,S,H]),te=b.useMemo(()=>{const de=re.getFlatHeaders(),Q={};for(let be=0;bep.jsx(_p,{children:de.headers.map(Q=>{var be;return p.jsxs(ws,{padding:"none",classes:{root:bn.cell,head:bn.headerCell},style:{...DR(Q,!0),...O(Q,o),textAlign:((be=Q.column.columnDef.meta)==null?void 0:be.headerAlign)||"left",backgroundColor:"#fff"},children:[p.jsx(Dz,{header:Q,children:Q.isPlaceholder?null:AR(Q.column.columnDef.header,Q.getContext())},void 0),Q.column.getCanResize()&&p.jsx(Nz,{header:Q},void 0)]},Q.id)})},de.id))},void 0),se.isResizingColumn?p.jsx(Lz,{...ie},void 0):p.jsx(FR,{...ie},void 0)]},void 0)},void 0),p.jsxs(K7,{classes:{root:qt(bn.footer,{[bn.hide]:!R&&!q,[bn.onlyPagination]:!R&&q})},children:[R&&R(Object.keys(z)),q&&p.jsx(BD,{rowsPerPage:N.pageSize,page:N.pageIndex,count:ce,onPageChange:(de,Q)=>E(Q),onRowsPerPageChange:L,rowsPerPageOptions:ue},void 0)]},void 0)]},void 0)};var BR={exports:{}},zR={};/** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var _s=b;function Bz(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var zz=typeof Object.is=="function"?Object.is:Bz,Hz=_s.useState,Vz=_s.useEffect,Wz=_s.useLayoutEffect,Uz=_s.useDebugValue;function Gz(e,t){var n=t(),r=Hz({inst:{value:n,getSnapshot:t}}),o=r[0].inst,i=r[1];return Wz(function(){o.value=n,o.getSnapshot=t,Vg(o)&&i({inst:o})},[e,n,t]),Vz(function(){return Vg(o)&&i({inst:o}),e(function(){Vg(o)&&i({inst:o})})},[e]),Uz(n),n}function Vg(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!zz(e,n)}catch{return!0}}function qz(e,t){return t()}var Kz=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?qz:Gz;zR.useSyncExternalStore=_s.useSyncExternalStore!==void 0?_s.useSyncExternalStore:Kz;BR.exports=zR;var Zz=BR.exports;const ni=()=>{},$n=ni(),td=Object,tt=e=>e===$n,Nr=e=>typeof e=="function",Io=(e,t)=>({...e,...t}),Qz=e=>Nr(e.then),Ru=new WeakMap;let Yz=0;const bc=e=>{const t=typeof e,n=e&&e.constructor,r=n==Date;let o,i;if(td(e)===e&&!r&&n!=RegExp){if(o=Ru.get(e),o)return o;if(o=++Yz+"~",Ru.set(e,o),n==Array){for(o="@",i=0;i$p&&typeof window.requestAnimationFrame!=X1,HR=(e,t)=>{const n=So.get(e);return[()=>!tt(t)&&e.get(t)||Wg,r=>{if(!tt(t)){const o=e.get(t);t in Tu||(Tu[t]=o),n[5](t,Io(o,r),o||Wg)}},n[6],()=>!tt(t)&&t in Tu?Tu[t]:!tt(t)&&e.get(t)||Wg]};let Wm=!0;const Jz=()=>Wm,[Um,Gm]=$p&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[ni,ni],eH=()=>{const e=Vm&&document.visibilityState;return tt(e)||e!=="hidden"},tH=e=>(Vm&&document.addEventListener("visibilitychange",e),Um("focus",e),()=>{Vm&&document.removeEventListener("visibilitychange",e),Gm("focus",e)}),nH=e=>{const t=()=>{Wm=!0,e()},n=()=>{Wm=!1};return Um("online",t),Um("offline",n),()=>{Gm("online",t),Gm("offline",n)}},rH={isOnline:Jz,isVisible:eH},oH={initFocus:tH,initReconnect:nH},Qx=!rt.useId,xc=!$p||"Deno"in window,iH=e=>Xz()?window.requestAnimationFrame(e):setTimeout(e,1),nd=xc?b.useEffect:b.useLayoutEffect,Ug=typeof navigator<"u"&&navigator.connection,Yx=!xc&&Ug&&(["slow-2g","2g"].includes(Ug.effectiveType)||Ug.saveData),J1=e=>{if(Nr(e))try{e=e()}catch{e=""}const t=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?bc(e):"",[e,t]};let aH=0;const qm=()=>++aH,VR=0,WR=1,UR=2,sH=3;var ll={__proto__:null,ERROR_REVALIDATE_EVENT:sH,FOCUS_EVENT:VR,MUTATE_EVENT:UR,RECONNECT_EVENT:WR};async function GR(...e){const[t,n,r,o]=e,i=Io({populateCache:!0,throwOnError:!0},typeof o=="boolean"?{revalidate:o}:o||{});let a=i.populateCache;const s=i.rollbackOnError;let l=i.optimisticData;const c=f=>typeof s=="function"?s(f):s!==!1,u=i.throwOnError;if(Nr(n)){const f=n,g=[],m=t.keys();for(const y of m)!/^\$(inf|sub)\$/.test(y)&&f(t.get(y)._k)&&g.push(y);return Promise.all(g.map(d))}return d(n);async function d(f){const[g]=J1(f);if(!g)return;const[m,y]=HR(t,g),[C,v,S,h]=So.get(t),w=()=>{const O=C[g];return(Nr(i.revalidate)?i.revalidate(m().data,f):i.revalidate!==!1)&&(delete S[g],delete h[g],O&&O[0])?O[0](UR).then(()=>m().data):m().data};if(e.length<3)return w();let _=r,T;const k=qm();v[g]=[k,0];const R=!tt(l),P=m(),x=P.data,$=P._c,I=tt($)?x:$;if(R&&(l=Nr(l)?l(I,x):l,y({data:l,_c:I})),Nr(_))try{_=_(I)}catch(O){T=O}if(_&&Qz(_))if(_=await _.catch(O=>{T=O}),k!==v[g][0]){if(T)throw T;return _}else T&&R&&c(T)&&(a=!0,y({data:I,_c:$n}));if(a&&!T)if(Nr(a)){const O=a(_,I);y({data:O,error:$n,_c:$n})}else y({data:_,error:$n,_c:$n});if(v[g][1]=qm(),Promise.resolve(w()).then(()=>{y({_c:$n})}),T){if(u)throw T;return}return _}}const Xx=(e,t)=>{for(const n in e)e[n][0]&&e[n][0](t)},qR=(e,t)=>{if(!So.has(e)){const n=Io(oH,t),r={},o=GR.bind($n,e);let i=ni;const a={},s=(u,d)=>{const f=a[u]||[];return a[u]=f,f.push(d),()=>f.splice(f.indexOf(d),1)},l=(u,d,f)=>{e.set(u,d);const g=a[u];if(g)for(const m of g)m(d,f)},c=()=>{if(!So.has(e)&&(So.set(e,[r,{},{},{},o,l,s]),!xc)){const u=n.initFocus(setTimeout.bind($n,Xx.bind($n,r,VR))),d=n.initReconnect(setTimeout.bind($n,Xx.bind($n,r,WR)));i=()=>{u&&u(),d&&d(),So.delete(e)}}};return c(),[e,o,c,i]}return[e,So.get(e)[4]]},lH=(e,t,n,r,o)=>{const i=n.errorRetryCount,a=o.retryCount,s=~~((Math.random()+.5)*(1<<(a<8?a:8)))*n.errorRetryInterval;!tt(i)&&a>i||setTimeout(r,s,o)},cH=(e,t)=>bc(e)==bc(t),[ev,uH]=qR(new Map),KR=Io({onLoadingSlow:ni,onSuccess:ni,onError:ni,onErrorRetry:lH,onDiscarded:ni,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:Yx?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:Yx?5e3:3e3,compare:cH,isPaused:()=>!1,cache:ev,mutate:uH,fallback:{}},rH),ZR=(e,t)=>{const n=Io(e,t);if(t){const{use:r,fallback:o}=e,{use:i,fallback:a}=t;r&&i&&(n.use=r.concat(i)),o&&a&&(n.fallback=Io(o,a))}return n},Km=b.createContext({}),dH=e=>{const{value:t}=e,n=b.useContext(Km),r=Nr(t),o=b.useMemo(()=>r?t(n):t,[r,n,t]),i=b.useMemo(()=>r?o:ZR(n,o),[r,n,o]),a=o&&o.provider,s=b.useRef($n);a&&!s.current&&(s.current=qR(a(i.cache||ev),o));const l=s.current;return l&&(i.cache=l[0],i.mutate=l[1]),nd(()=>{if(l)return l[2]&&l[2](),l[3]},[]),b.createElement(Km.Provider,Io(e,{value:i}))},fH="$inf$",QR=$p&&window.__SWR_DEVTOOLS_USE__,pH=QR?window.__SWR_DEVTOOLS_USE__:[],gH=()=>{QR&&(window.__SWR_DEVTOOLS_REACT__=rt)},hH=e=>Nr(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(e[1]===null?e[2]:e[1])||{}],mH=()=>Io(KR,b.useContext(Km)),vH=e=>(t,n,r)=>e(t,n&&((...i)=>{const[a]=J1(t),[,,,s]=So.get(ev);if(a.startsWith(fH))return n(...i);const l=s[a];return tt(l)?n(...i):(delete s[a],l)}),r),yH=pH.concat(vH),bH=e=>function(...n){const r=mH(),[o,i,a]=hH(n),s=ZR(r,a);let l=e;const{use:c}=s,u=(c||[]).concat(yH);for(let d=u.length;d--;)l=u[d](l);return l(o,i||s.fetcher||null,s)},xH=(e,t,n)=>{const r=t[e]||(t[e]=[]);return r.push(n),()=>{const o=r.indexOf(n);o>=0&&(r[o]=r[r.length-1],r.pop())}};gH();const Jx=rt.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e)}),Gg={dedupe:!0},SH=(e,t,n)=>{const{cache:r,compare:o,suspense:i,fallbackData:a,revalidateOnMount:s,revalidateIfStale:l,refreshInterval:c,refreshWhenHidden:u,refreshWhenOffline:d,keepPreviousData:f}=n,[g,m,y,C]=So.get(r),[v,S]=J1(e),h=b.useRef(!1),w=b.useRef(!1),_=b.useRef(v),T=b.useRef(t),k=b.useRef(n),R=()=>k.current,P=()=>R().isVisible()&&R().isOnline(),[x,$,I,O]=HR(r,v),D=b.useRef({}).current,M=tt(a)?n.fallback[v]:a,N=(q,ce)=>{for(const ue in D){const ie=ue;if(ie==="data"){if(!o(q[ie],ce[ie])&&(!tt(q[ie])||!o(W,ce[ie])))return!1}else if(ce[ie]!==q[ie])return!1}return!0},A=b.useMemo(()=>{const q=!v||!t?!1:tt(s)?R().isPaused()||i?!1:tt(l)?!0:l:s,ce=be=>{const Te=Io(be);return delete Te._k,q?{isValidating:!0,isLoading:!0,...Te}:Te},ue=x(),ie=O(),te=ce(ue),de=ue===ie?te:ce(ie);let Q=te;return[()=>{const be=ce(x());return N(be,Q)?(Q.data=be.data,Q.isLoading=be.isLoading,Q.isValidating=be.isValidating,Q.error=be.error,Q):(Q=be,be)},()=>de]},[r,v]),E=Zz.useSyncExternalStore(b.useCallback(q=>I(v,(ce,ue)=>{N(ue,ce)||q()}),[r,v]),A[0],A[1]),L=!h.current,B=g[v]&&g[v].length>0,H=E.data,z=tt(H)?M:H,j=E.error,F=b.useRef(z),W=f?tt(H)?F.current:H:z,V=B&&!tt(j)?!1:L&&!tt(s)?s:R().isPaused()?!1:i?tt(z)?!1:l:tt(z)||l,ee=!!(v&&t&&L&&V),re=tt(E.isValidating)?ee:E.isValidating,U=tt(E.isLoading)?ee:E.isLoading,K=b.useCallback(async q=>{const ce=T.current;if(!v||!ce||w.current||R().isPaused())return!1;let ue,ie,te=!0;const de=q||{},Q=!y[v]||!de.dedupe,be=()=>Qx?!w.current&&v===_.current&&h.current:v===_.current,Te={isValidating:!1,isLoading:!1},we=()=>{$(Te)},ge=()=>{const Se=y[v];Se&&Se[1]===ie&&delete y[v]},le={isValidating:!0};tt(x().data)&&(le.isLoading=!0);try{if(Q&&($(le),n.loadingTimeout&&tt(x().data)&&setTimeout(()=>{te&&be()&&R().onLoadingSlow(v,n)},n.loadingTimeout),y[v]=[ce(S),qm()]),[ue,ie]=y[v],ue=await ue,Q&&setTimeout(ge,n.dedupingInterval),!y[v]||y[v][1]!==ie)return Q&&be()&&R().onDiscarded(v),!1;Te.error=$n;const Se=m[v];if(!tt(Se)&&(ie<=Se[0]||ie<=Se[1]||Se[1]===0))return we(),Q&&be()&&R().onDiscarded(v),!1;const ye=x().data;Te.data=o(ye,ue)?ye:ue,Q&&be()&&R().onSuccess(ue,v,n)}catch(Se){ge();const ye=R(),{shouldRetryOnError:Ge}=ye;ye.isPaused()||(Te.error=Se,Q&&be()&&(ye.onError(Se,v,ye),(Ge===!0||Nr(Ge)&&Ge(Se))&&(!R().revalidateOnFocus||!R().revalidateOnReconnect||P())&&ye.onErrorRetry(Se,v,ye,Pe=>{const Re=g[v];Re&&Re[0]&&Re[0](ll.ERROR_REVALIDATE_EVENT,Pe)},{retryCount:(de.retryCount||0)+1,dedupe:!0})))}return te=!1,we(),!0},[v,r]),se=b.useCallback((...q)=>GR(r,_.current,...q),[]);if(nd(()=>{T.current=t,k.current=n,tt(H)||(F.current=H)}),nd(()=>{if(!v)return;const q=K.bind($n,Gg);let ce=0;const ie=xH(v,g,(te,de={})=>{if(te==ll.FOCUS_EVENT){const Q=Date.now();R().revalidateOnFocus&&Q>ce&&P()&&(ce=Q+R().focusThrottleInterval,q())}else if(te==ll.RECONNECT_EVENT)R().revalidateOnReconnect&&P()&&q();else{if(te==ll.MUTATE_EVENT)return K();if(te==ll.ERROR_REVALIDATE_EVENT)return K(de)}});return w.current=!1,_.current=v,h.current=!0,$({_k:S}),V&&(tt(z)||xc?q():iH(q)),()=>{w.current=!0,ie()}},[v]),nd(()=>{let q;function ce(){const ie=Nr(c)?c(x().data):c;ie&&q!==-1&&(q=setTimeout(ue,ie))}function ue(){!x().error&&(u||R().isVisible())&&(d||R().isOnline())?K(Gg).then(ce):ce()}return ce(),()=>{q&&(clearTimeout(q),q=-1)}},[c,u,d,v]),b.useDebugValue(W),i&&tt(z)&&v){if(!Qx&&xc)throw new Error("Fallback data is required when using suspense in SSR.");T.current=t,k.current=n,w.current=!1;const q=C[v];if(!tt(q)){const ce=se(q);Jx(ce)}if(tt(j)){const ce=K(Gg);tt(W)||(ce.status="fulfilled",ce.value=!0),Jx(ce)}else throw j}return{mutate:se,get data(){return D.data=!0,W},get error(){return D.error=!0,j},get isValidating(){return D.isValidating=!0,re},get isLoading(){return D.isLoading=!0,U}}},wH=td.defineProperty(dH,"defaultValue",{value:KR}),Je=bH(SH);function YR(e,t){return function(){return e.apply(t,arguments)}}const{toString:CH}=Object.prototype,{getPrototypeOf:tv}=Object,Ep=(e=>t=>{const n=CH.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Gr=e=>(e=e.toLowerCase(),t=>Ep(t)===e),Mp=e=>t=>typeof t===e,{isArray:Ds}=Array,Sc=Mp("undefined");function _H(e){return e!==null&&!Sc(e)&&e.constructor!==null&&!Sc(e.constructor)&&er(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const XR=Gr("ArrayBuffer");function RH(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&XR(e.buffer),t}const TH=Mp("string"),er=Mp("function"),JR=Mp("number"),Ip=e=>e!==null&&typeof e=="object",PH=e=>e===!0||e===!1,rd=e=>{if(Ep(e)!=="object")return!1;const t=tv(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},kH=Gr("Date"),$H=Gr("File"),EH=Gr("Blob"),MH=Gr("FileList"),IH=e=>Ip(e)&&er(e.pipe),OH=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||er(e.append)&&((t=Ep(e))==="formdata"||t==="object"&&er(e.toString)&&e.toString()==="[object FormData]"))},LH=Gr("URLSearchParams"),[NH,AH,DH,jH]=["ReadableStream","Request","Response","Headers"].map(Gr),FH=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Dc(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,o;if(typeof e!="object"&&(e=[e]),Ds(e))for(r=0,o=e.length;r0;)if(o=n[r],t===o.toLowerCase())return o;return null}const zi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,t3=e=>!Sc(e)&&e!==zi;function Zm(){const{caseless:e}=t3(this)&&this||{},t={},n=(r,o)=>{const i=e&&e3(t,o)||o;rd(t[i])&&rd(r)?t[i]=Zm(t[i],r):rd(r)?t[i]=Zm({},r):Ds(r)?t[i]=r.slice():t[i]=r};for(let r=0,o=arguments.length;r(Dc(t,(o,i)=>{n&&er(o)?e[i]=YR(o,n):e[i]=o},{allOwnKeys:r}),e),zH=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),HH=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},VH=(e,t,n,r)=>{let o,i,a;const s={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)a=o[i],(!r||r(a,e,t))&&!s[a]&&(t[a]=e[a],s[a]=!0);e=n!==!1&&tv(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},WH=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},UH=e=>{if(!e)return null;if(Ds(e))return e;let t=e.length;if(!JR(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},GH=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&tv(Uint8Array)),qH=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let o;for(;(o=r.next())&&!o.done;){const i=o.value;t.call(e,i[0],i[1])}},KH=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ZH=Gr("HTMLFormElement"),QH=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,o){return r.toUpperCase()+o}),eS=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),YH=Gr("RegExp"),n3=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Dc(n,(o,i)=>{let a;(a=t(o,i,e))!==!1&&(r[i]=a||o)}),Object.defineProperties(e,r)},XH=e=>{n3(e,(t,n)=>{if(er(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(er(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},JH=(e,t)=>{const n={},r=o=>{o.forEach(i=>{n[i]=!0})};return Ds(e)?r(e):r(String(e).split(t)),n},eV=()=>{},tV=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,qg="abcdefghijklmnopqrstuvwxyz",tS="0123456789",r3={DIGIT:tS,ALPHA:qg,ALPHA_DIGIT:qg+qg.toUpperCase()+tS},nV=(e=16,t=r3.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function rV(e){return!!(e&&er(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const oV=e=>{const t=new Array(10),n=(r,o)=>{if(Ip(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[o]=r;const i=Ds(r)?[]:{};return Dc(r,(a,s)=>{const l=n(a,o+1);!Sc(l)&&(i[s]=l)}),t[o]=void 0,i}}return r};return n(e,0)},iV=Gr("AsyncFunction"),aV=e=>e&&(Ip(e)||er(e))&&er(e.then)&&er(e.catch),o3=((e,t)=>e?setImmediate:t?((n,r)=>(zi.addEventListener("message",({source:o,data:i})=>{o===zi&&i===n&&r.length&&r.shift()()},!1),o=>{r.push(o),zi.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",er(zi.postMessage)),sV=typeof queueMicrotask<"u"?queueMicrotask.bind(zi):typeof process<"u"&&process.nextTick||o3,G={isArray:Ds,isArrayBuffer:XR,isBuffer:_H,isFormData:OH,isArrayBufferView:RH,isString:TH,isNumber:JR,isBoolean:PH,isObject:Ip,isPlainObject:rd,isReadableStream:NH,isRequest:AH,isResponse:DH,isHeaders:jH,isUndefined:Sc,isDate:kH,isFile:$H,isBlob:EH,isRegExp:YH,isFunction:er,isStream:IH,isURLSearchParams:LH,isTypedArray:GH,isFileList:MH,forEach:Dc,merge:Zm,extend:BH,trim:FH,stripBOM:zH,inherits:HH,toFlatObject:VH,kindOf:Ep,kindOfTest:Gr,endsWith:WH,toArray:UH,forEachEntry:qH,matchAll:KH,isHTMLForm:ZH,hasOwnProperty:eS,hasOwnProp:eS,reduceDescriptors:n3,freezeMethods:XH,toObjectSet:JH,toCamelCase:QH,noop:eV,toFiniteNumber:tV,findKey:e3,global:zi,isContextDefined:t3,ALPHABET:r3,generateString:nV,isSpecCompliantForm:rV,toJSONObject:oV,isAsyncFn:iV,isThenable:aV,setImmediate:o3,asap:sV};function He(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}G.inherits(He,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:G.toJSONObject(this.config),code:this.code,status:this.status}}});const i3=He.prototype,a3={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{a3[e]={value:e}});Object.defineProperties(He,a3);Object.defineProperty(i3,"isAxiosError",{value:!0});He.from=(e,t,n,r,o,i)=>{const a=Object.create(i3);return G.toFlatObject(e,a,function(l){return l!==Error.prototype},s=>s!=="isAxiosError"),He.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};const lV=null;function Qm(e){return G.isPlainObject(e)||G.isArray(e)}function s3(e){return G.endsWith(e,"[]")?e.slice(0,-2):e}function nS(e,t,n){return e?e.concat(t).map(function(o,i){return o=s3(o),!n&&i?"["+o+"]":o}).join(n?".":""):t}function cV(e){return G.isArray(e)&&!e.some(Qm)}const uV=G.toFlatObject(G,{},null,function(t){return/^is[A-Z]/.test(t)});function Op(e,t,n){if(!G.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=G.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(y,C){return!G.isUndefined(C[y])});const r=n.metaTokens,o=n.visitor||u,i=n.dots,a=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&G.isSpecCompliantForm(t);if(!G.isFunction(o))throw new TypeError("visitor must be a function");function c(m){if(m===null)return"";if(G.isDate(m))return m.toISOString();if(!l&&G.isBlob(m))throw new He("Blob is not supported. Use a Buffer instead.");return G.isArrayBuffer(m)||G.isTypedArray(m)?l&&typeof Blob=="function"?new Blob([m]):Buffer.from(m):m}function u(m,y,C){let v=m;if(m&&!C&&typeof m=="object"){if(G.endsWith(y,"{}"))y=r?y:y.slice(0,-2),m=JSON.stringify(m);else if(G.isArray(m)&&cV(m)||(G.isFileList(m)||G.endsWith(y,"[]"))&&(v=G.toArray(m)))return y=s3(y),v.forEach(function(h,w){!(G.isUndefined(h)||h===null)&&t.append(a===!0?nS([y],w,i):a===null?y:y+"[]",c(h))}),!1}return Qm(m)?!0:(t.append(nS(C,y,i),c(m)),!1)}const d=[],f=Object.assign(uV,{defaultVisitor:u,convertValue:c,isVisitable:Qm});function g(m,y){if(!G.isUndefined(m)){if(d.indexOf(m)!==-1)throw Error("Circular reference detected in "+y.join("."));d.push(m),G.forEach(m,function(v,S){(!(G.isUndefined(v)||v===null)&&o.call(t,v,G.isString(S)?S.trim():S,y,f))===!0&&g(v,y?y.concat(S):[S])}),d.pop()}}if(!G.isObject(e))throw new TypeError("data must be an object");return g(e),t}function rS(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function nv(e,t){this._pairs=[],e&&Op(e,this,t)}const l3=nv.prototype;l3.append=function(t,n){this._pairs.push([t,n])};l3.toString=function(t){const n=t?function(r){return t.call(this,r,rS)}:rS;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};function dV(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function c3(e,t,n){if(!t)return e;const r=n&&n.encode||dV,o=n&&n.serialize;let i;if(o?i=o(t,n):i=G.isURLSearchParams(t)?t.toString():new nv(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class oS{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){G.forEach(this.handlers,function(r){r!==null&&t(r)})}}const u3={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},fV=typeof URLSearchParams<"u"?URLSearchParams:nv,pV=typeof FormData<"u"?FormData:null,gV=typeof Blob<"u"?Blob:null,hV={isBrowser:!0,classes:{URLSearchParams:fV,FormData:pV,Blob:gV},protocols:["http","https","file","blob","url","data"]},rv=typeof window<"u"&&typeof document<"u",Ym=typeof navigator=="object"&&navigator||void 0,mV=rv&&(!Ym||["ReactNative","NativeScript","NS"].indexOf(Ym.product)<0),vV=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",yV=rv&&window.location.href||"http://localhost",bV=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:rv,hasStandardBrowserEnv:mV,hasStandardBrowserWebWorkerEnv:vV,navigator:Ym,origin:yV},Symbol.toStringTag,{value:"Module"})),Hn={...bV,...hV};function xV(e,t){return Op(e,new Hn.classes.URLSearchParams,Object.assign({visitor:function(n,r,o,i){return Hn.isNode&&G.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},t))}function SV(e){return G.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function wV(e){const t={},n=Object.keys(e);let r;const o=n.length;let i;for(r=0;r=n.length;return a=!a&&G.isArray(o)?o.length:a,l?(G.hasOwnProp(o,a)?o[a]=[o[a],r]:o[a]=r,!s):((!o[a]||!G.isObject(o[a]))&&(o[a]=[]),t(n,r,o[a],i)&&G.isArray(o[a])&&(o[a]=wV(o[a])),!s)}if(G.isFormData(e)&&G.isFunction(e.entries)){const n={};return G.forEachEntry(e,(r,o)=>{t(SV(r),o,n,0)}),n}return null}function CV(e,t,n){if(G.isString(e))try{return(t||JSON.parse)(e),G.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(0,JSON.stringify)(e)}const jc={transitional:u3,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",o=r.indexOf("application/json")>-1,i=G.isObject(t);if(i&&G.isHTMLForm(t)&&(t=new FormData(t)),G.isFormData(t))return o?JSON.stringify(d3(t)):t;if(G.isArrayBuffer(t)||G.isBuffer(t)||G.isStream(t)||G.isFile(t)||G.isBlob(t)||G.isReadableStream(t))return t;if(G.isArrayBufferView(t))return t.buffer;if(G.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return xV(t,this.formSerializer).toString();if((s=G.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Op(s?{"files[]":t}:t,l&&new l,this.formSerializer)}}return i||o?(n.setContentType("application/json",!1),CV(t)):t}],transformResponse:[function(t){const n=this.transitional||jc.transitional,r=n&&n.forcedJSONParsing,o=this.responseType==="json";if(G.isResponse(t)||G.isReadableStream(t))return t;if(t&&G.isString(t)&&(r&&!this.responseType||o)){const a=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t)}catch(s){if(a)throw s.name==="SyntaxError"?He.from(s,He.ERR_BAD_RESPONSE,this,null,this.response):s}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Hn.classes.FormData,Blob:Hn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};G.forEach(["delete","get","head","post","put","patch"],e=>{jc.headers[e]={}});const _V=G.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),RV=e=>{const t={};let n,r,o;return e&&e.split(` +`).forEach(function(a){o=a.indexOf(":"),n=a.substring(0,o).trim().toLowerCase(),r=a.substring(o+1).trim(),!(!n||t[n]&&_V[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},iS=Symbol("internals");function cl(e){return e&&String(e).trim().toLowerCase()}function od(e){return e===!1||e==null?e:G.isArray(e)?e.map(od):String(e)}function TV(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const PV=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Kg(e,t,n,r,o){if(G.isFunction(r))return r.call(this,t,n);if(o&&(t=n),!!G.isString(t)){if(G.isString(r))return t.indexOf(r)!==-1;if(G.isRegExp(r))return r.test(t)}}function kV(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function $V(e,t){const n=G.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(o,i,a){return this[r].call(this,t,o,i,a)},configurable:!0})})}class Vn{constructor(t){t&&this.set(t)}set(t,n,r){const o=this;function i(s,l,c){const u=cl(l);if(!u)throw new Error("header name must be a non-empty string");const d=G.findKey(o,u);(!d||o[d]===void 0||c===!0||c===void 0&&o[d]!==!1)&&(o[d||l]=od(s))}const a=(s,l)=>G.forEach(s,(c,u)=>i(c,u,l));if(G.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(G.isString(t)&&(t=t.trim())&&!PV(t))a(RV(t),n);else if(G.isHeaders(t))for(const[s,l]of t.entries())i(l,s,r);else t!=null&&i(n,t,r);return this}get(t,n){if(t=cl(t),t){const r=G.findKey(this,t);if(r){const o=this[r];if(!n)return o;if(n===!0)return TV(o);if(G.isFunction(n))return n.call(this,o,r);if(G.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=cl(t),t){const r=G.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Kg(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let o=!1;function i(a){if(a=cl(a),a){const s=G.findKey(r,a);s&&(!n||Kg(r,r[s],s,n))&&(delete r[s],o=!0)}}return G.isArray(t)?t.forEach(i):i(t),o}clear(t){const n=Object.keys(this);let r=n.length,o=!1;for(;r--;){const i=n[r];(!t||Kg(this,this[i],i,t,!0))&&(delete this[i],o=!0)}return o}normalize(t){const n=this,r={};return G.forEach(this,(o,i)=>{const a=G.findKey(r,i);if(a){n[a]=od(o),delete n[i];return}const s=t?kV(i):String(i).trim();s!==i&&delete n[i],n[s]=od(o),r[s]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return G.forEach(this,(r,o)=>{r!=null&&r!==!1&&(n[o]=t&&G.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(o=>r.set(o)),r}static accessor(t){const r=(this[iS]=this[iS]={accessors:{}}).accessors,o=this.prototype;function i(a){const s=cl(a);r[s]||($V(o,a),r[s]=!0)}return G.isArray(t)?t.forEach(i):i(t),this}}Vn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);G.reduceDescriptors(Vn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});G.freezeMethods(Vn);function Zg(e,t){const n=this||jc,r=t||n,o=Vn.from(r.headers);let i=r.data;return G.forEach(e,function(s){i=s.call(n,i,o.normalize(),t?t.status:void 0)}),o.normalize(),i}function f3(e){return!!(e&&e.__CANCEL__)}function js(e,t,n){He.call(this,e??"canceled",He.ERR_CANCELED,t,n),this.name="CanceledError"}G.inherits(js,He,{__CANCEL__:!0});function p3(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new He("Request failed with status code "+n.status,[He.ERR_BAD_REQUEST,He.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function EV(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function MV(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o=0,i=0,a;return t=t!==void 0?t:1e3,function(l){const c=Date.now(),u=r[i];a||(a=c),n[o]=l,r[o]=c;let d=i,f=0;for(;d!==o;)f+=n[d++],d=d%e;if(o=(o+1)%e,o===i&&(i=(i+1)%e),c-a{n=u,o=null,i&&(clearTimeout(i),i=null),e.apply(null,c)};return[(...c)=>{const u=Date.now(),d=u-n;d>=r?a(c,u):(o=c,i||(i=setTimeout(()=>{i=null,a(o)},r-d)))},()=>o&&a(o)]}const rf=(e,t,n=3)=>{let r=0;const o=MV(50,250);return IV(i=>{const a=i.loaded,s=i.lengthComputable?i.total:void 0,l=a-r,c=o(l),u=a<=s;r=a;const d={loaded:a,total:s,progress:s?a/s:void 0,bytes:l,rate:c||void 0,estimated:c&&s&&u?(s-a)/c:void 0,event:i,lengthComputable:s!=null,[t?"download":"upload"]:!0};e(d)},n)},aS=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},sS=e=>(...t)=>G.asap(()=>e(...t)),OV=Hn.hasStandardBrowserEnv?function(){const t=Hn.navigator&&/(msie|trident)/i.test(Hn.navigator.userAgent),n=document.createElement("a");let r;function o(i){let a=i;return t&&(n.setAttribute("href",a),a=n.href),n.setAttribute("href",a),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=o(window.location.href),function(a){const s=G.isString(a)?o(a):a;return s.protocol===r.protocol&&s.host===r.host}}():function(){return function(){return!0}}(),LV=Hn.hasStandardBrowserEnv?{write(e,t,n,r,o,i){const a=[e+"="+encodeURIComponent(t)];G.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),G.isString(r)&&a.push("path="+r),G.isString(o)&&a.push("domain="+o),i===!0&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function NV(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function AV(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function g3(e,t){return e&&!NV(t)?AV(e,t):t}const lS=e=>e instanceof Vn?{...e}:e;function ua(e,t){t=t||{};const n={};function r(c,u,d){return G.isPlainObject(c)&&G.isPlainObject(u)?G.merge.call({caseless:d},c,u):G.isPlainObject(u)?G.merge({},u):G.isArray(u)?u.slice():u}function o(c,u,d){if(G.isUndefined(u)){if(!G.isUndefined(c))return r(void 0,c,d)}else return r(c,u,d)}function i(c,u){if(!G.isUndefined(u))return r(void 0,u)}function a(c,u){if(G.isUndefined(u)){if(!G.isUndefined(c))return r(void 0,c)}else return r(void 0,u)}function s(c,u,d){if(d in t)return r(c,u);if(d in e)return r(void 0,c)}const l={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(c,u)=>o(lS(c),lS(u),!0)};return G.forEach(Object.keys(Object.assign({},e,t)),function(u){const d=l[u]||o,f=d(e[u],t[u],u);G.isUndefined(f)&&d!==s||(n[u]=f)}),n}const h3=e=>{const t=ua({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:o,xsrfCookieName:i,headers:a,auth:s}=t;t.headers=a=Vn.from(a),t.url=c3(g3(t.baseURL,t.url),e.params,e.paramsSerializer),s&&a.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):"")));let l;if(G.isFormData(n)){if(Hn.hasStandardBrowserEnv||Hn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if((l=a.getContentType())!==!1){const[c,...u]=l?l.split(";").map(d=>d.trim()).filter(Boolean):[];a.setContentType([c||"multipart/form-data",...u].join("; "))}}if(Hn.hasStandardBrowserEnv&&(r&&G.isFunction(r)&&(r=r(t)),r||r!==!1&&OV(t.url))){const c=o&&i&&LV.read(i);c&&a.set(o,c)}return t},DV=typeof XMLHttpRequest<"u",jV=DV&&function(e){return new Promise(function(n,r){const o=h3(e);let i=o.data;const a=Vn.from(o.headers).normalize();let{responseType:s,onUploadProgress:l,onDownloadProgress:c}=o,u,d,f,g,m;function y(){g&&g(),m&&m(),o.cancelToken&&o.cancelToken.unsubscribe(u),o.signal&&o.signal.removeEventListener("abort",u)}let C=new XMLHttpRequest;C.open(o.method.toUpperCase(),o.url,!0),C.timeout=o.timeout;function v(){if(!C)return;const h=Vn.from("getAllResponseHeaders"in C&&C.getAllResponseHeaders()),_={data:!s||s==="text"||s==="json"?C.responseText:C.response,status:C.status,statusText:C.statusText,headers:h,config:e,request:C};p3(function(k){n(k),y()},function(k){r(k),y()},_),C=null}"onloadend"in C?C.onloadend=v:C.onreadystatechange=function(){!C||C.readyState!==4||C.status===0&&!(C.responseURL&&C.responseURL.indexOf("file:")===0)||setTimeout(v)},C.onabort=function(){C&&(r(new He("Request aborted",He.ECONNABORTED,e,C)),C=null)},C.onerror=function(){r(new He("Network Error",He.ERR_NETWORK,e,C)),C=null},C.ontimeout=function(){let w=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const _=o.transitional||u3;o.timeoutErrorMessage&&(w=o.timeoutErrorMessage),r(new He(w,_.clarifyTimeoutError?He.ETIMEDOUT:He.ECONNABORTED,e,C)),C=null},i===void 0&&a.setContentType(null),"setRequestHeader"in C&&G.forEach(a.toJSON(),function(w,_){C.setRequestHeader(_,w)}),G.isUndefined(o.withCredentials)||(C.withCredentials=!!o.withCredentials),s&&s!=="json"&&(C.responseType=o.responseType),c&&([f,m]=rf(c,!0),C.addEventListener("progress",f)),l&&C.upload&&([d,g]=rf(l),C.upload.addEventListener("progress",d),C.upload.addEventListener("loadend",g)),(o.cancelToken||o.signal)&&(u=h=>{C&&(r(!h||h.type?new js(null,e,C):h),C.abort(),C=null)},o.cancelToken&&o.cancelToken.subscribe(u),o.signal&&(o.signal.aborted?u():o.signal.addEventListener("abort",u)));const S=EV(o.url);if(S&&Hn.protocols.indexOf(S)===-1){r(new He("Unsupported protocol "+S+":",He.ERR_BAD_REQUEST,e));return}C.send(i||null)})},FV=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,o;const i=function(c){if(!o){o=!0,s();const u=c instanceof Error?c:this.reason;r.abort(u instanceof He?u:new js(u instanceof Error?u.message:u))}};let a=t&&setTimeout(()=>{a=null,i(new He(`timeout ${t} of ms exceeded`,He.ETIMEDOUT))},t);const s=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(c=>{c.unsubscribe?c.unsubscribe(i):c.removeEventListener("abort",i)}),e=null)};e.forEach(c=>c.addEventListener("abort",i));const{signal:l}=r;return l.unsubscribe=()=>G.asap(s),l}},BV=function*(e,t){let n=e.byteLength;if(n{const o=zV(e,t);let i=0,a,s=l=>{a||(a=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await o.next();if(c){s(),l.close();return}let d=u.byteLength;if(n){let f=i+=d;n(f)}l.enqueue(new Uint8Array(u))}catch(c){throw s(c),c}},cancel(l){return s(l),o.return()}},{highWaterMark:2})},Lp=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",m3=Lp&&typeof ReadableStream=="function",VV=Lp&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),v3=(e,...t)=>{try{return!!e(...t)}catch{return!1}},WV=m3&&v3(()=>{let e=!1;const t=new Request(Hn.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),uS=64*1024,Xm=m3&&v3(()=>G.isReadableStream(new Response("").body)),of={stream:Xm&&(e=>e.body)};Lp&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!of[t]&&(of[t]=G.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new He(`Response type '${t}' is not supported`,He.ERR_NOT_SUPPORT,r)})})})(new Response);const UV=async e=>{if(e==null)return 0;if(G.isBlob(e))return e.size;if(G.isSpecCompliantForm(e))return(await new Request(Hn.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(G.isArrayBufferView(e)||G.isArrayBuffer(e))return e.byteLength;if(G.isURLSearchParams(e)&&(e=e+""),G.isString(e))return(await VV(e)).byteLength},GV=async(e,t)=>{const n=G.toFiniteNumber(e.getContentLength());return n??UV(t)},qV=Lp&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:i,timeout:a,onDownloadProgress:s,onUploadProgress:l,responseType:c,headers:u,withCredentials:d="same-origin",fetchOptions:f}=h3(e);c=c?(c+"").toLowerCase():"text";let g=FV([o,i&&i.toAbortSignal()],a),m;const y=g&&g.unsubscribe&&(()=>{g.unsubscribe()});let C;try{if(l&&WV&&n!=="get"&&n!=="head"&&(C=await GV(u,r))!==0){let _=new Request(t,{method:"POST",body:r,duplex:"half"}),T;if(G.isFormData(r)&&(T=_.headers.get("content-type"))&&u.setContentType(T),_.body){const[k,R]=aS(C,rf(sS(l)));r=cS(_.body,uS,k,R)}}G.isString(d)||(d=d?"include":"omit");const v="credentials"in Request.prototype;m=new Request(t,{...f,signal:g,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:v?d:void 0});let S=await fetch(m);const h=Xm&&(c==="stream"||c==="response");if(Xm&&(s||h&&y)){const _={};["status","statusText","headers"].forEach(P=>{_[P]=S[P]});const T=G.toFiniteNumber(S.headers.get("content-length")),[k,R]=s&&aS(T,rf(sS(s),!0))||[];S=new Response(cS(S.body,uS,k,()=>{R&&R(),y&&y()}),_)}c=c||"text";let w=await of[G.findKey(of,c)||"text"](S,e);return!h&&y&&y(),await new Promise((_,T)=>{p3(_,T,{data:w,headers:Vn.from(S.headers),status:S.status,statusText:S.statusText,config:e,request:m})})}catch(v){throw y&&y(),v&&v.name==="TypeError"&&/fetch/i.test(v.message)?Object.assign(new He("Network Error",He.ERR_NETWORK,e,m),{cause:v.cause||v}):He.from(v,v&&v.code,e,m)}}),Jm={http:lV,xhr:jV,fetch:qV};G.forEach(Jm,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const dS=e=>`- ${e}`,KV=e=>G.isFunction(e)||e===null||e===!1,y3={getAdapter:e=>{e=G.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let i=0;i`adapter ${s} `+(l===!1?"is not supported by the environment":"is not available in the build"));let a=t?i.length>1?`since : +`+i.map(dS).join(` +`):" "+dS(i[0]):"as no adapter specified";throw new He("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return r},adapters:Jm};function Qg(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new js(null,e)}function fS(e){return Qg(e),e.headers=Vn.from(e.headers),e.data=Zg.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),y3.getAdapter(e.adapter||jc.adapter)(e).then(function(r){return Qg(e),r.data=Zg.call(e,e.transformResponse,r),r.headers=Vn.from(r.headers),r},function(r){return f3(r)||(Qg(e),r&&r.response&&(r.response.data=Zg.call(e,e.transformResponse,r.response),r.response.headers=Vn.from(r.response.headers))),Promise.reject(r)})}const b3="1.7.7",ov={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{ov[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const pS={};ov.transitional=function(t,n,r){function o(i,a){return"[Axios v"+b3+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,s)=>{if(t===!1)throw new He(o(a," has been removed"+(n?" in "+n:"")),He.ERR_DEPRECATED);return n&&!pS[a]&&(pS[a]=!0,console.warn(o(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,s):!0}};function ZV(e,t,n){if(typeof e!="object")throw new He("options must be an object",He.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const i=r[o],a=t[i];if(a){const s=e[i],l=s===void 0||a(s,i,e);if(l!==!0)throw new He("option "+i+" must be "+l,He.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new He("Unknown option "+i,He.ERR_BAD_OPTION)}}const e0={assertOptions:ZV,validators:ov},Bo=e0.validators;class qi{constructor(t){this.defaults=t,this.interceptors={request:new oS,response:new oS}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let o;Error.captureStackTrace?Error.captureStackTrace(o={}):o=new Error;const i=o.stack?o.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=ua(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:i}=n;r!==void 0&&e0.assertOptions(r,{silentJSONParsing:Bo.transitional(Bo.boolean),forcedJSONParsing:Bo.transitional(Bo.boolean),clarifyTimeoutError:Bo.transitional(Bo.boolean)},!1),o!=null&&(G.isFunction(o)?n.paramsSerializer={serialize:o}:e0.assertOptions(o,{encode:Bo.function,serialize:Bo.function},!0)),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&G.merge(i.common,i[n.method]);i&&G.forEach(["delete","get","head","post","put","patch","common"],m=>{delete i[m]}),n.headers=Vn.concat(a,i);const s=[];let l=!0;this.interceptors.request.forEach(function(y){typeof y.runWhen=="function"&&y.runWhen(n)===!1||(l=l&&y.synchronous,s.unshift(y.fulfilled,y.rejected))});const c=[];this.interceptors.response.forEach(function(y){c.push(y.fulfilled,y.rejected)});let u,d=0,f;if(!l){const m=[fS.bind(this),void 0];for(m.unshift.apply(m,s),m.push.apply(m,c),f=m.length,u=Promise.resolve(n);d{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](o);r._listeners=null}),this.promise.then=o=>{let i;const a=new Promise(s=>{r.subscribe(s),i=s}).then(o);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,s){r.reason||(r.reason=new js(i,a,s),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new iv(function(o){t=o}),cancel:t}}}function QV(e){return function(n){return e.apply(null,n)}}function YV(e){return G.isObject(e)&&e.isAxiosError===!0}const t0={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(t0).forEach(([e,t])=>{t0[t]=e});function x3(e){const t=new qi(e),n=YR(qi.prototype.request,t);return G.extend(n,qi.prototype,t,{allOwnKeys:!0}),G.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return x3(ua(e,o))},n}const zt=x3(jc);zt.Axios=qi;zt.CanceledError=js;zt.CancelToken=iv;zt.isCancel=f3;zt.VERSION=b3;zt.toFormData=Op;zt.AxiosError=He;zt.Cancel=zt.CanceledError;zt.all=function(t){return Promise.all(t)};zt.spread=QV;zt.isAxiosError=YV;zt.mergeConfig=ua;zt.AxiosHeaders=Vn;zt.formToJSON=e=>d3(G.isHTMLForm(e)?new FormData(e):e);zt.getAdapter=y3.getAdapter;zt.HttpStatusCode=t0;zt.default=zt;var XV=Error,JV=EvalError,eW=RangeError,tW=ReferenceError,S3=SyntaxError,Fc=TypeError,nW=URIError,rW=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},n=Symbol("test"),r=Object(n);if(typeof n=="string"||Object.prototype.toString.call(n)!=="[object Symbol]"||Object.prototype.toString.call(r)!=="[object Symbol]")return!1;var o=42;t[n]=o;for(n in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var i=Object.getOwnPropertySymbols(t);if(i.length!==1||i[0]!==n||!Object.prototype.propertyIsEnumerable.call(t,n))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var a=Object.getOwnPropertyDescriptor(t,n);if(a.value!==o||a.enumerable!==!0)return!1}return!0},gS=typeof Symbol<"u"&&Symbol,oW=rW,iW=function(){return typeof gS!="function"||typeof Symbol!="function"||typeof gS("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:oW()},Yg={__proto__:null,foo:{}},aW=Object,sW=function(){return{__proto__:Yg}.foo===Yg.foo&&!(Yg instanceof aW)},lW="Function.prototype.bind called on incompatible ",cW=Object.prototype.toString,uW=Math.max,dW="[object Function]",hS=function(t,n){for(var r=[],o=0;o"u"||!Yt?Qe:Yt(Uint8Array),Zi={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Qe:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Qe:ArrayBuffer,"%ArrayIteratorPrototype%":Ta&&Yt?Yt([][Symbol.iterator]()):Qe,"%AsyncFromSyncIteratorPrototype%":Qe,"%AsyncFunction%":$a,"%AsyncGenerator%":$a,"%AsyncGeneratorFunction%":$a,"%AsyncIteratorPrototype%":$a,"%Atomics%":typeof Atomics>"u"?Qe:Atomics,"%BigInt%":typeof BigInt>"u"?Qe:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Qe:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Qe:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Qe:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":xW,"%eval%":eval,"%EvalError%":SW,"%Float32Array%":typeof Float32Array>"u"?Qe:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Qe:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Qe:FinalizationRegistry,"%Function%":w3,"%GeneratorFunction%":$a,"%Int8Array%":typeof Int8Array>"u"?Qe:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Qe:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Qe:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Ta&&Yt?Yt(Yt([][Symbol.iterator]())):Qe,"%JSON%":typeof JSON=="object"?JSON:Qe,"%Map%":typeof Map>"u"?Qe:Map,"%MapIteratorPrototype%":typeof Map>"u"||!Ta||!Yt?Qe:Yt(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Qe:Promise,"%Proxy%":typeof Proxy>"u"?Qe:Proxy,"%RangeError%":wW,"%ReferenceError%":CW,"%Reflect%":typeof Reflect>"u"?Qe:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Qe:Set,"%SetIteratorPrototype%":typeof Set>"u"||!Ta||!Yt?Qe:Yt(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Qe:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Ta&&Yt?Yt(""[Symbol.iterator]()):Qe,"%Symbol%":Ta?Symbol:Qe,"%SyntaxError%":Rs,"%ThrowTypeError%":RW,"%TypedArray%":PW,"%TypeError%":os,"%Uint8Array%":typeof Uint8Array>"u"?Qe:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Qe:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Qe:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Qe:Uint32Array,"%URIError%":_W,"%WeakMap%":typeof WeakMap>"u"?Qe:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Qe:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Qe:WeakSet};if(Yt)try{null.error}catch(e){var kW=Yt(Yt(e));Zi["%Error.prototype%"]=kW}var $W=function e(t){var n;if(t==="%AsyncFunction%")n=Xg("async function () {}");else if(t==="%GeneratorFunction%")n=Xg("function* () {}");else if(t==="%AsyncGeneratorFunction%")n=Xg("async function* () {}");else if(t==="%AsyncGenerator%"){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if(t==="%AsyncIteratorPrototype%"){var o=e("%AsyncGenerator%");o&&Yt&&(n=Yt(o.prototype))}return Zi[t]=n,n},mS={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Bc=av,af=bW,EW=Bc.call(Function.call,Array.prototype.concat),MW=Bc.call(Function.apply,Array.prototype.splice),vS=Bc.call(Function.call,String.prototype.replace),sf=Bc.call(Function.call,String.prototype.slice),IW=Bc.call(Function.call,RegExp.prototype.exec),OW=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,LW=/\\(\\)?/g,NW=function(t){var n=sf(t,0,1),r=sf(t,-1);if(n==="%"&&r!=="%")throw new Rs("invalid intrinsic syntax, expected closing `%`");if(r==="%"&&n!=="%")throw new Rs("invalid intrinsic syntax, expected opening `%`");var o=[];return vS(t,OW,function(i,a,s,l){o[o.length]=s?vS(l,LW,"$1"):a||i}),o},AW=function(t,n){var r=t,o;if(af(mS,r)&&(o=mS[r],r="%"+o[0]+"%"),af(Zi,r)){var i=Zi[r];if(i===$a&&(i=$W(r)),typeof i>"u"&&!n)throw new os("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:o,name:r,value:i}}throw new Rs("intrinsic "+t+" does not exist!")},Fs=function(t,n){if(typeof t!="string"||t.length===0)throw new os("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof n!="boolean")throw new os('"allowMissing" argument must be a boolean');if(IW(/^%?[^%]*%?$/,t)===null)throw new Rs("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=NW(t),o=r.length>0?r[0]:"",i=AW("%"+o+"%",n),a=i.name,s=i.value,l=!1,c=i.alias;c&&(o=c[0],MW(r,EW([0,1],c)));for(var u=1,d=!0;u=r.length){var y=Ki(s,f);d=!!y,d&&"get"in y&&!("originalValue"in y.get)?s=y.get:s=s[f]}else d=af(s,f),s=s[f];d&&!l&&(Zi[a]=s)}}return s},C3={exports:{}},eh,yS;function sv(){if(yS)return eh;yS=1;var e=Fs,t=e("%Object.defineProperty%",!0)||!1;if(t)try{t({},"a",{value:1})}catch{t=!1}return eh=t,eh}var DW=Fs,id=DW("%Object.getOwnPropertyDescriptor%",!0);if(id)try{id([],"length")}catch{id=null}var _3=id,bS=sv(),jW=S3,Pa=Fc,xS=_3,FW=function(t,n,r){if(!t||typeof t!="object"&&typeof t!="function")throw new Pa("`obj` must be an object or a function`");if(typeof n!="string"&&typeof n!="symbol")throw new Pa("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new Pa("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new Pa("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new Pa("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new Pa("`loose`, if provided, must be a boolean");var o=arguments.length>3?arguments[3]:null,i=arguments.length>4?arguments[4]:null,a=arguments.length>5?arguments[5]:null,s=arguments.length>6?arguments[6]:!1,l=!!xS&&xS(t,n);if(bS)bS(t,n,{configurable:a===null&&l?l.configurable:!a,enumerable:o===null&&l?l.enumerable:!o,value:r,writable:i===null&&l?l.writable:!i});else if(s||!o&&!i&&!a)t[n]=r;else throw new jW("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},n0=sv(),R3=function(){return!!n0};R3.hasArrayLengthDefineBug=function(){if(!n0)return null;try{return n0([],"length",{value:1}).length!==1}catch{return!0}};var BW=R3,zW=Fs,SS=FW,HW=BW(),wS=_3,CS=Fc,VW=zW("%Math.floor%"),WW=function(t,n){if(typeof t!="function")throw new CS("`fn` is not a function");if(typeof n!="number"||n<0||n>4294967295||VW(n)!==n)throw new CS("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],o=!0,i=!0;if("length"in t&&wS){var a=wS(t,"length");a&&!a.configurable&&(o=!1),a&&!a.writable&&(i=!1)}return(o||i||!r)&&(HW?SS(t,"length",n,!0,!0):SS(t,"length",n)),t};(function(e){var t=av,n=Fs,r=WW,o=Fc,i=n("%Function.prototype.apply%"),a=n("%Function.prototype.call%"),s=n("%Reflect.apply%",!0)||t.call(a,i),l=sv(),c=n("%Math.max%");e.exports=function(f){if(typeof f!="function")throw new o("a function is required");var g=s(t,a,arguments);return r(g,1+c(0,f.length-(arguments.length-1)),!0)};var u=function(){return s(t,i,arguments)};l?l(e.exports,"apply",{value:u}):e.exports.apply=u})(C3);var UW=C3.exports,T3=Fs,P3=UW,GW=P3(T3("String.prototype.indexOf")),qW=function(t,n){var r=T3(t,!!n);return typeof r=="function"&&GW(t,".prototype.")>-1?P3(r):r};const KW={},ZW=Object.freeze(Object.defineProperty({__proto__:null,default:KW},Symbol.toStringTag,{value:"Module"})),QW=X3(ZW);var lv=typeof Map=="function"&&Map.prototype,th=Object.getOwnPropertyDescriptor&&lv?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,lf=lv&&th&&typeof th.get=="function"?th.get:null,_S=lv&&Map.prototype.forEach,cv=typeof Set=="function"&&Set.prototype,nh=Object.getOwnPropertyDescriptor&&cv?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,cf=cv&&nh&&typeof nh.get=="function"?nh.get:null,RS=cv&&Set.prototype.forEach,YW=typeof WeakMap=="function"&&WeakMap.prototype,Bl=YW?WeakMap.prototype.has:null,XW=typeof WeakSet=="function"&&WeakSet.prototype,zl=XW?WeakSet.prototype.has:null,JW=typeof WeakRef=="function"&&WeakRef.prototype,TS=JW?WeakRef.prototype.deref:null,eU=Boolean.prototype.valueOf,tU=Object.prototype.toString,nU=Function.prototype.toString,rU=String.prototype.match,uv=String.prototype.slice,ri=String.prototype.replace,oU=String.prototype.toUpperCase,PS=String.prototype.toLowerCase,k3=RegExp.prototype.test,kS=Array.prototype.concat,to=Array.prototype.join,iU=Array.prototype.slice,$S=Math.floor,r0=typeof BigInt=="function"?BigInt.prototype.valueOf:null,rh=Object.getOwnPropertySymbols,o0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,Ts=typeof Symbol=="function"&&typeof Symbol.iterator=="object",Cn=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===Ts||!0)?Symbol.toStringTag:null,$3=Object.prototype.propertyIsEnumerable,ES=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function MS(e,t){if(e===1/0||e===-1/0||e!==e||e&&e>-1e3&&e<1e3||k3.call(/e/,t))return t;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof e=="number"){var r=e<0?-$S(-e):$S(e);if(r!==e){var o=String(r),i=uv.call(t,o.length+1);return ri.call(o,n,"$&_")+"."+ri.call(ri.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return ri.call(t,n,"$&_")}var i0=QW,IS=i0.custom,OS=I3(IS)?IS:null,E3={__proto__:null,double:'"',single:"'"},aU={__proto__:null,double:/(["\\])/g,single:/(['\\])/g},sU=function e(t,n,r,o){var i=n||{};if(yo(i,"quoteStyle")&&!yo(E3,i.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(yo(i,"maxStringLength")&&(typeof i.maxStringLength=="number"?i.maxStringLength<0&&i.maxStringLength!==1/0:i.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var a=yo(i,"customInspect")?i.customInspect:!0;if(typeof a!="boolean"&&a!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(yo(i,"indent")&&i.indent!==null&&i.indent!==" "&&!(parseInt(i.indent,10)===i.indent&&i.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(yo(i,"numericSeparator")&&typeof i.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var s=i.numericSeparator;if(typeof t>"u")return"undefined";if(t===null)return"null";if(typeof t=="boolean")return t?"true":"false";if(typeof t=="string")return L3(t,i);if(typeof t=="number"){if(t===0)return 1/0/t>0?"0":"-0";var l=String(t);return s?MS(t,l):l}if(typeof t=="bigint"){var c=String(t)+"n";return s?MS(t,c):c}var u=typeof i.depth>"u"?5:i.depth;if(typeof r>"u"&&(r=0),r>=u&&u>0&&typeof t=="object")return a0(t)?"[Array]":"[Object]";var d=RU(i,r);if(typeof o>"u")o=[];else if(O3(o,t)>=0)return"[Circular]";function f(O,D,M){if(D&&(o=iU.call(o),o.push(D)),M){var N={depth:i.depth};return yo(i,"quoteStyle")&&(N.quoteStyle=i.quoteStyle),e(O,N,r+1,o)}return e(O,i,r+1,o)}if(typeof t=="function"&&!LS(t)){var g=mU(t),m=Pu(t,f);return"[Function"+(g?": "+g:" (anonymous)")+"]"+(m.length>0?" { "+to.call(m,", ")+" }":"")}if(I3(t)){var y=Ts?ri.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):o0.call(t);return typeof t=="object"&&!Ts?ul(y):y}if(wU(t)){for(var C="<"+PS.call(String(t.nodeName)),v=t.attributes||[],S=0;S",C}if(a0(t)){if(t.length===0)return"[]";var h=Pu(t,f);return d&&!_U(h)?"["+s0(h,d)+"]":"[ "+to.call(h,", ")+" ]"}if(uU(t)){var w=Pu(t,f);return!("cause"in Error.prototype)&&"cause"in t&&!$3.call(t,"cause")?"{ ["+String(t)+"] "+to.call(kS.call("[cause]: "+f(t.cause),w),", ")+" }":w.length===0?"["+String(t)+"]":"{ ["+String(t)+"] "+to.call(w,", ")+" }"}if(typeof t=="object"&&a){if(OS&&typeof t[OS]=="function"&&i0)return i0(t,{depth:u-r});if(a!=="symbol"&&typeof t.inspect=="function")return t.inspect()}if(vU(t)){var _=[];return _S&&_S.call(t,function(O,D){_.push(f(D,t,!0)+" => "+f(O,t))}),NS("Map",lf.call(t),_,d)}if(xU(t)){var T=[];return RS&&RS.call(t,function(O){T.push(f(O,t))}),NS("Set",cf.call(t),T,d)}if(yU(t))return oh("WeakMap");if(SU(t))return oh("WeakSet");if(bU(t))return oh("WeakRef");if(fU(t))return ul(f(Number(t)));if(gU(t))return ul(f(r0.call(t)));if(pU(t))return ul(eU.call(t));if(dU(t))return ul(f(String(t)));if(typeof window<"u"&&t===window)return"{ [object Window] }";if(typeof globalThis<"u"&&t===globalThis||typeof Vl<"u"&&t===Vl)return"{ [object globalThis] }";if(!cU(t)&&!LS(t)){var k=Pu(t,f),R=ES?ES(t)===Object.prototype:t instanceof Object||t.constructor===Object,P=t instanceof Object?"":"null prototype",x=!R&&Cn&&Object(t)===t&&Cn in t?uv.call(Ti(t),8,-1):P?"Object":"",$=R||typeof t.constructor!="function"?"":t.constructor.name?t.constructor.name+" ":"",I=$+(x||P?"["+to.call(kS.call([],x||[],P||[]),": ")+"] ":"");return k.length===0?I+"{}":d?I+"{"+s0(k,d)+"}":I+"{ "+to.call(k,", ")+" }"}return String(t)};function M3(e,t,n){var r=n.quoteStyle||t,o=E3[r];return o+e+o}function lU(e){return ri.call(String(e),/"/g,""")}function a0(e){return Ti(e)==="[object Array]"&&(!Cn||!(typeof e=="object"&&Cn in e))}function cU(e){return Ti(e)==="[object Date]"&&(!Cn||!(typeof e=="object"&&Cn in e))}function LS(e){return Ti(e)==="[object RegExp]"&&(!Cn||!(typeof e=="object"&&Cn in e))}function uU(e){return Ti(e)==="[object Error]"&&(!Cn||!(typeof e=="object"&&Cn in e))}function dU(e){return Ti(e)==="[object String]"&&(!Cn||!(typeof e=="object"&&Cn in e))}function fU(e){return Ti(e)==="[object Number]"&&(!Cn||!(typeof e=="object"&&Cn in e))}function pU(e){return Ti(e)==="[object Boolean]"&&(!Cn||!(typeof e=="object"&&Cn in e))}function I3(e){if(Ts)return e&&typeof e=="object"&&e instanceof Symbol;if(typeof e=="symbol")return!0;if(!e||typeof e!="object"||!o0)return!1;try{return o0.call(e),!0}catch{}return!1}function gU(e){if(!e||typeof e!="object"||!r0)return!1;try{return r0.call(e),!0}catch{}return!1}var hU=Object.prototype.hasOwnProperty||function(e){return e in this};function yo(e,t){return hU.call(e,t)}function Ti(e){return tU.call(e)}function mU(e){if(e.name)return e.name;var t=rU.call(nU.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}function O3(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;nt.maxStringLength){var n=e.length-t.maxStringLength,r="... "+n+" more character"+(n>1?"s":"");return L3(uv.call(e,0,t.maxStringLength),t)+r}var o=aU[t.quoteStyle||"single"];o.lastIndex=0;var i=ri.call(ri.call(e,o,"\\$1"),/[\x00-\x1f]/g,CU);return M3(i,"single",t)}function CU(e){var t=e.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return n?"\\"+n:"\\x"+(t<16?"0":"")+oU.call(t.toString(16))}function ul(e){return"Object("+e+")"}function oh(e){return e+" { ? }"}function NS(e,t,n,r){var o=r?s0(n,r):to.call(n,", ");return e+" ("+t+") {"+o+"}"}function _U(e){for(var t=0;t=0)return!1;return!0}function RU(e,t){var n;if(e.indent===" ")n=" ";else if(typeof e.indent=="number"&&e.indent>0)n=to.call(Array(e.indent+1)," ");else return null;return{base:n,prev:to.call(Array(t+1),n)}}function s0(e,t){if(e.length===0)return"";var n=` +`+t.prev+t.base;return n+to.call(e,","+n)+` +`+t.prev}function Pu(e,t){var n=a0(e),r=[];if(n){r.length=e.length;for(var o=0;o1;){var n=t.pop(),r=n.obj[n.prop];if(Ni(r)){for(var o=[],i=0;i=sh?a.slice(l,l+sh):a,u=[],d=0;d=48&&f<=57||f>=65&&f<=90||f>=97&&f<=122||i===BU.RFC1738&&(f===40||f===41)){u[u.length]=c.charAt(d);continue}if(f<128){u[u.length]=Qr[f];continue}if(f<2048){u[u.length]=Qr[192|f>>6]+Qr[128|f&63];continue}if(f<55296||f>=57344){u[u.length]=Qr[224|f>>12]+Qr[128|f>>6&63]+Qr[128|f&63];continue}d+=1,f=65536+((f&1023)<<10|c.charCodeAt(d)&1023),u[u.length]=Qr[240|f>>18]+Qr[128|f>>12&63]+Qr[128|f>>6&63]+Qr[128|f&63]}s+=u.join("")}return s},GU=function(t){for(var n=[{obj:{o:t},prop:"o"}],r=[],o=0;o"u"&&(_=0)}if(typeof u=="function"?h=u(n,h):h instanceof Date?h=g(h):r==="comma"&&Xr(h)&&(h=ad.maybeMap(h,function(B){return B instanceof Date?g(B):B})),h===null){if(a)return c&&!C?c(n,Ut.encoder,v,"key",m):n;h=""}if(eG(h)||ad.isBuffer(h)){if(c){var R=C?n:c(n,Ut.encoder,v,"key",m);return[y(R)+"="+y(c(h,Ut.encoder,v,"value",m))]}return[y(n)+"="+y(String(h))]}var P=[];if(typeof h>"u")return P;var x;if(r==="comma"&&Xr(h))C&&c&&(h=ad.maybeMap(h,c)),x=[{value:h.length>0?h.join(",")||null:void 0}];else if(Xr(u))x=u;else{var $=Object.keys(h);x=d?$.sort(d):$}var I=l?n.replace(/\./g,"%2E"):n,O=o&&Xr(h)&&h.length===1?I+"[]":I;if(i&&Xr(h)&&h.length===0)return O+"[]";for(var D=0;D"u"?t.encodeDotInKeys===!0?!0:Ut.allowDots:!!t.allowDots;return{addQueryPrefix:typeof t.addQueryPrefix=="boolean"?t.addQueryPrefix:Ut.addQueryPrefix,allowDots:s,allowEmptyArrays:typeof t.allowEmptyArrays=="boolean"?!!t.allowEmptyArrays:Ut.allowEmptyArrays,arrayFormat:a,charset:n,charsetSentinel:typeof t.charsetSentinel=="boolean"?t.charsetSentinel:Ut.charsetSentinel,commaRoundTrip:t.commaRoundTrip,delimiter:typeof t.delimiter>"u"?Ut.delimiter:t.delimiter,encode:typeof t.encode=="boolean"?t.encode:Ut.encode,encodeDotInKeys:typeof t.encodeDotInKeys=="boolean"?t.encodeDotInKeys:Ut.encodeDotInKeys,encoder:typeof t.encoder=="function"?t.encoder:Ut.encoder,encodeValuesOnly:typeof t.encodeValuesOnly=="boolean"?t.encodeValuesOnly:Ut.encodeValuesOnly,filter:i,format:r,formatter:o,serializeDate:typeof t.serializeDate=="function"?t.serializeDate:Ut.serializeDate,skipNulls:typeof t.skipNulls=="boolean"?t.skipNulls:Ut.skipNulls,sort:typeof t.sort=="function"?t.sort:null,strictNullHandling:typeof t.strictNullHandling=="boolean"?t.strictNullHandling:Ut.strictNullHandling}},rG=function(e,t){var n=e,r=nG(t),o,i;typeof r.filter=="function"?(i=r.filter,n=i("",n)):Xr(r.filter)&&(i=r.filter,o=i);var a=[];if(typeof n!="object"||n===null)return"";var s=F3[r.arrayFormat],l=s==="comma"&&r.commaRoundTrip;o||(o=Object.keys(n)),r.sort&&o.sort(r.sort);for(var c=j3(),u=0;u0?g+f:""},Ps=D3,l0=Object.prototype.hasOwnProperty,oG=Array.isArray,Et={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:Ps.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1},iG=function(e){return e.replace(/&#(\d+);/g,function(t,n){return String.fromCharCode(parseInt(n,10))})},z3=function(e,t){return e&&typeof e=="string"&&t.comma&&e.indexOf(",")>-1?e.split(","):e},aG="utf8=%26%2310003%3B",sG="utf8=%E2%9C%93",lG=function(t,n){var r={__proto__:null},o=n.ignoreQueryPrefix?t.replace(/^\?/,""):t;o=o.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var i=n.parameterLimit===1/0?void 0:n.parameterLimit,a=o.split(n.delimiter,i),s=-1,l,c=n.charset;if(n.charsetSentinel)for(l=0;l-1&&(m=oG(m)?[m]:m);var y=l0.call(r,g);y&&n.duplicates==="combine"?r[g]=Ps.combine(r[g],m):(!y||n.duplicates==="last")&&(r[g]=m)}return r},cG=function(e,t,n,r){for(var o=r?t:z3(t,n),i=e.length-1;i>=0;--i){var a,s=e[i];if(s==="[]"&&n.parseArrays)a=n.allowEmptyArrays&&(o===""||n.strictNullHandling&&o===null)?[]:[].concat(o);else{a=n.plainObjects?Object.create(null):{};var l=s.charAt(0)==="["&&s.charAt(s.length-1)==="]"?s.slice(1,-1):s,c=n.decodeDotInKeys?l.replace(/%2E/g,"."):l,u=parseInt(c,10);!n.parseArrays&&c===""?a={0:o}:!isNaN(u)&&s!==c&&String(u)===c&&u>=0&&n.parseArrays&&u<=n.arrayLimit?(a=[],a[u]=o):c!=="__proto__"&&(a[c]=o)}o=a}return o},uG=function(t,n,r,o){if(t){var i=r.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,a=/(\[[^[\]]*])/,s=/(\[[^[\]]*])/g,l=r.depth>0&&a.exec(i),c=l?i.slice(0,l.index):i,u=[];if(c){if(!r.plainObjects&&l0.call(Object.prototype,c)&&!r.allowPrototypes)return;u.push(c)}for(var d=0;r.depth>0&&(l=s.exec(i))!==null&&d"u"?Et.charset:t.charset,r=typeof t.duplicates>"u"?Et.duplicates:t.duplicates;if(r!=="combine"&&r!=="first"&&r!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var o=typeof t.allowDots>"u"?t.decodeDotInKeys===!0?!0:Et.allowDots:!!t.allowDots;return{allowDots:o,allowEmptyArrays:typeof t.allowEmptyArrays=="boolean"?!!t.allowEmptyArrays:Et.allowEmptyArrays,allowPrototypes:typeof t.allowPrototypes=="boolean"?t.allowPrototypes:Et.allowPrototypes,allowSparse:typeof t.allowSparse=="boolean"?t.allowSparse:Et.allowSparse,arrayLimit:typeof t.arrayLimit=="number"?t.arrayLimit:Et.arrayLimit,charset:n,charsetSentinel:typeof t.charsetSentinel=="boolean"?t.charsetSentinel:Et.charsetSentinel,comma:typeof t.comma=="boolean"?t.comma:Et.comma,decodeDotInKeys:typeof t.decodeDotInKeys=="boolean"?t.decodeDotInKeys:Et.decodeDotInKeys,decoder:typeof t.decoder=="function"?t.decoder:Et.decoder,delimiter:typeof t.delimiter=="string"||Ps.isRegExp(t.delimiter)?t.delimiter:Et.delimiter,depth:typeof t.depth=="number"||t.depth===!1?+t.depth:Et.depth,duplicates:r,ignoreQueryPrefix:t.ignoreQueryPrefix===!0,interpretNumericEntities:typeof t.interpretNumericEntities=="boolean"?t.interpretNumericEntities:Et.interpretNumericEntities,parameterLimit:typeof t.parameterLimit=="number"?t.parameterLimit:Et.parameterLimit,parseArrays:t.parseArrays!==!1,plainObjects:typeof t.plainObjects=="boolean"?t.plainObjects:Et.plainObjects,strictDepth:typeof t.strictDepth=="boolean"?!!t.strictDepth:Et.strictDepth,strictNullHandling:typeof t.strictNullHandling=="boolean"?t.strictNullHandling:Et.strictNullHandling}},fG=function(e,t){var n=dG(t);if(e===""||e===null||typeof e>"u")return n.plainObjects?Object.create(null):{};for(var r=typeof e=="string"?lG(e,n):e,o=n.plainObjects?Object.create(null):{},i=Object.keys(r),a=0;a{if(ch.has(uh))return ch.get(uh);const t=vG.parse(window.location.search,{ignoreQueryPrefix:!0}).debug==="true";return ch.set(uh,t),t},yG=`{ + "nodes_info": [ + { + "identifier": 1, + "connected": null, + "infos": { + "has_error": false, + "error_reason": "", + "name": "querynode1", + "hardware_infos": { + "ip": "172.18.20.7:21123", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "system_info": { + "system_version": "34cf5352ec", + "deploy_mode": "STANDALONE[MOCK]", + "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", + "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", + "used_go_version": "go version go1.22.3 darwin/amd64" + }, + "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", + "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", + "type": "querynode", + "id": 1, + "system_configurations": { + "simd_type": "auto" + }, + "quota_metrics": { + "Hms": { + "ip": "172.18.20.7:21123", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "Rms": [ + { + "Label": "InsertConsumeThroughput", + "Rate": 0 + }, + { + "Label": "DeleteConsumeThroughput", + "Rate": 0 + } + ], + "Fgm": { + "MinFlowGraphChannel": "", + "MinFlowGraphTt": 18446744073709551615, + "NumFlowGraph": 0 + }, + "GrowingSegmentsSize": 0, + "Effect": { + "NodeID": 1, + "CollectionIDs": [] + }, + "DeleteBufferInfo": { + "CollectionDeleteBufferNum": {}, + "CollectionDeleteBufferSize": {} + } + }, + "collection_metrics": { + "CollectionRows": {} + } + } + }, + { + "identifier": 1, + "connected": [ + { + "connected_identifier": 1, + "type": "manage", + "target_type": "querynode" + } + ], + "infos": { + "has_error": false, + "error_reason": "", + "name": "querycoord1", + "hardware_infos": { + "ip": "172.18.20.7:19531", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "system_info": { + "system_version": "34cf5352ec", + "deploy_mode": "STANDALONE[MOCK]", + "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", + "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", + "used_go_version": "go version go1.22.3 darwin/amd64" + }, + "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", + "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", + "type": "querycoord", + "id": 1, + "system_configurations": { + "search_channel_prefix": "", + "search_result_channel_prefix": "" + } + } + }, + { + "identifier": 1, + "connected": null, + "infos": { + "has_error": false, + "error_reason": "", + "name": "datanode1", + "hardware_infos": { + "ip": "172.18.20.7:21124", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "system_info": { + "system_version": "34cf5352ec", + "deploy_mode": "STANDALONE[MOCK]", + "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", + "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", + "used_go_version": "go version go1.22.3 darwin/amd64" + }, + "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", + "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", + "type": "datanode", + "id": 1, + "system_configurations": { + "flush_insert_buffer_size": 16777216 + }, + "quota_metrics": { + "Hms": { + "ip": "172.18.20.7:21124", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "Rms": [ + { + "Label": "InsertConsumeThroughput", + "Rate": 0 + }, + { + "Label": "DeleteConsumeThroughput", + "Rate": 0 + } + ], + "Fgm": { + "MinFlowGraphChannel": "", + "MinFlowGraphTt": 18446744073709551615, + "NumFlowGraph": 0 + }, + "Effect": { + "NodeID": 1, + "CollectionIDs": [] + } + } + } + }, + { + "identifier": 1, + "connected": null, + "infos": { + "has_error": false, + "error_reason": "", + "name": "indexnode1", + "hardware_infos": { + "ip": "172.18.20.7:21121", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "system_info": { + "system_version": "34cf5352ec", + "deploy_mode": "STANDALONE[MOCK]", + "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", + "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", + "used_go_version": "go version go1.22.3 darwin/amd64" + }, + "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", + "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", + "type": "indexnode", + "id": 1, + "system_configurations": { + "minio_bucket_name": "a-bucket", + "simd_type": "auto" + } + } + }, + { + "identifier": 1, + "connected": [ + { + "connected_identifier": 1, + "type": "manage", + "target_type": "datanode" + }, + { + "connected_identifier": 1, + "type": "manage", + "target_type": "indexnode" + } + ], + "infos": { + "has_error": false, + "error_reason": "", + "name": "datacoord1", + "hardware_infos": { + "ip": "172.18.20.7:13333", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "system_info": { + "system_version": "34cf5352ec", + "deploy_mode": "STANDALONE[MOCK]", + "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", + "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", + "used_go_version": "go version go1.22.3 darwin/amd64" + }, + "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", + "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", + "type": "datacoord", + "id": 1, + "system_configurations": { + "segment_max_size": 1024 + }, + "quota_metrics": { + "TotalBinlogSize": 0, + "CollectionBinlogSize": {}, + "PartitionsBinlogSize": {}, + "CollectionL0RowCount": {} + }, + "collection_metrics": { + "Collections": {} + } + } + }, + { + "identifier": 1, + "connected": [], + "infos": { + "has_error": false, + "error_reason": "", + "name": "rootcoord1", + "hardware_infos": { + "ip": "172.18.20.7:53100", + "cpu_core_count": 8, + "cpu_core_usage": 0, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "system_info": { + "system_version": "34cf5352ec", + "deploy_mode": "STANDALONE[MOCK]", + "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", + "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", + "used_go_version": "go version go1.22.3 darwin/amd64" + }, + "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", + "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", + "type": "rootcoord", + "id": 1, + "system_configurations": { + "min_segment_size_to_enable_index": 1024 + } + } + }, + { + "identifier": 1, + "connected": [ + { + "connected_identifier": 1, + "type": "forward", + "target_type": "querycoord" + }, + { + "connected_identifier": 1, + "type": "forward", + "target_type": "datacoord" + }, + { + "connected_identifier": 1, + "type": "forward", + "target_type": "rootcoord" + } + ], + "infos": { + "has_error": false, + "error_reason": "", + "name": "proxy1", + "hardware_infos": { + "ip": "172.18.20.7:19529", + "cpu_core_count": 8, + "cpu_core_usage": 30.52004762940343, + "memory": 34359738368, + "memory_usage": 18362302464, + "disk": 104857600, + "disk_usage": 2097152 + }, + "system_info": { + "system_version": "34cf5352ec", + "deploy_mode": "STANDALONE[MOCK]", + "build_version": "v2.2-testing-20240702-804-g34cf5352ec-dev", + "build_time": "Wed, Oct 23, 2024 13:58:54 UTC", + "used_go_version": "go version go1.22.3 darwin/amd64" + }, + "created_time": "2024-10-23 22:01:45.891414 +0800 CST m=+8.035797839", + "updated_time": "2024-10-23 22:01:45.891415 +0800 CST m=+8.035798239", + "type": "proxy", + "id": 1, + "system_configurations": { + "default_partition_name": "_default", + "default_index_name": "_default_idx" + }, + "quota_metrics": null + } + } + ] +}`,bG=`[ + { + "sdk_type": "python", + "sdk_version": "1.0.0", + "local_time": "2023-10-01T12:00:00Z", + "user": "user1", + "host": "127.0.0.1", + "reserved": { + "last_active_time": "" + } + }, + { + "sdk_type": "golang", + "sdk_version": "1.1.0", + "local_time": "2023-10-01T12:05:00Z", + "user": "user2", + "host": "127.0.0.2", + "reserved": { + "last_active_time": "" + } + } +]`,xG=` +{ + "metastore": { + "health_status": true, + "unhealthy_reason": "", + "members_health": [ + { + "endpoint": "http://127.0.0.1:2379", + "health": true + } + ], + "meta_type": "etcd" + }, + "mq": { + "health_status": false, + "unhealthy_reason": "health check failed, err: Get \\"http://localhost:80/admin/v2/brokers/health\\": dial tcp [::1]:80: connect: connection refused", + "members_health": null, + "mq_type": "pulsar" + } +} +`,SG=` +{ + "MILVUS_GIT_BUILD_TAGS": "v2.2-testing-20240702-811-g38211f2b81-dev", + "MILVUS_GIT_COMMIT": "38211f2b81", + "common.bloomfilterapplybatchsize": "1000", + "common.bloomfiltersize": "100000", + "common.bloomfiltertype": "BlockedBloomFilter", + "common.buildindexthreadpoolratio": "0.75", + "common.defaultindexname": "_default_idx", + "common.defaultpartitionname": "_default", + "common.diskindex.beamwidthratio": "4", + "common.diskindex.buildnumthreadsratio": "1", + "common.diskindex.loadnumthreadratio": "8", + "common.diskindex.maxdegree": "56", + "common.diskindex.pqcodebudgetgbratio": "0.125", + "common.diskindex.searchcachebudgetgbratio": "0.1", + "common.diskindex.searchlistsize": "100", + "common.enablevectorclusteringkey": "false", + "common.entityexpiration": "-1", + "common.gracefulstoptimeout": "1800", + "common.gracefultime": "5000", + "common.indexslicesize": "16", + "common.locks.metrics.enable": "false" +} +`,wG=` +{ + "collection_names": [ + "collection_1", + "collection_2", + "collection_3", + "collection_4", + "collection_5", + "collection_6", + "collection_7", + "collection_8", + "collection_9", + "collection_10" + ], + "collection_ids": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10" + ], + "created_utc_timestamps": [ + "2021-10-01 00:00:00", + "2021-10-02 00:00:00", + "2021-10-03 00:00:00", + "2021-10-04 00:00:00", + "2021-10-05 00:00:00", + "2021-10-06 00:00:00", + "2021-10-07 00:00:00", + "2021-10-08 00:00:00", + "2021-10-09 00:00:00", + "2021-10-10 00:00:00" + ], + "inMemory_percentages": [ + 100, + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "query_service_available": [ + true, + true, + true, + true, + true, + false, + false, + false, + false, + false + ] +} +`,CG=` +{ + "collection_id": "1", + "collection_name": "example_collection", + "created_time": "2021-10-01 00:00:00", + "shards_num": 2, + "consistency_level": "Strong", + "aliases": ["alias1", "alias2"], + "properties": { + "property_key": "property_value" + }, + "db_name": "example_db", + "num_partitions": 3, + "virtual_channel_names": ["v_channel1", "v_channel2"], + "physical_channel_names": ["p_channel1", "p_channel2"], + "partition_infos": [ + { + "partition_name": "partition1", + "partition_id": "1", + "created_utc_timestamp": "2021-10-01 00:00:00" + } + ], + "enable_dynamic_field": true, + "fields": [ + { + "field_id": "1", + "name": "field1", + "is_primary_key": true, + "description": "description1", + "data_type": "int64", + "type_params": { + "param_key": "param_value" + }, + "index_params": { + "index_key": "index_value" + }, + "auto_id": false, + "element_type": "element_type1", + "default_value": "default_value1", + "is_dynamic": false, + "is_partition_key": false, + "is_clustering_key": false, + "nullable": true, + "is_function_output": false + } + ] +} +`,_G=` +{ + "db_names": [ + "database_1", + "database_2", + "database_3", + "database_4", + "database_5", + "database_6", + "database_7", + "database_8", + "database_9", + "database_10" + ], + "db_ids": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10" + ], + "created_timestamps": [ + "2021-10-01 00:00:00", + "2021-10-02 00:00:00", + "2021-10-03 00:00:00", + "2021-10-04 00:00:00", + "2021-10-05 00:00:00", + "2021-10-06 00:00:00", + "2021-10-07 00:00:00", + "2021-10-08 00:00:00", + "2021-10-09 00:00:00", + "2021-10-10 00:00:00" + ] +} +`,RG=` +{ + "db_name": "example_db", + "db_id": 1, + "created_timestamp": "2021-10-01 00:00:00", + "properties": [ + { + "key": "property_key", + "value": "property_value" + } + ] +} +`,TG=` +[ + { + "collection_id": 1, + "segments": [ + { + "segment_id": 1, + "collection_id": 1, + "partition_id": 1, + "channel": "channel1", + "num_of_rows": 1000, + "state": "Sealed", + "is_importing": false, + "compacted": false, + "level": "L0", + "is_sorted": true, + "node_id": 1, + "is_invisible": false, + "loaded_timestamp": "2021-10-01 00:00:00", + "index": [ + { + "field_id": 1, + "index_id": 1, + "build_id": 1, + "index_size": 1024, + "is_loaded": true + } + ], + "resource_group": "rg1", + "loaded_insert_row_count": 1000, + "mem_size": 2048 + } + ], + "dm_channels": [ + { + "node_id": 1, + "version": 1, + "collection_id": 1, + "channel_name": "channel1", + "unflushed_segment_ids": [ + "1" + ], + "flushed_segment_ids": [ + "2" + ], + "dropped_segment_ids": [ + "3" + ], + "level_zero_segment_ids": [ + "4" + ] + } + ] + } +] +`,PG=` +[ + { + "collection_id": 1, + "segments": [ + { + "segment_id": 2, + "collection_id": 1, + "partition_id": 1, + "channel": "channel2", + "num_of_rows": 1000, + "state": "Sealed", + "is_importing": false, + "compacted": false, + "level": "L0", + "is_sorted": true, + "node_id": 1, + "is_invisible": false, + "loaded_timestamp": 1633072800, + "index": [ + { + "field_id": 1, + "index_id": 1, + "build_id": 1, + "index_size": 1024, + "is_loaded": true + } + ], + "resource_group": "rg1", + "loaded_insert_row_count": 1000, + "mem_size": 2048 + } + ] + } +] +`,kG=` +{ + "segments": [ + { + "segment_id": 1, + "collection_id": 1, + "partition_id": 1, + "channel": "channel1", + "num_of_rows": 1000, + "state": "Sealed", + "is_importing": false, + "compacted": false, + "level": "L0", + "is_sorted": true, + "node_id": 1, + "is_invisible": false, + "loaded_timestamp": "2021-10-01 00:00:00", + "index": [ + { + "field_id": 1, + "index_id": 1, + "build_id": 1, + "index_size": 1024, + "is_loaded": true + } + ], + "resource_group": "rg1", + "loaded_insert_row_count": 1000, + "mem_size": 2048, + "flushed_rows": 1000, + "sync_buffer_rows": 0, + "syncing_rows": 0 + } + ], + "dm_channels": [ + { + "node_id": 1, + "version": 1, + "collection_id": 1, + "channel_name": "channel1", + "unflushed_segment_ids": ["1"], + "flushed_segment_ids": ["2"], + "dropped_segment_ids": ["3"], + "level_zero_segment_ids": ["4"], + "partition_stats_versions": { + "1": 1 + }, + "watch_state": "Healthy", + "start_watch_ts": "2021-10-01 00:00:00" + } + ], + "leader_views": [ + { + "leader_id": 1, + "collection_id": 1, + "node_id": 1, + "channel": "channel1", + "version": 1, + "sealed_segments": [ + { + "segment_id": 1, + "collection_id": 1, + "partition_id": 1, + "channel": "channel1", + "num_of_rows": 1000, + "state": "Sealed", + "is_importing": false, + "compacted": false, + "level": "L0", + "is_sorted": true, + "node_id": 1, + "is_invisible": false, + "loaded_timestamp": "2021-10-01 00:00:00", + "index": [ + { + "field_id": 1, + "index_id": 1, + "build_id": 1, + "index_size": 1024, + "is_loaded": true + } + ], + "resource_group": "rg1", + "loaded_insert_row_count": 1000, + "mem_size": 2048, + "flushed_rows": 1000, + "sync_buffer_rows": 0, + "syncing_rows": 0 + } + ], + "growing_segments": [], + "target_version": 1, + "num_of_growing_rows": 0, + "unserviceable_error": "" + } + ] +} +`,$G=` +[ + { + "ID": 1, + "collectionID": 1, + "rw_nodes": [1, 2], + "resource_group": "rg1", + "ro_nodes": [3], + "channel_to_rw_nodes": { + "channel1": [1, 2] + } + }, + { + "ID": 2, + "collectionID": 2, + "rw_nodes": [4, 5], + "resource_group": "rg2", + "ro_nodes": [6], + "channel_to_rw_nodes": { + "channel2": [4, 5] + } + } +] +`,EG=` +[ + { + "name": "rg1", + "nodes": [1, 2], + "cfg": { + "requests":{}, + "limits":{"node_num":1000000} + } + }, + { + "name": "rg2", + "nodes": [3, 4] + } +] +`,MG=` +[ + { + "task_name": "balance_checker-ChannelTask[1]-ch1", + "collection_id": 67890, + "replica_id": 11111, + "task_type": "Move", + "task_status": "started", + "priority": "Normal", + "actions": [ + "type:Grow node id : 1 channel name:channel_1" + ], + "step": 1, + "reason": "" + }, + { + "task_name": "index_checker-SegmentTask[2]-54321", + "collection_id": 12345, + "replica_id": 22222, + "task_type": "Grow", + "task_status": "completed", + "priority": "High", + "actions": [ + "type:Grow node id: 2 segment id:123 scope:DataScope_Streaming" + ], + "step": 2, + "reason": "" + }, + { + "task_name": "leader_checker-LeaderSegmentTask[3]-1", + "collection_id": 54321, + "replica_id": 33333, + "task_type": "Grow", + "task_status": "failed", + "priority": "Low", + "actions": [ + "type:Grow node id: 3 leader id:456 segment id:789 version:1" + ], + "step": 3, + "reason": "yet another reason" + } +] +`,IG=` +[ + { + "segment_id": 1, + "collection_id": 1, + "partition_id": 1, + "channel": "channel1", + "num_of_rows": 1000, + "state": "Sealed", + "is_importing": false, + "compacted": false, + "level": "L1", + "is_sorted": true, + "node_id": 1, + "is_invisible": false, + "loaded_timestamp": "2021-10-01 00:00:00", + "index": [ + { + "field_id": 1, + "index_id": 1, + "build_id": 1, + "index_size": 1024, + "is_loaded": true + } + ], + "resource_group": "rg1", + "loaded_insert_row_count": 1000, + "mem_size": 2048 + }, + { + "segment_id": 2, + "collection_id": 2, + "partition_id": 2, + "channel": "channel2", + "num_of_rows": 2000, + "state": "Sealed", + "is_importing": false, + "compacted": false, + "level": "L2", + "is_sorted": true, + "node_id": 2, + "is_invisible": false, + "loaded_timestamp": "2021-10-01 00:00:00", + "index": [ + { + "field_id": 2, + "index_id": 2, + "build_id": 2, + "index_size": 2048, + "is_loaded": true + } + ], + "resource_group": "rg2", + "loaded_insert_row_count": 2000, + "mem_size": 4096 + } +] +`,OG=` +[ + { + "name": "channel1", + "watch_state": "Healthy", + "assign_state": "assigned", + "latest_time_tick": "2023-10-01 12:00:00", + "node_id": 1, + "collection_id": 1 + }, + { + "name": "channel2", + "watch_state": "Healthy", + "assign_state": "assigned", + "latest_time_tick": "2023-10-01 12:05:00", + "node_id": 2, + "collection_id": 2 + } +] +`,LG=` +{ + "segments": [ + { + "segment_id": 1, + "collection_id": 1, + "partition_id": 1, + "channel": "channel1", + "num_of_rows": 1000, + "state": "Growing", + "is_importing": false, + "compacted": false, + "level": "L1", + "is_sorted": true, + "node_id": 1 + }, + { + "segment_id": 3, + "collection_id": 2, + "partition_id": 2, + "channel": "channel2", + "num_of_rows": 2000, + "state": "Growing", + "is_importing": true, + "compacted": true, + "level": "L2", + "is_sorted": false, + "node_id": 2 + } + ], + "dm_channels": [ + { + "node_id": 1, + "version": 1, + "collection_id": 100, + "channel_name": "channel1", + "unflushed_segment_ids": ["1", "2", "3"], + "flushed_segment_ids": ["4", "5", "6"], + "dropped_segment_ids": ["7", "8", "9"], + "watch_state": "success", + "start_watch_ts": "2023-10-01 12:05:00" + }, + { + "node_id": 1, + "version": 1, + "collection_id": 100, + "channel_name": "channel3", + "unflushed_segment_ids": ["1", "2", "3"], + "flushed_segment_ids": ["4", "5", "6"], + "dropped_segment_ids": ["7", "8", "9"], + "watch_state": "to_watch", + "start_watch_ts": "2023-10-01 12:05:00" + } + ] +} +`,NG=` +[ + { + "index_id": 1, + "collection_id": 1001, + "segment_id": 2001, + "build_id": 3001, + "index_state": "Finished", + "index_size": 1024, + "index_version": 1, + "create_time": "2023-10-01 12:05:00" + }, + { + "index_id": 2, + "collection_id": 1002, + "segment_id": 2002, + "build_id": 3002, + "index_state": "Failed", + "fail_reason": "Disk full", + "index_size": 2048, + "index_version": 2, + "create_time": "2023-10-01 12:05:00" + } +]`,AG=` +[ + { + "plan_id": 1, + "collection_id": 1, + "type": "Merge", + "state": "Completed", + "fail_reason": "", + "start_time": "2023-10-01 12:05:00", + "end_time": "2023-10-01 12:06:00", + "total_rows": 10000, + "input_segments": ["1", "2", "3"], + "result_segments": ["4"] + }, + { + "plan_id": 2, + "collection_id": 2, + "type": "Merge", + "state": "Failed", + "fail_reason": "Disk full", + "start_time": "2023-10-01 12:05:00", + "end_time": "2023-10-01 12:06:00", + "total_rows": 20000, + "input_segments": ["5", "6", "7"], + "result_segments": [] + } +]`,DG=` +[ + { + "segment_id": 1, + "batch_rows": 1000, + "segment_level": "L1", + "ts_from": "2023-10-01 12:05:00", + "ts_to": "2023-10-01 12:06:00", + "delta_row_count": 10, + "flush_size": 1024, + "running_time": "100000000", + "node_id": 1 + }, + { + "segment_id": 2, + "batch_rows": 2000, + "segment_level": "L2", + "ts_from": "2023-10-01 12:05:00", + "ts_to": "2023-10-01 12:06:00", + "delta_row_count": 20, + "flush_size": 2048, + "running_time": "200000000", + "node_id": 2 + } +] +`,jG=` +[ + { + "job_id": 1, + "task_id": 2, + "collection_id": 3, + "node_id": 4, + "state": "Pending", + "reason": "", + "task_type": "PreImportTask", + "created_time": "2023-10-01T00:00:00Z", + "complete_time": "2023-10-01T01:00:00Z" + }, + { + "job_id": 5, + "task_id": 6, + "collection_id": 7, + "node_id": 8, + "state": "Completed", + "reason": "", + "task_type": "ImportTask", + "created_time": "2023-10-01T00:00:00Z", + "complete_time": "2023-10-01T01:00:00Z" + }, + { + "job_id": 9, + "task_id": 10, + "collection_id": 11, + "node_id": 12, + "state": "Failed", + "reason": "some failure reason", + "task_type": "ImportTask", + "created_time": "2023-10-01T00:00:00Z", + "complete_time": "2023-10-01T01:00:00Z" + } +] +`,FG=` +[ + { + "segment_id": 1, + "collection_id": 1, + "partition_id": 1, + "channel": "channel1", + "num_of_rows": 1000, + "state": "Growing", + "is_importing": false, + "compacted": false, + "level": "L1", + "is_sorted": true, + "node_id": 1, + "flushed_rows": 1000, + "sync_buffer_rows": 0, + "syncing_rows": 0 + }, + { + "segment_id": 2, + "collection_id": 2, + "partition_id": 2, + "channel": "channel2", + "num_of_rows": 2000, + "state": "Sealed", + "is_importing": true, + "compacted": true, + "level": "L0", + "is_sorted": false, + "node_id": 2, + "flushed_rows": 2000, + "sync_buffer_rows": 100, + "syncing_rows": 50 + } +] +`,BG=` +[ + { + "name": "channel1", + "watch_state": "Healthy", + "assign_state": "assigned", + "latest_time_tick": "2023-10-01 12:00:00", + "node_id": 1, + "collection_id": 1, + "check_point_ts": "2023-10-01 12:00:00" + }, + { + "name": "channel2", + "watch_state": "Healthy", + "assign_state": "assigned", + "latest_time_tick": "2023-10-01 12:05:00", + "node_id": 2, + "collection_id": 2, + "check_point_ts": "2023-10-01 12:05:00" + } +] +`,zG=`[ + { + "role": "proxy", + "database": "test_db", + "collection": "test_collection", + "partitions": "partition1,partition2", + "consistency_level": "Bounded", + "use_default_consistency": true, + "guarantee_timestamp": 123456789, + "duration": "1.1s", + "user": "test_user", + "query_params": { + "search_params": [ + { + "dsl": ["dsl1"], + "search_params": ["param2=value2"], + "nq": [10] + } + ], + "output_fields": "field1,field2" + }, + "type": "Search", + "trace_id": "729b10a6a7f32ddd7ab5c16dd30f60dc", + "time": "2024-11-05 08:14:05" + }, + { + "role": "proxy", + "database": "test_db", + "collection": "test_collection", + "partitions": "partition1,partition2", + "consistency_level": "Bounded", + "use_default_consistency": true, + "guarantee_timestamp": 123456789, + "duration": "1.2s", + "user": "test_user", + "query_params": { + "expr": "expr1", + "output_fields": "field1,field2" + }, + "type": "Query", + "trace_id": "232955b7f33b135708d34c3c761b57e7", + "time": "2024-11-05 08:14:05" + }, + { + "role": "proxy", + "database": "test_db", + "collection": "test_collection", + "partitions": "partition1,partition2", + "consistency_level": "Bounded", + "use_default_consistency": true, + "guarantee_timestamp": 123456789, + "duration": "1.3s", + "user": "test_user", + "query_params": { + "search_params": [ + { + "dsl": ["dsl2"], + "search_params": ["param3=value3"], + "nq": [20] + } + ], + "output_fields": "field3,field4" + }, + "type": "HybridSearch", + "trace_id": "3a4b5c6d7e8f9a0b1c2d3e4f5g6h7i8j", + "time": "2024-11-05 08:14:05" + }, + { + "role": "proxy", + "database": "test_db", + "collection": "test_collection", + "partitions": "partition1,partition2", + "consistency_level": "Bounded", + "use_default_consistency": true, + "guarantee_timestamp": 123456789, + "duration": "1.4s", + "user": "test_user", + "query_params": { + "expr": "expr2", + "output_fields": "field5,field6" + }, + "type": "Query", + "trace_id": "4b5c6d7e8f9a0b1c2d3e4f5g6h7i8j9k", + "time": "2024-11-05 08:14:05" + }, + { + "role": "proxy", + "database": "test_db", + "collection": "test_collection", + "partitions": "partition1,partition2", + "consistency_level": "Bounded", + "use_default_consistency": true, + "guarantee_timestamp": 123456789, + "duration": "1.5s", + "user": "test_user", + "query_params": { + "search_params": [ + { + "dsl": ["dsl3"], + "search_params": ["param4=value4"], + "nq": [30] + } + ], + "output_fields": "field7,field8" + }, + "type": "Search", + "trace_id": "5c6d7e8f9a0b1c2d3e4f5g6h7i8j9k0l", + "time": "2024-11-05 08:14:05" + } +]`,HG="/api/v1",c0=zt.create({baseURL:HG});c0.interceptors.response.use(e=>(e.status>=400&&XD({title:"Error",message:e.data.message||"Request Error",showClose:!1,handleClose:()=>{}}),e));const DS=(e,t)=>H3()&&e?Promise.resolve(e):t().then(n=>n.data),ft={get:(e,t,n)=>DS(JSON.parse(n||"null"),()=>c0.get(e,t)),post:(e,t,n,r)=>DS(JSON.parse(r||"null"),()=>c0.post(e,t,n))},VG="https://github.com/milvus-io/milvus/issues/new/choose",WG="https://zilliz.com/contact-sales",UG="WebUI: https://cloud.zilliz.com/signup?utm_source=partner&utm_medium=referral&utm_campaign=2024-12-19_resource_milvus-webUI_milvusio",dl=(e,t=2)=>(e/1024**3).toFixed(t),GG=e=>e.db_names.map((t,n)=>{var i;const r=(i=e.db_ids)==null?void 0:i[n],o=e.created_timestamps[n];return{name:t,id:r,created:o}}),qG=e=>e.collection_ids.map((t,n)=>{var s,l,c,u;const r=(s=e.collection_names)==null?void 0:s[n],o=(l=e.created_utc_timestamps)==null?void 0:l[n],i=(c=e.inMemory_percentages)==null?void 0:c[n],a=(u=e.query_service_available)==null?void 0:u[n];return{name:r,id:t,created:o,memoryPercentage:i,queryServiceAvailable:a}}),jS=()=>{},KG=async()=>(await ft.get("/_cluster/info",{},yG)).nodes_info,ZG=async()=>ft.get("/_cluster/clients",{},bG),QG=async()=>ft.get("/_cluster/dependencies",{},xG),YG=async()=>{const e=await ft.get("/_db/list",{},_G);try{return GG(e)}catch(t){console.warn(t)}},XG=async e=>ft.get("/_db/desc",{params:{db_name:e}},RG),JG=async(e="default")=>{const t=await ft.get("/_collection/list",{params:{db_name:e}},wG);return qG(t)},eq=async(e,t="default")=>ft.get("/_collection/desc",{params:{db_name:t,collection_name:e}},CG),tq=async e=>ft.get("/_index/list",{params:{collection_id:e}}),nq=async e=>ft.get("/_dc/segments",{params:{collection_id:e,in:"dc"}}),rq=async e=>ft.get("/_qn/segments",{params:{collection_id:e,in:"qn"}}),oq=async e=>ft.get("/_qn/channels",{params:{collection_id:e,in:"qn"}}),V3=async e=>ft.get("/_qc/dist",{params:{collection_id:e}},kG),pv=async e=>ft.get("/_qc/target",{params:{collection_id:e}},TG),gv=async e=>ft.get("/_qc/target",{params:{target_scope:2,collection_id:e}},PG),iq=async()=>ft.get("/_qn/segments",{},IG),aq=async()=>ft.get("/_qn/channels",{},OG),sq=async()=>ft.get("/_qc/replica",{},$G),lq=async()=>ft.get("/_qc/resource_group",{},EG),cq=async()=>ft.get("/_dc/dist",{},LG),uq=async()=>ft.get("/_dn/channels",{},BG),dq=async()=>ft.get("/_dn/segments",{},FG),fq=async()=>ft.get("/_qc/tasks",{},MG),pq=async()=>ft.get("/_dc/tasks/compaction",{},AG),gq=async()=>ft.get("/_dc/tasks/build_index",{},NG),hq=async()=>ft.get("/_dc/tasks/import",{},jG),mq=async()=>ft.get("/_dn/tasks/sync",{},DG),vq=async()=>ft.get("/_cluster/slow_query",{},zG),yq=async()=>ft.get("/_cluster/configs",{},SG);var W3={exports:{}};/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var i="",a=0;ae?[{key:"system_version",name:"Git Commit",desc:"Git commit SHA that the current build of the system is based on"},{key:"deploy_mode",name:"Deploy Mode",desc:"The mode in which the system is deployed"},{key:"build_version",name:"Build Version",desc:"The version of the system that was built"},{key:"build_time",name:"Build Time",desc:"The exact time when the system was built"},{key:"used_go_version",name:"Go Version",desc:"The version of the Golang that was used to build the system"}].map(n=>({...n,value:e[n.key]})):[],wq=()=>{const e=Je("cluster-info",KG),t=b.useMemo(()=>{var l;const i=(l=e.data)==null?void 0:l[0],a=i==null?void 0:i.infos.system_info,s=Sq(a);return s.push({key:"created_time",name:"Started Time",value:i==null?void 0:i.infos.created_time,desc:"The time when the system was started"}),s},[e.data]),n=b.useMemo(()=>{var i;return((i=e.data)==null?void 0:i.map(a=>({name:a.infos.name,ip:a.infos.hardware_infos.ip,created:a.infos.created_time,error:a.infos.has_error?a.infos.error_reason:""})))||[]},[e.data]),r=b.useMemo(()=>{var i;return((i=e.data)==null?void 0:i.map(a=>{const s=a.infos.hardware_infos,l=dl(s.cpu_core_usage),c=dl(s.memory),u=dl(s.memory_usage),d=dl(s.disk),f=dl(s.disk_usage);return{name:a.infos.name,cpu:`${l}%`,memory:`${u} / ${c}`,disk:`${f} / ${d}`,ioWait:"0.00",rpc:"100",netTP:"5",diskTP:"20"}}))||[]},[e.data]),o=b.useMemo(()=>[],[e.data]);return{...e,data:t,compData:n,runtimeMetricsData:r,requestData:o}},Cq=()=>Je("cluster-clients",ZG),_q=()=>{const e=Je("cluster-deps",QG),t=b.useMemo(()=>Object.keys(e.data||{}).map(n=>{const r=e.data[n],o="meta_type"in r?r.meta_type:r.mq_type,i=r.health_status?"":r.unhealthy_reason;return{name:`${n} [${o}]`,clusterStatus:i,members:r.members_health}}),[e.data]);return{...e,data:t}};var sd=(e=>(e.Node="none",e.Building="building",e.Completed="completed",e))(sd||{}),ld=(e=>(e.Node="none",e.Loading="loading",e.Loaded="loaded",e))(ld||{}),vn=(e=>(e.GrowingGenerated="Growing Generated",e.LoadGrowing="Load Growing",e.SegmentReady="Segment Ready",e.GrowingFlushed="Growing Flushed",e.SealedLoaded="Sealed Loaded",e.L0Generated="L0 Generated",e.L0Loaded="L0 Loaded",e.L0Ready="L0 Ready",e.L0Compacted="L0 Compacted",e.L1Generated="L1 Generated",e.L1Loaded="L1 Loaded",e.L1Ready="L1 Ready",e.L1Compacted="L1 Compacted",e.CompactToLoaded="Compact To Loaded",e))(vn||{}),$r=(e=>(e.WatchChannel="Watch Channel",e.ReleaseGrowing="Release Growing",e.LoadL0="Load L0",e.ReleaseL0="Release L0",e.LoadL1="Load L1",e.ReleaseL1="Release L1",e.AddRouter="Add Router",e.RemoveRouter="Remove Router",e))($r||{}),Oi=(e=>(e.DelegatorOffline="Delegator Node Offline",e.WorkerOffline="Worker Node Offline",e))(Oi||{});const Np={isError:!1,message:"Ready"},FS=(e,t)=>{var o;const{collectionId:n,id:r}=e;return!!((o=t.find(i=>i.collection_id===n))!=null&&o.dm_channels.find(i=>{var a;return(a=i.flushed_segment_ids)==null?void 0:a.includes(r)}))},Rq=(e,t,n)=>{const r=FS(e,n),o=FS(e,t),i=!!e.sourceData.distSegmentData,a=!!e.sourceData.leaderView;return r&&!i&&!a&&!o?{isError:!1,message:"Watch Channel Growing Generated"}:r&&i&&a&&!o?{isError:!1,message:"Load Growing"}:r&&i&&a&&o?{isError:!1,message:"Segment Ready"}:i&&a&&o?{isError:!1,message:"Growing Flushed"}:!r&&i&&a&&!o?{isError:!1,message:"Release Growing Sealed Loaded"}:!i&&!a&&o?{isError:!0,message:"Delegator Node Offline"}:Np},Tq=e=>{const t=!!e.sourceData.nextTarSegment,n=!!e.sourceData.currTarSegment,r=!!e.sourceData.distSegmentData,o=!!e.sourceData.leaderView;return t&&!r&&!o&&!n?{isError:!1,message:"L0 Generated"}:t&&r&&o&&!n?{isError:!1,message:"L0 Loaded"}:t&&r&&o&&n?{isError:!1,message:"L0 Ready"}:r&&o&&n?{isError:!1,message:"L0 Compacted"}:!t&&r&&o&&!n?{isError:!1,message:"Release L0 Compact To Loaded"}:!r&&!o&&n?{isError:!0,message:"Delegator Node Offline"}:Np},Pq=e=>{const t=!!e.sourceData.nextTarSegment,n=!!e.sourceData.currTarSegment,r=!!e.sourceData.distSegmentData,o=!!e.sourceData.leaderView;return t&&!r&&!o&&!n?{isError:!1,message:"Load L1 L1 Generated"}:t&&r&&o&&!n?{isError:!1,message:"L1 Loaded"}:t&&r&&o&&n?{isError:!1,message:"L1 Ready"}:r&&o&&n?{isError:!1,message:"L1 Compacted"}:!t&&r&&o&&!n?{isError:!1,message:"Release L1 Compact To Loaded"}:r&&!o&&n?{isError:!0,message:"Add Router Delegator Node Offline"}:!r&&o&&!n?{isError:!0,message:"Remove Router Worker Node Offline"}:!r&&o&&n?{isError:!0,message:"Load L1 Worker Node Offline"}:r&&!o&&!n?{isError:!0,message:"Release L1 Delegator Node Offline"}:Np},kq=(e,t,n)=>e.map(r=>{let o=Np;return r.state==="Growing"&&(o=Rq(r,t,n)),r.state==="Sealed"&&r.level==="L0"&&(o=Tq(r)),r.state==="Sealed"&&r.level==="L1"&&(o=Pq(r)),{...r,stateDetail:o}}),$q=e=>{const t=Object.keys(e).filter(n=>{var o;const r=(o=e[n])==null?void 0:o.state;return r&&r!=="SegmentStateNone"});return t.length?e[t[0]].state:"-"},Eq=(e,t)=>{var g;const{distSegmentData:n,currTarSegment:r,nextTarSegment:o,queryNode:i,leaderView:a}=t,s=(n||r||o||i).collection_id,l=a!=null&&a.leader_id&&(a==null?void 0:a.leader_id)!=="Not Found"?a==null?void 0:a.leader_id:"-",c=(g=n||i)==null?void 0:g.node_id,u=n==null?void 0:n.num_of_rows,d=n==null?void 0:n.level,f=$q(t);return{id:e,collectionId:s,leaderId:l,nodeId:c,state:f,rowsCount:u,level:d,sourceData:t}},Mq=(e,t,n,r)=>{var a;const o={};(a=e.segments)==null||a.forEach(s=>{o[s.segment_id]={...o[s.segment_id]||{},distSegmentData:s}}),e.leader_views.forEach(s=>{var l,c;(l=s.sealed_segments)==null||l.forEach(u=>{o[u.segment_id]={...o[u.segment_id]||{},leaderView:s}}),(c=s.growing_segments)==null||c.forEach(u=>{o[u.segment_id]={...o[u.segment_id]||{},leaderView:s}})}),t.forEach(s=>{var l;(l=s.segments)==null||l.forEach(c=>{o[c.segment_id]={...o[c.segment_id]||{},currTarSegment:c,currTarget:s}})}),n.forEach(s=>{var l;(l=s.segments)==null||l.forEach(c=>{o[c.segment_id]={...o[c.segment_id]||{},nextTarSegment:c,nextTarget:s}})}),r.forEach(s=>{o[s.segment_id]={...o[s.segment_id]||{},queryNode:s}});const i=Object.keys(o).map(s=>Eq(s,o[s]));return kq(i,t,n)},Iq=()=>{const e=Je("query-dist",V3),t=Je("query-currTargets",pv),n=Je("query-nextTargets",gv),r=Je("query-seg",iq),o=Je("query-channel",aq),i=b.useMemo(()=>!e.data||!t.data||!n.data||!r.data?[]:Mq(e.data,t.data,n.data,r.data),[e.data,t.data,n.data,r.data]),a=b.useMemo(()=>!e.data||!t.data||!n.data||!o.data?[]:G3(e.data,t.data,n.data,o.data),[e.data,t.data,n.data,o.data]);return{segsData:i,channelsData:a,isLoading:[e,t,n,r,o].some(s=>s.isLoading)}},Eu=e=>e.name||e.channel_name,Oq=e=>{const t=Object.keys(e).filter(n=>{var o;const r=(o=e[n])==null?void 0:o.watch_state;return r&&r!=="Healthy"});return t.length?e[t[0]].watch_state:"Healthy"};var cd=(e=>(e.Sub="Sub Channel",e.UnSub="UnSub Channel",e))(cd||{}),wl=(e=>(e.LoadCollection="Load Collection",e.ChannelWatched="Channel Watched",e.ChannelReady="Channel Ready",e.ReleaseCollection="Release Collection",e))(wl||{}),U3=(e=>(e.Offline="Delegator Node Offline",e))(U3||{});const Lq=e=>e.nextTarChannel&&!e.leaderView&&!e.currTarChannel?{isError:!1,message:"Sub Channel Load Collection"}:e.nextTarChannel&&e.leaderView&&!e.currTarChannel?{isError:!1,message:"Channel Watched"}:e.nextTarChannel&&e.leaderView&&e.currTarChannel?{isError:!1,message:"Channel Ready"}:!e.nextTarChannel&&e.leaderView&&!e.currTarChannel?{isError:!1,message:"UnSub Channel Release Collection"}:!e.leaderView&&e.currTarChannel?{isError:!0,message:"UnSub Channel Delegator Node Offline"}:{isError:!1,message:"Channel Ready"},Nq=(e,t)=>{var d;const{distChannelData:n,currTarChannel:r,nextTarChannel:o,queryNode:i,leaderView:a}=t,s=(n||r||o||i).collection_id,l=a!=null&&a.leader_id&&(a==null?void 0:a.leader_id)!=="Not Found"?a==null?void 0:a.leader_id:"-",c=(d=n||i)==null?void 0:d.node_id,u=Oq(t);return{name:e,collectionId:s,leaderId:l,nodeId:c,watchState:u,stateDetail:Lq(t),sourceData:t}},G3=(e,t,n,r)=>{var i,a;const o={};return(i=e.dm_channels)==null||i.forEach(s=>{const l=Eu(s);o[l]={...o[l]||{},distChannelData:s}}),t.forEach(s=>{var l;(l=s.dm_channels)==null||l.forEach(c=>{const u=Eu(c);o[u]={...o[u]||{},currTarChannel:c}})}),n.forEach(s=>{var l;(l=s.dm_channels)==null||l.forEach(c=>{const u=Eu(c);o[u]={...o[u]||{},nextTarChannel:c}})}),r.forEach(s=>{const l=Eu(s);o[l]={...o[l]||{},queryNode:s}}),(a=e.leader_views)==null||a.forEach(s=>{s.channel&&(o[s.channel]={...o[s.channel]||{},leaderView:s})}),Object.keys(o).map(s=>Nq(s,o[s]))},Aq=()=>Je("query-replicas",sq),Dq=()=>Je("query-rscGroups",lq),jq=()=>{const e=Je("query-currTargets",pv),t=Je("query-nextTargets",gv),n=b.useMemo(()=>!e.data||!t.data?[]:Fq(e.data,t.data),[e.data,t.data]),r=b.useMemo(()=>!e.data||!t.data?[]:Bq(e.data,t.data),[]);return{isLoading:e.isLoading||t.isLoading,targetSeg:n,targetChannel:r}};function Fq(e,t){const n=[];return e.forEach(r=>{r.segments.forEach(o=>{o.targetScope="current",n.push(o)})}),t.forEach(r=>{r.segments.forEach(o=>{o.targetScope="next",n.push(o)})}),n}function Bq(e,t){const n=[];return e.forEach(r=>{r.dm_channels&&r.dm_channels.forEach(o=>{o.targetScope="current",n.push(o)})}),t.forEach(r=>{r.dm_channels&&r.dm_channels.forEach(o=>{o.targetScope="next",n.push(o)})}),n}const zq=()=>Je("databases",YG),Hq=(e="default")=>Je(`collections-${e}`,()=>JG(e)),Vq=e=>{var v;const[t,n]=e.split("-"),r=Je(`collections-${e}`,()=>eq(n,t)),o=(v=r.data)==null?void 0:v.collection_id,i=Je(o&&`collections-${o}-indexes`,()=>tq(o)),a=Je(o&&`collections-${o}-dcSegments`,()=>nq(o)),s=Je(o&&`collections-${o}-qnSegments`,()=>rq(o)),l=Je(o&&`collections-${o}-currTarget`,()=>pv(o)),c=Je(o&&`collections-${o}-nextTarget`,()=>gv(o)),u=Je(o&&`collections-${o}-dist`,()=>V3(o)),d=Je(o&&`collections-${o}-qnChannels`,()=>oq(o)),f=(S,h)=>{var w;return(w=h==null?void 0:h.index_fields)!=null&&w.length?h.index_fields.every(_=>S.find(T=>T.index_id===_.index_id))||h.is_indexed?sd.Completed:sd.Building:sd.Node},g=(S,h)=>{var w,_;return(w=h==null?void 0:h.index_fields)!=null&&w.length&&h.index_fields.every(T=>S.find(k=>k.index_id===T.index_id))?ld.Loaded:(_=h==null?void 0:h.index_fields)!=null&&_.length?ld.Loading:ld.Node},m=b.useMemo(()=>{var h,w;if(!a.data||!s.data||!i.data)return[];const S={};return(h=a.data)==null||h.forEach(_=>{S[_.segment_id]={dc:_}}),(w=s.data)==null||w.forEach(_=>{S[_.segment_id]={...S[_.segment_id],qn:_}}),Object.keys(S).map(_=>{var P,x,$,I;const{dc:T,qn:k}=S[_];return{id:((P=T||k)==null?void 0:P.segment_id)||"",nodeId:((x=T||k)==null?void 0:x.node_id.toString())||"",rowsCount:Number((($=T||k)==null?void 0:$.num_of_rows)||0),state:T==null?void 0:T.state,level:((I=T||k)==null?void 0:I.level)||"",buildIndexState:f(i.data,T),loadIndexState:g(i.data,T)}})},[a.data,s.data,i.data]),y=b.useMemo(()=>!u.data||!l.data||!c.data||!d.data?[]:G3(u.data,l.data,c.data,d.data),[l.data,c.data,u.data,d]),C=()=>{if(!u.data||!l.data||!c.data)return{name:"-"};const S=c.data.find(k=>k.collection_id===o),h=l.data.find(k=>k.collection_id===o);if(S&&!h)return{name:"Loading"};const{leader_views:w}=u.data,_=[],T=((h==null?void 0:h.segments)||[]).every(k=>{var $,I;const R=($=w.find(O=>O.collection_id===o))==null?void 0:$.growing_segments,P=(I=w.find(O=>O.collection_id===o))==null?void 0:I.sealed_segments,x=(R==null?void 0:R.find(O=>O.segment_id===k.segment_id))||(P==null?void 0:P.find(O=>O.segment_id===k.segment_id));return x||_.push(k.segment_id),x});return h&&!T?{name:"Collection Segment Lack",desc:`There are segments need to load: ${_.join(", ")}`}:h?{name:"Loaded"}:{name:"-"}};return{collection:r.data,indexes:i.data,segments:m,channels:y,collectionState:C()}},Wq=()=>{const e=Je("data-dist",cq),t=Je("data-seg",dq),n=Je("data-channel",uq),r=b.useMemo(()=>Uq(n.data||[],e.data||{}),[e.data,n.data]);return{seg:b.useMemo(()=>Gq(t.data||[],e.data||{}),[e.data,t.data]),channel:r,isLoading:e.isLoading||t.isLoading||n.isLoading}},Uq=(e,t)=>{var i,a;const n={},r=[],o=new Set(((i=t.dm_channels)==null?void 0:i.map(s=>s.channel_name))||[]);return e.forEach(s=>{const l=isNaN(Number(s.node_id))?s.node_id:`datanode-${s.node_id}`;s.node_id=l;const c={...s};o.has(s.name)||(c.notification="Not found in DataCoord",r.push(c)),n[s.name]=c}),(a=t.dm_channels)==null||a.forEach(s=>{const l=isNaN(Number(s.node_id))?s.node_id:`datanode-${s.node_id}`;s.node_id=l;const c=s.channel_name;if(n[c])n[c].watch_state!=="Healthy"&&(s.watch_state=n[c].watch_state),n[c]={...n[c],...s};else{const u={...s,notification:"Not found in DataNode"};r.push(u),n[c]=u}}),{data:Object.values(n),notifications:r}},Gq=(e,t)=>{var i,a;const n={},r=[],o=new Set((i=t.segments)==null?void 0:i.map(s=>s.segment_id));return e.forEach(s=>{var u;const l=isNaN(Number(s.node_id))?s.node_id:`datanode-${s.node_id}`;s.node_id=l;const c={...s};!o.has(s.segment_id)&&((u=s.level)==null?void 0:u.toLowerCase())!=="l0"&&(c.notification="Not found in DataCoord",r.push(c)),n[s.segment_id]=c}),(a=t.segments)==null||a.forEach(s=>{const l=isNaN(Number(s.node_id))?s.node_id:`datanode-${s.node_id}`;s.node_id=l;const c=s.segment_id;if(n[c])n[c]={...n[c],...s};else{const u={...s,notification:"Not found in DataNode"};s.state!=="Dropped"&&s.state!=="Flushed"&&r.push(u),n[c]=u}}),{data:Object.values(n),notifications:r}},qq=()=>Je("tasks",fq),Kq=()=>Je("compaction",pq),Zq=()=>Je("buildIndex",gq),Qq=()=>Je("import",hq),Yq=()=>Je("sync",mq),Xq=()=>Je("slow-requests",vq),Jq=()=>{const e=Je("configurations",yq);return{...e,data:Object.keys(e.data||{}).map(t=>({key:t,value:e.data[t]}))}},eK="_section_1fkka_1",tK="_title_1fkka_5",nK="_separator_1fkka_8",dh={section:eK,title:tK,separator:nK},ht=e=>{const{title:t,level:n=3,children:r,className:o}=e,i=()=>rt.createElement(`h${n}`,{className:dh.title,children:t});return p.jsxs("div",{className:ze(dh.section,o),children:[i(),p.jsx("hr",{className:dh.separator}),r]})},fh={"filter-searcher":"_filter-searcher_162nl_1","filter-searcher-label":"_filter-searcher-label_162nl_5","filter-searcher-input":"_filter-searcher-input_162nl_9"},rK=e=>{var u;const{defaultFilter:t,filters:n,className:r,onSearch:o}=e,[i,a]=b.useState({by:t}),s=d=>{a(()=>({by:d.value}))},l=d=>{a(f=>({...f,q:d.target.value}))},c=n.length?(u=n.find(d=>d.value===(i.by||n[0].value)))==null?void 0:u.label.toLowerCase():"";return b.useEffect(()=>{o(i)},[i.q]),p.jsxs("div",{className:ze(fh["filter-searcher"],r),children:[p.jsx("div",{className:fh["filter-searcher-label"],children:"Filter: "}),n.length>1&&p.jsx(nj,{defaultValue:t||n[0].value,options:n,onChange:s,onPointerEnterCapture:jS,onPointerLeaveCapture:jS}),p.jsx(V1,{classes:{root:fh["filter-searcher-input"]},prefixComponent:p.jsx(QN,{}),type:"number",value:i.q,onChange:l,placeholder:c?`Search by ${c}`:"Search",onPointerEnterCapture:()=>{},onPointerLeaveCapture:()=>{}})]})},oK="_wrapper_1j79b_1",fl={wrapper:oK,"json-ellipsis":"_json-ellipsis_1j79b_7","json-ellipsis-brace":"_json-ellipsis-brace_1j79b_10","json-ellipsis-dot":"_json-ellipsis-dot_1j79b_14"},hv=e=>{const{json:t,ellipsis:n}=e,r=t?JSON.stringify(t,null,2):"",o=p.jsx("pre",{className:fl.wrapper,children:r});return n?p.jsx(Tp,{title:o,placement:"top",children:p.jsxs("span",{className:fl["json-ellipsis"],children:[p.jsx("span",{className:fl["json-ellipsis-brace"],children:"{"}),p.jsx("span",{className:fl["json-ellipsis-dot"],children:"..."}),p.jsx("span",{className:fl["json-ellipsis-brace"],children:"}"})]})}):o},iK="_state_v8a2b_12",aK="_none_v8a2b_16",sK="_building_v8a2b_19",lK="_loading_v8a2b_19",cK="_completed_v8a2b_22",uK="_loaded_v8a2b_22",dK="_healthy_v8a2b_22",fK="_deleted_v8a2b_25",pK="_icon_v8a2b_28",ph={state:iK,none:aK,false:"_false_v8a2b_16",building:sK,loading:lK,completed:cK,loaded:uK,healthy:dK,true:"_true_v8a2b_22",deleted:fK,icon:pK},bo=e=>{const t=()=>{if(e.detail)return p.jsx(ha,{tooltip:{title:e.detail,placement:"top"},children:p.jsx(F1,{className:ph.icon,size:16})})};return p.jsxs("span",{className:ze(ph.state,ph[e.value.toLowerCase()]),children:[e.label||e.value,t()]})},Nt=e=>{const[t,n]=b.useState({}),r=b.useMemo(()=>e.cols.filter(s=>s.searchable),[e.cols]),o=b.useMemo(()=>{var c;if(!t.by||!t.q)return e.list||[];const{searchBy:s}=r.find(u=>u.field===t.by)||{};if(s)return s==null?void 0:s(t.q,e.list||[]);const l=t.by;return((c=e.list)==null?void 0:c.filter(u=>{var d;return(d=u[l])==null?void 0:d.toString().includes(t.q||"")}))||[]},[t,e.list]),i=s=>{var l;n(s),(l=e.onSearch)==null||l.call(e,s)};return{list:o,renderSearcher:s=>{const l=r.map(c=>({label:c.headerName,value:c.field}));return p.jsx(rK,{filters:l,onSearch:i,...s})}}},gK="_status_19mpp_12",hK="_error_19mpp_16",Qt={status:gK,error:hK,"comp-tabs":"_comp-tabs_19mpp_20","text-content":"_text-content_19mpp_25","member-list":"_member-list_19mpp_30","member-item-label":"_member-item-label_19mpp_34","helper-link":"_helper-link_19mpp_43"},mK=()=>{var T;const e=wq(),t=Cq(),n=_q(),[r,o]=b.useState("base"),i=k=>p.jsx("div",{className:Qt["text-content"],children:k||"-"}),a=k=>i(k.getValue()),s=b.useMemo(()=>[{field:"name",headerName:"Attribute"},{field:"value",headerName:"Value",renderCell:a},{field:"desc",headerName:"Description",renderCell:a}],[]),l=b.useMemo(()=>[{label:"Base Stats",value:"base"},{label:"Runtime Metrics",value:"metrics"}],[]),c=k=>{const R=k||"Healthy",P=!!k;return p.jsx("span",{className:ze(Qt.status,P&&Qt.error),children:R})},u=b.useMemo(()=>[{field:"name",headerName:"Node Name",renderCell:a,searchable:!0},{field:"ip",headerName:"Node IP",renderCell:a},{field:"created",headerName:"Start Time",renderCell:a},{field:"error",headerName:"Node Status",renderCell:R=>i(c(R.getValue()))}],[]),d=Nt({cols:u,list:e.compData}),f=b.useMemo(()=>[{field:"name",headerName:"Node Name",renderCell:a,searchable:!0},{field:"cpu",headerName:"CPU Usage",renderCell:a},{field:"memory",headerName:"Usage / Memory (GB)",renderCell:a},{field:"disk",headerName:"Usage / Disk (GB)",renderCell:a},{field:"ioWait",headerName:"IO wait",renderCell:a},{field:"rpc",headerName:"RPC Ops/s",renderCell:a},{field:"netTP",headerName:"Network Throughput (MB/s)",renderCell:a},{field:"diskTP",headerName:"Disk Throughput (MB/s)",renderCell:a}],[]),g=Nt({cols:f,list:e.runtimeMetricsData}),m=(k,R)=>{o(R)},y=b.useMemo(()=>[{field:"host",headerName:"Host",searchable:!0},{field:"user",headerName:"User",searchable:!0},{field:"sdk_type",headerName:"SDK Type",searchable:!0},{field:"sdk_version",headerName:"SDK Version",searchable:!0},{field:"local_time",headerName:"Local Time",renderCell:a},{field:"lastActiveTime",headerName:"Last Active Time",renderCell:a}],[]),C=Nt({cols:y,list:(T=t.data)==null?void 0:T.map(k=>({...k,lastActiveTime:k.reserved.last_active_time}))}),v=k=>{const R=p.jsx("span",{className:Qt["member-endpoint"],children:k.endpoint}),P=c(k.health?"":"Unhealthy");return p.jsxs(p.Fragment,{children:[p.jsx("span",{className:Qt["member-item-label"],children:"Endpoint:"}),R,p.jsx("span",{className:Qt["member-item-label"],children:"Health:"}),P]})},S=k=>{const R=k.getValue()||[];if(!R.length)return"-";const P=R.map(x=>p.jsx("li",{className:Qt["member-item"],children:v(x)},x.endpoint));return p.jsx("ul",{className:Qt["member-list"],children:P})},h=b.useMemo(()=>[{field:"name",headerName:"Sys Name",searchable:!0},{field:"clusterStatus",headerName:"Cluster Status",maxWidth:200,renderCell:R=>i(c(R.getValue()))},{field:"members",headerName:"Members Status",renderCell:S}],[]),w=Nt({cols:h,list:n.data}),_=()=>{var x,$;const k=((x=e.compData)==null?void 0:x.every(I=>!I.error))&&(($=n.data)==null?void 0:$.every(I=>{var O;return!I.clusterStatus&&!((O=I.members)!=null&&O.some(D=>!D.health))})),R=k?"Your Cluster is running well!":p.jsxs(p.Fragment,{children:["Your Cluster is experiencing issues!"," ",p.jsxs("a",{className:Qt["helper-link"],href:VG,target:"_blank",children:["Ask a question in community",p.jsx(Mm,{size:14})]})," ",p.jsxs("a",{className:Qt["helper-link"],href:WG,target:"_blank",children:["Contact Zilliz Experts",p.jsx(Mm,{size:14})]})]}),P=k?"success":"error";return p.jsx(H1,{severity:P,children:R})};return p.jsxs("div",{className:ze("page-wrapper",Qt.info),children:[p.jsx("div",{className:Qt.alerts,children:_()}),p.jsx(ht,{title:"System Information",children:p.jsx(at,{classes:{tableContainer:ze(Qt["sys-info"],"table-view")},loading:e.isLoading,columns:s,rows:e.data})}),p.jsx(ht,{title:"Component Information",children:p.jsxs(p.Fragment,{children:[p.jsx(aj,{className:Qt["comp-tabs"],value:r,labelConfigs:l,handleChange:m,tabsType:"background"}),r==="base"&&p.jsxs(p.Fragment,{children:[d.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(Qt["comp-info"],"table-view")},loading:e.isLoading,columns:u,rows:d.list})]}),r==="metrics"&&p.jsxs(p.Fragment,{children:[g.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(Qt["comp-info"],"table-view")},loading:e.isLoading,columns:f,rows:g.list})]})]})}),p.jsx(ht,{title:"Connected Clients",children:p.jsxs(p.Fragment,{children:[C.renderSearcher({defaultFilter:"host",className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(Qt.clients,"table-view")},loading:t.isLoading,columns:y,rows:C.list})]})}),p.jsx(ht,{title:"System Dependencies",children:p.jsxs(p.Fragment,{children:[w.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(Qt["sys-deps"],"table-view")},loading:n.isLoading,columns:h,rows:w.list||[]})]})})]})},vK="_queryable_12ixl_12",yK="_error_12ixl_15",bK="_detail_12ixl_23",xK="_clear_12ixl_28",SK="_loading_12ixl_1",wK="_percentage_12ixl_73",CK="_unknown_12ixl_73",yn={queryable:vK,error:yK,"collection-filter":"_collection-filter_12ixl_19",detail:bK,clear:xK,"json-detail-wrapper":"_json-detail-wrapper_12ixl_40","json-detail-content":"_json-detail-content_12ixl_40","json-detail-loading":"_json-detail-loading_12ixl_46","json-detail-loading-icon":"_json-detail-loading-icon_12ixl_50",loading:SK,"collection-filter-wrapper":"_collection-filter-wrapper_12ixl_57","collection-name":"_collection-name_12ixl_65",percentage:wK,unknown:CK},_K=e=>{const{fetcher:t,uniqKey:n,className:r,errorMessage:o}=e,i=Je(n,t),a=b.useMemo(()=>i.data?i.error?o:JSON.stringify(i.data,null,2):"",[i.data,o]),s=()=>i.isLoading?p.jsx("div",{className:yn["json-detail-loading"],children:p.jsx(ZN,{className:yn["json-detail-loading-icon"]})}):p.jsx("pre",{className:ze(yn["json-detail-content"],i.error&&yn.error),children:a});return p.jsx("div",{className:ze(yn["json-detail-wrapper"],r),children:s()})},RK=()=>{var S,h,w;const e=zq(),[t,n]=b.useState({}),r=Hq(t.db),[o,i]=b.useState({page:0,pageSize:10}),[a,s]=b.useState({page:0,pageSize:10}),l=b.useMemo(()=>[{field:"name",headerName:"Name",searchable:!0},{field:"id",headerName:"ID",renderCell:T=>T.getValue()||"-",searchable:!0},{field:"created",headerName:"Created Time"}],[]),c=Nt({cols:l,list:e.data,onSearch:()=>{i(_=>({..._,page:0}))}}),u=_=>{const T=_.getValue();return!T&&T!==0?"-":T==="unknown"?p.jsx("span",{className:ze(yn.percentage,yn.unknown),children:"Unknown"}):p.jsxs("span",{className:yn.percentage,children:[_.getValue(),"%"]})},d=_=>{const T=_.data,k=t.db||"default",R=T.name,P=`${k}-${R}`;return p.jsx(f2,{className:yn["collection-name"],to:`/collections/${P}`,children:T.name})},f=b.useMemo(()=>[{field:"name",headerName:"Name",searchable:!0,renderCell:d},{field:"id",headerName:"Collection ID",searchable:!0},{field:"created",headerName:"Created Time"},{field:"memoryPercentage",headerName:"Loaded Percentages",renderCell:u}],[]),g=Nt({cols:f,list:r.data,onSearch:()=>{s(_=>({..._,page:0}))}}),m=_=>{i(T=>({...T,page:_}))},y=_=>{s(T=>({...T,page:_}))},C=_=>p.jsx(_K,{className:yn.detail,uniqKey:`database-detail-${_.name}`,fetcher:()=>XG(_.name),errorMessage:"Failed to load database details."}),v=(_,T)=>{n(k=>({...k,db:T==null?void 0:T.value}))};return p.jsxs("div",{className:ze("page-wrapper",yn.collections),children:[p.jsx(ht,{title:"Database",children:p.jsxs(p.Fragment,{children:[c.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(yn["sys-deps"],"table-view")},columns:l,loading:e.isLoading,getRowId:_=>_.id,rows:c.list,renderDetail:C,page:o.page,pageSize:o.pageSize,paginationMode:"client",onPageChange:m,rowCount:((S=c.list)==null?void 0:S.length)||0})]})}),p.jsx(ht,{title:"Collection",children:p.jsxs(p.Fragment,{children:[p.jsxs("div",{className:yn["collection-filter-wrapper"],children:[p.jsx(tR,{classes:{root:yn["collection-filter"]},onPointerEnterCapture:()=>{},onPointerLeaveCapture:()=>{},placeholder:"Search database",inputParams:{placeholder:"Search database..."},clearIcon:p.jsx(YN,{className:yn.clear,color:"secondary"}),options:((h=e.data)==null?void 0:h.map(_=>({label:_.name,value:_.name})))||[],onChange:v}),g.renderSearcher({defaultFilter:"name",className:"table-view-filter-searcher"})]}),p.jsx(at,{classes:{tableContainer:ze(yn["sys-deps"],"table-view")},columns:f,loading:r.isLoading,getRowId:_=>_.id,rows:g.list||[],page:a.page,pageSize:a.pageSize,paginationMode:"client",showPagination:!0,onPageChange:y,rowCount:(w=g.list)==null?void 0:w.length})]})})]})},go={"state-header":"_state-header_zl8hm_12","state-header-helper-icon":"_state-header-helper-icon_zl8hm_17"},gh={},TK=()=>{const e=jq(),[t,n]=b.useState({page:0,pageSize:10}),[r,o]=b.useState({page:0,pageSize:10}),i=f=>{const g=f.getValue();return(g==null?void 0:g.join(", "))||"-"},a=b.useMemo(()=>[{field:"segment_id",headerName:"Segment ID"},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"partition_id",headerName:"Partition ID"},{field:"channel",headerName:"Channel",searchable:!0},{field:"num_of_rows",headerName:"Rows"},{field:"state",headerName:"State"},{field:"targetScope",headerName:"TargetScope"}],[]),s=Nt({cols:a,list:e.targetSeg,onSearch:()=>{n(f=>({...f,page:0}))}}),l=b.useMemo(()=>[{field:"channel_name",headerName:"Channel Name",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"node_id",headerName:"Node ID",searchable:!0},{field:"version",headerName:"Version"},{field:"unflushed_segment_ids",headerName:"Unflushed Segments",renderCell:i},{field:"flushed_segment_ids",headerName:"Flushed Segments",renderCell:i},{field:"dropped_segment_ids",headerName:"Dropoed Segments",renderCell:i},{field:"targetScope",headerName:"TargetScope"}],[]),c=Nt({cols:l,list:e.targetChannel,onSearch:()=>{o(f=>({...f,page:0}))}}),u=f=>{n(g=>({...g,page:f}))},d=f=>{o(g=>({...g,page:f}))};return p.jsxs("div",{className:ze("page-wrapper",gh.query),children:[p.jsx(ht,{title:"Target Segments",children:p.jsxs(p.Fragment,{children:[s.renderSearcher({defaultFilter:"collection_id",className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(gh.segs,"table-view")},columns:a,loading:e.isLoading,getRowId:f=>f.segment_id,rows:s.list,page:t.page,pageSize:t.pageSize,paginationMode:"client",showPagination:!0,onPageChange:u,rowCount:s.list.length})]})}),p.jsx(ht,{title:"Target Channels",children:p.jsxs(p.Fragment,{children:[c.renderSearcher({defaultFilter:"collection_id",className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(gh.channels,"table-view")},columns:l,loading:e.isLoading,getRowId:f=>f.name,rows:c.list,page:r.page,pageSize:r.pageSize,paginationMode:"client",showPagination:!0,onPageChange:d,rowCount:c.list.length})]})})]})},PK=()=>{const e=kf(),t=Iq(),n=Aq(),r=Dq(),[o,i]=b.useState({page:0,pageSize:10}),[a,s]=b.useState({page:0,pageSize:10}),l=R=>{const P=R.getValue();return p.jsx("div",{className:ze(go["state-detail"],(P==null?void 0:P.isError)&&go.error),children:P==null?void 0:P.message})},c=()=>{e("/state_helper")},u=R=>p.jsxs("div",{className:go["state-header"],children:[R,p.jsx(ha,{tooltip:{title:"Click to get help about state details",placement:"top"},children:p.jsx(F1,{onClick:c,className:go["state-header-helper-icon"]})})]}),d=b.useMemo(()=>[{field:"id",headerName:"Segment ID",searchable:!0},{field:"collectionId",headerName:"Collection ID",searchable:!0},{field:"leaderId",headerName:"Leader ID",searchable:!0},{field:"nodeId",headerName:"Node ID",searchable:!0},{field:"rowsCount",headerName:"Rows",renderCell:P=>P.getValue()||"-"},{field:"state",headerName:"State",renderCell:P=>p.jsx(bo,{value:P.getValue()})},{field:"stateDetail",headerName:"State Detail",renderHeader:()=>u("State Detail"),renderCell:l}],[]),f=Nt({cols:d,list:t.segsData,onSearch:()=>{i(R=>({...R,page:0}))}}),g=R=>{const{data:P}=R;return P.name||P.channel_name},m=b.useMemo(()=>[{field:"name",headerName:"Channel Name",renderCell:g,searchable:!0},{field:"collectionId",headerName:"Collection ID",searchable:!0},{field:"leaderId",headerName:"Leader ID",searchable:!0},{field:"nodeId",headerName:"Node ID",searchable:!0,renderCell:P=>P.getValue()||"-"},{field:"watchState",headerName:"Watch State",renderCell:P=>p.jsx(bo,{value:P.getValue()})},{field:"stateDetail",headerName:"State Detail",renderHeader:()=>u("State Detail"),renderCell:l}],[]),y=Nt({cols:m,list:t.channelsData,onSearch:()=>{s(R=>({...R,page:0}))}}),C=R=>{const P=R.getValue();return(P==null?void 0:P.join(", "))||"-"},v=b.useMemo(()=>[{field:"ID",headerName:"ID",searchable:!0},{field:"collectionID",headerName:"Collection ID",renderCell:P=>P.getValue()||"-",searchable:!0},{field:"database_id",headerName:"Database ID",searchable:!0,renderCell:P=>P.getValue()||"-"},{field:"rw_nodes",headerName:"RW Nodes",renderCell:C},{field:"ro_nodes",headerName:"RO Nodes",renderCell:C},{field:"resource_group",headerName:"Resource Group",renderCell:P=>P.getValue()||"-",searchable:!0}],[]),S=Nt({cols:v,list:n.data}),h=R=>{const P=R.getValue();return p.jsx(hv,{json:P})},w=b.useMemo(()=>[{field:"name",headerName:"Name",searchable:!0},{field:"nodes",headerName:"Nodes",renderCell:C},{field:"cfg",headerName:"Cfg",renderCell:h}],[]),_=Nt({cols:w,list:r.data}),T=R=>{i(P=>({...P,page:R}))},k=R=>{s(P=>({...P,page:R}))};return p.jsxs("div",{className:ze("page-wrapper",go.query),children:[p.jsx(ht,{title:"Segments",children:p.jsxs(p.Fragment,{children:[f.renderSearcher({className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(go.segs,"table-view")},columns:d,loading:t.isLoading,getRowId:R=>R.segment_id,rows:f.list,page:o.page,pageSize:o.pageSize,paginationMode:"client",showPagination:!0,onPageChange:T,rowCount:f.list.length||0})]})}),p.jsx(ht,{title:"Channels",children:p.jsxs(p.Fragment,{children:[y.renderSearcher({className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(go.channels,"table-view")},columns:m,loading:t.isLoading,getRowId:R=>R.name,rows:y.list,page:a.page,pageSize:a.pageSize,paginationMode:"client",showPagination:!0,onPageChange:k,rowCount:y.list.length})]})}),p.jsx(ht,{title:"Replicas",children:p.jsxs(p.Fragment,{children:[S.renderSearcher({className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(go.replicas,"table-view")},columns:v,loading:n.isLoading,getRowId:R=>R.ID,rows:S.list||[],showPagination:!1})]})}),p.jsx(ht,{title:"Resource Groups",children:p.jsxs(p.Fragment,{children:[_.renderSearcher({className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(go.resourceGroups,"table-view")},columns:w,loading:r.isLoading,getRowId:R=>R.name,rows:_.list||[],showPagination:!1})]})})]})},pl={"noty-list":"_noty-list_uuq1r_1","noty-item-content":"_noty-item-content_uuq1r_7"},kK=()=>{const e=Wq(),[t,n]=b.useState({page:0,pageSize:10}),[r,o]=b.useState({page:0,pageSize:10}),i=C=>{const{data:v}=C;return v.name||v.channel_name},a=C=>{const v=C.getValue();return new Date(v).getFullYear()===1970?"N/A":v||"N/A"},s=b.useMemo(()=>[{field:"channel_name",headerName:"Channel Name",searchable:!0,renderCell:i},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"watch_state",headerName:"Watch State",renderCell:a},{field:"node_id",headerName:"Node ID"},{field:"check_point_ts",headerName:"Checkpoint Ts",renderCell:a}],[]),l=b.useMemo(()=>[{field:"segment_id",headerName:"Segment ID",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"partition_id",headerName:"Partition ID"},{field:"channel",headerName:"Channel",searchable:!0},{field:"num_of_rows",headerName:"Num of Rows"},{field:"state",headerName:"State"},{field:"level",headerName:"Level",searchable:!0}],[]),c=Nt({cols:l,list:e.seg.data,onSearch:()=>{o(C=>({...C,page:0}))}}),u=Nt({cols:s,list:e.channel.data,onSearch:()=>{n(C=>({...C,page:0}))}}),d=C=>{o(v=>({...v,page:C}))},f=C=>{n(v=>({...v,page:C}))},g=C=>{const v=C==null?void 0:C.map(S=>p.jsx(H1,{severity:"warning",children:p.jsxs("div",{className:pl["noty-item-content"],children:[p.jsxs("strong",{children:[S.prefix,":"]}),p.jsx("span",{children:S.name}),p.jsx("strong",{children:S.msg})]})},S.name));return p.jsx("div",{className:pl["noty-list"],children:v})},m=e.channel.notifications.map(C=>({name:C.name||C.channel_name,prefix:"Channel",msg:C.notification})),y=e.seg.notifications.map(C=>({name:C.segment_id,prefix:"Segment",msg:C.notification}));return p.jsxs("div",{className:ze("page-wrapper",pl.data),children:[p.jsx(ht,{title:"Segments",children:p.jsxs(p.Fragment,{children:[c.renderSearcher({className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(pl[" = useTableFilter("],"table-view")},columns:l,loading:e.isLoading,getRowId:C=>C.name,rows:c.list,page:r.page,pageSize:r.pageSize,paginationMode:"client",showPagination:!0,onPageChange:d,rowCount:c.list.length}),g(y)]})}),p.jsx(ht,{title:"Channels",children:p.jsxs(p.Fragment,{children:[u.renderSearcher({className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(pl.channels,"table-view")},columns:s,loading:e.isLoading,getRowId:C=>C.segment_id,rows:u.list,page:t.page,pageSize:t.pageSize,paginationMode:"client",showPagination:!0,onPageChange:f,rowCount:u.list.length}),g(m)]})})]})},ki={"text-content":"_text-content_1tkuh_1"},$K=()=>{const e=qq(),t=Kq(),n=Zq(),r=Qq(),o=Yq(),i=w=>p.jsx("div",{className:ki["text-content"],children:w||"-"}),a=w=>{const _=w.getValue();return(_==null?void 0:_.join(", "))||"-"},s=b.useMemo(()=>[{field:"task_name",headerName:"Task Name",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"task_type",headerName:"Task Type",searchable:!0},{field:"task_status",headerName:"Task Status",searchable:!0},{field:"actions",headerName:"Actions",renderCell:_=>i(a(_))}],[]),l=Nt({cols:s,list:e.data}),c=(w,_)=>T=>{const{[w]:k,[_]:R}=T.data;return EK(nf(k),nf(R))},u=b.useMemo(()=>[{field:"plan_id",headerName:"Plan ID"},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"type",headerName:"Type",searchable:!0},{field:"state",headerName:"State",searchable:!0},{field:"start_time",headerName:"Start Time"},{field:"execution_time",headerName:"Execution Time",renderCell:c("start_time","end_Time")},{field:"total_rows",headerName:"Total Rows"},{field:"input_segments",headerName:"Input Segments",renderCell:a},{field:"result_segments",headerName:"Result Segments",renderCell:a}],[]),d=Nt({cols:u,list:t.data}),f=b.useMemo(()=>[{field:"index_id",headerName:"Index ID",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"segment_id",headerName:"Segment ID",searchable:!0},{field:"build_id",headerName:"Build ID",searchable:!0},{field:"index_state",headerName:"Index State"},{field:"index_size",headerName:"Index Size",renderCell:_=>_.getValue()||"-"},{field:"__",headerName:"Execution Time",renderCell:c("create_time","finished_time")},{field:"create_time",headerName:"Create Time"}],[]),g=Nt({cols:f,list:n.data}),m=w=>{const{state:_,reason:T}=w.data;return _==="Failed"?T:_},y=b.useMemo(()=>[{field:"job_id",headerName:"Job ID",searchable:!0},{field:"task_id",headerName:"Task ID",searchable:!0},{field:"collection_id",headerName:"Collection ID",searchable:!0},{field:"node_id",headerName:"Node ID",searchable:!0},{field:"state",headerName:"State",searchable:!0,renderCell:m,searchBy:(_,T)=>T.filter(k=>m({data:k}).toLowerCase().includes(_.toLowerCase().trim()))},{field:"task_type",headerName:"Task Type"},{field:"created_time",headerName:"Created Time"},{field:"execution_time",headerName:"Execution Time",renderCell:c("created_time","complete_time")}],[]),C=Nt({cols:y,list:r.data}),v=w=>{const _=w.getValue();return _?`datanode-${_}`:"-"},S=b.useMemo(()=>[{field:"segment_id",headerName:"Segment ID",searchable:!0},{field:"batch_rows",headerName:"Batch Rows"},{field:"segment_level",headerName:"Segment Level",searchable:!0},{field:"ts_from",headerName:"Timestamp From"},{field:"ts_to",headerName:"Timestamp To"},{field:"delta_row_count",headerName:"Delta Row Count"},{field:"flush_size",headerName:"Flush Size"},{field:"running_time",headerName:"Running Time"},{field:"node_id",headerName:"Node ID",searchable:!0,renderCell:v}],[]),h=Nt({cols:S,list:o.data});return p.jsxs("div",{className:ze("page-wrapper",ki.tasks),children:[p.jsx(ht,{title:"QueryCoord Tasks",children:p.jsxs(p.Fragment,{children:[l.renderSearcher({defaultFilter:"task_name",className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(ki["tasks-table"],"table-view")},columns:s,loading:e.isLoading,getRowId:w=>w.task_name,rows:l.list||[]})]})}),p.jsx(ht,{title:"Compaction Tasks",children:p.jsxs(p.Fragment,{children:[d.renderSearcher({defaultFilter:"collection_id",className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(ki.compaction,"table-view")},columns:u,loading:t.isLoading,getRowId:w=>w.plan_id,rows:d.list||[]})]})}),p.jsx(ht,{title:"Index Build Tasks",children:p.jsxs(p.Fragment,{children:[g.renderSearcher({defaultFilter:"index_id",className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(ki["index-build"],"table-view")},columns:f,loading:n.isLoading,getRowId:w=>w.index_id,rows:g.list||[]})]})}),p.jsx(ht,{title:"Import Tasks",children:p.jsxs(p.Fragment,{children:[C.renderSearcher({defaultFilter:"job_id",className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(ki.import,"table-view")},columns:y,loading:r.isLoading,getRowId:w=>w.job_id,rows:C.list||[]})]})}),p.jsx(ht,{title:"Sync Tasks",children:p.jsxs(p.Fragment,{children:[h.renderSearcher({defaultFilter:"segment_id",className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:ze(ki.sync,"table-view")},columns:S,loading:o.isLoading,getRowId:w=>w.segment_id,rows:h.list||[]})]})})]})};function EK(e,t){const n=t.diff(e),r=Math.floor(n/1e3),o=Math.floor(r/60),i=Math.floor(o/60),a=Math.floor(i/24),s=Math.floor(a/30),l=Math.floor(s/12);return l>0?`${l}year${l>1?"s":""}`:s>0?`${s} month${s>1?"s":""}`:a>0?`${a} day${a>1?"s":""}`:i>0?`${i} h`:o>0?`${o} m`:r>0?`${r} s`:"< 1s"}const MK="_notice_q5p05_5",hh={"slow-requests":"_slow-requests_q5p05_1","sr-table":"_sr-table_q5p05_1",notice:MK},IK=()=>{const e=Xq(),t=r=>p.jsx(hv,{ellipsis:!0,json:r.getValue()}),n=b.useMemo(()=>[{field:"time",headerName:"Time"},{field:"trace_id",headerName:"Trace ID"},{field:"type",headerName:"Request"},{field:"user",headerName:"User",renderCell:o=>o.getValue()||"unknown"},{field:"database",headerName:"Database"},{field:"collection",headerName:"Collection"},{field:"query_params",headerName:"Parameters",renderCell:t},{field:"duration",headerName:"Duration"}],[]);return p.jsx("div",{className:ze("page-wrapper",hh["slow-requests"]),children:p.jsx(ht,{title:"Slow Requests",children:p.jsxs(p.Fragment,{children:[p.jsx("div",{className:hh.notice,children:p.jsxs(H1,{severity:"warning",children:[p.jsx("strong",{children:"Notice: "})," Slow request in the last 5 minutes."]})}),p.jsx(at,{classes:{tableContainer:ze(hh["sr-table"],"table-view")},columns:n,loading:e.isLoading,getRowId:r=>r.task_name,rows:e.data||[]})]})})})},mh={},OK=()=>{const e=Jq(),[t,n]=b.useState({page:0,pageSize:10}),[r,o]=b.useState({}),i=u=>{n(d=>({...d,page:u}))},a=u=>p.jsx("div",{className:mh["text-content"],children:u||"-"}),s=b.useMemo(()=>[{field:"key",headerName:"Attribute"},{field:"value",headerName:"Value",renderCell:d=>a(d.getValue())}],[]),l=u=>{o(d=>({...d,q:u.target.value}))},c=b.useMemo(()=>{const u=r.q||"";return(e.data||[]).filter(d=>{const f=d.key.toLowerCase().includes(u.toLowerCase()),g=d.value.toLowerCase().includes(u.toLowerCase());return f||g})},[e.data,r]);return p.jsx("div",{className:ze("page-wrapper",mh["slow-requests"]),children:p.jsx(ht,{title:"Milvus Configurations",children:p.jsxs(p.Fragment,{children:[p.jsx(V1,{classes:{root:"table-view-searcher"},type:"number",value:r.q,onChange:l,placeholder:"Search attribute or value...",onPointerEnterCapture:()=>{},onPointerLeaveCapture:()=>{}}),p.jsx(at,{classes:{tableContainer:ze(mh["sr-table"],"table-view")},columns:s,loading:e.isLoading,getRowId:u=>u.task_name,rows:c,page:t.page,pageSize:t.pageSize,paginationMode:"client",showPagination:!0,onPageChange:i,rowCount:c.length})]})})})},LK="_trigger_1f0gw_1",NK="_opened_1f0gw_6",Mu={trigger:LK,opened:NK,"tools-menu":"_tools-menu_1f0gw_13","menu-item-content":"_menu-item-content_1f0gw_24"},AK=e=>{const[t,n]=b.useState(null),r=!!t,o=b.useMemo(()=>[{name:"Pprof",link:"/debug/pprof"},{name:"Memory Data Visualization",link:"/static"}],[]),i=f=>()=>{window.open(f.link,"_blank")},a=()=>o.map(f=>p.jsx(Lc,{onClick:i(f),children:p.jsxs("div",{className:Mu["menu-item-content"],children:[f.name,p.jsx(Mm,{})]})})),s=()=>{n(null)},l=p.jsx(A1,{open:r,anchorEl:t,onClose:s,container:document.body,autoFocus:!1,classes:{paper:Mu["tools-menu"]},children:a()}),c=f=>{n(g=>g?null:f.currentTarget)},u=ze(Mu.trigger,r&&Mu.opened,e.className),d=p.jsxs("span",{className:u,onClick:c,children:["Tools",p.jsx(la,{})]});return p.jsxs(p.Fragment,{children:[d,l]})},DK="_header_wg0jk_7",jK="_nav_wg0jk_18",FK="_active_wg0jk_26",BK="_others_wg0jk_32",zK="_content_wg0jk_45",kr={header:DK,nav:jK,"nav-item":"_nav-item_wg0jk_22",active:FK,others:BK,"zilliz-link":"_zilliz-link_wg0jk_35","zilliz-link-text":"_zilliz-link-text_wg0jk_41",content:zK,"with-ad":"_with-ad_wg0jk_49"},Tn={"base-info":"_base-info_ifype_12","info-row":"_info-row_ifype_15","info-row-label":"_info-row-label_ifype_22","info-row-value":"_info-row-value_ifype_26","base-info-form":"_base-info-form_ifype_29","base-info-form-label":"_base-info-form-label_ifype_32","rows-title":"_rows-title_ifype_38","info-icon":"_info-icon_ifype_44"},HK=()=>{const{identifier:e}=Yk(),{collection:t,indexes:n,segments:r,collectionState:o,channels:i}=Vq(e),a=[{label:"Collection Id",key:"collection_id"},{label:"Collection Name",key:"collection_name"},{label:"Database Name",key:"db_name"},{label:"Created Time",key:"created_time"},{label:"Fields",key:"fields",mapValueTo:T=>T==null?void 0:T.fields.length},{label:"Shards Num",key:"shards_num"},{label:"Consistency level",key:"consistency_level"},{label:"Virtual Channels",key:"virtual_channel_names",mapValueTo:T=>(T==null?void 0:T.virtual_channel_names.join(", "))||"-"},{label:"Physical Channels",key:"physical_channel_names",mapValueTo:T=>(T==null?void 0:T.physical_channel_names.join(", "))||"-"},{label:"Status",key:"__",mapValueTo:()=>p.jsx(bo,{value:o.name,detail:o.desc})}],s=T=>{const k=T.data;return p.jsx(hv,{ellipsis:!0,json:k.user_index_params})},l=T=>{const k=T.toString(),R=T?"deleted":"none";return p.jsx(bo,{value:R,label:k})},c=b.useMemo(()=>[{field:"index_id",headerName:"Index ID"},{field:"name",headerName:"Index Name"},{field:"field_id",headerName:"Field ID"},{field:"create_time",headerName:"Created Time"},{field:"is_deleted",headerName:"IsDeleted",renderCell:k=>l(k.getValue())},{field:"user_index_params",headerName:"User Index Params",renderCell:s}],[]),u=()=>p.jsxs("div",{className:Tn["rows-title"],children:[p.jsx("span",{children:"Rows"}),p.jsx(ha,{tooltip:{title:"Exclude deleted rows",placement:"top"},children:p.jsx(F1,{className:Tn["info-icon"]})})]}),d=b.useMemo(()=>[{field:"id",headerName:"Segment ID"},{field:"nodeId",headerName:"Node ID"},{field:"rowsCount",headerName:"Rows",renderHeader:u},{field:"state",headerName:"State"},{field:"level",headerName:"Level"},{field:"buildIndexState",headerName:"Build Index State",renderCell:k=>p.jsx(bo,{value:k.getValue()})},{field:"loadIndexState",headerName:"Load Index State",renderCell:k=>p.jsx(bo,{value:k.getValue()})}],[]),f=Nt({cols:d,list:r}),g=T=>{const{data:k}=T;return k.name||k.channel_name},m=T=>{const k=T.getValue();return p.jsx("div",{className:ze(Tn["state-detail"],(k==null?void 0:k.isError)&&Tn.error),children:k==null?void 0:k.message})},y=b.useMemo(()=>[{field:"name",headerName:"Channel Name",renderCell:g,searchable:!0},{field:"leaderId",headerName:"Leader ID",searchable:!0},{field:"nodeId",headerName:"Node ID",searchable:!0,renderCell:k=>k.getValue()||"-"},{field:"watchState",headerName:"Watch State",renderCell:k=>p.jsx(bo,{value:k.getValue()})},{field:"stateDetail",headerName:"State Detail",renderCell:m}],[]),C=Nt({cols:y,list:i}),v=b.useMemo(()=>[{field:"name",headerName:"Name"},{field:"value",headerName:"Value"}],[]),S=b.useMemo(()=>[{field:"name",headerName:"Name"},{field:"field_id",headerName:"Field ID"},{field:"data_type",headerName:"Data Type"},{field:"element_type",headerName:"Element Type"},{field:"default_value",headerName:"Default Value"},{field:"is_primary_key",headerName:"Is Primary Key",renderCell:k=>p.jsx(bo,{value:(!!k.getValue()).toString()})},{field:"auto_id",headerName:"Auto ID",renderCell:k=>p.jsx(bo,{value:(!!k.getValue()).toString()})}],[]),h=b.useMemo(()=>[{field:"partition_name",headerName:"Name"},{field:"partition_id",headerName:"ID"},{field:"created_utc_timestamp",headerName:"Created Time"}],[]),w=()=>{if(!(t!=null&&t.properties)||!Object.keys(t.properties).length)return null;const T=Object.keys(t.properties).map(k=>({name:k,value:t.properties[k]}));return p.jsxs("div",{className:Tn["base-info-form"],children:[p.jsx("div",{className:Tn["base-info-form-label"],children:"Collection Properties"}),p.jsx(at,{columns:v,rows:T})]})},_=()=>{const T=a.map(k=>p.jsxs("div",{className:Tn["info-row"],children:[p.jsx("div",{className:Tn["info-row-label"],children:k.label}),p.jsx("div",{className:Tn["info-row-value"],children:k.mapValueTo?k.mapValueTo(t):t==null?void 0:t[k.key]})]},k.key));return p.jsxs("div",{className:Tn["base-info"],children:[T,w(),p.jsxs("div",{className:Tn["base-info-form"],children:[p.jsx("div",{className:Tn["base-info-form-label"],children:"Collection Fields"}),p.jsx(at,{columns:S,rows:(t==null?void 0:t.fields)||[]})]}),p.jsxs("div",{className:Tn["base-info-form"],children:[p.jsx("div",{className:Tn["base-info-form-label"],children:"Collection Partitions"}),p.jsx(at,{columns:h,rows:(t==null?void 0:t.partition_infos)||[]})]})]})};return p.jsxs("div",{className:ze("page-wrapper",Tn.wrapper),children:[p.jsx(ht,{title:"Base Info",children:_()}),p.jsx(ht,{title:"Indexes",children:p.jsx(at,{classes:{tableContainer:"table-view"},columns:c,rows:n||[]})}),p.jsxs(ht,{title:"Segments",children:[f.renderSearcher({className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:"table-view"},columns:d,rows:f.list})]}),p.jsxs(ht,{title:"Channels",children:[C.renderSearcher({className:"table-view-filter-searcher"}),p.jsx(at,{classes:{tableContainer:"table-view"},columns:y,rows:C.list})]})]})},VK="_wrapper_gbea3_12",WK="_title_gbea3_28",UK="_desc_gbea3_31",Iu={wrapper:VK,title:WK,desc:UK,"link-btn":"_link-btn_gbea3_36"},GK=e=>{if(e.hidden)return!0;const t=()=>{window.open(UG,"_blank")};return p.jsxs("div",{className:Iu.wrapper,children:[p.jsx(vt,{variant:"h4Medium",className:Iu.title,children:"Try Managed Milvus for Free"}),p.jsx(vt,{variant:"body3Regular",className:Iu.desc,children:"Zilliz Cloud is hassle-free, powered by Milvus and 10x faster."}),p.jsxs("div",{className:Iu["link-btn"],onClick:t,children:["Get Started",p.jsx(qK,{})]})]})},qK=e=>p.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 14 14",...e,children:p.jsx("path",{d:"M3.5 11L11.0833 3.41669M11.0833 3.41669V10.6967M11.0833 3.41669H3.80333",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"})}),KK=[{state:"Growing",data:[{todo:$r.WatchChannel,cause:vn.GrowingGenerated,value:[!0,!1,!1,!1]},{cause:vn.LoadGrowing,value:[!0,!0,!0,!1]},{cause:vn.SegmentReady,value:[!0,!0,!0,!0]},{cause:vn.GrowingFlushed,value:[!1,!0,!0,!0]},{todo:$r.ReleaseGrowing,cause:vn.SealedLoaded,value:[!1,!0,!0,!1]},{value:[null,!1,!1,!0],error:Oi.DelegatorOffline}]},{state:"L0 Sealed",data:[{todo:$r.LoadL0,cause:vn.L0Generated,value:[!0,!1,!1,!1]},{cause:vn.L0Loaded,value:[!0,!0,!0,!1]},{cause:vn.L0Ready,value:[!0,!0,!0,!0]},{cause:vn.L0Compacted,value:[!1,!0,!0,!0]},{todo:$r.ReleaseL0,cause:vn.CompactToLoaded,value:[!1,!0,!0,!1]},{value:[null,!1,!1,!0],error:Oi.DelegatorOffline}]},{state:"L1 Sealed",data:[{todo:$r.LoadL1,cause:vn.L1Generated,value:[!0,!1,!1,!1]},{cause:vn.L1Loaded,value:[!0,!0,!0,!1]},{cause:vn.L1Ready,value:[!0,!0,!0,!0]},{cause:vn.L1Compacted,value:[!1,!0,!0,!0]},{todo:$r.ReleaseL1,cause:vn.CompactToLoaded,value:[!1,!0,!0,!1]},{todo:$r.AddRouter,value:[null,!0,!1,!0],error:Oi.DelegatorOffline},{todo:$r.RemoveRouter,value:[null,!1,!0,!1],error:Oi.WorkerOffline},{todo:$r.LoadL1,value:[null,!1,!0,!0],error:Oi.WorkerOffline},{todo:$r.ReleaseL1,value:[null,!0,!1,!1],error:Oi.DelegatorOffline}]}],ZK=[{value:[!0,!1,!1,!1],todo:cd.Sub,cause:wl.LoadCollection},{value:[!0,!0,!0,!1],cause:wl.ChannelWatched},{value:[!0,!0,!0,!0],cause:wl.ChannelReady},{value:[!1,!0,!0,!1],cause:wl.ReleaseCollection,todo:cd.UnSub},{value:[null,!1,!1,!0],todo:cd.UnSub,error:U3.Offline}],QK=()=>{const e=KK.reduce((i,a)=>{const{state:s,data:l}=a,c=l.map((u,d)=>({...u,state:d===0?s:void 0}));return i.concat(c)},[]),t=i=>i===null?"-":i?p.jsx(XN,{color:"success"}):p.jsx(Rp,{color:"error"}),n=b.useMemo(()=>[{field:"state",headerName:"Segment State"},{field:"nt",headerName:"Next Target",renderCell:a=>t(a.data.value[0])},{field:"wd",headerName:"Worker Distribution",renderCell:a=>t(a.data.value[1])},{field:"dlv",headerName:"Delegator Leader View",renderCell:a=>t(a.data.value[2])},{field:"ct",headerName:"Current Target",renderCell:a=>t(a.data.value[3])},{field:"todo",headerName:"Todo Action"},{field:"cause",headerName:"Cause"},{field:"error",headerName:"Error"}],[]),r=ZK,o=b.useMemo(()=>[{field:"nt",headerName:"Next Target",renderCell:a=>t(a.data.value[0])},{field:"dlv",headerName:"Delegator Leader View",renderCell:a=>t(a.data.value[1])},{field:"wlv",headerName:"Worker Leader view",renderCell:a=>t(a.data.value[2])},{field:"ct",headerName:"Current Target",renderCell:a=>t(a.data.value[3])},{field:"todo",headerName:"Todo Action"},{field:"cause",headerName:"Cause"},{field:"error",headerName:"Error"}],[]);return p.jsxs("div",{className:"page-wrapper",children:[p.jsx(ht,{title:"Segment State detail",children:p.jsx(at,{classes:{tableContainer:"table-view"},columns:n,rows:e,pageSize:100,showPagination:!1})}),p.jsx(ht,{title:"Channel State detail",children:p.jsx(at,{classes:{tableContainer:"table-view"},columns:o,rows:r})})]})},Ou="withoutAd",YK=()=>{const e=kf(),[t]=k4(),n=b.useMemo(()=>{var d;const c=localStorage.getItem(Ou);if(t.has(Ou)){const f=((d=t.get(Ou))==null?void 0:d.toLowerCase())!=="false";return localStorage.setItem(Ou,f.toString()),f}return c?c==="true":!1},[t]),r=()=>{e("/")},o=b.useMemo(()=>[{name:"Home",id:"index",path:"/",Comp:mK},{name:"Collections",id:"collections",path:"/collections",Comp:RK},{name:"Collections Detail",id:"collections-detail",path:"/collections/:identifier",Comp:HK,withoutNav:!0},{name:"Query",id:"query",path:"/query_component",Comp:PK},{name:"Query Target",withoutNav:!0,id:"query_target",path:"/query_target",Comp:TK},{name:"State Detail Helper",withoutNav:!0,id:"state_helper",path:"/state_helper",Comp:QK},{name:"Data",id:"data",path:"/data_component",Comp:kK},{name:"Tasks",id:"tasks",path:"/tasks",Comp:$K},{name:"Slow Requests",id:"slowRequests",path:"/slow_requests",Comp:IK},{name:"Configurations",id:"configs",path:"/configs",Comp:OK}],[]),i=()=>p.jsx("div",{className:kr.logo,onClick:r,children:p.jsx("img",{src:xq})}),a=()=>{const c=o.filter(u=>!u.withoutNav).map(u=>p.jsx(R4,{className:({isActive:d})=>ze(kr["nav-item"],d&&kr.active),to:u.path,children:u.name},u.id));return c.push(p.jsx(AK,{className:kr["nav-item"]})),p.jsx("div",{className:kr.nav,children:c})},s=()=>p.jsx("div",{className:kr.others}),l=()=>o.map(c=>p.jsx(u2,{path:c.path,Component:c.Comp},c.id));return p.jsxs("div",{className:kr.layout,children:[p.jsxs("header",{className:kr.header,children:[i(),a(),s()]}),p.jsxs("div",{className:ze(kr.content,!n&&kr["with-ad"]),children:[p.jsx("div",{className:kr.detail,children:p.jsx(p4,{children:l()})}),p.jsx(GK,{hidden:!!n})]})]})},XK=()=>{const e=bB("enUS");H3(),XC(document.getElementById("root")).render(p.jsx(P8,{theme:e,children:p.jsx(w4,{basename:"webui",children:p.jsx(wH,{value:{revalidateIfStale:!1,revalidateOnFocus:!1,revalidateOnReconnect:!1},children:p.jsx(YK,{})})})}))};XK(); diff --git a/internal/http/webui/assets/index-Cpi1DtPq.css b/internal/http/webui/assets/index-fggaDIOF.css similarity index 79% rename from internal/http/webui/assets/index-Cpi1DtPq.css rename to internal/http/webui/assets/index-fggaDIOF.css index bfda195f0fbdc..0c687f3a119fe 100644 --- a/internal/http/webui/assets/index-Cpi1DtPq.css +++ b/internal/http/webui/assets/index-fggaDIOF.css @@ -1 +1 @@ -._wrapper_f0zdf_1{line-height:1}button._zButton_2ljo4_3{border-radius:6px;line-height:135%;font-weight:500;box-sizing:border-box;box-shadow:none;text-transform:inherit;min-width:80px}button._zButton_2ljo4_3:hover{box-shadow:none}button._zButton_2ljo4_3._disabled_2ljo4_16{opacity:.5;cursor:not-allowed}button._zButton_2ljo4_3.zSplitIconButton{min-width:24px}button._zButton_2ljo4_3._xlarge_2ljo4_25.zSplitIconButton,button._zButton_2ljo4_3._large_2ljo4_26.zSplitIconButton,button._zButton_2ljo4_3._medium_2ljo4_27.zSplitIconButton{padding:10px}button._zButton_2ljo4_3._xlarge_2ljo4_25 svg,button._zButton_2ljo4_3._large_2ljo4_26 svg,button._zButton_2ljo4_3._medium_2ljo4_27 svg{width:16px;height:16px}button._zButton_2ljo4_3._xlarge_2ljo4_25{padding:15.5px 20px;height:50px;font-size:14px;border-radius:8px}button._zButton_2ljo4_3._large_2ljo4_26{padding:10.5px 20px;height:40px;font-size:14px;border-radius:8px}button._zButton_2ljo4_3._medium_2ljo4_27{padding:8.5px 20px;height:36px;font-size:14px;border-radius:8px}button._zButton_2ljo4_3._small_2ljo4_58{padding:5px 12px;height:28px;font-size:13px;min-width:80px}button._zButton_2ljo4_3._small_2ljo4_58.zSplitIconButton{padding:7px;min-width:24px}button._zButton_2ljo4_3._small_2ljo4_58 svg{width:14px;height:14px}button._zButton_2ljo4_3._tiny_2ljo4_74{padding:3.5px 12px;height:24px;font-size:12px;font-weight:400;min-width:80px}button._zButton_2ljo4_3._tiny_2ljo4_74.zSplitIconButton{padding:6px;min-width:24px}button._zButton_2ljo4_3._tiny_2ljo4_74 svg{width:12px;height:12px}button._zButton_2ljo4_3._contained_2ljo4_92{color:#fff;background-color:#3f46ff}button._zButton_2ljo4_3._contained_2ljo4_92:hover{background-color:#181eca}button._zButton_2ljo4_3._contained_2ljo4_92:active{background-color:#141c63}button._zButton_2ljo4_3._outlined_2ljo4_105{color:#1d2939;background-color:#fff;border-color:#e4eaf1;box-shadow:0 1px 2px #21252c14}button._zButton_2ljo4_3._outlined_2ljo4_105._noShadow_2ljo4_111{box-shadow:none}button._zButton_2ljo4_3._outlined_2ljo4_105:hover{background-color:#f9f9fb}button._zButton_2ljo4_3._outlined_2ljo4_105._disabled_2ljo4_16{opacity:.5;background-color:#f9f9fb;cursor:not-allowed}button._zButton_2ljo4_3._danger_2ljo4_126{color:#fff;background-color:#f26868}button._zButton_2ljo4_3._danger_2ljo4_126:hover{background-color:#991b1b}button._zButton_2ljo4_3._textBlue_2ljo4_135{color:#3f46ff;min-width:0}button._zButton_2ljo4_3._textBlue_2ljo4_135._small_2ljo4_58{font-weight:400}button._zButton_2ljo4_3._textBlue_2ljo4_135._noMargin_2ljo4_143{margin:0;padding:0;height:auto}button._zButton_2ljo4_3._textBlue_2ljo4_135:hover{color:#181eca;background-color:#f2f3ff}button._zButton_2ljo4_3._textBlue_2ljo4_135:hover._noMargin_2ljo4_143{background-color:transparent}button._zButton_2ljo4_3._textBlack_2ljo4_159{color:#1d2939;min-width:0}button._zButton_2ljo4_3._textBlack_2ljo4_159._small_2ljo4_58{font-weight:400}button._zButton_2ljo4_3._textBlack_2ljo4_159._noMargin_2ljo4_143{margin:0;padding:0;height:auto}button._zButton_2ljo4_3._textBlack_2ljo4_159:hover{background-color:#f0f2f4}button._zButton_2ljo4_3._textBlack_2ljo4_159:hover._noMargin_2ljo4_143{color:#5d6d85;background-color:transparent}button._zButton_2ljo4_3._textGhost_2ljo4_183{padding:0;font-weight:400;color:#3f46ff;background-color:transparent;min-width:0}button._zButton_2ljo4_3._textGhost_2ljo4_183:hover{color:#181eca}button._zButton_2ljo4_3._text_2ljo4_135{color:#5d6d85;background-color:transparent;border:1px solid transparent}button._zButton_2ljo4_3._text_2ljo4_135:hover{color:#1d2939;border-color:#e4eaf1}button._zButton_2ljo4_3._link_2ljo4_206{color:#3f46ff;background-color:transparent;border:none}button._zButton_2ljo4_3._link_2ljo4_206:hover{color:#3f46ff;text-decoration:underline;background-color:transparent}button._zButton_2ljo4_3.MuiButtonGroup-firstButton{border-top-right-radius:0;border-bottom-right-radius:0}button._zButton_2ljo4_3.MuiButtonGroup-firstButton._contained_2ljo4_92{border-right:1px solid white}button._zButton_2ljo4_3.MuiButtonGroup-middleButton{border-radius:0}button._zButton_2ljo4_3.MuiButtonGroup-middleButton._contained_2ljo4_92{border-right:1px solid white;margin-left:0}button._zButton_2ljo4_3.MuiButtonGroup-lastButton{border-top-left-radius:0;border-bottom-left-radius:0}button._zButton_2ljo4_3.MuiButtonGroup-lastButton._contained_2ljo4_92{margin-left:0}button._zIconButton_1y2v2_3{border-radius:6px;color:#1d2939}button._zIconButton_1y2v2_3._disabled_1y2v2_7{color:#1d2939;cursor:not-allowed;opacity:.5}button._zIconButton_1y2v2_3._withMargin_1y2v2_13:hover{background-color:#f0f2f4}button._zIconButton_1y2v2_3._noMargin_1y2v2_19{padding:0}button._zIconButton_1y2v2_3._noMargin_1y2v2_19:hover{background-color:transparent;color:#5d6d85}button._zIconButton_1y2v2_3._withBorder_1y2v2_28{border:1px solid #e4eaf1;box-shadow:0 1px 2px #21252c14}button._zIconButton_1y2v2_3._withBorder_1y2v2_28:hover{background-color:#f9f9fb}button._zIconButton_1y2v2_3._large_1y2v2_37 svg,button._zIconButton_1y2v2_3._medium_1y2v2_38 svg{width:16px;height:16px}button._zIconButton_1y2v2_3._large_1y2v2_37._withMargin_1y2v2_13,button._zIconButton_1y2v2_3._medium_1y2v2_38._withMargin_1y2v2_13{width:36px;height:36px;padding:10px}button._zIconButton_1y2v2_3._small_1y2v2_49 svg{width:14px;height:14px}button._zIconButton_1y2v2_3._small_1y2v2_49._withMargin_1y2v2_13{width:28px;height:28px;padding:7px}button._zIconButton_1y2v2_3._xs_1y2v2_60 svg{width:12px;height:12px}button._zIconButton_1y2v2_3._xs_1y2v2_60._withMargin_1y2v2_13{width:24px;height:24px;padding:6px}._button_n3sxg_3{display:flex;align-items:center;justify-content:flex-end;padding:8px;border-radius:0 8px 8px 0;background-color:#f9f9fb}._button_n3sxg_3:hover{cursor:pointer}._button_n3sxg_3._disabled_n3sxg_16{padding:8px 12px}._button_n3sxg_3._disabled_n3sxg_16:hover{cursor:default}._button_n3sxg_3._disabled_n3sxg_16 ._text_n3sxg_23{min-width:-moz-fit-content;min-width:fit-content;z-index:10;color:#5d6d85}._button_n3sxg_3._parentInputDisabled_n3sxg_30 ._text_n3sxg_23{color:#a6b1be}._button_n3sxg_3 ._text_n3sxg_23{text-align:right;min-width:54px}._button_n3sxg_3 ._icon_n3sxg_41{margin-left:4px}._smallButton_n3sxg_46{padding:4px}._input_n3sxg_50 div.MuiInputBase-root{padding-right:0}._inputFocus_n3sxg_56 fieldset.MuiOutlinedInput-notchedOutline{border-width:1.5px;border-color:#3f46ff}div._paper_n3sxg_63{box-shadow:0 4px 10px #1d293914}._menu_n3sxg_67{margin-top:4px;border-radius:4px}._menu_n3sxg_67 ._menuItem_n3sxg_71{padding:6px 16px}._menu_n3sxg_67 ._menuItem_n3sxg_71.MuiMenuItem-root{min-width:126px}._menu_n3sxg_67 ._menuItem_n3sxg_71.MuiMenuItem-root:hover{background-color:#6066fd!important}._menu_n3sxg_67 ._selected_n3sxg_83{color:#3f46ff;background-color:#fff!important}._menuList_n3sxg_89{padding:4px 0}label._root_903dp_3{margin-left:0}label._root_903dp_3 ._label_903dp_6{line-height:20px}label._root_903dp_3.Mui-disabled{pointer-events:none}label._root_903dp_3.Mui-disabled ._label_903dp_6{opacity:.5}label._root_903dp_3:hover ._checkboxIcon_903dp_19 ._inner_903dp_20{border-color:#3f46ff;box-shadow:0 0 0 2px #f2f3ff}label._root_903dp_3 ._checkbox_903dp_19{padding:0 8px 0 0}._checkbox_903dp_19 rect:first-of-type{stroke:#fff;stroke-width:2px}._checkbox_903dp_19:hover ._checkboxIcon_903dp_19 ._inner_903dp_20{border-color:#3f46ff;box-shadow:0 0 0 2px #f2f3ff}._checkbox_903dp_19._disabledCheckbox_903dp_49{pointer-events:none}._checkbox_903dp_19 ._checkboxIcon_903dp_19{display:inline-flex;justify-content:center;align-items:center;width:20px;height:20px;box-sizing:border-box}._checkbox_903dp_19 ._checkboxIcon_903dp_19 ._inner_903dp_20{display:inline-flex;justify-content:center;align-items:center;width:16px;height:16px;box-sizing:border-box;border:1px solid #cdd8e8;border-radius:4px;box-shadow:0 1px 2px #21252c14;transition:border-color .2s ease-in-out,background-color .2s,box-shadow .1s ease-in-out}._checkbox_903dp_19 ._checkboxIcon_903dp_19._disabled_903dp_49{opacity:.5}._checkbox_903dp_19 ._checkboxIcon_903dp_19._disabled_903dp_49 ._inner_903dp_20{background-color:#f0f2f4}._checkbox_903dp_19 ._checkboxIcon_903dp_19._indeterminate_903dp_83 ._inner_903dp_20,._checkbox_903dp_19 ._checkboxIcon_903dp_19._checked_903dp_84 ._inner_903dp_20{border-color:#3f46ff;background-color:#3f46ff}._toolbar_158fz_3{display:flex;align-items:center;min-height:24px}._toolbar_158fz_3 div._actions_158fz_8{display:flex;align-items:center;gap:8px;margin-left:24px}._toolbar_158fz_3 ._selectLabel_158fz_16,._toolbar_158fz_3 ._select_158fz_16{color:#5d6d85}._toolbar_158fz_3 ._displayedRows_158fz_21,._toolbar_158fz_3 ._displayedRows_158fz_21 strong{font-weight:500}._toolbar_158fz_3 ._selectRoot_158fz_29{margin-left:12px;margin-right:24px}._toolbar_158fz_3 ._selectRoot_158fz_29 div._select_158fz_16{padding:0 4px 0 0;font-weight:500}._toolbar_158fz_3 ._selectRoot_158fz_29 div._select_158fz_16:focus{background-color:transparent}._toolbar_158fz_3 ._selectRoot_158fz_29 ._selectIcon_158fz_45{top:auto;bottom:auto}._toolbar_158fz_3 ._selectRoot_158fz_29 ._selectIcon_158fz_45 path{fill:#5d6d85}button._iconBtnRoot_158fz_56{padding:6px;border-radius:4px;border:1px solid #e4eaf1;color:#5d6d85;background-color:#fff;box-shadow:0 1px 2px #21252c14}button._iconBtnRoot_158fz_56 path{fill:#5d6d85}button._iconBtnRoot_158fz_56._iconBtnDisabled_158fz_68{color:#f0f2f4;border-color:#f0f2f4}button._iconBtnRoot_158fz_56._iconBtnDisabled_158fz_68 path{fill:#cdd8e8}button._iconBtnRoot_158fz_56:hover{background-color:#f9f9fb}._container_a4vk2_3:hover ._checkedCircle_a4vk2_5:after{background-color:#3f46ff;outline:#e4eaf1 solid 2px;box-shadow:none}._container_a4vk2_3 ._checkedCircle_a4vk2_5{position:relative;display:inline-block;width:20px;height:20px}._container_a4vk2_3 ._checkedCircle_a4vk2_5:after{position:absolute;top:2px;left:2px;content:"";display:inline-block;width:16px;height:16px;background-color:#cdd8e8;border-radius:50%;z-index:0;transition:background-color .1s ease-in-out;box-shadow:0 1px 2px #21252c14}._container_a4vk2_3 ._checkedCircle_a4vk2_5:before{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);content:"";display:inline-block;width:14px;height:14px;background-color:#fff;border-radius:50%;z-index:1;transition:all .1s ease-in-out}._container_a4vk2_3 ._checkedCircle_a4vk2_5._checked_a4vk2_5:after{background-color:#3f46ff}._container_a4vk2_3 ._checkedCircle_a4vk2_5._checked_a4vk2_5:before{width:6px;height:6px}._container_a4vk2_3 ._checkedCircle_a4vk2_5._disabled_a4vk2_60:before{background-color:#f0f2f4}._btnWrapper_mwgh3_3{display:flex;justify-content:flex-start;margin-top:16px}._titleWrapper_mwgh3_9{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;height:24px}._empty_1tvs0_3{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px 0}div._text_1tvs0_13{margin-top:4px;color:#a6b1be;word-wrap:break-word}._root_71ors_3{background-color:#fff}._root_71ors_3._withBorder_71ors_6{box-sizing:border-box;padding:8px 24px 16px;border-radius:12px;border:1px solid #e4eaf1;box-shadow:0 1px 2px #21252c14}._tableContainer_71ors_15{width:100%;overflow:auto;background-color:#fff}._resizer_71ors_21{position:absolute;top:0;height:50%;right:0;width:3px;background:#f9f9fb;border-bottom:1px solid transparent;cursor:col-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;transform:translateY(50%);opacity:.7}._cell_71ors_35{white-space:nowrap}th._headerCell_71ors_53,td._bodyCell_71ors_54{padding:0 12px;line-height:135%;border-color:#e4eaf1}th._headerCell_71ors_53{height:44px}td._bodyCell_71ors_54{height:52px}td._bodyCell_71ors_54._pinnedRight_71ors_67:before,td._bodyCell_71ors_54._pinnedLeft_71ors_68:before{content:" ";position:absolute;top:0;bottom:0;width:30px}td._bodyCell_71ors_54._pinnedRight_71ors_67:before{left:-30px;box-shadow:inset -10px 0 8px -8px #f4f4f9}td._bodyCell_71ors_54._pinnedLeft_71ors_68:before{right:-30px;box-shadow:inset 10px 0 8px -8px #f4f4f9}._rowWhenHover_71ors_92{background-color:#fff}._rowWhenHover_71ors_92:hover{background-color:#f9f9fb}._rowWhenHover_71ors_92:hover td._bodyCell_71ors_54{background-color:#f9f9fb!important}td._emptyCell_71ors_103{height:83px;padding:0;border-color:#e4eaf1;text-align:center}tfoot._footer_71ors_110{display:flex;justify-content:space-between;align-items:center}tfoot._footer_71ors_110._hide_71ors_114{display:none}tfoot._footer_71ors_110._onlyPagination_71ors_117{justify-content:flex-end}._section_1fkka_1{width:100%;margin:0 auto}._section_1fkka_1 ._title_1fkka_5{padding-left:16px}._section_1fkka_1 ._separator_1fkka_8{border:none;border-bottom:1px solid rgb(236,236,238);margin:12px 0 24px}._section_1fkka_1+._section_1fkka_1{margin-top:64px}._filter-searcher_162nl_1{display:inline-flex;align-items:center}._filter-searcher-label_162nl_5{font-weight:500;margin-right:12px}._filter-searcher-input_162nl_9{margin-left:12px!important;width:240px!important}._wrapper_1j79b_1{width:100%;word-break:break-all;white-space:break-spaces}._json-ellipsis_1j79b_7{cursor:pointer}._json-ellipsis-brace_1j79b_10{font-weight:500;color:#8c8c8c}._json-ellipsis-dot_1j79b_14{font-weight:500;margin:0 2px;color:#1493cc}._state_v8a2b_12{display:inline-flex;align-items:center}._state_v8a2b_12._none_v8a2b_16,._state_v8a2b_12._false_v8a2b_16{color:#a6b1be}._state_v8a2b_12._building_v8a2b_19,._state_v8a2b_12._loading_v8a2b_19{color:#02b3ff}._state_v8a2b_12._completed_v8a2b_22,._state_v8a2b_12._loaded_v8a2b_22,._state_v8a2b_12._healthy_v8a2b_22,._state_v8a2b_12._true_v8a2b_22{color:#49de80}._state_v8a2b_12._deleted_v8a2b_25{color:#f26868}._state_v8a2b_12 ._icon_v8a2b_28{color:currentColor;fill:currentColor;cursor:pointer;margin-left:4px}._status_19mpp_12{color:#49de80;font-weight:500}._status_19mpp_12._error_19mpp_16{color:#f26868}._comp-tabs_19mpp_20{margin-left:32px;margin-bottom:24px}._text-content_19mpp_25{padding:8px;white-space:break-spaces}._member-list_19mpp_30{padding:8px 0 8px 14px}._member-item-label_19mpp_34{font-weight:500;color:#8c8c8c;margin-right:8px}._member-item-label_19mpp_34:not(:first-of-type){margin-left:12px}._helper-link_19mpp_43{color:#991b1b!important;text-decoration:none;display:inline-flex;align-items:center;gap:2px;margin-left:4px}._helper-link_19mpp_43:hover,._helper-link_19mpp_43:active{color:#f26868!important}._queryable_12ixl_12{color:#49de80}._queryable_12ixl_12._error_12ixl_15{color:#f26868}._collection-filter_12ixl_19{width:220px!important}._detail_12ixl_23{width:0px!important;overflow:visible}._clear_12ixl_28 path{fill:#8c8c8c}@keyframes _loading_12ixl_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._json-detail-wrapper_12ixl_40 ._json-detail-content_12ixl_40{padding:12px 0 24px 24px}._json-detail-wrapper_12ixl_40 ._json-detail-content_12ixl_40._error_12ixl_15{color:#f26868}._json-detail-wrapper_12ixl_40 ._json-detail-loading_12ixl_46{padding:12px 0 24px 24px;color:#d3d3d3}._json-detail-wrapper_12ixl_40 ._json-detail-loading-icon_12ixl_50{animation:_loading_12ixl_1 1s linear infinite}._json-detail-wrapper_12ixl_40 ._json-detail-loading-icon_12ixl_50>path{fill:currentColor}._collection-filter-wrapper_12ixl_57{display:flex;align-content:center;justify-content:flex-end;margin:0 0 24px;padding-left:32px}._collection-name_12ixl_65{color:#1d2939;text-decoration:none}._collection-name_12ixl_65:hover{color:#02b3ff}._percentage_12ixl_73._unknown_12ixl_73{color:#a6b1be}._noty-list_uuq1r_1{margin:24px 32px 0}._noty-list_uuq1r_1 .MuiCollapse-root:not(:first-child){margin-top:12px}._noty-list_uuq1r_1 ._noty-item-content_uuq1r_7 :not(:first-child){margin-left:8px}._text-content_1tkuh_1{padding:8px;white-space:break-spaces}._slow-requests_q5p05_1 ._sr-table_q5p05_1{margin-top:24px}._notice_q5p05_5{padding:0 32px}._trigger_1f0gw_1{display:inline-flex;align-items:center;cursor:pointer}._trigger_1f0gw_1._opened_1f0gw_6{color:#1493cc}._trigger_1f0gw_1 .MuiSvgIcon-root{margin-left:4px}._tools-menu_1f0gw_13{margin-top:12px;opacity:1;transform:none;transition:opacity 315ms cubic-bezier(.4,0,.2,1),transform .21s cubic-bezier(.4,0,.2,1);top:44px;left:755px;transform-origin:282px 0px;box-shadow:0 1px 10px #6b798d4d!important}._menu-item-content_1f0gw_24{display:flex;align-items:center;font-size:14px;color:#1d2939}._menu-item-content_1f0gw_24 .MuiSvgIcon-root{margin-left:4px}._menu-item-content_1f0gw_24 .MuiSvgIcon-root path{fill:#8c8c8c}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol}._header_wg0jk_7{width:100%;height:58px;margin:0 auto;padding-left:40px!important;padding-right:40px!important;border-bottom:1px solid rgb(236,236,238);display:flex;align-items:center;box-sizing:border-box}._header_wg0jk_7 ._nav_wg0jk_18{flex:1 1 auto;margin-left:40px}._header_wg0jk_7 ._nav-item_wg0jk_22{text-decoration:none;color:#00131ab3}._header_wg0jk_7 ._nav-item_wg0jk_22:hover,._header_wg0jk_7 ._nav-item_wg0jk_22._active_wg0jk_26{color:#1493cc}._header_wg0jk_7 ._nav-item_wg0jk_22:not(:first-child){margin-left:16px}._header_wg0jk_7 ._others_wg0jk_32{flex:0 0 auto}._header_wg0jk_7 ._zilliz-link_wg0jk_35{background-color:#00a1ea!important}._header_wg0jk_7 ._zilliz-link_wg0jk_35:hover{background-color:#1493cc!important}._header_wg0jk_7 ._zilliz-link-text_wg0jk_41{margin-right:4px}._content_wg0jk_45{padding-top:32px;padding-bottom:60px}._content_wg0jk_45._with-ad_wg0jk_49 .page-wrapper{padding-right:calc(280px - min(10vw,280px))!important}.page-wrapper{min-width:960px;width:80vw;margin:0 auto;box-sizing:border-box}.table-view{width:calc(100% - 64px);margin:0 32px}.table-view-searcher{margin:0 32px 16px auto!important;width:240px!important}.table-view-filter-searcher{display:flex;justify-content:flex-end;margin:0 32px 16px auto!important}._base-info_ubkl2_12{margin:0 32px}._base-info_ubkl2_12 ._info-row_ubkl2_15{display:flex;align-items:center}._base-info_ubkl2_12 ._info-row_ubkl2_15:not(:last-of-type){margin-bottom:12px}._base-info_ubkl2_12 ._info-row-label_ubkl2_22{flex:0 0 240px;font-weight:500}._base-info_ubkl2_12 ._info-row-value_ubkl2_26{color:#5d6d85}._base-info-form_ubkl2_29:not(:last-of-type){margin-bottom:16px}._base-info-form-label_ubkl2_32{flex:0 0 240px;font-weight:500;margin-bottom:16px}._wrapper_gbea3_12{box-sizing:border-box;width:240px;padding:30px 20px;border-radius:12px;border:1px solid #d0d7dc;background:#fff;margin-top:32px;position:fixed;top:160px;right:20px;z-index:100;display:flex;flex-direction:column;gap:12px}._wrapper_gbea3_12 ._title_gbea3_28{font-family:PingFangSC-Regular}._wrapper_gbea3_12 ._desc_gbea3_31{color:#5d6d85;font-family:PingFangSC-Regular}._link-btn_gbea3_36{font-size:14px;line-height:22px;justify-content:center;background-color:#1d2939;color:#fff;border:1px solid #1d2939;padding:7px 28px;border-radius:6px;display:flex;align-items:center;gap:8px;cursor:pointer;margin-top:12px}._link-btn_gbea3_36:hover,._link-btn_gbea3_36:active{opacity:.8} +._wrapper_f0zdf_1{line-height:1}button._zButton_2ljo4_3{border-radius:6px;line-height:135%;font-weight:500;box-sizing:border-box;box-shadow:none;text-transform:inherit;min-width:80px}button._zButton_2ljo4_3:hover{box-shadow:none}button._zButton_2ljo4_3._disabled_2ljo4_16{opacity:.5;cursor:not-allowed}button._zButton_2ljo4_3.zSplitIconButton{min-width:24px}button._zButton_2ljo4_3._xlarge_2ljo4_25.zSplitIconButton,button._zButton_2ljo4_3._large_2ljo4_26.zSplitIconButton,button._zButton_2ljo4_3._medium_2ljo4_27.zSplitIconButton{padding:10px}button._zButton_2ljo4_3._xlarge_2ljo4_25 svg,button._zButton_2ljo4_3._large_2ljo4_26 svg,button._zButton_2ljo4_3._medium_2ljo4_27 svg{width:16px;height:16px}button._zButton_2ljo4_3._xlarge_2ljo4_25{padding:15.5px 20px;height:50px;font-size:14px;border-radius:8px}button._zButton_2ljo4_3._large_2ljo4_26{padding:10.5px 20px;height:40px;font-size:14px;border-radius:8px}button._zButton_2ljo4_3._medium_2ljo4_27{padding:8.5px 20px;height:36px;font-size:14px;border-radius:8px}button._zButton_2ljo4_3._small_2ljo4_58{padding:5px 12px;height:28px;font-size:13px;min-width:80px}button._zButton_2ljo4_3._small_2ljo4_58.zSplitIconButton{padding:7px;min-width:24px}button._zButton_2ljo4_3._small_2ljo4_58 svg{width:14px;height:14px}button._zButton_2ljo4_3._tiny_2ljo4_74{padding:3.5px 12px;height:24px;font-size:12px;font-weight:400;min-width:80px}button._zButton_2ljo4_3._tiny_2ljo4_74.zSplitIconButton{padding:6px;min-width:24px}button._zButton_2ljo4_3._tiny_2ljo4_74 svg{width:12px;height:12px}button._zButton_2ljo4_3._contained_2ljo4_92{color:#fff;background-color:#3f46ff}button._zButton_2ljo4_3._contained_2ljo4_92:hover{background-color:#181eca}button._zButton_2ljo4_3._contained_2ljo4_92:active{background-color:#141c63}button._zButton_2ljo4_3._outlined_2ljo4_105{color:#1d2939;background-color:#fff;border-color:#e4eaf1;box-shadow:0 1px 2px #21252c14}button._zButton_2ljo4_3._outlined_2ljo4_105._noShadow_2ljo4_111{box-shadow:none}button._zButton_2ljo4_3._outlined_2ljo4_105:hover{background-color:#f9f9fb}button._zButton_2ljo4_3._outlined_2ljo4_105._disabled_2ljo4_16{opacity:.5;background-color:#f9f9fb;cursor:not-allowed}button._zButton_2ljo4_3._danger_2ljo4_126{color:#fff;background-color:#f26868}button._zButton_2ljo4_3._danger_2ljo4_126:hover{background-color:#991b1b}button._zButton_2ljo4_3._textBlue_2ljo4_135{color:#3f46ff;min-width:0}button._zButton_2ljo4_3._textBlue_2ljo4_135._small_2ljo4_58{font-weight:400}button._zButton_2ljo4_3._textBlue_2ljo4_135._noMargin_2ljo4_143{margin:0;padding:0;height:auto}button._zButton_2ljo4_3._textBlue_2ljo4_135:hover{color:#181eca;background-color:#f2f3ff}button._zButton_2ljo4_3._textBlue_2ljo4_135:hover._noMargin_2ljo4_143{background-color:transparent}button._zButton_2ljo4_3._textBlack_2ljo4_159{color:#1d2939;min-width:0}button._zButton_2ljo4_3._textBlack_2ljo4_159._small_2ljo4_58{font-weight:400}button._zButton_2ljo4_3._textBlack_2ljo4_159._noMargin_2ljo4_143{margin:0;padding:0;height:auto}button._zButton_2ljo4_3._textBlack_2ljo4_159:hover{background-color:#f0f2f4}button._zButton_2ljo4_3._textBlack_2ljo4_159:hover._noMargin_2ljo4_143{color:#5d6d85;background-color:transparent}button._zButton_2ljo4_3._textGhost_2ljo4_183{padding:0;font-weight:400;color:#3f46ff;background-color:transparent;min-width:0}button._zButton_2ljo4_3._textGhost_2ljo4_183:hover{color:#181eca}button._zButton_2ljo4_3._text_2ljo4_135{color:#5d6d85;background-color:transparent;border:1px solid transparent}button._zButton_2ljo4_3._text_2ljo4_135:hover{color:#1d2939;border-color:#e4eaf1}button._zButton_2ljo4_3._link_2ljo4_206{color:#3f46ff;background-color:transparent;border:none}button._zButton_2ljo4_3._link_2ljo4_206:hover{color:#3f46ff;text-decoration:underline;background-color:transparent}button._zButton_2ljo4_3.MuiButtonGroup-firstButton{border-top-right-radius:0;border-bottom-right-radius:0}button._zButton_2ljo4_3.MuiButtonGroup-firstButton._contained_2ljo4_92{border-right:1px solid white}button._zButton_2ljo4_3.MuiButtonGroup-middleButton{border-radius:0}button._zButton_2ljo4_3.MuiButtonGroup-middleButton._contained_2ljo4_92{border-right:1px solid white;margin-left:0}button._zButton_2ljo4_3.MuiButtonGroup-lastButton{border-top-left-radius:0;border-bottom-left-radius:0}button._zButton_2ljo4_3.MuiButtonGroup-lastButton._contained_2ljo4_92{margin-left:0}button._zIconButton_1y2v2_3{border-radius:6px;color:#1d2939}button._zIconButton_1y2v2_3._disabled_1y2v2_7{color:#1d2939;cursor:not-allowed;opacity:.5}button._zIconButton_1y2v2_3._withMargin_1y2v2_13:hover{background-color:#f0f2f4}button._zIconButton_1y2v2_3._noMargin_1y2v2_19{padding:0}button._zIconButton_1y2v2_3._noMargin_1y2v2_19:hover{background-color:transparent;color:#5d6d85}button._zIconButton_1y2v2_3._withBorder_1y2v2_28{border:1px solid #e4eaf1;box-shadow:0 1px 2px #21252c14}button._zIconButton_1y2v2_3._withBorder_1y2v2_28:hover{background-color:#f9f9fb}button._zIconButton_1y2v2_3._large_1y2v2_37 svg,button._zIconButton_1y2v2_3._medium_1y2v2_38 svg{width:16px;height:16px}button._zIconButton_1y2v2_3._large_1y2v2_37._withMargin_1y2v2_13,button._zIconButton_1y2v2_3._medium_1y2v2_38._withMargin_1y2v2_13{width:36px;height:36px;padding:10px}button._zIconButton_1y2v2_3._small_1y2v2_49 svg{width:14px;height:14px}button._zIconButton_1y2v2_3._small_1y2v2_49._withMargin_1y2v2_13{width:28px;height:28px;padding:7px}button._zIconButton_1y2v2_3._xs_1y2v2_60 svg{width:12px;height:12px}button._zIconButton_1y2v2_3._xs_1y2v2_60._withMargin_1y2v2_13{width:24px;height:24px;padding:6px}._button_n3sxg_3{display:flex;align-items:center;justify-content:flex-end;padding:8px;border-radius:0 8px 8px 0;background-color:#f9f9fb}._button_n3sxg_3:hover{cursor:pointer}._button_n3sxg_3._disabled_n3sxg_16{padding:8px 12px}._button_n3sxg_3._disabled_n3sxg_16:hover{cursor:default}._button_n3sxg_3._disabled_n3sxg_16 ._text_n3sxg_23{min-width:-moz-fit-content;min-width:fit-content;z-index:10;color:#5d6d85}._button_n3sxg_3._parentInputDisabled_n3sxg_30 ._text_n3sxg_23{color:#a6b1be}._button_n3sxg_3 ._text_n3sxg_23{text-align:right;min-width:54px}._button_n3sxg_3 ._icon_n3sxg_41{margin-left:4px}._smallButton_n3sxg_46{padding:4px}._input_n3sxg_50 div.MuiInputBase-root{padding-right:0}._inputFocus_n3sxg_56 fieldset.MuiOutlinedInput-notchedOutline{border-width:1.5px;border-color:#3f46ff}div._paper_n3sxg_63{box-shadow:0 4px 10px #1d293914}._menu_n3sxg_67{margin-top:4px;border-radius:4px}._menu_n3sxg_67 ._menuItem_n3sxg_71{padding:6px 16px}._menu_n3sxg_67 ._menuItem_n3sxg_71.MuiMenuItem-root{min-width:126px}._menu_n3sxg_67 ._menuItem_n3sxg_71.MuiMenuItem-root:hover{background-color:#6066fd!important}._menu_n3sxg_67 ._selected_n3sxg_83{color:#3f46ff;background-color:#fff!important}._menuList_n3sxg_89{padding:4px 0}label._root_903dp_3{margin-left:0}label._root_903dp_3 ._label_903dp_6{line-height:20px}label._root_903dp_3.Mui-disabled{pointer-events:none}label._root_903dp_3.Mui-disabled ._label_903dp_6{opacity:.5}label._root_903dp_3:hover ._checkboxIcon_903dp_19 ._inner_903dp_20{border-color:#3f46ff;box-shadow:0 0 0 2px #f2f3ff}label._root_903dp_3 ._checkbox_903dp_19{padding:0 8px 0 0}._checkbox_903dp_19 rect:first-of-type{stroke:#fff;stroke-width:2px}._checkbox_903dp_19:hover ._checkboxIcon_903dp_19 ._inner_903dp_20{border-color:#3f46ff;box-shadow:0 0 0 2px #f2f3ff}._checkbox_903dp_19._disabledCheckbox_903dp_49{pointer-events:none}._checkbox_903dp_19 ._checkboxIcon_903dp_19{display:inline-flex;justify-content:center;align-items:center;width:20px;height:20px;box-sizing:border-box}._checkbox_903dp_19 ._checkboxIcon_903dp_19 ._inner_903dp_20{display:inline-flex;justify-content:center;align-items:center;width:16px;height:16px;box-sizing:border-box;border:1px solid #cdd8e8;border-radius:4px;box-shadow:0 1px 2px #21252c14;transition:border-color .2s ease-in-out,background-color .2s,box-shadow .1s ease-in-out}._checkbox_903dp_19 ._checkboxIcon_903dp_19._disabled_903dp_49{opacity:.5}._checkbox_903dp_19 ._checkboxIcon_903dp_19._disabled_903dp_49 ._inner_903dp_20{background-color:#f0f2f4}._checkbox_903dp_19 ._checkboxIcon_903dp_19._indeterminate_903dp_83 ._inner_903dp_20,._checkbox_903dp_19 ._checkboxIcon_903dp_19._checked_903dp_84 ._inner_903dp_20{border-color:#3f46ff;background-color:#3f46ff}._toolbar_158fz_3{display:flex;align-items:center;min-height:24px}._toolbar_158fz_3 div._actions_158fz_8{display:flex;align-items:center;gap:8px;margin-left:24px}._toolbar_158fz_3 ._selectLabel_158fz_16,._toolbar_158fz_3 ._select_158fz_16{color:#5d6d85}._toolbar_158fz_3 ._displayedRows_158fz_21,._toolbar_158fz_3 ._displayedRows_158fz_21 strong{font-weight:500}._toolbar_158fz_3 ._selectRoot_158fz_29{margin-left:12px;margin-right:24px}._toolbar_158fz_3 ._selectRoot_158fz_29 div._select_158fz_16{padding:0 4px 0 0;font-weight:500}._toolbar_158fz_3 ._selectRoot_158fz_29 div._select_158fz_16:focus{background-color:transparent}._toolbar_158fz_3 ._selectRoot_158fz_29 ._selectIcon_158fz_45{top:auto;bottom:auto}._toolbar_158fz_3 ._selectRoot_158fz_29 ._selectIcon_158fz_45 path{fill:#5d6d85}button._iconBtnRoot_158fz_56{padding:6px;border-radius:4px;border:1px solid #e4eaf1;color:#5d6d85;background-color:#fff;box-shadow:0 1px 2px #21252c14}button._iconBtnRoot_158fz_56 path{fill:#5d6d85}button._iconBtnRoot_158fz_56._iconBtnDisabled_158fz_68{color:#f0f2f4;border-color:#f0f2f4}button._iconBtnRoot_158fz_56._iconBtnDisabled_158fz_68 path{fill:#cdd8e8}button._iconBtnRoot_158fz_56:hover{background-color:#f9f9fb}._container_a4vk2_3:hover ._checkedCircle_a4vk2_5:after{background-color:#3f46ff;outline:#e4eaf1 solid 2px;box-shadow:none}._container_a4vk2_3 ._checkedCircle_a4vk2_5{position:relative;display:inline-block;width:20px;height:20px}._container_a4vk2_3 ._checkedCircle_a4vk2_5:after{position:absolute;top:2px;left:2px;content:"";display:inline-block;width:16px;height:16px;background-color:#cdd8e8;border-radius:50%;z-index:0;transition:background-color .1s ease-in-out;box-shadow:0 1px 2px #21252c14}._container_a4vk2_3 ._checkedCircle_a4vk2_5:before{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);content:"";display:inline-block;width:14px;height:14px;background-color:#fff;border-radius:50%;z-index:1;transition:all .1s ease-in-out}._container_a4vk2_3 ._checkedCircle_a4vk2_5._checked_a4vk2_5:after{background-color:#3f46ff}._container_a4vk2_3 ._checkedCircle_a4vk2_5._checked_a4vk2_5:before{width:6px;height:6px}._container_a4vk2_3 ._checkedCircle_a4vk2_5._disabled_a4vk2_60:before{background-color:#f0f2f4}._btnWrapper_mwgh3_3{display:flex;justify-content:flex-start;margin-top:16px}._titleWrapper_mwgh3_9{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;height:24px}._empty_1tvs0_3{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px 0}div._text_1tvs0_13{margin-top:4px;color:#a6b1be;word-wrap:break-word}._root_71ors_3{background-color:#fff}._root_71ors_3._withBorder_71ors_6{box-sizing:border-box;padding:8px 24px 16px;border-radius:12px;border:1px solid #e4eaf1;box-shadow:0 1px 2px #21252c14}._tableContainer_71ors_15{width:100%;overflow:auto;background-color:#fff}._resizer_71ors_21{position:absolute;top:0;height:50%;right:0;width:3px;background:#f9f9fb;border-bottom:1px solid transparent;cursor:col-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;transform:translateY(50%);opacity:.7}._cell_71ors_35{white-space:nowrap}th._headerCell_71ors_53,td._bodyCell_71ors_54{padding:0 12px;line-height:135%;border-color:#e4eaf1}th._headerCell_71ors_53{height:44px}td._bodyCell_71ors_54{height:52px}td._bodyCell_71ors_54._pinnedRight_71ors_67:before,td._bodyCell_71ors_54._pinnedLeft_71ors_68:before{content:" ";position:absolute;top:0;bottom:0;width:30px}td._bodyCell_71ors_54._pinnedRight_71ors_67:before{left:-30px;box-shadow:inset -10px 0 8px -8px #f4f4f9}td._bodyCell_71ors_54._pinnedLeft_71ors_68:before{right:-30px;box-shadow:inset 10px 0 8px -8px #f4f4f9}._rowWhenHover_71ors_92{background-color:#fff}._rowWhenHover_71ors_92:hover{background-color:#f9f9fb}._rowWhenHover_71ors_92:hover td._bodyCell_71ors_54{background-color:#f9f9fb!important}td._emptyCell_71ors_103{height:83px;padding:0;border-color:#e4eaf1;text-align:center}tfoot._footer_71ors_110{display:flex;justify-content:space-between;align-items:center}tfoot._footer_71ors_110._hide_71ors_114{display:none}tfoot._footer_71ors_110._onlyPagination_71ors_117{justify-content:flex-end}._section_1fkka_1{width:100%;margin:0 auto}._section_1fkka_1 ._title_1fkka_5{padding-left:16px}._section_1fkka_1 ._separator_1fkka_8{border:none;border-bottom:1px solid rgb(236,236,238);margin:12px 0 24px}._section_1fkka_1+._section_1fkka_1{margin-top:64px}._filter-searcher_162nl_1{display:inline-flex;align-items:center}._filter-searcher-label_162nl_5{font-weight:500;margin-right:12px}._filter-searcher-input_162nl_9{margin-left:12px!important;width:240px!important}._wrapper_1j79b_1{width:100%;word-break:break-all;white-space:break-spaces}._json-ellipsis_1j79b_7{cursor:pointer}._json-ellipsis-brace_1j79b_10{font-weight:500;color:#8c8c8c}._json-ellipsis-dot_1j79b_14{font-weight:500;margin:0 2px;color:#1493cc}._state_v8a2b_12{display:inline-flex;align-items:center}._state_v8a2b_12._none_v8a2b_16,._state_v8a2b_12._false_v8a2b_16{color:#a6b1be}._state_v8a2b_12._building_v8a2b_19,._state_v8a2b_12._loading_v8a2b_19{color:#02b3ff}._state_v8a2b_12._completed_v8a2b_22,._state_v8a2b_12._loaded_v8a2b_22,._state_v8a2b_12._healthy_v8a2b_22,._state_v8a2b_12._true_v8a2b_22{color:#49de80}._state_v8a2b_12._deleted_v8a2b_25{color:#f26868}._state_v8a2b_12 ._icon_v8a2b_28{color:currentColor;fill:currentColor;cursor:pointer;margin-left:4px}._status_19mpp_12{color:#49de80;font-weight:500}._status_19mpp_12._error_19mpp_16{color:#f26868}._comp-tabs_19mpp_20{margin-left:32px;margin-bottom:24px}._text-content_19mpp_25{padding:8px;white-space:break-spaces}._member-list_19mpp_30{padding:8px 0 8px 14px}._member-item-label_19mpp_34{font-weight:500;color:#8c8c8c;margin-right:8px}._member-item-label_19mpp_34:not(:first-of-type){margin-left:12px}._helper-link_19mpp_43{color:#991b1b!important;text-decoration:none;display:inline-flex;align-items:center;gap:2px;margin-left:4px}._helper-link_19mpp_43:hover,._helper-link_19mpp_43:active{color:#f26868!important}._queryable_12ixl_12{color:#49de80}._queryable_12ixl_12._error_12ixl_15{color:#f26868}._collection-filter_12ixl_19{width:220px!important}._detail_12ixl_23{width:0px!important;overflow:visible}._clear_12ixl_28 path{fill:#8c8c8c}@keyframes _loading_12ixl_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._json-detail-wrapper_12ixl_40 ._json-detail-content_12ixl_40{padding:12px 0 24px 24px}._json-detail-wrapper_12ixl_40 ._json-detail-content_12ixl_40._error_12ixl_15{color:#f26868}._json-detail-wrapper_12ixl_40 ._json-detail-loading_12ixl_46{padding:12px 0 24px 24px;color:#d3d3d3}._json-detail-wrapper_12ixl_40 ._json-detail-loading-icon_12ixl_50{animation:_loading_12ixl_1 1s linear infinite}._json-detail-wrapper_12ixl_40 ._json-detail-loading-icon_12ixl_50>path{fill:currentColor}._collection-filter-wrapper_12ixl_57{display:flex;align-content:center;justify-content:flex-end;margin:0 0 24px;padding-left:32px}._collection-name_12ixl_65{color:#1d2939;text-decoration:none}._collection-name_12ixl_65:hover{color:#02b3ff}._percentage_12ixl_73._unknown_12ixl_73{color:#a6b1be}._state-header_zl8hm_12{display:flex;align-items:center;gap:4px}._state-header-helper-icon_zl8hm_17{cursor:pointer;color:#5d6d85}._noty-list_uuq1r_1{margin:24px 32px 0}._noty-list_uuq1r_1 .MuiCollapse-root:not(:first-child){margin-top:12px}._noty-list_uuq1r_1 ._noty-item-content_uuq1r_7 :not(:first-child){margin-left:8px}._text-content_1tkuh_1{padding:8px;white-space:break-spaces}._slow-requests_q5p05_1 ._sr-table_q5p05_1{margin-top:24px}._notice_q5p05_5{padding:0 32px}._trigger_1f0gw_1{display:inline-flex;align-items:center;cursor:pointer}._trigger_1f0gw_1._opened_1f0gw_6{color:#1493cc}._trigger_1f0gw_1 .MuiSvgIcon-root{margin-left:4px}._tools-menu_1f0gw_13{margin-top:12px;opacity:1;transform:none;transition:opacity 315ms cubic-bezier(.4,0,.2,1),transform .21s cubic-bezier(.4,0,.2,1);top:44px;left:755px;transform-origin:282px 0px;box-shadow:0 1px 10px #6b798d4d!important}._menu-item-content_1f0gw_24{display:flex;align-items:center;font-size:14px;color:#1d2939}._menu-item-content_1f0gw_24 .MuiSvgIcon-root{margin-left:4px}._menu-item-content_1f0gw_24 .MuiSvgIcon-root path{fill:#8c8c8c}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol}._header_wg0jk_7{width:100%;height:58px;margin:0 auto;padding-left:40px!important;padding-right:40px!important;border-bottom:1px solid rgb(236,236,238);display:flex;align-items:center;box-sizing:border-box}._header_wg0jk_7 ._nav_wg0jk_18{flex:1 1 auto;margin-left:40px}._header_wg0jk_7 ._nav-item_wg0jk_22{text-decoration:none;color:#00131ab3}._header_wg0jk_7 ._nav-item_wg0jk_22:hover,._header_wg0jk_7 ._nav-item_wg0jk_22._active_wg0jk_26{color:#1493cc}._header_wg0jk_7 ._nav-item_wg0jk_22:not(:first-child){margin-left:16px}._header_wg0jk_7 ._others_wg0jk_32{flex:0 0 auto}._header_wg0jk_7 ._zilliz-link_wg0jk_35{background-color:#00a1ea!important}._header_wg0jk_7 ._zilliz-link_wg0jk_35:hover{background-color:#1493cc!important}._header_wg0jk_7 ._zilliz-link-text_wg0jk_41{margin-right:4px}._content_wg0jk_45{padding-top:32px;padding-bottom:60px}._content_wg0jk_45._with-ad_wg0jk_49 .page-wrapper{padding-right:calc(280px - min(10vw,280px))!important}.page-wrapper{min-width:960px;width:80vw;margin:0 auto;box-sizing:border-box}.table-view{width:calc(100% - 64px);margin:0 32px}.table-view-searcher{margin:0 32px 16px auto!important;width:240px!important}.table-view-filter-searcher{display:flex;justify-content:flex-end;margin:0 32px 16px auto!important}._base-info_ifype_12{margin:0 32px}._base-info_ifype_12 ._info-row_ifype_15{display:flex;align-items:center}._base-info_ifype_12 ._info-row_ifype_15:not(:last-of-type){margin-bottom:12px}._base-info_ifype_12 ._info-row-label_ifype_22{flex:0 0 240px;font-weight:500}._base-info_ifype_12 ._info-row-value_ifype_26{color:#5d6d85}._base-info-form_ifype_29:not(:last-of-type){margin-bottom:16px}._base-info-form-label_ifype_32{flex:0 0 240px;font-weight:500;margin-bottom:16px}._rows-title_ifype_38{display:flex;gap:4px;align-items:center}._info-icon_ifype_44{color:#5d6d85;cursor:pointer}._wrapper_gbea3_12{box-sizing:border-box;width:240px;padding:30px 20px;border-radius:12px;border:1px solid #d0d7dc;background:#fff;margin-top:32px;position:fixed;top:160px;right:20px;z-index:100;display:flex;flex-direction:column;gap:12px}._wrapper_gbea3_12 ._title_gbea3_28{font-family:PingFangSC-Regular}._wrapper_gbea3_12 ._desc_gbea3_31{color:#5d6d85;font-family:PingFangSC-Regular}._link-btn_gbea3_36{font-size:14px;line-height:22px;justify-content:center;background-color:#1d2939;color:#fff;border:1px solid #1d2939;padding:7px 28px;border-radius:6px;display:flex;align-items:center;gap:8px;cursor:pointer;margin-top:12px}._link-btn_gbea3_36:hover,._link-btn_gbea3_36:active{opacity:.8} diff --git a/internal/http/webui/index.html b/internal/http/webui/index.html index 7f84d8411b66e..2c2f414b4d9c5 100644 --- a/internal/http/webui/index.html +++ b/internal/http/webui/index.html @@ -1,19 +1,27 @@ - - - - - - - - Milvus Management - - - - - -
- - - \ No newline at end of file + + + + + + + Milvus Management + + + + +
+ + From 19a5c31907124b41685087aba04e8d867a8836f5 Mon Sep 17 00:00:00 2001 From: congqixia Date: Thu, 2 Jan 2025 10:50:55 +0800 Subject: [PATCH 49/69] enhance: Bump golang/x/net to v0.33 fixing security alarm (#38850) Related to https://github.com/milvus-io/milvus/security/dependabot/106 Signed-off-by: Congqi Xia --- client/go.mod | 2 +- client/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- pkg/go.mod | 2 +- pkg/go.sum | 4 ++-- tests/go_client/go.mod | 2 +- tests/go_client/go.sum | 4 ++-- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/client/go.mod b/client/go.mod index c0c9c66f1184a..07492c7b2bd9b 100644 --- a/client/go.mod +++ b/client/go.mod @@ -99,7 +99,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/crypto v0.31.0 // indirect - golang.org/x/net v0.27.0 // indirect + golang.org/x/net v0.33.0 // indirect golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.21.0 // indirect diff --git a/client/go.sum b/client/go.sum index 01aa96e0f8104..d4d7e5a1601a5 100644 --- a/client/go.sum +++ b/client/go.sum @@ -634,8 +634,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= -golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= diff --git a/go.mod b/go.mod index 979cd17eed9db..5ed45a46879f0 100644 --- a/go.mod +++ b/go.mod @@ -48,7 +48,7 @@ require ( go.uber.org/zap v1.27.0 golang.org/x/crypto v0.31.0 golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 - golang.org/x/net v0.27.0 + golang.org/x/net v0.33.0 golang.org/x/oauth2 v0.21.0 golang.org/x/sync v0.10.0 golang.org/x/text v0.21.0 diff --git a/go.sum b/go.sum index 3ca015cabd1b2..f65b21e48d0e7 100644 --- a/go.sum +++ b/go.sum @@ -1142,8 +1142,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= -golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= diff --git a/pkg/go.mod b/pkg/go.mod index 05f8f6bf17c11..dd9f7bbffd09c 100644 --- a/pkg/go.mod +++ b/pkg/go.mod @@ -50,7 +50,7 @@ require ( go.uber.org/zap v1.27.0 golang.org/x/crypto v0.31.0 golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 - golang.org/x/net v0.27.0 + golang.org/x/net v0.33.0 golang.org/x/sync v0.10.0 golang.org/x/sys v0.28.0 google.golang.org/grpc v1.65.0 diff --git a/pkg/go.sum b/pkg/go.sum index 94c36fbd95238..d339ec77fba97 100644 --- a/pkg/go.sum +++ b/pkg/go.sum @@ -928,8 +928,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= -golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= diff --git a/tests/go_client/go.mod b/tests/go_client/go.mod index aba1720c798f8..26d4204b02752 100644 --- a/tests/go_client/go.mod +++ b/tests/go_client/go.mod @@ -102,7 +102,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.31.0 // indirect golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 // indirect - golang.org/x/net v0.27.0 // indirect + golang.org/x/net v0.33.0 // indirect golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.21.0 // indirect diff --git a/tests/go_client/go.sum b/tests/go_client/go.sum index 01aa96e0f8104..d4d7e5a1601a5 100644 --- a/tests/go_client/go.sum +++ b/tests/go_client/go.sum @@ -634,8 +634,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= -golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= From 907fc24f85bc63d34aae8e4a3d21d8d5dafd7b58 Mon Sep 17 00:00:00 2001 From: smellthemoon <64083300+smellthemoon@users.noreply.github.com> Date: Thu, 2 Jan 2025 14:16:54 +0800 Subject: [PATCH 50/69] enhance: support null expr (#38772) #31728 --------- Signed-off-by: lixinguo Co-authored-by: lixinguo --- internal/core/src/common/Types.h | 1 + .../src/exec/expression/BinaryRangeExpr.cpp | 1 + internal/core/src/exec/expression/Expr.cpp | 12 + .../core/src/exec/expression/NullExpr.cpp | 150 ++++ internal/core/src/exec/expression/NullExpr.h | 65 ++ .../core/src/exec/expression/UnaryExpr.cpp | 8 +- internal/core/src/expr/ITypeExpr.h | 28 +- internal/core/src/query/PlanProto.cpp | 14 + internal/core/src/query/PlanProto.h | 3 + internal/core/unittest/test_array_expr.cpp | 100 +++ internal/core/unittest/test_expr.cpp | 325 ++++++++ internal/core/unittest/test_string_expr.cpp | 107 +++ .../core/unittest/test_utils/GenExprProto.h | 11 +- internal/parser/planparserv2/Plan.g4 | 5 + .../planparserv2/check_identical_test.go | 2 +- .../parser/planparserv2/generated/Plan.interp | 6 +- .../parser/planparserv2/generated/Plan.tokens | 46 +- .../planparserv2/generated/PlanLexer.interp | 8 +- .../planparserv2/generated/PlanLexer.tokens | 46 +- .../generated/plan_base_visitor.go | 8 + .../planparserv2/generated/plan_lexer.go | 759 +++++++++--------- .../planparserv2/generated/plan_parser.go | 537 ++++++++----- .../planparserv2/generated/plan_visitor.go | 6 + .../parser/planparserv2/parser_visitor.go | 41 + .../planparserv2/plan_parser_v2_test.go | 104 ++- internal/parser/planparserv2/show_visitor.go | 11 + internal/proto/plan.proto | 12 + 27 files changed, 1756 insertions(+), 660 deletions(-) create mode 100644 internal/core/src/exec/expression/NullExpr.cpp create mode 100644 internal/core/src/exec/expression/NullExpr.h diff --git a/internal/core/src/common/Types.h b/internal/core/src/common/Types.h index 3dd85e271741d..8c5ab0ac93065 100644 --- a/internal/core/src/common/Types.h +++ b/internal/core/src/common/Types.h @@ -215,6 +215,7 @@ using GroupByValueType = std::variant; using ContainsType = proto::plan::JSONContainsExpr_JSONOp; +using NullExprType = proto::plan::NullExpr_NullOp; inline bool IsPrimaryKeyDataType(DataType data_type) { diff --git a/internal/core/src/exec/expression/BinaryRangeExpr.cpp b/internal/core/src/exec/expression/BinaryRangeExpr.cpp index a51e58ed8fc3a..7dd0943794703 100644 --- a/internal/core/src/exec/expression/BinaryRangeExpr.cpp +++ b/internal/core/src/exec/expression/BinaryRangeExpr.cpp @@ -161,6 +161,7 @@ PhyBinaryRangeFilterExpr::PreCheckOverflow(HighPrecisionType& val1, (input != nullptr) ? ProcessChunksForValidByOffsets(is_index_mode_, *input) : ProcessChunksForValid(is_index_mode_); + auto res_vec = std::make_shared(TargetBitmap(batch_size), std::move(valid_res)); return res_vec; diff --git a/internal/core/src/exec/expression/Expr.cpp b/internal/core/src/exec/expression/Expr.cpp index 445aa4c15278a..6f89803ddd905 100644 --- a/internal/core/src/exec/expression/Expr.cpp +++ b/internal/core/src/exec/expression/Expr.cpp @@ -28,9 +28,11 @@ #include "exec/expression/JsonContainsExpr.h" #include "exec/expression/LogicalBinaryExpr.h" #include "exec/expression/LogicalUnaryExpr.h" +#include "exec/expression/NullExpr.h" #include "exec/expression/TermExpr.h" #include "exec/expression/UnaryExpr.h" #include "exec/expression/ValueExpr.h" +#include "expr/ITypeExpr.h" #include @@ -285,6 +287,16 @@ CompileExpression(const expr::TypedExprPtr& expr, context->get_segment(), context->get_active_count(), context->query_config()->get_expr_batch_size()); + } else if (auto column_expr = + std::dynamic_pointer_cast( + expr)) { + result = std::make_shared( + compiled_inputs, + column_expr, + "PhyNullExpr", + context->get_segment(), + context->get_active_count(), + context->query_config()->get_expr_batch_size()); } else { PanicInfo(ExprInvalid, "unsupport expr: ", expr->ToString()); } diff --git a/internal/core/src/exec/expression/NullExpr.cpp b/internal/core/src/exec/expression/NullExpr.cpp new file mode 100644 index 0000000000000..40aefdc48df89 --- /dev/null +++ b/internal/core/src/exec/expression/NullExpr.cpp @@ -0,0 +1,150 @@ +// Licensed to the LF AI & Data foundation under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "NullExpr.h" +#include +#include +#include "common/Array.h" +#include "common/Types.h" +#include "log/Log.h" +#include "query/Utils.h" +namespace milvus { +namespace exec { + +void +PhyNullExpr::Eval(EvalCtx& context, VectorPtr& result) { + auto input = context.get_offset_input(); + switch (expr_->column_.data_type_) { + case DataType::BOOL: { + result = ExecVisitorImpl(input); + break; + } + case DataType::INT8: { + result = ExecVisitorImpl(input); + break; + } + case DataType::INT16: { + result = ExecVisitorImpl(input); + break; + } + case DataType::INT32: { + result = ExecVisitorImpl(input); + break; + } + case DataType::INT64: { + result = ExecVisitorImpl(input); + break; + } + case DataType::FLOAT: { + result = ExecVisitorImpl(input); + break; + } + case DataType::DOUBLE: { + result = ExecVisitorImpl(input); + break; + } + case DataType::VARCHAR: { + if (segment_->type() == SegmentType::Growing && + !storage::MmapManager::GetInstance() + .GetMmapConfig() + .growing_enable_mmap) { + result = ExecVisitorImpl(input); + } else { + result = ExecVisitorImpl(input); + } + break; + } + case DataType::JSON: { + result = ExecVisitorImpl(input); + break; + } + case DataType::ARRAY: { + result = ExecVisitorImpl(input); + break; + } + default: + PanicInfo(DataTypeInvalid, + "unsupported data type: {}", + expr_->column_.data_type_); + } +} + +template +VectorPtr +PhyNullExpr::ExecVisitorImpl(OffsetVector* input) { + if (auto res = PreCheckNullable(input)) { + return res; + } + auto valid_res = + (input != nullptr) + ? ProcessChunksForValidByOffsets(is_index_mode_, *input) + : ProcessChunksForValid(is_index_mode_); + TargetBitmap res = valid_res.clone(); + if (expr_->op_ == proto::plan::NullExpr_NullOp_IsNull) { + res.flip(); + } + auto res_vec = + std::make_shared(std::move(res), std::move(valid_res)); + return res_vec; +} + +// if nullable is false, no need to process chunks +// res is all false when is null, and is all true when is not null +ColumnVectorPtr +PhyNullExpr::PreCheckNullable(OffsetVector* input) { + if (expr_->column_.nullable_) { + return nullptr; + } + + int64_t batch_size; + if (input != nullptr) { + batch_size = input->size(); + } else { + batch_size = precheck_pos_ + batch_size_ >= active_count_ + ? active_count_ - precheck_pos_ + : batch_size_; + precheck_pos_ += batch_size; + } + if (cached_precheck_res_ != nullptr && + cached_precheck_res_->size() == batch_size) { + return cached_precheck_res_; + } + + auto res_vec = std::make_shared(TargetBitmap(batch_size), + TargetBitmap(batch_size)); + TargetBitmapView res(res_vec->GetRawData(), batch_size); + TargetBitmapView valid_res(res_vec->GetValidRawData(), batch_size); + valid_res.set(); + switch (expr_->op_) { + case proto::plan::NullExpr_NullOp_IsNull: { + res.reset(); + break; + } + case proto::plan::NullExpr_NullOp_IsNotNull: { + res.set(); + break; + } + default: + PanicInfo(ExprInvalid, + "unsupported null expr type {}", + proto::plan::NullExpr_NullOp_Name(expr_->op_)); + } + cached_precheck_res_ = res_vec; + return cached_precheck_res_; +} + +} //namespace exec +} // namespace milvus diff --git a/internal/core/src/exec/expression/NullExpr.h b/internal/core/src/exec/expression/NullExpr.h new file mode 100644 index 0000000000000..33b6bccffeb44 --- /dev/null +++ b/internal/core/src/exec/expression/NullExpr.h @@ -0,0 +1,65 @@ +// Licensed to the LF AI & Data foundation under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once + +#include + +#include "common/EasyAssert.h" +#include "common/Types.h" +#include "common/Vector.h" +#include "exec/expression/Expr.h" +#include "expr/ITypeExpr.h" +#include "segcore/SegmentInterface.h" + +namespace milvus { +namespace exec { + +class PhyNullExpr : public SegmentExpr { + public: + PhyNullExpr(const std::vector>& input, + const std::shared_ptr& expr, + const std::string& name, + const segcore::SegmentInternalInterface* segment, + int64_t active_count, + int64_t batch_size) + : SegmentExpr(std::move(input), + name, + segment, + expr->column_.field_id_, + active_count, + batch_size), + expr_(expr) { + } + + void + Eval(EvalCtx& context, VectorPtr& result) override; + + private: + ColumnVectorPtr + PreCheckNullable(OffsetVector* input); + + template + VectorPtr + ExecVisitorImpl(OffsetVector* input); + + private: + std::shared_ptr expr_; + ColumnVectorPtr cached_precheck_res_{nullptr}; + int64_t precheck_pos_{0}; +}; +} //namespace exec +} // namespace milvus \ No newline at end of file diff --git a/internal/core/src/exec/expression/UnaryExpr.cpp b/internal/core/src/exec/expression/UnaryExpr.cpp index 725af0854049a..d3453d1f66f69 100644 --- a/internal/core/src/exec/expression/UnaryExpr.cpp +++ b/internal/core/src/exec/expression/UnaryExpr.cpp @@ -905,10 +905,10 @@ PhyUnaryRangeFilterExpr::PreCheckOverflow(OffsetVector* input) { : batch_size_; overflow_check_pos_ += batch_size; } - auto valid = (input != nullptr) - ? ProcessChunksForValidByOffsets( - CanUseIndex(), *input) - : ProcessChunksForValid(CanUseIndex()); + auto valid = + (input != nullptr) + ? ProcessChunksForValidByOffsets(is_index_mode_, *input) + : ProcessChunksForValid(is_index_mode_); auto res_vec = std::make_shared( TargetBitmap(batch_size), std::move(valid)); TargetBitmapView res(res_vec->GetRawData(), batch_size); diff --git a/internal/core/src/expr/ITypeExpr.h b/internal/core/src/expr/ITypeExpr.h index 320e616b4e947..254975e3ff3d8 100644 --- a/internal/core/src/expr/ITypeExpr.h +++ b/internal/core/src/expr/ITypeExpr.h @@ -116,22 +116,26 @@ struct ColumnInfo { DataType data_type_; DataType element_type_; std::vector nested_path_; + bool nullable_; ColumnInfo(const proto::plan::ColumnInfo& column_info) : field_id_(column_info.field_id()), data_type_(static_cast(column_info.data_type())), element_type_(static_cast(column_info.element_type())), nested_path_(column_info.nested_path().begin(), - column_info.nested_path().end()) { + column_info.nested_path().end()), + nullable_(column_info.nullable()) { } ColumnInfo(FieldId field_id, DataType data_type, - std::vector nested_path = {}) + std::vector nested_path = {}, + bool nullable = false) : field_id_(field_id), data_type_(data_type), element_type_(DataType::NONE), - nested_path_(std::move(nested_path)) { + nested_path_(std::move(nested_path)), + nullable_(nullable) { } bool @@ -627,6 +631,24 @@ class BinaryArithOpEvalRangeExpr : public ITypeFilterExpr { const proto::plan::GenericValue value_; }; +class NullExpr : public ITypeFilterExpr { + public: + explicit NullExpr(const ColumnInfo& column, NullExprType op) + : ITypeFilterExpr(), column_(column), op_(op) { + } + + std::string + ToString() const override { + return fmt::format("NullExpr:[Column: {}, Operator: {} ", + column_.ToString(), + NullExpr_NullOp_Name(op_)); + } + + public: + const ColumnInfo column_; + NullExprType op_; +}; + class CallExpr : public ITypeFilterExpr { public: CallExpr(const std::string fun_name, diff --git a/internal/core/src/query/PlanProto.cpp b/internal/core/src/query/PlanProto.cpp index b9bec233c617c..85afac533c22c 100644 --- a/internal/core/src/query/PlanProto.cpp +++ b/internal/core/src/query/PlanProto.cpp @@ -315,6 +315,16 @@ ProtoParser::ParseUnaryRangeExprs(const proto::plan::UnaryRangeExpr& expr_pb) { expr::ColumnInfo(column_info), expr_pb.op(), expr_pb.value()); } +expr::TypedExprPtr +ProtoParser::ParseNullExprs(const proto::plan::NullExpr& expr_pb) { + auto& column_info = expr_pb.column_info(); + auto field_id = FieldId(column_info.field_id()); + auto data_type = schema[field_id].get_data_type(); + Assert(data_type == static_cast(column_info.data_type())); + return std::make_shared( + expr::ColumnInfo(column_info), expr_pb.op()); +} + expr::TypedExprPtr ProtoParser::ParseBinaryRangeExprs( const proto::plan::BinaryRangeExpr& expr_pb) { @@ -521,6 +531,10 @@ ProtoParser::ParseExprs(const proto::plan::Expr& expr_pb, result = ParseValueExprs(expr_pb.value_expr()); break; } + case ppe::kNullExpr: { + result = ParseNullExprs(expr_pb.null_expr()); + break; + } default: { std::string s; google::protobuf::TextFormat::PrintToString(expr_pb, &s); diff --git a/internal/core/src/query/PlanProto.h b/internal/core/src/query/PlanProto.h index 28aaaaa0cb67f..5aa5063d0adce 100644 --- a/internal/core/src/query/PlanProto.h +++ b/internal/core/src/query/PlanProto.h @@ -80,6 +80,9 @@ class ProtoParser { expr::TypedExprPtr ParseExistExprs(const proto::plan::ExistsExpr& expr_pb); + expr::TypedExprPtr + ParseNullExprs(const proto::plan::NullExpr& expr_pb); + expr::TypedExprPtr ParseJsonContainsExprs(const proto::plan::JSONContainsExpr& expr_pb); diff --git a/internal/core/unittest/test_array_expr.cpp b/internal/core/unittest/test_array_expr.cpp index 4133045a3b200..1be5522082432 100644 --- a/internal/core/unittest/test_array_expr.cpp +++ b/internal/core/unittest/test_array_expr.cpp @@ -782,6 +782,106 @@ TEST(Expr, TestArrayEqual) { } } +TEST(Expr, TestArrayNullExpr) { + std::vector>> testcases = + { + {R"(null_expr: < + column_info: < + field_id: 102 + data_type: Array + element_type:Int64 + nullable: true + > + op:IsNull + >)", + [](bool v) { return !v; }}, + }; + + std::string raw_plan_tmp = R"(vector_anns: < + field_id: 100 + predicates: < + @@@@ + > + query_info: < + topk: 10 + round_decimal: 3 + metric_type: "L2" + search_params: "{\"nprobe\": 10}" + > + placeholder_tag: "$0" + >)"; + auto schema = std::make_shared(); + auto vec_fid = schema->AddDebugField( + "fakevec", DataType::VECTOR_FLOAT, 16, knowhere::metric::L2); + auto i64_fid = schema->AddDebugField("id", DataType::INT64); + auto long_array_fid = schema->AddDebugField( + "long_array", DataType::ARRAY, DataType::INT64, true); + schema->set_primary_field_id(i64_fid); + + auto seg = CreateGrowingSegment(schema, empty_index_meta); + int N = 1000; + std::vector long_array_col; + int num_iters = 1; + FixedVector valid_data; + + for (int iter = 0; iter < num_iters; ++iter) { + auto raw_data = DataGen(schema, N, iter, 0, 1, 3); + auto new_long_array_col = raw_data.get_col(long_array_fid); + long_array_col.insert(long_array_col.end(), + new_long_array_col.begin(), + new_long_array_col.end()); + auto new_valid_col = raw_data.get_col_valid(long_array_fid); + valid_data.insert( + valid_data.end(), new_valid_col.begin(), new_valid_col.end()); + seg->PreInsert(N); + seg->Insert(iter * N, + N, + raw_data.row_ids_.data(), + raw_data.timestamps_.data(), + raw_data.raw_); + } + + auto seg_promote = dynamic_cast(seg.get()); + for (auto [clause, ref_func] : testcases) { + auto loc = raw_plan_tmp.find("@@@@"); + auto raw_plan = raw_plan_tmp; + raw_plan.replace(loc, 4, clause); + auto plan_str = translate_text_plan_to_binary_plan(raw_plan.c_str()); + auto plan = + CreateSearchPlanByExpr(*schema, plan_str.data(), plan_str.size()); + BitsetType final; + final = ExecuteQueryExpr( + plan->plan_node_->plannodes_->sources()[0]->sources()[0], + seg_promote, + N * num_iters, + MAX_TIMESTAMP); + EXPECT_EQ(final.size(), N * num_iters); + + // specify some offsets and do scalar filtering on these offsets + milvus::exec::OffsetVector offsets; + offsets.reserve(N * num_iters / 2); + for (auto i = 0; i < N * num_iters; ++i) { + if (i % 2 == 0) { + offsets.emplace_back(i); + } + } + auto col_vec = milvus::test::gen_filter_res( + plan->plan_node_->plannodes_->sources()[0]->sources()[0].get(), + seg_promote, + N * num_iters, + MAX_TIMESTAMP, + &offsets); + BitsetTypeView view(col_vec->GetRawData(), col_vec->size()); + EXPECT_EQ(view.size(), N * num_iters / 2); + for (int i = 0; i < N * num_iters; ++i) { + auto ans = final[i]; + auto valid = valid_data[i]; + auto ref = ref_func(valid); + ASSERT_EQ(ans, ref); + } + } +} + TEST(Expr, PraseArrayContainsExpr) { std::vector raw_plans{ R"(vector_anns:< diff --git a/internal/core/unittest/test_expr.cpp b/internal/core/unittest/test_expr.cpp index e161d2ae08794..4a31ecbd1466a 100644 --- a/internal/core/unittest/test_expr.cpp +++ b/internal/core/unittest/test_expr.cpp @@ -5138,6 +5138,233 @@ TEST_P(ExprTest, TestBinaryArithOpEvalRangeBenchExpr) { } } +TEST(Expr, TestExprNull) { + auto schema = std::make_shared(); + auto bool_fid = schema->AddDebugField("bool", DataType::BOOL, true); + auto bool_1_fid = schema->AddDebugField("bool1", DataType::BOOL); + auto int8_fid = schema->AddDebugField("int8", DataType::INT8, true); + auto int8_1_fid = schema->AddDebugField("int81", DataType::INT8); + auto int16_fid = schema->AddDebugField("int16", DataType::INT16, true); + auto int16_1_fid = schema->AddDebugField("int161", DataType::INT16); + auto int32_fid = schema->AddDebugField("int32", DataType::INT32, true); + auto int32_1_fid = schema->AddDebugField("int321", DataType::INT32); + auto int64_fid = schema->AddDebugField("int64", DataType::INT64, true); + auto int64_1_fid = schema->AddDebugField("int641", DataType::INT64); + auto str1_fid = schema->AddDebugField("string1", DataType::VARCHAR); + auto str2_fid = schema->AddDebugField("string2", DataType::VARCHAR, true); + auto float_fid = schema->AddDebugField("float", DataType::FLOAT, true); + auto float_1_fid = schema->AddDebugField("float1", DataType::FLOAT); + auto double_fid = schema->AddDebugField("double", DataType::DOUBLE, true); + auto double_1_fid = schema->AddDebugField("double1", DataType::DOUBLE); + schema->set_primary_field_id(str1_fid); + + std::map fids = {{DataType::BOOL, bool_fid}, + {DataType::INT8, int8_fid}, + {DataType::INT16, int16_fid}, + {DataType::INT32, int32_fid}, + {DataType::INT64, int64_fid}, + {DataType::VARCHAR, str2_fid}, + {DataType::FLOAT, float_fid}, + {DataType::DOUBLE, double_fid}}; + + std::map fids_not_nullable = { + {DataType::BOOL, bool_1_fid}, + {DataType::INT8, int8_1_fid}, + {DataType::INT16, int16_1_fid}, + {DataType::INT32, int32_1_fid}, + {DataType::INT64, int64_1_fid}, + {DataType::VARCHAR, str1_fid}, + {DataType::FLOAT, float_1_fid}, + {DataType::DOUBLE, double_1_fid}}; + + auto seg = CreateSealedSegment(schema); + FixedVector valid_data_bool; + FixedVector valid_data_i8; + FixedVector valid_data_i16; + FixedVector valid_data_i32; + FixedVector valid_data_i64; + FixedVector valid_data_str; + FixedVector valid_data_float; + FixedVector valid_data_double; + + int N = 1000; + auto raw_data = DataGen(schema, N); + valid_data_bool = raw_data.get_col_valid(bool_fid); + valid_data_i8 = raw_data.get_col_valid(int8_fid); + valid_data_i16 = raw_data.get_col_valid(int16_fid); + valid_data_i32 = raw_data.get_col_valid(int32_fid); + valid_data_i64 = raw_data.get_col_valid(int64_fid); + valid_data_str = raw_data.get_col_valid(str2_fid); + valid_data_float = raw_data.get_col_valid(float_fid); + valid_data_double = raw_data.get_col_valid(double_fid); + + FixedVector valid_data_all_true(N, true); + + // load field data + auto fields = schema->get_fields(); + for (auto field_data : raw_data.raw_->fields_data()) { + int64_t field_id = field_data.field_id(); + + auto info = FieldDataInfo(field_data.field_id(), N, "/tmp/a"); + auto field_meta = fields.at(FieldId(field_id)); + info.channel->push( + CreateFieldDataFromDataArray(N, &field_data, field_meta)); + info.channel->close(); + + seg->LoadFieldData(FieldId(field_id), info); + } + + auto build_nullable_expr = [&](DataType data_type, + NullExprType op) -> expr::TypedExprPtr { + return std::make_shared( + expr::ColumnInfo(fids[data_type], data_type, {}, true), op); + }; + + auto build_not_nullable_expr = [&](DataType data_type, + NullExprType op) -> expr::TypedExprPtr { + return std::make_shared( + expr::ColumnInfo( + fids_not_nullable[data_type], data_type, {}, false), + op); + }; + + auto test_is_null_ans = [=, &seg](expr::TypedExprPtr expr, + FixedVector valid_data) { + query::ExecPlanNodeVisitor visitor(*seg, MAX_TIMESTAMP); + BitsetType final; + auto plan = + std::make_shared(DEFAULT_PLANNODE_ID, expr); + final = ExecuteQueryExpr(plan, seg.get(), N, MAX_TIMESTAMP); + EXPECT_EQ(final.size(), N); + for (int i = 0; i < N; i++) { + EXPECT_NE(final[i], valid_data[i]); + } + }; + + auto test_is_not_null_ans = [=, &seg](expr::TypedExprPtr expr, + FixedVector valid_data) { + query::ExecPlanNodeVisitor visitor(*seg, MAX_TIMESTAMP); + BitsetType final; + auto plan = + std::make_shared(DEFAULT_PLANNODE_ID, expr); + final = ExecuteQueryExpr(plan, seg.get(), N, MAX_TIMESTAMP); + EXPECT_EQ(final.size(), N); + for (int i = 0; i < N; i++) { + EXPECT_EQ(final[i], valid_data[i]); + } + }; + + auto expr = build_nullable_expr(DataType::BOOL, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_bool); + expr = build_nullable_expr(DataType::INT8, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_i8); + expr = build_nullable_expr(DataType::INT16, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_i16); + expr = build_nullable_expr(DataType::INT32, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_i32); + expr = build_nullable_expr(DataType::INT64, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_i64); + expr = build_nullable_expr(DataType::FLOAT, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_float); + expr = build_nullable_expr(DataType::DOUBLE, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_double); + expr = build_nullable_expr(DataType::FLOAT, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_float); + expr = build_nullable_expr(DataType::DOUBLE, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_double); + expr = build_nullable_expr(DataType::BOOL, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_bool); + expr = build_nullable_expr(DataType::INT8, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_i8); + expr = build_nullable_expr(DataType::INT16, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_i16); + expr = build_nullable_expr(DataType::INT32, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_i32); + expr = build_nullable_expr(DataType::INT64, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_i64); + expr = build_nullable_expr(DataType::FLOAT, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_float); + expr = build_nullable_expr(DataType::DOUBLE, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_double); + expr = build_nullable_expr(DataType::FLOAT, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_float); + expr = build_nullable_expr(DataType::DOUBLE, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_double); + //not nullable expr + expr = build_not_nullable_expr(DataType::BOOL, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::INT8, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::INT16, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::INT32, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::INT64, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::FLOAT, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::DOUBLE, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::FLOAT, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::DOUBLE, + proto::plan::NullExpr_NullOp_IsNull); + test_is_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::BOOL, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::INT8, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::INT16, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::INT32, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::INT64, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::FLOAT, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::DOUBLE, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::FLOAT, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_all_true); + expr = build_not_nullable_expr(DataType::DOUBLE, + proto::plan::NullExpr_NullOp_IsNotNull); + test_is_not_null_ans(expr, valid_data_all_true); +} + TEST_P(ExprTest, TestCompareExprBenchTest) { auto schema = std::make_shared(); auto vec_fid = schema->AddDebugField("fakevec", data_type, 16, metric_type); @@ -11455,6 +11682,104 @@ TEST_P(ExprTest, TestUnaryRangeWithJSONNullable) { } } +TEST_P(ExprTest, TestNullExprWithJSON) { + std::vector>> testcases = + { + {R"(null_expr: < + column_info: < + field_id: 102 + data_type:JSON + nullable: true + > + op:IsNull + >)", + [](bool v) { return !v; }}, + }; + + std::string raw_plan_tmp = R"(vector_anns: < + field_id: 100 + predicates: < + @@@@ + > + query_info: < + topk: 10 + round_decimal: 3 + metric_type: "L2" + search_params: "{\"nprobe\": 10}" + > + placeholder_tag: "$0" + >)"; + auto schema = std::make_shared(); + auto vec_fid = schema->AddDebugField( + "fakevec", DataType::VECTOR_FLOAT, 16, knowhere::metric::L2); + auto i64_fid = schema->AddDebugField("id", DataType::INT64); + auto json_fid = schema->AddDebugField("json", DataType::JSON, true); + schema->set_primary_field_id(i64_fid); + + auto seg = CreateGrowingSegment(schema, empty_index_meta); + int N = 1000; + int num_iters = 1; + FixedVector valid_data; + std::vector json_col; + + for (int iter = 0; iter < num_iters; ++iter) { + auto raw_data = DataGen(schema, N, iter, 0, 1, 3); + auto new_json_col = raw_data.get_col(json_fid); + + json_col.insert( + json_col.end(), new_json_col.begin(), new_json_col.end()); + auto new_valid_col = raw_data.get_col_valid(json_fid); + valid_data.insert( + valid_data.end(), new_valid_col.begin(), new_valid_col.end()); + seg->PreInsert(N); + seg->Insert(iter * N, + N, + raw_data.row_ids_.data(), + raw_data.timestamps_.data(), + raw_data.raw_); + } + + auto seg_promote = dynamic_cast(seg.get()); + for (auto [clause, ref_func] : testcases) { + auto loc = raw_plan_tmp.find("@@@@"); + auto raw_plan = raw_plan_tmp; + raw_plan.replace(loc, 4, clause); + auto plan_str = translate_text_plan_to_binary_plan(raw_plan.c_str()); + auto plan = + CreateSearchPlanByExpr(*schema, plan_str.data(), plan_str.size()); + BitsetType final; + final = ExecuteQueryExpr( + plan->plan_node_->plannodes_->sources()[0]->sources()[0], + seg_promote, + N * num_iters, + MAX_TIMESTAMP); + EXPECT_EQ(final.size(), N * num_iters); + + // specify some offsets and do scalar filtering on these offsets + milvus::exec::OffsetVector offsets; + offsets.reserve(N * num_iters / 2); + for (auto i = 0; i < N * num_iters; ++i) { + if (i % 2 == 0) { + offsets.emplace_back(i); + } + } + auto col_vec = milvus::test::gen_filter_res( + plan->plan_node_->plannodes_->sources()[0]->sources()[0].get(), + seg_promote, + N * num_iters, + MAX_TIMESTAMP, + &offsets); + BitsetTypeView view(col_vec->GetRawData(), col_vec->size()); + EXPECT_EQ(view.size(), N * num_iters / 2); + for (int i = 0; i < N * num_iters; ++i) { + auto ans = final[i]; + auto valid = valid_data[i]; + auto ref = ref_func(valid); + ASSERT_EQ(ans, ref); + } + } +} + TEST_P(ExprTest, TestTermWithJSON) { std::vector< std::tuple(); + schema->AddDebugField("str", DataType::VARCHAR, true); + schema->AddDebugField("another_str", DataType::VARCHAR); + schema->AddDebugField( + "fvec", DataType::VECTOR_FLOAT, 16, knowhere::metric::L2); + auto pk = schema->AddDebugField("int64", DataType::INT64); + schema->set_primary_field_id(pk); + const auto& fvec_meta = schema->operator[](FieldName("fvec")); + const auto& str_meta = schema->operator[](FieldName("str")); + + auto gen_plan = + [&, fvec_meta, str_meta]( + NullExprType op) -> std::unique_ptr { + auto column_info = test::GenColumnInfo(str_meta.get_id().get(), + proto::schema::DataType::VarChar, + false, + false, + proto::schema::DataType::None, + true); + auto null_expr = test::GenNullExpr(op); + null_expr->set_allocated_column_info(column_info); + + auto expr = test::GenExpr().release(); + expr->set_allocated_null_expr(null_expr); + + proto::plan::VectorType vector_type; + if (fvec_meta.get_data_type() == DataType::VECTOR_FLOAT) { + vector_type = proto::plan::VectorType::FloatVector; + } else if (fvec_meta.get_data_type() == DataType::VECTOR_BINARY) { + vector_type = proto::plan::VectorType::BinaryVector; + } else if (fvec_meta.get_data_type() == DataType::VECTOR_FLOAT16) { + vector_type = proto::plan::VectorType::Float16Vector; + } + auto anns = GenAnns(expr, vector_type, fvec_meta.get_id().get(), "$0"); + + auto plan_node = std::make_unique(); + plan_node->set_allocated_vector_anns(anns); + return plan_node; + }; + + auto seg = CreateGrowingSegment(schema, empty_index_meta); + int N = 1000; + std::vector str_col; + FixedVector valid_data; + int num_iters = 100; + for (int iter = 0; iter < num_iters; ++iter) { + auto raw_data = DataGen(schema, N, iter); + auto new_str_col = raw_data.get_col(str_meta.get_id()); + auto begin = FIELD_DATA(new_str_col, string).begin(); + auto end = FIELD_DATA(new_str_col, string).end(); + str_col.insert(str_col.end(), begin, end); + auto new_str_valid_col = raw_data.get_col_valid(str_meta.get_id()); + valid_data.insert(valid_data.end(), + new_str_valid_col.begin(), + new_str_valid_col.end()); + seg->PreInsert(N); + seg->Insert(iter * N, + N, + raw_data.row_ids_.data(), + raw_data.timestamps_.data(), + raw_data.raw_); + } + std::vector ops{NullExprType::NullExpr_NullOp_IsNull, + NullExprType::NullExpr_NullOp_IsNotNull}; + + auto seg_promote = dynamic_cast(seg.get()); + // is_null + for (const auto op : ops) { + auto plan_proto = gen_plan(op); + auto plan = ProtoParser(*schema).CreatePlan(*plan_proto); + BitsetType final; + final = ExecuteQueryExpr( + plan->plan_node_->plannodes_->sources()[0]->sources()[0], + seg_promote, + N * num_iters, + MAX_TIMESTAMP); + EXPECT_EQ(final.size(), N * num_iters); + + // specify some offsets and do scalar filtering on these offsets + milvus::exec::OffsetVector offsets; + offsets.reserve(N * num_iters / 2); + for (auto i = 0; i < N * num_iters; ++i) { + if (i % 2 == 0) { + offsets.emplace_back(i); + } + } + auto col_vec = milvus::test::gen_filter_res( + plan->plan_node_->plannodes_->sources()[0]->sources()[0].get(), + seg_promote, + N * num_iters, + MAX_TIMESTAMP, + &offsets); + BitsetTypeView view(col_vec->GetRawData(), col_vec->size()); + EXPECT_EQ(view.size(), N * num_iters / 2); + + for (int i = 0; i < N * num_iters; ++i) { + auto ans = final[i]; + if (op == NullExprType::NullExpr_NullOp_IsNull) { + ASSERT_EQ(ans, !valid_data[i]); + } else { + ASSERT_EQ(ans, valid_data[i]); + } + } + } +} + TEST(StringExpr, BinaryRange) { auto schema = GenTestSchema(); const auto& fvec_meta = schema->operator[](FieldName("fvec")); diff --git a/internal/core/unittest/test_utils/GenExprProto.h b/internal/core/unittest/test_utils/GenExprProto.h index 372e07e356f24..78b58ee261918 100644 --- a/internal/core/unittest/test_utils/GenExprProto.h +++ b/internal/core/unittest/test_utils/GenExprProto.h @@ -27,13 +27,15 @@ GenColumnInfo( proto::schema::DataType field_type, bool auto_id, bool is_pk, - proto::schema::DataType element_type = proto::schema::DataType::None) { + proto::schema::DataType element_type = proto::schema::DataType::None, + bool nullable = false) { auto column_info = new proto::plan::ColumnInfo(); column_info->set_field_id(field_id); column_info->set_data_type(field_type); column_info->set_is_autoid(auto_id); column_info->set_is_primary_key(is_pk); column_info->set_element_type(element_type); + column_info->set_nullable(nullable); return column_info; } @@ -65,6 +67,13 @@ GenUnaryRangeExpr(proto::plan::OpType op, T& value) { return unary_range_expr; } +inline auto +GenNullExpr(NullExprType op) { + auto null_expr = new proto::plan::NullExpr(); + null_expr->set_op(op); + return null_expr; +} + inline auto GenExpr() { return std::make_unique(); diff --git a/internal/parser/planparserv2/Plan.g4 b/internal/parser/planparserv2/Plan.g4 index 36ac4f805b79f..5a90e8f494107 100644 --- a/internal/parser/planparserv2/Plan.g4 +++ b/internal/parser/planparserv2/Plan.g4 @@ -34,6 +34,8 @@ expr: | expr BOR expr # BitOr | expr AND expr # LogicalAnd | expr OR expr # LogicalOr + | Identifier ISNULL # IsNull + | Identifier ISNOTNULL # IsNotNull | EXISTS expr # Exists; // typeName: ty = (BOOL | INT8 | INT16 | INT32 | INT64 | FLOAT | DOUBLE); @@ -74,6 +76,9 @@ BXOR: '^'; AND: '&&' | 'and'; OR: '||' | 'or'; +ISNULL: 'is null' | 'IS NULL'; +ISNOTNULL: 'is not null' | 'IS NOT NULL'; + BNOT: '~'; NOT: '!' | 'not'; diff --git a/internal/parser/planparserv2/check_identical_test.go b/internal/parser/planparserv2/check_identical_test.go index c619c81b2e515..249e9035649c7 100644 --- a/internal/parser/planparserv2/check_identical_test.go +++ b/internal/parser/planparserv2/check_identical_test.go @@ -10,7 +10,7 @@ import ( ) func TestCheckIdentical(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) diff --git a/internal/parser/planparserv2/generated/Plan.interp b/internal/parser/planparserv2/generated/Plan.interp index c2ffa1e44960d..1df02e866d170 100644 --- a/internal/parser/planparserv2/generated/Plan.interp +++ b/internal/parser/planparserv2/generated/Plan.interp @@ -29,6 +29,8 @@ null '^' null null +null +null '~' null null @@ -81,6 +83,8 @@ BOR BXOR AND OR +ISNULL +ISNOTNULL BNOT NOT IN @@ -107,4 +111,4 @@ expr atn: -[4, 1, 49, 142, 2, 0, 7, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 21, 8, 0, 10, 0, 12, 0, 24, 9, 0, 1, 0, 3, 0, 27, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 70, 8, 0, 10, 0, 12, 0, 73, 9, 0, 1, 0, 3, 0, 76, 8, 0, 3, 0, 78, 8, 0, 1, 0, 1, 0, 1, 0, 3, 0, 83, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 99, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 137, 8, 0, 10, 0, 12, 0, 140, 9, 0, 1, 0, 0, 1, 0, 1, 0, 0, 13, 1, 0, 44, 45, 2, 0, 17, 18, 30, 31, 2, 0, 34, 34, 37, 37, 2, 0, 35, 35, 38, 38, 2, 0, 36, 36, 39, 39, 2, 0, 44, 44, 47, 47, 1, 0, 19, 21, 1, 0, 17, 18, 1, 0, 23, 24, 1, 0, 8, 9, 1, 0, 10, 11, 1, 0, 8, 11, 1, 0, 12, 13, 178, 0, 82, 1, 0, 0, 0, 2, 3, 6, 0, -1, 0, 3, 83, 5, 42, 0, 0, 4, 83, 5, 43, 0, 0, 5, 83, 5, 41, 0, 0, 6, 83, 5, 46, 0, 0, 7, 83, 7, 0, 0, 0, 8, 83, 5, 47, 0, 0, 9, 10, 5, 6, 0, 0, 10, 11, 5, 44, 0, 0, 11, 83, 5, 7, 0, 0, 12, 13, 5, 1, 0, 0, 13, 14, 3, 0, 0, 0, 14, 15, 5, 2, 0, 0, 15, 83, 1, 0, 0, 0, 16, 17, 5, 3, 0, 0, 17, 22, 3, 0, 0, 0, 18, 19, 5, 4, 0, 0, 19, 21, 3, 0, 0, 0, 20, 18, 1, 0, 0, 0, 21, 24, 1, 0, 0, 0, 22, 20, 1, 0, 0, 0, 22, 23, 1, 0, 0, 0, 23, 26, 1, 0, 0, 0, 24, 22, 1, 0, 0, 0, 25, 27, 5, 4, 0, 0, 26, 25, 1, 0, 0, 0, 26, 27, 1, 0, 0, 0, 27, 28, 1, 0, 0, 0, 28, 29, 5, 5, 0, 0, 29, 83, 1, 0, 0, 0, 30, 83, 5, 33, 0, 0, 31, 32, 5, 16, 0, 0, 32, 33, 5, 1, 0, 0, 33, 34, 5, 44, 0, 0, 34, 35, 5, 4, 0, 0, 35, 36, 5, 46, 0, 0, 36, 83, 5, 2, 0, 0, 37, 38, 7, 1, 0, 0, 38, 83, 3, 0, 0, 20, 39, 40, 7, 2, 0, 0, 40, 41, 5, 1, 0, 0, 41, 42, 3, 0, 0, 0, 42, 43, 5, 4, 0, 0, 43, 44, 3, 0, 0, 0, 44, 45, 5, 2, 0, 0, 45, 83, 1, 0, 0, 0, 46, 47, 7, 3, 0, 0, 47, 48, 5, 1, 0, 0, 48, 49, 3, 0, 0, 0, 49, 50, 5, 4, 0, 0, 50, 51, 3, 0, 0, 0, 51, 52, 5, 2, 0, 0, 52, 83, 1, 0, 0, 0, 53, 54, 7, 4, 0, 0, 54, 55, 5, 1, 0, 0, 55, 56, 3, 0, 0, 0, 56, 57, 5, 4, 0, 0, 57, 58, 3, 0, 0, 0, 58, 59, 5, 2, 0, 0, 59, 83, 1, 0, 0, 0, 60, 61, 5, 40, 0, 0, 61, 62, 5, 1, 0, 0, 62, 63, 7, 5, 0, 0, 63, 83, 5, 2, 0, 0, 64, 65, 5, 44, 0, 0, 65, 77, 5, 1, 0, 0, 66, 71, 3, 0, 0, 0, 67, 68, 5, 4, 0, 0, 68, 70, 3, 0, 0, 0, 69, 67, 1, 0, 0, 0, 70, 73, 1, 0, 0, 0, 71, 69, 1, 0, 0, 0, 71, 72, 1, 0, 0, 0, 72, 75, 1, 0, 0, 0, 73, 71, 1, 0, 0, 0, 74, 76, 5, 4, 0, 0, 75, 74, 1, 0, 0, 0, 75, 76, 1, 0, 0, 0, 76, 78, 1, 0, 0, 0, 77, 66, 1, 0, 0, 0, 77, 78, 1, 0, 0, 0, 78, 79, 1, 0, 0, 0, 79, 83, 5, 2, 0, 0, 80, 81, 5, 15, 0, 0, 81, 83, 3, 0, 0, 1, 82, 2, 1, 0, 0, 0, 82, 4, 1, 0, 0, 0, 82, 5, 1, 0, 0, 0, 82, 6, 1, 0, 0, 0, 82, 7, 1, 0, 0, 0, 82, 8, 1, 0, 0, 0, 82, 9, 1, 0, 0, 0, 82, 12, 1, 0, 0, 0, 82, 16, 1, 0, 0, 0, 82, 30, 1, 0, 0, 0, 82, 31, 1, 0, 0, 0, 82, 37, 1, 0, 0, 0, 82, 39, 1, 0, 0, 0, 82, 46, 1, 0, 0, 0, 82, 53, 1, 0, 0, 0, 82, 60, 1, 0, 0, 0, 82, 64, 1, 0, 0, 0, 82, 80, 1, 0, 0, 0, 83, 138, 1, 0, 0, 0, 84, 85, 10, 21, 0, 0, 85, 86, 5, 22, 0, 0, 86, 137, 3, 0, 0, 22, 87, 88, 10, 19, 0, 0, 88, 89, 7, 6, 0, 0, 89, 137, 3, 0, 0, 20, 90, 91, 10, 18, 0, 0, 91, 92, 7, 7, 0, 0, 92, 137, 3, 0, 0, 19, 93, 94, 10, 17, 0, 0, 94, 95, 7, 8, 0, 0, 95, 137, 3, 0, 0, 18, 96, 98, 10, 16, 0, 0, 97, 99, 5, 31, 0, 0, 98, 97, 1, 0, 0, 0, 98, 99, 1, 0, 0, 0, 99, 100, 1, 0, 0, 0, 100, 101, 5, 32, 0, 0, 101, 137, 3, 0, 0, 17, 102, 103, 10, 10, 0, 0, 103, 104, 7, 9, 0, 0, 104, 105, 7, 5, 0, 0, 105, 106, 7, 9, 0, 0, 106, 137, 3, 0, 0, 11, 107, 108, 10, 9, 0, 0, 108, 109, 7, 10, 0, 0, 109, 110, 7, 5, 0, 0, 110, 111, 7, 10, 0, 0, 111, 137, 3, 0, 0, 10, 112, 113, 10, 8, 0, 0, 113, 114, 7, 11, 0, 0, 114, 137, 3, 0, 0, 9, 115, 116, 10, 7, 0, 0, 116, 117, 7, 12, 0, 0, 117, 137, 3, 0, 0, 8, 118, 119, 10, 6, 0, 0, 119, 120, 5, 25, 0, 0, 120, 137, 3, 0, 0, 7, 121, 122, 10, 5, 0, 0, 122, 123, 5, 27, 0, 0, 123, 137, 3, 0, 0, 6, 124, 125, 10, 4, 0, 0, 125, 126, 5, 26, 0, 0, 126, 137, 3, 0, 0, 5, 127, 128, 10, 3, 0, 0, 128, 129, 5, 28, 0, 0, 129, 137, 3, 0, 0, 4, 130, 131, 10, 2, 0, 0, 131, 132, 5, 29, 0, 0, 132, 137, 3, 0, 0, 3, 133, 134, 10, 23, 0, 0, 134, 135, 5, 14, 0, 0, 135, 137, 5, 46, 0, 0, 136, 84, 1, 0, 0, 0, 136, 87, 1, 0, 0, 0, 136, 90, 1, 0, 0, 0, 136, 93, 1, 0, 0, 0, 136, 96, 1, 0, 0, 0, 136, 102, 1, 0, 0, 0, 136, 107, 1, 0, 0, 0, 136, 112, 1, 0, 0, 0, 136, 115, 1, 0, 0, 0, 136, 118, 1, 0, 0, 0, 136, 121, 1, 0, 0, 0, 136, 124, 1, 0, 0, 0, 136, 127, 1, 0, 0, 0, 136, 130, 1, 0, 0, 0, 136, 133, 1, 0, 0, 0, 137, 140, 1, 0, 0, 0, 138, 136, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 1, 1, 0, 0, 0, 140, 138, 1, 0, 0, 0, 9, 22, 26, 71, 75, 77, 82, 98, 136, 138] \ No newline at end of file +[4, 1, 51, 146, 2, 0, 7, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 21, 8, 0, 10, 0, 12, 0, 24, 9, 0, 1, 0, 3, 0, 27, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 70, 8, 0, 10, 0, 12, 0, 73, 9, 0, 1, 0, 3, 0, 76, 8, 0, 3, 0, 78, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 87, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 103, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 141, 8, 0, 10, 0, 12, 0, 144, 9, 0, 1, 0, 0, 1, 0, 1, 0, 0, 13, 1, 0, 46, 47, 2, 0, 17, 18, 32, 33, 2, 0, 36, 36, 39, 39, 2, 0, 37, 37, 40, 40, 2, 0, 38, 38, 41, 41, 2, 0, 46, 46, 49, 49, 1, 0, 19, 21, 1, 0, 17, 18, 1, 0, 23, 24, 1, 0, 8, 9, 1, 0, 10, 11, 1, 0, 8, 11, 1, 0, 12, 13, 184, 0, 86, 1, 0, 0, 0, 2, 3, 6, 0, -1, 0, 3, 87, 5, 44, 0, 0, 4, 87, 5, 45, 0, 0, 5, 87, 5, 43, 0, 0, 6, 87, 5, 48, 0, 0, 7, 87, 7, 0, 0, 0, 8, 87, 5, 49, 0, 0, 9, 10, 5, 6, 0, 0, 10, 11, 5, 46, 0, 0, 11, 87, 5, 7, 0, 0, 12, 13, 5, 1, 0, 0, 13, 14, 3, 0, 0, 0, 14, 15, 5, 2, 0, 0, 15, 87, 1, 0, 0, 0, 16, 17, 5, 3, 0, 0, 17, 22, 3, 0, 0, 0, 18, 19, 5, 4, 0, 0, 19, 21, 3, 0, 0, 0, 20, 18, 1, 0, 0, 0, 21, 24, 1, 0, 0, 0, 22, 20, 1, 0, 0, 0, 22, 23, 1, 0, 0, 0, 23, 26, 1, 0, 0, 0, 24, 22, 1, 0, 0, 0, 25, 27, 5, 4, 0, 0, 26, 25, 1, 0, 0, 0, 26, 27, 1, 0, 0, 0, 27, 28, 1, 0, 0, 0, 28, 29, 5, 5, 0, 0, 29, 87, 1, 0, 0, 0, 30, 87, 5, 35, 0, 0, 31, 32, 5, 16, 0, 0, 32, 33, 5, 1, 0, 0, 33, 34, 5, 46, 0, 0, 34, 35, 5, 4, 0, 0, 35, 36, 5, 48, 0, 0, 36, 87, 5, 2, 0, 0, 37, 38, 7, 1, 0, 0, 38, 87, 3, 0, 0, 22, 39, 40, 7, 2, 0, 0, 40, 41, 5, 1, 0, 0, 41, 42, 3, 0, 0, 0, 42, 43, 5, 4, 0, 0, 43, 44, 3, 0, 0, 0, 44, 45, 5, 2, 0, 0, 45, 87, 1, 0, 0, 0, 46, 47, 7, 3, 0, 0, 47, 48, 5, 1, 0, 0, 48, 49, 3, 0, 0, 0, 49, 50, 5, 4, 0, 0, 50, 51, 3, 0, 0, 0, 51, 52, 5, 2, 0, 0, 52, 87, 1, 0, 0, 0, 53, 54, 7, 4, 0, 0, 54, 55, 5, 1, 0, 0, 55, 56, 3, 0, 0, 0, 56, 57, 5, 4, 0, 0, 57, 58, 3, 0, 0, 0, 58, 59, 5, 2, 0, 0, 59, 87, 1, 0, 0, 0, 60, 61, 5, 42, 0, 0, 61, 62, 5, 1, 0, 0, 62, 63, 7, 5, 0, 0, 63, 87, 5, 2, 0, 0, 64, 65, 5, 46, 0, 0, 65, 77, 5, 1, 0, 0, 66, 71, 3, 0, 0, 0, 67, 68, 5, 4, 0, 0, 68, 70, 3, 0, 0, 0, 69, 67, 1, 0, 0, 0, 70, 73, 1, 0, 0, 0, 71, 69, 1, 0, 0, 0, 71, 72, 1, 0, 0, 0, 72, 75, 1, 0, 0, 0, 73, 71, 1, 0, 0, 0, 74, 76, 5, 4, 0, 0, 75, 74, 1, 0, 0, 0, 75, 76, 1, 0, 0, 0, 76, 78, 1, 0, 0, 0, 77, 66, 1, 0, 0, 0, 77, 78, 1, 0, 0, 0, 78, 79, 1, 0, 0, 0, 79, 87, 5, 2, 0, 0, 80, 81, 5, 46, 0, 0, 81, 87, 5, 30, 0, 0, 82, 83, 5, 46, 0, 0, 83, 87, 5, 31, 0, 0, 84, 85, 5, 15, 0, 0, 85, 87, 3, 0, 0, 1, 86, 2, 1, 0, 0, 0, 86, 4, 1, 0, 0, 0, 86, 5, 1, 0, 0, 0, 86, 6, 1, 0, 0, 0, 86, 7, 1, 0, 0, 0, 86, 8, 1, 0, 0, 0, 86, 9, 1, 0, 0, 0, 86, 12, 1, 0, 0, 0, 86, 16, 1, 0, 0, 0, 86, 30, 1, 0, 0, 0, 86, 31, 1, 0, 0, 0, 86, 37, 1, 0, 0, 0, 86, 39, 1, 0, 0, 0, 86, 46, 1, 0, 0, 0, 86, 53, 1, 0, 0, 0, 86, 60, 1, 0, 0, 0, 86, 64, 1, 0, 0, 0, 86, 80, 1, 0, 0, 0, 86, 82, 1, 0, 0, 0, 86, 84, 1, 0, 0, 0, 87, 142, 1, 0, 0, 0, 88, 89, 10, 23, 0, 0, 89, 90, 5, 22, 0, 0, 90, 141, 3, 0, 0, 24, 91, 92, 10, 21, 0, 0, 92, 93, 7, 6, 0, 0, 93, 141, 3, 0, 0, 22, 94, 95, 10, 20, 0, 0, 95, 96, 7, 7, 0, 0, 96, 141, 3, 0, 0, 21, 97, 98, 10, 19, 0, 0, 98, 99, 7, 8, 0, 0, 99, 141, 3, 0, 0, 20, 100, 102, 10, 18, 0, 0, 101, 103, 5, 33, 0, 0, 102, 101, 1, 0, 0, 0, 102, 103, 1, 0, 0, 0, 103, 104, 1, 0, 0, 0, 104, 105, 5, 34, 0, 0, 105, 141, 3, 0, 0, 19, 106, 107, 10, 12, 0, 0, 107, 108, 7, 9, 0, 0, 108, 109, 7, 5, 0, 0, 109, 110, 7, 9, 0, 0, 110, 141, 3, 0, 0, 13, 111, 112, 10, 11, 0, 0, 112, 113, 7, 10, 0, 0, 113, 114, 7, 5, 0, 0, 114, 115, 7, 10, 0, 0, 115, 141, 3, 0, 0, 12, 116, 117, 10, 10, 0, 0, 117, 118, 7, 11, 0, 0, 118, 141, 3, 0, 0, 11, 119, 120, 10, 9, 0, 0, 120, 121, 7, 12, 0, 0, 121, 141, 3, 0, 0, 10, 122, 123, 10, 8, 0, 0, 123, 124, 5, 25, 0, 0, 124, 141, 3, 0, 0, 9, 125, 126, 10, 7, 0, 0, 126, 127, 5, 27, 0, 0, 127, 141, 3, 0, 0, 8, 128, 129, 10, 6, 0, 0, 129, 130, 5, 26, 0, 0, 130, 141, 3, 0, 0, 7, 131, 132, 10, 5, 0, 0, 132, 133, 5, 28, 0, 0, 133, 141, 3, 0, 0, 6, 134, 135, 10, 4, 0, 0, 135, 136, 5, 29, 0, 0, 136, 141, 3, 0, 0, 5, 137, 138, 10, 25, 0, 0, 138, 139, 5, 14, 0, 0, 139, 141, 5, 48, 0, 0, 140, 88, 1, 0, 0, 0, 140, 91, 1, 0, 0, 0, 140, 94, 1, 0, 0, 0, 140, 97, 1, 0, 0, 0, 140, 100, 1, 0, 0, 0, 140, 106, 1, 0, 0, 0, 140, 111, 1, 0, 0, 0, 140, 116, 1, 0, 0, 0, 140, 119, 1, 0, 0, 0, 140, 122, 1, 0, 0, 0, 140, 125, 1, 0, 0, 0, 140, 128, 1, 0, 0, 0, 140, 131, 1, 0, 0, 0, 140, 134, 1, 0, 0, 0, 140, 137, 1, 0, 0, 0, 141, 144, 1, 0, 0, 0, 142, 140, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 1, 1, 0, 0, 0, 144, 142, 1, 0, 0, 0, 9, 22, 26, 71, 75, 77, 86, 102, 140, 142] \ No newline at end of file diff --git a/internal/parser/planparserv2/generated/Plan.tokens b/internal/parser/planparserv2/generated/Plan.tokens index 0b084bff8ff8d..a198ec9a5db41 100644 --- a/internal/parser/planparserv2/generated/Plan.tokens +++ b/internal/parser/planparserv2/generated/Plan.tokens @@ -27,26 +27,28 @@ BOR=26 BXOR=27 AND=28 OR=29 -BNOT=30 -NOT=31 -IN=32 -EmptyArray=33 -JSONContains=34 -JSONContainsAll=35 -JSONContainsAny=36 -ArrayContains=37 -ArrayContainsAll=38 -ArrayContainsAny=39 -ArrayLength=40 -BooleanConstant=41 -IntegerConstant=42 -FloatingConstant=43 -Identifier=44 -Meta=45 -StringLiteral=46 -JSONIdentifier=47 -Whitespace=48 -Newline=49 +ISNULL=30 +ISNOTNULL=31 +BNOT=32 +NOT=33 +IN=34 +EmptyArray=35 +JSONContains=36 +JSONContainsAll=37 +JSONContainsAny=38 +ArrayContains=39 +ArrayContainsAll=40 +ArrayContainsAny=41 +ArrayLength=42 +BooleanConstant=43 +IntegerConstant=44 +FloatingConstant=45 +Identifier=46 +Meta=47 +StringLiteral=48 +JSONIdentifier=49 +Whitespace=50 +Newline=51 '('=1 ')'=2 '['=3 @@ -71,5 +73,5 @@ Newline=49 '&'=25 '|'=26 '^'=27 -'~'=30 -'$meta'=45 +'~'=32 +'$meta'=47 diff --git a/internal/parser/planparserv2/generated/PlanLexer.interp b/internal/parser/planparserv2/generated/PlanLexer.interp index 1e6840b0065bc..b156b11037db8 100644 --- a/internal/parser/planparserv2/generated/PlanLexer.interp +++ b/internal/parser/planparserv2/generated/PlanLexer.interp @@ -29,6 +29,8 @@ null '^' null null +null +null '~' null null @@ -81,6 +83,8 @@ BOR BXOR AND OR +ISNULL +ISNOTNULL BNOT NOT IN @@ -132,6 +136,8 @@ BOR BXOR AND OR +ISNULL +ISNOTNULL BNOT NOT IN @@ -186,4 +192,4 @@ mode names: DEFAULT_MODE atn: -[4, 0, 49, 782, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 188, 8, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 202, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 224, 8, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 256, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 262, 8, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 270, 8, 30, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 276, 8, 31, 1, 32, 1, 32, 1, 32, 5, 32, 281, 8, 32, 10, 32, 12, 32, 284, 9, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 314, 8, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 350, 8, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 386, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 416, 8, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 454, 8, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 492, 8, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 3, 39, 518, 8, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 547, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 553, 8, 41, 1, 42, 1, 42, 3, 42, 557, 8, 42, 1, 43, 1, 43, 1, 43, 5, 43, 562, 8, 43, 10, 43, 12, 43, 565, 9, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 3, 45, 574, 8, 45, 1, 45, 1, 45, 3, 45, 578, 8, 45, 1, 45, 1, 45, 1, 45, 3, 45, 583, 8, 45, 1, 45, 3, 45, 586, 8, 45, 1, 46, 1, 46, 3, 46, 590, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 595, 8, 46, 1, 46, 1, 46, 4, 46, 599, 8, 46, 11, 46, 12, 46, 600, 1, 47, 1, 47, 1, 47, 3, 47, 606, 8, 47, 1, 48, 4, 48, 609, 8, 48, 11, 48, 12, 48, 610, 1, 49, 4, 49, 614, 8, 49, 11, 49, 12, 49, 615, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 625, 8, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 634, 8, 51, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 4, 54, 643, 8, 54, 11, 54, 12, 54, 644, 1, 55, 1, 55, 5, 55, 649, 8, 55, 10, 55, 12, 55, 652, 9, 55, 1, 55, 3, 55, 655, 8, 55, 1, 56, 1, 56, 5, 56, 659, 8, 56, 10, 56, 12, 56, 662, 9, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 59, 1, 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 3, 62, 689, 8, 62, 1, 63, 1, 63, 3, 63, 693, 8, 63, 1, 63, 1, 63, 1, 63, 3, 63, 698, 8, 63, 1, 64, 1, 64, 1, 64, 1, 64, 3, 64, 704, 8, 64, 1, 64, 1, 64, 1, 65, 3, 65, 709, 8, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 3, 65, 716, 8, 65, 1, 66, 1, 66, 3, 66, 720, 8, 66, 1, 66, 1, 66, 1, 67, 4, 67, 725, 8, 67, 11, 67, 12, 67, 726, 1, 68, 3, 68, 730, 8, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 3, 68, 737, 8, 68, 1, 69, 4, 69, 740, 8, 69, 11, 69, 12, 69, 741, 1, 70, 1, 70, 3, 70, 746, 8, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 3, 71, 755, 8, 71, 1, 71, 3, 71, 758, 8, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 3, 71, 765, 8, 71, 1, 72, 4, 72, 768, 8, 72, 11, 72, 12, 72, 769, 1, 72, 1, 72, 1, 73, 1, 73, 3, 73, 776, 8, 73, 1, 73, 3, 73, 779, 8, 73, 1, 73, 1, 73, 0, 0, 74, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 0, 97, 0, 99, 0, 101, 0, 103, 0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, 0, 129, 0, 131, 0, 133, 0, 135, 0, 137, 0, 139, 0, 141, 0, 143, 0, 145, 48, 147, 49, 1, 0, 16, 3, 0, 76, 76, 85, 85, 117, 117, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 3, 0, 65, 90, 95, 95, 97, 122, 1, 0, 48, 57, 2, 0, 66, 66, 98, 98, 1, 0, 48, 49, 2, 0, 88, 88, 120, 120, 1, 0, 49, 57, 1, 0, 48, 55, 3, 0, 48, 57, 65, 70, 97, 102, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 2, 0, 80, 80, 112, 112, 10, 0, 34, 34, 39, 39, 63, 63, 92, 92, 97, 98, 102, 102, 110, 110, 114, 114, 116, 116, 118, 118, 2, 0, 9, 9, 32, 32, 823, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 1, 149, 1, 0, 0, 0, 3, 151, 1, 0, 0, 0, 5, 153, 1, 0, 0, 0, 7, 155, 1, 0, 0, 0, 9, 157, 1, 0, 0, 0, 11, 159, 1, 0, 0, 0, 13, 161, 1, 0, 0, 0, 15, 163, 1, 0, 0, 0, 17, 165, 1, 0, 0, 0, 19, 168, 1, 0, 0, 0, 21, 170, 1, 0, 0, 0, 23, 173, 1, 0, 0, 0, 25, 176, 1, 0, 0, 0, 27, 187, 1, 0, 0, 0, 29, 201, 1, 0, 0, 0, 31, 223, 1, 0, 0, 0, 33, 225, 1, 0, 0, 0, 35, 227, 1, 0, 0, 0, 37, 229, 1, 0, 0, 0, 39, 231, 1, 0, 0, 0, 41, 233, 1, 0, 0, 0, 43, 235, 1, 0, 0, 0, 45, 238, 1, 0, 0, 0, 47, 241, 1, 0, 0, 0, 49, 244, 1, 0, 0, 0, 51, 246, 1, 0, 0, 0, 53, 248, 1, 0, 0, 0, 55, 255, 1, 0, 0, 0, 57, 261, 1, 0, 0, 0, 59, 263, 1, 0, 0, 0, 61, 269, 1, 0, 0, 0, 63, 275, 1, 0, 0, 0, 65, 277, 1, 0, 0, 0, 67, 313, 1, 0, 0, 0, 69, 349, 1, 0, 0, 0, 71, 385, 1, 0, 0, 0, 73, 415, 1, 0, 0, 0, 75, 453, 1, 0, 0, 0, 77, 491, 1, 0, 0, 0, 79, 517, 1, 0, 0, 0, 81, 546, 1, 0, 0, 0, 83, 552, 1, 0, 0, 0, 85, 556, 1, 0, 0, 0, 87, 558, 1, 0, 0, 0, 89, 566, 1, 0, 0, 0, 91, 573, 1, 0, 0, 0, 93, 589, 1, 0, 0, 0, 95, 605, 1, 0, 0, 0, 97, 608, 1, 0, 0, 0, 99, 613, 1, 0, 0, 0, 101, 624, 1, 0, 0, 0, 103, 633, 1, 0, 0, 0, 105, 635, 1, 0, 0, 0, 107, 637, 1, 0, 0, 0, 109, 639, 1, 0, 0, 0, 111, 654, 1, 0, 0, 0, 113, 656, 1, 0, 0, 0, 115, 663, 1, 0, 0, 0, 117, 667, 1, 0, 0, 0, 119, 669, 1, 0, 0, 0, 121, 671, 1, 0, 0, 0, 123, 673, 1, 0, 0, 0, 125, 688, 1, 0, 0, 0, 127, 697, 1, 0, 0, 0, 129, 699, 1, 0, 0, 0, 131, 715, 1, 0, 0, 0, 133, 717, 1, 0, 0, 0, 135, 724, 1, 0, 0, 0, 137, 736, 1, 0, 0, 0, 139, 739, 1, 0, 0, 0, 141, 743, 1, 0, 0, 0, 143, 764, 1, 0, 0, 0, 145, 767, 1, 0, 0, 0, 147, 778, 1, 0, 0, 0, 149, 150, 5, 40, 0, 0, 150, 2, 1, 0, 0, 0, 151, 152, 5, 41, 0, 0, 152, 4, 1, 0, 0, 0, 153, 154, 5, 91, 0, 0, 154, 6, 1, 0, 0, 0, 155, 156, 5, 44, 0, 0, 156, 8, 1, 0, 0, 0, 157, 158, 5, 93, 0, 0, 158, 10, 1, 0, 0, 0, 159, 160, 5, 123, 0, 0, 160, 12, 1, 0, 0, 0, 161, 162, 5, 125, 0, 0, 162, 14, 1, 0, 0, 0, 163, 164, 5, 60, 0, 0, 164, 16, 1, 0, 0, 0, 165, 166, 5, 60, 0, 0, 166, 167, 5, 61, 0, 0, 167, 18, 1, 0, 0, 0, 168, 169, 5, 62, 0, 0, 169, 20, 1, 0, 0, 0, 170, 171, 5, 62, 0, 0, 171, 172, 5, 61, 0, 0, 172, 22, 1, 0, 0, 0, 173, 174, 5, 61, 0, 0, 174, 175, 5, 61, 0, 0, 175, 24, 1, 0, 0, 0, 176, 177, 5, 33, 0, 0, 177, 178, 5, 61, 0, 0, 178, 26, 1, 0, 0, 0, 179, 180, 5, 108, 0, 0, 180, 181, 5, 105, 0, 0, 181, 182, 5, 107, 0, 0, 182, 188, 5, 101, 0, 0, 183, 184, 5, 76, 0, 0, 184, 185, 5, 73, 0, 0, 185, 186, 5, 75, 0, 0, 186, 188, 5, 69, 0, 0, 187, 179, 1, 0, 0, 0, 187, 183, 1, 0, 0, 0, 188, 28, 1, 0, 0, 0, 189, 190, 5, 101, 0, 0, 190, 191, 5, 120, 0, 0, 191, 192, 5, 105, 0, 0, 192, 193, 5, 115, 0, 0, 193, 194, 5, 116, 0, 0, 194, 202, 5, 115, 0, 0, 195, 196, 5, 69, 0, 0, 196, 197, 5, 88, 0, 0, 197, 198, 5, 73, 0, 0, 198, 199, 5, 83, 0, 0, 199, 200, 5, 84, 0, 0, 200, 202, 5, 83, 0, 0, 201, 189, 1, 0, 0, 0, 201, 195, 1, 0, 0, 0, 202, 30, 1, 0, 0, 0, 203, 204, 5, 116, 0, 0, 204, 205, 5, 101, 0, 0, 205, 206, 5, 120, 0, 0, 206, 207, 5, 116, 0, 0, 207, 208, 5, 95, 0, 0, 208, 209, 5, 109, 0, 0, 209, 210, 5, 97, 0, 0, 210, 211, 5, 116, 0, 0, 211, 212, 5, 99, 0, 0, 212, 224, 5, 104, 0, 0, 213, 214, 5, 84, 0, 0, 214, 215, 5, 69, 0, 0, 215, 216, 5, 88, 0, 0, 216, 217, 5, 84, 0, 0, 217, 218, 5, 95, 0, 0, 218, 219, 5, 77, 0, 0, 219, 220, 5, 65, 0, 0, 220, 221, 5, 84, 0, 0, 221, 222, 5, 67, 0, 0, 222, 224, 5, 72, 0, 0, 223, 203, 1, 0, 0, 0, 223, 213, 1, 0, 0, 0, 224, 32, 1, 0, 0, 0, 225, 226, 5, 43, 0, 0, 226, 34, 1, 0, 0, 0, 227, 228, 5, 45, 0, 0, 228, 36, 1, 0, 0, 0, 229, 230, 5, 42, 0, 0, 230, 38, 1, 0, 0, 0, 231, 232, 5, 47, 0, 0, 232, 40, 1, 0, 0, 0, 233, 234, 5, 37, 0, 0, 234, 42, 1, 0, 0, 0, 235, 236, 5, 42, 0, 0, 236, 237, 5, 42, 0, 0, 237, 44, 1, 0, 0, 0, 238, 239, 5, 60, 0, 0, 239, 240, 5, 60, 0, 0, 240, 46, 1, 0, 0, 0, 241, 242, 5, 62, 0, 0, 242, 243, 5, 62, 0, 0, 243, 48, 1, 0, 0, 0, 244, 245, 5, 38, 0, 0, 245, 50, 1, 0, 0, 0, 246, 247, 5, 124, 0, 0, 247, 52, 1, 0, 0, 0, 248, 249, 5, 94, 0, 0, 249, 54, 1, 0, 0, 0, 250, 251, 5, 38, 0, 0, 251, 256, 5, 38, 0, 0, 252, 253, 5, 97, 0, 0, 253, 254, 5, 110, 0, 0, 254, 256, 5, 100, 0, 0, 255, 250, 1, 0, 0, 0, 255, 252, 1, 0, 0, 0, 256, 56, 1, 0, 0, 0, 257, 258, 5, 124, 0, 0, 258, 262, 5, 124, 0, 0, 259, 260, 5, 111, 0, 0, 260, 262, 5, 114, 0, 0, 261, 257, 1, 0, 0, 0, 261, 259, 1, 0, 0, 0, 262, 58, 1, 0, 0, 0, 263, 264, 5, 126, 0, 0, 264, 60, 1, 0, 0, 0, 265, 270, 5, 33, 0, 0, 266, 267, 5, 110, 0, 0, 267, 268, 5, 111, 0, 0, 268, 270, 5, 116, 0, 0, 269, 265, 1, 0, 0, 0, 269, 266, 1, 0, 0, 0, 270, 62, 1, 0, 0, 0, 271, 272, 5, 105, 0, 0, 272, 276, 5, 110, 0, 0, 273, 274, 5, 73, 0, 0, 274, 276, 5, 78, 0, 0, 275, 271, 1, 0, 0, 0, 275, 273, 1, 0, 0, 0, 276, 64, 1, 0, 0, 0, 277, 282, 5, 91, 0, 0, 278, 281, 3, 145, 72, 0, 279, 281, 3, 147, 73, 0, 280, 278, 1, 0, 0, 0, 280, 279, 1, 0, 0, 0, 281, 284, 1, 0, 0, 0, 282, 280, 1, 0, 0, 0, 282, 283, 1, 0, 0, 0, 283, 285, 1, 0, 0, 0, 284, 282, 1, 0, 0, 0, 285, 286, 5, 93, 0, 0, 286, 66, 1, 0, 0, 0, 287, 288, 5, 106, 0, 0, 288, 289, 5, 115, 0, 0, 289, 290, 5, 111, 0, 0, 290, 291, 5, 110, 0, 0, 291, 292, 5, 95, 0, 0, 292, 293, 5, 99, 0, 0, 293, 294, 5, 111, 0, 0, 294, 295, 5, 110, 0, 0, 295, 296, 5, 116, 0, 0, 296, 297, 5, 97, 0, 0, 297, 298, 5, 105, 0, 0, 298, 299, 5, 110, 0, 0, 299, 314, 5, 115, 0, 0, 300, 301, 5, 74, 0, 0, 301, 302, 5, 83, 0, 0, 302, 303, 5, 79, 0, 0, 303, 304, 5, 78, 0, 0, 304, 305, 5, 95, 0, 0, 305, 306, 5, 67, 0, 0, 306, 307, 5, 79, 0, 0, 307, 308, 5, 78, 0, 0, 308, 309, 5, 84, 0, 0, 309, 310, 5, 65, 0, 0, 310, 311, 5, 73, 0, 0, 311, 312, 5, 78, 0, 0, 312, 314, 5, 83, 0, 0, 313, 287, 1, 0, 0, 0, 313, 300, 1, 0, 0, 0, 314, 68, 1, 0, 0, 0, 315, 316, 5, 106, 0, 0, 316, 317, 5, 115, 0, 0, 317, 318, 5, 111, 0, 0, 318, 319, 5, 110, 0, 0, 319, 320, 5, 95, 0, 0, 320, 321, 5, 99, 0, 0, 321, 322, 5, 111, 0, 0, 322, 323, 5, 110, 0, 0, 323, 324, 5, 116, 0, 0, 324, 325, 5, 97, 0, 0, 325, 326, 5, 105, 0, 0, 326, 327, 5, 110, 0, 0, 327, 328, 5, 115, 0, 0, 328, 329, 5, 95, 0, 0, 329, 330, 5, 97, 0, 0, 330, 331, 5, 108, 0, 0, 331, 350, 5, 108, 0, 0, 332, 333, 5, 74, 0, 0, 333, 334, 5, 83, 0, 0, 334, 335, 5, 79, 0, 0, 335, 336, 5, 78, 0, 0, 336, 337, 5, 95, 0, 0, 337, 338, 5, 67, 0, 0, 338, 339, 5, 79, 0, 0, 339, 340, 5, 78, 0, 0, 340, 341, 5, 84, 0, 0, 341, 342, 5, 65, 0, 0, 342, 343, 5, 73, 0, 0, 343, 344, 5, 78, 0, 0, 344, 345, 5, 83, 0, 0, 345, 346, 5, 95, 0, 0, 346, 347, 5, 65, 0, 0, 347, 348, 5, 76, 0, 0, 348, 350, 5, 76, 0, 0, 349, 315, 1, 0, 0, 0, 349, 332, 1, 0, 0, 0, 350, 70, 1, 0, 0, 0, 351, 352, 5, 106, 0, 0, 352, 353, 5, 115, 0, 0, 353, 354, 5, 111, 0, 0, 354, 355, 5, 110, 0, 0, 355, 356, 5, 95, 0, 0, 356, 357, 5, 99, 0, 0, 357, 358, 5, 111, 0, 0, 358, 359, 5, 110, 0, 0, 359, 360, 5, 116, 0, 0, 360, 361, 5, 97, 0, 0, 361, 362, 5, 105, 0, 0, 362, 363, 5, 110, 0, 0, 363, 364, 5, 115, 0, 0, 364, 365, 5, 95, 0, 0, 365, 366, 5, 97, 0, 0, 366, 367, 5, 110, 0, 0, 367, 386, 5, 121, 0, 0, 368, 369, 5, 74, 0, 0, 369, 370, 5, 83, 0, 0, 370, 371, 5, 79, 0, 0, 371, 372, 5, 78, 0, 0, 372, 373, 5, 95, 0, 0, 373, 374, 5, 67, 0, 0, 374, 375, 5, 79, 0, 0, 375, 376, 5, 78, 0, 0, 376, 377, 5, 84, 0, 0, 377, 378, 5, 65, 0, 0, 378, 379, 5, 73, 0, 0, 379, 380, 5, 78, 0, 0, 380, 381, 5, 83, 0, 0, 381, 382, 5, 95, 0, 0, 382, 383, 5, 65, 0, 0, 383, 384, 5, 78, 0, 0, 384, 386, 5, 89, 0, 0, 385, 351, 1, 0, 0, 0, 385, 368, 1, 0, 0, 0, 386, 72, 1, 0, 0, 0, 387, 388, 5, 97, 0, 0, 388, 389, 5, 114, 0, 0, 389, 390, 5, 114, 0, 0, 390, 391, 5, 97, 0, 0, 391, 392, 5, 121, 0, 0, 392, 393, 5, 95, 0, 0, 393, 394, 5, 99, 0, 0, 394, 395, 5, 111, 0, 0, 395, 396, 5, 110, 0, 0, 396, 397, 5, 116, 0, 0, 397, 398, 5, 97, 0, 0, 398, 399, 5, 105, 0, 0, 399, 400, 5, 110, 0, 0, 400, 416, 5, 115, 0, 0, 401, 402, 5, 65, 0, 0, 402, 403, 5, 82, 0, 0, 403, 404, 5, 82, 0, 0, 404, 405, 5, 65, 0, 0, 405, 406, 5, 89, 0, 0, 406, 407, 5, 95, 0, 0, 407, 408, 5, 67, 0, 0, 408, 409, 5, 79, 0, 0, 409, 410, 5, 78, 0, 0, 410, 411, 5, 84, 0, 0, 411, 412, 5, 65, 0, 0, 412, 413, 5, 73, 0, 0, 413, 414, 5, 78, 0, 0, 414, 416, 5, 83, 0, 0, 415, 387, 1, 0, 0, 0, 415, 401, 1, 0, 0, 0, 416, 74, 1, 0, 0, 0, 417, 418, 5, 97, 0, 0, 418, 419, 5, 114, 0, 0, 419, 420, 5, 114, 0, 0, 420, 421, 5, 97, 0, 0, 421, 422, 5, 121, 0, 0, 422, 423, 5, 95, 0, 0, 423, 424, 5, 99, 0, 0, 424, 425, 5, 111, 0, 0, 425, 426, 5, 110, 0, 0, 426, 427, 5, 116, 0, 0, 427, 428, 5, 97, 0, 0, 428, 429, 5, 105, 0, 0, 429, 430, 5, 110, 0, 0, 430, 431, 5, 115, 0, 0, 431, 432, 5, 95, 0, 0, 432, 433, 5, 97, 0, 0, 433, 434, 5, 108, 0, 0, 434, 454, 5, 108, 0, 0, 435, 436, 5, 65, 0, 0, 436, 437, 5, 82, 0, 0, 437, 438, 5, 82, 0, 0, 438, 439, 5, 65, 0, 0, 439, 440, 5, 89, 0, 0, 440, 441, 5, 95, 0, 0, 441, 442, 5, 67, 0, 0, 442, 443, 5, 79, 0, 0, 443, 444, 5, 78, 0, 0, 444, 445, 5, 84, 0, 0, 445, 446, 5, 65, 0, 0, 446, 447, 5, 73, 0, 0, 447, 448, 5, 78, 0, 0, 448, 449, 5, 83, 0, 0, 449, 450, 5, 95, 0, 0, 450, 451, 5, 65, 0, 0, 451, 452, 5, 76, 0, 0, 452, 454, 5, 76, 0, 0, 453, 417, 1, 0, 0, 0, 453, 435, 1, 0, 0, 0, 454, 76, 1, 0, 0, 0, 455, 456, 5, 97, 0, 0, 456, 457, 5, 114, 0, 0, 457, 458, 5, 114, 0, 0, 458, 459, 5, 97, 0, 0, 459, 460, 5, 121, 0, 0, 460, 461, 5, 95, 0, 0, 461, 462, 5, 99, 0, 0, 462, 463, 5, 111, 0, 0, 463, 464, 5, 110, 0, 0, 464, 465, 5, 116, 0, 0, 465, 466, 5, 97, 0, 0, 466, 467, 5, 105, 0, 0, 467, 468, 5, 110, 0, 0, 468, 469, 5, 115, 0, 0, 469, 470, 5, 95, 0, 0, 470, 471, 5, 97, 0, 0, 471, 472, 5, 110, 0, 0, 472, 492, 5, 121, 0, 0, 473, 474, 5, 65, 0, 0, 474, 475, 5, 82, 0, 0, 475, 476, 5, 82, 0, 0, 476, 477, 5, 65, 0, 0, 477, 478, 5, 89, 0, 0, 478, 479, 5, 95, 0, 0, 479, 480, 5, 67, 0, 0, 480, 481, 5, 79, 0, 0, 481, 482, 5, 78, 0, 0, 482, 483, 5, 84, 0, 0, 483, 484, 5, 65, 0, 0, 484, 485, 5, 73, 0, 0, 485, 486, 5, 78, 0, 0, 486, 487, 5, 83, 0, 0, 487, 488, 5, 95, 0, 0, 488, 489, 5, 65, 0, 0, 489, 490, 5, 78, 0, 0, 490, 492, 5, 89, 0, 0, 491, 455, 1, 0, 0, 0, 491, 473, 1, 0, 0, 0, 492, 78, 1, 0, 0, 0, 493, 494, 5, 97, 0, 0, 494, 495, 5, 114, 0, 0, 495, 496, 5, 114, 0, 0, 496, 497, 5, 97, 0, 0, 497, 498, 5, 121, 0, 0, 498, 499, 5, 95, 0, 0, 499, 500, 5, 108, 0, 0, 500, 501, 5, 101, 0, 0, 501, 502, 5, 110, 0, 0, 502, 503, 5, 103, 0, 0, 503, 504, 5, 116, 0, 0, 504, 518, 5, 104, 0, 0, 505, 506, 5, 65, 0, 0, 506, 507, 5, 82, 0, 0, 507, 508, 5, 82, 0, 0, 508, 509, 5, 65, 0, 0, 509, 510, 5, 89, 0, 0, 510, 511, 5, 95, 0, 0, 511, 512, 5, 76, 0, 0, 512, 513, 5, 69, 0, 0, 513, 514, 5, 78, 0, 0, 514, 515, 5, 71, 0, 0, 515, 516, 5, 84, 0, 0, 516, 518, 5, 72, 0, 0, 517, 493, 1, 0, 0, 0, 517, 505, 1, 0, 0, 0, 518, 80, 1, 0, 0, 0, 519, 520, 5, 116, 0, 0, 520, 521, 5, 114, 0, 0, 521, 522, 5, 117, 0, 0, 522, 547, 5, 101, 0, 0, 523, 524, 5, 84, 0, 0, 524, 525, 5, 114, 0, 0, 525, 526, 5, 117, 0, 0, 526, 547, 5, 101, 0, 0, 527, 528, 5, 84, 0, 0, 528, 529, 5, 82, 0, 0, 529, 530, 5, 85, 0, 0, 530, 547, 5, 69, 0, 0, 531, 532, 5, 102, 0, 0, 532, 533, 5, 97, 0, 0, 533, 534, 5, 108, 0, 0, 534, 535, 5, 115, 0, 0, 535, 547, 5, 101, 0, 0, 536, 537, 5, 70, 0, 0, 537, 538, 5, 97, 0, 0, 538, 539, 5, 108, 0, 0, 539, 540, 5, 115, 0, 0, 540, 547, 5, 101, 0, 0, 541, 542, 5, 70, 0, 0, 542, 543, 5, 65, 0, 0, 543, 544, 5, 76, 0, 0, 544, 545, 5, 83, 0, 0, 545, 547, 5, 69, 0, 0, 546, 519, 1, 0, 0, 0, 546, 523, 1, 0, 0, 0, 546, 527, 1, 0, 0, 0, 546, 531, 1, 0, 0, 0, 546, 536, 1, 0, 0, 0, 546, 541, 1, 0, 0, 0, 547, 82, 1, 0, 0, 0, 548, 553, 3, 111, 55, 0, 549, 553, 3, 113, 56, 0, 550, 553, 3, 115, 57, 0, 551, 553, 3, 109, 54, 0, 552, 548, 1, 0, 0, 0, 552, 549, 1, 0, 0, 0, 552, 550, 1, 0, 0, 0, 552, 551, 1, 0, 0, 0, 553, 84, 1, 0, 0, 0, 554, 557, 3, 127, 63, 0, 555, 557, 3, 129, 64, 0, 556, 554, 1, 0, 0, 0, 556, 555, 1, 0, 0, 0, 557, 86, 1, 0, 0, 0, 558, 563, 3, 105, 52, 0, 559, 562, 3, 105, 52, 0, 560, 562, 3, 107, 53, 0, 561, 559, 1, 0, 0, 0, 561, 560, 1, 0, 0, 0, 562, 565, 1, 0, 0, 0, 563, 561, 1, 0, 0, 0, 563, 564, 1, 0, 0, 0, 564, 88, 1, 0, 0, 0, 565, 563, 1, 0, 0, 0, 566, 567, 5, 36, 0, 0, 567, 568, 5, 109, 0, 0, 568, 569, 5, 101, 0, 0, 569, 570, 5, 116, 0, 0, 570, 571, 5, 97, 0, 0, 571, 90, 1, 0, 0, 0, 572, 574, 3, 95, 47, 0, 573, 572, 1, 0, 0, 0, 573, 574, 1, 0, 0, 0, 574, 585, 1, 0, 0, 0, 575, 577, 5, 34, 0, 0, 576, 578, 3, 97, 48, 0, 577, 576, 1, 0, 0, 0, 577, 578, 1, 0, 0, 0, 578, 579, 1, 0, 0, 0, 579, 586, 5, 34, 0, 0, 580, 582, 5, 39, 0, 0, 581, 583, 3, 99, 49, 0, 582, 581, 1, 0, 0, 0, 582, 583, 1, 0, 0, 0, 583, 584, 1, 0, 0, 0, 584, 586, 5, 39, 0, 0, 585, 575, 1, 0, 0, 0, 585, 580, 1, 0, 0, 0, 586, 92, 1, 0, 0, 0, 587, 590, 3, 87, 43, 0, 588, 590, 3, 89, 44, 0, 589, 587, 1, 0, 0, 0, 589, 588, 1, 0, 0, 0, 590, 598, 1, 0, 0, 0, 591, 594, 5, 91, 0, 0, 592, 595, 3, 91, 45, 0, 593, 595, 3, 111, 55, 0, 594, 592, 1, 0, 0, 0, 594, 593, 1, 0, 0, 0, 595, 596, 1, 0, 0, 0, 596, 597, 5, 93, 0, 0, 597, 599, 1, 0, 0, 0, 598, 591, 1, 0, 0, 0, 599, 600, 1, 0, 0, 0, 600, 598, 1, 0, 0, 0, 600, 601, 1, 0, 0, 0, 601, 94, 1, 0, 0, 0, 602, 603, 5, 117, 0, 0, 603, 606, 5, 56, 0, 0, 604, 606, 7, 0, 0, 0, 605, 602, 1, 0, 0, 0, 605, 604, 1, 0, 0, 0, 606, 96, 1, 0, 0, 0, 607, 609, 3, 101, 50, 0, 608, 607, 1, 0, 0, 0, 609, 610, 1, 0, 0, 0, 610, 608, 1, 0, 0, 0, 610, 611, 1, 0, 0, 0, 611, 98, 1, 0, 0, 0, 612, 614, 3, 103, 51, 0, 613, 612, 1, 0, 0, 0, 614, 615, 1, 0, 0, 0, 615, 613, 1, 0, 0, 0, 615, 616, 1, 0, 0, 0, 616, 100, 1, 0, 0, 0, 617, 625, 8, 1, 0, 0, 618, 625, 3, 143, 71, 0, 619, 620, 5, 92, 0, 0, 620, 625, 5, 10, 0, 0, 621, 622, 5, 92, 0, 0, 622, 623, 5, 13, 0, 0, 623, 625, 5, 10, 0, 0, 624, 617, 1, 0, 0, 0, 624, 618, 1, 0, 0, 0, 624, 619, 1, 0, 0, 0, 624, 621, 1, 0, 0, 0, 625, 102, 1, 0, 0, 0, 626, 634, 8, 2, 0, 0, 627, 634, 3, 143, 71, 0, 628, 629, 5, 92, 0, 0, 629, 634, 5, 10, 0, 0, 630, 631, 5, 92, 0, 0, 631, 632, 5, 13, 0, 0, 632, 634, 5, 10, 0, 0, 633, 626, 1, 0, 0, 0, 633, 627, 1, 0, 0, 0, 633, 628, 1, 0, 0, 0, 633, 630, 1, 0, 0, 0, 634, 104, 1, 0, 0, 0, 635, 636, 7, 3, 0, 0, 636, 106, 1, 0, 0, 0, 637, 638, 7, 4, 0, 0, 638, 108, 1, 0, 0, 0, 639, 640, 5, 48, 0, 0, 640, 642, 7, 5, 0, 0, 641, 643, 7, 6, 0, 0, 642, 641, 1, 0, 0, 0, 643, 644, 1, 0, 0, 0, 644, 642, 1, 0, 0, 0, 644, 645, 1, 0, 0, 0, 645, 110, 1, 0, 0, 0, 646, 650, 3, 117, 58, 0, 647, 649, 3, 107, 53, 0, 648, 647, 1, 0, 0, 0, 649, 652, 1, 0, 0, 0, 650, 648, 1, 0, 0, 0, 650, 651, 1, 0, 0, 0, 651, 655, 1, 0, 0, 0, 652, 650, 1, 0, 0, 0, 653, 655, 5, 48, 0, 0, 654, 646, 1, 0, 0, 0, 654, 653, 1, 0, 0, 0, 655, 112, 1, 0, 0, 0, 656, 660, 5, 48, 0, 0, 657, 659, 3, 119, 59, 0, 658, 657, 1, 0, 0, 0, 659, 662, 1, 0, 0, 0, 660, 658, 1, 0, 0, 0, 660, 661, 1, 0, 0, 0, 661, 114, 1, 0, 0, 0, 662, 660, 1, 0, 0, 0, 663, 664, 5, 48, 0, 0, 664, 665, 7, 7, 0, 0, 665, 666, 3, 139, 69, 0, 666, 116, 1, 0, 0, 0, 667, 668, 7, 8, 0, 0, 668, 118, 1, 0, 0, 0, 669, 670, 7, 9, 0, 0, 670, 120, 1, 0, 0, 0, 671, 672, 7, 10, 0, 0, 672, 122, 1, 0, 0, 0, 673, 674, 3, 121, 60, 0, 674, 675, 3, 121, 60, 0, 675, 676, 3, 121, 60, 0, 676, 677, 3, 121, 60, 0, 677, 124, 1, 0, 0, 0, 678, 679, 5, 92, 0, 0, 679, 680, 5, 117, 0, 0, 680, 681, 1, 0, 0, 0, 681, 689, 3, 123, 61, 0, 682, 683, 5, 92, 0, 0, 683, 684, 5, 85, 0, 0, 684, 685, 1, 0, 0, 0, 685, 686, 3, 123, 61, 0, 686, 687, 3, 123, 61, 0, 687, 689, 1, 0, 0, 0, 688, 678, 1, 0, 0, 0, 688, 682, 1, 0, 0, 0, 689, 126, 1, 0, 0, 0, 690, 692, 3, 131, 65, 0, 691, 693, 3, 133, 66, 0, 692, 691, 1, 0, 0, 0, 692, 693, 1, 0, 0, 0, 693, 698, 1, 0, 0, 0, 694, 695, 3, 135, 67, 0, 695, 696, 3, 133, 66, 0, 696, 698, 1, 0, 0, 0, 697, 690, 1, 0, 0, 0, 697, 694, 1, 0, 0, 0, 698, 128, 1, 0, 0, 0, 699, 700, 5, 48, 0, 0, 700, 703, 7, 7, 0, 0, 701, 704, 3, 137, 68, 0, 702, 704, 3, 139, 69, 0, 703, 701, 1, 0, 0, 0, 703, 702, 1, 0, 0, 0, 704, 705, 1, 0, 0, 0, 705, 706, 3, 141, 70, 0, 706, 130, 1, 0, 0, 0, 707, 709, 3, 135, 67, 0, 708, 707, 1, 0, 0, 0, 708, 709, 1, 0, 0, 0, 709, 710, 1, 0, 0, 0, 710, 711, 5, 46, 0, 0, 711, 716, 3, 135, 67, 0, 712, 713, 3, 135, 67, 0, 713, 714, 5, 46, 0, 0, 714, 716, 1, 0, 0, 0, 715, 708, 1, 0, 0, 0, 715, 712, 1, 0, 0, 0, 716, 132, 1, 0, 0, 0, 717, 719, 7, 11, 0, 0, 718, 720, 7, 12, 0, 0, 719, 718, 1, 0, 0, 0, 719, 720, 1, 0, 0, 0, 720, 721, 1, 0, 0, 0, 721, 722, 3, 135, 67, 0, 722, 134, 1, 0, 0, 0, 723, 725, 3, 107, 53, 0, 724, 723, 1, 0, 0, 0, 725, 726, 1, 0, 0, 0, 726, 724, 1, 0, 0, 0, 726, 727, 1, 0, 0, 0, 727, 136, 1, 0, 0, 0, 728, 730, 3, 139, 69, 0, 729, 728, 1, 0, 0, 0, 729, 730, 1, 0, 0, 0, 730, 731, 1, 0, 0, 0, 731, 732, 5, 46, 0, 0, 732, 737, 3, 139, 69, 0, 733, 734, 3, 139, 69, 0, 734, 735, 5, 46, 0, 0, 735, 737, 1, 0, 0, 0, 736, 729, 1, 0, 0, 0, 736, 733, 1, 0, 0, 0, 737, 138, 1, 0, 0, 0, 738, 740, 3, 121, 60, 0, 739, 738, 1, 0, 0, 0, 740, 741, 1, 0, 0, 0, 741, 739, 1, 0, 0, 0, 741, 742, 1, 0, 0, 0, 742, 140, 1, 0, 0, 0, 743, 745, 7, 13, 0, 0, 744, 746, 7, 12, 0, 0, 745, 744, 1, 0, 0, 0, 745, 746, 1, 0, 0, 0, 746, 747, 1, 0, 0, 0, 747, 748, 3, 135, 67, 0, 748, 142, 1, 0, 0, 0, 749, 750, 5, 92, 0, 0, 750, 765, 7, 14, 0, 0, 751, 752, 5, 92, 0, 0, 752, 754, 3, 119, 59, 0, 753, 755, 3, 119, 59, 0, 754, 753, 1, 0, 0, 0, 754, 755, 1, 0, 0, 0, 755, 757, 1, 0, 0, 0, 756, 758, 3, 119, 59, 0, 757, 756, 1, 0, 0, 0, 757, 758, 1, 0, 0, 0, 758, 765, 1, 0, 0, 0, 759, 760, 5, 92, 0, 0, 760, 761, 5, 120, 0, 0, 761, 762, 1, 0, 0, 0, 762, 765, 3, 139, 69, 0, 763, 765, 3, 125, 62, 0, 764, 749, 1, 0, 0, 0, 764, 751, 1, 0, 0, 0, 764, 759, 1, 0, 0, 0, 764, 763, 1, 0, 0, 0, 765, 144, 1, 0, 0, 0, 766, 768, 7, 15, 0, 0, 767, 766, 1, 0, 0, 0, 768, 769, 1, 0, 0, 0, 769, 767, 1, 0, 0, 0, 769, 770, 1, 0, 0, 0, 770, 771, 1, 0, 0, 0, 771, 772, 6, 72, 0, 0, 772, 146, 1, 0, 0, 0, 773, 775, 5, 13, 0, 0, 774, 776, 5, 10, 0, 0, 775, 774, 1, 0, 0, 0, 775, 776, 1, 0, 0, 0, 776, 779, 1, 0, 0, 0, 777, 779, 5, 10, 0, 0, 778, 773, 1, 0, 0, 0, 778, 777, 1, 0, 0, 0, 779, 780, 1, 0, 0, 0, 780, 781, 6, 73, 0, 0, 781, 148, 1, 0, 0, 0, 56, 0, 187, 201, 223, 255, 261, 269, 275, 280, 282, 313, 349, 385, 415, 453, 491, 517, 546, 552, 556, 561, 563, 573, 577, 582, 585, 589, 594, 600, 605, 610, 615, 624, 633, 644, 650, 654, 660, 688, 692, 697, 703, 708, 715, 719, 726, 729, 736, 741, 745, 754, 757, 764, 769, 775, 778, 1, 6, 0, 0] \ No newline at end of file +[4, 0, 51, 826, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 192, 8, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 206, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 228, 8, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 260, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 266, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 282, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 306, 8, 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 314, 8, 32, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 320, 8, 33, 1, 34, 1, 34, 1, 34, 5, 34, 325, 8, 34, 10, 34, 12, 34, 328, 9, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 358, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 394, 8, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 430, 8, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 460, 8, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 3, 39, 498, 8, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 536, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 562, 8, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 591, 8, 42, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 597, 8, 43, 1, 44, 1, 44, 3, 44, 601, 8, 44, 1, 45, 1, 45, 1, 45, 5, 45, 606, 8, 45, 10, 45, 12, 45, 609, 9, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 3, 47, 618, 8, 47, 1, 47, 1, 47, 3, 47, 622, 8, 47, 1, 47, 1, 47, 1, 47, 3, 47, 627, 8, 47, 1, 47, 3, 47, 630, 8, 47, 1, 48, 1, 48, 3, 48, 634, 8, 48, 1, 48, 1, 48, 1, 48, 3, 48, 639, 8, 48, 1, 48, 1, 48, 4, 48, 643, 8, 48, 11, 48, 12, 48, 644, 1, 49, 1, 49, 1, 49, 3, 49, 650, 8, 49, 1, 50, 4, 50, 653, 8, 50, 11, 50, 12, 50, 654, 1, 51, 4, 51, 658, 8, 51, 11, 51, 12, 51, 659, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 669, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 3, 53, 678, 8, 53, 1, 54, 1, 54, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 4, 56, 687, 8, 56, 11, 56, 12, 56, 688, 1, 57, 1, 57, 5, 57, 693, 8, 57, 10, 57, 12, 57, 696, 9, 57, 1, 57, 3, 57, 699, 8, 57, 1, 58, 1, 58, 5, 58, 703, 8, 58, 10, 58, 12, 58, 706, 9, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 3, 64, 733, 8, 64, 1, 65, 1, 65, 3, 65, 737, 8, 65, 1, 65, 1, 65, 1, 65, 3, 65, 742, 8, 65, 1, 66, 1, 66, 1, 66, 1, 66, 3, 66, 748, 8, 66, 1, 66, 1, 66, 1, 67, 3, 67, 753, 8, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 3, 67, 760, 8, 67, 1, 68, 1, 68, 3, 68, 764, 8, 68, 1, 68, 1, 68, 1, 69, 4, 69, 769, 8, 69, 11, 69, 12, 69, 770, 1, 70, 3, 70, 774, 8, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 3, 70, 781, 8, 70, 1, 71, 4, 71, 784, 8, 71, 11, 71, 12, 71, 785, 1, 72, 1, 72, 3, 72, 790, 8, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 799, 8, 73, 1, 73, 3, 73, 802, 8, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 809, 8, 73, 1, 74, 4, 74, 812, 8, 74, 11, 74, 12, 74, 813, 1, 74, 1, 74, 1, 75, 1, 75, 3, 75, 820, 8, 75, 1, 75, 3, 75, 823, 8, 75, 1, 75, 1, 75, 0, 0, 76, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 0, 101, 0, 103, 0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, 0, 129, 0, 131, 0, 133, 0, 135, 0, 137, 0, 139, 0, 141, 0, 143, 0, 145, 0, 147, 0, 149, 50, 151, 51, 1, 0, 16, 3, 0, 76, 76, 85, 85, 117, 117, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 3, 0, 65, 90, 95, 95, 97, 122, 1, 0, 48, 57, 2, 0, 66, 66, 98, 98, 1, 0, 48, 49, 2, 0, 88, 88, 120, 120, 1, 0, 49, 57, 1, 0, 48, 55, 3, 0, 48, 57, 65, 70, 97, 102, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 2, 0, 80, 80, 112, 112, 10, 0, 34, 34, 39, 39, 63, 63, 92, 92, 97, 98, 102, 102, 110, 110, 114, 114, 116, 116, 118, 118, 2, 0, 9, 9, 32, 32, 869, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 1, 153, 1, 0, 0, 0, 3, 155, 1, 0, 0, 0, 5, 157, 1, 0, 0, 0, 7, 159, 1, 0, 0, 0, 9, 161, 1, 0, 0, 0, 11, 163, 1, 0, 0, 0, 13, 165, 1, 0, 0, 0, 15, 167, 1, 0, 0, 0, 17, 169, 1, 0, 0, 0, 19, 172, 1, 0, 0, 0, 21, 174, 1, 0, 0, 0, 23, 177, 1, 0, 0, 0, 25, 180, 1, 0, 0, 0, 27, 191, 1, 0, 0, 0, 29, 205, 1, 0, 0, 0, 31, 227, 1, 0, 0, 0, 33, 229, 1, 0, 0, 0, 35, 231, 1, 0, 0, 0, 37, 233, 1, 0, 0, 0, 39, 235, 1, 0, 0, 0, 41, 237, 1, 0, 0, 0, 43, 239, 1, 0, 0, 0, 45, 242, 1, 0, 0, 0, 47, 245, 1, 0, 0, 0, 49, 248, 1, 0, 0, 0, 51, 250, 1, 0, 0, 0, 53, 252, 1, 0, 0, 0, 55, 259, 1, 0, 0, 0, 57, 265, 1, 0, 0, 0, 59, 281, 1, 0, 0, 0, 61, 305, 1, 0, 0, 0, 63, 307, 1, 0, 0, 0, 65, 313, 1, 0, 0, 0, 67, 319, 1, 0, 0, 0, 69, 321, 1, 0, 0, 0, 71, 357, 1, 0, 0, 0, 73, 393, 1, 0, 0, 0, 75, 429, 1, 0, 0, 0, 77, 459, 1, 0, 0, 0, 79, 497, 1, 0, 0, 0, 81, 535, 1, 0, 0, 0, 83, 561, 1, 0, 0, 0, 85, 590, 1, 0, 0, 0, 87, 596, 1, 0, 0, 0, 89, 600, 1, 0, 0, 0, 91, 602, 1, 0, 0, 0, 93, 610, 1, 0, 0, 0, 95, 617, 1, 0, 0, 0, 97, 633, 1, 0, 0, 0, 99, 649, 1, 0, 0, 0, 101, 652, 1, 0, 0, 0, 103, 657, 1, 0, 0, 0, 105, 668, 1, 0, 0, 0, 107, 677, 1, 0, 0, 0, 109, 679, 1, 0, 0, 0, 111, 681, 1, 0, 0, 0, 113, 683, 1, 0, 0, 0, 115, 698, 1, 0, 0, 0, 117, 700, 1, 0, 0, 0, 119, 707, 1, 0, 0, 0, 121, 711, 1, 0, 0, 0, 123, 713, 1, 0, 0, 0, 125, 715, 1, 0, 0, 0, 127, 717, 1, 0, 0, 0, 129, 732, 1, 0, 0, 0, 131, 741, 1, 0, 0, 0, 133, 743, 1, 0, 0, 0, 135, 759, 1, 0, 0, 0, 137, 761, 1, 0, 0, 0, 139, 768, 1, 0, 0, 0, 141, 780, 1, 0, 0, 0, 143, 783, 1, 0, 0, 0, 145, 787, 1, 0, 0, 0, 147, 808, 1, 0, 0, 0, 149, 811, 1, 0, 0, 0, 151, 822, 1, 0, 0, 0, 153, 154, 5, 40, 0, 0, 154, 2, 1, 0, 0, 0, 155, 156, 5, 41, 0, 0, 156, 4, 1, 0, 0, 0, 157, 158, 5, 91, 0, 0, 158, 6, 1, 0, 0, 0, 159, 160, 5, 44, 0, 0, 160, 8, 1, 0, 0, 0, 161, 162, 5, 93, 0, 0, 162, 10, 1, 0, 0, 0, 163, 164, 5, 123, 0, 0, 164, 12, 1, 0, 0, 0, 165, 166, 5, 125, 0, 0, 166, 14, 1, 0, 0, 0, 167, 168, 5, 60, 0, 0, 168, 16, 1, 0, 0, 0, 169, 170, 5, 60, 0, 0, 170, 171, 5, 61, 0, 0, 171, 18, 1, 0, 0, 0, 172, 173, 5, 62, 0, 0, 173, 20, 1, 0, 0, 0, 174, 175, 5, 62, 0, 0, 175, 176, 5, 61, 0, 0, 176, 22, 1, 0, 0, 0, 177, 178, 5, 61, 0, 0, 178, 179, 5, 61, 0, 0, 179, 24, 1, 0, 0, 0, 180, 181, 5, 33, 0, 0, 181, 182, 5, 61, 0, 0, 182, 26, 1, 0, 0, 0, 183, 184, 5, 108, 0, 0, 184, 185, 5, 105, 0, 0, 185, 186, 5, 107, 0, 0, 186, 192, 5, 101, 0, 0, 187, 188, 5, 76, 0, 0, 188, 189, 5, 73, 0, 0, 189, 190, 5, 75, 0, 0, 190, 192, 5, 69, 0, 0, 191, 183, 1, 0, 0, 0, 191, 187, 1, 0, 0, 0, 192, 28, 1, 0, 0, 0, 193, 194, 5, 101, 0, 0, 194, 195, 5, 120, 0, 0, 195, 196, 5, 105, 0, 0, 196, 197, 5, 115, 0, 0, 197, 198, 5, 116, 0, 0, 198, 206, 5, 115, 0, 0, 199, 200, 5, 69, 0, 0, 200, 201, 5, 88, 0, 0, 201, 202, 5, 73, 0, 0, 202, 203, 5, 83, 0, 0, 203, 204, 5, 84, 0, 0, 204, 206, 5, 83, 0, 0, 205, 193, 1, 0, 0, 0, 205, 199, 1, 0, 0, 0, 206, 30, 1, 0, 0, 0, 207, 208, 5, 116, 0, 0, 208, 209, 5, 101, 0, 0, 209, 210, 5, 120, 0, 0, 210, 211, 5, 116, 0, 0, 211, 212, 5, 95, 0, 0, 212, 213, 5, 109, 0, 0, 213, 214, 5, 97, 0, 0, 214, 215, 5, 116, 0, 0, 215, 216, 5, 99, 0, 0, 216, 228, 5, 104, 0, 0, 217, 218, 5, 84, 0, 0, 218, 219, 5, 69, 0, 0, 219, 220, 5, 88, 0, 0, 220, 221, 5, 84, 0, 0, 221, 222, 5, 95, 0, 0, 222, 223, 5, 77, 0, 0, 223, 224, 5, 65, 0, 0, 224, 225, 5, 84, 0, 0, 225, 226, 5, 67, 0, 0, 226, 228, 5, 72, 0, 0, 227, 207, 1, 0, 0, 0, 227, 217, 1, 0, 0, 0, 228, 32, 1, 0, 0, 0, 229, 230, 5, 43, 0, 0, 230, 34, 1, 0, 0, 0, 231, 232, 5, 45, 0, 0, 232, 36, 1, 0, 0, 0, 233, 234, 5, 42, 0, 0, 234, 38, 1, 0, 0, 0, 235, 236, 5, 47, 0, 0, 236, 40, 1, 0, 0, 0, 237, 238, 5, 37, 0, 0, 238, 42, 1, 0, 0, 0, 239, 240, 5, 42, 0, 0, 240, 241, 5, 42, 0, 0, 241, 44, 1, 0, 0, 0, 242, 243, 5, 60, 0, 0, 243, 244, 5, 60, 0, 0, 244, 46, 1, 0, 0, 0, 245, 246, 5, 62, 0, 0, 246, 247, 5, 62, 0, 0, 247, 48, 1, 0, 0, 0, 248, 249, 5, 38, 0, 0, 249, 50, 1, 0, 0, 0, 250, 251, 5, 124, 0, 0, 251, 52, 1, 0, 0, 0, 252, 253, 5, 94, 0, 0, 253, 54, 1, 0, 0, 0, 254, 255, 5, 38, 0, 0, 255, 260, 5, 38, 0, 0, 256, 257, 5, 97, 0, 0, 257, 258, 5, 110, 0, 0, 258, 260, 5, 100, 0, 0, 259, 254, 1, 0, 0, 0, 259, 256, 1, 0, 0, 0, 260, 56, 1, 0, 0, 0, 261, 262, 5, 124, 0, 0, 262, 266, 5, 124, 0, 0, 263, 264, 5, 111, 0, 0, 264, 266, 5, 114, 0, 0, 265, 261, 1, 0, 0, 0, 265, 263, 1, 0, 0, 0, 266, 58, 1, 0, 0, 0, 267, 268, 5, 105, 0, 0, 268, 269, 5, 115, 0, 0, 269, 270, 5, 32, 0, 0, 270, 271, 5, 110, 0, 0, 271, 272, 5, 117, 0, 0, 272, 273, 5, 108, 0, 0, 273, 282, 5, 108, 0, 0, 274, 275, 5, 73, 0, 0, 275, 276, 5, 83, 0, 0, 276, 277, 5, 32, 0, 0, 277, 278, 5, 78, 0, 0, 278, 279, 5, 85, 0, 0, 279, 280, 5, 76, 0, 0, 280, 282, 5, 76, 0, 0, 281, 267, 1, 0, 0, 0, 281, 274, 1, 0, 0, 0, 282, 60, 1, 0, 0, 0, 283, 284, 5, 105, 0, 0, 284, 285, 5, 115, 0, 0, 285, 286, 5, 32, 0, 0, 286, 287, 5, 110, 0, 0, 287, 288, 5, 111, 0, 0, 288, 289, 5, 116, 0, 0, 289, 290, 5, 32, 0, 0, 290, 291, 5, 110, 0, 0, 291, 292, 5, 117, 0, 0, 292, 293, 5, 108, 0, 0, 293, 306, 5, 108, 0, 0, 294, 295, 5, 73, 0, 0, 295, 296, 5, 83, 0, 0, 296, 297, 5, 32, 0, 0, 297, 298, 5, 78, 0, 0, 298, 299, 5, 79, 0, 0, 299, 300, 5, 84, 0, 0, 300, 301, 5, 32, 0, 0, 301, 302, 5, 78, 0, 0, 302, 303, 5, 85, 0, 0, 303, 304, 5, 76, 0, 0, 304, 306, 5, 76, 0, 0, 305, 283, 1, 0, 0, 0, 305, 294, 1, 0, 0, 0, 306, 62, 1, 0, 0, 0, 307, 308, 5, 126, 0, 0, 308, 64, 1, 0, 0, 0, 309, 314, 5, 33, 0, 0, 310, 311, 5, 110, 0, 0, 311, 312, 5, 111, 0, 0, 312, 314, 5, 116, 0, 0, 313, 309, 1, 0, 0, 0, 313, 310, 1, 0, 0, 0, 314, 66, 1, 0, 0, 0, 315, 316, 5, 105, 0, 0, 316, 320, 5, 110, 0, 0, 317, 318, 5, 73, 0, 0, 318, 320, 5, 78, 0, 0, 319, 315, 1, 0, 0, 0, 319, 317, 1, 0, 0, 0, 320, 68, 1, 0, 0, 0, 321, 326, 5, 91, 0, 0, 322, 325, 3, 149, 74, 0, 323, 325, 3, 151, 75, 0, 324, 322, 1, 0, 0, 0, 324, 323, 1, 0, 0, 0, 325, 328, 1, 0, 0, 0, 326, 324, 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327, 329, 1, 0, 0, 0, 328, 326, 1, 0, 0, 0, 329, 330, 5, 93, 0, 0, 330, 70, 1, 0, 0, 0, 331, 332, 5, 106, 0, 0, 332, 333, 5, 115, 0, 0, 333, 334, 5, 111, 0, 0, 334, 335, 5, 110, 0, 0, 335, 336, 5, 95, 0, 0, 336, 337, 5, 99, 0, 0, 337, 338, 5, 111, 0, 0, 338, 339, 5, 110, 0, 0, 339, 340, 5, 116, 0, 0, 340, 341, 5, 97, 0, 0, 341, 342, 5, 105, 0, 0, 342, 343, 5, 110, 0, 0, 343, 358, 5, 115, 0, 0, 344, 345, 5, 74, 0, 0, 345, 346, 5, 83, 0, 0, 346, 347, 5, 79, 0, 0, 347, 348, 5, 78, 0, 0, 348, 349, 5, 95, 0, 0, 349, 350, 5, 67, 0, 0, 350, 351, 5, 79, 0, 0, 351, 352, 5, 78, 0, 0, 352, 353, 5, 84, 0, 0, 353, 354, 5, 65, 0, 0, 354, 355, 5, 73, 0, 0, 355, 356, 5, 78, 0, 0, 356, 358, 5, 83, 0, 0, 357, 331, 1, 0, 0, 0, 357, 344, 1, 0, 0, 0, 358, 72, 1, 0, 0, 0, 359, 360, 5, 106, 0, 0, 360, 361, 5, 115, 0, 0, 361, 362, 5, 111, 0, 0, 362, 363, 5, 110, 0, 0, 363, 364, 5, 95, 0, 0, 364, 365, 5, 99, 0, 0, 365, 366, 5, 111, 0, 0, 366, 367, 5, 110, 0, 0, 367, 368, 5, 116, 0, 0, 368, 369, 5, 97, 0, 0, 369, 370, 5, 105, 0, 0, 370, 371, 5, 110, 0, 0, 371, 372, 5, 115, 0, 0, 372, 373, 5, 95, 0, 0, 373, 374, 5, 97, 0, 0, 374, 375, 5, 108, 0, 0, 375, 394, 5, 108, 0, 0, 376, 377, 5, 74, 0, 0, 377, 378, 5, 83, 0, 0, 378, 379, 5, 79, 0, 0, 379, 380, 5, 78, 0, 0, 380, 381, 5, 95, 0, 0, 381, 382, 5, 67, 0, 0, 382, 383, 5, 79, 0, 0, 383, 384, 5, 78, 0, 0, 384, 385, 5, 84, 0, 0, 385, 386, 5, 65, 0, 0, 386, 387, 5, 73, 0, 0, 387, 388, 5, 78, 0, 0, 388, 389, 5, 83, 0, 0, 389, 390, 5, 95, 0, 0, 390, 391, 5, 65, 0, 0, 391, 392, 5, 76, 0, 0, 392, 394, 5, 76, 0, 0, 393, 359, 1, 0, 0, 0, 393, 376, 1, 0, 0, 0, 394, 74, 1, 0, 0, 0, 395, 396, 5, 106, 0, 0, 396, 397, 5, 115, 0, 0, 397, 398, 5, 111, 0, 0, 398, 399, 5, 110, 0, 0, 399, 400, 5, 95, 0, 0, 400, 401, 5, 99, 0, 0, 401, 402, 5, 111, 0, 0, 402, 403, 5, 110, 0, 0, 403, 404, 5, 116, 0, 0, 404, 405, 5, 97, 0, 0, 405, 406, 5, 105, 0, 0, 406, 407, 5, 110, 0, 0, 407, 408, 5, 115, 0, 0, 408, 409, 5, 95, 0, 0, 409, 410, 5, 97, 0, 0, 410, 411, 5, 110, 0, 0, 411, 430, 5, 121, 0, 0, 412, 413, 5, 74, 0, 0, 413, 414, 5, 83, 0, 0, 414, 415, 5, 79, 0, 0, 415, 416, 5, 78, 0, 0, 416, 417, 5, 95, 0, 0, 417, 418, 5, 67, 0, 0, 418, 419, 5, 79, 0, 0, 419, 420, 5, 78, 0, 0, 420, 421, 5, 84, 0, 0, 421, 422, 5, 65, 0, 0, 422, 423, 5, 73, 0, 0, 423, 424, 5, 78, 0, 0, 424, 425, 5, 83, 0, 0, 425, 426, 5, 95, 0, 0, 426, 427, 5, 65, 0, 0, 427, 428, 5, 78, 0, 0, 428, 430, 5, 89, 0, 0, 429, 395, 1, 0, 0, 0, 429, 412, 1, 0, 0, 0, 430, 76, 1, 0, 0, 0, 431, 432, 5, 97, 0, 0, 432, 433, 5, 114, 0, 0, 433, 434, 5, 114, 0, 0, 434, 435, 5, 97, 0, 0, 435, 436, 5, 121, 0, 0, 436, 437, 5, 95, 0, 0, 437, 438, 5, 99, 0, 0, 438, 439, 5, 111, 0, 0, 439, 440, 5, 110, 0, 0, 440, 441, 5, 116, 0, 0, 441, 442, 5, 97, 0, 0, 442, 443, 5, 105, 0, 0, 443, 444, 5, 110, 0, 0, 444, 460, 5, 115, 0, 0, 445, 446, 5, 65, 0, 0, 446, 447, 5, 82, 0, 0, 447, 448, 5, 82, 0, 0, 448, 449, 5, 65, 0, 0, 449, 450, 5, 89, 0, 0, 450, 451, 5, 95, 0, 0, 451, 452, 5, 67, 0, 0, 452, 453, 5, 79, 0, 0, 453, 454, 5, 78, 0, 0, 454, 455, 5, 84, 0, 0, 455, 456, 5, 65, 0, 0, 456, 457, 5, 73, 0, 0, 457, 458, 5, 78, 0, 0, 458, 460, 5, 83, 0, 0, 459, 431, 1, 0, 0, 0, 459, 445, 1, 0, 0, 0, 460, 78, 1, 0, 0, 0, 461, 462, 5, 97, 0, 0, 462, 463, 5, 114, 0, 0, 463, 464, 5, 114, 0, 0, 464, 465, 5, 97, 0, 0, 465, 466, 5, 121, 0, 0, 466, 467, 5, 95, 0, 0, 467, 468, 5, 99, 0, 0, 468, 469, 5, 111, 0, 0, 469, 470, 5, 110, 0, 0, 470, 471, 5, 116, 0, 0, 471, 472, 5, 97, 0, 0, 472, 473, 5, 105, 0, 0, 473, 474, 5, 110, 0, 0, 474, 475, 5, 115, 0, 0, 475, 476, 5, 95, 0, 0, 476, 477, 5, 97, 0, 0, 477, 478, 5, 108, 0, 0, 478, 498, 5, 108, 0, 0, 479, 480, 5, 65, 0, 0, 480, 481, 5, 82, 0, 0, 481, 482, 5, 82, 0, 0, 482, 483, 5, 65, 0, 0, 483, 484, 5, 89, 0, 0, 484, 485, 5, 95, 0, 0, 485, 486, 5, 67, 0, 0, 486, 487, 5, 79, 0, 0, 487, 488, 5, 78, 0, 0, 488, 489, 5, 84, 0, 0, 489, 490, 5, 65, 0, 0, 490, 491, 5, 73, 0, 0, 491, 492, 5, 78, 0, 0, 492, 493, 5, 83, 0, 0, 493, 494, 5, 95, 0, 0, 494, 495, 5, 65, 0, 0, 495, 496, 5, 76, 0, 0, 496, 498, 5, 76, 0, 0, 497, 461, 1, 0, 0, 0, 497, 479, 1, 0, 0, 0, 498, 80, 1, 0, 0, 0, 499, 500, 5, 97, 0, 0, 500, 501, 5, 114, 0, 0, 501, 502, 5, 114, 0, 0, 502, 503, 5, 97, 0, 0, 503, 504, 5, 121, 0, 0, 504, 505, 5, 95, 0, 0, 505, 506, 5, 99, 0, 0, 506, 507, 5, 111, 0, 0, 507, 508, 5, 110, 0, 0, 508, 509, 5, 116, 0, 0, 509, 510, 5, 97, 0, 0, 510, 511, 5, 105, 0, 0, 511, 512, 5, 110, 0, 0, 512, 513, 5, 115, 0, 0, 513, 514, 5, 95, 0, 0, 514, 515, 5, 97, 0, 0, 515, 516, 5, 110, 0, 0, 516, 536, 5, 121, 0, 0, 517, 518, 5, 65, 0, 0, 518, 519, 5, 82, 0, 0, 519, 520, 5, 82, 0, 0, 520, 521, 5, 65, 0, 0, 521, 522, 5, 89, 0, 0, 522, 523, 5, 95, 0, 0, 523, 524, 5, 67, 0, 0, 524, 525, 5, 79, 0, 0, 525, 526, 5, 78, 0, 0, 526, 527, 5, 84, 0, 0, 527, 528, 5, 65, 0, 0, 528, 529, 5, 73, 0, 0, 529, 530, 5, 78, 0, 0, 530, 531, 5, 83, 0, 0, 531, 532, 5, 95, 0, 0, 532, 533, 5, 65, 0, 0, 533, 534, 5, 78, 0, 0, 534, 536, 5, 89, 0, 0, 535, 499, 1, 0, 0, 0, 535, 517, 1, 0, 0, 0, 536, 82, 1, 0, 0, 0, 537, 538, 5, 97, 0, 0, 538, 539, 5, 114, 0, 0, 539, 540, 5, 114, 0, 0, 540, 541, 5, 97, 0, 0, 541, 542, 5, 121, 0, 0, 542, 543, 5, 95, 0, 0, 543, 544, 5, 108, 0, 0, 544, 545, 5, 101, 0, 0, 545, 546, 5, 110, 0, 0, 546, 547, 5, 103, 0, 0, 547, 548, 5, 116, 0, 0, 548, 562, 5, 104, 0, 0, 549, 550, 5, 65, 0, 0, 550, 551, 5, 82, 0, 0, 551, 552, 5, 82, 0, 0, 552, 553, 5, 65, 0, 0, 553, 554, 5, 89, 0, 0, 554, 555, 5, 95, 0, 0, 555, 556, 5, 76, 0, 0, 556, 557, 5, 69, 0, 0, 557, 558, 5, 78, 0, 0, 558, 559, 5, 71, 0, 0, 559, 560, 5, 84, 0, 0, 560, 562, 5, 72, 0, 0, 561, 537, 1, 0, 0, 0, 561, 549, 1, 0, 0, 0, 562, 84, 1, 0, 0, 0, 563, 564, 5, 116, 0, 0, 564, 565, 5, 114, 0, 0, 565, 566, 5, 117, 0, 0, 566, 591, 5, 101, 0, 0, 567, 568, 5, 84, 0, 0, 568, 569, 5, 114, 0, 0, 569, 570, 5, 117, 0, 0, 570, 591, 5, 101, 0, 0, 571, 572, 5, 84, 0, 0, 572, 573, 5, 82, 0, 0, 573, 574, 5, 85, 0, 0, 574, 591, 5, 69, 0, 0, 575, 576, 5, 102, 0, 0, 576, 577, 5, 97, 0, 0, 577, 578, 5, 108, 0, 0, 578, 579, 5, 115, 0, 0, 579, 591, 5, 101, 0, 0, 580, 581, 5, 70, 0, 0, 581, 582, 5, 97, 0, 0, 582, 583, 5, 108, 0, 0, 583, 584, 5, 115, 0, 0, 584, 591, 5, 101, 0, 0, 585, 586, 5, 70, 0, 0, 586, 587, 5, 65, 0, 0, 587, 588, 5, 76, 0, 0, 588, 589, 5, 83, 0, 0, 589, 591, 5, 69, 0, 0, 590, 563, 1, 0, 0, 0, 590, 567, 1, 0, 0, 0, 590, 571, 1, 0, 0, 0, 590, 575, 1, 0, 0, 0, 590, 580, 1, 0, 0, 0, 590, 585, 1, 0, 0, 0, 591, 86, 1, 0, 0, 0, 592, 597, 3, 115, 57, 0, 593, 597, 3, 117, 58, 0, 594, 597, 3, 119, 59, 0, 595, 597, 3, 113, 56, 0, 596, 592, 1, 0, 0, 0, 596, 593, 1, 0, 0, 0, 596, 594, 1, 0, 0, 0, 596, 595, 1, 0, 0, 0, 597, 88, 1, 0, 0, 0, 598, 601, 3, 131, 65, 0, 599, 601, 3, 133, 66, 0, 600, 598, 1, 0, 0, 0, 600, 599, 1, 0, 0, 0, 601, 90, 1, 0, 0, 0, 602, 607, 3, 109, 54, 0, 603, 606, 3, 109, 54, 0, 604, 606, 3, 111, 55, 0, 605, 603, 1, 0, 0, 0, 605, 604, 1, 0, 0, 0, 606, 609, 1, 0, 0, 0, 607, 605, 1, 0, 0, 0, 607, 608, 1, 0, 0, 0, 608, 92, 1, 0, 0, 0, 609, 607, 1, 0, 0, 0, 610, 611, 5, 36, 0, 0, 611, 612, 5, 109, 0, 0, 612, 613, 5, 101, 0, 0, 613, 614, 5, 116, 0, 0, 614, 615, 5, 97, 0, 0, 615, 94, 1, 0, 0, 0, 616, 618, 3, 99, 49, 0, 617, 616, 1, 0, 0, 0, 617, 618, 1, 0, 0, 0, 618, 629, 1, 0, 0, 0, 619, 621, 5, 34, 0, 0, 620, 622, 3, 101, 50, 0, 621, 620, 1, 0, 0, 0, 621, 622, 1, 0, 0, 0, 622, 623, 1, 0, 0, 0, 623, 630, 5, 34, 0, 0, 624, 626, 5, 39, 0, 0, 625, 627, 3, 103, 51, 0, 626, 625, 1, 0, 0, 0, 626, 627, 1, 0, 0, 0, 627, 628, 1, 0, 0, 0, 628, 630, 5, 39, 0, 0, 629, 619, 1, 0, 0, 0, 629, 624, 1, 0, 0, 0, 630, 96, 1, 0, 0, 0, 631, 634, 3, 91, 45, 0, 632, 634, 3, 93, 46, 0, 633, 631, 1, 0, 0, 0, 633, 632, 1, 0, 0, 0, 634, 642, 1, 0, 0, 0, 635, 638, 5, 91, 0, 0, 636, 639, 3, 95, 47, 0, 637, 639, 3, 115, 57, 0, 638, 636, 1, 0, 0, 0, 638, 637, 1, 0, 0, 0, 639, 640, 1, 0, 0, 0, 640, 641, 5, 93, 0, 0, 641, 643, 1, 0, 0, 0, 642, 635, 1, 0, 0, 0, 643, 644, 1, 0, 0, 0, 644, 642, 1, 0, 0, 0, 644, 645, 1, 0, 0, 0, 645, 98, 1, 0, 0, 0, 646, 647, 5, 117, 0, 0, 647, 650, 5, 56, 0, 0, 648, 650, 7, 0, 0, 0, 649, 646, 1, 0, 0, 0, 649, 648, 1, 0, 0, 0, 650, 100, 1, 0, 0, 0, 651, 653, 3, 105, 52, 0, 652, 651, 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 652, 1, 0, 0, 0, 654, 655, 1, 0, 0, 0, 655, 102, 1, 0, 0, 0, 656, 658, 3, 107, 53, 0, 657, 656, 1, 0, 0, 0, 658, 659, 1, 0, 0, 0, 659, 657, 1, 0, 0, 0, 659, 660, 1, 0, 0, 0, 660, 104, 1, 0, 0, 0, 661, 669, 8, 1, 0, 0, 662, 669, 3, 147, 73, 0, 663, 664, 5, 92, 0, 0, 664, 669, 5, 10, 0, 0, 665, 666, 5, 92, 0, 0, 666, 667, 5, 13, 0, 0, 667, 669, 5, 10, 0, 0, 668, 661, 1, 0, 0, 0, 668, 662, 1, 0, 0, 0, 668, 663, 1, 0, 0, 0, 668, 665, 1, 0, 0, 0, 669, 106, 1, 0, 0, 0, 670, 678, 8, 2, 0, 0, 671, 678, 3, 147, 73, 0, 672, 673, 5, 92, 0, 0, 673, 678, 5, 10, 0, 0, 674, 675, 5, 92, 0, 0, 675, 676, 5, 13, 0, 0, 676, 678, 5, 10, 0, 0, 677, 670, 1, 0, 0, 0, 677, 671, 1, 0, 0, 0, 677, 672, 1, 0, 0, 0, 677, 674, 1, 0, 0, 0, 678, 108, 1, 0, 0, 0, 679, 680, 7, 3, 0, 0, 680, 110, 1, 0, 0, 0, 681, 682, 7, 4, 0, 0, 682, 112, 1, 0, 0, 0, 683, 684, 5, 48, 0, 0, 684, 686, 7, 5, 0, 0, 685, 687, 7, 6, 0, 0, 686, 685, 1, 0, 0, 0, 687, 688, 1, 0, 0, 0, 688, 686, 1, 0, 0, 0, 688, 689, 1, 0, 0, 0, 689, 114, 1, 0, 0, 0, 690, 694, 3, 121, 60, 0, 691, 693, 3, 111, 55, 0, 692, 691, 1, 0, 0, 0, 693, 696, 1, 0, 0, 0, 694, 692, 1, 0, 0, 0, 694, 695, 1, 0, 0, 0, 695, 699, 1, 0, 0, 0, 696, 694, 1, 0, 0, 0, 697, 699, 5, 48, 0, 0, 698, 690, 1, 0, 0, 0, 698, 697, 1, 0, 0, 0, 699, 116, 1, 0, 0, 0, 700, 704, 5, 48, 0, 0, 701, 703, 3, 123, 61, 0, 702, 701, 1, 0, 0, 0, 703, 706, 1, 0, 0, 0, 704, 702, 1, 0, 0, 0, 704, 705, 1, 0, 0, 0, 705, 118, 1, 0, 0, 0, 706, 704, 1, 0, 0, 0, 707, 708, 5, 48, 0, 0, 708, 709, 7, 7, 0, 0, 709, 710, 3, 143, 71, 0, 710, 120, 1, 0, 0, 0, 711, 712, 7, 8, 0, 0, 712, 122, 1, 0, 0, 0, 713, 714, 7, 9, 0, 0, 714, 124, 1, 0, 0, 0, 715, 716, 7, 10, 0, 0, 716, 126, 1, 0, 0, 0, 717, 718, 3, 125, 62, 0, 718, 719, 3, 125, 62, 0, 719, 720, 3, 125, 62, 0, 720, 721, 3, 125, 62, 0, 721, 128, 1, 0, 0, 0, 722, 723, 5, 92, 0, 0, 723, 724, 5, 117, 0, 0, 724, 725, 1, 0, 0, 0, 725, 733, 3, 127, 63, 0, 726, 727, 5, 92, 0, 0, 727, 728, 5, 85, 0, 0, 728, 729, 1, 0, 0, 0, 729, 730, 3, 127, 63, 0, 730, 731, 3, 127, 63, 0, 731, 733, 1, 0, 0, 0, 732, 722, 1, 0, 0, 0, 732, 726, 1, 0, 0, 0, 733, 130, 1, 0, 0, 0, 734, 736, 3, 135, 67, 0, 735, 737, 3, 137, 68, 0, 736, 735, 1, 0, 0, 0, 736, 737, 1, 0, 0, 0, 737, 742, 1, 0, 0, 0, 738, 739, 3, 139, 69, 0, 739, 740, 3, 137, 68, 0, 740, 742, 1, 0, 0, 0, 741, 734, 1, 0, 0, 0, 741, 738, 1, 0, 0, 0, 742, 132, 1, 0, 0, 0, 743, 744, 5, 48, 0, 0, 744, 747, 7, 7, 0, 0, 745, 748, 3, 141, 70, 0, 746, 748, 3, 143, 71, 0, 747, 745, 1, 0, 0, 0, 747, 746, 1, 0, 0, 0, 748, 749, 1, 0, 0, 0, 749, 750, 3, 145, 72, 0, 750, 134, 1, 0, 0, 0, 751, 753, 3, 139, 69, 0, 752, 751, 1, 0, 0, 0, 752, 753, 1, 0, 0, 0, 753, 754, 1, 0, 0, 0, 754, 755, 5, 46, 0, 0, 755, 760, 3, 139, 69, 0, 756, 757, 3, 139, 69, 0, 757, 758, 5, 46, 0, 0, 758, 760, 1, 0, 0, 0, 759, 752, 1, 0, 0, 0, 759, 756, 1, 0, 0, 0, 760, 136, 1, 0, 0, 0, 761, 763, 7, 11, 0, 0, 762, 764, 7, 12, 0, 0, 763, 762, 1, 0, 0, 0, 763, 764, 1, 0, 0, 0, 764, 765, 1, 0, 0, 0, 765, 766, 3, 139, 69, 0, 766, 138, 1, 0, 0, 0, 767, 769, 3, 111, 55, 0, 768, 767, 1, 0, 0, 0, 769, 770, 1, 0, 0, 0, 770, 768, 1, 0, 0, 0, 770, 771, 1, 0, 0, 0, 771, 140, 1, 0, 0, 0, 772, 774, 3, 143, 71, 0, 773, 772, 1, 0, 0, 0, 773, 774, 1, 0, 0, 0, 774, 775, 1, 0, 0, 0, 775, 776, 5, 46, 0, 0, 776, 781, 3, 143, 71, 0, 777, 778, 3, 143, 71, 0, 778, 779, 5, 46, 0, 0, 779, 781, 1, 0, 0, 0, 780, 773, 1, 0, 0, 0, 780, 777, 1, 0, 0, 0, 781, 142, 1, 0, 0, 0, 782, 784, 3, 125, 62, 0, 783, 782, 1, 0, 0, 0, 784, 785, 1, 0, 0, 0, 785, 783, 1, 0, 0, 0, 785, 786, 1, 0, 0, 0, 786, 144, 1, 0, 0, 0, 787, 789, 7, 13, 0, 0, 788, 790, 7, 12, 0, 0, 789, 788, 1, 0, 0, 0, 789, 790, 1, 0, 0, 0, 790, 791, 1, 0, 0, 0, 791, 792, 3, 139, 69, 0, 792, 146, 1, 0, 0, 0, 793, 794, 5, 92, 0, 0, 794, 809, 7, 14, 0, 0, 795, 796, 5, 92, 0, 0, 796, 798, 3, 123, 61, 0, 797, 799, 3, 123, 61, 0, 798, 797, 1, 0, 0, 0, 798, 799, 1, 0, 0, 0, 799, 801, 1, 0, 0, 0, 800, 802, 3, 123, 61, 0, 801, 800, 1, 0, 0, 0, 801, 802, 1, 0, 0, 0, 802, 809, 1, 0, 0, 0, 803, 804, 5, 92, 0, 0, 804, 805, 5, 120, 0, 0, 805, 806, 1, 0, 0, 0, 806, 809, 3, 143, 71, 0, 807, 809, 3, 129, 64, 0, 808, 793, 1, 0, 0, 0, 808, 795, 1, 0, 0, 0, 808, 803, 1, 0, 0, 0, 808, 807, 1, 0, 0, 0, 809, 148, 1, 0, 0, 0, 810, 812, 7, 15, 0, 0, 811, 810, 1, 0, 0, 0, 812, 813, 1, 0, 0, 0, 813, 811, 1, 0, 0, 0, 813, 814, 1, 0, 0, 0, 814, 815, 1, 0, 0, 0, 815, 816, 6, 74, 0, 0, 816, 150, 1, 0, 0, 0, 817, 819, 5, 13, 0, 0, 818, 820, 5, 10, 0, 0, 819, 818, 1, 0, 0, 0, 819, 820, 1, 0, 0, 0, 820, 823, 1, 0, 0, 0, 821, 823, 5, 10, 0, 0, 822, 817, 1, 0, 0, 0, 822, 821, 1, 0, 0, 0, 823, 824, 1, 0, 0, 0, 824, 825, 6, 75, 0, 0, 825, 152, 1, 0, 0, 0, 58, 0, 191, 205, 227, 259, 265, 281, 305, 313, 319, 324, 326, 357, 393, 429, 459, 497, 535, 561, 590, 596, 600, 605, 607, 617, 621, 626, 629, 633, 638, 644, 649, 654, 659, 668, 677, 688, 694, 698, 704, 732, 736, 741, 747, 752, 759, 763, 770, 773, 780, 785, 789, 798, 801, 808, 813, 819, 822, 1, 6, 0, 0] \ No newline at end of file diff --git a/internal/parser/planparserv2/generated/PlanLexer.tokens b/internal/parser/planparserv2/generated/PlanLexer.tokens index 0b084bff8ff8d..a198ec9a5db41 100644 --- a/internal/parser/planparserv2/generated/PlanLexer.tokens +++ b/internal/parser/planparserv2/generated/PlanLexer.tokens @@ -27,26 +27,28 @@ BOR=26 BXOR=27 AND=28 OR=29 -BNOT=30 -NOT=31 -IN=32 -EmptyArray=33 -JSONContains=34 -JSONContainsAll=35 -JSONContainsAny=36 -ArrayContains=37 -ArrayContainsAll=38 -ArrayContainsAny=39 -ArrayLength=40 -BooleanConstant=41 -IntegerConstant=42 -FloatingConstant=43 -Identifier=44 -Meta=45 -StringLiteral=46 -JSONIdentifier=47 -Whitespace=48 -Newline=49 +ISNULL=30 +ISNOTNULL=31 +BNOT=32 +NOT=33 +IN=34 +EmptyArray=35 +JSONContains=36 +JSONContainsAll=37 +JSONContainsAny=38 +ArrayContains=39 +ArrayContainsAll=40 +ArrayContainsAny=41 +ArrayLength=42 +BooleanConstant=43 +IntegerConstant=44 +FloatingConstant=45 +Identifier=46 +Meta=47 +StringLiteral=48 +JSONIdentifier=49 +Whitespace=50 +Newline=51 '('=1 ')'=2 '['=3 @@ -71,5 +73,5 @@ Newline=49 '&'=25 '|'=26 '^'=27 -'~'=30 -'$meta'=45 +'~'=32 +'$meta'=47 diff --git a/internal/parser/planparserv2/generated/plan_base_visitor.go b/internal/parser/planparserv2/generated/plan_base_visitor.go index bcf5a218fbc86..4e7e3cb6b47c3 100644 --- a/internal/parser/planparserv2/generated/plan_base_visitor.go +++ b/internal/parser/planparserv2/generated/plan_base_visitor.go @@ -31,6 +31,10 @@ func (v *BasePlanVisitor) VisitLogicalOr(ctx *LogicalOrContext) interface{} { return v.VisitChildren(ctx) } +func (v *BasePlanVisitor) VisitIsNotNull(ctx *IsNotNullContext) interface{} { + return v.VisitChildren(ctx) +} + func (v *BasePlanVisitor) VisitMulDivMod(ctx *MulDivModContext) interface{} { return v.VisitChildren(ctx) } @@ -135,6 +139,10 @@ func (v *BasePlanVisitor) VisitBitAnd(ctx *BitAndContext) interface{} { return v.VisitChildren(ctx) } +func (v *BasePlanVisitor) VisitIsNull(ctx *IsNullContext) interface{} { + return v.VisitChildren(ctx) +} + func (v *BasePlanVisitor) VisitPower(ctx *PowerContext) interface{} { return v.VisitChildren(ctx) } diff --git a/internal/parser/planparserv2/generated/plan_lexer.go b/internal/parser/planparserv2/generated/plan_lexer.go index 834faf117fd13..a529c4eea1edc 100644 --- a/internal/parser/planparserv2/generated/plan_lexer.go +++ b/internal/parser/planparserv2/generated/plan_lexer.go @@ -45,37 +45,38 @@ func planlexerLexerInit() { staticData.LiteralNames = []string{ "", "'('", "')'", "'['", "','", "']'", "'{'", "'}'", "'<'", "'<='", "'>'", "'>='", "'=='", "'!='", "", "", "", "'+'", "'-'", "'*'", "'/'", - "'%'", "'**'", "'<<'", "'>>'", "'&'", "'|'", "'^'", "", "", "'~'", "", - "", "", "", "", "", "", "", "", "", "", "", "", "", "'$meta'", + "'%'", "'**'", "'<<'", "'>>'", "'&'", "'|'", "'^'", "", "", "", "", + "'~'", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "'$meta'", } staticData.SymbolicNames = []string{ "", "", "", "", "", "", "LBRACE", "RBRACE", "LT", "LE", "GT", "GE", "EQ", "NE", "LIKE", "EXISTS", "TEXTMATCH", "ADD", "SUB", "MUL", "DIV", - "MOD", "POW", "SHL", "SHR", "BAND", "BOR", "BXOR", "AND", "OR", "BNOT", - "NOT", "IN", "EmptyArray", "JSONContains", "JSONContainsAll", "JSONContainsAny", - "ArrayContains", "ArrayContainsAll", "ArrayContainsAny", "ArrayLength", - "BooleanConstant", "IntegerConstant", "FloatingConstant", "Identifier", - "Meta", "StringLiteral", "JSONIdentifier", "Whitespace", "Newline", + "MOD", "POW", "SHL", "SHR", "BAND", "BOR", "BXOR", "AND", "OR", "ISNULL", + "ISNOTNULL", "BNOT", "NOT", "IN", "EmptyArray", "JSONContains", "JSONContainsAll", + "JSONContainsAny", "ArrayContains", "ArrayContainsAll", "ArrayContainsAny", + "ArrayLength", "BooleanConstant", "IntegerConstant", "FloatingConstant", + "Identifier", "Meta", "StringLiteral", "JSONIdentifier", "Whitespace", + "Newline", } staticData.RuleNames = []string{ "T__0", "T__1", "T__2", "T__3", "T__4", "LBRACE", "RBRACE", "LT", "LE", "GT", "GE", "EQ", "NE", "LIKE", "EXISTS", "TEXTMATCH", "ADD", "SUB", "MUL", "DIV", "MOD", "POW", "SHL", "SHR", "BAND", "BOR", "BXOR", "AND", - "OR", "BNOT", "NOT", "IN", "EmptyArray", "JSONContains", "JSONContainsAll", - "JSONContainsAny", "ArrayContains", "ArrayContainsAll", "ArrayContainsAny", - "ArrayLength", "BooleanConstant", "IntegerConstant", "FloatingConstant", - "Identifier", "Meta", "StringLiteral", "JSONIdentifier", "EncodingPrefix", - "DoubleSCharSequence", "SingleSCharSequence", "DoubleSChar", "SingleSChar", - "Nondigit", "Digit", "BinaryConstant", "DecimalConstant", "OctalConstant", - "HexadecimalConstant", "NonzeroDigit", "OctalDigit", "HexadecimalDigit", - "HexQuad", "UniversalCharacterName", "DecimalFloatingConstant", "HexadecimalFloatingConstant", - "FractionalConstant", "ExponentPart", "DigitSequence", "HexadecimalFractionalConstant", - "HexadecimalDigitSequence", "BinaryExponentPart", "EscapeSequence", - "Whitespace", "Newline", + "OR", "ISNULL", "ISNOTNULL", "BNOT", "NOT", "IN", "EmptyArray", "JSONContains", + "JSONContainsAll", "JSONContainsAny", "ArrayContains", "ArrayContainsAll", + "ArrayContainsAny", "ArrayLength", "BooleanConstant", "IntegerConstant", + "FloatingConstant", "Identifier", "Meta", "StringLiteral", "JSONIdentifier", + "EncodingPrefix", "DoubleSCharSequence", "SingleSCharSequence", "DoubleSChar", + "SingleSChar", "Nondigit", "Digit", "BinaryConstant", "DecimalConstant", + "OctalConstant", "HexadecimalConstant", "NonzeroDigit", "OctalDigit", + "HexadecimalDigit", "HexQuad", "UniversalCharacterName", "DecimalFloatingConstant", + "HexadecimalFloatingConstant", "FractionalConstant", "ExponentPart", + "DigitSequence", "HexadecimalFractionalConstant", "HexadecimalDigitSequence", + "BinaryExponentPart", "EscapeSequence", "Whitespace", "Newline", } staticData.PredictionContextCache = antlr.NewPredictionContextCache() staticData.serializedATN = []int32{ - 4, 0, 49, 782, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, + 4, 0, 51, 826, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, @@ -89,346 +90,366 @@ func planlexerLexerInit() { 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, - 73, 7, 73, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, - 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, - 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, - 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 188, 8, 13, 1, 14, 1, 14, - 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, - 14, 202, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, + 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, + 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, + 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 12, 1, + 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, + 192, 8, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, + 14, 1, 14, 1, 14, 1, 14, 3, 14, 206, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, - 15, 1, 15, 3, 15, 224, 8, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, - 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, - 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, - 1, 27, 1, 27, 1, 27, 3, 27, 256, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 3, - 28, 262, 8, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 270, 8, - 30, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 276, 8, 31, 1, 32, 1, 32, 1, 32, - 5, 32, 281, 8, 32, 10, 32, 12, 32, 284, 9, 32, 1, 32, 1, 32, 1, 33, 1, - 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, - 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, - 33, 1, 33, 1, 33, 1, 33, 3, 33, 314, 8, 33, 1, 34, 1, 34, 1, 34, 1, 34, - 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, - 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, - 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 350, - 8, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, - 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, + 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 228, 8, 15, 1, 16, 1, 16, + 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, + 21, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, + 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 260, 8, 27, 1, + 28, 1, 28, 1, 28, 1, 28, 3, 28, 266, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, + 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, + 29, 282, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, + 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, + 30, 1, 30, 1, 30, 1, 30, 3, 30, 306, 8, 30, 1, 31, 1, 31, 1, 32, 1, 32, + 1, 32, 1, 32, 3, 32, 314, 8, 32, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 320, + 8, 33, 1, 34, 1, 34, 1, 34, 5, 34, 325, 8, 34, 10, 34, 12, 34, 328, 9, + 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, - 35, 1, 35, 1, 35, 1, 35, 3, 35, 386, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, + 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 358, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, - 1, 36, 1, 36, 1, 36, 3, 36, 416, 8, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, - 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, + 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, + 36, 1, 36, 1, 36, 3, 36, 394, 8, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, - 3, 37, 454, 8, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, - 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, + 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 430, 8, + 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, - 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 492, 8, 38, + 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 460, 8, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, - 1, 39, 1, 39, 1, 39, 3, 39, 518, 8, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, + 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, + 39, 1, 39, 1, 39, 1, 39, 1, 39, 3, 39, 498, 8, 39, 1, 40, 1, 40, 1, 40, + 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, - 40, 1, 40, 3, 40, 547, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 553, 8, - 41, 1, 42, 1, 42, 3, 42, 557, 8, 42, 1, 43, 1, 43, 1, 43, 5, 43, 562, 8, - 43, 10, 43, 12, 43, 565, 9, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, - 1, 45, 3, 45, 574, 8, 45, 1, 45, 1, 45, 3, 45, 578, 8, 45, 1, 45, 1, 45, - 1, 45, 3, 45, 583, 8, 45, 1, 45, 3, 45, 586, 8, 45, 1, 46, 1, 46, 3, 46, - 590, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 595, 8, 46, 1, 46, 1, 46, 4, 46, - 599, 8, 46, 11, 46, 12, 46, 600, 1, 47, 1, 47, 1, 47, 3, 47, 606, 8, 47, - 1, 48, 4, 48, 609, 8, 48, 11, 48, 12, 48, 610, 1, 49, 4, 49, 614, 8, 49, - 11, 49, 12, 49, 615, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, - 50, 625, 8, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, - 634, 8, 51, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 4, 54, 643, - 8, 54, 11, 54, 12, 54, 644, 1, 55, 1, 55, 5, 55, 649, 8, 55, 10, 55, 12, - 55, 652, 9, 55, 1, 55, 3, 55, 655, 8, 55, 1, 56, 1, 56, 5, 56, 659, 8, - 56, 10, 56, 12, 56, 662, 9, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, - 1, 59, 1, 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, - 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 3, 62, 689, - 8, 62, 1, 63, 1, 63, 3, 63, 693, 8, 63, 1, 63, 1, 63, 1, 63, 3, 63, 698, - 8, 63, 1, 64, 1, 64, 1, 64, 1, 64, 3, 64, 704, 8, 64, 1, 64, 1, 64, 1, - 65, 3, 65, 709, 8, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 3, 65, 716, 8, - 65, 1, 66, 1, 66, 3, 66, 720, 8, 66, 1, 66, 1, 66, 1, 67, 4, 67, 725, 8, - 67, 11, 67, 12, 67, 726, 1, 68, 3, 68, 730, 8, 68, 1, 68, 1, 68, 1, 68, - 1, 68, 1, 68, 3, 68, 737, 8, 68, 1, 69, 4, 69, 740, 8, 69, 11, 69, 12, - 69, 741, 1, 70, 1, 70, 3, 70, 746, 8, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, - 71, 1, 71, 1, 71, 3, 71, 755, 8, 71, 1, 71, 3, 71, 758, 8, 71, 1, 71, 1, - 71, 1, 71, 1, 71, 1, 71, 3, 71, 765, 8, 71, 1, 72, 4, 72, 768, 8, 72, 11, - 72, 12, 72, 769, 1, 72, 1, 72, 1, 73, 1, 73, 3, 73, 776, 8, 73, 1, 73, - 3, 73, 779, 8, 73, 1, 73, 1, 73, 0, 0, 74, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, - 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, - 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, - 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, - 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, - 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 0, 97, 0, 99, 0, 101, 0, - 103, 0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0, 119, 0, - 121, 0, 123, 0, 125, 0, 127, 0, 129, 0, 131, 0, 133, 0, 135, 0, 137, 0, - 139, 0, 141, 0, 143, 0, 145, 48, 147, 49, 1, 0, 16, 3, 0, 76, 76, 85, 85, - 117, 117, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, - 39, 92, 92, 3, 0, 65, 90, 95, 95, 97, 122, 1, 0, 48, 57, 2, 0, 66, 66, - 98, 98, 1, 0, 48, 49, 2, 0, 88, 88, 120, 120, 1, 0, 49, 57, 1, 0, 48, 55, - 3, 0, 48, 57, 65, 70, 97, 102, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, - 45, 2, 0, 80, 80, 112, 112, 10, 0, 34, 34, 39, 39, 63, 63, 92, 92, 97, - 98, 102, 102, 110, 110, 114, 114, 116, 116, 118, 118, 2, 0, 9, 9, 32, 32, - 823, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, - 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, - 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, - 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, - 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, - 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, - 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, - 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, - 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, - 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, - 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, - 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, - 0, 0, 93, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 1, 149, 1, - 0, 0, 0, 3, 151, 1, 0, 0, 0, 5, 153, 1, 0, 0, 0, 7, 155, 1, 0, 0, 0, 9, - 157, 1, 0, 0, 0, 11, 159, 1, 0, 0, 0, 13, 161, 1, 0, 0, 0, 15, 163, 1, - 0, 0, 0, 17, 165, 1, 0, 0, 0, 19, 168, 1, 0, 0, 0, 21, 170, 1, 0, 0, 0, - 23, 173, 1, 0, 0, 0, 25, 176, 1, 0, 0, 0, 27, 187, 1, 0, 0, 0, 29, 201, - 1, 0, 0, 0, 31, 223, 1, 0, 0, 0, 33, 225, 1, 0, 0, 0, 35, 227, 1, 0, 0, - 0, 37, 229, 1, 0, 0, 0, 39, 231, 1, 0, 0, 0, 41, 233, 1, 0, 0, 0, 43, 235, - 1, 0, 0, 0, 45, 238, 1, 0, 0, 0, 47, 241, 1, 0, 0, 0, 49, 244, 1, 0, 0, - 0, 51, 246, 1, 0, 0, 0, 53, 248, 1, 0, 0, 0, 55, 255, 1, 0, 0, 0, 57, 261, - 1, 0, 0, 0, 59, 263, 1, 0, 0, 0, 61, 269, 1, 0, 0, 0, 63, 275, 1, 0, 0, - 0, 65, 277, 1, 0, 0, 0, 67, 313, 1, 0, 0, 0, 69, 349, 1, 0, 0, 0, 71, 385, - 1, 0, 0, 0, 73, 415, 1, 0, 0, 0, 75, 453, 1, 0, 0, 0, 77, 491, 1, 0, 0, - 0, 79, 517, 1, 0, 0, 0, 81, 546, 1, 0, 0, 0, 83, 552, 1, 0, 0, 0, 85, 556, - 1, 0, 0, 0, 87, 558, 1, 0, 0, 0, 89, 566, 1, 0, 0, 0, 91, 573, 1, 0, 0, - 0, 93, 589, 1, 0, 0, 0, 95, 605, 1, 0, 0, 0, 97, 608, 1, 0, 0, 0, 99, 613, - 1, 0, 0, 0, 101, 624, 1, 0, 0, 0, 103, 633, 1, 0, 0, 0, 105, 635, 1, 0, - 0, 0, 107, 637, 1, 0, 0, 0, 109, 639, 1, 0, 0, 0, 111, 654, 1, 0, 0, 0, - 113, 656, 1, 0, 0, 0, 115, 663, 1, 0, 0, 0, 117, 667, 1, 0, 0, 0, 119, - 669, 1, 0, 0, 0, 121, 671, 1, 0, 0, 0, 123, 673, 1, 0, 0, 0, 125, 688, - 1, 0, 0, 0, 127, 697, 1, 0, 0, 0, 129, 699, 1, 0, 0, 0, 131, 715, 1, 0, - 0, 0, 133, 717, 1, 0, 0, 0, 135, 724, 1, 0, 0, 0, 137, 736, 1, 0, 0, 0, - 139, 739, 1, 0, 0, 0, 141, 743, 1, 0, 0, 0, 143, 764, 1, 0, 0, 0, 145, - 767, 1, 0, 0, 0, 147, 778, 1, 0, 0, 0, 149, 150, 5, 40, 0, 0, 150, 2, 1, - 0, 0, 0, 151, 152, 5, 41, 0, 0, 152, 4, 1, 0, 0, 0, 153, 154, 5, 91, 0, - 0, 154, 6, 1, 0, 0, 0, 155, 156, 5, 44, 0, 0, 156, 8, 1, 0, 0, 0, 157, - 158, 5, 93, 0, 0, 158, 10, 1, 0, 0, 0, 159, 160, 5, 123, 0, 0, 160, 12, - 1, 0, 0, 0, 161, 162, 5, 125, 0, 0, 162, 14, 1, 0, 0, 0, 163, 164, 5, 60, - 0, 0, 164, 16, 1, 0, 0, 0, 165, 166, 5, 60, 0, 0, 166, 167, 5, 61, 0, 0, - 167, 18, 1, 0, 0, 0, 168, 169, 5, 62, 0, 0, 169, 20, 1, 0, 0, 0, 170, 171, - 5, 62, 0, 0, 171, 172, 5, 61, 0, 0, 172, 22, 1, 0, 0, 0, 173, 174, 5, 61, - 0, 0, 174, 175, 5, 61, 0, 0, 175, 24, 1, 0, 0, 0, 176, 177, 5, 33, 0, 0, - 177, 178, 5, 61, 0, 0, 178, 26, 1, 0, 0, 0, 179, 180, 5, 108, 0, 0, 180, - 181, 5, 105, 0, 0, 181, 182, 5, 107, 0, 0, 182, 188, 5, 101, 0, 0, 183, - 184, 5, 76, 0, 0, 184, 185, 5, 73, 0, 0, 185, 186, 5, 75, 0, 0, 186, 188, - 5, 69, 0, 0, 187, 179, 1, 0, 0, 0, 187, 183, 1, 0, 0, 0, 188, 28, 1, 0, - 0, 0, 189, 190, 5, 101, 0, 0, 190, 191, 5, 120, 0, 0, 191, 192, 5, 105, - 0, 0, 192, 193, 5, 115, 0, 0, 193, 194, 5, 116, 0, 0, 194, 202, 5, 115, - 0, 0, 195, 196, 5, 69, 0, 0, 196, 197, 5, 88, 0, 0, 197, 198, 5, 73, 0, - 0, 198, 199, 5, 83, 0, 0, 199, 200, 5, 84, 0, 0, 200, 202, 5, 83, 0, 0, - 201, 189, 1, 0, 0, 0, 201, 195, 1, 0, 0, 0, 202, 30, 1, 0, 0, 0, 203, 204, - 5, 116, 0, 0, 204, 205, 5, 101, 0, 0, 205, 206, 5, 120, 0, 0, 206, 207, - 5, 116, 0, 0, 207, 208, 5, 95, 0, 0, 208, 209, 5, 109, 0, 0, 209, 210, - 5, 97, 0, 0, 210, 211, 5, 116, 0, 0, 211, 212, 5, 99, 0, 0, 212, 224, 5, - 104, 0, 0, 213, 214, 5, 84, 0, 0, 214, 215, 5, 69, 0, 0, 215, 216, 5, 88, - 0, 0, 216, 217, 5, 84, 0, 0, 217, 218, 5, 95, 0, 0, 218, 219, 5, 77, 0, - 0, 219, 220, 5, 65, 0, 0, 220, 221, 5, 84, 0, 0, 221, 222, 5, 67, 0, 0, - 222, 224, 5, 72, 0, 0, 223, 203, 1, 0, 0, 0, 223, 213, 1, 0, 0, 0, 224, - 32, 1, 0, 0, 0, 225, 226, 5, 43, 0, 0, 226, 34, 1, 0, 0, 0, 227, 228, 5, - 45, 0, 0, 228, 36, 1, 0, 0, 0, 229, 230, 5, 42, 0, 0, 230, 38, 1, 0, 0, - 0, 231, 232, 5, 47, 0, 0, 232, 40, 1, 0, 0, 0, 233, 234, 5, 37, 0, 0, 234, - 42, 1, 0, 0, 0, 235, 236, 5, 42, 0, 0, 236, 237, 5, 42, 0, 0, 237, 44, - 1, 0, 0, 0, 238, 239, 5, 60, 0, 0, 239, 240, 5, 60, 0, 0, 240, 46, 1, 0, - 0, 0, 241, 242, 5, 62, 0, 0, 242, 243, 5, 62, 0, 0, 243, 48, 1, 0, 0, 0, - 244, 245, 5, 38, 0, 0, 245, 50, 1, 0, 0, 0, 246, 247, 5, 124, 0, 0, 247, - 52, 1, 0, 0, 0, 248, 249, 5, 94, 0, 0, 249, 54, 1, 0, 0, 0, 250, 251, 5, - 38, 0, 0, 251, 256, 5, 38, 0, 0, 252, 253, 5, 97, 0, 0, 253, 254, 5, 110, - 0, 0, 254, 256, 5, 100, 0, 0, 255, 250, 1, 0, 0, 0, 255, 252, 1, 0, 0, - 0, 256, 56, 1, 0, 0, 0, 257, 258, 5, 124, 0, 0, 258, 262, 5, 124, 0, 0, - 259, 260, 5, 111, 0, 0, 260, 262, 5, 114, 0, 0, 261, 257, 1, 0, 0, 0, 261, - 259, 1, 0, 0, 0, 262, 58, 1, 0, 0, 0, 263, 264, 5, 126, 0, 0, 264, 60, - 1, 0, 0, 0, 265, 270, 5, 33, 0, 0, 266, 267, 5, 110, 0, 0, 267, 268, 5, - 111, 0, 0, 268, 270, 5, 116, 0, 0, 269, 265, 1, 0, 0, 0, 269, 266, 1, 0, - 0, 0, 270, 62, 1, 0, 0, 0, 271, 272, 5, 105, 0, 0, 272, 276, 5, 110, 0, - 0, 273, 274, 5, 73, 0, 0, 274, 276, 5, 78, 0, 0, 275, 271, 1, 0, 0, 0, - 275, 273, 1, 0, 0, 0, 276, 64, 1, 0, 0, 0, 277, 282, 5, 91, 0, 0, 278, - 281, 3, 145, 72, 0, 279, 281, 3, 147, 73, 0, 280, 278, 1, 0, 0, 0, 280, - 279, 1, 0, 0, 0, 281, 284, 1, 0, 0, 0, 282, 280, 1, 0, 0, 0, 282, 283, - 1, 0, 0, 0, 283, 285, 1, 0, 0, 0, 284, 282, 1, 0, 0, 0, 285, 286, 5, 93, - 0, 0, 286, 66, 1, 0, 0, 0, 287, 288, 5, 106, 0, 0, 288, 289, 5, 115, 0, - 0, 289, 290, 5, 111, 0, 0, 290, 291, 5, 110, 0, 0, 291, 292, 5, 95, 0, - 0, 292, 293, 5, 99, 0, 0, 293, 294, 5, 111, 0, 0, 294, 295, 5, 110, 0, - 0, 295, 296, 5, 116, 0, 0, 296, 297, 5, 97, 0, 0, 297, 298, 5, 105, 0, - 0, 298, 299, 5, 110, 0, 0, 299, 314, 5, 115, 0, 0, 300, 301, 5, 74, 0, - 0, 301, 302, 5, 83, 0, 0, 302, 303, 5, 79, 0, 0, 303, 304, 5, 78, 0, 0, - 304, 305, 5, 95, 0, 0, 305, 306, 5, 67, 0, 0, 306, 307, 5, 79, 0, 0, 307, - 308, 5, 78, 0, 0, 308, 309, 5, 84, 0, 0, 309, 310, 5, 65, 0, 0, 310, 311, - 5, 73, 0, 0, 311, 312, 5, 78, 0, 0, 312, 314, 5, 83, 0, 0, 313, 287, 1, - 0, 0, 0, 313, 300, 1, 0, 0, 0, 314, 68, 1, 0, 0, 0, 315, 316, 5, 106, 0, - 0, 316, 317, 5, 115, 0, 0, 317, 318, 5, 111, 0, 0, 318, 319, 5, 110, 0, - 0, 319, 320, 5, 95, 0, 0, 320, 321, 5, 99, 0, 0, 321, 322, 5, 111, 0, 0, - 322, 323, 5, 110, 0, 0, 323, 324, 5, 116, 0, 0, 324, 325, 5, 97, 0, 0, - 325, 326, 5, 105, 0, 0, 326, 327, 5, 110, 0, 0, 327, 328, 5, 115, 0, 0, - 328, 329, 5, 95, 0, 0, 329, 330, 5, 97, 0, 0, 330, 331, 5, 108, 0, 0, 331, - 350, 5, 108, 0, 0, 332, 333, 5, 74, 0, 0, 333, 334, 5, 83, 0, 0, 334, 335, - 5, 79, 0, 0, 335, 336, 5, 78, 0, 0, 336, 337, 5, 95, 0, 0, 337, 338, 5, - 67, 0, 0, 338, 339, 5, 79, 0, 0, 339, 340, 5, 78, 0, 0, 340, 341, 5, 84, - 0, 0, 341, 342, 5, 65, 0, 0, 342, 343, 5, 73, 0, 0, 343, 344, 5, 78, 0, - 0, 344, 345, 5, 83, 0, 0, 345, 346, 5, 95, 0, 0, 346, 347, 5, 65, 0, 0, - 347, 348, 5, 76, 0, 0, 348, 350, 5, 76, 0, 0, 349, 315, 1, 0, 0, 0, 349, - 332, 1, 0, 0, 0, 350, 70, 1, 0, 0, 0, 351, 352, 5, 106, 0, 0, 352, 353, - 5, 115, 0, 0, 353, 354, 5, 111, 0, 0, 354, 355, 5, 110, 0, 0, 355, 356, - 5, 95, 0, 0, 356, 357, 5, 99, 0, 0, 357, 358, 5, 111, 0, 0, 358, 359, 5, - 110, 0, 0, 359, 360, 5, 116, 0, 0, 360, 361, 5, 97, 0, 0, 361, 362, 5, - 105, 0, 0, 362, 363, 5, 110, 0, 0, 363, 364, 5, 115, 0, 0, 364, 365, 5, - 95, 0, 0, 365, 366, 5, 97, 0, 0, 366, 367, 5, 110, 0, 0, 367, 386, 5, 121, - 0, 0, 368, 369, 5, 74, 0, 0, 369, 370, 5, 83, 0, 0, 370, 371, 5, 79, 0, - 0, 371, 372, 5, 78, 0, 0, 372, 373, 5, 95, 0, 0, 373, 374, 5, 67, 0, 0, - 374, 375, 5, 79, 0, 0, 375, 376, 5, 78, 0, 0, 376, 377, 5, 84, 0, 0, 377, - 378, 5, 65, 0, 0, 378, 379, 5, 73, 0, 0, 379, 380, 5, 78, 0, 0, 380, 381, - 5, 83, 0, 0, 381, 382, 5, 95, 0, 0, 382, 383, 5, 65, 0, 0, 383, 384, 5, - 78, 0, 0, 384, 386, 5, 89, 0, 0, 385, 351, 1, 0, 0, 0, 385, 368, 1, 0, - 0, 0, 386, 72, 1, 0, 0, 0, 387, 388, 5, 97, 0, 0, 388, 389, 5, 114, 0, - 0, 389, 390, 5, 114, 0, 0, 390, 391, 5, 97, 0, 0, 391, 392, 5, 121, 0, - 0, 392, 393, 5, 95, 0, 0, 393, 394, 5, 99, 0, 0, 394, 395, 5, 111, 0, 0, - 395, 396, 5, 110, 0, 0, 396, 397, 5, 116, 0, 0, 397, 398, 5, 97, 0, 0, - 398, 399, 5, 105, 0, 0, 399, 400, 5, 110, 0, 0, 400, 416, 5, 115, 0, 0, - 401, 402, 5, 65, 0, 0, 402, 403, 5, 82, 0, 0, 403, 404, 5, 82, 0, 0, 404, - 405, 5, 65, 0, 0, 405, 406, 5, 89, 0, 0, 406, 407, 5, 95, 0, 0, 407, 408, - 5, 67, 0, 0, 408, 409, 5, 79, 0, 0, 409, 410, 5, 78, 0, 0, 410, 411, 5, - 84, 0, 0, 411, 412, 5, 65, 0, 0, 412, 413, 5, 73, 0, 0, 413, 414, 5, 78, - 0, 0, 414, 416, 5, 83, 0, 0, 415, 387, 1, 0, 0, 0, 415, 401, 1, 0, 0, 0, - 416, 74, 1, 0, 0, 0, 417, 418, 5, 97, 0, 0, 418, 419, 5, 114, 0, 0, 419, - 420, 5, 114, 0, 0, 420, 421, 5, 97, 0, 0, 421, 422, 5, 121, 0, 0, 422, - 423, 5, 95, 0, 0, 423, 424, 5, 99, 0, 0, 424, 425, 5, 111, 0, 0, 425, 426, - 5, 110, 0, 0, 426, 427, 5, 116, 0, 0, 427, 428, 5, 97, 0, 0, 428, 429, - 5, 105, 0, 0, 429, 430, 5, 110, 0, 0, 430, 431, 5, 115, 0, 0, 431, 432, - 5, 95, 0, 0, 432, 433, 5, 97, 0, 0, 433, 434, 5, 108, 0, 0, 434, 454, 5, - 108, 0, 0, 435, 436, 5, 65, 0, 0, 436, 437, 5, 82, 0, 0, 437, 438, 5, 82, - 0, 0, 438, 439, 5, 65, 0, 0, 439, 440, 5, 89, 0, 0, 440, 441, 5, 95, 0, - 0, 441, 442, 5, 67, 0, 0, 442, 443, 5, 79, 0, 0, 443, 444, 5, 78, 0, 0, - 444, 445, 5, 84, 0, 0, 445, 446, 5, 65, 0, 0, 446, 447, 5, 73, 0, 0, 447, - 448, 5, 78, 0, 0, 448, 449, 5, 83, 0, 0, 449, 450, 5, 95, 0, 0, 450, 451, - 5, 65, 0, 0, 451, 452, 5, 76, 0, 0, 452, 454, 5, 76, 0, 0, 453, 417, 1, - 0, 0, 0, 453, 435, 1, 0, 0, 0, 454, 76, 1, 0, 0, 0, 455, 456, 5, 97, 0, - 0, 456, 457, 5, 114, 0, 0, 457, 458, 5, 114, 0, 0, 458, 459, 5, 97, 0, - 0, 459, 460, 5, 121, 0, 0, 460, 461, 5, 95, 0, 0, 461, 462, 5, 99, 0, 0, - 462, 463, 5, 111, 0, 0, 463, 464, 5, 110, 0, 0, 464, 465, 5, 116, 0, 0, - 465, 466, 5, 97, 0, 0, 466, 467, 5, 105, 0, 0, 467, 468, 5, 110, 0, 0, - 468, 469, 5, 115, 0, 0, 469, 470, 5, 95, 0, 0, 470, 471, 5, 97, 0, 0, 471, - 472, 5, 110, 0, 0, 472, 492, 5, 121, 0, 0, 473, 474, 5, 65, 0, 0, 474, - 475, 5, 82, 0, 0, 475, 476, 5, 82, 0, 0, 476, 477, 5, 65, 0, 0, 477, 478, - 5, 89, 0, 0, 478, 479, 5, 95, 0, 0, 479, 480, 5, 67, 0, 0, 480, 481, 5, - 79, 0, 0, 481, 482, 5, 78, 0, 0, 482, 483, 5, 84, 0, 0, 483, 484, 5, 65, - 0, 0, 484, 485, 5, 73, 0, 0, 485, 486, 5, 78, 0, 0, 486, 487, 5, 83, 0, - 0, 487, 488, 5, 95, 0, 0, 488, 489, 5, 65, 0, 0, 489, 490, 5, 78, 0, 0, - 490, 492, 5, 89, 0, 0, 491, 455, 1, 0, 0, 0, 491, 473, 1, 0, 0, 0, 492, - 78, 1, 0, 0, 0, 493, 494, 5, 97, 0, 0, 494, 495, 5, 114, 0, 0, 495, 496, - 5, 114, 0, 0, 496, 497, 5, 97, 0, 0, 497, 498, 5, 121, 0, 0, 498, 499, - 5, 95, 0, 0, 499, 500, 5, 108, 0, 0, 500, 501, 5, 101, 0, 0, 501, 502, - 5, 110, 0, 0, 502, 503, 5, 103, 0, 0, 503, 504, 5, 116, 0, 0, 504, 518, - 5, 104, 0, 0, 505, 506, 5, 65, 0, 0, 506, 507, 5, 82, 0, 0, 507, 508, 5, - 82, 0, 0, 508, 509, 5, 65, 0, 0, 509, 510, 5, 89, 0, 0, 510, 511, 5, 95, - 0, 0, 511, 512, 5, 76, 0, 0, 512, 513, 5, 69, 0, 0, 513, 514, 5, 78, 0, - 0, 514, 515, 5, 71, 0, 0, 515, 516, 5, 84, 0, 0, 516, 518, 5, 72, 0, 0, - 517, 493, 1, 0, 0, 0, 517, 505, 1, 0, 0, 0, 518, 80, 1, 0, 0, 0, 519, 520, - 5, 116, 0, 0, 520, 521, 5, 114, 0, 0, 521, 522, 5, 117, 0, 0, 522, 547, - 5, 101, 0, 0, 523, 524, 5, 84, 0, 0, 524, 525, 5, 114, 0, 0, 525, 526, - 5, 117, 0, 0, 526, 547, 5, 101, 0, 0, 527, 528, 5, 84, 0, 0, 528, 529, - 5, 82, 0, 0, 529, 530, 5, 85, 0, 0, 530, 547, 5, 69, 0, 0, 531, 532, 5, - 102, 0, 0, 532, 533, 5, 97, 0, 0, 533, 534, 5, 108, 0, 0, 534, 535, 5, - 115, 0, 0, 535, 547, 5, 101, 0, 0, 536, 537, 5, 70, 0, 0, 537, 538, 5, - 97, 0, 0, 538, 539, 5, 108, 0, 0, 539, 540, 5, 115, 0, 0, 540, 547, 5, - 101, 0, 0, 541, 542, 5, 70, 0, 0, 542, 543, 5, 65, 0, 0, 543, 544, 5, 76, - 0, 0, 544, 545, 5, 83, 0, 0, 545, 547, 5, 69, 0, 0, 546, 519, 1, 0, 0, - 0, 546, 523, 1, 0, 0, 0, 546, 527, 1, 0, 0, 0, 546, 531, 1, 0, 0, 0, 546, - 536, 1, 0, 0, 0, 546, 541, 1, 0, 0, 0, 547, 82, 1, 0, 0, 0, 548, 553, 3, - 111, 55, 0, 549, 553, 3, 113, 56, 0, 550, 553, 3, 115, 57, 0, 551, 553, - 3, 109, 54, 0, 552, 548, 1, 0, 0, 0, 552, 549, 1, 0, 0, 0, 552, 550, 1, - 0, 0, 0, 552, 551, 1, 0, 0, 0, 553, 84, 1, 0, 0, 0, 554, 557, 3, 127, 63, - 0, 555, 557, 3, 129, 64, 0, 556, 554, 1, 0, 0, 0, 556, 555, 1, 0, 0, 0, - 557, 86, 1, 0, 0, 0, 558, 563, 3, 105, 52, 0, 559, 562, 3, 105, 52, 0, - 560, 562, 3, 107, 53, 0, 561, 559, 1, 0, 0, 0, 561, 560, 1, 0, 0, 0, 562, - 565, 1, 0, 0, 0, 563, 561, 1, 0, 0, 0, 563, 564, 1, 0, 0, 0, 564, 88, 1, - 0, 0, 0, 565, 563, 1, 0, 0, 0, 566, 567, 5, 36, 0, 0, 567, 568, 5, 109, - 0, 0, 568, 569, 5, 101, 0, 0, 569, 570, 5, 116, 0, 0, 570, 571, 5, 97, - 0, 0, 571, 90, 1, 0, 0, 0, 572, 574, 3, 95, 47, 0, 573, 572, 1, 0, 0, 0, - 573, 574, 1, 0, 0, 0, 574, 585, 1, 0, 0, 0, 575, 577, 5, 34, 0, 0, 576, - 578, 3, 97, 48, 0, 577, 576, 1, 0, 0, 0, 577, 578, 1, 0, 0, 0, 578, 579, - 1, 0, 0, 0, 579, 586, 5, 34, 0, 0, 580, 582, 5, 39, 0, 0, 581, 583, 3, - 99, 49, 0, 582, 581, 1, 0, 0, 0, 582, 583, 1, 0, 0, 0, 583, 584, 1, 0, - 0, 0, 584, 586, 5, 39, 0, 0, 585, 575, 1, 0, 0, 0, 585, 580, 1, 0, 0, 0, - 586, 92, 1, 0, 0, 0, 587, 590, 3, 87, 43, 0, 588, 590, 3, 89, 44, 0, 589, - 587, 1, 0, 0, 0, 589, 588, 1, 0, 0, 0, 590, 598, 1, 0, 0, 0, 591, 594, - 5, 91, 0, 0, 592, 595, 3, 91, 45, 0, 593, 595, 3, 111, 55, 0, 594, 592, - 1, 0, 0, 0, 594, 593, 1, 0, 0, 0, 595, 596, 1, 0, 0, 0, 596, 597, 5, 93, - 0, 0, 597, 599, 1, 0, 0, 0, 598, 591, 1, 0, 0, 0, 599, 600, 1, 0, 0, 0, - 600, 598, 1, 0, 0, 0, 600, 601, 1, 0, 0, 0, 601, 94, 1, 0, 0, 0, 602, 603, - 5, 117, 0, 0, 603, 606, 5, 56, 0, 0, 604, 606, 7, 0, 0, 0, 605, 602, 1, - 0, 0, 0, 605, 604, 1, 0, 0, 0, 606, 96, 1, 0, 0, 0, 607, 609, 3, 101, 50, - 0, 608, 607, 1, 0, 0, 0, 609, 610, 1, 0, 0, 0, 610, 608, 1, 0, 0, 0, 610, - 611, 1, 0, 0, 0, 611, 98, 1, 0, 0, 0, 612, 614, 3, 103, 51, 0, 613, 612, - 1, 0, 0, 0, 614, 615, 1, 0, 0, 0, 615, 613, 1, 0, 0, 0, 615, 616, 1, 0, - 0, 0, 616, 100, 1, 0, 0, 0, 617, 625, 8, 1, 0, 0, 618, 625, 3, 143, 71, - 0, 619, 620, 5, 92, 0, 0, 620, 625, 5, 10, 0, 0, 621, 622, 5, 92, 0, 0, - 622, 623, 5, 13, 0, 0, 623, 625, 5, 10, 0, 0, 624, 617, 1, 0, 0, 0, 624, - 618, 1, 0, 0, 0, 624, 619, 1, 0, 0, 0, 624, 621, 1, 0, 0, 0, 625, 102, - 1, 0, 0, 0, 626, 634, 8, 2, 0, 0, 627, 634, 3, 143, 71, 0, 628, 629, 5, - 92, 0, 0, 629, 634, 5, 10, 0, 0, 630, 631, 5, 92, 0, 0, 631, 632, 5, 13, - 0, 0, 632, 634, 5, 10, 0, 0, 633, 626, 1, 0, 0, 0, 633, 627, 1, 0, 0, 0, - 633, 628, 1, 0, 0, 0, 633, 630, 1, 0, 0, 0, 634, 104, 1, 0, 0, 0, 635, - 636, 7, 3, 0, 0, 636, 106, 1, 0, 0, 0, 637, 638, 7, 4, 0, 0, 638, 108, - 1, 0, 0, 0, 639, 640, 5, 48, 0, 0, 640, 642, 7, 5, 0, 0, 641, 643, 7, 6, - 0, 0, 642, 641, 1, 0, 0, 0, 643, 644, 1, 0, 0, 0, 644, 642, 1, 0, 0, 0, - 644, 645, 1, 0, 0, 0, 645, 110, 1, 0, 0, 0, 646, 650, 3, 117, 58, 0, 647, - 649, 3, 107, 53, 0, 648, 647, 1, 0, 0, 0, 649, 652, 1, 0, 0, 0, 650, 648, - 1, 0, 0, 0, 650, 651, 1, 0, 0, 0, 651, 655, 1, 0, 0, 0, 652, 650, 1, 0, - 0, 0, 653, 655, 5, 48, 0, 0, 654, 646, 1, 0, 0, 0, 654, 653, 1, 0, 0, 0, - 655, 112, 1, 0, 0, 0, 656, 660, 5, 48, 0, 0, 657, 659, 3, 119, 59, 0, 658, - 657, 1, 0, 0, 0, 659, 662, 1, 0, 0, 0, 660, 658, 1, 0, 0, 0, 660, 661, - 1, 0, 0, 0, 661, 114, 1, 0, 0, 0, 662, 660, 1, 0, 0, 0, 663, 664, 5, 48, - 0, 0, 664, 665, 7, 7, 0, 0, 665, 666, 3, 139, 69, 0, 666, 116, 1, 0, 0, - 0, 667, 668, 7, 8, 0, 0, 668, 118, 1, 0, 0, 0, 669, 670, 7, 9, 0, 0, 670, - 120, 1, 0, 0, 0, 671, 672, 7, 10, 0, 0, 672, 122, 1, 0, 0, 0, 673, 674, - 3, 121, 60, 0, 674, 675, 3, 121, 60, 0, 675, 676, 3, 121, 60, 0, 676, 677, - 3, 121, 60, 0, 677, 124, 1, 0, 0, 0, 678, 679, 5, 92, 0, 0, 679, 680, 5, - 117, 0, 0, 680, 681, 1, 0, 0, 0, 681, 689, 3, 123, 61, 0, 682, 683, 5, - 92, 0, 0, 683, 684, 5, 85, 0, 0, 684, 685, 1, 0, 0, 0, 685, 686, 3, 123, - 61, 0, 686, 687, 3, 123, 61, 0, 687, 689, 1, 0, 0, 0, 688, 678, 1, 0, 0, - 0, 688, 682, 1, 0, 0, 0, 689, 126, 1, 0, 0, 0, 690, 692, 3, 131, 65, 0, - 691, 693, 3, 133, 66, 0, 692, 691, 1, 0, 0, 0, 692, 693, 1, 0, 0, 0, 693, - 698, 1, 0, 0, 0, 694, 695, 3, 135, 67, 0, 695, 696, 3, 133, 66, 0, 696, - 698, 1, 0, 0, 0, 697, 690, 1, 0, 0, 0, 697, 694, 1, 0, 0, 0, 698, 128, - 1, 0, 0, 0, 699, 700, 5, 48, 0, 0, 700, 703, 7, 7, 0, 0, 701, 704, 3, 137, - 68, 0, 702, 704, 3, 139, 69, 0, 703, 701, 1, 0, 0, 0, 703, 702, 1, 0, 0, - 0, 704, 705, 1, 0, 0, 0, 705, 706, 3, 141, 70, 0, 706, 130, 1, 0, 0, 0, - 707, 709, 3, 135, 67, 0, 708, 707, 1, 0, 0, 0, 708, 709, 1, 0, 0, 0, 709, - 710, 1, 0, 0, 0, 710, 711, 5, 46, 0, 0, 711, 716, 3, 135, 67, 0, 712, 713, - 3, 135, 67, 0, 713, 714, 5, 46, 0, 0, 714, 716, 1, 0, 0, 0, 715, 708, 1, - 0, 0, 0, 715, 712, 1, 0, 0, 0, 716, 132, 1, 0, 0, 0, 717, 719, 7, 11, 0, - 0, 718, 720, 7, 12, 0, 0, 719, 718, 1, 0, 0, 0, 719, 720, 1, 0, 0, 0, 720, - 721, 1, 0, 0, 0, 721, 722, 3, 135, 67, 0, 722, 134, 1, 0, 0, 0, 723, 725, - 3, 107, 53, 0, 724, 723, 1, 0, 0, 0, 725, 726, 1, 0, 0, 0, 726, 724, 1, - 0, 0, 0, 726, 727, 1, 0, 0, 0, 727, 136, 1, 0, 0, 0, 728, 730, 3, 139, - 69, 0, 729, 728, 1, 0, 0, 0, 729, 730, 1, 0, 0, 0, 730, 731, 1, 0, 0, 0, - 731, 732, 5, 46, 0, 0, 732, 737, 3, 139, 69, 0, 733, 734, 3, 139, 69, 0, - 734, 735, 5, 46, 0, 0, 735, 737, 1, 0, 0, 0, 736, 729, 1, 0, 0, 0, 736, - 733, 1, 0, 0, 0, 737, 138, 1, 0, 0, 0, 738, 740, 3, 121, 60, 0, 739, 738, - 1, 0, 0, 0, 740, 741, 1, 0, 0, 0, 741, 739, 1, 0, 0, 0, 741, 742, 1, 0, - 0, 0, 742, 140, 1, 0, 0, 0, 743, 745, 7, 13, 0, 0, 744, 746, 7, 12, 0, - 0, 745, 744, 1, 0, 0, 0, 745, 746, 1, 0, 0, 0, 746, 747, 1, 0, 0, 0, 747, - 748, 3, 135, 67, 0, 748, 142, 1, 0, 0, 0, 749, 750, 5, 92, 0, 0, 750, 765, - 7, 14, 0, 0, 751, 752, 5, 92, 0, 0, 752, 754, 3, 119, 59, 0, 753, 755, - 3, 119, 59, 0, 754, 753, 1, 0, 0, 0, 754, 755, 1, 0, 0, 0, 755, 757, 1, - 0, 0, 0, 756, 758, 3, 119, 59, 0, 757, 756, 1, 0, 0, 0, 757, 758, 1, 0, - 0, 0, 758, 765, 1, 0, 0, 0, 759, 760, 5, 92, 0, 0, 760, 761, 5, 120, 0, - 0, 761, 762, 1, 0, 0, 0, 762, 765, 3, 139, 69, 0, 763, 765, 3, 125, 62, - 0, 764, 749, 1, 0, 0, 0, 764, 751, 1, 0, 0, 0, 764, 759, 1, 0, 0, 0, 764, - 763, 1, 0, 0, 0, 765, 144, 1, 0, 0, 0, 766, 768, 7, 15, 0, 0, 767, 766, - 1, 0, 0, 0, 768, 769, 1, 0, 0, 0, 769, 767, 1, 0, 0, 0, 769, 770, 1, 0, - 0, 0, 770, 771, 1, 0, 0, 0, 771, 772, 6, 72, 0, 0, 772, 146, 1, 0, 0, 0, - 773, 775, 5, 13, 0, 0, 774, 776, 5, 10, 0, 0, 775, 774, 1, 0, 0, 0, 775, - 776, 1, 0, 0, 0, 776, 779, 1, 0, 0, 0, 777, 779, 5, 10, 0, 0, 778, 773, - 1, 0, 0, 0, 778, 777, 1, 0, 0, 0, 779, 780, 1, 0, 0, 0, 780, 781, 6, 73, - 0, 0, 781, 148, 1, 0, 0, 0, 56, 0, 187, 201, 223, 255, 261, 269, 275, 280, - 282, 313, 349, 385, 415, 453, 491, 517, 546, 552, 556, 561, 563, 573, 577, - 582, 585, 589, 594, 600, 605, 610, 615, 624, 633, 644, 650, 654, 660, 688, - 692, 697, 703, 708, 715, 719, 726, 729, 736, 741, 745, 754, 757, 764, 769, - 775, 778, 1, 6, 0, 0, + 40, 1, 40, 3, 40, 536, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, + 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, + 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 562, 8, 41, + 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, + 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, + 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 591, 8, 42, 1, 43, 1, + 43, 1, 43, 1, 43, 3, 43, 597, 8, 43, 1, 44, 1, 44, 3, 44, 601, 8, 44, 1, + 45, 1, 45, 1, 45, 5, 45, 606, 8, 45, 10, 45, 12, 45, 609, 9, 45, 1, 46, + 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 3, 47, 618, 8, 47, 1, 47, 1, + 47, 3, 47, 622, 8, 47, 1, 47, 1, 47, 1, 47, 3, 47, 627, 8, 47, 1, 47, 3, + 47, 630, 8, 47, 1, 48, 1, 48, 3, 48, 634, 8, 48, 1, 48, 1, 48, 1, 48, 3, + 48, 639, 8, 48, 1, 48, 1, 48, 4, 48, 643, 8, 48, 11, 48, 12, 48, 644, 1, + 49, 1, 49, 1, 49, 3, 49, 650, 8, 49, 1, 50, 4, 50, 653, 8, 50, 11, 50, + 12, 50, 654, 1, 51, 4, 51, 658, 8, 51, 11, 51, 12, 51, 659, 1, 52, 1, 52, + 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 669, 8, 52, 1, 53, 1, 53, 1, + 53, 1, 53, 1, 53, 1, 53, 1, 53, 3, 53, 678, 8, 53, 1, 54, 1, 54, 1, 55, + 1, 55, 1, 56, 1, 56, 1, 56, 4, 56, 687, 8, 56, 11, 56, 12, 56, 688, 1, + 57, 1, 57, 5, 57, 693, 8, 57, 10, 57, 12, 57, 696, 9, 57, 1, 57, 3, 57, + 699, 8, 57, 1, 58, 1, 58, 5, 58, 703, 8, 58, 10, 58, 12, 58, 706, 9, 58, + 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 62, 1, 62, 1, + 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, + 1, 64, 1, 64, 1, 64, 1, 64, 3, 64, 733, 8, 64, 1, 65, 1, 65, 3, 65, 737, + 8, 65, 1, 65, 1, 65, 1, 65, 3, 65, 742, 8, 65, 1, 66, 1, 66, 1, 66, 1, + 66, 3, 66, 748, 8, 66, 1, 66, 1, 66, 1, 67, 3, 67, 753, 8, 67, 1, 67, 1, + 67, 1, 67, 1, 67, 1, 67, 3, 67, 760, 8, 67, 1, 68, 1, 68, 3, 68, 764, 8, + 68, 1, 68, 1, 68, 1, 69, 4, 69, 769, 8, 69, 11, 69, 12, 69, 770, 1, 70, + 3, 70, 774, 8, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 3, 70, 781, 8, 70, + 1, 71, 4, 71, 784, 8, 71, 11, 71, 12, 71, 785, 1, 72, 1, 72, 3, 72, 790, + 8, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 799, 8, + 73, 1, 73, 3, 73, 802, 8, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, + 809, 8, 73, 1, 74, 4, 74, 812, 8, 74, 11, 74, 12, 74, 813, 1, 74, 1, 74, + 1, 75, 1, 75, 3, 75, 820, 8, 75, 1, 75, 3, 75, 823, 8, 75, 1, 75, 1, 75, + 0, 0, 76, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, + 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, + 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, + 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, + 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, + 46, 93, 47, 95, 48, 97, 49, 99, 0, 101, 0, 103, 0, 105, 0, 107, 0, 109, + 0, 111, 0, 113, 0, 115, 0, 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, + 0, 129, 0, 131, 0, 133, 0, 135, 0, 137, 0, 139, 0, 141, 0, 143, 0, 145, + 0, 147, 0, 149, 50, 151, 51, 1, 0, 16, 3, 0, 76, 76, 85, 85, 117, 117, + 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92, + 92, 3, 0, 65, 90, 95, 95, 97, 122, 1, 0, 48, 57, 2, 0, 66, 66, 98, 98, + 1, 0, 48, 49, 2, 0, 88, 88, 120, 120, 1, 0, 49, 57, 1, 0, 48, 55, 3, 0, + 48, 57, 65, 70, 97, 102, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, + 2, 0, 80, 80, 112, 112, 10, 0, 34, 34, 39, 39, 63, 63, 92, 92, 97, 98, + 102, 102, 110, 110, 114, 114, 116, 116, 118, 118, 2, 0, 9, 9, 32, 32, 869, + 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, + 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, + 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, + 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, + 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, + 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, + 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, + 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, + 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, + 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, + 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, + 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, + 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 149, 1, 0, 0, + 0, 0, 151, 1, 0, 0, 0, 1, 153, 1, 0, 0, 0, 3, 155, 1, 0, 0, 0, 5, 157, + 1, 0, 0, 0, 7, 159, 1, 0, 0, 0, 9, 161, 1, 0, 0, 0, 11, 163, 1, 0, 0, 0, + 13, 165, 1, 0, 0, 0, 15, 167, 1, 0, 0, 0, 17, 169, 1, 0, 0, 0, 19, 172, + 1, 0, 0, 0, 21, 174, 1, 0, 0, 0, 23, 177, 1, 0, 0, 0, 25, 180, 1, 0, 0, + 0, 27, 191, 1, 0, 0, 0, 29, 205, 1, 0, 0, 0, 31, 227, 1, 0, 0, 0, 33, 229, + 1, 0, 0, 0, 35, 231, 1, 0, 0, 0, 37, 233, 1, 0, 0, 0, 39, 235, 1, 0, 0, + 0, 41, 237, 1, 0, 0, 0, 43, 239, 1, 0, 0, 0, 45, 242, 1, 0, 0, 0, 47, 245, + 1, 0, 0, 0, 49, 248, 1, 0, 0, 0, 51, 250, 1, 0, 0, 0, 53, 252, 1, 0, 0, + 0, 55, 259, 1, 0, 0, 0, 57, 265, 1, 0, 0, 0, 59, 281, 1, 0, 0, 0, 61, 305, + 1, 0, 0, 0, 63, 307, 1, 0, 0, 0, 65, 313, 1, 0, 0, 0, 67, 319, 1, 0, 0, + 0, 69, 321, 1, 0, 0, 0, 71, 357, 1, 0, 0, 0, 73, 393, 1, 0, 0, 0, 75, 429, + 1, 0, 0, 0, 77, 459, 1, 0, 0, 0, 79, 497, 1, 0, 0, 0, 81, 535, 1, 0, 0, + 0, 83, 561, 1, 0, 0, 0, 85, 590, 1, 0, 0, 0, 87, 596, 1, 0, 0, 0, 89, 600, + 1, 0, 0, 0, 91, 602, 1, 0, 0, 0, 93, 610, 1, 0, 0, 0, 95, 617, 1, 0, 0, + 0, 97, 633, 1, 0, 0, 0, 99, 649, 1, 0, 0, 0, 101, 652, 1, 0, 0, 0, 103, + 657, 1, 0, 0, 0, 105, 668, 1, 0, 0, 0, 107, 677, 1, 0, 0, 0, 109, 679, + 1, 0, 0, 0, 111, 681, 1, 0, 0, 0, 113, 683, 1, 0, 0, 0, 115, 698, 1, 0, + 0, 0, 117, 700, 1, 0, 0, 0, 119, 707, 1, 0, 0, 0, 121, 711, 1, 0, 0, 0, + 123, 713, 1, 0, 0, 0, 125, 715, 1, 0, 0, 0, 127, 717, 1, 0, 0, 0, 129, + 732, 1, 0, 0, 0, 131, 741, 1, 0, 0, 0, 133, 743, 1, 0, 0, 0, 135, 759, + 1, 0, 0, 0, 137, 761, 1, 0, 0, 0, 139, 768, 1, 0, 0, 0, 141, 780, 1, 0, + 0, 0, 143, 783, 1, 0, 0, 0, 145, 787, 1, 0, 0, 0, 147, 808, 1, 0, 0, 0, + 149, 811, 1, 0, 0, 0, 151, 822, 1, 0, 0, 0, 153, 154, 5, 40, 0, 0, 154, + 2, 1, 0, 0, 0, 155, 156, 5, 41, 0, 0, 156, 4, 1, 0, 0, 0, 157, 158, 5, + 91, 0, 0, 158, 6, 1, 0, 0, 0, 159, 160, 5, 44, 0, 0, 160, 8, 1, 0, 0, 0, + 161, 162, 5, 93, 0, 0, 162, 10, 1, 0, 0, 0, 163, 164, 5, 123, 0, 0, 164, + 12, 1, 0, 0, 0, 165, 166, 5, 125, 0, 0, 166, 14, 1, 0, 0, 0, 167, 168, + 5, 60, 0, 0, 168, 16, 1, 0, 0, 0, 169, 170, 5, 60, 0, 0, 170, 171, 5, 61, + 0, 0, 171, 18, 1, 0, 0, 0, 172, 173, 5, 62, 0, 0, 173, 20, 1, 0, 0, 0, + 174, 175, 5, 62, 0, 0, 175, 176, 5, 61, 0, 0, 176, 22, 1, 0, 0, 0, 177, + 178, 5, 61, 0, 0, 178, 179, 5, 61, 0, 0, 179, 24, 1, 0, 0, 0, 180, 181, + 5, 33, 0, 0, 181, 182, 5, 61, 0, 0, 182, 26, 1, 0, 0, 0, 183, 184, 5, 108, + 0, 0, 184, 185, 5, 105, 0, 0, 185, 186, 5, 107, 0, 0, 186, 192, 5, 101, + 0, 0, 187, 188, 5, 76, 0, 0, 188, 189, 5, 73, 0, 0, 189, 190, 5, 75, 0, + 0, 190, 192, 5, 69, 0, 0, 191, 183, 1, 0, 0, 0, 191, 187, 1, 0, 0, 0, 192, + 28, 1, 0, 0, 0, 193, 194, 5, 101, 0, 0, 194, 195, 5, 120, 0, 0, 195, 196, + 5, 105, 0, 0, 196, 197, 5, 115, 0, 0, 197, 198, 5, 116, 0, 0, 198, 206, + 5, 115, 0, 0, 199, 200, 5, 69, 0, 0, 200, 201, 5, 88, 0, 0, 201, 202, 5, + 73, 0, 0, 202, 203, 5, 83, 0, 0, 203, 204, 5, 84, 0, 0, 204, 206, 5, 83, + 0, 0, 205, 193, 1, 0, 0, 0, 205, 199, 1, 0, 0, 0, 206, 30, 1, 0, 0, 0, + 207, 208, 5, 116, 0, 0, 208, 209, 5, 101, 0, 0, 209, 210, 5, 120, 0, 0, + 210, 211, 5, 116, 0, 0, 211, 212, 5, 95, 0, 0, 212, 213, 5, 109, 0, 0, + 213, 214, 5, 97, 0, 0, 214, 215, 5, 116, 0, 0, 215, 216, 5, 99, 0, 0, 216, + 228, 5, 104, 0, 0, 217, 218, 5, 84, 0, 0, 218, 219, 5, 69, 0, 0, 219, 220, + 5, 88, 0, 0, 220, 221, 5, 84, 0, 0, 221, 222, 5, 95, 0, 0, 222, 223, 5, + 77, 0, 0, 223, 224, 5, 65, 0, 0, 224, 225, 5, 84, 0, 0, 225, 226, 5, 67, + 0, 0, 226, 228, 5, 72, 0, 0, 227, 207, 1, 0, 0, 0, 227, 217, 1, 0, 0, 0, + 228, 32, 1, 0, 0, 0, 229, 230, 5, 43, 0, 0, 230, 34, 1, 0, 0, 0, 231, 232, + 5, 45, 0, 0, 232, 36, 1, 0, 0, 0, 233, 234, 5, 42, 0, 0, 234, 38, 1, 0, + 0, 0, 235, 236, 5, 47, 0, 0, 236, 40, 1, 0, 0, 0, 237, 238, 5, 37, 0, 0, + 238, 42, 1, 0, 0, 0, 239, 240, 5, 42, 0, 0, 240, 241, 5, 42, 0, 0, 241, + 44, 1, 0, 0, 0, 242, 243, 5, 60, 0, 0, 243, 244, 5, 60, 0, 0, 244, 46, + 1, 0, 0, 0, 245, 246, 5, 62, 0, 0, 246, 247, 5, 62, 0, 0, 247, 48, 1, 0, + 0, 0, 248, 249, 5, 38, 0, 0, 249, 50, 1, 0, 0, 0, 250, 251, 5, 124, 0, + 0, 251, 52, 1, 0, 0, 0, 252, 253, 5, 94, 0, 0, 253, 54, 1, 0, 0, 0, 254, + 255, 5, 38, 0, 0, 255, 260, 5, 38, 0, 0, 256, 257, 5, 97, 0, 0, 257, 258, + 5, 110, 0, 0, 258, 260, 5, 100, 0, 0, 259, 254, 1, 0, 0, 0, 259, 256, 1, + 0, 0, 0, 260, 56, 1, 0, 0, 0, 261, 262, 5, 124, 0, 0, 262, 266, 5, 124, + 0, 0, 263, 264, 5, 111, 0, 0, 264, 266, 5, 114, 0, 0, 265, 261, 1, 0, 0, + 0, 265, 263, 1, 0, 0, 0, 266, 58, 1, 0, 0, 0, 267, 268, 5, 105, 0, 0, 268, + 269, 5, 115, 0, 0, 269, 270, 5, 32, 0, 0, 270, 271, 5, 110, 0, 0, 271, + 272, 5, 117, 0, 0, 272, 273, 5, 108, 0, 0, 273, 282, 5, 108, 0, 0, 274, + 275, 5, 73, 0, 0, 275, 276, 5, 83, 0, 0, 276, 277, 5, 32, 0, 0, 277, 278, + 5, 78, 0, 0, 278, 279, 5, 85, 0, 0, 279, 280, 5, 76, 0, 0, 280, 282, 5, + 76, 0, 0, 281, 267, 1, 0, 0, 0, 281, 274, 1, 0, 0, 0, 282, 60, 1, 0, 0, + 0, 283, 284, 5, 105, 0, 0, 284, 285, 5, 115, 0, 0, 285, 286, 5, 32, 0, + 0, 286, 287, 5, 110, 0, 0, 287, 288, 5, 111, 0, 0, 288, 289, 5, 116, 0, + 0, 289, 290, 5, 32, 0, 0, 290, 291, 5, 110, 0, 0, 291, 292, 5, 117, 0, + 0, 292, 293, 5, 108, 0, 0, 293, 306, 5, 108, 0, 0, 294, 295, 5, 73, 0, + 0, 295, 296, 5, 83, 0, 0, 296, 297, 5, 32, 0, 0, 297, 298, 5, 78, 0, 0, + 298, 299, 5, 79, 0, 0, 299, 300, 5, 84, 0, 0, 300, 301, 5, 32, 0, 0, 301, + 302, 5, 78, 0, 0, 302, 303, 5, 85, 0, 0, 303, 304, 5, 76, 0, 0, 304, 306, + 5, 76, 0, 0, 305, 283, 1, 0, 0, 0, 305, 294, 1, 0, 0, 0, 306, 62, 1, 0, + 0, 0, 307, 308, 5, 126, 0, 0, 308, 64, 1, 0, 0, 0, 309, 314, 5, 33, 0, + 0, 310, 311, 5, 110, 0, 0, 311, 312, 5, 111, 0, 0, 312, 314, 5, 116, 0, + 0, 313, 309, 1, 0, 0, 0, 313, 310, 1, 0, 0, 0, 314, 66, 1, 0, 0, 0, 315, + 316, 5, 105, 0, 0, 316, 320, 5, 110, 0, 0, 317, 318, 5, 73, 0, 0, 318, + 320, 5, 78, 0, 0, 319, 315, 1, 0, 0, 0, 319, 317, 1, 0, 0, 0, 320, 68, + 1, 0, 0, 0, 321, 326, 5, 91, 0, 0, 322, 325, 3, 149, 74, 0, 323, 325, 3, + 151, 75, 0, 324, 322, 1, 0, 0, 0, 324, 323, 1, 0, 0, 0, 325, 328, 1, 0, + 0, 0, 326, 324, 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327, 329, 1, 0, 0, 0, + 328, 326, 1, 0, 0, 0, 329, 330, 5, 93, 0, 0, 330, 70, 1, 0, 0, 0, 331, + 332, 5, 106, 0, 0, 332, 333, 5, 115, 0, 0, 333, 334, 5, 111, 0, 0, 334, + 335, 5, 110, 0, 0, 335, 336, 5, 95, 0, 0, 336, 337, 5, 99, 0, 0, 337, 338, + 5, 111, 0, 0, 338, 339, 5, 110, 0, 0, 339, 340, 5, 116, 0, 0, 340, 341, + 5, 97, 0, 0, 341, 342, 5, 105, 0, 0, 342, 343, 5, 110, 0, 0, 343, 358, + 5, 115, 0, 0, 344, 345, 5, 74, 0, 0, 345, 346, 5, 83, 0, 0, 346, 347, 5, + 79, 0, 0, 347, 348, 5, 78, 0, 0, 348, 349, 5, 95, 0, 0, 349, 350, 5, 67, + 0, 0, 350, 351, 5, 79, 0, 0, 351, 352, 5, 78, 0, 0, 352, 353, 5, 84, 0, + 0, 353, 354, 5, 65, 0, 0, 354, 355, 5, 73, 0, 0, 355, 356, 5, 78, 0, 0, + 356, 358, 5, 83, 0, 0, 357, 331, 1, 0, 0, 0, 357, 344, 1, 0, 0, 0, 358, + 72, 1, 0, 0, 0, 359, 360, 5, 106, 0, 0, 360, 361, 5, 115, 0, 0, 361, 362, + 5, 111, 0, 0, 362, 363, 5, 110, 0, 0, 363, 364, 5, 95, 0, 0, 364, 365, + 5, 99, 0, 0, 365, 366, 5, 111, 0, 0, 366, 367, 5, 110, 0, 0, 367, 368, + 5, 116, 0, 0, 368, 369, 5, 97, 0, 0, 369, 370, 5, 105, 0, 0, 370, 371, + 5, 110, 0, 0, 371, 372, 5, 115, 0, 0, 372, 373, 5, 95, 0, 0, 373, 374, + 5, 97, 0, 0, 374, 375, 5, 108, 0, 0, 375, 394, 5, 108, 0, 0, 376, 377, + 5, 74, 0, 0, 377, 378, 5, 83, 0, 0, 378, 379, 5, 79, 0, 0, 379, 380, 5, + 78, 0, 0, 380, 381, 5, 95, 0, 0, 381, 382, 5, 67, 0, 0, 382, 383, 5, 79, + 0, 0, 383, 384, 5, 78, 0, 0, 384, 385, 5, 84, 0, 0, 385, 386, 5, 65, 0, + 0, 386, 387, 5, 73, 0, 0, 387, 388, 5, 78, 0, 0, 388, 389, 5, 83, 0, 0, + 389, 390, 5, 95, 0, 0, 390, 391, 5, 65, 0, 0, 391, 392, 5, 76, 0, 0, 392, + 394, 5, 76, 0, 0, 393, 359, 1, 0, 0, 0, 393, 376, 1, 0, 0, 0, 394, 74, + 1, 0, 0, 0, 395, 396, 5, 106, 0, 0, 396, 397, 5, 115, 0, 0, 397, 398, 5, + 111, 0, 0, 398, 399, 5, 110, 0, 0, 399, 400, 5, 95, 0, 0, 400, 401, 5, + 99, 0, 0, 401, 402, 5, 111, 0, 0, 402, 403, 5, 110, 0, 0, 403, 404, 5, + 116, 0, 0, 404, 405, 5, 97, 0, 0, 405, 406, 5, 105, 0, 0, 406, 407, 5, + 110, 0, 0, 407, 408, 5, 115, 0, 0, 408, 409, 5, 95, 0, 0, 409, 410, 5, + 97, 0, 0, 410, 411, 5, 110, 0, 0, 411, 430, 5, 121, 0, 0, 412, 413, 5, + 74, 0, 0, 413, 414, 5, 83, 0, 0, 414, 415, 5, 79, 0, 0, 415, 416, 5, 78, + 0, 0, 416, 417, 5, 95, 0, 0, 417, 418, 5, 67, 0, 0, 418, 419, 5, 79, 0, + 0, 419, 420, 5, 78, 0, 0, 420, 421, 5, 84, 0, 0, 421, 422, 5, 65, 0, 0, + 422, 423, 5, 73, 0, 0, 423, 424, 5, 78, 0, 0, 424, 425, 5, 83, 0, 0, 425, + 426, 5, 95, 0, 0, 426, 427, 5, 65, 0, 0, 427, 428, 5, 78, 0, 0, 428, 430, + 5, 89, 0, 0, 429, 395, 1, 0, 0, 0, 429, 412, 1, 0, 0, 0, 430, 76, 1, 0, + 0, 0, 431, 432, 5, 97, 0, 0, 432, 433, 5, 114, 0, 0, 433, 434, 5, 114, + 0, 0, 434, 435, 5, 97, 0, 0, 435, 436, 5, 121, 0, 0, 436, 437, 5, 95, 0, + 0, 437, 438, 5, 99, 0, 0, 438, 439, 5, 111, 0, 0, 439, 440, 5, 110, 0, + 0, 440, 441, 5, 116, 0, 0, 441, 442, 5, 97, 0, 0, 442, 443, 5, 105, 0, + 0, 443, 444, 5, 110, 0, 0, 444, 460, 5, 115, 0, 0, 445, 446, 5, 65, 0, + 0, 446, 447, 5, 82, 0, 0, 447, 448, 5, 82, 0, 0, 448, 449, 5, 65, 0, 0, + 449, 450, 5, 89, 0, 0, 450, 451, 5, 95, 0, 0, 451, 452, 5, 67, 0, 0, 452, + 453, 5, 79, 0, 0, 453, 454, 5, 78, 0, 0, 454, 455, 5, 84, 0, 0, 455, 456, + 5, 65, 0, 0, 456, 457, 5, 73, 0, 0, 457, 458, 5, 78, 0, 0, 458, 460, 5, + 83, 0, 0, 459, 431, 1, 0, 0, 0, 459, 445, 1, 0, 0, 0, 460, 78, 1, 0, 0, + 0, 461, 462, 5, 97, 0, 0, 462, 463, 5, 114, 0, 0, 463, 464, 5, 114, 0, + 0, 464, 465, 5, 97, 0, 0, 465, 466, 5, 121, 0, 0, 466, 467, 5, 95, 0, 0, + 467, 468, 5, 99, 0, 0, 468, 469, 5, 111, 0, 0, 469, 470, 5, 110, 0, 0, + 470, 471, 5, 116, 0, 0, 471, 472, 5, 97, 0, 0, 472, 473, 5, 105, 0, 0, + 473, 474, 5, 110, 0, 0, 474, 475, 5, 115, 0, 0, 475, 476, 5, 95, 0, 0, + 476, 477, 5, 97, 0, 0, 477, 478, 5, 108, 0, 0, 478, 498, 5, 108, 0, 0, + 479, 480, 5, 65, 0, 0, 480, 481, 5, 82, 0, 0, 481, 482, 5, 82, 0, 0, 482, + 483, 5, 65, 0, 0, 483, 484, 5, 89, 0, 0, 484, 485, 5, 95, 0, 0, 485, 486, + 5, 67, 0, 0, 486, 487, 5, 79, 0, 0, 487, 488, 5, 78, 0, 0, 488, 489, 5, + 84, 0, 0, 489, 490, 5, 65, 0, 0, 490, 491, 5, 73, 0, 0, 491, 492, 5, 78, + 0, 0, 492, 493, 5, 83, 0, 0, 493, 494, 5, 95, 0, 0, 494, 495, 5, 65, 0, + 0, 495, 496, 5, 76, 0, 0, 496, 498, 5, 76, 0, 0, 497, 461, 1, 0, 0, 0, + 497, 479, 1, 0, 0, 0, 498, 80, 1, 0, 0, 0, 499, 500, 5, 97, 0, 0, 500, + 501, 5, 114, 0, 0, 501, 502, 5, 114, 0, 0, 502, 503, 5, 97, 0, 0, 503, + 504, 5, 121, 0, 0, 504, 505, 5, 95, 0, 0, 505, 506, 5, 99, 0, 0, 506, 507, + 5, 111, 0, 0, 507, 508, 5, 110, 0, 0, 508, 509, 5, 116, 0, 0, 509, 510, + 5, 97, 0, 0, 510, 511, 5, 105, 0, 0, 511, 512, 5, 110, 0, 0, 512, 513, + 5, 115, 0, 0, 513, 514, 5, 95, 0, 0, 514, 515, 5, 97, 0, 0, 515, 516, 5, + 110, 0, 0, 516, 536, 5, 121, 0, 0, 517, 518, 5, 65, 0, 0, 518, 519, 5, + 82, 0, 0, 519, 520, 5, 82, 0, 0, 520, 521, 5, 65, 0, 0, 521, 522, 5, 89, + 0, 0, 522, 523, 5, 95, 0, 0, 523, 524, 5, 67, 0, 0, 524, 525, 5, 79, 0, + 0, 525, 526, 5, 78, 0, 0, 526, 527, 5, 84, 0, 0, 527, 528, 5, 65, 0, 0, + 528, 529, 5, 73, 0, 0, 529, 530, 5, 78, 0, 0, 530, 531, 5, 83, 0, 0, 531, + 532, 5, 95, 0, 0, 532, 533, 5, 65, 0, 0, 533, 534, 5, 78, 0, 0, 534, 536, + 5, 89, 0, 0, 535, 499, 1, 0, 0, 0, 535, 517, 1, 0, 0, 0, 536, 82, 1, 0, + 0, 0, 537, 538, 5, 97, 0, 0, 538, 539, 5, 114, 0, 0, 539, 540, 5, 114, + 0, 0, 540, 541, 5, 97, 0, 0, 541, 542, 5, 121, 0, 0, 542, 543, 5, 95, 0, + 0, 543, 544, 5, 108, 0, 0, 544, 545, 5, 101, 0, 0, 545, 546, 5, 110, 0, + 0, 546, 547, 5, 103, 0, 0, 547, 548, 5, 116, 0, 0, 548, 562, 5, 104, 0, + 0, 549, 550, 5, 65, 0, 0, 550, 551, 5, 82, 0, 0, 551, 552, 5, 82, 0, 0, + 552, 553, 5, 65, 0, 0, 553, 554, 5, 89, 0, 0, 554, 555, 5, 95, 0, 0, 555, + 556, 5, 76, 0, 0, 556, 557, 5, 69, 0, 0, 557, 558, 5, 78, 0, 0, 558, 559, + 5, 71, 0, 0, 559, 560, 5, 84, 0, 0, 560, 562, 5, 72, 0, 0, 561, 537, 1, + 0, 0, 0, 561, 549, 1, 0, 0, 0, 562, 84, 1, 0, 0, 0, 563, 564, 5, 116, 0, + 0, 564, 565, 5, 114, 0, 0, 565, 566, 5, 117, 0, 0, 566, 591, 5, 101, 0, + 0, 567, 568, 5, 84, 0, 0, 568, 569, 5, 114, 0, 0, 569, 570, 5, 117, 0, + 0, 570, 591, 5, 101, 0, 0, 571, 572, 5, 84, 0, 0, 572, 573, 5, 82, 0, 0, + 573, 574, 5, 85, 0, 0, 574, 591, 5, 69, 0, 0, 575, 576, 5, 102, 0, 0, 576, + 577, 5, 97, 0, 0, 577, 578, 5, 108, 0, 0, 578, 579, 5, 115, 0, 0, 579, + 591, 5, 101, 0, 0, 580, 581, 5, 70, 0, 0, 581, 582, 5, 97, 0, 0, 582, 583, + 5, 108, 0, 0, 583, 584, 5, 115, 0, 0, 584, 591, 5, 101, 0, 0, 585, 586, + 5, 70, 0, 0, 586, 587, 5, 65, 0, 0, 587, 588, 5, 76, 0, 0, 588, 589, 5, + 83, 0, 0, 589, 591, 5, 69, 0, 0, 590, 563, 1, 0, 0, 0, 590, 567, 1, 0, + 0, 0, 590, 571, 1, 0, 0, 0, 590, 575, 1, 0, 0, 0, 590, 580, 1, 0, 0, 0, + 590, 585, 1, 0, 0, 0, 591, 86, 1, 0, 0, 0, 592, 597, 3, 115, 57, 0, 593, + 597, 3, 117, 58, 0, 594, 597, 3, 119, 59, 0, 595, 597, 3, 113, 56, 0, 596, + 592, 1, 0, 0, 0, 596, 593, 1, 0, 0, 0, 596, 594, 1, 0, 0, 0, 596, 595, + 1, 0, 0, 0, 597, 88, 1, 0, 0, 0, 598, 601, 3, 131, 65, 0, 599, 601, 3, + 133, 66, 0, 600, 598, 1, 0, 0, 0, 600, 599, 1, 0, 0, 0, 601, 90, 1, 0, + 0, 0, 602, 607, 3, 109, 54, 0, 603, 606, 3, 109, 54, 0, 604, 606, 3, 111, + 55, 0, 605, 603, 1, 0, 0, 0, 605, 604, 1, 0, 0, 0, 606, 609, 1, 0, 0, 0, + 607, 605, 1, 0, 0, 0, 607, 608, 1, 0, 0, 0, 608, 92, 1, 0, 0, 0, 609, 607, + 1, 0, 0, 0, 610, 611, 5, 36, 0, 0, 611, 612, 5, 109, 0, 0, 612, 613, 5, + 101, 0, 0, 613, 614, 5, 116, 0, 0, 614, 615, 5, 97, 0, 0, 615, 94, 1, 0, + 0, 0, 616, 618, 3, 99, 49, 0, 617, 616, 1, 0, 0, 0, 617, 618, 1, 0, 0, + 0, 618, 629, 1, 0, 0, 0, 619, 621, 5, 34, 0, 0, 620, 622, 3, 101, 50, 0, + 621, 620, 1, 0, 0, 0, 621, 622, 1, 0, 0, 0, 622, 623, 1, 0, 0, 0, 623, + 630, 5, 34, 0, 0, 624, 626, 5, 39, 0, 0, 625, 627, 3, 103, 51, 0, 626, + 625, 1, 0, 0, 0, 626, 627, 1, 0, 0, 0, 627, 628, 1, 0, 0, 0, 628, 630, + 5, 39, 0, 0, 629, 619, 1, 0, 0, 0, 629, 624, 1, 0, 0, 0, 630, 96, 1, 0, + 0, 0, 631, 634, 3, 91, 45, 0, 632, 634, 3, 93, 46, 0, 633, 631, 1, 0, 0, + 0, 633, 632, 1, 0, 0, 0, 634, 642, 1, 0, 0, 0, 635, 638, 5, 91, 0, 0, 636, + 639, 3, 95, 47, 0, 637, 639, 3, 115, 57, 0, 638, 636, 1, 0, 0, 0, 638, + 637, 1, 0, 0, 0, 639, 640, 1, 0, 0, 0, 640, 641, 5, 93, 0, 0, 641, 643, + 1, 0, 0, 0, 642, 635, 1, 0, 0, 0, 643, 644, 1, 0, 0, 0, 644, 642, 1, 0, + 0, 0, 644, 645, 1, 0, 0, 0, 645, 98, 1, 0, 0, 0, 646, 647, 5, 117, 0, 0, + 647, 650, 5, 56, 0, 0, 648, 650, 7, 0, 0, 0, 649, 646, 1, 0, 0, 0, 649, + 648, 1, 0, 0, 0, 650, 100, 1, 0, 0, 0, 651, 653, 3, 105, 52, 0, 652, 651, + 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 652, 1, 0, 0, 0, 654, 655, 1, 0, + 0, 0, 655, 102, 1, 0, 0, 0, 656, 658, 3, 107, 53, 0, 657, 656, 1, 0, 0, + 0, 658, 659, 1, 0, 0, 0, 659, 657, 1, 0, 0, 0, 659, 660, 1, 0, 0, 0, 660, + 104, 1, 0, 0, 0, 661, 669, 8, 1, 0, 0, 662, 669, 3, 147, 73, 0, 663, 664, + 5, 92, 0, 0, 664, 669, 5, 10, 0, 0, 665, 666, 5, 92, 0, 0, 666, 667, 5, + 13, 0, 0, 667, 669, 5, 10, 0, 0, 668, 661, 1, 0, 0, 0, 668, 662, 1, 0, + 0, 0, 668, 663, 1, 0, 0, 0, 668, 665, 1, 0, 0, 0, 669, 106, 1, 0, 0, 0, + 670, 678, 8, 2, 0, 0, 671, 678, 3, 147, 73, 0, 672, 673, 5, 92, 0, 0, 673, + 678, 5, 10, 0, 0, 674, 675, 5, 92, 0, 0, 675, 676, 5, 13, 0, 0, 676, 678, + 5, 10, 0, 0, 677, 670, 1, 0, 0, 0, 677, 671, 1, 0, 0, 0, 677, 672, 1, 0, + 0, 0, 677, 674, 1, 0, 0, 0, 678, 108, 1, 0, 0, 0, 679, 680, 7, 3, 0, 0, + 680, 110, 1, 0, 0, 0, 681, 682, 7, 4, 0, 0, 682, 112, 1, 0, 0, 0, 683, + 684, 5, 48, 0, 0, 684, 686, 7, 5, 0, 0, 685, 687, 7, 6, 0, 0, 686, 685, + 1, 0, 0, 0, 687, 688, 1, 0, 0, 0, 688, 686, 1, 0, 0, 0, 688, 689, 1, 0, + 0, 0, 689, 114, 1, 0, 0, 0, 690, 694, 3, 121, 60, 0, 691, 693, 3, 111, + 55, 0, 692, 691, 1, 0, 0, 0, 693, 696, 1, 0, 0, 0, 694, 692, 1, 0, 0, 0, + 694, 695, 1, 0, 0, 0, 695, 699, 1, 0, 0, 0, 696, 694, 1, 0, 0, 0, 697, + 699, 5, 48, 0, 0, 698, 690, 1, 0, 0, 0, 698, 697, 1, 0, 0, 0, 699, 116, + 1, 0, 0, 0, 700, 704, 5, 48, 0, 0, 701, 703, 3, 123, 61, 0, 702, 701, 1, + 0, 0, 0, 703, 706, 1, 0, 0, 0, 704, 702, 1, 0, 0, 0, 704, 705, 1, 0, 0, + 0, 705, 118, 1, 0, 0, 0, 706, 704, 1, 0, 0, 0, 707, 708, 5, 48, 0, 0, 708, + 709, 7, 7, 0, 0, 709, 710, 3, 143, 71, 0, 710, 120, 1, 0, 0, 0, 711, 712, + 7, 8, 0, 0, 712, 122, 1, 0, 0, 0, 713, 714, 7, 9, 0, 0, 714, 124, 1, 0, + 0, 0, 715, 716, 7, 10, 0, 0, 716, 126, 1, 0, 0, 0, 717, 718, 3, 125, 62, + 0, 718, 719, 3, 125, 62, 0, 719, 720, 3, 125, 62, 0, 720, 721, 3, 125, + 62, 0, 721, 128, 1, 0, 0, 0, 722, 723, 5, 92, 0, 0, 723, 724, 5, 117, 0, + 0, 724, 725, 1, 0, 0, 0, 725, 733, 3, 127, 63, 0, 726, 727, 5, 92, 0, 0, + 727, 728, 5, 85, 0, 0, 728, 729, 1, 0, 0, 0, 729, 730, 3, 127, 63, 0, 730, + 731, 3, 127, 63, 0, 731, 733, 1, 0, 0, 0, 732, 722, 1, 0, 0, 0, 732, 726, + 1, 0, 0, 0, 733, 130, 1, 0, 0, 0, 734, 736, 3, 135, 67, 0, 735, 737, 3, + 137, 68, 0, 736, 735, 1, 0, 0, 0, 736, 737, 1, 0, 0, 0, 737, 742, 1, 0, + 0, 0, 738, 739, 3, 139, 69, 0, 739, 740, 3, 137, 68, 0, 740, 742, 1, 0, + 0, 0, 741, 734, 1, 0, 0, 0, 741, 738, 1, 0, 0, 0, 742, 132, 1, 0, 0, 0, + 743, 744, 5, 48, 0, 0, 744, 747, 7, 7, 0, 0, 745, 748, 3, 141, 70, 0, 746, + 748, 3, 143, 71, 0, 747, 745, 1, 0, 0, 0, 747, 746, 1, 0, 0, 0, 748, 749, + 1, 0, 0, 0, 749, 750, 3, 145, 72, 0, 750, 134, 1, 0, 0, 0, 751, 753, 3, + 139, 69, 0, 752, 751, 1, 0, 0, 0, 752, 753, 1, 0, 0, 0, 753, 754, 1, 0, + 0, 0, 754, 755, 5, 46, 0, 0, 755, 760, 3, 139, 69, 0, 756, 757, 3, 139, + 69, 0, 757, 758, 5, 46, 0, 0, 758, 760, 1, 0, 0, 0, 759, 752, 1, 0, 0, + 0, 759, 756, 1, 0, 0, 0, 760, 136, 1, 0, 0, 0, 761, 763, 7, 11, 0, 0, 762, + 764, 7, 12, 0, 0, 763, 762, 1, 0, 0, 0, 763, 764, 1, 0, 0, 0, 764, 765, + 1, 0, 0, 0, 765, 766, 3, 139, 69, 0, 766, 138, 1, 0, 0, 0, 767, 769, 3, + 111, 55, 0, 768, 767, 1, 0, 0, 0, 769, 770, 1, 0, 0, 0, 770, 768, 1, 0, + 0, 0, 770, 771, 1, 0, 0, 0, 771, 140, 1, 0, 0, 0, 772, 774, 3, 143, 71, + 0, 773, 772, 1, 0, 0, 0, 773, 774, 1, 0, 0, 0, 774, 775, 1, 0, 0, 0, 775, + 776, 5, 46, 0, 0, 776, 781, 3, 143, 71, 0, 777, 778, 3, 143, 71, 0, 778, + 779, 5, 46, 0, 0, 779, 781, 1, 0, 0, 0, 780, 773, 1, 0, 0, 0, 780, 777, + 1, 0, 0, 0, 781, 142, 1, 0, 0, 0, 782, 784, 3, 125, 62, 0, 783, 782, 1, + 0, 0, 0, 784, 785, 1, 0, 0, 0, 785, 783, 1, 0, 0, 0, 785, 786, 1, 0, 0, + 0, 786, 144, 1, 0, 0, 0, 787, 789, 7, 13, 0, 0, 788, 790, 7, 12, 0, 0, + 789, 788, 1, 0, 0, 0, 789, 790, 1, 0, 0, 0, 790, 791, 1, 0, 0, 0, 791, + 792, 3, 139, 69, 0, 792, 146, 1, 0, 0, 0, 793, 794, 5, 92, 0, 0, 794, 809, + 7, 14, 0, 0, 795, 796, 5, 92, 0, 0, 796, 798, 3, 123, 61, 0, 797, 799, + 3, 123, 61, 0, 798, 797, 1, 0, 0, 0, 798, 799, 1, 0, 0, 0, 799, 801, 1, + 0, 0, 0, 800, 802, 3, 123, 61, 0, 801, 800, 1, 0, 0, 0, 801, 802, 1, 0, + 0, 0, 802, 809, 1, 0, 0, 0, 803, 804, 5, 92, 0, 0, 804, 805, 5, 120, 0, + 0, 805, 806, 1, 0, 0, 0, 806, 809, 3, 143, 71, 0, 807, 809, 3, 129, 64, + 0, 808, 793, 1, 0, 0, 0, 808, 795, 1, 0, 0, 0, 808, 803, 1, 0, 0, 0, 808, + 807, 1, 0, 0, 0, 809, 148, 1, 0, 0, 0, 810, 812, 7, 15, 0, 0, 811, 810, + 1, 0, 0, 0, 812, 813, 1, 0, 0, 0, 813, 811, 1, 0, 0, 0, 813, 814, 1, 0, + 0, 0, 814, 815, 1, 0, 0, 0, 815, 816, 6, 74, 0, 0, 816, 150, 1, 0, 0, 0, + 817, 819, 5, 13, 0, 0, 818, 820, 5, 10, 0, 0, 819, 818, 1, 0, 0, 0, 819, + 820, 1, 0, 0, 0, 820, 823, 1, 0, 0, 0, 821, 823, 5, 10, 0, 0, 822, 817, + 1, 0, 0, 0, 822, 821, 1, 0, 0, 0, 823, 824, 1, 0, 0, 0, 824, 825, 6, 75, + 0, 0, 825, 152, 1, 0, 0, 0, 58, 0, 191, 205, 227, 259, 265, 281, 305, 313, + 319, 324, 326, 357, 393, 429, 459, 497, 535, 561, 590, 596, 600, 605, 607, + 617, 621, 626, 629, 633, 638, 644, 649, 654, 659, 668, 677, 688, 694, 698, + 704, 732, 736, 741, 747, 752, 759, 763, 770, 773, 780, 785, 789, 798, 801, + 808, 813, 819, 822, 1, 6, 0, 0, } deserializer := antlr.NewATNDeserializer(nil) staticData.atn = deserializer.Deserialize(staticData.serializedATN) @@ -498,24 +519,26 @@ const ( PlanLexerBXOR = 27 PlanLexerAND = 28 PlanLexerOR = 29 - PlanLexerBNOT = 30 - PlanLexerNOT = 31 - PlanLexerIN = 32 - PlanLexerEmptyArray = 33 - PlanLexerJSONContains = 34 - PlanLexerJSONContainsAll = 35 - PlanLexerJSONContainsAny = 36 - PlanLexerArrayContains = 37 - PlanLexerArrayContainsAll = 38 - PlanLexerArrayContainsAny = 39 - PlanLexerArrayLength = 40 - PlanLexerBooleanConstant = 41 - PlanLexerIntegerConstant = 42 - PlanLexerFloatingConstant = 43 - PlanLexerIdentifier = 44 - PlanLexerMeta = 45 - PlanLexerStringLiteral = 46 - PlanLexerJSONIdentifier = 47 - PlanLexerWhitespace = 48 - PlanLexerNewline = 49 + PlanLexerISNULL = 30 + PlanLexerISNOTNULL = 31 + PlanLexerBNOT = 32 + PlanLexerNOT = 33 + PlanLexerIN = 34 + PlanLexerEmptyArray = 35 + PlanLexerJSONContains = 36 + PlanLexerJSONContainsAll = 37 + PlanLexerJSONContainsAny = 38 + PlanLexerArrayContains = 39 + PlanLexerArrayContainsAll = 40 + PlanLexerArrayContainsAny = 41 + PlanLexerArrayLength = 42 + PlanLexerBooleanConstant = 43 + PlanLexerIntegerConstant = 44 + PlanLexerFloatingConstant = 45 + PlanLexerIdentifier = 46 + PlanLexerMeta = 47 + PlanLexerStringLiteral = 48 + PlanLexerJSONIdentifier = 49 + PlanLexerWhitespace = 50 + PlanLexerNewline = 51 ) diff --git a/internal/parser/planparserv2/generated/plan_parser.go b/internal/parser/planparserv2/generated/plan_parser.go index 971e8f505bcd1..b1037c2f1c6bd 100644 --- a/internal/parser/planparserv2/generated/plan_parser.go +++ b/internal/parser/planparserv2/generated/plan_parser.go @@ -34,92 +34,95 @@ func planParserInit() { staticData.LiteralNames = []string{ "", "'('", "')'", "'['", "','", "']'", "'{'", "'}'", "'<'", "'<='", "'>'", "'>='", "'=='", "'!='", "", "", "", "'+'", "'-'", "'*'", "'/'", - "'%'", "'**'", "'<<'", "'>>'", "'&'", "'|'", "'^'", "", "", "'~'", "", - "", "", "", "", "", "", "", "", "", "", "", "", "", "'$meta'", + "'%'", "'**'", "'<<'", "'>>'", "'&'", "'|'", "'^'", "", "", "", "", + "'~'", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "'$meta'", } staticData.SymbolicNames = []string{ "", "", "", "", "", "", "LBRACE", "RBRACE", "LT", "LE", "GT", "GE", "EQ", "NE", "LIKE", "EXISTS", "TEXTMATCH", "ADD", "SUB", "MUL", "DIV", - "MOD", "POW", "SHL", "SHR", "BAND", "BOR", "BXOR", "AND", "OR", "BNOT", - "NOT", "IN", "EmptyArray", "JSONContains", "JSONContainsAll", "JSONContainsAny", - "ArrayContains", "ArrayContainsAll", "ArrayContainsAny", "ArrayLength", - "BooleanConstant", "IntegerConstant", "FloatingConstant", "Identifier", - "Meta", "StringLiteral", "JSONIdentifier", "Whitespace", "Newline", + "MOD", "POW", "SHL", "SHR", "BAND", "BOR", "BXOR", "AND", "OR", "ISNULL", + "ISNOTNULL", "BNOT", "NOT", "IN", "EmptyArray", "JSONContains", "JSONContainsAll", + "JSONContainsAny", "ArrayContains", "ArrayContainsAll", "ArrayContainsAny", + "ArrayLength", "BooleanConstant", "IntegerConstant", "FloatingConstant", + "Identifier", "Meta", "StringLiteral", "JSONIdentifier", "Whitespace", + "Newline", } staticData.RuleNames = []string{ "expr", } staticData.PredictionContextCache = antlr.NewPredictionContextCache() staticData.serializedATN = []int32{ - 4, 1, 49, 142, 2, 0, 7, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, + 4, 1, 51, 146, 2, 0, 7, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 21, 8, 0, 10, 0, 12, 0, 24, 9, 0, 1, 0, 3, 0, 27, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 70, 8, 0, 10, 0, 12, 0, 73, 9, 0, 1, 0, 3, 0, 76, 8, 0, - 3, 0, 78, 8, 0, 1, 0, 1, 0, 1, 0, 3, 0, 83, 8, 0, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 99, - 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 5, 0, 137, 8, 0, 10, 0, 12, 0, 140, 9, 0, 1, 0, 0, 1, 0, 1, 0, 0, - 13, 1, 0, 44, 45, 2, 0, 17, 18, 30, 31, 2, 0, 34, 34, 37, 37, 2, 0, 35, - 35, 38, 38, 2, 0, 36, 36, 39, 39, 2, 0, 44, 44, 47, 47, 1, 0, 19, 21, 1, - 0, 17, 18, 1, 0, 23, 24, 1, 0, 8, 9, 1, 0, 10, 11, 1, 0, 8, 11, 1, 0, 12, - 13, 178, 0, 82, 1, 0, 0, 0, 2, 3, 6, 0, -1, 0, 3, 83, 5, 42, 0, 0, 4, 83, - 5, 43, 0, 0, 5, 83, 5, 41, 0, 0, 6, 83, 5, 46, 0, 0, 7, 83, 7, 0, 0, 0, - 8, 83, 5, 47, 0, 0, 9, 10, 5, 6, 0, 0, 10, 11, 5, 44, 0, 0, 11, 83, 5, - 7, 0, 0, 12, 13, 5, 1, 0, 0, 13, 14, 3, 0, 0, 0, 14, 15, 5, 2, 0, 0, 15, - 83, 1, 0, 0, 0, 16, 17, 5, 3, 0, 0, 17, 22, 3, 0, 0, 0, 18, 19, 5, 4, 0, - 0, 19, 21, 3, 0, 0, 0, 20, 18, 1, 0, 0, 0, 21, 24, 1, 0, 0, 0, 22, 20, - 1, 0, 0, 0, 22, 23, 1, 0, 0, 0, 23, 26, 1, 0, 0, 0, 24, 22, 1, 0, 0, 0, - 25, 27, 5, 4, 0, 0, 26, 25, 1, 0, 0, 0, 26, 27, 1, 0, 0, 0, 27, 28, 1, - 0, 0, 0, 28, 29, 5, 5, 0, 0, 29, 83, 1, 0, 0, 0, 30, 83, 5, 33, 0, 0, 31, - 32, 5, 16, 0, 0, 32, 33, 5, 1, 0, 0, 33, 34, 5, 44, 0, 0, 34, 35, 5, 4, - 0, 0, 35, 36, 5, 46, 0, 0, 36, 83, 5, 2, 0, 0, 37, 38, 7, 1, 0, 0, 38, - 83, 3, 0, 0, 20, 39, 40, 7, 2, 0, 0, 40, 41, 5, 1, 0, 0, 41, 42, 3, 0, - 0, 0, 42, 43, 5, 4, 0, 0, 43, 44, 3, 0, 0, 0, 44, 45, 5, 2, 0, 0, 45, 83, - 1, 0, 0, 0, 46, 47, 7, 3, 0, 0, 47, 48, 5, 1, 0, 0, 48, 49, 3, 0, 0, 0, - 49, 50, 5, 4, 0, 0, 50, 51, 3, 0, 0, 0, 51, 52, 5, 2, 0, 0, 52, 83, 1, - 0, 0, 0, 53, 54, 7, 4, 0, 0, 54, 55, 5, 1, 0, 0, 55, 56, 3, 0, 0, 0, 56, - 57, 5, 4, 0, 0, 57, 58, 3, 0, 0, 0, 58, 59, 5, 2, 0, 0, 59, 83, 1, 0, 0, - 0, 60, 61, 5, 40, 0, 0, 61, 62, 5, 1, 0, 0, 62, 63, 7, 5, 0, 0, 63, 83, - 5, 2, 0, 0, 64, 65, 5, 44, 0, 0, 65, 77, 5, 1, 0, 0, 66, 71, 3, 0, 0, 0, - 67, 68, 5, 4, 0, 0, 68, 70, 3, 0, 0, 0, 69, 67, 1, 0, 0, 0, 70, 73, 1, - 0, 0, 0, 71, 69, 1, 0, 0, 0, 71, 72, 1, 0, 0, 0, 72, 75, 1, 0, 0, 0, 73, - 71, 1, 0, 0, 0, 74, 76, 5, 4, 0, 0, 75, 74, 1, 0, 0, 0, 75, 76, 1, 0, 0, - 0, 76, 78, 1, 0, 0, 0, 77, 66, 1, 0, 0, 0, 77, 78, 1, 0, 0, 0, 78, 79, - 1, 0, 0, 0, 79, 83, 5, 2, 0, 0, 80, 81, 5, 15, 0, 0, 81, 83, 3, 0, 0, 1, - 82, 2, 1, 0, 0, 0, 82, 4, 1, 0, 0, 0, 82, 5, 1, 0, 0, 0, 82, 6, 1, 0, 0, - 0, 82, 7, 1, 0, 0, 0, 82, 8, 1, 0, 0, 0, 82, 9, 1, 0, 0, 0, 82, 12, 1, - 0, 0, 0, 82, 16, 1, 0, 0, 0, 82, 30, 1, 0, 0, 0, 82, 31, 1, 0, 0, 0, 82, - 37, 1, 0, 0, 0, 82, 39, 1, 0, 0, 0, 82, 46, 1, 0, 0, 0, 82, 53, 1, 0, 0, - 0, 82, 60, 1, 0, 0, 0, 82, 64, 1, 0, 0, 0, 82, 80, 1, 0, 0, 0, 83, 138, - 1, 0, 0, 0, 84, 85, 10, 21, 0, 0, 85, 86, 5, 22, 0, 0, 86, 137, 3, 0, 0, - 22, 87, 88, 10, 19, 0, 0, 88, 89, 7, 6, 0, 0, 89, 137, 3, 0, 0, 20, 90, - 91, 10, 18, 0, 0, 91, 92, 7, 7, 0, 0, 92, 137, 3, 0, 0, 19, 93, 94, 10, - 17, 0, 0, 94, 95, 7, 8, 0, 0, 95, 137, 3, 0, 0, 18, 96, 98, 10, 16, 0, - 0, 97, 99, 5, 31, 0, 0, 98, 97, 1, 0, 0, 0, 98, 99, 1, 0, 0, 0, 99, 100, - 1, 0, 0, 0, 100, 101, 5, 32, 0, 0, 101, 137, 3, 0, 0, 17, 102, 103, 10, - 10, 0, 0, 103, 104, 7, 9, 0, 0, 104, 105, 7, 5, 0, 0, 105, 106, 7, 9, 0, - 0, 106, 137, 3, 0, 0, 11, 107, 108, 10, 9, 0, 0, 108, 109, 7, 10, 0, 0, - 109, 110, 7, 5, 0, 0, 110, 111, 7, 10, 0, 0, 111, 137, 3, 0, 0, 10, 112, - 113, 10, 8, 0, 0, 113, 114, 7, 11, 0, 0, 114, 137, 3, 0, 0, 9, 115, 116, - 10, 7, 0, 0, 116, 117, 7, 12, 0, 0, 117, 137, 3, 0, 0, 8, 118, 119, 10, - 6, 0, 0, 119, 120, 5, 25, 0, 0, 120, 137, 3, 0, 0, 7, 121, 122, 10, 5, - 0, 0, 122, 123, 5, 27, 0, 0, 123, 137, 3, 0, 0, 6, 124, 125, 10, 4, 0, - 0, 125, 126, 5, 26, 0, 0, 126, 137, 3, 0, 0, 5, 127, 128, 10, 3, 0, 0, - 128, 129, 5, 28, 0, 0, 129, 137, 3, 0, 0, 4, 130, 131, 10, 2, 0, 0, 131, - 132, 5, 29, 0, 0, 132, 137, 3, 0, 0, 3, 133, 134, 10, 23, 0, 0, 134, 135, - 5, 14, 0, 0, 135, 137, 5, 46, 0, 0, 136, 84, 1, 0, 0, 0, 136, 87, 1, 0, - 0, 0, 136, 90, 1, 0, 0, 0, 136, 93, 1, 0, 0, 0, 136, 96, 1, 0, 0, 0, 136, - 102, 1, 0, 0, 0, 136, 107, 1, 0, 0, 0, 136, 112, 1, 0, 0, 0, 136, 115, - 1, 0, 0, 0, 136, 118, 1, 0, 0, 0, 136, 121, 1, 0, 0, 0, 136, 124, 1, 0, - 0, 0, 136, 127, 1, 0, 0, 0, 136, 130, 1, 0, 0, 0, 136, 133, 1, 0, 0, 0, - 137, 140, 1, 0, 0, 0, 138, 136, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, - 1, 1, 0, 0, 0, 140, 138, 1, 0, 0, 0, 9, 22, 26, 71, 75, 77, 82, 98, 136, - 138, + 3, 0, 78, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 87, 8, + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, + 0, 1, 0, 1, 0, 3, 0, 103, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 141, 8, 0, 10, 0, 12, 0, 144, 9, + 0, 1, 0, 0, 1, 0, 1, 0, 0, 13, 1, 0, 46, 47, 2, 0, 17, 18, 32, 33, 2, 0, + 36, 36, 39, 39, 2, 0, 37, 37, 40, 40, 2, 0, 38, 38, 41, 41, 2, 0, 46, 46, + 49, 49, 1, 0, 19, 21, 1, 0, 17, 18, 1, 0, 23, 24, 1, 0, 8, 9, 1, 0, 10, + 11, 1, 0, 8, 11, 1, 0, 12, 13, 184, 0, 86, 1, 0, 0, 0, 2, 3, 6, 0, -1, + 0, 3, 87, 5, 44, 0, 0, 4, 87, 5, 45, 0, 0, 5, 87, 5, 43, 0, 0, 6, 87, 5, + 48, 0, 0, 7, 87, 7, 0, 0, 0, 8, 87, 5, 49, 0, 0, 9, 10, 5, 6, 0, 0, 10, + 11, 5, 46, 0, 0, 11, 87, 5, 7, 0, 0, 12, 13, 5, 1, 0, 0, 13, 14, 3, 0, + 0, 0, 14, 15, 5, 2, 0, 0, 15, 87, 1, 0, 0, 0, 16, 17, 5, 3, 0, 0, 17, 22, + 3, 0, 0, 0, 18, 19, 5, 4, 0, 0, 19, 21, 3, 0, 0, 0, 20, 18, 1, 0, 0, 0, + 21, 24, 1, 0, 0, 0, 22, 20, 1, 0, 0, 0, 22, 23, 1, 0, 0, 0, 23, 26, 1, + 0, 0, 0, 24, 22, 1, 0, 0, 0, 25, 27, 5, 4, 0, 0, 26, 25, 1, 0, 0, 0, 26, + 27, 1, 0, 0, 0, 27, 28, 1, 0, 0, 0, 28, 29, 5, 5, 0, 0, 29, 87, 1, 0, 0, + 0, 30, 87, 5, 35, 0, 0, 31, 32, 5, 16, 0, 0, 32, 33, 5, 1, 0, 0, 33, 34, + 5, 46, 0, 0, 34, 35, 5, 4, 0, 0, 35, 36, 5, 48, 0, 0, 36, 87, 5, 2, 0, + 0, 37, 38, 7, 1, 0, 0, 38, 87, 3, 0, 0, 22, 39, 40, 7, 2, 0, 0, 40, 41, + 5, 1, 0, 0, 41, 42, 3, 0, 0, 0, 42, 43, 5, 4, 0, 0, 43, 44, 3, 0, 0, 0, + 44, 45, 5, 2, 0, 0, 45, 87, 1, 0, 0, 0, 46, 47, 7, 3, 0, 0, 47, 48, 5, + 1, 0, 0, 48, 49, 3, 0, 0, 0, 49, 50, 5, 4, 0, 0, 50, 51, 3, 0, 0, 0, 51, + 52, 5, 2, 0, 0, 52, 87, 1, 0, 0, 0, 53, 54, 7, 4, 0, 0, 54, 55, 5, 1, 0, + 0, 55, 56, 3, 0, 0, 0, 56, 57, 5, 4, 0, 0, 57, 58, 3, 0, 0, 0, 58, 59, + 5, 2, 0, 0, 59, 87, 1, 0, 0, 0, 60, 61, 5, 42, 0, 0, 61, 62, 5, 1, 0, 0, + 62, 63, 7, 5, 0, 0, 63, 87, 5, 2, 0, 0, 64, 65, 5, 46, 0, 0, 65, 77, 5, + 1, 0, 0, 66, 71, 3, 0, 0, 0, 67, 68, 5, 4, 0, 0, 68, 70, 3, 0, 0, 0, 69, + 67, 1, 0, 0, 0, 70, 73, 1, 0, 0, 0, 71, 69, 1, 0, 0, 0, 71, 72, 1, 0, 0, + 0, 72, 75, 1, 0, 0, 0, 73, 71, 1, 0, 0, 0, 74, 76, 5, 4, 0, 0, 75, 74, + 1, 0, 0, 0, 75, 76, 1, 0, 0, 0, 76, 78, 1, 0, 0, 0, 77, 66, 1, 0, 0, 0, + 77, 78, 1, 0, 0, 0, 78, 79, 1, 0, 0, 0, 79, 87, 5, 2, 0, 0, 80, 81, 5, + 46, 0, 0, 81, 87, 5, 30, 0, 0, 82, 83, 5, 46, 0, 0, 83, 87, 5, 31, 0, 0, + 84, 85, 5, 15, 0, 0, 85, 87, 3, 0, 0, 1, 86, 2, 1, 0, 0, 0, 86, 4, 1, 0, + 0, 0, 86, 5, 1, 0, 0, 0, 86, 6, 1, 0, 0, 0, 86, 7, 1, 0, 0, 0, 86, 8, 1, + 0, 0, 0, 86, 9, 1, 0, 0, 0, 86, 12, 1, 0, 0, 0, 86, 16, 1, 0, 0, 0, 86, + 30, 1, 0, 0, 0, 86, 31, 1, 0, 0, 0, 86, 37, 1, 0, 0, 0, 86, 39, 1, 0, 0, + 0, 86, 46, 1, 0, 0, 0, 86, 53, 1, 0, 0, 0, 86, 60, 1, 0, 0, 0, 86, 64, + 1, 0, 0, 0, 86, 80, 1, 0, 0, 0, 86, 82, 1, 0, 0, 0, 86, 84, 1, 0, 0, 0, + 87, 142, 1, 0, 0, 0, 88, 89, 10, 23, 0, 0, 89, 90, 5, 22, 0, 0, 90, 141, + 3, 0, 0, 24, 91, 92, 10, 21, 0, 0, 92, 93, 7, 6, 0, 0, 93, 141, 3, 0, 0, + 22, 94, 95, 10, 20, 0, 0, 95, 96, 7, 7, 0, 0, 96, 141, 3, 0, 0, 21, 97, + 98, 10, 19, 0, 0, 98, 99, 7, 8, 0, 0, 99, 141, 3, 0, 0, 20, 100, 102, 10, + 18, 0, 0, 101, 103, 5, 33, 0, 0, 102, 101, 1, 0, 0, 0, 102, 103, 1, 0, + 0, 0, 103, 104, 1, 0, 0, 0, 104, 105, 5, 34, 0, 0, 105, 141, 3, 0, 0, 19, + 106, 107, 10, 12, 0, 0, 107, 108, 7, 9, 0, 0, 108, 109, 7, 5, 0, 0, 109, + 110, 7, 9, 0, 0, 110, 141, 3, 0, 0, 13, 111, 112, 10, 11, 0, 0, 112, 113, + 7, 10, 0, 0, 113, 114, 7, 5, 0, 0, 114, 115, 7, 10, 0, 0, 115, 141, 3, + 0, 0, 12, 116, 117, 10, 10, 0, 0, 117, 118, 7, 11, 0, 0, 118, 141, 3, 0, + 0, 11, 119, 120, 10, 9, 0, 0, 120, 121, 7, 12, 0, 0, 121, 141, 3, 0, 0, + 10, 122, 123, 10, 8, 0, 0, 123, 124, 5, 25, 0, 0, 124, 141, 3, 0, 0, 9, + 125, 126, 10, 7, 0, 0, 126, 127, 5, 27, 0, 0, 127, 141, 3, 0, 0, 8, 128, + 129, 10, 6, 0, 0, 129, 130, 5, 26, 0, 0, 130, 141, 3, 0, 0, 7, 131, 132, + 10, 5, 0, 0, 132, 133, 5, 28, 0, 0, 133, 141, 3, 0, 0, 6, 134, 135, 10, + 4, 0, 0, 135, 136, 5, 29, 0, 0, 136, 141, 3, 0, 0, 5, 137, 138, 10, 25, + 0, 0, 138, 139, 5, 14, 0, 0, 139, 141, 5, 48, 0, 0, 140, 88, 1, 0, 0, 0, + 140, 91, 1, 0, 0, 0, 140, 94, 1, 0, 0, 0, 140, 97, 1, 0, 0, 0, 140, 100, + 1, 0, 0, 0, 140, 106, 1, 0, 0, 0, 140, 111, 1, 0, 0, 0, 140, 116, 1, 0, + 0, 0, 140, 119, 1, 0, 0, 0, 140, 122, 1, 0, 0, 0, 140, 125, 1, 0, 0, 0, + 140, 128, 1, 0, 0, 0, 140, 131, 1, 0, 0, 0, 140, 134, 1, 0, 0, 0, 140, + 137, 1, 0, 0, 0, 141, 144, 1, 0, 0, 0, 142, 140, 1, 0, 0, 0, 142, 143, + 1, 0, 0, 0, 143, 1, 1, 0, 0, 0, 144, 142, 1, 0, 0, 0, 9, 22, 26, 71, 75, + 77, 86, 102, 140, 142, } deserializer := antlr.NewATNDeserializer(nil) staticData.atn = deserializer.Deserialize(staticData.serializedATN) @@ -187,26 +190,28 @@ const ( PlanParserBXOR = 27 PlanParserAND = 28 PlanParserOR = 29 - PlanParserBNOT = 30 - PlanParserNOT = 31 - PlanParserIN = 32 - PlanParserEmptyArray = 33 - PlanParserJSONContains = 34 - PlanParserJSONContainsAll = 35 - PlanParserJSONContainsAny = 36 - PlanParserArrayContains = 37 - PlanParserArrayContainsAll = 38 - PlanParserArrayContainsAny = 39 - PlanParserArrayLength = 40 - PlanParserBooleanConstant = 41 - PlanParserIntegerConstant = 42 - PlanParserFloatingConstant = 43 - PlanParserIdentifier = 44 - PlanParserMeta = 45 - PlanParserStringLiteral = 46 - PlanParserJSONIdentifier = 47 - PlanParserWhitespace = 48 - PlanParserNewline = 49 + PlanParserISNULL = 30 + PlanParserISNOTNULL = 31 + PlanParserBNOT = 32 + PlanParserNOT = 33 + PlanParserIN = 34 + PlanParserEmptyArray = 35 + PlanParserJSONContains = 36 + PlanParserJSONContainsAll = 37 + PlanParserJSONContainsAny = 38 + PlanParserArrayContains = 39 + PlanParserArrayContainsAll = 40 + PlanParserArrayContainsAny = 41 + PlanParserArrayLength = 42 + PlanParserBooleanConstant = 43 + PlanParserIntegerConstant = 44 + PlanParserFloatingConstant = 45 + PlanParserIdentifier = 46 + PlanParserMeta = 47 + PlanParserStringLiteral = 48 + PlanParserJSONIdentifier = 49 + PlanParserWhitespace = 50 + PlanParserNewline = 51 ) // PlanParserRULE_expr is the PlanParser rule. @@ -556,6 +561,42 @@ func (s *LogicalOrContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { } } +type IsNotNullContext struct { + ExprContext +} + +func NewIsNotNullContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *IsNotNullContext { + var p = new(IsNotNullContext) + + InitEmptyExprContext(&p.ExprContext) + p.parser = parser + p.CopyAll(ctx.(*ExprContext)) + + return p +} + +func (s *IsNotNullContext) GetRuleContext() antlr.RuleContext { + return s +} + +func (s *IsNotNullContext) Identifier() antlr.TerminalNode { + return s.GetToken(PlanParserIdentifier, 0) +} + +func (s *IsNotNullContext) ISNOTNULL() antlr.TerminalNode { + return s.GetToken(PlanParserISNOTNULL, 0) +} + +func (s *IsNotNullContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { + switch t := visitor.(type) { + case PlanVisitor: + return t.VisitIsNotNull(s) + + default: + return t.VisitChildren(s) + } +} + type MulDivModContext struct { ExprContext op antlr.Token @@ -2271,6 +2312,42 @@ func (s *BitAndContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { } } +type IsNullContext struct { + ExprContext +} + +func NewIsNullContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *IsNullContext { + var p = new(IsNullContext) + + InitEmptyExprContext(&p.ExprContext) + p.parser = parser + p.CopyAll(ctx.(*ExprContext)) + + return p +} + +func (s *IsNullContext) GetRuleContext() antlr.RuleContext { + return s +} + +func (s *IsNullContext) Identifier() antlr.TerminalNode { + return s.GetToken(PlanParserIdentifier, 0) +} + +func (s *IsNullContext) ISNULL() antlr.TerminalNode { + return s.GetToken(PlanParserISNULL, 0) +} + +func (s *IsNullContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { + switch t := visitor.(type) { + case PlanVisitor: + return t.VisitIsNull(s) + + default: + return t.VisitChildren(s) + } +} + type PowerContext struct { ExprContext } @@ -2362,7 +2439,7 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { var _alt int p.EnterOuterAlt(localctx, 1) - p.SetState(82) + p.SetState(86) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -2662,7 +2739,7 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { _la = p.GetTokenStream().LA(1) - if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&3221618688) != 0) { + if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&12885295104) != 0) { var _ri = p.GetErrorHandler().RecoverInline(p) localctx.(*UnaryContext).op = _ri @@ -2673,7 +2750,7 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } { p.SetState(38) - p.expr(20) + p.expr(22) } case 13: @@ -2887,7 +2964,7 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } _la = p.GetTokenStream().LA(1) - if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&281469608493130) != 0 { + if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&1125878432497738) != 0 { { p.SetState(66) p.expr(0) @@ -2957,12 +3034,12 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } case 18: - localctx = NewExistsContext(p, localctx) + localctx = NewIsNullContext(p, localctx) p.SetParserRuleContext(localctx) _prevctx = localctx { p.SetState(80) - p.Match(PlanParserEXISTS) + p.Match(PlanParserIdentifier) if p.HasError() { // Recognition error - abort rule goto errorExit @@ -2970,6 +3047,48 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } { p.SetState(81) + p.Match(PlanParserISNULL) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + case 19: + localctx = NewIsNotNullContext(p, localctx) + p.SetParserRuleContext(localctx) + _prevctx = localctx + { + p.SetState(82) + p.Match(PlanParserIdentifier) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(83) + p.Match(PlanParserISNOTNULL) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + case 20: + localctx = NewExistsContext(p, localctx) + p.SetParserRuleContext(localctx) + _prevctx = localctx + { + p.SetState(84) + p.Match(PlanParserEXISTS) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(85) p.expr(1) } @@ -2977,7 +3096,7 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { goto errorExit } p.GetParserRuleContext().SetStop(p.GetTokenStream().LT(-1)) - p.SetState(138) + p.SetState(142) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -2992,7 +3111,7 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { p.TriggerExitRuleEvent() } _prevctx = localctx - p.SetState(136) + p.SetState(140) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3002,14 +3121,14 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { case 1: localctx = NewPowerContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(84) + p.SetState(88) - if !(p.Precpred(p.GetParserRuleContext(), 21)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 21)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 23)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 23)", "")) goto errorExit } { - p.SetState(85) + p.SetState(89) p.Match(PlanParserPOW) if p.HasError() { // Recognition error - abort rule @@ -3017,21 +3136,21 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(86) - p.expr(22) + p.SetState(90) + p.expr(24) } case 2: localctx = NewMulDivModContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(87) + p.SetState(91) - if !(p.Precpred(p.GetParserRuleContext(), 19)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 19)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 21)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 21)", "")) goto errorExit } { - p.SetState(88) + p.SetState(92) var _lt = p.GetTokenStream().LT(1) @@ -3049,21 +3168,21 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(89) - p.expr(20) + p.SetState(93) + p.expr(22) } case 3: localctx = NewAddSubContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(90) + p.SetState(94) - if !(p.Precpred(p.GetParserRuleContext(), 18)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 18)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 20)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 20)", "")) goto errorExit } { - p.SetState(91) + p.SetState(95) var _lt = p.GetTokenStream().LT(1) @@ -3081,21 +3200,21 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(92) - p.expr(19) + p.SetState(96) + p.expr(21) } case 4: localctx = NewShiftContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(93) + p.SetState(97) - if !(p.Precpred(p.GetParserRuleContext(), 17)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 17)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 19)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 19)", "")) goto errorExit } { - p.SetState(94) + p.SetState(98) var _lt = p.GetTokenStream().LT(1) @@ -3113,20 +3232,20 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(95) - p.expr(18) + p.SetState(99) + p.expr(20) } case 5: localctx = NewTermContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(96) + p.SetState(100) - if !(p.Precpred(p.GetParserRuleContext(), 16)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 16)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 18)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 18)", "")) goto errorExit } - p.SetState(98) + p.SetState(102) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3135,7 +3254,7 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { if _la == PlanParserNOT { { - p.SetState(97) + p.SetState(101) var _m = p.Match(PlanParserNOT) @@ -3148,7 +3267,7 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } { - p.SetState(100) + p.SetState(104) p.Match(PlanParserIN) if p.HasError() { // Recognition error - abort rule @@ -3156,21 +3275,21 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(101) - p.expr(17) + p.SetState(105) + p.expr(19) } case 6: localctx = NewRangeContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(102) + p.SetState(106) - if !(p.Precpred(p.GetParserRuleContext(), 10)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 10)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 12)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 12)", "")) goto errorExit } { - p.SetState(103) + p.SetState(107) var _lt = p.GetTokenStream().LT(1) @@ -3188,7 +3307,7 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(104) + p.SetState(108) _la = p.GetTokenStream().LA(1) if !(_la == PlanParserIdentifier || _la == PlanParserJSONIdentifier) { @@ -3199,7 +3318,7 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(105) + p.SetState(109) var _lt = p.GetTokenStream().LT(1) @@ -3217,21 +3336,21 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(106) - p.expr(11) + p.SetState(110) + p.expr(13) } case 7: localctx = NewReverseRangeContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(107) + p.SetState(111) - if !(p.Precpred(p.GetParserRuleContext(), 9)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 9)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 11)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 11)", "")) goto errorExit } { - p.SetState(108) + p.SetState(112) var _lt = p.GetTokenStream().LT(1) @@ -3249,7 +3368,7 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(109) + p.SetState(113) _la = p.GetTokenStream().LA(1) if !(_la == PlanParserIdentifier || _la == PlanParserJSONIdentifier) { @@ -3260,7 +3379,7 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(110) + p.SetState(114) var _lt = p.GetTokenStream().LT(1) @@ -3278,21 +3397,21 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(111) - p.expr(10) + p.SetState(115) + p.expr(12) } case 8: localctx = NewRelationalContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(112) + p.SetState(116) - if !(p.Precpred(p.GetParserRuleContext(), 8)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 8)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 10)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 10)", "")) goto errorExit } { - p.SetState(113) + p.SetState(117) var _lt = p.GetTokenStream().LT(1) @@ -3310,21 +3429,21 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(114) - p.expr(9) + p.SetState(118) + p.expr(11) } case 9: localctx = NewEqualityContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(115) + p.SetState(119) - if !(p.Precpred(p.GetParserRuleContext(), 7)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 7)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 9)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 9)", "")) goto errorExit } { - p.SetState(116) + p.SetState(120) var _lt = p.GetTokenStream().LT(1) @@ -3342,21 +3461,21 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(117) - p.expr(8) + p.SetState(121) + p.expr(10) } case 10: localctx = NewBitAndContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(118) + p.SetState(122) - if !(p.Precpred(p.GetParserRuleContext(), 6)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 6)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 8)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 8)", "")) goto errorExit } { - p.SetState(119) + p.SetState(123) p.Match(PlanParserBAND) if p.HasError() { // Recognition error - abort rule @@ -3364,21 +3483,21 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(120) - p.expr(7) + p.SetState(124) + p.expr(9) } case 11: localctx = NewBitXorContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(121) + p.SetState(125) - if !(p.Precpred(p.GetParserRuleContext(), 5)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 5)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 7)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 7)", "")) goto errorExit } { - p.SetState(122) + p.SetState(126) p.Match(PlanParserBXOR) if p.HasError() { // Recognition error - abort rule @@ -3386,21 +3505,21 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(123) - p.expr(6) + p.SetState(127) + p.expr(8) } case 12: localctx = NewBitOrContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(124) + p.SetState(128) - if !(p.Precpred(p.GetParserRuleContext(), 4)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 4)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 6)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 6)", "")) goto errorExit } { - p.SetState(125) + p.SetState(129) p.Match(PlanParserBOR) if p.HasError() { // Recognition error - abort rule @@ -3408,21 +3527,21 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(126) - p.expr(5) + p.SetState(130) + p.expr(7) } case 13: localctx = NewLogicalAndContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(127) + p.SetState(131) - if !(p.Precpred(p.GetParserRuleContext(), 3)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 3)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 5)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 5)", "")) goto errorExit } { - p.SetState(128) + p.SetState(132) p.Match(PlanParserAND) if p.HasError() { // Recognition error - abort rule @@ -3430,21 +3549,21 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(129) - p.expr(4) + p.SetState(133) + p.expr(6) } case 14: localctx = NewLogicalOrContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(130) + p.SetState(134) - if !(p.Precpred(p.GetParserRuleContext(), 2)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 2)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 4)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 4)", "")) goto errorExit } { - p.SetState(131) + p.SetState(135) p.Match(PlanParserOR) if p.HasError() { // Recognition error - abort rule @@ -3452,21 +3571,21 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(132) - p.expr(3) + p.SetState(136) + p.expr(5) } case 15: localctx = NewLikeContext(p, NewExprContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, PlanParserRULE_expr) - p.SetState(133) + p.SetState(137) - if !(p.Precpred(p.GetParserRuleContext(), 23)) { - p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 23)", "")) + if !(p.Precpred(p.GetParserRuleContext(), 25)) { + p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 25)", "")) goto errorExit } { - p.SetState(134) + p.SetState(138) p.Match(PlanParserLIKE) if p.HasError() { // Recognition error - abort rule @@ -3474,7 +3593,7 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } { - p.SetState(135) + p.SetState(139) p.Match(PlanParserStringLiteral) if p.HasError() { // Recognition error - abort rule @@ -3487,7 +3606,7 @@ func (p *PlanParser) expr(_p int) (localctx IExprContext) { } } - p.SetState(140) + p.SetState(144) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3528,49 +3647,49 @@ func (p *PlanParser) Sempred(localctx antlr.RuleContext, ruleIndex, predIndex in func (p *PlanParser) Expr_Sempred(localctx antlr.RuleContext, predIndex int) bool { switch predIndex { case 0: - return p.Precpred(p.GetParserRuleContext(), 21) + return p.Precpred(p.GetParserRuleContext(), 23) case 1: - return p.Precpred(p.GetParserRuleContext(), 19) + return p.Precpred(p.GetParserRuleContext(), 21) case 2: - return p.Precpred(p.GetParserRuleContext(), 18) + return p.Precpred(p.GetParserRuleContext(), 20) case 3: - return p.Precpred(p.GetParserRuleContext(), 17) + return p.Precpred(p.GetParserRuleContext(), 19) case 4: - return p.Precpred(p.GetParserRuleContext(), 16) + return p.Precpred(p.GetParserRuleContext(), 18) case 5: - return p.Precpred(p.GetParserRuleContext(), 10) + return p.Precpred(p.GetParserRuleContext(), 12) case 6: - return p.Precpred(p.GetParserRuleContext(), 9) + return p.Precpred(p.GetParserRuleContext(), 11) case 7: - return p.Precpred(p.GetParserRuleContext(), 8) + return p.Precpred(p.GetParserRuleContext(), 10) case 8: - return p.Precpred(p.GetParserRuleContext(), 7) + return p.Precpred(p.GetParserRuleContext(), 9) case 9: - return p.Precpred(p.GetParserRuleContext(), 6) + return p.Precpred(p.GetParserRuleContext(), 8) case 10: - return p.Precpred(p.GetParserRuleContext(), 5) + return p.Precpred(p.GetParserRuleContext(), 7) case 11: - return p.Precpred(p.GetParserRuleContext(), 4) + return p.Precpred(p.GetParserRuleContext(), 6) case 12: - return p.Precpred(p.GetParserRuleContext(), 3) + return p.Precpred(p.GetParserRuleContext(), 5) case 13: - return p.Precpred(p.GetParserRuleContext(), 2) + return p.Precpred(p.GetParserRuleContext(), 4) case 14: - return p.Precpred(p.GetParserRuleContext(), 23) + return p.Precpred(p.GetParserRuleContext(), 25) default: panic("No predicate with index: " + fmt.Sprint(predIndex)) diff --git a/internal/parser/planparserv2/generated/plan_visitor.go b/internal/parser/planparserv2/generated/plan_visitor.go index d62ade6de018b..29f923ab1fc36 100644 --- a/internal/parser/planparserv2/generated/plan_visitor.go +++ b/internal/parser/planparserv2/generated/plan_visitor.go @@ -25,6 +25,9 @@ type PlanVisitor interface { // Visit a parse tree produced by PlanParser#LogicalOr. VisitLogicalOr(ctx *LogicalOrContext) interface{} + // Visit a parse tree produced by PlanParser#IsNotNull. + VisitIsNotNull(ctx *IsNotNullContext) interface{} + // Visit a parse tree produced by PlanParser#MulDivMod. VisitMulDivMod(ctx *MulDivModContext) interface{} @@ -103,6 +106,9 @@ type PlanVisitor interface { // Visit a parse tree produced by PlanParser#BitAnd. VisitBitAnd(ctx *BitAndContext) interface{} + // Visit a parse tree produced by PlanParser#IsNull. + VisitIsNull(ctx *IsNullContext) interface{} + // Visit a parse tree produced by PlanParser#Power. VisitPower(ctx *PowerContext) interface{} } diff --git a/internal/parser/planparserv2/parser_visitor.go b/internal/parser/planparserv2/parser_visitor.go index f9f3c0f7be784..9da5075f67c49 100644 --- a/internal/parser/planparserv2/parser_visitor.go +++ b/internal/parser/planparserv2/parser_visitor.go @@ -51,6 +51,7 @@ func (v *ParserVisitor) translateIdentifier(identifier string) (*ExprWithType, e IsPartitionKey: field.IsPartitionKey, IsClusteringKey: field.IsClusteringKey, ElementType: field.GetElementType(), + Nullable: field.GetNullable(), }, }, }, @@ -1180,6 +1181,46 @@ func (v *ParserVisitor) VisitEmptyArray(ctx *parser.EmptyArrayContext) interface } } +func (v *ParserVisitor) VisitIsNotNull(ctx *parser.IsNotNullContext) interface{} { + column, err := v.translateIdentifier(ctx.Identifier().GetText()) + if err != nil { + return err + } + + expr := &planpb.Expr{ + Expr: &planpb.Expr_NullExpr{ + NullExpr: &planpb.NullExpr{ + ColumnInfo: toColumnInfo(column), + Op: planpb.NullExpr_IsNotNull, + }, + }, + } + return &ExprWithType{ + expr: expr, + dataType: schemapb.DataType_Bool, + } +} + +func (v *ParserVisitor) VisitIsNull(ctx *parser.IsNullContext) interface{} { + column, err := v.translateIdentifier(ctx.Identifier().GetText()) + if err != nil { + return err + } + + expr := &planpb.Expr{ + Expr: &planpb.Expr_NullExpr{ + NullExpr: &planpb.NullExpr{ + ColumnInfo: toColumnInfo(column), + Op: planpb.NullExpr_IsNull, + }, + }, + } + return &ExprWithType{ + expr: expr, + dataType: schemapb.DataType_Bool, + } +} + func (v *ParserVisitor) VisitJSONContains(ctx *parser.JSONContainsContext) interface{} { field := ctx.Expr(0).Accept(v) if err := getError(field); err != nil { diff --git a/internal/parser/planparserv2/plan_parser_v2_test.go b/internal/parser/planparserv2/plan_parser_v2_test.go index b3f7056ff80bc..50b3447dd86f3 100644 --- a/internal/parser/planparserv2/plan_parser_v2_test.go +++ b/internal/parser/planparserv2/plan_parser_v2_test.go @@ -16,7 +16,7 @@ import ( "github.com/milvus-io/milvus/pkg/util/typeutil" ) -func newTestSchema() *schemapb.CollectionSchema { +func newTestSchema(EnableDynamicField bool) *schemapb.CollectionSchema { fields := []*schemapb.FieldSchema{ {FieldID: 0, Name: "FieldID", IsPrimaryKey: false, Description: "field no.1", DataType: schemapb.DataType_Int64}, } @@ -31,10 +31,13 @@ func newTestSchema() *schemapb.CollectionSchema { } fields = append(fields, newField) } - fields = append(fields, &schemapb.FieldSchema{ - FieldID: 130, Name: common.MetaFieldName, IsPrimaryKey: false, Description: "dynamic field", DataType: schemapb.DataType_JSON, - IsDynamic: true, - }) + if EnableDynamicField { + fields = append(fields, &schemapb.FieldSchema{ + FieldID: 130, Name: common.MetaFieldName, IsPrimaryKey: false, Description: "dynamic field", DataType: schemapb.DataType_JSON, + IsDynamic: true, + }) + } + fields = append(fields, &schemapb.FieldSchema{ FieldID: 131, Name: "StringArrayField", IsPrimaryKey: false, Description: "string array field", DataType: schemapb.DataType_Array, @@ -46,12 +49,12 @@ func newTestSchema() *schemapb.CollectionSchema { Description: "schema for test used", AutoID: true, Fields: fields, - EnableDynamicField: true, + EnableDynamicField: EnableDynamicField, } } func newTestSchemaHelper(t *testing.T) *typeutil.SchemaHelper { - schema := newTestSchema() + schema := newTestSchema(true) schemaHelper, err := typeutil.CreateSchemaHelper(schema) require.NoError(t, err) return schemaHelper @@ -71,7 +74,7 @@ func assertInvalidExpr(t *testing.T, helper *typeutil.SchemaHelper, exprStr stri } func TestExpr_Term(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -105,7 +108,7 @@ func TestExpr_Term(t *testing.T) { } func TestExpr_Call(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -142,7 +145,7 @@ func TestExpr_Call(t *testing.T) { } func TestExpr_Compare(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -162,7 +165,7 @@ func TestExpr_Compare(t *testing.T) { } func TestExpr_UnaryRange(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -185,7 +188,7 @@ func TestExpr_UnaryRange(t *testing.T) { } func TestExpr_Like(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -211,7 +214,7 @@ func TestExpr_Like(t *testing.T) { } func TestExpr_TextMatch(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -231,8 +234,51 @@ func TestExpr_TextMatch(t *testing.T) { } } +func TestExpr_IsNull(t *testing.T) { + schema := newTestSchema(false) + schema.EnableDynamicField = false + helper, err := typeutil.CreateSchemaHelper(schema) + assert.NoError(t, err) + + exprStrs := []string{ + `VarCharField is null`, + `VarCharField IS NULL`, + } + for _, exprStr := range exprStrs { + assertValidExpr(t, helper, exprStr) + } + + unsupported := []string{ + `not_exist is null`, + } + for _, exprStr := range unsupported { + assertInvalidExpr(t, helper, exprStr) + } +} + +func TestExpr_IsNotNull(t *testing.T) { + schema := newTestSchema(false) + helper, err := typeutil.CreateSchemaHelper(schema) + assert.NoError(t, err) + + exprStrs := []string{ + `VarCharField is not null`, + `VarCharField IS NOT NULL`, + } + for _, exprStr := range exprStrs { + assertValidExpr(t, helper, exprStr) + } + + unsupported := []string{ + `not_exist is not null`, + } + for _, exprStr := range unsupported { + assertInvalidExpr(t, helper, exprStr) + } +} + func TestExpr_BinaryRange(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -275,7 +321,7 @@ func TestExpr_BinaryRange(t *testing.T) { } func TestExpr_castValue(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -297,7 +343,7 @@ func TestExpr_castValue(t *testing.T) { } func TestExpr_BinaryArith(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -333,7 +379,7 @@ func TestExpr_BinaryArith(t *testing.T) { } func TestExpr_Value(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -354,7 +400,7 @@ func TestExpr_Value(t *testing.T) { } func TestExpr_Identifier(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -381,7 +427,7 @@ func TestExpr_Identifier(t *testing.T) { } func TestExpr_Constant(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -453,7 +499,7 @@ func TestExpr_Constant(t *testing.T) { } func TestExpr_Combinations(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -521,7 +567,7 @@ func TestCreateSparseFloatVectorSearchPlan(t *testing.T) { } func TestExpr_Invalid(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) helper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -713,7 +759,7 @@ func (l *errorListenerTest) Error() error { } func Test_FixErrorListenerNotRemoved(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) schemaHelper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -728,7 +774,7 @@ func Test_FixErrorListenerNotRemoved(t *testing.T) { } func Test_handleExpr(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) schemaHelper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -739,7 +785,7 @@ func Test_handleExpr(t *testing.T) { } func Test_handleExpr_empty(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) schemaHelper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) @@ -750,7 +796,7 @@ func Test_handleExpr_empty(t *testing.T) { // test if handleExpr is thread-safe. func Test_handleExpr_17126_26662(t *testing.T) { - schema := newTestSchema() + schema := newTestSchema(true) schemaHelper, err := typeutil.CreateSchemaHelper(schema) assert.NoError(t, err) normal := `VarCharField == "abcd\"defg"` @@ -1124,6 +1170,8 @@ c'`, } } +// todo add null test + func Test_JSONContainsAll(t *testing.T) { schema := newTestSchemaHelper(t) expr := "" @@ -1373,7 +1421,7 @@ func TestConcurrency(t *testing.T) { } func BenchmarkPlanCache(b *testing.B) { - schema := newTestSchema() + schema := newTestSchema(true) schemaHelper, err := typeutil.CreateSchemaHelper(schema) require.NoError(b, err) @@ -1409,7 +1457,7 @@ func randomChineseString(length int) string { } func BenchmarkWithString(b *testing.B) { - schema := newTestSchema() + schema := newTestSchema(true) schemaHelper, err := typeutil.CreateSchemaHelper(schema) require.NoError(b, err) @@ -1448,7 +1496,7 @@ func Test_convertHanToASCII(t *testing.T) { } func BenchmarkTemplateWithString(b *testing.B) { - schema := newTestSchema() + schema := newTestSchema(true) schemaHelper, err := typeutil.CreateSchemaHelper(schema) require.NoError(b, err) diff --git a/internal/parser/planparserv2/show_visitor.go b/internal/parser/planparserv2/show_visitor.go index 436175ee93b76..f109d87e021f5 100644 --- a/internal/parser/planparserv2/show_visitor.go +++ b/internal/parser/planparserv2/show_visitor.go @@ -16,6 +16,7 @@ func extractColumnInfo(info *planpb.ColumnInfo) interface{} { js["data_type"] = info.GetDataType().String() js["auto_id"] = info.GetIsAutoID() js["is_pk"] = info.GetIsPrimaryKey() + js["nullable"] = info.GetNullable() return js } @@ -64,6 +65,8 @@ func (v *ShowExprVisitor) VisitExpr(expr *planpb.Expr) interface{} { js["expr"] = v.VisitValueExpr(realExpr.ValueExpr) case *planpb.Expr_ColumnExpr: js["expr"] = v.VisitColumnExpr(realExpr.ColumnExpr) + case *planpb.Expr_NullExpr: + js["expr"] = v.VisitNullExpr(realExpr.NullExpr) default: js["expr"] = "" } @@ -172,6 +175,14 @@ func (v *ShowExprVisitor) VisitColumnExpr(expr *planpb.ColumnExpr) interface{} { return js } +func (v *ShowExprVisitor) VisitNullExpr(expr *planpb.NullExpr) interface{} { + js := make(map[string]interface{}) + js["expr_type"] = "null" + js["op"] = expr.Op.String() + js["column_info"] = extractColumnInfo(expr.GetColumnInfo()) + return js +} + func NewShowExprVisitor() LogicalExprVisitor { return &ShowExprVisitor{} } diff --git a/internal/proto/plan.proto b/internal/proto/plan.proto index b0b2846b7948d..4ece80186fb26 100644 --- a/internal/proto/plan.proto +++ b/internal/proto/plan.proto @@ -85,6 +85,7 @@ message ColumnInfo { bool is_partition_key = 6; schema.DataType element_type = 7; bool is_clustering_key = 8; + bool nullable = 9; } message ColumnExpr { @@ -153,6 +154,16 @@ message JSONContainsExpr { string template_variable_name = 5; } +message NullExpr { + ColumnInfo column_info = 1; + enum NullOp { + Invalid = 0; + IsNull = 1; + IsNotNull = 2; + } + NullOp op = 2; +} + message UnaryExpr { enum UnaryOp { Invalid = 0; @@ -213,6 +224,7 @@ message Expr { AlwaysTrueExpr always_true_expr = 12; JSONContainsExpr json_contains_expr = 13; CallExpr call_expr = 14; + NullExpr null_expr = 15; }; bool is_template = 20; } From d3a5282eaa1ea9cb04a35b7ccca73e26c67a368a Mon Sep 17 00:00:00 2001 From: Patrick Weizhi Xu Date: Thu, 2 Jan 2025 14:42:53 +0800 Subject: [PATCH 51/69] enhance: add param for tuning max VARCHAR length and restore limit to 65535 (#38884) issue: #38882 Signed-off-by: Patrick Weizhi Xu (cherry picked from commit 8e740e004151dd2c11918aad2857c1c8d1bd98f5) --- internal/proxy/task.go | 5 +++-- internal/proxy/util.go | 6 +++--- pkg/util/paramtable/component_param.go | 9 +++++++++ tests/go_client/common/consts.go | 2 +- tests/go_client/testcases/collection_test.go | 4 ++-- tests/python_client/testcases/test_collection.py | 6 +++--- 6 files changed, 21 insertions(+), 11 deletions(-) diff --git a/internal/proxy/task.go b/internal/proxy/task.go index 8cbfacf9c2d1f..786e2171eb1f4 100644 --- a/internal/proxy/task.go +++ b/internal/proxy/task.go @@ -1256,8 +1256,9 @@ func (t *alterCollectionFieldTask) PreExecute(ctx context.Context) error { return merr.WrapErrParameterInvalid("%s should be an integer, but got %T", prop.Key, prop.Value) } - if value > defaultMaxVarCharLength { - return merr.WrapErrParameterInvalid("%s exceeds the maximum allowed value 1048576", prop.Value) + defaultMaxVarCharLength := Params.ProxyCfg.MaxVarCharLength.GetAsInt64() + if int64(value) > defaultMaxVarCharLength { + return merr.WrapErrParameterInvalidMsg("%s exceeds the maximum allowed value %s", prop.Value, strconv.FormatInt(defaultMaxVarCharLength, 10)) } } } diff --git a/internal/proxy/util.go b/internal/proxy/util.go index bf7ae45b09ee8..1a5bb46265118 100644 --- a/internal/proxy/util.go +++ b/internal/proxy/util.go @@ -63,8 +63,6 @@ const ( // enableMultipleVectorFields indicates whether to enable multiple vector fields. enableMultipleVectorFields = true - defaultMaxVarCharLength = 1048576 - defaultMaxArrayCapacity = 4096 defaultMaxSearchRequest = 1024 @@ -363,8 +361,10 @@ func validateMaxLengthPerRow(collectionName string, field *schemapb.FieldSchema) if err != nil { return err } + + defaultMaxVarCharLength := Params.ProxyCfg.MaxVarCharLength.GetAsInt64() if maxLengthPerRow > defaultMaxVarCharLength || maxLengthPerRow <= 0 { - return merr.WrapErrParameterInvalidMsg("the maximum length specified for a VarChar should be in (0, 1048576]") + return merr.WrapErrParameterInvalidMsg("the maximum length specified for a VarChar should be in (0, %d]", defaultMaxVarCharLength) } exist = true } diff --git a/pkg/util/paramtable/component_param.go b/pkg/util/paramtable/component_param.go index cc81bc5cf7540..4aeb628d3e57a 100644 --- a/pkg/util/paramtable/component_param.go +++ b/pkg/util/paramtable/component_param.go @@ -1304,6 +1304,7 @@ type proxyConfig struct { SkipAutoIDCheck ParamItem `refreshable:"true"` SkipPartitionKeyCheck ParamItem `refreshable:"true"` EnablePublicPrivilege ParamItem `refreshable:"false"` + MaxVarCharLength ParamItem `refreshable:"false"` AccessLog AccessLogConfig @@ -1716,6 +1717,14 @@ please adjust in embedded Milvus: false`, } p.EnablePublicPrivilege.Init(base.mgr) + p.MaxVarCharLength = ParamItem{ + Key: "proxy.maxVarCharLength", + Version: "2.4.19", // hotfix + DefaultValue: strconv.Itoa(65535), // 64K + Doc: "maximum number of characters for a varchar field; this value is overridden by the value in a pre-existing schema if applicable", + } + p.MaxVarCharLength.Init(base.mgr) + p.GracefulStopTimeout = ParamItem{ Key: "proxy.gracefulStopTimeout", Version: "2.3.7", diff --git a/tests/go_client/common/consts.go b/tests/go_client/common/consts.go index 5162b0917dcf5..91a6df94fb219 100644 --- a/tests/go_client/common/consts.go +++ b/tests/go_client/common/consts.go @@ -57,7 +57,7 @@ const ( DefaultRgName = "__default_resource_group" DefaultDb = "default" MaxDim = 32768 - MaxLength = int64(1048576) + MaxLength = int64(65535) MaxCollectionNameLen = 255 DefaultRgCapacity = 1000000 RetentionDuration = 40 // common.retentionDuration diff --git a/tests/go_client/testcases/collection_test.go b/tests/go_client/testcases/collection_test.go index 248206c56e269..e5e009bb2b7a9 100644 --- a/tests/go_client/testcases/collection_test.go +++ b/tests/go_client/testcases/collection_test.go @@ -836,7 +836,7 @@ func TestCreateVarcharArrayInvalidLength(t *testing.T) { for _, invalidLength := range []int64{-1, 0, common.MaxLength + 1} { arrayVarcharField.WithMaxLength(invalidLength) err := mc.CreateCollection(ctx, client.NewCreateCollectionOption(collName, schema)) - common.CheckErr(t, err, false, "the maximum length specified for a VarChar should be in (0, 1048576]") + common.CheckErr(t, err, false, "the maximum length specified for a VarChar should be in (0, 65535]") } } @@ -858,7 +858,7 @@ func TestCreateVarcharInvalidLength(t *testing.T) { for _, invalidLength := range []int64{-1, 0, common.MaxLength + 1} { varcharField.WithMaxLength(invalidLength) err := mc.CreateCollection(ctx, client.NewCreateCollectionOption(collName, schema)) - common.CheckErr(t, err, false, "the maximum length specified for a VarChar should be in (0, 1048576]") + common.CheckErr(t, err, false, "the maximum length specified for a VarChar should be in (0, 65535]") } } diff --git a/tests/python_client/testcases/test_collection.py b/tests/python_client/testcases/test_collection.py index 5cf191ee55f74..7e5aeb18474c4 100644 --- a/tests/python_client/testcases/test_collection.py +++ b/tests/python_client/testcases/test_collection.py @@ -3875,10 +3875,10 @@ def test_collection_string_field_with_exceed_max_len(self): c_name = cf.gen_unique_str(prefix) int_field = cf.gen_int64_field(is_primary=True) vec_field = cf.gen_float_vec_field() - max_length = 1048576 + 1 + max_length = 65535 + 1 string_field = cf.gen_string_field(max_length=max_length) schema = cf.gen_collection_schema([int_field, string_field, vec_field]) - error = {ct.err_code: 1048576, ct.err_msg: "the maximum length specified for a VarChar should be in (0, 1048576]"} + error = {ct.err_code: 65535, ct.err_msg: "the maximum length specified for a VarChar should be in (0, 65535]"} self.collection_wrap.init_collection(name=c_name, schema=schema, check_task=CheckTasks.err_res, check_items=error) @@ -4117,7 +4117,7 @@ def test_collection_string_array_max_length_invalid(self, max_length): self.init_collection_wrap(schema=array_schema, check_task=CheckTasks.err_res, check_items={ct.err_code: 65535, ct.err_msg: "the maximum length specified for a VarChar " - "should be in (0, 1048576]"}) + "should be in (0, 65535]"}) @pytest.mark.tags(CaseLabel.L2) def test_collection_array_field_all_datatype(self): From aa0a87eda728cb46cf777ab6ee1f7753de507577 Mon Sep 17 00:00:00 2001 From: Bingyi Sun Date: Thu, 2 Jan 2025 15:04:58 +0800 Subject: [PATCH 52/69] fix: Block warmup submit if pool full in sync mode (#38690) https://github.com/milvus-io/milvus/issues/38692 --------- Signed-off-by: sunby --- internal/core/src/common/ChunkTarget.cpp | 1 + .../querynodev2/delegator/delegator_data.go | 1 + internal/querynodev2/segments/manager_test.go | 1 + internal/querynodev2/segments/pool.go | 2 +- .../querynodev2/segments/retrieve_test.go | 2 + internal/querynodev2/segments/search_test.go | 2 + internal/querynodev2/segments/segment.go | 67 +++++++++++++++++-- .../querynodev2/segments/segment_loader.go | 7 ++ .../segments/segment_loader_test.go | 6 +- internal/querynodev2/segments/segment_test.go | 24 +++++++ internal/querynodev2/server.go | 2 +- internal/querynodev2/server_test.go | 1 + 12 files changed, 106 insertions(+), 10 deletions(-) diff --git a/internal/core/src/common/ChunkTarget.cpp b/internal/core/src/common/ChunkTarget.cpp index 495fa910c75d9..f08a8ebb8584d 100644 --- a/internal/core/src/common/ChunkTarget.cpp +++ b/internal/core/src/common/ChunkTarget.cpp @@ -102,6 +102,7 @@ MmapChunkTarget::get() { write(padding, padding_size); flush(); + file_.FFlush(); auto m = mmap( nullptr, size_, PROT_READ, MAP_SHARED, file_.Descriptor(), offset_); diff --git a/internal/querynodev2/delegator/delegator_data.go b/internal/querynodev2/delegator/delegator_data.go index b21d7784ac616..586f56f2d6794 100644 --- a/internal/querynodev2/delegator/delegator_data.go +++ b/internal/querynodev2/delegator/delegator_data.go @@ -116,6 +116,7 @@ func (sd *shardDelegator) ProcessInsert(insertRecords map[int64]*InsertData) { DeltaPosition: insertData.StartPosition, Level: datapb.SegmentLevel_L1, }, + nil, ) if err != nil { log.Error("failed to create new segment", diff --git a/internal/querynodev2/segments/manager_test.go b/internal/querynodev2/segments/manager_test.go index 7fc0851e16dfb..f9d6ba5a04e3c 100644 --- a/internal/querynodev2/segments/manager_test.go +++ b/internal/querynodev2/segments/manager_test.go @@ -66,6 +66,7 @@ func (s *ManagerSuite) SetupTest() { InsertChannel: s.channels[i], Level: s.levels[i], }, + nil, ) s.Require().NoError(err) s.segments = append(s.segments, segment) diff --git a/internal/querynodev2/segments/pool.go b/internal/querynodev2/segments/pool.go index 578a9c37ef423..ca9971caa93a4 100644 --- a/internal/querynodev2/segments/pool.go +++ b/internal/querynodev2/segments/pool.go @@ -142,7 +142,7 @@ func initWarmupPool() { runtime.LockOSThread() C.SetThreadName(cgoTagWarmup) }), // lock os thread for cgo thread disposal - conc.WithNonBlocking(true), // make warming up non blocking + conc.WithNonBlocking(false), ) warmupPool.Store(pool) diff --git a/internal/querynodev2/segments/retrieve_test.go b/internal/querynodev2/segments/retrieve_test.go index 3e12eb334b68a..0e9193cc1c144 100644 --- a/internal/querynodev2/segments/retrieve_test.go +++ b/internal/querynodev2/segments/retrieve_test.go @@ -98,6 +98,7 @@ func (suite *RetrieveSuite) SetupTest() { InsertChannel: fmt.Sprintf("by-dev-rootcoord-dml_0_%dv0", suite.collectionID), Level: datapb.SegmentLevel_Legacy, }, + nil, ) suite.Require().NoError(err) @@ -126,6 +127,7 @@ func (suite *RetrieveSuite) SetupTest() { InsertChannel: fmt.Sprintf("by-dev-rootcoord-dml_0_%dv0", suite.collectionID), Level: datapb.SegmentLevel_Legacy, }, + nil, ) suite.Require().NoError(err) diff --git a/internal/querynodev2/segments/search_test.go b/internal/querynodev2/segments/search_test.go index 11d003769a87e..f731b7f9817a7 100644 --- a/internal/querynodev2/segments/search_test.go +++ b/internal/querynodev2/segments/search_test.go @@ -88,6 +88,7 @@ func (suite *SearchSuite) SetupTest() { InsertChannel: fmt.Sprintf("by-dev-rootcoord-dml_0_%dv0", suite.collectionID), Level: datapb.SegmentLevel_Legacy, }, + nil, ) suite.Require().NoError(err) @@ -116,6 +117,7 @@ func (suite *SearchSuite) SetupTest() { InsertChannel: fmt.Sprintf("by-dev-rootcoord-dml_0_%dv0", suite.collectionID), Level: datapb.SegmentLevel_Legacy, }, + nil, ) suite.Require().NoError(err) diff --git a/internal/querynodev2/segments/segment.go b/internal/querynodev2/segments/segment.go index dab60442b3f41..6546cee1e3cb0 100644 --- a/internal/querynodev2/segments/segment.go +++ b/internal/querynodev2/segments/segment.go @@ -30,6 +30,7 @@ import ( "context" "fmt" "strings" + "sync" "time" "unsafe" @@ -279,6 +280,7 @@ type LocalSegment struct { lastDeltaTimestamp *atomic.Uint64 fields *typeutil.ConcurrentMap[int64, *FieldInfo] fieldIndexes *typeutil.ConcurrentMap[int64, *IndexedFieldInfo] + warmupDispatcher *AsyncWarmupDispatcher } func NewSegment(ctx context.Context, @@ -286,6 +288,7 @@ func NewSegment(ctx context.Context, segmentType SegmentType, version int64, loadInfo *querypb.SegmentLoadInfo, + warmupDispatcher *AsyncWarmupDispatcher, ) (Segment, error) { log := log.Ctx(ctx) /* @@ -345,9 +348,10 @@ func NewSegment(ctx context.Context, fields: typeutil.NewConcurrentMap[int64, *FieldInfo](), fieldIndexes: typeutil.NewConcurrentMap[int64, *IndexedFieldInfo](), - memSize: atomic.NewInt64(-1), - rowNum: atomic.NewInt64(-1), - insertCount: atomic.NewInt64(0), + memSize: atomic.NewInt64(-1), + rowNum: atomic.NewInt64(-1), + insertCount: atomic.NewInt64(0), + warmupDispatcher: warmupDispatcher, } if err := segment.initializeSegment(); err != nil { @@ -1157,7 +1161,7 @@ func (s *LocalSegment) WarmupChunkCache(ctx context.Context, fieldID int64, mmap return nil, nil }).Await() case "async": - GetWarmupPool().Submit(func() (any, error) { + task := func() (any, error) { // bad implemtation, warmup is async at another goroutine and hold the rlock. // the state transition of segment in segment loader will blocked. // add a waiter to avoid it. @@ -1176,7 +1180,8 @@ func (s *LocalSegment) WarmupChunkCache(ctx context.Context, fieldID int64, mmap } log.Info("warming up chunk cache asynchronously done") return nil, nil - }) + } + s.warmupDispatcher.AddTask(task) default: // no warming up } @@ -1347,3 +1352,55 @@ func (s *LocalSegment) indexNeedLoadRawData(schema *schemapb.CollectionSchema, i } return !typeutil.IsVectorType(fieldSchema.DataType) && s.HasRawData(indexInfo.IndexInfo.FieldID), nil } + +type ( + WarmupTask = func() (any, error) + AsyncWarmupDispatcher struct { + mu sync.RWMutex + tasks []WarmupTask + notify chan struct{} + } +) + +func NewWarmupDispatcher() *AsyncWarmupDispatcher { + return &AsyncWarmupDispatcher{ + notify: make(chan struct{}, 1), + } +} + +func (d *AsyncWarmupDispatcher) AddTask(task func() (any, error)) { + d.mu.Lock() + d.tasks = append(d.tasks, task) + d.mu.Unlock() + select { + case d.notify <- struct{}{}: + default: + } +} + +func (d *AsyncWarmupDispatcher) Run(ctx context.Context) { + for { + select { + case <-ctx.Done(): + return + case <-d.notify: + d.mu.RLock() + tasks := make([]WarmupTask, len(d.tasks)) + copy(tasks, d.tasks) + d.mu.RUnlock() + + for _, task := range tasks { + select { + case <-ctx.Done(): + return + default: + GetDynamicPool().Submit(task) + } + } + + d.mu.Lock() + d.tasks = d.tasks[len(tasks):] + d.mu.Unlock() + } + } +} diff --git a/internal/querynodev2/segments/segment_loader.go b/internal/querynodev2/segments/segment_loader.go index 6e883ab30781a..390f4a460d6ef 100644 --- a/internal/querynodev2/segments/segment_loader.go +++ b/internal/querynodev2/segments/segment_loader.go @@ -147,6 +147,7 @@ type resourceEstimateFactor struct { } func NewLoader( + ctx context.Context, manager *Manager, cm storage.ChunkManager, ) *segmentLoader { @@ -167,11 +168,14 @@ func NewLoader( log.Info("SegmentLoader created", zap.Int("ioPoolSize", ioPoolSize)) + warmupDispatcher := NewWarmupDispatcher() + go warmupDispatcher.Run(ctx) loader := &segmentLoader{ manager: manager, cm: cm, loadingSegments: typeutil.NewConcurrentMap[int64, *loadResult](), committedResourceNotifier: syncutil.NewVersionedNotifier(), + warmupDispatcher: warmupDispatcher, } return loader @@ -212,6 +216,8 @@ type segmentLoader struct { loadingSegments *typeutil.ConcurrentMap[int64, *loadResult] committedResource LoadResource committedResourceNotifier *syncutil.VersionedNotifier + + warmupDispatcher *AsyncWarmupDispatcher } var _ Loader = (*segmentLoader)(nil) @@ -294,6 +300,7 @@ func (loader *segmentLoader) Load(ctx context.Context, segmentType, version, loadInfo, + loader.warmupDispatcher, ) if err != nil { log.Warn("load segment failed when create new segment", diff --git a/internal/querynodev2/segments/segment_loader_test.go b/internal/querynodev2/segments/segment_loader_test.go index 4b87d4a182afc..0c888c73b5ba7 100644 --- a/internal/querynodev2/segments/segment_loader_test.go +++ b/internal/querynodev2/segments/segment_loader_test.go @@ -81,7 +81,7 @@ func (suite *SegmentLoaderSuite) SetupTest() { // Dependencies suite.manager = NewManager() - suite.loader = NewLoader(suite.manager, suite.chunkManager) + suite.loader = NewLoader(ctx, suite.manager, suite.chunkManager) initcore.InitRemoteChunkManager(paramtable.Get()) // Data @@ -98,7 +98,7 @@ func (suite *SegmentLoaderSuite) SetupTest() { func (suite *SegmentLoaderSuite) SetupBM25() { // Dependencies suite.manager = NewManager() - suite.loader = NewLoader(suite.manager, suite.chunkManager) + suite.loader = NewLoader(context.Background(), suite.manager, suite.chunkManager) initcore.InitRemoteChunkManager(paramtable.Get()) suite.schema = mock_segcore.GenTestBM25CollectionSchema("test") @@ -798,7 +798,7 @@ func (suite *SegmentLoaderDetailSuite) SetupTest() { ctx := context.Background() chunkManagerFactory := storage.NewTestChunkManagerFactory(paramtable.Get(), suite.rootPath) suite.chunkManager, _ = chunkManagerFactory.NewPersistentStorageChunkManager(ctx) - suite.loader = NewLoader(suite.manager, suite.chunkManager) + suite.loader = NewLoader(ctx, suite.manager, suite.chunkManager) initcore.InitRemoteChunkManager(paramtable.Get()) // Data diff --git a/internal/querynodev2/segments/segment_test.go b/internal/querynodev2/segments/segment_test.go index f35a2d513a0f5..42188cc42f74c 100644 --- a/internal/querynodev2/segments/segment_test.go +++ b/internal/querynodev2/segments/segment_test.go @@ -5,8 +5,11 @@ import ( "fmt" "path/filepath" "testing" + "time" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" + "go.uber.org/atomic" "github.com/milvus-io/milvus-proto/go-api/v2/schemapb" "github.com/milvus-io/milvus/internal/mocks/util/mock_segcore" @@ -91,6 +94,7 @@ func (suite *SegmentSuite) SetupTest() { }, }, }, + nil, ) suite.Require().NoError(err) @@ -122,6 +126,7 @@ func (suite *SegmentSuite) SetupTest() { InsertChannel: fmt.Sprintf("by-dev-rootcoord-dml_0_%dv0", suite.collectionID), Level: datapb.SegmentLevel_Legacy, }, + nil, ) suite.Require().NoError(err) @@ -222,3 +227,22 @@ func (suite *SegmentSuite) TestSegmentReleased() { func TestSegment(t *testing.T) { suite.Run(t, new(SegmentSuite)) } + +func TestWarmupDispatcher(t *testing.T) { + d := NewWarmupDispatcher() + ctx := context.Background() + go d.Run(ctx) + + completed := atomic.NewInt64(0) + taskCnt := 10000 + for i := 0; i < taskCnt; i++ { + d.AddTask(func() (any, error) { + completed.Inc() + return nil, nil + }) + } + + assert.Eventually(t, func() bool { + return completed.Load() == int64(taskCnt) + }, 10*time.Second, time.Second) +} diff --git a/internal/querynodev2/server.go b/internal/querynodev2/server.go index fd331a6bdfa0b..d9cbae89b13a7 100644 --- a/internal/querynodev2/server.go +++ b/internal/querynodev2/server.go @@ -369,7 +369,7 @@ func (node *QueryNode) Init() error { node.subscribingChannels = typeutil.NewConcurrentSet[string]() node.unsubscribingChannels = typeutil.NewConcurrentSet[string]() node.manager = segments.NewManager() - node.loader = segments.NewLoader(node.manager, node.chunkManager) + node.loader = segments.NewLoader(node.ctx, node.manager, node.chunkManager) node.manager.SetLoader(node.loader) node.dispClient = msgdispatcher.NewClient(node.factory, typeutil.QueryNodeRole, node.GetNodeID()) // init pipeline manager diff --git a/internal/querynodev2/server_test.go b/internal/querynodev2/server_test.go index 6800e9c4c8c0f..a6ea597b1875c 100644 --- a/internal/querynodev2/server_test.go +++ b/internal/querynodev2/server_test.go @@ -236,6 +236,7 @@ func (suite *QueryNodeSuite) TestStop() { Level: datapb.SegmentLevel_Legacy, InsertChannel: fmt.Sprintf("by-dev-rootcoord-dml_0_%dv0", 1), }, + nil, ) suite.NoError(err) suite.node.manager.Segment.Put(context.Background(), segments.SegmentTypeSealed, segment) From d9ebb70b10eb378a505a22d04f229cd06d54202f Mon Sep 17 00:00:00 2001 From: Gao Date: Fri, 3 Jan 2025 10:04:54 +0800 Subject: [PATCH 53/69] fix: search req transfer correctly (#38955) issue: #37899 Signed-off-by: chasingegg --- internal/querynodev2/delegator/delegator.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/querynodev2/delegator/delegator.go b/internal/querynodev2/delegator/delegator.go index beef7c85b1ab4..1e65a31b72cd4 100644 --- a/internal/querynodev2/delegator/delegator.go +++ b/internal/querynodev2/delegator/delegator.go @@ -243,6 +243,7 @@ func (sd *shardDelegator) shallowCopySearchRequest(req *internalpb.SearchRequest GroupSize: req.GroupSize, FieldId: req.FieldId, IsTopkReduce: req.IsTopkReduce, + IsRecallEvaluation: req.IsRecallEvaluation, } return nodeReq From e6bf141e0bd34b6873f5103a571721034e6939b1 Mon Sep 17 00:00:00 2001 From: sre-ci-robot <56469371+sre-ci-robot@users.noreply.github.com> Date: Fri, 3 Jan 2025 10:56:55 +0800 Subject: [PATCH 54/69] [automated] Bump milvus version to v2.5.2 (#38959) Bump milvus version to v2.5.2 Signed-off-by: sre-ci-robot sre-ci-robot@users.noreply.github.com Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- scripts/standalone_embed.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/standalone_embed.sh b/scripts/standalone_embed.sh index dffa27ae858e3..f09117486e671 100755 --- a/scripts/standalone_embed.sh +++ b/scripts/standalone_embed.sh @@ -47,7 +47,7 @@ EOF --health-start-period=90s \ --health-timeout=20s \ --health-retries=3 \ - milvusdb/milvus:v2.5.1 \ + milvusdb/milvus:v2.5.2 \ milvus run standalone 1> /dev/null } From 80fefadf2764c19aeed34f05d69d3df8ca246c5e Mon Sep 17 00:00:00 2001 From: Zhen Ye Date: Fri, 3 Jan 2025 12:25:26 +0800 Subject: [PATCH 55/69] enhance: TestDeleteComplexExpr may failure because of timeout (#38935) issue: #33419 --------- Signed-off-by: chyezh --- tests/go_client/testcases/delete_test.go | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/tests/go_client/testcases/delete_test.go b/tests/go_client/testcases/delete_test.go index cdab8ed3febc1..0d77081fbb17e 100644 --- a/tests/go_client/testcases/delete_test.go +++ b/tests/go_client/testcases/delete_test.go @@ -2,6 +2,7 @@ package testcases import ( "fmt" + "sync" "testing" "time" @@ -434,8 +435,6 @@ func TestDeletePartitionName(t *testing.T) { // test delete ids field not pk int64 func TestDeleteComplexExpr(t *testing.T) { - t.Parallel() - type exprCount struct { expr string count int @@ -476,7 +475,13 @@ func TestDeleteComplexExpr(t *testing.T) { {expr: fmt.Sprintf("%s == [0, 1]", common.DefaultDoubleArrayField), count: 0}, // array == {expr: fmt.Sprintf("array_length(%s) == %d", common.DefaultDoubleArrayField, capacity), count: common.DefaultNb}, // array_length } - for _, exprLimit := range exprLimits { + ch := make(chan struct{}, 5) + wg := sync.WaitGroup{} + testFunc := func(exprLimit exprCount) { + defer func() { + wg.Done() + <-ch + }() ctx := hp.CreateContext(t, time.Second*common.DefaultTimeout*2) mc := createDefaultMilvusClient(ctx, t) @@ -503,6 +508,14 @@ func TestDeleteComplexExpr(t *testing.T) { common.CheckErr(t, err, true) require.Zero(t, resQuery.ResultCount) } + + for _, exprLimit := range exprLimits { + exprLimit := exprLimit + ch <- struct{}{} + wg.Add(1) + go testFunc(exprLimit) + } + wg.Wait() } func TestDeleteInvalidExpr(t *testing.T) { From d7623ab635823fce12e5eac423a0ffe55068b220 Mon Sep 17 00:00:00 2001 From: SimFG Date: Fri, 3 Jan 2025 12:36:54 +0800 Subject: [PATCH 56/69] enhance: extract the task step execution process (#38323) - issue: #38322 Signed-off-by: SimFG --- internal/rootcoord/alter_collection_task.go | 133 +++++-- internal/rootcoord/alter_database_task.go | 109 +++--- internal/rootcoord/create_collection_task.go | 79 ++-- internal/rootcoord/create_partition_task.go | 67 ++-- internal/rootcoord/drop_collection_task.go | 69 ++-- internal/rootcoord/drop_db_task.go | 22 +- internal/rootcoord/drop_partition_task.go | 81 ++-- internal/rootcoord/rbac_task.go | 369 +++++++++++++++++++ internal/rootcoord/root_coord.go | 310 +--------------- internal/rootcoord/task_test.go | 17 +- 10 files changed, 734 insertions(+), 522 deletions(-) create mode 100644 internal/rootcoord/rbac_task.go diff --git a/internal/rootcoord/alter_collection_task.go b/internal/rootcoord/alter_collection_task.go index dd875a8e5bb55..97dddc29312cf 100644 --- a/internal/rootcoord/alter_collection_task.go +++ b/internal/rootcoord/alter_collection_task.go @@ -66,39 +66,63 @@ func (a *alterCollectionTask) Execute(ctx context.Context) error { return err } - newColl := oldColl.Clone() + var newProperties []*commonpb.KeyValuePair if len(a.Req.Properties) > 0 { if ContainsKeyPairArray(a.Req.GetProperties(), oldColl.Properties) { log.Info("skip to alter collection due to no changes were detected in the properties", zap.Int64("collectionID", oldColl.CollectionID)) return nil } - newColl.Properties = MergeProperties(oldColl.Properties, a.Req.GetProperties()) + newProperties = MergeProperties(oldColl.Properties, a.Req.GetProperties()) } else if len(a.Req.DeleteKeys) > 0 { - newColl.Properties = DeleteProperties(oldColl.Properties, a.Req.GetDeleteKeys()) + newProperties = DeleteProperties(oldColl.Properties, a.Req.GetDeleteKeys()) } ts := a.GetTs() - redoTask := newBaseRedoTask(a.core.stepExecutor) + return executeAlterCollectionTaskSteps(ctx, a.core, oldColl, oldColl.Properties, newProperties, a.Req, ts) +} + +func (a *alterCollectionTask) GetLockerKey() LockerKey { + collection := a.core.getCollectionIDStr(a.ctx, a.Req.GetDbName(), a.Req.GetCollectionName(), a.Req.GetCollectionID()) + return NewLockerKeyChain( + NewClusterLockerKey(false), + NewDatabaseLockerKey(a.Req.GetDbName(), false), + NewCollectionLockerKey(collection, true), + ) +} + +func executeAlterCollectionTaskSteps(ctx context.Context, + core *Core, + col *model.Collection, + oldProperties []*commonpb.KeyValuePair, + newProperties []*commonpb.KeyValuePair, + request *milvuspb.AlterCollectionRequest, + ts Timestamp, +) error { + oldColl := col.Clone() + oldColl.Properties = oldProperties + newColl := col.Clone() + newColl.Properties = newProperties + redoTask := newBaseRedoTask(core.stepExecutor) redoTask.AddSyncStep(&AlterCollectionStep{ - baseStep: baseStep{core: a.core}, + baseStep: baseStep{core: core}, oldColl: oldColl, newColl: newColl, ts: ts, }) - a.Req.CollectionID = oldColl.CollectionID + request.CollectionID = oldColl.CollectionID redoTask.AddSyncStep(&BroadcastAlteredCollectionStep{ - baseStep: baseStep{core: a.core}, - req: a.Req, - core: a.core, + baseStep: baseStep{core: core}, + req: request, + core: core, }) // properties needs to be refreshed in the cache - aliases := a.core.meta.ListAliasesByID(ctx, oldColl.CollectionID) + aliases := core.meta.ListAliasesByID(ctx, oldColl.CollectionID) redoTask.AddSyncStep(&expireCacheStep{ - baseStep: baseStep{core: a.core}, - dbName: a.Req.GetDbName(), - collectionNames: append(aliases, a.Req.GetCollectionName()), + baseStep: baseStep{core: core}, + dbName: request.GetDbName(), + collectionNames: append(aliases, request.GetCollectionName()), collectionID: oldColl.CollectionID, opts: []proxyutil.ExpireCacheOpt{proxyutil.SetMsgType(commonpb.MsgType_AlterCollection)}, }) @@ -119,7 +143,7 @@ func (a *alterCollectionTask) Execute(ctx context.Context) error { zap.Strings("newResourceGroups", newResourceGroups), ) redoTask.AddAsyncStep(NewSimpleStep("", func(ctx context.Context) ([]nestedStep, error) { - resp, err := a.core.queryCoord.UpdateLoadConfig(ctx, &querypb.UpdateLoadConfigRequest{ + resp, err := core.queryCoord.UpdateLoadConfig(ctx, &querypb.UpdateLoadConfigRequest{ CollectionIDs: []int64{oldColl.CollectionID}, ReplicaNumber: int32(newReplicaNumber), ResourceGroups: newResourceGroups, @@ -165,22 +189,13 @@ func (a *alterCollectionTask) Execute(ctx context.Context) error { zap.String("database", newColl.DBName), zap.String("replicateID", replicateID), ) - return nil, a.core.chanTimeTick.broadcastDmlChannels(newColl.PhysicalChannelNames, msgPack) + return nil, core.chanTimeTick.broadcastDmlChannels(newColl.PhysicalChannelNames, msgPack) })) } return redoTask.Execute(ctx) } -func (a *alterCollectionTask) GetLockerKey() LockerKey { - collection := a.core.getCollectionIDStr(a.ctx, a.Req.GetDbName(), a.Req.GetCollectionName(), a.Req.GetCollectionID()) - return NewLockerKeyChain( - NewClusterLockerKey(false), - NewDatabaseLockerKey(a.Req.GetDbName(), false), - NewCollectionLockerKey(collection, true), - ) -} - func DeleteProperties(oldProps []*commonpb.KeyValuePair, deleteKeys []string) []*commonpb.KeyValuePair { propsMap := make(map[string]string) for _, prop := range oldProps { @@ -227,35 +242,66 @@ func (a *alterCollectionFieldTask) Execute(ctx context.Context) error { return err } - newColl := oldColl.Clone() - err = UpdateFieldProperties(newColl, a.Req.GetFieldName(), a.Req.GetProperties()) + oldFieldProperties, err := GetFieldProperties(oldColl, a.Req.GetFieldName()) if err != nil { + log.Warn("get field properties failed during changing collection state", zap.Error(err)) return err } ts := a.GetTs() - redoTask := newBaseRedoTask(a.core.stepExecutor) + return executeAlterCollectionFieldTaskSteps(ctx, a.core, oldColl, oldFieldProperties, a.Req, ts) +} + +func (a *alterCollectionFieldTask) GetLockerKey() LockerKey { + collection := a.core.getCollectionIDStr(a.ctx, a.Req.GetDbName(), a.Req.GetCollectionName(), 0) + return NewLockerKeyChain( + NewClusterLockerKey(false), + NewDatabaseLockerKey(a.Req.GetDbName(), false), + NewCollectionLockerKey(collection, true), + ) +} + +func executeAlterCollectionFieldTaskSteps(ctx context.Context, + core *Core, + col *model.Collection, + oldFieldProperties []*commonpb.KeyValuePair, + request *milvuspb.AlterCollectionFieldRequest, + ts Timestamp, +) error { + var err error + filedName := request.GetFieldName() + newFieldProperties := UpdateFieldPropertyParams(oldFieldProperties, request.GetProperties()) + oldColl := col.Clone() + err = ResetFieldProperties(oldColl, filedName, oldFieldProperties) + if err != nil { + return err + } + newColl := col.Clone() + err = ResetFieldProperties(newColl, filedName, newFieldProperties) + if err != nil { + return err + } + redoTask := newBaseRedoTask(core.stepExecutor) redoTask.AddSyncStep(&AlterCollectionStep{ - baseStep: baseStep{core: a.core}, + baseStep: baseStep{core: core}, oldColl: oldColl, newColl: newColl, ts: ts, }) redoTask.AddSyncStep(&BroadcastAlteredCollectionStep{ - baseStep: baseStep{core: a.core}, + baseStep: baseStep{core: core}, req: &milvuspb.AlterCollectionRequest{ - Base: a.Req.Base, - DbName: a.Req.DbName, - CollectionName: a.Req.CollectionName, + Base: request.Base, + DbName: request.DbName, + CollectionName: request.CollectionName, CollectionID: oldColl.CollectionID, }, - core: a.core, + core: core, }) - collectionNames := []string{} redoTask.AddSyncStep(&expireCacheStep{ - baseStep: baseStep{core: a.core}, - dbName: a.Req.GetDbName(), - collectionNames: append(collectionNames, a.Req.GetCollectionName()), + baseStep: baseStep{core: core}, + dbName: request.GetDbName(), + collectionNames: []string{request.GetCollectionName()}, collectionID: oldColl.CollectionID, opts: []proxyutil.ExpireCacheOpt{proxyutil.SetMsgType(commonpb.MsgType_AlterCollectionField)}, }) @@ -263,16 +309,25 @@ func (a *alterCollectionFieldTask) Execute(ctx context.Context) error { return redoTask.Execute(ctx) } -func UpdateFieldProperties(coll *model.Collection, fieldName string, updatedProps []*commonpb.KeyValuePair) error { +func ResetFieldProperties(coll *model.Collection, fieldName string, newProps []*commonpb.KeyValuePair) error { for i, field := range coll.Fields { if field.Name == fieldName { - coll.Fields[i].TypeParams = UpdateFieldPropertyParams(field.TypeParams, updatedProps) + coll.Fields[i].TypeParams = newProps return nil } } return merr.WrapErrParameterInvalidMsg("field %s does not exist in collection", fieldName) } +func GetFieldProperties(coll *model.Collection, fieldName string) ([]*commonpb.KeyValuePair, error) { + for _, field := range coll.Fields { + if field.Name == fieldName { + return field.TypeParams, nil + } + } + return nil, merr.WrapErrParameterInvalidMsg("field %s does not exist in collection", fieldName) +} + func UpdateFieldPropertyParams(oldProps, updatedProps []*commonpb.KeyValuePair) []*commonpb.KeyValuePair { props := make(map[string]string) for _, prop := range oldProps { diff --git a/internal/rootcoord/alter_database_task.go b/internal/rootcoord/alter_database_task.go index e11e4fa058f5f..6d21e841b3355 100644 --- a/internal/rootcoord/alter_database_task.go +++ b/internal/rootcoord/alter_database_task.go @@ -79,30 +79,78 @@ func (a *alterDatabaseTask) Execute(ctx context.Context) error { return err } - newDB := oldDB.Clone() + var newProperties []*commonpb.KeyValuePair if (len(a.Req.GetProperties())) > 0 { if ContainsKeyPairArray(a.Req.GetProperties(), oldDB.Properties) { log.Info("skip to alter database due to no changes were detected in the properties", zap.String("databaseName", a.Req.GetDbName())) return nil } - ret := MergeProperties(oldDB.Properties, a.Req.GetProperties()) - newDB.Properties = ret + newProperties = MergeProperties(oldDB.Properties, a.Req.GetProperties()) } else if (len(a.Req.GetDeleteKeys())) > 0 { - ret := DeleteProperties(oldDB.Properties, a.Req.GetDeleteKeys()) - newDB.Properties = ret + newProperties = DeleteProperties(oldDB.Properties, a.Req.GetDeleteKeys()) } - ts := a.GetTs() - redoTask := newBaseRedoTask(a.core.stepExecutor) + return executeAlterDatabaseTaskSteps(ctx, a.core, oldDB, oldDB.Properties, newProperties, a.ts) +} + +func (a *alterDatabaseTask) GetLockerKey() LockerKey { + return NewLockerKeyChain( + NewClusterLockerKey(false), + NewDatabaseLockerKey(a.Req.GetDbName(), true), + ) +} + +func MergeProperties(oldProps []*commonpb.KeyValuePair, updatedProps []*commonpb.KeyValuePair) []*commonpb.KeyValuePair { + _, existEndTS := common.GetReplicateEndTS(updatedProps) + if existEndTS { + updatedProps = append(updatedProps, &commonpb.KeyValuePair{ + Key: common.ReplicateIDKey, + Value: "", + }) + } + + props := make(map[string]string) + for _, prop := range oldProps { + props[prop.Key] = prop.Value + } + + for _, prop := range updatedProps { + props[prop.Key] = prop.Value + } + + propKV := make([]*commonpb.KeyValuePair, 0) + + for key, value := range props { + propKV = append(propKV, &commonpb.KeyValuePair{ + Key: key, + Value: value, + }) + } + + return propKV +} + +func executeAlterDatabaseTaskSteps(ctx context.Context, + core *Core, + dbInfo *model.Database, + oldProperties []*commonpb.KeyValuePair, + newProperties []*commonpb.KeyValuePair, + ts Timestamp, +) error { + oldDB := dbInfo.Clone() + oldDB.Properties = oldProperties + newDB := dbInfo.Clone() + newDB.Properties = newProperties + redoTask := newBaseRedoTask(core.stepExecutor) redoTask.AddSyncStep(&AlterDatabaseStep{ - baseStep: baseStep{core: a.core}, + baseStep: baseStep{core: core}, oldDB: oldDB, newDB: newDB, ts: ts, }) redoTask.AddSyncStep(&expireCacheStep{ - baseStep: baseStep{core: a.core}, + baseStep: baseStep{core: core}, dbName: newDB.Name, ts: ts, // make sure to send the "expire cache" request @@ -129,7 +177,7 @@ func (a *alterDatabaseTask) Execute(ctx context.Context) error { zap.Strings("newResourceGroups", newResourceGroups), ) redoTask.AddAsyncStep(NewSimpleStep("", func(ctx context.Context) ([]nestedStep, error) { - colls, err := a.core.meta.ListCollections(ctx, oldDB.Name, a.ts, true) + colls, err := core.meta.ListCollections(ctx, oldDB.Name, ts, true) if err != nil { log.Ctx(ctx).Warn("failed to trigger update load config for database", zap.Int64("dbID", oldDB.ID), zap.Error(err)) return nil, err @@ -138,7 +186,7 @@ func (a *alterDatabaseTask) Execute(ctx context.Context) error { return nil, nil } - resp, err := a.core.queryCoord.UpdateLoadConfig(ctx, &querypb.UpdateLoadConfigRequest{ + resp, err := core.queryCoord.UpdateLoadConfig(ctx, &querypb.UpdateLoadConfigRequest{ CollectionIDs: lo.Map(colls, func(coll *model.Collection, _ int) int64 { return coll.CollectionID }), ReplicaNumber: int32(newReplicaNumber), ResourceGroups: newResourceGroups, @@ -180,46 +228,9 @@ func (a *alterDatabaseTask) Execute(ctx context.Context) error { } msgPack.Msgs = append(msgPack.Msgs, msg) log.Info("send replicate end msg for db", zap.String("db", newDB.Name), zap.String("replicateID", replicateID)) - return nil, a.core.chanTimeTick.broadcastDmlChannels(a.core.chanTimeTick.listDmlChannels(), msgPack) + return nil, core.chanTimeTick.broadcastDmlChannels(core.chanTimeTick.listDmlChannels(), msgPack) })) } return redoTask.Execute(ctx) } - -func (a *alterDatabaseTask) GetLockerKey() LockerKey { - return NewLockerKeyChain( - NewClusterLockerKey(false), - NewDatabaseLockerKey(a.Req.GetDbName(), true), - ) -} - -func MergeProperties(oldProps []*commonpb.KeyValuePair, updatedProps []*commonpb.KeyValuePair) []*commonpb.KeyValuePair { - _, existEndTS := common.GetReplicateEndTS(updatedProps) - if existEndTS { - updatedProps = append(updatedProps, &commonpb.KeyValuePair{ - Key: common.ReplicateIDKey, - Value: "", - }) - } - - props := make(map[string]string) - for _, prop := range oldProps { - props[prop.Key] = prop.Value - } - - for _, prop := range updatedProps { - props[prop.Key] = prop.Value - } - - propKV := make([]*commonpb.KeyValuePair, 0) - - for key, value := range props { - propKV = append(propKV, &commonpb.KeyValuePair{ - Key: key, - Value: value, - }) - } - - return propKV -} diff --git a/internal/rootcoord/create_collection_task.go b/internal/rootcoord/create_collection_task.go index 25b437ed91f5d..00f1804127aa4 100644 --- a/internal/rootcoord/create_collection_task.go +++ b/internal/rootcoord/create_collection_task.go @@ -620,68 +620,81 @@ func (t *createCollectionTask) Execute(ctx context.Context) error { } collInfo.StartPositions = toKeyDataPairs(startPositions) - undoTask := newBaseUndoTask(t.core.stepExecutor) + return executeCreateCollectionTaskSteps(ctx, t.core, &collInfo, t.Req.GetDbName(), t.dbProperties, ts) +} + +func (t *createCollectionTask) GetLockerKey() LockerKey { + return NewLockerKeyChain( + NewClusterLockerKey(false), + NewDatabaseLockerKey(t.Req.GetDbName(), false), + NewCollectionLockerKey(strconv.FormatInt(t.collID, 10), true), + ) +} + +func executeCreateCollectionTaskSteps(ctx context.Context, + core *Core, + col *model.Collection, + dbName string, + dbProperties []*commonpb.KeyValuePair, + ts Timestamp, +) error { + undoTask := newBaseUndoTask(core.stepExecutor) + collID := col.CollectionID undoTask.AddStep(&expireCacheStep{ - baseStep: baseStep{core: t.core}, - dbName: t.Req.GetDbName(), - collectionNames: []string{t.Req.GetCollectionName()}, + baseStep: baseStep{core: core}, + dbName: dbName, + collectionNames: []string{col.Name}, collectionID: collID, ts: ts, opts: []proxyutil.ExpireCacheOpt{proxyutil.SetMsgType(commonpb.MsgType_DropCollection)}, }, &nullStep{}) undoTask.AddStep(&nullStep{}, &removeDmlChannelsStep{ - baseStep: baseStep{core: t.core}, - pChannels: chanNames, + baseStep: baseStep{core: core}, + pChannels: col.PhysicalChannelNames, }) // remove dml channels if any error occurs. undoTask.AddStep(&addCollectionMetaStep{ - baseStep: baseStep{core: t.core}, - coll: &collInfo, + baseStep: baseStep{core: core}, + coll: col, }, &deleteCollectionMetaStep{ - baseStep: baseStep{core: t.core}, + baseStep: baseStep{core: core}, collectionID: collID, // When we undo createCollectionTask, this ts may be less than the ts when unwatch channels. ts: ts, }) // serve for this case: watching channels succeed in datacoord but failed due to network failure. undoTask.AddStep(&nullStep{}, &unwatchChannelsStep{ - baseStep: baseStep{core: t.core}, + baseStep: baseStep{core: core}, collectionID: collID, - channels: t.channels, - isSkip: !Params.CommonCfg.TTMsgEnabled.GetAsBool(), + channels: collectionChannels{ + virtualChannels: col.VirtualChannelNames, + physicalChannels: col.PhysicalChannelNames, + }, + isSkip: !Params.CommonCfg.TTMsgEnabled.GetAsBool(), }) undoTask.AddStep(&watchChannelsStep{ - baseStep: baseStep{core: t.core}, + baseStep: baseStep{core: core}, info: &watchInfo{ ts: ts, collectionID: collID, - vChannels: t.channels.virtualChannels, - startPositions: toKeyDataPairs(startPositions), + vChannels: col.VirtualChannelNames, + startPositions: col.StartPositions, schema: &schemapb.CollectionSchema{ - Name: collInfo.Name, - DbName: collInfo.DBName, - Description: collInfo.Description, - AutoID: collInfo.AutoID, - Fields: model.MarshalFieldModels(collInfo.Fields), - Properties: collInfo.Properties, - Functions: model.MarshalFunctionModels(collInfo.Functions), + Name: col.Name, + DbName: col.DBName, + Description: col.Description, + AutoID: col.AutoID, + Fields: model.MarshalFieldModels(col.Fields), + Properties: col.Properties, + Functions: model.MarshalFunctionModels(col.Functions), }, - dbProperties: t.dbProperties, + dbProperties: dbProperties, }, }, &nullStep{}) undoTask.AddStep(&changeCollectionStateStep{ - baseStep: baseStep{core: t.core}, + baseStep: baseStep{core: core}, collectionID: collID, state: pb.CollectionState_CollectionCreated, ts: ts, }, &nullStep{}) // We'll remove the whole collection anyway. - return undoTask.Execute(ctx) } - -func (t *createCollectionTask) GetLockerKey() LockerKey { - return NewLockerKeyChain( - NewClusterLockerKey(false), - NewDatabaseLockerKey(t.Req.GetDbName(), false), - NewCollectionLockerKey(t.Req.GetCollectionName(), true), - ) -} diff --git a/internal/rootcoord/create_partition_task.go b/internal/rootcoord/create_partition_task.go index 609efb2e7730a..7d76720c8006e 100644 --- a/internal/rootcoord/create_partition_task.go +++ b/internal/rootcoord/create_partition_task.go @@ -76,60 +76,71 @@ func (t *createPartitionTask) Execute(ctx context.Context) error { State: pb.PartitionState_PartitionCreating, } - undoTask := newBaseUndoTask(t.core.stepExecutor) + return executeCreatePartitionTaskSteps(ctx, t.core, partition, t.collMeta, t.Req.GetDbName(), t.GetTs()) +} + +func (t *createPartitionTask) GetLockerKey() LockerKey { + collection := t.core.getCollectionIDStr(t.ctx, t.Req.GetDbName(), t.Req.GetCollectionName(), 0) + return NewLockerKeyChain( + NewClusterLockerKey(false), + NewDatabaseLockerKey(t.Req.GetDbName(), false), + NewCollectionLockerKey(collection, true), + ) +} +func executeCreatePartitionTaskSteps(ctx context.Context, + core *Core, + partition *model.Partition, + col *model.Collection, + dbName string, + ts Timestamp, +) error { + undoTask := newBaseUndoTask(core.stepExecutor) + partID := partition.PartitionID + collectionID := partition.CollectionID undoTask.AddStep(&expireCacheStep{ - baseStep: baseStep{core: t.core}, - dbName: t.Req.GetDbName(), - collectionNames: []string{t.collMeta.Name}, - collectionID: t.collMeta.CollectionID, - partitionName: t.Req.GetPartitionName(), - ts: t.GetTs(), + baseStep: baseStep{core: core}, + dbName: dbName, + collectionNames: []string{col.Name}, + collectionID: collectionID, + partitionName: partition.PartitionName, + ts: ts, opts: []proxyutil.ExpireCacheOpt{proxyutil.SetMsgType(commonpb.MsgType_CreatePartition)}, }, &nullStep{}) undoTask.AddStep(&addPartitionMetaStep{ - baseStep: baseStep{core: t.core}, + baseStep: baseStep{core: core}, partition: partition, }, &removePartitionMetaStep{ - baseStep: baseStep{core: t.core}, - dbID: t.collMeta.DBID, + baseStep: baseStep{core: core}, + dbID: col.DBID, collectionID: partition.CollectionID, partitionID: partition.PartitionID, - ts: t.GetTs(), + ts: ts, }) if streamingutil.IsStreamingServiceEnabled() { undoTask.AddStep(&broadcastCreatePartitionMsgStep{ - baseStep: baseStep{core: t.core}, - vchannels: t.collMeta.VirtualChannelNames, + baseStep: baseStep{core: core}, + vchannels: col.VirtualChannelNames, partition: partition, - ts: t.GetTs(), + ts: ts, }, &nullStep{}) } undoTask.AddStep(&nullStep{}, &releasePartitionsStep{ - baseStep: baseStep{core: t.core}, - collectionID: t.collMeta.CollectionID, + baseStep: baseStep{core: core}, + collectionID: col.CollectionID, partitionIDs: []int64{partID}, }) undoTask.AddStep(&changePartitionStateStep{ - baseStep: baseStep{core: t.core}, - collectionID: t.collMeta.CollectionID, + baseStep: baseStep{core: core}, + collectionID: col.CollectionID, partitionID: partID, state: pb.PartitionState_PartitionCreated, - ts: t.GetTs(), + ts: ts, }, &nullStep{}) return undoTask.Execute(ctx) } - -func (t *createPartitionTask) GetLockerKey() LockerKey { - collection := t.core.getCollectionIDStr(t.ctx, t.Req.GetDbName(), t.Req.GetCollectionName(), 0) - return NewLockerKeyChain( - NewClusterLockerKey(false), - NewDatabaseLockerKey(t.Req.GetDbName(), false), - NewCollectionLockerKey(collection, true), - ) -} diff --git a/internal/rootcoord/drop_collection_task.go b/internal/rootcoord/drop_collection_task.go index 3ae2eca075888..795842a51b609 100644 --- a/internal/rootcoord/drop_collection_task.go +++ b/internal/rootcoord/drop_collection_task.go @@ -25,6 +25,7 @@ import ( "github.com/milvus-io/milvus-proto/go-api/v2/commonpb" "github.com/milvus-io/milvus-proto/go-api/v2/milvuspb" + "github.com/milvus-io/milvus/internal/metastore/model" pb "github.com/milvus-io/milvus/internal/proto/etcdpb" "github.com/milvus-io/milvus/internal/util/proxyutil" "github.com/milvus-io/milvus/pkg/log" @@ -71,46 +72,68 @@ func (t *dropCollectionTask) Execute(ctx context.Context) error { aliases := t.core.meta.ListAliasesByID(ctx, collMeta.CollectionID) ts := t.GetTs() + return executeDropCollectionTaskSteps(ctx, + t.core, collMeta, t.Req.GetDbName(), aliases, + t.Req.GetBase().GetReplicateInfo().GetIsReplicate(), + ts) +} + +func (t *dropCollectionTask) GetLockerKey() LockerKey { + collection := t.core.getCollectionIDStr(t.ctx, t.Req.GetDbName(), t.Req.GetCollectionName(), 0) + return NewLockerKeyChain( + NewClusterLockerKey(false), + NewDatabaseLockerKey(t.Req.GetDbName(), false), + NewCollectionLockerKey(collection, true), + ) +} - redoTask := newBaseRedoTask(t.core.stepExecutor) +func executeDropCollectionTaskSteps(ctx context.Context, + core *Core, + col *model.Collection, + dbName string, + alias []string, + isReplicate bool, + ts Timestamp, +) error { + redoTask := newBaseRedoTask(core.stepExecutor) redoTask.AddSyncStep(&expireCacheStep{ - baseStep: baseStep{core: t.core}, - dbName: t.Req.GetDbName(), - collectionNames: append(aliases, collMeta.Name), - collectionID: collMeta.CollectionID, + baseStep: baseStep{core: core}, + dbName: dbName, + collectionNames: append(alias, col.Name), + collectionID: col.CollectionID, ts: ts, opts: []proxyutil.ExpireCacheOpt{proxyutil.SetMsgType(commonpb.MsgType_DropCollection)}, }) redoTask.AddSyncStep(&changeCollectionStateStep{ - baseStep: baseStep{core: t.core}, - collectionID: collMeta.CollectionID, + baseStep: baseStep{core: core}, + collectionID: col.CollectionID, state: pb.CollectionState_CollectionDropping, ts: ts, }) redoTask.AddAsyncStep(&releaseCollectionStep{ - baseStep: baseStep{core: t.core}, - collectionID: collMeta.CollectionID, + baseStep: baseStep{core: core}, + collectionID: col.CollectionID, }) redoTask.AddAsyncStep(&dropIndexStep{ - baseStep: baseStep{core: t.core}, - collID: collMeta.CollectionID, + baseStep: baseStep{core: core}, + collID: col.CollectionID, partIDs: nil, }) redoTask.AddAsyncStep(&deleteCollectionDataStep{ - baseStep: baseStep{core: t.core}, - coll: collMeta, - isSkip: t.Req.GetBase().GetReplicateInfo().GetIsReplicate(), + baseStep: baseStep{core: core}, + coll: col, + isSkip: isReplicate, }) redoTask.AddAsyncStep(&removeDmlChannelsStep{ - baseStep: baseStep{core: t.core}, - pChannels: collMeta.PhysicalChannelNames, + baseStep: baseStep{core: core}, + pChannels: col.PhysicalChannelNames, }) - redoTask.AddAsyncStep(newConfirmGCStep(t.core, collMeta.CollectionID, allPartition)) + redoTask.AddAsyncStep(newConfirmGCStep(core, col.CollectionID, allPartition)) redoTask.AddAsyncStep(&deleteCollectionMetaStep{ - baseStep: baseStep{core: t.core}, - collectionID: collMeta.CollectionID, + baseStep: baseStep{core: core}, + collectionID: col.CollectionID, // This ts is less than the ts when we notify data nodes to drop collection, but it's OK since we have already // marked this collection as deleted. If we want to make this ts greater than the notification's ts, we should // wrap a step who will have these three children and connect them with ts. @@ -119,11 +142,3 @@ func (t *dropCollectionTask) Execute(ctx context.Context) error { return redoTask.Execute(ctx) } - -func (t *dropCollectionTask) GetLockerKey() LockerKey { - return NewLockerKeyChain( - NewClusterLockerKey(false), - NewDatabaseLockerKey(t.Req.GetDbName(), false), - NewCollectionLockerKey(t.Req.GetCollectionName(), true), - ) -} diff --git a/internal/rootcoord/drop_db_task.go b/internal/rootcoord/drop_db_task.go index bdc1cc035db32..e071f3b3dfab4 100644 --- a/internal/rootcoord/drop_db_task.go +++ b/internal/rootcoord/drop_db_task.go @@ -39,16 +39,28 @@ func (t *dropDatabaseTask) Prepare(ctx context.Context) error { } func (t *dropDatabaseTask) Execute(ctx context.Context) error { - redoTask := newBaseRedoTask(t.core.stepExecutor) dbName := t.Req.GetDbName() ts := t.GetTs() + return executeDropDatabaseTaskSteps(ctx, t.core, dbName, ts) +} + +func (t *dropDatabaseTask) GetLockerKey() LockerKey { + return NewLockerKeyChain(NewClusterLockerKey(true)) +} + +func executeDropDatabaseTaskSteps(ctx context.Context, + core *Core, + dbName string, + ts Timestamp, +) error { + redoTask := newBaseRedoTask(core.stepExecutor) redoTask.AddSyncStep(&deleteDatabaseMetaStep{ - baseStep: baseStep{core: t.core}, + baseStep: baseStep{core: core}, databaseName: dbName, ts: ts, }) redoTask.AddSyncStep(&expireCacheStep{ - baseStep: baseStep{core: t.core}, + baseStep: baseStep{core: core}, dbName: dbName, ts: ts, // make sure to send the "expire cache" request @@ -60,7 +72,3 @@ func (t *dropDatabaseTask) Execute(ctx context.Context) error { }) return redoTask.Execute(ctx) } - -func (t *dropDatabaseTask) GetLockerKey() LockerKey { - return NewLockerKeyChain(NewClusterLockerKey(true)) -} diff --git a/internal/rootcoord/drop_partition_task.go b/internal/rootcoord/drop_partition_task.go index d25265f05da55..648b3c74ddd6f 100644 --- a/internal/rootcoord/drop_partition_task.go +++ b/internal/rootcoord/drop_partition_task.go @@ -67,56 +67,71 @@ func (t *dropPartitionTask) Execute(ctx context.Context) error { return nil } - redoTask := newBaseRedoTask(t.core.stepExecutor) + return executeDropPartitionTaskSteps(ctx, t.core, + t.Req.GetPartitionName(), partID, + t.collMeta, t.Req.GetDbName(), + t.Req.GetBase().GetReplicateInfo().GetIsReplicate(), t.GetTs()) +} + +func (t *dropPartitionTask) GetLockerKey() LockerKey { + collection := t.core.getCollectionIDStr(t.ctx, t.Req.GetDbName(), t.Req.GetCollectionName(), 0) + return NewLockerKeyChain( + NewClusterLockerKey(false), + NewDatabaseLockerKey(t.Req.GetDbName(), false), + NewCollectionLockerKey(collection, true), + ) +} + +func executeDropPartitionTaskSteps(ctx context.Context, + core *Core, + partitionName string, + partitionID UniqueID, + col *model.Collection, + dbName string, + isReplicate bool, + ts Timestamp, +) error { + redoTask := newBaseRedoTask(core.stepExecutor) redoTask.AddSyncStep(&expireCacheStep{ - baseStep: baseStep{core: t.core}, - dbName: t.Req.GetDbName(), - collectionNames: []string{t.collMeta.Name}, - collectionID: t.collMeta.CollectionID, - partitionName: t.Req.GetPartitionName(), - ts: t.GetTs(), + baseStep: baseStep{core: core}, + dbName: dbName, + collectionNames: []string{col.Name}, + collectionID: col.CollectionID, + partitionName: partitionName, + ts: ts, opts: []proxyutil.ExpireCacheOpt{proxyutil.SetMsgType(commonpb.MsgType_DropPartition)}, }) redoTask.AddSyncStep(&changePartitionStateStep{ - baseStep: baseStep{core: t.core}, - collectionID: t.collMeta.CollectionID, - partitionID: partID, + baseStep: baseStep{core: core}, + collectionID: col.CollectionID, + partitionID: partitionID, state: pb.PartitionState_PartitionDropping, - ts: t.GetTs(), + ts: ts, }) redoTask.AddAsyncStep(&deletePartitionDataStep{ - baseStep: baseStep{core: t.core}, - pchans: t.collMeta.PhysicalChannelNames, - vchans: t.collMeta.VirtualChannelNames, + baseStep: baseStep{core: core}, + pchans: col.PhysicalChannelNames, + vchans: col.VirtualChannelNames, partition: &model.Partition{ - PartitionID: partID, - PartitionName: t.Req.GetPartitionName(), - CollectionID: t.collMeta.CollectionID, + PartitionID: partitionID, + PartitionName: partitionName, + CollectionID: col.CollectionID, }, - isSkip: t.Req.GetBase().GetReplicateInfo().GetIsReplicate(), + isSkip: isReplicate, }) - redoTask.AddAsyncStep(newConfirmGCStep(t.core, t.collMeta.CollectionID, partID)) + redoTask.AddAsyncStep(newConfirmGCStep(core, col.CollectionID, partitionID)) redoTask.AddAsyncStep(&removePartitionMetaStep{ - baseStep: baseStep{core: t.core}, - dbID: t.collMeta.DBID, - collectionID: t.collMeta.CollectionID, - partitionID: partID, + baseStep: baseStep{core: core}, + dbID: col.DBID, + collectionID: col.CollectionID, + partitionID: partitionID, // This ts is less than the ts when we notify data nodes to drop partition, but it's OK since we have already // marked this partition as deleted. If we want to make this ts greater than the notification's ts, we should // wrap a step who will have these children and connect them with ts. - ts: t.GetTs(), + ts: ts, }) return redoTask.Execute(ctx) } - -func (t *dropPartitionTask) GetLockerKey() LockerKey { - collection := t.core.getCollectionIDStr(t.ctx, t.Req.GetDbName(), t.Req.GetCollectionName(), 0) - return NewLockerKeyChain( - NewClusterLockerKey(false), - NewDatabaseLockerKey(t.Req.GetDbName(), false), - NewCollectionLockerKey(collection, true), - ) -} diff --git a/internal/rootcoord/rbac_task.go b/internal/rootcoord/rbac_task.go new file mode 100644 index 0000000000000..af5efbc007fa0 --- /dev/null +++ b/internal/rootcoord/rbac_task.go @@ -0,0 +1,369 @@ +/* + * Licensed to the LF AI & Data foundation under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package rootcoord + +import ( + "context" + + "github.com/cockroachdb/errors" + "github.com/samber/lo" + "go.uber.org/zap" + "google.golang.org/protobuf/proto" + + "github.com/milvus-io/milvus-proto/go-api/v2/milvuspb" + "github.com/milvus-io/milvus/internal/proto/proxypb" + "github.com/milvus-io/milvus/pkg/common" + "github.com/milvus-io/milvus/pkg/log" + "github.com/milvus-io/milvus/pkg/util" + "github.com/milvus-io/milvus/pkg/util/funcutil" + "github.com/milvus-io/milvus/pkg/util/typeutil" +) + +func executeDeleteCredentialTaskSteps(ctx context.Context, core *Core, username string) error { + redoTask := newBaseRedoTask(core.stepExecutor) + redoTask.AddSyncStep(NewSimpleStep("delete credential meta data", func(ctx context.Context) ([]nestedStep, error) { + err := core.meta.DeleteCredential(ctx, username) + if err != nil { + log.Ctx(ctx).Warn("delete credential meta data failed", zap.String("username", username), zap.Error(err)) + } + return nil, err + })) + redoTask.AddAsyncStep(NewSimpleStep("delete credential cache", func(ctx context.Context) ([]nestedStep, error) { + err := core.ExpireCredCache(ctx, username) + if err != nil { + log.Ctx(ctx).Warn("delete credential cache failed", zap.String("username", username), zap.Error(err)) + } + return nil, err + })) + redoTask.AddAsyncStep(NewSimpleStep("delete user role cache for the user", func(ctx context.Context) ([]nestedStep, error) { + err := core.proxyClientManager.RefreshPolicyInfoCache(ctx, &proxypb.RefreshPolicyInfoCacheRequest{ + OpType: int32(typeutil.CacheDeleteUser), + OpKey: username, + }) + if err != nil { + log.Ctx(ctx).Warn("delete user role cache failed for the user", zap.String("username", username), zap.Error(err)) + } + return nil, err + })) + + return redoTask.Execute(ctx) +} + +func executeDropRoleTaskSteps(ctx context.Context, core *Core, roleName string, foreDrop bool) error { + redoTask := newBaseRedoTask(core.stepExecutor) + redoTask.AddSyncStep(NewSimpleStep("drop role meta data", func(ctx context.Context) ([]nestedStep, error) { + err := core.meta.DropRole(ctx, util.DefaultTenant, roleName) + if err != nil { + log.Ctx(ctx).Warn("drop role mata data failed", zap.String("role_name", roleName), zap.Error(err)) + } + return nil, err + })) + redoTask.AddAsyncStep(NewSimpleStep("drop the privilege list of this role", func(ctx context.Context) ([]nestedStep, error) { + if !foreDrop { + return nil, nil + } + err := core.meta.DropGrant(ctx, util.DefaultTenant, &milvuspb.RoleEntity{Name: roleName}) + if err != nil { + log.Ctx(ctx).Warn("drop the privilege list failed for the role", zap.String("role_name", roleName), zap.Error(err)) + } + return nil, err + })) + redoTask.AddAsyncStep(NewSimpleStep("drop role cache", func(ctx context.Context) ([]nestedStep, error) { + err := core.proxyClientManager.RefreshPolicyInfoCache(ctx, &proxypb.RefreshPolicyInfoCacheRequest{ + OpType: int32(typeutil.CacheDropRole), + OpKey: roleName, + }) + if err != nil { + log.Ctx(ctx).Warn("delete user role cache failed for the role", zap.String("role_name", roleName), zap.Error(err)) + } + return nil, err + })) + return redoTask.Execute(ctx) +} + +func executeOperateUserRoleTaskSteps(ctx context.Context, core *Core, in *milvuspb.OperateUserRoleRequest) error { + username := in.Username + roleName := in.RoleName + operateType := in.Type + redoTask := newBaseRedoTask(core.stepExecutor) + redoTask.AddSyncStep(NewSimpleStep("operate user role meta data", func(ctx context.Context) ([]nestedStep, error) { + err := core.meta.OperateUserRole(ctx, util.DefaultTenant, &milvuspb.UserEntity{Name: username}, &milvuspb.RoleEntity{Name: roleName}, operateType) + if err != nil && !common.IsIgnorableError(err) { + log.Ctx(ctx).Warn("operate user role mata data failed", + zap.String("username", username), zap.String("role_name", roleName), + zap.Any("operate_type", operateType), + zap.Error(err)) + return nil, err + } + return nil, nil + })) + redoTask.AddAsyncStep(NewSimpleStep("operate user role cache", func(ctx context.Context) ([]nestedStep, error) { + var opType int32 + switch operateType { + case milvuspb.OperateUserRoleType_AddUserToRole: + opType = int32(typeutil.CacheAddUserToRole) + case milvuspb.OperateUserRoleType_RemoveUserFromRole: + opType = int32(typeutil.CacheRemoveUserFromRole) + default: + errMsg := "invalid operate type for the OperateUserRole api" + log.Ctx(ctx).Warn(errMsg, + zap.String("username", username), zap.String("role_name", roleName), + zap.Any("operate_type", operateType), + ) + return nil, nil + } + if err := core.proxyClientManager.RefreshPolicyInfoCache(ctx, &proxypb.RefreshPolicyInfoCacheRequest{ + OpType: opType, + OpKey: funcutil.EncodeUserRoleCache(username, roleName), + }); err != nil { + log.Ctx(ctx).Warn("fail to refresh policy info cache", + zap.String("username", username), zap.String("role_name", roleName), + zap.Any("operate_type", operateType), + zap.Error(err), + ) + return nil, err + } + return nil, nil + })) + return redoTask.Execute(ctx) +} + +func executeOperatePrivilegeTaskSteps(ctx context.Context, core *Core, in *milvuspb.OperatePrivilegeRequest) error { + privName := in.Entity.Grantor.Privilege.Name + redoTask := newBaseRedoTask(core.stepExecutor) + redoTask.AddSyncStep(NewSimpleStep("operate privilege meta data", func(ctx context.Context) ([]nestedStep, error) { + if !util.IsAnyWord(privName) { + // set up privilege name for metastore + dbPrivName, err := core.getMetastorePrivilegeName(ctx, privName) + if err != nil { + return nil, err + } + in.Entity.Grantor.Privilege.Name = dbPrivName + } + + err := core.meta.OperatePrivilege(ctx, util.DefaultTenant, in.Entity, in.Type) + if err != nil && !common.IsIgnorableError(err) { + log.Ctx(ctx).Warn("fail to operate the privilege", zap.Any("in", in), zap.Error(err)) + return nil, err + } + return nil, nil + })) + redoTask.AddAsyncStep(NewSimpleStep("operate privilege cache", func(ctx context.Context) ([]nestedStep, error) { + // set back to expand privilege group + in.Entity.Grantor.Privilege.Name = privName + var opType int32 + switch in.Type { + case milvuspb.OperatePrivilegeType_Grant: + opType = int32(typeutil.CacheGrantPrivilege) + case milvuspb.OperatePrivilegeType_Revoke: + opType = int32(typeutil.CacheRevokePrivilege) + default: + log.Ctx(ctx).Warn("invalid operate type for the OperatePrivilege api", zap.Any("in", in)) + return nil, nil + } + grants := []*milvuspb.GrantEntity{in.Entity} + + allGroups, err := core.getPrivilegeGroups(ctx) + if err != nil { + return nil, err + } + groups := lo.SliceToMap(allGroups, func(group *milvuspb.PrivilegeGroupInfo) (string, []*milvuspb.PrivilegeEntity) { + return group.GroupName, group.Privileges + }) + expandGrants, err := core.expandPrivilegeGroups(ctx, grants, groups) + if err != nil { + return nil, err + } + // if there is same grant in the other privilege groups, the grant should not be removed from the cache + if in.Type == milvuspb.OperatePrivilegeType_Revoke { + metaGrants, err := core.meta.SelectGrant(ctx, util.DefaultTenant, &milvuspb.GrantEntity{ + Role: in.Entity.Role, + DbName: in.Entity.DbName, + }) + if err != nil { + return nil, err + } + metaExpandGrants, err := core.expandPrivilegeGroups(ctx, metaGrants, groups) + if err != nil { + return nil, err + } + expandGrants = lo.Filter(expandGrants, func(g1 *milvuspb.GrantEntity, _ int) bool { + return !lo.ContainsBy(metaExpandGrants, func(g2 *milvuspb.GrantEntity) bool { + return proto.Equal(g1, g2) + }) + }) + } + if err := core.proxyClientManager.RefreshPolicyInfoCache(ctx, &proxypb.RefreshPolicyInfoCacheRequest{ + OpType: opType, + OpKey: funcutil.PolicyForPrivileges(expandGrants), + }); err != nil { + log.Ctx(ctx).Warn("fail to refresh policy info cache", zap.Any("in", in), zap.Error(err)) + return nil, err + } + return nil, nil + })) + + return redoTask.Execute(ctx) +} + +func executeRestoreRBACTaskSteps(ctx context.Context, core *Core, in *milvuspb.RestoreRBACMetaRequest) error { + redoTask := newBaseRedoTask(core.stepExecutor) + redoTask.AddSyncStep(NewSimpleStep("restore rbac meta data", func(ctx context.Context) ([]nestedStep, error) { + if err := core.meta.RestoreRBAC(ctx, util.DefaultTenant, in.RBACMeta); err != nil { + log.Ctx(ctx).Warn("fail to restore rbac meta data", zap.Any("in", in), zap.Error(err)) + return nil, err + } + return nil, nil + })) + redoTask.AddAsyncStep(NewSimpleStep("operate privilege cache", func(ctx context.Context) ([]nestedStep, error) { + if err := core.proxyClientManager.RefreshPolicyInfoCache(ctx, &proxypb.RefreshPolicyInfoCacheRequest{ + OpType: int32(typeutil.CacheRefresh), + }); err != nil { + log.Ctx(ctx).Warn("fail to refresh policy info cache", zap.Any("in", in), zap.Error(err)) + return nil, err + } + return nil, nil + })) + + return redoTask.Execute(ctx) +} + +func executeOperatePrivilegeGroupTaskSteps(ctx context.Context, core *Core, in *milvuspb.OperatePrivilegeGroupRequest) error { + redoTask := newBaseRedoTask(core.stepExecutor) + redoTask.AddSyncStep(NewSimpleStep("operate privilege group", func(ctx context.Context) ([]nestedStep, error) { + groups, err := core.meta.ListPrivilegeGroups(ctx) + if err != nil && !common.IsIgnorableError(err) { + log.Ctx(ctx).Warn("fail to list privilege groups", zap.Error(err)) + return nil, err + } + currGroups := lo.SliceToMap(groups, func(group *milvuspb.PrivilegeGroupInfo) (string, []*milvuspb.PrivilegeEntity) { + return group.GroupName, group.Privileges + }) + + // get roles granted to the group + roles, err := core.meta.GetPrivilegeGroupRoles(ctx, in.GroupName) + if err != nil { + return nil, err + } + + newGroups := make(map[string][]*milvuspb.PrivilegeEntity) + for k, v := range currGroups { + if k != in.GroupName { + newGroups[k] = v + continue + } + switch in.Type { + case milvuspb.OperatePrivilegeGroupType_AddPrivilegesToGroup: + newPrivs := lo.Union(v, in.Privileges) + newGroups[k] = lo.UniqBy(newPrivs, func(p *milvuspb.PrivilegeEntity) string { + return p.Name + }) + + // check if privileges are the same object type + objectTypes := lo.SliceToMap(newPrivs, func(p *milvuspb.PrivilegeEntity) (string, struct{}) { + return util.GetObjectType(p.Name), struct{}{} + }) + if len(objectTypes) > 1 { + return nil, errors.New("privileges are not the same object type") + } + case milvuspb.OperatePrivilegeGroupType_RemovePrivilegesFromGroup: + newPrivs, _ := lo.Difference(v, in.Privileges) + newGroups[k] = newPrivs + default: + return nil, errors.New("invalid operate type") + } + } + + var rolesToRevoke []*milvuspb.GrantEntity + var rolesToGrant []*milvuspb.GrantEntity + compareGrants := func(a, b *milvuspb.GrantEntity) bool { + return a.Role.Name == b.Role.Name && + a.Object.Name == b.Object.Name && + a.ObjectName == b.ObjectName && + a.Grantor.User.Name == b.Grantor.User.Name && + a.Grantor.Privilege.Name == b.Grantor.Privilege.Name && + a.DbName == b.DbName + } + for _, role := range roles { + grants, err := core.meta.SelectGrant(ctx, util.DefaultTenant, &milvuspb.GrantEntity{ + Role: role, + DbName: util.AnyWord, + }) + if err != nil { + return nil, err + } + currGrants, err := core.expandPrivilegeGroups(ctx, grants, currGroups) + if err != nil { + return nil, err + } + newGrants, err := core.expandPrivilegeGroups(ctx, grants, newGroups) + if err != nil { + return nil, err + } + + toRevoke := lo.Filter(currGrants, func(item *milvuspb.GrantEntity, _ int) bool { + return !lo.ContainsBy(newGrants, func(newItem *milvuspb.GrantEntity) bool { + return compareGrants(item, newItem) + }) + }) + + toGrant := lo.Filter(newGrants, func(item *milvuspb.GrantEntity, _ int) bool { + return !lo.ContainsBy(currGrants, func(currItem *milvuspb.GrantEntity) bool { + return compareGrants(item, currItem) + }) + }) + + rolesToRevoke = append(rolesToRevoke, toRevoke...) + rolesToGrant = append(rolesToGrant, toGrant...) + } + + if len(rolesToRevoke) > 0 { + opType := int32(typeutil.CacheRevokePrivilege) + if err := core.proxyClientManager.RefreshPolicyInfoCache(ctx, &proxypb.RefreshPolicyInfoCacheRequest{ + OpType: opType, + OpKey: funcutil.PolicyForPrivileges(rolesToRevoke), + }); err != nil { + log.Ctx(ctx).Warn("fail to refresh policy info cache for revoke privileges in operate privilege group", zap.Any("in", in), zap.Error(err)) + return nil, err + } + } + + if len(rolesToGrant) > 0 { + opType := int32(typeutil.CacheGrantPrivilege) + if err := core.proxyClientManager.RefreshPolicyInfoCache(ctx, &proxypb.RefreshPolicyInfoCacheRequest{ + OpType: opType, + OpKey: funcutil.PolicyForPrivileges(rolesToGrant), + }); err != nil { + log.Ctx(ctx).Warn("fail to refresh policy info cache for grants privilege in operate privilege group", zap.Any("in", in), zap.Error(err)) + return nil, err + } + } + return nil, nil + })) + + redoTask.AddSyncStep(NewSimpleStep("operate privilege group meta data", func(ctx context.Context) ([]nestedStep, error) { + err := core.meta.OperatePrivilegeGroup(ctx, in.GroupName, in.Privileges, in.Type) + if err != nil && !common.IsIgnorableError(err) { + log.Ctx(ctx).Warn("fail to operate privilege group", zap.Error(err)) + } + return nil, err + })) + + return redoTask.Execute(ctx) +} diff --git a/internal/rootcoord/root_coord.go b/internal/rootcoord/root_coord.go index 88138d0e0849f..47ac8642b6ecf 100644 --- a/internal/rootcoord/root_coord.go +++ b/internal/rootcoord/root_coord.go @@ -33,7 +33,6 @@ import ( "go.uber.org/atomic" "go.uber.org/zap" "golang.org/x/sync/errgroup" - "google.golang.org/protobuf/proto" "github.com/milvus-io/milvus-proto/go-api/v2/commonpb" "github.com/milvus-io/milvus-proto/go-api/v2/milvuspb" @@ -2220,33 +2219,7 @@ func (c *Core) DeleteCredential(ctx context.Context, in *milvuspb.DeleteCredenti } }() - redoTask := newBaseRedoTask(c.stepExecutor) - redoTask.AddSyncStep(NewSimpleStep("delete credential meta data", func(ctx context.Context) ([]nestedStep, error) { - err := c.meta.DeleteCredential(ctx, in.Username) - if err != nil { - ctxLog.Warn("delete credential meta data failed", zap.Error(err)) - } - return nil, err - })) - redoTask.AddAsyncStep(NewSimpleStep("delete credential cache", func(ctx context.Context) ([]nestedStep, error) { - err := c.ExpireCredCache(ctx, in.Username) - if err != nil { - ctxLog.Warn("delete credential cache failed", zap.Error(err)) - } - return nil, err - })) - redoTask.AddAsyncStep(NewSimpleStep("delete user role cache for the user", func(ctx context.Context) ([]nestedStep, error) { - err := c.proxyClientManager.RefreshPolicyInfoCache(ctx, &proxypb.RefreshPolicyInfoCacheRequest{ - OpType: int32(typeutil.CacheDeleteUser), - OpKey: in.Username, - }) - if err != nil { - ctxLog.Warn("delete user role cache failed for the user", zap.Error(err)) - } - return nil, err - })) - - err := redoTask.Execute(ctx) + err := executeDeleteCredentialTaskSteps(ctx, c, in.Username) if err != nil { errMsg := "fail to execute task when deleting the user" ctxLog.Warn(errMsg, zap.Error(err)) @@ -2361,35 +2334,7 @@ func (c *Core) DropRole(ctx context.Context, in *milvuspb.DropRoleRequest) (*com return merr.StatusWithErrorCode(errors.New(errMsg), commonpb.ErrorCode_DropRoleFailure), nil } } - redoTask := newBaseRedoTask(c.stepExecutor) - redoTask.AddSyncStep(NewSimpleStep("drop role meta data", func(ctx context.Context) ([]nestedStep, error) { - err := c.meta.DropRole(ctx, util.DefaultTenant, in.RoleName) - if err != nil { - ctxLog.Warn("drop role mata data failed", zap.Error(err)) - } - return nil, err - })) - redoTask.AddAsyncStep(NewSimpleStep("drop the privilege list of this role", func(ctx context.Context) ([]nestedStep, error) { - if !in.ForceDrop { - return nil, nil - } - err := c.meta.DropGrant(ctx, util.DefaultTenant, &milvuspb.RoleEntity{Name: in.RoleName}) - if err != nil { - ctxLog.Warn("drop the privilege list failed for the role", zap.Error(err)) - } - return nil, err - })) - redoTask.AddAsyncStep(NewSimpleStep("drop role cache", func(ctx context.Context) ([]nestedStep, error) { - err := c.proxyClientManager.RefreshPolicyInfoCache(ctx, &proxypb.RefreshPolicyInfoCacheRequest{ - OpType: int32(typeutil.CacheDropRole), - OpKey: in.RoleName, - }) - if err != nil { - ctxLog.Warn("delete user role cache failed for the role", zap.Error(err)) - } - return nil, err - })) - err := redoTask.Execute(ctx) + err := executeDropRoleTaskSteps(ctx, c, in.RoleName, in.ForceDrop) if err != nil { errMsg := "fail to execute task when dropping the role" ctxLog.Warn(errMsg, zap.Error(err)) @@ -2433,37 +2378,7 @@ func (c *Core) OperateUserRole(ctx context.Context, in *milvuspb.OperateUserRole } } - redoTask := newBaseRedoTask(c.stepExecutor) - redoTask.AddSyncStep(NewSimpleStep("operate user role meta data", func(ctx context.Context) ([]nestedStep, error) { - err := c.meta.OperateUserRole(ctx, util.DefaultTenant, &milvuspb.UserEntity{Name: in.Username}, &milvuspb.RoleEntity{Name: in.RoleName}, in.Type) - if err != nil && !common.IsIgnorableError(err) { - ctxLog.Warn("operate user role mata data failed", zap.Error(err)) - return nil, err - } - return nil, nil - })) - redoTask.AddAsyncStep(NewSimpleStep("operate user role cache", func(ctx context.Context) ([]nestedStep, error) { - var opType int32 - switch in.Type { - case milvuspb.OperateUserRoleType_AddUserToRole: - opType = int32(typeutil.CacheAddUserToRole) - case milvuspb.OperateUserRoleType_RemoveUserFromRole: - opType = int32(typeutil.CacheRemoveUserFromRole) - default: - errMsg := "invalid operate type for the OperateUserRole api" - ctxLog.Warn(errMsg, zap.Any("in", in)) - return nil, nil - } - if err := c.proxyClientManager.RefreshPolicyInfoCache(ctx, &proxypb.RefreshPolicyInfoCacheRequest{ - OpType: opType, - OpKey: funcutil.EncodeUserRoleCache(in.Username, in.RoleName), - }); err != nil { - ctxLog.Warn("fail to refresh policy info cache", zap.Any("in", in), zap.Error(err)) - return nil, err - } - return nil, nil - })) - err := redoTask.Execute(ctx) + err := executeOperateUserRoleTaskSteps(ctx, c, in) if err != nil { errMsg := "fail to execute task when operate the user and role" ctxLog.Warn(errMsg, zap.Error(err)) @@ -2678,82 +2593,7 @@ func (c *Core) OperatePrivilege(ctx context.Context, in *milvuspb.OperatePrivile } } - privName = in.Entity.Grantor.Privilege.Name - - redoTask := newBaseRedoTask(c.stepExecutor) - redoTask.AddSyncStep(NewSimpleStep("operate privilege meta data", func(ctx context.Context) ([]nestedStep, error) { - if !util.IsAnyWord(privName) { - // set up privilege name for metastore - dbPrivName, err := c.getMetastorePrivilegeName(ctx, privName) - if err != nil { - return nil, err - } - in.Entity.Grantor.Privilege.Name = dbPrivName - } - - err := c.meta.OperatePrivilege(ctx, util.DefaultTenant, in.Entity, in.Type) - if err != nil && !common.IsIgnorableError(err) { - ctxLog.Warn("fail to operate the privilege", zap.Any("in", in), zap.Error(err)) - return nil, err - } - return nil, nil - })) - redoTask.AddAsyncStep(NewSimpleStep("operate privilege cache", func(ctx context.Context) ([]nestedStep, error) { - // set back to expand privilege group - in.Entity.Grantor.Privilege.Name = privName - var opType int32 - switch in.Type { - case milvuspb.OperatePrivilegeType_Grant: - opType = int32(typeutil.CacheGrantPrivilege) - case milvuspb.OperatePrivilegeType_Revoke: - opType = int32(typeutil.CacheRevokePrivilege) - default: - log.Warn("invalid operate type for the OperatePrivilege api", zap.Any("in", in)) - return nil, nil - } - grants := []*milvuspb.GrantEntity{in.Entity} - - allGroups, err := c.getPrivilegeGroups(ctx) - if err != nil { - return nil, err - } - groups := lo.SliceToMap(allGroups, func(group *milvuspb.PrivilegeGroupInfo) (string, []*milvuspb.PrivilegeEntity) { - return group.GroupName, group.Privileges - }) - expandGrants, err := c.expandPrivilegeGroups(ctx, grants, groups) - if err != nil { - return nil, err - } - // if there is same grant in the other privilege groups, the grant should not be removed from the cache - if in.Type == milvuspb.OperatePrivilegeType_Revoke { - metaGrants, err := c.meta.SelectGrant(ctx, util.DefaultTenant, &milvuspb.GrantEntity{ - Role: in.Entity.Role, - DbName: in.Entity.DbName, - }) - if err != nil { - return nil, err - } - metaExpandGrants, err := c.expandPrivilegeGroups(ctx, metaGrants, groups) - if err != nil { - return nil, err - } - expandGrants = lo.Filter(expandGrants, func(g1 *milvuspb.GrantEntity, _ int) bool { - return !lo.ContainsBy(metaExpandGrants, func(g2 *milvuspb.GrantEntity) bool { - return proto.Equal(g1, g2) - }) - }) - } - if err := c.proxyClientManager.RefreshPolicyInfoCache(ctx, &proxypb.RefreshPolicyInfoCacheRequest{ - OpType: opType, - OpKey: funcutil.PolicyForPrivileges(expandGrants), - }); err != nil { - log.Warn("fail to refresh policy info cache", zap.Any("in", in), zap.Error(err)) - return nil, err - } - return nil, nil - })) - - err := redoTask.Execute(ctx) + err := executeOperatePrivilegeTaskSteps(ctx, c, in) if err != nil { errMsg := "fail to execute task when operating the privilege" ctxLog.Warn(errMsg, zap.Error(err)) @@ -2986,25 +2826,7 @@ func (c *Core) RestoreRBAC(ctx context.Context, in *milvuspb.RestoreRBACMetaRequ return merr.Status(err), nil } - redoTask := newBaseRedoTask(c.stepExecutor) - redoTask.AddSyncStep(NewSimpleStep("restore rbac meta data", func(ctx context.Context) ([]nestedStep, error) { - if err := c.meta.RestoreRBAC(ctx, util.DefaultTenant, in.RBACMeta); err != nil { - ctxLog.Warn("fail to restore rbac meta data", zap.Any("in", in), zap.Error(err)) - return nil, err - } - return nil, nil - })) - redoTask.AddAsyncStep(NewSimpleStep("operate privilege cache", func(ctx context.Context) ([]nestedStep, error) { - if err := c.proxyClientManager.RefreshPolicyInfoCache(c.ctx, &proxypb.RefreshPolicyInfoCacheRequest{ - OpType: int32(typeutil.CacheRefresh), - }); err != nil { - ctxLog.Warn("fail to refresh policy info cache", zap.Any("in", in), zap.Error(err)) - return nil, err - } - return nil, nil - })) - - err := redoTask.Execute(ctx) + err := executeRestoreRBACTaskSteps(ctx, c, in) if err != nil { errMsg := "fail to execute task when restore rbac meta data" ctxLog.Warn(errMsg, zap.Error(err)) @@ -3233,127 +3055,7 @@ func (c *Core) OperatePrivilegeGroup(ctx context.Context, in *milvuspb.OperatePr return merr.Status(err), nil } - redoTask := newBaseRedoTask(c.stepExecutor) - redoTask.AddSyncStep(NewSimpleStep("operate privilege group", func(ctx context.Context) ([]nestedStep, error) { - groups, err := c.meta.ListPrivilegeGroups(ctx) - if err != nil && !common.IsIgnorableError(err) { - ctxLog.Warn("fail to list privilege groups", zap.Error(err)) - return nil, err - } - currGroups := lo.SliceToMap(groups, func(group *milvuspb.PrivilegeGroupInfo) (string, []*milvuspb.PrivilegeEntity) { - return group.GroupName, group.Privileges - }) - - // get roles granted to the group - roles, err := c.meta.GetPrivilegeGroupRoles(ctx, in.GroupName) - if err != nil { - return nil, err - } - - newGroups := make(map[string][]*milvuspb.PrivilegeEntity) - for k, v := range currGroups { - if k != in.GroupName { - newGroups[k] = v - continue - } - switch in.Type { - case milvuspb.OperatePrivilegeGroupType_AddPrivilegesToGroup: - newPrivs := lo.Union(v, in.Privileges) - newGroups[k] = lo.UniqBy(newPrivs, func(p *milvuspb.PrivilegeEntity) string { - return p.Name - }) - - // check if privileges are the same object type - objectTypes := lo.SliceToMap(newPrivs, func(p *milvuspb.PrivilegeEntity) (string, struct{}) { - return util.GetObjectType(p.Name), struct{}{} - }) - if len(objectTypes) > 1 { - return nil, errors.New("privileges are not the same object type") - } - case milvuspb.OperatePrivilegeGroupType_RemovePrivilegesFromGroup: - newPrivs, _ := lo.Difference(v, in.Privileges) - newGroups[k] = newPrivs - default: - return nil, errors.New("invalid operate type") - } - } - - rolesToRevoke := []*milvuspb.GrantEntity{} - rolesToGrant := []*milvuspb.GrantEntity{} - compareGrants := func(a, b *milvuspb.GrantEntity) bool { - return a.Role.Name == b.Role.Name && - a.Object.Name == b.Object.Name && - a.ObjectName == b.ObjectName && - a.Grantor.User.Name == b.Grantor.User.Name && - a.Grantor.Privilege.Name == b.Grantor.Privilege.Name && - a.DbName == b.DbName - } - for _, role := range roles { - grants, err := c.meta.SelectGrant(ctx, util.DefaultTenant, &milvuspb.GrantEntity{ - Role: role, - DbName: util.AnyWord, - }) - if err != nil { - return nil, err - } - currGrants, err := c.expandPrivilegeGroups(ctx, grants, currGroups) - if err != nil { - return nil, err - } - newGrants, err := c.expandPrivilegeGroups(ctx, grants, newGroups) - if err != nil { - return nil, err - } - - toRevoke := lo.Filter(currGrants, func(item *milvuspb.GrantEntity, _ int) bool { - return !lo.ContainsBy(newGrants, func(newItem *milvuspb.GrantEntity) bool { - return compareGrants(item, newItem) - }) - }) - - toGrant := lo.Filter(newGrants, func(item *milvuspb.GrantEntity, _ int) bool { - return !lo.ContainsBy(currGrants, func(currItem *milvuspb.GrantEntity) bool { - return compareGrants(item, currItem) - }) - }) - - rolesToRevoke = append(rolesToRevoke, toRevoke...) - rolesToGrant = append(rolesToGrant, toGrant...) - } - - if len(rolesToRevoke) > 0 { - opType := int32(typeutil.CacheRevokePrivilege) - if err := c.proxyClientManager.RefreshPolicyInfoCache(ctx, &proxypb.RefreshPolicyInfoCacheRequest{ - OpType: opType, - OpKey: funcutil.PolicyForPrivileges(rolesToRevoke), - }); err != nil { - ctxLog.Warn("fail to refresh policy info cache for revoke privileges in operate privilege group", zap.Any("in", in), zap.Error(err)) - return nil, err - } - } - - if len(rolesToGrant) > 0 { - opType := int32(typeutil.CacheGrantPrivilege) - if err := c.proxyClientManager.RefreshPolicyInfoCache(ctx, &proxypb.RefreshPolicyInfoCacheRequest{ - OpType: opType, - OpKey: funcutil.PolicyForPrivileges(rolesToGrant), - }); err != nil { - ctxLog.Warn("fail to refresh policy info cache for grants privilege in operate privilege group", zap.Any("in", in), zap.Error(err)) - return nil, err - } - } - return nil, nil - })) - - redoTask.AddSyncStep(NewSimpleStep("operate privilege group meta data", func(ctx context.Context) ([]nestedStep, error) { - err := c.meta.OperatePrivilegeGroup(ctx, in.GroupName, in.Privileges, in.Type) - if err != nil && !common.IsIgnorableError(err) { - ctxLog.Warn("fail to operate privilege group", zap.Error(err)) - } - return nil, err - })) - - err := redoTask.Execute(ctx) + err := executeOperatePrivilegeGroupTaskSteps(ctx, c, in) if err != nil { errMsg := "fail to execute task when operate privilege group" ctxLog.Warn(errMsg, zap.Error(err)) diff --git a/internal/rootcoord/task_test.go b/internal/rootcoord/task_test.go index 09f0eb5a9771d..043885eab9e58 100644 --- a/internal/rootcoord/task_test.go +++ b/internal/rootcoord/task_test.go @@ -156,9 +156,10 @@ func TestGetLockerKey(t *testing.T) { DbName: "foo", CollectionName: "bar", }, + collID: 10, } key := tt.GetLockerKey() - assert.Equal(t, GetLockerKeyString(key), "$-0-false|foo-1-false|bar-2-true") + assert.Equal(t, GetLockerKeyString(key), "$-0-false|foo-1-false|10-2-true") }) t.Run("create database task locker key", func(t *testing.T) { tt := &createDatabaseTask{ @@ -259,14 +260,26 @@ func TestGetLockerKey(t *testing.T) { assert.Equal(t, GetLockerKeyString(key), "$-0-false|foo-1-false|111-2-true") }) t.Run("drop collection task locker key", func(t *testing.T) { + metaMock := mockrootcoord.NewIMetaTable(t) + metaMock.EXPECT().GetCollectionByName(mock.Anything, mock.Anything, mock.Anything, mock.Anything). + RunAndReturn(func(ctx context.Context, s string, s2 string, u uint64) (*model.Collection, error) { + return &model.Collection{ + Name: "bar", + CollectionID: 111, + }, nil + }) + c := &Core{ + meta: metaMock, + } tt := &dropCollectionTask{ + baseTask: baseTask{core: c}, Req: &milvuspb.DropCollectionRequest{ DbName: "foo", CollectionName: "bar", }, } key := tt.GetLockerKey() - assert.Equal(t, GetLockerKeyString(key), "$-0-false|foo-1-false|bar-2-true") + assert.Equal(t, GetLockerKeyString(key), "$-0-false|foo-1-false|111-2-true") }) t.Run("drop database task locker key", func(t *testing.T) { tt := &dropDatabaseTask{ From 4245c5bed1f109993c2695aa0a0c559467b3f7c1 Mon Sep 17 00:00:00 2001 From: Spade A <71589810+SpadeA-Tang@users.noreply.github.com> Date: Fri, 3 Jan 2025 14:20:55 +0800 Subject: [PATCH 57/69] fix: text match panics when enable_match is set be false (#38950) fix: https://github.com/milvus-io/milvus/issues/38949 --------- Signed-off-by: SpadeA-Tang --- internal/core/src/common/EasyAssert.h | 1 + internal/core/src/segcore/SegmentGrowingImpl.cpp | 6 +++++- internal/core/src/segcore/SegmentInterface.cpp | 7 +++++-- internal/parser/planparserv2/parser_visitor.go | 6 +++++- .../parser/planparserv2/plan_parser_v2_test.go | 16 ++++++++++++++++ pkg/util/typeutil/schema.go | 8 ++++++++ 6 files changed, 40 insertions(+), 4 deletions(-) diff --git a/internal/core/src/common/EasyAssert.h b/internal/core/src/common/EasyAssert.h index 22726938ffbdc..8258438b28052 100644 --- a/internal/core/src/common/EasyAssert.h +++ b/internal/core/src/common/EasyAssert.h @@ -69,6 +69,7 @@ enum ErrorCode { FollyCancel = 2038, OutOfRange = 2039, GcpNativeError = 2040, + TextIndexNotFound = 2041, KnowhereError = 2099 }; diff --git a/internal/core/src/segcore/SegmentGrowingImpl.cpp b/internal/core/src/segcore/SegmentGrowingImpl.cpp index 0ab4825d0e10e..ccc793fbb65b0 100644 --- a/internal/core/src/segcore/SegmentGrowingImpl.cpp +++ b/internal/core/src/segcore/SegmentGrowingImpl.cpp @@ -863,7 +863,11 @@ SegmentGrowingImpl::AddTexts(milvus::FieldId field_id, int64_t offset_begin) { std::unique_lock lock(mutex_); auto iter = text_indexes_.find(field_id); - AssertInfo(iter != text_indexes_.end(), "text index not found"); + if (iter == text_indexes_.end()) { + throw SegcoreError( + ErrorCode::TextIndexNotFound, + fmt::format("text index not found for field {}", field_id.get())); + } iter->second->AddTexts(n, texts, texts_valid_data, offset_begin); } diff --git a/internal/core/src/segcore/SegmentInterface.cpp b/internal/core/src/segcore/SegmentInterface.cpp index ee31b16d5fab4..f9c9ab615790a 100644 --- a/internal/core/src/segcore/SegmentInterface.cpp +++ b/internal/core/src/segcore/SegmentInterface.cpp @@ -396,8 +396,11 @@ index::TextMatchIndex* SegmentInternalInterface::GetTextIndex(FieldId field_id) const { std::shared_lock lock(mutex_); auto iter = text_indexes_.find(field_id); - AssertInfo(iter != text_indexes_.end(), - "failed to get text index, text index not found"); + if (iter == text_indexes_.end()) { + throw SegcoreError( + ErrorCode::TextIndexNotFound, + fmt::format("text index not found for field {}", field_id.get())); + } return iter->second.get(); } diff --git a/internal/parser/planparserv2/parser_visitor.go b/internal/parser/planparserv2/parser_visitor.go index 9da5075f67c49..fa7363c39151d 100644 --- a/internal/parser/planparserv2/parser_visitor.go +++ b/internal/parser/planparserv2/parser_visitor.go @@ -486,6 +486,10 @@ func (v *ParserVisitor) VisitTextMatch(ctx *parser.TextMatchContext) interface{} if err != nil { return err } + columnInfo := toColumnInfo(column) + if !v.schema.IsFieldTextMatchEnabled(columnInfo.FieldId) { + return fmt.Errorf("field %v does not enable text match", columnInfo.FieldId) + } if !typeutil.IsStringType(column.dataType) { return fmt.Errorf("text match operation on non-string is unsupported") } @@ -499,7 +503,7 @@ func (v *ParserVisitor) VisitTextMatch(ctx *parser.TextMatchContext) interface{} expr: &planpb.Expr{ Expr: &planpb.Expr_UnaryRangeExpr{ UnaryRangeExpr: &planpb.UnaryRangeExpr{ - ColumnInfo: toColumnInfo(column), + ColumnInfo: columnInfo, Op: planpb.OpType_TextMatch, Value: NewString(queryText), }, diff --git a/internal/parser/planparserv2/plan_parser_v2_test.go b/internal/parser/planparserv2/plan_parser_v2_test.go index 50b3447dd86f3..4c3a665930885 100644 --- a/internal/parser/planparserv2/plan_parser_v2_test.go +++ b/internal/parser/planparserv2/plan_parser_v2_test.go @@ -10,6 +10,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/milvus-io/milvus-proto/go-api/v2/commonpb" "github.com/milvus-io/milvus-proto/go-api/v2/schemapb" "github.com/milvus-io/milvus/internal/proto/planpb" "github.com/milvus-io/milvus/pkg/common" @@ -53,6 +54,16 @@ func newTestSchema(EnableDynamicField bool) *schemapb.CollectionSchema { } } +func enableMatch(schema *schemapb.CollectionSchema) { + for _, field := range schema.Fields { + if typeutil.IsStringType(field.DataType) { + field.TypeParams = append(field.TypeParams, &commonpb.KeyValuePair{ + Key: "enable_match", Value: "True", + }) + } + } +} + func newTestSchemaHelper(t *testing.T) *typeutil.SchemaHelper { schema := newTestSchema(true) schemaHelper, err := typeutil.CreateSchemaHelper(schema) @@ -221,6 +232,11 @@ func TestExpr_TextMatch(t *testing.T) { exprStrs := []string{ `text_match(VarCharField, "query")`, } + for _, exprStr := range exprStrs { + assertInvalidExpr(t, helper, exprStr) + } + + enableMatch(schema) for _, exprStr := range exprStrs { assertValidExpr(t, helper, exprStr) } diff --git a/pkg/util/typeutil/schema.go b/pkg/util/typeutil/schema.go index 8596628ad65a7..d0f89baab5295 100644 --- a/pkg/util/typeutil/schema.go +++ b/pkg/util/typeutil/schema.go @@ -389,6 +389,14 @@ func (helper *SchemaHelper) IsFieldLoaded(fieldID int64) bool { return helper.loadFields.Contain(fieldID) } +func (helper *SchemaHelper) IsFieldTextMatchEnabled(fieldId int64) bool { + sche, err := helper.GetFieldFromID(fieldId) + if err != nil { + return false + } + return CreateFieldSchemaHelper(sche).EnableMatch() +} + func (helper *SchemaHelper) getDefaultJSONField(fieldName string) (*schemapb.FieldSchema, error) { for _, f := range helper.schema.GetFields() { if f.DataType == schemapb.DataType_JSON && f.IsDynamic { From 1825ab54dfd0c3459b4a94289adcbab6833759cf Mon Sep 17 00:00:00 2001 From: nico <109071306+NicoYuan1986@users.noreply.github.com> Date: Fri, 3 Jan 2025 14:26:54 +0800 Subject: [PATCH 58/69] enhance: delete one pod pipeline in nightly and open mmap in standalone (#38887) Signed-off-by: nico --- ci/jenkins/Nightly2.groovy | 2 +- tests/_helm/values/e2e/standalone-kafka-mmap | 1 + tests/_helm/values/nightly/standalone | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ci/jenkins/Nightly2.groovy b/ci/jenkins/Nightly2.groovy index 17afcc7c54c15..1355eb5899682 100644 --- a/ci/jenkins/Nightly2.groovy +++ b/ci/jenkins/Nightly2.groovy @@ -96,7 +96,7 @@ pipeline { axes { axis { name 'milvus_deployment_option' - values 'standalone', 'distributed-pulsar', 'distributed-kafka', 'standalone-authentication', 'standalone-one-pod' + values 'standalone', 'distributed-pulsar', 'distributed-kafka', 'standalone-authentication' } } stages { diff --git a/tests/_helm/values/e2e/standalone-kafka-mmap b/tests/_helm/values/e2e/standalone-kafka-mmap index 6464c2e79dcff..95baee2b471a1 100644 --- a/tests/_helm/values/e2e/standalone-kafka-mmap +++ b/tests/_helm/values/e2e/standalone-kafka-mmap @@ -263,6 +263,7 @@ queryNode: vectorIndex: true scalarField: true scalarIndex: true + growingMmapEnabled: true rootCoordinator: resources: limits: diff --git a/tests/_helm/values/nightly/standalone b/tests/_helm/values/nightly/standalone index 98de25b173cc6..11e7f768106fb 100644 --- a/tests/_helm/values/nightly/standalone +++ b/tests/_helm/values/nightly/standalone @@ -68,6 +68,12 @@ queryNode: profiling: enabled: true replicas: 2 + mmap: + vectorField: true + vectorIndex: true + scalarField: true + scalarIndex: true + growingMmapEnabled: true service: type: ClusterIP standalone: From af08b5b31190bcf91156084f08834df0ab102b8f Mon Sep 17 00:00:00 2001 From: foxspy Date: Fri, 3 Jan 2025 14:28:53 +0800 Subject: [PATCH 59/69] enhance: Update Knowhere version (#38942) Signed-off-by: xianliang.li --- internal/core/thirdparty/knowhere/CMakeLists.txt | 2 +- tests/go_client/testcases/groupby_search_test.go | 2 -- tests/python_client/testcases/test_search.py | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/internal/core/thirdparty/knowhere/CMakeLists.txt b/internal/core/thirdparty/knowhere/CMakeLists.txt index 32192f16e3bee..6e7d78a4400fb 100644 --- a/internal/core/thirdparty/knowhere/CMakeLists.txt +++ b/internal/core/thirdparty/knowhere/CMakeLists.txt @@ -14,7 +14,7 @@ # Update KNOWHERE_VERSION for the first occurrence milvus_add_pkg_config("knowhere") set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES "") -set( KNOWHERE_VERSION 52c03030 ) +set( KNOWHERE_VERSION 1cb3f0e ) set( GIT_REPOSITORY "https://github.com/zilliztech/knowhere.git") message(STATUS "Knowhere repo: ${GIT_REPOSITORY}") message(STATUS "Knowhere version: ${KNOWHERE_VERSION}") diff --git a/tests/go_client/testcases/groupby_search_test.go b/tests/go_client/testcases/groupby_search_test.go index a1fab2bf76763..7ad196d633242 100644 --- a/tests/go_client/testcases/groupby_search_test.go +++ b/tests/go_client/testcases/groupby_search_test.go @@ -50,10 +50,8 @@ func genGroupByBinaryIndex(metricType entity.MetricType) []index.Index { func genUnsupportedFloatGroupByIndex() []index.Index { idxIvfPq := index.NewIvfPQIndex(entity.L2, 128, 16, 8) - idxScann := index.NewSCANNIndex(entity.L2, 16, false) return []index.Index{ idxIvfPq, - idxScann, } } diff --git a/tests/python_client/testcases/test_search.py b/tests/python_client/testcases/test_search.py index 1a008acdd226c..acd7ac568bdf1 100644 --- a/tests/python_client/testcases/test_search.py +++ b/tests/python_client/testcases/test_search.py @@ -10610,7 +10610,7 @@ def test_search_group_by_unsupported_index(self, index): 3. search with group by verify: the error code and msg """ - if index in ["HNSW", "IVF_FLAT", "FLAT", "IVF_SQ8", "DISKANN"]: + if index in ["HNSW", "IVF_FLAT", "FLAT", "IVF_SQ8", "DISKANN", "SCANN"]: pass # Only HNSW and IVF_FLAT are supported else: metric = "L2" From c6a7f481231bc2da4563337133c1049bca3f06d5 Mon Sep 17 00:00:00 2001 From: Bingyi Sun Date: Fri, 3 Jan 2025 17:50:54 +0800 Subject: [PATCH 60/69] enhance: Fix using wrong pool for warmup (#38941) Signed-off-by: sunby --- internal/querynodev2/segments/segment.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/querynodev2/segments/segment.go b/internal/querynodev2/segments/segment.go index 6546cee1e3cb0..78401e5e73a0c 100644 --- a/internal/querynodev2/segments/segment.go +++ b/internal/querynodev2/segments/segment.go @@ -1394,7 +1394,7 @@ func (d *AsyncWarmupDispatcher) Run(ctx context.Context) { case <-ctx.Done(): return default: - GetDynamicPool().Submit(task) + GetWarmupPool().Submit(task) } } From 4966230d86438e12c5f1a4315714345a3108e1c7 Mon Sep 17 00:00:00 2001 From: congqixia Date: Fri, 3 Jan 2025 18:12:54 +0800 Subject: [PATCH 61/69] enhance: [GoSDK] Support Resource Group Controlling APIs (#38940) Related to #30647 This PR add APIs: - DescribeResourceGroup - UpdateResourceGroup - TransferReplica Signed-off-by: Congqi Xia --- client/entity/resource_group.go | 54 ++++++ client/milvusclient/resource_group.go | 79 +++++++++ client/milvusclient/resource_group_option.go | 101 +++++++++++ client/milvusclient/resource_group_test.go | 168 +++++++++++++++++++ 4 files changed, 402 insertions(+) create mode 100644 client/entity/resource_group.go diff --git a/client/entity/resource_group.go b/client/entity/resource_group.go new file mode 100644 index 0000000000000..09d5af6c367a8 --- /dev/null +++ b/client/entity/resource_group.go @@ -0,0 +1,54 @@ +// Licensed to the LF AI & Data foundation under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package entity + +type ResourceGroup struct { + Name string + Capacity int32 + NumAvailableNode int32 + NumLoadedReplica map[string]int32 + NumOutgoingNode map[string]int32 + NumIncomingNode map[string]int32 + Config *ResourceGroupConfig + Nodes []NodeInfo +} + +type NodeInfo struct { + NodeID int64 + Address string + HostName string +} + +type ResourceGroupLimit struct { + NodeNum int32 +} + +type ResourceGroupTransfer struct { + ResourceGroup string +} + +type ResourceGroupNodeFilter struct { + NodeLabels map[string]string +} + +type ResourceGroupConfig struct { + Requests ResourceGroupLimit + Limits ResourceGroupLimit + TransferFrom []*ResourceGroupTransfer + TransferTo []*ResourceGroupTransfer + NodeFilter ResourceGroupNodeFilter +} diff --git a/client/milvusclient/resource_group.go b/client/milvusclient/resource_group.go index e91654548dfaf..153b3bcbfa68f 100644 --- a/client/milvusclient/resource_group.go +++ b/client/milvusclient/resource_group.go @@ -19,9 +19,13 @@ package milvusclient import ( "context" + "github.com/samber/lo" "google.golang.org/grpc" + "github.com/milvus-io/milvus-proto/go-api/v2/commonpb" "github.com/milvus-io/milvus-proto/go-api/v2/milvuspb" + "github.com/milvus-io/milvus-proto/go-api/v2/rgpb" + "github.com/milvus-io/milvus/client/v2/entity" "github.com/milvus-io/milvus/pkg/util/merr" ) @@ -63,3 +67,78 @@ func (c *Client) DropResourceGroup(ctx context.Context, opt DropResourceGroupOpt return err } + +func (c *Client) DescribeResourceGroup(ctx context.Context, opt DescribeResourceGroupOption, callOptions ...grpc.CallOption) (*entity.ResourceGroup, error) { + req := opt.Request() + + var rg *entity.ResourceGroup + err := c.callService(func(milvusService milvuspb.MilvusServiceClient) error { + resp, err := milvusService.DescribeResourceGroup(ctx, req, callOptions...) + if err = merr.CheckRPCCall(resp, err); err != nil { + return err + } + + resultRg := resp.GetResourceGroup() + rg = &entity.ResourceGroup{ + Name: resultRg.GetName(), + Capacity: resultRg.GetCapacity(), + NumAvailableNode: resultRg.GetNumAvailableNode(), + NumLoadedReplica: resultRg.GetNumLoadedReplica(), + NumOutgoingNode: resultRg.GetNumOutgoingNode(), + NumIncomingNode: resultRg.GetNumIncomingNode(), + Config: &entity.ResourceGroupConfig{ + Requests: entity.ResourceGroupLimit{ + NodeNum: resultRg.GetConfig().GetRequests().GetNodeNum(), + }, + Limits: entity.ResourceGroupLimit{ + NodeNum: resultRg.GetConfig().GetLimits().GetNodeNum(), + }, + TransferFrom: lo.Map(resultRg.GetConfig().GetTransferFrom(), func(transfer *rgpb.ResourceGroupTransfer, i int) *entity.ResourceGroupTransfer { + return &entity.ResourceGroupTransfer{ + ResourceGroup: transfer.GetResourceGroup(), + } + }), + TransferTo: lo.Map(resultRg.GetConfig().GetTransferTo(), func(transfer *rgpb.ResourceGroupTransfer, i int) *entity.ResourceGroupTransfer { + return &entity.ResourceGroupTransfer{ + ResourceGroup: transfer.GetResourceGroup(), + } + }), + NodeFilter: entity.ResourceGroupNodeFilter{ + NodeLabels: entity.KvPairsMap(resultRg.GetConfig().GetNodeFilter().GetNodeLabels()), + }, + }, + Nodes: lo.Map(resultRg.GetNodes(), func(node *commonpb.NodeInfo, i int) entity.NodeInfo { + return entity.NodeInfo{ + NodeID: node.GetNodeId(), + Address: node.GetAddress(), + HostName: node.GetHostname(), + } + }), + } + + return nil + }) + return rg, err +} + +func (c *Client) UpdateResourceGroup(ctx context.Context, opt UpdateResourceGroupOption, callOptions ...grpc.CallOption) error { + req := opt.Request() + + err := c.callService(func(milvusService milvuspb.MilvusServiceClient) error { + resp, err := milvusService.UpdateResourceGroups(ctx, req, callOptions...) + return merr.CheckRPCCall(resp, err) + }) + + return err +} + +func (c *Client) TransferReplica(ctx context.Context, opt TransferReplicaOption, callOptions ...grpc.CallOption) error { + req := opt.Request() + + err := c.callService(func(milvusService milvuspb.MilvusServiceClient) error { + resp, err := milvusService.TransferReplica(ctx, req, callOptions...) + return merr.CheckRPCCall(resp, err) + }) + + return err +} diff --git a/client/milvusclient/resource_group_option.go b/client/milvusclient/resource_group_option.go index 5f70f69d0b597..6c71405591a40 100644 --- a/client/milvusclient/resource_group_option.go +++ b/client/milvusclient/resource_group_option.go @@ -17,8 +17,11 @@ package milvusclient import ( + "github.com/samber/lo" + "github.com/milvus-io/milvus-proto/go-api/v2/milvuspb" "github.com/milvus-io/milvus-proto/go-api/v2/rgpb" + "github.com/milvus-io/milvus/client/v2/entity" ) type ListResourceGroupsOption interface { @@ -90,3 +93,101 @@ func (opt *dropResourceGroupOption) Request() *milvuspb.DropResourceGroupRequest func NewDropResourceGroupOption(name string) *dropResourceGroupOption { return &dropResourceGroupOption{name: name} } + +type DescribeResourceGroupOption interface { + Request() *milvuspb.DescribeResourceGroupRequest +} + +type describeResourceGroupOption struct { + name string +} + +func (opt *describeResourceGroupOption) Request() *milvuspb.DescribeResourceGroupRequest { + return &milvuspb.DescribeResourceGroupRequest{ + ResourceGroup: opt.name, + } +} + +func NewDescribeResourceGroupOption(name string) *describeResourceGroupOption { + return &describeResourceGroupOption{name: name} +} + +type UpdateResourceGroupOption interface { + Request() *milvuspb.UpdateResourceGroupsRequest +} + +type updateResourceGroupOption struct { + name string + rgConfig *entity.ResourceGroupConfig +} + +func (opt *updateResourceGroupOption) Request() *milvuspb.UpdateResourceGroupsRequest { + return &milvuspb.UpdateResourceGroupsRequest{ + ResourceGroups: map[string]*rgpb.ResourceGroupConfig{ + opt.name: { + Requests: &rgpb.ResourceGroupLimit{ + NodeNum: opt.rgConfig.Requests.NodeNum, + }, + Limits: &rgpb.ResourceGroupLimit{ + NodeNum: opt.rgConfig.Limits.NodeNum, + }, + TransferFrom: lo.Map(opt.rgConfig.TransferFrom, func(transfer *entity.ResourceGroupTransfer, i int) *rgpb.ResourceGroupTransfer { + return &rgpb.ResourceGroupTransfer{ + ResourceGroup: transfer.ResourceGroup, + } + }), + TransferTo: lo.Map(opt.rgConfig.TransferTo, func(transfer *entity.ResourceGroupTransfer, i int) *rgpb.ResourceGroupTransfer { + return &rgpb.ResourceGroupTransfer{ + ResourceGroup: transfer.ResourceGroup, + } + }), + NodeFilter: &rgpb.ResourceGroupNodeFilter{ + NodeLabels: entity.MapKvPairs(opt.rgConfig.NodeFilter.NodeLabels), + }, + }, + }, + } +} + +func NewUpdateResourceGroupOption(name string, resourceGroupConfig *entity.ResourceGroupConfig) *updateResourceGroupOption { + return &updateResourceGroupOption{ + name: name, + rgConfig: resourceGroupConfig, + } +} + +type TransferReplicaOption interface { + Request() *milvuspb.TransferReplicaRequest +} + +type transferReplicaOption struct { + collectionName string + sourceRG string + targetRG string + replicaNum int64 + dbName string +} + +func (opt *transferReplicaOption) WithDBName(dbName string) *transferReplicaOption { + opt.dbName = dbName + return opt +} + +func (opt *transferReplicaOption) Request() *milvuspb.TransferReplicaRequest { + return &milvuspb.TransferReplicaRequest{ + CollectionName: opt.collectionName, + SourceResourceGroup: opt.sourceRG, + TargetResourceGroup: opt.targetRG, + NumReplica: opt.replicaNum, + DbName: opt.dbName, + } +} + +func NewTransferReplicaOption(collectionName, sourceGroup, targetGroup string, replicaNum int64) *transferReplicaOption { + return &transferReplicaOption{ + collectionName: collectionName, + sourceRG: sourceGroup, + targetRG: targetGroup, + replicaNum: replicaNum, + } +} diff --git a/client/milvusclient/resource_group_test.go b/client/milvusclient/resource_group_test.go index 2e87647bf0965..757ecf305d690 100644 --- a/client/milvusclient/resource_group_test.go +++ b/client/milvusclient/resource_group_test.go @@ -19,14 +19,19 @@ package milvusclient import ( "context" "fmt" + "math/rand" "testing" "github.com/cockroachdb/errors" + "github.com/samber/lo" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/suite" "github.com/milvus-io/milvus-proto/go-api/v2/commonpb" "github.com/milvus-io/milvus-proto/go-api/v2/milvuspb" + "github.com/milvus-io/milvus-proto/go-api/v2/rgpb" + "github.com/milvus-io/milvus/client/v2/entity" + "github.com/milvus-io/milvus/pkg/util/merr" ) type ResourceGroupSuite struct { @@ -103,6 +108,169 @@ func (s *ResourceGroupSuite) TestDropResourceGroup() { }) } +func (s *ResourceGroupSuite) TestDescribeResourceGroup() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + s.Run("success", func() { + limit := rand.Int31n(10) + 1 + request := rand.Int31n(10) + 1 + rgName := fmt.Sprintf("rg_%s", s.randString(6)) + transferFroms := []string{s.randString(6), s.randString(6)} + transferTos := []string{s.randString(6), s.randString(6)} + labels := map[string]string{ + "label1": s.randString(10), + } + node := entity.NodeInfo{ + NodeID: rand.Int63(), + Address: s.randString(6), + HostName: s.randString(10), + } + s.mock.EXPECT().DescribeResourceGroup(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, drgr *milvuspb.DescribeResourceGroupRequest) (*milvuspb.DescribeResourceGroupResponse, error) { + s.Equal(rgName, drgr.GetResourceGroup()) + return &milvuspb.DescribeResourceGroupResponse{ + ResourceGroup: &milvuspb.ResourceGroup{ + Name: rgName, + Config: &rgpb.ResourceGroupConfig{ + Requests: &rgpb.ResourceGroupLimit{ + NodeNum: request, + }, + Limits: &rgpb.ResourceGroupLimit{ + NodeNum: limit, + }, + TransferFrom: lo.Map(transferFroms, func(transfer string, i int) *rgpb.ResourceGroupTransfer { + return &rgpb.ResourceGroupTransfer{ + ResourceGroup: transfer, + } + }), + TransferTo: lo.Map(transferTos, func(transfer string, i int) *rgpb.ResourceGroupTransfer { + return &rgpb.ResourceGroupTransfer{ + ResourceGroup: transfer, + } + }), + NodeFilter: &rgpb.ResourceGroupNodeFilter{ + NodeLabels: entity.MapKvPairs(labels), + }, + }, + Nodes: []*commonpb.NodeInfo{ + {NodeId: node.NodeID, Address: node.Address, Hostname: node.HostName}, + }, + }, + }, nil + }).Once() + opt := NewDescribeResourceGroupOption(rgName) + rg, err := s.client.DescribeResourceGroup(ctx, opt) + s.NoError(err) + s.Equal(rgName, rg.Name) + s.Equal(limit, rg.Config.Limits.NodeNum) + s.Equal(request, rg.Config.Requests.NodeNum) + s.ElementsMatch(lo.Map(transferFroms, func(transferFrom string, _ int) *entity.ResourceGroupTransfer { + return &entity.ResourceGroupTransfer{ResourceGroup: transferFrom} + }), rg.Config.TransferFrom) + s.ElementsMatch(lo.Map(transferTos, func(transferTo string, _ int) *entity.ResourceGroupTransfer { + return &entity.ResourceGroupTransfer{ResourceGroup: transferTo} + }), rg.Config.TransferTo) + s.Equal(labels, rg.Config.NodeFilter.NodeLabels) + s.ElementsMatch([]entity.NodeInfo{node}, rg.Nodes) + }) + + s.Run("failure", func() { + rgName := fmt.Sprintf("rg_%s", s.randString(6)) + s.mock.EXPECT().DescribeResourceGroup(mock.Anything, mock.Anything).Return(nil, errors.New("mocked")).Once() + opt := NewDescribeResourceGroupOption(rgName) + _, err := s.client.DescribeResourceGroup(ctx, opt) + s.Error(err) + }) +} + +func (s *ResourceGroupSuite) TestUpdateResourceGroup() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + s.Run("success", func() { + limit := rand.Int31n(10) + 1 + request := rand.Int31n(10) + 1 + rgName := fmt.Sprintf("rg_%s", s.randString(6)) + transferFroms := []string{s.randString(6), s.randString(6)} + transferTos := []string{s.randString(6), s.randString(6)} + labels := map[string]string{ + "label1": s.randString(10), + } + s.mock.EXPECT().UpdateResourceGroups(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, urgr *milvuspb.UpdateResourceGroupsRequest) (*commonpb.Status, error) { + config, ok := urgr.GetResourceGroups()[rgName] + s.Require().True(ok) + s.Equal(request, config.GetRequests().GetNodeNum()) + s.Equal(limit, config.GetLimits().GetNodeNum()) + s.ElementsMatch(transferFroms, lo.Map(config.GetTransferFrom(), func(transfer *rgpb.ResourceGroupTransfer, i int) string { + return transfer.GetResourceGroup() + })) + s.ElementsMatch(transferTos, lo.Map(config.GetTransferTo(), func(transfer *rgpb.ResourceGroupTransfer, i int) string { + return transfer.GetResourceGroup() + })) + s.Equal(labels, entity.KvPairsMap(config.GetNodeFilter().GetNodeLabels())) + return merr.Success(), nil + }).Once() + opt := NewUpdateResourceGroupOption(rgName, &entity.ResourceGroupConfig{ + Requests: entity.ResourceGroupLimit{NodeNum: request}, + Limits: entity.ResourceGroupLimit{NodeNum: limit}, + TransferFrom: []*entity.ResourceGroupTransfer{ + {ResourceGroup: transferFroms[0]}, + {ResourceGroup: transferFroms[1]}, + }, + TransferTo: []*entity.ResourceGroupTransfer{ + {ResourceGroup: transferTos[0]}, + {ResourceGroup: transferTos[1]}, + }, + NodeFilter: entity.ResourceGroupNodeFilter{ + NodeLabels: labels, + }, + }) + err := s.client.UpdateResourceGroup(ctx, opt) + s.NoError(err) + }) + + s.Run("failure", func() { + rgName := fmt.Sprintf("rg_%s", s.randString(6)) + s.mock.EXPECT().UpdateResourceGroups(mock.Anything, mock.Anything).Return(nil, errors.New("mocked")).Once() + opt := NewUpdateResourceGroupOption(rgName, &entity.ResourceGroupConfig{}) + err := s.client.UpdateResourceGroup(ctx, opt) + s.Error(err) + }) +} + +func (s *ResourceGroupSuite) TestTransferReplica() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + s.Run("success", func() { + collName := fmt.Sprintf("rg_%s", s.randString(6)) + dbName := fmt.Sprintf("db_%s", s.randString(6)) + from := fmt.Sprintf("rg_%s", s.randString(6)) + to := fmt.Sprintf("rg_%s", s.randString(6)) + replicaNum := rand.Int63n(10) + 1 + s.mock.EXPECT().TransferReplica(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, tr *milvuspb.TransferReplicaRequest) (*commonpb.Status, error) { + s.Equal(collName, tr.GetCollectionName()) + s.Equal(dbName, tr.GetDbName()) + s.Equal(from, tr.GetSourceResourceGroup()) + s.Equal(to, tr.GetTargetResourceGroup()) + return merr.Success(), nil + }).Once() + opt := NewTransferReplicaOption(collName, from, to, replicaNum).WithDBName(dbName) + err := s.client.TransferReplica(ctx, opt) + s.NoError(err) + }) + + s.Run("failure", func() { + rgName := fmt.Sprintf("rg_%s", s.randString(6)) + from := fmt.Sprintf("rg_%s", s.randString(6)) + to := fmt.Sprintf("rg_%s", s.randString(6)) + s.mock.EXPECT().TransferReplica(mock.Anything, mock.Anything).Return(nil, errors.New("mocked")).Once() + opt := NewTransferReplicaOption(rgName, from, to, 1) + err := s.client.TransferReplica(ctx, opt) + s.Error(err) + }) +} + func TestResourceGroup(t *testing.T) { suite.Run(t, new(ResourceGroupSuite)) } From 90167640c423bc9cd616ccaba4071d9f0eca128b Mon Sep 17 00:00:00 2001 From: sre-ci-robot Date: Fri, 3 Jan 2025 12:00:48 +0000 Subject: [PATCH 62/69] Update all contributors Signed-off-by: sre-ci-robot --- README.md | 3 ++- README_CN.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cafb504d07f4f..ce8c61176181a 100644 --- a/README.md +++ b/README.md @@ -244,7 +244,7 @@ Reference to cite when you use Milvus in a research paper: } ``` -
+
@@ -334,6 +334,7 @@ Reference to cite when you use Milvus in a research paper: + diff --git a/README_CN.md b/README_CN.md index e1526e5695197..6789b3fa6ad3c 100644 --- a/README_CN.md +++ b/README_CN.md @@ -183,7 +183,7 @@ Milvus [训练营](https://github.com/milvus-io/bootcamp)能够帮助你了解 ### All contributors
-
+
@@ -273,6 +273,7 @@ Milvus [训练营](https://github.com/milvus-io/bootcamp)能够帮助你了解 + From 11bfc936831ac1c4d1080ba8c9efcfeb3aa6c6bd Mon Sep 17 00:00:00 2001 From: sre-ci-robot <56469371+sre-ci-robot@users.noreply.github.com> Date: Sat, 4 Jan 2025 01:16:53 +0800 Subject: [PATCH 63/69] [automated] Update Knowhere Commit (#38993) Update Knowhere Commit Signed-off-by: sre-ci-robot sre-ci-robot@users.noreply.github.com Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- internal/core/thirdparty/knowhere/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/core/thirdparty/knowhere/CMakeLists.txt b/internal/core/thirdparty/knowhere/CMakeLists.txt index 6e7d78a4400fb..f7d697b04683e 100644 --- a/internal/core/thirdparty/knowhere/CMakeLists.txt +++ b/internal/core/thirdparty/knowhere/CMakeLists.txt @@ -14,7 +14,7 @@ # Update KNOWHERE_VERSION for the first occurrence milvus_add_pkg_config("knowhere") set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES "") -set( KNOWHERE_VERSION 1cb3f0e ) +set( KNOWHERE_VERSION 9a6a8dfb ) set( GIT_REPOSITORY "https://github.com/zilliztech/knowhere.git") message(STATUS "Knowhere repo: ${GIT_REPOSITORY}") message(STATUS "Knowhere version: ${KNOWHERE_VERSION}") From 9672eee78adc9f7bb69b984829b82b4100636a26 Mon Sep 17 00:00:00 2001 From: "cai.zhang" Date: Sun, 5 Jan 2025 18:53:01 +0800 Subject: [PATCH 64/69] enhance: Increase the buffer capacity of notifyIndexChan to support concurrency (#38957) Signed-off-by: Cai Zhang --- internal/datacoord/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/datacoord/server.go b/internal/datacoord/server.go index b5c0ac15dc29f..ada34adad3c63 100644 --- a/internal/datacoord/server.go +++ b/internal/datacoord/server.go @@ -213,7 +213,7 @@ func CreateServer(ctx context.Context, factory dependency.Factory, opts ...Optio quitCh: make(chan struct{}), factory: factory, flushCh: make(chan UniqueID, 1024), - notifyIndexChan: make(chan UniqueID), + notifyIndexChan: make(chan UniqueID, 1024), dataNodeCreator: defaultDataNodeCreatorFunc, indexNodeCreator: defaultIndexNodeCreatorFunc, rootCoordClientCreator: defaultRootCoordCreatorFunc, From bd280d6f98b145cd9357972b08944f7aadd11be5 Mon Sep 17 00:00:00 2001 From: "cai.zhang" Date: Sun, 5 Jan 2025 18:55:00 +0800 Subject: [PATCH 65/69] fix: expression with capital AND and OR are not recognized (#38927) fix https://github.com/milvus-io/milvus/issues/38864 AND, OR and NOT is not recognized in milvus parser Signed-off-by: Cai Zhang --- Makefile | 4 + internal/parser/planparserv2/Plan.g4 | 6 +- internal/parser/planparserv2/generate.sh | 4 +- .../planparserv2/generated/PlanLexer.interp | 2 +- .../planparserv2/generated/plan_lexer.go | 682 +++++++++--------- .../planparserv2/plan_parser_v2_test.go | 10 +- 6 files changed, 360 insertions(+), 348 deletions(-) diff --git a/Makefile b/Makefile index a86dc825c3b8d..8ce07c777b9b0 100644 --- a/Makefile +++ b/Makefile @@ -554,3 +554,7 @@ mmap-migration: mkdir -p $(INSTALL_PATH) && go env -w CGO_ENABLED="1" && \ GO111MODULE=on $(GO) build -pgo=$(PGO_PATH)/default.pgo -ldflags="-r $${RPATH} -X '$(OBJPREFIX).BuildTags=$(BUILD_TAGS)' -X '$(OBJPREFIX).BuildTime=$(BUILD_TIME)' -X '$(OBJPREFIX).GitCommit=$(GIT_COMMIT)' -X '$(OBJPREFIX).GoVersion=$(GO_VERSION)'" \ -tags dynamic -o $(INSTALL_PATH)/mmap-migration $(MMAP_MIGRATION_PATH)/main.go 1>/dev/null + +generate-parser: + @echo "Updating milvus expression parser" + @(cd $(PWD)/internal/parser/planparserv2 && env bash generate.sh) diff --git a/internal/parser/planparserv2/Plan.g4 b/internal/parser/planparserv2/Plan.g4 index 5a90e8f494107..5b2eed3992132 100644 --- a/internal/parser/planparserv2/Plan.g4 +++ b/internal/parser/planparserv2/Plan.g4 @@ -73,14 +73,14 @@ BAND: '&'; BOR: '|'; BXOR: '^'; -AND: '&&' | 'and'; -OR: '||' | 'or'; +AND: '&&' | 'and' | 'AND'; +OR: '||' | 'or' | 'OR'; ISNULL: 'is null' | 'IS NULL'; ISNOTNULL: 'is not null' | 'IS NOT NULL'; BNOT: '~'; -NOT: '!' | 'not'; +NOT: '!' | 'not' | 'NOT'; IN: 'in' | 'IN'; EmptyArray: '[' (Whitespace | Newline)* ']'; diff --git a/internal/parser/planparserv2/generate.sh b/internal/parser/planparserv2/generate.sh index d5991f66840b3..d4ce856677379 100755 --- a/internal/parser/planparserv2/generate.sh +++ b/internal/parser/planparserv2/generate.sh @@ -1,5 +1,7 @@ #!/usr/bin/env sh -alias antlr4='java -Xmx500M -cp "../../../scripts/antlr-4.13.2-complete.jar:$CLASSPATH" org.antlr.v4.Tool' +antlr4() { + java -Xmx500M -cp "../../../scripts/antlr-4.13.2-complete.jar:$CLASSPATH" org.antlr.v4.Tool "$@" +} rm -fr generated antlr4 -Dlanguage=Go -package planparserv2 -o generated -no-listener -visitor Plan.g4 diff --git a/internal/parser/planparserv2/generated/PlanLexer.interp b/internal/parser/planparserv2/generated/PlanLexer.interp index b156b11037db8..7523be5820fe3 100644 --- a/internal/parser/planparserv2/generated/PlanLexer.interp +++ b/internal/parser/planparserv2/generated/PlanLexer.interp @@ -192,4 +192,4 @@ mode names: DEFAULT_MODE atn: -[4, 0, 51, 826, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 192, 8, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 206, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 228, 8, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 260, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 266, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 282, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 306, 8, 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 314, 8, 32, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 320, 8, 33, 1, 34, 1, 34, 1, 34, 5, 34, 325, 8, 34, 10, 34, 12, 34, 328, 9, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 358, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 394, 8, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 430, 8, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 460, 8, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 3, 39, 498, 8, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 536, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 562, 8, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 591, 8, 42, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 597, 8, 43, 1, 44, 1, 44, 3, 44, 601, 8, 44, 1, 45, 1, 45, 1, 45, 5, 45, 606, 8, 45, 10, 45, 12, 45, 609, 9, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 3, 47, 618, 8, 47, 1, 47, 1, 47, 3, 47, 622, 8, 47, 1, 47, 1, 47, 1, 47, 3, 47, 627, 8, 47, 1, 47, 3, 47, 630, 8, 47, 1, 48, 1, 48, 3, 48, 634, 8, 48, 1, 48, 1, 48, 1, 48, 3, 48, 639, 8, 48, 1, 48, 1, 48, 4, 48, 643, 8, 48, 11, 48, 12, 48, 644, 1, 49, 1, 49, 1, 49, 3, 49, 650, 8, 49, 1, 50, 4, 50, 653, 8, 50, 11, 50, 12, 50, 654, 1, 51, 4, 51, 658, 8, 51, 11, 51, 12, 51, 659, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 669, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 3, 53, 678, 8, 53, 1, 54, 1, 54, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 4, 56, 687, 8, 56, 11, 56, 12, 56, 688, 1, 57, 1, 57, 5, 57, 693, 8, 57, 10, 57, 12, 57, 696, 9, 57, 1, 57, 3, 57, 699, 8, 57, 1, 58, 1, 58, 5, 58, 703, 8, 58, 10, 58, 12, 58, 706, 9, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 3, 64, 733, 8, 64, 1, 65, 1, 65, 3, 65, 737, 8, 65, 1, 65, 1, 65, 1, 65, 3, 65, 742, 8, 65, 1, 66, 1, 66, 1, 66, 1, 66, 3, 66, 748, 8, 66, 1, 66, 1, 66, 1, 67, 3, 67, 753, 8, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 3, 67, 760, 8, 67, 1, 68, 1, 68, 3, 68, 764, 8, 68, 1, 68, 1, 68, 1, 69, 4, 69, 769, 8, 69, 11, 69, 12, 69, 770, 1, 70, 3, 70, 774, 8, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 3, 70, 781, 8, 70, 1, 71, 4, 71, 784, 8, 71, 11, 71, 12, 71, 785, 1, 72, 1, 72, 3, 72, 790, 8, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 799, 8, 73, 1, 73, 3, 73, 802, 8, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 809, 8, 73, 1, 74, 4, 74, 812, 8, 74, 11, 74, 12, 74, 813, 1, 74, 1, 74, 1, 75, 1, 75, 3, 75, 820, 8, 75, 1, 75, 3, 75, 823, 8, 75, 1, 75, 1, 75, 0, 0, 76, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 0, 101, 0, 103, 0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, 0, 129, 0, 131, 0, 133, 0, 135, 0, 137, 0, 139, 0, 141, 0, 143, 0, 145, 0, 147, 0, 149, 50, 151, 51, 1, 0, 16, 3, 0, 76, 76, 85, 85, 117, 117, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 3, 0, 65, 90, 95, 95, 97, 122, 1, 0, 48, 57, 2, 0, 66, 66, 98, 98, 1, 0, 48, 49, 2, 0, 88, 88, 120, 120, 1, 0, 49, 57, 1, 0, 48, 55, 3, 0, 48, 57, 65, 70, 97, 102, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 2, 0, 80, 80, 112, 112, 10, 0, 34, 34, 39, 39, 63, 63, 92, 92, 97, 98, 102, 102, 110, 110, 114, 114, 116, 116, 118, 118, 2, 0, 9, 9, 32, 32, 869, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 1, 153, 1, 0, 0, 0, 3, 155, 1, 0, 0, 0, 5, 157, 1, 0, 0, 0, 7, 159, 1, 0, 0, 0, 9, 161, 1, 0, 0, 0, 11, 163, 1, 0, 0, 0, 13, 165, 1, 0, 0, 0, 15, 167, 1, 0, 0, 0, 17, 169, 1, 0, 0, 0, 19, 172, 1, 0, 0, 0, 21, 174, 1, 0, 0, 0, 23, 177, 1, 0, 0, 0, 25, 180, 1, 0, 0, 0, 27, 191, 1, 0, 0, 0, 29, 205, 1, 0, 0, 0, 31, 227, 1, 0, 0, 0, 33, 229, 1, 0, 0, 0, 35, 231, 1, 0, 0, 0, 37, 233, 1, 0, 0, 0, 39, 235, 1, 0, 0, 0, 41, 237, 1, 0, 0, 0, 43, 239, 1, 0, 0, 0, 45, 242, 1, 0, 0, 0, 47, 245, 1, 0, 0, 0, 49, 248, 1, 0, 0, 0, 51, 250, 1, 0, 0, 0, 53, 252, 1, 0, 0, 0, 55, 259, 1, 0, 0, 0, 57, 265, 1, 0, 0, 0, 59, 281, 1, 0, 0, 0, 61, 305, 1, 0, 0, 0, 63, 307, 1, 0, 0, 0, 65, 313, 1, 0, 0, 0, 67, 319, 1, 0, 0, 0, 69, 321, 1, 0, 0, 0, 71, 357, 1, 0, 0, 0, 73, 393, 1, 0, 0, 0, 75, 429, 1, 0, 0, 0, 77, 459, 1, 0, 0, 0, 79, 497, 1, 0, 0, 0, 81, 535, 1, 0, 0, 0, 83, 561, 1, 0, 0, 0, 85, 590, 1, 0, 0, 0, 87, 596, 1, 0, 0, 0, 89, 600, 1, 0, 0, 0, 91, 602, 1, 0, 0, 0, 93, 610, 1, 0, 0, 0, 95, 617, 1, 0, 0, 0, 97, 633, 1, 0, 0, 0, 99, 649, 1, 0, 0, 0, 101, 652, 1, 0, 0, 0, 103, 657, 1, 0, 0, 0, 105, 668, 1, 0, 0, 0, 107, 677, 1, 0, 0, 0, 109, 679, 1, 0, 0, 0, 111, 681, 1, 0, 0, 0, 113, 683, 1, 0, 0, 0, 115, 698, 1, 0, 0, 0, 117, 700, 1, 0, 0, 0, 119, 707, 1, 0, 0, 0, 121, 711, 1, 0, 0, 0, 123, 713, 1, 0, 0, 0, 125, 715, 1, 0, 0, 0, 127, 717, 1, 0, 0, 0, 129, 732, 1, 0, 0, 0, 131, 741, 1, 0, 0, 0, 133, 743, 1, 0, 0, 0, 135, 759, 1, 0, 0, 0, 137, 761, 1, 0, 0, 0, 139, 768, 1, 0, 0, 0, 141, 780, 1, 0, 0, 0, 143, 783, 1, 0, 0, 0, 145, 787, 1, 0, 0, 0, 147, 808, 1, 0, 0, 0, 149, 811, 1, 0, 0, 0, 151, 822, 1, 0, 0, 0, 153, 154, 5, 40, 0, 0, 154, 2, 1, 0, 0, 0, 155, 156, 5, 41, 0, 0, 156, 4, 1, 0, 0, 0, 157, 158, 5, 91, 0, 0, 158, 6, 1, 0, 0, 0, 159, 160, 5, 44, 0, 0, 160, 8, 1, 0, 0, 0, 161, 162, 5, 93, 0, 0, 162, 10, 1, 0, 0, 0, 163, 164, 5, 123, 0, 0, 164, 12, 1, 0, 0, 0, 165, 166, 5, 125, 0, 0, 166, 14, 1, 0, 0, 0, 167, 168, 5, 60, 0, 0, 168, 16, 1, 0, 0, 0, 169, 170, 5, 60, 0, 0, 170, 171, 5, 61, 0, 0, 171, 18, 1, 0, 0, 0, 172, 173, 5, 62, 0, 0, 173, 20, 1, 0, 0, 0, 174, 175, 5, 62, 0, 0, 175, 176, 5, 61, 0, 0, 176, 22, 1, 0, 0, 0, 177, 178, 5, 61, 0, 0, 178, 179, 5, 61, 0, 0, 179, 24, 1, 0, 0, 0, 180, 181, 5, 33, 0, 0, 181, 182, 5, 61, 0, 0, 182, 26, 1, 0, 0, 0, 183, 184, 5, 108, 0, 0, 184, 185, 5, 105, 0, 0, 185, 186, 5, 107, 0, 0, 186, 192, 5, 101, 0, 0, 187, 188, 5, 76, 0, 0, 188, 189, 5, 73, 0, 0, 189, 190, 5, 75, 0, 0, 190, 192, 5, 69, 0, 0, 191, 183, 1, 0, 0, 0, 191, 187, 1, 0, 0, 0, 192, 28, 1, 0, 0, 0, 193, 194, 5, 101, 0, 0, 194, 195, 5, 120, 0, 0, 195, 196, 5, 105, 0, 0, 196, 197, 5, 115, 0, 0, 197, 198, 5, 116, 0, 0, 198, 206, 5, 115, 0, 0, 199, 200, 5, 69, 0, 0, 200, 201, 5, 88, 0, 0, 201, 202, 5, 73, 0, 0, 202, 203, 5, 83, 0, 0, 203, 204, 5, 84, 0, 0, 204, 206, 5, 83, 0, 0, 205, 193, 1, 0, 0, 0, 205, 199, 1, 0, 0, 0, 206, 30, 1, 0, 0, 0, 207, 208, 5, 116, 0, 0, 208, 209, 5, 101, 0, 0, 209, 210, 5, 120, 0, 0, 210, 211, 5, 116, 0, 0, 211, 212, 5, 95, 0, 0, 212, 213, 5, 109, 0, 0, 213, 214, 5, 97, 0, 0, 214, 215, 5, 116, 0, 0, 215, 216, 5, 99, 0, 0, 216, 228, 5, 104, 0, 0, 217, 218, 5, 84, 0, 0, 218, 219, 5, 69, 0, 0, 219, 220, 5, 88, 0, 0, 220, 221, 5, 84, 0, 0, 221, 222, 5, 95, 0, 0, 222, 223, 5, 77, 0, 0, 223, 224, 5, 65, 0, 0, 224, 225, 5, 84, 0, 0, 225, 226, 5, 67, 0, 0, 226, 228, 5, 72, 0, 0, 227, 207, 1, 0, 0, 0, 227, 217, 1, 0, 0, 0, 228, 32, 1, 0, 0, 0, 229, 230, 5, 43, 0, 0, 230, 34, 1, 0, 0, 0, 231, 232, 5, 45, 0, 0, 232, 36, 1, 0, 0, 0, 233, 234, 5, 42, 0, 0, 234, 38, 1, 0, 0, 0, 235, 236, 5, 47, 0, 0, 236, 40, 1, 0, 0, 0, 237, 238, 5, 37, 0, 0, 238, 42, 1, 0, 0, 0, 239, 240, 5, 42, 0, 0, 240, 241, 5, 42, 0, 0, 241, 44, 1, 0, 0, 0, 242, 243, 5, 60, 0, 0, 243, 244, 5, 60, 0, 0, 244, 46, 1, 0, 0, 0, 245, 246, 5, 62, 0, 0, 246, 247, 5, 62, 0, 0, 247, 48, 1, 0, 0, 0, 248, 249, 5, 38, 0, 0, 249, 50, 1, 0, 0, 0, 250, 251, 5, 124, 0, 0, 251, 52, 1, 0, 0, 0, 252, 253, 5, 94, 0, 0, 253, 54, 1, 0, 0, 0, 254, 255, 5, 38, 0, 0, 255, 260, 5, 38, 0, 0, 256, 257, 5, 97, 0, 0, 257, 258, 5, 110, 0, 0, 258, 260, 5, 100, 0, 0, 259, 254, 1, 0, 0, 0, 259, 256, 1, 0, 0, 0, 260, 56, 1, 0, 0, 0, 261, 262, 5, 124, 0, 0, 262, 266, 5, 124, 0, 0, 263, 264, 5, 111, 0, 0, 264, 266, 5, 114, 0, 0, 265, 261, 1, 0, 0, 0, 265, 263, 1, 0, 0, 0, 266, 58, 1, 0, 0, 0, 267, 268, 5, 105, 0, 0, 268, 269, 5, 115, 0, 0, 269, 270, 5, 32, 0, 0, 270, 271, 5, 110, 0, 0, 271, 272, 5, 117, 0, 0, 272, 273, 5, 108, 0, 0, 273, 282, 5, 108, 0, 0, 274, 275, 5, 73, 0, 0, 275, 276, 5, 83, 0, 0, 276, 277, 5, 32, 0, 0, 277, 278, 5, 78, 0, 0, 278, 279, 5, 85, 0, 0, 279, 280, 5, 76, 0, 0, 280, 282, 5, 76, 0, 0, 281, 267, 1, 0, 0, 0, 281, 274, 1, 0, 0, 0, 282, 60, 1, 0, 0, 0, 283, 284, 5, 105, 0, 0, 284, 285, 5, 115, 0, 0, 285, 286, 5, 32, 0, 0, 286, 287, 5, 110, 0, 0, 287, 288, 5, 111, 0, 0, 288, 289, 5, 116, 0, 0, 289, 290, 5, 32, 0, 0, 290, 291, 5, 110, 0, 0, 291, 292, 5, 117, 0, 0, 292, 293, 5, 108, 0, 0, 293, 306, 5, 108, 0, 0, 294, 295, 5, 73, 0, 0, 295, 296, 5, 83, 0, 0, 296, 297, 5, 32, 0, 0, 297, 298, 5, 78, 0, 0, 298, 299, 5, 79, 0, 0, 299, 300, 5, 84, 0, 0, 300, 301, 5, 32, 0, 0, 301, 302, 5, 78, 0, 0, 302, 303, 5, 85, 0, 0, 303, 304, 5, 76, 0, 0, 304, 306, 5, 76, 0, 0, 305, 283, 1, 0, 0, 0, 305, 294, 1, 0, 0, 0, 306, 62, 1, 0, 0, 0, 307, 308, 5, 126, 0, 0, 308, 64, 1, 0, 0, 0, 309, 314, 5, 33, 0, 0, 310, 311, 5, 110, 0, 0, 311, 312, 5, 111, 0, 0, 312, 314, 5, 116, 0, 0, 313, 309, 1, 0, 0, 0, 313, 310, 1, 0, 0, 0, 314, 66, 1, 0, 0, 0, 315, 316, 5, 105, 0, 0, 316, 320, 5, 110, 0, 0, 317, 318, 5, 73, 0, 0, 318, 320, 5, 78, 0, 0, 319, 315, 1, 0, 0, 0, 319, 317, 1, 0, 0, 0, 320, 68, 1, 0, 0, 0, 321, 326, 5, 91, 0, 0, 322, 325, 3, 149, 74, 0, 323, 325, 3, 151, 75, 0, 324, 322, 1, 0, 0, 0, 324, 323, 1, 0, 0, 0, 325, 328, 1, 0, 0, 0, 326, 324, 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327, 329, 1, 0, 0, 0, 328, 326, 1, 0, 0, 0, 329, 330, 5, 93, 0, 0, 330, 70, 1, 0, 0, 0, 331, 332, 5, 106, 0, 0, 332, 333, 5, 115, 0, 0, 333, 334, 5, 111, 0, 0, 334, 335, 5, 110, 0, 0, 335, 336, 5, 95, 0, 0, 336, 337, 5, 99, 0, 0, 337, 338, 5, 111, 0, 0, 338, 339, 5, 110, 0, 0, 339, 340, 5, 116, 0, 0, 340, 341, 5, 97, 0, 0, 341, 342, 5, 105, 0, 0, 342, 343, 5, 110, 0, 0, 343, 358, 5, 115, 0, 0, 344, 345, 5, 74, 0, 0, 345, 346, 5, 83, 0, 0, 346, 347, 5, 79, 0, 0, 347, 348, 5, 78, 0, 0, 348, 349, 5, 95, 0, 0, 349, 350, 5, 67, 0, 0, 350, 351, 5, 79, 0, 0, 351, 352, 5, 78, 0, 0, 352, 353, 5, 84, 0, 0, 353, 354, 5, 65, 0, 0, 354, 355, 5, 73, 0, 0, 355, 356, 5, 78, 0, 0, 356, 358, 5, 83, 0, 0, 357, 331, 1, 0, 0, 0, 357, 344, 1, 0, 0, 0, 358, 72, 1, 0, 0, 0, 359, 360, 5, 106, 0, 0, 360, 361, 5, 115, 0, 0, 361, 362, 5, 111, 0, 0, 362, 363, 5, 110, 0, 0, 363, 364, 5, 95, 0, 0, 364, 365, 5, 99, 0, 0, 365, 366, 5, 111, 0, 0, 366, 367, 5, 110, 0, 0, 367, 368, 5, 116, 0, 0, 368, 369, 5, 97, 0, 0, 369, 370, 5, 105, 0, 0, 370, 371, 5, 110, 0, 0, 371, 372, 5, 115, 0, 0, 372, 373, 5, 95, 0, 0, 373, 374, 5, 97, 0, 0, 374, 375, 5, 108, 0, 0, 375, 394, 5, 108, 0, 0, 376, 377, 5, 74, 0, 0, 377, 378, 5, 83, 0, 0, 378, 379, 5, 79, 0, 0, 379, 380, 5, 78, 0, 0, 380, 381, 5, 95, 0, 0, 381, 382, 5, 67, 0, 0, 382, 383, 5, 79, 0, 0, 383, 384, 5, 78, 0, 0, 384, 385, 5, 84, 0, 0, 385, 386, 5, 65, 0, 0, 386, 387, 5, 73, 0, 0, 387, 388, 5, 78, 0, 0, 388, 389, 5, 83, 0, 0, 389, 390, 5, 95, 0, 0, 390, 391, 5, 65, 0, 0, 391, 392, 5, 76, 0, 0, 392, 394, 5, 76, 0, 0, 393, 359, 1, 0, 0, 0, 393, 376, 1, 0, 0, 0, 394, 74, 1, 0, 0, 0, 395, 396, 5, 106, 0, 0, 396, 397, 5, 115, 0, 0, 397, 398, 5, 111, 0, 0, 398, 399, 5, 110, 0, 0, 399, 400, 5, 95, 0, 0, 400, 401, 5, 99, 0, 0, 401, 402, 5, 111, 0, 0, 402, 403, 5, 110, 0, 0, 403, 404, 5, 116, 0, 0, 404, 405, 5, 97, 0, 0, 405, 406, 5, 105, 0, 0, 406, 407, 5, 110, 0, 0, 407, 408, 5, 115, 0, 0, 408, 409, 5, 95, 0, 0, 409, 410, 5, 97, 0, 0, 410, 411, 5, 110, 0, 0, 411, 430, 5, 121, 0, 0, 412, 413, 5, 74, 0, 0, 413, 414, 5, 83, 0, 0, 414, 415, 5, 79, 0, 0, 415, 416, 5, 78, 0, 0, 416, 417, 5, 95, 0, 0, 417, 418, 5, 67, 0, 0, 418, 419, 5, 79, 0, 0, 419, 420, 5, 78, 0, 0, 420, 421, 5, 84, 0, 0, 421, 422, 5, 65, 0, 0, 422, 423, 5, 73, 0, 0, 423, 424, 5, 78, 0, 0, 424, 425, 5, 83, 0, 0, 425, 426, 5, 95, 0, 0, 426, 427, 5, 65, 0, 0, 427, 428, 5, 78, 0, 0, 428, 430, 5, 89, 0, 0, 429, 395, 1, 0, 0, 0, 429, 412, 1, 0, 0, 0, 430, 76, 1, 0, 0, 0, 431, 432, 5, 97, 0, 0, 432, 433, 5, 114, 0, 0, 433, 434, 5, 114, 0, 0, 434, 435, 5, 97, 0, 0, 435, 436, 5, 121, 0, 0, 436, 437, 5, 95, 0, 0, 437, 438, 5, 99, 0, 0, 438, 439, 5, 111, 0, 0, 439, 440, 5, 110, 0, 0, 440, 441, 5, 116, 0, 0, 441, 442, 5, 97, 0, 0, 442, 443, 5, 105, 0, 0, 443, 444, 5, 110, 0, 0, 444, 460, 5, 115, 0, 0, 445, 446, 5, 65, 0, 0, 446, 447, 5, 82, 0, 0, 447, 448, 5, 82, 0, 0, 448, 449, 5, 65, 0, 0, 449, 450, 5, 89, 0, 0, 450, 451, 5, 95, 0, 0, 451, 452, 5, 67, 0, 0, 452, 453, 5, 79, 0, 0, 453, 454, 5, 78, 0, 0, 454, 455, 5, 84, 0, 0, 455, 456, 5, 65, 0, 0, 456, 457, 5, 73, 0, 0, 457, 458, 5, 78, 0, 0, 458, 460, 5, 83, 0, 0, 459, 431, 1, 0, 0, 0, 459, 445, 1, 0, 0, 0, 460, 78, 1, 0, 0, 0, 461, 462, 5, 97, 0, 0, 462, 463, 5, 114, 0, 0, 463, 464, 5, 114, 0, 0, 464, 465, 5, 97, 0, 0, 465, 466, 5, 121, 0, 0, 466, 467, 5, 95, 0, 0, 467, 468, 5, 99, 0, 0, 468, 469, 5, 111, 0, 0, 469, 470, 5, 110, 0, 0, 470, 471, 5, 116, 0, 0, 471, 472, 5, 97, 0, 0, 472, 473, 5, 105, 0, 0, 473, 474, 5, 110, 0, 0, 474, 475, 5, 115, 0, 0, 475, 476, 5, 95, 0, 0, 476, 477, 5, 97, 0, 0, 477, 478, 5, 108, 0, 0, 478, 498, 5, 108, 0, 0, 479, 480, 5, 65, 0, 0, 480, 481, 5, 82, 0, 0, 481, 482, 5, 82, 0, 0, 482, 483, 5, 65, 0, 0, 483, 484, 5, 89, 0, 0, 484, 485, 5, 95, 0, 0, 485, 486, 5, 67, 0, 0, 486, 487, 5, 79, 0, 0, 487, 488, 5, 78, 0, 0, 488, 489, 5, 84, 0, 0, 489, 490, 5, 65, 0, 0, 490, 491, 5, 73, 0, 0, 491, 492, 5, 78, 0, 0, 492, 493, 5, 83, 0, 0, 493, 494, 5, 95, 0, 0, 494, 495, 5, 65, 0, 0, 495, 496, 5, 76, 0, 0, 496, 498, 5, 76, 0, 0, 497, 461, 1, 0, 0, 0, 497, 479, 1, 0, 0, 0, 498, 80, 1, 0, 0, 0, 499, 500, 5, 97, 0, 0, 500, 501, 5, 114, 0, 0, 501, 502, 5, 114, 0, 0, 502, 503, 5, 97, 0, 0, 503, 504, 5, 121, 0, 0, 504, 505, 5, 95, 0, 0, 505, 506, 5, 99, 0, 0, 506, 507, 5, 111, 0, 0, 507, 508, 5, 110, 0, 0, 508, 509, 5, 116, 0, 0, 509, 510, 5, 97, 0, 0, 510, 511, 5, 105, 0, 0, 511, 512, 5, 110, 0, 0, 512, 513, 5, 115, 0, 0, 513, 514, 5, 95, 0, 0, 514, 515, 5, 97, 0, 0, 515, 516, 5, 110, 0, 0, 516, 536, 5, 121, 0, 0, 517, 518, 5, 65, 0, 0, 518, 519, 5, 82, 0, 0, 519, 520, 5, 82, 0, 0, 520, 521, 5, 65, 0, 0, 521, 522, 5, 89, 0, 0, 522, 523, 5, 95, 0, 0, 523, 524, 5, 67, 0, 0, 524, 525, 5, 79, 0, 0, 525, 526, 5, 78, 0, 0, 526, 527, 5, 84, 0, 0, 527, 528, 5, 65, 0, 0, 528, 529, 5, 73, 0, 0, 529, 530, 5, 78, 0, 0, 530, 531, 5, 83, 0, 0, 531, 532, 5, 95, 0, 0, 532, 533, 5, 65, 0, 0, 533, 534, 5, 78, 0, 0, 534, 536, 5, 89, 0, 0, 535, 499, 1, 0, 0, 0, 535, 517, 1, 0, 0, 0, 536, 82, 1, 0, 0, 0, 537, 538, 5, 97, 0, 0, 538, 539, 5, 114, 0, 0, 539, 540, 5, 114, 0, 0, 540, 541, 5, 97, 0, 0, 541, 542, 5, 121, 0, 0, 542, 543, 5, 95, 0, 0, 543, 544, 5, 108, 0, 0, 544, 545, 5, 101, 0, 0, 545, 546, 5, 110, 0, 0, 546, 547, 5, 103, 0, 0, 547, 548, 5, 116, 0, 0, 548, 562, 5, 104, 0, 0, 549, 550, 5, 65, 0, 0, 550, 551, 5, 82, 0, 0, 551, 552, 5, 82, 0, 0, 552, 553, 5, 65, 0, 0, 553, 554, 5, 89, 0, 0, 554, 555, 5, 95, 0, 0, 555, 556, 5, 76, 0, 0, 556, 557, 5, 69, 0, 0, 557, 558, 5, 78, 0, 0, 558, 559, 5, 71, 0, 0, 559, 560, 5, 84, 0, 0, 560, 562, 5, 72, 0, 0, 561, 537, 1, 0, 0, 0, 561, 549, 1, 0, 0, 0, 562, 84, 1, 0, 0, 0, 563, 564, 5, 116, 0, 0, 564, 565, 5, 114, 0, 0, 565, 566, 5, 117, 0, 0, 566, 591, 5, 101, 0, 0, 567, 568, 5, 84, 0, 0, 568, 569, 5, 114, 0, 0, 569, 570, 5, 117, 0, 0, 570, 591, 5, 101, 0, 0, 571, 572, 5, 84, 0, 0, 572, 573, 5, 82, 0, 0, 573, 574, 5, 85, 0, 0, 574, 591, 5, 69, 0, 0, 575, 576, 5, 102, 0, 0, 576, 577, 5, 97, 0, 0, 577, 578, 5, 108, 0, 0, 578, 579, 5, 115, 0, 0, 579, 591, 5, 101, 0, 0, 580, 581, 5, 70, 0, 0, 581, 582, 5, 97, 0, 0, 582, 583, 5, 108, 0, 0, 583, 584, 5, 115, 0, 0, 584, 591, 5, 101, 0, 0, 585, 586, 5, 70, 0, 0, 586, 587, 5, 65, 0, 0, 587, 588, 5, 76, 0, 0, 588, 589, 5, 83, 0, 0, 589, 591, 5, 69, 0, 0, 590, 563, 1, 0, 0, 0, 590, 567, 1, 0, 0, 0, 590, 571, 1, 0, 0, 0, 590, 575, 1, 0, 0, 0, 590, 580, 1, 0, 0, 0, 590, 585, 1, 0, 0, 0, 591, 86, 1, 0, 0, 0, 592, 597, 3, 115, 57, 0, 593, 597, 3, 117, 58, 0, 594, 597, 3, 119, 59, 0, 595, 597, 3, 113, 56, 0, 596, 592, 1, 0, 0, 0, 596, 593, 1, 0, 0, 0, 596, 594, 1, 0, 0, 0, 596, 595, 1, 0, 0, 0, 597, 88, 1, 0, 0, 0, 598, 601, 3, 131, 65, 0, 599, 601, 3, 133, 66, 0, 600, 598, 1, 0, 0, 0, 600, 599, 1, 0, 0, 0, 601, 90, 1, 0, 0, 0, 602, 607, 3, 109, 54, 0, 603, 606, 3, 109, 54, 0, 604, 606, 3, 111, 55, 0, 605, 603, 1, 0, 0, 0, 605, 604, 1, 0, 0, 0, 606, 609, 1, 0, 0, 0, 607, 605, 1, 0, 0, 0, 607, 608, 1, 0, 0, 0, 608, 92, 1, 0, 0, 0, 609, 607, 1, 0, 0, 0, 610, 611, 5, 36, 0, 0, 611, 612, 5, 109, 0, 0, 612, 613, 5, 101, 0, 0, 613, 614, 5, 116, 0, 0, 614, 615, 5, 97, 0, 0, 615, 94, 1, 0, 0, 0, 616, 618, 3, 99, 49, 0, 617, 616, 1, 0, 0, 0, 617, 618, 1, 0, 0, 0, 618, 629, 1, 0, 0, 0, 619, 621, 5, 34, 0, 0, 620, 622, 3, 101, 50, 0, 621, 620, 1, 0, 0, 0, 621, 622, 1, 0, 0, 0, 622, 623, 1, 0, 0, 0, 623, 630, 5, 34, 0, 0, 624, 626, 5, 39, 0, 0, 625, 627, 3, 103, 51, 0, 626, 625, 1, 0, 0, 0, 626, 627, 1, 0, 0, 0, 627, 628, 1, 0, 0, 0, 628, 630, 5, 39, 0, 0, 629, 619, 1, 0, 0, 0, 629, 624, 1, 0, 0, 0, 630, 96, 1, 0, 0, 0, 631, 634, 3, 91, 45, 0, 632, 634, 3, 93, 46, 0, 633, 631, 1, 0, 0, 0, 633, 632, 1, 0, 0, 0, 634, 642, 1, 0, 0, 0, 635, 638, 5, 91, 0, 0, 636, 639, 3, 95, 47, 0, 637, 639, 3, 115, 57, 0, 638, 636, 1, 0, 0, 0, 638, 637, 1, 0, 0, 0, 639, 640, 1, 0, 0, 0, 640, 641, 5, 93, 0, 0, 641, 643, 1, 0, 0, 0, 642, 635, 1, 0, 0, 0, 643, 644, 1, 0, 0, 0, 644, 642, 1, 0, 0, 0, 644, 645, 1, 0, 0, 0, 645, 98, 1, 0, 0, 0, 646, 647, 5, 117, 0, 0, 647, 650, 5, 56, 0, 0, 648, 650, 7, 0, 0, 0, 649, 646, 1, 0, 0, 0, 649, 648, 1, 0, 0, 0, 650, 100, 1, 0, 0, 0, 651, 653, 3, 105, 52, 0, 652, 651, 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 652, 1, 0, 0, 0, 654, 655, 1, 0, 0, 0, 655, 102, 1, 0, 0, 0, 656, 658, 3, 107, 53, 0, 657, 656, 1, 0, 0, 0, 658, 659, 1, 0, 0, 0, 659, 657, 1, 0, 0, 0, 659, 660, 1, 0, 0, 0, 660, 104, 1, 0, 0, 0, 661, 669, 8, 1, 0, 0, 662, 669, 3, 147, 73, 0, 663, 664, 5, 92, 0, 0, 664, 669, 5, 10, 0, 0, 665, 666, 5, 92, 0, 0, 666, 667, 5, 13, 0, 0, 667, 669, 5, 10, 0, 0, 668, 661, 1, 0, 0, 0, 668, 662, 1, 0, 0, 0, 668, 663, 1, 0, 0, 0, 668, 665, 1, 0, 0, 0, 669, 106, 1, 0, 0, 0, 670, 678, 8, 2, 0, 0, 671, 678, 3, 147, 73, 0, 672, 673, 5, 92, 0, 0, 673, 678, 5, 10, 0, 0, 674, 675, 5, 92, 0, 0, 675, 676, 5, 13, 0, 0, 676, 678, 5, 10, 0, 0, 677, 670, 1, 0, 0, 0, 677, 671, 1, 0, 0, 0, 677, 672, 1, 0, 0, 0, 677, 674, 1, 0, 0, 0, 678, 108, 1, 0, 0, 0, 679, 680, 7, 3, 0, 0, 680, 110, 1, 0, 0, 0, 681, 682, 7, 4, 0, 0, 682, 112, 1, 0, 0, 0, 683, 684, 5, 48, 0, 0, 684, 686, 7, 5, 0, 0, 685, 687, 7, 6, 0, 0, 686, 685, 1, 0, 0, 0, 687, 688, 1, 0, 0, 0, 688, 686, 1, 0, 0, 0, 688, 689, 1, 0, 0, 0, 689, 114, 1, 0, 0, 0, 690, 694, 3, 121, 60, 0, 691, 693, 3, 111, 55, 0, 692, 691, 1, 0, 0, 0, 693, 696, 1, 0, 0, 0, 694, 692, 1, 0, 0, 0, 694, 695, 1, 0, 0, 0, 695, 699, 1, 0, 0, 0, 696, 694, 1, 0, 0, 0, 697, 699, 5, 48, 0, 0, 698, 690, 1, 0, 0, 0, 698, 697, 1, 0, 0, 0, 699, 116, 1, 0, 0, 0, 700, 704, 5, 48, 0, 0, 701, 703, 3, 123, 61, 0, 702, 701, 1, 0, 0, 0, 703, 706, 1, 0, 0, 0, 704, 702, 1, 0, 0, 0, 704, 705, 1, 0, 0, 0, 705, 118, 1, 0, 0, 0, 706, 704, 1, 0, 0, 0, 707, 708, 5, 48, 0, 0, 708, 709, 7, 7, 0, 0, 709, 710, 3, 143, 71, 0, 710, 120, 1, 0, 0, 0, 711, 712, 7, 8, 0, 0, 712, 122, 1, 0, 0, 0, 713, 714, 7, 9, 0, 0, 714, 124, 1, 0, 0, 0, 715, 716, 7, 10, 0, 0, 716, 126, 1, 0, 0, 0, 717, 718, 3, 125, 62, 0, 718, 719, 3, 125, 62, 0, 719, 720, 3, 125, 62, 0, 720, 721, 3, 125, 62, 0, 721, 128, 1, 0, 0, 0, 722, 723, 5, 92, 0, 0, 723, 724, 5, 117, 0, 0, 724, 725, 1, 0, 0, 0, 725, 733, 3, 127, 63, 0, 726, 727, 5, 92, 0, 0, 727, 728, 5, 85, 0, 0, 728, 729, 1, 0, 0, 0, 729, 730, 3, 127, 63, 0, 730, 731, 3, 127, 63, 0, 731, 733, 1, 0, 0, 0, 732, 722, 1, 0, 0, 0, 732, 726, 1, 0, 0, 0, 733, 130, 1, 0, 0, 0, 734, 736, 3, 135, 67, 0, 735, 737, 3, 137, 68, 0, 736, 735, 1, 0, 0, 0, 736, 737, 1, 0, 0, 0, 737, 742, 1, 0, 0, 0, 738, 739, 3, 139, 69, 0, 739, 740, 3, 137, 68, 0, 740, 742, 1, 0, 0, 0, 741, 734, 1, 0, 0, 0, 741, 738, 1, 0, 0, 0, 742, 132, 1, 0, 0, 0, 743, 744, 5, 48, 0, 0, 744, 747, 7, 7, 0, 0, 745, 748, 3, 141, 70, 0, 746, 748, 3, 143, 71, 0, 747, 745, 1, 0, 0, 0, 747, 746, 1, 0, 0, 0, 748, 749, 1, 0, 0, 0, 749, 750, 3, 145, 72, 0, 750, 134, 1, 0, 0, 0, 751, 753, 3, 139, 69, 0, 752, 751, 1, 0, 0, 0, 752, 753, 1, 0, 0, 0, 753, 754, 1, 0, 0, 0, 754, 755, 5, 46, 0, 0, 755, 760, 3, 139, 69, 0, 756, 757, 3, 139, 69, 0, 757, 758, 5, 46, 0, 0, 758, 760, 1, 0, 0, 0, 759, 752, 1, 0, 0, 0, 759, 756, 1, 0, 0, 0, 760, 136, 1, 0, 0, 0, 761, 763, 7, 11, 0, 0, 762, 764, 7, 12, 0, 0, 763, 762, 1, 0, 0, 0, 763, 764, 1, 0, 0, 0, 764, 765, 1, 0, 0, 0, 765, 766, 3, 139, 69, 0, 766, 138, 1, 0, 0, 0, 767, 769, 3, 111, 55, 0, 768, 767, 1, 0, 0, 0, 769, 770, 1, 0, 0, 0, 770, 768, 1, 0, 0, 0, 770, 771, 1, 0, 0, 0, 771, 140, 1, 0, 0, 0, 772, 774, 3, 143, 71, 0, 773, 772, 1, 0, 0, 0, 773, 774, 1, 0, 0, 0, 774, 775, 1, 0, 0, 0, 775, 776, 5, 46, 0, 0, 776, 781, 3, 143, 71, 0, 777, 778, 3, 143, 71, 0, 778, 779, 5, 46, 0, 0, 779, 781, 1, 0, 0, 0, 780, 773, 1, 0, 0, 0, 780, 777, 1, 0, 0, 0, 781, 142, 1, 0, 0, 0, 782, 784, 3, 125, 62, 0, 783, 782, 1, 0, 0, 0, 784, 785, 1, 0, 0, 0, 785, 783, 1, 0, 0, 0, 785, 786, 1, 0, 0, 0, 786, 144, 1, 0, 0, 0, 787, 789, 7, 13, 0, 0, 788, 790, 7, 12, 0, 0, 789, 788, 1, 0, 0, 0, 789, 790, 1, 0, 0, 0, 790, 791, 1, 0, 0, 0, 791, 792, 3, 139, 69, 0, 792, 146, 1, 0, 0, 0, 793, 794, 5, 92, 0, 0, 794, 809, 7, 14, 0, 0, 795, 796, 5, 92, 0, 0, 796, 798, 3, 123, 61, 0, 797, 799, 3, 123, 61, 0, 798, 797, 1, 0, 0, 0, 798, 799, 1, 0, 0, 0, 799, 801, 1, 0, 0, 0, 800, 802, 3, 123, 61, 0, 801, 800, 1, 0, 0, 0, 801, 802, 1, 0, 0, 0, 802, 809, 1, 0, 0, 0, 803, 804, 5, 92, 0, 0, 804, 805, 5, 120, 0, 0, 805, 806, 1, 0, 0, 0, 806, 809, 3, 143, 71, 0, 807, 809, 3, 129, 64, 0, 808, 793, 1, 0, 0, 0, 808, 795, 1, 0, 0, 0, 808, 803, 1, 0, 0, 0, 808, 807, 1, 0, 0, 0, 809, 148, 1, 0, 0, 0, 810, 812, 7, 15, 0, 0, 811, 810, 1, 0, 0, 0, 812, 813, 1, 0, 0, 0, 813, 811, 1, 0, 0, 0, 813, 814, 1, 0, 0, 0, 814, 815, 1, 0, 0, 0, 815, 816, 6, 74, 0, 0, 816, 150, 1, 0, 0, 0, 817, 819, 5, 13, 0, 0, 818, 820, 5, 10, 0, 0, 819, 818, 1, 0, 0, 0, 819, 820, 1, 0, 0, 0, 820, 823, 1, 0, 0, 0, 821, 823, 5, 10, 0, 0, 822, 817, 1, 0, 0, 0, 822, 821, 1, 0, 0, 0, 823, 824, 1, 0, 0, 0, 824, 825, 6, 75, 0, 0, 825, 152, 1, 0, 0, 0, 58, 0, 191, 205, 227, 259, 265, 281, 305, 313, 319, 324, 326, 357, 393, 429, 459, 497, 535, 561, 590, 596, 600, 605, 607, 617, 621, 626, 629, 633, 638, 644, 649, 654, 659, 668, 677, 688, 694, 698, 704, 732, 736, 741, 747, 752, 759, 763, 770, 773, 780, 785, 789, 798, 801, 808, 813, 819, 822, 1, 6, 0, 0] \ No newline at end of file +[4, 0, 51, 834, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 192, 8, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 206, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 228, 8, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 263, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 271, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 287, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 311, 8, 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 322, 8, 32, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 328, 8, 33, 1, 34, 1, 34, 1, 34, 5, 34, 333, 8, 34, 10, 34, 12, 34, 336, 9, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 366, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 402, 8, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 438, 8, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 468, 8, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 3, 39, 506, 8, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 544, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 570, 8, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 599, 8, 42, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 605, 8, 43, 1, 44, 1, 44, 3, 44, 609, 8, 44, 1, 45, 1, 45, 1, 45, 5, 45, 614, 8, 45, 10, 45, 12, 45, 617, 9, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 3, 47, 626, 8, 47, 1, 47, 1, 47, 3, 47, 630, 8, 47, 1, 47, 1, 47, 1, 47, 3, 47, 635, 8, 47, 1, 47, 3, 47, 638, 8, 47, 1, 48, 1, 48, 3, 48, 642, 8, 48, 1, 48, 1, 48, 1, 48, 3, 48, 647, 8, 48, 1, 48, 1, 48, 4, 48, 651, 8, 48, 11, 48, 12, 48, 652, 1, 49, 1, 49, 1, 49, 3, 49, 658, 8, 49, 1, 50, 4, 50, 661, 8, 50, 11, 50, 12, 50, 662, 1, 51, 4, 51, 666, 8, 51, 11, 51, 12, 51, 667, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 677, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 3, 53, 686, 8, 53, 1, 54, 1, 54, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 4, 56, 695, 8, 56, 11, 56, 12, 56, 696, 1, 57, 1, 57, 5, 57, 701, 8, 57, 10, 57, 12, 57, 704, 9, 57, 1, 57, 3, 57, 707, 8, 57, 1, 58, 1, 58, 5, 58, 711, 8, 58, 10, 58, 12, 58, 714, 9, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 3, 64, 741, 8, 64, 1, 65, 1, 65, 3, 65, 745, 8, 65, 1, 65, 1, 65, 1, 65, 3, 65, 750, 8, 65, 1, 66, 1, 66, 1, 66, 1, 66, 3, 66, 756, 8, 66, 1, 66, 1, 66, 1, 67, 3, 67, 761, 8, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 3, 67, 768, 8, 67, 1, 68, 1, 68, 3, 68, 772, 8, 68, 1, 68, 1, 68, 1, 69, 4, 69, 777, 8, 69, 11, 69, 12, 69, 778, 1, 70, 3, 70, 782, 8, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 3, 70, 789, 8, 70, 1, 71, 4, 71, 792, 8, 71, 11, 71, 12, 71, 793, 1, 72, 1, 72, 3, 72, 798, 8, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 807, 8, 73, 1, 73, 3, 73, 810, 8, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 817, 8, 73, 1, 74, 4, 74, 820, 8, 74, 11, 74, 12, 74, 821, 1, 74, 1, 74, 1, 75, 1, 75, 3, 75, 828, 8, 75, 1, 75, 3, 75, 831, 8, 75, 1, 75, 1, 75, 0, 0, 76, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 0, 101, 0, 103, 0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, 0, 129, 0, 131, 0, 133, 0, 135, 0, 137, 0, 139, 0, 141, 0, 143, 0, 145, 0, 147, 0, 149, 50, 151, 51, 1, 0, 16, 3, 0, 76, 76, 85, 85, 117, 117, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 3, 0, 65, 90, 95, 95, 97, 122, 1, 0, 48, 57, 2, 0, 66, 66, 98, 98, 1, 0, 48, 49, 2, 0, 88, 88, 120, 120, 1, 0, 49, 57, 1, 0, 48, 55, 3, 0, 48, 57, 65, 70, 97, 102, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 2, 0, 80, 80, 112, 112, 10, 0, 34, 34, 39, 39, 63, 63, 92, 92, 97, 98, 102, 102, 110, 110, 114, 114, 116, 116, 118, 118, 2, 0, 9, 9, 32, 32, 880, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 1, 153, 1, 0, 0, 0, 3, 155, 1, 0, 0, 0, 5, 157, 1, 0, 0, 0, 7, 159, 1, 0, 0, 0, 9, 161, 1, 0, 0, 0, 11, 163, 1, 0, 0, 0, 13, 165, 1, 0, 0, 0, 15, 167, 1, 0, 0, 0, 17, 169, 1, 0, 0, 0, 19, 172, 1, 0, 0, 0, 21, 174, 1, 0, 0, 0, 23, 177, 1, 0, 0, 0, 25, 180, 1, 0, 0, 0, 27, 191, 1, 0, 0, 0, 29, 205, 1, 0, 0, 0, 31, 227, 1, 0, 0, 0, 33, 229, 1, 0, 0, 0, 35, 231, 1, 0, 0, 0, 37, 233, 1, 0, 0, 0, 39, 235, 1, 0, 0, 0, 41, 237, 1, 0, 0, 0, 43, 239, 1, 0, 0, 0, 45, 242, 1, 0, 0, 0, 47, 245, 1, 0, 0, 0, 49, 248, 1, 0, 0, 0, 51, 250, 1, 0, 0, 0, 53, 252, 1, 0, 0, 0, 55, 262, 1, 0, 0, 0, 57, 270, 1, 0, 0, 0, 59, 286, 1, 0, 0, 0, 61, 310, 1, 0, 0, 0, 63, 312, 1, 0, 0, 0, 65, 321, 1, 0, 0, 0, 67, 327, 1, 0, 0, 0, 69, 329, 1, 0, 0, 0, 71, 365, 1, 0, 0, 0, 73, 401, 1, 0, 0, 0, 75, 437, 1, 0, 0, 0, 77, 467, 1, 0, 0, 0, 79, 505, 1, 0, 0, 0, 81, 543, 1, 0, 0, 0, 83, 569, 1, 0, 0, 0, 85, 598, 1, 0, 0, 0, 87, 604, 1, 0, 0, 0, 89, 608, 1, 0, 0, 0, 91, 610, 1, 0, 0, 0, 93, 618, 1, 0, 0, 0, 95, 625, 1, 0, 0, 0, 97, 641, 1, 0, 0, 0, 99, 657, 1, 0, 0, 0, 101, 660, 1, 0, 0, 0, 103, 665, 1, 0, 0, 0, 105, 676, 1, 0, 0, 0, 107, 685, 1, 0, 0, 0, 109, 687, 1, 0, 0, 0, 111, 689, 1, 0, 0, 0, 113, 691, 1, 0, 0, 0, 115, 706, 1, 0, 0, 0, 117, 708, 1, 0, 0, 0, 119, 715, 1, 0, 0, 0, 121, 719, 1, 0, 0, 0, 123, 721, 1, 0, 0, 0, 125, 723, 1, 0, 0, 0, 127, 725, 1, 0, 0, 0, 129, 740, 1, 0, 0, 0, 131, 749, 1, 0, 0, 0, 133, 751, 1, 0, 0, 0, 135, 767, 1, 0, 0, 0, 137, 769, 1, 0, 0, 0, 139, 776, 1, 0, 0, 0, 141, 788, 1, 0, 0, 0, 143, 791, 1, 0, 0, 0, 145, 795, 1, 0, 0, 0, 147, 816, 1, 0, 0, 0, 149, 819, 1, 0, 0, 0, 151, 830, 1, 0, 0, 0, 153, 154, 5, 40, 0, 0, 154, 2, 1, 0, 0, 0, 155, 156, 5, 41, 0, 0, 156, 4, 1, 0, 0, 0, 157, 158, 5, 91, 0, 0, 158, 6, 1, 0, 0, 0, 159, 160, 5, 44, 0, 0, 160, 8, 1, 0, 0, 0, 161, 162, 5, 93, 0, 0, 162, 10, 1, 0, 0, 0, 163, 164, 5, 123, 0, 0, 164, 12, 1, 0, 0, 0, 165, 166, 5, 125, 0, 0, 166, 14, 1, 0, 0, 0, 167, 168, 5, 60, 0, 0, 168, 16, 1, 0, 0, 0, 169, 170, 5, 60, 0, 0, 170, 171, 5, 61, 0, 0, 171, 18, 1, 0, 0, 0, 172, 173, 5, 62, 0, 0, 173, 20, 1, 0, 0, 0, 174, 175, 5, 62, 0, 0, 175, 176, 5, 61, 0, 0, 176, 22, 1, 0, 0, 0, 177, 178, 5, 61, 0, 0, 178, 179, 5, 61, 0, 0, 179, 24, 1, 0, 0, 0, 180, 181, 5, 33, 0, 0, 181, 182, 5, 61, 0, 0, 182, 26, 1, 0, 0, 0, 183, 184, 5, 108, 0, 0, 184, 185, 5, 105, 0, 0, 185, 186, 5, 107, 0, 0, 186, 192, 5, 101, 0, 0, 187, 188, 5, 76, 0, 0, 188, 189, 5, 73, 0, 0, 189, 190, 5, 75, 0, 0, 190, 192, 5, 69, 0, 0, 191, 183, 1, 0, 0, 0, 191, 187, 1, 0, 0, 0, 192, 28, 1, 0, 0, 0, 193, 194, 5, 101, 0, 0, 194, 195, 5, 120, 0, 0, 195, 196, 5, 105, 0, 0, 196, 197, 5, 115, 0, 0, 197, 198, 5, 116, 0, 0, 198, 206, 5, 115, 0, 0, 199, 200, 5, 69, 0, 0, 200, 201, 5, 88, 0, 0, 201, 202, 5, 73, 0, 0, 202, 203, 5, 83, 0, 0, 203, 204, 5, 84, 0, 0, 204, 206, 5, 83, 0, 0, 205, 193, 1, 0, 0, 0, 205, 199, 1, 0, 0, 0, 206, 30, 1, 0, 0, 0, 207, 208, 5, 116, 0, 0, 208, 209, 5, 101, 0, 0, 209, 210, 5, 120, 0, 0, 210, 211, 5, 116, 0, 0, 211, 212, 5, 95, 0, 0, 212, 213, 5, 109, 0, 0, 213, 214, 5, 97, 0, 0, 214, 215, 5, 116, 0, 0, 215, 216, 5, 99, 0, 0, 216, 228, 5, 104, 0, 0, 217, 218, 5, 84, 0, 0, 218, 219, 5, 69, 0, 0, 219, 220, 5, 88, 0, 0, 220, 221, 5, 84, 0, 0, 221, 222, 5, 95, 0, 0, 222, 223, 5, 77, 0, 0, 223, 224, 5, 65, 0, 0, 224, 225, 5, 84, 0, 0, 225, 226, 5, 67, 0, 0, 226, 228, 5, 72, 0, 0, 227, 207, 1, 0, 0, 0, 227, 217, 1, 0, 0, 0, 228, 32, 1, 0, 0, 0, 229, 230, 5, 43, 0, 0, 230, 34, 1, 0, 0, 0, 231, 232, 5, 45, 0, 0, 232, 36, 1, 0, 0, 0, 233, 234, 5, 42, 0, 0, 234, 38, 1, 0, 0, 0, 235, 236, 5, 47, 0, 0, 236, 40, 1, 0, 0, 0, 237, 238, 5, 37, 0, 0, 238, 42, 1, 0, 0, 0, 239, 240, 5, 42, 0, 0, 240, 241, 5, 42, 0, 0, 241, 44, 1, 0, 0, 0, 242, 243, 5, 60, 0, 0, 243, 244, 5, 60, 0, 0, 244, 46, 1, 0, 0, 0, 245, 246, 5, 62, 0, 0, 246, 247, 5, 62, 0, 0, 247, 48, 1, 0, 0, 0, 248, 249, 5, 38, 0, 0, 249, 50, 1, 0, 0, 0, 250, 251, 5, 124, 0, 0, 251, 52, 1, 0, 0, 0, 252, 253, 5, 94, 0, 0, 253, 54, 1, 0, 0, 0, 254, 255, 5, 38, 0, 0, 255, 263, 5, 38, 0, 0, 256, 257, 5, 97, 0, 0, 257, 258, 5, 110, 0, 0, 258, 263, 5, 100, 0, 0, 259, 260, 5, 65, 0, 0, 260, 261, 5, 78, 0, 0, 261, 263, 5, 68, 0, 0, 262, 254, 1, 0, 0, 0, 262, 256, 1, 0, 0, 0, 262, 259, 1, 0, 0, 0, 263, 56, 1, 0, 0, 0, 264, 265, 5, 124, 0, 0, 265, 271, 5, 124, 0, 0, 266, 267, 5, 111, 0, 0, 267, 271, 5, 114, 0, 0, 268, 269, 5, 79, 0, 0, 269, 271, 5, 82, 0, 0, 270, 264, 1, 0, 0, 0, 270, 266, 1, 0, 0, 0, 270, 268, 1, 0, 0, 0, 271, 58, 1, 0, 0, 0, 272, 273, 5, 105, 0, 0, 273, 274, 5, 115, 0, 0, 274, 275, 5, 32, 0, 0, 275, 276, 5, 110, 0, 0, 276, 277, 5, 117, 0, 0, 277, 278, 5, 108, 0, 0, 278, 287, 5, 108, 0, 0, 279, 280, 5, 73, 0, 0, 280, 281, 5, 83, 0, 0, 281, 282, 5, 32, 0, 0, 282, 283, 5, 78, 0, 0, 283, 284, 5, 85, 0, 0, 284, 285, 5, 76, 0, 0, 285, 287, 5, 76, 0, 0, 286, 272, 1, 0, 0, 0, 286, 279, 1, 0, 0, 0, 287, 60, 1, 0, 0, 0, 288, 289, 5, 105, 0, 0, 289, 290, 5, 115, 0, 0, 290, 291, 5, 32, 0, 0, 291, 292, 5, 110, 0, 0, 292, 293, 5, 111, 0, 0, 293, 294, 5, 116, 0, 0, 294, 295, 5, 32, 0, 0, 295, 296, 5, 110, 0, 0, 296, 297, 5, 117, 0, 0, 297, 298, 5, 108, 0, 0, 298, 311, 5, 108, 0, 0, 299, 300, 5, 73, 0, 0, 300, 301, 5, 83, 0, 0, 301, 302, 5, 32, 0, 0, 302, 303, 5, 78, 0, 0, 303, 304, 5, 79, 0, 0, 304, 305, 5, 84, 0, 0, 305, 306, 5, 32, 0, 0, 306, 307, 5, 78, 0, 0, 307, 308, 5, 85, 0, 0, 308, 309, 5, 76, 0, 0, 309, 311, 5, 76, 0, 0, 310, 288, 1, 0, 0, 0, 310, 299, 1, 0, 0, 0, 311, 62, 1, 0, 0, 0, 312, 313, 5, 126, 0, 0, 313, 64, 1, 0, 0, 0, 314, 322, 5, 33, 0, 0, 315, 316, 5, 110, 0, 0, 316, 317, 5, 111, 0, 0, 317, 322, 5, 116, 0, 0, 318, 319, 5, 78, 0, 0, 319, 320, 5, 79, 0, 0, 320, 322, 5, 84, 0, 0, 321, 314, 1, 0, 0, 0, 321, 315, 1, 0, 0, 0, 321, 318, 1, 0, 0, 0, 322, 66, 1, 0, 0, 0, 323, 324, 5, 105, 0, 0, 324, 328, 5, 110, 0, 0, 325, 326, 5, 73, 0, 0, 326, 328, 5, 78, 0, 0, 327, 323, 1, 0, 0, 0, 327, 325, 1, 0, 0, 0, 328, 68, 1, 0, 0, 0, 329, 334, 5, 91, 0, 0, 330, 333, 3, 149, 74, 0, 331, 333, 3, 151, 75, 0, 332, 330, 1, 0, 0, 0, 332, 331, 1, 0, 0, 0, 333, 336, 1, 0, 0, 0, 334, 332, 1, 0, 0, 0, 334, 335, 1, 0, 0, 0, 335, 337, 1, 0, 0, 0, 336, 334, 1, 0, 0, 0, 337, 338, 5, 93, 0, 0, 338, 70, 1, 0, 0, 0, 339, 340, 5, 106, 0, 0, 340, 341, 5, 115, 0, 0, 341, 342, 5, 111, 0, 0, 342, 343, 5, 110, 0, 0, 343, 344, 5, 95, 0, 0, 344, 345, 5, 99, 0, 0, 345, 346, 5, 111, 0, 0, 346, 347, 5, 110, 0, 0, 347, 348, 5, 116, 0, 0, 348, 349, 5, 97, 0, 0, 349, 350, 5, 105, 0, 0, 350, 351, 5, 110, 0, 0, 351, 366, 5, 115, 0, 0, 352, 353, 5, 74, 0, 0, 353, 354, 5, 83, 0, 0, 354, 355, 5, 79, 0, 0, 355, 356, 5, 78, 0, 0, 356, 357, 5, 95, 0, 0, 357, 358, 5, 67, 0, 0, 358, 359, 5, 79, 0, 0, 359, 360, 5, 78, 0, 0, 360, 361, 5, 84, 0, 0, 361, 362, 5, 65, 0, 0, 362, 363, 5, 73, 0, 0, 363, 364, 5, 78, 0, 0, 364, 366, 5, 83, 0, 0, 365, 339, 1, 0, 0, 0, 365, 352, 1, 0, 0, 0, 366, 72, 1, 0, 0, 0, 367, 368, 5, 106, 0, 0, 368, 369, 5, 115, 0, 0, 369, 370, 5, 111, 0, 0, 370, 371, 5, 110, 0, 0, 371, 372, 5, 95, 0, 0, 372, 373, 5, 99, 0, 0, 373, 374, 5, 111, 0, 0, 374, 375, 5, 110, 0, 0, 375, 376, 5, 116, 0, 0, 376, 377, 5, 97, 0, 0, 377, 378, 5, 105, 0, 0, 378, 379, 5, 110, 0, 0, 379, 380, 5, 115, 0, 0, 380, 381, 5, 95, 0, 0, 381, 382, 5, 97, 0, 0, 382, 383, 5, 108, 0, 0, 383, 402, 5, 108, 0, 0, 384, 385, 5, 74, 0, 0, 385, 386, 5, 83, 0, 0, 386, 387, 5, 79, 0, 0, 387, 388, 5, 78, 0, 0, 388, 389, 5, 95, 0, 0, 389, 390, 5, 67, 0, 0, 390, 391, 5, 79, 0, 0, 391, 392, 5, 78, 0, 0, 392, 393, 5, 84, 0, 0, 393, 394, 5, 65, 0, 0, 394, 395, 5, 73, 0, 0, 395, 396, 5, 78, 0, 0, 396, 397, 5, 83, 0, 0, 397, 398, 5, 95, 0, 0, 398, 399, 5, 65, 0, 0, 399, 400, 5, 76, 0, 0, 400, 402, 5, 76, 0, 0, 401, 367, 1, 0, 0, 0, 401, 384, 1, 0, 0, 0, 402, 74, 1, 0, 0, 0, 403, 404, 5, 106, 0, 0, 404, 405, 5, 115, 0, 0, 405, 406, 5, 111, 0, 0, 406, 407, 5, 110, 0, 0, 407, 408, 5, 95, 0, 0, 408, 409, 5, 99, 0, 0, 409, 410, 5, 111, 0, 0, 410, 411, 5, 110, 0, 0, 411, 412, 5, 116, 0, 0, 412, 413, 5, 97, 0, 0, 413, 414, 5, 105, 0, 0, 414, 415, 5, 110, 0, 0, 415, 416, 5, 115, 0, 0, 416, 417, 5, 95, 0, 0, 417, 418, 5, 97, 0, 0, 418, 419, 5, 110, 0, 0, 419, 438, 5, 121, 0, 0, 420, 421, 5, 74, 0, 0, 421, 422, 5, 83, 0, 0, 422, 423, 5, 79, 0, 0, 423, 424, 5, 78, 0, 0, 424, 425, 5, 95, 0, 0, 425, 426, 5, 67, 0, 0, 426, 427, 5, 79, 0, 0, 427, 428, 5, 78, 0, 0, 428, 429, 5, 84, 0, 0, 429, 430, 5, 65, 0, 0, 430, 431, 5, 73, 0, 0, 431, 432, 5, 78, 0, 0, 432, 433, 5, 83, 0, 0, 433, 434, 5, 95, 0, 0, 434, 435, 5, 65, 0, 0, 435, 436, 5, 78, 0, 0, 436, 438, 5, 89, 0, 0, 437, 403, 1, 0, 0, 0, 437, 420, 1, 0, 0, 0, 438, 76, 1, 0, 0, 0, 439, 440, 5, 97, 0, 0, 440, 441, 5, 114, 0, 0, 441, 442, 5, 114, 0, 0, 442, 443, 5, 97, 0, 0, 443, 444, 5, 121, 0, 0, 444, 445, 5, 95, 0, 0, 445, 446, 5, 99, 0, 0, 446, 447, 5, 111, 0, 0, 447, 448, 5, 110, 0, 0, 448, 449, 5, 116, 0, 0, 449, 450, 5, 97, 0, 0, 450, 451, 5, 105, 0, 0, 451, 452, 5, 110, 0, 0, 452, 468, 5, 115, 0, 0, 453, 454, 5, 65, 0, 0, 454, 455, 5, 82, 0, 0, 455, 456, 5, 82, 0, 0, 456, 457, 5, 65, 0, 0, 457, 458, 5, 89, 0, 0, 458, 459, 5, 95, 0, 0, 459, 460, 5, 67, 0, 0, 460, 461, 5, 79, 0, 0, 461, 462, 5, 78, 0, 0, 462, 463, 5, 84, 0, 0, 463, 464, 5, 65, 0, 0, 464, 465, 5, 73, 0, 0, 465, 466, 5, 78, 0, 0, 466, 468, 5, 83, 0, 0, 467, 439, 1, 0, 0, 0, 467, 453, 1, 0, 0, 0, 468, 78, 1, 0, 0, 0, 469, 470, 5, 97, 0, 0, 470, 471, 5, 114, 0, 0, 471, 472, 5, 114, 0, 0, 472, 473, 5, 97, 0, 0, 473, 474, 5, 121, 0, 0, 474, 475, 5, 95, 0, 0, 475, 476, 5, 99, 0, 0, 476, 477, 5, 111, 0, 0, 477, 478, 5, 110, 0, 0, 478, 479, 5, 116, 0, 0, 479, 480, 5, 97, 0, 0, 480, 481, 5, 105, 0, 0, 481, 482, 5, 110, 0, 0, 482, 483, 5, 115, 0, 0, 483, 484, 5, 95, 0, 0, 484, 485, 5, 97, 0, 0, 485, 486, 5, 108, 0, 0, 486, 506, 5, 108, 0, 0, 487, 488, 5, 65, 0, 0, 488, 489, 5, 82, 0, 0, 489, 490, 5, 82, 0, 0, 490, 491, 5, 65, 0, 0, 491, 492, 5, 89, 0, 0, 492, 493, 5, 95, 0, 0, 493, 494, 5, 67, 0, 0, 494, 495, 5, 79, 0, 0, 495, 496, 5, 78, 0, 0, 496, 497, 5, 84, 0, 0, 497, 498, 5, 65, 0, 0, 498, 499, 5, 73, 0, 0, 499, 500, 5, 78, 0, 0, 500, 501, 5, 83, 0, 0, 501, 502, 5, 95, 0, 0, 502, 503, 5, 65, 0, 0, 503, 504, 5, 76, 0, 0, 504, 506, 5, 76, 0, 0, 505, 469, 1, 0, 0, 0, 505, 487, 1, 0, 0, 0, 506, 80, 1, 0, 0, 0, 507, 508, 5, 97, 0, 0, 508, 509, 5, 114, 0, 0, 509, 510, 5, 114, 0, 0, 510, 511, 5, 97, 0, 0, 511, 512, 5, 121, 0, 0, 512, 513, 5, 95, 0, 0, 513, 514, 5, 99, 0, 0, 514, 515, 5, 111, 0, 0, 515, 516, 5, 110, 0, 0, 516, 517, 5, 116, 0, 0, 517, 518, 5, 97, 0, 0, 518, 519, 5, 105, 0, 0, 519, 520, 5, 110, 0, 0, 520, 521, 5, 115, 0, 0, 521, 522, 5, 95, 0, 0, 522, 523, 5, 97, 0, 0, 523, 524, 5, 110, 0, 0, 524, 544, 5, 121, 0, 0, 525, 526, 5, 65, 0, 0, 526, 527, 5, 82, 0, 0, 527, 528, 5, 82, 0, 0, 528, 529, 5, 65, 0, 0, 529, 530, 5, 89, 0, 0, 530, 531, 5, 95, 0, 0, 531, 532, 5, 67, 0, 0, 532, 533, 5, 79, 0, 0, 533, 534, 5, 78, 0, 0, 534, 535, 5, 84, 0, 0, 535, 536, 5, 65, 0, 0, 536, 537, 5, 73, 0, 0, 537, 538, 5, 78, 0, 0, 538, 539, 5, 83, 0, 0, 539, 540, 5, 95, 0, 0, 540, 541, 5, 65, 0, 0, 541, 542, 5, 78, 0, 0, 542, 544, 5, 89, 0, 0, 543, 507, 1, 0, 0, 0, 543, 525, 1, 0, 0, 0, 544, 82, 1, 0, 0, 0, 545, 546, 5, 97, 0, 0, 546, 547, 5, 114, 0, 0, 547, 548, 5, 114, 0, 0, 548, 549, 5, 97, 0, 0, 549, 550, 5, 121, 0, 0, 550, 551, 5, 95, 0, 0, 551, 552, 5, 108, 0, 0, 552, 553, 5, 101, 0, 0, 553, 554, 5, 110, 0, 0, 554, 555, 5, 103, 0, 0, 555, 556, 5, 116, 0, 0, 556, 570, 5, 104, 0, 0, 557, 558, 5, 65, 0, 0, 558, 559, 5, 82, 0, 0, 559, 560, 5, 82, 0, 0, 560, 561, 5, 65, 0, 0, 561, 562, 5, 89, 0, 0, 562, 563, 5, 95, 0, 0, 563, 564, 5, 76, 0, 0, 564, 565, 5, 69, 0, 0, 565, 566, 5, 78, 0, 0, 566, 567, 5, 71, 0, 0, 567, 568, 5, 84, 0, 0, 568, 570, 5, 72, 0, 0, 569, 545, 1, 0, 0, 0, 569, 557, 1, 0, 0, 0, 570, 84, 1, 0, 0, 0, 571, 572, 5, 116, 0, 0, 572, 573, 5, 114, 0, 0, 573, 574, 5, 117, 0, 0, 574, 599, 5, 101, 0, 0, 575, 576, 5, 84, 0, 0, 576, 577, 5, 114, 0, 0, 577, 578, 5, 117, 0, 0, 578, 599, 5, 101, 0, 0, 579, 580, 5, 84, 0, 0, 580, 581, 5, 82, 0, 0, 581, 582, 5, 85, 0, 0, 582, 599, 5, 69, 0, 0, 583, 584, 5, 102, 0, 0, 584, 585, 5, 97, 0, 0, 585, 586, 5, 108, 0, 0, 586, 587, 5, 115, 0, 0, 587, 599, 5, 101, 0, 0, 588, 589, 5, 70, 0, 0, 589, 590, 5, 97, 0, 0, 590, 591, 5, 108, 0, 0, 591, 592, 5, 115, 0, 0, 592, 599, 5, 101, 0, 0, 593, 594, 5, 70, 0, 0, 594, 595, 5, 65, 0, 0, 595, 596, 5, 76, 0, 0, 596, 597, 5, 83, 0, 0, 597, 599, 5, 69, 0, 0, 598, 571, 1, 0, 0, 0, 598, 575, 1, 0, 0, 0, 598, 579, 1, 0, 0, 0, 598, 583, 1, 0, 0, 0, 598, 588, 1, 0, 0, 0, 598, 593, 1, 0, 0, 0, 599, 86, 1, 0, 0, 0, 600, 605, 3, 115, 57, 0, 601, 605, 3, 117, 58, 0, 602, 605, 3, 119, 59, 0, 603, 605, 3, 113, 56, 0, 604, 600, 1, 0, 0, 0, 604, 601, 1, 0, 0, 0, 604, 602, 1, 0, 0, 0, 604, 603, 1, 0, 0, 0, 605, 88, 1, 0, 0, 0, 606, 609, 3, 131, 65, 0, 607, 609, 3, 133, 66, 0, 608, 606, 1, 0, 0, 0, 608, 607, 1, 0, 0, 0, 609, 90, 1, 0, 0, 0, 610, 615, 3, 109, 54, 0, 611, 614, 3, 109, 54, 0, 612, 614, 3, 111, 55, 0, 613, 611, 1, 0, 0, 0, 613, 612, 1, 0, 0, 0, 614, 617, 1, 0, 0, 0, 615, 613, 1, 0, 0, 0, 615, 616, 1, 0, 0, 0, 616, 92, 1, 0, 0, 0, 617, 615, 1, 0, 0, 0, 618, 619, 5, 36, 0, 0, 619, 620, 5, 109, 0, 0, 620, 621, 5, 101, 0, 0, 621, 622, 5, 116, 0, 0, 622, 623, 5, 97, 0, 0, 623, 94, 1, 0, 0, 0, 624, 626, 3, 99, 49, 0, 625, 624, 1, 0, 0, 0, 625, 626, 1, 0, 0, 0, 626, 637, 1, 0, 0, 0, 627, 629, 5, 34, 0, 0, 628, 630, 3, 101, 50, 0, 629, 628, 1, 0, 0, 0, 629, 630, 1, 0, 0, 0, 630, 631, 1, 0, 0, 0, 631, 638, 5, 34, 0, 0, 632, 634, 5, 39, 0, 0, 633, 635, 3, 103, 51, 0, 634, 633, 1, 0, 0, 0, 634, 635, 1, 0, 0, 0, 635, 636, 1, 0, 0, 0, 636, 638, 5, 39, 0, 0, 637, 627, 1, 0, 0, 0, 637, 632, 1, 0, 0, 0, 638, 96, 1, 0, 0, 0, 639, 642, 3, 91, 45, 0, 640, 642, 3, 93, 46, 0, 641, 639, 1, 0, 0, 0, 641, 640, 1, 0, 0, 0, 642, 650, 1, 0, 0, 0, 643, 646, 5, 91, 0, 0, 644, 647, 3, 95, 47, 0, 645, 647, 3, 115, 57, 0, 646, 644, 1, 0, 0, 0, 646, 645, 1, 0, 0, 0, 647, 648, 1, 0, 0, 0, 648, 649, 5, 93, 0, 0, 649, 651, 1, 0, 0, 0, 650, 643, 1, 0, 0, 0, 651, 652, 1, 0, 0, 0, 652, 650, 1, 0, 0, 0, 652, 653, 1, 0, 0, 0, 653, 98, 1, 0, 0, 0, 654, 655, 5, 117, 0, 0, 655, 658, 5, 56, 0, 0, 656, 658, 7, 0, 0, 0, 657, 654, 1, 0, 0, 0, 657, 656, 1, 0, 0, 0, 658, 100, 1, 0, 0, 0, 659, 661, 3, 105, 52, 0, 660, 659, 1, 0, 0, 0, 661, 662, 1, 0, 0, 0, 662, 660, 1, 0, 0, 0, 662, 663, 1, 0, 0, 0, 663, 102, 1, 0, 0, 0, 664, 666, 3, 107, 53, 0, 665, 664, 1, 0, 0, 0, 666, 667, 1, 0, 0, 0, 667, 665, 1, 0, 0, 0, 667, 668, 1, 0, 0, 0, 668, 104, 1, 0, 0, 0, 669, 677, 8, 1, 0, 0, 670, 677, 3, 147, 73, 0, 671, 672, 5, 92, 0, 0, 672, 677, 5, 10, 0, 0, 673, 674, 5, 92, 0, 0, 674, 675, 5, 13, 0, 0, 675, 677, 5, 10, 0, 0, 676, 669, 1, 0, 0, 0, 676, 670, 1, 0, 0, 0, 676, 671, 1, 0, 0, 0, 676, 673, 1, 0, 0, 0, 677, 106, 1, 0, 0, 0, 678, 686, 8, 2, 0, 0, 679, 686, 3, 147, 73, 0, 680, 681, 5, 92, 0, 0, 681, 686, 5, 10, 0, 0, 682, 683, 5, 92, 0, 0, 683, 684, 5, 13, 0, 0, 684, 686, 5, 10, 0, 0, 685, 678, 1, 0, 0, 0, 685, 679, 1, 0, 0, 0, 685, 680, 1, 0, 0, 0, 685, 682, 1, 0, 0, 0, 686, 108, 1, 0, 0, 0, 687, 688, 7, 3, 0, 0, 688, 110, 1, 0, 0, 0, 689, 690, 7, 4, 0, 0, 690, 112, 1, 0, 0, 0, 691, 692, 5, 48, 0, 0, 692, 694, 7, 5, 0, 0, 693, 695, 7, 6, 0, 0, 694, 693, 1, 0, 0, 0, 695, 696, 1, 0, 0, 0, 696, 694, 1, 0, 0, 0, 696, 697, 1, 0, 0, 0, 697, 114, 1, 0, 0, 0, 698, 702, 3, 121, 60, 0, 699, 701, 3, 111, 55, 0, 700, 699, 1, 0, 0, 0, 701, 704, 1, 0, 0, 0, 702, 700, 1, 0, 0, 0, 702, 703, 1, 0, 0, 0, 703, 707, 1, 0, 0, 0, 704, 702, 1, 0, 0, 0, 705, 707, 5, 48, 0, 0, 706, 698, 1, 0, 0, 0, 706, 705, 1, 0, 0, 0, 707, 116, 1, 0, 0, 0, 708, 712, 5, 48, 0, 0, 709, 711, 3, 123, 61, 0, 710, 709, 1, 0, 0, 0, 711, 714, 1, 0, 0, 0, 712, 710, 1, 0, 0, 0, 712, 713, 1, 0, 0, 0, 713, 118, 1, 0, 0, 0, 714, 712, 1, 0, 0, 0, 715, 716, 5, 48, 0, 0, 716, 717, 7, 7, 0, 0, 717, 718, 3, 143, 71, 0, 718, 120, 1, 0, 0, 0, 719, 720, 7, 8, 0, 0, 720, 122, 1, 0, 0, 0, 721, 722, 7, 9, 0, 0, 722, 124, 1, 0, 0, 0, 723, 724, 7, 10, 0, 0, 724, 126, 1, 0, 0, 0, 725, 726, 3, 125, 62, 0, 726, 727, 3, 125, 62, 0, 727, 728, 3, 125, 62, 0, 728, 729, 3, 125, 62, 0, 729, 128, 1, 0, 0, 0, 730, 731, 5, 92, 0, 0, 731, 732, 5, 117, 0, 0, 732, 733, 1, 0, 0, 0, 733, 741, 3, 127, 63, 0, 734, 735, 5, 92, 0, 0, 735, 736, 5, 85, 0, 0, 736, 737, 1, 0, 0, 0, 737, 738, 3, 127, 63, 0, 738, 739, 3, 127, 63, 0, 739, 741, 1, 0, 0, 0, 740, 730, 1, 0, 0, 0, 740, 734, 1, 0, 0, 0, 741, 130, 1, 0, 0, 0, 742, 744, 3, 135, 67, 0, 743, 745, 3, 137, 68, 0, 744, 743, 1, 0, 0, 0, 744, 745, 1, 0, 0, 0, 745, 750, 1, 0, 0, 0, 746, 747, 3, 139, 69, 0, 747, 748, 3, 137, 68, 0, 748, 750, 1, 0, 0, 0, 749, 742, 1, 0, 0, 0, 749, 746, 1, 0, 0, 0, 750, 132, 1, 0, 0, 0, 751, 752, 5, 48, 0, 0, 752, 755, 7, 7, 0, 0, 753, 756, 3, 141, 70, 0, 754, 756, 3, 143, 71, 0, 755, 753, 1, 0, 0, 0, 755, 754, 1, 0, 0, 0, 756, 757, 1, 0, 0, 0, 757, 758, 3, 145, 72, 0, 758, 134, 1, 0, 0, 0, 759, 761, 3, 139, 69, 0, 760, 759, 1, 0, 0, 0, 760, 761, 1, 0, 0, 0, 761, 762, 1, 0, 0, 0, 762, 763, 5, 46, 0, 0, 763, 768, 3, 139, 69, 0, 764, 765, 3, 139, 69, 0, 765, 766, 5, 46, 0, 0, 766, 768, 1, 0, 0, 0, 767, 760, 1, 0, 0, 0, 767, 764, 1, 0, 0, 0, 768, 136, 1, 0, 0, 0, 769, 771, 7, 11, 0, 0, 770, 772, 7, 12, 0, 0, 771, 770, 1, 0, 0, 0, 771, 772, 1, 0, 0, 0, 772, 773, 1, 0, 0, 0, 773, 774, 3, 139, 69, 0, 774, 138, 1, 0, 0, 0, 775, 777, 3, 111, 55, 0, 776, 775, 1, 0, 0, 0, 777, 778, 1, 0, 0, 0, 778, 776, 1, 0, 0, 0, 778, 779, 1, 0, 0, 0, 779, 140, 1, 0, 0, 0, 780, 782, 3, 143, 71, 0, 781, 780, 1, 0, 0, 0, 781, 782, 1, 0, 0, 0, 782, 783, 1, 0, 0, 0, 783, 784, 5, 46, 0, 0, 784, 789, 3, 143, 71, 0, 785, 786, 3, 143, 71, 0, 786, 787, 5, 46, 0, 0, 787, 789, 1, 0, 0, 0, 788, 781, 1, 0, 0, 0, 788, 785, 1, 0, 0, 0, 789, 142, 1, 0, 0, 0, 790, 792, 3, 125, 62, 0, 791, 790, 1, 0, 0, 0, 792, 793, 1, 0, 0, 0, 793, 791, 1, 0, 0, 0, 793, 794, 1, 0, 0, 0, 794, 144, 1, 0, 0, 0, 795, 797, 7, 13, 0, 0, 796, 798, 7, 12, 0, 0, 797, 796, 1, 0, 0, 0, 797, 798, 1, 0, 0, 0, 798, 799, 1, 0, 0, 0, 799, 800, 3, 139, 69, 0, 800, 146, 1, 0, 0, 0, 801, 802, 5, 92, 0, 0, 802, 817, 7, 14, 0, 0, 803, 804, 5, 92, 0, 0, 804, 806, 3, 123, 61, 0, 805, 807, 3, 123, 61, 0, 806, 805, 1, 0, 0, 0, 806, 807, 1, 0, 0, 0, 807, 809, 1, 0, 0, 0, 808, 810, 3, 123, 61, 0, 809, 808, 1, 0, 0, 0, 809, 810, 1, 0, 0, 0, 810, 817, 1, 0, 0, 0, 811, 812, 5, 92, 0, 0, 812, 813, 5, 120, 0, 0, 813, 814, 1, 0, 0, 0, 814, 817, 3, 143, 71, 0, 815, 817, 3, 129, 64, 0, 816, 801, 1, 0, 0, 0, 816, 803, 1, 0, 0, 0, 816, 811, 1, 0, 0, 0, 816, 815, 1, 0, 0, 0, 817, 148, 1, 0, 0, 0, 818, 820, 7, 15, 0, 0, 819, 818, 1, 0, 0, 0, 820, 821, 1, 0, 0, 0, 821, 819, 1, 0, 0, 0, 821, 822, 1, 0, 0, 0, 822, 823, 1, 0, 0, 0, 823, 824, 6, 74, 0, 0, 824, 150, 1, 0, 0, 0, 825, 827, 5, 13, 0, 0, 826, 828, 5, 10, 0, 0, 827, 826, 1, 0, 0, 0, 827, 828, 1, 0, 0, 0, 828, 831, 1, 0, 0, 0, 829, 831, 5, 10, 0, 0, 830, 825, 1, 0, 0, 0, 830, 829, 1, 0, 0, 0, 831, 832, 1, 0, 0, 0, 832, 833, 6, 75, 0, 0, 833, 152, 1, 0, 0, 0, 58, 0, 191, 205, 227, 262, 270, 286, 310, 321, 327, 332, 334, 365, 401, 437, 467, 505, 543, 569, 598, 604, 608, 613, 615, 625, 629, 634, 637, 641, 646, 652, 657, 662, 667, 676, 685, 696, 702, 706, 712, 740, 744, 749, 755, 760, 767, 771, 778, 781, 788, 793, 797, 806, 809, 816, 821, 827, 830, 1, 6, 0, 0] \ No newline at end of file diff --git a/internal/parser/planparserv2/generated/plan_lexer.go b/internal/parser/planparserv2/generated/plan_lexer.go index a529c4eea1edc..55ec744471d6a 100644 --- a/internal/parser/planparserv2/generated/plan_lexer.go +++ b/internal/parser/planparserv2/generated/plan_lexer.go @@ -76,7 +76,7 @@ func planlexerLexerInit() { } staticData.PredictionContextCache = antlr.NewPredictionContextCache() staticData.serializedATN = []int32{ - 4, 0, 51, 826, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, + 4, 0, 51, 834, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, @@ -100,356 +100,360 @@ func planlexerLexerInit() { 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 228, 8, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, - 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 260, 8, 27, 1, - 28, 1, 28, 1, 28, 1, 28, 3, 28, 266, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, - 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, - 29, 282, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, - 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, - 30, 1, 30, 1, 30, 1, 30, 3, 30, 306, 8, 30, 1, 31, 1, 31, 1, 32, 1, 32, - 1, 32, 1, 32, 3, 32, 314, 8, 32, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 320, - 8, 33, 1, 34, 1, 34, 1, 34, 5, 34, 325, 8, 34, 10, 34, 12, 34, 328, 9, - 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, + 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, + 27, 263, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 271, 8, + 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, + 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 287, 8, 29, 1, 30, 1, 30, 1, 30, 1, + 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, + 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 311, 8, + 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, + 322, 8, 32, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 328, 8, 33, 1, 34, 1, 34, + 1, 34, 5, 34, 333, 8, 34, 10, 34, 12, 34, 336, 9, 34, 1, 34, 1, 34, 1, + 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, - 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 358, 8, 35, + 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 366, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, - 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, - 36, 1, 36, 1, 36, 3, 36, 394, 8, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, + 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 3, + 36, 402, 8, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, - 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 430, 8, - 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, + 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 438, 8, 37, 1, 38, 1, 38, 1, + 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, - 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 460, 8, 38, + 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 468, 8, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, - 39, 1, 39, 1, 39, 1, 39, 1, 39, 3, 39, 498, 8, 39, 1, 40, 1, 40, 1, 40, + 39, 1, 39, 3, 39, 506, 8, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, - 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, - 40, 1, 40, 3, 40, 536, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, - 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, - 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 562, 8, 41, - 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, + 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 544, + 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, + 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, + 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 570, 8, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, - 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 591, 8, 42, 1, 43, 1, - 43, 1, 43, 1, 43, 3, 43, 597, 8, 43, 1, 44, 1, 44, 3, 44, 601, 8, 44, 1, - 45, 1, 45, 1, 45, 5, 45, 606, 8, 45, 10, 45, 12, 45, 609, 9, 45, 1, 46, - 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 3, 47, 618, 8, 47, 1, 47, 1, - 47, 3, 47, 622, 8, 47, 1, 47, 1, 47, 1, 47, 3, 47, 627, 8, 47, 1, 47, 3, - 47, 630, 8, 47, 1, 48, 1, 48, 3, 48, 634, 8, 48, 1, 48, 1, 48, 1, 48, 3, - 48, 639, 8, 48, 1, 48, 1, 48, 4, 48, 643, 8, 48, 11, 48, 12, 48, 644, 1, - 49, 1, 49, 1, 49, 3, 49, 650, 8, 49, 1, 50, 4, 50, 653, 8, 50, 11, 50, - 12, 50, 654, 1, 51, 4, 51, 658, 8, 51, 11, 51, 12, 51, 659, 1, 52, 1, 52, - 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 669, 8, 52, 1, 53, 1, 53, 1, - 53, 1, 53, 1, 53, 1, 53, 1, 53, 3, 53, 678, 8, 53, 1, 54, 1, 54, 1, 55, - 1, 55, 1, 56, 1, 56, 1, 56, 4, 56, 687, 8, 56, 11, 56, 12, 56, 688, 1, - 57, 1, 57, 5, 57, 693, 8, 57, 10, 57, 12, 57, 696, 9, 57, 1, 57, 3, 57, - 699, 8, 57, 1, 58, 1, 58, 5, 58, 703, 8, 58, 10, 58, 12, 58, 706, 9, 58, - 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 62, 1, 62, 1, - 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, - 1, 64, 1, 64, 1, 64, 1, 64, 3, 64, 733, 8, 64, 1, 65, 1, 65, 3, 65, 737, - 8, 65, 1, 65, 1, 65, 1, 65, 3, 65, 742, 8, 65, 1, 66, 1, 66, 1, 66, 1, - 66, 3, 66, 748, 8, 66, 1, 66, 1, 66, 1, 67, 3, 67, 753, 8, 67, 1, 67, 1, - 67, 1, 67, 1, 67, 1, 67, 3, 67, 760, 8, 67, 1, 68, 1, 68, 3, 68, 764, 8, - 68, 1, 68, 1, 68, 1, 69, 4, 69, 769, 8, 69, 11, 69, 12, 69, 770, 1, 70, - 3, 70, 774, 8, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 3, 70, 781, 8, 70, - 1, 71, 4, 71, 784, 8, 71, 11, 71, 12, 71, 785, 1, 72, 1, 72, 3, 72, 790, - 8, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 799, 8, - 73, 1, 73, 3, 73, 802, 8, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, - 809, 8, 73, 1, 74, 4, 74, 812, 8, 74, 11, 74, 12, 74, 813, 1, 74, 1, 74, - 1, 75, 1, 75, 3, 75, 820, 8, 75, 1, 75, 3, 75, 823, 8, 75, 1, 75, 1, 75, - 0, 0, 76, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, - 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, - 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, - 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, - 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, - 46, 93, 47, 95, 48, 97, 49, 99, 0, 101, 0, 103, 0, 105, 0, 107, 0, 109, - 0, 111, 0, 113, 0, 115, 0, 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, - 0, 129, 0, 131, 0, 133, 0, 135, 0, 137, 0, 139, 0, 141, 0, 143, 0, 145, - 0, 147, 0, 149, 50, 151, 51, 1, 0, 16, 3, 0, 76, 76, 85, 85, 117, 117, - 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92, - 92, 3, 0, 65, 90, 95, 95, 97, 122, 1, 0, 48, 57, 2, 0, 66, 66, 98, 98, - 1, 0, 48, 49, 2, 0, 88, 88, 120, 120, 1, 0, 49, 57, 1, 0, 48, 55, 3, 0, - 48, 57, 65, 70, 97, 102, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, - 2, 0, 80, 80, 112, 112, 10, 0, 34, 34, 39, 39, 63, 63, 92, 92, 97, 98, - 102, 102, 110, 110, 114, 114, 116, 116, 118, 118, 2, 0, 9, 9, 32, 32, 869, - 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, - 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, - 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, - 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, - 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, - 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, - 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, - 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, - 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, - 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, - 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, - 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, - 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 149, 1, 0, 0, - 0, 0, 151, 1, 0, 0, 0, 1, 153, 1, 0, 0, 0, 3, 155, 1, 0, 0, 0, 5, 157, - 1, 0, 0, 0, 7, 159, 1, 0, 0, 0, 9, 161, 1, 0, 0, 0, 11, 163, 1, 0, 0, 0, - 13, 165, 1, 0, 0, 0, 15, 167, 1, 0, 0, 0, 17, 169, 1, 0, 0, 0, 19, 172, - 1, 0, 0, 0, 21, 174, 1, 0, 0, 0, 23, 177, 1, 0, 0, 0, 25, 180, 1, 0, 0, - 0, 27, 191, 1, 0, 0, 0, 29, 205, 1, 0, 0, 0, 31, 227, 1, 0, 0, 0, 33, 229, - 1, 0, 0, 0, 35, 231, 1, 0, 0, 0, 37, 233, 1, 0, 0, 0, 39, 235, 1, 0, 0, - 0, 41, 237, 1, 0, 0, 0, 43, 239, 1, 0, 0, 0, 45, 242, 1, 0, 0, 0, 47, 245, - 1, 0, 0, 0, 49, 248, 1, 0, 0, 0, 51, 250, 1, 0, 0, 0, 53, 252, 1, 0, 0, - 0, 55, 259, 1, 0, 0, 0, 57, 265, 1, 0, 0, 0, 59, 281, 1, 0, 0, 0, 61, 305, - 1, 0, 0, 0, 63, 307, 1, 0, 0, 0, 65, 313, 1, 0, 0, 0, 67, 319, 1, 0, 0, - 0, 69, 321, 1, 0, 0, 0, 71, 357, 1, 0, 0, 0, 73, 393, 1, 0, 0, 0, 75, 429, - 1, 0, 0, 0, 77, 459, 1, 0, 0, 0, 79, 497, 1, 0, 0, 0, 81, 535, 1, 0, 0, - 0, 83, 561, 1, 0, 0, 0, 85, 590, 1, 0, 0, 0, 87, 596, 1, 0, 0, 0, 89, 600, - 1, 0, 0, 0, 91, 602, 1, 0, 0, 0, 93, 610, 1, 0, 0, 0, 95, 617, 1, 0, 0, - 0, 97, 633, 1, 0, 0, 0, 99, 649, 1, 0, 0, 0, 101, 652, 1, 0, 0, 0, 103, - 657, 1, 0, 0, 0, 105, 668, 1, 0, 0, 0, 107, 677, 1, 0, 0, 0, 109, 679, - 1, 0, 0, 0, 111, 681, 1, 0, 0, 0, 113, 683, 1, 0, 0, 0, 115, 698, 1, 0, - 0, 0, 117, 700, 1, 0, 0, 0, 119, 707, 1, 0, 0, 0, 121, 711, 1, 0, 0, 0, - 123, 713, 1, 0, 0, 0, 125, 715, 1, 0, 0, 0, 127, 717, 1, 0, 0, 0, 129, - 732, 1, 0, 0, 0, 131, 741, 1, 0, 0, 0, 133, 743, 1, 0, 0, 0, 135, 759, - 1, 0, 0, 0, 137, 761, 1, 0, 0, 0, 139, 768, 1, 0, 0, 0, 141, 780, 1, 0, - 0, 0, 143, 783, 1, 0, 0, 0, 145, 787, 1, 0, 0, 0, 147, 808, 1, 0, 0, 0, - 149, 811, 1, 0, 0, 0, 151, 822, 1, 0, 0, 0, 153, 154, 5, 40, 0, 0, 154, - 2, 1, 0, 0, 0, 155, 156, 5, 41, 0, 0, 156, 4, 1, 0, 0, 0, 157, 158, 5, - 91, 0, 0, 158, 6, 1, 0, 0, 0, 159, 160, 5, 44, 0, 0, 160, 8, 1, 0, 0, 0, - 161, 162, 5, 93, 0, 0, 162, 10, 1, 0, 0, 0, 163, 164, 5, 123, 0, 0, 164, - 12, 1, 0, 0, 0, 165, 166, 5, 125, 0, 0, 166, 14, 1, 0, 0, 0, 167, 168, - 5, 60, 0, 0, 168, 16, 1, 0, 0, 0, 169, 170, 5, 60, 0, 0, 170, 171, 5, 61, - 0, 0, 171, 18, 1, 0, 0, 0, 172, 173, 5, 62, 0, 0, 173, 20, 1, 0, 0, 0, - 174, 175, 5, 62, 0, 0, 175, 176, 5, 61, 0, 0, 176, 22, 1, 0, 0, 0, 177, - 178, 5, 61, 0, 0, 178, 179, 5, 61, 0, 0, 179, 24, 1, 0, 0, 0, 180, 181, - 5, 33, 0, 0, 181, 182, 5, 61, 0, 0, 182, 26, 1, 0, 0, 0, 183, 184, 5, 108, - 0, 0, 184, 185, 5, 105, 0, 0, 185, 186, 5, 107, 0, 0, 186, 192, 5, 101, - 0, 0, 187, 188, 5, 76, 0, 0, 188, 189, 5, 73, 0, 0, 189, 190, 5, 75, 0, - 0, 190, 192, 5, 69, 0, 0, 191, 183, 1, 0, 0, 0, 191, 187, 1, 0, 0, 0, 192, - 28, 1, 0, 0, 0, 193, 194, 5, 101, 0, 0, 194, 195, 5, 120, 0, 0, 195, 196, - 5, 105, 0, 0, 196, 197, 5, 115, 0, 0, 197, 198, 5, 116, 0, 0, 198, 206, - 5, 115, 0, 0, 199, 200, 5, 69, 0, 0, 200, 201, 5, 88, 0, 0, 201, 202, 5, - 73, 0, 0, 202, 203, 5, 83, 0, 0, 203, 204, 5, 84, 0, 0, 204, 206, 5, 83, - 0, 0, 205, 193, 1, 0, 0, 0, 205, 199, 1, 0, 0, 0, 206, 30, 1, 0, 0, 0, - 207, 208, 5, 116, 0, 0, 208, 209, 5, 101, 0, 0, 209, 210, 5, 120, 0, 0, - 210, 211, 5, 116, 0, 0, 211, 212, 5, 95, 0, 0, 212, 213, 5, 109, 0, 0, - 213, 214, 5, 97, 0, 0, 214, 215, 5, 116, 0, 0, 215, 216, 5, 99, 0, 0, 216, - 228, 5, 104, 0, 0, 217, 218, 5, 84, 0, 0, 218, 219, 5, 69, 0, 0, 219, 220, - 5, 88, 0, 0, 220, 221, 5, 84, 0, 0, 221, 222, 5, 95, 0, 0, 222, 223, 5, - 77, 0, 0, 223, 224, 5, 65, 0, 0, 224, 225, 5, 84, 0, 0, 225, 226, 5, 67, - 0, 0, 226, 228, 5, 72, 0, 0, 227, 207, 1, 0, 0, 0, 227, 217, 1, 0, 0, 0, - 228, 32, 1, 0, 0, 0, 229, 230, 5, 43, 0, 0, 230, 34, 1, 0, 0, 0, 231, 232, - 5, 45, 0, 0, 232, 36, 1, 0, 0, 0, 233, 234, 5, 42, 0, 0, 234, 38, 1, 0, - 0, 0, 235, 236, 5, 47, 0, 0, 236, 40, 1, 0, 0, 0, 237, 238, 5, 37, 0, 0, - 238, 42, 1, 0, 0, 0, 239, 240, 5, 42, 0, 0, 240, 241, 5, 42, 0, 0, 241, - 44, 1, 0, 0, 0, 242, 243, 5, 60, 0, 0, 243, 244, 5, 60, 0, 0, 244, 46, - 1, 0, 0, 0, 245, 246, 5, 62, 0, 0, 246, 247, 5, 62, 0, 0, 247, 48, 1, 0, - 0, 0, 248, 249, 5, 38, 0, 0, 249, 50, 1, 0, 0, 0, 250, 251, 5, 124, 0, - 0, 251, 52, 1, 0, 0, 0, 252, 253, 5, 94, 0, 0, 253, 54, 1, 0, 0, 0, 254, - 255, 5, 38, 0, 0, 255, 260, 5, 38, 0, 0, 256, 257, 5, 97, 0, 0, 257, 258, - 5, 110, 0, 0, 258, 260, 5, 100, 0, 0, 259, 254, 1, 0, 0, 0, 259, 256, 1, - 0, 0, 0, 260, 56, 1, 0, 0, 0, 261, 262, 5, 124, 0, 0, 262, 266, 5, 124, - 0, 0, 263, 264, 5, 111, 0, 0, 264, 266, 5, 114, 0, 0, 265, 261, 1, 0, 0, - 0, 265, 263, 1, 0, 0, 0, 266, 58, 1, 0, 0, 0, 267, 268, 5, 105, 0, 0, 268, - 269, 5, 115, 0, 0, 269, 270, 5, 32, 0, 0, 270, 271, 5, 110, 0, 0, 271, - 272, 5, 117, 0, 0, 272, 273, 5, 108, 0, 0, 273, 282, 5, 108, 0, 0, 274, - 275, 5, 73, 0, 0, 275, 276, 5, 83, 0, 0, 276, 277, 5, 32, 0, 0, 277, 278, - 5, 78, 0, 0, 278, 279, 5, 85, 0, 0, 279, 280, 5, 76, 0, 0, 280, 282, 5, - 76, 0, 0, 281, 267, 1, 0, 0, 0, 281, 274, 1, 0, 0, 0, 282, 60, 1, 0, 0, - 0, 283, 284, 5, 105, 0, 0, 284, 285, 5, 115, 0, 0, 285, 286, 5, 32, 0, - 0, 286, 287, 5, 110, 0, 0, 287, 288, 5, 111, 0, 0, 288, 289, 5, 116, 0, - 0, 289, 290, 5, 32, 0, 0, 290, 291, 5, 110, 0, 0, 291, 292, 5, 117, 0, - 0, 292, 293, 5, 108, 0, 0, 293, 306, 5, 108, 0, 0, 294, 295, 5, 73, 0, - 0, 295, 296, 5, 83, 0, 0, 296, 297, 5, 32, 0, 0, 297, 298, 5, 78, 0, 0, - 298, 299, 5, 79, 0, 0, 299, 300, 5, 84, 0, 0, 300, 301, 5, 32, 0, 0, 301, - 302, 5, 78, 0, 0, 302, 303, 5, 85, 0, 0, 303, 304, 5, 76, 0, 0, 304, 306, - 5, 76, 0, 0, 305, 283, 1, 0, 0, 0, 305, 294, 1, 0, 0, 0, 306, 62, 1, 0, - 0, 0, 307, 308, 5, 126, 0, 0, 308, 64, 1, 0, 0, 0, 309, 314, 5, 33, 0, - 0, 310, 311, 5, 110, 0, 0, 311, 312, 5, 111, 0, 0, 312, 314, 5, 116, 0, - 0, 313, 309, 1, 0, 0, 0, 313, 310, 1, 0, 0, 0, 314, 66, 1, 0, 0, 0, 315, - 316, 5, 105, 0, 0, 316, 320, 5, 110, 0, 0, 317, 318, 5, 73, 0, 0, 318, - 320, 5, 78, 0, 0, 319, 315, 1, 0, 0, 0, 319, 317, 1, 0, 0, 0, 320, 68, - 1, 0, 0, 0, 321, 326, 5, 91, 0, 0, 322, 325, 3, 149, 74, 0, 323, 325, 3, - 151, 75, 0, 324, 322, 1, 0, 0, 0, 324, 323, 1, 0, 0, 0, 325, 328, 1, 0, - 0, 0, 326, 324, 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327, 329, 1, 0, 0, 0, - 328, 326, 1, 0, 0, 0, 329, 330, 5, 93, 0, 0, 330, 70, 1, 0, 0, 0, 331, - 332, 5, 106, 0, 0, 332, 333, 5, 115, 0, 0, 333, 334, 5, 111, 0, 0, 334, - 335, 5, 110, 0, 0, 335, 336, 5, 95, 0, 0, 336, 337, 5, 99, 0, 0, 337, 338, - 5, 111, 0, 0, 338, 339, 5, 110, 0, 0, 339, 340, 5, 116, 0, 0, 340, 341, - 5, 97, 0, 0, 341, 342, 5, 105, 0, 0, 342, 343, 5, 110, 0, 0, 343, 358, - 5, 115, 0, 0, 344, 345, 5, 74, 0, 0, 345, 346, 5, 83, 0, 0, 346, 347, 5, - 79, 0, 0, 347, 348, 5, 78, 0, 0, 348, 349, 5, 95, 0, 0, 349, 350, 5, 67, - 0, 0, 350, 351, 5, 79, 0, 0, 351, 352, 5, 78, 0, 0, 352, 353, 5, 84, 0, - 0, 353, 354, 5, 65, 0, 0, 354, 355, 5, 73, 0, 0, 355, 356, 5, 78, 0, 0, - 356, 358, 5, 83, 0, 0, 357, 331, 1, 0, 0, 0, 357, 344, 1, 0, 0, 0, 358, - 72, 1, 0, 0, 0, 359, 360, 5, 106, 0, 0, 360, 361, 5, 115, 0, 0, 361, 362, - 5, 111, 0, 0, 362, 363, 5, 110, 0, 0, 363, 364, 5, 95, 0, 0, 364, 365, - 5, 99, 0, 0, 365, 366, 5, 111, 0, 0, 366, 367, 5, 110, 0, 0, 367, 368, - 5, 116, 0, 0, 368, 369, 5, 97, 0, 0, 369, 370, 5, 105, 0, 0, 370, 371, - 5, 110, 0, 0, 371, 372, 5, 115, 0, 0, 372, 373, 5, 95, 0, 0, 373, 374, - 5, 97, 0, 0, 374, 375, 5, 108, 0, 0, 375, 394, 5, 108, 0, 0, 376, 377, - 5, 74, 0, 0, 377, 378, 5, 83, 0, 0, 378, 379, 5, 79, 0, 0, 379, 380, 5, - 78, 0, 0, 380, 381, 5, 95, 0, 0, 381, 382, 5, 67, 0, 0, 382, 383, 5, 79, - 0, 0, 383, 384, 5, 78, 0, 0, 384, 385, 5, 84, 0, 0, 385, 386, 5, 65, 0, - 0, 386, 387, 5, 73, 0, 0, 387, 388, 5, 78, 0, 0, 388, 389, 5, 83, 0, 0, - 389, 390, 5, 95, 0, 0, 390, 391, 5, 65, 0, 0, 391, 392, 5, 76, 0, 0, 392, - 394, 5, 76, 0, 0, 393, 359, 1, 0, 0, 0, 393, 376, 1, 0, 0, 0, 394, 74, - 1, 0, 0, 0, 395, 396, 5, 106, 0, 0, 396, 397, 5, 115, 0, 0, 397, 398, 5, - 111, 0, 0, 398, 399, 5, 110, 0, 0, 399, 400, 5, 95, 0, 0, 400, 401, 5, - 99, 0, 0, 401, 402, 5, 111, 0, 0, 402, 403, 5, 110, 0, 0, 403, 404, 5, - 116, 0, 0, 404, 405, 5, 97, 0, 0, 405, 406, 5, 105, 0, 0, 406, 407, 5, - 110, 0, 0, 407, 408, 5, 115, 0, 0, 408, 409, 5, 95, 0, 0, 409, 410, 5, - 97, 0, 0, 410, 411, 5, 110, 0, 0, 411, 430, 5, 121, 0, 0, 412, 413, 5, - 74, 0, 0, 413, 414, 5, 83, 0, 0, 414, 415, 5, 79, 0, 0, 415, 416, 5, 78, - 0, 0, 416, 417, 5, 95, 0, 0, 417, 418, 5, 67, 0, 0, 418, 419, 5, 79, 0, - 0, 419, 420, 5, 78, 0, 0, 420, 421, 5, 84, 0, 0, 421, 422, 5, 65, 0, 0, - 422, 423, 5, 73, 0, 0, 423, 424, 5, 78, 0, 0, 424, 425, 5, 83, 0, 0, 425, - 426, 5, 95, 0, 0, 426, 427, 5, 65, 0, 0, 427, 428, 5, 78, 0, 0, 428, 430, - 5, 89, 0, 0, 429, 395, 1, 0, 0, 0, 429, 412, 1, 0, 0, 0, 430, 76, 1, 0, - 0, 0, 431, 432, 5, 97, 0, 0, 432, 433, 5, 114, 0, 0, 433, 434, 5, 114, - 0, 0, 434, 435, 5, 97, 0, 0, 435, 436, 5, 121, 0, 0, 436, 437, 5, 95, 0, - 0, 437, 438, 5, 99, 0, 0, 438, 439, 5, 111, 0, 0, 439, 440, 5, 110, 0, - 0, 440, 441, 5, 116, 0, 0, 441, 442, 5, 97, 0, 0, 442, 443, 5, 105, 0, - 0, 443, 444, 5, 110, 0, 0, 444, 460, 5, 115, 0, 0, 445, 446, 5, 65, 0, - 0, 446, 447, 5, 82, 0, 0, 447, 448, 5, 82, 0, 0, 448, 449, 5, 65, 0, 0, - 449, 450, 5, 89, 0, 0, 450, 451, 5, 95, 0, 0, 451, 452, 5, 67, 0, 0, 452, - 453, 5, 79, 0, 0, 453, 454, 5, 78, 0, 0, 454, 455, 5, 84, 0, 0, 455, 456, - 5, 65, 0, 0, 456, 457, 5, 73, 0, 0, 457, 458, 5, 78, 0, 0, 458, 460, 5, - 83, 0, 0, 459, 431, 1, 0, 0, 0, 459, 445, 1, 0, 0, 0, 460, 78, 1, 0, 0, - 0, 461, 462, 5, 97, 0, 0, 462, 463, 5, 114, 0, 0, 463, 464, 5, 114, 0, - 0, 464, 465, 5, 97, 0, 0, 465, 466, 5, 121, 0, 0, 466, 467, 5, 95, 0, 0, - 467, 468, 5, 99, 0, 0, 468, 469, 5, 111, 0, 0, 469, 470, 5, 110, 0, 0, - 470, 471, 5, 116, 0, 0, 471, 472, 5, 97, 0, 0, 472, 473, 5, 105, 0, 0, - 473, 474, 5, 110, 0, 0, 474, 475, 5, 115, 0, 0, 475, 476, 5, 95, 0, 0, - 476, 477, 5, 97, 0, 0, 477, 478, 5, 108, 0, 0, 478, 498, 5, 108, 0, 0, - 479, 480, 5, 65, 0, 0, 480, 481, 5, 82, 0, 0, 481, 482, 5, 82, 0, 0, 482, - 483, 5, 65, 0, 0, 483, 484, 5, 89, 0, 0, 484, 485, 5, 95, 0, 0, 485, 486, - 5, 67, 0, 0, 486, 487, 5, 79, 0, 0, 487, 488, 5, 78, 0, 0, 488, 489, 5, - 84, 0, 0, 489, 490, 5, 65, 0, 0, 490, 491, 5, 73, 0, 0, 491, 492, 5, 78, - 0, 0, 492, 493, 5, 83, 0, 0, 493, 494, 5, 95, 0, 0, 494, 495, 5, 65, 0, - 0, 495, 496, 5, 76, 0, 0, 496, 498, 5, 76, 0, 0, 497, 461, 1, 0, 0, 0, - 497, 479, 1, 0, 0, 0, 498, 80, 1, 0, 0, 0, 499, 500, 5, 97, 0, 0, 500, - 501, 5, 114, 0, 0, 501, 502, 5, 114, 0, 0, 502, 503, 5, 97, 0, 0, 503, - 504, 5, 121, 0, 0, 504, 505, 5, 95, 0, 0, 505, 506, 5, 99, 0, 0, 506, 507, - 5, 111, 0, 0, 507, 508, 5, 110, 0, 0, 508, 509, 5, 116, 0, 0, 509, 510, - 5, 97, 0, 0, 510, 511, 5, 105, 0, 0, 511, 512, 5, 110, 0, 0, 512, 513, - 5, 115, 0, 0, 513, 514, 5, 95, 0, 0, 514, 515, 5, 97, 0, 0, 515, 516, 5, - 110, 0, 0, 516, 536, 5, 121, 0, 0, 517, 518, 5, 65, 0, 0, 518, 519, 5, - 82, 0, 0, 519, 520, 5, 82, 0, 0, 520, 521, 5, 65, 0, 0, 521, 522, 5, 89, - 0, 0, 522, 523, 5, 95, 0, 0, 523, 524, 5, 67, 0, 0, 524, 525, 5, 79, 0, - 0, 525, 526, 5, 78, 0, 0, 526, 527, 5, 84, 0, 0, 527, 528, 5, 65, 0, 0, - 528, 529, 5, 73, 0, 0, 529, 530, 5, 78, 0, 0, 530, 531, 5, 83, 0, 0, 531, - 532, 5, 95, 0, 0, 532, 533, 5, 65, 0, 0, 533, 534, 5, 78, 0, 0, 534, 536, - 5, 89, 0, 0, 535, 499, 1, 0, 0, 0, 535, 517, 1, 0, 0, 0, 536, 82, 1, 0, - 0, 0, 537, 538, 5, 97, 0, 0, 538, 539, 5, 114, 0, 0, 539, 540, 5, 114, - 0, 0, 540, 541, 5, 97, 0, 0, 541, 542, 5, 121, 0, 0, 542, 543, 5, 95, 0, - 0, 543, 544, 5, 108, 0, 0, 544, 545, 5, 101, 0, 0, 545, 546, 5, 110, 0, - 0, 546, 547, 5, 103, 0, 0, 547, 548, 5, 116, 0, 0, 548, 562, 5, 104, 0, - 0, 549, 550, 5, 65, 0, 0, 550, 551, 5, 82, 0, 0, 551, 552, 5, 82, 0, 0, - 552, 553, 5, 65, 0, 0, 553, 554, 5, 89, 0, 0, 554, 555, 5, 95, 0, 0, 555, - 556, 5, 76, 0, 0, 556, 557, 5, 69, 0, 0, 557, 558, 5, 78, 0, 0, 558, 559, - 5, 71, 0, 0, 559, 560, 5, 84, 0, 0, 560, 562, 5, 72, 0, 0, 561, 537, 1, - 0, 0, 0, 561, 549, 1, 0, 0, 0, 562, 84, 1, 0, 0, 0, 563, 564, 5, 116, 0, - 0, 564, 565, 5, 114, 0, 0, 565, 566, 5, 117, 0, 0, 566, 591, 5, 101, 0, - 0, 567, 568, 5, 84, 0, 0, 568, 569, 5, 114, 0, 0, 569, 570, 5, 117, 0, - 0, 570, 591, 5, 101, 0, 0, 571, 572, 5, 84, 0, 0, 572, 573, 5, 82, 0, 0, - 573, 574, 5, 85, 0, 0, 574, 591, 5, 69, 0, 0, 575, 576, 5, 102, 0, 0, 576, - 577, 5, 97, 0, 0, 577, 578, 5, 108, 0, 0, 578, 579, 5, 115, 0, 0, 579, - 591, 5, 101, 0, 0, 580, 581, 5, 70, 0, 0, 581, 582, 5, 97, 0, 0, 582, 583, - 5, 108, 0, 0, 583, 584, 5, 115, 0, 0, 584, 591, 5, 101, 0, 0, 585, 586, - 5, 70, 0, 0, 586, 587, 5, 65, 0, 0, 587, 588, 5, 76, 0, 0, 588, 589, 5, - 83, 0, 0, 589, 591, 5, 69, 0, 0, 590, 563, 1, 0, 0, 0, 590, 567, 1, 0, - 0, 0, 590, 571, 1, 0, 0, 0, 590, 575, 1, 0, 0, 0, 590, 580, 1, 0, 0, 0, - 590, 585, 1, 0, 0, 0, 591, 86, 1, 0, 0, 0, 592, 597, 3, 115, 57, 0, 593, - 597, 3, 117, 58, 0, 594, 597, 3, 119, 59, 0, 595, 597, 3, 113, 56, 0, 596, - 592, 1, 0, 0, 0, 596, 593, 1, 0, 0, 0, 596, 594, 1, 0, 0, 0, 596, 595, - 1, 0, 0, 0, 597, 88, 1, 0, 0, 0, 598, 601, 3, 131, 65, 0, 599, 601, 3, - 133, 66, 0, 600, 598, 1, 0, 0, 0, 600, 599, 1, 0, 0, 0, 601, 90, 1, 0, - 0, 0, 602, 607, 3, 109, 54, 0, 603, 606, 3, 109, 54, 0, 604, 606, 3, 111, - 55, 0, 605, 603, 1, 0, 0, 0, 605, 604, 1, 0, 0, 0, 606, 609, 1, 0, 0, 0, - 607, 605, 1, 0, 0, 0, 607, 608, 1, 0, 0, 0, 608, 92, 1, 0, 0, 0, 609, 607, - 1, 0, 0, 0, 610, 611, 5, 36, 0, 0, 611, 612, 5, 109, 0, 0, 612, 613, 5, - 101, 0, 0, 613, 614, 5, 116, 0, 0, 614, 615, 5, 97, 0, 0, 615, 94, 1, 0, - 0, 0, 616, 618, 3, 99, 49, 0, 617, 616, 1, 0, 0, 0, 617, 618, 1, 0, 0, - 0, 618, 629, 1, 0, 0, 0, 619, 621, 5, 34, 0, 0, 620, 622, 3, 101, 50, 0, - 621, 620, 1, 0, 0, 0, 621, 622, 1, 0, 0, 0, 622, 623, 1, 0, 0, 0, 623, - 630, 5, 34, 0, 0, 624, 626, 5, 39, 0, 0, 625, 627, 3, 103, 51, 0, 626, - 625, 1, 0, 0, 0, 626, 627, 1, 0, 0, 0, 627, 628, 1, 0, 0, 0, 628, 630, - 5, 39, 0, 0, 629, 619, 1, 0, 0, 0, 629, 624, 1, 0, 0, 0, 630, 96, 1, 0, - 0, 0, 631, 634, 3, 91, 45, 0, 632, 634, 3, 93, 46, 0, 633, 631, 1, 0, 0, - 0, 633, 632, 1, 0, 0, 0, 634, 642, 1, 0, 0, 0, 635, 638, 5, 91, 0, 0, 636, - 639, 3, 95, 47, 0, 637, 639, 3, 115, 57, 0, 638, 636, 1, 0, 0, 0, 638, - 637, 1, 0, 0, 0, 639, 640, 1, 0, 0, 0, 640, 641, 5, 93, 0, 0, 641, 643, - 1, 0, 0, 0, 642, 635, 1, 0, 0, 0, 643, 644, 1, 0, 0, 0, 644, 642, 1, 0, - 0, 0, 644, 645, 1, 0, 0, 0, 645, 98, 1, 0, 0, 0, 646, 647, 5, 117, 0, 0, - 647, 650, 5, 56, 0, 0, 648, 650, 7, 0, 0, 0, 649, 646, 1, 0, 0, 0, 649, - 648, 1, 0, 0, 0, 650, 100, 1, 0, 0, 0, 651, 653, 3, 105, 52, 0, 652, 651, - 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 652, 1, 0, 0, 0, 654, 655, 1, 0, - 0, 0, 655, 102, 1, 0, 0, 0, 656, 658, 3, 107, 53, 0, 657, 656, 1, 0, 0, - 0, 658, 659, 1, 0, 0, 0, 659, 657, 1, 0, 0, 0, 659, 660, 1, 0, 0, 0, 660, - 104, 1, 0, 0, 0, 661, 669, 8, 1, 0, 0, 662, 669, 3, 147, 73, 0, 663, 664, - 5, 92, 0, 0, 664, 669, 5, 10, 0, 0, 665, 666, 5, 92, 0, 0, 666, 667, 5, - 13, 0, 0, 667, 669, 5, 10, 0, 0, 668, 661, 1, 0, 0, 0, 668, 662, 1, 0, - 0, 0, 668, 663, 1, 0, 0, 0, 668, 665, 1, 0, 0, 0, 669, 106, 1, 0, 0, 0, - 670, 678, 8, 2, 0, 0, 671, 678, 3, 147, 73, 0, 672, 673, 5, 92, 0, 0, 673, - 678, 5, 10, 0, 0, 674, 675, 5, 92, 0, 0, 675, 676, 5, 13, 0, 0, 676, 678, - 5, 10, 0, 0, 677, 670, 1, 0, 0, 0, 677, 671, 1, 0, 0, 0, 677, 672, 1, 0, - 0, 0, 677, 674, 1, 0, 0, 0, 678, 108, 1, 0, 0, 0, 679, 680, 7, 3, 0, 0, - 680, 110, 1, 0, 0, 0, 681, 682, 7, 4, 0, 0, 682, 112, 1, 0, 0, 0, 683, - 684, 5, 48, 0, 0, 684, 686, 7, 5, 0, 0, 685, 687, 7, 6, 0, 0, 686, 685, - 1, 0, 0, 0, 687, 688, 1, 0, 0, 0, 688, 686, 1, 0, 0, 0, 688, 689, 1, 0, - 0, 0, 689, 114, 1, 0, 0, 0, 690, 694, 3, 121, 60, 0, 691, 693, 3, 111, - 55, 0, 692, 691, 1, 0, 0, 0, 693, 696, 1, 0, 0, 0, 694, 692, 1, 0, 0, 0, - 694, 695, 1, 0, 0, 0, 695, 699, 1, 0, 0, 0, 696, 694, 1, 0, 0, 0, 697, - 699, 5, 48, 0, 0, 698, 690, 1, 0, 0, 0, 698, 697, 1, 0, 0, 0, 699, 116, - 1, 0, 0, 0, 700, 704, 5, 48, 0, 0, 701, 703, 3, 123, 61, 0, 702, 701, 1, - 0, 0, 0, 703, 706, 1, 0, 0, 0, 704, 702, 1, 0, 0, 0, 704, 705, 1, 0, 0, - 0, 705, 118, 1, 0, 0, 0, 706, 704, 1, 0, 0, 0, 707, 708, 5, 48, 0, 0, 708, - 709, 7, 7, 0, 0, 709, 710, 3, 143, 71, 0, 710, 120, 1, 0, 0, 0, 711, 712, - 7, 8, 0, 0, 712, 122, 1, 0, 0, 0, 713, 714, 7, 9, 0, 0, 714, 124, 1, 0, - 0, 0, 715, 716, 7, 10, 0, 0, 716, 126, 1, 0, 0, 0, 717, 718, 3, 125, 62, - 0, 718, 719, 3, 125, 62, 0, 719, 720, 3, 125, 62, 0, 720, 721, 3, 125, - 62, 0, 721, 128, 1, 0, 0, 0, 722, 723, 5, 92, 0, 0, 723, 724, 5, 117, 0, - 0, 724, 725, 1, 0, 0, 0, 725, 733, 3, 127, 63, 0, 726, 727, 5, 92, 0, 0, - 727, 728, 5, 85, 0, 0, 728, 729, 1, 0, 0, 0, 729, 730, 3, 127, 63, 0, 730, - 731, 3, 127, 63, 0, 731, 733, 1, 0, 0, 0, 732, 722, 1, 0, 0, 0, 732, 726, - 1, 0, 0, 0, 733, 130, 1, 0, 0, 0, 734, 736, 3, 135, 67, 0, 735, 737, 3, - 137, 68, 0, 736, 735, 1, 0, 0, 0, 736, 737, 1, 0, 0, 0, 737, 742, 1, 0, - 0, 0, 738, 739, 3, 139, 69, 0, 739, 740, 3, 137, 68, 0, 740, 742, 1, 0, - 0, 0, 741, 734, 1, 0, 0, 0, 741, 738, 1, 0, 0, 0, 742, 132, 1, 0, 0, 0, - 743, 744, 5, 48, 0, 0, 744, 747, 7, 7, 0, 0, 745, 748, 3, 141, 70, 0, 746, - 748, 3, 143, 71, 0, 747, 745, 1, 0, 0, 0, 747, 746, 1, 0, 0, 0, 748, 749, - 1, 0, 0, 0, 749, 750, 3, 145, 72, 0, 750, 134, 1, 0, 0, 0, 751, 753, 3, - 139, 69, 0, 752, 751, 1, 0, 0, 0, 752, 753, 1, 0, 0, 0, 753, 754, 1, 0, - 0, 0, 754, 755, 5, 46, 0, 0, 755, 760, 3, 139, 69, 0, 756, 757, 3, 139, - 69, 0, 757, 758, 5, 46, 0, 0, 758, 760, 1, 0, 0, 0, 759, 752, 1, 0, 0, - 0, 759, 756, 1, 0, 0, 0, 760, 136, 1, 0, 0, 0, 761, 763, 7, 11, 0, 0, 762, - 764, 7, 12, 0, 0, 763, 762, 1, 0, 0, 0, 763, 764, 1, 0, 0, 0, 764, 765, - 1, 0, 0, 0, 765, 766, 3, 139, 69, 0, 766, 138, 1, 0, 0, 0, 767, 769, 3, - 111, 55, 0, 768, 767, 1, 0, 0, 0, 769, 770, 1, 0, 0, 0, 770, 768, 1, 0, - 0, 0, 770, 771, 1, 0, 0, 0, 771, 140, 1, 0, 0, 0, 772, 774, 3, 143, 71, - 0, 773, 772, 1, 0, 0, 0, 773, 774, 1, 0, 0, 0, 774, 775, 1, 0, 0, 0, 775, - 776, 5, 46, 0, 0, 776, 781, 3, 143, 71, 0, 777, 778, 3, 143, 71, 0, 778, - 779, 5, 46, 0, 0, 779, 781, 1, 0, 0, 0, 780, 773, 1, 0, 0, 0, 780, 777, - 1, 0, 0, 0, 781, 142, 1, 0, 0, 0, 782, 784, 3, 125, 62, 0, 783, 782, 1, - 0, 0, 0, 784, 785, 1, 0, 0, 0, 785, 783, 1, 0, 0, 0, 785, 786, 1, 0, 0, - 0, 786, 144, 1, 0, 0, 0, 787, 789, 7, 13, 0, 0, 788, 790, 7, 12, 0, 0, - 789, 788, 1, 0, 0, 0, 789, 790, 1, 0, 0, 0, 790, 791, 1, 0, 0, 0, 791, - 792, 3, 139, 69, 0, 792, 146, 1, 0, 0, 0, 793, 794, 5, 92, 0, 0, 794, 809, - 7, 14, 0, 0, 795, 796, 5, 92, 0, 0, 796, 798, 3, 123, 61, 0, 797, 799, - 3, 123, 61, 0, 798, 797, 1, 0, 0, 0, 798, 799, 1, 0, 0, 0, 799, 801, 1, - 0, 0, 0, 800, 802, 3, 123, 61, 0, 801, 800, 1, 0, 0, 0, 801, 802, 1, 0, - 0, 0, 802, 809, 1, 0, 0, 0, 803, 804, 5, 92, 0, 0, 804, 805, 5, 120, 0, - 0, 805, 806, 1, 0, 0, 0, 806, 809, 3, 143, 71, 0, 807, 809, 3, 129, 64, - 0, 808, 793, 1, 0, 0, 0, 808, 795, 1, 0, 0, 0, 808, 803, 1, 0, 0, 0, 808, - 807, 1, 0, 0, 0, 809, 148, 1, 0, 0, 0, 810, 812, 7, 15, 0, 0, 811, 810, - 1, 0, 0, 0, 812, 813, 1, 0, 0, 0, 813, 811, 1, 0, 0, 0, 813, 814, 1, 0, - 0, 0, 814, 815, 1, 0, 0, 0, 815, 816, 6, 74, 0, 0, 816, 150, 1, 0, 0, 0, - 817, 819, 5, 13, 0, 0, 818, 820, 5, 10, 0, 0, 819, 818, 1, 0, 0, 0, 819, - 820, 1, 0, 0, 0, 820, 823, 1, 0, 0, 0, 821, 823, 5, 10, 0, 0, 822, 817, - 1, 0, 0, 0, 822, 821, 1, 0, 0, 0, 823, 824, 1, 0, 0, 0, 824, 825, 6, 75, - 0, 0, 825, 152, 1, 0, 0, 0, 58, 0, 191, 205, 227, 259, 265, 281, 305, 313, - 319, 324, 326, 357, 393, 429, 459, 497, 535, 561, 590, 596, 600, 605, 607, - 617, 621, 626, 629, 633, 638, 644, 649, 654, 659, 668, 677, 688, 694, 698, - 704, 732, 736, 741, 747, 752, 759, 763, 770, 773, 780, 785, 789, 798, 801, - 808, 813, 819, 822, 1, 6, 0, 0, + 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, + 42, 1, 42, 1, 42, 3, 42, 599, 8, 42, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, + 605, 8, 43, 1, 44, 1, 44, 3, 44, 609, 8, 44, 1, 45, 1, 45, 1, 45, 5, 45, + 614, 8, 45, 10, 45, 12, 45, 617, 9, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, + 46, 1, 46, 1, 47, 3, 47, 626, 8, 47, 1, 47, 1, 47, 3, 47, 630, 8, 47, 1, + 47, 1, 47, 1, 47, 3, 47, 635, 8, 47, 1, 47, 3, 47, 638, 8, 47, 1, 48, 1, + 48, 3, 48, 642, 8, 48, 1, 48, 1, 48, 1, 48, 3, 48, 647, 8, 48, 1, 48, 1, + 48, 4, 48, 651, 8, 48, 11, 48, 12, 48, 652, 1, 49, 1, 49, 1, 49, 3, 49, + 658, 8, 49, 1, 50, 4, 50, 661, 8, 50, 11, 50, 12, 50, 662, 1, 51, 4, 51, + 666, 8, 51, 11, 51, 12, 51, 667, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, + 52, 1, 52, 3, 52, 677, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, + 1, 53, 3, 53, 686, 8, 53, 1, 54, 1, 54, 1, 55, 1, 55, 1, 56, 1, 56, 1, + 56, 4, 56, 695, 8, 56, 11, 56, 12, 56, 696, 1, 57, 1, 57, 5, 57, 701, 8, + 57, 10, 57, 12, 57, 704, 9, 57, 1, 57, 3, 57, 707, 8, 57, 1, 58, 1, 58, + 5, 58, 711, 8, 58, 10, 58, 12, 58, 714, 9, 58, 1, 59, 1, 59, 1, 59, 1, + 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, + 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, + 64, 3, 64, 741, 8, 64, 1, 65, 1, 65, 3, 65, 745, 8, 65, 1, 65, 1, 65, 1, + 65, 3, 65, 750, 8, 65, 1, 66, 1, 66, 1, 66, 1, 66, 3, 66, 756, 8, 66, 1, + 66, 1, 66, 1, 67, 3, 67, 761, 8, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, + 3, 67, 768, 8, 67, 1, 68, 1, 68, 3, 68, 772, 8, 68, 1, 68, 1, 68, 1, 69, + 4, 69, 777, 8, 69, 11, 69, 12, 69, 778, 1, 70, 3, 70, 782, 8, 70, 1, 70, + 1, 70, 1, 70, 1, 70, 1, 70, 3, 70, 789, 8, 70, 1, 71, 4, 71, 792, 8, 71, + 11, 71, 12, 71, 793, 1, 72, 1, 72, 3, 72, 798, 8, 72, 1, 72, 1, 72, 1, + 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 807, 8, 73, 1, 73, 3, 73, 810, 8, + 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 817, 8, 73, 1, 74, 4, 74, + 820, 8, 74, 11, 74, 12, 74, 821, 1, 74, 1, 74, 1, 75, 1, 75, 3, 75, 828, + 8, 75, 1, 75, 3, 75, 831, 8, 75, 1, 75, 1, 75, 0, 0, 76, 1, 1, 3, 2, 5, + 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, + 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, + 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, + 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, + 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, + 49, 99, 0, 101, 0, 103, 0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0, 115, + 0, 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, 0, 129, 0, 131, 0, 133, + 0, 135, 0, 137, 0, 139, 0, 141, 0, 143, 0, 145, 0, 147, 0, 149, 50, 151, + 51, 1, 0, 16, 3, 0, 76, 76, 85, 85, 117, 117, 4, 0, 10, 10, 13, 13, 34, + 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 3, 0, 65, 90, 95, 95, + 97, 122, 1, 0, 48, 57, 2, 0, 66, 66, 98, 98, 1, 0, 48, 49, 2, 0, 88, 88, + 120, 120, 1, 0, 49, 57, 1, 0, 48, 55, 3, 0, 48, 57, 65, 70, 97, 102, 2, + 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 2, 0, 80, 80, 112, 112, 10, + 0, 34, 34, 39, 39, 63, 63, 92, 92, 97, 98, 102, 102, 110, 110, 114, 114, + 116, 116, 118, 118, 2, 0, 9, 9, 32, 32, 880, 0, 1, 1, 0, 0, 0, 0, 3, 1, + 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, + 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, + 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, + 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, + 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, + 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, + 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, + 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, + 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, + 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, + 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, + 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, + 0, 0, 0, 97, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 1, 153, + 1, 0, 0, 0, 3, 155, 1, 0, 0, 0, 5, 157, 1, 0, 0, 0, 7, 159, 1, 0, 0, 0, + 9, 161, 1, 0, 0, 0, 11, 163, 1, 0, 0, 0, 13, 165, 1, 0, 0, 0, 15, 167, + 1, 0, 0, 0, 17, 169, 1, 0, 0, 0, 19, 172, 1, 0, 0, 0, 21, 174, 1, 0, 0, + 0, 23, 177, 1, 0, 0, 0, 25, 180, 1, 0, 0, 0, 27, 191, 1, 0, 0, 0, 29, 205, + 1, 0, 0, 0, 31, 227, 1, 0, 0, 0, 33, 229, 1, 0, 0, 0, 35, 231, 1, 0, 0, + 0, 37, 233, 1, 0, 0, 0, 39, 235, 1, 0, 0, 0, 41, 237, 1, 0, 0, 0, 43, 239, + 1, 0, 0, 0, 45, 242, 1, 0, 0, 0, 47, 245, 1, 0, 0, 0, 49, 248, 1, 0, 0, + 0, 51, 250, 1, 0, 0, 0, 53, 252, 1, 0, 0, 0, 55, 262, 1, 0, 0, 0, 57, 270, + 1, 0, 0, 0, 59, 286, 1, 0, 0, 0, 61, 310, 1, 0, 0, 0, 63, 312, 1, 0, 0, + 0, 65, 321, 1, 0, 0, 0, 67, 327, 1, 0, 0, 0, 69, 329, 1, 0, 0, 0, 71, 365, + 1, 0, 0, 0, 73, 401, 1, 0, 0, 0, 75, 437, 1, 0, 0, 0, 77, 467, 1, 0, 0, + 0, 79, 505, 1, 0, 0, 0, 81, 543, 1, 0, 0, 0, 83, 569, 1, 0, 0, 0, 85, 598, + 1, 0, 0, 0, 87, 604, 1, 0, 0, 0, 89, 608, 1, 0, 0, 0, 91, 610, 1, 0, 0, + 0, 93, 618, 1, 0, 0, 0, 95, 625, 1, 0, 0, 0, 97, 641, 1, 0, 0, 0, 99, 657, + 1, 0, 0, 0, 101, 660, 1, 0, 0, 0, 103, 665, 1, 0, 0, 0, 105, 676, 1, 0, + 0, 0, 107, 685, 1, 0, 0, 0, 109, 687, 1, 0, 0, 0, 111, 689, 1, 0, 0, 0, + 113, 691, 1, 0, 0, 0, 115, 706, 1, 0, 0, 0, 117, 708, 1, 0, 0, 0, 119, + 715, 1, 0, 0, 0, 121, 719, 1, 0, 0, 0, 123, 721, 1, 0, 0, 0, 125, 723, + 1, 0, 0, 0, 127, 725, 1, 0, 0, 0, 129, 740, 1, 0, 0, 0, 131, 749, 1, 0, + 0, 0, 133, 751, 1, 0, 0, 0, 135, 767, 1, 0, 0, 0, 137, 769, 1, 0, 0, 0, + 139, 776, 1, 0, 0, 0, 141, 788, 1, 0, 0, 0, 143, 791, 1, 0, 0, 0, 145, + 795, 1, 0, 0, 0, 147, 816, 1, 0, 0, 0, 149, 819, 1, 0, 0, 0, 151, 830, + 1, 0, 0, 0, 153, 154, 5, 40, 0, 0, 154, 2, 1, 0, 0, 0, 155, 156, 5, 41, + 0, 0, 156, 4, 1, 0, 0, 0, 157, 158, 5, 91, 0, 0, 158, 6, 1, 0, 0, 0, 159, + 160, 5, 44, 0, 0, 160, 8, 1, 0, 0, 0, 161, 162, 5, 93, 0, 0, 162, 10, 1, + 0, 0, 0, 163, 164, 5, 123, 0, 0, 164, 12, 1, 0, 0, 0, 165, 166, 5, 125, + 0, 0, 166, 14, 1, 0, 0, 0, 167, 168, 5, 60, 0, 0, 168, 16, 1, 0, 0, 0, + 169, 170, 5, 60, 0, 0, 170, 171, 5, 61, 0, 0, 171, 18, 1, 0, 0, 0, 172, + 173, 5, 62, 0, 0, 173, 20, 1, 0, 0, 0, 174, 175, 5, 62, 0, 0, 175, 176, + 5, 61, 0, 0, 176, 22, 1, 0, 0, 0, 177, 178, 5, 61, 0, 0, 178, 179, 5, 61, + 0, 0, 179, 24, 1, 0, 0, 0, 180, 181, 5, 33, 0, 0, 181, 182, 5, 61, 0, 0, + 182, 26, 1, 0, 0, 0, 183, 184, 5, 108, 0, 0, 184, 185, 5, 105, 0, 0, 185, + 186, 5, 107, 0, 0, 186, 192, 5, 101, 0, 0, 187, 188, 5, 76, 0, 0, 188, + 189, 5, 73, 0, 0, 189, 190, 5, 75, 0, 0, 190, 192, 5, 69, 0, 0, 191, 183, + 1, 0, 0, 0, 191, 187, 1, 0, 0, 0, 192, 28, 1, 0, 0, 0, 193, 194, 5, 101, + 0, 0, 194, 195, 5, 120, 0, 0, 195, 196, 5, 105, 0, 0, 196, 197, 5, 115, + 0, 0, 197, 198, 5, 116, 0, 0, 198, 206, 5, 115, 0, 0, 199, 200, 5, 69, + 0, 0, 200, 201, 5, 88, 0, 0, 201, 202, 5, 73, 0, 0, 202, 203, 5, 83, 0, + 0, 203, 204, 5, 84, 0, 0, 204, 206, 5, 83, 0, 0, 205, 193, 1, 0, 0, 0, + 205, 199, 1, 0, 0, 0, 206, 30, 1, 0, 0, 0, 207, 208, 5, 116, 0, 0, 208, + 209, 5, 101, 0, 0, 209, 210, 5, 120, 0, 0, 210, 211, 5, 116, 0, 0, 211, + 212, 5, 95, 0, 0, 212, 213, 5, 109, 0, 0, 213, 214, 5, 97, 0, 0, 214, 215, + 5, 116, 0, 0, 215, 216, 5, 99, 0, 0, 216, 228, 5, 104, 0, 0, 217, 218, + 5, 84, 0, 0, 218, 219, 5, 69, 0, 0, 219, 220, 5, 88, 0, 0, 220, 221, 5, + 84, 0, 0, 221, 222, 5, 95, 0, 0, 222, 223, 5, 77, 0, 0, 223, 224, 5, 65, + 0, 0, 224, 225, 5, 84, 0, 0, 225, 226, 5, 67, 0, 0, 226, 228, 5, 72, 0, + 0, 227, 207, 1, 0, 0, 0, 227, 217, 1, 0, 0, 0, 228, 32, 1, 0, 0, 0, 229, + 230, 5, 43, 0, 0, 230, 34, 1, 0, 0, 0, 231, 232, 5, 45, 0, 0, 232, 36, + 1, 0, 0, 0, 233, 234, 5, 42, 0, 0, 234, 38, 1, 0, 0, 0, 235, 236, 5, 47, + 0, 0, 236, 40, 1, 0, 0, 0, 237, 238, 5, 37, 0, 0, 238, 42, 1, 0, 0, 0, + 239, 240, 5, 42, 0, 0, 240, 241, 5, 42, 0, 0, 241, 44, 1, 0, 0, 0, 242, + 243, 5, 60, 0, 0, 243, 244, 5, 60, 0, 0, 244, 46, 1, 0, 0, 0, 245, 246, + 5, 62, 0, 0, 246, 247, 5, 62, 0, 0, 247, 48, 1, 0, 0, 0, 248, 249, 5, 38, + 0, 0, 249, 50, 1, 0, 0, 0, 250, 251, 5, 124, 0, 0, 251, 52, 1, 0, 0, 0, + 252, 253, 5, 94, 0, 0, 253, 54, 1, 0, 0, 0, 254, 255, 5, 38, 0, 0, 255, + 263, 5, 38, 0, 0, 256, 257, 5, 97, 0, 0, 257, 258, 5, 110, 0, 0, 258, 263, + 5, 100, 0, 0, 259, 260, 5, 65, 0, 0, 260, 261, 5, 78, 0, 0, 261, 263, 5, + 68, 0, 0, 262, 254, 1, 0, 0, 0, 262, 256, 1, 0, 0, 0, 262, 259, 1, 0, 0, + 0, 263, 56, 1, 0, 0, 0, 264, 265, 5, 124, 0, 0, 265, 271, 5, 124, 0, 0, + 266, 267, 5, 111, 0, 0, 267, 271, 5, 114, 0, 0, 268, 269, 5, 79, 0, 0, + 269, 271, 5, 82, 0, 0, 270, 264, 1, 0, 0, 0, 270, 266, 1, 0, 0, 0, 270, + 268, 1, 0, 0, 0, 271, 58, 1, 0, 0, 0, 272, 273, 5, 105, 0, 0, 273, 274, + 5, 115, 0, 0, 274, 275, 5, 32, 0, 0, 275, 276, 5, 110, 0, 0, 276, 277, + 5, 117, 0, 0, 277, 278, 5, 108, 0, 0, 278, 287, 5, 108, 0, 0, 279, 280, + 5, 73, 0, 0, 280, 281, 5, 83, 0, 0, 281, 282, 5, 32, 0, 0, 282, 283, 5, + 78, 0, 0, 283, 284, 5, 85, 0, 0, 284, 285, 5, 76, 0, 0, 285, 287, 5, 76, + 0, 0, 286, 272, 1, 0, 0, 0, 286, 279, 1, 0, 0, 0, 287, 60, 1, 0, 0, 0, + 288, 289, 5, 105, 0, 0, 289, 290, 5, 115, 0, 0, 290, 291, 5, 32, 0, 0, + 291, 292, 5, 110, 0, 0, 292, 293, 5, 111, 0, 0, 293, 294, 5, 116, 0, 0, + 294, 295, 5, 32, 0, 0, 295, 296, 5, 110, 0, 0, 296, 297, 5, 117, 0, 0, + 297, 298, 5, 108, 0, 0, 298, 311, 5, 108, 0, 0, 299, 300, 5, 73, 0, 0, + 300, 301, 5, 83, 0, 0, 301, 302, 5, 32, 0, 0, 302, 303, 5, 78, 0, 0, 303, + 304, 5, 79, 0, 0, 304, 305, 5, 84, 0, 0, 305, 306, 5, 32, 0, 0, 306, 307, + 5, 78, 0, 0, 307, 308, 5, 85, 0, 0, 308, 309, 5, 76, 0, 0, 309, 311, 5, + 76, 0, 0, 310, 288, 1, 0, 0, 0, 310, 299, 1, 0, 0, 0, 311, 62, 1, 0, 0, + 0, 312, 313, 5, 126, 0, 0, 313, 64, 1, 0, 0, 0, 314, 322, 5, 33, 0, 0, + 315, 316, 5, 110, 0, 0, 316, 317, 5, 111, 0, 0, 317, 322, 5, 116, 0, 0, + 318, 319, 5, 78, 0, 0, 319, 320, 5, 79, 0, 0, 320, 322, 5, 84, 0, 0, 321, + 314, 1, 0, 0, 0, 321, 315, 1, 0, 0, 0, 321, 318, 1, 0, 0, 0, 322, 66, 1, + 0, 0, 0, 323, 324, 5, 105, 0, 0, 324, 328, 5, 110, 0, 0, 325, 326, 5, 73, + 0, 0, 326, 328, 5, 78, 0, 0, 327, 323, 1, 0, 0, 0, 327, 325, 1, 0, 0, 0, + 328, 68, 1, 0, 0, 0, 329, 334, 5, 91, 0, 0, 330, 333, 3, 149, 74, 0, 331, + 333, 3, 151, 75, 0, 332, 330, 1, 0, 0, 0, 332, 331, 1, 0, 0, 0, 333, 336, + 1, 0, 0, 0, 334, 332, 1, 0, 0, 0, 334, 335, 1, 0, 0, 0, 335, 337, 1, 0, + 0, 0, 336, 334, 1, 0, 0, 0, 337, 338, 5, 93, 0, 0, 338, 70, 1, 0, 0, 0, + 339, 340, 5, 106, 0, 0, 340, 341, 5, 115, 0, 0, 341, 342, 5, 111, 0, 0, + 342, 343, 5, 110, 0, 0, 343, 344, 5, 95, 0, 0, 344, 345, 5, 99, 0, 0, 345, + 346, 5, 111, 0, 0, 346, 347, 5, 110, 0, 0, 347, 348, 5, 116, 0, 0, 348, + 349, 5, 97, 0, 0, 349, 350, 5, 105, 0, 0, 350, 351, 5, 110, 0, 0, 351, + 366, 5, 115, 0, 0, 352, 353, 5, 74, 0, 0, 353, 354, 5, 83, 0, 0, 354, 355, + 5, 79, 0, 0, 355, 356, 5, 78, 0, 0, 356, 357, 5, 95, 0, 0, 357, 358, 5, + 67, 0, 0, 358, 359, 5, 79, 0, 0, 359, 360, 5, 78, 0, 0, 360, 361, 5, 84, + 0, 0, 361, 362, 5, 65, 0, 0, 362, 363, 5, 73, 0, 0, 363, 364, 5, 78, 0, + 0, 364, 366, 5, 83, 0, 0, 365, 339, 1, 0, 0, 0, 365, 352, 1, 0, 0, 0, 366, + 72, 1, 0, 0, 0, 367, 368, 5, 106, 0, 0, 368, 369, 5, 115, 0, 0, 369, 370, + 5, 111, 0, 0, 370, 371, 5, 110, 0, 0, 371, 372, 5, 95, 0, 0, 372, 373, + 5, 99, 0, 0, 373, 374, 5, 111, 0, 0, 374, 375, 5, 110, 0, 0, 375, 376, + 5, 116, 0, 0, 376, 377, 5, 97, 0, 0, 377, 378, 5, 105, 0, 0, 378, 379, + 5, 110, 0, 0, 379, 380, 5, 115, 0, 0, 380, 381, 5, 95, 0, 0, 381, 382, + 5, 97, 0, 0, 382, 383, 5, 108, 0, 0, 383, 402, 5, 108, 0, 0, 384, 385, + 5, 74, 0, 0, 385, 386, 5, 83, 0, 0, 386, 387, 5, 79, 0, 0, 387, 388, 5, + 78, 0, 0, 388, 389, 5, 95, 0, 0, 389, 390, 5, 67, 0, 0, 390, 391, 5, 79, + 0, 0, 391, 392, 5, 78, 0, 0, 392, 393, 5, 84, 0, 0, 393, 394, 5, 65, 0, + 0, 394, 395, 5, 73, 0, 0, 395, 396, 5, 78, 0, 0, 396, 397, 5, 83, 0, 0, + 397, 398, 5, 95, 0, 0, 398, 399, 5, 65, 0, 0, 399, 400, 5, 76, 0, 0, 400, + 402, 5, 76, 0, 0, 401, 367, 1, 0, 0, 0, 401, 384, 1, 0, 0, 0, 402, 74, + 1, 0, 0, 0, 403, 404, 5, 106, 0, 0, 404, 405, 5, 115, 0, 0, 405, 406, 5, + 111, 0, 0, 406, 407, 5, 110, 0, 0, 407, 408, 5, 95, 0, 0, 408, 409, 5, + 99, 0, 0, 409, 410, 5, 111, 0, 0, 410, 411, 5, 110, 0, 0, 411, 412, 5, + 116, 0, 0, 412, 413, 5, 97, 0, 0, 413, 414, 5, 105, 0, 0, 414, 415, 5, + 110, 0, 0, 415, 416, 5, 115, 0, 0, 416, 417, 5, 95, 0, 0, 417, 418, 5, + 97, 0, 0, 418, 419, 5, 110, 0, 0, 419, 438, 5, 121, 0, 0, 420, 421, 5, + 74, 0, 0, 421, 422, 5, 83, 0, 0, 422, 423, 5, 79, 0, 0, 423, 424, 5, 78, + 0, 0, 424, 425, 5, 95, 0, 0, 425, 426, 5, 67, 0, 0, 426, 427, 5, 79, 0, + 0, 427, 428, 5, 78, 0, 0, 428, 429, 5, 84, 0, 0, 429, 430, 5, 65, 0, 0, + 430, 431, 5, 73, 0, 0, 431, 432, 5, 78, 0, 0, 432, 433, 5, 83, 0, 0, 433, + 434, 5, 95, 0, 0, 434, 435, 5, 65, 0, 0, 435, 436, 5, 78, 0, 0, 436, 438, + 5, 89, 0, 0, 437, 403, 1, 0, 0, 0, 437, 420, 1, 0, 0, 0, 438, 76, 1, 0, + 0, 0, 439, 440, 5, 97, 0, 0, 440, 441, 5, 114, 0, 0, 441, 442, 5, 114, + 0, 0, 442, 443, 5, 97, 0, 0, 443, 444, 5, 121, 0, 0, 444, 445, 5, 95, 0, + 0, 445, 446, 5, 99, 0, 0, 446, 447, 5, 111, 0, 0, 447, 448, 5, 110, 0, + 0, 448, 449, 5, 116, 0, 0, 449, 450, 5, 97, 0, 0, 450, 451, 5, 105, 0, + 0, 451, 452, 5, 110, 0, 0, 452, 468, 5, 115, 0, 0, 453, 454, 5, 65, 0, + 0, 454, 455, 5, 82, 0, 0, 455, 456, 5, 82, 0, 0, 456, 457, 5, 65, 0, 0, + 457, 458, 5, 89, 0, 0, 458, 459, 5, 95, 0, 0, 459, 460, 5, 67, 0, 0, 460, + 461, 5, 79, 0, 0, 461, 462, 5, 78, 0, 0, 462, 463, 5, 84, 0, 0, 463, 464, + 5, 65, 0, 0, 464, 465, 5, 73, 0, 0, 465, 466, 5, 78, 0, 0, 466, 468, 5, + 83, 0, 0, 467, 439, 1, 0, 0, 0, 467, 453, 1, 0, 0, 0, 468, 78, 1, 0, 0, + 0, 469, 470, 5, 97, 0, 0, 470, 471, 5, 114, 0, 0, 471, 472, 5, 114, 0, + 0, 472, 473, 5, 97, 0, 0, 473, 474, 5, 121, 0, 0, 474, 475, 5, 95, 0, 0, + 475, 476, 5, 99, 0, 0, 476, 477, 5, 111, 0, 0, 477, 478, 5, 110, 0, 0, + 478, 479, 5, 116, 0, 0, 479, 480, 5, 97, 0, 0, 480, 481, 5, 105, 0, 0, + 481, 482, 5, 110, 0, 0, 482, 483, 5, 115, 0, 0, 483, 484, 5, 95, 0, 0, + 484, 485, 5, 97, 0, 0, 485, 486, 5, 108, 0, 0, 486, 506, 5, 108, 0, 0, + 487, 488, 5, 65, 0, 0, 488, 489, 5, 82, 0, 0, 489, 490, 5, 82, 0, 0, 490, + 491, 5, 65, 0, 0, 491, 492, 5, 89, 0, 0, 492, 493, 5, 95, 0, 0, 493, 494, + 5, 67, 0, 0, 494, 495, 5, 79, 0, 0, 495, 496, 5, 78, 0, 0, 496, 497, 5, + 84, 0, 0, 497, 498, 5, 65, 0, 0, 498, 499, 5, 73, 0, 0, 499, 500, 5, 78, + 0, 0, 500, 501, 5, 83, 0, 0, 501, 502, 5, 95, 0, 0, 502, 503, 5, 65, 0, + 0, 503, 504, 5, 76, 0, 0, 504, 506, 5, 76, 0, 0, 505, 469, 1, 0, 0, 0, + 505, 487, 1, 0, 0, 0, 506, 80, 1, 0, 0, 0, 507, 508, 5, 97, 0, 0, 508, + 509, 5, 114, 0, 0, 509, 510, 5, 114, 0, 0, 510, 511, 5, 97, 0, 0, 511, + 512, 5, 121, 0, 0, 512, 513, 5, 95, 0, 0, 513, 514, 5, 99, 0, 0, 514, 515, + 5, 111, 0, 0, 515, 516, 5, 110, 0, 0, 516, 517, 5, 116, 0, 0, 517, 518, + 5, 97, 0, 0, 518, 519, 5, 105, 0, 0, 519, 520, 5, 110, 0, 0, 520, 521, + 5, 115, 0, 0, 521, 522, 5, 95, 0, 0, 522, 523, 5, 97, 0, 0, 523, 524, 5, + 110, 0, 0, 524, 544, 5, 121, 0, 0, 525, 526, 5, 65, 0, 0, 526, 527, 5, + 82, 0, 0, 527, 528, 5, 82, 0, 0, 528, 529, 5, 65, 0, 0, 529, 530, 5, 89, + 0, 0, 530, 531, 5, 95, 0, 0, 531, 532, 5, 67, 0, 0, 532, 533, 5, 79, 0, + 0, 533, 534, 5, 78, 0, 0, 534, 535, 5, 84, 0, 0, 535, 536, 5, 65, 0, 0, + 536, 537, 5, 73, 0, 0, 537, 538, 5, 78, 0, 0, 538, 539, 5, 83, 0, 0, 539, + 540, 5, 95, 0, 0, 540, 541, 5, 65, 0, 0, 541, 542, 5, 78, 0, 0, 542, 544, + 5, 89, 0, 0, 543, 507, 1, 0, 0, 0, 543, 525, 1, 0, 0, 0, 544, 82, 1, 0, + 0, 0, 545, 546, 5, 97, 0, 0, 546, 547, 5, 114, 0, 0, 547, 548, 5, 114, + 0, 0, 548, 549, 5, 97, 0, 0, 549, 550, 5, 121, 0, 0, 550, 551, 5, 95, 0, + 0, 551, 552, 5, 108, 0, 0, 552, 553, 5, 101, 0, 0, 553, 554, 5, 110, 0, + 0, 554, 555, 5, 103, 0, 0, 555, 556, 5, 116, 0, 0, 556, 570, 5, 104, 0, + 0, 557, 558, 5, 65, 0, 0, 558, 559, 5, 82, 0, 0, 559, 560, 5, 82, 0, 0, + 560, 561, 5, 65, 0, 0, 561, 562, 5, 89, 0, 0, 562, 563, 5, 95, 0, 0, 563, + 564, 5, 76, 0, 0, 564, 565, 5, 69, 0, 0, 565, 566, 5, 78, 0, 0, 566, 567, + 5, 71, 0, 0, 567, 568, 5, 84, 0, 0, 568, 570, 5, 72, 0, 0, 569, 545, 1, + 0, 0, 0, 569, 557, 1, 0, 0, 0, 570, 84, 1, 0, 0, 0, 571, 572, 5, 116, 0, + 0, 572, 573, 5, 114, 0, 0, 573, 574, 5, 117, 0, 0, 574, 599, 5, 101, 0, + 0, 575, 576, 5, 84, 0, 0, 576, 577, 5, 114, 0, 0, 577, 578, 5, 117, 0, + 0, 578, 599, 5, 101, 0, 0, 579, 580, 5, 84, 0, 0, 580, 581, 5, 82, 0, 0, + 581, 582, 5, 85, 0, 0, 582, 599, 5, 69, 0, 0, 583, 584, 5, 102, 0, 0, 584, + 585, 5, 97, 0, 0, 585, 586, 5, 108, 0, 0, 586, 587, 5, 115, 0, 0, 587, + 599, 5, 101, 0, 0, 588, 589, 5, 70, 0, 0, 589, 590, 5, 97, 0, 0, 590, 591, + 5, 108, 0, 0, 591, 592, 5, 115, 0, 0, 592, 599, 5, 101, 0, 0, 593, 594, + 5, 70, 0, 0, 594, 595, 5, 65, 0, 0, 595, 596, 5, 76, 0, 0, 596, 597, 5, + 83, 0, 0, 597, 599, 5, 69, 0, 0, 598, 571, 1, 0, 0, 0, 598, 575, 1, 0, + 0, 0, 598, 579, 1, 0, 0, 0, 598, 583, 1, 0, 0, 0, 598, 588, 1, 0, 0, 0, + 598, 593, 1, 0, 0, 0, 599, 86, 1, 0, 0, 0, 600, 605, 3, 115, 57, 0, 601, + 605, 3, 117, 58, 0, 602, 605, 3, 119, 59, 0, 603, 605, 3, 113, 56, 0, 604, + 600, 1, 0, 0, 0, 604, 601, 1, 0, 0, 0, 604, 602, 1, 0, 0, 0, 604, 603, + 1, 0, 0, 0, 605, 88, 1, 0, 0, 0, 606, 609, 3, 131, 65, 0, 607, 609, 3, + 133, 66, 0, 608, 606, 1, 0, 0, 0, 608, 607, 1, 0, 0, 0, 609, 90, 1, 0, + 0, 0, 610, 615, 3, 109, 54, 0, 611, 614, 3, 109, 54, 0, 612, 614, 3, 111, + 55, 0, 613, 611, 1, 0, 0, 0, 613, 612, 1, 0, 0, 0, 614, 617, 1, 0, 0, 0, + 615, 613, 1, 0, 0, 0, 615, 616, 1, 0, 0, 0, 616, 92, 1, 0, 0, 0, 617, 615, + 1, 0, 0, 0, 618, 619, 5, 36, 0, 0, 619, 620, 5, 109, 0, 0, 620, 621, 5, + 101, 0, 0, 621, 622, 5, 116, 0, 0, 622, 623, 5, 97, 0, 0, 623, 94, 1, 0, + 0, 0, 624, 626, 3, 99, 49, 0, 625, 624, 1, 0, 0, 0, 625, 626, 1, 0, 0, + 0, 626, 637, 1, 0, 0, 0, 627, 629, 5, 34, 0, 0, 628, 630, 3, 101, 50, 0, + 629, 628, 1, 0, 0, 0, 629, 630, 1, 0, 0, 0, 630, 631, 1, 0, 0, 0, 631, + 638, 5, 34, 0, 0, 632, 634, 5, 39, 0, 0, 633, 635, 3, 103, 51, 0, 634, + 633, 1, 0, 0, 0, 634, 635, 1, 0, 0, 0, 635, 636, 1, 0, 0, 0, 636, 638, + 5, 39, 0, 0, 637, 627, 1, 0, 0, 0, 637, 632, 1, 0, 0, 0, 638, 96, 1, 0, + 0, 0, 639, 642, 3, 91, 45, 0, 640, 642, 3, 93, 46, 0, 641, 639, 1, 0, 0, + 0, 641, 640, 1, 0, 0, 0, 642, 650, 1, 0, 0, 0, 643, 646, 5, 91, 0, 0, 644, + 647, 3, 95, 47, 0, 645, 647, 3, 115, 57, 0, 646, 644, 1, 0, 0, 0, 646, + 645, 1, 0, 0, 0, 647, 648, 1, 0, 0, 0, 648, 649, 5, 93, 0, 0, 649, 651, + 1, 0, 0, 0, 650, 643, 1, 0, 0, 0, 651, 652, 1, 0, 0, 0, 652, 650, 1, 0, + 0, 0, 652, 653, 1, 0, 0, 0, 653, 98, 1, 0, 0, 0, 654, 655, 5, 117, 0, 0, + 655, 658, 5, 56, 0, 0, 656, 658, 7, 0, 0, 0, 657, 654, 1, 0, 0, 0, 657, + 656, 1, 0, 0, 0, 658, 100, 1, 0, 0, 0, 659, 661, 3, 105, 52, 0, 660, 659, + 1, 0, 0, 0, 661, 662, 1, 0, 0, 0, 662, 660, 1, 0, 0, 0, 662, 663, 1, 0, + 0, 0, 663, 102, 1, 0, 0, 0, 664, 666, 3, 107, 53, 0, 665, 664, 1, 0, 0, + 0, 666, 667, 1, 0, 0, 0, 667, 665, 1, 0, 0, 0, 667, 668, 1, 0, 0, 0, 668, + 104, 1, 0, 0, 0, 669, 677, 8, 1, 0, 0, 670, 677, 3, 147, 73, 0, 671, 672, + 5, 92, 0, 0, 672, 677, 5, 10, 0, 0, 673, 674, 5, 92, 0, 0, 674, 675, 5, + 13, 0, 0, 675, 677, 5, 10, 0, 0, 676, 669, 1, 0, 0, 0, 676, 670, 1, 0, + 0, 0, 676, 671, 1, 0, 0, 0, 676, 673, 1, 0, 0, 0, 677, 106, 1, 0, 0, 0, + 678, 686, 8, 2, 0, 0, 679, 686, 3, 147, 73, 0, 680, 681, 5, 92, 0, 0, 681, + 686, 5, 10, 0, 0, 682, 683, 5, 92, 0, 0, 683, 684, 5, 13, 0, 0, 684, 686, + 5, 10, 0, 0, 685, 678, 1, 0, 0, 0, 685, 679, 1, 0, 0, 0, 685, 680, 1, 0, + 0, 0, 685, 682, 1, 0, 0, 0, 686, 108, 1, 0, 0, 0, 687, 688, 7, 3, 0, 0, + 688, 110, 1, 0, 0, 0, 689, 690, 7, 4, 0, 0, 690, 112, 1, 0, 0, 0, 691, + 692, 5, 48, 0, 0, 692, 694, 7, 5, 0, 0, 693, 695, 7, 6, 0, 0, 694, 693, + 1, 0, 0, 0, 695, 696, 1, 0, 0, 0, 696, 694, 1, 0, 0, 0, 696, 697, 1, 0, + 0, 0, 697, 114, 1, 0, 0, 0, 698, 702, 3, 121, 60, 0, 699, 701, 3, 111, + 55, 0, 700, 699, 1, 0, 0, 0, 701, 704, 1, 0, 0, 0, 702, 700, 1, 0, 0, 0, + 702, 703, 1, 0, 0, 0, 703, 707, 1, 0, 0, 0, 704, 702, 1, 0, 0, 0, 705, + 707, 5, 48, 0, 0, 706, 698, 1, 0, 0, 0, 706, 705, 1, 0, 0, 0, 707, 116, + 1, 0, 0, 0, 708, 712, 5, 48, 0, 0, 709, 711, 3, 123, 61, 0, 710, 709, 1, + 0, 0, 0, 711, 714, 1, 0, 0, 0, 712, 710, 1, 0, 0, 0, 712, 713, 1, 0, 0, + 0, 713, 118, 1, 0, 0, 0, 714, 712, 1, 0, 0, 0, 715, 716, 5, 48, 0, 0, 716, + 717, 7, 7, 0, 0, 717, 718, 3, 143, 71, 0, 718, 120, 1, 0, 0, 0, 719, 720, + 7, 8, 0, 0, 720, 122, 1, 0, 0, 0, 721, 722, 7, 9, 0, 0, 722, 124, 1, 0, + 0, 0, 723, 724, 7, 10, 0, 0, 724, 126, 1, 0, 0, 0, 725, 726, 3, 125, 62, + 0, 726, 727, 3, 125, 62, 0, 727, 728, 3, 125, 62, 0, 728, 729, 3, 125, + 62, 0, 729, 128, 1, 0, 0, 0, 730, 731, 5, 92, 0, 0, 731, 732, 5, 117, 0, + 0, 732, 733, 1, 0, 0, 0, 733, 741, 3, 127, 63, 0, 734, 735, 5, 92, 0, 0, + 735, 736, 5, 85, 0, 0, 736, 737, 1, 0, 0, 0, 737, 738, 3, 127, 63, 0, 738, + 739, 3, 127, 63, 0, 739, 741, 1, 0, 0, 0, 740, 730, 1, 0, 0, 0, 740, 734, + 1, 0, 0, 0, 741, 130, 1, 0, 0, 0, 742, 744, 3, 135, 67, 0, 743, 745, 3, + 137, 68, 0, 744, 743, 1, 0, 0, 0, 744, 745, 1, 0, 0, 0, 745, 750, 1, 0, + 0, 0, 746, 747, 3, 139, 69, 0, 747, 748, 3, 137, 68, 0, 748, 750, 1, 0, + 0, 0, 749, 742, 1, 0, 0, 0, 749, 746, 1, 0, 0, 0, 750, 132, 1, 0, 0, 0, + 751, 752, 5, 48, 0, 0, 752, 755, 7, 7, 0, 0, 753, 756, 3, 141, 70, 0, 754, + 756, 3, 143, 71, 0, 755, 753, 1, 0, 0, 0, 755, 754, 1, 0, 0, 0, 756, 757, + 1, 0, 0, 0, 757, 758, 3, 145, 72, 0, 758, 134, 1, 0, 0, 0, 759, 761, 3, + 139, 69, 0, 760, 759, 1, 0, 0, 0, 760, 761, 1, 0, 0, 0, 761, 762, 1, 0, + 0, 0, 762, 763, 5, 46, 0, 0, 763, 768, 3, 139, 69, 0, 764, 765, 3, 139, + 69, 0, 765, 766, 5, 46, 0, 0, 766, 768, 1, 0, 0, 0, 767, 760, 1, 0, 0, + 0, 767, 764, 1, 0, 0, 0, 768, 136, 1, 0, 0, 0, 769, 771, 7, 11, 0, 0, 770, + 772, 7, 12, 0, 0, 771, 770, 1, 0, 0, 0, 771, 772, 1, 0, 0, 0, 772, 773, + 1, 0, 0, 0, 773, 774, 3, 139, 69, 0, 774, 138, 1, 0, 0, 0, 775, 777, 3, + 111, 55, 0, 776, 775, 1, 0, 0, 0, 777, 778, 1, 0, 0, 0, 778, 776, 1, 0, + 0, 0, 778, 779, 1, 0, 0, 0, 779, 140, 1, 0, 0, 0, 780, 782, 3, 143, 71, + 0, 781, 780, 1, 0, 0, 0, 781, 782, 1, 0, 0, 0, 782, 783, 1, 0, 0, 0, 783, + 784, 5, 46, 0, 0, 784, 789, 3, 143, 71, 0, 785, 786, 3, 143, 71, 0, 786, + 787, 5, 46, 0, 0, 787, 789, 1, 0, 0, 0, 788, 781, 1, 0, 0, 0, 788, 785, + 1, 0, 0, 0, 789, 142, 1, 0, 0, 0, 790, 792, 3, 125, 62, 0, 791, 790, 1, + 0, 0, 0, 792, 793, 1, 0, 0, 0, 793, 791, 1, 0, 0, 0, 793, 794, 1, 0, 0, + 0, 794, 144, 1, 0, 0, 0, 795, 797, 7, 13, 0, 0, 796, 798, 7, 12, 0, 0, + 797, 796, 1, 0, 0, 0, 797, 798, 1, 0, 0, 0, 798, 799, 1, 0, 0, 0, 799, + 800, 3, 139, 69, 0, 800, 146, 1, 0, 0, 0, 801, 802, 5, 92, 0, 0, 802, 817, + 7, 14, 0, 0, 803, 804, 5, 92, 0, 0, 804, 806, 3, 123, 61, 0, 805, 807, + 3, 123, 61, 0, 806, 805, 1, 0, 0, 0, 806, 807, 1, 0, 0, 0, 807, 809, 1, + 0, 0, 0, 808, 810, 3, 123, 61, 0, 809, 808, 1, 0, 0, 0, 809, 810, 1, 0, + 0, 0, 810, 817, 1, 0, 0, 0, 811, 812, 5, 92, 0, 0, 812, 813, 5, 120, 0, + 0, 813, 814, 1, 0, 0, 0, 814, 817, 3, 143, 71, 0, 815, 817, 3, 129, 64, + 0, 816, 801, 1, 0, 0, 0, 816, 803, 1, 0, 0, 0, 816, 811, 1, 0, 0, 0, 816, + 815, 1, 0, 0, 0, 817, 148, 1, 0, 0, 0, 818, 820, 7, 15, 0, 0, 819, 818, + 1, 0, 0, 0, 820, 821, 1, 0, 0, 0, 821, 819, 1, 0, 0, 0, 821, 822, 1, 0, + 0, 0, 822, 823, 1, 0, 0, 0, 823, 824, 6, 74, 0, 0, 824, 150, 1, 0, 0, 0, + 825, 827, 5, 13, 0, 0, 826, 828, 5, 10, 0, 0, 827, 826, 1, 0, 0, 0, 827, + 828, 1, 0, 0, 0, 828, 831, 1, 0, 0, 0, 829, 831, 5, 10, 0, 0, 830, 825, + 1, 0, 0, 0, 830, 829, 1, 0, 0, 0, 831, 832, 1, 0, 0, 0, 832, 833, 6, 75, + 0, 0, 833, 152, 1, 0, 0, 0, 58, 0, 191, 205, 227, 262, 270, 286, 310, 321, + 327, 332, 334, 365, 401, 437, 467, 505, 543, 569, 598, 604, 608, 613, 615, + 625, 629, 634, 637, 641, 646, 652, 657, 662, 667, 676, 685, 696, 702, 706, + 712, 740, 744, 749, 755, 760, 767, 771, 778, 781, 788, 793, 797, 806, 809, + 816, 821, 827, 830, 1, 6, 0, 0, } deserializer := antlr.NewATNDeserializer(nil) staticData.atn = deserializer.Deserialize(staticData.serializedATN) diff --git a/internal/parser/planparserv2/plan_parser_v2_test.go b/internal/parser/planparserv2/plan_parser_v2_test.go index 4c3a665930885..5642d7e2dd361 100644 --- a/internal/parser/planparserv2/plan_parser_v2_test.go +++ b/internal/parser/planparserv2/plan_parser_v2_test.go @@ -522,7 +522,9 @@ func TestExpr_Combinations(t *testing.T) { exprStrs := []string{ `not (Int8Field + 1 == 2)`, `(Int16Field - 3 == 4) and (Int32Field * 5 != 6)`, + `(Int16Field - 3 == 4) AND (Int32Field * 5 != 6)`, `(Int64Field / 7 != 8) or (Int64Field % 10 == 9)`, + `(Int64Field / 7 != 8) OR (Int64Field % 10 == 9)`, `Int64Field > 0 && VarCharField > "0"`, `Int64Field < 0 && VarCharField < "0"`, `A > 50 or B < 40`, @@ -691,13 +693,13 @@ func TestExpr_Invalid(t *testing.T) { `not_in_schema or true`, `false or not_in_schema`, `"str" or false`, - `BoolField or false`, - `Int32Field or Int64Field`, + `BoolField OR false`, + `Int32Field OR Int64Field`, `not_in_schema and true`, - `false and not_in_schema`, + `false AND not_in_schema`, `"str" and false`, `BoolField and false`, - `Int32Field and Int64Field`, + `Int32Field AND Int64Field`, // -------------------- unsupported ---------------------- `1 ^ 2`, `1 & 2`, From 7f05d7a40fc62033abf4d184b608dee714c50f8a Mon Sep 17 00:00:00 2001 From: Francisco Arceo Date: Sun, 5 Jan 2025 06:00:54 -0500 Subject: [PATCH 66/69] doc: Update typo in "Welcome to Milvus" (#38995) enhance: Updating a minor typo. Signed-off-by: Francisco Javier Arceo --- cmd/milvus/run.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/milvus/run.go b/cmd/milvus/run.go index e3796e16bc79c..aca5deade4436 100644 --- a/cmd/milvus/run.go +++ b/cmd/milvus/run.go @@ -54,7 +54,7 @@ func (c *run) printBanner(w io.Writer) { fmt.Fprintln(w, " / /|_/ // // /_| |/ / /_/ /\\ \\ ") fmt.Fprintln(w, " /_/ /_/___/____/___/\\____/___/ ") fmt.Fprintln(w) - fmt.Fprintln(w, "Welcome to use Milvus!") + fmt.Fprintln(w, "Welcome to Milvus!") fmt.Fprintln(w, "Version: "+BuildTags) fmt.Fprintln(w, "Built: "+BuildTime) fmt.Fprintln(w, "GitCommit: "+GitCommit) From 7128e36eb062f002bab0dd86d981467fcb50f56a Mon Sep 17 00:00:00 2001 From: congqixia Date: Sun, 5 Jan 2025 19:02:54 +0800 Subject: [PATCH 67/69] enhance: Use mvcc timestamp as guarantee ts if set (#38980) When MvccTimestamp is set, it could be used as guarantee timestamp directly instead of new ts allocated by scheduler reducing the waiting time when delegator has tsafe lag Signed-off-by: Congqi Xia --- internal/proxy/task_query.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/proxy/task_query.go b/internal/proxy/task_query.go index 910227e796135..9e43e1d3ef42b 100644 --- a/internal/proxy/task_query.go +++ b/internal/proxy/task_query.go @@ -570,6 +570,7 @@ func (t *queryTask) queryShard(ctx context.Context, nodeID int64, qn types.Query retrieveReq.GetBase().TargetID = nodeID if needOverrideMvcc && mvccTs > 0 { retrieveReq.MvccTimestamp = mvccTs + retrieveReq.GuaranteeTimestamp = mvccTs } req := &querypb.QueryRequest{ From 0a2c964bb84265ba4129066517312476e3c964a5 Mon Sep 17 00:00:00 2001 From: sre-ci-robot Date: Mon, 6 Jan 2025 00:01:39 +0000 Subject: [PATCH 68/69] Update all contributors Signed-off-by: sre-ci-robot --- README.md | 3 ++- README_CN.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ce8c61176181a..1f4db4230df67 100644 --- a/README.md +++ b/README.md @@ -244,7 +244,7 @@ Reference to cite when you use Milvus in a research paper: } ``` -
+
@@ -444,6 +444,7 @@ Reference to cite when you use Milvus in a research paper: + diff --git a/README_CN.md b/README_CN.md index 6789b3fa6ad3c..b1b22a70b9edb 100644 --- a/README_CN.md +++ b/README_CN.md @@ -183,7 +183,7 @@ Milvus [训练营](https://github.com/milvus-io/bootcamp)能够帮助你了解 ### All contributors
-
+
@@ -383,6 +383,7 @@ Milvus [训练营](https://github.com/milvus-io/bootcamp)能够帮助你了解 + From f0cddfd1604876e8c7a869fabf3c468d0bff0200 Mon Sep 17 00:00:00 2001 From: Bingyi Sun Date: Mon, 6 Jan 2025 10:54:54 +0800 Subject: [PATCH 69/69] fix: Fix panic caused by removing directory (#38622) https://github.com/milvus-io/milvus/issues/38604 --------- Signed-off-by: sunby --- internal/core/src/index/InvertedIndexTantivy.cpp | 3 +++ internal/core/src/storage/LocalChunkManager.cpp | 16 +++++++++++++--- .../core/thirdparty/tantivy/tantivy-wrapper.h | 14 ++++++++------ 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/internal/core/src/index/InvertedIndexTantivy.cpp b/internal/core/src/index/InvertedIndexTantivy.cpp index 0330b23817fc9..4204fd05d8b3c 100644 --- a/internal/core/src/index/InvertedIndexTantivy.cpp +++ b/internal/core/src/index/InvertedIndexTantivy.cpp @@ -103,6 +103,9 @@ InvertedIndexTantivy::InvertedIndexTantivy( template InvertedIndexTantivy::~InvertedIndexTantivy() { + if (wrapper_) { + wrapper_->free(); + } auto local_chunk_manager = storage::LocalChunkManagerSingleton::GetInstance().GetChunkManager(); auto prefix = path_; diff --git a/internal/core/src/storage/LocalChunkManager.cpp b/internal/core/src/storage/LocalChunkManager.cpp index f300989ef9f6e..03f77ae784dce 100644 --- a/internal/core/src/storage/LocalChunkManager.cpp +++ b/internal/core/src/storage/LocalChunkManager.cpp @@ -15,6 +15,8 @@ // limitations under the License. #include "LocalChunkManager.h" +#include "boost/algorithm/string/join.hpp" +#include "boost/filesystem/directory.hpp" #include "log/Log.h" #include @@ -217,10 +219,18 @@ LocalChunkManager::RemoveDir(const std::string& dir) { boost::system::error_code err; boost::filesystem::remove_all(dirPath, err); if (err) { + boost::filesystem::directory_iterator it(dirPath); + std::vector paths; + for (; it != boost::filesystem::directory_iterator(); ++it) { + paths.push_back(it->path().string()); + } + std::string files = boost::algorithm::join(paths, ", "); PanicInfo(FileWriteFailed, - fmt::format("remove local directory:{} failed, error: {}", - dir, - err.message())); + fmt::format( + "remove local directory:{} failed, error: {}, files: {}", + dir, + err.message(), + files)); } } diff --git a/internal/core/thirdparty/tantivy/tantivy-wrapper.h b/internal/core/thirdparty/tantivy/tantivy-wrapper.h index b6e956b47d5a2..d532b9f100562 100644 --- a/internal/core/thirdparty/tantivy/tantivy-wrapper.h +++ b/internal/core/thirdparty/tantivy/tantivy-wrapper.h @@ -588,23 +588,25 @@ struct TantivyIndexWrapper { return reader_; } - private: - void - check_search() { - // TODO - } - void free() { if (writer_ != nullptr) { tantivy_free_index_writer(writer_); + writer_ = nullptr; } if (reader_ != nullptr) { tantivy_free_index_reader(reader_); + reader_ = nullptr; } } + private: + void + check_search() { + // TODO + } + private: bool finished_ = false; IndexWriter writer_ = nullptr;