@camstack/addon-pipeline 1.2.54 → 1.2.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/recorder/index.js +45 -13
- package/dist/recorder/index.mjs +45 -13
- package/dist/stream-broker/index.js +125 -27
- package/dist/stream-broker/index.mjs +125 -27
- package/embed-dist/assets/{MaskShapeCanvas-DI4BY7W2-DY1AX2y_.js → MaskShapeCanvas-DI4BY7W2-Bxm34WFr.js} +1 -1
- package/embed-dist/assets/{MotionZonesSettings-NcxxQN8r-D46Ft0YB.js → MotionZonesSettings-NcxxQN8r-S8uFj2nP.js} +1 -1
- package/embed-dist/assets/{PrivacyMaskSettings-APgPLF7p-BLD9p-W3.js → PrivacyMaskSettings-APgPLF7p-nhHVCSoL.js} +1 -1
- package/embed-dist/assets/{index-CWxqVyhE.js → index-hICPL_hd.js} +4 -4
- package/embed-dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./MotionZonesSettings-NcxxQN8r-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./MotionZonesSettings-NcxxQN8r-S8uFj2nP.js","./MaskShapeCanvas-DI4BY7W2-Bxm34WFr.js","./PrivacyMaskSettings-APgPLF7p-nhHVCSoL.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,n)=>{let r={};for(var a in e)t(r,a,{get:e[a],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,a,s,c)=>{if(a&&typeof a==`object`||typeof a==`function`)for(var l=r(a),u=0,d=l.length,f;u<d;u++)f=l[u],!o.call(e,f)&&f!==s&&t(e,f,{get:(e=>a[e]).bind(null,f),enumerable:!(c=n(a,f))||c.enumerable});return e},u=(n,r,o)=>(o=n==null?{}:e(a(n)),l(r||!n||!n.__esModule?t(o,`default`,{value:n,enumerable:!0}):o,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var d=s((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,o=e[r];if(0<a(o,t))e[r]=t,e[n]=o,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,o=e.length,s=o>>>1;r<s;){var c=2*(r+1)-1,l=e[c],u=c+1,d=e[u];if(0>a(l,n))u<o&&0>a(d,l)?(e[r]=d,e[u]=n,r=u):(e[r]=l,e[c]=n,r=c);else if(u<o&&0>a(d,n))e[r]=d,e[u]=n,r=u;else break a}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var o=performance;e.unstable_now=function(){return o.now()}}else{var s=Date,c=s.now();e.unstable_now=function(){return s.now()-c}}var l=[],u=[],d=1,f=null,p=3,m=!1,h=!1,g=!1,_=!1,v=typeof setTimeout==`function`?setTimeout:null,y=typeof clearTimeout==`function`?clearTimeout:null,b=typeof setImmediate<`u`?setImmediate:null;function x(e){for(var a=n(u);a!==null;){if(a.callback===null)r(u);else if(a.startTime<=e)r(u),a.sortIndex=a.expirationTime,t(l,a);else break;a=n(u)}}function S(e){if(g=!1,x(e),!h)if(n(l)!==null)h=!0,ee||(ee=!0,ne());else{var t=n(u);t!==null&&O(S,t.startTime-e)}}var ee=!1,C=-1,w=5,T=-1;function E(){return _?!0:!(e.unstable_now()-T<w)}function te(){if(_=!1,ee){var t=e.unstable_now();T=t;var a=!0;try{a:{h=!1,g&&(g=!1,y(C),C=-1),m=!0;var o=p;try{b:{for(x(t),f=n(l);f!==null&&!(f.expirationTime>t&&E());){var s=f.callback;if(typeof s==`function`){f.callback=null,p=f.priorityLevel;var c=s(f.expirationTime<=t);if(t=e.unstable_now(),typeof c==`function`){f.callback=c,x(t),a=!0;break b}f===n(l)&&r(l),x(t)}else r(l);f=n(l)}if(f!==null)a=!0;else{var d=n(u);d!==null&&O(S,d.startTime-t),a=!1}}break a}finally{f=null,p=o,m=!1}a=void 0}}finally{a?ne():ee=!1}}}var ne;if(typeof b==`function`)ne=function(){b(te)};else if(typeof MessageChannel<`u`){var D=new MessageChannel,re=D.port2;D.port1.onmessage=te,ne=function(){re.postMessage(null)}}else ne=function(){v(te,0)};function O(t,n){C=v(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return p},e.unstable_next=function(e){switch(p){case 1:case 2:case 3:var t=3;break;default:t=p}var n=p;p=t;try{return e()}finally{p=n}},e.unstable_requestPaint=function(){_=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=p;p=e;try{return t()}finally{p=n}},e.unstable_scheduleCallback=function(r,a,o){var s=e.unstable_now();switch(typeof o==`object`&&o?(o=o.delay,o=typeof o==`number`&&0<o?s+o:s):o=s,r){case 1:var c=-1;break;case 2:c=250;break;case 5:c=1073741823;break;case 4:c=1e4;break;default:c=5e3}return c=o+c,r={id:d++,callback:a,priorityLevel:r,startTime:o,expirationTime:c,sortIndex:-1},o>s?(r.sortIndex=o,t(u,r),n(l)===null&&r===n(u)&&(g?(y(C),C=-1):g=!0,O(S,o-s))):(r.sortIndex=c,t(l,r),h||m||(h=!0,ee||(ee=!0,ne()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}})),f=s(((e,t)=>{t.exports=d()})),p=s((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),a=Symbol.for(`react.strict_mode`),o=Symbol.for(`react.profiler`),s=Symbol.for(`react.consumer`),c=Symbol.for(`react.context`),l=Symbol.for(`react.forward_ref`),u=Symbol.for(`react.suspense`),d=Symbol.for(`react.memo`),f=Symbol.for(`react.lazy`),p=Symbol.for(`react.activity`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`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`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var ee=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var a=r.ref;return{$$typeof:t,type:e,key:n,ref:a===void 0?null:a,props:r}}function te(e,t){return E(e.type,t,e.props)}function ne(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function D(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var re=/\/+/g;function O(e,t){return typeof e==`object`&&e&&e.key!=null?D(``+e.key):t.toString(36)}function ie(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function ae(e,r,a,o,s){var c=typeof e;(c===`undefined`||c===`boolean`)&&(e=null);var l=!1;if(e===null)l=!0;else switch(c){case`bigint`:case`string`:case`number`:l=!0;break;case`object`:switch(e.$$typeof){case t:case n:l=!0;break;case f:return l=e._init,ae(l(e._payload),r,a,o,s)}}if(l)return s=s(e),l=o===``?`.`+O(e,0):o,ee(s)?(a=``,l!=null&&(a=l.replace(re,`$&/`)+`/`),ae(s,r,a,``,function(e){return e})):s!=null&&(ne(s)&&(s=te(s,a+(s.key==null||e&&e.key===s.key?``:(``+s.key).replace(re,`$&/`)+`/`)+l)),r.push(s)),1;l=0;var u=o===``?`.`:o+`:`;if(ee(e))for(var d=0;d<e.length;d++)o=e[d],c=u+O(o,d),l+=ae(o,r,a,c,s);else if(d=h(e),typeof d==`function`)for(e=d.call(e),d=0;!(o=e.next()).done;)o=o.value,c=u+O(o,d++),l+=ae(o,r,a,c,s);else if(c===`object`){if(typeof e.then==`function`)return ae(ie(e),r,a,o,s);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return l}function oe(e,t,n){if(e==null)return e;var r=[],a=0;return ae(e,r,``,``,function(e){return t.call(n,e,a++)}),r}function se(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var k=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},ce={map:oe,forEach:function(e,t,n){oe(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return oe(e,function(){t++}),t},toArray:function(e){return oe(e,function(e){return e})||[]},only:function(e){if(!ne(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=p,e.Children=ce,e.Component=y,e.Fragment=r,e.Profiler=o,e.PureComponent=x,e.StrictMode=a,e.Suspense=u,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=_({},e.props),a=e.key;if(t!=null)for(o in t.key!==void 0&&(a=``+t.key),t)!T.call(t,o)||o===`key`||o===`__self`||o===`__source`||o===`ref`&&t.ref===void 0||(r[o]=t[o]);var o=arguments.length-2;if(o===1)r.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];r.children=s}return E(e.type,a,r)},e.createContext=function(e){return e={$$typeof:c,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:s,_context:e},e},e.createElement=function(e,t,n){var r,a={},o=null;if(t!=null)for(r in t.key!==void 0&&(o=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(a[r]=t[r]);var s=arguments.length-2;if(s===1)a.children=n;else if(1<s){for(var c=Array(s),l=0;l<s;l++)c[l]=arguments[l+2];a.children=c}if(e&&e.defaultProps)for(r in s=e.defaultProps,s)a[r]===void 0&&(a[r]=s[r]);return E(e,o,a)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:l,render:e}},e.isValidElement=ne,e.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:se}},e.memo=function(e,t){return{$$typeof:d,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),a=w.S;a!==null&&a(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,k)}catch(e){k(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.7`})),m=s(((e,t)=>{t.exports=p()})),h=s((e=>{var t=m();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var a={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},o=Symbol.for(`react.portal`);function s(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var c=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function l(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return s(e,t,null,r)},e.flushSync=function(e){var t=c.T,n=a.p;try{if(c.T=null,a.p=2,e)return e()}finally{c.T=t,a.p=n,a.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,a.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&a.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=l(n,t.crossOrigin),o=typeof t.integrity==`string`?t.integrity:void 0,s=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?a.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:o,fetchPriority:s}):n===`script`&&a.d.X(e,{crossOrigin:r,integrity:o,fetchPriority:s,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`)if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=l(t.as,t.crossOrigin);a.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??a.d.M(e)},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=l(n,t.crossOrigin);a.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`)if(t){var n=l(t.as,t.crossOrigin);a.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else a.d.m(e)},e.requestFormReset=function(e){a.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return c.H.useFormState(e,t,n)},e.useFormStatus=function(){return c.H.useHostTransitionStatus()},e.version=`19.2.7`})),g=s(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=s((e=>{var t=f(),n=m(),r=g();function a(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function o(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function s(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function c(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function u(e){if(s(e)!==e)throw Error(a(188))}function d(e){var t=e.alternate;if(!t){if(t=s(e),t===null)throw Error(a(188));return t===e?e:null}for(var n=e,r=t;;){var o=n.return;if(o===null)break;var c=o.alternate;if(c===null){if(r=o.return,r!==null){n=r;continue}break}if(o.child===c.child){for(c=o.child;c;){if(c===n)return u(o),e;if(c===r)return u(o),t;c=c.sibling}throw Error(a(188))}if(n.return!==r.return)n=o,r=c;else{for(var l=!1,d=o.child;d;){if(d===n){l=!0,n=o,r=c;break}if(d===r){l=!0,r=o,n=c;break}d=d.sibling}if(!l){for(d=c.child;d;){if(d===n){l=!0,n=c,r=o;break}if(d===r){l=!0,r=c,n=o;break}d=d.sibling}if(!l)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(n.tag!==3)throw Error(a(188));return n.stateNode.current===n?e:t}function p(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=p(e),t!==null)return t;e=e.sibling}return null}var h=Object.assign,_=Symbol.for(`react.element`),v=Symbol.for(`react.transitional.element`),y=Symbol.for(`react.portal`),b=Symbol.for(`react.fragment`),x=Symbol.for(`react.strict_mode`),S=Symbol.for(`react.profiler`),ee=Symbol.for(`react.consumer`),C=Symbol.for(`react.context`),w=Symbol.for(`react.forward_ref`),T=Symbol.for(`react.suspense`),E=Symbol.for(`react.suspense_list`),te=Symbol.for(`react.memo`),ne=Symbol.for(`react.lazy`),D=Symbol.for(`react.activity`),re=Symbol.for(`react.memo_cache_sentinel`),O=Symbol.iterator;function ie(e){return typeof e!=`object`||!e?null:(e=O&&e[O]||e[`@@iterator`],typeof e==`function`?e:null)}var ae=Symbol.for(`react.client.reference`);function oe(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===ae?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case b:return`Fragment`;case S:return`Profiler`;case x:return`StrictMode`;case T:return`Suspense`;case E:return`SuspenseList`;case D:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case y:return`Portal`;case C:return e.displayName||`Context`;case ee:return(e._context.displayName||`Context`)+`.Consumer`;case w:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case te:return t=e.displayName||null,t===null?oe(e.type)||`Memo`:t;case ne:t=e._payload,e=e._init;try{return oe(e(t))}catch{}}return null}var se=Array.isArray,k=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ce=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,le={pending:!1,data:null,method:null,action:null},ue=[],de=-1;function fe(e){return{current:e}}function pe(e){0>de||(e.current=ue[de],ue[de]=null,de--)}function me(e,t){de++,ue[de]=e.current,e.current=t}var he=fe(null),ge=fe(null),_e=fe(null),ve=fe(null);function ye(e,t){switch(me(_e,t),me(ge,e),me(he,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Xd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Xd(t),e=Zd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}pe(he),me(he,e)}function be(){pe(he),pe(ge),pe(_e)}function xe(e){e.memoizedState!==null&&me(ve,e);var t=he.current,n=Zd(t,e.type);t!==n&&(me(ge,e),me(he,n))}function Se(e){ge.current===e&&(pe(he),pe(ge)),ve.current===e&&(pe(ve),sp._currentValue=le)}var Ce,we;function Te(e){if(Ce===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Ce=t&&t[1]||``,we=-1<e.stack.indexOf(`
|
|
3
3
|
at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
|
|
4
4
|
`+Ce+e+we}var Ee=!1;function De(e,t){if(!e||Ee)return``;Ee=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var a=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);a&&a.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var o=r.DetermineComponentFrameRoot(),s=o[0],c=o[1];if(s&&c){var l=s.split(`
|
|
@@ -107,6 +107,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
107
107
|
@media (prefers-reduced-motion: reduce) {
|
|
108
108
|
.acv-streak, .acv-fan, .acv-sway-wrap, .acv-glow, .acv-swing { animation: none !important; }
|
|
109
109
|
}
|
|
110
|
-
`;function dG({trpc:e,deviceId:t,layout:n,optimistic:r}){let{cap:a,slice:o,available:s}=hH({trpc:e,deviceId:t,cap:e=>e.climateControl,slice:e=>e.state.climateControl}),{display:c,applyOptimistic:l}=OH(o,{enabled:r??!0});if(a===void 0||c===void 0)return null;let u=!s;if(n===`compact`)return(0,q.jsxs)(`div`,{"data-mode":c.mode,className:`inline-flex items-center gap-1`,children:[(0,q.jsx)(`span`,{className:Z(`text-xs tabular-nums font-medium`,$W[c.mode]),children:c.target===null?c.currentTemp===null?null:(0,q.jsxs)(`span`,{className:`text-foreground-subtle`,children:[c.currentTemp,`°`]}):(0,q.jsxs)(q.Fragment,{children:[c.target,`°`,c.currentTemp!==null&&(0,q.jsxs)(`span`,{className:`text-foreground-subtle font-normal`,children:[` `,`(`,c.currentTemp,`°)`]})]})}),c.target!==null&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`button`,{type:`button`,"aria-label":`Decrease target`,disabled:u,onClick:e=>{if(e.stopPropagation(),!u&&c.target!==null){let e=c.target-1;l({target:e}),a.setTarget({target:e})}},className:Z(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,u&&`opacity-40 cursor-not-allowed`),children:`−`}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`Increase target`,disabled:u,onClick:e=>{if(e.stopPropagation(),!u&&c.target!==null){let e=c.target+1;l({target:e}),a.setTarget({target:e})}},className:Z(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,u&&`opacity-40 cursor-not-allowed`),children:`+`})]}),(0,q.jsx)(`select`,{"aria-label":`Mode`,value:c.mode,disabled:u,onChange:e=>{e.stopPropagation();let t=c.availableModes.find(t=>t===e.target.value);!u&&t&&(l({mode:t}),a.setMode({mode:t}))},className:Z(`bg-transparent px-0.5 text-xs text-foreground-subtle hover:text-foreground cursor-pointer`,u&&`opacity-40 cursor-not-allowed`),children:c.availableModes.map(e=>(0,q.jsx)(`option`,{value:e,children:nG[e]},e))})]});let d=iG[c.mode],f=c.mode!==`off`,p=cG(c.preset),m=c.preset===`turbo`,h=Math.max(.55,lG(c.fanMode)*(m?.6:1)),g=c.swingVertical!==null,_=c.swingHorizontal!==null,v=f&&(c.swingVertical===!0||c.swingHorizontal===!0);return(0,q.jsxs)(`div`,{"data-mode":c.mode,className:Z(`relative flex flex-col items-stretch gap-2.5 overflow-hidden rounded-lg border p-3 transition-colors`,QW[c.mode]),children:[(0,q.jsx)(`style`,{children:uG}),(0,q.jsxs)(`div`,{className:`relative z-10 flex flex-col items-center justify-center gap-1 overflow-hidden rounded-lg border border-border/50 bg-surface/30 px-3 py-3`,children:[(0,q.jsx)(`div`,{className:`pointer-events-none absolute inset-0 opacity-60`,children:(0,q.jsx)(_G,{mode:c.mode,accent:d,periodSec:h,swaying:v})}),(0,q.jsx)(`div`,{className:`pointer-events-none absolute inset-0 bg-gradient-to-b from-surface/50 via-transparent to-surface/50`}),f&&(0,q.jsx)(`span`,{"aria-hidden":!0,className:`acv-glow pointer-events-none absolute left-1/2 top-1/2 h-16 w-16 -translate-x-1/2 -translate-y-1/2 rounded-full blur-2xl`,style:{background:d,animation:`acv-glow 3.2s ease-in-out infinite`}}),(0,q.jsxs)(`div`,{className:`relative z-10 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide`,style:{color:d},children:[(0,q.jsx)(pG,{mode:c.mode,className:`h-3.5 w-3.5`}),nG[c.mode],c.currentTemp!==null&&(0,q.jsxs)(`span`,{className:`normal-case text-foreground-subtle`,children:[`· `,c.currentTemp,`° now`]}),c.currentHumidity!==null&&(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 normal-case text-foreground-subtle`,children:[(0,q.jsx)(Yz,{className:`h-3 w-3`}),c.currentHumidity,`%`]})]}),c.target===null?(0,q.jsxs)(`div`,{className:`relative z-10 flex items-baseline gap-0.5`,children:[(0,q.jsx)(`span`,{className:`text-4xl font-bold leading-none tabular-nums text-foreground`,children:c.currentTemp??`—`}),(0,q.jsx)(`span`,{className:`text-lg text-foreground-subtle`,children:`°`})]}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`relative z-10 flex items-center gap-3`,children:[(0,q.jsx)(hG,{label:`Decrease target`,symbol:`−`,disabled:u,onClick:()=>{if(u||c.target===null)return;let e=c.target-1;l({target:e}),a.setTarget({target:e})}}),(0,q.jsxs)(`div`,{className:`flex items-baseline gap-0.5`,children:[(0,q.jsx)(`span`,{className:`text-4xl font-bold leading-none tabular-nums`,style:{color:d},children:c.target}),(0,q.jsx)(`span`,{className:`text-lg text-foreground-subtle`,children:`°`})]}),(0,q.jsx)(hG,{label:`Increase target`,symbol:`+`,disabled:u,onClick:()=>{if(u||c.target===null)return;let e=c.target+1;l({target:e}),a.setTarget({target:e})}})]}),(0,q.jsx)(`div`,{className:`relative z-10 w-36`,children:(0,q.jsx)(gG,{value:c.target,min:aG,max:oG,accent:d})})]})]}),(0,q.jsxs)(`div`,{className:`relative z-10 grid grid-cols-3 gap-2`,children:[(0,q.jsx)(mG,{label:`Mode`,icon:(0,q.jsx)(`span`,{style:{color:d},className:`flex`,children:(0,q.jsx)(pG,{mode:c.mode,className:`h-4 w-4`})}),value:c.mode,options:c.availableModes.map(e=>({value:e,label:nG[e]})),disabled:u,onChange:e=>{let t=c.availableModes.find(t=>t===e);t&&(l({mode:t}),a.setMode({mode:t}))}}),c.availableFanModes.length>0&&(0,q.jsx)(mG,{label:`Fan`,icon:(0,q.jsx)(TV,{className:`h-4 w-4 text-sky-500`}),value:c.fanMode,options:c.availableFanModes.map(e=>({value:e,label:sG(e)})),disabled:u,onChange:e=>{l({fanMode:e}),a.setFanMode({fanMode:e})}}),c.availablePresets.length>0&&(0,q.jsx)(mG,{label:`Preset`,icon:(0,q.jsx)(p,{className:`h-4 w-4 text-emerald-500`}),value:c.preset,options:c.availablePresets.map(e=>({value:e,label:sG(e)})),disabled:u,onChange:e=>{l({preset:e}),a.setPreset({preset:e})}})]}),(g||_)&&(0,q.jsx)(fG,{label:`Swing`,children:(0,q.jsxs)(`div`,{className:`grid grid-cols-2 gap-1`,children:[g&&(0,q.jsx)(yG,{axis:`vertical`,on:c.swingVertical??!1,busy:u,onToggle:e=>{l({swingVertical:e}),a.setSwingVertical({on:e})}}),_&&(0,q.jsx)(yG,{axis:`horizontal`,on:c.swingHorizontal??!1,busy:u,onToggle:e=>{l({swingHorizontal:e}),a.setSwingHorizontal({on:e})}})]})})]})}function fG({label:e,children:t}){return(0,q.jsxs)(`div`,{className:`relative z-10 flex flex-col gap-1`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:e}),t]})}function pG({mode:e,className:t}){let n=rG[e];return(0,q.jsx)(n,{className:t,"aria-hidden":!0})}function mG({label:e,icon:t,value:n,options:r,disabled:a,onChange:o}){return(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:e}),(0,q.jsxs)(`div`,{className:Z(`flex items-center gap-1 overflow-hidden rounded-lg border border-border/60 bg-surface-subtle px-1.5 py-1.5`,a&&`opacity-40`),children:[(0,q.jsx)(`span`,{className:`flex shrink-0`,children:t}),(0,q.jsx)(`select`,{"aria-label":e,value:n,disabled:a,onChange:e=>{e.stopPropagation(),a||o(e.target.value)},className:`min-w-0 flex-1 cursor-pointer appearance-none truncate bg-transparent text-xs font-medium text-foreground outline-none`,children:r.map(e=>(0,q.jsx)(`option`,{value:e.value,children:e.label},e.value))}),(0,q.jsx)(kz,{className:`h-3 w-3 shrink-0 text-foreground-subtle`})]})]})}function hG({label:e,symbol:t,disabled:n,onClick:r}){return(0,q.jsx)(`button`,{type:`button`,"aria-label":e,disabled:n,onClick:r,className:Z(`flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-border bg-surface text-lg leading-none text-foreground-subtle transition-colors hover:bg-surface-hover hover:text-foreground active:scale-95`,n&&`opacity-40 cursor-not-allowed`),children:t})}function gG({value:e,min:t,max:n,accent:r}){let a=`${Math.min(1,Math.max(0,(e-t)/(n-t)))*100}%`;return(0,q.jsxs)(`div`,{className:`mt-2 w-full`,children:[(0,q.jsxs)(`div`,{className:`relative h-1.5 w-full rounded-full bg-surface-subtle`,children:[(0,q.jsx)(`div`,{className:`absolute inset-y-0 left-0 rounded-full`,style:{width:a,background:r}}),(0,q.jsx)(`div`,{className:`absolute top-1/2 h-3 w-3 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-surface shadow`,style:{left:a,background:r}})]}),(0,q.jsxs)(`div`,{className:`mt-0.5 flex justify-between text-[9px] tabular-nums text-foreground-subtle`,children:[(0,q.jsxs)(`span`,{children:[t,`°`]}),(0,q.jsxs)(`span`,{children:[n,`°`]})]})]})}function _G({mode:e,accent:t,periodSec:n,swaying:r}){let a=[0,1,2,3,4,5],o=e===`heat`,s=e===`dry`;return(0,q.jsx)(`div`,{"aria-hidden":!0,className:`absolute inset-0 overflow-hidden`,children:e===`off`?(0,q.jsx)(`div`,{className:`flex h-full items-center justify-center gap-2 opacity-30`,children:a.map(e=>(0,q.jsx)(`span`,{className:`h-8 w-1 rounded-full bg-foreground-subtle opacity-40`},e))}):e===`fan_only`?(0,q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,q.jsx)(vG,{color:t,periodSec:Math.max(.5,n*.7),size:56})}):(0,q.jsx)(`div`,{className:Z(`acv-sway-wrap absolute inset-0`,r&&`acv-sway`),style:r?{animation:`acv-sway 2.6s ease-in-out infinite`}:void 0,children:a.map(e=>(0,q.jsx)(`span`,{className:`acv-streak absolute rounded-full`,style:{left:`${8+e*15}%`,width:s?`0.4rem`:`0.3rem`,height:s?`0.4rem`:`1.9rem`,background:t,boxShadow:`0 0 6px ${t}`,animationName:o?`acv-rise`:`acv-fall`,animationTimingFunction:`linear`,animationIterationCount:`infinite`,animationDuration:`${n}s`,animationDelay:`${e%3*(n/3)+e*.05}s`}},e))})})}function vG({color:e,periodSec:t,size:n}){return(0,q.jsxs)(`svg`,{width:n,height:n,viewBox:`0 0 100 100`,className:`acv-fan`,style:{animation:`acv-spin ${t}s linear infinite`,transformOrigin:`50% 50%`},"aria-hidden":!0,children:[[0,120,240].map(t=>(0,q.jsx)(`path`,{d:`M50 50 C 58 30, 78 26, 84 12 C 66 20, 54 34, 50 50 Z`,fill:e,opacity:.85,transform:`rotate(${t} 50 50)`},t)),(0,q.jsx)(`circle`,{cx:`50`,cy:`50`,r:`7`,fill:e})]})}function yG({axis:e,on:t,busy:n,onToggle:r}){let a=e===`vertical`?`Vertical`:`Horizontal`,o=e===`vertical`?TB:wB,s=e===`vertical`?`acv-swing-v`:`acv-swing-h`;return(0,q.jsxs)(`button`,{type:`button`,"aria-label":`${a} swing`,"aria-pressed":t,disabled:n,onClick:()=>{n||r(!t)},className:Z(`flex items-center justify-center gap-2 rounded-lg border px-2 py-1.5 text-xs font-medium transition-colors`,t?`border-transparent bg-indigo-400 text-indigo-950 shadow-sm`:`border-border/60 bg-surface-subtle text-foreground-subtle hover:bg-surface-hover hover:text-foreground`,n&&`opacity-40 cursor-not-allowed`),children:[(0,q.jsx)(o,{className:`acv-swing h-4 w-4`,"aria-hidden":!0,style:t?{animation:`${s} 1.4s ease-in-out infinite`}:void 0}),a]})}var bG={playing:`border-green-400 bg-green-50 dark:bg-green-950`,paused:`border-amber-400 bg-amber-50 dark:bg-amber-950`,buffering:`border-blue-400 bg-blue-50 dark:bg-blue-950`,on:`border-slate-400 bg-slate-50 dark:bg-slate-950`,idle:`border-slate-400 bg-slate-50 dark:bg-slate-950`,off:`border-zinc-300 bg-zinc-50 dark:bg-zinc-900`,standby:`border-zinc-300 bg-zinc-50 dark:bg-zinc-900`},xG={playing:`bg-green-500`,paused:`bg-amber-400`,buffering:`bg-blue-400`,on:`bg-slate-400`,idle:`bg-slate-400`,off:`bg-zinc-300`,standby:`bg-zinc-300`},SG=[`off`,`all`,`one`];function CG(e){return SG.includes(e)}var wG={off:`Off`,all:`All`,one:`One`};function TG(e){return e===`playing`||e===`buffering`?`pause`:`play`}function EG({trpc:e,deviceId:t,features:n,layout:r,optimistic:a}){let{cap:o,slice:s,available:c}=hH({trpc:e,deviceId:t,cap:e=>e.mediaPlayer,slice:e=>e.state.mediaPlayer}),{display:l,applyOptimistic:u}=OH(s,{enabled:a??!0});if(l===void 0)return null;let d=!c,f=TG(l.state);return(0,q.jsxs)(`div`,{"data-state":l.state,className:Z(`inline-flex items-center gap-2 rounded border px-2 py-1 transition-colors`,bG[l.state],r===`full`&&`flex-col items-stretch gap-3`),children:[(0,q.jsxs)(`div`,{className:`inline-flex items-center gap-2`,children:[(0,q.jsx)(`span`,{role:`status`,"aria-label":l.state,className:Z(`inline-block h-2 w-2 rounded-full flex-shrink-0`,xG[l.state])}),(0,q.jsx)(`button`,{type:`button`,"aria-label":f===`play`?`Play`:`Pause`,disabled:d,onClick:e=>{e.stopPropagation(),!d&&(f===`play`?(u({state:`playing`}),o?.play({})):(u({state:`paused`}),o?.pause({})))},className:Z(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,d&&`opacity-40 cursor-not-allowed`),children:f===`play`?`▶`:`⏸`})]}),r===`full`&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`inline-flex items-center gap-1`,children:[(0,q.jsx)(`button`,{type:`button`,"aria-label":`Previous`,disabled:d,onClick:e=>{e.stopPropagation(),d||o?.previous({})},className:Z(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,d&&`opacity-40 cursor-not-allowed`),children:`⏮`}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`Next`,disabled:d,onClick:e=>{e.stopPropagation(),d||o?.next({})},className:Z(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,d&&`opacity-40 cursor-not-allowed`),children:`⏭`})]}),l.volumeLevel!==null&&(0,q.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[(0,q.jsx)(`span`,{children:`Vol`}),(0,q.jsx)(`input`,{"aria-label":`Volume`,type:`range`,min:0,max:100,step:1,value:l.volumeLevel,disabled:d,onChange:e=>{let t=Number(e.target.value);u({volumeLevel:t}),d||o?.setVolume({volumeLevel:t})}}),(0,q.jsxs)(`span`,{className:`tabular-nums w-8 text-right`,children:[l.volumeLevel,`%`]})]}),l.isMuted!==null&&(0,q.jsx)(`button`,{type:`button`,"aria-label":l.isMuted?`Unmute`:`Mute`,disabled:d,onClick:e=>{if(e.stopPropagation(),!d&&l.isMuted!==null){let e=!l.isMuted;u({isMuted:e}),o?.setMute({muted:e})}},className:Z(`inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs transition-colors`,l.isMuted?`bg-amber-400 text-amber-950`:`text-foreground-subtle hover:text-foreground hover:bg-surface-hover`,d&&`opacity-40 cursor-not-allowed`),children:l.isMuted?`🔇`:`🔊`}),l.availableSources.length>0&&(0,q.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[(0,q.jsx)(`span`,{children:`Source`}),(0,q.jsxs)(`select`,{"aria-label":`Source`,value:l.source,disabled:d,onChange:e=>{let t=e.target.value;!d&&t&&(u({source:t}),o?.selectSource({source:t}))},className:`rounded border border-border bg-surface px-1 py-0.5`,children:[(0,q.jsx)(`option`,{value:``,disabled:!0,children:`—`}),l.availableSources.map(e=>(0,q.jsx)(`option`,{value:e,children:e},e))]})]}),l.shuffle!==null&&(0,q.jsx)(`button`,{type:`button`,"aria-label":`Shuffle`,disabled:d,onClick:e=>{if(e.stopPropagation(),!d&&l.shuffle!==null){let e=!l.shuffle;u({shuffle:e}),o?.setShuffle({shuffle:e})}},className:Z(`inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs transition-colors`,l.shuffle?`bg-green-400 text-green-950`:`text-foreground-subtle hover:text-foreground hover:bg-surface-hover`,d&&`opacity-40 cursor-not-allowed`),children:`⇌ Shuffle`}),l.repeat!==null&&(0,q.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[(0,q.jsx)(`span`,{children:`Repeat`}),(0,q.jsx)(`select`,{"aria-label":`Repeat`,value:l.repeat,disabled:d,onChange:e=>{let t=e.target.value;!d&&CG(t)&&(u({repeat:t}),o?.setRepeat({repeat:t}))},className:`rounded border border-border bg-surface px-1 py-0.5`,children:SG.map(e=>(0,q.jsx)(`option`,{value:e,children:wG[e]},e))})]})]})]})}function DG(e){return e.slice(0,10)}function OG(e){return e.slice(0,5)}function kG(e){return(e.includes(`T`)?e:e.replace(` `,`T`)).slice(0,16)}function AG({value:e,busy:t,onCommit:n,unit:r,min:a,max:o,step:s,precision:c}){let[l,u]=(0,K.useState)(eF(e,c)),d=Number(l),f=l!==``&&!Number.isNaN(d),p=s??1,m=e=>{let t=e;return a!==void 0&&(t=Math.max(a,t)),o!==void 0&&(t=Math.min(o,t)),t},h=()=>{!t&&f&&n(m(d))};return(0,q.jsxs)(`div`,{className:`inline-flex items-center gap-1`,children:[(0,q.jsx)(`button`,{type:`button`,"aria-label":`Decrement`,disabled:t,onClick:r=>{if(r.stopPropagation(),!t){let t=m(e-p);u(eF(t,c)),n(t)}},className:Z(`inline-flex h-5 w-5 items-center justify-center rounded border border-border bg-surface text-xs transition-colors hover:bg-surface-hover`,t&&`opacity-40 cursor-not-allowed`),children:`−`}),(0,q.jsx)(`input`,{"aria-label":`Numeric value`,type:`number`,disabled:t,value:l,onChange:e=>{u(e.target.value);let r=Number(e.target.value);e.target.value!==``&&!Number.isNaN(r)&&(t||n(m(r)))},onBlur:h,onKeyDown:e=>{e.key===`Enter`&&h()},className:Z(`w-16 rounded border border-border bg-surface px-1 py-0.5 text-xs tabular-nums text-center`,t&&`opacity-40 cursor-not-allowed`)}),r!==void 0&&(0,q.jsx)(`span`,{className:`text-foreground-subtle text-xs`,children:r}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`Increment`,disabled:t,onClick:r=>{if(r.stopPropagation(),!t){let t=m(e+p);u(eF(t,c)),n(t)}},className:Z(`inline-flex h-5 w-5 items-center justify-center rounded border border-border bg-surface text-xs transition-colors hover:bg-surface-hover`,t&&`opacity-40 cursor-not-allowed`),children:`+`})]})}function jG({value:e,busy:t,onCommit:n}){let[r,a]=(0,K.useState)(e);return(0,q.jsx)(`input`,{type:`text`,disabled:t,value:r,onChange:e=>a(e.target.value),onBlur:()=>{t||n(r)},onKeyDown:e=>{e.key===`Enter`&&!t&&n(r)},className:Z(`rounded border border-border bg-surface px-2 py-0.5 text-xs`,t&&`opacity-40 cursor-not-allowed`)})}function MG({slice:e,busy:t,setValueFn:n,layout:r}){switch(e.kind){case`numeric`:return(0,q.jsx)(AG,{value:typeof e.value==`number`?e.value:Number(e.value),busy:t,onCommit:e=>{n({control:{kind:`numeric`,value:e}})},unit:e.unit,min:e.min,max:e.max,step:e.step,precision:e.precision});case`select`:return(0,q.jsx)(`select`,{"aria-label":`Control value`,disabled:t,value:String(e.value),onChange:e=>{e.stopPropagation(),t||n({control:{kind:`select`,value:e.target.value}})},className:Z(`w-full max-w-full min-w-0 truncate rounded border border-border bg-surface px-1 py-0.5 text-xs`,t&&`opacity-40 cursor-not-allowed`),children:e.options.map(e=>(0,q.jsx)(`option`,{value:e,children:e},e))});case`text`:return(0,q.jsx)(jG,{value:String(e.value),busy:t,onCommit:e=>{n({control:{kind:`text`,value:e}})}});case`datetime`:{let a=String(e.value),o=e.format??`datetime`;return r===`compact`?a===``?(0,q.jsx)(`span`,{"aria-label":`Control value`,className:`text-xs text-foreground-subtle`,children:`—`}):(0,q.jsx)(`span`,{"aria-label":`Control value`,className:`text-xs text-foreground`,children:$P(a,o)}):(0,q.jsx)(`input`,{type:o===`date`?`date`:o===`time`?`time`:`datetime-local`,"aria-label":`Control value`,disabled:t,value:o===`date`?DG(a):o===`time`?OG(a):kG(a),onChange:e=>{e.stopPropagation(),t||n({control:{kind:`datetime`,value:e.target.value}})},className:Z(`rounded border border-border bg-surface px-1 py-0.5 text-xs`,t&&`opacity-40 cursor-not-allowed`)})}default:return null}}function NG({trpc:e,deviceId:t,features:n,layout:r,optimistic:a}){let{cap:o,slice:s,available:c}=hH({trpc:e,deviceId:t,cap:e=>e.control,slice:e=>e.state.control}),{display:l,applyOptimistic:u}=OH(s,{enabled:a??!0});if(l===void 0)return null;let d=!c;return(0,q.jsx)(`div`,{"data-kind":l.kind,className:`inline-flex min-w-0 max-w-full items-center gap-1 rounded border border-border px-2 py-1 transition-colors`,children:(0,q.jsx)(MG,{slice:l,busy:d,setValueFn:e=>{!d&&o&&(u({value:e.control.value}),o.setValue(e))},layout:r})})}var PG=5,FG=35;function IG(e,t,n){return n<=t?0:Math.min(1,Math.max(0,(e-t)/(n-t)))}function LG(e,t,n){return Math.round(t+e*(n-t))}var RG=176,zG=76,BG=2*Math.PI*zG,VG=270/360*BG,HG=RG/2-zG-10;function UG(e){let t=RG/2,n=RG/2,r=BG-VG,a=e.mode===`band`?(()=>{let t=e.band.from*VG,n=Math.max(0,(e.band.to-e.band.from)*VG);return{dasharray:`${n} ${BG-n}`,dashoffset:-t}})():(()=>{let t=e.fraction*VG;return{dasharray:`${t} ${BG-t}`,dashoffset:void 0}})();return(0,q.jsxs)(`svg`,{width:RG,height:RG,viewBox:`0 0 ${RG} ${RG}`,"aria-hidden":`true`,className:`absolute inset-0`,style:{transform:`rotate(135deg)`},children:[(0,q.jsx)(`circle`,{cx:t,cy:n,r:zG,fill:`none`,stroke:`var(--color-border)`,strokeWidth:12,strokeDasharray:`${VG} ${r}`,strokeLinecap:`round`}),(0,q.jsx)(`circle`,{cx:t,cy:n,r:zG,fill:`none`,stroke:e.color,strokeWidth:12,strokeDasharray:a.dasharray,...a.dashoffset===void 0?{}:{strokeDashoffset:a.dashoffset},strokeLinecap:`round`})]})}var WG={heat:`#f59e0b`,cool:`#60a5fa`,auto:`#c084fc`,heat_cool:`#e879f9`,fan_only:`#94a3b8`,dry:`#22d3ee`,off:`#d4d4d8`};function GG({trpc:e,deviceId:t,features:n,optimistic:r}){let{cap:a,slice:o,available:s}=hH({trpc:e,deviceId:t,cap:e=>e.climateControl,slice:e=>e.state.climateControl}),{display:c,applyOptimistic:l}=OH(o,{enabled:r??!0});if(a===void 0||c===void 0)return null;let u=!s,d=WG[c.mode],f=c.mode===`heat_cool`||c.targetLow!==null&&c.targetHigh!==null,p=PG,m=FG,h=!f&&c.target!==null?IG(c.target,p,m):0,g=f&&c.targetLow!==null?IG(c.targetLow,p,m):0,_=f&&c.targetHigh!==null?IG(c.targetHigh,p,m):0;return(0,q.jsxs)(`div`,{"data-mode":c.mode,className:Z(`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4 transition-colors`,QW[c.mode]),children:[(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,q.jsxs)(`div`,{className:`relative`,style:{width:RG,height:RG},children:[f?(0,q.jsx)(UG,{mode:`band`,band:{from:g,to:_},color:d}):(0,q.jsx)(UG,{mode:`fill`,fraction:h,color:d}),f?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{"data-testid":`arc-knob`,children:(0,q.jsx)(SH,{fraction:g,color:d,knobTopPx:HG,onDragFraction:e=>{if(u||c.targetHigh===null)return;let t=Math.min(LG(e,p,m),c.targetHigh);l({targetLow:t}),a.setTargetRange({targetLow:t,targetHigh:c.targetHigh})}})}),(0,q.jsx)(`div`,{"data-testid":`arc-knob`,children:(0,q.jsx)(SH,{fraction:_,color:d,knobTopPx:HG,onDragFraction:e=>{if(u||c.targetLow===null)return;let t=Math.max(LG(e,p,m),c.targetLow);l({targetHigh:t}),a.setTargetRange({targetLow:c.targetLow,targetHigh:t})}})})]}):(0,q.jsx)(`div`,{"data-testid":`arc-knob`,children:(0,q.jsx)(SH,{fraction:h,color:d,knobTopPx:HG,onDragFraction:e=>{if(u)return;let t=LG(e,p,m);l({target:t}),a.setTarget({target:t})}})}),(0,q.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-0.5 pointer-events-none`,children:[(0,q.jsxs)(`div`,{"data-testid":`current-temp`,className:`text-4xl font-bold tabular-nums text-foreground leading-none`,children:[c.currentTemp===null?`—`:c.currentTemp,(0,q.jsx)(`span`,{className:`text-lg text-foreground-subtle font-normal ml-0.5`,children:`°`})]}),!f&&c.target!==null&&(0,q.jsxs)(`div`,{className:`text-xs font-semibold`,style:{color:d},children:[`set `,c.target,`°`]}),f&&c.targetLow!==null&&c.targetHigh!==null&&(0,q.jsxs)(`div`,{className:`text-xs font-semibold`,style:{color:d},children:[c.targetLow,`° – `,c.targetHigh,`°`]})]})]}),!f&&c.target!==null&&(0,q.jsx)(`div`,{className:`w-[200px]`,children:(0,q.jsx)(gH,{value:`${c.target}°`,onDelta:e=>{if(u||c.target===null)return;let t=c.target+e;l({target:t}),a.setTarget({target:t})}})})]}),(0,q.jsx)(`select`,{"aria-label":`Mode`,value:c.mode,disabled:u,onChange:e=>{e.stopPropagation();let t=e.target.value;!u&&t&&(l({mode:c.availableModes.find(e=>e===t)??c.mode}),a.setMode({mode:c.availableModes.find(e=>e===t)??c.mode}))},className:Z(`w-full rounded border border-border bg-surface px-3 py-1.5 text-sm`,u&&`opacity-40 cursor-not-allowed`),children:c.availableModes.map(e=>(0,q.jsx)(`option`,{value:e,children:e},e))})]})}function KG(e){return e===`locked`||e===`locking`}function qG(e){return e===`jammed`}var JG={locked:{colorClass:`border-success/30 bg-success/10 text-success`,icon:`locked`},locking:{colorClass:`border-success/30 bg-success/10 text-success`,icon:`locked`},unlocked:{colorClass:`border-warning/30 bg-warning/10 text-warning`,icon:`open`},unlocking:{colorClass:`border-warning/30 bg-warning/10 text-warning`,icon:`open`},jammed:{colorClass:`border-danger/30 bg-danger/10 text-danger`,icon:`locked`}};function YG({state:e}){let t=JG[e];return(0,q.jsx)(`div`,{"data-testid":`lock-glyph`,"data-state":e,className:Z(`flex h-16 w-16 items-center justify-center rounded-full border-2`,t.colorClass),children:t.icon===`locked`?(0,q.jsx)(gB,{className:`h-8 w-8`,"aria-hidden":`true`}):(0,q.jsx)(hB,{className:`h-8 w-8`,"aria-hidden":`true`})})}function XG({state:e}){return(0,q.jsx)(`span`,{className:Z(`text-sm font-medium capitalize`,qG(e)?`text-danger`:`text-foreground-muted`),children:e})}function ZG({busy:e,onOpen:t}){return(0,q.jsxs)(`button`,{type:`button`,"aria-label":`Open (unlatch)`,title:`Open (unlatch)`,disabled:e,onClick:e=>{e.stopPropagation(),t()},className:Z(`inline-flex items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-xs font-medium`,`text-foreground-muted hover:bg-surface-hover transition-colors`,e&&`opacity-40 cursor-not-allowed`),children:[(0,q.jsx)(Kz,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),`Open`]})}function QG({trpc:e,deviceId:t,features:n,optimistic:r}){let{cap:a,slice:o,available:s}=hH({trpc:e,deviceId:t,cap:e=>e.lockControl,slice:e=>e.state.lockControl}),{display:c,applyOptimistic:l}=OH(o,{enabled:r??!0});if(a===void 0||c===void 0)return null;let u=KG(c.state),d=qG(c.state)||!s,f=n?.includes(Rl.LockOpen)===!0,p=()=>{d||(u?(l({state:`unlocking`}),a.unlock({})):(l({state:`locking`}),a.lock({})))},m=()=>{d||a.open({})},h=u?`Unlock`:`Lock`;return(0,q.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,q.jsx)(YG,{state:c.state}),(0,q.jsx)(XG,{state:c.state})]}),(0,q.jsx)(`div`,{className:Z(d&&`pointer-events-none opacity-40`),children:(0,q.jsx)(_H,{on:u,targetLabel:h,onConfirm:p})}),f&&(0,q.jsx)(`div`,{className:`flex justify-center`,children:(0,q.jsx)(ZG,{busy:d,onOpen:m})})]})}var $G=150,eK=64,tK=$G/2,nK=2*Math.PI*eK,rK=270/360*nK;function iK({fraction:e,color:t,children:n,onDragFraction:r}){let a=Math.min(1,Math.max(0,e)),o=$G/2,s=$G/2,c=nK-rK,l=a*rK;return(0,q.jsxs)(`div`,{className:`relative`,style:{width:$G,height:$G},children:[(0,q.jsxs)(`svg`,{width:$G,height:$G,viewBox:`0 0 ${$G} ${$G}`,"aria-hidden":`true`,className:`absolute inset-0`,style:{transform:`rotate(135deg)`},children:[(0,q.jsx)(`circle`,{cx:o,cy:s,r:eK,fill:`none`,stroke:`var(--color-border)`,strokeWidth:11,strokeDasharray:`${rK} ${c}`,strokeLinecap:`round`}),(0,q.jsx)(`circle`,{cx:o,cy:s,r:eK,fill:`none`,stroke:t,strokeWidth:11,strokeDasharray:`${l} ${nK-l}`,strokeLinecap:`round`})]}),(0,q.jsx)(`div`,{"data-testid":`arc-knob`,children:(0,q.jsx)(SH,{fraction:a,color:t,knobTopPx:tK-eK-10,...r===void 0?{}:{onDragFraction:r}})}),(0,q.jsx)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-0.5 pointer-events-none`,children:n})]})}function aK({on:e,busy:t,onToggle:n}){let r={transform:e?`translateX(30px)`:`translateX(3px)`};return(0,q.jsx)(`button`,{type:`button`,"aria-pressed":e,title:e?`Turn off`:`Turn on`,disabled:t,onClick:e=>{e.stopPropagation(),n()},className:Z(`relative inline-flex h-8 w-16 items-center rounded-full border transition-colors flex-shrink-0`,e?`bg-success/30 border-success/50`:`bg-surface-hover border-border`,t&&`opacity-60 cursor-not-allowed`),children:(0,q.jsx)(`span`,{className:Z(`absolute h-6 w-6 rounded-full transition-all`,e?`bg-success`:`bg-foreground-subtle`),style:r})})}var oK=500,sK=150,cK=`linear-gradient(90deg, #9ec9ff, #ffffff, #ffb24d)`;function lK(e,t,n){return n<=t?0:Math.min(1,Math.max(0,(e-t)/(n-t)))}function uK(e){return lK(e,sK,oK)}var dK=`#f4b740`,fK=`#d4d4d8`;function pK({trpc:e,deviceId:t,features:n,optimistic:r}){let a=hH({trpc:e,deviceId:t,cap:e=>e.switch,slice:e=>e.state.switch}),o=hH({trpc:e,deviceId:t,cap:e=>e.brightness,slice:e=>e.state.brightness}),s=hH({trpc:e,deviceId:t,cap:e=>e.color,slice:e=>e.state.color}),c=OH(a.slice,{enabled:r??!0}),l=OH(o.slice,{enabled:r??!0}),u=OH(s.slice,{enabled:r??!0});if(a.cap===void 0||c.display===void 0)return null;let d=c.display.on===!0,f=!a.available,p=l.display?.percentage??0,m=!o.available,h=d?p/100:0,g=d?dK:fK,_=(n?.includes(Rl.LightColorMired)??!1)&&s.cap!==void 0,v=u.display?.mireds,y=!s.available;return(0,q.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,q.jsxs)(iK,{fraction:h,color:g,children:[(0,q.jsxs)(`div`,{"data-testid":`brightness-readout`,className:`text-3xl font-bold tabular-nums text-foreground leading-none`,children:[p,(0,q.jsx)(`span`,{className:`text-base text-foreground-subtle font-normal ml-0.5`,children:`%`})]}),(0,q.jsx)(dB,{className:`h-5 w-5 text-foreground-subtle`,"aria-hidden":`true`})]}),o.cap!==void 0&&(0,q.jsxs)(`label`,{className:`flex w-full items-center gap-2 text-xs text-foreground-subtle`,children:[(0,q.jsx)(`span`,{className:`w-16`,children:`Brightness`}),(0,q.jsx)(`input`,{"aria-label":`Brightness`,type:`range`,min:0,max:100,step:1,className:`flex-1`,value:p,disabled:m||!d,onChange:e=>{let t=Number(e.target.value);l.applyOptimistic({percentage:t}),m||o.cap?.setBrightness({percentage:t})}}),(0,q.jsxs)(`span`,{className:`tabular-nums w-9 text-right`,children:[p,`%`]})]})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium text-foreground-muted`,children:d?`On`:`Off`}),(0,q.jsx)(aK,{on:d,busy:f,onToggle:()=>{if(f)return;let e=!d;c.applyOptimistic({on:e}),a.cap?.setState({on:e})}})]}),_&&(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,"data-testid":`color-temp-strip`,children:[(0,q.jsx)(oV,{className:`h-4 w-4 text-foreground-subtle`,"aria-hidden":`true`}),(0,q.jsxs)(`label`,{className:`flex-1`,children:[(0,q.jsx)(`span`,{className:`sr-only`,children:`Colour temperature`}),(0,q.jsx)(`input`,{"aria-label":`Colour temperature`,type:`range`,min:sK,max:oK,step:1,className:`w-full`,value:v??oK,disabled:y||!d,onChange:e=>{let t=Number(e.target.value);u.applyOptimistic({mode:`mired`,mireds:t}),y||s.cap?.setColor({color:{mode:`mired`,mireds:t}})}}),(0,q.jsx)(`div`,{className:`pointer-events-none mt-1`,children:(0,q.jsx)(CH,{fraction:v===void 0?.5:uK(v),color:cK})})]})]})]})}var mK=`#3aa6a0`,hK=`#d4d4d8`;function gK({trpc:e,deviceId:t,features:n,optimistic:r}){let a=hH({trpc:e,deviceId:t,cap:e=>e.switch,slice:e=>e.state.switch}),o=hH({trpc:e,deviceId:t,cap:e=>e.fanControl,slice:e=>e.state.fanControl}),s=OH(a.slice,{enabled:r??!0}),c=OH(o.slice,{enabled:r??!0});if(a.cap===void 0||s.display===void 0)return null;let l=s.display.on===!0,u=!a.available,d=c.display?.percentage??0,f=!o.available,p=l?d/100:0,m=l?mK:hK,h=n?.includes(Rl.FanSpeed)??!1,g=(n?.includes(Rl.FanOscillating)??!1)&&o.cap!==void 0,_=c.display?.availablePresets??[],v=(n?.includes(Rl.FanPreset)??!1)&&o.cap!==void 0&&_.length>0,y=c.display?.preset??``,b=c.display?.oscillating===!0,x=()=>{if(u)return;let e=!l;s.applyOptimistic({on:e}),a.cap?.setState({on:e})},S=()=>{if(f)return;let e=!b;c.applyOptimistic({oscillating:e}),o.cap?.setOscillating({oscillating:e})},ee=e=>{if(f)return;let t=c.display;if(t===void 0)return;let n=t.percentageStep!==void 0&&t.percentageStep>0?t.percentageStep:1,r=Math.min(100,Math.max(0,Math.round(e*100/n)*n));c.applyOptimistic({percentage:r}),o.cap?.setPercentage({percentage:r})},C=e=>{f||e===``||(c.applyOptimistic({preset:e}),o.cap?.setPreset({preset:e}))};return(0,q.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4`,children:[(0,q.jsx)(`div`,{className:`flex flex-col items-center gap-3`,children:h?(0,q.jsxs)(iK,{fraction:p,color:m,onDragFraction:ee,children:[(0,q.jsxs)(`div`,{"data-testid":`speed-readout`,className:`text-3xl font-bold tabular-nums text-foreground leading-none`,children:[d,(0,q.jsx)(`span`,{className:`text-base text-foreground-subtle font-normal ml-0.5`,children:`%`})]}),(0,q.jsx)(Zz,{className:`h-5 w-5 text-foreground-subtle`,"aria-hidden":`true`})]}):(0,q.jsx)(`div`,{"data-testid":`fan-onoff-icon`,className:`flex h-[150px] w-[150px] items-center justify-center`,children:(0,q.jsx)(Zz,{className:`h-16 w-16`,style:{color:m},"aria-hidden":`true`})})}),v&&(0,q.jsx)(`div`,{className:`flex justify-center`,children:(0,q.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[(0,q.jsx)(`span`,{children:`Preset`}),(0,q.jsxs)(`select`,{"aria-label":`Fan preset`,value:y,disabled:f,onChange:e=>{e.stopPropagation(),C(e.target.value)},className:Z(`bg-surface border border-border rounded px-1 py-0.5`,f&&`opacity-40 cursor-not-allowed`),children:[(0,q.jsx)(`option`,{value:``,disabled:!0,children:`—`}),_.map(e=>(0,q.jsx)(`option`,{value:e,children:e},e))]})]})}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[g?(0,q.jsxs)(`button`,{type:`button`,"aria-label":`Oscillate`,"aria-pressed":b,disabled:f,onClick:e=>{e.stopPropagation(),S()},className:Z(`inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-xs font-medium transition-colors`,b?`border-success/50 bg-success/10 text-success`:`border-border text-foreground-muted hover:bg-surface-hover`,f&&`opacity-40 cursor-not-allowed`),children:[(0,q.jsx)(zB,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),`Oscillate`]}):(0,q.jsx)(`span`,{className:`text-sm font-medium text-foreground-muted`,children:l?`On`:`Off`}),(0,q.jsx)(aK,{on:l,busy:u,onToggle:x})]})]})}function _K({trpc:e,deviceId:t,optimistic:n}){let{cap:r,slice:a,available:o}=hH({trpc:e,deviceId:t,cap:e=>e.switch,slice:e=>e.state.switch}),{display:s,applyOptimistic:c}=OH(a,{enabled:n??!0});if(r===void 0||s===void 0)return null;let l=s.on===!0,u=!o;return(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-4 rounded-lg border border-border bg-surface p-6`,children:[(0,q.jsx)(`div`,{"data-testid":`switch-glyph`,"data-state":l?`on`:`off`,className:Z(`flex h-16 w-16 items-center justify-center rounded-full border-2 transition-colors`,l?`border-success/30 bg-success/10 text-success`:`border-border bg-surface-subtle text-foreground-subtle`),children:(0,q.jsx)(IB,{className:`h-8 w-8`,"aria-hidden":`true`})}),(0,q.jsx)(`span`,{className:`text-sm font-medium text-foreground-muted`,children:l?`On`:`Off`}),(0,q.jsx)(aK,{on:l,busy:u,onToggle:()=>{if(u)return;let e=!l;c({on:e}),r.setState({on:e})}})]})}function vK(e){return e===`playing`||e===`buffering`?`pause`:`play`}function yK(e,t){return e===null||t===null||t<=0?0:Math.min(1,Math.max(0,e/t))}function bK(e){if(e===null)return`--:--`;let t=Math.floor(e/1e3);return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}function xK({title:e,subtitle:t}){return(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-1 text-center`,children:[(0,q.jsx)(EB,{className:`h-6 w-6 text-foreground-subtle`,"aria-hidden":`true`}),(0,q.jsx)(`span`,{className:`text-base font-semibold text-foreground line-clamp-1`,children:e??`Nothing playing`}),t&&(0,q.jsx)(`span`,{className:`text-xs text-foreground-subtle line-clamp-1`,children:t})]})}function SK({label:e,busy:t,onPress:n,children:r,primary:a}){return(0,q.jsx)(`button`,{type:`button`,"aria-label":e,title:e,disabled:t,onClick:e=>{e.stopPropagation(),t||n()},className:Z(`inline-flex items-center justify-center rounded-full transition-colors`,a?`h-12 w-12 bg-primary text-primary-foreground hover:bg-primary/90 shadow-md`:`h-10 w-10 text-foreground-muted hover:bg-surface-hover`,t&&`opacity-40 cursor-not-allowed`),children:r})}function CK({trpc:e,deviceId:t,features:n,optimistic:r}){let{cap:a,slice:o,available:s}=hH({trpc:e,deviceId:t,cap:e=>e.mediaPlayer,slice:e=>e.state.mediaPlayer}),{display:c,applyOptimistic:l}=OH(o,{enabled:r??!0});if(a===void 0||c===void 0)return null;let u=!s,d=vK(c.state),f=(n?.includes(Rl.MediaPlayerSeek)??!1)&&c.durationMs!==null&&c.durationMs>0,p=n?.includes(Rl.MediaPlayerNext)??!1,m=n?.includes(Rl.MediaPlayerPrevious)??!1,h=(n?.includes(Rl.MediaPlayerVolume)??!1)&&c.volumeLevel!==null,g=()=>{u||(d===`play`?(l({state:`playing`}),a.play({})):(l({state:`paused`}),a.pause({})))},_=c.currentMedia?.artist??c.currentMedia?.album??null,v=yK(c.positionMs,c.durationMs),y=c.volumeLevel??0;return(0,q.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6`,children:[(0,q.jsx)(xK,{title:c.currentMedia?.title??null,subtitle:_}),f&&(0,q.jsxs)(`div`,{"data-testid":`media-seek`,className:`flex flex-col gap-1`,children:[(0,q.jsxs)(`label`,{className:`relative block`,children:[(0,q.jsx)(`span`,{className:`sr-only`,children:`Seek`}),(0,q.jsx)(`input`,{"aria-label":`Seek`,type:`range`,min:0,max:c.durationMs??0,step:1e3,className:`absolute inset-0 h-4 w-full cursor-pointer opacity-0`,value:c.positionMs??0,disabled:u,onChange:e=>{if(u)return;let t=Number(e.target.value);l({positionMs:t}),a.seek({positionMs:t})}}),(0,q.jsx)(`div`,{className:`pointer-events-none`,children:(0,q.jsx)(CH,{fraction:v})})]}),(0,q.jsxs)(`div`,{className:`flex justify-between text-[11px] tabular-nums text-foreground-subtle`,children:[(0,q.jsx)(`span`,{children:bK(c.positionMs)}),(0,q.jsx)(`span`,{children:bK(c.durationMs)})]})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-center gap-4`,children:[m&&(0,q.jsx)(SK,{label:`Previous`,busy:u,onPress:()=>void a.previous({}),children:(0,q.jsx)(JB,{className:`h-5 w-5`,"aria-hidden":`true`})}),(0,q.jsx)(SK,{label:d===`play`?`Play`:`Pause`,busy:u,onPress:g,primary:!0,children:d===`play`?(0,q.jsx)(FB,{className:`h-6 w-6`,"aria-hidden":`true`}):(0,q.jsx)(AB,{className:`h-6 w-6`,"aria-hidden":`true`})}),p&&(0,q.jsx)(SK,{label:`Next`,busy:u,onPress:()=>void a.next({}),children:(0,q.jsx)(YB,{className:`h-5 w-5`,"aria-hidden":`true`})})]}),h&&(0,q.jsxs)(`div`,{"data-testid":`media-volume`,className:`flex items-center gap-2`,children:[(0,q.jsx)(`button`,{type:`button`,"aria-label":c.isMuted===!0?`Unmute`:`Mute`,title:c.isMuted===!0?`Unmute`:`Mute`,disabled:u,onClick:e=>{if(e.stopPropagation(),u||c.isMuted===null)return;let t=!c.isMuted;l({isMuted:t}),a.setMute({muted:t})},className:Z(`inline-flex h-7 w-7 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors`,u&&`opacity-40 cursor-not-allowed`),children:c.isMuted===!0?(0,q.jsx)(xV,{className:`h-4 w-4`,"aria-hidden":`true`}):(0,q.jsx)(bV,{className:`h-4 w-4`,"aria-hidden":`true`})}),(0,q.jsxs)(`label`,{className:`relative block flex-1`,children:[(0,q.jsx)(`span`,{className:`sr-only`,children:`Volume`}),(0,q.jsx)(`input`,{"aria-label":`Volume`,type:`range`,min:0,max:100,step:1,className:`absolute inset-0 h-4 w-full cursor-pointer opacity-0`,value:y,disabled:u,onChange:e=>{if(u)return;let t=Number(e.target.value);l({volumeLevel:t}),a.setVolume({volumeLevel:t})}}),(0,q.jsx)(`div`,{className:`pointer-events-none`,children:(0,q.jsx)(CH,{fraction:y/100})})]}),(0,q.jsxs)(`span`,{className:`w-9 text-right text-[11px] tabular-nums text-foreground-subtle`,children:[y,`%`]})]})]})}var wK={disarmed:{label:`Disarmed`,colorClass:`border-border bg-surface-subtle text-foreground-subtle`,icon:`disarmed`},armed_home:{label:`Armed Home`,colorClass:`border-success/30 bg-success/10 text-success`,icon:`armed`},armed_away:{label:`Armed Away`,colorClass:`border-success/30 bg-success/10 text-success`,icon:`armed`},armed_night:{label:`Armed Night`,colorClass:`border-success/30 bg-success/10 text-success`,icon:`armed`},armed_vacation:{label:`Armed Vacation`,colorClass:`border-success/30 bg-success/10 text-success`,icon:`armed`},armed_custom_bypass:{label:`Armed (Bypass)`,colorClass:`border-success/30 bg-success/10 text-success`,icon:`armed`},arming:{label:`Arming…`,colorClass:`border-warning/30 bg-warning/10 text-warning`,icon:`pending`},disarming:{label:`Disarming…`,colorClass:`border-warning/30 bg-warning/10 text-warning`,icon:`pending`},pending:{label:`Pending`,colorClass:`border-warning/30 bg-warning/10 text-warning`,icon:`pending`},triggered:{label:`Triggered`,colorClass:`border-danger/30 bg-danger/10 text-danger`,icon:`triggered`}},TK={home:`Home`,away:`Away`,night:`Night`,vacation:`Vacation`,custom_bypass:`Bypass`};function EK(e){return e.startsWith(`armed_`)}function DK(e){return e===`arming`||e===`disarming`}function OK({icon:e,sizeClass:t=`h-8 w-8`}){return e===`disarmed`?(0,q.jsx)(GB,{className:t,"aria-hidden":`true`}):e===`triggered`?(0,q.jsx)(UB,{className:t,"aria-hidden":`true`}):e===`pending`?(0,q.jsx)(KB,{className:t,"aria-hidden":`true`}):(0,q.jsx)(WB,{className:t,"aria-hidden":`true`})}function kK({label:e,active:t,busy:n,onSelect:r}){return(0,q.jsx)(`button`,{type:`button`,"aria-label":e,"aria-pressed":t,disabled:n,onClick:e=>{e.stopPropagation(),n||r()},className:Z(`flex-1 rounded-md px-3 py-2 text-sm font-medium transition-colors`,t?`bg-primary text-primary-foreground shadow-sm`:`text-foreground-muted hover:bg-surface-hover`,n&&`opacity-40 cursor-not-allowed`),children:e})}function AK({state:e,availableModes:t,busy:n,onDisarm:r,onArm:a}){let o=EK(e),s=DK(e);return(0,q.jsxs)(`div`,{className:Z(`flex min-w-0 items-stretch gap-1 rounded-lg border border-border bg-surface-subtle p-1`),children:[(0,q.jsx)(kK,{label:`Disarm`,active:!o&&!s,busy:n,onSelect:r}),t.map(t=>(0,q.jsx)(kK,{label:TK[t],active:!s&&e===`armed_${t}`,busy:n,onSelect:()=>a(t)},t))]})}function jK(e,t,n){let{cap:r,slice:a,available:o}=hH({trpc:e,deviceId:t,cap:e=>e.alarmPanel,slice:e=>e.state.alarmPanel}),{display:s,applyOptimistic:c}=OH(a,{enabled:n??!0}),l=!o;return{display:s,capPresent:r!==void 0,busy:l,handleDisarm:()=>{r===void 0||l||(c({state:`disarming`}),r.disarm({}))},handleArm:e=>{r===void 0||l||(c({state:`arming`}),r.arm({mode:e}))}}}function MK({trpc:e,deviceId:t,optimistic:n}){let{display:r,capPresent:a,busy:o,handleDisarm:s,handleArm:c}=jK(e,t,n);if(!a||r===void 0)return null;let l=wK[r.state],u=EK(r.state)?r.state.replace(`armed_`,``):``;return(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsxs)(`span`,{className:Z(`inline-flex shrink-0 items-center gap-1 rounded-md border px-1.5 py-0.5 text-[11px] font-medium whitespace-nowrap`,l.colorClass,DK(r.state)&&`animate-pulse`),children:[(0,q.jsx)(OK,{icon:l.icon,sizeClass:`h-3 w-3`}),l.label]}),(0,q.jsxs)(`select`,{"aria-label":`Alarm mode`,disabled:o,value:u,onClick:e=>e.stopPropagation(),onChange:e=>{e.stopPropagation();let t=e.target.value;t===``?s():c(t)},className:Z(`min-w-0 shrink rounded-md border border-border bg-surface-subtle px-1.5 py-0.5 text-xs text-foreground-muted`,o&&`cursor-not-allowed opacity-40`),children:[(0,q.jsx)(`option`,{value:``,children:`Disarm`}),r.availableModes.map(e=>(0,q.jsx)(`option`,{value:e,children:TK[e]},e))]})]})}function NK({trpc:e,deviceId:t,optimistic:n}){let{display:r,capPresent:a,busy:o,handleDisarm:s,handleArm:c}=jK(e,t,n);if(!a||r===void 0)return null;let l=wK[r.state];return(0,q.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,q.jsx)(`div`,{"data-testid":`alarm-state`,"data-state":r.state,className:Z(`flex h-16 w-16 items-center justify-center rounded-full border-2`,l.colorClass,DK(r.state)&&`animate-pulse`),children:(0,q.jsx)(OK,{icon:l.icon})}),(0,q.jsx)(`span`,{className:Z(`text-sm font-medium`,l.colorClass,`border-0 bg-transparent`),children:l.label})]}),(0,q.jsx)(AK,{state:r.state,availableModes:r.availableModes,busy:o,onDisarm:s,onArm:c})]})}function PK(e,t){if(e<=0)return null;let n=Math.max(0,Math.round((t-e)/1e3));return n<60?`just now`:n<3600?`${Math.floor(n/60)} min ago`:n<86400?`${Math.floor(n/3600)} h ago`:new Date(e).toLocaleDateString()}function FK({atMs:e,neverLabel:t}){let n=PK(e,Date.now());return(0,q.jsx)(`span`,{className:`text-xs text-foreground-subtle`,"data-testid":`last-run`,children:n===null?t:n})}function IK({error:e}){return e===null||e===``?null:(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs text-danger`,title:e,"data-testid":`last-error`,children:[(0,q.jsx)(fV,{className:`h-3 w-3 shrink-0`,"aria-hidden":`true`}),(0,q.jsx)(`span`,{className:`truncate`,children:e})]})}function LK(e,t,n){let{cap:r,slice:a,available:o}=hH({trpc:e,deviceId:t,cap:e=>e.scriptRunner,slice:e=>e.state.scriptRunner}),{display:s,applyOptimistic:c}=OH(a,{enabled:n??!0}),l=!o,u=s?.isRunning===!0;return{display:s,capPresent:r!==void 0,busy:l,running:u,run:()=>{r===void 0||l||u||(c({isRunning:!0}),r.run({}))},stop:()=>{r===void 0||l||!u||(c({isRunning:!1}),r.stop({}))}}}function RK({running:e,busy:t,large:n,onRun:r,onStop:a}){let o=e?`Stop`:`Run`;return(0,q.jsxs)(`button`,{type:`button`,"aria-label":o,title:o,disabled:t,"data-testid":`script-run`,"data-running":e?`true`:`false`,onClick:t=>{t.stopPropagation(),e?a():r()},className:Z(`inline-flex items-center gap-1 rounded transition-colors`,n?`h-10 px-4 text-sm`:`h-5 px-1.5 text-xs`,e?`bg-danger text-danger-foreground hover:bg-danger/90`:`bg-primary text-primary-foreground hover:bg-primary/90`,t&&`cursor-not-allowed opacity-40`),children:[e?(0,q.jsx)(Pz,{className:n?`h-4 w-4`:`h-3 w-3`,"aria-hidden":`true`}):(0,q.jsx)(FB,{className:n?`h-4 w-4`:`h-3 w-3`,"aria-hidden":`true`}),(0,q.jsx)(`span`,{children:o})]})}function zK({trpc:e,deviceId:t,optimistic:n}){let{display:r,capPresent:a,busy:o,running:s,run:c,stop:l}=LK(e,t,n);return!a||r===void 0?null:(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsx)(RK,{running:s,busy:o,large:!1,onRun:c,onStop:l}),(0,q.jsx)(FK,{atMs:r.lastRunAt,neverLabel:`never run`})]})}function BK({trpc:e,deviceId:t,optimistic:n}){let{display:r,capPresent:a,busy:o,running:s,run:c,stop:l}=LK(e,t,n);return!a||r===void 0?null:(0,q.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,q.jsx)(`div`,{"data-testid":`script-state`,"data-running":s?`true`:`false`,className:Z(`flex h-16 w-16 items-center justify-center rounded-full border-2`,s?`border-primary text-primary animate-pulse`:`border-border text-foreground-subtle`),children:(0,q.jsx)(FB,{className:`h-8 w-8`,"aria-hidden":`true`})}),(0,q.jsx)(`span`,{className:`text-sm font-medium`,children:s?`Running`:`Idle`}),(0,q.jsx)(FK,{atMs:r.lastRunAt,neverLabel:`never run`}),(0,q.jsx)(IK,{error:r.lastError})]}),(0,q.jsx)(`div`,{className:`flex justify-center`,children:(0,q.jsx)(RK,{running:s,busy:o,large:!0,onRun:c,onStop:l})})]})}function VK(e,t,n){let{cap:r,slice:a,available:o}=hH({trpc:e,deviceId:t,cap:e=>e.automationControl,slice:e=>e.state.automationControl}),{display:s,applyOptimistic:c}=OH(a,{enabled:n??!0}),l=!o;return{display:s,capPresent:r!==void 0,busy:l,setEnabled:e=>{r===void 0||l||(c({enabled:e}),e?r.enable({}):r.disable({}))},trigger:()=>{r===void 0||l||r.trigger({})}}}function HK({enabled:e,busy:t,onToggle:n}){return(0,q.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":`Automation enabled`,disabled:t,"data-testid":`automation-enabled`,onClick:t=>{t.stopPropagation(),n(!e)},className:Z(`inline-flex shrink-0 items-center gap-1 rounded-md border px-1.5 py-0.5`,`text-[11px] font-medium whitespace-nowrap transition-colors`,e?`border-success/40 bg-success/10 text-success`:`border-border bg-surface-subtle text-foreground-subtle`,t&&`cursor-not-allowed opacity-40`),children:e?`Enabled`:`Disabled`})}function UK({busy:e,large:t,onTrigger:n}){return(0,q.jsxs)(`button`,{type:`button`,"aria-label":`Trigger`,title:`Run this automation now`,disabled:e,"data-testid":`automation-trigger`,onClick:e=>{e.stopPropagation(),n()},className:Z(`inline-flex items-center gap-1 rounded transition-colors`,t?`h-10 px-4 text-sm`:`h-5 px-1.5 text-xs`,`bg-primary text-primary-foreground hover:bg-primary/90`,e&&`cursor-not-allowed opacity-40`),children:[(0,q.jsx)(OV,{className:t?`h-4 w-4`:`h-3 w-3`,"aria-hidden":`true`}),(0,q.jsx)(`span`,{children:`Trigger`})]})}function WK({trpc:e,deviceId:t,optimistic:n}){let{display:r,capPresent:a,busy:o,setEnabled:s,trigger:c}=VK(e,t,n);return!a||r===void 0?null:(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsx)(HK,{enabled:r.enabled,busy:o,onToggle:s}),(0,q.jsx)(UK,{busy:o,large:!1,onTrigger:c})]})}function GK({trpc:e,deviceId:t,optimistic:n}){let{display:r,capPresent:a,busy:o,setEnabled:s,trigger:c}=VK(e,t,n);return!a||r===void 0?null:(0,q.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,q.jsx)(`div`,{"data-testid":`automation-state`,"data-enabled":r.enabled?`true`:`false`,className:Z(`flex h-16 w-16 items-center justify-center rounded-full border-2`,r.enabled?`border-success text-success`:`border-border text-foreground-subtle`),children:(0,q.jsx)(OV,{className:`h-8 w-8`,"aria-hidden":`true`})}),(0,q.jsx)(`span`,{className:`text-sm font-medium`,children:r.enabled?`Enabled`:`Disabled`}),(0,q.jsx)(FK,{atMs:r.lastTriggeredAt,neverLabel:`never triggered`}),(0,q.jsx)(IK,{error:r.lastError})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-center gap-3`,children:[(0,q.jsx)(HK,{enabled:r.enabled,busy:o,onToggle:s}),(0,q.jsx)(UK,{busy:o,large:!0,onTrigger:c})]})]})}function KK({children:e}){return(0,q.jsx)(`div`,{className:`flex flex-col items-stretch gap-3 rounded-lg border border-border bg-surface p-4`,children:e})}function qK(e,t){let{cap:n}=hH({trpc:e,deviceId:t,cap:e=>e.switch,slice:e=>e.state.switch});return n!==void 0}function JK({trpc:e,deviceId:t,features:n,optimistic:r}){return qK(e,t)?(0,q.jsx)(qW,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}):null}function YK(e,t){let{cap:n}=hH({trpc:e,deviceId:t,cap:e=>e.lockControl,slice:e=>e.state.lockControl});return n!==void 0}function XK({trpc:e,deviceId:t,features:n,optimistic:r}){return YK(e,t)?(0,q.jsx)(YW,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}):null}function ZK({trpc:e,deviceId:t,features:n,optimistic:r}){return qK(e,t)?(0,q.jsxs)(`div`,{className:`inline-flex items-center gap-2`,children:[(0,q.jsx)(qW,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}),(0,q.jsx)(XW,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r})]}):null}function QK(e,t){let{cap:n}=hH({trpc:e,deviceId:t,cap:e=>e.fanControl,slice:e=>e.state.fanControl});return n!==void 0}function $K({trpc:e,deviceId:t,features:n,optimistic:r}){return QK(e,t)?(0,q.jsxs)(`div`,{className:`inline-flex items-center gap-2`,children:[(0,q.jsx)(qW,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}),(0,q.jsx)(ZW,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r})]}):null}function eq(e,t){let{cap:n}=hH({trpc:e,deviceId:t,cap:e=>e.climateControl,slice:e=>e.state.climateControl});return n!==void 0}function tq({trpc:e,deviceId:t,features:n,optimistic:r}){return eq(e,t)?(0,q.jsx)(tG,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}):null}function nq({trpc:e,deviceId:t,features:n,optimistic:r}){return eq(e,t)?(0,q.jsx)(dG,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}):null}function rq({trpc:e,deviceId:t,features:n,optimistic:r}){return eq(e,t)?(0,q.jsx)(dG,{trpc:e,deviceId:t,features:n,layout:`full`,optimistic:r}):null}function iq(e,t){let{cap:n}=hH({trpc:e,deviceId:t,cap:e=>e.mediaPlayer,slice:e=>e.state.mediaPlayer});return n!==void 0}function aq({trpc:e,deviceId:t,features:n,optimistic:r}){return iq(e,t)?(0,q.jsx)(EG,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}):null}function oq(e,t){let{cap:n}=hH({trpc:e,deviceId:t,cap:e=>e.control,slice:e=>e.state.control});return n!==void 0}function sq({trpc:e,deviceId:t,features:n,optimistic:r}){return oq(e,t)?(0,q.jsx)(NG,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}):null}function cq({trpc:e,deviceId:t,features:n,optimistic:r}){return oq(e,t)?(0,q.jsx)(KK,{children:(0,q.jsx)(NG,{trpc:e,deviceId:t,features:n,layout:`full`,optimistic:r})}):null}var lq={cover:{InlineControl:MH,HeroCard:LH},valve:{InlineControl:YU,HeroCard:eW},humidifier:{InlineControl:rW,HeroCard:aW},"water-heater":{InlineControl:lW,HeroCard:dW},switch:{InlineControl:JK,HeroCard:_K},light:{InlineControl:ZK,HeroCard:pK},fan:{InlineControl:$K,HeroCard:gK},sensor:{InlineControl:rU,HeroCard:fU},thermostat:{InlineControl:tq,HeroCard:GG},climate:{InlineControl:nq,HeroCard:rq},button:{InlineControl:wH,HeroCard:TH},update:{InlineControl:hU,HeroCard:gU},lock:{InlineControl:XK,HeroCard:QG},"media-player":{InlineControl:aq,HeroCard:CK},alarm:{InlineControl:MK,HeroCard:NK},control:{InlineControl:sq,HeroCard:cq},weather:{InlineControl:_W,HeroCard:SW},vacuum:{InlineControl:kU,HeroCard:jU},"lawn-mower":{InlineControl:HU,HeroCard:WU},image:{InlineControl:kW,HeroCard:AW},"pet-feeder":{InlineControl:GW,HeroCard:KW},script:{InlineControl:zK,HeroCard:BK},automation:{InlineControl:WK,HeroCard:GK},dummy:{InlineControl:RH,HeroCard:zH}};Object.fromEntries(Object.values(U).map(e=>[e,lq[LO[e]]])),U.Cover,U.Valve,U.Thermostat,U.Climate,U.Control,U.Button,U.MediaPlayer,U.AlarmPanel,U.Lock,U.Vacuum,U.LawnMower,U.Humidifier,U.Switch,U.Siren,U.Light,U.Fan,U.WaterHeater,U.Sensor,U.Presence,U.EventEmitter,U.Notifier,U.Script,U.Automation,U.Camera,U.Hub,U.Update,U.Generic,U.Weather,U.Container,U.Image,U.PetFeeder,new Set(Object.values(U));var uq={[U.Camera]:{icon:Tz,label:`Camera`},[U.Hub]:{icon:OB,label:`Hub`},[U.Light]:{icon:dB,label:`Light`},[U.Siren]:{icon:qB,label:`Siren`},[U.Switch]:{icon:sV,label:`Switch`},[U.Sensor]:{icon:cz,label:`Sensor`},[U.Thermostat]:{icon:oV,label:`Thermostat`},[U.Climate]:{icon:lz,label:`Air conditioner`},[U.Button]:{icon:Nz,label:`Button`},[U.EventEmitter]:{icon:OV,label:`Event Emitter`},[U.Update]:{icon:zB,label:`Update`},[U.Generic]:{icon:Cz,label:`Generic`},[U.Notifier]:{icon:_z,label:`Notifier`},[U.Script]:{icon:HB,label:`Script`},[U.Automation]:{icon:EV,label:`Automation`},[U.Lock]:{icon:gB,label:`Lock`},[U.Cover]:{icon:bz,label:`Cover`},[U.Valve]:{icon:NB,label:`Valve`},[U.Humidifier]:{icon:SV,label:`Humidifier`},[U.WaterHeater]:{icon:pz,label:`Water heater`},[U.Fan]:{icon:Zz,label:`Fan`},[U.MediaPlayer]:{icon:xB,label:`Media player`},[U.AlarmPanel]:{icon:UB,label:`Alarm panel`},[U.Control]:{icon:XB,label:`Control`},[U.Presence]:{icon:vB,label:`Presence`},[U.Weather]:{icon:Bz,label:`Weather`},[U.Vacuum]:{icon:Sz,label:`Vacuum`},[U.LawnMower]:{icon:lV,label:`Lawn mower`},[U.Container]:{icon:Cz,label:`Container`},[U.Image]:{icon:cB,label:`Image`},[U.PetFeeder]:{icon:xz,label:`Pet feeder`}},dq={[W.Siren]:{icon:qB,label:`Siren`},[W.Floodlight]:{icon:dB,label:`Floodlight`},[W.Spotlight]:{icon:eB,label:`Spotlight`},[W.PirSensor]:{icon:LB,label:`PIR sensor`},[W.Chime]:{icon:_z,label:`Chime`},[W.Autotrack]:{icon:Uz,label:`Auto-track`},[W.Nightvision]:{icon:SB,label:`Night vision`},[W.PrivacyMask]:{icon:Xz,label:`Privacy mask`},[W.Doorbell]:{icon:Gz,label:`Doorbell`},[W.BinaryHelper]:{icon:sV,label:`Binary helper`},[W.MotionSensor]:{icon:nB,label:`Motion sensor`},[W.ContactSensor]:{icon:Kz,label:`Contact sensor`},[W.LeakSensor]:{icon:Jz,label:`Leak sensor`},[W.SmokeSensor]:{icon:uz,label:`Smoke sensor`},[W.COSensor]:{icon:TV,label:`CO sensor`},[W.GasSensor]:{icon:$z,label:`Gas sensor`},[W.TamperSensor]:{icon:UB,label:`Tamper sensor`},[W.VibrationSensor]:{icon:yV,label:`Vibration sensor`},[W.ConnectivitySensor]:{icon:wV,label:`Connectivity`},[W.SoundSensor]:{icon:bV,label:`Sound sensor`},[W.BinarySensor]:{icon:sV,label:`Binary sensor`},[W.TemperatureSensor]:{icon:oV,label:`Temperature`},[W.HumiditySensor]:{icon:Yz,label:`Humidity`},[W.AmbientLightSensor]:{icon:rV,label:`Ambient light`},[W.PressureSensor]:{icon:rB,label:`Pressure`},[W.WindSensor]:{icon:TV,label:`Wind`},[W.RainSensor]:{icon:Rz,label:`Rain`},[W.UvSensor]:{icon:nV,label:`UV index`},[W.SolarRadiationSensor]:{icon:iV,label:`Solar radiation`},[W.SoilMoistureSensor]:{icon:eV,label:`Soil moisture`},[W.PowerSensor]:{icon:OV,label:`Power`},[W.EnergySensor]:{icon:OV,label:`Energy`},[W.VoltageSensor]:{icon:OV,label:`Voltage`},[W.CurrentSensor]:{icon:OV,label:`Current`},[W.AirQualitySensor]:{icon:TV,label:`Air quality`},[W.BatterySensor]:{icon:rB,label:`Battery`},[W.NumericSensor]:{icon:aB,label:`Numeric sensor`},[W.EnumSensor]:{icon:pB,label:`Enum sensor`},[W.DateTimeSensor]:{icon:Fz,label:`Date / time`},[W.GenericSensor]:{icon:rB,label:`Sensor`},[W.NumericControl]:{icon:XB,label:`Numeric control`},[W.SelectControl]:{icon:fB,label:`Select control`},[W.TextControl]:{icon:mV,label:`Text control`},[W.DateTimeControl]:{icon:Fz,label:`Date / time control`},[W.MobilePushNotifier]:{icon:ZB,label:`Mobile push`},[W.MessagingNotifier]:{icon:bB,label:`Messaging`},[W.EmailNotifier]:{icon:_B,label:`Email`},[W.GenericNotifier]:{icon:_z,label:`Notifier`}},fq=new Set(Object.values(U));new Set(Object.values(W));function pq(e){return fq.has(e)}var mq=uq[U.Generic];dq[W.GenericSensor];function hq(e){return pq(e)?uq[e]??mq:mq}Object.values(U).map(e=>{let t=hq(e);return{id:e,label:t.label,icon:t.icon}}),(0,K.createContext)(null),new Set([U.Sensor,U.Presence]),Object.freeze([]);var gq={face:`#a855f7`,plate:`#ec4899`};Object.freeze({...Object.fromEntries(Object.values(Fg).filter(e=>e.category===`detection`||e.kind===`motion`).map(e=>[e.kind,e.color])),...gq});var _q={motion:cz,audio:bV,person:gV,vehicle:Ez,animal:jB,package:kB,sensor:RB,control:XB,car:Ez,truck:pV,bus:wz,motorcycle:vz,bicycle:vz,airplane:PB,boat:VB,train:uV,bird:yz,cat:Dz,dog:Wz,horse:jB,sheep:jB,cow:jB,elephant:jB,bear:jB,zebra:jB,giraffe:jB,door:Kz,pir:LB,smoke:$z,water:Jz,gas:TV,vibration:yV,tamper:UB,presence:hV,generic:aV,lock:gB,siren:qB,switch:cV,doorbell:gz,button:Nz,"audio-speech":bB,"audio-scream":yB,"audio-crying":dz,"audio-laughter":lB,"audio-music":EB,"audio-dog":Wz,"audio-cat":Dz,"audio-bird":yz,"audio-animal":jB,"audio-alarm":gz,"audio-doorbell":gz,"audio-glass_breaking":fV,"audio-gunshot":Uz,"audio-vehicle":Ez,"audio-siren":qB,"audio-fire":$z,"audio-water":Yz,"audio-wind":TV,"audio-door":Kz,"audio-footsteps":nB,"audio-crowd":_V,"audio-telephone":MB,"audio-engine":Hz,"audio-tools":iB,"audio-silence":xV};function vq(e){return Object.hasOwn(_q,e)?_q[e]:e.startsWith(`audio-`)?bV:aV}var yq=class{constructor(){this.keyToValue=new Map,this.valueToKey=new Map}set(e,t){this.keyToValue.set(e,t),this.valueToKey.set(t,e)}getByKey(e){return this.keyToValue.get(e)}getByValue(e){return this.valueToKey.get(e)}clear(){this.keyToValue.clear(),this.valueToKey.clear()}},bq=class{constructor(e){this.generateIdentifier=e,this.kv=new yq}register(e,t){this.kv.getByValue(e)||(t||=this.generateIdentifier(e),this.kv.set(t,e))}clear(){this.kv.clear()}getIdentifier(e){return this.kv.getByValue(e)}getValue(e){return this.kv.getByKey(e)}},xq=class extends bq{constructor(){super(e=>e.name),this.classToAllowedProps=new Map}register(e,t){typeof t==`object`?(t.allowProps&&this.classToAllowedProps.set(e,t.allowProps),super.register(e,t.identifier)):super.register(e,t)}getAllowedProps(e){return this.classToAllowedProps.get(e)}};function Sq(e){if(`values`in Object)return Object.values(e);let t=[];for(let n in e)e.hasOwnProperty(n)&&t.push(e[n]);return t}function Cq(e,t){let n=Sq(e);if(`find`in n)return n.find(t);let r=n;for(let e=0;e<r.length;e++){let n=r[e];if(t(n))return n}}function wq(e,t){Object.entries(e).forEach(([e,n])=>t(n,e))}function Tq(e,t){return e.indexOf(t)!==-1}function Eq(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(t(r))return r}}var Dq=class{constructor(){this.transfomers={}}register(e){this.transfomers[e.name]=e}findApplicable(e){return Cq(this.transfomers,t=>t.isApplicable(e))}findByName(e){return this.transfomers[e]}},Oq=e=>Object.prototype.toString.call(e).slice(8,-1),kq=e=>e===void 0,Aq=e=>e===null,jq=e=>typeof e!=`object`||!e||e===Object.prototype?!1:Object.getPrototypeOf(e)===null?!0:Object.getPrototypeOf(e)===Object.prototype,Mq=e=>jq(e)&&Object.keys(e).length===0,Nq=e=>Array.isArray(e),Pq=e=>typeof e==`string`,Fq=e=>typeof e==`number`&&!isNaN(e),Iq=e=>typeof e==`boolean`,Lq=e=>e instanceof RegExp,Rq=e=>e instanceof Map,zq=e=>e instanceof Set,Bq=e=>Oq(e)===`Symbol`,Vq=e=>e instanceof Date&&!isNaN(e.valueOf()),Hq=e=>e instanceof Error,Uq=e=>typeof e==`number`&&isNaN(e),Wq=e=>Iq(e)||Aq(e)||kq(e)||Fq(e)||Pq(e)||Bq(e),Gq=e=>typeof e==`bigint`,Kq=e=>e===1/0||e===-1/0,qq=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),Jq=e=>e instanceof URL,Yq=e=>e.replace(/\\/g,`\\\\`).replace(/\./g,`\\.`),Xq=e=>e.map(String).map(Yq).join(`.`),Zq=(e,t)=>{let n=[],r=``;for(let a=0;a<e.length;a++){let o=e.charAt(a);if(!t&&o===`\\`){let t=e.charAt(a+1);if(t===`\\`){r+=`\\`,a++;continue}else if(t!==`.`)throw Error(`invalid path`)}if(o===`\\`&&e.charAt(a+1)===`.`){r+=`.`,a++;continue}if(o===`.`){n.push(r),r=``;continue}r+=o}let a=r;return n.push(a),n};function Qq(e,t,n,r){return{isApplicable:e,annotation:t,transform:n,untransform:r}}var $q=[Qq(kq,`undefined`,()=>null,()=>void 0),Qq(Gq,`bigint`,e=>e.toString(),e=>typeof BigInt<`u`?BigInt(e):(console.error(`Please add a BigInt polyfill.`),e)),Qq(Vq,`Date`,e=>e.toISOString(),e=>new Date(e)),Qq(Hq,`Error`,(e,t)=>{let n={name:e.name,message:e.message};return`cause`in e&&(n.cause=e.cause),t.allowedErrorProps.forEach(t=>{n[t]=e[t]}),n},(e,t)=>{let n=Error(e.message,{cause:e.cause});return n.name=e.name,n.stack=e.stack,t.allowedErrorProps.forEach(t=>{n[t]=e[t]}),n}),Qq(Lq,`regexp`,e=>``+e,e=>{let t=e.slice(1,e.lastIndexOf(`/`)),n=e.slice(e.lastIndexOf(`/`)+1);return new RegExp(t,n)}),Qq(zq,`set`,e=>[...e.values()],e=>new Set(e)),Qq(Rq,`map`,e=>[...e.entries()],e=>new Map(e)),Qq(e=>Uq(e)||Kq(e),`number`,e=>Uq(e)?`NaN`:e>0?`Infinity`:`-Infinity`,Number),Qq(e=>e===0&&1/e==-1/0,`number`,()=>`-0`,Number),Qq(Jq,`URL`,e=>e.toString(),e=>new URL(e))];function eJ(e,t,n,r){return{isApplicable:e,annotation:t,transform:n,untransform:r}}var tJ=eJ((e,t)=>Bq(e)?!!t.symbolRegistry.getIdentifier(e):!1,(e,t)=>[`symbol`,t.symbolRegistry.getIdentifier(e)],e=>e.description,(e,t,n)=>{let r=n.symbolRegistry.getValue(t[1]);if(!r)throw Error(`Trying to deserialize unknown symbol`);return r}),nJ=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce((e,t)=>(e[t.name]=t,e),{}),rJ=eJ(qq,e=>[`typed-array`,e.constructor.name],e=>[...e],(e,t)=>{let n=nJ[t[1]];if(!n)throw Error(`Trying to deserialize unknown typed array`);return new n(e)});function iJ(e,t){return e?.constructor?!!t.classRegistry.getIdentifier(e.constructor):!1}var aJ=eJ(iJ,(e,t)=>[`class`,t.classRegistry.getIdentifier(e.constructor)],(e,t)=>{let n=t.classRegistry.getAllowedProps(e.constructor);if(!n)return{...e};let r={};return n.forEach(t=>{r[t]=e[t]}),r},(e,t,n)=>{let r=n.classRegistry.getValue(t[1]);if(!r)throw Error(`Trying to deserialize unknown class '${t[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`);return Object.assign(Object.create(r.prototype),e)}),oJ=eJ((e,t)=>!!t.customTransformerRegistry.findApplicable(e),(e,t)=>[`custom`,t.customTransformerRegistry.findApplicable(e).name],(e,t)=>t.customTransformerRegistry.findApplicable(e).serialize(e),(e,t,n)=>{let r=n.customTransformerRegistry.findByName(t[1]);if(!r)throw Error(`Trying to deserialize unknown custom value`);return r.deserialize(e)}),sJ=[aJ,tJ,oJ,rJ],cJ=(e,t)=>{let n=Eq(sJ,n=>n.isApplicable(e,t));if(n)return{value:n.transform(e,t),type:n.annotation(e,t)};let r=Eq($q,n=>n.isApplicable(e,t));if(r)return{value:r.transform(e,t),type:r.annotation}},lJ={};$q.forEach(e=>{lJ[e.annotation]=e});var uJ=(e,t,n)=>{if(Nq(t))switch(t[0]){case`symbol`:return tJ.untransform(e,t,n);case`class`:return aJ.untransform(e,t,n);case`custom`:return oJ.untransform(e,t,n);case`typed-array`:return rJ.untransform(e,t,n);default:throw Error(`Unknown transformation: `+t)}else{let r=lJ[t];if(!r)throw Error(`Unknown transformation: `+t);return r.untransform(e,n)}},dJ=(e,t)=>{if(t>e.size)throw Error(`index out of bounds`);let n=e.keys();for(;t>0;)n.next(),t--;return n.next().value};function fJ(e){if(Tq(e,`__proto__`))throw Error(`__proto__ is not allowed as a property`);if(Tq(e,`prototype`))throw Error(`prototype is not allowed as a property`);if(Tq(e,`constructor`))throw Error(`constructor is not allowed as a property`)}var pJ=(e,t)=>{fJ(t);for(let n=0;n<t.length;n++){let r=t[n];if(zq(e))e=dJ(e,+r);else if(Rq(e)){let a=+r,o=+t[++n]==0?`key`:`value`,s=dJ(e,a);switch(o){case`key`:e=s;break;case`value`:e=e.get(s);break}}else e=e[r]}return e},mJ=(e,t,n)=>{if(fJ(t),t.length===0)return n(e);let r=e;for(let e=0;e<t.length-1;e++){let n=t[e];if(Nq(r)){let e=+n;r=r[e]}else if(jq(r))r=r[n];else if(zq(r)){let e=+n;r=dJ(r,e)}else if(Rq(r)){if(e===t.length-2)break;let a=+n,o=+t[++e]==0?`key`:`value`,s=dJ(r,a);switch(o){case`key`:r=s;break;case`value`:r=r.get(s);break}}}let a=t[t.length-1];if(Nq(r)?r[+a]=n(r[+a]):jq(r)&&(r[a]=n(r[a])),zq(r)){let e=dJ(r,+a),t=n(e);e!==t&&(r.delete(e),r.add(t))}if(Rq(r)){let e=+t[t.length-2],o=dJ(r,e);switch(+a==0?`key`:`value`){case`key`:{let e=n(o);r.set(e,r.get(o)),e!==o&&r.delete(o);break}case`value`:r.set(o,n(r.get(o)));break}}return e},hJ=e=>e<1;function gJ(e,t,n,r=[]){if(!e)return;let a=hJ(n);if(!Nq(e)){wq(e,(e,o)=>gJ(e,t,n,[...r,...Zq(o,a)]));return}let[o,s]=e;s&&wq(s,(e,o)=>{gJ(e,t,n,[...r,...Zq(o,a)])}),t(o,r)}function _J(e,t,n,r){return gJ(t,(t,n)=>{e=mJ(e,n,e=>uJ(e,t,r))},n),e}function vJ(e,t,n){let r=hJ(n);function a(t,n){let a=pJ(e,Zq(n,r));t.map(e=>Zq(e,r)).forEach(t=>{e=mJ(e,t,()=>a)})}if(Nq(t)){let[n,o]=t;n.forEach(t=>{e=mJ(e,Zq(t,r),()=>e)}),o&&wq(o,a)}else wq(t,a);return e}var yJ=(e,t)=>jq(e)||Nq(e)||Rq(e)||zq(e)||Hq(e)||iJ(e,t);function bJ(e,t,n){let r=n.get(e);r?r.push(t):n.set(e,[t])}function xJ(e,t){let n={},r;return e.forEach(e=>{if(e.length<=1)return;t||(e=e.map(e=>e.map(String)).sort((e,t)=>e.length-t.length));let[a,...o]=e;a.length===0?r=o.map(Xq):n[Xq(a)]=o.map(Xq)}),r?Mq(n)?[r]:[r,n]:Mq(n)?void 0:n}var SJ=(e,t,n,r,a=[],o=[],s=new Map)=>{let c=Wq(e);if(!c){bJ(e,a,t);let n=s.get(e);if(n)return r?{transformedValue:null}:n}if(!yJ(e,n)){let t=cJ(e,n),r=t?{transformedValue:t.value,annotations:[t.type]}:{transformedValue:e};return c||s.set(e,r),r}if(Tq(o,e))return{transformedValue:null};let l=cJ(e,n),u=l?.value??e,d=Nq(u)?[]:{},f={};wq(u,(c,l)=>{if(l===`__proto__`||l===`constructor`||l===`prototype`)throw Error(`Detected property ${l}. This is a prototype pollution risk, please remove it from your object.`);let u=SJ(c,t,n,r,[...a,l],[...o,e],s);d[l]=u.transformedValue,Nq(u.annotations)?f[Yq(l)]=u.annotations:jq(u.annotations)&&wq(u.annotations,(e,t)=>{f[Yq(l)+`.`+t]=e})});let p=Mq(f)?{transformedValue:d,annotations:l?[l.type]:void 0}:{transformedValue:d,annotations:l?[l.type,f]:f};return c||s.set(e,p),p};function CJ(e){return Object.prototype.toString.call(e).slice(8,-1)}function wJ(e){return CJ(e)===`Array`}function TJ(e){if(CJ(e)!==`Object`)return!1;let t=Object.getPrototypeOf(e);return!!t&&t.constructor===Object&&t===Object.prototype}function EJ(e,t,n,r,a){let o={}.propertyIsEnumerable.call(r,t)?`enumerable`:`nonenumerable`;o===`enumerable`&&(e[t]=n),a&&o===`nonenumerable`&&Object.defineProperty(e,t,{value:n,enumerable:!1,writable:!0,configurable:!0})}function DJ(e,t={}){if(wJ(e))return e.map(e=>DJ(e,t));if(!TJ(e))return e;let n=Object.getOwnPropertyNames(e),r=Object.getOwnPropertySymbols(e);return[...n,...r].reduce((n,r)=>{if(r===`__proto__`||wJ(t.props)&&!t.props.includes(r))return n;let a=e[r];return EJ(n,r,DJ(a,t),e,t.nonenumerable),n},{})}var OJ=class{constructor({dedupe:e=!1}={}){this.classRegistry=new xq,this.symbolRegistry=new bq(e=>e.description??``),this.customTransformerRegistry=new Dq,this.allowedErrorProps=[],this.dedupe=e}serialize(e){let t=new Map,n=SJ(e,t,this,this.dedupe),r={json:n.transformedValue};n.annotations&&(r.meta={...r.meta,values:n.annotations});let a=xJ(t,this.dedupe);return a&&(r.meta={...r.meta,referentialEqualities:a}),r.meta&&(r.meta.v=1),r}deserialize(e,t){let{json:n,meta:r}=e,a=t?.inPlace?n:DJ(n);return r?.values&&(a=_J(a,r.values,r.v??0,this)),r?.referentialEqualities&&(a=vJ(a,r.referentialEqualities,r.v??0)),a}stringify(e){return JSON.stringify(this.serialize(e))}parse(e){return this.deserialize(JSON.parse(e),{inPlace:!0})}registerClass(e,t){this.classRegistry.register(e,t)}registerSymbol(e,t){this.symbolRegistry.register(e,t)}registerCustom(e,t){this.customTransformerRegistry.register({name:t,...e})}allowErrorProps(...e){this.allowedErrorProps.push(...e)}};OJ.defaultInstance=new OJ,OJ.serialize=OJ.defaultInstance.serialize.bind(OJ.defaultInstance),OJ.deserialize=OJ.defaultInstance.deserialize.bind(OJ.defaultInstance),OJ.stringify=OJ.defaultInstance.stringify.bind(OJ.defaultInstance),OJ.parse=OJ.defaultInstance.parse.bind(OJ.defaultInstance),OJ.registerClass=OJ.defaultInstance.registerClass.bind(OJ.defaultInstance),OJ.registerSymbol=OJ.defaultInstance.registerSymbol.bind(OJ.defaultInstance),OJ.registerCustom=OJ.defaultInstance.registerCustom.bind(OJ.defaultInstance),OJ.allowErrorProps=OJ.defaultInstance.allowErrorProps.bind(OJ.defaultInstance),OJ.serialize,OJ.deserialize,OJ.stringify,OJ.parse,OJ.registerClass,OJ.registerCustom,OJ.registerSymbol,OJ.allowErrorProps,(0,K.createContext)(null),oF(`camstack:custom-field-renderers`,{}),oF(`camstack:device-context`,null),oF(`camstack:widget-registry`,null);function kJ({title:e,icon:t,headerRight:n,collapsible:r=!1,defaultOpen:a=!0,bodyClassName:o=`p-3`,children:s}){let[c,l]=(0,K.useState)(a),u=!r||c,d=(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`span`,{className:`flex items-center gap-2 text-xs font-semibold uppercase tracking-wider text-foreground`,children:[t,e]}),r?c?(0,q.jsx)(kz,{className:`h-3.5 w-3.5 text-foreground-subtle`}):(0,q.jsx)(Az,{className:`h-3.5 w-3.5 text-foreground-subtle`}):n]}),f=`px-4 py-2 flex items-center justify-between ${u?`border-b border-border`:``}`;return(0,q.jsxs)(`div`,{className:`rounded-lg border border-border bg-surface overflow-hidden`,children:[r?(0,q.jsx)(`button`,{type:`button`,onClick:()=>l(e=>!e),className:`w-full text-left ${f}`,children:d}):(0,q.jsx)(`div`,{className:f,children:d}),u?(0,q.jsx)(`div`,{className:o,children:s}):null]})}oF(`camstack:vod-playback`,{request:null,play:()=>{},clear:()=>{}}),oF(`camstack:recorded-playback`,{bindControlChannel:null,channelOpen:!1,mode:`live`,positionMs:null,send:()=>!1}),(0,K.lazy)(()=>pl(()=>import(`./MotionZonesSettings-NcxxQN8r-D46Ft0YB.js`).then(e=>({default:e.MotionZonesSettings})),__vite__mapDeps([0,1]),import.meta.url)),(0,K.lazy)(()=>pl(()=>import(`./PrivacyMaskSettings-APgPLF7p-BLD9p-W3.js`).then(e=>({default:e.PrivacyMaskSettings})),__vite__mapDeps([2,1]),import.meta.url));var AJ=Object.defineProperty,jJ=Object.getOwnPropertySymbols,MJ=Object.prototype.hasOwnProperty,NJ=Object.prototype.propertyIsEnumerable,PJ=(e,t,n)=>t in e?AJ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,FJ=(e,t)=>{for(var n in t||={})MJ.call(t,n)&&PJ(e,n,t[n]);if(jJ)for(var n of jJ(t))NJ.call(t,n)&&PJ(e,n,t[n]);return e},IJ=(e,t)=>{var n={};for(var r in e)MJ.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&jJ)for(var r of jJ(e))t.indexOf(r)<0&&NJ.call(e,r)&&(n[r]=e[r]);return n},LJ;(e=>{let t=class t{constructor(e,n,r,o){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(o<-1||o>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let s=[];for(let e=0;e<this.size;e++)s.push(!1);for(let e=0;e<this.size;e++)this.modules.push(s.slice()),this.isFunction.push(s.slice());this.drawFunctionPatterns();let c=this.addEccAndInterleave(r);if(this.drawCodewords(c),o==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(o=t,e=n),this.applyMask(t)}}a(0<=o&&o<=7),this.mask=o,this.applyMask(o),this.drawFormatBits(o),this.isFunction=[]}static encodeText(n,r){let a=e.QrSegment.makeSegments(n);return t.encodeSegments(a,r)}static encodeBinary(n,r){let a=e.QrSegment.makeBytes(n);return t.encodeSegments([a],r)}static encodeSegments(e,r,o=1,c=40,l=-1,u=!0){if(!(t.MIN_VERSION<=o&&o<=c&&c<=t.MAX_VERSION)||l<-1||l>7)throw RangeError(`Invalid value`);let d,f;for(d=o;;d++){let n=t.getNumDataCodewords(d,r)*8,a=s.getTotalBits(e,d);if(a<=n){f=a;break}if(d>=c)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])u&&f<=t.getNumDataCodewords(d,e)*8&&(r=e);let p=[];for(let t of e){n(t.mode.modeBits,4,p),n(t.numChars,t.mode.numCharCountBits(d),p);for(let e of t.getData())p.push(e)}a(p.length==f);let m=t.getNumDataCodewords(d,r)*8;a(p.length<=m),n(0,Math.min(4,m-p.length),p),n(0,(8-p.length%8)%8,p),a(p.length%8==0);for(let e=236;p.length<m;e^=253)n(e,8,p);let h=[];for(;h.length*8<p.length;)h.push(0);return p.forEach((e,t)=>h[t>>>3]|=e<<7-(t&7)),new t(d,r,h,l)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let o=(t<<10|n)^21522;a(o>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(o,e));this.setFunctionModule(8,7,r(o,6)),this.setFunctionModule(8,8,r(o,7)),this.setFunctionModule(7,8,r(o,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(o,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(o,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(o,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;a(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),a=this.size-11+e%3,o=Math.floor(e/3);this.setFunctionModule(a,o,n),this.setFunctionModule(o,a,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let a=Math.max(Math.abs(r),Math.abs(n)),o=e+r,s=t+n;0<=o&&o<this.size&&0<=s&&s<this.size&&this.setFunctionModule(o,s,a!=2&&a!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let o=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],s=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],c=Math.floor(t.getNumRawDataModules(n)/8),l=o-c%o,u=Math.floor(c/o),d=[],f=t.reedSolomonComputeDivisor(s);for(let n=0,r=0;n<o;n++){let a=e.slice(r,r+u-s+(n<l?0:1));r+=a.length;let o=t.reedSolomonComputeRemainder(a,f);n<l&&a.push(0),d.push(a.concat(o))}let p=[];for(let e=0;e<d[0].length;e++)d.forEach((t,n)=>{(e!=u-s||n>=l)&&p.push(t[e])});return a(p.length==c),p}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let a=0;a<this.size;a++)for(let o=0;o<2;o++){let s=t-o,c=t+1&2?a:this.size-1-a;!this.isFunction[c][s]&&n<e.length*8&&(this.modules[c][s]=r(e[n>>>3],7-(n&7)),n++)}}a(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,a=0,o=[0,0,0,0,0,0,0];for(let s=0;s<this.size;s++)this.modules[n][s]==r?(a++,a==5?e+=t.PENALTY_N1:a>5&&e++):(this.finderPenaltyAddHistory(a,o),r||(e+=this.finderPenaltyCountPatterns(o)*t.PENALTY_N3),r=this.modules[n][s],a=1);e+=this.finderPenaltyTerminateAndCount(r,a,o)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,a=0,o=[0,0,0,0,0,0,0];for(let s=0;s<this.size;s++)this.modules[s][n]==r?(a++,a==5?e+=t.PENALTY_N1:a>5&&e++):(this.finderPenaltyAddHistory(a,o),r||(e+=this.finderPenaltyCountPatterns(o)*t.PENALTY_N3),r=this.modules[s][n],a=1);e+=this.finderPenaltyTerminateAndCount(r,a,o)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let a=this.modules[n][r];a==this.modules[n][r+1]&&a==this.modules[n+1][r]&&a==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,o=Math.ceil(Math.abs(n*20-r*10)/r)-1;return a(0<=o&&o<=9),e+=o*t.PENALTY_N4,a(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return a(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let a=0;a<e;a++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let a of e){let e=a^r.shift();r.push(0),n.forEach((n,a)=>r[a]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return a(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];a(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function a(e){if(!e)throw Error(`Assertion error`)}let o=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let a=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+a),10),a*3+1,r),e+=a}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],a;for(a=0;a+2<=t.length;a+=2){let o=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(a))*45;o+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(a+1)),n(o,11,r)}return a<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(a)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};o.NUMERIC_REGEX=/^[0-9]*$/,o.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,o.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let s=o;e.QrSegment=o})(LJ||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(LJ||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(LJ||={});var RJ=LJ,zJ={L:RJ.QrCode.Ecc.LOW,M:RJ.QrCode.Ecc.MEDIUM,Q:RJ.QrCode.Ecc.QUARTILE,H:RJ.QrCode.Ecc.HIGH},BJ=128,VJ=`L`,HJ=`#FFFFFF`,UJ=`#000000`,WJ=!1,GJ=1,KJ=4,qJ=0,JJ=.1;function YJ(e,t=0){let n=[];return e.forEach(function(e,r){let a=null;e.forEach(function(o,s){if(!o&&a!==null){n.push(`M${a+t} ${r+t}h${s-a}v1H${a+t}z`),a=null;return}if(s===e.length-1){if(!o)return;a===null?n.push(`M${s+t},${r+t} h1v1H${s+t}z`):n.push(`M${a+t},${r+t} h${s+1-a}v1H${a+t}z`);return}o&&a===null&&(a=s)})}),n.join(``)}function XJ(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function ZJ(e,t,n,r){if(r==null)return null;let a=e.length+n*2,o=Math.floor(t*JJ),s=a/t,c=(r.width||o)*s,l=(r.height||o)*s,u=r.x==null?e.length/2-c/2:r.x*s,d=r.y==null?e.length/2-l/2:r.y*s,f=r.opacity==null?1:r.opacity,p=null;if(r.excavate){let e=Math.floor(u),t=Math.floor(d);p={x:e,y:t,w:Math.ceil(c+u-e),h:Math.ceil(l+d-t)}}let m=r.crossOrigin;return{x:u,y:d,h:l,w:c,excavation:p,opacity:f,crossOrigin:m}}function QJ(e,t){return t==null?e?KJ:qJ:Math.max(Math.floor(t),0)}function $J({value:e,level:t,minVersion:n,includeMargin:r,marginSize:a,imageSettings:o,size:s,boostLevel:c}){let l=K.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...RJ.QrSegment.makeSegments(t)),e),[]);return RJ.QrCode.encodeSegments(r,zJ[t],n,void 0,void 0,c)},[e,t,n,c]),{cells:u,margin:d,numCells:f,calculatedImageSettings:p}=K.useMemo(()=>{let e=l.getModules(),t=QJ(r,a);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:ZJ(e,s,t,o)}},[l,s,o,r,a]);return{qrcode:l,margin:d,cells:u,numCells:f,calculatedImageSettings:p}}var eY=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),tY=K.forwardRef(function(e,t){let n=e,{value:r,size:a=BJ,level:o=VJ,bgColor:s=HJ,fgColor:c=UJ,includeMargin:l=WJ,minVersion:u=GJ,boostLevel:d,marginSize:f,imageSettings:p}=n,m=IJ(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:h}=m,g=IJ(m,[`style`]),_=p?.src,v=K.useRef(null),y=K.useRef(null),b=K.useCallback(e=>{v.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[x,S]=K.useState(!1),{margin:ee,cells:C,numCells:w,calculatedImageSettings:T}=$J({value:r,level:o,minVersion:u,boostLevel:d,includeMargin:l,marginSize:f,imageSettings:p,size:a});K.useEffect(()=>{if(v.current!=null){let e=v.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=y.current,o=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;o&&T.excavation!=null&&(n=XJ(C,T.excavation));let l=window.devicePixelRatio||1;e.height=e.width=a*l;let u=a/w*l;t.scale(u,u),t.fillStyle=s,t.fillRect(0,0,w,w),t.fillStyle=c,eY?t.fill(new Path2D(YJ(n,ee))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+ee,n+ee,1,1)})}),T&&(t.globalAlpha=T.opacity),o&&t.drawImage(r,T.x+ee,T.y+ee,T.w,T.h)}}),K.useEffect(()=>{S(!1)},[_]);let E=FJ({height:a,width:a},h),te=null;return _!=null&&(te=K.createElement(`img`,{src:_,key:_,style:{display:`none`},onLoad:()=>{S(!0)},ref:y,crossOrigin:T?.crossOrigin})),K.createElement(K.Fragment,null,K.createElement(`canvas`,FJ({style:E,height:a,width:a,ref:b,role:`img`},g)),te)});tY.displayName=`QRCodeCanvas`;var nY=K.forwardRef(function(e,t){let n=e,{value:r,size:a=BJ,level:o=VJ,bgColor:s=HJ,fgColor:c=UJ,includeMargin:l=WJ,minVersion:u=GJ,boostLevel:d,title:f,marginSize:p,imageSettings:m}=n,h=IJ(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:g,cells:_,numCells:v,calculatedImageSettings:y}=$J({value:r,level:o,minVersion:u,boostLevel:d,includeMargin:l,marginSize:p,imageSettings:m,size:a}),b=_,x=null;m!=null&&y!=null&&(y.excavation!=null&&(b=XJ(_,y.excavation)),x=K.createElement(`image`,{href:m.src,height:y.h,width:y.w,x:y.x+g,y:y.y+g,preserveAspectRatio:`none`,opacity:y.opacity,crossOrigin:y.crossOrigin}));let S=YJ(b,g);return K.createElement(`svg`,FJ({height:a,width:a,viewBox:`0 0 ${v} ${v}`,ref:t,role:`img`},h),!!f&&K.createElement(`title`,null,f),K.createElement(`path`,{fill:s,d:`M0,0 h${v}v${v}H0z`,shapeRendering:`crispEdges`}),K.createElement(`path`,{fill:c,d:S,shapeRendering:`crispEdges`}),x)});nY.displayName=`QRCodeSVG`;var rY={baseDelayMs:1500,maxDelayMs:15e3,maxAttempts:40};function iY(e,t=Math.random){if(e>=rY.maxAttempts)return{kind:`exhausted`,attempts:e};let n=Math.min(rY.maxDelayMs,rY.baseDelayMs*2**e);return{kind:`retry`,delayMs:Math.round(n*(.8+t()*.4))}}function aY(e,t){e.muted=t;let n=e.srcObject;if(n instanceof MediaStream)for(let e of n.getAudioTracks())e.enabled=!t}function oY(){return typeof window>`u`?!1:window.matchMedia(`(hover: none) and (pointer: coarse)`).matches||typeof navigator<`u`&&navigator.maxTouchPoints>0||`ontouchstart`in window}function sY(e,t,n){let r=0;for(let a=0;a<8;a++)for(let o=0;o<8;o++){let s=Math.min(t-1,Math.floor((o+.5)/8*t)),c=Math.min(n-1,Math.floor((a+.5)/8*n)),{data:l}=e.getImageData(s,c,1,1);.2126*(l[0]??0)+.7152*(l[1]??0)+.0722*(l[2]??0)>12&&r++}return r<=1}function cY(e){let t={};if(typeof window<`u`){if(e){let n=e.getBoundingClientRect();n.width>0&&n.height>0&&(t.viewportWidth=Math.round(n.width),t.viewportHeight=Math.round(n.height))}t.viewportWidth===void 0&&(t.viewportWidth=window.innerWidth,t.viewportHeight=window.innerHeight),t.devicePixelRatio=window.devicePixelRatio||1;let n=navigator.connection;n?.downlink&&n.downlink>0&&(t.downlinkMbps=n.downlink)}return t}var lY=8e3;function uY({serverUrl:e,streamKey:t,label:n,autoPlay:r=!0,muted:a=!0,showControls:o=!0,showStats:s=!1,onPlaybackStats:c,onClientNetworkSample:l,onConnectTiming:u,className:d=``,onStateChange:f,onError:p,onReconnectAttempt:m,overlay:h,createSession:g,sendAnswer:_,handleOffer:v,getIceServers:y,addIceCandidate:b,getIceCandidates:x,closeSession:S,getSessionState:ee,reoffer:C,posterUrl:w,hintsOverride:T,reconnectSignal:E,onControlChannel:te,onVideoElement:ne}){let D=(0,K.useRef)(null),re=(0,K.useRef)(null),O=(0,K.useRef)(null),ie=(0,K.useRef)(new Set),ae=(0,K.useRef)(null),oe=(0,K.useRef)(null),se=(0,K.useRef)(0),k=(0,K.useRef)(!0),ce=(0,K.useRef)(te);ce.current=te;let le=(0,K.useRef)(ne);le.current=ne,(0,K.useEffect)(()=>(le.current?.(D.current),()=>le.current?.(null)),[]);let ue=(0,K.useRef)(null),de=(0,K.useRef)(null),fe=(0,K.useRef)(0),pe=(0,K.useRef)(!1),me=(0,K.useRef)(async()=>{}),[he,ge]=(0,K.useState)(`idle`),[_e,ve]=(0,K.useState)(``),[ye,be]=(0,K.useState)(a),xe=(0,K.useRef)(ye);xe.current=ye;let[Se,Ce]=(0,K.useState)(!1),[we,Te]=(0,K.useState)(!1),Ee=oY(),[De,Oe]=(0,K.useState)(!0),ke=(0,K.useRef)(null),Ae=(0,K.useRef)(!1);(_||g)&&(Ae.current=!0);let je=Ae.current,Me=(0,K.useRef)(!1);v&&(Me.current=!0);let Ne=Me.current,[Pe,Fe]=(0,K.useState)(!1),Ie=(0,K.useRef)(null),[Le,Re]=(0,K.useState)(null),[ze,Be]=(0,K.useState)(!1),Ve=(0,K.useCallback)(()=>{let e=D.current;if(!(!e||e.readyState<2||!e.videoWidth||!e.videoHeight))try{let t=document.createElement(`canvas`);t.width=e.videoWidth,t.height=e.videoHeight;let n=t.getContext(`2d`);if(!n||(n.drawImage(e,0,0),sY(n,t.width,t.height)))return;Ie.current=t.toDataURL(`image/jpeg`,.6)}catch{}},[]),He=(0,K.useCallback)(e=>{ge(e),e===`playing`&&Fe(!0),f?.(e)},[f]),Ue=(0,K.useCallback)(()=>{if(ae.current?.abort(),ae.current=null,oe.current&&=(clearTimeout(oe.current),null),de.current&&=(clearTimeout(de.current),null),ue.current=null,pe.current=!1,fe.current=0,O.current&&=(O.current.close(),null),S&&ie.current.size>0){for(let e of ie.current)S(e).catch(()=>{});ie.current.clear()}},[S]),We=(0,K.useCallback)(()=>{ae.current?.abort(),ae.current=null,oe.current&&=(clearTimeout(oe.current),null),de.current&&=(clearTimeout(de.current),null),ue.current=null,pe.current=!1,fe.current=0},[]),Ge=1e3,Ke=(0,K.useCallback)(e=>{if(!ee||!C)return;de.current&&=(clearTimeout(de.current),null);let t=async()=>{if(k.current&&ue.current===e){if(!pe.current)try{let{pendingRenegotiation:t}=await ee(e);if(k.current&&ue.current===e&&t&&t.epoch>fe.current&&!pe.current){fe.current=t.epoch,await me.current(e,t.target);return}}catch{}!k.current||ue.current!==e||(de.current=setTimeout(()=>{t()},Ge))}};de.current=setTimeout(()=>{t()},Ge)},[ee,C]),qe=(0,K.useCallback)(async(e=!1)=>{if(!k.current||!g||!_)return;let t=e?O.current:null,n=e?new Set(ie.current):null;e?We():Ue(),He(`connecting`);let r=new AbortController;ae.current=r;try{let{sessionId:a,sdpOffer:o,iceServers:s}=await g({...cY(re.current),...T});if(ie.current.add(a),!k.current||r.signal.aborted){S?.(a).catch(()=>{}),ie.current.delete(a);return}let c=new RTCPeerConnection({iceServers:[...s??[],{urls:`stun:stun.l.google.com:19302`}]});e||(O.current=c);let l=new MediaStream,u=!1,d=()=>{if(!(u||!k.current)){if(u=!0,O.current=c,D.current&&(D.current.srcObject=l,aY(D.current,xe.current),D.current.play().catch(()=>{})),t&&t!==c)try{t.close()}catch{}if(n)for(let e of n)ie.current.delete(e),S?.(e).catch(()=>{})}};c.ontrack=t=>{if(console.debug(`[WebRTC] ontrack`,t.track.kind,t.track.readyState),l.addTrack(t.track),e){d();return}D.current&&(D.current.srcObject=l,aY(D.current,xe.current),D.current.play().catch(()=>{}))},c.oniceconnectionstatechange=()=>{if(!k.current)return;let t=c.iceConnectionState;if(console.debug(`[WebRTC] ICE state:`,t),t===`connected`||t===`completed`)se.current=0,e&&d(),He(`playing`),D.current?.paused&&(console.debug(`[WebRTC] video was paused at ICE connected — calling play()`),D.current.play().catch(()=>{}));else if(t===`failed`||t===`disconnected`||t===`closed`){if(e&&!u)try{c.close()}catch{}He(`disconnected`),et()}},c.onicecandidateerror=e=>{console.debug(`[WebRTC] ICE candidate error:`,e)},console.debug(`[WebRTC] Setting remote description (server offer)...`),await c.setRemoteDescription({type:`offer`,sdp:o});let f=await c.createAnswer();if(await c.setLocalDescription(f),console.debug(`[WebRTC] Local description set, waiting for ICE gathering...`),await fY(c),!k.current)return;let p=(c.localDescription?.sdp??``).split(`
|
|
111
|
-
`).filter(e=>e.startsWith(`a=candidate:`)).length;console.debug(`[WebRTC] Sending answer to server`,{localCandidates:p,sessionId:a.slice(0,8)}),await _(a,c.localDescription?.sdp??``),console.debug(`[WebRTC] Answer sent successfully`);let m=c,h=()=>{let e=m.connectionState;if(e===`closed`||e===`failed`)return;let t=D.current;t&&t.readyState===0&&console.log(`[WebRTC] no video data yet (ice=${m.iceConnectionState})`)};setTimeout(h,3e3),setTimeout(h,8e3)}catch(e){if(!k.current)return;let t=e instanceof Error?e.message:String(e);ve(t),He(`error`),p?.(t),et()}},[e,t,g,_,Ue,We,S,He,p,T]),Je=(0,K.useCallback)(async()=>{if(k.current){Ue(),He(`connecting`);try{let n=new RTCPeerConnection({iceServers:[{urls:`stun:stun.l.google.com:19302`}]});O.current=n,n.addTransceiver(`video`,{direction:`recvonly`}),n.addTransceiver(`audio`,{direction:`recvonly`});let r=new MediaStream;n.ontrack=e=>{r.addTrack(e.track),D.current&&(D.current.srcObject=r,aY(D.current,xe.current),D.current.play().catch(()=>{}))},n.oniceconnectionstatechange=()=>{if(!k.current)return;let e=n.iceConnectionState;e===`connected`||e===`completed`?(se.current=0,He(`playing`),D.current?.paused&&D.current.play().catch(()=>{})):(e===`failed`||e===`disconnected`||e===`closed`)&&(He(`disconnected`),et())};let a=await n.createOffer();if(await n.setLocalDescription(a),await fY(n),!k.current)return;let o=`${e}/api/webrtc?src=${encodeURIComponent(t)}`,s=await fetch(o,{method:`POST`,headers:{"Content-Type":`application/sdp`},body:n.localDescription?.sdp??``});if(!s.ok)throw Error(`WHEP ${s.status}: ${s.statusText}`);let c=await s.text();await n.setRemoteDescription({type:`answer`,sdp:c})}catch(e){if(!k.current)return;let t=e instanceof Error?e.message:String(e);ve(t),He(`error`),p?.(t),et()}}},[e,t,Ue,He,p]),Ye=(0,K.useCallback)(async(e=!1)=>{if(!k.current||!v)return;let n=e?O.current:null,r=e?new Set(ie.current):null;e?We():Ue(),He(`connecting`);let a=new AbortController;ae.current=a;let o=performance.now(),s=()=>Math.round(performance.now()-o),c={};try{let o=await y?.();if(c.iceServersMs=s(),!k.current||a.signal.aborted)return;let l=new RTCPeerConnection({iceServers:[...o??[],{urls:`stun:stun.l.google.com:19302`}]});e||(O.current=l);let d=new MediaStream,f=!1,p=()=>{if(!(f||!k.current)){if(f=!0,O.current=l,D.current&&(D.current.srcObject=d,aY(D.current,xe.current),D.current.play().catch(()=>{})),n&&n!==l)try{n.close()}catch{}if(r)for(let e of r)ie.current.delete(e),S?.(e).catch(()=>{})}};l.ontrack=t=>{if(c.firstTrackMs===void 0&&(c.firstTrackMs=s()),console.debug(`[WebRTC] ontrack (client-offer)`,t.track.kind,t.track.readyState),d.addTrack(t.track),e){p();return}D.current&&(D.current.srcObject=d,aY(D.current,xe.current),D.current.play().catch(()=>{}))};let m=!1;l.oniceconnectionstatechange=()=>{if(!k.current)return;let n=l.iceConnectionState;if(console.debug(`[WebRTC] ICE state (client-offer):`,n),n===`connected`||n===`completed`){if(!m){m=!0,c.iceConnectedMs=s(),console.info(`[WebRTC timing] client-offer connected`,{streamKey:t,...c}),u?.({...c});let e=D.current;e&&`requestVideoFrameCallback`in e&&(e.requestVideoFrameCallback(()=>{c.firstFrameMs=s(),console.info(`[WebRTC timing] first decoded frame`,{streamKey:t,firstFrameMs:c.firstFrameMs}),u?.({...c})}),setTimeout(()=>{k.current&&c.firstFrameMs===void 0&&(console.warn(`[WebRTC timing] NO decoded frame (stalled)`,{streamKey:t,sinceIceConnectedMs:s()-(c.iceConnectedMs??0),iceConnectedMs:c.iceConnectedMs,firstTrackMs:c.firstTrackMs}),$e.current(`no decoded frame after connect`),et())},lY))}se.current=0,e&&p(),He(`playing`),D.current?.paused&&D.current.play().catch(()=>{})}else if(n===`failed`||n===`disconnected`||n===`closed`){if(e&&!f)try{l.close()}catch{}He(`disconnected`),et()}};let h=null,g=[];if(l.onicecandidate=e=>{if(!e.candidate)return;let t=e.candidate.toJSON();h&&b?b(h,t).catch(()=>{}):g.push(t)},l.addTransceiver(`video`,{direction:`recvonly`}),l.addTransceiver(`audio`,{direction:`recvonly`}),ce.current){let e=l.createDataChannel(`camstack-control`);ce.current(e)}let _=await l.createOffer();if(c.offerCreatedMs=s(),await l.setLocalDescription(_),c.localSetMs=s(),!k.current||a.signal.aborted)return;let ee={...cY(re.current),...T},C=s(),{sessionId:w,sdpAnswer:E}=await v(l.localDescription?.sdp??_.sdp??``,void 0,ee);if(c.signalingRttMs=s()-C,h=w,ie.current.add(w),ue.current=w,!k.current||a.signal.aborted){S?.(w).catch(()=>{}),ie.current.delete(w);return}if(b)for(let e of g)b(w,e).catch(()=>{});if(g.length=0,await l.setRemoteDescription({type:`answer`,sdp:E}),c.answerSetMs=s(),console.debug(`[WebRTC] Client-offer answer set (trickle)`,{sessionId:w.slice(0,8)}),x){let e=new Set,t=Date.now(),n=async()=>{if(!(!k.current||a.signal.aborted)&&!(l.connectionState===`closed`||l.signalingState===`closed`)){try{let{candidates:n,done:r}=await x(w);for(let t of n){let n=t.candidate??``;n&&!e.has(n)&&(e.add(n),l.addIceCandidate(new RTCIceCandidate(t)).catch(()=>{}))}let a=l.iceConnectionState;if(r||Date.now()-t>1e4||a===`connected`||a===`completed`)return}catch{}setTimeout(()=>{n()},200)}};n()}Ke(w)}catch(e){if(!k.current)return;let t=e instanceof Error?e.message:String(e);ve(t),He(`error`),p?.(t),et()}},[v,y,b,x,S,Ue,We,He,p,Ke,T]);me.current=(0,K.useCallback)(async(e,t)=>{let n=C;if(!k.current||!n)return;let r=O.current;pe.current=!0;try{let a=await y?.();if(!k.current)return;let o=new RTCPeerConnection({iceServers:[...a??[],{urls:`stun:stun.l.google.com:19302`}]}),s=new MediaStream,c=!1,l=!1,u=null,d,f,p=()=>{f!==void 0&&(clearTimeout(f),f=void 0);let e=u;if(u=null,e){d!==void 0&&typeof e.cancelVideoFrameCallback==`function`&&e.cancelVideoFrameCallback(d),e.removeEventListener(`loadeddata`,m);try{e.srcObject=null}catch{}e.remove()}};function m(){if(c||!k.current){p();return}c=!0,O.current=o,D.current&&(D.current.srcObject=s,D.current.play().catch(()=>{})),r&&r!==o&&r.close(),p()}let h=()=>{if(l||c||!k.current)return;if(l=!0,typeof document>`u`){m();return}let e=document.createElement(`video`);e.muted=!0,e.playsInline=!0,e.autoplay=!0,e.style.cssText=`position:absolute;left:-9999px;top:0;width:1px;height:1px;opacity:0;pointer-events:none;`,e.srcObject=s,u=e,(re.current??document.body).appendChild(e),e.play().catch(()=>{}),typeof e.requestVideoFrameCallback==`function`&&(d=e.requestVideoFrameCallback(()=>m())),e.addEventListener(`loadeddata`,m,{once:!0}),f=setTimeout(()=>m(),1800)};o.ontrack=e=>{console.debug(`[WebRTC] ontrack (reoffer)`,e.track.kind,e.track.readyState),s.addTrack(e.track),h()},o.oniceconnectionstatechange=()=>{if(!k.current)return;let e=o.iceConnectionState;console.debug(`[WebRTC] ICE state (reoffer):`,e),e===`connected`||e===`completed`?(se.current=0,h(),He(`playing`),D.current?.paused&&D.current.play().catch(()=>{})):(e===`failed`||e===`closed`)&&(p(),!c&&e===`failed`&&o.close(),He(`disconnected`),et())};let g=null,_=[];if(o.onicecandidate=e=>{if(!e.candidate)return;let t=e.candidate.toJSON();g&&b?b(g,t).catch(()=>{}):_.push(t)},o.addTransceiver(`video`,{direction:`recvonly`}),o.addTransceiver(`audio`,{direction:`recvonly`}),ce.current){let e=o.createDataChannel(`camstack-control`);ce.current(e)}let v=await o.createOffer();if(await o.setLocalDescription(v),!k.current){o.close();return}let S={...cY(re.current),...T},{sessionId:ee,sdpAnswer:C}=await n(e,o.localDescription?.sdp??v.sdp??``,t,S);if(!k.current){o.close();return}if(g=ee,ie.current.add(ee),ue.current=ee,b)for(let e of _)b(ee,e).catch(()=>{});if(_.length=0,await o.setRemoteDescription({type:`answer`,sdp:C}),x){let e=new Set,t=Date.now(),n=async()=>{if(k.current&&!(o.connectionState===`closed`||o.signalingState===`closed`)){try{let{candidates:n,done:r}=await x(ee);for(let t of n){let n=t.candidate??``;n&&!e.has(n)&&(e.add(n),o.addIceCandidate(new RTCIceCandidate(t)).catch(()=>{}))}let a=o.iceConnectionState;if(r||Date.now()-t>1e4||a===`connected`||a===`completed`)return}catch{}setTimeout(()=>{n()},200)}};n()}Ke(ee)}catch(t){console.debug(`[WebRTC] reoffer failed; keeping last frame, re-arming poll`,t instanceof Error?t.message:String(t)),Ke(e)}finally{pe.current=!1}},[C,y,b,x,He,Ke,T]);let Xe=Ne?Ye:je?qe:Je,Ze=(0,K.useRef)(()=>{}),Qe=(0,K.useRef)(m);Qe.current=m;let $e=(0,K.useRef)(()=>{});$e.current=e=>{console.warn(`[WebRTC] hard error`,{streamKey:t,msg:e}),ve(e),p?.(e),He(`error`)},Ze.current=Xe;let et=(0,K.useCallback)(()=>{if(!k.current)return;let e=se.current,t=iY(e);if(Qe.current?.(t),t.kind===`exhausted`){$e.current(`reconnect attempts exhausted (${t.attempts})`);return}se.current+=1,oe.current=setTimeout(()=>{k.current&&Ze.current()},t.delayMs)},[]);(0,K.useEffect)(()=>(k.current=!0,se.current=0,r&&Xe(),()=>{k.current=!1,Ue()}),[]);let tt=(0,K.useRef)(!1);(0,K.useEffect)(()=>{if(r){if(Ne){if(!v)return}else if(je){if(!g||!_)return}else return;tt.current||O.current||(tt.current=!0,Xe())}},[r,Ne,je,v,g,_,Xe]);let nt=()=>{se.current=0,Xe()},rt=()=>{if(se.current=0,O.current&&Ne){Ye(!0);return}if(O.current&&je){qe(!0);return}Xe()},it=(0,K.useRef)(e),at=(0,K.useRef)(t);(0,K.useEffect)(()=>{let n=it.current!==e,r=at.current!==t;if(it.current=e,at.current=t,!(!n&&!r)&&k.current){if(se.current=0,n){Ue(),Xe();return}rt()}},[e,t]);let ot=(0,K.useRef)(E);(0,K.useEffect)(()=>{ot.current!==E&&(ot.current=E,k.current&&rt())},[E]);let st=()=>{if(D.current){let e=!D.current.muted;aY(D.current,e),be(e)}},ct=async()=>{if(re.current)try{if(document.fullscreenElement){await document.exitFullscreen();return}if(re.current.requestFullscreen){await re.current.requestFullscreen();return}let e=D.current;e?.webkitEnterFullscreen&&e.webkitEnterFullscreen()}catch(e){console.warn(`Fullscreen toggle failed: ${e instanceof Error?e.message:e}`)}},lt=async()=>{let e=D.current;if(e)try{if(typeof e.webkitSetPresentationMode==`function`){e.webkitSetPresentationMode(e.webkitPresentationMode===`picture-in-picture`?`inline`:`picture-in-picture`);return}document.pictureInPictureElement?await document.exitPictureInPicture():await e.requestPictureInPicture()}catch(e){console.warn(`PiP toggle failed: ${e instanceof Error?e.message:String(e)}`)}},ut=()=>{if(!D.current)return;let e=document.createElement(`canvas`);e.width=D.current.videoWidth||1280,e.height=D.current.videoHeight||720;let n=e.getContext(`2d`);if(!n)return;n.drawImage(D.current,0,0);let r=document.createElement(`a`);r.download=`${t.replace(/[/:]/g,`-`)}-${Date.now()}.jpg`,r.href=e.toDataURL(`image/jpeg`,.92),r.click()};(0,K.useEffect)(()=>{let e=()=>Ce(!!document.fullscreenElement);document.addEventListener(`fullscreenchange`,e);let t=D.current;return t?.addEventListener(`webkitbeginfullscreen`,e),t?.addEventListener(`webkitendfullscreen`,e),()=>{document.removeEventListener(`fullscreenchange`,e),t?.removeEventListener(`webkitbeginfullscreen`,e),t?.removeEventListener(`webkitendfullscreen`,e)}},[]),(0,K.useEffect)(()=>{let e=D.current,t=typeof document<`u`&&document.pictureInPictureEnabled===!0,n=e!==null&&typeof e.webkitSetPresentationMode==`function`;Te(t||n)},[]);let[dt,ft]=(0,K.useState)(``),pt=(0,K.useRef)(null);(0,K.useEffect)(()=>{if(!s){ft(``),pt.current=null;return}let e=async()=>{let e=O.current;if(e)try{let t=await e.getStats(),n=0,r=0,a=0,o=0,s=0,c=0;t.forEach(e=>{let t=e;t.type===`inbound-rtp`&&(t.kind??t.mediaType)===`video`?(n=t.bytesReceived??0,r=t.timestamp,a=t.framesPerSecond??0,o=t.frameWidth??0,s=t.frameHeight??0):t.type===`candidate-pair`&&t.nominated&&typeof t.currentRoundTripTime==`number`&&(c=t.currentRoundTripTime)});let l=0;pt.current&&r>pt.current.ts&&(l=Math.round((n-pt.current.bytes)*8/(r-pt.current.ts))),pt.current={bytes:n,ts:r};let u=[];o&&s&&u.push(`${o}×${s}`),a&&u.push(`${Math.round(a)}fps`),l>0&&u.push(`${l} kbps`),c&&u.push(`${Math.round(c*1e3)}ms`),ft(u.join(` · `))}catch{}};e();let t=setInterval(()=>{e()},1e3);return()=>clearInterval(t)},[s]);let mt=(0,K.useRef)(null);(0,K.useEffect)(()=>{if(!l){mt.current=null;return}let e=async()=>{let e=O.current;if(e)try{let t=await e.getStats(),n=0,r=0,a=0,o=0,s=0,c=0;t.forEach(e=>{let t=e;t.type===`inbound-rtp`&&(t.kind??t.mediaType)===`video`?(n=t.packetsLost??0,r=t.packetsReceived??0,a=t.bytesReceived??0,o=t.timestamp,s=t.jitter??0):t.type===`candidate-pair`&&t.nominated&&typeof t.currentRoundTripTime==`number`&&(c=t.currentRoundTripTime)});let u=mt.current;if(mt.current={lost:n,recv:r,bytes:a,ts:o},!u||o<=u.ts)return;let d=Math.max(0,n-u.lost),f=d+Math.max(0,r-u.recv),p=f>0?Math.min(100,d/f*100):0,m=Math.max(0,Math.round((a-u.bytes)*8/(o-u.ts)));l({rttMs:Math.round(c*1e3),jitterMs:Math.round(s*1e3),estimatedBandwidthKbps:m,packetLossPercent:p})}catch{}},t=setInterval(()=>{e()},2e3);return()=>clearInterval(t)},[l]);let ht=(0,K.useRef)(null);(0,K.useEffect)(()=>{if(!c){ht.current=null;return}let e=async()=>{let e=O.current,t=D.current;if(e)try{let n=await e.getStats(),r=0,a=0,o=0,s=0,l=0,u=0,d=0,f=0;n.forEach(e=>{let t=e;t.type===`inbound-rtp`&&(t.kind??t.mediaType)===`video`&&(r=t.framesReceived??0,a=t.framesDecoded??0,o=t.framesDropped??0,s=t.framesPerSecond??0,l=t.freezeCount??0,u=t.totalFreezesDuration??0,d=t.jitterBufferDelay??0,f=t.jitterBufferEmittedCount??0)});let p=t?.currentTime??0,m=Date.now(),h=ht.current,g=f>0?Math.round(d/f*1e3):0;h&&c({dRecv:r-h.recv,dDec:a-h.dec,dDrop:o-h.drop,fps:Math.round(s),dFreeze:l-h.freeze,freezeTotalMs:Math.round(u*1e3),avgJitterMs:g,dCtMs:Math.round((p-h.ct)*1e3),dtMs:m-h.ts,readyState:t?.readyState??-1}),ht.current={recv:r,dec:a,drop:o,freeze:l,ct:p,ts:m}}catch{}};e();let t=setInterval(()=>{e()},1e3);return()=>clearInterval(t)},[c]),(0,K.useEffect)(()=>{be(a);let e=D.current;e&&(aY(e,a),a||e.play().catch(()=>{}))},[a]);let gt=()=>{Ee||(Oe(!0),ke.current&&clearTimeout(ke.current),ke.current=setTimeout(()=>Oe(!1),3e3))},_t=()=>{Oe(e=>!e),ke.current&&clearTimeout(ke.current)};(0,K.useEffect)(()=>{if(he===`playing`){Ve();let e=setInterval(Ve,2e3);return()=>clearInterval(e)}Pe&&Ie.current&&Re(Ie.current)},[he,Pe,Ve]),(0,K.useEffect)(()=>{if(he!==`playing`){Be(!1);return}let e=D.current;if(!e)return;let t=!1,n=()=>{t||Be(!0)},r;typeof e.requestVideoFrameCallback==`function`&&(r=e.requestVideoFrameCallback(()=>n())),e.addEventListener(`loadeddata`,n,{once:!0});let a=setTimeout(n,12e3);return()=>{t=!0,clearTimeout(a),r!==void 0&&typeof e.cancelVideoFrameCallback==`function`&&e.cancelVideoFrameCallback(r),e.removeEventListener(`loadeddata`,n)}},[he]);let vt=Pe&&Le?Le:w??null,yt=!ze&&vt!==null;return(0,q.jsxs)(`div`,{ref:re,className:`relative isolate bg-black overflow-hidden group ${d}`,onMouseMove:gt,onMouseEnter:gt,onTouchStart:_t,children:[(0,q.jsx)(`video`,{ref:D,autoPlay:r,muted:ye,playsInline:!0,className:`w-full h-full object-contain relative z-0`}),yt&&vt&&(0,q.jsx)(`img`,{src:vt,alt:``,className:`absolute inset-0 w-full h-full object-contain z-[5] transform-gpu pointer-events-none`}),n&&he===`playing`&&(0,q.jsx)(`div`,{className:`absolute top-2 left-2 z-10 transform-gpu px-2 py-0.5 rounded bg-black/60 text-[10px] text-white font-medium`,children:n}),s&&dt&&(0,q.jsx)(`div`,{className:`absolute top-2 right-2 z-10 transform-gpu px-2 py-0.5 rounded bg-black/60 text-[10px] text-white font-mono`,children:dt}),h,o&&!vt&&he===`connecting`&&(0,q.jsxs)(`div`,{className:`absolute inset-0 z-10 transform-gpu flex flex-col items-center justify-center bg-black/70 gap-2`,children:[(0,q.jsx)(`svg`,{className:`h-6 w-6 text-white/60 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:(0,q.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`3`,strokeLinecap:`round`,strokeDasharray:`32`,strokeDashoffset:`32`,className:`animate-[dash_1.5s_ease-in-out_infinite]`})}),(0,q.jsx)(`span`,{className:`text-xs text-white/60`,children:`Connecting…`})]}),o&&!vt&&(he===`error`||he===`disconnected`)&&(0,q.jsxs)(`div`,{className:`absolute inset-0 z-10 transform-gpu flex flex-col items-center justify-center bg-black/70 gap-2`,children:[(0,q.jsx)(`svg`,{className:`h-6 w-6 text-red-400`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,q.jsx)(`path`,{d:`M1 1l5.5 5.5M23 23l-5.5-5.5M8.11 15.89a8 8 0 0110.78-10.78M3.64 3.64A12 12 0 0020.36 20.36`,strokeLinecap:`round`})}),(0,q.jsx)(`span`,{className:`text-xs text-red-400 text-center px-4`,children:he===`error`?_e||`Connection failed`:`Disconnected`}),(0,q.jsx)(`button`,{onClick:nt,className:`mt-1 inline-flex items-center gap-1.5 rounded px-3 py-1 text-xs bg-white/10 text-white hover:bg-white/20 transition-colors`,children:`Reconnect`})]}),o&&vt&&(he===`connecting`||he===`disconnected`)&&(0,q.jsx)(`div`,{className:`absolute top-2 left-2 z-10 transform-gpu flex h-6 w-6 items-center justify-center rounded-full bg-black/55`,children:(0,q.jsx)(`svg`,{className:`h-3.5 w-3.5 text-white/90 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:(0,q.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`3`,strokeLinecap:`round`,strokeDasharray:`32`,strokeDashoffset:`32`,className:`animate-[dash_1.5s_ease-in-out_infinite]`})})}),o&&vt&&he===`error`&&(0,q.jsx)(`button`,{onClick:nt,title:_e||`Reconnect`,className:`absolute top-2 left-2 z-10 transform-gpu flex h-6 w-6 items-center justify-center rounded-full bg-black/55 text-white/90 hover:bg-black/75 transition-colors`,children:(0,q.jsxs)(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,q.jsx)(`path`,{d:`M23 4v6h-6M1 20v-6h6`}),(0,q.jsx)(`path`,{d:`M3.51 9a9 9 0 0114.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0020.49 15`})]})}),o&&he!==`idle`&&he!==`error`&&(0,q.jsxs)(`div`,{className:`absolute bottom-0 inset-x-0 z-20 transform-gpu flex items-center justify-between px-3 py-1.5 bg-gradient-to-t from-black/80 to-transparent transition-opacity duration-200 ${Ee||De?`opacity-100 pointer-events-auto`:`opacity-0 pointer-events-none`}`,children:[(0,q.jsx)(`div`,{className:`flex items-center gap-1`,children:(0,q.jsx)(dY,{onClick:st,title:ye?`Unmute`:`Mute`,children:ye?(0,q.jsxs)(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[(0,q.jsx)(`polygon`,{points:`11 5 6 9 2 9 2 15 6 15 11 19 11 5`}),(0,q.jsx)(`line`,{x1:`23`,y1:`9`,x2:`17`,y2:`15`}),(0,q.jsx)(`line`,{x1:`17`,y1:`9`,x2:`23`,y2:`15`})]}):(0,q.jsxs)(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[(0,q.jsx)(`polygon`,{points:`11 5 6 9 2 9 2 15 6 15 11 19 11 5`}),(0,q.jsx)(`path`,{d:`M19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07`})]})})}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(dY,{onClick:ut,title:`Take snapshot`,children:(0,q.jsxs)(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[(0,q.jsx)(`path`,{d:`M23 19a2 2 0 01-2 2H3a2 2 0 01-2-2V8a2 2 0 012-2h4l2-3h6l2 3h4a2 2 0 012 2z`}),(0,q.jsx)(`circle`,{cx:`12`,cy:`13`,r:`4`})]})}),we&&(0,q.jsx)(dY,{onClick:lt,title:`Picture-in-Picture`,children:(0,q.jsxs)(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,q.jsx)(`path`,{d:`M21 9V6a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2h4`}),(0,q.jsx)(`rect`,{width:`10`,height:`7`,x:`12`,y:`13`,rx:`2`})]})}),(0,q.jsx)(dY,{onClick:ct,title:Se?`Exit fullscreen`:`Fullscreen`,children:Se?(0,q.jsx)(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:(0,q.jsx)(`path`,{d:`M8 3v3a2 2 0 01-2 2H3m18 0h-3a2 2 0 01-2-2V3m0 18v-3a2 2 0 012-2h3M3 16h3a2 2 0 012 2v3`})}):(0,q.jsx)(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:(0,q.jsx)(`path`,{d:`M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3`})})})]})]})]})}function dY({onClick:e,title:t,children:n}){return(0,q.jsx)(`button`,{onClick:e,title:t,className:`rounded-full p-1.5 min-w-[44px] min-h-[44px] flex items-center justify-center text-white/80 hover:text-white hover:bg-white/20 active:bg-white/30 transition-colors`,children:n})}async function fY(e){if(e.iceGatheringState!==`complete`)return new Promise(t=>{let n=!1,r,a=()=>{n||(n=!0,r&&clearInterval(r),e.removeEventListener(`icegatheringstatechange`,o),t())},o=()=>{e.iceGatheringState===`complete`&&a()};e.addEventListener(`icegatheringstatechange`,o);let s=Date.now();r=setInterval(()=>{let t=e.localDescription?.sdp??``;/ typ host/.test(t)&&Date.now()-s>=600&&a()},100),setTimeout(a,2500)})}oF(`camstack:player-overlays-state`,null);var pY=oF(`camstack:player-overlays-actions`,null);function mY(e){let t=(0,K.useContext)(pY);(0,K.useEffect)(()=>{if(!(!t||!e))return t.setLayer(e),()=>t.removeLayer(e.id)},[t,e])}R({id:N(),stableId:M(),addonId:M(),type:M(),name:M(),online:P(),disabled:P(),parentDeviceId:N().nullable(),role:M().nullable().optional(),features:L(M()).optional(),isCamera:P().optional(),sourceInfo:Gp.optional()}),qt.AddonStarted,qt.AddonInstalled,qt.AddonRestarted,qt.AddonUpdated,qt.AddonStopped,qt.AddonUninstalled,qt.AddonCrashed,qt.AddonError,qt.DetectionPhaseTransition,qt.DetectionResult,qt.DetectionEvent,qt.DetectionCameraNative,qt.ProviderMotion,qt.MotionOnMotionChanged,qt.MotionAnalysis,qt.MotionZonesRaw,qt.ProviderDetection,qt.PipelineAudioInferenceResult,qt.AgentOnline,qt.AgentOffline,qt.DeviceRegistered,qt.DeviceUnregistered,qt.DeviceStateChanged,qt.EventEmitted;var hY=Object.freeze([...new Set(Object.values(qt))].toSorted()),gY=Object.freeze([qt.PipelineCameraMetricsSnapshot,qt.PipelineRunnerLoadSnapshot,qt.PipelineEngineMetricsSnapshot,qt.PipelineInferenceResult,qt.PipelineTrace,qt.PipelineProgress,qt.StreamBrokerMetricsSnapshot,qt.MetricsNodeResourcesSnapshot,qt.MetricsNodeProcessesSnapshot,qt.ClusterTopologySnapshot,qt.MotionAnalysis,qt.MotionZonesRaw,qt.DetectionResult,qt.PipelineAudioInferenceResult,qt.PlatformProbePhase,qt.BenchmarkProgress,qt.ModelDownloadProgress]),_Y=new Set(gY);Object.freeze(hY.filter(e=>!_Y.has(e))),Object.freeze([...new Set(qO.filter(e=>e.scope===`device`).map(e=>e.name))].toSorted()),oF(`camstack:zone-editing`,null);var vY=500,yY=800;function bY(e,t,n){try{let r=e.live;if(!r)return null;let a=r.onEvent;return!a||typeof a.subscribe!=`function`?null:a.subscribe({category:t},{onData:n})}catch{return null}}function xY(e,t){return e?.id===t}function SY(e,t){let[n,r]=(0,K.useState)(null),[a,o]=(0,K.useState)(null),[s,c]=(0,K.useState)(null),[l,u]=(0,K.useState)(`watching`),d=(0,K.useRef)(void 0),f=(0,K.useRef)(void 0),p=(0,K.useRef)(void 0),m=(0,K.useRef)(0);return(0,K.useEffect)(()=>{if(t===null)return;let n=bY(e,`detection.motion-analysis`,e=>{let n=e;if(!xY(n?.source,t))return;let a=n.data;!a?.regions||a.regions.length===0||(r({zones:a.regions.map(e=>({...e.bbox,intensity:e.intensity})),frameWidth:a.frameWidth,frameHeight:a.frameHeight}),d.current&&clearTimeout(d.current),d.current=setTimeout(()=>r(null),vY))});return()=>{n?.unsubscribe(),d.current&&clearTimeout(d.current)}},[e,t]),(0,K.useEffect)(()=>{if(t===null)return;let n=bY(e,`detection.motion-zones-raw`,e=>{let n=e;if(!xY(n?.source,t))return;let r=n.data;r?.zones&&(o({boxes:r.zones.map(e=>({bbox:e.bbox,changeScore:e.changeScore})),frameWidth:r.frameSize?.width??0,frameHeight:r.frameSize?.height??0,motionScore:r.zones.length>0?r.zones.reduce((e,t)=>e+t.changeScore,0)/r.zones.length:0}),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>o(null),vY))});return()=>{n?.unsubscribe(),f.current&&clearTimeout(f.current)}},[e,t]),(0,K.useEffect)(()=>{if(m.current=0,t===null)return;let n=bY(e,`pipeline-analytics.frame-tracked`,e=>{let n=e?.data;!n||n.deviceId!==t||n.detections?.length&&typeof n.detections[0]?.kind==`string`&&(m.current=Date.now(),c({detections:n.detections,frameWidth:n.frameWidth,frameHeight:n.frameHeight}),p.current&&clearTimeout(p.current),p.current=setTimeout(()=>c(null),yY))});return()=>{n?.unsubscribe(),p.current&&clearTimeout(p.current)}},[e,t]),(0,K.useEffect)(()=>{if(t===null)return;let n=bY(e,`detection.result`,e=>{let n=e;if(!xY(n?.source,t)||Date.now()-m.current<yY)return;let r=n.data?.frame;r?.detections?.length&&(c({detections:r.detections,frameWidth:r.width,frameHeight:r.height}),p.current&&clearTimeout(p.current),p.current=setTimeout(()=>c(null),yY))});return()=>{n?.unsubscribe(),p.current&&clearTimeout(p.current)}},[e,t]),(0,K.useEffect)(()=>{if(t===null)return;let n=bY(e,`detection.phase-transition`,e=>{let n=e;xY(n?.source,t)&&n.data?.to&&u(n.data.to)});return()=>{n?.unsubscribe()}},[e,t]),{motion:n,motionRaw:a,detection:s,phase:l}}var CY=5*6e4,wY=720*6e4,TY=`camstack:turn-servers:v1`;function EY(){let e=globalThis;try{return e.localStorage??null}catch{return null}}function DY(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.fetchedAt!=`number`||!Array.isArray(t.servers)?!1:t.servers.every(e=>{if(typeof e!=`object`||!e)return!1;let t=e;return!(!(typeof t.urls==`string`||Array.isArray(t.urls)&&t.urls.every(e=>typeof e==`string`))||t.username!==void 0&&typeof t.username!=`string`||t.credential!==void 0&&typeof t.credential!=`string`)})}var OY=new class{freshTtlMs;staleCapMs;storage;now;storageKey;memory=new WeakMap;inflight=new WeakMap;constructor(e={}){this.freshTtlMs=e.freshTtlMs??CY,this.staleCapMs=e.staleCapMs??wY,this.storage=`storage`in e?e.storage??null:EY(),this.now=e.now??(()=>Date.now()),this.storageKey=e.storageKey??TY}async getOrFetch(e,t){let n=this.now(),r=this.memory.get(e)??this.readStorage();if(r){let a=n-r.fetchedAt;if(a<this.freshTtlMs)return r.servers;if(a<this.staleCapMs)return this.startFetch(e,t,r),r.servers}return this.startFetch(e,t,r)}startFetch(e,t,n){let r=this.inflight.get(e);if(r)return r;let a=(async()=>{try{let n=await t();if(n.length>0){let t={servers:n,fetchedAt:this.now()};this.memory.set(e,t),this.writeStorage(t)}return n}catch{return n?.servers}})().finally(()=>{this.inflight.delete(e)});return this.inflight.set(e,a),a}readStorage(){if(this.storage)try{let e=this.storage.getItem(this.storageKey);if(e===null)return;let t=JSON.parse(e);return DY(t)?t:void 0}catch{return}}writeStorage(e){if(this.storage)try{this.storage.setItem(this.storageKey,JSON.stringify(e))}catch{}}};function kY(e,t,n=5e3){let[r,a]=(0,K.useState)([]);(0,K.useEffect)(()=>{if(t===null)return;let r=!1,o=()=>{e.webrtcSession.listStreams.query({deviceId:t}).then(e=>{r||a(e)}).catch(()=>{})};o();let s=setInterval(o,n);return()=>{r=!0,clearInterval(s)}},[e,t,n]);let[o,s]=(0,K.useState)(null);(0,K.useEffect)(()=>{if(t===null)return;let n=!1;return e.pipelineOrchestrator&&e.pipelineOrchestrator.getCameraMetrics.query({deviceId:t}).then(e=>{n||!e||s({phase:e.phase,detectionFps:e.actualFps,avgInferenceMs:e.avgInferenceTimeMs,droppedFrames:e.droppedFrames})}).catch(()=>{}),()=>{n=!0}},[e,t]),dH(`pipeline.camera-metrics-snapshot`,e=>{if(t===null)return;let n=e.data;n.deviceId!==t||!n.metrics||s({phase:n.metrics.phase,detectionFps:n.metrics.actualFps,avgInferenceMs:n.metrics.avgInferenceTimeMs,droppedFrames:n.metrics.droppedFrames})});let{streams:c,hasWebrtc:l}=(0,K.useMemo)(()=>t===null||r.length===0?{streams:[],hasWebrtc:!1}:{streams:r.map(e=>({id:e.id,label:e.label,target:e.target,status:e.status,inputFps:e.inputFps,decodeFps:e.decodeFps,bitrateKbps:e.bitrateKbps})),hasWebrtc:!0},[t,r]),u=(0,K.useCallback)(async()=>{let t=e.turnProvider;if(t)return OY.getOrFetch(e,async()=>(await t.getTurnServers.query()).map(e=>({urls:typeof e.urls==`string`?e.urls:[...e.urls],...e.username===void 0?{}:{username:e.username},...e.credential===void 0?{}:{credential:e.credential}})))},[e]);(0,K.useEffect)(()=>{u()},[u]);let d=(0,K.useCallback)(async(n,r)=>{if(t===null)throw Error(`No device selected`);let a=await e.webrtcSession.createSession.mutate({deviceId:t,target:n,hints:r}),o=await u();return{sessionId:a.sessionId,sdpOffer:a.sdpOffer,...o?{iceServers:o}:{}}},[e,t,u]),f=(0,K.useCallback)(async(n,r,a,o)=>{if(t===null)throw Error(`No device selected`);return e.webrtcSession.handleOffer.mutate({deviceId:t,target:n,sdpOffer:r,...a===void 0?{}:{sessionId:a},...o===void 0?{}:{hints:o}})},[e,t]),p=(0,K.useCallback)(async(n,r)=>{if(t===null)throw Error(`No device selected`);await e.webrtcSession.handleAnswer.mutate({deviceId:t,sessionId:n,sdpAnswer:r})},[e,t]);return{streams:c,hasWebrtc:l,pipelineMetrics:o,createSession:d,handleOffer:f,getIceServers:u,addIceCandidate:(0,K.useCallback)(async(n,r)=>{t!==null&&await e.webrtcSession.addIceCandidate.mutate({deviceId:t,sessionId:n,candidate:r.candidate??``,sdpMid:r.sdpMid??null,sdpMLineIndex:r.sdpMLineIndex??null}).catch(()=>{})},[e,t]),getIceCandidates:(0,K.useCallback)(async n=>t===null?{candidates:[],done:!0}:e.webrtcSession.getIceCandidates.query({deviceId:t,sessionId:n}),[e,t]),sendAnswer:p,closeSession:(0,K.useCallback)(async n=>{t!==null&&await e.webrtcSession.closeSession.mutate({deviceId:t,sessionId:n}).catch(()=>{})},[e,t]),getSessionState:(0,K.useCallback)(async n=>{if(t===null)return{pendingRenegotiation:null};try{return await e.webrtcSession.getSessionState.query({deviceId:t,sessionId:n})}catch{return{pendingRenegotiation:null}}},[e,t])}}(0,K.lazy)(()=>pl(()=>import(`./MaskShapeCanvas-DI4BY7W2-DY1AX2y_.js`).then(e=>({default:e.MaskShapeCanvas})),[],import.meta.url)),(0,K.lazy)(()=>pl(()=>import(`./MotionZonesSettings-NcxxQN8r-D46Ft0YB.js`).then(e=>({default:e.MotionZonesSettings})),__vite__mapDeps([0,1]),import.meta.url)),(0,K.lazy)(()=>pl(()=>import(`./PrivacyMaskSettings-APgPLF7p-BLD9p-W3.js`).then(e=>({default:e.PrivacyMaskSettings})),__vite__mapDeps([2,1]),import.meta.url));var AY=B([`reel`,`gallery`]),jY=B([`small`,`medium`,`large`]),MY=B([`auto`,`dark`,`light`]),NY=R({label:P(),sublabel:P(),camera:P(),time:P(),badges:P()}),PY={label:!0,sublabel:!0,camera:!0,time:!0,badges:!0},FY=B([`time`,`importance`]),IY=B([`text`,`semantic`]),LY=wc([V(`auto`),N().int().min(1).max(12)]),RY=R({serverUrl:M().min(1),token:M().min(1),view:AY.default(`reel`),rows:N().int().min(1).max(6).default(1),columns:LY.default(`auto`),thumbSize:jY.default(`medium`),fields:NY.default(PY),deviceIds:L(N().int().nonnegative()).default([]),classes:L(M()).default([]),deviceNames:z(M(),M()).default({}),strings:R({empty:M().optional(),error:M().optional(),retry:M().optional(),end:M().optional()}).default({}),search:M().default(``),searchMode:IY.default(`text`),semanticLimit:N().int().min(1).max(200).default(50),semanticMinScore:N().min(0).max(1).default(.2),sort:FY.default(`time`),sinceMs:N().int().nonnegative().optional(),untilMs:N().int().nonnegative().optional(),pageSize:N().int().min(1).max(500).default(60),maxRows:N().int().min(1).max(5e3).default(600),refreshMs:N().int().min(0).max(6e5).default(15e3),maxAgeMs:N().int().min(6e4).default(720*60*60*1e3),theme:MY.default(`auto`)}),zY=R({view:AY.optional(),rows:N().int().min(1).max(6).optional(),columns:LY.optional(),thumbSize:jY.optional(),fields:NY.partial().optional(),deviceIds:L(N().int().nonnegative()).optional(),classes:L(M()).optional(),deviceNames:z(M(),M()).optional(),strings:R({empty:M().optional(),error:M().optional(),retry:M().optional(),end:M().optional()}).optional(),search:M().optional(),searchMode:IY.optional(),semanticLimit:N().int().min(1).max(200).optional(),semanticMinScore:N().min(0).max(1).optional(),sort:FY.optional(),sinceMs:N().int().nonnegative().nullable().optional(),untilMs:N().int().nonnegative().nullable().optional(),pageSize:N().int().min(1).max(500).optional(),maxRows:N().int().min(1).max(5e3).optional(),refreshMs:N().int().min(0).max(6e5).optional(),maxAgeMs:N().int().min(6e4).optional(),theme:MY.optional()});function BY(e){return e===`small`?80:e===`large`?132:106}function VY(e,t=1){let n=Number.isFinite(t)&&t>0?t:1,r=Math.round(BY(e)*n);return Math.max(64,Math.min(320,r))}function HY(e){if(e==null)return{ok:!1,error:`config is required`};let t=RY.safeParse(e);return t.success?{ok:!0,config:t.data}:{ok:!1,error:t.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `)}}function UY(e,t){let n=t.fields===void 0?e.fields:{...e.fields,...t.fields},{sinceMs:r,untilMs:a,...o}=t,{sinceMs:s,untilMs:c,...l}=e,u=WY(r,s),d=WY(a,c);return{...l,...o,fields:n,...u===void 0?{}:{sinceMs:u},...d===void 0?{}:{untilMs:d}}}function WY(e,t){if(e!==null)return e??t}function GY(e,t,n){let r=n[String(e)];return r!==void 0&&r.trim().length>0?r:t}var KY={empty:`No events`,error:`Couldn't load events`,retry:`Retry`,end:`·`};function qY(e,t){let n=e.strings[t];return n!==void 0&&n.trim().length>0?n:KY[t]}var JY=`/addon/pipeline-analytics/event-media`,YY=64,XY=320;function ZY(e){return e.replace(/\/+$/,``)}function QY(e){let t=Math.round(e);return Number.isFinite(t)?Math.max(YY,Math.min(XY,t)):YY}function $Y(e,t,n){return`${ZY(e)}${JY}/${t}?variant=thumb&size=${QY(n)}`}var eX=`audio`;function tX(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function nX(e){let t=new Map;if(!Array.isArray(e))return t;for(let n of e){if(!tX(n))continue;let e=n.kinds;if(Array.isArray(e))for(let n of e){if(!tX(n))continue;let e=n.kind;if(typeof e!=`string`||e.length===0)continue;let r=n.parentKind;t.set(e,typeof r==`string`&&r.length>0?r:e)}}return t}function rX(e,t){return t.get(e)??e}function iX(e){return`audio-${e.toLowerCase()}`}function aX(e){let t=new Map;if(!Array.isArray(e))return t;for(let n of e){if(!tX(n))continue;let e=n.kinds;if(Array.isArray(e))for(let n of e){if(!tX(n))continue;let e=n.kind,r=n.iconId;typeof e!=`string`||e.length===0||typeof r!=`string`||r.length===0||t.set(e,r)}}return t}function oX(e,t){let n=e.toLowerCase();return t.get(e)??t.get(n)??n}var sX={background:`#09090b`,card:`#18181b`,cardHover:`#27272a`,border:`#27272a`,text:`#fafafa`,textMuted:`#a1a1aa`,skeleton:`#27272a`,chip:`#3f3f46`,colorScheme:`dark`},cX={background:`#ffffff`,card:`#f4f4f5`,cardHover:`#e4e4e7`,border:`#e4e4e7`,text:`#18181b`,textMuted:`#71717a`,skeleton:`#e4e4e7`,chip:`#d4d4d8`,colorScheme:`light`};function lX(e,t){return e===`light`?cX:e===`dark`||t?sX:cX}function uX(e){let t=e.toLowerCase();return t.includes(`person`)||t.includes(`face`)?`#38bdf8`:t.includes(`vehicle`)||t.includes(`car`)||t.includes(`truck`)||t.includes(`plate`)?`#a78bfa`:t.includes(`animal`)||t.includes(`dog`)||t.includes(`cat`)||t.includes(`bird`)?`#fbbf24`:t.includes(`package`)||t.includes(`parcel`)?`#34d399`:t.includes(`audio`)||t.includes(`sound`)?`#f472b6`:t.includes(`motion`)?`#94a3b8`:`#71717a`}function dX(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}function fX(e,t){let n=new Date(e),r=new Date(t),a=String(n.getHours()).padStart(2,`0`),o=String(n.getMinutes()).padStart(2,`0`);return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()?`${a}:${o}`:`${String(n.getDate()).padStart(2,`0`)}/${String(n.getMonth()+1).padStart(2,`0`)} ${a}:${o}`}var pX=/[_\-/.]+/g;function mX(e){return e.toLowerCase().replace(pX,` `).replace(/\s+/g,` `).trim()}function hX(e){if(e===void 0)return[];let t=e.trim().toLowerCase();if(t.length===0)return[];let n=mX(e);return n===t||n.length===0?[t]:[t,n]}var gX=new Map;function _X(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function vX(e){return typeof e==`string`&&e.length>0?e:void 0}function yX(e){if(!Array.isArray(e))return[];let t=[];for(let n of e)typeof n==`string`&&n.length>0&&!t.includes(n)&&t.push(n);return t}function bX(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){let e=_X(n)?vX(n.label):void 0;e!==void 0&&!t.includes(e)&&t.push(e)}return t}function xX(e,t){if(!_X(e))return null;let n=vX(e.trackId),r=vX(e.className);if(n===void 0||r===void 0||typeof e.deviceId!=`number`||typeof e.firstSeen!=`number`||typeof e.lastSeen!=`number`)return null;let a=vX(e.label),o=vX(e.subLabel),s=vX(e.producingDeviceName),c=yX(e.classes);return{trackId:n,deviceId:e.deviceId,cameraName:t.get(e.deviceId)??`Camera ${e.deviceId}`,className:r,title:s??o??a??r,...a===void 0?{}:{label:a},...o===void 0?{}:{subLabel:o},...typeof e.importance==`number`?{importance:e.importance}:{},firstSeen:e.firstSeen,lastSeen:e.lastSeen,state:typeof e.state==`string`?e.state:`idle`,active:e.active===!0,zonesVisited:yX(e.zonesVisited),zoneNames:yX(e.zoneNames),classes:c.includes(r)?c:[r,...c],audioLabels:bX(e.audioLabels),bestEventId:vX(e.bestEventId)??n,...s===void 0?{}:{producingDeviceName:s}}}function SX(e,t){if(!Array.isArray(e))return[];let n=[];for(let r of e){let e=xX(r,t);e!==null&&n.push(e)}return n}function CX(e,t){let n=new Set;for(let r of[e.className,...e.classes])r.length!==0&&(n.add(r),n.add(rX(r,t)));if(e.audioLabels.length>0){n.add(eX);for(let t of e.audioLabels)n.add(iX(t))}return n}function wX(e,t,n=gX){if(t.size===0)return!0;let r=CX(e,n);for(let e of t)if(r.has(e))return!0;return!1}function TX(e,t=gX){let n=new Set,r=e=>{for(let t of hX(e))n.add(t)};for(let n of[e.className,...e.classes])r(n),n.length>0&&r(rX(n,t));r(e.label),r(e.subLabel),r(e.cameraName),r(e.producingDeviceName);for(let t of e.audioLabels)r(t),r(iX(t));for(let t of e.zoneNames)r(t);for(let n of[e.label,e.subLabel]){if(n===void 0)continue;let e=t.get(n.trim().toLowerCase());e!==void 0&&r(e)}return n}function EX(e,t,n=gX){let r=t.trim().toLowerCase();if(r.length===0)return!0;let a=mX(t);for(let t of TX(e,n))if(t.includes(r)||a.length>0&&t.includes(a))return!0;return!1}function DX(e,t,n,r=gX){let a=new Set(t);return e.filter(e=>wX(e,a,r)&&EX(e,n,r))}function OX(e,t){if(t)return``;let n=[e.title];for(let t of e.audioLabels)t!==e.className&&t!==e.label&&!n.includes(t)&&n.push(t);return n.join(` · `)}function kX(e,t){let n=!1,r=e.map(e=>{let r=t.get(e.deviceId);return r===void 0||r===e.cameraName?e:(n=!0,{...e,cameraName:r})});return n?r:e}function AX(e){let t=e.filter(e=>e.isCamera===!0).map(e=>e.id);return t.length>0?t:e.map(e=>e.id)}var jX=250,MX=new Map,NX=new Map,PX=5e3,FX=[250,750];function IX(e,t){for(MX.set(e,t);MX.size>jX;){let e=MX.keys().next();if(e.done===!0)break;let t=MX.get(e.value);MX.delete(e.value),t!==void 0&&URL.revokeObjectURL(t)}}async function LX(e,t){let n=MX.get(e);if(n!==void 0)return MX.delete(e),MX.set(e,n),n;let r=NX.get(e);if(r!==void 0)return r;let a=(async()=>{try{for(let n=0;n<=FX.length;n+=1){let r=new AbortController,a=setTimeout(()=>r.abort(),PX);try{let n=await fetch(e,{headers:{Authorization:`Bearer ${t}`},signal:r.signal});if(n.ok){let t=await n.blob(),r=URL.createObjectURL(t);return IX(e,r),r}if(n.status===401||n.status===403||n.status===404)return null}catch{}finally{clearTimeout(a)}let o=FX[n];o!==void 0&&await new Promise(e=>setTimeout(e,o))}return null}finally{NX.delete(e)}})();return NX.set(e,a),a}function RX(e,t){let[n,r]=(0,K.useState)({status:`loading`});return(0,K.useEffect)(()=>{if(e===null){r({status:`loading`});return}let n=MX.get(e);if(n!==void 0){r({status:`ready`,src:n});return}let a=!0;return r({status:`loading`}),LX(e,t).then(e=>{a&&r(e===null?{status:`failed`}:{status:`ready`,src:e})}),()=>{a=!1}},[e,t]),n}function zX(e){let t=e?.clientHeight??0;return t>0?t:600}function BX(e,t){let{root:n,disabled:r}=t,[a,o]=(0,K.useState)(r===!0),s=(0,K.useRef)(a);return s.current=a,(0,K.useEffect)(()=>{if(s.current)return;if(r===!0){o(!0);return}let t=e.current;if(!t||typeof IntersectionObserver!=`function`){o(!0);return}let a=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(o(!0),a.disconnect())},{root:n,rootMargin:`${zX(n)}px`});return a.observe(t),()=>a.disconnect()},[e,n,r]),a}var VX=`#f472b6`,HX=(0,K.memo)(function({row:e,serverUrl:t,token:n,thumbPx:r,width:a,heroPx:o,fields:s,palette:c,nowMs:l,variant:u,iconId:d,scrollRoot:f,eagerImages:p,onClick:m}){let h=(0,K.useRef)(null),g=RX(BX(h,{root:f,...p===!0?{disabled:!0}:{}})?$Y(t,e.bestEventId,r):null,n),_=uX(e.className),v=u===`reel`,y=e.title===e.className,b=s.label,x=OX(e,b),S=vq(d),ee=(0,q.jsxs)(`div`,{style:{position:`relative`,width:v?o:`100%`,height:v?o:void 0,aspectRatio:v?void 0:`1 / 1`,borderRadius:10,overflow:`hidden`,background:c.skeleton,border:`1px solid ${c.border}`,boxSizing:`border-box`,flex:`0 0 auto`},children:[(0,q.jsx)(`div`,{className:g.status===`loading`?`events-skeleton`:void 0,"data-testid":`card-image-backing`,style:{position:`absolute`,inset:0,background:g.status===`failed`?`${_}22`:c.skeleton,boxShadow:`inset 0 0 0 1px ${c.border}`}}),g.status===`ready`?(0,q.jsx)(`img`,{src:g.src,alt:``,draggable:!1,style:{position:`absolute`,inset:0,width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):null,s.label&&(0,q.jsxs)(`div`,{style:{position:`absolute`,left:4,right:4,bottom:4,display:`flex`,flexWrap:v?`nowrap`:`wrap`,gap:3,alignItems:`center`,pointerEvents:`none`},children:[y&&(0,q.jsx)(`span`,{"data-testid":`card-class-glyph`,title:e.className,style:{display:`inline-flex`,alignItems:`center`,justifyContent:`center`,background:`${_}E6`,color:`#fff`,borderRadius:4,padding:`2px 4px`,flex:`0 0 auto`},children:(0,q.jsx)(S,{size:13,color:`#fff`})}),e.title!==e.className&&(0,q.jsx)(`span`,{"data-testid":`card-title`,style:{background:`#000000B3`,color:`#fff`,fontSize:11,fontWeight:700,lineHeight:1.35,padding:`2px 6px`,borderRadius:4,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:e.title}),!v&&e.audioLabels.filter(t=>t!==e.className&&t!==e.label).map(e=>{let t=vq(iX(e));return(0,q.jsx)(`span`,{title:e,style:{display:`inline-flex`,alignItems:`center`,justifyContent:`center`,background:`${VX}E6`,color:`#fff`,borderRadius:4,padding:`2px 4px`,flex:`0 0 auto`},children:(0,q.jsx)(t,{size:13,color:`#fff`})},`audio-${e}`)})]}),s.badges&&e.active&&(0,q.jsx)(`span`,{title:`active`,style:{position:`absolute`,top:4,right:4,width:8,height:8,borderRadius:999,background:`#22c55e`,boxShadow:`0 0 0 2px rgba(0,0,0,0.35)`}}),s.badges&&!v&&e.importance!==void 0&&(0,q.jsxs)(`span`,{"data-testid":`card-importance`,style:{position:`absolute`,top:4,left:4,display:`inline-flex`,alignItems:`center`,gap:2,background:`#000000B3`,color:`#fff`,fontSize:10,fontWeight:700,fontVariantNumeric:`tabular-nums`,padding:`1px 5px`,borderRadius:8},children:[`★`,Math.round(e.importance*100)]})]});if(v)return(0,q.jsxs)(`button`,{ref:h,type:`button`,onClick:()=>m(e),"data-track-id":e.trackId,"data-device-id":e.deviceId,style:{width:a,display:`flex`,flexDirection:`column`,alignItems:`center`,padding:0,border:`none`,background:`transparent`,cursor:`pointer`,font:`inherit`,color:c.text,boxSizing:`border-box`},children:[ee,(0,q.jsxs)(`div`,{style:{paddingTop:3,paddingBottom:3,paddingLeft:4,paddingRight:4,display:`flex`,flexDirection:`column`,alignItems:`center`,maxWidth:`100%`,boxSizing:`border-box`},children:[s.camera&&e.producingDeviceName!==void 0&&(0,q.jsx)(`span`,{style:{fontSize:11,lineHeight:`14px`,fontWeight:600,maxWidth:`100%`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.producingDeviceName}),s.time&&(0,q.jsx)(`span`,{"data-testid":`card-time`,style:{fontSize:11,lineHeight:`14px`,color:c.textMuted,fontVariantNumeric:`tabular-nums`,whiteSpace:`nowrap`},children:dX(e.lastSeen)})]})]});let C=s.camera,w=e.producingDeviceName??e.cameraName,T=C||s.time||s.sublabel&&x.length>0;return(0,q.jsxs)(`button`,{ref:h,type:`button`,onClick:()=>m(e),"data-track-id":e.trackId,"data-device-id":e.deviceId,style:{width:a,display:`flex`,flexDirection:`column`,gap:4,padding:0,border:`none`,background:`transparent`,cursor:`pointer`,textAlign:`left`,font:`inherit`,color:c.text,boxSizing:`border-box`},children:[ee,T&&(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:1,minWidth:0,paddingTop:2,paddingBottom:2},children:[s.sublabel&&x.length>0&&(0,q.jsx)(`span`,{style:{fontSize:11,color:c.textMuted,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:x}),C&&(0,q.jsx)(`span`,{"data-testid":`card-camera`,title:w,style:{fontSize:12,fontWeight:600,lineHeight:`15px`,display:`-webkit-box`,WebkitLineClamp:2,WebkitBoxOrient:`vertical`,overflow:`hidden`},children:w}),s.time&&(0,q.jsx)(`span`,{"data-testid":`card-time`,style:{fontSize:11,lineHeight:`14px`,color:c.textMuted,fontVariantNumeric:`tabular-nums`,whiteSpace:`nowrap`,flex:`0 0 auto`},children:fX(e.lastSeen,l)}),s.badges&&e.zonesVisited.length>0&&(0,q.jsx)(`span`,{style:{fontSize:10,color:c.textMuted,background:c.chip,borderRadius:5,padding:`1px 5px`,alignSelf:`flex-start`,marginTop:2,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,maxWidth:`100%`},children:e.zonesVisited.join(` · `)})]})]})});function UX(e){return{listRecentTracks:t=>e.trpcClient.pipelineAnalytics.listRecentTracks.query(t),listDevices:()=>e.trpcClient.deviceManager.listAll.query({}),searchObjectEvents:t=>e.trpcClient.pipelineAnalytics.searchObjectEvents.query(t),listEventKinds:t=>e.trpcClient.pipelineAnalytics.listEventKindsBatch.query({deviceIds:t})}}var WX=2e3,GX=1e3;function KX(e,t){let n=Math.max(1,Math.floor(e)),r=Math.max(1,Math.floor(WX/Math.max(1,Math.floor(t))));return Math.min(n,GX,r)}function qX(e,t){return e.lastSeen===t.lastSeen?e.trackId===t.trackId?0:e.trackId<t.trackId?1:-1:t.lastSeen-e.lastSeen}var JX={rows:[],cursor:null,exhausted:!1};function YX(e,t){let n=new Map;for(let t of e)n.set(t.trackId,t);for(let e of t)n.set(e.trackId,e);return[...n.values()].sort(qX)}function XX(e,t,n){return{rows:YX(e.rows,t),cursor:n,exhausted:n===null}}function ZX(e,t,n){let r=new Set(e.rows.map(e=>e.trackId)),a=0;for(let e of t)r.has(e.trackId)||(a+=1);return{state:{...e,rows:YX(e.rows,t)},gap:n!==null,deltaCursor:n,added:a}}function QX(e){let t=e.rows[0];return t===void 0?null:t.lastSeen}function $X(e,t){return!e.exhausted&&e.rows.length<Math.max(1,t)}function eZ(e,t){return Math.max(0,e-Math.max(0,t))}function tZ(e){let t=e.sinceMs??eZ(e.anchorMs,e.maxAgeMs);return e.untilMs===void 0?{since:t}:{since:t,until:e.untilMs}}function nZ(e,t){return e===void 0||e>t}function rZ(e,t){return t===`time`?e:[...e].sort((e,t)=>{let n=e.importance??-1,r=t.importance??-1;return n===r?qX(e,t):r-n})}var iZ=1e4;function aZ(){try{return window.parent!==window}catch{return!0}}var oZ=null;function sZ(e){oZ=e}function cZ(e){if(oZ===null||typeof e!=`object`||!e)return e;let t=e;if(t.type!==`log`)return e;let n=typeof t.data==`object`&&t.data!==null?t.data:{};return{...t,data:{deviceId:oZ,...n}}}function lZ(e){let t=cZ(e),n=window.ReactNativeWebView;if(n){n.postMessage(JSON.stringify(t));return}aZ()&&window.parent.postMessage(t,`*`)}function uZ(e){let t=t=>{let n=t.data;if(typeof n!=`object`||!n)return;let r=n;r.type!==`embed-command`||typeof r.command!=`object`||r.command===null||e(r.command)};return window.addEventListener(`message`,t),()=>window.removeEventListener(`message`,t)}function dZ(e,t,n,r,a){let o=t();if(o!=null)return Promise.resolve(n(o));if(a?.urlFirst===!0){let e=r===void 0?null:r();if(e!==null)return Promise.resolve(e)}if(!aZ()){let t=r===void 0?null:r();return t===null?Promise.resolve({ok:!1,error:`config global for mode "${e}" is not set`}):Promise.resolve(t)}return new Promise(t=>{let r,a=e=>{let o=e.data;if(typeof o!=`object`||!o)return;let s=o;s.type===`embed-config`&&(clearTimeout(r),window.removeEventListener(`message`,a),t(n(s.config)))};window.addEventListener(`message`,a),r=setTimeout(()=>{window.removeEventListener(`message`,a),t({ok:!1,error:`config handshake timed out`})},iZ),window.parent.postMessage({type:`embed-ready`,mode:e},`*`)})}function fZ(e,t,n,r,a){let[o,s]=(0,K.useState)(null),c=(0,K.useRef)(t);c.current=t;let l=(0,K.useRef)(n);l.current=n;let u=(0,K.useRef)(r);u.current=r;let d=a?.urlFirst===!0;return(0,K.useEffect)(()=>{let t=!0;return dZ(e,()=>c.current(),e=>l.current(e),()=>u.current===void 0?null:u.current(),{urlFirst:d}).then(e=>{t&&s(e)}),()=>{t=!1}},[e,d]),o}var pZ=[`window`,`sort`,`semantic-search`,`macro-classes`,`device-names`,`heartbeat`];function mZ(e){return{v:1,type:`ready`,view:e,features:[...pZ]}}function hZ(e){return{v:1,type:`error`,message:e}}function gZ(e,t){return t===void 0?{v:1,type:`state`,state:e}:{v:1,type:`state`,state:e,message:t}}function _Z(e){return{v:1,type:`trackClick`,...e}}function vZ(e,t,n,r=`feed`){return{v:1,type:`countChanged`,loaded:e,shown:t,hasMore:n,mode:r}}function yZ(){return{v:1,type:`heartbeat`}}function bZ(e){lZ(e)}function xZ(e,t){lZ({type:`log`,scope:`events`,msg:e,...t===void 0?{}:{data:t}})}function SZ(e){if(typeof e!=`object`||!e)return null;let t=e,n=t.type;if(n===`refresh`||n===`reload`||n===`loadMore`||n===`scrollToTop`||n===`ping`)return{type:n};if(n===`setWindow`){let e=CZ.safeParse(t);return e.success?{type:`setWindow`,...e.data.sinceMs===void 0?{}:{sinceMs:e.data.sinceMs},...e.data.untilMs===void 0?{}:{untilMs:e.data.untilMs}}:null}if(n!==`setConfig`)return null;let r=zY.safeParse(t.patch);return r.success?{type:`setConfig`,patch:r.data}:null}var CZ=R({sinceMs:N().int().nonnegative().nullable().optional(),untilMs:N().int().nonnegative().nullable().optional()});function wZ(e){return{...e.sinceMs===void 0?{}:{sinceMs:e.sinceMs},...e.untilMs===void 0?{}:{untilMs:e.untilMs}}}function TZ(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function EZ(e){return typeof e==`string`&&e.length>0?e:void 0}function DZ(e,t){if(!TZ(e))return null;let n=EZ(e.id),r=EZ(e.className);if(n===void 0||r===void 0||typeof e.deviceId!=`number`||typeof e.timestamp!=`number`||typeof e.score!=`number`)return null;let a=EZ(e.trackId),o=EZ(e.mediaKey),s=EZ(e.label),c=EZ(e.subLabel);return{trackId:a??n,deviceId:e.deviceId,cameraName:t.get(e.deviceId)??`Camera ${e.deviceId}`,className:r,title:c??s??r,...s===void 0?{}:{label:s},...c===void 0?{}:{subLabel:c},...typeof e.importance==`number`?{importance:e.importance}:{},firstSeen:e.timestamp,lastSeen:e.timestamp,state:`idle`,active:!1,zonesVisited:[],zoneNames:[],classes:[r],audioLabels:[],bestEventId:o??a??n,score:e.score}}function OZ(e,t){if(!Array.isArray(e))return[];let n=new Map;for(let r of e){let e=DZ(r,t);if(e===null)continue;let a=n.get(e.trackId);(a===void 0||e.score>a.score)&&n.set(e.trackId,e)}return[...n.values()].sort((e,t)=>e.score===t.score?t.lastSeen-e.lastSeen:t.score-e.score)}function kZ(e,t){if(t.length===0)return e;let n=new Set(t.map(e=>e.trackId));return[...t,...e.filter(e=>!n.has(e.trackId))]}function AZ(e,t){if(e.length===0)return e;let n=Math.max(1,Math.floor(t.rowsPerColumn)),r=Math.max(1,t.cardWidth+t.gap),a=Math.max(0,Math.floor(Math.max(0,t.scrollLeft)/r)),o=t.viewportWidth>0?t.viewportWidth:t.cardWidth,s=Math.max(a+1,Math.ceil((Math.max(0,t.scrollLeft)+o*2)/r));return e.slice(a*n,Math.min(e.length,s*n))}var jZ=[`label`,`sublabel`,`camera`,`time`,`badges`];function MZ(e,t){let n=e.get(t);if(n===null||n.trim()===``)return;let r=Number.parseInt(n,10);return Number.isFinite(r)?r:void 0}function NZ(e){if(e===null)return;if(e.trim()===``)return[];let t=[];for(let n of e.split(`,`)){let e=Number.parseInt(n.trim(),10);Number.isFinite(e)&&e>=0&&t.push(e)}return t}function PZ(e){if(e!==null)return e.trim()===``?[]:e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}function FZ(e){if(e===null)return;let t=new Set((PZ(e)??[]).map(e=>e.toLowerCase())),n={};for(let e of jZ)n[e]=t.has(e.toLowerCase());return n}function IZ(e,t){let n=e.startsWith(`?`)?e.slice(1):e;for(let e of n.split(`&`)){if(e.length===0)continue;let n=e.indexOf(`=`);if((n===-1?e:e.slice(0,n))===t)return n===-1?``:e.slice(n+1)}return null}function LZ(e){if(e===null)return;let t={};if(e.trim()===``)return t;for(let n of e.split(`,`)){let e=n.indexOf(`:`);if(e<=0)continue;let r=n.slice(0,e).trim();if(!/^\d+$/.test(r))continue;let a;try{a=decodeURIComponent(n.slice(e+1))}catch{continue}a.trim().length!==0&&(t[r]=a)}return t}function RZ(e,t){let n=e.get(t);if(n===null)return;if(n.trim()===``)return null;let r=Number.parseInt(n,10);return Number.isFinite(r)&&r>=0?r:void 0}function zZ(e){if(e===null||e.trim()===``)return;if(e===`auto`)return`auto`;let t=Number.parseInt(e,10);return Number.isFinite(t)?t:void 0}function BZ(e){let t=e.startsWith(`#`)?e.slice(1):e;if(t.length===0)return null;let n=new URLSearchParams(t).get(`t`);return n!==null&&n.length>0?n:null}function VZ(e){let t=new URLSearchParams(e.startsWith(`?`)?e.slice(1):e),n=t.get(`v`);if(n===null)return null;if(Number.parseInt(n,10)!==1)return{ok:!1,error:`unsupported events URL version "${n}"`};let r={},a=t.get(`view`);a!==null&&(r.view=a);let o=MZ(t,`rows`);o!==void 0&&(r.rows=o);let s=zZ(t.get(`cols`));s!==void 0&&(r.columns=s);let c=t.get(`thumb`);c!==null&&(r.thumbSize=c);let l=FZ(t.get(`fields`));l!==void 0&&(r.fields=l);let u=NZ(t.get(`devices`));u!==void 0&&(r.deviceIds=u);let d=PZ(t.get(`classes`));d!==void 0&&(r.classes=d);let f=t.get(`q`);f!==null&&(r.search=f);let p=MZ(t,`page`);p!==void 0&&(r.pageSize=p);let m=MZ(t,`max`);m!==void 0&&(r.maxRows=m);let h=MZ(t,`refresh`);h!==void 0&&(r.refreshMs=h);let g=MZ(t,`age`);g!==void 0&&(r.maxAgeMs=g);let _=t.get(`theme`);_!==null&&(r.theme=_);let v=t.get(`sort`);v!==null&&(r.sort=v);let y=t.get(`smode`);y!==null&&(r.searchMode=y);let b=MZ(t,`slimit`);b!==void 0&&(r.semanticLimit=b);let x=t.get(`sscore`);if(x!==null&&x.trim()!==``){let e=Number.parseFloat(x);Number.isFinite(e)&&(r.semanticMinScore=e)}let S=RZ(t,`since`);S!==void 0&&(r.sinceMs=S);let ee=RZ(t,`until`);ee!==void 0&&(r.untilMs=ee);let C=LZ(IZ(e,`names`));C!==void 0&&(r.deviceNames=C);let w=zY.safeParse(r);return w.success?{ok:!0,patch:w.data}:{ok:!1,error:w.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `)}}function HZ(e,t,n){let r=VZ(e);if(r===null)return null;if(!r.ok)return{ok:!1,error:r.error};let a=BZ(t);return a===null?null:HY({serverUrl:n,token:a,fields:PY,...r.patch})}function UZ(){let e=HZ(location.search,location.hash,location.origin);return e!==null&&location.hash!==``&&history.replaceState(null,``,location.pathname+location.search),e}function WZ(){let e=VZ(location.search);return e===null||!e.ok?null:e.patch}function GZ(e,t){return!e.ok||t===null?e:{ok:!0,config:UY(e.config,t)}}var KZ=5,qZ=3,JZ=[300,900];function YZ(e){if(typeof e!=`object`||!e)return!1;let t=e;return`tracks`in t&&(t.nextCursor===null||typeof t.nextCursor==`string`)}function XZ(e){let{client:t,deviceIds:n,nameById:r,pageSize:a,maxRows:o,refreshMs:s,maxAgeMs:c}=e,{sinceMs:l,untilMs:u,devicesResolved:d}=e,[f,p]=(0,K.useState)(JX),[m,h]=(0,K.useState)(!1),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(null),[b,x]=(0,K.useState)(0),S=(0,K.useRef)(JX);S.current=f;let ee=(0,K.useRef)(!1),C=(0,K.useRef)(!1),w=(0,K.useRef)(0),T=(0,K.useRef)(null),E=(0,K.useRef)(Date.now()),te=(0,K.useRef)(r);te.current=r;let ne=n.join(`,`),D=(0,K.useCallback)(async e=>{try{let n=await t.listRecentTracks(e);return YZ(n)?{ok:!0,page:n}:{ok:!1,message:`unexpected response shape`}}catch(t){let n=t instanceof Error?t.message:String(t);return xZ(`listRecentTracks failed`,{error:n,devices:e.deviceIds.length,limit:e.limit,since:e.since,cursor:e.cursor??null}),{ok:!1,message:n}}},[t]),re=(0,K.useCallback)(()=>{if(ee.current){C.current=!0;return}let e=S.current;if(!$X(e,o)||n.length===0)return;ee.current=!0,_(!0);let t=KX(a,n.length),r=tZ({anchorMs:E.current,maxAgeMs:c,...l===void 0?{}:{sinceMs:l},...u===void 0?{}:{untilMs:u}});D({deviceIds:[...n],since:r.since,limit:t,projection:`slim`,...r.until===void 0?{}:{until:r.until},...e.cursor===null?{}:{cursor:e.cursor}}).then(e=>{if(e.ok){let t=SX(e.page.tracks,te.current),n=XX(S.current,t,e.page.nextCursor);S.current=n,p(n),w.current=0,y(null),h(!0);return}let t=w.current,n=JZ[t];if(t+1<qZ&&n!==void 0){w.current=t+1,xZ(`page failed — retrying`,{attempt:t+1,of:qZ,backoffMs:n}),T.current=setTimeout(()=>{T.current=null,O.current()},n);return}w.current=0,y(e.message),h(!0)}).finally(()=>{ee.current=!1,_(!1),C.current&&(C.current=!1,O.current())})},[D,n,ne,a,o,c,l,u]),O=(0,K.useRef)(re);O.current=re;let ie=(0,K.useCallback)(()=>{if(ee.current||n.length===0)return;let e=QX(S.current);if(e===null){se.current();return}ee.current=!0;let t=KX(a,n.length);(async()=>{let r=null,a=0,o=!0;for(;o&&a<KZ;){let s=await D({deviceIds:[...n],since:e,limit:t,projection:`slim`,...u===void 0?{}:{until:u},...r===null?{}:{cursor:r}});if(!s.ok)return;let c=s.page,l=SX(c.tracks,te.current),d=ZX(S.current,l,c.nextCursor);S.current=d.state,p(d.state),y(null),o=d.gap,r=d.deltaCursor,a+=1}o&&xZ(`delta drain hit its page bound — newer rows may be missing`,{since:e,pages:a,bound:KZ})})().finally(()=>{ee.current=!1,C.current&&(C.current=!1,O.current())})},[D,n,ne,a,re,u]),ae=(0,K.useCallback)(()=>{T.current!==null&&(clearTimeout(T.current),T.current=null),w.current=0},[]),oe=(0,K.useCallback)(()=>{ae(),y(null),h(!1),O.current()},[ae]),se=(0,K.useRef)(()=>{}),k=(0,K.useCallback)(()=>{ae(),E.current=Date.now(),C.current=!1,S.current=JX,p(JX),h(!1),_(!1),y(null),x(e=>e+1)},[]),ce=`${ne}|${c}|${l??``}|${u??``}`,le=(0,K.useRef)(ce);return(0,K.useEffect)(()=>{le.current!==ce&&(le.current=ce,!(S.current.rows.length===0&&!m)&&k())},[ce,k,m]),(0,K.useEffect)(()=>{if(n.length===0){d&&h(!0);return}re()},[b,ne,d]),(0,K.useEffect)(()=>{if(s<=0||n.length===0||!nZ(u,Date.now()))return;let e=setInterval(()=>ie(),s);return()=>clearInterval(e)},[s,ie,n.length,u]),se.current=oe,(0,K.useEffect)(()=>ae,[ae]),{rows:f.rows,retry:oe,loading:!m,loadingMore:g&&m,error:v,hasMore:$X(f,o),loadMore:re,refresh:ie,reload:k}}function ZZ(e){let{urls:t,token:n,paused:r,enabled:a}=e,o=(0,K.useRef)(0),s=(0,K.useRef)(0),c=(0,K.useRef)(!1),l=(0,K.useRef)(t),u=(0,K.useRef)(t[0]??``);l.current=t;let d=t[0]??``;u.current!==d&&(u.current=d,o.current=0),(0,K.useEffect)(()=>{if(c.current=!1,!a||r)return;let e=!1,t=()=>{if(!(e||c.current))for(;s.current<4;){let e=l.current,r=o.current;if(r>=e.length)return;o.current=r+1;let a=e[r];a===void 0||a.length===0||(s.current+=1,LX(a,n).finally(()=>{s.current=Math.max(0,s.current-1),t()}))}};return t(),()=>{e=!0,c.current=!0}},[a,r,n,t.length])}var QZ=.5,$Z=88;function eQ(e){return e<=0?0:Math.min(e*QZ,$Z)}function tQ(e){return e>=56}function nQ(e){let{root:t,onRefresh:n,enabled:r}=e,[a,o]=(0,K.useState)(0),s=(0,K.useRef)(null),c=(0,K.useRef)(0);c.current=a;let l=(0,K.useRef)(n);l.current=n;let u=(0,K.useCallback)(()=>{s.current=null,o(0)},[]);return(0,K.useEffect)(()=>{if(!r||t===null)return;let e=e=>{if(t.scrollTop>0){s.current=null;return}let n=e.touches[0];s.current=n===void 0?null:n.clientY},n=e=>{let n=s.current;if(n===null)return;let r=e.touches[0];if(r!==void 0){if(t.scrollTop>0){s.current=null,o(0);return}o(eQ(r.clientY-n))}},a=()=>{if(s.current===null)return;let e=c.current;u(),tQ(e)&&l.current()},d={passive:!0};return t.addEventListener(`touchstart`,e,d),t.addEventListener(`touchmove`,n,d),t.addEventListener(`touchend`,a,d),t.addEventListener(`touchcancel`,u,d),()=>{t.removeEventListener(`touchstart`,e),t.removeEventListener(`touchmove`,n),t.removeEventListener(`touchend`,a),t.removeEventListener(`touchcancel`,u)}},[t,r,u]),{distance:a,armed:tQ(a)}}var rQ=8,iQ=10,aQ=400,oQ=8;function sQ({message:e,palette:t}){return(0,K.useEffect)(()=>{bZ(hZ(e)),bZ(gZ(`error`,e))},[e]),(0,q.jsxs)(`div`,{style:{position:`fixed`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,background:t.background,color:`#f87171`,fontFamily:`system-ui, sans-serif`,fontSize:13,padding:16,textAlign:`center`},children:[`Events embed config error: `,e]})}function cQ({client:e,initialConfig:t}){let[n,r]=(0,K.useState)(t),[a,o]=(0,K.useState)(()=>window.matchMedia?.(`(prefers-color-scheme: dark)`).matches??!0),[s,c]=(0,K.useState)(()=>Date.now()),[l,u]=(0,K.useState)(null);(0,K.useEffect)(()=>{let t=!1;return e.listDevices().then(e=>{t||u(e)}).catch(()=>{t||u([])}),()=>{t=!0}},[e]);let d=(0,K.useMemo)(()=>{let e=new Map;for(let t of l??[])e.set(t.id,GY(t.id,t.name??`Camera ${t.id}`,n.deviceNames));for(let[t,r]of Object.entries(n.deviceNames)){let n=Number(t);Number.isInteger(n)&&!e.has(n)&&r.trim().length>0&&e.set(n,r)}return e},[l,n.deviceNames]),[f,p]=(0,K.useState)(()=>new Map),[m,h]=(0,K.useState)(()=>new Map),g=(0,K.useMemo)(()=>n.deviceIds.length>0?n.deviceIds:l===null?[]:AX(l),[n.deviceIds,l]);(0,K.useEffect)(()=>{if(g.length===0)return;let t=!1;return e.listEventKinds([...g]).then(e=>{t||(p(nX(e)),h(aX(e)))}).catch(()=>{xZ(`event-kind taxonomy unavailable — class filter is exact-id only`)}),()=>{t=!0}},[e,g]);let _=XZ({client:e,deviceIds:g,nameById:d,pageSize:n.pageSize,maxRows:n.maxRows,refreshMs:n.refreshMs,maxAgeMs:n.maxAgeMs,devicesResolved:n.deviceIds.length>0||l!==null,...n.sinceMs===void 0?{}:{sinceMs:n.sinceMs},...n.untilMs===void 0?{}:{untilMs:n.untilMs}}),v=n.searchMode===`semantic`?n.search.trim():``,[y,b]=(0,K.useState)({query:``,rows:[],loading:!1});(0,K.useEffect)(()=>{if(v.length===0||g.length===0){b({query:``,rows:[],loading:!1});return}let t=!1;return b(e=>({...e,query:v,loading:!0})),e.searchObjectEvents({text:v,limit:n.semanticLimit,minScore:n.semanticMinScore,...g.length===1&&g[0]!==void 0?{deviceId:g[0]}:{},...n.sinceMs===void 0?{}:{since:n.sinceMs},...n.untilMs===void 0?{}:{until:n.untilMs}}).then(e=>{t||b({query:v,rows:OZ(e,d),loading:!1})}).catch(e=>{t||(xZ(`searchObjectEvents failed`,{error:e instanceof Error?e.message:String(e)}),b({query:v,rows:[],loading:!1}))}),()=>{t=!0}},[e,v,g,d,n.semanticLimit,n.semanticMinScore,n.sinceMs,n.untilMs]);let x=v.length>0,S=(0,K.useMemo)(()=>kX(_.rows,d),[_.rows,d]),ee=(0,K.useMemo)(()=>kX(y.rows,d),[y.rows,d]),C=(0,K.useMemo)(()=>{let e=DX(S,n.classes,n.search,f);return x?kZ(rZ(DX(ee,n.classes,``,f),n.sort),e):rZ(e,n.sort)},[x,ee,S,n.classes,n.search,n.sort,f]),w=lX(n.theme,a),T=(0,K.useRef)(null),[E,te]=(0,K.useState)(null),ne=E!==null&&E.clientHeight===0&&E.clientWidth===0,D=(0,K.useRef)(null),re=(0,K.useRef)(_.loadMore);re.current=_.loadMore;let O=(0,K.useRef)(_.refresh);O.current=_.refresh;let ie=(0,K.useRef)(_.reload);ie.current=_.reload;let ae=(0,K.useCallback)(e=>{if(e.type===`setConfig`){r(t=>UY(t,e.patch));return}if(e.type===`setWindow`){r(t=>UY(t,wZ(e)));return}if(e.type===`refresh`){O.current();return}if(e.type===`reload`){ie.current();return}if(e.type===`loadMore`){re.current();return}if(e.type===`ping`){bZ(yZ());return}T.current?.scrollTo({top:0,left:0,behavior:`smooth`})},[]);(0,K.useEffect)(()=>(window.__camstackEvents={setConfig:e=>{let t=SZ({type:`setConfig`,patch:e});t!==null&&ae(t)},setWindow:e=>{let t=SZ({type:`setWindow`,...e});t!==null&&ae(t)},refresh:()=>ae({type:`refresh`}),reload:()=>ae({type:`reload`}),loadMore:()=>ae({type:`loadMore`}),scrollToTop:()=>ae({type:`scrollToTop`}),ping:()=>ae({type:`ping`})},uZ(e=>{let t=SZ(e);t!==null&&ae(t)})),[ae]),(0,K.useEffect)(()=>{bZ(mZ(n.view))},[]),(0,K.useEffect)(()=>{bZ(x?vZ(y.rows.length,C.length,!1,`semantic`):vZ(_.rows.length,C.length,_.hasMore,`feed`))},[_.rows.length,C.length,_.hasMore,x,y.rows.length]),(0,K.useEffect)(()=>{if(_.error!==null&&!x){bZ(gZ(`error`,_.error));return}if(x?y.loading:_.loading){bZ(gZ(`loading`));return}bZ(gZ(C.length===0?`empty`:`ready`))},[_.loading,_.error,C.length,x,y.loading]),(0,K.useEffect)(()=>{let e=window.matchMedia?.(`(prefers-color-scheme: dark)`);if(!e)return;let t=e=>o(e.matches);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,K.useEffect)(()=>{document.documentElement.style.colorScheme=w.colorScheme,document.body.style.background=w.background},[w]),(0,K.useEffect)(()=>{let e=`camstack-events-keyframes`;if(document.getElementById(e)!==null)return;let t=document.createElement(`style`);t.id=e,t.textContent=`@keyframes camstack-spin{to{transform:rotate(360deg)}}`,document.head.appendChild(t)},[]),(0,K.useEffect)(()=>{let e=setInterval(()=>c(Date.now()),6e4);return()=>clearInterval(e)},[]),(0,K.useEffect)(()=>{let e=T.current,t=D.current;if(!e||!t||x)return;let n=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&re.current()},{root:e,rootMargin:`${aQ}px`});return n.observe(t),()=>n.disconnect()},[n.view,_.hasMore,x]);let oe=(0,K.useRef)(0);(0,K.useEffect)(()=>{if(x||_.loading||_.loadingMore||!_.hasMore)return;let e=T.current;if(!e||C.length===0)return;let t=n.view===`reel`;if((t?e.clientWidth:e.clientHeight)!==0){if(t?e.scrollWidth>e.clientWidth+1:e.scrollHeight>e.clientHeight+1){oe.current=0;return}oe.current>=oQ||(oe.current+=1,re.current())}},[C.length,_.loading,_.loadingMore,_.hasMore,x,n.view]);let se=nQ({root:E,enabled:n.view===`gallery`&&!x,onRefresh:()=>O.current()}),k=BY(n.thumbSize),ce=VY(n.thumbSize,window.devicePixelRatio||1),le=n.view===`reel`,[ue,de]=(0,K.useState)(!1),[fe,pe]=(0,K.useState)({scrollLeft:0,viewportWidth:0});(0,K.useEffect)(()=>{let e=E;if(e===null)return;let t=null,n=()=>{pe({scrollLeft:e.scrollLeft,viewportWidth:e.clientWidth})},r=()=>{n(),de(!0),t!==null&&clearTimeout(t),t=setTimeout(()=>de(!1),250)};return n(),e.addEventListener(`scroll`,r,{passive:!0}),window.addEventListener(`resize`,n),()=>{e.removeEventListener(`scroll`,r),window.removeEventListener(`resize`,n),t!==null&&clearTimeout(t)}},[E]);let me=(0,K.useMemo)(()=>le?AZ(C,{scrollLeft:fe.scrollLeft,viewportWidth:fe.viewportWidth,cardWidth:k,gap:rQ,rowsPerColumn:n.rows}):C,[le,C,fe,k,n.rows]);ZZ({urls:(0,K.useMemo)(()=>me.map(e=>$Y(n.serverUrl,e.bestEventId,ce)),[me,n.serverUrl,ce]),token:n.token,paused:ue,enabled:!_.loading&&C.length>0});let he=(0,K.useCallback)(e=>{bZ(_Z({trackId:e.trackId,deviceId:e.deviceId,bestEventId:e.bestEventId,className:e.className,firstSeen:e.firstSeen,lastSeen:e.lastSeen}))},[]),ge=le?{display:`grid`,gridTemplateRows:`repeat(${n.rows}, max-content)`,gridAutoFlow:`column`,gridAutoColumns:`${k}px`,gap:rQ,alignContent:`start`}:{display:`grid`,gridTemplateColumns:n.columns===`auto`?`repeat(auto-fill, minmax(${k}px, 1fr))`:`repeat(${n.columns}, minmax(0, 1fr))`,gap:rQ,alignContent:`start`},_e=x?y.loading:_.loading,ve=!x&&_.loadingMore&&C.length>0,ye=!x&&!_.hasMore&&!_.loadingMore&&C.length>0,be=!x&&_.error!==null,xe=!_e&&!be&&C.length===0;return(0,q.jsxs)(`div`,{ref:e=>{T.current=e,te(t=>t===e?t:e)},"data-testid":`events-scroller`,style:{position:`fixed`,inset:0,background:w.background,color:w.text,fontFamily:`system-ui, -apple-system, sans-serif`,overflowX:le?`auto`:`hidden`,overflowY:le?`hidden`:`auto`,padding:le?`4px ${iQ}px`:iQ,boxSizing:`border-box`,WebkitOverflowScrolling:`touch`},children:[se.distance>0&&(0,q.jsx)(`div`,{"data-testid":`pull-indicator`,"data-armed":se.armed?`true`:`false`,"aria-hidden":!0,style:{position:`absolute`,top:Math.max(0,se.distance-28),left:0,right:0,display:`flex`,justifyContent:`center`,pointerEvents:`none`,zIndex:2,opacity:Math.min(1,se.distance/56)},children:(0,q.jsx)(`span`,{style:{width:22,height:22,borderRadius:999,border:`2px solid ${w.chip}`,borderTopColor:w.textMuted,background:w.card,boxShadow:`0 1px 4px rgba(0,0,0,0.25)`,transform:`rotate(${se.distance*4}deg)`,animation:_.loadingMore?`camstack-spin 700ms linear infinite`:void 0}})}),be&&(0,q.jsxs)(`div`,{"data-testid":`state-error`,style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,flexDirection:`column`,color:`#f87171`,fontSize:13,padding:16,textAlign:`center`},children:[(0,q.jsx)(`span`,{children:qY(n,`error`)}),(0,q.jsx)(`button`,{type:`button`,"data-testid":`state-retry`,onClick:()=>_.retry(),style:{marginTop:10,font:`inherit`,fontSize:12,color:w.text,background:w.card,border:`1px solid ${w.border}`,borderRadius:8,padding:`5px 14px`,cursor:`pointer`},children:qY(n,`retry`)})]}),xe&&(0,q.jsx)(`div`,{"data-testid":`state-empty`,style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,color:w.textMuted,fontSize:13},children:qY(n,`empty`)}),_e&&C.length===0&&(0,q.jsx)(`div`,{"data-testid":`state-loading`,style:ge,children:Array.from({length:le?8:12},(e,t)=>(0,q.jsx)(`div`,{style:{width:le?k:`100%`,height:le?k:void 0,aspectRatio:le?void 0:`1 / 1`,borderRadius:10,background:w.skeleton,border:`1px solid ${w.border}`,boxSizing:`border-box`,opacity:.6}},`skeleton-${t}`))}),(0,q.jsxs)(`div`,{style:ge,children:[C.map(e=>(0,q.jsx)(HX,{row:e,serverUrl:n.serverUrl,token:n.token,thumbPx:ce,width:le?`${k}px`:`100%`,heroPx:k,variant:le?`reel`:`gallery`,iconId:oX(e.className,m),scrollRoot:E,...ne?{eagerImages:!0}:{},fields:n.fields,palette:w,nowMs:s,onClick:he},e.trackId)),ve&&(0,q.jsx)(`div`,{"data-testid":`tail-loading`,"aria-label":`Loading more events`,style:{width:le?k:`100%`,height:le?k:void 0,aspectRatio:le?void 0:`1 / 1`,borderRadius:10,background:w.skeleton,border:`1px solid ${w.border}`,boxSizing:`border-box`,opacity:.6,display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,q.jsx)(`span`,{style:{width:14,height:14,borderRadius:999,border:`2px solid ${w.chip}`,borderTopColor:w.textMuted,animation:`camstack-spin 700ms linear infinite`}})}),ye&&(0,q.jsx)(`div`,{"data-testid":`tail-end`,style:{display:`flex`,alignItems:`center`,justifyContent:`center`,color:w.textMuted,fontSize:11,opacity:.75,padding:le?`0 12px`:`10px 0`,width:le?`max-content`:`100%`,height:le?k:void 0,gridColumn:le?`auto`:`1 / -1`,whiteSpace:`nowrap`},children:qY(n,`end`)}),(0,q.jsx)(`div`,{ref:D,style:{width:1,height:1,gridRow:le?1:`auto`},"aria-hidden":!0})]})]})}function lQ(){let e=fZ(`events`,()=>window.__CAMSTACK_EVENTS__,HY,UZ,{urlFirst:!0}),t=(0,K.useMemo)(()=>WZ(),[]),n=(0,K.useMemo)(()=>e===null?null:GZ(e,t),[e,t]),r=(0,K.useMemo)(()=>{if(n===null||!n.ok)return null;let e=DA({serverUrl:n.config.serverUrl,token:n.config.token});return{system:e,client:UX(e)}},[n]);(0,K.useEffect)(()=>{if(r)return()=>r.system.close()},[r]);let a=lX(n!==null&&n.ok?n.config.theme:`auto`,window.matchMedia?.(`(prefers-color-scheme: dark)`).matches??!0);return n===null?null:n.ok?r?(0,q.jsx)(cQ,{client:r.client,initialConfig:n.config}):(0,q.jsx)(sQ,{message:`Failed to initialise the events embed`,palette:a}):(0,q.jsx)(sQ,{message:n.error,palette:a})}var uQ=B([`auto`,`high`,`medium`,`low`]),dQ=wc([V(`auto`),N().int().min(1)]),fQ=R({enabled:P(),motion:P(),motionHoldSec:N().optional(),audio:B([`off`,`sensor`,`level`]),audioDb:N(),audioHoldSec:N(),detection:P(),detectionHoldSec:N(),detectionClasses:L(M()).optional(),appearance:R({motionColor:M(),audioColor:M(),detectionColor:M(),thickness:N()}).optional()}),pQ=R({serverUrl:M().min(1),token:M().min(1),devices:L(N().int().nonnegative()).min(1),layout:dQ,quality:uQ,showName:P(),showBadges:P(),muted:P(),paused:P(),highlight:fQ.optional(),activeOnly:P().optional(),showBoxes:P().optional(),audioOnIds:L(N().int().nonnegative()).optional(),pausedIds:L(N().int().nonnegative()).optional(),snapshots:z(M(),M()).optional(),ptzIds:L(N().int().nonnegative()).optional()});function mQ(e){if(e==null)return{ok:!1,error:`config is required`};let t=pQ.safeParse(e);return t.success?{ok:!0,config:t.data}:{ok:!1,error:t.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `)}}var hQ=B([`auto`,`high`,`medium`,`low`]),gQ=wc([V(`auto`),N().int().min(1)]),_Q=R({enabled:P(),motion:P(),audio:B([`off`,`sensor`,`level`]),audioDb:N(),audioHoldSec:N(),detection:P(),detectionHoldSec:N(),detectionClasses:L(M()).optional(),appearance:R({motionColor:M(),audioColor:M(),detectionColor:M(),thickness:N()}).optional()}),vQ=R({devices:L(N().int().nonnegative()).min(1),layout:gQ,quality:hQ,showName:P(),audioOnIds:L(N().int().nonnegative()).optional(),activeOnly:P().optional(),boxes:P().optional(),highlight:_Q.optional()}),yQ=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`;function bQ(e){let t=``,n=0;for(;n<e.length;){let r=e[n];if(r===void 0)return null;let a,o;if(r<128)a=r,o=0;else if((r&224)==192)a=r&31,o=1;else if((r&240)==224)a=r&15,o=2;else if((r&248)==240)a=r&7,o=3;else return null;for(let t=1;t<=o;t++){let r=e[n+t];if(r===void 0||(r&192)!=128)return null;a=a<<6|r&63}n+=o+1,t+=String.fromCodePoint(a)}return t}function xQ(e){if(e.length%4==1)return null;let t=[];for(let n of e){let e=yQ.indexOf(n);if(e<0)return null;t.push(e)}let n=[];for(let e=0;e<t.length;e+=4){let r=t[e],a=t[e+1];if(r===void 0||a===void 0)return null;let o=t[e+2],s=t[e+3];n.push(r<<2|a>>4),o!==void 0&&n.push((a&15)<<4|o>>2),s!==void 0&&o!==void 0&&n.push((o&3)<<6|s)}let r=bQ(n);if(r===null)return null;try{return JSON.parse(r)}catch{return null}}function SQ(e,t){return e.startsWith(t)?e.slice(t.length):e}function CQ(e){let t=new URLSearchParams(SQ(e,`#`)).get(`t`);return t!==null&&t.length>0?t:null}function wQ(e,t){return new URLSearchParams(SQ(e,`?`)).has(`v`)||CQ(t)!==null}function TQ(e){if(e.length===0)return null;let t=[];for(let n of e.split(`,`)){if(!/^\d+$/.test(n))return null;t.push(Number(n))}return t}function EQ(e){return{ok:!1,error:e}}function DQ(e,t){let n=new URLSearchParams(SQ(e,`?`)),r=n.get(`mode`);if(r!==null&&r!==`grid`)return EQ(`unsupported mode "${r}"`);let a=n.get(`v`);if(a===null)return EQ(`missing share-link version (v)`);if(a!==`1`)return EQ(`unsupported share-link version "${a}"`);let o=n.get(`devices`),s=o===null?null:TQ(o);if(s===null||s.length===0)return EQ(`invalid or missing devices list`);let c=n.get(`layout`),l;if(c===null||c===`auto`)l=`auto`;else if(/^\d+$/.test(c)&&Number(c)>=1)l=Number(c);else return EQ(`invalid layout "${c}"`);let u=n.get(`q`)??`auto`,d=hQ.safeParse(u);if(!d.success)return EQ(`invalid quality "${u}"`);let f=n.get(`names`)??`0`;if(f!==`0`&&f!==`1`)return EQ(`invalid names flag "${f}"`);let p=n.get(`audio`),m;if(p!==null){let e=TQ(p);if(e===null)return EQ(`invalid audio list "${p}"`);m=e}let h=n.get(`activeOnly`);if(h!==null&&h!==`0`&&h!==`1`)return EQ(`invalid activeOnly flag "${h}"`);let g=h===`1`,_=n.get(`boxes`);if(_!==null&&_!==`0`&&_!==`1`)return EQ(`invalid boxes flag "${_}"`);let v=_===`1`,y=n.get(`hl`),b;if(y!==null){let e=xQ(y),t=_Q.safeParse(e);if(e===null||!t.success)return EQ(`invalid highlight config (hl)`);b=t.data}let x={devices:[...s],layout:l,quality:d.data,showName:f===`1`,...m!==void 0&&m.length>0?{audioOnIds:[...m]}:{},...g?{activeOnly:!0}:{},...v?{boxes:!0}:{},...b===void 0?{}:{highlight:b}},S=vQ.safeParse(x);return S.success?{ok:!0,params:S.data,token:CQ(t)}:EQ(S.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `))}function OQ(e,t,n){if(!wQ(e,t))return null;let r=DQ(e,t);if(!r.ok)return{ok:!1,error:r.error};if(r.token===null)return{ok:!1,error:`share token missing — the link must end with #t=<token>`};let a=r.params;return mQ({serverUrl:n,token:r.token,devices:[...a.devices],layout:a.layout,quality:a.quality,showName:a.showName,showBadges:!0,muted:!0,paused:!1,...a.highlight===void 0?{}:{highlight:a.highlight},...a.activeOnly===!0?{activeOnly:!0}:{},...a.boxes===!0?{showBoxes:!0}:{},...a.audioOnIds!==void 0&&a.audioOnIds.length>0?{audioOnIds:[...a.audioOnIds]}:{}})}function kQ(){let e=OQ(location.search,location.hash,location.origin);return e!==null&&location.hash!==``&&history.replaceState(null,``,location.pathname+location.search),e}var AQ=16/9;function jQ(e,t,n,r){if(e<=0||t<=0||n<=0)return{cols:0,rows:0,cellW:0,cellH:0};if(typeof r==`number`&&r>=1){let a=Math.floor(r),o=Math.ceil(e/a),s=Math.min(t/a,n/o*AQ);return{cols:a,rows:o,cellW:s,cellH:s/AQ}}let a={cols:1,rows:e,cellW:0,cellH:0},o=-1;for(let r=1;r<=e;r++){let s=Math.ceil(e/r),c=Math.min(t/r,n/s*AQ),l=c/AQ,u=c*l;u>o&&(o=u,a={cols:r,rows:s,cellW:c,cellH:l})}return a}function MQ(){let[e,t]=(0,K.useState)(null),[n,r]=(0,K.useState)(`idle`),a=(0,K.useRef)(null),o=(0,K.useRef)(null),s=(0,K.useRef)(null),c=(0,K.useRef)(0),l=(0,K.useRef)(null),u=HH(),d=UH(),f=WH(),p=(0,K.useRef)({start:u.mutateAsync,answer:d.mutateAsync,stop:f.mutateAsync});p.current={start:u.mutateAsync,answer:d.mutateAsync,stop:f.mutateAsync};let m=(0,K.useCallback)(()=>{if(a.current){try{a.current.close()}catch{}a.current=null}if(o.current){for(let e of o.current.getTracks())try{e.stop()}catch{}o.current=null}},[]),h=(0,K.useCallback)(async()=>{let e=s.current;if(s.current=null,m(),e)try{await p.current.stop({deviceId:e.deviceId,sessionId:e.sessionId})}catch{}},[m]),g=(0,K.useCallback)(async e=>{if(l.current===e){c.current+=1,l.current=null,t(null),r(`idle`),await h();return}c.current+=1;let n=c.current;l.current=e,t(e),r(`starting`);let u;try{u=await navigator.mediaDevices.getUserMedia({audio:!0,video:!1})}catch{n===c.current&&(l.current=null,t(null),r(`error`));return}if(n!==c.current){for(let e of u.getTracks())e.stop();return}if(await h(),n!==c.current){for(let e of u.getTracks())e.stop();return}let d=null;try{o.current=u;let f=await p.current.start({deviceId:e});if(n!==c.current){try{await p.current.stop({deviceId:e,sessionId:f.sessionId})}catch{}m();return}s.current={deviceId:e,sessionId:f.sessionId},d=new RTCPeerConnection,a.current=d,d.oniceconnectionstatechange=()=>{if(n!==c.current||!d)return;let e=d.iceConnectionState;e===`connected`||e===`completed`?r(`talking`):(e===`failed`||e===`closed`||e===`disconnected`)&&(l.current=null,t(null),r(`idle`),h())};for(let e of u.getAudioTracks())d.addTrack(e,u);await d.setRemoteDescription({type:`offer`,sdp:f.sdpOffer});let g=await d.createAnswer();if(await d.setLocalDescription(g),n!==c.current)return;await p.current.answer({deviceId:e,sessionId:f.sessionId,sdpAnswer:d.localDescription?.sdp??g.sdp??``})}catch{if(d)try{d.close()}catch{}m();let e=s.current;if(s.current=null,e)try{await p.current.stop({deviceId:e.deviceId,sessionId:e.sessionId})}catch{}n===c.current&&(l.current=null,t(null),r(`error`))}},[h,m]),_=(0,K.useCallback)(e=>{if(e===null){c.current+=1,l.current=null,t(null),r(`idle`),h();return}l.current!==e&&g(e)},[h,g]);return(0,K.useEffect)(()=>()=>{c.current+=1,h()},[h]),{activeMicId:e,micState:n,toggleMic:e=>{g(e)},setActiveMic:_}}var NQ=6e3,PQ=500;function FQ(e,t){let n=(0,K.useRef)(new Map),[,r]=(0,K.useState)(0),a=t?.motion??!1,o=t?.audio??`off`,s=t?.audioDb??-30,c=t?.audioHoldSec??3,l=t?.detection??!1,u=t?.detectionHoldSec??3,d=t?.detectionClasses??[],f=(e,t)=>{n.current.set(e,Date.now()+t),r(e=>e+1)};dH(qt.MotionOnMotionChanged,e=>{if(!a)return;let t=e.data;t&&t.detected&&f(t.deviceId,NQ)}),dH(qt.PipelineAudioInferenceResult,e=>{if(o===`off`)return;let t=e.data;t&&(o===`sensor`?t.frame.detections.length>0:(t.frame.level?.dbfs??-1/0)>=s)&&f(t.deviceId,c*1e3)}),dH(qt.DetectionResult,e=>{if(!l)return;let t=e.data;t&&t.frame.detections.some(e=>d.length===0||d.includes(e.macroClass))&&f(t.frame.deviceId,u*1e3)}),(0,K.useEffect)(()=>{let e=setInterval(()=>r(e=>e+1),PQ);return()=>clearInterval(e)},[]);let p=Date.now(),m=new Set;for(let t of e){let e=n.current.get(t);e!==void 0&&p<e&&m.add(t)}return m}function IQ(e){return{type:`tileOpen`,deviceId:e}}function LQ(e){return{type:`audioToggle`,deviceId:e}}function RQ(e){return{type:`pauseToggle`,deviceId:e}}function zQ(e){return{type:`ptzOpen`,deviceId:e}}function BQ(e,t){return t===void 0?{type:`state`,state:e}:{type:`state`,state:e,message:t}}function VQ(e){return{type:`layout`,tiles:e}}function HQ(e){lZ(e)}var UQ=1e4,WQ=1e3,GQ=[0,5e3,15e3,3e4];function KQ(e){return GQ[Math.max(0,Math.min(e,GQ.length-1))]??0}function qQ(e){return!e.playing||e.lastFrameAt===null?!1:e.nowMs-e.lastFrameAt>=e.stallMs}function JQ(e){let{containerRef:t,playing:n,onRecover:r,stallMs:a=UQ}=e,o=e.now??Date.now,[s,c]=(0,K.useState)({recovering:!1,attempts:0}),l=(0,K.useRef)(null),u=(0,K.useRef)(0),d=(0,K.useRef)(0),f=(0,K.useRef)(r);f.current=r;let p=(0,K.useRef)(o);p.current=o;let m=(0,K.useCallback)(()=>{let e=p.current(),t=l.current;l.current=e,u.current>0&&t!==null&&e-t<a&&(u.current=0,c({recovering:!1,attempts:0}))},[a]);return(0,K.useEffect)(()=>{if(!n){l.current=null;return}let e=t.current?.querySelector(`video`);if(!e)return;let r=!1,a=null;if(typeof e.requestVideoFrameCallback==`function`){let t=()=>{r||(m(),a=e.requestVideoFrameCallback?.(t)??null)};return a=e.requestVideoFrameCallback(t),()=>{r=!0,a!==null&&e.cancelVideoFrameCallback?.(a)}}let o=e.currentTime,s=setInterval(()=>{if(r)return;let t=e.currentTime;t!==o&&(o=t,m())},WQ);return()=>{r=!0,clearInterval(s)}},[n,t,m]),(0,K.useEffect)(()=>{if(!n)return;let e=setInterval(()=>{let e=p.current();if(e<d.current||!qQ({lastFrameAt:l.current,nowMs:e,stallMs:a,playing:n})||u.current>=4)return;let t=u.current;u.current=t+1,l.current=e,d.current=e+KQ(t+1)+a,c({recovering:!0,attempts:t+1}),f.current()},WQ);return()=>clearInterval(e)},[n,a]),s}var YQ=500;function XQ(e,t,n){let{motion:r,detection:a}=SY(e.trpcClient,t),o=(0,K.useRef)(0),s=(0,K.useRef)(0),c=(0,K.useRef)(0),l=(0,K.useRef)(!1),[,u]=(0,K.useState)(0),d=n?.audio??`off`,f=n?.audioDb??-30,p=n?.audioHoldSec??3,m=n?.motionHoldSec??0,h=n?.detectionHoldSec??3,g=n?.detectionClasses??[],_=g.join(`,`);if(dH(qt.MotionOnMotionChanged,e=>{let r=e.data;!r||r.deviceId!==t||!n?.motion||(r.detected===!0?(c.current=Date.now()+Math.max(1,m)*1e3,l.current=!0,u(e=>e+1)):r.detected===!1&&l.current&&(c.current=Date.now()+m*1e3,l.current=!1,u(e=>e+1)))}),dH(qt.PipelineAudioInferenceResult,e=>{let n=e.data;!n||n.deviceId!==t||d===`off`||(d===`sensor`?n.frame.detections.length>0:(n.frame.level?.dbfs??-1/0)>=f)&&(o.current=Date.now()+p*1e3,u(e=>e+1))}),(0,K.useEffect)(()=>{a&&a.detections.some(e=>g.length===0||g.includes(e.macroClass))&&(s.current=Date.now()+h*1e3,u(e=>e+1))},[a,h,_]),(0,K.useEffect)(()=>{let e=r!==null;(e||l.current)&&(c.current=Date.now()+m*1e3,e||u(e=>e+1)),l.current=e},[r,m]),(0,K.useEffect)(()=>{let e=setInterval(()=>u(e=>e+1),YQ);return()=>clearInterval(e)},[]),!n?.enabled)return null;let v=Date.now();return n.detection&&v<s.current?`detection`:d!==`off`&&v<o.current?`audio`:n.motion&&(r!==null||v<c.current)?`motion`:null}var ZQ={motion:`#DC2626`,audio:`#3B82F6`,detection:`#22C55E`},QQ=2500,$Q={person:`#f59e0b`,vehicle:`#3b82f6`,animal:`#22c55e`,face:`#a855f7`,plate:`#ec4899`},e$=`#ef4444`;function t$(e){return $Q[e]??e$}function n$(e){return e<0?0:e>1?1:e}function r$(e){if(e.width<=0||e.height<=0)return[];let t=[];for(let n of e.detections){let{bbox:r}=n,a=n$(r.x/e.width),o=n$(r.y/e.height),s=n$((r.x+r.width)/e.width),c=n$((r.y+r.height)/e.height);s<=a||c<=o||t.push({label:n.macroClass,score:n.score,x1:a,y1:o,x2:s,y2:c})}return t}function i$({deviceId:e}){let[t,n]=(0,K.useState)([]),r=(0,K.useRef)(void 0);return dH(qt.DetectionResult,t=>{let a=t.data;!a||a.frame.deviceId!==e||(n(r$(a.frame)),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>n([]),QQ))}),(0,K.useEffect)(()=>()=>{r.current&&clearTimeout(r.current),n([])},[e]),t.length===0?null:(0,q.jsx)(`div`,{style:{position:`absolute`,inset:0,overflow:`hidden`,pointerEvents:`none`},children:t.map((e,t)=>{let n=t$(e.label),r=Math.round(e.score*100);return(0,q.jsx)(`div`,{style:{position:`absolute`,left:`${e.x1*100}%`,top:`${e.y1*100}%`,width:`${(e.x2-e.x1)*100}%`,height:`${(e.y2-e.y1)*100}%`,border:`2px solid ${n}`,borderRadius:3},children:(0,q.jsx)(`span`,{style:{position:`absolute`,left:-2,bottom:`100%`,background:n,color:`#fff`,fontSize:10,fontWeight:700,fontFamily:`system-ui, sans-serif`,lineHeight:`14px`,padding:`0 4px`,borderRadius:3,whiteSpace:`nowrap`},children:`${e.label} ${r}%`})},`${e.label}-${t}`)})})}function a$(e,t,n,r){let a=Number.isFinite(e)&&e>0?e:0,o=Number.isFinite(t)&&t>0?t:0;if(!Number.isFinite(n)||!Number.isFinite(r)||n<=0||r<=0)return{width:a,height:o};let s=Math.min(a/n,o/r);return{width:n*s,height:r*s}}function o$(e,t,n){return!Number.isFinite(e)||!Number.isFinite(t)||!Number.isFinite(n)?0:Math.max(0,(n*t-e)/2)}function s$(e,t,n,r){if(!Number.isFinite(e))return 0;let a=o$(t,n,r);return Math.max(-a,Math.min(a,e))}var c$=4,l$=8,u$=300;function d$(e,t){return Math.hypot(e.x-t.x,e.y-t.y)}function f$({children:e,onTap:t}){let n=(0,K.useRef)(null),r=(0,K.useRef)(null),a=(0,K.useRef)(new Map),o=(0,K.useRef)(1),s=(0,K.useRef)(0),c=(0,K.useRef)(0),l=(0,K.useRef)(null),u=(0,K.useRef)(null),d=(0,K.useRef)(0),f=()=>{let e=r.current;e&&(e.style.transform=`translate(${s.current}px, ${c.current}px) scale(${o.current})`)},p=()=>{let e=n.current?.getBoundingClientRect();if(!e||e.width<=0||e.height<=0)return;let t=r.current?.querySelector(`video`)??null,a=t?null:r.current?.querySelector(`img`)??null,l=t?.videoWidth??a?.naturalWidth??0,u=t?.videoHeight??a?.naturalHeight??0,d=a$(e.width,e.height,l,u);s.current=s$(s.current,e.width,d.width,o.current),c.current=s$(c.current,e.height,d.height,o.current)},m=()=>{o.current=1,s.current=0,c.current=0,f()},h=e=>{try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}if(a.current.set(e.pointerId,{x:e.clientX,y:e.clientY}),a.current.size===2){let e=[...a.current.values()],t=e[0],n=e[1];t&&n&&(l.current={dist:d$(t,n),scale:o.current,cx:(t.x+n.x)/2,cy:(t.y+n.y)/2,tx:s.current,ty:c.current}),u.current=null}else a.current.size===1&&(u.current={x:e.clientX,y:e.clientY,tx:s.current,ty:c.current,moved:!1})},g=e=>{if(!a.current.has(e.pointerId))return;if(a.current.set(e.pointerId,{x:e.clientX,y:e.clientY}),a.current.size>=2&&l.current){let e=[...a.current.values()],t=e[0],n=e[1];if(!t||!n)return;let r=d$(t,n);l.current.dist>0&&(o.current=Math.max(1,Math.min(c$,l.current.scale*(r/l.current.dist))));let u=(t.x+n.x)/2,d=(t.y+n.y)/2;s.current=l.current.tx+(u-l.current.cx),c.current=l.current.ty+(d-l.current.cy),p(),f();return}let t=u.current;if(a.current.size===1&&t){let n=e.clientX-t.x,r=e.clientY-t.y;(Math.abs(n)>l$||Math.abs(r)>l$)&&(t.moved=!0),o.current>1&&(s.current=t.tx+n,c.current=t.ty+r,p(),f())}},_=e=>{let n=a.current.size===1,r=u.current;if(a.current.delete(e.pointerId),a.current.size<2&&(l.current=null),a.current.size===0&&(u.current=null,n&&r&&!r.moved)){let e=Date.now();e-d.current<u$?(d.current=0,m()):(d.current=e,t())}};return(0,q.jsx)(`div`,{ref:n,style:{position:`absolute`,inset:0,overflow:`hidden`,touchAction:`none`},onPointerDown:h,onPointerMove:g,onPointerUp:_,onPointerCancel:_,children:(0,q.jsx)(`div`,{ref:r,style:{width:`100%`,height:`100%`,transformOrigin:`center center`,willChange:`transform`},children:e})})}var p$=3500;function m$(e){return e===`auto`?{kind:`adaptive`}:{kind:`profile`,profile:e===`medium`?`mid`:e}}function h$({system:e,deviceId:t,name:n,online:r,quality:a,muted:o,paused:s,showName:c,audioActive:l,micActive:u,onTogglePause:d,onToggleAudio:f,onToggleMic:p,onOpen:m,ptzSupported:h,onPtz:g,highlight:_,showBoxes:v,reconnectSignal:y,onStall:b,posterUrl:x}){let{handleOffer:S,getIceServers:ee,addIceCandidate:C,getIceCandidates:w,closeSession:T,getSessionState:E}=kY(e.trpcClient,t),te=XQ(e,t,_),ne=(0,K.useRef)(null),[D,re]=(0,K.useState)(0),[O,ie]=(0,K.useState)(`idle`),ae=JQ({containerRef:ne,playing:O===`playing`&&!s,onRecover:()=>{re(e=>e+1),b?.(t)}}),[oe,se]=(0,K.useState)(void 0);(0,K.useEffect)(()=>{if(x||s)return;let n=!1;return e.trpcClient.snapshot.getSnapshot.query({deviceId:t}).then(e=>{!n&&e?.base64&&se(`data:${e.contentType??`image/jpeg`};base64,${e.base64}`)}).catch(()=>{}),()=>{n=!0}},[x,s,e,t]);let k=x??oe,ce=(0,K.useMemo)(()=>m$(a),[a]),le=`grid:${t}:${a}`,ue=(0,K.useMemo)(()=>(e,t)=>S(ce,e,t),[S,ce]),de=(0,K.useMemo)(()=>(e,t,n)=>S(n,t,e),[S]),[fe,pe]=(0,K.useState)(!1),me=(0,K.useRef)(null),he=()=>{me.current&&clearTimeout(me.current),me.current=setTimeout(()=>pe(!1),p$)},ge=()=>{pe(!0),he()},_e=()=>{pe(e=>{let t=!e;return t&&he(),t})},ve=e=>{e.stopPropagation(),ge()};return(0,K.useEffect)(()=>()=>{me.current&&clearTimeout(me.current)},[]),(0,q.jsxs)(`div`,{ref:ne,"data-stall-recovering":ae.recovering?`true`:void 0,style:{position:`relative`,width:`100%`,height:`100%`,background:`#000`},children:[(0,q.jsx)(f$,{onTap:_e,children:s?(0,q.jsx)(`div`,{style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,color:`#fafaf9`},children:(0,q.jsx)(v$,{size:28})}):(0,q.jsx)(uY,{serverUrl:e.serverUrl,streamKey:le,autoPlay:!0,muted:o,showControls:!1,className:`w-full h-full`,handleOffer:ue,reoffer:de,getSessionState:E,getIceServers:ee,addIceCandidate:C,getIceCandidates:w,closeSession:T,reconnectSignal:(y??0)+D,onStateChange:ie,posterUrl:k,onClientNetworkSample:a===`auto`?n=>{e.trpcClient.networkQuality.reportClientStats.mutate({deviceId:t,...n}).catch(()=>{})}:void 0},le)}),v&&!s?(0,q.jsx)(i$,{deviceId:t}):null,te&&(()=>{let e=_?.appearance,t=te===`motion`?e?.motionColor??ZQ.motion:te===`audio`?e?.audioColor??ZQ.audio:e?.detectionColor??ZQ.detection;return(0,q.jsx)(`div`,{style:{position:`absolute`,inset:0,border:`${e?.thickness??3}px solid ${t}`,boxShadow:`inset 0 0 12px ${t}`,pointerEvents:`none`}})})(),(c||fe)&&(0,q.jsxs)(`div`,{style:{position:`absolute`,left:0,right:0,top:0,display:`flex`,alignItems:`center`,gap:6,padding:`4px 8px`,background:`rgba(0,0,0,0.6)`,color:`#fafaf9`,fontSize:12,fontWeight:600,fontFamily:`system-ui, sans-serif`,pointerEvents:`none`,opacity:c||fe?1:0,transition:`opacity 150ms ease`},children:[(0,q.jsx)(`span`,{style:{width:8,height:8,borderRadius:4,background:r?`#34d399`:`#71717a`}}),(0,q.jsx)(`span`,{style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:n})]}),(0,q.jsxs)(`div`,{style:{position:`absolute`,inset:0,opacity:+!!fe,transition:`opacity 150ms ease`,pointerEvents:`none`},children:[(0,q.jsx)(`div`,{style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,pointerEvents:`none`},children:(0,q.jsx)(g$,{label:s?`Play`:`Pause`,big:!0,enabled:fe,onClick:e=>{ve(e),d(t)},children:s?(0,q.jsx)(v$,{size:22}):(0,q.jsx)(y$,{size:22})})}),(0,q.jsxs)(`div`,{style:{position:`absolute`,left:8,bottom:8,display:`flex`,gap:8,pointerEvents:`none`},children:[(0,q.jsx)(g$,{label:l?`Mute`:`Listen`,active:l,enabled:fe,onClick:e=>{ve(e),f(t)},children:l?(0,q.jsx)(b$,{size:18}):(0,q.jsx)(x$,{size:18})}),(0,q.jsx)(g$,{label:u?`Stop talk`:`Talk`,active:u,enabled:fe,onClick:e=>{ve(e),p(t)},children:(0,q.jsx)(S$,{size:18,muted:!u})}),h&&g?(0,q.jsx)(g$,{label:`PTZ`,enabled:fe,onClick:e=>{ve(e),g(t)},children:(0,q.jsx)(w$,{size:18})}):null]}),(0,q.jsx)(`div`,{style:{position:`absolute`,right:8,bottom:8,pointerEvents:`none`},children:(0,q.jsx)(g$,{label:`Open`,enabled:fe,onClick:e=>{ve(e),m(t)},children:(0,q.jsx)(C$,{size:18})})})]})]})}function g$({children:e,label:t,onClick:n,big:r=!1,active:a=!1,enabled:o=!0}){let s=r?52:40;return(0,q.jsx)(`button`,{type:`button`,"aria-label":t,onClick:n,style:{width:s,height:s,borderRadius:s/2,border:`none`,display:`flex`,alignItems:`center`,justifyContent:`center`,background:a?`rgba(59,130,246,0.85)`:`rgba(0,0,0,0.55)`,color:`#fafaf9`,cursor:`pointer`,padding:0,WebkitTapHighlightColor:`transparent`,pointerEvents:o?`auto`:`none`},children:e})}var _$={fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`};function v$({size:e}){return(0,q.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,children:(0,q.jsx)(`polygon`,{points:`6 4 20 12 6 20 6 4`,fill:`currentColor`})})}function y$({size:e}){return(0,q.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,children:[(0,q.jsx)(`rect`,{x:`6`,y:`4`,width:`4`,height:`16`,fill:`currentColor`}),(0,q.jsx)(`rect`,{x:`14`,y:`4`,width:`4`,height:`16`,fill:`currentColor`})]})}function b$({size:e}){return(0,q.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,..._$,children:[(0,q.jsx)(`polygon`,{points:`11 5 6 9 2 9 2 15 6 15 11 19 11 5`}),(0,q.jsx)(`path`,{d:`M19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07`})]})}function x$({size:e}){return(0,q.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,..._$,children:[(0,q.jsx)(`polygon`,{points:`11 5 6 9 2 9 2 15 6 15 11 19 11 5`}),(0,q.jsx)(`line`,{x1:`23`,y1:`9`,x2:`17`,y2:`15`}),(0,q.jsx)(`line`,{x1:`17`,y1:`9`,x2:`23`,y2:`15`})]})}function S$({size:e,muted:t}){return(0,q.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,..._$,children:[(0,q.jsx)(`path`,{d:`M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z`}),(0,q.jsx)(`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2M12 19v4`}),t&&(0,q.jsx)(`line`,{x1:`3`,y1:`3`,x2:`21`,y2:`21`})]})}function C$({size:e}){return(0,q.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,..._$,children:(0,q.jsx)(`path`,{d:`M15 3h6v6M21 3l-9 9M21 14v5a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5`})})}function w$({size:e}){return(0,q.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,..._$,children:[(0,q.jsx)(`path`,{d:`M12 2v20M2 12h20`}),(0,q.jsx)(`path`,{d:`M12 2l-3 3M12 2l3 3M12 22l-3-3M12 22l3-3M2 12l3-3M2 12l3 3M22 12l-3-3M22 12l-3 3`})]})}function T$({message:e}){return(0,K.useEffect)(()=>HQ(BQ(`error`,e)),[e]),(0,q.jsxs)(`div`,{style:{position:`fixed`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,background:`#000`,color:`#f87171`,fontFamily:`system-ui, sans-serif`,fontSize:13,padding:16,textAlign:`center`},children:[`Grid embed config error: `,e]})}function E$({system:e,config:t}){let[n,r]=(0,K.useState)(()=>new Set(t.audioOnIds??[])),a=MQ(),o=(0,K.useRef)(a.setActiveMic);o.current=a.setActiveMic;let[s,c]=(0,K.useState)(()=>new Set(t.pausedIds??[])),[l,u]=(0,K.useState)(t.highlight),[d,f]=(0,K.useState)(t.activeOnly??!1),[p,m]=(0,K.useState)(t.showBoxes??!1),h=FQ(t.devices,l),g=(0,K.useMemo)(()=>d?t.devices.filter(e=>h.has(e)):t.devices,[d,t.devices,h]),[_,v]=(0,K.useState)(t.quality),[y,b]=(0,K.useState)(t.layout),[x,S]=(0,K.useState)(t.showName),[ee,C]=(0,K.useState)(0),[w,T]=(0,K.useState)(()=>t.snapshots??{}),E=(0,K.useMemo)(()=>new Set(t.ptzIds??[]),[t.ptzIds]),[te,ne]=(0,K.useState)({w:window.innerWidth,h:window.innerHeight}),[D,re]=(0,K.useState)({});(0,K.useEffect)(()=>{let t=!1;return e.trpcClient.deviceManager.listAll.query({}).then(e=>{if(t)return;let n={};for(let t of e)n[t.id]={name:t.name??`Camera ${t.id}`,online:t.online??!1};re(n)}).catch(()=>{}),()=>{t=!0}},[e]),(0,K.useEffect)(()=>(window.__camstackGrid={setAudioOn:e=>r(new Set(e)),setMutedAll:e=>{e&&r(new Set)},setActiveMic:e=>o.current(e),setHighlight:e=>u(e),setActiveOnly:e=>f(e),setShowBoxes:e=>m(e),setPaused:e=>c(new Set(e)),setQuality:e=>v(e),setLayout:e=>b(e),setShowName:S,setShowBadges:()=>{},setSnapshots:e=>T(e),fit:(e,t)=>ne({w:e,h:t}),reconnect:()=>C(e=>e+1)},HQ(BQ(`ready`)),()=>{window.__camstackGrid&&delete window.__camstackGrid}),[]),(0,K.useEffect)(()=>uZ(e=>{let t=window.__camstackGrid;if(t)switch(e.kind){case`setAudioOn`:t.setAudioOn(e.value);break;case`setMutedAll`:t.setMutedAll(e.value);break;case`setActiveMic`:t.setActiveMic(e.value);break;case`setHighlight`:t.setHighlight(e.value);break;case`setActiveOnly`:t.setActiveOnly(e.value);break;case`setShowBoxes`:t.setShowBoxes(e.value===!0);break;case`setPaused`:t.setPaused(e.value);break;case`setQuality`:t.setQuality(e.value);break;case`setLayout`:t.setLayout(e.value);break;case`setShowName`:t.setShowName(e.value);break;case`setShowBadges`:t.setShowBadges(e.value);break;case`setSnapshots`:t.setSnapshots(e.value);break;case`fit`:t.fit(e.w,e.h);break;case`reconnect`:t.reconnect();break;default:break}}),[]);let O=(0,K.useMemo)(()=>jQ(g.length,te.w,te.h,y),[g.length,te.w,te.h,y]),ie=(0,K.useRef)(null);return(0,K.useEffect)(()=>{let e=ie.current;if(!e)return;let t=[];e.querySelectorAll(`[data-device-id]`).forEach(e=>{let n=Number(e.dataset.deviceId),r=e.getBoundingClientRect();t.push({deviceId:n,rect:{x:r.x,y:r.y,w:r.width,h:r.height}})}),t.length&&HQ(VQ(t))},[O,g]),(0,q.jsxs)(`div`,{ref:ie,style:{position:`fixed`,inset:0,background:`#000`,display:`flex`,flexWrap:`wrap`,alignItems:`center`,justifyContent:`center`},children:[d&&g.length===0&&(0,q.jsx)(`div`,{style:{color:`#a1a1aa`,fontFamily:`system-ui, sans-serif`,fontSize:14,padding:24,textAlign:`center`},children:`No active cameras`}),g.map(t=>(0,q.jsx)(`div`,{"data-device-id":t,style:{width:O.cellW,height:O.cellH},children:(0,q.jsx)(h$,{system:e,deviceId:t,name:D[t]?.name??`Camera ${t}`,online:D[t]?.online??!1,quality:_,muted:!n.has(t),paused:s.has(t),showName:x,audioActive:n.has(t),micActive:a.activeMicId===t,onTogglePause:e=>HQ(RQ(e)),onToggleAudio:e=>HQ(LQ(e)),onToggleMic:a.toggleMic,onOpen:e=>HQ(IQ(e)),ptzSupported:E.has(t),onPtz:e=>HQ(zQ(e)),highlight:l,showBoxes:p,reconnectSignal:ee,posterUrl:w[String(t)]})},t))]})}function D$(){let e=fZ(`grid`,()=>window.__CAMSTACK_GRID__,mQ,kQ),t=(0,K.useMemo)(()=>e===null||!e.ok?null:{system:DA({serverUrl:e.config.serverUrl,token:e.config.token}),queryClient:new rM({defaultOptions:{queries:{retry:!1,refetchOnWindowFocus:!1}}})},[e]);return(0,K.useEffect)(()=>{if(t)return()=>t.system.close()},[t]),e===null?null:e.ok?t?(0,q.jsx)(lH,{system:t.system,children:(0,q.jsx)(oM,{client:t.queryClient,children:(0,q.jsx)($.Provider,{client:t.system.trpcClient,queryClient:t.queryClient,children:(0,q.jsx)(E$,{system:t.system,config:e.config})})})}):(0,q.jsx)(T$,{message:`Failed to initialise the grid embed`}):(0,q.jsx)(T$,{message:e.error})}var O$=wc([R({kind:V(`adaptive`)}),R({kind:V(`profile`),profile:ml})]),k$=R({deviceId:N().int().nonnegative(),target:O$.optional(),muted:P().optional(),stats:P().optional(),snapshot:M().optional()});function A$(e){let t=k$.safeParse(e);return t.success?t.data:null}function j$(e,t){let n=e.length;if(n===0)return 0;let r=0,a=n-1,o=-1;for(;r<=a;){let n=r+a>>1,s=e[n];if(!s)break;s.startMs<=t?(o=n,r=n+1):a=n-1}if(o===-1)return 0;let s=e[o];if(s&&t<s.startMs+s.durMs)return o;let c=e[o+1];return s&&c?Math.abs(s.startMs-t)<=Math.abs(c.startMs-t)?o:o+1:o}function M$(e,t){return e.length===0?null:e[j$(e,t)]??null}var N$=`/addon/recorder/playback`,P$=1129530417,F$=2;function I$(e,t){let n=0,r=1,a=t;for(;;){let t=e[a];if(t===void 0)throw Error(`CSD1: truncated varint`);if(n+=(t&127)*r,a++,!(t&128))break;if(r*=128,r>2**53-1)throw Error(`CSD1: varint out of range`)}return{value:n,next:a}}function L$(e){if(e.length<6)throw Error(`CSD1: too short`);if(((e[0]??0)<<24|(e[1]??0)<<16|(e[2]??0)<<8|(e[3]??0))>>>0!==P$)throw Error(`CSD1: bad magic`);let t=e[4];if(t!==1&&t!==F$)throw Error(`CSD1: unsupported version ${String(t)}`);let n=e[5]===1,r=6,a=I$(e,r);r=a.next;let o=new TextDecoder().decode(e.subarray(r,r+a.value));r+=a.value;let s=I$(e,r);r=s.next;let c=I$(e,r);r=c.next;let l=[],u=0;for(let n=0;n<c.value;n++){let n=I$(e,r);r=n.next;let a=I$(e,r);r=a.next;let o=I$(e,r);r=o.next;let s=u+n.value;u=s;let c;if(t===F$){let t=I$(e,r);if(r=t.next,t.value>0){let n=I$(e,r);r=n.next;let a=I$(e,r);r=a.next;let o=[],s=0,l=0;for(let n=0;n<t.value;n++){let t=I$(e,r);r=t.next;let n=I$(e,r);r=n.next,s+=t.value,l+=n.value,o.push({timeTicks:s,moofOffset:l})}c={trackId:n.value,mfraOffset:a.value,samples:o}}}l.push({startMs:s,durMs:a.value,bytes:o.value,...c?{mfra:c}:{}})}return{profile:o,hydrated:n,asOfMs:s.value,rows:l}}var R$=36e5,z$=5*6e4;function B$(e,t){let n=[...e,t].sort((e,t)=>e.fromMs-t.fromMs),r=[];for(let e of n){let t=r[r.length-1];t&&e.fromMs<=t.toMs?r[r.length-1]={fromMs:t.fromMs,toMs:Math.max(t.toMs,e.toMs)}:r.push(e)}return r}function V$(e,t,n){return e.some(e=>e.fromMs<=t&&e.toMs>=n)}var H$=class{deps;fetchImpl;rows=[];coverage=[];servedProfile=null;allCache=null;inFlight=new Map;constructor(e){this.deps=e,this.fetchImpl=e.fetchImpl??((e,t)=>fetch(e,t))}urlFor(e,t){let n=new Date(t.startMs),r=e=>String(e).padStart(2,`0`),a=`${e}/${n.getUTCFullYear()}/${r(n.getUTCMonth()+1)}/${r(n.getUTCDate())}/${r(n.getUTCHours())}`,o=`${t.startMs}-${t.durMs}-${t.bytes}.m4s`;return`${this.deps.baseUrl}/${this.deps.deviceId}/${a}/${o}`}async ensure(e,t){if(V$(this.coverage,e,t))return this.window(e,t,!0);let n=`${e}:${t}`,r=this.inFlight.get(n);if(r)return await r,this.window(e,t,V$(this.coverage,e,t));let a=this.fetchWindow(e,t);this.inFlight.set(n,a);try{await a}finally{this.inFlight.get(n)===a&&this.inFlight.delete(n)}return this.window(e,t,V$(this.coverage,e,t))}async fetchWindow(e,t){let n=this.deps.profile===void 0?``:`&profile=${encodeURIComponent(this.deps.profile)}`,r=`${this.deps.baseUrl}/${this.deps.deviceId}/directory?from=${Math.floor(e)}&to=${Math.ceil(t)}${n}`,a=await this.fetchImpl(r,{headers:{...this.deps.headers},credentials:`include`});if(!a.ok)throw Error(`directory: HTTP ${a.status}`);let o=L$(new Uint8Array(await a.arrayBuffer()));o.profile!==``&&(this.servedProfile=o.profile);let s=new Set(this.rows.map(e=>e.startMs));for(let e of o.rows)s.has(e.startMs)||this.rows.push(e);if(this.rows.sort((e,t)=>e.startMs-t.startMs),this.allCache=null,o.hydrated){let n=o.asOfMs>0?Math.min(t,o.asOfMs):t;n>e&&(this.coverage=B$(this.coverage,{fromMs:e,toMs:n}))}this.deps.onLog?.(`directory:fetched`,{fromMs:e,toMs:t,rows:o.rows.length,hydrated:o.hydrated,profile:o.profile})}window(e,t,n){let r=this.servedProfile;return r===null?{segments:[],profile:null,hydrated:n}:{segments:this.rows.filter(n=>n.startMs<t&&n.startMs+n.durMs>e).map(e=>({uri:this.urlFor(r,e),startMs:e.startMs,durMs:e.durMs,bytes:e.bytes,...e.mfra?{mfra:e.mfra}:{}})),profile:r,hydrated:n}}all(){if(this.allCache)return this.allCache;let e=this.servedProfile;return e===null?[]:(this.allCache=this.rows.map(t=>({uri:this.urlFor(e,t),startMs:t.startMs,durMs:t.durMs,bytes:t.bytes,...t.mfra?{mfra:t.mfra}:{}})),this.allCache)}async ensureAround(e){let t=Math.floor(e/R$)*R$,n=t-(e<t+z$?R$:0),r=t+R$+(e>=t+R$-z$?R$:0);return this.ensure(n,r)}isCovered(e){return V$(this.coverage,e,e)}clear(){this.rows=[],this.coverage=[],this.servedProfile=null,this.allCache=null,this.inFlight.clear()}},U$=u(s((e=>{var t=(function(){var e=new Date,n=4,r=3,a=2,o=1,s=n;return{setLogLevel:function(e){s=e==this.debug?o:e==this.info?a:e==this.warn?r:(this.error,n)},debug:function(n,r){console.debug===void 0&&(console.debug=console.log),o>=s&&console.debug(`[`+t.getDurationString(new Date-e,1e3)+`]`,`[`+n+`]`,r)},log:function(e,t){this.debug(e.msg)},info:function(n,r){a>=s&&console.info(`[`+t.getDurationString(new Date-e,1e3)+`]`,`[`+n+`]`,r)},warn:function(n,a){r>=s&&console.warn(`[`+t.getDurationString(new Date-e,1e3)+`]`,`[`+n+`]`,a)},error:function(r,a){n>=s&&console.error(`[`+t.getDurationString(new Date-e,1e3)+`]`,`[`+r+`]`,a)}}})();t.getDurationString=function(e,t){var n;function r(e,t){for(var n=(``+e).split(`.`);n[0].length<t;)n[0]=`0`+n[0];return n.join(`.`)}e<0?(n=!0,e=-e):n=!1;var a=e/(t||1),o=Math.floor(a/3600);a-=o*3600;var s=Math.floor(a/60);a-=s*60;var c=a*1e3;return a=Math.floor(a),c-=a*1e3,c=Math.floor(c),(n?`-`:``)+o+`:`+r(s,2)+`:`+r(a,2)+`.`+r(c,3)},t.printRanges=function(e){var n=e.length;if(n>0){for(var r=``,a=0;a<n;a++)a>0&&(r+=`,`),r+=`[`+t.getDurationString(e.start(a))+`,`+t.getDurationString(e.end(a))+`]`;return r}else return`(empty)`},e!==void 0&&(e.Log=t);var n=function(e){if(e instanceof ArrayBuffer)this.buffer=e,this.dataview=new DataView(e);else throw`Needs an array buffer`;this.position=0};n.prototype.getPosition=function(){return this.position},n.prototype.getEndPosition=function(){return this.buffer.byteLength},n.prototype.getLength=function(){return this.buffer.byteLength},n.prototype.seek=function(e){var t=Math.max(0,Math.min(this.buffer.byteLength,e));return this.position=isNaN(t)||!isFinite(t)?0:t,!0},n.prototype.isEos=function(){return this.getPosition()>=this.getEndPosition()},n.prototype.readAnyInt=function(e,t){var n=0;if(this.position+e<=this.buffer.byteLength){switch(e){case 1:n=t?this.dataview.getInt8(this.position):this.dataview.getUint8(this.position);break;case 2:n=t?this.dataview.getInt16(this.position):this.dataview.getUint16(this.position);break;case 3:if(t)throw`No method for reading signed 24 bits values`;n=this.dataview.getUint8(this.position)<<16,n|=this.dataview.getUint8(this.position+1)<<8,n|=this.dataview.getUint8(this.position+2);break;case 4:n=t?this.dataview.getInt32(this.position):this.dataview.getUint32(this.position);break;case 8:if(t)throw`No method for reading signed 64 bits values`;n=this.dataview.getUint32(this.position)<<32,n|=this.dataview.getUint32(this.position+4);break;default:throw`readInt method not implemented for size: `+e}return this.position+=e,n}else throw`Not enough bytes in buffer`},n.prototype.readUint8=function(){return this.readAnyInt(1,!1)},n.prototype.readUint16=function(){return this.readAnyInt(2,!1)},n.prototype.readUint24=function(){return this.readAnyInt(3,!1)},n.prototype.readUint32=function(){return this.readAnyInt(4,!1)},n.prototype.readUint64=function(){return this.readAnyInt(8,!1)},n.prototype.readString=function(e){if(this.position+e<=this.buffer.byteLength){for(var t=``,n=0;n<e;n++)t+=String.fromCharCode(this.readUint8());return t}else throw`Not enough bytes in buffer`},n.prototype.readCString=function(){for(var e=[];;){var t=this.readUint8();if(t!==0)e.push(t);else break}return String.fromCharCode.apply(null,e)},n.prototype.readInt8=function(){return this.readAnyInt(1,!0)},n.prototype.readInt16=function(){return this.readAnyInt(2,!0)},n.prototype.readInt32=function(){return this.readAnyInt(4,!0)},n.prototype.readInt64=function(){return this.readAnyInt(8,!1)},n.prototype.readUint8Array=function(e){for(var t=new Uint8Array(e),n=0;n<e;n++)t[n]=this.readUint8();return t},n.prototype.readInt16Array=function(e){for(var t=new Int16Array(e),n=0;n<e;n++)t[n]=this.readInt16();return t},n.prototype.readUint16Array=function(e){for(var t=new Int16Array(e),n=0;n<e;n++)t[n]=this.readUint16();return t},n.prototype.readUint32Array=function(e){for(var t=new Uint32Array(e),n=0;n<e;n++)t[n]=this.readUint32();return t},n.prototype.readInt32Array=function(e){for(var t=new Int32Array(e),n=0;n<e;n++)t[n]=this.readInt32();return t},e!==void 0&&(e.MP4BoxStream=n);var r=function(e,t,n){this._byteOffset=t||0,e instanceof ArrayBuffer?this.buffer=e:typeof e==`object`?(this.dataView=e,t&&(this._byteOffset+=t)):this.buffer=new ArrayBuffer(e||0),this.position=0,this.endianness=n??r.LITTLE_ENDIAN};r.prototype={},r.prototype.getPosition=function(){return this.position},r.prototype._realloc=function(e){if(this._dynamicSize){var t=this._byteOffset+this.position+e,n=this._buffer.byteLength;if(t<=n){t>this._byteLength&&(this._byteLength=t);return}for(n<1&&(n=1);t>n;)n*=2;var r=new ArrayBuffer(n),a=new Uint8Array(this._buffer);new Uint8Array(r,0,a.length).set(a),this.buffer=r,this._byteLength=t}},r.prototype._trimAlloc=function(){if(this._byteLength!=this._buffer.byteLength){var e=new ArrayBuffer(this._byteLength),t=new Uint8Array(e),n=new Uint8Array(this._buffer,0,t.length);t.set(n),this.buffer=e}},r.BIG_ENDIAN=!1,r.LITTLE_ENDIAN=!0,r.prototype._byteLength=0,Object.defineProperty(r.prototype,"byteLength",{get:function(){return this._byteLength-this._byteOffset}}),Object.defineProperty(r.prototype,"buffer",{get:function(){return this._trimAlloc(),this._buffer},set:function(e){this._buffer=e,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(r.prototype,"byteOffset",{get:function(){return this._byteOffset},set:function(e){this._byteOffset=e,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(r.prototype,"dataView",{get:function(){return this._dataView},set:function(e){this._byteOffset=e.byteOffset,this._buffer=e.buffer,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._byteOffset+e.byteLength}}),r.prototype.seek=function(e){var t=Math.max(0,Math.min(this.byteLength,e));this.position=isNaN(t)||!isFinite(t)?0:t},r.prototype.isEof=function(){return this.position>=this._byteLength},r.prototype.mapUint8Array=function(e){this._realloc(e*1);var t=new Uint8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=e*1,t},r.prototype.readInt32Array=function(e,t){e??=this.byteLength-this.position/4;var n=new Int32Array(e);return r.memcpy(n.buffer,0,this.buffer,this.byteOffset+this.position,e*n.BYTES_PER_ELEMENT),r.arrayToNative(n,t??this.endianness),this.position+=n.byteLength,n},r.prototype.readInt16Array=function(e,t){e??=this.byteLength-this.position/2;var n=new Int16Array(e);return r.memcpy(n.buffer,0,this.buffer,this.byteOffset+this.position,e*n.BYTES_PER_ELEMENT),r.arrayToNative(n,t??this.endianness),this.position+=n.byteLength,n},r.prototype.readInt8Array=function(e){e??=this.byteLength-this.position;var t=new Int8Array(e);return r.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},r.prototype.readUint32Array=function(e,t){e??=this.byteLength-this.position/4;var n=new Uint32Array(e);return r.memcpy(n.buffer,0,this.buffer,this.byteOffset+this.position,e*n.BYTES_PER_ELEMENT),r.arrayToNative(n,t??this.endianness),this.position+=n.byteLength,n},r.prototype.readUint16Array=function(e,t){e??=this.byteLength-this.position/2;var n=new Uint16Array(e);return r.memcpy(n.buffer,0,this.buffer,this.byteOffset+this.position,e*n.BYTES_PER_ELEMENT),r.arrayToNative(n,t??this.endianness),this.position+=n.byteLength,n},r.prototype.readUint8Array=function(e){e??=this.byteLength-this.position;var t=new Uint8Array(e);return r.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},r.prototype.readFloat64Array=function(e,t){e??=this.byteLength-this.position/8;var n=new Float64Array(e);return r.memcpy(n.buffer,0,this.buffer,this.byteOffset+this.position,e*n.BYTES_PER_ELEMENT),r.arrayToNative(n,t??this.endianness),this.position+=n.byteLength,n},r.prototype.readFloat32Array=function(e,t){e??=this.byteLength-this.position/4;var n=new Float32Array(e);return r.memcpy(n.buffer,0,this.buffer,this.byteOffset+this.position,e*n.BYTES_PER_ELEMENT),r.arrayToNative(n,t??this.endianness),this.position+=n.byteLength,n},r.prototype.readInt32=function(e){var t=this._dataView.getInt32(this.position,e??this.endianness);return this.position+=4,t},r.prototype.readInt16=function(e){var t=this._dataView.getInt16(this.position,e??this.endianness);return this.position+=2,t},r.prototype.readInt8=function(){var e=this._dataView.getInt8(this.position);return this.position+=1,e},r.prototype.readUint32=function(e){var t=this._dataView.getUint32(this.position,e??this.endianness);return this.position+=4,t},r.prototype.readUint16=function(e){var t=this._dataView.getUint16(this.position,e??this.endianness);return this.position+=2,t},r.prototype.readUint8=function(){var e=this._dataView.getUint8(this.position);return this.position+=1,e},r.prototype.readFloat32=function(e){var t=this._dataView.getFloat32(this.position,e??this.endianness);return this.position+=4,t},r.prototype.readFloat64=function(e){var t=this._dataView.getFloat64(this.position,e??this.endianness);return this.position+=8,t},r.endianness=new Int8Array(new Int16Array([1]).buffer)[0]>0,r.memcpy=function(e,t,n,r,a){var o=new Uint8Array(e,t,a),s=new Uint8Array(n,r,a);o.set(s)},r.arrayToNative=function(e,t){return t==this.endianness?e:this.flipArrayEndianness(e)},r.nativeToEndian=function(e,t){return this.endianness==t?e:this.flipArrayEndianness(e)},r.flipArrayEndianness=function(e){for(var t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=0;n<e.byteLength;n+=e.BYTES_PER_ELEMENT)for(var r=n+e.BYTES_PER_ELEMENT-1,a=n;r>a;r--,a++){var o=t[a];t[a]=t[r],t[r]=o}return e},r.prototype.failurePosition=0,String.fromCharCodeUint8=function(e){for(var t=[],n=0;n<e.length;n++)t[n]=e[n];return String.fromCharCode.apply(null,t)},r.prototype.readString=function(e,t){return t==null||t==`ASCII`?String.fromCharCodeUint8.apply(null,[this.mapUint8Array(e??this.byteLength-this.position)]):new TextDecoder(t).decode(this.mapUint8Array(e))},r.prototype.readCString=function(e){var t=this.byteLength-this.position,n=new Uint8Array(this._buffer,this._byteOffset+this.position),r=t;e!=null&&(r=Math.min(e,t));for(var a=0;a<r&&n[a]!==0;a++);var o=String.fromCharCodeUint8.apply(null,[this.mapUint8Array(a)]);return e==null?a!=t&&(this.position+=1):this.position+=r-a,o};var a=2**32;r.prototype.readInt64=function(){return this.readInt32()*a+this.readUint32()},r.prototype.readUint64=function(){return this.readUint32()*a+this.readUint32()},r.prototype.readInt64=function(){return this.readUint32()*a+this.readUint32()},r.prototype.readUint24=function(){return(this.readUint8()<<16)+(this.readUint8()<<8)+this.readUint8()},e!==void 0&&(e.DataStream=r),r.prototype.save=function(e){var t=new Blob([this.buffer]);if(window.URL&&URL.createObjectURL){var n=window.URL.createObjectURL(t),r=document.createElement(`a`);document.body.appendChild(r),r.setAttribute(`href`,n),r.setAttribute(`download`,e),r.setAttribute(`target`,`_self`),r.click(),window.URL.revokeObjectURL(n)}else throw`DataStream.save: Can't create object URL.`},r.prototype._dynamicSize=!0,Object.defineProperty(r.prototype,"dynamicSize",{get:function(){return this._dynamicSize},set:function(e){e||this._trimAlloc(),this._dynamicSize=e}}),r.prototype.shift=function(e){var t=new ArrayBuffer(this._byteLength-e),n=new Uint8Array(t),r=new Uint8Array(this._buffer,e,n.length);n.set(r),this.buffer=t,this.position-=e},r.prototype.writeInt32Array=function(e,t){if(this._realloc(e.length*4),e instanceof Int32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt32Array(e.length,t);else for(var n=0;n<e.length;n++)this.writeInt32(e[n],t)},r.prototype.writeInt16Array=function(e,t){if(this._realloc(e.length*2),e instanceof Int16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt16Array(e.length,t);else for(var n=0;n<e.length;n++)this.writeInt16(e[n],t)},r.prototype.writeInt8Array=function(e){if(this._realloc(e.length*1),e instanceof Int8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt8Array(e.length);else for(var t=0;t<e.length;t++)this.writeInt8(e[t])},r.prototype.writeUint32Array=function(e,t){if(this._realloc(e.length*4),e instanceof Uint32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint32Array(e.length,t);else for(var n=0;n<e.length;n++)this.writeUint32(e[n],t)},r.prototype.writeUint16Array=function(e,t){if(this._realloc(e.length*2),e instanceof Uint16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint16Array(e.length,t);else for(var n=0;n<e.length;n++)this.writeUint16(e[n],t)},r.prototype.writeUint8Array=function(e){if(this._realloc(e.length*1),e instanceof Uint8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint8Array(e.length);else for(var t=0;t<e.length;t++)this.writeUint8(e[t])},r.prototype.writeFloat64Array=function(e,t){if(this._realloc(e.length*8),e instanceof Float64Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat64Array(e.length,t);else for(var n=0;n<e.length;n++)this.writeFloat64(e[n],t)},r.prototype.writeFloat32Array=function(e,t){if(this._realloc(e.length*4),e instanceof Float32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat32Array(e.length,t);else for(var n=0;n<e.length;n++)this.writeFloat32(e[n],t)},r.prototype.writeInt32=function(e,t){this._realloc(4),this._dataView.setInt32(this.position,e,t??this.endianness),this.position+=4},r.prototype.writeInt16=function(e,t){this._realloc(2),this._dataView.setInt16(this.position,e,t??this.endianness),this.position+=2},r.prototype.writeInt8=function(e){this._realloc(1),this._dataView.setInt8(this.position,e),this.position+=1},r.prototype.writeUint32=function(e,t){this._realloc(4),this._dataView.setUint32(this.position,e,t??this.endianness),this.position+=4},r.prototype.writeUint16=function(e,t){this._realloc(2),this._dataView.setUint16(this.position,e,t??this.endianness),this.position+=2},r.prototype.writeUint8=function(e){this._realloc(1),this._dataView.setUint8(this.position,e),this.position+=1},r.prototype.writeFloat32=function(e,t){this._realloc(4),this._dataView.setFloat32(this.position,e,t??this.endianness),this.position+=4},r.prototype.writeFloat64=function(e,t){this._realloc(8),this._dataView.setFloat64(this.position,e,t??this.endianness),this.position+=8},r.prototype.writeUCS2String=function(e,t,n){n??=e.length;for(var r=0;r<e.length&&r<n;r++)this.writeUint16(e.charCodeAt(r),t);for(;r<n;r++)this.writeUint16(0)},r.prototype.writeString=function(e,t,n){var r=0;if(t==null||t==`ASCII`)if(n!=null){var a=Math.min(e.length,n);for(r=0;r<a;r++)this.writeUint8(e.charCodeAt(r));for(;r<n;r++)this.writeUint8(0)}else for(r=0;r<e.length;r++)this.writeUint8(e.charCodeAt(r));else this.writeUint8Array(new TextEncoder(t).encode(e.substring(0,n)))},r.prototype.writeCString=function(e,t){var n=0;if(t!=null){var r=Math.min(e.length,t);for(n=0;n<r;n++)this.writeUint8(e.charCodeAt(n));for(;n<t;n++)this.writeUint8(0)}else{for(n=0;n<e.length;n++)this.writeUint8(e.charCodeAt(n));this.writeUint8(0)}},r.prototype.writeStruct=function(e,t){for(var n=0;n<e.length;n+=2){var r=e[n+1];this.writeType(r,t[e[n]],t)}},r.prototype.writeType=function(e,t,n){var a;if(typeof e==`function`)return e(this,t);if(typeof e==`object`&&!(e instanceof Array))return e.set(this,t,n);var o=null,s=`ASCII`,c=this.position;switch(typeof e==`string`&&/:/.test(e)&&(a=e.split(`:`),e=a[0],o=parseInt(a[1])),typeof e==`string`&&/,/.test(e)&&(a=e.split(`,`),e=a[0],s=parseInt(a[1])),e){case`uint8`:this.writeUint8(t);break;case`int8`:this.writeInt8(t);break;case`uint16`:this.writeUint16(t,this.endianness);break;case`int16`:this.writeInt16(t,this.endianness);break;case`uint32`:this.writeUint32(t,this.endianness);break;case`int32`:this.writeInt32(t,this.endianness);break;case`float32`:this.writeFloat32(t,this.endianness);break;case`float64`:this.writeFloat64(t,this.endianness);break;case`uint16be`:this.writeUint16(t,r.BIG_ENDIAN);break;case`int16be`:this.writeInt16(t,r.BIG_ENDIAN);break;case`uint32be`:this.writeUint32(t,r.BIG_ENDIAN);break;case`int32be`:this.writeInt32(t,r.BIG_ENDIAN);break;case`float32be`:this.writeFloat32(t,r.BIG_ENDIAN);break;case`float64be`:this.writeFloat64(t,r.BIG_ENDIAN);break;case`uint16le`:this.writeUint16(t,r.LITTLE_ENDIAN);break;case`int16le`:this.writeInt16(t,r.LITTLE_ENDIAN);break;case`uint32le`:this.writeUint32(t,r.LITTLE_ENDIAN);break;case`int32le`:this.writeInt32(t,r.LITTLE_ENDIAN);break;case`float32le`:this.writeFloat32(t,r.LITTLE_ENDIAN);break;case`float64le`:this.writeFloat64(t,r.LITTLE_ENDIAN);break;case`cstring`:this.writeCString(t,o);break;case`string`:this.writeString(t,s,o);break;case`u16string`:this.writeUCS2String(t,this.endianness,o);break;case`u16stringle`:this.writeUCS2String(t,r.LITTLE_ENDIAN,o);break;case`u16stringbe`:this.writeUCS2String(t,r.BIG_ENDIAN,o);break;default:if(e.length==3){for(var l=e[1],u=0;u<t.length;u++)this.writeType(l,t[u]);break}else{this.writeStruct(e,t);break}}o!=null&&(this.position=c,this._realloc(o),this.position=c+o)},r.prototype.writeUint64=function(e){var t=Math.floor(e/a);this.writeUint32(t),this.writeUint32(e&4294967295)},r.prototype.writeUint24=function(e){this.writeUint8((e&16711680)>>16),this.writeUint8((e&65280)>>8),this.writeUint8(e&255)},r.prototype.adjustUint32=function(e,t){var n=this.position;this.seek(e),this.writeUint32(t),this.seek(n)},r.prototype.mapInt32Array=function(e,t){this._realloc(e*4);var n=new Int32Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(n,t??this.endianness),this.position+=e*4,n},r.prototype.mapInt16Array=function(e,t){this._realloc(e*2);var n=new Int16Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(n,t??this.endianness),this.position+=e*2,n},r.prototype.mapInt8Array=function(e){this._realloc(e*1);var t=new Int8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=e*1,t},r.prototype.mapUint32Array=function(e,t){this._realloc(e*4);var n=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(n,t??this.endianness),this.position+=e*4,n},r.prototype.mapUint16Array=function(e,t){this._realloc(e*2);var n=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(n,t??this.endianness),this.position+=e*2,n},r.prototype.mapFloat64Array=function(e,t){this._realloc(e*8);var n=new Float64Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(n,t??this.endianness),this.position+=e*8,n},r.prototype.mapFloat32Array=function(e,t){this._realloc(e*4);var n=new Float32Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(n,t??this.endianness),this.position+=e*4,n};var o=function(e){this.buffers=[],this.bufferIndex=-1,e&&(this.insertBuffer(e),this.bufferIndex=0)};o.prototype=new r(new ArrayBuffer,0,r.BIG_ENDIAN),o.prototype.initialized=function(){var e;return this.bufferIndex>-1?!0:this.buffers.length>0?(e=this.buffers[0],e.fileStart===0?(this.buffer=e,this.bufferIndex=0,t.debug(`MultiBufferStream`,`Stream ready for parsing`),!0):(t.warn(`MultiBufferStream`,`The first buffer should have a fileStart of 0`),this.logBufferLevel(),!1)):(t.warn(`MultiBufferStream`,`No buffer to start parsing from`),this.logBufferLevel(),!1)},ArrayBuffer.concat=function(e,n){t.debug(`ArrayBuffer`,`Trying to create a new buffer of size: `+(e.byteLength+n.byteLength));var r=new Uint8Array(e.byteLength+n.byteLength);return r.set(new Uint8Array(e),0),r.set(new Uint8Array(n),e.byteLength),r.buffer},o.prototype.reduceBuffer=function(e,t,n){var r=new Uint8Array(n);return r.set(new Uint8Array(e,t,n)),r.buffer.fileStart=e.fileStart+t,r.buffer.usedBytes=0,r.buffer},o.prototype.insertBuffer=function(e){for(var n=!0,r=0;r<this.buffers.length;r++){var a=this.buffers[r];if(e.fileStart<=a.fileStart){if(e.fileStart===a.fileStart)if(e.byteLength>a.byteLength){this.buffers.splice(r,1),r--;continue}else t.warn(`MultiBufferStream`,`Buffer (fileStart: `+e.fileStart+` - Length: `+e.byteLength+`) already appended, ignoring`);else e.fileStart+e.byteLength<=a.fileStart||(e=this.reduceBuffer(e,0,a.fileStart-e.fileStart)),t.debug(`MultiBufferStream`,`Appending new buffer (fileStart: `+e.fileStart+` - Length: `+e.byteLength+`)`),this.buffers.splice(r,0,e),r===0&&(this.buffer=e);n=!1;break}else if(e.fileStart<a.fileStart+a.byteLength){var o=a.fileStart+a.byteLength-e.fileStart,s=e.byteLength-o;if(s>0)e=this.reduceBuffer(e,o,s);else{n=!1;break}}}n&&(t.debug(`MultiBufferStream`,`Appending new buffer (fileStart: `+e.fileStart+` - Length: `+e.byteLength+`)`),this.buffers.push(e),r===0&&(this.buffer=e))},o.prototype.logBufferLevel=function(e){var n,r,a,o,s=[],c,l=``;for(a=0,o=0,n=0;n<this.buffers.length;n++)r=this.buffers[n],n===0?(c={},s.push(c),c.start=r.fileStart,c.end=r.fileStart+r.byteLength,l+=`[`+c.start+`-`):c.end===r.fileStart?c.end=r.fileStart+r.byteLength:(c={},c.start=r.fileStart,l+=s[s.length-1].end-1+`], [`+c.start+`-`,c.end=r.fileStart+r.byteLength,s.push(c)),a+=r.usedBytes,o+=r.byteLength;s.length>0&&(l+=c.end-1+`]`);var u=e?t.info:t.debug;this.buffers.length===0?u(`MultiBufferStream`,`No more buffer in memory`):u(`MultiBufferStream`,``+this.buffers.length+` stored buffer(s) (`+a+`/`+o+` bytes), continuous ranges: `+l)},o.prototype.cleanBuffers=function(){var e,n;for(e=0;e<this.buffers.length;e++)n=this.buffers[e],n.usedBytes===n.byteLength&&(t.debug(`MultiBufferStream`,`Removing buffer #`+e),this.buffers.splice(e,1),e--)},o.prototype.mergeNextBuffer=function(){var e;if(this.bufferIndex+1<this.buffers.length)if(e=this.buffers[this.bufferIndex+1],e.fileStart===this.buffer.fileStart+this.buffer.byteLength){var n=this.buffer.byteLength,r=this.buffer.usedBytes,a=this.buffer.fileStart;return this.buffers[this.bufferIndex]=ArrayBuffer.concat(this.buffer,e),this.buffer=this.buffers[this.bufferIndex],this.buffers.splice(this.bufferIndex+1,1),this.buffer.usedBytes=r,this.buffer.fileStart=a,t.debug(`ISOFile`,`Concatenating buffer for box parsing (length: `+n+`->`+this.buffer.byteLength+`)`),!0}else return!1;else return!1},o.prototype.findPosition=function(e,n,r){var a,o=null,s=-1;for(a=e===!0?0:this.bufferIndex;a<this.buffers.length&&(o=this.buffers[a],o.fileStart<=n);)s=a,r&&(o.fileStart+o.byteLength<=n?o.usedBytes=o.byteLength:o.usedBytes=n-o.fileStart,this.logBufferLevel()),a++;return s===-1?-1:(o=this.buffers[s],o.fileStart+o.byteLength>=n?(t.debug(`MultiBufferStream`,`Found position in existing buffer #`+s),s):-1)},o.prototype.findEndContiguousBuf=function(e){var t,n,r,a=e===void 0?this.bufferIndex:e;if(n=this.buffers[a],this.buffers.length>a+1)for(t=a+1;t<this.buffers.length&&(r=this.buffers[t],r.fileStart===n.fileStart+n.byteLength);t++)n=r;return n.fileStart+n.byteLength},o.prototype.getEndFilePositionAfter=function(e){var t=this.findPosition(!0,e,!1);return t===-1?e:this.findEndContiguousBuf(t)},o.prototype.addUsedBytes=function(e){this.buffer.usedBytes+=e,this.logBufferLevel()},o.prototype.setAllUsedBytes=function(){this.buffer.usedBytes=this.buffer.byteLength,this.logBufferLevel()},o.prototype.seek=function(e,n,r){var a=this.findPosition(n,e,r);return a===-1?(t.debug(`MultiBufferStream`,`Position `+e+` not found in buffered data`),!1):(this.buffer=this.buffers[a],this.bufferIndex=a,this.position=e-this.buffer.fileStart,t.debug(`MultiBufferStream`,`Repositioning parser at buffer position: `+this.position),!0)},o.prototype.getPosition=function(){if(this.bufferIndex===-1||this.buffers[this.bufferIndex]===null)throw`Error accessing position in the MultiBufferStream`;return this.buffers[this.bufferIndex].fileStart+this.position},o.prototype.getLength=function(){return this.byteLength},o.prototype.getEndPosition=function(){if(this.bufferIndex===-1||this.buffers[this.bufferIndex]===null)throw`Error accessing position in the MultiBufferStream`;return this.buffers[this.bufferIndex].fileStart+this.byteLength},e!==void 0&&(e.MultiBufferStream=o);var s=function(){var e=3,n=4,r=5,a=6,o=[];o[e]=`ES_Descriptor`,o[n]=`DecoderConfigDescriptor`,o[r]=`DecoderSpecificInfo`,o[a]=`SLConfigDescriptor`,this.getDescriptorName=function(e){return o[e]};var s=this,c={};return this.parseOneDescriptor=function(e){var n=0,r=0,a=e.readUint8(),s,l;for(n++,l=e.readUint8(),n++;l&128;)r=(r<<7)+(l&127),l=e.readUint8(),n++;return r=(r<<7)+(l&127),t.debug(`MPEG4DescriptorParser`,`Found `+(o[a]||`Descriptor `+a)+`, size `+r+` at position `+e.getPosition()),s=o[a]?new c[o[a]](r):new c.Descriptor(r),s.parse(e),s},c.Descriptor=function(e,t){this.tag=e,this.size=t,this.descs=[]},c.Descriptor.prototype.parse=function(e){this.data=e.readUint8Array(this.size)},c.Descriptor.prototype.findDescriptor=function(e){for(var t=0;t<this.descs.length;t++)if(this.descs[t].tag==e)return this.descs[t];return null},c.Descriptor.prototype.parseRemainingDescriptors=function(e){for(var t=e.position;e.position<t+this.size;){var n=s.parseOneDescriptor(e);this.descs.push(n)}},c.ES_Descriptor=function(t){c.Descriptor.call(this,e,t)},c.ES_Descriptor.prototype=new c.Descriptor,c.ES_Descriptor.prototype.parse=function(e){if(this.ES_ID=e.readUint16(),this.flags=e.readUint8(),this.size-=3,this.flags&128?(this.dependsOn_ES_ID=e.readUint16(),this.size-=2):this.dependsOn_ES_ID=0,this.flags&64){var t=e.readUint8();this.URL=e.readString(t),this.size-=t+1}else this.URL=``;this.flags&32?(this.OCR_ES_ID=e.readUint16(),this.size-=2):this.OCR_ES_ID=0,this.parseRemainingDescriptors(e)},c.ES_Descriptor.prototype.getOTI=function(e){var t=this.findDescriptor(n);return t?t.oti:0},c.ES_Descriptor.prototype.getAudioConfig=function(e){var t=this.findDescriptor(n);if(!t)return null;var a=t.findDescriptor(r);if(a&&a.data){var o=(a.data[0]&248)>>3;return o===31&&a.data.length>=2&&(o=32+((a.data[0]&7)<<3)+((a.data[1]&224)>>5)),o}else return null},c.DecoderConfigDescriptor=function(e){c.Descriptor.call(this,n,e)},c.DecoderConfigDescriptor.prototype=new c.Descriptor,c.DecoderConfigDescriptor.prototype.parse=function(e){this.oti=e.readUint8(),this.streamType=e.readUint8(),this.upStream=(this.streamType>>1&1)!=0,this.streamType>>>=2,this.bufferSize=e.readUint24(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32(),this.size-=13,this.parseRemainingDescriptors(e)},c.DecoderSpecificInfo=function(e){c.Descriptor.call(this,r,e)},c.DecoderSpecificInfo.prototype=new c.Descriptor,c.SLConfigDescriptor=function(e){c.Descriptor.call(this,a,e)},c.SLConfigDescriptor.prototype=new c.Descriptor,this};e!==void 0&&(e.MPEG4DescriptorParser=s);var c={ERR_INVALID_DATA:-1,ERR_NOT_ENOUGH_DATA:0,OK:1,BASIC_BOXES:[{type:`mdat`,name:`MediaDataBox`},{type:`idat`,name:`ItemDataBox`},{type:`free`,name:`FreeSpaceBox`},{type:`skip`,name:`FreeSpaceBox`},{type:`meco`,name:`AdditionalMetadataContainerBox`},{type:`strk`,name:`SubTrackBox`}],FULL_BOXES:[{type:`hmhd`,name:`HintMediaHeaderBox`},{type:`nmhd`,name:`NullMediaHeaderBox`},{type:`iods`,name:`ObjectDescriptorBox`},{type:`xml `,name:`XMLBox`},{type:`bxml`,name:`BinaryXMLBox`},{type:`ipro`,name:`ItemProtectionBox`},{type:`mere`,name:`MetaboxRelationBox`}],CONTAINER_BOXES:[[{type:`moov`,name:`CompressedMovieBox`},[`trak`,`pssh`]],[{type:`trak`,name:`TrackBox`}],[{type:`edts`,name:`EditBox`}],[{type:`mdia`,name:`MediaBox`}],[{type:`minf`,name:`MediaInformationBox`}],[{type:`dinf`,name:`DataInformationBox`}],[{type:`stbl`,name:`SampleTableBox`},[`sgpd`,`sbgp`]],[{type:`mvex`,name:`MovieExtendsBox`},[`trex`]],[{type:`moof`,name:`CompressedMovieFragmentBox`},[`traf`]],[{type:`traf`,name:`TrackFragmentBox`},[`trun`,`sgpd`,`sbgp`]],[{type:`vttc`,name:`VTTCueBox`}],[{type:`tref`,name:`TrackReferenceBox`}],[{type:`iref`,name:`ItemReferenceBox`}],[{type:`mfra`,name:`MovieFragmentRandomAccessBox`},[`tfra`]],[{type:`meco`,name:`AdditionalMetadataContainerBox`}],[{type:`hnti`,name:`trackhintinformation`}],[{type:`hinf`,name:`hintstatisticsbox`}],[{type:`strk`,name:`SubTrackBox`}],[{type:`strd`,name:`SubTrackDefinitionBox`}],[{type:`sinf`,name:`ProtectionSchemeInfoBox`}],[{type:`rinf`,name:`RestrictedSchemeInfoBox`}],[{type:`schi`,name:`SchemeInformationBox`}],[{type:`trgr`,name:`TrackGroupBox`}],[{type:`udta`,name:`UserDataBox`},[`kind`]],[{type:`iprp`,name:`ItemPropertiesBox`},[`ipma`]],[{type:`ipco`,name:`ItemPropertyContainerBox`}],[{type:`grpl`,name:`GroupsListBox`}],[{type:`j2kH`,name:`J2KHeaderInfoBox`}],[{type:`etyp`,name:`ExtendedTypeBox`},[`tyco`]]],boxCodes:[],fullBoxCodes:[],containerBoxCodes:[],sampleEntryCodes:{},sampleGroupEntryCodes:[],trackGroupTypes:[],UUIDBoxes:{},UUIDs:[],initialize:function(){c.FullBox.prototype=new c.Box,c.ContainerBox.prototype=new c.Box,c.SampleEntry.prototype=new c.Box,c.TrackGroupTypeBox.prototype=new c.FullBox,c.BASIC_BOXES.forEach(function(e){c.createBoxCtor(e.type,e.name)}),c.FULL_BOXES.forEach(function(e){c.createFullBoxCtor(e.type,e.name)}),c.CONTAINER_BOXES.forEach(function(e){c.createContainerBoxCtor(e[0].type,e[0].name,null,e[1])})},Box:function(e,t,n,r){this.type=e,this.box_name=n,this.size=t,this.uuid=r},FullBox:function(e,t,n,r){c.Box.call(this,e,t,n,r),this.flags=0,this.version=0},ContainerBox:function(e,t,n,r){c.Box.call(this,e,t,n,r),this.boxes=[]},SampleEntry:function(e,t,n,r){c.ContainerBox.call(this,e,t),this.hdr_size=n,this.start=r},SampleGroupEntry:function(e){this.grouping_type=e},TrackGroupTypeBox:function(e,t){c.FullBox.call(this,e,t)},createBoxCtor:function(e,t,n){c.boxCodes.push(e),c[e+`Box`]=function(n){c.Box.call(this,e,n,t)},c[e+`Box`].prototype=new c.Box,n&&(c[e+`Box`].prototype.parse=n)},createFullBoxCtor:function(e,t,n){c[e+`Box`]=function(n){c.FullBox.call(this,e,n,t)},c[e+`Box`].prototype=new c.FullBox,c[e+`Box`].prototype.parse=function(e){this.parseFullHeader(e),n&&n.call(this,e)}},addSubBoxArrays:function(e){if(e){this.subBoxNames=e;for(var t=e.length,n=0;n<t;n++)this[e[n]+`s`]=[]}},createContainerBoxCtor:function(e,t,n,r){c[e+`Box`]=function(n){c.ContainerBox.call(this,e,n,t),c.addSubBoxArrays.call(this,r)},c[e+`Box`].prototype=new c.ContainerBox,n&&(c[e+`Box`].prototype.parse=n)},createMediaSampleEntryCtor:function(e,t,n){c.sampleEntryCodes[e]=[],c[e+`SampleEntry`]=function(e,t){c.SampleEntry.call(this,e,t),c.addSubBoxArrays.call(this,n)},c[e+`SampleEntry`].prototype=new c.SampleEntry,t&&(c[e+`SampleEntry`].prototype.parse=t)},createSampleEntryCtor:function(e,t,n,r){c.sampleEntryCodes[e].push(t),c[t+`SampleEntry`]=function(n){c[e+`SampleEntry`].call(this,t,n),c.addSubBoxArrays.call(this,r)},c[t+`SampleEntry`].prototype=new c[e+`SampleEntry`],n&&(c[t+`SampleEntry`].prototype.parse=n)},createEncryptedSampleEntryCtor:function(e,t,n){c.createSampleEntryCtor.call(this,e,t,n,[`sinf`])},createSampleGroupCtor:function(e,t){c[e+`SampleGroupEntry`]=function(t){c.SampleGroupEntry.call(this,e,t)},c[e+`SampleGroupEntry`].prototype=new c.SampleGroupEntry,t&&(c[e+`SampleGroupEntry`].prototype.parse=t)},createTrackGroupCtor:function(e,t){c[e+`TrackGroupTypeBox`]=function(t){c.TrackGroupTypeBox.call(this,e,t)},c[e+`TrackGroupTypeBox`].prototype=new c.TrackGroupTypeBox,t&&(c[e+`TrackGroupTypeBox`].prototype.parse=t)},createUUIDBox:function(e,t,n,r,a){c.UUIDs.push(e),c.UUIDBoxes[e]=function(a){n?c.FullBox.call(this,`uuid`,a,t,e):r?c.ContainerBox.call(this,`uuid`,a,t,e):c.Box.call(this,`uuid`,a,t,e)},c.UUIDBoxes[e].prototype=n?new c.FullBox:r?new c.ContainerBox:new c.Box,a&&(n?c.UUIDBoxes[e].prototype.parse=function(e){this.parseFullHeader(e),a&&a.call(this,e)}:c.UUIDBoxes[e].prototype.parse=a)}};c.initialize(),c.TKHD_FLAG_ENABLED=1,c.TKHD_FLAG_IN_MOVIE=2,c.TKHD_FLAG_IN_PREVIEW=4,c.TFHD_FLAG_BASE_DATA_OFFSET=1,c.TFHD_FLAG_SAMPLE_DESC=2,c.TFHD_FLAG_SAMPLE_DUR=8,c.TFHD_FLAG_SAMPLE_SIZE=16,c.TFHD_FLAG_SAMPLE_FLAGS=32,c.TFHD_FLAG_DUR_EMPTY=65536,c.TFHD_FLAG_DEFAULT_BASE_IS_MOOF=131072,c.TRUN_FLAGS_DATA_OFFSET=1,c.TRUN_FLAGS_FIRST_FLAG=4,c.TRUN_FLAGS_DURATION=256,c.TRUN_FLAGS_SIZE=512,c.TRUN_FLAGS_FLAGS=1024,c.TRUN_FLAGS_CTS_OFFSET=2048,c.Box.prototype.add=function(e){return this.addBox(new c[e+`Box`])},c.Box.prototype.addBox=function(e){return this.boxes.push(e),this[e.type+`s`]?this[e.type+`s`].push(e):this[e.type]=e,e},c.Box.prototype.set=function(e,t){return this[e]=t,this},c.Box.prototype.addEntry=function(e,t){var n=t||`entries`;return this[n]||(this[n]=[]),this[n].push(e),this},e!==void 0&&(e.BoxParser=c),c.parseUUID=function(e){return c.parseHex16(e)},c.parseHex16=function(e){for(var t=``,n=0;n<16;n++){var r=e.readUint8().toString(16);t+=r.length===1?`0`+r:r}return t},c.parseOneBox=function(e,n,r){var a,o=e.getPosition(),s=0,l,u;if(e.getEndPosition()-o<8)return t.debug(`BoxParser`,`Not enough data in stream to parse the type and size of the box`),{code:c.ERR_NOT_ENOUGH_DATA};if(r&&r<8)return t.debug(`BoxParser`,`Not enough bytes left in the parent box to parse a new box`),{code:c.ERR_NOT_ENOUGH_DATA};var d=e.readUint32(),f=e.readString(4),p=f;if(t.debug(`BoxParser`,`Found box of type '`+f+`' and size `+d+` at position `+o),s=8,f==`uuid`){if(e.getEndPosition()-e.getPosition()<16||r-s<16)return e.seek(o),t.debug(`BoxParser`,`Not enough bytes left in the parent box to parse a UUID box`),{code:c.ERR_NOT_ENOUGH_DATA};u=c.parseUUID(e),s+=16,p=u}if(d==1){if(e.getEndPosition()-e.getPosition()<8||r&&r-s<8)return e.seek(o),t.warn(`BoxParser`,`Not enough data in stream to parse the extended size of the "`+f+`" box`),{code:c.ERR_NOT_ENOUGH_DATA};d=e.readUint64(),s+=8}else if(d===0){if(r)d=r;else if(f!==`mdat`)return t.error(`BoxParser`,`Unlimited box size not supported for type: '`+f+`'`),a=new c.Box(f,d),{code:c.OK,box:a,size:a.size}}return d!==0&&d<s?(t.error(`BoxParser`,`Box of type `+f+` has an invalid size `+d+` (too small to be a box)`),{code:c.ERR_NOT_ENOUGH_DATA,type:f,size:d,hdr_size:s,start:o}):d!==0&&r&&d>r?(t.error(`BoxParser`,`Box of type '`+f+`' has a size `+d+` greater than its container size `+r),{code:c.ERR_NOT_ENOUGH_DATA,type:f,size:d,hdr_size:s,start:o}):d!==0&&o+d>e.getEndPosition()?(e.seek(o),t.info(`BoxParser`,`Not enough data in stream to parse the entire '`+f+`' box`),{code:c.ERR_NOT_ENOUGH_DATA,type:f,size:d,hdr_size:s,start:o}):n?{code:c.OK,type:f,size:d,hdr_size:s,start:o}:(c[f+`Box`]?a=new c[f+`Box`](d):f===`uuid`?c.UUIDBoxes[u]?a=new c.UUIDBoxes[u](d):(t.warn(`BoxParser`,`Unknown uuid type: '`+u+`'`),a=new c.Box(f,d),a.uuid=u,a.has_unparsed_data=!0):(t.warn(`BoxParser`,`Unknown box type: '`+f+`'`),a=new c.Box(f,d),a.has_unparsed_data=!0),a.hdr_size=s,a.start=o,a.write===c.Box.prototype.write&&a.type!==`mdat`&&(t.info(`BoxParser`,`'`+p+`' box writing not yet implemented, keeping unparsed data in memory for later write`),a.parseDataAndRewind(e)),a.parse(e),l=e.getPosition()-(a.start+a.size),l<0?(t.warn(`BoxParser`,`Parsing of box '`+p+`' did not read the entire indicated box data size (missing `+-l+` bytes), seeking forward`),e.seek(a.start+a.size)):l>0&&(t.error(`BoxParser`,`Parsing of box '`+p+`' read `+l+` more bytes than the indicated box data size, seeking backwards`),a.size!==0&&e.seek(a.start+a.size)),{code:c.OK,box:a,size:a.size})},c.Box.prototype.parse=function(e){this.type==`mdat`?this.size===0?e.seek(e.getEndPosition()):e.seek(this.start+this.size):this.data=e.readUint8Array(this.size-this.hdr_size)},c.Box.prototype.parseDataAndRewind=function(e){this.data=e.readUint8Array(this.size-this.hdr_size),e.position-=this.size-this.hdr_size},c.FullBox.prototype.parseDataAndRewind=function(e){this.parseFullHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=4,e.position-=this.size-this.hdr_size},c.FullBox.prototype.parseFullHeader=function(e){this.version=e.readUint8(),this.flags=e.readUint24(),this.hdr_size+=4},c.FullBox.prototype.parse=function(e){this.parseFullHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},c.ContainerBox.prototype.parse=function(e){for(var n,r;e.getPosition()<this.start+this.size;)if(n=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),n.code===c.OK)if(r=n.box,this.boxes.push(r),this.subBoxNames&&this.subBoxNames.indexOf(r.type)!=-1)this[this.subBoxNames[this.subBoxNames.indexOf(r.type)]+`s`].push(r);else{var a=r.type===`uuid`?r.uuid:r.type;this[a]?t.warn(`Box of type `+a+` already stored in field of this type`):this[a]=r}else return},c.Box.prototype.parseLanguage=function(e){this.language=e.readUint16();var t=[];t[0]=this.language>>10&31,t[1]=this.language>>5&31,t[2]=this.language&31,this.languageString=String.fromCharCode(t[0]+96,t[1]+96,t[2]+96)},c.SAMPLE_ENTRY_TYPE_VISUAL=`Visual`,c.SAMPLE_ENTRY_TYPE_AUDIO=`Audio`,c.SAMPLE_ENTRY_TYPE_HINT=`Hint`,c.SAMPLE_ENTRY_TYPE_METADATA=`Metadata`,c.SAMPLE_ENTRY_TYPE_SUBTITLE=`Subtitle`,c.SAMPLE_ENTRY_TYPE_SYSTEM=`System`,c.SAMPLE_ENTRY_TYPE_TEXT=`Text`,c.SampleEntry.prototype.parseHeader=function(e){e.readUint8Array(6),this.data_reference_index=e.readUint16(),this.hdr_size+=8},c.SampleEntry.prototype.parse=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},c.SampleEntry.prototype.parseDataAndRewind=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,e.position-=this.size-this.hdr_size},c.SampleEntry.prototype.parseFooter=function(e){c.ContainerBox.prototype.parse.call(this,e)},c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_HINT),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SYSTEM),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_TEXT),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,function(e){var t;this.parseHeader(e),e.readUint16(),e.readUint16(),e.readUint32Array(3),this.width=e.readUint16(),this.height=e.readUint16(),this.horizresolution=e.readUint32(),this.vertresolution=e.readUint32(),e.readUint32(),this.frame_count=e.readUint16(),t=Math.min(31,e.readUint8()),this.compressorname=e.readString(t),t<31&&e.readString(31-t),this.depth=e.readUint16(),e.readUint16(),this.parseFooter(e)}),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,function(e){this.parseHeader(e),e.readUint32Array(2),this.channel_count=e.readUint16(),this.samplesize=e.readUint16(),e.readUint16(),e.readUint16(),this.samplerate=e.readUint32()/65536,this.parseFooter(e)}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`avc1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`avc2`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`avc3`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`avc4`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`av01`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`dav1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`hvc1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`hev1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`hvt1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`lhe1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`dvh1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`dvhe`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`vvc1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`vvi1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`vvs1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`vvcN`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`vp08`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`vp09`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`avs3`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`j2ki`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`mjp2`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`mjpg`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`uncv`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`mp4a`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`ac-3`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`ac-4`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`ec-3`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`Opus`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`mha1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`mha2`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`mhm1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`mhm2`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`fLaC`),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`encv`),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`enca`),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,`encu`),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SYSTEM,`encs`),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_TEXT,`enct`),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA,`encm`),c.createBoxCtor(`a1lx`,`AV1LayeredImageIndexingProperty`,function(e){var t=((e.readUint8()&1)+1)*16;this.layer_size=[];for(var n=0;n<3;n++)t==16?this.layer_size[n]=e.readUint16():this.layer_size[n]=e.readUint32()}),c.createBoxCtor(`a1op`,`OperatingPointSelectorProperty`,function(e){this.op_index=e.readUint8()}),c.createFullBoxCtor(`auxC`,`AuxiliaryTypeProperty`,function(e){this.aux_type=e.readCString();var t=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=e.readUint8Array(t)}),c.createBoxCtor(`av1C`,`AV1CodecConfigurationBox`,function(e){var n=e.readUint8();if((n>>7&1)!=1){t.error(`av1C marker problem`);return}if(this.version=n&127,this.version!==1){t.error(`av1C version `+this.version+` not supported`);return}if(n=e.readUint8(),this.seq_profile=n>>5&7,this.seq_level_idx_0=n&31,n=e.readUint8(),this.seq_tier_0=n>>7&1,this.high_bitdepth=n>>6&1,this.twelve_bit=n>>5&1,this.monochrome=n>>4&1,this.chroma_subsampling_x=n>>3&1,this.chroma_subsampling_y=n>>2&1,this.chroma_sample_position=n&3,n=e.readUint8(),this.reserved_1=n>>5&7,this.reserved_1!==0){t.error(`av1C reserved_1 parsing problem`);return}if(this.initial_presentation_delay_present=n>>4&1,this.initial_presentation_delay_present===1)this.initial_presentation_delay_minus_one=n&15;else if(this.reserved_2=n&15,this.reserved_2!==0){t.error(`av1C reserved_2 parsing problem`);return}var r=this.size-this.hdr_size-4;this.configOBUs=e.readUint8Array(r)});function l(e){var t=`<table class='inner-table'>`;t+=`<thead><tr><th>length</th><th>nalu_data</th></tr></thead>`,t+=`<tbody>`;for(var n=0;n<e.length;n++){var r=e[n];t+=`<tr>`,t+=`<td>`+r.length+`</td>`,t+=`<td>`,t+=r.nalu.reduce(function(e,t){return e+t.toString(16).padStart(2,`0`)},`0x`),t+=`</td></tr>`}return t+=`</tbody></table>`,t}c.createBoxCtor(`avcC`,`AVCConfigurationBox`,function(e){var t,n;for(this.configurationVersion=e.readUint8(),this.AVCProfileIndication=e.readUint8(),this.profile_compatibility=e.readUint8(),this.AVCLevelIndication=e.readUint8(),this.lengthSizeMinusOne=e.readUint8()&3,this.nb_SPS_nalus=e.readUint8()&31,n=this.size-this.hdr_size-6,this.SPS=[],this.SPS.toString=function(){return l(this)},t=0;t<this.nb_SPS_nalus;t++)this.SPS[t]={},this.SPS[t].length=e.readUint16(),this.SPS[t].nalu=e.readUint8Array(this.SPS[t].length),n-=2+this.SPS[t].length;for(this.nb_PPS_nalus=e.readUint8(),n--,this.PPS=[],this.PPS.toString=function(){return l(this)},t=0;t<this.nb_PPS_nalus;t++)this.PPS[t]={},this.PPS[t].length=e.readUint16(),this.PPS[t].nalu=e.readUint8Array(this.PPS[t].length),n-=2+this.PPS[t].length;n>0&&(this.ext=e.readUint8Array(n))}),c.createBoxCtor(`btrt`,`BitRateBox`,function(e){this.bufferSizeDB=e.readUint32(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32()}),c.createFullBoxCtor(`ccst`,`CodingConstraintsBox`,function(e){var t=e.readUint8();this.all_ref_pics_intra=(t&128)==128,this.intra_pred_used=(t&64)==64,this.max_ref_per_pic=(t&63)>>2,e.readUint24()}),c.createBoxCtor(`cdef`,`ComponentDefinitionBox`,function(e){var t;for(this.channel_count=e.readUint16(),this.channel_indexes=[],this.channel_types=[],this.channel_associations=[],t=0;t<this.channel_count;t++)this.channel_indexes.push(e.readUint16()),this.channel_types.push(e.readUint16()),this.channel_associations.push(e.readUint16())}),c.createBoxCtor(`clap`,`CleanApertureBox`,function(e){this.cleanApertureWidthN=e.readUint32(),this.cleanApertureWidthD=e.readUint32(),this.cleanApertureHeightN=e.readUint32(),this.cleanApertureHeightD=e.readUint32(),this.horizOffN=e.readUint32(),this.horizOffD=e.readUint32(),this.vertOffN=e.readUint32(),this.vertOffD=e.readUint32()}),c.createBoxCtor(`clli`,`ContentLightLevelBox`,function(e){this.max_content_light_level=e.readUint16(),this.max_pic_average_light_level=e.readUint16()}),c.createFullBoxCtor(`cmex`,`CameraExtrinsicMatrixProperty`,function(e){this.flags&1&&(this.pos_x=e.readInt32()),this.flags&2&&(this.pos_y=e.readInt32()),this.flags&4&&(this.pos_z=e.readInt32()),this.flags&8&&(this.version==0?this.flags&16?(this.quat_x=e.readInt32(),this.quat_y=e.readInt32(),this.quat_z=e.readInt32()):(this.quat_x=e.readInt16(),this.quat_y=e.readInt16(),this.quat_z=e.readInt16()):this.version),this.flags&32&&(this.id=e.readUint32())}),c.createFullBoxCtor(`cmin`,`CameraIntrinsicMatrixProperty`,function(e){this.focal_length_x=e.readInt32(),this.principal_point_x=e.readInt32(),this.principal_point_y=e.readInt32(),this.flags&1&&(this.focal_length_y=e.readInt32(),this.skew_factor=e.readInt32())}),c.createBoxCtor(`cmpd`,`ComponentDefinitionBox`,function(e){for(this.component_count=e.readUint32(),this.component_types=[],this.component_type_urls=[],i=0;i<this.component_count;i++){var t=e.readUint16();this.component_types.push(t),t>=32768&&this.component_type_urls.push(e.readCString())}}),c.createFullBoxCtor(`co64`,`ChunkLargeOffsetBox`,function(e){var t=e.readUint32(),n;if(this.chunk_offsets=[],this.version===0)for(n=0;n<t;n++)this.chunk_offsets.push(e.readUint64())}),c.createFullBoxCtor(`CoLL`,`ContentLightLevelBox`,function(e){this.maxCLL=e.readUint16(),this.maxFALL=e.readUint16()}),c.createBoxCtor(`colr`,`ColourInformationBox`,function(e){if(this.colour_type=e.readString(4),this.colour_type===`nclx`){this.colour_primaries=e.readUint16(),this.transfer_characteristics=e.readUint16(),this.matrix_coefficients=e.readUint16();var t=e.readUint8();this.full_range_flag=t>>7}else (this.colour_type===`rICC`||this.colour_type===`prof`)&&(this.ICC_profile=e.readUint8Array(this.size-4))}),c.createFullBoxCtor(`cprt`,`CopyrightBox`,function(e){this.parseLanguage(e),this.notice=e.readCString()}),c.createFullBoxCtor(`cslg`,`CompositionToDecodeBox`,function(e){this.version===0&&(this.compositionToDTSShift=e.readInt32(),this.leastDecodeToDisplayDelta=e.readInt32(),this.greatestDecodeToDisplayDelta=e.readInt32(),this.compositionStartTime=e.readInt32(),this.compositionEndTime=e.readInt32())}),c.createFullBoxCtor(`ctts`,`CompositionOffsetBox`,function(e){var n=e.readUint32(),r;if(this.sample_counts=[],this.sample_offsets=[],this.version===0)for(r=0;r<n;r++){this.sample_counts.push(e.readUint32());var a=e.readInt32();a<0&&t.warn(`BoxParser`,`ctts box uses negative values without using version 1`),this.sample_offsets.push(a)}else if(this.version==1)for(r=0;r<n;r++)this.sample_counts.push(e.readUint32()),this.sample_offsets.push(e.readInt32())}),c.createBoxCtor(`dac3`,`AC3SpecificBox`,function(e){var t=e.readUint8(),n=e.readUint8(),r=e.readUint8();this.fscod=t>>6,this.bsid=t>>1&31,this.bsmod=(t&1)<<2|n>>6&3,this.acmod=n>>3&7,this.lfeon=n>>2&1,this.bit_rate_code=n&3|r>>5&7}),c.createBoxCtor(`dec3`,`EC3SpecificBox`,function(e){var t=e.readUint16();this.data_rate=t>>3,this.num_ind_sub=t&7,this.ind_subs=[];for(var n=0;n<this.num_ind_sub+1;n++){var r={};this.ind_subs.push(r);var a=e.readUint8(),o=e.readUint8(),s=e.readUint8();r.fscod=a>>6,r.bsid=a>>1&31,r.bsmod=(a&1)<<4|o>>4&15,r.acmod=o>>1&7,r.lfeon=o&1,r.num_dep_sub=s>>1&15,r.num_dep_sub>0&&(r.chan_loc=(s&1)<<8|e.readUint8())}}),c.createFullBoxCtor(`dfLa`,`FLACSpecificBox`,function(e){var t=127,n=128,r=[],a=[`STREAMINFO`,`PADDING`,`APPLICATION`,`SEEKTABLE`,`VORBIS_COMMENT`,`CUESHEET`,`PICTURE`,`RESERVED`];do{var o=e.readUint8(),s=Math.min(o&t,a.length-1);if(s?e.readUint8Array(e.readUint24()):(e.readUint8Array(13),this.samplerate=e.readUint32()>>12,e.readUint8Array(20)),r.push(a[s]),o&n)break}while(!0);this.numMetadataBlocks=r.length+` (`+r.join(`, `)+`)`}),c.createBoxCtor(`dimm`,`hintimmediateBytesSent`,function(e){this.bytessent=e.readUint64()}),c.createBoxCtor(`dmax`,`hintlongestpacket`,function(e){this.time=e.readUint32()}),c.createBoxCtor(`dmed`,`hintmediaBytesSent`,function(e){this.bytessent=e.readUint64()}),c.createBoxCtor(`dOps`,`OpusSpecificBox`,function(e){if(this.Version=e.readUint8(),this.OutputChannelCount=e.readUint8(),this.PreSkip=e.readUint16(),this.InputSampleRate=e.readUint32(),this.OutputGain=e.readInt16(),this.ChannelMappingFamily=e.readUint8(),this.ChannelMappingFamily!==0){this.StreamCount=e.readUint8(),this.CoupledCount=e.readUint8(),this.ChannelMapping=[];for(var t=0;t<this.OutputChannelCount;t++)this.ChannelMapping[t]=e.readUint8()}}),c.createFullBoxCtor(`dref`,`DataReferenceBox`,function(e){var t,n;this.entries=[];for(var r=e.readUint32(),a=0;a<r;a++)if(t=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),t.code===c.OK)n=t.box,this.entries.push(n);else return}),c.createBoxCtor(`drep`,`hintrepeatedBytesSent`,function(e){this.bytessent=e.readUint64()}),c.createFullBoxCtor(`elng`,`ExtendedLanguageBox`,function(e){this.extended_language=e.readString(this.size-this.hdr_size)}),c.createFullBoxCtor(`elst`,`EditListBox`,function(e){this.entries=[];for(var t=e.readUint32(),n=0;n<t;n++){var r={};this.entries.push(r),this.version===1?(r.segment_duration=e.readUint64(),r.media_time=e.readInt64()):(r.segment_duration=e.readUint32(),r.media_time=e.readInt32()),r.media_rate_integer=e.readInt16(),r.media_rate_fraction=e.readInt16()}}),c.createFullBoxCtor(`emsg`,`EventMessageBox`,function(e){this.version==1?(this.timescale=e.readUint32(),this.presentation_time=e.readUint64(),this.event_duration=e.readUint32(),this.id=e.readUint32(),this.scheme_id_uri=e.readCString(),this.value=e.readCString()):(this.scheme_id_uri=e.readCString(),this.value=e.readCString(),this.timescale=e.readUint32(),this.presentation_time_delta=e.readUint32(),this.event_duration=e.readUint32(),this.id=e.readUint32());var t=this.size-this.hdr_size-(16+(this.scheme_id_uri.length+1)+(this.value.length+1));this.version==1&&(t-=4),this.message_data=e.readUint8Array(t)}),c.createEntityToGroupCtor=function(e,t){c[e+`Box`]=function(t){c.FullBox.call(this,e,t)},c[e+`Box`].prototype=new c.FullBox,c[e+`Box`].prototype.parse=function(e){if(this.parseFullHeader(e),t)t.call(this,e);else for(this.group_id=e.readUint32(),this.num_entities_in_group=e.readUint32(),this.entity_ids=[],i=0;i<this.num_entities_in_group;i++){var n=e.readUint32();this.entity_ids.push(n)}}},c.createEntityToGroupCtor(`aebr`),c.createEntityToGroupCtor(`afbr`),c.createEntityToGroupCtor(`albc`),c.createEntityToGroupCtor(`altr`),c.createEntityToGroupCtor(`brst`),c.createEntityToGroupCtor(`dobr`),c.createEntityToGroupCtor(`eqiv`),c.createEntityToGroupCtor(`favc`),c.createEntityToGroupCtor(`fobr`),c.createEntityToGroupCtor(`iaug`),c.createEntityToGroupCtor(`pano`),c.createEntityToGroupCtor(`slid`),c.createEntityToGroupCtor(`ster`),c.createEntityToGroupCtor(`tsyn`),c.createEntityToGroupCtor(`wbbr`),c.createEntityToGroupCtor(`prgr`),c.createEntityToGroupCtor(`pymd`,function(e){this.group_id=e.readUint32(),this.num_entities_in_group=e.readUint32(),this.entity_ids=[];for(var t=0;t<this.num_entities_in_group;t++){var n=e.readUint32();this.entity_ids.push(n)}for(this.tile_size_x=e.readUint16(),this.tile_size_y=e.readUint16(),this.layer_binning=[],this.tiles_in_layer_column_minus1=[],this.tiles_in_layer_row_minus1=[],t=0;t<this.num_entities_in_group;t++)this.layer_binning[t]=e.readUint16(),this.tiles_in_layer_row_minus1[t]=e.readUint16(),this.tiles_in_layer_column_minus1[t]=e.readUint16()}),c.createFullBoxCtor(`esds`,`ElementaryStreamDescriptorBox`,function(e){var t=e.readUint8Array(this.size-this.hdr_size);if(s!==void 0){var n=new s;this.esd=n.parseOneDescriptor(new r(t.buffer,0,r.BIG_ENDIAN))}}),c.createBoxCtor(`fiel`,`FieldHandlingBox`,function(e){this.fieldCount=e.readUint8(),this.fieldOrdering=e.readUint8()}),c.createBoxCtor(`frma`,`OriginalFormatBox`,function(e){this.data_format=e.readString(4)}),c.createBoxCtor(`ftyp`,`FileTypeBox`,function(e){var t=this.size-this.hdr_size;this.major_brand=e.readString(4),this.minor_version=e.readUint32(),t-=8,this.compatible_brands=[];for(var n=0;t>=4;)this.compatible_brands[n]=e.readString(4),t-=4,n++}),c.createFullBoxCtor(`hdlr`,`HandlerBox`,function(e){this.version===0&&(e.readUint32(),this.handler=e.readString(4),e.readUint32Array(3),this.name=e.readString(this.size-this.hdr_size-20),this.name[this.name.length-1]===`\0`&&(this.name=this.name.slice(0,-1)))}),c.createBoxCtor(`hvcC`,`HEVCConfigurationBox`,function(e){var t,n,r,a;this.configurationVersion=e.readUint8(),a=e.readUint8(),this.general_profile_space=a>>6,this.general_tier_flag=(a&32)>>5,this.general_profile_idc=a&31,this.general_profile_compatibility=e.readUint32(),this.general_constraint_indicator=e.readUint8Array(6),this.general_level_idc=e.readUint8(),this.min_spatial_segmentation_idc=e.readUint16()&4095,this.parallelismType=e.readUint8()&3,this.chroma_format_idc=e.readUint8()&3,this.bit_depth_luma_minus8=e.readUint8()&7,this.bit_depth_chroma_minus8=e.readUint8()&7,this.avgFrameRate=e.readUint16(),a=e.readUint8(),this.constantFrameRate=a>>6,this.numTemporalLayers=(a&13)>>3,this.temporalIdNested=(a&4)>>2,this.lengthSizeMinusOne=a&3,this.nalu_arrays=[],this.nalu_arrays.toString=function(){var e=`<table class='inner-table'>`;e+=`<thead><tr><th>completeness</th><th>nalu_type</th><th>nalu_data</th></tr></thead>`,e+=`<tbody>`;for(var t=0;t<this.length;t++){var n=this[t];e+=`<tr>`,e+=`<td rowspan='`+n.length+`'>`+n.completeness+`</td>`,e+=`<td rowspan='`+n.length+`'>`+n.nalu_type+`</td>`;for(var r=0;r<n.length;r++){var a=n[r];r!==0&&(e+=`<tr>`),e+=`<td>`,e+=a.data.reduce(function(e,t){return e+t.toString(16).padStart(2,`0`)},`0x`),e+=`</td></tr>`}}return e+=`</tbody></table>`,e};var o=e.readUint8();for(t=0;t<o;t++){var s=[];this.nalu_arrays.push(s),a=e.readUint8(),s.completeness=(a&128)>>7,s.nalu_type=a&63;var c=e.readUint16();for(n=0;n<c;n++){var l={};s.push(l),r=e.readUint16(),l.data=e.readUint8Array(r)}}}),c.createFullBoxCtor(`iinf`,`ItemInfoBox`,function(e){var n;this.version===0?this.entry_count=e.readUint16():this.entry_count=e.readUint32(),this.item_infos=[];for(var r=0;r<this.entry_count;r++)if(n=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),n.code===c.OK)n.box.type!==`infe`&&t.error(`BoxParser`,`Expected 'infe' box, got `+n.box.type),this.item_infos[r]=n.box;else return}),c.createFullBoxCtor(`iloc`,`ItemLocationBox`,function(e){var t=e.readUint8();this.offset_size=t>>4&15,this.length_size=t&15,t=e.readUint8(),this.base_offset_size=t>>4&15,this.version===1||this.version===2?this.index_size=t&15:this.index_size=0,this.items=[];var n=0;if(this.version<2)n=e.readUint16();else if(this.version===2)n=e.readUint32();else throw`version of iloc box not supported`;for(var r=0;r<n;r++){var a={};if(this.items.push(a),this.version<2)a.item_ID=e.readUint16();else if(this.version===2)a.item_ID=e.readUint32();else throw`version of iloc box not supported`;switch(this.version===1||this.version===2?a.construction_method=e.readUint16()&15:a.construction_method=0,a.data_reference_index=e.readUint16(),this.base_offset_size){case 0:a.base_offset=0;break;case 4:a.base_offset=e.readUint32();break;case 8:a.base_offset=e.readUint64();break;default:throw`Error reading base offset size`}var o=e.readUint16();a.extents=[];for(var s=0;s<o;s++){var c={};if(a.extents.push(c),this.version===1||this.version===2)switch(this.index_size){case 0:c.extent_index=0;break;case 4:c.extent_index=e.readUint32();break;case 8:c.extent_index=e.readUint64();break;default:throw`Error reading extent index`}switch(this.offset_size){case 0:c.extent_offset=0;break;case 4:c.extent_offset=e.readUint32();break;case 8:c.extent_offset=e.readUint64();break;default:throw`Error reading extent index`}switch(this.length_size){case 0:c.extent_length=0;break;case 4:c.extent_length=e.readUint32();break;case 8:c.extent_length=e.readUint64();break;default:throw`Error reading extent index`}}}}),c.createBoxCtor(`imir`,`ImageMirror`,function(e){var t=e.readUint8();this.reserved=t>>7,this.axis=t&1}),c.createFullBoxCtor(`infe`,`ItemInfoEntry`,function(e){if((this.version===0||this.version===1)&&(this.item_ID=e.readUint16(),this.item_protection_index=e.readUint16(),this.item_name=e.readCString(),this.content_type=e.readCString(),this.content_encoding=e.readCString()),this.version===1){this.extension_type=e.readString(4),t.warn(`BoxParser`,`Cannot parse extension type`),e.seek(this.start+this.size);return}this.version>=2&&(this.version===2?this.item_ID=e.readUint16():this.version===3&&(this.item_ID=e.readUint32()),this.item_protection_index=e.readUint16(),this.item_type=e.readString(4),this.item_name=e.readCString(),this.item_type===`mime`?(this.content_type=e.readCString(),this.content_encoding=e.readCString()):this.item_type===`uri `&&(this.item_uri_type=e.readCString()))}),c.createFullBoxCtor(`ipma`,`ItemPropertyAssociationBox`,function(e){var t,n;for(entry_count=e.readUint32(),this.associations=[],t=0;t<entry_count;t++){var r={};this.associations.push(r),this.version<1?r.id=e.readUint16():r.id=e.readUint32();var a=e.readUint8();for(r.props=[],n=0;n<a;n++){var o=e.readUint8(),s={};r.props.push(s),s.essential=(o&128)>>7==1,this.flags&1?s.property_index=(o&127)<<8|e.readUint8():s.property_index=o&127}}}),c.createFullBoxCtor(`iref`,`ItemReferenceBox`,function(e){var n,r;for(this.references=[];e.getPosition()<this.start+this.size;)if(n=c.parseOneBox(e,!0,this.size-(e.getPosition()-this.start)),n.code===c.OK)r=this.version===0?new c.SingleItemTypeReferenceBox(n.type,n.size,n.hdr_size,n.start):new c.SingleItemTypeReferenceBoxLarge(n.type,n.size,n.hdr_size,n.start),r.write===c.Box.prototype.write&&r.type!==`mdat`&&(t.warn(`BoxParser`,r.type+` box writing not yet implemented, keeping unparsed data in memory for later write`),r.parseDataAndRewind(e)),r.parse(e),this.references.push(r);else return}),c.createBoxCtor(`irot`,`ImageRotation`,function(e){this.angle=e.readUint8()&3}),c.createFullBoxCtor(`ispe`,`ImageSpatialExtentsProperty`,function(e){this.image_width=e.readUint32(),this.image_height=e.readUint32()}),c.createFullBoxCtor(`kind`,`KindBox`,function(e){this.schemeURI=e.readCString(),this.value=e.readCString()}),c.createFullBoxCtor(`leva`,`LevelAssignmentBox`,function(e){var n=e.readUint8();this.levels=[];for(var r=0;r<n;r++){var a={};this.levels[r]=a,a.track_ID=e.readUint32();var o=e.readUint8();switch(a.padding_flag=o>>7,a.assignment_type=o&127,a.assignment_type){case 0:a.grouping_type=e.readString(4);break;case 1:a.grouping_type=e.readString(4),a.grouping_type_parameter=e.readUint32();break;case 2:break;case 3:break;case 4:a.sub_track_id=e.readUint32();break;default:t.warn(`BoxParser`,`Unknown leva assignement type`)}}}),c.createBoxCtor(`lhvC`,`LHEVCConfigurationBox`,function(e){var t,n,r;this.configurationVersion=e.readUint8(),this.min_spatial_segmentation_idc=e.readUint16()&4095,this.parallelismType=e.readUint8()&3,r=e.readUint8(),this.numTemporalLayers=(r&13)>>3,this.temporalIdNested=(r&4)>>2,this.lengthSizeMinusOne=r&3,this.nalu_arrays=[],this.nalu_arrays.toString=function(){var e=`<table class='inner-table'>`;e+=`<thead><tr><th>completeness</th><th>nalu_type</th><th>nalu_data</th></tr></thead>`,e+=`<tbody>`;for(var t=0;t<this.length;t++){var n=this[t];e+=`<tr>`,e+=`<td rowspan='`+n.length+`'>`+n.completeness+`</td>`,e+=`<td rowspan='`+n.length+`'>`+n.nalu_type+`</td>`;for(var r=0;r<n.length;r++){var a=n[r];r!==0&&(e+=`<tr>`),e+=`<td>`,e+=a.data.reduce(function(e,t){return e+t.toString(16).padStart(2,`0`)},`0x`),e+=`</td></tr>`}}return e+=`</tbody></table>`,e};var a=e.readUint8();for(t=0;t<a;t++){var o=[];this.nalu_arrays.push(o),r=e.readUint8(),o.completeness=(r&128)>>7,o.nalu_type=r&63;var s=e.readUint16();for(n=0;n<s;n++){var c={};o.push(c);var l=e.readUint16();c.data=e.readUint8Array(l)}}}),c.createBoxCtor(`lsel`,`LayerSelectorProperty`,function(e){this.layer_id=e.readUint16()}),c.createBoxCtor(`maxr`,`hintmaxrate`,function(e){this.period=e.readUint32(),this.bytes=e.readUint32()});function u(e,t){this.x=e,this.y=t}u.prototype.toString=function(){return`(`+this.x+`,`+this.y+`)`},c.createBoxCtor(`mdcv`,`MasteringDisplayColourVolumeBox`,function(e){this.display_primaries=[],this.display_primaries[0]=new u(e.readUint16(),e.readUint16()),this.display_primaries[1]=new u(e.readUint16(),e.readUint16()),this.display_primaries[2]=new u(e.readUint16(),e.readUint16()),this.white_point=new u(e.readUint16(),e.readUint16()),this.max_display_mastering_luminance=e.readUint32(),this.min_display_mastering_luminance=e.readUint32()}),c.createFullBoxCtor(`mdhd`,`MediaHeaderBox`,function(e){this.version==1?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.parseLanguage(e),e.readUint16()}),c.createFullBoxCtor(`mehd`,`MovieExtendsHeaderBox`,function(e){this.flags&1&&(t.warn(`BoxParser`,`mehd box incorrectly uses flags set to 1, converting version to 1`),this.version=1),this.version==1?this.fragment_duration=e.readUint64():this.fragment_duration=e.readUint32()}),c.createFullBoxCtor(`meta`,`MetaBox`,function(e){this.boxes=[],c.ContainerBox.prototype.parse.call(this,e)}),c.createFullBoxCtor(`mfhd`,`MovieFragmentHeaderBox`,function(e){this.sequence_number=e.readUint32()}),c.createFullBoxCtor(`mfro`,`MovieFragmentRandomAccessOffsetBox`,function(e){this._size=e.readUint32()}),c.createFullBoxCtor(`mskC`,`MaskConfigurationProperty`,function(e){this.bits_per_pixel=e.readUint8()}),c.createFullBoxCtor(`mvhd`,`MovieHeaderBox`,function(e){this.version==1?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.rate=e.readUint32(),this.volume=e.readUint16()>>8,e.readUint16(),e.readUint32Array(2),this.matrix=e.readUint32Array(9),e.readUint32Array(6),this.next_track_id=e.readUint32()}),c.createBoxCtor(`npck`,`hintPacketsSent`,function(e){this.packetssent=e.readUint32()}),c.createBoxCtor(`nump`,`hintPacketsSent`,function(e){this.packetssent=e.readUint64()}),c.createFullBoxCtor(`padb`,`PaddingBitsBox`,function(e){var t=e.readUint32();this.padbits=[];for(var n=0;n<Math.floor((t+1)/2);n++)this.padbits=e.readUint8()}),c.createBoxCtor(`pasp`,`PixelAspectRatioBox`,function(e){this.hSpacing=e.readUint32(),this.vSpacing=e.readUint32()}),c.createBoxCtor(`payl`,`CuePayloadBox`,function(e){this.text=e.readString(this.size-this.hdr_size)}),c.createBoxCtor(`payt`,`hintpayloadID`,function(e){this.payloadID=e.readUint32();var t=e.readUint8();this.rtpmap_string=e.readString(t)}),c.createFullBoxCtor(`pdin`,`ProgressiveDownloadInfoBox`,function(e){var t=(this.size-this.hdr_size)/8;this.rate=[],this.initial_delay=[];for(var n=0;n<t;n++)this.rate[n]=e.readUint32(),this.initial_delay[n]=e.readUint32()}),c.createFullBoxCtor(`pitm`,`PrimaryItemBox`,function(e){this.version===0?this.item_id=e.readUint16():this.item_id=e.readUint32()}),c.createFullBoxCtor(`pixi`,`PixelInformationProperty`,function(e){var t;for(this.num_channels=e.readUint8(),this.bits_per_channels=[],t=0;t<this.num_channels;t++)this.bits_per_channels[t]=e.readUint8()}),c.createBoxCtor(`pmax`,`hintlargestpacket`,function(e){this.bytes=e.readUint32()}),c.createFullBoxCtor(`prdi`,`ProgressiveDerivedImageItemInformationProperty`,function(e){if(this.step_count=e.readUint16(),this.item_count=[],this.flags&2)for(var t=0;t<this.step_count;t++)this.item_count[t]=e.readUint16()}),c.createFullBoxCtor(`prft`,`ProducerReferenceTimeBox`,function(e){this.ref_track_id=e.readUint32(),this.ntp_timestamp=e.readUint64(),this.version===0?this.media_time=e.readUint32():this.media_time=e.readUint64()}),c.createFullBoxCtor(`pssh`,`ProtectionSystemSpecificHeaderBox`,function(e){if(this.system_id=c.parseHex16(e),this.version>0){var t=e.readUint32();this.kid=[];for(var n=0;n<t;n++)this.kid[n]=c.parseHex16(e)}var r=e.readUint32();r>0&&(this.data=e.readUint8Array(r))}),c.createFullBoxCtor(`clef`,`TrackCleanApertureDimensionsBox`,function(e){this.width=e.readUint32(),this.height=e.readUint32()}),c.createFullBoxCtor(`enof`,`TrackEncodedPixelsDimensionsBox`,function(e){this.width=e.readUint32(),this.height=e.readUint32()}),c.createFullBoxCtor(`prof`,`TrackProductionApertureDimensionsBox`,function(e){this.width=e.readUint32(),this.height=e.readUint32()}),c.createContainerBoxCtor(`tapt`,`TrackApertureModeDimensionsBox`,null,[`clef`,`prof`,`enof`]),c.createBoxCtor(`rtp `,`rtpmoviehintinformation`,function(e){this.descriptionformat=e.readString(4),this.sdptext=e.readString(this.size-this.hdr_size-4)}),c.createFullBoxCtor(`saio`,`SampleAuxiliaryInformationOffsetsBox`,function(e){this.flags&1&&(this.aux_info_type=e.readString(4),this.aux_info_type_parameter=e.readUint32());var t=e.readUint32();this.offset=[];for(var n=0;n<t;n++)this.version===0?this.offset[n]=e.readUint32():this.offset[n]=e.readUint64()}),c.createFullBoxCtor(`saiz`,`SampleAuxiliaryInformationSizesBox`,function(e){if(this.flags&1&&(this.aux_info_type=e.readString(4),this.aux_info_type_parameter=e.readUint32()),this.default_sample_info_size=e.readUint8(),this.sample_count=e.readUint32(),this.sample_info_size=[],this.default_sample_info_size===0)for(var t=0;t<this.sample_count;t++)this.sample_info_size[t]=e.readUint8()}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA,`mett`,function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA,`metx`,function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.namespace=e.readCString(),this.schema_location=e.readCString(),this.parseFooter(e)}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,`sbtt`,function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,`stpp`,function(e){this.parseHeader(e),this.namespace=e.readCString(),this.schema_location=e.readCString(),this.auxiliary_mime_types=e.readCString(),this.parseFooter(e)}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,`stxt`,function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,`tx3g`,function(e){this.parseHeader(e),this.displayFlags=e.readUint32(),this.horizontal_justification=e.readInt8(),this.vertical_justification=e.readInt8(),this.bg_color_rgba=e.readUint8Array(4),this.box_record=e.readInt16Array(4),this.style_record=e.readUint8Array(12),this.parseFooter(e)}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA,`wvtt`,function(e){this.parseHeader(e),this.parseFooter(e)}),c.createSampleGroupCtor(`alst`,function(e){var t,n=e.readUint16();for(this.first_output_sample=e.readUint16(),this.sample_offset=[],t=0;t<n;t++)this.sample_offset[t]=e.readUint32();var r=this.description_length-4-4*n;for(this.num_output_samples=[],this.num_total_samples=[],t=0;t<r/4;t++)this.num_output_samples[t]=e.readUint16(),this.num_total_samples[t]=e.readUint16()}),c.createSampleGroupCtor(`avll`,function(e){this.layerNumber=e.readUint8(),this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()}),c.createSampleGroupCtor(`avss`,function(e){this.subSequenceIdentifier=e.readUint16(),this.layerNumber=e.readUint8();var t=e.readUint8();this.durationFlag=t>>7,this.avgRateFlag=t>>6&1,this.durationFlag&&(this.duration=e.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()),this.dependency=[];for(var n=e.readUint8(),r=0;r<n;r++){var a={};this.dependency.push(a),a.subSeqDirectionFlag=e.readUint8(),a.layerNumber=e.readUint8(),a.subSequenceIdentifier=e.readUint16()}}),c.createSampleGroupCtor(`dtrt`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createSampleGroupCtor(`mvif`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createSampleGroupCtor(`prol`,function(e){this.roll_distance=e.readInt16()}),c.createSampleGroupCtor(`rap `,function(e){var t=e.readUint8();this.num_leading_samples_known=t>>7,this.num_leading_samples=t&127}),c.createSampleGroupCtor(`rash`,function(e){if(this.operation_point_count=e.readUint16(),this.description_length!==2+(this.operation_point_count===1?2:this.operation_point_count*6)+9)t.warn(`BoxParser`,`Mismatch in `+this.grouping_type+` sample group length`),this.data=e.readUint8Array(this.description_length-2);else{if(this.operation_point_count===1)this.target_rate_share=e.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var n=0;n<this.operation_point_count;n++)this.available_bitrate[n]=e.readUint32(),this.target_rate_share[n]=e.readUint16()}this.maximum_bitrate=e.readUint32(),this.minimum_bitrate=e.readUint32(),this.discard_priority=e.readUint8()}}),c.createSampleGroupCtor(`roll`,function(e){this.roll_distance=e.readInt16()}),c.SampleGroupEntry.prototype.parse=function(e){t.warn(`BoxParser`,`Unknown Sample Group type: `+this.grouping_type),this.data=e.readUint8Array(this.description_length)},c.createSampleGroupCtor(`scif`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createSampleGroupCtor(`scnm`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createSampleGroupCtor(`seig`,function(e){this.reserved=e.readUint8();var t=e.readUint8();this.crypt_byte_block=t>>4,this.skip_byte_block=t&15,this.isProtected=e.readUint8(),this.Per_Sample_IV_Size=e.readUint8(),this.KID=c.parseHex16(e),this.constant_IV_size=0,this.constant_IV=0,this.isProtected===1&&this.Per_Sample_IV_Size===0&&(this.constant_IV_size=e.readUint8(),this.constant_IV=e.readUint8Array(this.constant_IV_size))}),c.createSampleGroupCtor(`stsa`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createSampleGroupCtor(`sync`,function(e){var t=e.readUint8();this.NAL_unit_type=t&63}),c.createSampleGroupCtor(`tele`,function(e){var t=e.readUint8();this.level_independently_decodable=t>>7}),c.createSampleGroupCtor(`tsas`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createSampleGroupCtor(`tscl`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createSampleGroupCtor(`vipr`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createFullBoxCtor(`sbgp`,`SampleToGroupBox`,function(e){this.grouping_type=e.readString(4),this.version===1?this.grouping_type_parameter=e.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var t=e.readUint32(),n=0;n<t;n++){var r={};this.entries.push(r),r.sample_count=e.readInt32(),r.group_description_index=e.readInt32()}});function d(e,t){this.bad_pixel_row=e,this.bad_pixel_column=t}d.prototype.toString=function(){return`[row: `+this.bad_pixel_row+`, column: `+this.bad_pixel_column+`]`},c.createFullBoxCtor(`sbpm`,`SensorBadPixelsMapBox`,function(e){var t;for(this.component_count=e.readUint16(),this.component_index=[],t=0;t<this.component_count;t++)this.component_index.push(e.readUint16());var n=e.readUint8();for(this.correction_applied=(n&128)==128,this.num_bad_rows=e.readUint32(),this.num_bad_cols=e.readUint32(),this.num_bad_pixels=e.readUint32(),this.bad_rows=[],this.bad_columns=[],this.bad_pixels=[],t=0;t<this.num_bad_rows;t++)this.bad_rows.push(e.readUint32());for(t=0;t<this.num_bad_cols;t++)this.bad_columns.push(e.readUint32());for(t=0;t<this.num_bad_pixels;t++){var r=e.readUint32(),a=e.readUint32();this.bad_pixels.push(new d(r,a))}}),c.createFullBoxCtor(`schm`,`SchemeTypeBox`,function(e){this.scheme_type=e.readString(4),this.scheme_version=e.readUint32(),this.flags&1&&(this.scheme_uri=e.readString(this.size-this.hdr_size-8))}),c.createBoxCtor(`sdp `,`rtptracksdphintinformation`,function(e){this.sdptext=e.readString(this.size-this.hdr_size)}),c.createFullBoxCtor(`sdtp`,`SampleDependencyTypeBox`,function(e){var t,n=this.size-this.hdr_size;this.is_leading=[],this.sample_depends_on=[],this.sample_is_depended_on=[],this.sample_has_redundancy=[];for(var r=0;r<n;r++)t=e.readUint8(),this.is_leading[r]=t>>6,this.sample_depends_on[r]=t>>4&3,this.sample_is_depended_on[r]=t>>2&3,this.sample_has_redundancy[r]=t&3}),c.createFullBoxCtor(`senc`,`SampleEncryptionBox`),c.createFullBoxCtor(`sgpd`,`SampleGroupDescriptionBox`,function(e){this.grouping_type=e.readString(4),t.debug(`BoxParser`,`Found Sample Groups of type `+this.grouping_type),this.version===1?this.default_length=e.readUint32():this.default_length=0,this.version>=2&&(this.default_group_description_index=e.readUint32()),this.entries=[];for(var n=e.readUint32(),r=0;r<n;r++){var a=c[this.grouping_type+`SampleGroupEntry`]?new c[this.grouping_type+`SampleGroupEntry`](this.grouping_type):new c.SampleGroupEntry(this.grouping_type);this.entries.push(a),this.version===1&&this.default_length===0?a.description_length=e.readUint32():a.description_length=this.default_length,a.write===c.SampleGroupEntry.prototype.write&&(t.info(`BoxParser`,`SampleGroup for type `+this.grouping_type+` writing not yet implemented, keeping unparsed data in memory for later write`),a.data=e.readUint8Array(a.description_length),e.position-=a.description_length),a.parse(e)}}),c.createFullBoxCtor(`sidx`,`CompressedSegmentIndexBox`,function(e){this.reference_ID=e.readUint32(),this.timescale=e.readUint32(),this.version===0?(this.earliest_presentation_time=e.readUint32(),this.first_offset=e.readUint32()):(this.earliest_presentation_time=e.readUint64(),this.first_offset=e.readUint64()),e.readUint16(),this.references=[];for(var t=e.readUint16(),n=0;n<t;n++){var r={};this.references.push(r);var a=e.readUint32();r.reference_type=a>>31&1,r.referenced_size=a&2147483647,r.subsegment_duration=e.readUint32(),a=e.readUint32(),r.starts_with_SAP=a>>31&1,r.SAP_type=a>>28&7,r.SAP_delta_time=a&268435455}}),c.SingleItemTypeReferenceBox=function(e,t,n,r){c.Box.call(this,e,t),this.hdr_size=n,this.start=r},c.SingleItemTypeReferenceBox.prototype=new c.Box,c.SingleItemTypeReferenceBox.prototype.parse=function(e){this.from_item_ID=e.readUint16();var t=e.readUint16();this.references=[];for(var n=0;n<t;n++)this.references[n]={},this.references[n].to_item_ID=e.readUint16()},c.SingleItemTypeReferenceBoxLarge=function(e,t,n,r){c.Box.call(this,e,t),this.hdr_size=n,this.start=r},c.SingleItemTypeReferenceBoxLarge.prototype=new c.Box,c.SingleItemTypeReferenceBoxLarge.prototype.parse=function(e){this.from_item_ID=e.readUint32();var t=e.readUint16();this.references=[];for(var n=0;n<t;n++)this.references[n]={},this.references[n].to_item_ID=e.readUint32()},c.createFullBoxCtor(`SmDm`,`SMPTE2086MasteringDisplayMetadataBox`,function(e){this.primaryRChromaticity_x=e.readUint16(),this.primaryRChromaticity_y=e.readUint16(),this.primaryGChromaticity_x=e.readUint16(),this.primaryGChromaticity_y=e.readUint16(),this.primaryBChromaticity_x=e.readUint16(),this.primaryBChromaticity_y=e.readUint16(),this.whitePointChromaticity_x=e.readUint16(),this.whitePointChromaticity_y=e.readUint16(),this.luminanceMax=e.readUint32(),this.luminanceMin=e.readUint32()}),c.createFullBoxCtor(`smhd`,`SoundMediaHeaderBox`,function(e){this.balance=e.readUint16(),e.readUint16()}),c.createFullBoxCtor(`ssix`,`CompressedSubsegmentIndexBox`,function(e){this.subsegments=[];for(var t=e.readUint32(),n=0;n<t;n++){var r={};this.subsegments.push(r),r.ranges=[];for(var a=e.readUint32(),o=0;o<a;o++){var s={};r.ranges.push(s),s.level=e.readUint8(),s.range_size=e.readUint24()}}}),c.createFullBoxCtor(`stco`,`ChunkOffsetBox`,function(e){var t=e.readUint32();if(this.chunk_offsets=[],this.version===0)for(var n=0;n<t;n++)this.chunk_offsets.push(e.readUint32())}),c.createFullBoxCtor(`stdp`,`DegradationPriorityBox`,function(e){var t=(this.size-this.hdr_size)/2;this.priority=[];for(var n=0;n<t;n++)this.priority[n]=e.readUint16()}),c.createFullBoxCtor(`sthd`,`SubtitleMediaHeaderBox`),c.createFullBoxCtor(`stri`,`SubTrackInformationBox`,function(e){this.switch_group=e.readUint16(),this.alternate_group=e.readUint16(),this.sub_track_id=e.readUint32();var t=(this.size-this.hdr_size-8)/4;this.attribute_list=[];for(var n=0;n<t;n++)this.attribute_list[n]=e.readUint32()}),c.createFullBoxCtor(`stsc`,`SampleToChunkBox`,function(e){var t=e.readUint32(),n;if(this.first_chunk=[],this.samples_per_chunk=[],this.sample_description_index=[],this.version===0)for(n=0;n<t;n++)this.first_chunk.push(e.readUint32()),this.samples_per_chunk.push(e.readUint32()),this.sample_description_index.push(e.readUint32())}),c.createFullBoxCtor(`stsd`,`SampleDescriptionBox`,function(e){var n,r,a,o;for(this.entries=[],a=e.readUint32(),n=1;n<=a;n++)if(r=c.parseOneBox(e,!0,this.size-(e.getPosition()-this.start)),r.code===c.OK)c[r.type+`SampleEntry`]?(o=new c[r.type+`SampleEntry`](r.size),o.hdr_size=r.hdr_size,o.start=r.start):(t.warn(`BoxParser`,`Unknown sample entry type: `+r.type),o=new c.SampleEntry(r.type,r.size,r.hdr_size,r.start)),o.write===c.SampleEntry.prototype.write&&(t.info(`BoxParser`,`SampleEntry `+o.type+` box writing not yet implemented, keeping unparsed data in memory for later write`),o.parseDataAndRewind(e)),o.parse(e),this.entries.push(o);else return}),c.createFullBoxCtor(`stsg`,`SubTrackSampleGroupBox`,function(e){this.grouping_type=e.readUint32();var t=e.readUint16();this.group_description_index=[];for(var n=0;n<t;n++)this.group_description_index[n]=e.readUint32()}),c.createFullBoxCtor(`stsh`,`ShadowSyncSampleBox`,function(e){var t=e.readUint32(),n;if(this.shadowed_sample_numbers=[],this.sync_sample_numbers=[],this.version===0)for(n=0;n<t;n++)this.shadowed_sample_numbers.push(e.readUint32()),this.sync_sample_numbers.push(e.readUint32())}),c.createFullBoxCtor(`stss`,`SyncSampleBox`,function(e){var t,n=e.readUint32();if(this.version===0)for(this.sample_numbers=[],t=0;t<n;t++)this.sample_numbers.push(e.readUint32())}),c.createFullBoxCtor(`stsz`,`SampleSizeBox`,function(e){var t;if(this.sample_sizes=[],this.version===0)for(this.sample_size=e.readUint32(),this.sample_count=e.readUint32(),t=0;t<this.sample_count;t++)this.sample_size===0?this.sample_sizes.push(e.readUint32()):this.sample_sizes[t]=this.sample_size}),c.createFullBoxCtor(`stts`,`TimeToSampleBox`,function(e){var n=e.readUint32(),r,a;if(this.sample_counts=[],this.sample_deltas=[],this.version===0)for(r=0;r<n;r++)this.sample_counts.push(e.readUint32()),a=e.readInt32(),a<0&&(t.warn(`BoxParser`,`File uses negative stts sample delta, using value 1 instead, sync may be lost!`),a=1),this.sample_deltas.push(a)}),c.createFullBoxCtor(`stvi`,`StereoVideoBox`,function(e){var t=e.readUint32();this.single_view_allowed=t&3,this.stereo_scheme=e.readUint32();var n=e.readUint32();this.stereo_indication_type=e.readString(n);var r,a;for(this.boxes=[];e.getPosition()<this.start+this.size;)if(r=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),r.code===c.OK)a=r.box,this.boxes.push(a),this[a.type]=a;else return}),c.createBoxCtor(`styp`,`SegmentTypeBox`,function(e){c.ftypBox.prototype.parse.call(this,e)}),c.createFullBoxCtor(`stz2`,`CompactSampleSizeBox`,function(e){var n,r;if(this.sample_sizes=[],this.version===0)if(this.reserved=e.readUint24(),this.field_size=e.readUint8(),r=e.readUint32(),this.field_size===4)for(n=0;n<r;n+=2){var a=e.readUint8();this.sample_sizes[n]=a>>4&15,this.sample_sizes[n+1]=a&15}else if(this.field_size===8)for(n=0;n<r;n++)this.sample_sizes[n]=e.readUint8();else if(this.field_size===16)for(n=0;n<r;n++)this.sample_sizes[n]=e.readUint16();else t.error(`BoxParser`,`Error in length field in stz2 box`)}),c.createFullBoxCtor(`subs`,`SubSampleInformationBox`,function(e){var t,n,r=e.readUint32(),a;for(this.entries=[],t=0;t<r;t++){var o={};if(this.entries[t]=o,o.sample_delta=e.readUint32(),o.subsamples=[],a=e.readUint16(),a>0)for(n=0;n<a;n++){var s={};o.subsamples.push(s),this.version==1?s.size=e.readUint32():s.size=e.readUint16(),s.priority=e.readUint8(),s.discardable=e.readUint8(),s.codec_specific_parameters=e.readUint32()}}}),c.createFullBoxCtor(`tenc`,`TrackEncryptionBox`,function(e){if(e.readUint8(),this.version===0)e.readUint8();else{var t=e.readUint8();this.default_crypt_byte_block=t>>4&15,this.default_skip_byte_block=t&15}this.default_isProtected=e.readUint8(),this.default_Per_Sample_IV_Size=e.readUint8(),this.default_KID=c.parseHex16(e),this.default_isProtected===1&&this.default_Per_Sample_IV_Size===0&&(this.default_constant_IV_size=e.readUint8(),this.default_constant_IV=e.readUint8Array(this.default_constant_IV_size))}),c.createFullBoxCtor(`tfdt`,`TrackFragmentBaseMediaDecodeTimeBox`,function(e){this.version==1?this.baseMediaDecodeTime=e.readUint64():this.baseMediaDecodeTime=e.readUint32()}),c.createFullBoxCtor(`tfhd`,`TrackFragmentHeaderBox`,function(e){var t=0;this.track_id=e.readUint32(),this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=e.readUint64(),t+=8):this.base_data_offset=0,this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=e.readUint32(),t+=4):this.default_sample_description_index=0,this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=e.readUint32(),t+=4):this.default_sample_duration=0,this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=e.readUint32(),t+=4):this.default_sample_size=0,this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_SAMPLE_FLAGS?(this.default_sample_flags=e.readUint32(),t+=4):this.default_sample_flags=0}),c.createFullBoxCtor(`tfra`,`TrackFragmentRandomAccessBox`,function(e){this.track_ID=e.readUint32(),e.readUint24();var t=e.readUint8();this.length_size_of_traf_num=t>>4&3,this.length_size_of_trun_num=t>>2&3,this.length_size_of_sample_num=t&3,this.entries=[];for(var n=e.readUint32(),r=0;r<n;r++)this.version===1?(this.time=e.readUint64(),this.moof_offset=e.readUint64()):(this.time=e.readUint32(),this.moof_offset=e.readUint32()),this.traf_number=e[`readUint`+8*(this.length_size_of_traf_num+1)](),this.trun_number=e[`readUint`+8*(this.length_size_of_trun_num+1)](),this.sample_number=e[`readUint`+8*(this.length_size_of_sample_num+1)]()}),c.createFullBoxCtor(`tkhd`,`TrackHeaderBox`,function(e){this.version==1?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.track_id=e.readUint32(),e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.track_id=e.readUint32(),e.readUint32(),this.duration=e.readUint32()),e.readUint32Array(2),this.layer=e.readInt16(),this.alternate_group=e.readInt16(),this.volume=e.readInt16()>>8,e.readUint16(),this.matrix=e.readInt32Array(9),this.width=e.readUint32(),this.height=e.readUint32()}),c.createBoxCtor(`tmax`,`hintmaxrelativetime`,function(e){this.time=e.readUint32()}),c.createBoxCtor(`tmin`,`hintminrelativetime`,function(e){this.time=e.readUint32()}),c.createBoxCtor(`totl`,`hintBytesSent`,function(e){this.bytessent=e.readUint32()}),c.createBoxCtor(`tpay`,`hintBytesSent`,function(e){this.bytessent=e.readUint32()}),c.createBoxCtor(`tpyl`,`hintBytesSent`,function(e){this.bytessent=e.readUint64()}),c.TrackGroupTypeBox.prototype.parse=function(e){this.parseFullHeader(e),this.track_group_id=e.readUint32()},c.createTrackGroupCtor(`msrc`),c.TrackReferenceTypeBox=function(e,t,n,r){c.Box.call(this,e,t),this.hdr_size=n,this.start=r},c.TrackReferenceTypeBox.prototype=new c.Box,c.TrackReferenceTypeBox.prototype.parse=function(e){this.track_ids=e.readUint32Array((this.size-this.hdr_size)/4)},c.trefBox.prototype.parse=function(e){for(var n,r;e.getPosition()<this.start+this.size;)if(n=c.parseOneBox(e,!0,this.size-(e.getPosition()-this.start)),n.code===c.OK)r=new c.TrackReferenceTypeBox(n.type,n.size,n.hdr_size,n.start),r.write===c.Box.prototype.write&&r.type!==`mdat`&&(t.info(`BoxParser`,`TrackReference `+r.type+` box writing not yet implemented, keeping unparsed data in memory for later write`),r.parseDataAndRewind(e)),r.parse(e),this.boxes.push(r);else return},c.createFullBoxCtor(`trep`,`TrackExtensionPropertiesBox`,function(e){for(this.track_ID=e.readUint32(),this.boxes=[];e.getPosition()<this.start+this.size;)if(ret=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),ret.code===c.OK)box=ret.box,this.boxes.push(box);else return}),c.createFullBoxCtor(`trex`,`TrackExtendsBox`,function(e){this.track_id=e.readUint32(),this.default_sample_description_index=e.readUint32(),this.default_sample_duration=e.readUint32(),this.default_sample_size=e.readUint32(),this.default_sample_flags=e.readUint32()}),c.createBoxCtor(`trpy`,`hintBytesSent`,function(e){this.bytessent=e.readUint64()}),c.createFullBoxCtor(`trun`,`TrackRunBox`,function(e){var t=0;if(this.sample_count=e.readUint32(),t+=4,this.size-this.hdr_size>t&&this.flags&c.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=e.readInt32(),t+=4):this.data_offset=0,this.size-this.hdr_size>t&&this.flags&c.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=e.readUint32(),t+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>t)for(var n=0;n<this.sample_count;n++)this.flags&c.TRUN_FLAGS_DURATION&&(this.sample_duration[n]=e.readUint32()),this.flags&c.TRUN_FLAGS_SIZE&&(this.sample_size[n]=e.readUint32()),this.flags&c.TRUN_FLAGS_FLAGS&&(this.sample_flags[n]=e.readUint32()),this.flags&c.TRUN_FLAGS_CTS_OFFSET&&(this.version===0?this.sample_composition_time_offset[n]=e.readUint32():this.sample_composition_time_offset[n]=e.readInt32())}),c.createFullBoxCtor(`tsel`,`TrackSelectionBox`,function(e){this.switch_group=e.readUint32();var t=(this.size-this.hdr_size-4)/4;this.attribute_list=[];for(var n=0;n<t;n++)this.attribute_list[n]=e.readUint32()}),c.createFullBoxCtor(`txtC`,`TextConfigBox`,function(e){this.config=e.readCString()}),c.createBoxCtor(`tyco`,`TypeCombinationBox`,function(e){var t=(this.size-this.hdr_size)/4;this.compatible_brands=[];for(var n=0;n<t;n++)this.compatible_brands[n]=e.readString(4)}),c.createFullBoxCtor(`udes`,`UserDescriptionProperty`,function(e){this.lang=e.readCString(),this.name=e.readCString(),this.description=e.readCString(),this.tags=e.readCString()}),c.createFullBoxCtor(`uncC`,`UncompressedFrameConfigBox`,function(e){var t;if(this.profile=e.readString(4),this.version!=1&&this.version==0){for(this.component_count=e.readUint32(),this.component_index=[],this.component_bit_depth_minus_one=[],this.component_format=[],this.component_align_size=[],t=0;t<this.component_count;t++)this.component_index.push(e.readUint16()),this.component_bit_depth_minus_one.push(e.readUint8()),this.component_format.push(e.readUint8()),this.component_align_size.push(e.readUint8());this.sampling_type=e.readUint8(),this.interleave_type=e.readUint8(),this.block_size=e.readUint8();var n=e.readUint8();this.component_little_endian=n>>7&1,this.block_pad_lsb=n>>6&1,this.block_little_endian=n>>5&1,this.block_reversed=n>>4&1,this.pad_unknown=n>>3&1,this.pixel_size=e.readUint32(),this.row_align_size=e.readUint32(),this.tile_align_size=e.readUint32(),this.num_tile_cols_minus_one=e.readUint32(),this.num_tile_rows_minus_one=e.readUint32()}}),c.createFullBoxCtor(`url `,`DataEntryUrlBox`,function(e){this.flags!==1&&(this.location=e.readCString())}),c.createFullBoxCtor(`urn `,`DataEntryUrnBox`,function(e){this.name=e.readCString(),this.size-this.hdr_size-this.name.length-1>0&&(this.location=e.readCString())}),c.createUUIDBox(`a5d40b30e81411ddba2f0800200c9a66`,`LiveServerManifestBox`,!0,!1,function(e){this.LiveServerManifest=e.readString(this.size-this.hdr_size).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}),c.createUUIDBox(`d08a4f1810f34a82b6c832d8aba183d3`,`PiffProtectionSystemSpecificHeaderBox`,!0,!1,function(e){this.system_id=c.parseHex16(e);var t=e.readUint32();t>0&&(this.data=e.readUint8Array(t))}),c.createUUIDBox(`a2394f525a9b4f14a2446c427c648df4`,`PiffSampleEncryptionBox`,!0,!1),c.createUUIDBox(`8974dbce7be74c5184f97148f9882554`,`PiffTrackEncryptionBox`,!0,!1,function(e){this.default_AlgorithmID=e.readUint24(),this.default_IV_size=e.readUint8(),this.default_KID=c.parseHex16(e)}),c.createUUIDBox(`d4807ef2ca3946958e5426cb9e46a79f`,`TfrfBox`,!0,!1,function(e){this.fragment_count=e.readUint8(),this.entries=[];for(var t=0;t<this.fragment_count;t++){var n={},r=0,a=0;this.version===1?(r=e.readUint64(),a=e.readUint64()):(r=e.readUint32(),a=e.readUint32()),n.absolute_time=r,n.absolute_duration=a,this.entries.push(n)}}),c.createUUIDBox(`6d1d9b0542d544e680e2141daff757b2`,`TfxdBox`,!0,!1,function(e){this.version===1?(this.absolute_time=e.readUint64(),this.duration=e.readUint64()):(this.absolute_time=e.readUint32(),this.duration=e.readUint32())}),c.createFullBoxCtor(`vmhd`,`VideoMediaHeaderBox`,function(e){this.graphicsmode=e.readUint16(),this.opcolor=e.readUint16Array(3)}),c.createFullBoxCtor(`vpcC`,`VPCodecConfigurationRecord`,function(e){var t;this.version===1?(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4,this.chromaSubsampling=t>>1&7,this.videoFullRangeFlag=t&1,this.colourPrimaries=e.readUint8(),this.transferCharacteristics=e.readUint8(),this.matrixCoefficients=e.readUint8(),this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize)):(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4&15,this.colorSpace=t&15,t=e.readUint8(),this.chromaSubsampling=t>>4&15,this.transferFunction=t>>1&7,this.videoFullRangeFlag=t&1,this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize))}),c.createBoxCtor(`vttC`,`WebVTTConfigurationBox`,function(e){this.text=e.readString(this.size-this.hdr_size)}),c.createFullBoxCtor(`vvcC`,`VvcConfigurationBox`,function(e){var t,n,r={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(e){this.held_bits=e.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(e){this.held_bits=e.readUint16(),this.num_held_bits=16},extract_bits:function(e){var t=this.held_bits>>this.num_held_bits-e&(1<<e)-1;return this.num_held_bits-=e,t}};if(r.stream_read_1_bytes(e),r.extract_bits(5),this.lengthSizeMinusOne=r.extract_bits(2),this.ptl_present_flag=r.extract_bits(1),this.ptl_present_flag){if(r.stream_read_2_bytes(e),this.ols_idx=r.extract_bits(9),this.num_sublayers=r.extract_bits(3),this.constant_frame_rate=r.extract_bits(2),this.chroma_format_idc=r.extract_bits(2),r.stream_read_1_bytes(e),this.bit_depth_minus8=r.extract_bits(3),r.extract_bits(5),r.stream_read_2_bytes(e),r.extract_bits(2),this.num_bytes_constraint_info=r.extract_bits(6),this.general_profile_idc=r.extract_bits(7),this.general_tier_flag=r.extract_bits(1),this.general_level_idc=e.readUint8(),r.stream_read_1_bytes(e),this.ptl_frame_only_constraint_flag=r.extract_bits(1),this.ptl_multilayer_enabled_flag=r.extract_bits(1),this.general_constraint_info=new Uint8Array(this.num_bytes_constraint_info),this.num_bytes_constraint_info){for(t=0;t<this.num_bytes_constraint_info-1;t++){var a=r.extract_bits(6);r.stream_read_1_bytes(e);var o=r.extract_bits(2);this.general_constraint_info[t]=a<<2|o}this.general_constraint_info[this.num_bytes_constraint_info-1]=r.extract_bits(6)}else r.extract_bits(6);if(this.num_sublayers>1){for(r.stream_read_1_bytes(e),this.ptl_sublayer_present_mask=0,n=this.num_sublayers-2;n>=0;--n){var s=r.extract_bits(1);this.ptl_sublayer_present_mask|=s<<n}for(n=this.num_sublayers;n<=8&&this.num_sublayers>1;++n)r.extract_bits(1);for(this.sublayer_level_idc=[],n=this.num_sublayers-2;n>=0;--n)this.ptl_sublayer_present_mask&1<<n&&(this.sublayer_level_idc[n]=e.readUint8())}if(this.ptl_num_sub_profiles=e.readUint8(),this.general_sub_profile_idc=[],this.ptl_num_sub_profiles)for(t=0;t<this.ptl_num_sub_profiles;t++)this.general_sub_profile_idc.push(e.readUint32());this.max_picture_width=e.readUint16(),this.max_picture_height=e.readUint16(),this.avg_frame_rate=e.readUint16()}var c=12,l=13;this.nalu_arrays=[];var u=e.readUint8();for(t=0;t<u;t++){var d=[];this.nalu_arrays.push(d),r.stream_read_1_bytes(e),d.completeness=r.extract_bits(1),r.extract_bits(2),d.nalu_type=r.extract_bits(5);var f=1;for(d.nalu_type!=l&&d.nalu_type!=c&&(f=e.readUint16()),n=0;n<f;n++){var p=e.readUint16();d.push({data:e.readUint8Array(p),length:p})}}}),c.createFullBoxCtor(`vvnC`,`VvcNALUConfigBox`,function(e){var t=strm.readUint8();this.lengthSizeMinusOne=t&3}),c.SampleEntry.prototype.isVideo=function(){return!1},c.SampleEntry.prototype.isAudio=function(){return!1},c.SampleEntry.prototype.isSubtitle=function(){return!1},c.SampleEntry.prototype.isMetadata=function(){return!1},c.SampleEntry.prototype.isHint=function(){return!1},c.SampleEntry.prototype.getCodec=function(){return this.type.replace(`.`,``)},c.SampleEntry.prototype.getWidth=function(){return``},c.SampleEntry.prototype.getHeight=function(){return``},c.SampleEntry.prototype.getChannelCount=function(){return``},c.SampleEntry.prototype.getSampleRate=function(){return``},c.SampleEntry.prototype.getSampleSize=function(){return``},c.VisualSampleEntry.prototype.isVideo=function(){return!0},c.VisualSampleEntry.prototype.getWidth=function(){return this.width},c.VisualSampleEntry.prototype.getHeight=function(){return this.height},c.AudioSampleEntry.prototype.isAudio=function(){return!0},c.AudioSampleEntry.prototype.getChannelCount=function(){return this.channel_count},c.AudioSampleEntry.prototype.getSampleRate=function(){return this.samplerate},c.AudioSampleEntry.prototype.getSampleSize=function(){return this.samplesize},c.SubtitleSampleEntry.prototype.isSubtitle=function(){return!0},c.MetadataSampleEntry.prototype.isMetadata=function(){return!0},c.decimalToHex=function(e,t){var n=Number(e).toString(16);for(t??=t=2;n.length<t;)n=`0`+n;return n},c.avc1SampleEntry.prototype.getCodec=c.avc2SampleEntry.prototype.getCodec=c.avc3SampleEntry.prototype.getCodec=c.avc4SampleEntry.prototype.getCodec=function(){var e=c.SampleEntry.prototype.getCodec.call(this);return this.avcC?e+`.`+c.decimalToHex(this.avcC.AVCProfileIndication)+c.decimalToHex(this.avcC.profile_compatibility)+c.decimalToHex(this.avcC.AVCLevelIndication):e},c.hev1SampleEntry.prototype.getCodec=c.hvc1SampleEntry.prototype.getCodec=function(){var e,t=c.SampleEntry.prototype.getCodec.call(this);if(this.hvcC){switch(t+=`.`,this.hvcC.general_profile_space){case 0:t+=``;break;case 1:t+=`A`;break;case 2:t+=`B`;break;case 3:t+=`C`;break}t+=this.hvcC.general_profile_idc,t+=`.`;var n=this.hvcC.general_profile_compatibility,r=0;for(e=0;e<32&&(r|=n&1,e!=31);e++)r<<=1,n>>=1;t+=c.decimalToHex(r,0),t+=`.`,this.hvcC.general_tier_flag===0?t+=`L`:t+=`H`,t+=this.hvcC.general_level_idc;var a=!1,o=``;for(e=5;e>=0;e--)(this.hvcC.general_constraint_indicator[e]||a)&&(o=`.`+c.decimalToHex(this.hvcC.general_constraint_indicator[e],0)+o,a=!0);t+=o}return t},c.vvc1SampleEntry.prototype.getCodec=c.vvi1SampleEntry.prototype.getCodec=function(){var e,t=c.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){t+=`.`+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?t+=`.H`:t+=`.L`,t+=this.vvcC.general_level_idc;var n=``;if(this.vvcC.general_constraint_info){var r=[],a=0;a|=this.vvcC.ptl_frame_only_constraint<<7,a|=this.vvcC.ptl_multilayer_enabled<<6;var o;for(e=0;e<this.vvcC.general_constraint_info.length;++e)a|=this.vvcC.general_constraint_info[e]>>2&63,r.push(a),a&&(o=e),a=this.vvcC.general_constraint_info[e]>>2&3;if(o===void 0)n=`.CA`;else{n=`.C`;var s=`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`,l=0,u=0;for(e=0;e<=o;++e)for(l=l<<8|r[e],u+=8;u>=5;){var d=l>>u-5&31;n+=s[d],u-=5,l&=(1<<u)-1}u&&(l<<=5-u,n+=s[l&31])}}t+=n}return t},c.mp4aSampleEntry.prototype.getCodec=function(){var e=c.SampleEntry.prototype.getCodec.call(this);if(this.esds&&this.esds.esd){var t=this.esds.esd.getOTI(),n=this.esds.esd.getAudioConfig();return e+`.`+c.decimalToHex(t)+(n?`.`+n:``)}else return e},c.stxtSampleEntry.prototype.getCodec=function(){var e=c.SampleEntry.prototype.getCodec.call(this);return this.mime_format?e+`.`+this.mime_format:e},c.vp08SampleEntry.prototype.getCodec=c.vp09SampleEntry.prototype.getCodec=function(){var e=c.SampleEntry.prototype.getCodec.call(this),t=this.vpcC.level;t==0&&(t=`00`);var n=this.vpcC.bitDepth;return n==8&&(n=`08`),e+`.0`+this.vpcC.profile+`.`+t+`.`+n},c.av01SampleEntry.prototype.getCodec=function(){var e=c.SampleEntry.prototype.getCodec.call(this),t=this.av1C.seq_level_idx_0;t<10&&(t=`0`+t);var n;return this.av1C.seq_profile===2&&this.av1C.high_bitdepth===1?n=this.av1C.twelve_bit===1?`12`:`10`:this.av1C.seq_profile<=2&&(n=this.av1C.high_bitdepth===1?`10`:`08`),e+`.`+this.av1C.seq_profile+`.`+t+(this.av1C.seq_tier_0?`H`:`M`)+`.`+n},c.Box.prototype.writeHeader=function(e,n){this.size+=8,this.size>a&&(this.size+=8),this.type===`uuid`&&(this.size+=16),t.debug(`BoxWriter`,`Writing box `+this.type+` of size: `+this.size+` at position `+e.getPosition()+(n||``)),this.size>a?e.writeUint32(1):(this.sizePosition=e.getPosition(),e.writeUint32(this.size)),e.writeString(this.type,null,4),this.type===`uuid`&&e.writeUint8Array(this.uuid),this.size>a&&e.writeUint64(this.size)},c.FullBox.prototype.writeHeader=function(e){this.size+=4,c.Box.prototype.writeHeader.call(this,e,` v=`+this.version+` f=`+this.flags),e.writeUint8(this.version),e.writeUint24(this.flags)},c.Box.prototype.write=function(e){this.type===`mdat`?this.data&&(this.size=this.data.length,this.writeHeader(e),e.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(e),this.data&&e.writeUint8Array(this.data))},c.ContainerBox.prototype.write=function(e){this.size=0,this.writeHeader(e);for(var n=0;n<this.boxes.length;n++)this.boxes[n]&&(this.boxes[n].write(e),this.size+=this.boxes[n].size);t.debug(`BoxWriter`,`Adjusting box `+this.type+` with new size `+this.size),e.adjustUint32(this.sizePosition,this.size)},c.TrackReferenceTypeBox.prototype.write=function(e){this.size=this.track_ids.length*4,this.writeHeader(e),e.writeUint32Array(this.track_ids)},c.avcCBox.prototype.write=function(e){var t;for(this.size=7,t=0;t<this.SPS.length;t++)this.size+=2+this.SPS[t].length;for(t=0;t<this.PPS.length;t++)this.size+=2+this.PPS[t].length;for(this.ext&&(this.size+=this.ext.length),this.writeHeader(e),e.writeUint8(this.configurationVersion),e.writeUint8(this.AVCProfileIndication),e.writeUint8(this.profile_compatibility),e.writeUint8(this.AVCLevelIndication),e.writeUint8(this.lengthSizeMinusOne+252),e.writeUint8(this.SPS.length+224),t=0;t<this.SPS.length;t++)e.writeUint16(this.SPS[t].length),e.writeUint8Array(this.SPS[t].nalu);for(e.writeUint8(this.PPS.length),t=0;t<this.PPS.length;t++)e.writeUint16(this.PPS[t].length),e.writeUint8Array(this.PPS[t].nalu);this.ext&&e.writeUint8Array(this.ext)},c.co64Box.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.chunk_offsets.length,this.writeHeader(e),e.writeUint32(this.chunk_offsets.length),t=0;t<this.chunk_offsets.length;t++)e.writeUint64(this.chunk_offsets[t])},c.cslgBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20,this.writeHeader(e),e.writeInt32(this.compositionToDTSShift),e.writeInt32(this.leastDecodeToDisplayDelta),e.writeInt32(this.greatestDecodeToDisplayDelta),e.writeInt32(this.compositionStartTime),e.writeInt32(this.compositionEndTime)},c.cttsBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(e),e.writeUint32(this.sample_counts.length),t=0;t<this.sample_counts.length;t++)e.writeUint32(this.sample_counts[t]),this.version===1?e.writeInt32(this.sample_offsets[t]):e.writeUint32(this.sample_offsets[t])},c.drefBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.entries.length);for(var n=0;n<this.entries.length;n++)this.entries[n].write(e),this.size+=this.entries[n].size;t.debug(`BoxWriter`,`Adjusting box `+this.type+` with new size `+this.size),e.adjustUint32(this.sizePosition,this.size)},c.elngBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=this.extended_language.length,this.writeHeader(e),e.writeString(this.extended_language)},c.elstBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+12*this.entries.length,this.writeHeader(e),e.writeUint32(this.entries.length);for(var t=0;t<this.entries.length;t++){var n=this.entries[t];e.writeUint32(n.segment_duration),e.writeInt32(n.media_time),e.writeInt16(n.media_rate_integer),e.writeInt16(n.media_rate_fraction)}},c.emsgBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=16+this.message_data.length+(this.scheme_id_uri.length+1)+(this.value.length+1),this.writeHeader(e),e.writeCString(this.scheme_id_uri),e.writeCString(this.value),e.writeUint32(this.timescale),e.writeUint32(this.presentation_time_delta),e.writeUint32(this.event_duration),e.writeUint32(this.id),e.writeUint8Array(this.message_data)},c.ftypBox.prototype.write=function(e){this.size=8+4*this.compatible_brands.length,this.writeHeader(e),e.writeString(this.major_brand,null,4),e.writeUint32(this.minor_version);for(var t=0;t<this.compatible_brands.length;t++)e.writeString(this.compatible_brands[t],null,4)},c.hdlrBox.prototype.write=function(e){this.size=20+this.name.length+1,this.version=0,this.flags=0,this.writeHeader(e),e.writeUint32(0),e.writeString(this.handler,null,4),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeCString(this.name)},c.hvcCBox.prototype.write=function(e){var t,n;for(this.size=23,t=0;t<this.nalu_arrays.length;t++)for(this.size+=3,n=0;n<this.nalu_arrays[t].length;n++)this.size+=2+this.nalu_arrays[t][n].data.length;for(this.writeHeader(e),e.writeUint8(this.configurationVersion),e.writeUint8((this.general_profile_space<<6)+(this.general_tier_flag<<5)+this.general_profile_idc),e.writeUint32(this.general_profile_compatibility),e.writeUint8Array(this.general_constraint_indicator),e.writeUint8(this.general_level_idc),e.writeUint16(this.min_spatial_segmentation_idc+(15<<24)),e.writeUint8(this.parallelismType+252),e.writeUint8(this.chroma_format_idc+252),e.writeUint8(this.bit_depth_luma_minus8+248),e.writeUint8(this.bit_depth_chroma_minus8+248),e.writeUint16(this.avgFrameRate),e.writeUint8((this.constantFrameRate<<6)+(this.numTemporalLayers<<3)+(this.temporalIdNested<<2)+this.lengthSizeMinusOne),e.writeUint8(this.nalu_arrays.length),t=0;t<this.nalu_arrays.length;t++)for(e.writeUint8((this.nalu_arrays[t].completeness<<7)+this.nalu_arrays[t].nalu_type),e.writeUint16(this.nalu_arrays[t].length),n=0;n<this.nalu_arrays[t].length;n++)e.writeUint16(this.nalu_arrays[t][n].data.length),e.writeUint8Array(this.nalu_arrays[t][n].data)},c.kindBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=this.schemeURI.length+1+(this.value.length+1),this.writeHeader(e),e.writeCString(this.schemeURI),e.writeCString(this.value)},c.mdhdBox.prototype.write=function(e){this.size=20,this.flags=0,this.version=0,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.timescale),e.writeUint32(this.duration),e.writeUint16(this.language),e.writeUint16(0)},c.mehdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.fragment_duration)},c.mfhdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.sequence_number)},c.mvhdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=96,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.timescale),e.writeUint32(this.duration),e.writeUint32(this.rate),e.writeUint16(this.volume<<8),e.writeUint16(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32Array(this.matrix),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(this.next_track_id)},c.SampleEntry.prototype.writeHeader=function(e){this.size=8,c.Box.prototype.writeHeader.call(this,e),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint16(this.data_reference_index)},c.SampleEntry.prototype.writeFooter=function(e){for(var n=0;n<this.boxes.length;n++)this.boxes[n].write(e),this.size+=this.boxes[n].size;t.debug(`BoxWriter`,`Adjusting box `+this.type+` with new size `+this.size),e.adjustUint32(this.sizePosition,this.size)},c.SampleEntry.prototype.write=function(e){this.writeHeader(e),e.writeUint8Array(this.data),this.size+=this.data.length,t.debug(`BoxWriter`,`Adjusting box `+this.type+` with new size `+this.size),e.adjustUint32(this.sizePosition,this.size)},c.VisualSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=70,e.writeUint16(0),e.writeUint16(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint16(this.width),e.writeUint16(this.height),e.writeUint32(this.horizresolution),e.writeUint32(this.vertresolution),e.writeUint32(0),e.writeUint16(this.frame_count),e.writeUint8(Math.min(31,this.compressorname.length)),e.writeString(this.compressorname,null,31),e.writeUint16(this.depth),e.writeInt16(-1),this.writeFooter(e)},c.AudioSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=20,e.writeUint32(0),e.writeUint32(0),e.writeUint16(this.channel_count),e.writeUint16(this.samplesize),e.writeUint16(0),e.writeUint16(0),e.writeUint32(this.samplerate<<16),this.writeFooter(e)},c.stppSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=this.namespace.length+1+this.schema_location.length+1+this.auxiliary_mime_types.length+1,e.writeCString(this.namespace),e.writeCString(this.schema_location),e.writeCString(this.auxiliary_mime_types),this.writeFooter(e)},c.SampleGroupEntry.prototype.write=function(e){e.writeUint8Array(this.data)},c.sbgpBox.prototype.write=function(e){this.version=1,this.flags=0,this.size=12+8*this.entries.length,this.writeHeader(e),e.writeString(this.grouping_type,null,4),e.writeUint32(this.grouping_type_parameter),e.writeUint32(this.entries.length);for(var t=0;t<this.entries.length;t++){var n=this.entries[t];e.writeInt32(n.sample_count),e.writeInt32(n.group_description_index)}},c.sgpdBox.prototype.write=function(e){var t,n;for(this.flags=0,this.size=12,t=0;t<this.entries.length;t++)n=this.entries[t],this.version===1&&(this.default_length===0&&(this.size+=4),this.size+=n.data.length);for(this.writeHeader(e),e.writeString(this.grouping_type,null,4),this.version===1&&e.writeUint32(this.default_length),this.version>=2&&e.writeUint32(this.default_sample_description_index),e.writeUint32(this.entries.length),t=0;t<this.entries.length;t++)n=this.entries[t],this.version===1&&this.default_length===0&&e.writeUint32(n.description_length),n.write(e)},c.sidxBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20+12*this.references.length,this.writeHeader(e),e.writeUint32(this.reference_ID),e.writeUint32(this.timescale),e.writeUint32(this.earliest_presentation_time),e.writeUint32(this.first_offset),e.writeUint16(0),e.writeUint16(this.references.length);for(var t=0;t<this.references.length;t++){var n=this.references[t];e.writeUint32(n.reference_type<<31|n.referenced_size),e.writeUint32(n.subsegment_duration),e.writeUint32(n.starts_with_SAP<<31|n.SAP_type<<28|n.SAP_delta_time)}},c.smhdBox.prototype.write=function(e){this.version=0,this.flags=1,this.size=4,this.writeHeader(e),e.writeUint16(this.balance),e.writeUint16(0)},c.stcoBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+4*this.chunk_offsets.length,this.writeHeader(e),e.writeUint32(this.chunk_offsets.length),e.writeUint32Array(this.chunk_offsets)},c.stscBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+12*this.first_chunk.length,this.writeHeader(e),e.writeUint32(this.first_chunk.length),t=0;t<this.first_chunk.length;t++)e.writeUint32(this.first_chunk[t]),e.writeUint32(this.samples_per_chunk[t]),e.writeUint32(this.sample_description_index[t])},c.stsdBox.prototype.write=function(e){var n;for(this.version=0,this.flags=0,this.size=0,this.writeHeader(e),e.writeUint32(this.entries.length),this.size+=4,n=0;n<this.entries.length;n++)this.entries[n].write(e),this.size+=this.entries[n].size;t.debug(`BoxWriter`,`Adjusting box `+this.type+` with new size `+this.size),e.adjustUint32(this.sizePosition,this.size)},c.stshBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.shadowed_sample_numbers.length,this.writeHeader(e),e.writeUint32(this.shadowed_sample_numbers.length),t=0;t<this.shadowed_sample_numbers.length;t++)e.writeUint32(this.shadowed_sample_numbers[t]),e.writeUint32(this.sync_sample_numbers[t])},c.stssBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+4*this.sample_numbers.length,this.writeHeader(e),e.writeUint32(this.sample_numbers.length),e.writeUint32Array(this.sample_numbers)},c.stszBox.prototype.write=function(e){var t,n=!0;if(this.version=0,this.flags=0,this.sample_sizes.length>0)for(t=0;t+1<this.sample_sizes.length;)if(this.sample_sizes[t+1]!==this.sample_sizes[0]){n=!1;break}else t++;else n=!1;this.size=8,n||(this.size+=4*this.sample_sizes.length),this.writeHeader(e),n?e.writeUint32(this.sample_sizes[0]):e.writeUint32(0),e.writeUint32(this.sample_sizes.length),n||e.writeUint32Array(this.sample_sizes)},c.sttsBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(e),e.writeUint32(this.sample_counts.length),t=0;t<this.sample_counts.length;t++)e.writeUint32(this.sample_counts[t]),e.writeUint32(this.sample_deltas[t])},c.tfdtBox.prototype.write=function(e){var t=2**32-1;this.version=+(this.baseMediaDecodeTime>t),this.flags=0,this.size=4,this.version===1&&(this.size+=4),this.writeHeader(e),this.version===1?e.writeUint64(this.baseMediaDecodeTime):e.writeUint32(this.baseMediaDecodeTime)},c.tfhdBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&c.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&c.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&c.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&c.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&c.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(e),e.writeUint32(this.track_id),this.flags&c.TFHD_FLAG_BASE_DATA_OFFSET&&e.writeUint64(this.base_data_offset),this.flags&c.TFHD_FLAG_SAMPLE_DESC&&e.writeUint32(this.default_sample_description_index),this.flags&c.TFHD_FLAG_SAMPLE_DUR&&e.writeUint32(this.default_sample_duration),this.flags&c.TFHD_FLAG_SAMPLE_SIZE&&e.writeUint32(this.default_sample_size),this.flags&c.TFHD_FLAG_SAMPLE_FLAGS&&e.writeUint32(this.default_sample_flags)},c.tkhdBox.prototype.write=function(e){this.version=0,this.size=80,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.track_id),e.writeUint32(0),e.writeUint32(this.duration),e.writeUint32(0),e.writeUint32(0),e.writeInt16(this.layer),e.writeInt16(this.alternate_group),e.writeInt16(this.volume<<8),e.writeUint16(0),e.writeInt32Array(this.matrix),e.writeUint32(this.width),e.writeUint32(this.height)},c.trexBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20,this.writeHeader(e),e.writeUint32(this.track_id),e.writeUint32(this.default_sample_description_index),e.writeUint32(this.default_sample_duration),e.writeUint32(this.default_sample_size),e.writeUint32(this.default_sample_flags)},c.trunBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&c.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&c.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&c.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&c.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&c.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&c.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(e),e.writeUint32(this.sample_count),this.flags&c.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=e.getPosition(),e.writeInt32(this.data_offset)),this.flags&c.TRUN_FLAGS_FIRST_FLAG&&e.writeUint32(this.first_sample_flags);for(var t=0;t<this.sample_count;t++)this.flags&c.TRUN_FLAGS_DURATION&&e.writeUint32(this.sample_duration[t]),this.flags&c.TRUN_FLAGS_SIZE&&e.writeUint32(this.sample_size[t]),this.flags&c.TRUN_FLAGS_FLAGS&&e.writeUint32(this.sample_flags[t]),this.flags&c.TRUN_FLAGS_CTS_OFFSET&&(this.version===0?e.writeUint32(this.sample_composition_time_offset[t]):e.writeInt32(this.sample_composition_time_offset[t]))},c[`url Box`].prototype.write=function(e){this.version=0,this.location?(this.flags=0,this.size=this.location.length+1):(this.flags=1,this.size=0),this.writeHeader(e),this.location&&e.writeCString(this.location)},c[`urn Box`].prototype.write=function(e){this.version=0,this.flags=0,this.size=this.name.length+1+(this.location?this.location.length+1:0),this.writeHeader(e),e.writeCString(this.name),this.location&&e.writeCString(this.location)},c.vmhdBox.prototype.write=function(e){this.version=0,this.flags=1,this.size=8,this.writeHeader(e),e.writeUint16(this.graphicsmode),e.writeUint16Array(this.opcolor)},c.cttsBox.prototype.unpack=function(e){var t,n,r=0;for(t=0;t<this.sample_counts.length;t++)for(n=0;n<this.sample_counts[t];n++)e[r].pts=e[r].dts+this.sample_offsets[t],r++},c.sttsBox.prototype.unpack=function(e){var t,n,r=0;for(t=0;t<this.sample_counts.length;t++)for(n=0;n<this.sample_counts[t];n++)r===0?e[r].dts=0:e[r].dts=e[r-1].dts+this.sample_deltas[t],r++},c.stcoBox.prototype.unpack=function(e){var t;for(t=0;t<this.chunk_offsets.length;t++)e[t].offset=this.chunk_offsets[t]},c.stscBox.prototype.unpack=function(e){var t,n,r,a=0,o=0;for(t=0;t<this.first_chunk.length;t++)for(n=0;n<(t+1<this.first_chunk.length?this.first_chunk[t+1]:1/0);n++)for(o++,r=0;r<this.samples_per_chunk[t];r++){if(e[a])e[a].description_index=this.sample_description_index[t],e[a].chunk_index=o;else return;a++}},c.stszBox.prototype.unpack=function(e){var t;for(t=0;t<this.sample_sizes.length;t++)e[t].size=this.sample_sizes[t]},c.DIFF_BOXES_PROP_NAMES=[`boxes`,`entries`,`references`,`subsamples`,`items`,`item_infos`,`extents`,`associations`,`subsegments`,`ranges`,`seekLists`,`seekPoints`,`esd`,`levels`],c.DIFF_PRIMITIVE_ARRAY_PROP_NAMES=[`compatible_brands`,`matrix`,`opcolor`,`sample_counts`,`sample_deltas`,`first_chunk`,`samples_per_chunk`,`sample_sizes`,`chunk_offsets`,`sample_offsets`,`sample_description_index`,`sample_duration`],c.boxEqualFields=function(e,t){if(e&&!t)return!1;for(var n in e)if(c.DIFF_BOXES_PROP_NAMES.indexOf(n)>-1)continue;else if(e[n]instanceof c.Box||t[n]instanceof c.Box)continue;else if(e[n]===void 0||t[n]===void 0)continue;else if(typeof e[n]==`function`||typeof t[n]==`function`)continue;else if(e.subBoxNames&&e.subBoxNames.indexOf(n.slice(0,4))>-1||t.subBoxNames&&t.subBoxNames.indexOf(n.slice(0,4))>-1)continue;else if(n===`data`||n===`start`||n===`size`||n===`creation_time`||n===`modification_time`)continue;else if(c.DIFF_PRIMITIVE_ARRAY_PROP_NAMES.indexOf(n)>-1)continue;else if(e[n]!==t[n])return!1;return!0},c.boxEqual=function(e,t){if(!c.boxEqualFields(e,t))return!1;for(var n=0;n<c.DIFF_BOXES_PROP_NAMES.length;n++){var r=c.DIFF_BOXES_PROP_NAMES[n];if(e[r]&&t[r]&&!c.boxEqual(e[r],t[r]))return!1}return!0};var f=function(){};f.prototype.parseSample=function(e){var t,r,a=new n(e.buffer);for(t=[];!a.isEos();)r=c.parseOneBox(a,!1),r.code===c.OK&&r.box.type===`vttc`&&t.push(r.box);return t},f.prototype.getText=function(e,t,n){function r(e,t,n){return n||=`0`,e+=``,e.length>=t?e:Array(t-e.length+1).join(n)+e}function a(e){var t=Math.floor(e/3600),n=Math.floor((e-t*3600)/60),a=Math.floor(e-t*3600-n*60),o=Math.floor((e-t*3600-n*60-a)*1e3);return``+r(t,2)+`:`+r(n,2)+`:`+r(a,2)+`.`+r(o,3)}for(var o=this.parseSample(n),s=``,c=0;c<o.length;c++){var l=o[c];s+=a(e)+` --> `+a(t)+`\r
|
|
112
|
-
`,s+=l.payl.text}return s};var p=function(){};p.prototype.parseSample=function(e){var t={},r;t.resources=[];var a=new n(e.data.buffer);if(!e.subsamples||e.subsamples.length===0)t.documentString=a.readString(e.data.length);else if(t.documentString=a.readString(e.subsamples[0].size),e.subsamples.length>1)for(r=1;r<e.subsamples.length;r++)t.resources[r]=a.readUint8Array(e.subsamples[r].size);return typeof DOMParser<`u`&&(t.document=new DOMParser().parseFromString(t.documentString,`application/xml`)),t};var m=function(){};m.prototype.parseSample=function(e){return new n(e.data.buffer).readString(e.data.length)},m.prototype.parseConfig=function(e){var t,r=new n(e.buffer);return r.readUint32(),t=r.readCString(),t},e!==void 0&&(e.VTTin4Parser=f,e.XMLSubtitlein4Parser=p,e.Textin4Parser=m);var h=function(e){this.stream=e||new o,this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.onMoovStart=null,this.moovStartSent=!1,this.onReady=null,this.readySent=!1,this.onSegment=null,this.onSamples=null,this.onError=null,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.items=[],this.entity_groups=[],this.onSidx=null,this.sidxSent=!1};h.prototype.setSegmentOptions=function(e,t,n){var r=this.getTrackById(e);if(r){var a={};this.fragmentedTracks.push(a),a.id=e,a.user=t,a.trak=r,r.nextSample=0,a.segmentStream=null,a.nb_samples=1e3,a.rapAlignement=!0,n&&(n.nbSamples&&(a.nb_samples=n.nbSamples),n.rapAlignement&&(a.rapAlignement=n.rapAlignement))}},h.prototype.unsetSegmentOptions=function(e){for(var t=-1,n=0;n<this.fragmentedTracks.length;n++)this.fragmentedTracks[n].id==e&&(t=n);t>-1&&this.fragmentedTracks.splice(t,1)},h.prototype.setExtractionOptions=function(e,t,n){var r=this.getTrackById(e);if(r){var a={};this.extractedTracks.push(a),a.id=e,a.user=t,a.trak=r,r.nextSample=0,a.nb_samples=1e3,a.samples=[],n&&n.nbSamples&&(a.nb_samples=n.nbSamples)}},h.prototype.unsetExtractionOptions=function(e){for(var t=-1,n=0;n<this.extractedTracks.length;n++)this.extractedTracks[n].id==e&&(t=n);t>-1&&this.extractedTracks.splice(t,1)},h.prototype.parse=function(){var e,n,r=!1;if(!(this.restoreParsePosition&&!this.restoreParsePosition()))for(;;)if(this.hasIncompleteMdat&&this.hasIncompleteMdat()){if(this.processIncompleteMdat())continue;return}else if(this.saveParsePosition&&this.saveParsePosition(),e=c.parseOneBox(this.stream,r),e.code===c.ERR_NOT_ENOUGH_DATA)if(this.processIncompleteBox){if(this.processIncompleteBox(e))continue;return}else return;else{var a;switch(n=e.box,a=n.type===`uuid`?n.uuid:n.type,this.boxes.push(n),a){case`mdat`:this.mdats.push(n);break;case`moof`:this.moofs.push(n);break;case`moov`:this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0);default:this[a]!==void 0&&t.warn(`ISOFile`,`Duplicate Box of type: `+a+`, overriding previous occurrence`),this[a]=n;break}this.updateUsedBytes&&this.updateUsedBytes(n,e)}},h.prototype.checkBuffer=function(e){if(e==null)throw`Buffer must be defined and non empty`;if(e.fileStart===void 0)throw`Buffer must have a fileStart property`;return e.byteLength===0?(t.warn(`ISOFile`,`Ignoring empty buffer (fileStart: `+e.fileStart+`)`),this.stream.logBufferLevel(),!1):(t.info(`ISOFile`,`Processing buffer (fileStart: `+e.fileStart+`)`),e.usedBytes=0,this.stream.insertBuffer(e),this.stream.logBufferLevel(),this.stream.initialized()?!0:(t.warn(`ISOFile`,`Not ready to start parsing`),!1))},h.prototype.appendBuffer=function(e,n){var r;if(this.checkBuffer(e))return this.parse(),this.moovStartFound&&!this.moovStartSent&&(this.moovStartSent=!0,this.onMoovStart&&this.onMoovStart()),this.moov?(this.sampleListBuilt||=(this.buildSampleLists(),!0),this.updateSampleLists(),this.onReady&&!this.readySent&&(this.readySent=!0,this.onReady(this.getInfo())),this.processSamples(n),this.nextSeekPosition?(r=this.nextSeekPosition,this.nextSeekPosition=void 0):r=this.nextParsePosition,this.stream.getEndFilePositionAfter&&(r=this.stream.getEndFilePositionAfter(r))):r=this.nextParsePosition?this.nextParsePosition:0,this.sidx&&this.onSidx&&!this.sidxSent&&(this.onSidx(this.sidx),this.sidxSent=!0),this.meta&&(this.flattenItemInfo&&!this.itemListBuilt&&(this.flattenItemInfo(),this.itemListBuilt=!0),this.processItems&&this.processItems(this.onItem)),this.stream.cleanBuffers&&(t.info(`ISOFile`,`Done processing buffer (fileStart: `+e.fileStart+`) - next buffer to fetch should have a fileStart position of `+r),this.stream.logBufferLevel(),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0),t.info(`ISOFile`,`Sample data size in memory: `+this.getAllocatedSampleDataSize())),r},h.prototype.getInfo=function(){var e,t,n={},r,a,o,s,c=new Date(`1904-01-01T00:00:00Z`).getTime();if(this.moov)for(n.hasMoov=!0,n.duration=this.moov.mvhd.duration,n.timescale=this.moov.mvhd.timescale,n.isFragmented=this.moov.mvex!=null,n.isFragmented&&this.moov.mvex.mehd&&(n.fragment_duration=this.moov.mvex.mehd.fragment_duration),n.isProgressive=this.isProgressive,n.hasIOD=this.moov.iods!=null,n.brands=[],n.brands.push(this.ftyp.major_brand),n.brands=n.brands.concat(this.ftyp.compatible_brands),n.created=new Date(c+this.moov.mvhd.creation_time*1e3),n.modified=new Date(c+this.moov.mvhd.modification_time*1e3),n.tracks=[],n.audioTracks=[],n.videoTracks=[],n.subtitleTracks=[],n.metadataTracks=[],n.hintTracks=[],n.otherTracks=[],e=0;e<this.moov.traks.length;e++){if(r=this.moov.traks[e],s=r.mdia.minf.stbl.stsd.entries[0],a={},n.tracks.push(a),a.id=r.tkhd.track_id,a.name=r.mdia.hdlr.name,a.references=[],r.tref)for(t=0;t<r.tref.boxes.length;t++)o={},a.references.push(o),o.type=r.tref.boxes[t].type,o.track_ids=r.tref.boxes[t].track_ids;r.edts&&(a.edits=r.edts.elst.entries),a.created=new Date(c+r.tkhd.creation_time*1e3),a.modified=new Date(c+r.tkhd.modification_time*1e3),a.movie_duration=r.tkhd.duration,a.movie_timescale=n.timescale,a.layer=r.tkhd.layer,a.alternate_group=r.tkhd.alternate_group,a.volume=r.tkhd.volume,a.matrix=r.tkhd.matrix,a.track_width=r.tkhd.width/65536,a.track_height=r.tkhd.height/65536,a.timescale=r.mdia.mdhd.timescale,a.cts_shift=r.mdia.minf.stbl.cslg,a.duration=r.mdia.mdhd.duration,a.samples_duration=r.samples_duration,a.codec=s.getCodec(),a.kind=r.udta&&r.udta.kinds.length?r.udta.kinds[0]:{schemeURI:``,value:``},a.language=r.mdia.elng?r.mdia.elng.extended_language:r.mdia.mdhd.languageString,a.nb_samples=r.samples.length,a.size=r.samples_size,a.bitrate=a.size*8*a.timescale/a.samples_duration,s.isAudio()?(a.type=`audio`,n.audioTracks.push(a),a.audio={},a.audio.sample_rate=s.getSampleRate(),a.audio.channel_count=s.getChannelCount(),a.audio.sample_size=s.getSampleSize()):s.isVideo()?(a.type=`video`,n.videoTracks.push(a),a.video={},a.video.width=s.getWidth(),a.video.height=s.getHeight()):s.isSubtitle()?(a.type=`subtitles`,n.subtitleTracks.push(a)):s.isHint()?(a.type=`metadata`,n.hintTracks.push(a)):s.isMetadata()?(a.type=`metadata`,n.metadataTracks.push(a)):(a.type=`metadata`,n.otherTracks.push(a))}else n.hasMoov=!1;if(n.mime=``,n.hasMoov&&n.tracks){for(n.videoTracks&&n.videoTracks.length>0?n.mime+=`video/mp4; codecs="`:n.audioTracks&&n.audioTracks.length>0?n.mime+=`audio/mp4; codecs="`:n.mime+=`application/mp4; codecs="`,e=0;e<n.tracks.length;e++)e!==0&&(n.mime+=`,`),n.mime+=n.tracks[e].codec;n.mime+=`"; profiles="`,n.mime+=this.ftyp.compatible_brands.join(),n.mime+=`"`}return n},h.prototype.setNextSeekPositionFromSample=function(e){e&&(this.nextSeekPosition?this.nextSeekPosition=Math.min(e.offset+e.alreadyRead,this.nextSeekPosition):this.nextSeekPosition=e.offset+e.alreadyRead)},h.prototype.processSamples=function(e){var n,r;if(this.sampleProcessingStarted){if(this.isFragmentationInitialized&&this.onSegment!==null)for(n=0;n<this.fragmentedTracks.length;n++){var a=this.fragmentedTracks[n];for(r=a.trak;r.nextSample<r.samples.length&&this.sampleProcessingStarted;){t.debug(`ISOFile`,`Creating media fragment on track #`+a.id+` for sample `+r.nextSample);var o=this.createFragment(a.id,r.nextSample,a.segmentStream);if(o)a.segmentStream=o,r.nextSample++;else break;if((r.nextSample%a.nb_samples===0||e||r.nextSample>=r.samples.length)&&(t.info(`ISOFile`,`Sending fragmented data on track #`+a.id+` for samples [`+Math.max(0,r.nextSample-a.nb_samples)+`,`+(r.nextSample-1)+`]`),t.info(`ISOFile`,`Sample data size in memory: `+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(a.id,a.user,a.segmentStream.buffer,r.nextSample,e||r.nextSample>=r.samples.length),a.segmentStream=null,a!==this.fragmentedTracks[n]))break}}if(this.onSamples!==null)for(n=0;n<this.extractedTracks.length;n++){var s=this.extractedTracks[n];for(r=s.trak;r.nextSample<r.samples.length&&this.sampleProcessingStarted;){t.debug(`ISOFile`,`Exporting on track #`+s.id+` sample #`+r.nextSample);var c=this.getSample(r,r.nextSample);if(c)r.nextSample++,s.samples.push(c);else{this.setNextSeekPositionFromSample(r.samples[r.nextSample]);break}if((r.nextSample%s.nb_samples===0||r.nextSample>=r.samples.length)&&(t.debug(`ISOFile`,`Sending samples on track #`+s.id+` for sample `+r.nextSample),this.onSamples&&this.onSamples(s.id,s.user,s.samples),s.samples=[],s!==this.extractedTracks[n]))break}}}},h.prototype.getBox=function(e){var t=this.getBoxes(e,!0);return t.length?t[0]:null},h.prototype.getBoxes=function(e,t){var n=[];return h._sweep.call(this,e,n,t),n},h._sweep=function(e,t,n){for(var r in this.type&&this.type==e&&t.push(this),this.boxes){if(t.length&&n)return;h._sweep.call(this.boxes[r],e,t,n)}},h.prototype.getTrackSamplesInfo=function(e){var t=this.getTrackById(e);if(t)return t.samples},h.prototype.getTrackSample=function(e,t){var n=this.getTrackById(e);return this.getSample(n,t)},h.prototype.releaseUsedSamples=function(e,n){var r=0,a=this.getTrackById(e);a.lastValidSample||=0;for(var o=a.lastValidSample;o<n;o++)r+=this.releaseSample(a,o);t.info(`ISOFile`,`Track #`+e+` released samples up to `+n+` (released size: `+r+`, remaining: `+this.samplesDataSize+`)`),a.lastValidSample=n},h.prototype.start=function(){this.sampleProcessingStarted=!0,this.processSamples(!1)},h.prototype.stop=function(){this.sampleProcessingStarted=!1},h.prototype.flush=function(){t.info(`ISOFile`,`Flushing remaining samples`),this.updateSampleLists(),this.processSamples(!0),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0)},h.prototype.seekTrack=function(e,n,r){var a,o,s=1/0,c=0,l=0,u;if(r.samples.length===0)return t.info(`ISOFile`,`No sample in track, cannot seek! Using time `+t.getDurationString(0,1)+` and offset: 0`),{offset:0,time:0};for(a=0;a<r.samples.length;a++){if(o=r.samples[a],a===0)l=0,u=o.timescale;else if(o.cts>e*o.timescale){l=a-1;break}n&&o.is_sync&&(c=a)}for(n&&(l=c),e=r.samples[l].cts,r.nextSample=l;r.samples[l].alreadyRead===r.samples[l].size&&r.samples[l+1];)l++;return s=r.samples[l].offset+r.samples[l].alreadyRead,t.info(`ISOFile`,`Seeking to `+(n?`RAP`:``)+` sample #`+r.nextSample+` on track `+r.tkhd.track_id+`, time `+t.getDurationString(e,u)+` and offset: `+s),{offset:s,time:e/u}},h.prototype.getTrackDuration=function(e){var t;return e.samples?(t=e.samples[e.samples.length-1],(t.cts+t.duration)/t.timescale):1/0},h.prototype.seek=function(e,n){var r=this.moov,a,o,s,c={offset:1/0,time:1/0};if(this.moov){for(s=0;s<r.traks.length;s++)a=r.traks[s],!(e>this.getTrackDuration(a))&&(o=this.seekTrack(e,n,a),o.offset<c.offset&&(c.offset=o.offset),o.time<c.time&&(c.time=o.time));return t.info(`ISOFile`,`Seeking at time `+t.getDurationString(c.time,1)+` needs a buffer with a fileStart position of `+c.offset),c.offset===1/0?c={offset:this.nextParsePosition,time:0}:c.offset=this.stream.getEndFilePositionAfter(c.offset),t.info(`ISOFile`,`Adjusted seek position (after checking data already in buffer): `+c.offset),c}else throw`Cannot seek: moov not received!`},h.prototype.equal=function(e){for(var t=0;t<this.boxes.length&&t<e.boxes.length;){var n=this.boxes[t],r=e.boxes[t];if(!c.boxEqual(n,r))return!1;t++}return!0},e!==void 0&&(e.ISOFile=h),h.prototype.lastBoxStartPosition=0,h.prototype.parsingMdat=null,h.prototype.nextParsePosition=0,h.prototype.discardMdatData=!1,h.prototype.processIncompleteBox=function(e){var t,n,r;return e.type===`mdat`?(t=new c[e.type+`Box`](e.size),this.parsingMdat=t,this.boxes.push(t),this.mdats.push(t),t.start=e.start,t.hdr_size=e.hdr_size,this.stream.addUsedBytes(t.hdr_size),this.lastBoxStartPosition=t.start+t.size,r=this.stream.seek(t.start+t.size,!1,this.discardMdatData),r?(this.parsingMdat=null,!0):(this.moovStartFound?this.nextParsePosition=this.stream.findEndContiguousBuf():this.nextParsePosition=t.start+t.size,!1)):(e.type===`moov`&&(this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0)),n=this.stream.mergeNextBuffer?this.stream.mergeNextBuffer():!1,n?(this.nextParsePosition=this.stream.getEndPosition(),!0):(e.type?this.moovStartFound?this.nextParsePosition=this.stream.getEndPosition():this.nextParsePosition=this.stream.getPosition()+e.size:this.nextParsePosition=this.stream.getEndPosition(),!1))},h.prototype.hasIncompleteMdat=function(){return this.parsingMdat!==null},h.prototype.processIncompleteMdat=function(){var e=this.parsingMdat;return this.stream.seek(e.start+e.size,!1,this.discardMdatData)?(t.debug(`ISOFile`,`Found 'mdat' end in buffered data`),this.parsingMdat=null,!0):(this.nextParsePosition=this.stream.findEndContiguousBuf(),!1)},h.prototype.restoreParsePosition=function(){return this.stream.seek(this.lastBoxStartPosition,!0,this.discardMdatData)},h.prototype.saveParsePosition=function(){this.lastBoxStartPosition=this.stream.getPosition()},h.prototype.updateUsedBytes=function(e,t){this.stream.addUsedBytes&&(e.type===`mdat`?(this.stream.addUsedBytes(e.hdr_size),this.discardMdatData&&this.stream.addUsedBytes(e.size-e.hdr_size)):this.stream.addUsedBytes(e.size))},h.prototype.add=c.Box.prototype.add,h.prototype.addBox=c.Box.prototype.addBox,h.prototype.init=function(e){var t=e||{};this.add(`ftyp`).set(`major_brand`,t.brands&&t.brands[0]||`iso4`).set(`minor_version`,0).set(`compatible_brands`,t.brands||[`iso4`]);var n=this.add(`moov`);return n.add(`mvhd`).set(`timescale`,t.timescale||600).set(`rate`,t.rate||65536).set(`creation_time`,0).set(`modification_time`,0).set(`duration`,t.duration||0).set(`volume`,t.width?0:256).set(`matrix`,[65536,0,0,0,65536,0,0,0,1073741824]).set(`next_track_id`,1),n.add(`mvex`),this},h.prototype.addTrack=function(e){this.moov||this.init(e);var t=e||{};t.width=t.width||320,t.height=t.height||320,t.id=t.id||this.moov.mvhd.next_track_id,t.type=t.type||`avc1`;var r=this.moov.add(`trak`);this.moov.mvhd.next_track_id=t.id+1,r.add(`tkhd`).set(`flags`,c.TKHD_FLAG_ENABLED|c.TKHD_FLAG_IN_MOVIE|c.TKHD_FLAG_IN_PREVIEW).set(`creation_time`,0).set(`modification_time`,0).set(`track_id`,t.id).set(`duration`,t.duration||0).set(`layer`,t.layer||0).set(`alternate_group`,0).set(`volume`,1).set(`matrix`,[65536,0,0,0,65536,0,0,0,1073741824]).set(`width`,t.width<<16).set(`height`,t.height<<16);var a=r.add(`mdia`);a.add(`mdhd`).set(`creation_time`,0).set(`modification_time`,0).set(`timescale`,t.timescale||1).set(`duration`,t.media_duration||0).set(`language`,t.language||`und`),a.add(`hdlr`).set(`handler`,t.hdlr||`vide`).set(`name`,t.name||`Track created with MP4Box.js`),a.add(`elng`).set(`extended_language`,t.language||`fr-FR`);var o=a.add(`minf`);if(c[t.type+`SampleEntry`]!==void 0){var s=new c[t.type+`SampleEntry`];s.data_reference_index=1;var l=``;for(var u in c.sampleEntryCodes)for(var d=c.sampleEntryCodes[u],f=0;f<d.length;f++)if(d.indexOf(t.type)>-1){l=u;break}switch(l){case`Visual`:if(o.add(`vmhd`).set(`graphicsmode`,0).set(`opcolor`,[0,0,0]),s.set(`width`,t.width).set(`height`,t.height).set(`horizresolution`,72<<16).set(`vertresolution`,72<<16).set(`frame_count`,1).set(`compressorname`,t.type+` Compressor`).set(`depth`,24),t.avcDecoderConfigRecord){var p=new c.avcCBox;p.parse(new n(t.avcDecoderConfigRecord)),s.addBox(p)}else if(t.hevcDecoderConfigRecord){var m=new c.hvcCBox;m.parse(new n(t.hevcDecoderConfigRecord)),s.addBox(m)}break;case`Audio`:o.add(`smhd`).set(`balance`,t.balance||0),s.set(`channel_count`,t.channel_count||2).set(`samplesize`,t.samplesize||16).set(`samplerate`,t.samplerate||65536);break;case`Hint`:o.add(`hmhd`);break;case`Subtitle`:switch(o.add(`sthd`),t.type){case`stpp`:s.set(`namespace`,t.namespace||`nonamespace`).set(`schema_location`,t.schema_location||``).set(`auxiliary_mime_types`,t.auxiliary_mime_types||``);break}break;case`Metadata`:o.add(`nmhd`);break;case`System`:o.add(`nmhd`);break;default:o.add(`nmhd`);break}t.description&&s.addBox(t.description),t.description_boxes&&t.description_boxes.forEach(function(e){s.addBox(e)}),o.add(`dinf`).add(`dref`).addEntry(new c[`url Box`]().set(`flags`,1));var h=o.add(`stbl`);return h.add(`stsd`).addEntry(s),h.add(`stts`).set(`sample_counts`,[]).set(`sample_deltas`,[]),h.add(`stsc`).set(`first_chunk`,[]).set(`samples_per_chunk`,[]).set(`sample_description_index`,[]),h.add(`stco`).set(`chunk_offsets`,[]),h.add(`stsz`).set(`sample_sizes`,[]),this.moov.mvex.add(`trex`).set(`track_id`,t.id).set(`default_sample_description_index`,t.default_sample_description_index||1).set(`default_sample_duration`,t.default_sample_duration||0).set(`default_sample_size`,t.default_sample_size||0).set(`default_sample_flags`,t.default_sample_flags||0),this.buildTrakSampleLists(r),t.id}},c.Box.prototype.computeSize=function(e){var t=e||new r;t.endianness=r.BIG_ENDIAN,this.write(t)},h.prototype.addSample=function(e,t,n){var r=n||{},a={},o=this.getTrackById(e);if(o!==null){a.number=o.samples.length,a.track_id=o.tkhd.track_id,a.timescale=o.mdia.mdhd.timescale,a.description_index=r.sample_description_index?r.sample_description_index-1:0,a.description=o.mdia.minf.stbl.stsd.entries[a.description_index],a.data=t,a.size=t.byteLength,a.alreadyRead=a.size,a.duration=r.duration||1,a.cts=r.cts||0,a.dts=r.dts||0,a.is_sync=r.is_sync||!1,a.is_leading=r.is_leading||0,a.depends_on=r.depends_on||0,a.is_depended_on=r.is_depended_on||0,a.has_redundancy=r.has_redundancy||0,a.degradation_priority=r.degradation_priority||0,a.offset=0,a.subsamples=r.subsamples,o.samples.push(a),o.samples_size+=a.size,o.samples_duration+=a.duration,o.first_dts===void 0&&(o.first_dts=r.dts),this.processSamples();var s=this.createSingleSampleMoof(a);return this.addBox(s),s.computeSize(),s.trafs[0].truns[0].data_offset=s.size+8,this.add(`mdat`).data=new Uint8Array(t),a}},h.prototype.createSingleSampleMoof=function(e){var t=0;t=e.is_sync?1<<25:65536;var n=new c.moofBox;n.add(`mfhd`).set(`sequence_number`,this.nextMoofNumber),this.nextMoofNumber++;var r=n.add(`traf`),a=this.getTrackById(e.track_id);return r.add(`tfhd`).set(`track_id`,e.track_id).set(`flags`,c.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),r.add(`tfdt`).set(`baseMediaDecodeTime`,e.dts-(a.first_dts||0)),r.add(`trun`).set(`flags`,c.TRUN_FLAGS_DATA_OFFSET|c.TRUN_FLAGS_DURATION|c.TRUN_FLAGS_SIZE|c.TRUN_FLAGS_FLAGS|c.TRUN_FLAGS_CTS_OFFSET).set(`data_offset`,0).set(`first_sample_flags`,0).set(`sample_count`,1).set(`sample_duration`,[e.duration]).set(`sample_size`,[e.size]).set(`sample_flags`,[t]).set(`sample_composition_time_offset`,[e.cts-e.dts]),n},h.prototype.lastMoofIndex=0,h.prototype.samplesDataSize=0,h.prototype.resetTables=function(){var e,t,n,r,a,o,s,c;for(this.initial_duration=this.moov.mvhd.duration,this.moov.mvhd.duration=0,e=0;e<this.moov.traks.length;e++){t=this.moov.traks[e],t.tkhd.duration=0,t.mdia.mdhd.duration=0,n=t.mdia.minf.stbl.stco||t.mdia.minf.stbl.co64,n.chunk_offsets=[],r=t.mdia.minf.stbl.stsc,r.first_chunk=[],r.samples_per_chunk=[],r.sample_description_index=[],a=t.mdia.minf.stbl.stsz||t.mdia.minf.stbl.stz2,a.sample_sizes=[],o=t.mdia.minf.stbl.stts,o.sample_counts=[],o.sample_deltas=[],s=t.mdia.minf.stbl.ctts,s&&(s.sample_counts=[],s.sample_offsets=[]),c=t.mdia.minf.stbl.stss;var l=t.mdia.minf.stbl.boxes.indexOf(c);l!=-1&&(t.mdia.minf.stbl.boxes[l]=null)}},h.initSampleGroups=function(e,t,n,r,a){var o,s,c,l;function u(e,t,n){this.grouping_type=e,this.grouping_type_parameter=t,this.sbgp=n,this.last_sample_in_run=-1,this.entry_index=-1}for(t&&(t.sample_groups_info=[]),e.sample_groups_info||=[],s=0;s<n.length;s++){for(l=n[s].grouping_type+`/`+n[s].grouping_type_parameter,c=new u(n[s].grouping_type,n[s].grouping_type_parameter,n[s]),t&&(t.sample_groups_info[l]=c),e.sample_groups_info[l]||(e.sample_groups_info[l]=c),o=0;o<r.length;o++)r[o].grouping_type===n[s].grouping_type&&(c.description=r[o],c.description.used=!0);if(a)for(o=0;o<a.length;o++)a[o].grouping_type===n[s].grouping_type&&(c.fragment_description=a[o],c.fragment_description.used=!0,c.is_fragment=!0)}if(!t)for(s=0;s<r.length;s++)!r[s].used&&r[s].version>=2&&(l=r[s].grouping_type+`/0`,c=new u(r[s].grouping_type,0),e.sample_groups_info[l]||(e.sample_groups_info[l]=c));else if(a)for(s=0;s<a.length;s++)!a[s].used&&a[s].version>=2&&(l=a[s].grouping_type+`/0`,c=new u(a[s].grouping_type,0),c.is_fragment=!0,t.sample_groups_info[l]||(t.sample_groups_info[l]=c))},h.setSampleGroupProperties=function(e,t,n,r){var a,o;for(a in t.sample_groups=[],r)if(t.sample_groups[a]={},t.sample_groups[a].grouping_type=r[a].grouping_type,t.sample_groups[a].grouping_type_parameter=r[a].grouping_type_parameter,n>=r[a].last_sample_in_run&&(r[a].last_sample_in_run<0&&(r[a].last_sample_in_run=0),r[a].entry_index++,r[a].entry_index<=r[a].sbgp.entries.length-1&&(r[a].last_sample_in_run+=r[a].sbgp.entries[r[a].entry_index].sample_count)),r[a].entry_index<=r[a].sbgp.entries.length-1?t.sample_groups[a].group_description_index=r[a].sbgp.entries[r[a].entry_index].group_description_index:t.sample_groups[a].group_description_index=-1,t.sample_groups[a].group_description_index!==0){var s=r[a].fragment_description?r[a].fragment_description:r[a].description;t.sample_groups[a].group_description_index>0?(o=t.sample_groups[a].group_description_index>65535?(t.sample_groups[a].group_description_index>>16)-1:t.sample_groups[a].group_description_index-1,s&&o>=0&&(t.sample_groups[a].description=s.entries[o])):s&&s.version>=2&&s.default_group_description_index>0&&(t.sample_groups[a].description=s.entries[s.default_group_description_index-1])}},h.process_sdtp=function(e,t,n){t&&(e?(t.is_leading=e.is_leading[n],t.depends_on=e.sample_depends_on[n],t.is_depended_on=e.sample_is_depended_on[n],t.has_redundancy=e.sample_has_redundancy[n]):(t.is_leading=0,t.depends_on=0,t.is_depended_on=0,t.has_redundancy=0))},h.prototype.buildSampleLists=function(){var e,t;for(e=0;e<this.moov.traks.length;e++)t=this.moov.traks[e],this.buildTrakSampleLists(t)},h.prototype.buildTrakSampleLists=function(e){var t,n,r,a,o,s,c,l,u,d,f,p,m,g,_,v,y,b,x,S,ee,C,w,T;if(e.samples=[],e.samples_duration=0,e.samples_size=0,n=e.mdia.minf.stbl.stco||e.mdia.minf.stbl.co64,r=e.mdia.minf.stbl.stsc,a=e.mdia.minf.stbl.stsz||e.mdia.minf.stbl.stz2,o=e.mdia.minf.stbl.stts,s=e.mdia.minf.stbl.ctts,c=e.mdia.minf.stbl.stss,l=e.mdia.minf.stbl.stsd,u=e.mdia.minf.stbl.subs,p=e.mdia.minf.stbl.stdp,d=e.mdia.minf.stbl.sbgps,f=e.mdia.minf.stbl.sgpds,b=-1,x=-1,S=-1,ee=-1,C=0,w=0,T=0,h.initSampleGroups(e,null,d,f),a!==void 0){for(t=0;t<a.sample_sizes.length;t++){var E={};E.number=t,E.track_id=e.tkhd.track_id,E.timescale=e.mdia.mdhd.timescale,E.alreadyRead=0,e.samples[t]=E,E.size=a.sample_sizes[t],e.samples_size+=E.size,t===0?(g=1,m=0,E.chunk_index=g,E.chunk_run_index=m,y=r.samples_per_chunk[m],v=0,_=m+1<r.first_chunk.length?r.first_chunk[m+1]-1:1/0):t<y?(E.chunk_index=g,E.chunk_run_index=m):(g++,E.chunk_index=g,v=0,g<=_||(m++,_=m+1<r.first_chunk.length?r.first_chunk[m+1]-1:1/0),E.chunk_run_index=m,y+=r.samples_per_chunk[m]),E.description_index=r.sample_description_index[E.chunk_run_index]-1,E.description=l.entries[E.description_index],E.offset=n.chunk_offsets[E.chunk_index-1]+v,v+=E.size,t>b&&(x++,b<0&&(b=0),b+=o.sample_counts[x]),t>0?(e.samples[t-1].duration=o.sample_deltas[x],e.samples_duration+=e.samples[t-1].duration,E.dts=e.samples[t-1].dts+e.samples[t-1].duration):E.dts=0,s?(t>=S&&(ee++,S<0&&(S=0),S+=s.sample_counts[ee]),E.cts=e.samples[t].dts+s.sample_offsets[ee]):E.cts=E.dts,c?(t==c.sample_numbers[C]-1?(E.is_sync=!0,C++):(E.is_sync=!1,E.degradation_priority=0),u&&u.entries[w].sample_delta+T==t+1&&(E.subsamples=u.entries[w].subsamples,T+=u.entries[w].sample_delta,w++)):E.is_sync=!0,h.process_sdtp(e.mdia.minf.stbl.sdtp,E,E.number),p?E.degradation_priority=p.priority[t]:E.degradation_priority=0,u&&u.entries[w].sample_delta+T==t&&(E.subsamples=u.entries[w].subsamples,T+=u.entries[w].sample_delta),(d.length>0||f.length>0)&&h.setSampleGroupProperties(e,E,t,e.sample_groups_info)}t>0&&(e.samples[t-1].duration=Math.max(e.mdia.mdhd.duration-e.samples[t-1].dts,0),e.samples_duration+=e.samples[t-1].duration)}},h.prototype.updateSampleLists=function(){var e,t,n,r,a,o,s,l,u,d,f,p,m,g,_;if(this.moov!==void 0){for(;this.lastMoofIndex<this.moofs.length;)if(u=this.moofs[this.lastMoofIndex],this.lastMoofIndex++,u.type==`moof`)for(d=u,e=0;e<d.trafs.length;e++){for(f=d.trafs[e],p=this.getTrackById(f.tfhd.track_id),m=this.getTrexById(f.tfhd.track_id),r=f.tfhd.flags&c.TFHD_FLAG_SAMPLE_DESC?f.tfhd.default_sample_description_index:m?m.default_sample_description_index:1,a=f.tfhd.flags&c.TFHD_FLAG_SAMPLE_DUR?f.tfhd.default_sample_duration:m?m.default_sample_duration:0,o=f.tfhd.flags&c.TFHD_FLAG_SAMPLE_SIZE?f.tfhd.default_sample_size:m?m.default_sample_size:0,s=f.tfhd.flags&c.TFHD_FLAG_SAMPLE_FLAGS?f.tfhd.default_sample_flags:m?m.default_sample_flags:0,f.sample_number=0,f.sbgps.length>0&&h.initSampleGroups(p,f,f.sbgps,p.mdia.minf.stbl.sgpds,f.sgpds),t=0;t<f.truns.length;t++){var v=f.truns[t];for(n=0;n<v.sample_count;n++){g={},g.moof_number=this.lastMoofIndex,g.number_in_traf=f.sample_number,f.sample_number++,g.number=p.samples.length,f.first_sample_index=p.samples.length,p.samples.push(g),g.track_id=p.tkhd.track_id,g.timescale=p.mdia.mdhd.timescale,g.description_index=r-1,g.description=p.mdia.minf.stbl.stsd.entries[g.description_index],g.size=o,v.flags&c.TRUN_FLAGS_SIZE&&(g.size=v.sample_size[n]),p.samples_size+=g.size,g.duration=a,v.flags&c.TRUN_FLAGS_DURATION&&(g.duration=v.sample_duration[n]),p.samples_duration+=g.duration,p.first_traf_merged||n>0?g.dts=p.samples[p.samples.length-2].dts+p.samples[p.samples.length-2].duration:(f.tfdt?g.dts=f.tfdt.baseMediaDecodeTime:g.dts=0,p.first_traf_merged=!0),g.cts=g.dts,v.flags&c.TRUN_FLAGS_CTS_OFFSET&&(g.cts=g.dts+v.sample_composition_time_offset[n]),_=s,v.flags&c.TRUN_FLAGS_FLAGS?_=v.sample_flags[n]:n===0&&v.flags&c.TRUN_FLAGS_FIRST_FLAG&&(_=v.first_sample_flags),g.is_sync=!(_>>16&1),g.is_leading=_>>26&3,g.depends_on=_>>24&3,g.is_depended_on=_>>22&3,g.has_redundancy=_>>20&3,g.degradation_priority=_&65535;var y=!!(f.tfhd.flags&c.TFHD_FLAG_BASE_DATA_OFFSET),b=!!(f.tfhd.flags&c.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),x=!!(v.flags&c.TRUN_FLAGS_DATA_OFFSET),S=0;S=y?f.tfhd.base_data_offset:b||t===0?d.start:l,t===0&&n===0?x?g.offset=S+v.data_offset:g.offset=S:g.offset=l,l=g.offset+g.size,(f.sbgps.length>0||f.sgpds.length>0||p.mdia.minf.stbl.sbgps.length>0||p.mdia.minf.stbl.sgpds.length>0)&&h.setSampleGroupProperties(p,g,g.number_in_traf,f.sample_groups_info)}}if(f.subs){p.has_fragment_subsamples=!0;var ee=f.first_sample_index;for(t=0;t<f.subs.entries.length;t++)ee+=f.subs.entries[t].sample_delta,g=p.samples[ee-1],g.subsamples=f.subs.entries[t].subsamples}}}},h.prototype.getSample=function(e,n){var a,o=e.samples[n];if(!this.moov)return null;if(!o.data)o.data=new Uint8Array(o.size),o.alreadyRead=0,this.samplesDataSize+=o.size,t.debug(`ISOFile`,`Allocating sample #`+n+` on track #`+e.tkhd.track_id+` of size `+o.size+` (total: `+this.samplesDataSize+`)`);else if(o.alreadyRead==o.size)return o;for(;;){var s=this.stream.findPosition(!0,o.offset+o.alreadyRead,!1);if(s>-1){a=this.stream.buffers[s];var c=a.byteLength-(o.offset+o.alreadyRead-a.fileStart);if(o.size-o.alreadyRead<=c)return t.debug(`ISOFile`,`Getting sample #`+n+` data (alreadyRead: `+o.alreadyRead+` offset: `+(o.offset+o.alreadyRead-a.fileStart)+` read size: `+(o.size-o.alreadyRead)+` full size: `+o.size+`)`),r.memcpy(o.data.buffer,o.alreadyRead,a,o.offset+o.alreadyRead-a.fileStart,o.size-o.alreadyRead),a.usedBytes+=o.size-o.alreadyRead,this.stream.logBufferLevel(),o.alreadyRead=o.size,o;if(c===0)return null;t.debug(`ISOFile`,`Getting sample #`+n+` partial data (alreadyRead: `+o.alreadyRead+` offset: `+(o.offset+o.alreadyRead-a.fileStart)+` read size: `+c+` full size: `+o.size+`)`),r.memcpy(o.data.buffer,o.alreadyRead,a,o.offset+o.alreadyRead-a.fileStart,c),o.alreadyRead+=c,a.usedBytes+=c,this.stream.logBufferLevel()}else return null}},h.prototype.releaseSample=function(e,t){var n=e.samples[t];return n.data?(this.samplesDataSize-=n.size,n.data=null,n.alreadyRead=0,n.size):0},h.prototype.getAllocatedSampleDataSize=function(){return this.samplesDataSize},h.prototype.getCodecs=function(){var e,t=``;for(e=0;e<this.moov.traks.length;e++){var n=this.moov.traks[e];e>0&&(t+=`,`),t+=n.mdia.minf.stbl.stsd.entries[0].getCodec()}return t},h.prototype.getTrexById=function(e){var t;if(!this.moov||!this.moov.mvex)return null;for(t=0;t<this.moov.mvex.trexs.length;t++){var n=this.moov.mvex.trexs[t];if(n.track_id==e)return n}return null},h.prototype.getTrackById=function(e){if(this.moov===void 0)return null;for(var t=0;t<this.moov.traks.length;t++){var n=this.moov.traks[t];if(n.tkhd.track_id==e)return n}return null},h.prototype.itemsDataSize=0,h.prototype.flattenItemInfo=function(){var e=this.items,n=this.entity_groups,r,a,o,s=this.meta;if(s!=null&&s.hdlr!==void 0&&s.iinf!==void 0){for(r=0;r<s.iinf.item_infos.length;r++)o={},o.id=s.iinf.item_infos[r].item_ID,e[o.id]=o,o.ref_to=[],o.name=s.iinf.item_infos[r].item_name,s.iinf.item_infos[r].protection_index>0&&(o.protection=s.ipro.protections[s.iinf.item_infos[r].protection_index-1]),s.iinf.item_infos[r].item_type?o.type=s.iinf.item_infos[r].item_type:o.type=`mime`,o.content_type=s.iinf.item_infos[r].content_type,o.content_encoding=s.iinf.item_infos[r].content_encoding,o.item_uri_type=s.iinf.item_infos[r].item_uri_type;if(s.grpl)for(r=0;r<s.grpl.boxes.length;r++)entity_group={},entity_group.id=s.grpl.boxes[r].group_id,entity_group.entity_ids=s.grpl.boxes[r].entity_ids,entity_group.type=s.grpl.boxes[r].type,n[entity_group.id]=entity_group;if(s.iloc)for(r=0;r<s.iloc.items.length;r++){var c=s.iloc.items[r];switch(o=e[c.item_ID],c.data_reference_index!==0&&(t.warn(`Item storage with reference to other files: not supported`),o.source=s.dinf.boxes[c.data_reference_index-1]),c.construction_method){case 0:break;case 1:break;case 2:t.warn(`Item storage with construction_method : not supported`);break}for(o.extents=[],o.size=0,a=0;a<c.extents.length;a++)o.extents[a]={},o.extents[a].offset=c.extents[a].extent_offset+c.base_offset,c.construction_method==1&&(o.extents[a].offset+=s.idat.start+s.idat.hdr_size),o.extents[a].length=c.extents[a].extent_length,o.extents[a].alreadyRead=0,o.size+=o.extents[a].length}if(s.pitm&&(e[s.pitm.item_id].primary=!0),s.iref)for(r=0;r<s.iref.references.length;r++){var l=s.iref.references[r];for(a=0;a<l.references.length;a++)e[l.from_item_ID].ref_to.push({type:l.type,id:l.references[a]})}if(s.iprp)for(var u=0;u<s.iprp.ipmas.length;u++){var d=s.iprp.ipmas[u];for(r=0;r<d.associations.length;r++){var f=d.associations[r];if(o=e[f.id],o||=n[f.id],o)for(o.properties===void 0&&(o.properties={},o.properties.boxes=[]),a=0;a<f.props.length;a++){var p=f.props[a];if(p.property_index>0&&p.property_index-1<s.iprp.ipco.boxes.length){var m=s.iprp.ipco.boxes[p.property_index-1];o.properties[m.type]=m,o.properties.boxes.push(m)}}}}}},h.prototype.getItem=function(e){var n,a;if(!this.meta)return null;if(a=this.items[e],!a.data&&a.size)a.data=new Uint8Array(a.size),a.alreadyRead=0,this.itemsDataSize+=a.size,t.debug(`ISOFile`,`Allocating item #`+e+` of size `+a.size+` (total: `+this.itemsDataSize+`)`);else if(a.alreadyRead===a.size)return a;for(var o=0;o<a.extents.length;o++){var s=a.extents[o];if(s.alreadyRead!==s.length){var c=this.stream.findPosition(!0,s.offset+s.alreadyRead,!1);if(c>-1){n=this.stream.buffers[c];var l=n.byteLength-(s.offset+s.alreadyRead-n.fileStart);if(s.length-s.alreadyRead<=l)t.debug(`ISOFile`,`Getting item #`+e+` extent #`+o+` data (alreadyRead: `+s.alreadyRead+` offset: `+(s.offset+s.alreadyRead-n.fileStart)+` read size: `+(s.length-s.alreadyRead)+` full extent size: `+s.length+` full item size: `+a.size+`)`),r.memcpy(a.data.buffer,a.alreadyRead,n,s.offset+s.alreadyRead-n.fileStart,s.length-s.alreadyRead),n.usedBytes+=s.length-s.alreadyRead,this.stream.logBufferLevel(),a.alreadyRead+=s.length-s.alreadyRead,s.alreadyRead=s.length;else return t.debug(`ISOFile`,`Getting item #`+e+` extent #`+o+` partial data (alreadyRead: `+s.alreadyRead+` offset: `+(s.offset+s.alreadyRead-n.fileStart)+` read size: `+l+` full extent size: `+s.length+` full item size: `+a.size+`)`),r.memcpy(a.data.buffer,a.alreadyRead,n,s.offset+s.alreadyRead-n.fileStart,l),s.alreadyRead+=l,a.alreadyRead+=l,n.usedBytes+=l,this.stream.logBufferLevel(),null}else return null}}return a.alreadyRead===a.size?a:null},h.prototype.releaseItem=function(e){var t=this.items[e];if(t.data){this.itemsDataSize-=t.size,t.data=null,t.alreadyRead=0;for(var n=0;n<t.extents.length;n++){var r=t.extents[n];r.alreadyRead=0}return t.size}else return 0},h.prototype.processItems=function(e){for(var t in this.items){var n=this.items[t];this.getItem(n.id),e&&!n.sent&&(e(n),n.sent=!0,n.data=null)}},h.prototype.hasItem=function(e){for(var t in this.items){var n=this.items[t];if(n.name===e)return n.id}return-1},h.prototype.getMetaHandler=function(){return this.meta?this.meta.hdlr.handler:null},h.prototype.getPrimaryItem=function(){return!this.meta||!this.meta.pitm?null:this.getItem(this.meta.pitm.item_id)},h.prototype.itemToFragmentedTrackFile=function(e){var t=e||{},n=null;if(n=t.itemId?this.getItem(t.itemId):this.getPrimaryItem(),n==null)return null;var r=new h;r.discardMdatData=!1;var a={type:n.type,description_boxes:n.properties.boxes};n.properties.ispe&&(a.width=n.properties.ispe.image_width,a.height=n.properties.ispe.image_height);var o=r.addTrack(a);return o?(r.addSample(o,n.data),r):null},h.prototype.write=function(e){for(var t=0;t<this.boxes.length;t++)this.boxes[t].write(e)},h.prototype.createFragment=function(e,n,a){var o=this.getTrackById(e),s=this.getSample(o,n);if(s==null)return this.setNextSeekPositionFromSample(o.samples[n]),null;var l=a||new r;l.endianness=r.BIG_ENDIAN;var u=this.createSingleSampleMoof(s);u.write(l),u.trafs[0].truns[0].data_offset=u.size+8,t.debug(`MP4Box`,`Adjusting data_offset with new value `+u.trafs[0].truns[0].data_offset),l.adjustUint32(u.trafs[0].truns[0].data_offset_position,u.trafs[0].truns[0].data_offset);var d=new c.mdatBox;return d.data=s.data,d.write(l),l},h.writeInitializationSegment=function(e,n,a,o){var s;t.debug(`ISOFile`,`Generating initialization segment`);var c=new r;c.endianness=r.BIG_ENDIAN,e.write(c);var l=n.add(`mvex`);for(a&&l.add(`mehd`).set(`fragment_duration`,a),s=0;s<n.traks.length;s++)l.add(`trex`).set(`track_id`,n.traks[s].tkhd.track_id).set(`default_sample_description_index`,1).set(`default_sample_duration`,o).set(`default_sample_size`,0).set(`default_sample_flags`,65536);return n.write(c),c.buffer},h.prototype.save=function(e){var t=new r;t.endianness=r.BIG_ENDIAN,this.write(t),t.save(e)},h.prototype.getBuffer=function(){var e=new r;return e.endianness=r.BIG_ENDIAN,this.write(e),e.buffer},h.prototype.initializeSegmentation=function(){var e,n,r,a;for(this.onSegment===null&&t.warn(`MP4Box`,`No segmentation callback set!`),this.isFragmentationInitialized||(this.isFragmentationInitialized=!0,this.nextMoofNumber=0,this.resetTables()),n=[],e=0;e<this.fragmentedTracks.length;e++){var o=new c.moovBox;o.mvhd=this.moov.mvhd,o.boxes.push(o.mvhd),r=this.getTrackById(this.fragmentedTracks[e].id),o.boxes.push(r),o.traks.push(r),a={},a.id=r.tkhd.track_id,a.user=this.fragmentedTracks[e].user,a.buffer=h.writeInitializationSegment(this.ftyp,o,this.moov.mvex&&this.moov.mvex.mehd?this.moov.mvex.mehd.fragment_duration:void 0,this.moov.traks[e].samples.length>0?this.moov.traks[e].samples[0].duration:0),n.push(a)}return n},c.Box.prototype.printHeader=function(e){this.size+=8,this.size>a&&(this.size+=8),this.type===`uuid`&&(this.size+=16),e.log(e.indent+`size:`+this.size),e.log(e.indent+`type:`+this.type)},c.FullBox.prototype.printHeader=function(e){this.size+=4,c.Box.prototype.printHeader.call(this,e),e.log(e.indent+`version:`+this.version),e.log(e.indent+`flags:`+this.flags)},c.Box.prototype.print=function(e){this.printHeader(e)},c.ContainerBox.prototype.print=function(e){this.printHeader(e);for(var t=0;t<this.boxes.length;t++)if(this.boxes[t]){var n=e.indent;e.indent+=` `,this.boxes[t].print(e),e.indent=n}},h.prototype.print=function(e){e.indent=``;for(var t=0;t<this.boxes.length;t++)this.boxes[t]&&this.boxes[t].print(e)},c.mvhdBox.prototype.print=function(e){c.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+`creation_time: `+this.creation_time),e.log(e.indent+`modification_time: `+this.modification_time),e.log(e.indent+`timescale: `+this.timescale),e.log(e.indent+`duration: `+this.duration),e.log(e.indent+`rate: `+this.rate),e.log(e.indent+`volume: `+(this.volume>>8)),e.log(e.indent+`matrix: `+this.matrix.join(`, `)),e.log(e.indent+`next_track_id: `+this.next_track_id)},c.tkhdBox.prototype.print=function(e){c.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+`creation_time: `+this.creation_time),e.log(e.indent+`modification_time: `+this.modification_time),e.log(e.indent+`track_id: `+this.track_id),e.log(e.indent+`duration: `+this.duration),e.log(e.indent+`volume: `+(this.volume>>8)),e.log(e.indent+`matrix: `+this.matrix.join(`, `)),e.log(e.indent+`layer: `+this.layer),e.log(e.indent+`alternate_group: `+this.alternate_group),e.log(e.indent+`width: `+this.width),e.log(e.indent+`height: `+this.height)};var g={};g.createFile=function(e,t){var n=e===void 0?!0:e,r=new h(t);return r.discardMdatData=!n,r},e!==void 0&&(e.createFile=g.createFile)}))()),W$=class extends Error{unsupported=!0;codec;constructor(e){super(`unsupported codec: ${e}`),this.name=`UnsupportedCodecError`,this.codec=e}};function G$(e){return e instanceof Error&&e.unsupported===!0}function K$(e){return e.replace(/^hev1\./i,`hvc1.`)}function q$(e,t){let n=e.getTrackById(t)?.mdia?.minf?.stbl?.stsd?.entries??[];for(let e of n){let t=e.hvcC??e.avcC;if(t){let e=new U$.DataStream(void 0,0,U$.DataStream.BIG_ENDIAN);return t.write(e),new Uint8Array(e.buffer,8)}}}function J$(e,t){if(e.length===0)return null;let n=e.findIndex(e=>e.is_sync);n<0&&(n=0);let r=e[n],a=r.cts/r.timescale*1e3,o=n;for(let r=n+1;r<e.length;r++){let n=e[r];if(n.cts/n.timescale*1e3-a<=t)o=r;else break}return{start:n,end:o}}function Y$(e,t){return new Promise((n,r)=>{e.onError=e=>r(Error(`mp4box: ${e}`)),e.onReady=t=>{let a=t.videoTracks?.[0];if(!a){r(Error(`no video track`));return}let o=q$(e,a.id);n({config:{codec:K$(a.codec),codedWidth:a.video?.width,codedHeight:a.video?.height,...o?{description:o}:{}},trackId:a.id})};let a=t;a.fileStart=0,e.appendBuffer(a),e.flush()})}async function X$(e){let t=U$.createFile(),{config:n,trackId:r}=await Y$(t,e);return{config:n,chunk:await new Promise((e,n)=>{t.onSamples=(t,r,a)=>{let o=a.find(e=>e.is_sync)??a[0];if(!o){n(Error(`no sample`));return}e(new EncodedVideoChunk({type:`key`,timestamp:Math.round(o.cts/o.timescale*1e6),data:o.data}))},t.setExtractionOptions(r,null,{nbSamples:1}),t.start()})}}var Z$=2048;async function Q$(e,t){let n=U$.createFile(),{config:r,trackId:a}=await Y$(n,e);return{config:r,chunks:await new Promise((e,r)=>{n.onSamples=(n,a,o)=>{let s=J$(o,t);if(!s){r(Error(`no sample`));return}let c=[];for(let e=s.start;e<=s.end;e++){let t=o[e];c.push(new EncodedVideoChunk({type:t.is_sync?`key`:`delta`,timestamp:Math.round(t.cts/t.timescale*1e6),data:t.data}))}e(c)},n.setExtractionOptions(a,null,{nbSamples:Z$}),n.start()})}}var $$=class{decoder=null;async decodeSegment(e){let{config:t,chunk:n}=await X$(e);if(!(await VideoDecoder.isConfigSupported(t)).supported)throw new W$(t.codec);return await new Promise((e,r)=>{this.decoder&&this.decoder.state!==`closed`&&this.decoder.close();let a=new VideoDecoder({output:t=>e(t),error:e=>r(e)});a.configure(t),this.decoder=a,a.decode(n),a.flush().catch(r)})}async decodeSegmentAt(e,t){let{config:n,chunks:r}=await Q$(e,t);if(!(await VideoDecoder.isConfigSupported(n)).supported)throw new W$(n.codec);return await new Promise((e,t)=>{this.decoder&&this.decoder.state!==`closed`&&this.decoder.close();let a=null,o=new VideoDecoder({output:e=>{a?.close(),a=e},error:e=>t(e)});o.configure(n),this.decoder=o;for(let e of r)o.decode(e);o.flush().then(()=>{a?e(a):t(Error(`no frame decoded`))}).catch(t)})}close(){this.decoder&&this.decoder.state!==`closed`&&this.decoder.close(),this.decoder=null}},e1=[`live`,`loading`,`playing`,`paused`,`gap`,`ended`,`error`];function t1(e){return typeof e==`string`&&e1.includes(e)}var n1=`low`,r1=class{deps;begun=!1;disposed=!1;lastSentProfile=null;positionsSeen=0;firstFrameAnnounced=!1;rvfcHandle=null;retargets=0;renders=0;acks=0;onMessage=e=>{if(this.disposed||typeof e.data!=`string`)return;let t;try{t=JSON.parse(e.data)}catch{return}if(typeof t!=`object`||!t)return;let n=t;if(n.t===`state`&&t1(n.state)){this.deps.onState?.(n.state);return}n.t!==`position`||typeof n.epochMs!=`number`||(this.deps.onPosition?.(n.epochMs),this.begun&&(this.positionsSeen+=1,this.rvfcCapable()||(this.acks+=1,this.send({t:`scrubAck`}))))};constructor(e){this.deps=e,this.deps.channel.addEventListener(`message`,this.onMessage)}rvfcCapable(){return typeof this.deps.video()?.requestVideoFrameCallback==`function`}send(e){return this.disposed||this.deps.channel.readyState!==`open`?!1:(this.deps.channel.send(JSON.stringify(e)),!0)}playRecorded(e,t,n){let r=this.send({t:`playRecorded`,deviceId:e,epoch:t,profile:n});return r&&(this.lastSentProfile=n),r}seek(e){return this.send({t:`seek`,epoch:e})}warm(e){return this.send({t:`warm`,epoch:e,profile:n1})}setRate(e){return this.send({t:`setRate`,rate:e})}stepFrame(e){return this.send({t:`stepFrame`,dir:e})}commit(e){return this.end(),this.send({t:`scrubCommit`,epoch:e})}goLive(){let e=this.send({t:`goLive`});return e&&this.deps.onLog?.(`scrub:push-golive`,{}),this.end(),e}isActive(){return this.begun&&!this.disposed&&this.deps.channel.readyState===`open`}isOpen(){return!this.disposed&&this.deps.channel.readyState===`open`}begin(){return this.disposed||this.deps.channel.readyState!==`open`?!1:this.begun?!0:(this.begun=!0,this.positionsSeen=0,this.firstFrameAnnounced=!1,this.retargets=0,this.renders=0,this.acks=0,this.lastSentProfile!==n1&&(this.lastSentProfile=n1,this.send({t:`setProfile`,profile:n1})),this.send({t:`scrubStart`}),this.armRenderAck(),this.deps.onLog?.(`scrub:push-begin`,{rvfc:this.rvfcCapable()}),!0)}retarget(e,t){this.isActive()&&(this.retargets+=1,this.send(t?{t:`scrubTo`,epoch:e,m:t.mode,v:Math.round(t.velocityPxPerS)}:{t:`scrubTo`,epoch:e}))}end(){this.begun&&this.deps.onLog?.(`scrub:push-drag-end`,{retargets:this.retargets,positions:this.positionsSeen,renders:this.renders,acks:this.acks}),this.begun=!1,this.cancelRenderAck()}dispose(){this.end(),this.disposed=!0,this.deps.channel.removeEventListener(`message`,this.onMessage)}armRenderAck(){let e=this.deps.video();e?.requestVideoFrameCallback&&(this.rvfcHandle=e.requestVideoFrameCallback(()=>{this.rvfcHandle=null,!(!this.begun||this.disposed)&&(this.positionsSeen>0&&(this.renders+=1,this.acks+=1,this.send({t:`scrubAck`}),this.firstFrameAnnounced||(this.firstFrameAnnounced=!0,this.deps.onFirstFrame?.()),this.deps.onFrameRendered?.(),this.deps.onLog?.(`scrub:drawn`,{depth:`push`})),this.armRenderAck())}))}cancelRenderAck(){this.rvfcHandle!==null&&(this.deps.video()?.cancelVideoFrameCallback?.(this.rvfcHandle),this.rvfcHandle=null)}},i1=class extends Error{needBytes;constructor(e,t){super(e),this.needBytes=t,this.name=`MfraParseError`}},a1=16;function o1(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function s1(e,t){let n=t.charCodeAt(0),r=t.charCodeAt(1),a=t.charCodeAt(2),o=t.charCodeAt(3);for(let t=e.length-4;t>=0;t--)if(e[t]===n&&e[t+1]===r&&e[t+2]===a&&e[t+3]===o)return t;return-1}var c1=2048;function l1(e,t,n){let r=8;for(;r+8<=e.length;){let a=t.getUint32(r);if(a<8||r+a>e.length)break;if(String.fromCharCode(e[r+4],e[r+5],e[r+6],e[r+7])===`tfra`&&(n===void 0||t.getUint32(r+12)===n))return r+4;r+=a}return-1}function u1(e,t,n={}){if(e.length<a1)throw new i1(`tail too short to contain mfro`,c1);let r=o1(e),a=s1(e,`mfro`);if(a<0)throw new i1(`no mfro box in tail`);let o=r.getUint32(a+8);if(o<=0||o>t)throw new i1(`implausible mfra size ${o}`);if(o>e.length)throw new i1(`mfra spans ${o} bytes, tail has ${e.length}`,o);let s=e.length-o,c=e.subarray(s),l=t-o,u=o1(c),d=l1(c,u,n.trackId);if(d<0)throw new i1(n.trackId===void 0?`no tfra box inside mfra`:`no tfra box for track ${n.trackId}`);let f=d+4,p=c[f]??0;f+=4;let m=u.getUint32(f);f+=4;let h=u.getUint32(f);f+=4;let g=(h>>4&3)+1,_=(h>>2&3)+1,v=(h&3)+1,y=u.getUint32(f);f+=4;let b=[];for(let e=0;e<y;e++){let e,t;if(p===1?(e=Number(u.getBigUint64(f)),f+=8,t=Number(u.getBigUint64(f)),f+=8):(e=u.getUint32(f),f+=4,t=u.getUint32(f),f+=4),f+=g+_+v,f>c.length)throw new i1(`tfra declares ${y} entries but the box ends early`);b.push({timeTicks:e,moofOffset:t})}if(b.length===0)throw new i1(`tfra has no entries`);return{samples:b,mfraOffset:l,trackId:m}}function d1(e,t){let{samples:n,mfraOffset:r}=e,a=0,o=n.length-1,s=0;for(;a<=o;){let e=a+o>>1,r=n[e];if(r===void 0)break;r.timeTicks<=t?(s=e,a=e+1):o=e-1}return{start:n[s]?.moofOffset??0,end:n[s+1]?.moofOffset??r,sampleIndex:s}}function*f1(e,t=0,n=e.length){let r=new DataView(e.buffer,e.byteOffset,e.byteLength),a=t;for(;a+8<=n;){let t=r.getUint32(a),o=String.fromCharCode(e[a+4],e[a+5],e[a+6],e[a+7]);if(t<8)return;let s=Math.min(a+t,n);yield[o,a,s],a=s}}function p1(e,t,n=0,r=e.length){for(let[a,o,s]of f1(e,n,r))if(a===t)return[o,s];return null}function m1(e){let t=p1(e,`moof`);if(!t)return null;let[n,r]=t;if(r>e.length)return null;let a=p1(e,`traf`,n+8,r);if(!a)return null;let o=p1(e,`trun`,a[0]+8,a[1]);if(!o)return null;let s=new DataView(e.buffer,e.byteOffset,e.byteLength),c=o[0]+8,l=s.getUint32(c)&16777215;c+=4;let u=s.getUint32(c);c+=4;let d=(l&1)!=0,f=(l&4)!=0,p=(l&256)!=0,m=(l&512)!=0,h=(l&1024)!=0,g=(l&2048)!=0,_=r-n+8;if(d&&(_=s.getInt32(c),c+=4),f&&(c+=4),!m)return null;let v=[];for(let t=0;t<u;t++){p&&(c+=4);let t=s.getUint32(c);if(c+=4,h&&(c+=4),g&&(c+=4),c>e.length)return null;v.push(t)}return{sizes:v,dataOffset:_}}function*h1(e,t,n,r){let a=n;for(;a+8<=r;){let n=t.getUint32(a);if(n<8)return;let o=String.fromCharCode(e[a+4],e[a+5],e[a+6],e[a+7]),s=a+n;if(s>r)return;yield[o,a,s],a=s}}function g1(e,t){return e[t+8]??0}function _1(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength);for(let[n,r,a]of h1(e,t,0,e.length))if(n===`moov`)for(let[n,o,s]of h1(e,t,r+8,a)){if(n!==`trak`)continue;let r=v1(e,t,o,s);if(r)return{...r,initEnd:a}}return null}function v1(e,t,n,r){let a=null,o=null,s=!1;for(let[c,l,u]of h1(e,t,n+8,r))if(c===`tkhd`)a=t.getUint32(l+12+(g1(e,l)===1?16:8));else if(c===`mdia`){for(let[n,r,a]of h1(e,t,l+8,u))if(n===`mdhd`)o=t.getUint32(r+12+(g1(e,r)===1?16:8));else if(n===`hdlr`){let t=r+16;t+4<=a&&(s=String.fromCharCode(e[t],e[t+1],e[t+2],e[t+3])===`vide`)}}return!s||a===null||o===null||o<=0?null:{videoTrackId:a,videoTimescale:o}}function y1(e){let t=e.headers?.get?.(`content-range`);if(!t)return null;let n=/\/(\d+)\s*$/.exec(t)?.[1];if(n===void 0)return null;let r=Number(n);return Number.isFinite(r)&&r>0?r:null}function b1(e,t,n,r){let a=Math.max(0,n-t.startMs),o=e.samples[0]?.timeTicks??0;if(r!==null&&r>0)return o+a/1e3*r;let s=e.samples[e.samples.length-1]?.timeTicks??0,c=t.durMs>0?a/t.durMs:0;return Math.round(s*c)}var x1=8,S1=128*1024,C1=512*1024,w1=4096,T1=class{deps;fetchImpl;headers;now;fragmentCacheSize;smallFragmentBytes;initByProfile=new Map;indexByUrl=new Map;fragments=new Map;reads=[];constructor(e={}){this.deps=e,this.fetchImpl=e.fetchImpl??((e,t)=>fetch(e,t)),this.headers=e.headers??{},this.now=e.now??(()=>Date.now()),this.fragmentCacheSize=e.fragmentCacheSize??x1,this.smallFragmentBytes=e.smallFragmentBytes??S1}async readRange(e,t,n){let r=this.now(),a=await this.fetchImpl(e,{headers:{...this.headers,range:t},credentials:`include`,...n?{signal:n}:{}});if(!a.ok&&a.status!==206)throw Error(`byte-range ${t} on ${e}: HTTP ${a.status}`);let o=new Uint8Array(await a.arrayBuffer());return this.record({bytes:o.length,ms:this.now()-r}),{bytes:o,totalBytes:y1(a)}}record(e){this.reads.push(e),this.reads.length>32&&this.reads.shift()}throughputBytesPerMs(){let e=this.reads.filter(e=>e.bytes>16*1024&&e.ms>0);if(e.length<3)return null;let t=e.reduce((e,t)=>e+t.bytes,0),n=e.reduce((e,t)=>e+t.ms,0);return n>0?t/n:null}async init(e,t,n){let r=this.initByProfile.get(e);if(r)return r;let{bytes:a}=await this.readRange(t.url,`bytes=0-${w1-1}`,n),o=_1(a);o===null&&this.deps.onLog?.(`init:unparsed`,{url:t.url,profile:e});let s={bytes:o===null?a:a.subarray(0,o.initEnd),info:o};return this.initByProfile.set(e,s),s}async index(e,t,n){let r=this.indexByUrl.get(e.url);if(r)return r;let a=e.mfra;if(a!==void 0&&(t===void 0||t===a.trackId)){let t={samples:a.samples,mfraOffset:a.mfraOffset,trackId:a.trackId};return this.indexByUrl.set(e.url,t),t}let o=c1;for(let r=0;r<2;r++){let a=await this.readRange(e.url,`bytes=-${o}`,n),s=a.totalBytes??e.bytes;if(s===void 0)throw new i1(`unknown size for ${e.url} — no Content-Range, no byte count`);try{let n=u1(a.bytes,s,t===void 0?{}:{trackId:t});return this.indexByUrl.set(e.url,n),n}catch(t){if(t instanceof i1&&t.needBytes&&r===0){o=t.needBytes+64,this.deps.onLog?.(`mfra:refetch`,{url:e.url,tailBytes:o});continue}throw t}}throw new i1(`could not read an index for ${e.url}`)}async fragmentAt(e,t,n,r){let{index:a,timescale:o}=await this.locate(e,t,r),{start:s,end:c,sampleIndex:l}=d1(a,b1(a,t,n,o));return{bytes:await this.fragmentBytes(t,s,c,r),sampleIndex:l,index:a,timescale:o}}async locate(e,t,n){let r=await this.init(e,t,n);return{index:await this.index(t,r.info?.videoTrackId,n),timescale:r.info?.videoTimescale??null}}async keyframeAt(e,t,n,r){let{index:a,timescale:o}=await this.locate(e,t,r),{start:s,end:c,sampleIndex:l}=d1(a,b1(a,t,n,o));if(c-s<=this.smallFragmentBytes)return{bytes:await this.fragmentBytes(t,s,c,r),sampleIndex:l,index:a,timescale:o};let u=Math.min(c,s+C1),d=await this.fragmentBytes(t,s,u,r),f=m1(d),p=f?.sizes[0];if(f===null||p===void 0)return this.deps.onLog?.(`keyframe:no-trun`,{url:t.url,start:s}),{bytes:await this.fragmentBytes(t,s,c,r),sampleIndex:l,index:a,timescale:o};let m=f.dataOffset+p;if(m<=d.length)return{bytes:d.subarray(0,m),sampleIndex:l,index:a,timescale:o};let h=Math.min(c,s+m);return{bytes:await this.fragmentBytes(t,s,h,r),sampleIndex:l,index:a,timescale:o}}async fragmentAfter(e,t,n,r){let a=t.samples[n+1];if(a===void 0)return null;let o=t.samples[n+2];return this.fragmentBytes(e,a.moofOffset,o?.moofOffset??t.mfraOffset,r)}async fragmentBytes(e,t,n,r){let a=`${e.url}#${t}-${n}`,o=this.fragments.get(a);if(o)return this.fragments.delete(a),this.fragments.set(a,o),o;let{bytes:s}=await this.readRange(e.url,`bytes=${t}-${n-1}`,r);for(this.fragments.set(a,s);this.fragments.size>this.fragmentCacheSize;){let e=this.fragments.keys().next().value;if(e===void 0)break;this.fragments.delete(e)}return s}clear(){this.initByProfile.clear(),this.indexByUrl.clear(),this.fragments.clear(),this.reads.length=0}},E1=class{windowMs;maxSamples;samples=[];constructor(e){this.windowMs=e.windowMs,this.maxSamples=Math.max(2,e.maxSamples??6)}add(e,t){this.samples.push({epochMs:e,at:t}),this.samples.length>this.maxSamples&&(this.samples=this.samples.slice(this.samples.length-this.maxSamples))}velocity(){if(this.samples.length<2)return 0;let e=this.samples[0],t=this.samples[this.samples.length-1],n=t.at-e.at;return n<=0?0:(t.epochMs-e.epochMs)/n}windowKey(e){return Math.floor(e/this.windowMs)*this.windowMs}projectedWindowKeys(e,t,n){let r=Math.max(1,n),a=this.windowKey(e),o=this.velocity();if(o===0)return[a,a-this.windowMs,a+this.windowMs].slice(0,r);let s=e+o*t,c=o>0?1:-1,l=[a],u=a;for(;l.length<r&&(u+=c*this.windowMs,!(c>0&&u>s+this.windowMs||c<0&&u<s-this.windowMs));)l.push(u);return l.slice(0,r)}reset(){this.samples=[]}};function D1(e,t,n,r){let a=t-e;if(Math.abs(a)<=r)return null;let o=a/Math.max(1,n);Math.abs(o)<r&&(o=Math.sign(a)*r);let s=Math.round(e+o);return Math.abs(t-s)<=r?null:s}var O1=`low`,k1=4e3,A1=6e4,j1=1e3,M1=10,N1=150,P1=1e4,F1=class extends Error{constructor(e){super(`scrub read outran its deadline (${e}ms slot)`),this.name=`DeadlineError`}},I1=3,L1=class{deps;pushedSinceDrawn=0;pushProvedDead=!1;disposed=!1;velocity=new E1({windowMs:A1});lastSampleAt=0;pendingEpoch=null;running=!1;lastPaintedEpoch=null;sweepDeadline=0;framesLeft=M1;lookahead=null;inFlightAcs=new Set;constructor(e){this.deps=e}now(){return this.deps.now?.()??Date.now()}async scrubTo(e){if(this.disposed)return`no-footage`;let t=this.now();t-this.lastSampleAt>500&&(this.velocity.reset(),this.pushProvedDead=!1,this.pushedSinceDrawn=0),this.lastSampleAt=t,this.velocity.add(e,t);let n=this.deps.push;if(n?.isActive()&&!this.pushProvedDead)if(this.pushedSinceDrawn+=1,this.pushedSinceDrawn>I1)this.pushProvedDead=!0,this.deps.onLog?.(`scrub:push-abandoned`,{pushed:this.pushedSinceDrawn,reason:`no frame drawn — falling back to the sweep`});else return this.deps.onLog?.(`scrub:pushed`,{epochMs:e}),n.retarget(e),`queued`;if(this.pendingEpoch=e,this.sweepDeadline=t+j1,this.framesLeft=M1,this.running)return`queued`;this.running=!0;try{let e=`no-footage`,t=this.lastPaintedEpoch;for(;!this.disposed;){let n=this.pendingEpoch;if(n===null)break;let r=this.now(),a=t!==null&&r<this.sweepDeadline&&this.framesLeft>0?D1(t,n,this.framesLeft,k1):null;if(a===null)this.pendingEpoch=null,e=await this.paintOne(n,r+P1,null,!0),t=n;else{this.framesLeft=Math.max(0,this.framesLeft-1);let r=D1(a,n,this.framesLeft,k1);e=await this.paintOne(a,this.sweepDeadline,r,!1),t=a}}return e}finally{this.running=!1}}bounded(e,t,n){let r=t-this.now();return r<=0?(n?.abort(),Promise.reject(new F1(0))):new Promise((t,a)=>{let o=setTimeout(()=>{n?.abort(),a(new F1(r))},r);e.then(e=>{clearTimeout(o),t(e)},e=>{clearTimeout(o),a(e instanceof Error?e:Error(String(e)))})})}startRead(e){let t=new AbortController;this.inFlightAcs.add(t);let n=(async()=>{try{let n=await this.deps.locate(e);if(this.disposed)return null;if(n===null)return this.deps.onLog?.(`scrub:no-segment`,{epochMs:e}),null;let[r,a]=await Promise.all([this.deps.source.keyframeAt(O1,n,e,t.signal),this.deps.source.init(O1,n,t.signal)]),o=new Uint8Array(a.bytes.length+r.bytes.length);return o.set(a.bytes,0),o.set(r.bytes,a.bytes.length),{bytes:o.buffer,readBytes:r.bytes.length,sampleIndex:r.sampleIndex}}finally{this.inFlightAcs.delete(t)}})();return n.catch(()=>{}),{epochMs:e,promise:n,ac:t}}takeOrStartRead(e){let t=this.lookahead;return this.lookahead=null,t&&t.epochMs===e?t:this.startRead(e)}armLookahead(e,t){(async()=>{let n=!1;e.then(()=>{n=!0},()=>{n=!0}),await new Promise(e=>setTimeout(e,N1)),!(n||this.disposed||this.lookahead!==null)&&(this.lookahead=this.startRead(t))})()}async paintOne(e,t,n,r){let a=this.velocity.velocity(),o=this.takeOrStartRead(e);n!==null&&this.armLookahead(o.promise,n);let s;try{s=await this.bounded(o.promise,t,r?o.ac:null)}catch(t){return t instanceof F1?this.skipped(e,r,`read`):(this.deps.onLog?.(`scrub:failed`,{epochMs:e,disposed:this.disposed,error:t instanceof Error?t.message:String(t)}),`no-footage`)}if(this.disposed||s===null)return`no-footage`;let c,l=this.deps.decode(s.bytes);try{c=await this.bounded(l,t,null)}catch(t){return t instanceof F1?(l.then(e=>e.close()).catch(()=>{}),this.skipped(e,r,`decode`)):(this.deps.onLog?.(`scrub:failed`,{epochMs:e,disposed:this.disposed,error:t instanceof Error?t.message:String(t)}),`no-footage`)}return this.disposed?(c.close(),`no-footage`):(this.deps.draw(c),c.close(),this.lastPaintedEpoch=e,this.deps.onDrawn?.(),this.deps.warmAhead?.(e,a>=0?1:-1),this.deps.onLog?.(`scrub:drawn`,{epochMs:e,depth:`keyframe`,kind:r?`target`:`sweep`,bytes:s.readBytes,sampleIndex:s.sampleIndex}),`drawn`)}notePushDrawn(){this.pushedSinceDrawn=0}skipped(e,t,n){return this.deps.onLog?.(`scrub:skipped`,{epochMs:e,stage:n,kind:t?`target`:`sweep`}),`skipped`}armPrefetch(e){this.disposed||(async()=>{try{let t=await this.deps.locate(e);if(t===null||this.disposed)return;let{info:n}=await this.deps.source.init(O1,t);await this.deps.source.index(t,n?.videoTrackId)}catch{}})()}dispose(){this.disposed=!0,this.pendingEpoch=null;for(let e of this.inFlightAcs)e.abort();this.inFlightAcs.clear(),this.lookahead=null}};function R1(){let e=!1;return{fire(){return e?!1:(e=!0,!0)},reset(){e=!1}}}var z1=R({serverUrl:M().min(1),token:M().min(1),deviceId:N().int().nonnegative(),target:O$,muted:P(),stats:P().optional(),highlight:fQ.optional(),snapshot:M().optional()});function B1(e,t){try{return new URL(t,e).toString()}catch{return t}}function V1(e,t){lZ(t===void 0?{type:`state`,state:e}:{type:`state`,state:e,message:t})}function H1(e){switch(e){case`playing`:return`playing`;case`error`:return`error`;case`connecting`:case`disconnected`:case`idle`:return`connecting`}}function U1(e){return e.kind===`adaptive`?{kind:`adaptive`}:{kind:`profile`,profile:e.profile}}function W1(e){return e.kind===`adaptive`?`embed:adaptive`:`embed:profile:${e.profile}`}function G1(e){let t=z1.safeParse(e);return t.success?{ok:!0,config:t.data}:{ok:!1,error:t.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `)}}function K1({message:e}){return(0,K.useEffect)(()=>{V1(`error`,e)},[e]),(0,q.jsxs)(`div`,{style:{position:`fixed`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,background:`#000`,color:`#f87171`,fontFamily:`system-ui, sans-serif`,fontSize:13,padding:16,textAlign:`center`},children:[`Embed config error: `,e]})}function q1({system:e,deviceId:t,token:n,initialTarget:r,initialMuted:a,initialStats:o,initialHighlight:s,initialSnapshot:c}){let[l,u]=(0,K.useState)(r);(0,K.useEffect)(()=>sZ(t),[t]);let d=(0,K.useRef)(l);d.current=l;let[f,p]=(0,K.useState)(a),[m,h]=(0,K.useState)(o),[g,_]=(0,K.useState)(s),[v,y]=(0,K.useState)(c),[b,x]=(0,K.useState)(0),[S,ee]=(0,K.useState)({w:window.innerWidth,h:window.innerHeight}),C=XQ(e,t,g),w=MQ(),T=(0,K.useRef)(w.setActiveMic);T.current=w.setActiveMic;let E=(0,K.useRef)(0),{handleOffer:te,getIceServers:ne,addIceCandidate:D,getIceCandidates:re,closeSession:O,getSessionState:ie}=kY(e.trpcClient,t),ae=(0,K.useMemo)(()=>U1(l),[l]),oe=(0,K.useMemo)(()=>(e,t,n)=>te(ae,e,t,n),[te,ae]),se=(0,K.useMemo)(()=>(e,t,n,r)=>te(n,t,e,r),[te]),k=(0,K.useRef)(null),[ce,le]=(0,K.useState)(!1),[ue,de]=(0,K.useState)(!1),fe=(0,K.useRef)(null),pe=(0,K.useRef)(null),me=(0,K.useRef)(null),he=(0,K.useRef)(null),ge=(0,K.useRef)(null),_e=(0,K.useRef)(R1()),ve=(0,K.useRef)(new Map),ye=(0,K.useRef)(!1),be=(0,K.useMemo)(()=>({Authorization:`Bearer ${n}`}),[n]),xe=(0,K.useMemo)(()=>()=>(me.current||=new T1({headers:be}),me.current),[be]),Se=(0,K.useMemo)(()=>n=>{let r=ve.current.get(n);if(r)return r;let a=new H$({baseUrl:B1(e.serverUrl,N$),deviceId:t,profile:n,headers:be,onLog:(e,t)=>lZ({type:`log`,scope:`directory`,msg:e,data:t})});return ve.current.set(n,a),a},[e,t,be]),Ce=(0,K.useMemo)(()=>e=>{let t=k.current,n=t?.getContext(`2d`);if(!t||!n)return;let r=window.devicePixelRatio||1,a=Math.max(1,Math.round(S.w*r)),o=Math.max(1,Math.round(S.h*r));t.width!==a&&(t.width=a),t.height!==o&&(t.height=o),n.imageSmoothingEnabled=!0,n.imageSmoothingQuality=`high`;let s=`displayWidth`in e?e.displayWidth||e.codedWidth:typeof e.width==`number`?e.width:0,c=`displayHeight`in e?e.displayHeight||e.codedHeight:typeof e.height==`number`?e.height:0;if(s<=0||c<=0)return;let l=Math.min(a/s,o/c),u=s*l,d=c*l;n.clearRect(0,0,a,o),n.drawImage(e,(a-u)/2,(o-d)/2,u,d),de(!0)},[S.w,S.h]),we=(0,K.useRef)(Ce);we.current=Ce,(0,K.useEffect)(()=>{lZ({type:`log`,scope:`recorded:canvas`,msg:`visibility`,data:{visible:ce&&ue,scrubbing:ce,previewReady:ue}})},[ce,ue]),(0,K.useEffect)(()=>{if(!f)return;let e=setInterval(()=>{let e=0;for(let t of Array.from(document.querySelectorAll(`video`))){t.muted||(t.muted=!0,e++);let n=t.srcObject;if(n instanceof MediaStream)for(let t of n.getAudioTracks())t.enabled&&(t.enabled=!1,e++)}e>0&&lZ({type:`log`,scope:`live-audio`,msg:`re-muted`,data:{corrected:e}})},1e3);return()=>clearInterval(e)},[f]);let Te=(0,K.useMemo)(()=>()=>(pe.current||=new L1({source:xe(),push:{isActive:()=>he.current?.isActive()??!1,retarget:e=>he.current?.retarget(e)},warmAhead:(e,t)=>{let n=36e5,r=(Math.floor(e/n)+(t===1?1:-1))*n;Se(`low`).ensure(r,r+n).catch(()=>{})},locate:async e=>{let t=Se(`low`);await t.ensureAround(e);let n=M$(t.all(),e);return n===null?null:{url:n.uri,startMs:n.startMs,durMs:n.durMs,...n.bytes===void 0?{}:{bytes:n.bytes}}},decode:async e=>(fe.current||=new $$,fe.current.decodeSegment(e)),draw:e=>we.current(e),onDrawn:()=>{_e.current.fire()&&lZ({type:`scrubDrawn`})},onLog:(e,t)=>lZ({type:`log`,scope:`scrub`,msg:e,data:t})}),pe.current),[Se,xe,e,t,be]),Ee=(0,K.useRef)(Te);Ee.current=Te;let De=(0,K.useMemo)(()=>async e=>{try{await Te().scrubTo(e)}catch(e){G$(e)&&!ye.current&&(ye.current=!0,lZ({type:`log`,scope:`scrub`,msg:`webcodecs-unsupported`,data:{codec:e.codec}}))}},[Te]),Oe=(0,K.useRef)(De);Oe.current=De,(0,K.useEffect)(()=>()=>{pe.current?.dispose(),he.current?.dispose()},[]),(0,K.useEffect)(()=>{let e=()=>he.current?.isOpen()?he.current:null,n=()=>{let e=d.current;return e.kind===`profile`?e.profile:`mid`},r=e=>{lZ({type:`log`,scope:`recorded:session`,msg:`pointer move with no open session`,data:{what:e}}),lZ({type:`recState`,state:`error`})},a=a=>{le(!1);let o=e();if(!o){r(`scrubCommit`);return}o.end(),o.playRecorded(t,a,n())};return window.__camstackEmbed={setMuted:e=>p(e),setTarget:e=>{let t=O$.safeParse(e);t.success&&u(t.data)},setStats:e=>h(e),setHighlight:e=>_(e),setSnapshot:e=>y(e),setMic:e=>T.current(e?t:null),fit:(e,t)=>ee({w:e,h:t}),reconnect:()=>x(e=>e+1),playRecorded:(t,n,a)=>{if(!Number.isFinite(n))return;let o=e();if(!o){r(`playRecorded`);return}o.playRecorded(t,n,a)},seek:a=>{if(!Number.isFinite(a))return;let o=e();if(!o){r(`seek`);return}o.playRecorded(t,a,n())},scrubCommit:e=>{Number.isFinite(e)&&a(e)},scrubStart:()=>{lZ({type:`log`,scope:`recorded:scrub`,msg:`scrubStart`,data:{}}),de(!1),_e.current.reset(),le(!0),he.current?.begin(),E.current>0&&Ee.current().armPrefetch(E.current)},scrubTo:e=>{Number.isFinite(e)&&Oe.current(e)},timelineWarm:e=>{Number.isFinite(e)&&(he.current?.warm(e),Ee.current().armPrefetch(e))},scrubEnd:e=>{Number.isFinite(e)&&a(e)},setRate:t=>{Number.isFinite(t)&&e()?.setRate(t)},stepFrame:t=>{t!==1&&t!==-1||e()?.stepFrame(t)},goLive:()=>{le(!1),he.current?.goLive(),lZ({type:`recState`,state:`live`})}},()=>{window.__camstackEmbed&&delete window.__camstackEmbed}},[t]),(0,K.useEffect)(()=>{lZ({type:`micState`,state:w.micState})},[w.micState]),(0,K.useEffect)(()=>uZ(e=>{let t=window.__camstackEmbed;if(t)switch(e.kind){case`setMuted`:t.setMuted(e.value);break;case`setTarget`:t.setTarget(e.value);break;case`setStats`:t.setStats(e.value);break;case`setHighlight`:t.setHighlight(e.value);break;case`setSnapshot`:t.setSnapshot(e.value);break;case`setMic`:t.setMic(e.value);break;case`fit`:t.fit(e.w,e.h);break;case`reconnect`:t.reconnect();break;case`playRecorded`:t.playRecorded(e.deviceId,e.epochMs,e.profile);break;case`seek`:t.seek(e.epochMs??e.value);break;case`scrubCommit`:t.scrubCommit(e.epochMs??e.value);break;case`scrubStart`:t.scrubStart();break;case`scrubTo`:t.scrubTo(e.epochMs??e.value);break;case`scrubEnd`:t.scrubEnd(e.epochMs??e.value);break;case`setRate`:t.setRate(e.rate??e.value);break;case`stepFrame`:{let n=e.dir;(n===1||n===-1)&&t.stepFrame(n);break}case`goLive`:t.goLive();break;default:break}}),[]);let ke=W1(l);return(0,q.jsxs)(`div`,{style:{position:`fixed`,left:0,top:0,width:S.w,height:S.h,background:`#000`},children:[(0,q.jsx)(uY,{serverUrl:e.serverUrl,streamKey:ke,autoPlay:!0,muted:f,showControls:!1,showStats:m,onPlaybackStats:e=>lZ({type:`log`,scope:`playback`,msg:`stats`,data:e}),onConnectTiming:e=>lZ({type:`log`,scope:`webrtc-timing`,msg:`connect`,data:e}),onClientNetworkSample:l.kind===`adaptive`?n=>{e.trpcClient.networkQuality.reportClientStats.mutate({deviceId:t,...n}).catch(()=>{})}:void 0,className:`w-full h-full`,handleOffer:oe,reoffer:se,getSessionState:ie,getIceServers:ne,addIceCandidate:D,getIceCandidates:re,closeSession:O,reconnectSignal:b,posterUrl:v,onStateChange:e=>V1(H1(e)),onError:e=>V1(`error`,e),onReconnectAttempt:e=>lZ({type:`log`,scope:`live:retry`,msg:e.kind===`retry`?`auto-retry scheduled`:`auto-retry exhausted`,data:e}),onControlChannel:e=>{he.current?.dispose(),he.current=new r1({channel:e,video:()=>ge.current,onState:e=>lZ({type:`recState`,state:e}),onPosition:e=>{E.current=e,lZ({type:`position`,positionMs:e})},onFirstFrame:()=>{de(!1),_e.current.fire()&&lZ({type:`scrubDrawn`})},onFrameRendered:()=>pe.current?.notePushDrawn(),onLog:(e,t)=>lZ({type:`log`,scope:`scrub`,msg:e,data:t})})},onVideoElement:e=>{ge.current=e}}),(0,q.jsx)(`canvas`,{ref:k,style:{position:`absolute`,inset:0,width:`100%`,height:`100%`,background:`#000`,pointerEvents:`none`,transform:`translateZ(0)`,zIndex:2,display:ce&&ue?`block`:`none`}}),C&&(()=>{let e=g?.appearance,t=C===`motion`?e?.motionColor??ZQ.motion:C===`audio`?e?.audioColor??ZQ.audio:e?.detectionColor??ZQ.detection;return(0,q.jsx)(`div`,{style:{position:`absolute`,inset:0,border:`${e?.thickness??3}px solid ${t}`,boxShadow:`inset 0 0 12px ${t}`,pointerEvents:`none`,transform:`translateZ(0)`}})})()]})}function J1(){let e=fZ(`player`,()=>window.__CAMSTACK_EMBED__,G1),[t,n]=(0,K.useState)(null);(0,K.useEffect)(()=>{let e=e=>{let t=A$(e);t&&n(t)};window.__camstackEmbedPage={setDevice:e};let t=uZ(t=>{t.kind===`setDevice`&&e(t.value)});return()=>{window.__camstackEmbedPage&&delete window.__camstackEmbedPage,t()}},[]);let r=(0,K.useMemo)(()=>e===null||!e.ok?null:{system:DA({serverUrl:e.config.serverUrl,token:e.config.token}),queryClient:new rM({defaultOptions:{queries:{retry:!1,refetchOnWindowFocus:!1}}})},[e]);if((0,K.useEffect)(()=>{if(r)return()=>{r.system.close()}},[r]),e===null)return null;if(!e.ok)return(0,q.jsx)(K1,{message:e.error});if(!r)return(0,q.jsx)(K1,{message:`Failed to initialise the embed player`});let a=t?.deviceId??e.config.deviceId,o=t?.target??e.config.target,s=t?.muted??e.config.muted,c=t?.stats??e.config.stats??!1,l=t===null?e.config.snapshot:t.snapshot;return(0,q.jsx)(lH,{system:r.system,children:(0,q.jsx)(oM,{client:r.queryClient,children:(0,q.jsx)($.Provider,{client:r.system.trpcClient,queryClient:r.queryClient,children:(0,q.jsx)(q1,{system:r.system,deviceId:a,token:e.config.token,initialTarget:o,initialMuted:s,initialStats:c,initialHighlight:e.config.highlight,initialSnapshot:l},a)})})})}var Y1=R({serverUrl:M().min(1),token:M().min(1),deviceId:N().int().nonnegative(),startMs:N().int().nonnegative().optional()});function X1(e){if(e==null)return{ok:!1,error:`config is required`};let t=Y1.safeParse(e);return t.success?{ok:!0,config:t.data}:{ok:!1,error:t.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `)}}function Z1(e,t){let n=(e-t)/1e3;return Number.isFinite(n)&&n>0?n:0}var Q1=360*60*1e3;function $1(e){lZ(e)}function e0(e,t,n){try{lZ({type:`log`,scope:e,msg:t,data:n})}catch{}try{console.debug(`[rec-embed:${e}] ${t}`,n??``)}catch{}}function t0({system:e,config:t}){(0,K.useEffect)(()=>sZ(t.deviceId),[t.deviceId]);let n=(0,K.useRef)(null),r=(0,K.useRef)(null),a=(0,K.useRef)(0),o=(0,K.useRef)(0),s=(0,K.useRef)(0),[c,l]=(0,K.useState)({w:window.innerWidth,h:window.innerHeight}),[u,d]=(0,K.useState)(!1),f=(0,K.useRef)(!1),p=(0,K.useRef)(null),m=(0,K.useRef)(null),h=(0,K.useRef)(null),g=(0,K.useRef)(R1()),_=(0,K.useRef)(null),v=(0,K.useMemo)(()=>async r=>{let c=n.current;if(!c)return;let l=++s.current;o.current=performance.now(),e0(`loadAt`,`start`,{epochMs:r,window:Q1}),$1({type:`state`,state:`loading`});try{let n=await e.trpcClient.recording.getPlaybackManifest.query({deviceId:t.deviceId,fromMs:r,toMs:r+Q1});if(l!==s.current){e0(`loadAt`,`superseded`,{epochMs:r});return}if(e0(`loadAt`,`manifest`,{playbackUrl:n?.playbackUrl??null,endpoints:n?.playbackEndpoints?.length??0,localMaster:!!n?.localMasterPath}),!n?.playbackUrl){$1({type:`state`,state:`error`,message:`no footage`}),d(!1);return}c.src=n.playbackUrl;let o=()=>{if(l!==s.current)return;let e=typeof c.getStartDate==`function`?c.getStartDate():null,t=e instanceof Date&&!Number.isNaN(e.getTime())?e.getTime():r;a.current=t;let n=Z1(r,t);if(n>0)try{c.currentTime=n}catch(e){e0(`loadAt`,`seek-failed`,{msg:String(e)})}c.play().catch(e=>{e0(`loadAt`,`play-rejected`,{msg:String(e)})}),e0(`loadAt`,`seek`,{epochMs:r,media0Ms:t,offsetSec:n})};c.readyState>=HTMLMediaElement.HAVE_METADATA?o():c.addEventListener(`loadedmetadata`,o,{once:!0}),e0(`loadAt`,`src-set`,{src:n.playbackUrl})}catch(e){e0(`loadAt`,`error`,{msg:e instanceof Error?e.message:String(e)}),$1({type:`state`,state:`error`,message:e instanceof Error?e.message:String(e)}),d(!1)}},[e,t.deviceId]),y=(0,K.useMemo)(()=>()=>(_.current||=new H$({baseUrl:N$,deviceId:t.deviceId,profile:`low`,onLog:(e,t)=>e0(`directory`,e,t)}),_.current),[t.deviceId]),b=(0,K.useMemo)(()=>e=>{let t=r.current,n=t?.getContext(`2d`);if(!t||!n)return;t.width=c.w,t.height=c.h;let a=`displayWidth`in e?e.displayWidth||e.codedWidth:e.width,o=`displayHeight`in e?e.displayHeight||e.codedHeight:e.height,s=Math.min(c.w/a,c.h/o),l=a*s,u=o*s;n.clearRect(0,0,c.w,c.h),n.drawImage(e,(c.w-l)/2,(c.h-u)/2,l,u)},[c.w,c.h]),x=(0,K.useRef)(b);x.current=b;let S=(0,K.useMemo)(()=>()=>(h.current||=(m.current||=new T1,new L1({source:m.current,warmAhead:(e,t)=>{let n=36e5,r=(Math.floor(e/n)+(t===1?1:-1))*n;y().ensure(r,r+n).catch(()=>{})},locate:async e=>{let t=y();await t.ensureAround(e);let n=M$(t.all(),e);return n===null?null:{url:n.uri,startMs:n.startMs,durMs:n.durMs,...n.bytes===void 0?{}:{bytes:n.bytes}}},decode:async e=>(p.current||=new $$,p.current.decodeSegment(e)),draw:e=>x.current(e),onDrawn:()=>{g.current.fire()&&$1({type:`scrubDrawn`})},onLog:(e,t)=>e0(`scrub`,e,t)})),h.current),[y,t.deviceId]),ee=(0,K.useMemo)(()=>async e=>{try{e0(`scrub`,await S().scrubTo(e),{epochMs:e})}catch(e){e0(`scrub`,`error`,{msg:e instanceof Error?e.message:String(e)}),f.current||(f.current=!0,$1({type:`state`,state:`error`,message:`scrub: ${e instanceof Error?e.message:String(e)}`}))}},[S]);return(0,K.useEffect)(()=>(e0(`init`,`mounted`,{deviceId:t.deviceId,startMs:t.startMs??null,hasWebCodecs:window.VideoDecoder!==void 0,ua:navigator.userAgent}),window.__camstackRecording={seekTo:e=>{e0(`cmd`,`seekTo`,{epochMs:e}),v(e)},play:()=>{e0(`cmd`,`play`),n.current?.play().catch(()=>{})},pause:()=>{e0(`cmd`,`pause`),n.current?.pause()},setRate:e=>{e0(`cmd`,`setRate`,{rate:e}),n.current&&(n.current.playbackRate=e)},fit:(e,t)=>{e0(`cmd`,`fit`,{w:e,h:t}),l({w:e,h:t})},scrubStart:()=>{e0(`cmd`,`scrubStart`),f.current=!1,g.current.reset(),d(!0);let e=n.current;e&&S().armPrefetch(a.current+e.currentTime*1e3)},scrubTo:e=>{e0(`cmd`,`scrubTo`,{epochMs:e}),ee(e)},scrubEnd:e=>{e0(`cmd`,`scrubEnd`,{epochMs:e}),h.current?.dispose(),h.current=null,v(e)}},t.startMs&&t.startMs>0&&v(t.startMs),()=>{window.__camstackRecording&&delete window.__camstackRecording,h.current?.dispose(),h.current=null,p.current?.close(),p.current=null}),[v,ee,S,t.startMs,t.deviceId]),(0,K.useEffect)(()=>uZ(e=>{let t=window.__camstackRecording;if(t)switch(e.kind){case`seekTo`:t.seekTo(e.value);break;case`play`:t.play();break;case`pause`:t.pause();break;case`setRate`:t.setRate(e.value);break;case`scrubStart`:t.scrubStart();break;case`scrubTo`:t.scrubTo(e.value);break;case`scrubEnd`:t.scrubEnd(e.value);break;case`fit`:t.fit(e.w,e.h);break;default:break}}),[]),(0,q.jsxs)(`div`,{style:{position:`fixed`,left:0,top:0,width:c.w,height:c.h,background:`#000`},children:[(0,q.jsx)(`video`,{ref:n,playsInline:!0,controls:!1,style:{width:`100%`,height:`100%`,objectFit:`contain`,background:`#000`},onLoadedMetadata:e=>e0(`video`,`loadedmetadata`,{w:e.currentTarget.videoWidth,h:e.currentTarget.videoHeight,dur:e.currentTarget.duration}),onPlaying:()=>{e0(`video`,`playing`,{vodStartMs:Math.round(performance.now()-o.current)}),$1({type:`state`,state:`playing`}),d(!1)},onPause:()=>$1({type:`state`,state:`paused`}),onEnded:()=>$1({type:`state`,state:`ended`}),onError:e=>{let t=e.currentTarget.error;e0(`video`,`error`,{code:t?.code??null,message:t?.message??null}),$1({type:`state`,state:`error`,message:t?.message||`video error`}),d(!1)},onTimeUpdate:e=>$1({type:`position`,positionMs:a.current+e.currentTarget.currentTime*1e3})}),(0,q.jsx)(`canvas`,{ref:r,style:{position:`absolute`,left:0,top:0,width:`100%`,height:`100%`,background:`#000`,display:u?`block`:`none`}})]})}function n0(){let e=fZ(`recording`,()=>window.__CAMSTACK_RECORDING__,X1),t=(0,K.useMemo)(()=>e===null||!e.ok?null:(document.cookie=`camstack_session=${e.config.token}; path=/; SameSite=Lax`,DA({serverUrl:e.config.serverUrl,token:e.config.token})),[e]);return(0,K.useEffect)(()=>()=>t?.close(),[t]),e===null?null:e.ok?t?(0,q.jsx)(t0,{system:t,config:e.config}):($1({type:`state`,state:`error`,message:`init failed`}),null):($1({type:`state`,state:`error`,message:e.error}),null)}function r0(){let e=new URLSearchParams(location.search).get(`mode`)??`grid`;return e===`player`?(0,q.jsx)(J1,{}):e===`recording`?(0,q.jsx)(n0,{}):e===`events`?(0,q.jsx)(lQ,{}):(0,q.jsx)(D$,{})}var i0=document.getElementById(`root`);i0&&(0,v.createRoot)(i0).render((0,q.jsx)(r0,{}));export{kJ as a,pH as c,HA as d,m as f,u as g,c as h,dV as i,mY as l,s as m,tV as n,Q as o,f as p,aF as r,iF as s,Xz as t,uH as u};
|
|
110
|
+
`;function dG({trpc:e,deviceId:t,layout:n,optimistic:r}){let{cap:a,slice:o,available:s}=hH({trpc:e,deviceId:t,cap:e=>e.climateControl,slice:e=>e.state.climateControl}),{display:c,applyOptimistic:l}=OH(o,{enabled:r??!0});if(a===void 0||c===void 0)return null;let u=!s;if(n===`compact`)return(0,q.jsxs)(`div`,{"data-mode":c.mode,className:`inline-flex items-center gap-1`,children:[(0,q.jsx)(`span`,{className:Z(`text-xs tabular-nums font-medium`,$W[c.mode]),children:c.target===null?c.currentTemp===null?null:(0,q.jsxs)(`span`,{className:`text-foreground-subtle`,children:[c.currentTemp,`°`]}):(0,q.jsxs)(q.Fragment,{children:[c.target,`°`,c.currentTemp!==null&&(0,q.jsxs)(`span`,{className:`text-foreground-subtle font-normal`,children:[` `,`(`,c.currentTemp,`°)`]})]})}),c.target!==null&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`button`,{type:`button`,"aria-label":`Decrease target`,disabled:u,onClick:e=>{if(e.stopPropagation(),!u&&c.target!==null){let e=c.target-1;l({target:e}),a.setTarget({target:e})}},className:Z(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,u&&`opacity-40 cursor-not-allowed`),children:`−`}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`Increase target`,disabled:u,onClick:e=>{if(e.stopPropagation(),!u&&c.target!==null){let e=c.target+1;l({target:e}),a.setTarget({target:e})}},className:Z(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,u&&`opacity-40 cursor-not-allowed`),children:`+`})]}),(0,q.jsx)(`select`,{"aria-label":`Mode`,value:c.mode,disabled:u,onChange:e=>{e.stopPropagation();let t=c.availableModes.find(t=>t===e.target.value);!u&&t&&(l({mode:t}),a.setMode({mode:t}))},className:Z(`bg-transparent px-0.5 text-xs text-foreground-subtle hover:text-foreground cursor-pointer`,u&&`opacity-40 cursor-not-allowed`),children:c.availableModes.map(e=>(0,q.jsx)(`option`,{value:e,children:nG[e]},e))})]});let d=iG[c.mode],f=c.mode!==`off`,p=cG(c.preset),m=c.preset===`turbo`,h=Math.max(.55,lG(c.fanMode)*(m?.6:1)),g=c.swingVertical!==null,_=c.swingHorizontal!==null,v=f&&(c.swingVertical===!0||c.swingHorizontal===!0);return(0,q.jsxs)(`div`,{"data-mode":c.mode,className:Z(`relative flex flex-col items-stretch gap-2.5 overflow-hidden rounded-lg border p-3 transition-colors`,QW[c.mode]),children:[(0,q.jsx)(`style`,{children:uG}),(0,q.jsxs)(`div`,{className:`relative z-10 flex flex-col items-center justify-center gap-1 overflow-hidden rounded-lg border border-border/50 bg-surface/30 px-3 py-3`,children:[(0,q.jsx)(`div`,{className:`pointer-events-none absolute inset-0 opacity-60`,children:(0,q.jsx)(_G,{mode:c.mode,accent:d,periodSec:h,swaying:v})}),(0,q.jsx)(`div`,{className:`pointer-events-none absolute inset-0 bg-gradient-to-b from-surface/50 via-transparent to-surface/50`}),f&&(0,q.jsx)(`span`,{"aria-hidden":!0,className:`acv-glow pointer-events-none absolute left-1/2 top-1/2 h-16 w-16 -translate-x-1/2 -translate-y-1/2 rounded-full blur-2xl`,style:{background:d,animation:`acv-glow 3.2s ease-in-out infinite`}}),(0,q.jsxs)(`div`,{className:`relative z-10 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide`,style:{color:d},children:[(0,q.jsx)(pG,{mode:c.mode,className:`h-3.5 w-3.5`}),nG[c.mode],c.currentTemp!==null&&(0,q.jsxs)(`span`,{className:`normal-case text-foreground-subtle`,children:[`· `,c.currentTemp,`° now`]}),c.currentHumidity!==null&&(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 normal-case text-foreground-subtle`,children:[(0,q.jsx)(Yz,{className:`h-3 w-3`}),c.currentHumidity,`%`]})]}),c.target===null?(0,q.jsxs)(`div`,{className:`relative z-10 flex items-baseline gap-0.5`,children:[(0,q.jsx)(`span`,{className:`text-4xl font-bold leading-none tabular-nums text-foreground`,children:c.currentTemp??`—`}),(0,q.jsx)(`span`,{className:`text-lg text-foreground-subtle`,children:`°`})]}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`relative z-10 flex items-center gap-3`,children:[(0,q.jsx)(hG,{label:`Decrease target`,symbol:`−`,disabled:u,onClick:()=>{if(u||c.target===null)return;let e=c.target-1;l({target:e}),a.setTarget({target:e})}}),(0,q.jsxs)(`div`,{className:`flex items-baseline gap-0.5`,children:[(0,q.jsx)(`span`,{className:`text-4xl font-bold leading-none tabular-nums`,style:{color:d},children:c.target}),(0,q.jsx)(`span`,{className:`text-lg text-foreground-subtle`,children:`°`})]}),(0,q.jsx)(hG,{label:`Increase target`,symbol:`+`,disabled:u,onClick:()=>{if(u||c.target===null)return;let e=c.target+1;l({target:e}),a.setTarget({target:e})}})]}),(0,q.jsx)(`div`,{className:`relative z-10 w-36`,children:(0,q.jsx)(gG,{value:c.target,min:aG,max:oG,accent:d})})]})]}),(0,q.jsxs)(`div`,{className:`relative z-10 grid grid-cols-3 gap-2`,children:[(0,q.jsx)(mG,{label:`Mode`,icon:(0,q.jsx)(`span`,{style:{color:d},className:`flex`,children:(0,q.jsx)(pG,{mode:c.mode,className:`h-4 w-4`})}),value:c.mode,options:c.availableModes.map(e=>({value:e,label:nG[e]})),disabled:u,onChange:e=>{let t=c.availableModes.find(t=>t===e);t&&(l({mode:t}),a.setMode({mode:t}))}}),c.availableFanModes.length>0&&(0,q.jsx)(mG,{label:`Fan`,icon:(0,q.jsx)(TV,{className:`h-4 w-4 text-sky-500`}),value:c.fanMode,options:c.availableFanModes.map(e=>({value:e,label:sG(e)})),disabled:u,onChange:e=>{l({fanMode:e}),a.setFanMode({fanMode:e})}}),c.availablePresets.length>0&&(0,q.jsx)(mG,{label:`Preset`,icon:(0,q.jsx)(p,{className:`h-4 w-4 text-emerald-500`}),value:c.preset,options:c.availablePresets.map(e=>({value:e,label:sG(e)})),disabled:u,onChange:e=>{l({preset:e}),a.setPreset({preset:e})}})]}),(g||_)&&(0,q.jsx)(fG,{label:`Swing`,children:(0,q.jsxs)(`div`,{className:`grid grid-cols-2 gap-1`,children:[g&&(0,q.jsx)(yG,{axis:`vertical`,on:c.swingVertical??!1,busy:u,onToggle:e=>{l({swingVertical:e}),a.setSwingVertical({on:e})}}),_&&(0,q.jsx)(yG,{axis:`horizontal`,on:c.swingHorizontal??!1,busy:u,onToggle:e=>{l({swingHorizontal:e}),a.setSwingHorizontal({on:e})}})]})})]})}function fG({label:e,children:t}){return(0,q.jsxs)(`div`,{className:`relative z-10 flex flex-col gap-1`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:e}),t]})}function pG({mode:e,className:t}){let n=rG[e];return(0,q.jsx)(n,{className:t,"aria-hidden":!0})}function mG({label:e,icon:t,value:n,options:r,disabled:a,onChange:o}){return(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:e}),(0,q.jsxs)(`div`,{className:Z(`flex items-center gap-1 overflow-hidden rounded-lg border border-border/60 bg-surface-subtle px-1.5 py-1.5`,a&&`opacity-40`),children:[(0,q.jsx)(`span`,{className:`flex shrink-0`,children:t}),(0,q.jsx)(`select`,{"aria-label":e,value:n,disabled:a,onChange:e=>{e.stopPropagation(),a||o(e.target.value)},className:`min-w-0 flex-1 cursor-pointer appearance-none truncate bg-transparent text-xs font-medium text-foreground outline-none`,children:r.map(e=>(0,q.jsx)(`option`,{value:e.value,children:e.label},e.value))}),(0,q.jsx)(kz,{className:`h-3 w-3 shrink-0 text-foreground-subtle`})]})]})}function hG({label:e,symbol:t,disabled:n,onClick:r}){return(0,q.jsx)(`button`,{type:`button`,"aria-label":e,disabled:n,onClick:r,className:Z(`flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-border bg-surface text-lg leading-none text-foreground-subtle transition-colors hover:bg-surface-hover hover:text-foreground active:scale-95`,n&&`opacity-40 cursor-not-allowed`),children:t})}function gG({value:e,min:t,max:n,accent:r}){let a=`${Math.min(1,Math.max(0,(e-t)/(n-t)))*100}%`;return(0,q.jsxs)(`div`,{className:`mt-2 w-full`,children:[(0,q.jsxs)(`div`,{className:`relative h-1.5 w-full rounded-full bg-surface-subtle`,children:[(0,q.jsx)(`div`,{className:`absolute inset-y-0 left-0 rounded-full`,style:{width:a,background:r}}),(0,q.jsx)(`div`,{className:`absolute top-1/2 h-3 w-3 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-surface shadow`,style:{left:a,background:r}})]}),(0,q.jsxs)(`div`,{className:`mt-0.5 flex justify-between text-[9px] tabular-nums text-foreground-subtle`,children:[(0,q.jsxs)(`span`,{children:[t,`°`]}),(0,q.jsxs)(`span`,{children:[n,`°`]})]})]})}function _G({mode:e,accent:t,periodSec:n,swaying:r}){let a=[0,1,2,3,4,5],o=e===`heat`,s=e===`dry`;return(0,q.jsx)(`div`,{"aria-hidden":!0,className:`absolute inset-0 overflow-hidden`,children:e===`off`?(0,q.jsx)(`div`,{className:`flex h-full items-center justify-center gap-2 opacity-30`,children:a.map(e=>(0,q.jsx)(`span`,{className:`h-8 w-1 rounded-full bg-foreground-subtle opacity-40`},e))}):e===`fan_only`?(0,q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,q.jsx)(vG,{color:t,periodSec:Math.max(.5,n*.7),size:56})}):(0,q.jsx)(`div`,{className:Z(`acv-sway-wrap absolute inset-0`,r&&`acv-sway`),style:r?{animation:`acv-sway 2.6s ease-in-out infinite`}:void 0,children:a.map(e=>(0,q.jsx)(`span`,{className:`acv-streak absolute rounded-full`,style:{left:`${8+e*15}%`,width:s?`0.4rem`:`0.3rem`,height:s?`0.4rem`:`1.9rem`,background:t,boxShadow:`0 0 6px ${t}`,animationName:o?`acv-rise`:`acv-fall`,animationTimingFunction:`linear`,animationIterationCount:`infinite`,animationDuration:`${n}s`,animationDelay:`${e%3*(n/3)+e*.05}s`}},e))})})}function vG({color:e,periodSec:t,size:n}){return(0,q.jsxs)(`svg`,{width:n,height:n,viewBox:`0 0 100 100`,className:`acv-fan`,style:{animation:`acv-spin ${t}s linear infinite`,transformOrigin:`50% 50%`},"aria-hidden":!0,children:[[0,120,240].map(t=>(0,q.jsx)(`path`,{d:`M50 50 C 58 30, 78 26, 84 12 C 66 20, 54 34, 50 50 Z`,fill:e,opacity:.85,transform:`rotate(${t} 50 50)`},t)),(0,q.jsx)(`circle`,{cx:`50`,cy:`50`,r:`7`,fill:e})]})}function yG({axis:e,on:t,busy:n,onToggle:r}){let a=e===`vertical`?`Vertical`:`Horizontal`,o=e===`vertical`?TB:wB,s=e===`vertical`?`acv-swing-v`:`acv-swing-h`;return(0,q.jsxs)(`button`,{type:`button`,"aria-label":`${a} swing`,"aria-pressed":t,disabled:n,onClick:()=>{n||r(!t)},className:Z(`flex items-center justify-center gap-2 rounded-lg border px-2 py-1.5 text-xs font-medium transition-colors`,t?`border-transparent bg-indigo-400 text-indigo-950 shadow-sm`:`border-border/60 bg-surface-subtle text-foreground-subtle hover:bg-surface-hover hover:text-foreground`,n&&`opacity-40 cursor-not-allowed`),children:[(0,q.jsx)(o,{className:`acv-swing h-4 w-4`,"aria-hidden":!0,style:t?{animation:`${s} 1.4s ease-in-out infinite`}:void 0}),a]})}var bG={playing:`border-green-400 bg-green-50 dark:bg-green-950`,paused:`border-amber-400 bg-amber-50 dark:bg-amber-950`,buffering:`border-blue-400 bg-blue-50 dark:bg-blue-950`,on:`border-slate-400 bg-slate-50 dark:bg-slate-950`,idle:`border-slate-400 bg-slate-50 dark:bg-slate-950`,off:`border-zinc-300 bg-zinc-50 dark:bg-zinc-900`,standby:`border-zinc-300 bg-zinc-50 dark:bg-zinc-900`},xG={playing:`bg-green-500`,paused:`bg-amber-400`,buffering:`bg-blue-400`,on:`bg-slate-400`,idle:`bg-slate-400`,off:`bg-zinc-300`,standby:`bg-zinc-300`},SG=[`off`,`all`,`one`];function CG(e){return SG.includes(e)}var wG={off:`Off`,all:`All`,one:`One`};function TG(e){return e===`playing`||e===`buffering`?`pause`:`play`}function EG({trpc:e,deviceId:t,features:n,layout:r,optimistic:a}){let{cap:o,slice:s,available:c}=hH({trpc:e,deviceId:t,cap:e=>e.mediaPlayer,slice:e=>e.state.mediaPlayer}),{display:l,applyOptimistic:u}=OH(s,{enabled:a??!0});if(l===void 0)return null;let d=!c,f=TG(l.state);return(0,q.jsxs)(`div`,{"data-state":l.state,className:Z(`inline-flex items-center gap-2 rounded border px-2 py-1 transition-colors`,bG[l.state],r===`full`&&`flex-col items-stretch gap-3`),children:[(0,q.jsxs)(`div`,{className:`inline-flex items-center gap-2`,children:[(0,q.jsx)(`span`,{role:`status`,"aria-label":l.state,className:Z(`inline-block h-2 w-2 rounded-full flex-shrink-0`,xG[l.state])}),(0,q.jsx)(`button`,{type:`button`,"aria-label":f===`play`?`Play`:`Pause`,disabled:d,onClick:e=>{e.stopPropagation(),!d&&(f===`play`?(u({state:`playing`}),o?.play({})):(u({state:`paused`}),o?.pause({})))},className:Z(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,d&&`opacity-40 cursor-not-allowed`),children:f===`play`?`▶`:`⏸`})]}),r===`full`&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`inline-flex items-center gap-1`,children:[(0,q.jsx)(`button`,{type:`button`,"aria-label":`Previous`,disabled:d,onClick:e=>{e.stopPropagation(),d||o?.previous({})},className:Z(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,d&&`opacity-40 cursor-not-allowed`),children:`⏮`}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`Next`,disabled:d,onClick:e=>{e.stopPropagation(),d||o?.next({})},className:Z(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,d&&`opacity-40 cursor-not-allowed`),children:`⏭`})]}),l.volumeLevel!==null&&(0,q.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[(0,q.jsx)(`span`,{children:`Vol`}),(0,q.jsx)(`input`,{"aria-label":`Volume`,type:`range`,min:0,max:100,step:1,value:l.volumeLevel,disabled:d,onChange:e=>{let t=Number(e.target.value);u({volumeLevel:t}),d||o?.setVolume({volumeLevel:t})}}),(0,q.jsxs)(`span`,{className:`tabular-nums w-8 text-right`,children:[l.volumeLevel,`%`]})]}),l.isMuted!==null&&(0,q.jsx)(`button`,{type:`button`,"aria-label":l.isMuted?`Unmute`:`Mute`,disabled:d,onClick:e=>{if(e.stopPropagation(),!d&&l.isMuted!==null){let e=!l.isMuted;u({isMuted:e}),o?.setMute({muted:e})}},className:Z(`inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs transition-colors`,l.isMuted?`bg-amber-400 text-amber-950`:`text-foreground-subtle hover:text-foreground hover:bg-surface-hover`,d&&`opacity-40 cursor-not-allowed`),children:l.isMuted?`🔇`:`🔊`}),l.availableSources.length>0&&(0,q.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[(0,q.jsx)(`span`,{children:`Source`}),(0,q.jsxs)(`select`,{"aria-label":`Source`,value:l.source,disabled:d,onChange:e=>{let t=e.target.value;!d&&t&&(u({source:t}),o?.selectSource({source:t}))},className:`rounded border border-border bg-surface px-1 py-0.5`,children:[(0,q.jsx)(`option`,{value:``,disabled:!0,children:`—`}),l.availableSources.map(e=>(0,q.jsx)(`option`,{value:e,children:e},e))]})]}),l.shuffle!==null&&(0,q.jsx)(`button`,{type:`button`,"aria-label":`Shuffle`,disabled:d,onClick:e=>{if(e.stopPropagation(),!d&&l.shuffle!==null){let e=!l.shuffle;u({shuffle:e}),o?.setShuffle({shuffle:e})}},className:Z(`inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs transition-colors`,l.shuffle?`bg-green-400 text-green-950`:`text-foreground-subtle hover:text-foreground hover:bg-surface-hover`,d&&`opacity-40 cursor-not-allowed`),children:`⇌ Shuffle`}),l.repeat!==null&&(0,q.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[(0,q.jsx)(`span`,{children:`Repeat`}),(0,q.jsx)(`select`,{"aria-label":`Repeat`,value:l.repeat,disabled:d,onChange:e=>{let t=e.target.value;!d&&CG(t)&&(u({repeat:t}),o?.setRepeat({repeat:t}))},className:`rounded border border-border bg-surface px-1 py-0.5`,children:SG.map(e=>(0,q.jsx)(`option`,{value:e,children:wG[e]},e))})]})]})]})}function DG(e){return e.slice(0,10)}function OG(e){return e.slice(0,5)}function kG(e){return(e.includes(`T`)?e:e.replace(` `,`T`)).slice(0,16)}function AG({value:e,busy:t,onCommit:n,unit:r,min:a,max:o,step:s,precision:c}){let[l,u]=(0,K.useState)(eF(e,c)),d=Number(l),f=l!==``&&!Number.isNaN(d),p=s??1,m=e=>{let t=e;return a!==void 0&&(t=Math.max(a,t)),o!==void 0&&(t=Math.min(o,t)),t},h=()=>{!t&&f&&n(m(d))};return(0,q.jsxs)(`div`,{className:`inline-flex items-center gap-1`,children:[(0,q.jsx)(`button`,{type:`button`,"aria-label":`Decrement`,disabled:t,onClick:r=>{if(r.stopPropagation(),!t){let t=m(e-p);u(eF(t,c)),n(t)}},className:Z(`inline-flex h-5 w-5 items-center justify-center rounded border border-border bg-surface text-xs transition-colors hover:bg-surface-hover`,t&&`opacity-40 cursor-not-allowed`),children:`−`}),(0,q.jsx)(`input`,{"aria-label":`Numeric value`,type:`number`,disabled:t,value:l,onChange:e=>{u(e.target.value);let r=Number(e.target.value);e.target.value!==``&&!Number.isNaN(r)&&(t||n(m(r)))},onBlur:h,onKeyDown:e=>{e.key===`Enter`&&h()},className:Z(`w-16 rounded border border-border bg-surface px-1 py-0.5 text-xs tabular-nums text-center`,t&&`opacity-40 cursor-not-allowed`)}),r!==void 0&&(0,q.jsx)(`span`,{className:`text-foreground-subtle text-xs`,children:r}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`Increment`,disabled:t,onClick:r=>{if(r.stopPropagation(),!t){let t=m(e+p);u(eF(t,c)),n(t)}},className:Z(`inline-flex h-5 w-5 items-center justify-center rounded border border-border bg-surface text-xs transition-colors hover:bg-surface-hover`,t&&`opacity-40 cursor-not-allowed`),children:`+`})]})}function jG({value:e,busy:t,onCommit:n}){let[r,a]=(0,K.useState)(e);return(0,q.jsx)(`input`,{type:`text`,disabled:t,value:r,onChange:e=>a(e.target.value),onBlur:()=>{t||n(r)},onKeyDown:e=>{e.key===`Enter`&&!t&&n(r)},className:Z(`rounded border border-border bg-surface px-2 py-0.5 text-xs`,t&&`opacity-40 cursor-not-allowed`)})}function MG({slice:e,busy:t,setValueFn:n,layout:r}){switch(e.kind){case`numeric`:return(0,q.jsx)(AG,{value:typeof e.value==`number`?e.value:Number(e.value),busy:t,onCommit:e=>{n({control:{kind:`numeric`,value:e}})},unit:e.unit,min:e.min,max:e.max,step:e.step,precision:e.precision});case`select`:return(0,q.jsx)(`select`,{"aria-label":`Control value`,disabled:t,value:String(e.value),onChange:e=>{e.stopPropagation(),t||n({control:{kind:`select`,value:e.target.value}})},className:Z(`w-full max-w-full min-w-0 truncate rounded border border-border bg-surface px-1 py-0.5 text-xs`,t&&`opacity-40 cursor-not-allowed`),children:e.options.map(e=>(0,q.jsx)(`option`,{value:e,children:e},e))});case`text`:return(0,q.jsx)(jG,{value:String(e.value),busy:t,onCommit:e=>{n({control:{kind:`text`,value:e}})}});case`datetime`:{let a=String(e.value),o=e.format??`datetime`;return r===`compact`?a===``?(0,q.jsx)(`span`,{"aria-label":`Control value`,className:`text-xs text-foreground-subtle`,children:`—`}):(0,q.jsx)(`span`,{"aria-label":`Control value`,className:`text-xs text-foreground`,children:$P(a,o)}):(0,q.jsx)(`input`,{type:o===`date`?`date`:o===`time`?`time`:`datetime-local`,"aria-label":`Control value`,disabled:t,value:o===`date`?DG(a):o===`time`?OG(a):kG(a),onChange:e=>{e.stopPropagation(),t||n({control:{kind:`datetime`,value:e.target.value}})},className:Z(`rounded border border-border bg-surface px-1 py-0.5 text-xs`,t&&`opacity-40 cursor-not-allowed`)})}default:return null}}function NG({trpc:e,deviceId:t,features:n,layout:r,optimistic:a}){let{cap:o,slice:s,available:c}=hH({trpc:e,deviceId:t,cap:e=>e.control,slice:e=>e.state.control}),{display:l,applyOptimistic:u}=OH(s,{enabled:a??!0});if(l===void 0)return null;let d=!c;return(0,q.jsx)(`div`,{"data-kind":l.kind,className:`inline-flex min-w-0 max-w-full items-center gap-1 rounded border border-border px-2 py-1 transition-colors`,children:(0,q.jsx)(MG,{slice:l,busy:d,setValueFn:e=>{!d&&o&&(u({value:e.control.value}),o.setValue(e))},layout:r})})}var PG=5,FG=35;function IG(e,t,n){return n<=t?0:Math.min(1,Math.max(0,(e-t)/(n-t)))}function LG(e,t,n){return Math.round(t+e*(n-t))}var RG=176,zG=76,BG=2*Math.PI*zG,VG=270/360*BG,HG=RG/2-zG-10;function UG(e){let t=RG/2,n=RG/2,r=BG-VG,a=e.mode===`band`?(()=>{let t=e.band.from*VG,n=Math.max(0,(e.band.to-e.band.from)*VG);return{dasharray:`${n} ${BG-n}`,dashoffset:-t}})():(()=>{let t=e.fraction*VG;return{dasharray:`${t} ${BG-t}`,dashoffset:void 0}})();return(0,q.jsxs)(`svg`,{width:RG,height:RG,viewBox:`0 0 ${RG} ${RG}`,"aria-hidden":`true`,className:`absolute inset-0`,style:{transform:`rotate(135deg)`},children:[(0,q.jsx)(`circle`,{cx:t,cy:n,r:zG,fill:`none`,stroke:`var(--color-border)`,strokeWidth:12,strokeDasharray:`${VG} ${r}`,strokeLinecap:`round`}),(0,q.jsx)(`circle`,{cx:t,cy:n,r:zG,fill:`none`,stroke:e.color,strokeWidth:12,strokeDasharray:a.dasharray,...a.dashoffset===void 0?{}:{strokeDashoffset:a.dashoffset},strokeLinecap:`round`})]})}var WG={heat:`#f59e0b`,cool:`#60a5fa`,auto:`#c084fc`,heat_cool:`#e879f9`,fan_only:`#94a3b8`,dry:`#22d3ee`,off:`#d4d4d8`};function GG({trpc:e,deviceId:t,features:n,optimistic:r}){let{cap:a,slice:o,available:s}=hH({trpc:e,deviceId:t,cap:e=>e.climateControl,slice:e=>e.state.climateControl}),{display:c,applyOptimistic:l}=OH(o,{enabled:r??!0});if(a===void 0||c===void 0)return null;let u=!s,d=WG[c.mode],f=c.mode===`heat_cool`||c.targetLow!==null&&c.targetHigh!==null,p=PG,m=FG,h=!f&&c.target!==null?IG(c.target,p,m):0,g=f&&c.targetLow!==null?IG(c.targetLow,p,m):0,_=f&&c.targetHigh!==null?IG(c.targetHigh,p,m):0;return(0,q.jsxs)(`div`,{"data-mode":c.mode,className:Z(`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4 transition-colors`,QW[c.mode]),children:[(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,q.jsxs)(`div`,{className:`relative`,style:{width:RG,height:RG},children:[f?(0,q.jsx)(UG,{mode:`band`,band:{from:g,to:_},color:d}):(0,q.jsx)(UG,{mode:`fill`,fraction:h,color:d}),f?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{"data-testid":`arc-knob`,children:(0,q.jsx)(SH,{fraction:g,color:d,knobTopPx:HG,onDragFraction:e=>{if(u||c.targetHigh===null)return;let t=Math.min(LG(e,p,m),c.targetHigh);l({targetLow:t}),a.setTargetRange({targetLow:t,targetHigh:c.targetHigh})}})}),(0,q.jsx)(`div`,{"data-testid":`arc-knob`,children:(0,q.jsx)(SH,{fraction:_,color:d,knobTopPx:HG,onDragFraction:e=>{if(u||c.targetLow===null)return;let t=Math.max(LG(e,p,m),c.targetLow);l({targetHigh:t}),a.setTargetRange({targetLow:c.targetLow,targetHigh:t})}})})]}):(0,q.jsx)(`div`,{"data-testid":`arc-knob`,children:(0,q.jsx)(SH,{fraction:h,color:d,knobTopPx:HG,onDragFraction:e=>{if(u)return;let t=LG(e,p,m);l({target:t}),a.setTarget({target:t})}})}),(0,q.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-0.5 pointer-events-none`,children:[(0,q.jsxs)(`div`,{"data-testid":`current-temp`,className:`text-4xl font-bold tabular-nums text-foreground leading-none`,children:[c.currentTemp===null?`—`:c.currentTemp,(0,q.jsx)(`span`,{className:`text-lg text-foreground-subtle font-normal ml-0.5`,children:`°`})]}),!f&&c.target!==null&&(0,q.jsxs)(`div`,{className:`text-xs font-semibold`,style:{color:d},children:[`set `,c.target,`°`]}),f&&c.targetLow!==null&&c.targetHigh!==null&&(0,q.jsxs)(`div`,{className:`text-xs font-semibold`,style:{color:d},children:[c.targetLow,`° – `,c.targetHigh,`°`]})]})]}),!f&&c.target!==null&&(0,q.jsx)(`div`,{className:`w-[200px]`,children:(0,q.jsx)(gH,{value:`${c.target}°`,onDelta:e=>{if(u||c.target===null)return;let t=c.target+e;l({target:t}),a.setTarget({target:t})}})})]}),(0,q.jsx)(`select`,{"aria-label":`Mode`,value:c.mode,disabled:u,onChange:e=>{e.stopPropagation();let t=e.target.value;!u&&t&&(l({mode:c.availableModes.find(e=>e===t)??c.mode}),a.setMode({mode:c.availableModes.find(e=>e===t)??c.mode}))},className:Z(`w-full rounded border border-border bg-surface px-3 py-1.5 text-sm`,u&&`opacity-40 cursor-not-allowed`),children:c.availableModes.map(e=>(0,q.jsx)(`option`,{value:e,children:e},e))})]})}function KG(e){return e===`locked`||e===`locking`}function qG(e){return e===`jammed`}var JG={locked:{colorClass:`border-success/30 bg-success/10 text-success`,icon:`locked`},locking:{colorClass:`border-success/30 bg-success/10 text-success`,icon:`locked`},unlocked:{colorClass:`border-warning/30 bg-warning/10 text-warning`,icon:`open`},unlocking:{colorClass:`border-warning/30 bg-warning/10 text-warning`,icon:`open`},jammed:{colorClass:`border-danger/30 bg-danger/10 text-danger`,icon:`locked`}};function YG({state:e}){let t=JG[e];return(0,q.jsx)(`div`,{"data-testid":`lock-glyph`,"data-state":e,className:Z(`flex h-16 w-16 items-center justify-center rounded-full border-2`,t.colorClass),children:t.icon===`locked`?(0,q.jsx)(gB,{className:`h-8 w-8`,"aria-hidden":`true`}):(0,q.jsx)(hB,{className:`h-8 w-8`,"aria-hidden":`true`})})}function XG({state:e}){return(0,q.jsx)(`span`,{className:Z(`text-sm font-medium capitalize`,qG(e)?`text-danger`:`text-foreground-muted`),children:e})}function ZG({busy:e,onOpen:t}){return(0,q.jsxs)(`button`,{type:`button`,"aria-label":`Open (unlatch)`,title:`Open (unlatch)`,disabled:e,onClick:e=>{e.stopPropagation(),t()},className:Z(`inline-flex items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-xs font-medium`,`text-foreground-muted hover:bg-surface-hover transition-colors`,e&&`opacity-40 cursor-not-allowed`),children:[(0,q.jsx)(Kz,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),`Open`]})}function QG({trpc:e,deviceId:t,features:n,optimistic:r}){let{cap:a,slice:o,available:s}=hH({trpc:e,deviceId:t,cap:e=>e.lockControl,slice:e=>e.state.lockControl}),{display:c,applyOptimistic:l}=OH(o,{enabled:r??!0});if(a===void 0||c===void 0)return null;let u=KG(c.state),d=qG(c.state)||!s,f=n?.includes(Rl.LockOpen)===!0,p=()=>{d||(u?(l({state:`unlocking`}),a.unlock({})):(l({state:`locking`}),a.lock({})))},m=()=>{d||a.open({})},h=u?`Unlock`:`Lock`;return(0,q.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,q.jsx)(YG,{state:c.state}),(0,q.jsx)(XG,{state:c.state})]}),(0,q.jsx)(`div`,{className:Z(d&&`pointer-events-none opacity-40`),children:(0,q.jsx)(_H,{on:u,targetLabel:h,onConfirm:p})}),f&&(0,q.jsx)(`div`,{className:`flex justify-center`,children:(0,q.jsx)(ZG,{busy:d,onOpen:m})})]})}var $G=150,eK=64,tK=$G/2,nK=2*Math.PI*eK,rK=270/360*nK;function iK({fraction:e,color:t,children:n,onDragFraction:r}){let a=Math.min(1,Math.max(0,e)),o=$G/2,s=$G/2,c=nK-rK,l=a*rK;return(0,q.jsxs)(`div`,{className:`relative`,style:{width:$G,height:$G},children:[(0,q.jsxs)(`svg`,{width:$G,height:$G,viewBox:`0 0 ${$G} ${$G}`,"aria-hidden":`true`,className:`absolute inset-0`,style:{transform:`rotate(135deg)`},children:[(0,q.jsx)(`circle`,{cx:o,cy:s,r:eK,fill:`none`,stroke:`var(--color-border)`,strokeWidth:11,strokeDasharray:`${rK} ${c}`,strokeLinecap:`round`}),(0,q.jsx)(`circle`,{cx:o,cy:s,r:eK,fill:`none`,stroke:t,strokeWidth:11,strokeDasharray:`${l} ${nK-l}`,strokeLinecap:`round`})]}),(0,q.jsx)(`div`,{"data-testid":`arc-knob`,children:(0,q.jsx)(SH,{fraction:a,color:t,knobTopPx:tK-eK-10,...r===void 0?{}:{onDragFraction:r}})}),(0,q.jsx)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-0.5 pointer-events-none`,children:n})]})}function aK({on:e,busy:t,onToggle:n}){let r={transform:e?`translateX(30px)`:`translateX(3px)`};return(0,q.jsx)(`button`,{type:`button`,"aria-pressed":e,title:e?`Turn off`:`Turn on`,disabled:t,onClick:e=>{e.stopPropagation(),n()},className:Z(`relative inline-flex h-8 w-16 items-center rounded-full border transition-colors flex-shrink-0`,e?`bg-success/30 border-success/50`:`bg-surface-hover border-border`,t&&`opacity-60 cursor-not-allowed`),children:(0,q.jsx)(`span`,{className:Z(`absolute h-6 w-6 rounded-full transition-all`,e?`bg-success`:`bg-foreground-subtle`),style:r})})}var oK=500,sK=150,cK=`linear-gradient(90deg, #9ec9ff, #ffffff, #ffb24d)`;function lK(e,t,n){return n<=t?0:Math.min(1,Math.max(0,(e-t)/(n-t)))}function uK(e){return lK(e,sK,oK)}var dK=`#f4b740`,fK=`#d4d4d8`;function pK({trpc:e,deviceId:t,features:n,optimistic:r}){let a=hH({trpc:e,deviceId:t,cap:e=>e.switch,slice:e=>e.state.switch}),o=hH({trpc:e,deviceId:t,cap:e=>e.brightness,slice:e=>e.state.brightness}),s=hH({trpc:e,deviceId:t,cap:e=>e.color,slice:e=>e.state.color}),c=OH(a.slice,{enabled:r??!0}),l=OH(o.slice,{enabled:r??!0}),u=OH(s.slice,{enabled:r??!0});if(a.cap===void 0||c.display===void 0)return null;let d=c.display.on===!0,f=!a.available,p=l.display?.percentage??0,m=!o.available,h=d?p/100:0,g=d?dK:fK,_=(n?.includes(Rl.LightColorMired)??!1)&&s.cap!==void 0,v=u.display?.mireds,y=!s.available;return(0,q.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,q.jsxs)(iK,{fraction:h,color:g,children:[(0,q.jsxs)(`div`,{"data-testid":`brightness-readout`,className:`text-3xl font-bold tabular-nums text-foreground leading-none`,children:[p,(0,q.jsx)(`span`,{className:`text-base text-foreground-subtle font-normal ml-0.5`,children:`%`})]}),(0,q.jsx)(dB,{className:`h-5 w-5 text-foreground-subtle`,"aria-hidden":`true`})]}),o.cap!==void 0&&(0,q.jsxs)(`label`,{className:`flex w-full items-center gap-2 text-xs text-foreground-subtle`,children:[(0,q.jsx)(`span`,{className:`w-16`,children:`Brightness`}),(0,q.jsx)(`input`,{"aria-label":`Brightness`,type:`range`,min:0,max:100,step:1,className:`flex-1`,value:p,disabled:m||!d,onChange:e=>{let t=Number(e.target.value);l.applyOptimistic({percentage:t}),m||o.cap?.setBrightness({percentage:t})}}),(0,q.jsxs)(`span`,{className:`tabular-nums w-9 text-right`,children:[p,`%`]})]})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium text-foreground-muted`,children:d?`On`:`Off`}),(0,q.jsx)(aK,{on:d,busy:f,onToggle:()=>{if(f)return;let e=!d;c.applyOptimistic({on:e}),a.cap?.setState({on:e})}})]}),_&&(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,"data-testid":`color-temp-strip`,children:[(0,q.jsx)(oV,{className:`h-4 w-4 text-foreground-subtle`,"aria-hidden":`true`}),(0,q.jsxs)(`label`,{className:`flex-1`,children:[(0,q.jsx)(`span`,{className:`sr-only`,children:`Colour temperature`}),(0,q.jsx)(`input`,{"aria-label":`Colour temperature`,type:`range`,min:sK,max:oK,step:1,className:`w-full`,value:v??oK,disabled:y||!d,onChange:e=>{let t=Number(e.target.value);u.applyOptimistic({mode:`mired`,mireds:t}),y||s.cap?.setColor({color:{mode:`mired`,mireds:t}})}}),(0,q.jsx)(`div`,{className:`pointer-events-none mt-1`,children:(0,q.jsx)(CH,{fraction:v===void 0?.5:uK(v),color:cK})})]})]})]})}var mK=`#3aa6a0`,hK=`#d4d4d8`;function gK({trpc:e,deviceId:t,features:n,optimistic:r}){let a=hH({trpc:e,deviceId:t,cap:e=>e.switch,slice:e=>e.state.switch}),o=hH({trpc:e,deviceId:t,cap:e=>e.fanControl,slice:e=>e.state.fanControl}),s=OH(a.slice,{enabled:r??!0}),c=OH(o.slice,{enabled:r??!0});if(a.cap===void 0||s.display===void 0)return null;let l=s.display.on===!0,u=!a.available,d=c.display?.percentage??0,f=!o.available,p=l?d/100:0,m=l?mK:hK,h=n?.includes(Rl.FanSpeed)??!1,g=(n?.includes(Rl.FanOscillating)??!1)&&o.cap!==void 0,_=c.display?.availablePresets??[],v=(n?.includes(Rl.FanPreset)??!1)&&o.cap!==void 0&&_.length>0,y=c.display?.preset??``,b=c.display?.oscillating===!0,x=()=>{if(u)return;let e=!l;s.applyOptimistic({on:e}),a.cap?.setState({on:e})},S=()=>{if(f)return;let e=!b;c.applyOptimistic({oscillating:e}),o.cap?.setOscillating({oscillating:e})},ee=e=>{if(f)return;let t=c.display;if(t===void 0)return;let n=t.percentageStep!==void 0&&t.percentageStep>0?t.percentageStep:1,r=Math.min(100,Math.max(0,Math.round(e*100/n)*n));c.applyOptimistic({percentage:r}),o.cap?.setPercentage({percentage:r})},C=e=>{f||e===``||(c.applyOptimistic({preset:e}),o.cap?.setPreset({preset:e}))};return(0,q.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4`,children:[(0,q.jsx)(`div`,{className:`flex flex-col items-center gap-3`,children:h?(0,q.jsxs)(iK,{fraction:p,color:m,onDragFraction:ee,children:[(0,q.jsxs)(`div`,{"data-testid":`speed-readout`,className:`text-3xl font-bold tabular-nums text-foreground leading-none`,children:[d,(0,q.jsx)(`span`,{className:`text-base text-foreground-subtle font-normal ml-0.5`,children:`%`})]}),(0,q.jsx)(Zz,{className:`h-5 w-5 text-foreground-subtle`,"aria-hidden":`true`})]}):(0,q.jsx)(`div`,{"data-testid":`fan-onoff-icon`,className:`flex h-[150px] w-[150px] items-center justify-center`,children:(0,q.jsx)(Zz,{className:`h-16 w-16`,style:{color:m},"aria-hidden":`true`})})}),v&&(0,q.jsx)(`div`,{className:`flex justify-center`,children:(0,q.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[(0,q.jsx)(`span`,{children:`Preset`}),(0,q.jsxs)(`select`,{"aria-label":`Fan preset`,value:y,disabled:f,onChange:e=>{e.stopPropagation(),C(e.target.value)},className:Z(`bg-surface border border-border rounded px-1 py-0.5`,f&&`opacity-40 cursor-not-allowed`),children:[(0,q.jsx)(`option`,{value:``,disabled:!0,children:`—`}),_.map(e=>(0,q.jsx)(`option`,{value:e,children:e},e))]})]})}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[g?(0,q.jsxs)(`button`,{type:`button`,"aria-label":`Oscillate`,"aria-pressed":b,disabled:f,onClick:e=>{e.stopPropagation(),S()},className:Z(`inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-xs font-medium transition-colors`,b?`border-success/50 bg-success/10 text-success`:`border-border text-foreground-muted hover:bg-surface-hover`,f&&`opacity-40 cursor-not-allowed`),children:[(0,q.jsx)(zB,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),`Oscillate`]}):(0,q.jsx)(`span`,{className:`text-sm font-medium text-foreground-muted`,children:l?`On`:`Off`}),(0,q.jsx)(aK,{on:l,busy:u,onToggle:x})]})]})}function _K({trpc:e,deviceId:t,optimistic:n}){let{cap:r,slice:a,available:o}=hH({trpc:e,deviceId:t,cap:e=>e.switch,slice:e=>e.state.switch}),{display:s,applyOptimistic:c}=OH(a,{enabled:n??!0});if(r===void 0||s===void 0)return null;let l=s.on===!0,u=!o;return(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-4 rounded-lg border border-border bg-surface p-6`,children:[(0,q.jsx)(`div`,{"data-testid":`switch-glyph`,"data-state":l?`on`:`off`,className:Z(`flex h-16 w-16 items-center justify-center rounded-full border-2 transition-colors`,l?`border-success/30 bg-success/10 text-success`:`border-border bg-surface-subtle text-foreground-subtle`),children:(0,q.jsx)(IB,{className:`h-8 w-8`,"aria-hidden":`true`})}),(0,q.jsx)(`span`,{className:`text-sm font-medium text-foreground-muted`,children:l?`On`:`Off`}),(0,q.jsx)(aK,{on:l,busy:u,onToggle:()=>{if(u)return;let e=!l;c({on:e}),r.setState({on:e})}})]})}function vK(e){return e===`playing`||e===`buffering`?`pause`:`play`}function yK(e,t){return e===null||t===null||t<=0?0:Math.min(1,Math.max(0,e/t))}function bK(e){if(e===null)return`--:--`;let t=Math.floor(e/1e3);return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}function xK({title:e,subtitle:t}){return(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-1 text-center`,children:[(0,q.jsx)(EB,{className:`h-6 w-6 text-foreground-subtle`,"aria-hidden":`true`}),(0,q.jsx)(`span`,{className:`text-base font-semibold text-foreground line-clamp-1`,children:e??`Nothing playing`}),t&&(0,q.jsx)(`span`,{className:`text-xs text-foreground-subtle line-clamp-1`,children:t})]})}function SK({label:e,busy:t,onPress:n,children:r,primary:a}){return(0,q.jsx)(`button`,{type:`button`,"aria-label":e,title:e,disabled:t,onClick:e=>{e.stopPropagation(),t||n()},className:Z(`inline-flex items-center justify-center rounded-full transition-colors`,a?`h-12 w-12 bg-primary text-primary-foreground hover:bg-primary/90 shadow-md`:`h-10 w-10 text-foreground-muted hover:bg-surface-hover`,t&&`opacity-40 cursor-not-allowed`),children:r})}function CK({trpc:e,deviceId:t,features:n,optimistic:r}){let{cap:a,slice:o,available:s}=hH({trpc:e,deviceId:t,cap:e=>e.mediaPlayer,slice:e=>e.state.mediaPlayer}),{display:c,applyOptimistic:l}=OH(o,{enabled:r??!0});if(a===void 0||c===void 0)return null;let u=!s,d=vK(c.state),f=(n?.includes(Rl.MediaPlayerSeek)??!1)&&c.durationMs!==null&&c.durationMs>0,p=n?.includes(Rl.MediaPlayerNext)??!1,m=n?.includes(Rl.MediaPlayerPrevious)??!1,h=(n?.includes(Rl.MediaPlayerVolume)??!1)&&c.volumeLevel!==null,g=()=>{u||(d===`play`?(l({state:`playing`}),a.play({})):(l({state:`paused`}),a.pause({})))},_=c.currentMedia?.artist??c.currentMedia?.album??null,v=yK(c.positionMs,c.durationMs),y=c.volumeLevel??0;return(0,q.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6`,children:[(0,q.jsx)(xK,{title:c.currentMedia?.title??null,subtitle:_}),f&&(0,q.jsxs)(`div`,{"data-testid":`media-seek`,className:`flex flex-col gap-1`,children:[(0,q.jsxs)(`label`,{className:`relative block`,children:[(0,q.jsx)(`span`,{className:`sr-only`,children:`Seek`}),(0,q.jsx)(`input`,{"aria-label":`Seek`,type:`range`,min:0,max:c.durationMs??0,step:1e3,className:`absolute inset-0 h-4 w-full cursor-pointer opacity-0`,value:c.positionMs??0,disabled:u,onChange:e=>{if(u)return;let t=Number(e.target.value);l({positionMs:t}),a.seek({positionMs:t})}}),(0,q.jsx)(`div`,{className:`pointer-events-none`,children:(0,q.jsx)(CH,{fraction:v})})]}),(0,q.jsxs)(`div`,{className:`flex justify-between text-[11px] tabular-nums text-foreground-subtle`,children:[(0,q.jsx)(`span`,{children:bK(c.positionMs)}),(0,q.jsx)(`span`,{children:bK(c.durationMs)})]})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-center gap-4`,children:[m&&(0,q.jsx)(SK,{label:`Previous`,busy:u,onPress:()=>void a.previous({}),children:(0,q.jsx)(JB,{className:`h-5 w-5`,"aria-hidden":`true`})}),(0,q.jsx)(SK,{label:d===`play`?`Play`:`Pause`,busy:u,onPress:g,primary:!0,children:d===`play`?(0,q.jsx)(FB,{className:`h-6 w-6`,"aria-hidden":`true`}):(0,q.jsx)(AB,{className:`h-6 w-6`,"aria-hidden":`true`})}),p&&(0,q.jsx)(SK,{label:`Next`,busy:u,onPress:()=>void a.next({}),children:(0,q.jsx)(YB,{className:`h-5 w-5`,"aria-hidden":`true`})})]}),h&&(0,q.jsxs)(`div`,{"data-testid":`media-volume`,className:`flex items-center gap-2`,children:[(0,q.jsx)(`button`,{type:`button`,"aria-label":c.isMuted===!0?`Unmute`:`Mute`,title:c.isMuted===!0?`Unmute`:`Mute`,disabled:u,onClick:e=>{if(e.stopPropagation(),u||c.isMuted===null)return;let t=!c.isMuted;l({isMuted:t}),a.setMute({muted:t})},className:Z(`inline-flex h-7 w-7 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors`,u&&`opacity-40 cursor-not-allowed`),children:c.isMuted===!0?(0,q.jsx)(xV,{className:`h-4 w-4`,"aria-hidden":`true`}):(0,q.jsx)(bV,{className:`h-4 w-4`,"aria-hidden":`true`})}),(0,q.jsxs)(`label`,{className:`relative block flex-1`,children:[(0,q.jsx)(`span`,{className:`sr-only`,children:`Volume`}),(0,q.jsx)(`input`,{"aria-label":`Volume`,type:`range`,min:0,max:100,step:1,className:`absolute inset-0 h-4 w-full cursor-pointer opacity-0`,value:y,disabled:u,onChange:e=>{if(u)return;let t=Number(e.target.value);l({volumeLevel:t}),a.setVolume({volumeLevel:t})}}),(0,q.jsx)(`div`,{className:`pointer-events-none`,children:(0,q.jsx)(CH,{fraction:y/100})})]}),(0,q.jsxs)(`span`,{className:`w-9 text-right text-[11px] tabular-nums text-foreground-subtle`,children:[y,`%`]})]})]})}var wK={disarmed:{label:`Disarmed`,colorClass:`border-border bg-surface-subtle text-foreground-subtle`,icon:`disarmed`},armed_home:{label:`Armed Home`,colorClass:`border-success/30 bg-success/10 text-success`,icon:`armed`},armed_away:{label:`Armed Away`,colorClass:`border-success/30 bg-success/10 text-success`,icon:`armed`},armed_night:{label:`Armed Night`,colorClass:`border-success/30 bg-success/10 text-success`,icon:`armed`},armed_vacation:{label:`Armed Vacation`,colorClass:`border-success/30 bg-success/10 text-success`,icon:`armed`},armed_custom_bypass:{label:`Armed (Bypass)`,colorClass:`border-success/30 bg-success/10 text-success`,icon:`armed`},arming:{label:`Arming…`,colorClass:`border-warning/30 bg-warning/10 text-warning`,icon:`pending`},disarming:{label:`Disarming…`,colorClass:`border-warning/30 bg-warning/10 text-warning`,icon:`pending`},pending:{label:`Pending`,colorClass:`border-warning/30 bg-warning/10 text-warning`,icon:`pending`},triggered:{label:`Triggered`,colorClass:`border-danger/30 bg-danger/10 text-danger`,icon:`triggered`}},TK={home:`Home`,away:`Away`,night:`Night`,vacation:`Vacation`,custom_bypass:`Bypass`};function EK(e){return e.startsWith(`armed_`)}function DK(e){return e===`arming`||e===`disarming`}function OK({icon:e,sizeClass:t=`h-8 w-8`}){return e===`disarmed`?(0,q.jsx)(GB,{className:t,"aria-hidden":`true`}):e===`triggered`?(0,q.jsx)(UB,{className:t,"aria-hidden":`true`}):e===`pending`?(0,q.jsx)(KB,{className:t,"aria-hidden":`true`}):(0,q.jsx)(WB,{className:t,"aria-hidden":`true`})}function kK({label:e,active:t,busy:n,onSelect:r}){return(0,q.jsx)(`button`,{type:`button`,"aria-label":e,"aria-pressed":t,disabled:n,onClick:e=>{e.stopPropagation(),n||r()},className:Z(`flex-1 rounded-md px-3 py-2 text-sm font-medium transition-colors`,t?`bg-primary text-primary-foreground shadow-sm`:`text-foreground-muted hover:bg-surface-hover`,n&&`opacity-40 cursor-not-allowed`),children:e})}function AK({state:e,availableModes:t,busy:n,onDisarm:r,onArm:a}){let o=EK(e),s=DK(e);return(0,q.jsxs)(`div`,{className:Z(`flex min-w-0 items-stretch gap-1 rounded-lg border border-border bg-surface-subtle p-1`),children:[(0,q.jsx)(kK,{label:`Disarm`,active:!o&&!s,busy:n,onSelect:r}),t.map(t=>(0,q.jsx)(kK,{label:TK[t],active:!s&&e===`armed_${t}`,busy:n,onSelect:()=>a(t)},t))]})}function jK(e,t,n){let{cap:r,slice:a,available:o}=hH({trpc:e,deviceId:t,cap:e=>e.alarmPanel,slice:e=>e.state.alarmPanel}),{display:s,applyOptimistic:c}=OH(a,{enabled:n??!0}),l=!o;return{display:s,capPresent:r!==void 0,busy:l,handleDisarm:()=>{r===void 0||l||(c({state:`disarming`}),r.disarm({}))},handleArm:e=>{r===void 0||l||(c({state:`arming`}),r.arm({mode:e}))}}}function MK({trpc:e,deviceId:t,optimistic:n}){let{display:r,capPresent:a,busy:o,handleDisarm:s,handleArm:c}=jK(e,t,n);if(!a||r===void 0)return null;let l=wK[r.state],u=EK(r.state)?r.state.replace(`armed_`,``):``;return(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsxs)(`span`,{className:Z(`inline-flex shrink-0 items-center gap-1 rounded-md border px-1.5 py-0.5 text-[11px] font-medium whitespace-nowrap`,l.colorClass,DK(r.state)&&`animate-pulse`),children:[(0,q.jsx)(OK,{icon:l.icon,sizeClass:`h-3 w-3`}),l.label]}),(0,q.jsxs)(`select`,{"aria-label":`Alarm mode`,disabled:o,value:u,onClick:e=>e.stopPropagation(),onChange:e=>{e.stopPropagation();let t=e.target.value;t===``?s():c(t)},className:Z(`min-w-0 shrink rounded-md border border-border bg-surface-subtle px-1.5 py-0.5 text-xs text-foreground-muted`,o&&`cursor-not-allowed opacity-40`),children:[(0,q.jsx)(`option`,{value:``,children:`Disarm`}),r.availableModes.map(e=>(0,q.jsx)(`option`,{value:e,children:TK[e]},e))]})]})}function NK({trpc:e,deviceId:t,optimistic:n}){let{display:r,capPresent:a,busy:o,handleDisarm:s,handleArm:c}=jK(e,t,n);if(!a||r===void 0)return null;let l=wK[r.state];return(0,q.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,q.jsx)(`div`,{"data-testid":`alarm-state`,"data-state":r.state,className:Z(`flex h-16 w-16 items-center justify-center rounded-full border-2`,l.colorClass,DK(r.state)&&`animate-pulse`),children:(0,q.jsx)(OK,{icon:l.icon})}),(0,q.jsx)(`span`,{className:Z(`text-sm font-medium`,l.colorClass,`border-0 bg-transparent`),children:l.label})]}),(0,q.jsx)(AK,{state:r.state,availableModes:r.availableModes,busy:o,onDisarm:s,onArm:c})]})}function PK(e,t){if(e<=0)return null;let n=Math.max(0,Math.round((t-e)/1e3));return n<60?`just now`:n<3600?`${Math.floor(n/60)} min ago`:n<86400?`${Math.floor(n/3600)} h ago`:new Date(e).toLocaleDateString()}function FK({atMs:e,neverLabel:t}){let n=PK(e,Date.now());return(0,q.jsx)(`span`,{className:`text-xs text-foreground-subtle`,"data-testid":`last-run`,children:n===null?t:n})}function IK({error:e}){return e===null||e===``?null:(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs text-danger`,title:e,"data-testid":`last-error`,children:[(0,q.jsx)(fV,{className:`h-3 w-3 shrink-0`,"aria-hidden":`true`}),(0,q.jsx)(`span`,{className:`truncate`,children:e})]})}function LK(e,t,n){let{cap:r,slice:a,available:o}=hH({trpc:e,deviceId:t,cap:e=>e.scriptRunner,slice:e=>e.state.scriptRunner}),{display:s,applyOptimistic:c}=OH(a,{enabled:n??!0}),l=!o,u=s?.isRunning===!0;return{display:s,capPresent:r!==void 0,busy:l,running:u,run:()=>{r===void 0||l||u||(c({isRunning:!0}),r.run({}))},stop:()=>{r===void 0||l||!u||(c({isRunning:!1}),r.stop({}))}}}function RK({running:e,busy:t,large:n,onRun:r,onStop:a}){let o=e?`Stop`:`Run`;return(0,q.jsxs)(`button`,{type:`button`,"aria-label":o,title:o,disabled:t,"data-testid":`script-run`,"data-running":e?`true`:`false`,onClick:t=>{t.stopPropagation(),e?a():r()},className:Z(`inline-flex items-center gap-1 rounded transition-colors`,n?`h-10 px-4 text-sm`:`h-5 px-1.5 text-xs`,e?`bg-danger text-danger-foreground hover:bg-danger/90`:`bg-primary text-primary-foreground hover:bg-primary/90`,t&&`cursor-not-allowed opacity-40`),children:[e?(0,q.jsx)(Pz,{className:n?`h-4 w-4`:`h-3 w-3`,"aria-hidden":`true`}):(0,q.jsx)(FB,{className:n?`h-4 w-4`:`h-3 w-3`,"aria-hidden":`true`}),(0,q.jsx)(`span`,{children:o})]})}function zK({trpc:e,deviceId:t,optimistic:n}){let{display:r,capPresent:a,busy:o,running:s,run:c,stop:l}=LK(e,t,n);return!a||r===void 0?null:(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsx)(RK,{running:s,busy:o,large:!1,onRun:c,onStop:l}),(0,q.jsx)(FK,{atMs:r.lastRunAt,neverLabel:`never run`})]})}function BK({trpc:e,deviceId:t,optimistic:n}){let{display:r,capPresent:a,busy:o,running:s,run:c,stop:l}=LK(e,t,n);return!a||r===void 0?null:(0,q.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,q.jsx)(`div`,{"data-testid":`script-state`,"data-running":s?`true`:`false`,className:Z(`flex h-16 w-16 items-center justify-center rounded-full border-2`,s?`border-primary text-primary animate-pulse`:`border-border text-foreground-subtle`),children:(0,q.jsx)(FB,{className:`h-8 w-8`,"aria-hidden":`true`})}),(0,q.jsx)(`span`,{className:`text-sm font-medium`,children:s?`Running`:`Idle`}),(0,q.jsx)(FK,{atMs:r.lastRunAt,neverLabel:`never run`}),(0,q.jsx)(IK,{error:r.lastError})]}),(0,q.jsx)(`div`,{className:`flex justify-center`,children:(0,q.jsx)(RK,{running:s,busy:o,large:!0,onRun:c,onStop:l})})]})}function VK(e,t,n){let{cap:r,slice:a,available:o}=hH({trpc:e,deviceId:t,cap:e=>e.automationControl,slice:e=>e.state.automationControl}),{display:s,applyOptimistic:c}=OH(a,{enabled:n??!0}),l=!o;return{display:s,capPresent:r!==void 0,busy:l,setEnabled:e=>{r===void 0||l||(c({enabled:e}),e?r.enable({}):r.disable({}))},trigger:()=>{r===void 0||l||r.trigger({})}}}function HK({enabled:e,busy:t,onToggle:n}){return(0,q.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":`Automation enabled`,disabled:t,"data-testid":`automation-enabled`,onClick:t=>{t.stopPropagation(),n(!e)},className:Z(`inline-flex shrink-0 items-center gap-1 rounded-md border px-1.5 py-0.5`,`text-[11px] font-medium whitespace-nowrap transition-colors`,e?`border-success/40 bg-success/10 text-success`:`border-border bg-surface-subtle text-foreground-subtle`,t&&`cursor-not-allowed opacity-40`),children:e?`Enabled`:`Disabled`})}function UK({busy:e,large:t,onTrigger:n}){return(0,q.jsxs)(`button`,{type:`button`,"aria-label":`Trigger`,title:`Run this automation now`,disabled:e,"data-testid":`automation-trigger`,onClick:e=>{e.stopPropagation(),n()},className:Z(`inline-flex items-center gap-1 rounded transition-colors`,t?`h-10 px-4 text-sm`:`h-5 px-1.5 text-xs`,`bg-primary text-primary-foreground hover:bg-primary/90`,e&&`cursor-not-allowed opacity-40`),children:[(0,q.jsx)(OV,{className:t?`h-4 w-4`:`h-3 w-3`,"aria-hidden":`true`}),(0,q.jsx)(`span`,{children:`Trigger`})]})}function WK({trpc:e,deviceId:t,optimistic:n}){let{display:r,capPresent:a,busy:o,setEnabled:s,trigger:c}=VK(e,t,n);return!a||r===void 0?null:(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsx)(HK,{enabled:r.enabled,busy:o,onToggle:s}),(0,q.jsx)(UK,{busy:o,large:!1,onTrigger:c})]})}function GK({trpc:e,deviceId:t,optimistic:n}){let{display:r,capPresent:a,busy:o,setEnabled:s,trigger:c}=VK(e,t,n);return!a||r===void 0?null:(0,q.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,q.jsx)(`div`,{"data-testid":`automation-state`,"data-enabled":r.enabled?`true`:`false`,className:Z(`flex h-16 w-16 items-center justify-center rounded-full border-2`,r.enabled?`border-success text-success`:`border-border text-foreground-subtle`),children:(0,q.jsx)(OV,{className:`h-8 w-8`,"aria-hidden":`true`})}),(0,q.jsx)(`span`,{className:`text-sm font-medium`,children:r.enabled?`Enabled`:`Disabled`}),(0,q.jsx)(FK,{atMs:r.lastTriggeredAt,neverLabel:`never triggered`}),(0,q.jsx)(IK,{error:r.lastError})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-center gap-3`,children:[(0,q.jsx)(HK,{enabled:r.enabled,busy:o,onToggle:s}),(0,q.jsx)(UK,{busy:o,large:!0,onTrigger:c})]})]})}function KK({children:e}){return(0,q.jsx)(`div`,{className:`flex flex-col items-stretch gap-3 rounded-lg border border-border bg-surface p-4`,children:e})}function qK(e,t){let{cap:n}=hH({trpc:e,deviceId:t,cap:e=>e.switch,slice:e=>e.state.switch});return n!==void 0}function JK({trpc:e,deviceId:t,features:n,optimistic:r}){return qK(e,t)?(0,q.jsx)(qW,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}):null}function YK(e,t){let{cap:n}=hH({trpc:e,deviceId:t,cap:e=>e.lockControl,slice:e=>e.state.lockControl});return n!==void 0}function XK({trpc:e,deviceId:t,features:n,optimistic:r}){return YK(e,t)?(0,q.jsx)(YW,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}):null}function ZK({trpc:e,deviceId:t,features:n,optimistic:r}){return qK(e,t)?(0,q.jsxs)(`div`,{className:`inline-flex items-center gap-2`,children:[(0,q.jsx)(qW,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}),(0,q.jsx)(XW,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r})]}):null}function QK(e,t){let{cap:n}=hH({trpc:e,deviceId:t,cap:e=>e.fanControl,slice:e=>e.state.fanControl});return n!==void 0}function $K({trpc:e,deviceId:t,features:n,optimistic:r}){return QK(e,t)?(0,q.jsxs)(`div`,{className:`inline-flex items-center gap-2`,children:[(0,q.jsx)(qW,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}),(0,q.jsx)(ZW,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r})]}):null}function eq(e,t){let{cap:n}=hH({trpc:e,deviceId:t,cap:e=>e.climateControl,slice:e=>e.state.climateControl});return n!==void 0}function tq({trpc:e,deviceId:t,features:n,optimistic:r}){return eq(e,t)?(0,q.jsx)(tG,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}):null}function nq({trpc:e,deviceId:t,features:n,optimistic:r}){return eq(e,t)?(0,q.jsx)(dG,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}):null}function rq({trpc:e,deviceId:t,features:n,optimistic:r}){return eq(e,t)?(0,q.jsx)(dG,{trpc:e,deviceId:t,features:n,layout:`full`,optimistic:r}):null}function iq(e,t){let{cap:n}=hH({trpc:e,deviceId:t,cap:e=>e.mediaPlayer,slice:e=>e.state.mediaPlayer});return n!==void 0}function aq({trpc:e,deviceId:t,features:n,optimistic:r}){return iq(e,t)?(0,q.jsx)(EG,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}):null}function oq(e,t){let{cap:n}=hH({trpc:e,deviceId:t,cap:e=>e.control,slice:e=>e.state.control});return n!==void 0}function sq({trpc:e,deviceId:t,features:n,optimistic:r}){return oq(e,t)?(0,q.jsx)(NG,{trpc:e,deviceId:t,features:n,layout:`compact`,optimistic:r}):null}function cq({trpc:e,deviceId:t,features:n,optimistic:r}){return oq(e,t)?(0,q.jsx)(KK,{children:(0,q.jsx)(NG,{trpc:e,deviceId:t,features:n,layout:`full`,optimistic:r})}):null}var lq={cover:{InlineControl:MH,HeroCard:LH},valve:{InlineControl:YU,HeroCard:eW},humidifier:{InlineControl:rW,HeroCard:aW},"water-heater":{InlineControl:lW,HeroCard:dW},switch:{InlineControl:JK,HeroCard:_K},light:{InlineControl:ZK,HeroCard:pK},fan:{InlineControl:$K,HeroCard:gK},sensor:{InlineControl:rU,HeroCard:fU},thermostat:{InlineControl:tq,HeroCard:GG},climate:{InlineControl:nq,HeroCard:rq},button:{InlineControl:wH,HeroCard:TH},update:{InlineControl:hU,HeroCard:gU},lock:{InlineControl:XK,HeroCard:QG},"media-player":{InlineControl:aq,HeroCard:CK},alarm:{InlineControl:MK,HeroCard:NK},control:{InlineControl:sq,HeroCard:cq},weather:{InlineControl:_W,HeroCard:SW},vacuum:{InlineControl:kU,HeroCard:jU},"lawn-mower":{InlineControl:HU,HeroCard:WU},image:{InlineControl:kW,HeroCard:AW},"pet-feeder":{InlineControl:GW,HeroCard:KW},script:{InlineControl:zK,HeroCard:BK},automation:{InlineControl:WK,HeroCard:GK},dummy:{InlineControl:RH,HeroCard:zH}};Object.fromEntries(Object.values(U).map(e=>[e,lq[LO[e]]])),U.Cover,U.Valve,U.Thermostat,U.Climate,U.Control,U.Button,U.MediaPlayer,U.AlarmPanel,U.Lock,U.Vacuum,U.LawnMower,U.Humidifier,U.Switch,U.Siren,U.Light,U.Fan,U.WaterHeater,U.Sensor,U.Presence,U.EventEmitter,U.Notifier,U.Script,U.Automation,U.Camera,U.Hub,U.Update,U.Generic,U.Weather,U.Container,U.Image,U.PetFeeder,new Set(Object.values(U));var uq={[U.Camera]:{icon:Tz,label:`Camera`},[U.Hub]:{icon:OB,label:`Hub`},[U.Light]:{icon:dB,label:`Light`},[U.Siren]:{icon:qB,label:`Siren`},[U.Switch]:{icon:sV,label:`Switch`},[U.Sensor]:{icon:cz,label:`Sensor`},[U.Thermostat]:{icon:oV,label:`Thermostat`},[U.Climate]:{icon:lz,label:`Air conditioner`},[U.Button]:{icon:Nz,label:`Button`},[U.EventEmitter]:{icon:OV,label:`Event Emitter`},[U.Update]:{icon:zB,label:`Update`},[U.Generic]:{icon:Cz,label:`Generic`},[U.Notifier]:{icon:_z,label:`Notifier`},[U.Script]:{icon:HB,label:`Script`},[U.Automation]:{icon:EV,label:`Automation`},[U.Lock]:{icon:gB,label:`Lock`},[U.Cover]:{icon:bz,label:`Cover`},[U.Valve]:{icon:NB,label:`Valve`},[U.Humidifier]:{icon:SV,label:`Humidifier`},[U.WaterHeater]:{icon:pz,label:`Water heater`},[U.Fan]:{icon:Zz,label:`Fan`},[U.MediaPlayer]:{icon:xB,label:`Media player`},[U.AlarmPanel]:{icon:UB,label:`Alarm panel`},[U.Control]:{icon:XB,label:`Control`},[U.Presence]:{icon:vB,label:`Presence`},[U.Weather]:{icon:Bz,label:`Weather`},[U.Vacuum]:{icon:Sz,label:`Vacuum`},[U.LawnMower]:{icon:lV,label:`Lawn mower`},[U.Container]:{icon:Cz,label:`Container`},[U.Image]:{icon:cB,label:`Image`},[U.PetFeeder]:{icon:xz,label:`Pet feeder`}},dq={[W.Siren]:{icon:qB,label:`Siren`},[W.Floodlight]:{icon:dB,label:`Floodlight`},[W.Spotlight]:{icon:eB,label:`Spotlight`},[W.PirSensor]:{icon:LB,label:`PIR sensor`},[W.Chime]:{icon:_z,label:`Chime`},[W.Autotrack]:{icon:Uz,label:`Auto-track`},[W.Nightvision]:{icon:SB,label:`Night vision`},[W.PrivacyMask]:{icon:Xz,label:`Privacy mask`},[W.Doorbell]:{icon:Gz,label:`Doorbell`},[W.BinaryHelper]:{icon:sV,label:`Binary helper`},[W.MotionSensor]:{icon:nB,label:`Motion sensor`},[W.ContactSensor]:{icon:Kz,label:`Contact sensor`},[W.LeakSensor]:{icon:Jz,label:`Leak sensor`},[W.SmokeSensor]:{icon:uz,label:`Smoke sensor`},[W.COSensor]:{icon:TV,label:`CO sensor`},[W.GasSensor]:{icon:$z,label:`Gas sensor`},[W.TamperSensor]:{icon:UB,label:`Tamper sensor`},[W.VibrationSensor]:{icon:yV,label:`Vibration sensor`},[W.ConnectivitySensor]:{icon:wV,label:`Connectivity`},[W.SoundSensor]:{icon:bV,label:`Sound sensor`},[W.BinarySensor]:{icon:sV,label:`Binary sensor`},[W.TemperatureSensor]:{icon:oV,label:`Temperature`},[W.HumiditySensor]:{icon:Yz,label:`Humidity`},[W.AmbientLightSensor]:{icon:rV,label:`Ambient light`},[W.PressureSensor]:{icon:rB,label:`Pressure`},[W.WindSensor]:{icon:TV,label:`Wind`},[W.RainSensor]:{icon:Rz,label:`Rain`},[W.UvSensor]:{icon:nV,label:`UV index`},[W.SolarRadiationSensor]:{icon:iV,label:`Solar radiation`},[W.SoilMoistureSensor]:{icon:eV,label:`Soil moisture`},[W.PowerSensor]:{icon:OV,label:`Power`},[W.EnergySensor]:{icon:OV,label:`Energy`},[W.VoltageSensor]:{icon:OV,label:`Voltage`},[W.CurrentSensor]:{icon:OV,label:`Current`},[W.AirQualitySensor]:{icon:TV,label:`Air quality`},[W.BatterySensor]:{icon:rB,label:`Battery`},[W.NumericSensor]:{icon:aB,label:`Numeric sensor`},[W.EnumSensor]:{icon:pB,label:`Enum sensor`},[W.DateTimeSensor]:{icon:Fz,label:`Date / time`},[W.GenericSensor]:{icon:rB,label:`Sensor`},[W.NumericControl]:{icon:XB,label:`Numeric control`},[W.SelectControl]:{icon:fB,label:`Select control`},[W.TextControl]:{icon:mV,label:`Text control`},[W.DateTimeControl]:{icon:Fz,label:`Date / time control`},[W.MobilePushNotifier]:{icon:ZB,label:`Mobile push`},[W.MessagingNotifier]:{icon:bB,label:`Messaging`},[W.EmailNotifier]:{icon:_B,label:`Email`},[W.GenericNotifier]:{icon:_z,label:`Notifier`}},fq=new Set(Object.values(U));new Set(Object.values(W));function pq(e){return fq.has(e)}var mq=uq[U.Generic];dq[W.GenericSensor];function hq(e){return pq(e)?uq[e]??mq:mq}Object.values(U).map(e=>{let t=hq(e);return{id:e,label:t.label,icon:t.icon}}),(0,K.createContext)(null),new Set([U.Sensor,U.Presence]),Object.freeze([]);var gq={face:`#a855f7`,plate:`#ec4899`};Object.freeze({...Object.fromEntries(Object.values(Fg).filter(e=>e.category===`detection`||e.kind===`motion`).map(e=>[e.kind,e.color])),...gq});var _q={motion:cz,audio:bV,person:gV,vehicle:Ez,animal:jB,package:kB,sensor:RB,control:XB,car:Ez,truck:pV,bus:wz,motorcycle:vz,bicycle:vz,airplane:PB,boat:VB,train:uV,bird:yz,cat:Dz,dog:Wz,horse:jB,sheep:jB,cow:jB,elephant:jB,bear:jB,zebra:jB,giraffe:jB,door:Kz,pir:LB,smoke:$z,water:Jz,gas:TV,vibration:yV,tamper:UB,presence:hV,generic:aV,lock:gB,siren:qB,switch:cV,doorbell:gz,button:Nz,"audio-speech":bB,"audio-scream":yB,"audio-crying":dz,"audio-laughter":lB,"audio-music":EB,"audio-dog":Wz,"audio-cat":Dz,"audio-bird":yz,"audio-animal":jB,"audio-alarm":gz,"audio-doorbell":gz,"audio-glass_breaking":fV,"audio-gunshot":Uz,"audio-vehicle":Ez,"audio-siren":qB,"audio-fire":$z,"audio-water":Yz,"audio-wind":TV,"audio-door":Kz,"audio-footsteps":nB,"audio-crowd":_V,"audio-telephone":MB,"audio-engine":Hz,"audio-tools":iB,"audio-silence":xV};function vq(e){return Object.hasOwn(_q,e)?_q[e]:e.startsWith(`audio-`)?bV:aV}var yq=class{constructor(){this.keyToValue=new Map,this.valueToKey=new Map}set(e,t){this.keyToValue.set(e,t),this.valueToKey.set(t,e)}getByKey(e){return this.keyToValue.get(e)}getByValue(e){return this.valueToKey.get(e)}clear(){this.keyToValue.clear(),this.valueToKey.clear()}},bq=class{constructor(e){this.generateIdentifier=e,this.kv=new yq}register(e,t){this.kv.getByValue(e)||(t||=this.generateIdentifier(e),this.kv.set(t,e))}clear(){this.kv.clear()}getIdentifier(e){return this.kv.getByValue(e)}getValue(e){return this.kv.getByKey(e)}},xq=class extends bq{constructor(){super(e=>e.name),this.classToAllowedProps=new Map}register(e,t){typeof t==`object`?(t.allowProps&&this.classToAllowedProps.set(e,t.allowProps),super.register(e,t.identifier)):super.register(e,t)}getAllowedProps(e){return this.classToAllowedProps.get(e)}};function Sq(e){if(`values`in Object)return Object.values(e);let t=[];for(let n in e)e.hasOwnProperty(n)&&t.push(e[n]);return t}function Cq(e,t){let n=Sq(e);if(`find`in n)return n.find(t);let r=n;for(let e=0;e<r.length;e++){let n=r[e];if(t(n))return n}}function wq(e,t){Object.entries(e).forEach(([e,n])=>t(n,e))}function Tq(e,t){return e.indexOf(t)!==-1}function Eq(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(t(r))return r}}var Dq=class{constructor(){this.transfomers={}}register(e){this.transfomers[e.name]=e}findApplicable(e){return Cq(this.transfomers,t=>t.isApplicable(e))}findByName(e){return this.transfomers[e]}},Oq=e=>Object.prototype.toString.call(e).slice(8,-1),kq=e=>e===void 0,Aq=e=>e===null,jq=e=>typeof e!=`object`||!e||e===Object.prototype?!1:Object.getPrototypeOf(e)===null?!0:Object.getPrototypeOf(e)===Object.prototype,Mq=e=>jq(e)&&Object.keys(e).length===0,Nq=e=>Array.isArray(e),Pq=e=>typeof e==`string`,Fq=e=>typeof e==`number`&&!isNaN(e),Iq=e=>typeof e==`boolean`,Lq=e=>e instanceof RegExp,Rq=e=>e instanceof Map,zq=e=>e instanceof Set,Bq=e=>Oq(e)===`Symbol`,Vq=e=>e instanceof Date&&!isNaN(e.valueOf()),Hq=e=>e instanceof Error,Uq=e=>typeof e==`number`&&isNaN(e),Wq=e=>Iq(e)||Aq(e)||kq(e)||Fq(e)||Pq(e)||Bq(e),Gq=e=>typeof e==`bigint`,Kq=e=>e===1/0||e===-1/0,qq=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),Jq=e=>e instanceof URL,Yq=e=>e.replace(/\\/g,`\\\\`).replace(/\./g,`\\.`),Xq=e=>e.map(String).map(Yq).join(`.`),Zq=(e,t)=>{let n=[],r=``;for(let a=0;a<e.length;a++){let o=e.charAt(a);if(!t&&o===`\\`){let t=e.charAt(a+1);if(t===`\\`){r+=`\\`,a++;continue}else if(t!==`.`)throw Error(`invalid path`)}if(o===`\\`&&e.charAt(a+1)===`.`){r+=`.`,a++;continue}if(o===`.`){n.push(r),r=``;continue}r+=o}let a=r;return n.push(a),n};function Qq(e,t,n,r){return{isApplicable:e,annotation:t,transform:n,untransform:r}}var $q=[Qq(kq,`undefined`,()=>null,()=>void 0),Qq(Gq,`bigint`,e=>e.toString(),e=>typeof BigInt<`u`?BigInt(e):(console.error(`Please add a BigInt polyfill.`),e)),Qq(Vq,`Date`,e=>e.toISOString(),e=>new Date(e)),Qq(Hq,`Error`,(e,t)=>{let n={name:e.name,message:e.message};return`cause`in e&&(n.cause=e.cause),t.allowedErrorProps.forEach(t=>{n[t]=e[t]}),n},(e,t)=>{let n=Error(e.message,{cause:e.cause});return n.name=e.name,n.stack=e.stack,t.allowedErrorProps.forEach(t=>{n[t]=e[t]}),n}),Qq(Lq,`regexp`,e=>``+e,e=>{let t=e.slice(1,e.lastIndexOf(`/`)),n=e.slice(e.lastIndexOf(`/`)+1);return new RegExp(t,n)}),Qq(zq,`set`,e=>[...e.values()],e=>new Set(e)),Qq(Rq,`map`,e=>[...e.entries()],e=>new Map(e)),Qq(e=>Uq(e)||Kq(e),`number`,e=>Uq(e)?`NaN`:e>0?`Infinity`:`-Infinity`,Number),Qq(e=>e===0&&1/e==-1/0,`number`,()=>`-0`,Number),Qq(Jq,`URL`,e=>e.toString(),e=>new URL(e))];function eJ(e,t,n,r){return{isApplicable:e,annotation:t,transform:n,untransform:r}}var tJ=eJ((e,t)=>Bq(e)?!!t.symbolRegistry.getIdentifier(e):!1,(e,t)=>[`symbol`,t.symbolRegistry.getIdentifier(e)],e=>e.description,(e,t,n)=>{let r=n.symbolRegistry.getValue(t[1]);if(!r)throw Error(`Trying to deserialize unknown symbol`);return r}),nJ=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce((e,t)=>(e[t.name]=t,e),{}),rJ=eJ(qq,e=>[`typed-array`,e.constructor.name],e=>[...e],(e,t)=>{let n=nJ[t[1]];if(!n)throw Error(`Trying to deserialize unknown typed array`);return new n(e)});function iJ(e,t){return e?.constructor?!!t.classRegistry.getIdentifier(e.constructor):!1}var aJ=eJ(iJ,(e,t)=>[`class`,t.classRegistry.getIdentifier(e.constructor)],(e,t)=>{let n=t.classRegistry.getAllowedProps(e.constructor);if(!n)return{...e};let r={};return n.forEach(t=>{r[t]=e[t]}),r},(e,t,n)=>{let r=n.classRegistry.getValue(t[1]);if(!r)throw Error(`Trying to deserialize unknown class '${t[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`);return Object.assign(Object.create(r.prototype),e)}),oJ=eJ((e,t)=>!!t.customTransformerRegistry.findApplicable(e),(e,t)=>[`custom`,t.customTransformerRegistry.findApplicable(e).name],(e,t)=>t.customTransformerRegistry.findApplicable(e).serialize(e),(e,t,n)=>{let r=n.customTransformerRegistry.findByName(t[1]);if(!r)throw Error(`Trying to deserialize unknown custom value`);return r.deserialize(e)}),sJ=[aJ,tJ,oJ,rJ],cJ=(e,t)=>{let n=Eq(sJ,n=>n.isApplicable(e,t));if(n)return{value:n.transform(e,t),type:n.annotation(e,t)};let r=Eq($q,n=>n.isApplicable(e,t));if(r)return{value:r.transform(e,t),type:r.annotation}},lJ={};$q.forEach(e=>{lJ[e.annotation]=e});var uJ=(e,t,n)=>{if(Nq(t))switch(t[0]){case`symbol`:return tJ.untransform(e,t,n);case`class`:return aJ.untransform(e,t,n);case`custom`:return oJ.untransform(e,t,n);case`typed-array`:return rJ.untransform(e,t,n);default:throw Error(`Unknown transformation: `+t)}else{let r=lJ[t];if(!r)throw Error(`Unknown transformation: `+t);return r.untransform(e,n)}},dJ=(e,t)=>{if(t>e.size)throw Error(`index out of bounds`);let n=e.keys();for(;t>0;)n.next(),t--;return n.next().value};function fJ(e){if(Tq(e,`__proto__`))throw Error(`__proto__ is not allowed as a property`);if(Tq(e,`prototype`))throw Error(`prototype is not allowed as a property`);if(Tq(e,`constructor`))throw Error(`constructor is not allowed as a property`)}var pJ=(e,t)=>{fJ(t);for(let n=0;n<t.length;n++){let r=t[n];if(zq(e))e=dJ(e,+r);else if(Rq(e)){let a=+r,o=+t[++n]==0?`key`:`value`,s=dJ(e,a);switch(o){case`key`:e=s;break;case`value`:e=e.get(s);break}}else e=e[r]}return e},mJ=(e,t,n)=>{if(fJ(t),t.length===0)return n(e);let r=e;for(let e=0;e<t.length-1;e++){let n=t[e];if(Nq(r)){let e=+n;r=r[e]}else if(jq(r))r=r[n];else if(zq(r)){let e=+n;r=dJ(r,e)}else if(Rq(r)){if(e===t.length-2)break;let a=+n,o=+t[++e]==0?`key`:`value`,s=dJ(r,a);switch(o){case`key`:r=s;break;case`value`:r=r.get(s);break}}}let a=t[t.length-1];if(Nq(r)?r[+a]=n(r[+a]):jq(r)&&(r[a]=n(r[a])),zq(r)){let e=dJ(r,+a),t=n(e);e!==t&&(r.delete(e),r.add(t))}if(Rq(r)){let e=+t[t.length-2],o=dJ(r,e);switch(+a==0?`key`:`value`){case`key`:{let e=n(o);r.set(e,r.get(o)),e!==o&&r.delete(o);break}case`value`:r.set(o,n(r.get(o)));break}}return e},hJ=e=>e<1;function gJ(e,t,n,r=[]){if(!e)return;let a=hJ(n);if(!Nq(e)){wq(e,(e,o)=>gJ(e,t,n,[...r,...Zq(o,a)]));return}let[o,s]=e;s&&wq(s,(e,o)=>{gJ(e,t,n,[...r,...Zq(o,a)])}),t(o,r)}function _J(e,t,n,r){return gJ(t,(t,n)=>{e=mJ(e,n,e=>uJ(e,t,r))},n),e}function vJ(e,t,n){let r=hJ(n);function a(t,n){let a=pJ(e,Zq(n,r));t.map(e=>Zq(e,r)).forEach(t=>{e=mJ(e,t,()=>a)})}if(Nq(t)){let[n,o]=t;n.forEach(t=>{e=mJ(e,Zq(t,r),()=>e)}),o&&wq(o,a)}else wq(t,a);return e}var yJ=(e,t)=>jq(e)||Nq(e)||Rq(e)||zq(e)||Hq(e)||iJ(e,t);function bJ(e,t,n){let r=n.get(e);r?r.push(t):n.set(e,[t])}function xJ(e,t){let n={},r;return e.forEach(e=>{if(e.length<=1)return;t||(e=e.map(e=>e.map(String)).sort((e,t)=>e.length-t.length));let[a,...o]=e;a.length===0?r=o.map(Xq):n[Xq(a)]=o.map(Xq)}),r?Mq(n)?[r]:[r,n]:Mq(n)?void 0:n}var SJ=(e,t,n,r,a=[],o=[],s=new Map)=>{let c=Wq(e);if(!c){bJ(e,a,t);let n=s.get(e);if(n)return r?{transformedValue:null}:n}if(!yJ(e,n)){let t=cJ(e,n),r=t?{transformedValue:t.value,annotations:[t.type]}:{transformedValue:e};return c||s.set(e,r),r}if(Tq(o,e))return{transformedValue:null};let l=cJ(e,n),u=l?.value??e,d=Nq(u)?[]:{},f={};wq(u,(c,l)=>{if(l===`__proto__`||l===`constructor`||l===`prototype`)throw Error(`Detected property ${l}. This is a prototype pollution risk, please remove it from your object.`);let u=SJ(c,t,n,r,[...a,l],[...o,e],s);d[l]=u.transformedValue,Nq(u.annotations)?f[Yq(l)]=u.annotations:jq(u.annotations)&&wq(u.annotations,(e,t)=>{f[Yq(l)+`.`+t]=e})});let p=Mq(f)?{transformedValue:d,annotations:l?[l.type]:void 0}:{transformedValue:d,annotations:l?[l.type,f]:f};return c||s.set(e,p),p};function CJ(e){return Object.prototype.toString.call(e).slice(8,-1)}function wJ(e){return CJ(e)===`Array`}function TJ(e){if(CJ(e)!==`Object`)return!1;let t=Object.getPrototypeOf(e);return!!t&&t.constructor===Object&&t===Object.prototype}function EJ(e,t,n,r,a){let o={}.propertyIsEnumerable.call(r,t)?`enumerable`:`nonenumerable`;o===`enumerable`&&(e[t]=n),a&&o===`nonenumerable`&&Object.defineProperty(e,t,{value:n,enumerable:!1,writable:!0,configurable:!0})}function DJ(e,t={}){if(wJ(e))return e.map(e=>DJ(e,t));if(!TJ(e))return e;let n=Object.getOwnPropertyNames(e),r=Object.getOwnPropertySymbols(e);return[...n,...r].reduce((n,r)=>{if(r===`__proto__`||wJ(t.props)&&!t.props.includes(r))return n;let a=e[r];return EJ(n,r,DJ(a,t),e,t.nonenumerable),n},{})}var OJ=class{constructor({dedupe:e=!1}={}){this.classRegistry=new xq,this.symbolRegistry=new bq(e=>e.description??``),this.customTransformerRegistry=new Dq,this.allowedErrorProps=[],this.dedupe=e}serialize(e){let t=new Map,n=SJ(e,t,this,this.dedupe),r={json:n.transformedValue};n.annotations&&(r.meta={...r.meta,values:n.annotations});let a=xJ(t,this.dedupe);return a&&(r.meta={...r.meta,referentialEqualities:a}),r.meta&&(r.meta.v=1),r}deserialize(e,t){let{json:n,meta:r}=e,a=t?.inPlace?n:DJ(n);return r?.values&&(a=_J(a,r.values,r.v??0,this)),r?.referentialEqualities&&(a=vJ(a,r.referentialEqualities,r.v??0)),a}stringify(e){return JSON.stringify(this.serialize(e))}parse(e){return this.deserialize(JSON.parse(e),{inPlace:!0})}registerClass(e,t){this.classRegistry.register(e,t)}registerSymbol(e,t){this.symbolRegistry.register(e,t)}registerCustom(e,t){this.customTransformerRegistry.register({name:t,...e})}allowErrorProps(...e){this.allowedErrorProps.push(...e)}};OJ.defaultInstance=new OJ,OJ.serialize=OJ.defaultInstance.serialize.bind(OJ.defaultInstance),OJ.deserialize=OJ.defaultInstance.deserialize.bind(OJ.defaultInstance),OJ.stringify=OJ.defaultInstance.stringify.bind(OJ.defaultInstance),OJ.parse=OJ.defaultInstance.parse.bind(OJ.defaultInstance),OJ.registerClass=OJ.defaultInstance.registerClass.bind(OJ.defaultInstance),OJ.registerSymbol=OJ.defaultInstance.registerSymbol.bind(OJ.defaultInstance),OJ.registerCustom=OJ.defaultInstance.registerCustom.bind(OJ.defaultInstance),OJ.allowErrorProps=OJ.defaultInstance.allowErrorProps.bind(OJ.defaultInstance),OJ.serialize,OJ.deserialize,OJ.stringify,OJ.parse,OJ.registerClass,OJ.registerCustom,OJ.registerSymbol,OJ.allowErrorProps,(0,K.createContext)(null),oF(`camstack:custom-field-renderers`,{}),oF(`camstack:device-context`,null),oF(`camstack:widget-registry`,null);function kJ({title:e,icon:t,headerRight:n,collapsible:r=!1,defaultOpen:a=!0,bodyClassName:o=`p-3`,children:s}){let[c,l]=(0,K.useState)(a),u=!r||c,d=(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`span`,{className:`flex items-center gap-2 text-xs font-semibold uppercase tracking-wider text-foreground`,children:[t,e]}),r?c?(0,q.jsx)(kz,{className:`h-3.5 w-3.5 text-foreground-subtle`}):(0,q.jsx)(Az,{className:`h-3.5 w-3.5 text-foreground-subtle`}):n]}),f=`px-4 py-2 flex items-center justify-between ${u?`border-b border-border`:``}`;return(0,q.jsxs)(`div`,{className:`rounded-lg border border-border bg-surface overflow-hidden`,children:[r?(0,q.jsx)(`button`,{type:`button`,onClick:()=>l(e=>!e),className:`w-full text-left ${f}`,children:d}):(0,q.jsx)(`div`,{className:f,children:d}),u?(0,q.jsx)(`div`,{className:o,children:s}):null]})}oF(`camstack:vod-playback`,{request:null,play:()=>{},clear:()=>{}}),oF(`camstack:recorded-playback`,{bindControlChannel:null,channelOpen:!1,mode:`live`,positionMs:null,send:()=>!1}),(0,K.lazy)(()=>pl(()=>import(`./MotionZonesSettings-NcxxQN8r-S8uFj2nP.js`).then(e=>({default:e.MotionZonesSettings})),__vite__mapDeps([0,1]),import.meta.url)),(0,K.lazy)(()=>pl(()=>import(`./PrivacyMaskSettings-APgPLF7p-nhHVCSoL.js`).then(e=>({default:e.PrivacyMaskSettings})),__vite__mapDeps([2,1]),import.meta.url));var AJ=Object.defineProperty,jJ=Object.getOwnPropertySymbols,MJ=Object.prototype.hasOwnProperty,NJ=Object.prototype.propertyIsEnumerable,PJ=(e,t,n)=>t in e?AJ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,FJ=(e,t)=>{for(var n in t||={})MJ.call(t,n)&&PJ(e,n,t[n]);if(jJ)for(var n of jJ(t))NJ.call(t,n)&&PJ(e,n,t[n]);return e},IJ=(e,t)=>{var n={};for(var r in e)MJ.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&jJ)for(var r of jJ(e))t.indexOf(r)<0&&NJ.call(e,r)&&(n[r]=e[r]);return n},LJ;(e=>{let t=class t{constructor(e,n,r,o){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(o<-1||o>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let s=[];for(let e=0;e<this.size;e++)s.push(!1);for(let e=0;e<this.size;e++)this.modules.push(s.slice()),this.isFunction.push(s.slice());this.drawFunctionPatterns();let c=this.addEccAndInterleave(r);if(this.drawCodewords(c),o==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(o=t,e=n),this.applyMask(t)}}a(0<=o&&o<=7),this.mask=o,this.applyMask(o),this.drawFormatBits(o),this.isFunction=[]}static encodeText(n,r){let a=e.QrSegment.makeSegments(n);return t.encodeSegments(a,r)}static encodeBinary(n,r){let a=e.QrSegment.makeBytes(n);return t.encodeSegments([a],r)}static encodeSegments(e,r,o=1,c=40,l=-1,u=!0){if(!(t.MIN_VERSION<=o&&o<=c&&c<=t.MAX_VERSION)||l<-1||l>7)throw RangeError(`Invalid value`);let d,f;for(d=o;;d++){let n=t.getNumDataCodewords(d,r)*8,a=s.getTotalBits(e,d);if(a<=n){f=a;break}if(d>=c)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])u&&f<=t.getNumDataCodewords(d,e)*8&&(r=e);let p=[];for(let t of e){n(t.mode.modeBits,4,p),n(t.numChars,t.mode.numCharCountBits(d),p);for(let e of t.getData())p.push(e)}a(p.length==f);let m=t.getNumDataCodewords(d,r)*8;a(p.length<=m),n(0,Math.min(4,m-p.length),p),n(0,(8-p.length%8)%8,p),a(p.length%8==0);for(let e=236;p.length<m;e^=253)n(e,8,p);let h=[];for(;h.length*8<p.length;)h.push(0);return p.forEach((e,t)=>h[t>>>3]|=e<<7-(t&7)),new t(d,r,h,l)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let o=(t<<10|n)^21522;a(o>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(o,e));this.setFunctionModule(8,7,r(o,6)),this.setFunctionModule(8,8,r(o,7)),this.setFunctionModule(7,8,r(o,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(o,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(o,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(o,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;a(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),a=this.size-11+e%3,o=Math.floor(e/3);this.setFunctionModule(a,o,n),this.setFunctionModule(o,a,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let a=Math.max(Math.abs(r),Math.abs(n)),o=e+r,s=t+n;0<=o&&o<this.size&&0<=s&&s<this.size&&this.setFunctionModule(o,s,a!=2&&a!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let o=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],s=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],c=Math.floor(t.getNumRawDataModules(n)/8),l=o-c%o,u=Math.floor(c/o),d=[],f=t.reedSolomonComputeDivisor(s);for(let n=0,r=0;n<o;n++){let a=e.slice(r,r+u-s+(n<l?0:1));r+=a.length;let o=t.reedSolomonComputeRemainder(a,f);n<l&&a.push(0),d.push(a.concat(o))}let p=[];for(let e=0;e<d[0].length;e++)d.forEach((t,n)=>{(e!=u-s||n>=l)&&p.push(t[e])});return a(p.length==c),p}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let a=0;a<this.size;a++)for(let o=0;o<2;o++){let s=t-o,c=t+1&2?a:this.size-1-a;!this.isFunction[c][s]&&n<e.length*8&&(this.modules[c][s]=r(e[n>>>3],7-(n&7)),n++)}}a(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,a=0,o=[0,0,0,0,0,0,0];for(let s=0;s<this.size;s++)this.modules[n][s]==r?(a++,a==5?e+=t.PENALTY_N1:a>5&&e++):(this.finderPenaltyAddHistory(a,o),r||(e+=this.finderPenaltyCountPatterns(o)*t.PENALTY_N3),r=this.modules[n][s],a=1);e+=this.finderPenaltyTerminateAndCount(r,a,o)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,a=0,o=[0,0,0,0,0,0,0];for(let s=0;s<this.size;s++)this.modules[s][n]==r?(a++,a==5?e+=t.PENALTY_N1:a>5&&e++):(this.finderPenaltyAddHistory(a,o),r||(e+=this.finderPenaltyCountPatterns(o)*t.PENALTY_N3),r=this.modules[s][n],a=1);e+=this.finderPenaltyTerminateAndCount(r,a,o)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let a=this.modules[n][r];a==this.modules[n][r+1]&&a==this.modules[n+1][r]&&a==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,o=Math.ceil(Math.abs(n*20-r*10)/r)-1;return a(0<=o&&o<=9),e+=o*t.PENALTY_N4,a(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return a(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let a=0;a<e;a++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let a of e){let e=a^r.shift();r.push(0),n.forEach((n,a)=>r[a]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return a(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];a(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function a(e){if(!e)throw Error(`Assertion error`)}let o=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let a=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+a),10),a*3+1,r),e+=a}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],a;for(a=0;a+2<=t.length;a+=2){let o=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(a))*45;o+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(a+1)),n(o,11,r)}return a<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(a)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};o.NUMERIC_REGEX=/^[0-9]*$/,o.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,o.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let s=o;e.QrSegment=o})(LJ||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(LJ||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(LJ||={});var RJ=LJ,zJ={L:RJ.QrCode.Ecc.LOW,M:RJ.QrCode.Ecc.MEDIUM,Q:RJ.QrCode.Ecc.QUARTILE,H:RJ.QrCode.Ecc.HIGH},BJ=128,VJ=`L`,HJ=`#FFFFFF`,UJ=`#000000`,WJ=!1,GJ=1,KJ=4,qJ=0,JJ=.1;function YJ(e,t=0){let n=[];return e.forEach(function(e,r){let a=null;e.forEach(function(o,s){if(!o&&a!==null){n.push(`M${a+t} ${r+t}h${s-a}v1H${a+t}z`),a=null;return}if(s===e.length-1){if(!o)return;a===null?n.push(`M${s+t},${r+t} h1v1H${s+t}z`):n.push(`M${a+t},${r+t} h${s+1-a}v1H${a+t}z`);return}o&&a===null&&(a=s)})}),n.join(``)}function XJ(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function ZJ(e,t,n,r){if(r==null)return null;let a=e.length+n*2,o=Math.floor(t*JJ),s=a/t,c=(r.width||o)*s,l=(r.height||o)*s,u=r.x==null?e.length/2-c/2:r.x*s,d=r.y==null?e.length/2-l/2:r.y*s,f=r.opacity==null?1:r.opacity,p=null;if(r.excavate){let e=Math.floor(u),t=Math.floor(d);p={x:e,y:t,w:Math.ceil(c+u-e),h:Math.ceil(l+d-t)}}let m=r.crossOrigin;return{x:u,y:d,h:l,w:c,excavation:p,opacity:f,crossOrigin:m}}function QJ(e,t){return t==null?e?KJ:qJ:Math.max(Math.floor(t),0)}function $J({value:e,level:t,minVersion:n,includeMargin:r,marginSize:a,imageSettings:o,size:s,boostLevel:c}){let l=K.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...RJ.QrSegment.makeSegments(t)),e),[]);return RJ.QrCode.encodeSegments(r,zJ[t],n,void 0,void 0,c)},[e,t,n,c]),{cells:u,margin:d,numCells:f,calculatedImageSettings:p}=K.useMemo(()=>{let e=l.getModules(),t=QJ(r,a);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:ZJ(e,s,t,o)}},[l,s,o,r,a]);return{qrcode:l,margin:d,cells:u,numCells:f,calculatedImageSettings:p}}var eY=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),tY=K.forwardRef(function(e,t){let n=e,{value:r,size:a=BJ,level:o=VJ,bgColor:s=HJ,fgColor:c=UJ,includeMargin:l=WJ,minVersion:u=GJ,boostLevel:d,marginSize:f,imageSettings:p}=n,m=IJ(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:h}=m,g=IJ(m,[`style`]),_=p?.src,v=K.useRef(null),y=K.useRef(null),b=K.useCallback(e=>{v.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[x,S]=K.useState(!1),{margin:ee,cells:C,numCells:w,calculatedImageSettings:T}=$J({value:r,level:o,minVersion:u,boostLevel:d,includeMargin:l,marginSize:f,imageSettings:p,size:a});K.useEffect(()=>{if(v.current!=null){let e=v.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=y.current,o=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;o&&T.excavation!=null&&(n=XJ(C,T.excavation));let l=window.devicePixelRatio||1;e.height=e.width=a*l;let u=a/w*l;t.scale(u,u),t.fillStyle=s,t.fillRect(0,0,w,w),t.fillStyle=c,eY?t.fill(new Path2D(YJ(n,ee))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+ee,n+ee,1,1)})}),T&&(t.globalAlpha=T.opacity),o&&t.drawImage(r,T.x+ee,T.y+ee,T.w,T.h)}}),K.useEffect(()=>{S(!1)},[_]);let E=FJ({height:a,width:a},h),te=null;return _!=null&&(te=K.createElement(`img`,{src:_,key:_,style:{display:`none`},onLoad:()=>{S(!0)},ref:y,crossOrigin:T?.crossOrigin})),K.createElement(K.Fragment,null,K.createElement(`canvas`,FJ({style:E,height:a,width:a,ref:b,role:`img`},g)),te)});tY.displayName=`QRCodeCanvas`;var nY=K.forwardRef(function(e,t){let n=e,{value:r,size:a=BJ,level:o=VJ,bgColor:s=HJ,fgColor:c=UJ,includeMargin:l=WJ,minVersion:u=GJ,boostLevel:d,title:f,marginSize:p,imageSettings:m}=n,h=IJ(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:g,cells:_,numCells:v,calculatedImageSettings:y}=$J({value:r,level:o,minVersion:u,boostLevel:d,includeMargin:l,marginSize:p,imageSettings:m,size:a}),b=_,x=null;m!=null&&y!=null&&(y.excavation!=null&&(b=XJ(_,y.excavation)),x=K.createElement(`image`,{href:m.src,height:y.h,width:y.w,x:y.x+g,y:y.y+g,preserveAspectRatio:`none`,opacity:y.opacity,crossOrigin:y.crossOrigin}));let S=YJ(b,g);return K.createElement(`svg`,FJ({height:a,width:a,viewBox:`0 0 ${v} ${v}`,ref:t,role:`img`},h),!!f&&K.createElement(`title`,null,f),K.createElement(`path`,{fill:s,d:`M0,0 h${v}v${v}H0z`,shapeRendering:`crispEdges`}),K.createElement(`path`,{fill:c,d:S,shapeRendering:`crispEdges`}),x)});nY.displayName=`QRCodeSVG`;var rY={baseDelayMs:1500,maxDelayMs:15e3,maxAttempts:40};function iY(e,t=Math.random){if(e>=rY.maxAttempts)return{kind:`exhausted`,attempts:e};let n=Math.min(rY.maxDelayMs,rY.baseDelayMs*2**e);return{kind:`retry`,delayMs:Math.round(n*(.8+t()*.4))}}function aY(e,t){e.muted=t;let n=e.srcObject;if(n instanceof MediaStream)for(let e of n.getAudioTracks())e.enabled=!t}function oY(){return typeof window>`u`?!1:window.matchMedia(`(hover: none) and (pointer: coarse)`).matches||typeof navigator<`u`&&navigator.maxTouchPoints>0||`ontouchstart`in window}function sY(e,t,n){let r=0;for(let a=0;a<8;a++)for(let o=0;o<8;o++){let s=Math.min(t-1,Math.floor((o+.5)/8*t)),c=Math.min(n-1,Math.floor((a+.5)/8*n)),{data:l}=e.getImageData(s,c,1,1);.2126*(l[0]??0)+.7152*(l[1]??0)+.0722*(l[2]??0)>12&&r++}return r<=1}function cY(e){let t={};if(typeof window<`u`){if(e){let n=e.getBoundingClientRect();n.width>0&&n.height>0&&(t.viewportWidth=Math.round(n.width),t.viewportHeight=Math.round(n.height))}t.viewportWidth===void 0&&(t.viewportWidth=window.innerWidth,t.viewportHeight=window.innerHeight),t.devicePixelRatio=window.devicePixelRatio||1;let n=navigator.connection;n?.downlink&&n.downlink>0&&(t.downlinkMbps=n.downlink)}return t}var lY=8e3;function uY({serverUrl:e,streamKey:t,label:n,autoPlay:r=!0,muted:a=!0,showControls:o=!0,showStats:s=!1,onPlaybackStats:c,onClientNetworkSample:l,onConnectTiming:u,className:d=``,onStateChange:f,onError:p,onReconnectAttempt:m,overlay:h,createSession:g,sendAnswer:_,handleOffer:v,getIceServers:y,addIceCandidate:b,getIceCandidates:x,closeSession:S,getSessionState:ee,reoffer:C,posterUrl:w,hintsOverride:T,reconnectSignal:E,onControlChannel:te,onVideoElement:ne}){let D=(0,K.useRef)(null),re=(0,K.useRef)(null),O=(0,K.useRef)(null),ie=(0,K.useRef)(new Set),ae=(0,K.useRef)(null),oe=(0,K.useRef)(null),se=(0,K.useRef)(0),k=(0,K.useRef)(!0),ce=(0,K.useRef)(te);ce.current=te;let le=(0,K.useRef)(ne);le.current=ne,(0,K.useEffect)(()=>(le.current?.(D.current),()=>le.current?.(null)),[]);let ue=(0,K.useRef)(null),de=(0,K.useRef)(null),fe=(0,K.useRef)(0),pe=(0,K.useRef)(!1),me=(0,K.useRef)(async()=>{}),[he,ge]=(0,K.useState)(`idle`),[_e,ve]=(0,K.useState)(``),[ye,be]=(0,K.useState)(a),xe=(0,K.useRef)(ye);xe.current=ye;let[Se,Ce]=(0,K.useState)(!1),[we,Te]=(0,K.useState)(!1),Ee=oY(),[De,Oe]=(0,K.useState)(!0),ke=(0,K.useRef)(null),Ae=(0,K.useRef)(!1);(_||g)&&(Ae.current=!0);let je=Ae.current,Me=(0,K.useRef)(!1);v&&(Me.current=!0);let Ne=Me.current,[Pe,Fe]=(0,K.useState)(!1),Ie=(0,K.useRef)(null),[Le,Re]=(0,K.useState)(null),[ze,Be]=(0,K.useState)(!1),Ve=(0,K.useCallback)(()=>{let e=D.current;if(!(!e||e.readyState<2||!e.videoWidth||!e.videoHeight))try{let t=document.createElement(`canvas`);t.width=e.videoWidth,t.height=e.videoHeight;let n=t.getContext(`2d`);if(!n||(n.drawImage(e,0,0),sY(n,t.width,t.height)))return;Ie.current=t.toDataURL(`image/jpeg`,.6)}catch{}},[]),He=(0,K.useCallback)(e=>{ge(e),e===`playing`&&Fe(!0),f?.(e)},[f]),Ue=(0,K.useCallback)(()=>{if(ae.current?.abort(),ae.current=null,oe.current&&=(clearTimeout(oe.current),null),de.current&&=(clearTimeout(de.current),null),ue.current=null,pe.current=!1,fe.current=0,O.current&&=(O.current.close(),null),S&&ie.current.size>0){for(let e of ie.current)S(e).catch(()=>{});ie.current.clear()}},[S]),We=(0,K.useCallback)(()=>{ae.current?.abort(),ae.current=null,oe.current&&=(clearTimeout(oe.current),null),de.current&&=(clearTimeout(de.current),null),ue.current=null,pe.current=!1,fe.current=0},[]),Ge=1e3,Ke=(0,K.useCallback)(e=>{if(!ee||!C)return;de.current&&=(clearTimeout(de.current),null);let t=async()=>{if(k.current&&ue.current===e){if(!pe.current)try{let{pendingRenegotiation:t}=await ee(e);if(k.current&&ue.current===e&&t&&t.epoch>fe.current&&!pe.current){fe.current=t.epoch,await me.current(e,t.target);return}}catch{}!k.current||ue.current!==e||(de.current=setTimeout(()=>{t()},Ge))}};de.current=setTimeout(()=>{t()},Ge)},[ee,C]),qe=(0,K.useCallback)(async(e=!1)=>{if(!k.current||!g||!_)return;let t=e?O.current:null,n=e?new Set(ie.current):null;e?We():Ue(),He(`connecting`);let r=new AbortController;ae.current=r;try{let{sessionId:a,sdpOffer:o,iceServers:s}=await g({...cY(re.current),...T});if(ie.current.add(a),!k.current||r.signal.aborted){S?.(a).catch(()=>{}),ie.current.delete(a);return}let c=new RTCPeerConnection({iceServers:[...s??[],{urls:`stun:stun.l.google.com:19302`}]});e||(O.current=c);let l=new MediaStream,u=!1,d=()=>{if(!(u||!k.current)){if(u=!0,O.current=c,D.current&&(D.current.srcObject=l,aY(D.current,xe.current),D.current.play().catch(()=>{})),t&&t!==c)try{t.close()}catch{}if(n)for(let e of n)ie.current.delete(e),S?.(e).catch(()=>{})}};c.ontrack=t=>{if(console.debug(`[WebRTC] ontrack`,t.track.kind,t.track.readyState),l.addTrack(t.track),e){d();return}D.current&&(D.current.srcObject=l,aY(D.current,xe.current),D.current.play().catch(()=>{}))},c.oniceconnectionstatechange=()=>{if(!k.current)return;let t=c.iceConnectionState;if(console.debug(`[WebRTC] ICE state:`,t),t===`connected`||t===`completed`)se.current=0,e&&d(),He(`playing`),D.current?.paused&&(console.debug(`[WebRTC] video was paused at ICE connected — calling play()`),D.current.play().catch(()=>{}));else if(t===`failed`||t===`disconnected`||t===`closed`){if(e&&!u)try{c.close()}catch{}He(`disconnected`),et()}},c.onicecandidateerror=e=>{console.debug(`[WebRTC] ICE candidate error:`,e)},console.debug(`[WebRTC] Setting remote description (server offer)...`),await c.setRemoteDescription({type:`offer`,sdp:o});let f=await c.createAnswer();if(await c.setLocalDescription(f),console.debug(`[WebRTC] Local description set, waiting for ICE gathering...`),await fY(c),!k.current)return;let p=(c.localDescription?.sdp??``).split(`
|
|
111
|
+
`).filter(e=>e.startsWith(`a=candidate:`)).length;console.debug(`[WebRTC] Sending answer to server`,{localCandidates:p,sessionId:a.slice(0,8)}),await _(a,c.localDescription?.sdp??``),console.debug(`[WebRTC] Answer sent successfully`);let m=c,h=()=>{let e=m.connectionState;if(e===`closed`||e===`failed`)return;let t=D.current;t&&t.readyState===0&&console.log(`[WebRTC] no video data yet (ice=${m.iceConnectionState})`)};setTimeout(h,3e3),setTimeout(h,8e3)}catch(e){if(!k.current)return;let t=e instanceof Error?e.message:String(e);ve(t),He(`error`),p?.(t),et()}},[e,t,g,_,Ue,We,S,He,p,T]),Je=(0,K.useCallback)(async()=>{if(k.current){Ue(),He(`connecting`);try{let n=new RTCPeerConnection({iceServers:[{urls:`stun:stun.l.google.com:19302`}]});O.current=n,n.addTransceiver(`video`,{direction:`recvonly`}),n.addTransceiver(`audio`,{direction:`recvonly`});let r=new MediaStream;n.ontrack=e=>{r.addTrack(e.track),D.current&&(D.current.srcObject=r,aY(D.current,xe.current),D.current.play().catch(()=>{}))},n.oniceconnectionstatechange=()=>{if(!k.current)return;let e=n.iceConnectionState;e===`connected`||e===`completed`?(se.current=0,He(`playing`),D.current?.paused&&D.current.play().catch(()=>{})):(e===`failed`||e===`disconnected`||e===`closed`)&&(He(`disconnected`),et())};let a=await n.createOffer();if(await n.setLocalDescription(a),await fY(n),!k.current)return;let o=`${e}/api/webrtc?src=${encodeURIComponent(t)}`,s=await fetch(o,{method:`POST`,headers:{"Content-Type":`application/sdp`},body:n.localDescription?.sdp??``});if(!s.ok)throw Error(`WHEP ${s.status}: ${s.statusText}`);let c=await s.text();await n.setRemoteDescription({type:`answer`,sdp:c})}catch(e){if(!k.current)return;let t=e instanceof Error?e.message:String(e);ve(t),He(`error`),p?.(t),et()}}},[e,t,Ue,He,p]),Ye=(0,K.useCallback)(async(e=!1)=>{if(!k.current||!v)return;let n=e?O.current:null,r=e?new Set(ie.current):null;e?We():Ue(),He(`connecting`);let a=new AbortController;ae.current=a;let o=performance.now(),s=()=>Math.round(performance.now()-o),c={};try{let o=await y?.();if(c.iceServersMs=s(),!k.current||a.signal.aborted)return;let l=new RTCPeerConnection({iceServers:[...o??[],{urls:`stun:stun.l.google.com:19302`}]});e||(O.current=l);let d=new MediaStream,f=!1,p=()=>{if(!(f||!k.current)){if(f=!0,O.current=l,D.current&&(D.current.srcObject=d,aY(D.current,xe.current),D.current.play().catch(()=>{})),n&&n!==l)try{n.close()}catch{}if(r)for(let e of r)ie.current.delete(e),S?.(e).catch(()=>{})}};l.ontrack=t=>{if(c.firstTrackMs===void 0&&(c.firstTrackMs=s()),console.debug(`[WebRTC] ontrack (client-offer)`,t.track.kind,t.track.readyState),d.addTrack(t.track),e){p();return}D.current&&(D.current.srcObject=d,aY(D.current,xe.current),D.current.play().catch(()=>{}))};let m=!1;l.oniceconnectionstatechange=()=>{if(!k.current)return;let n=l.iceConnectionState;if(console.debug(`[WebRTC] ICE state (client-offer):`,n),n===`connected`||n===`completed`){if(!m){m=!0,c.iceConnectedMs=s(),console.info(`[WebRTC timing] client-offer connected`,{streamKey:t,...c}),u?.({...c});let e=D.current;e&&`requestVideoFrameCallback`in e&&(e.requestVideoFrameCallback(()=>{c.firstFrameMs=s(),console.info(`[WebRTC timing] first decoded frame`,{streamKey:t,firstFrameMs:c.firstFrameMs}),u?.({...c})}),setTimeout(()=>{k.current&&c.firstFrameMs===void 0&&(console.warn(`[WebRTC timing] NO decoded frame (stalled)`,{streamKey:t,sinceIceConnectedMs:s()-(c.iceConnectedMs??0),iceConnectedMs:c.iceConnectedMs,firstTrackMs:c.firstTrackMs}),$e.current(`no decoded frame after connect`),et())},lY))}se.current=0,e&&p(),He(`playing`),D.current?.paused&&D.current.play().catch(()=>{})}else if(n===`failed`||n===`disconnected`||n===`closed`){if(e&&!f)try{l.close()}catch{}He(`disconnected`),et()}};let h=null,g=[];if(l.onicecandidate=e=>{if(!e.candidate)return;let t=e.candidate.toJSON();h&&b?b(h,t).catch(()=>{}):g.push(t)},l.addTransceiver(`video`,{direction:`recvonly`}),l.addTransceiver(`audio`,{direction:`recvonly`}),ce.current){let e=l.createDataChannel(`camstack-control`);ce.current(e)}let _=await l.createOffer();if(c.offerCreatedMs=s(),await l.setLocalDescription(_),c.localSetMs=s(),!k.current||a.signal.aborted)return;let ee={...cY(re.current),...T},C=s(),{sessionId:w,sdpAnswer:E}=await v(l.localDescription?.sdp??_.sdp??``,void 0,ee);if(c.signalingRttMs=s()-C,h=w,ie.current.add(w),ue.current=w,!k.current||a.signal.aborted){S?.(w).catch(()=>{}),ie.current.delete(w);return}if(b)for(let e of g)b(w,e).catch(()=>{});if(g.length=0,await l.setRemoteDescription({type:`answer`,sdp:E}),c.answerSetMs=s(),console.debug(`[WebRTC] Client-offer answer set (trickle)`,{sessionId:w.slice(0,8)}),x){let e=new Set,t=Date.now(),n=async()=>{if(!(!k.current||a.signal.aborted)&&!(l.connectionState===`closed`||l.signalingState===`closed`)){try{let{candidates:n,done:r}=await x(w);for(let t of n){let n=t.candidate??``;n&&!e.has(n)&&(e.add(n),l.addIceCandidate(new RTCIceCandidate(t)).catch(()=>{}))}let a=l.iceConnectionState;if(r||Date.now()-t>1e4||a===`connected`||a===`completed`)return}catch{}setTimeout(()=>{n()},200)}};n()}Ke(w)}catch(e){if(!k.current)return;let t=e instanceof Error?e.message:String(e);ve(t),He(`error`),p?.(t),et()}},[v,y,b,x,S,Ue,We,He,p,Ke,T]);me.current=(0,K.useCallback)(async(e,t)=>{let n=C;if(!k.current||!n)return;let r=O.current;pe.current=!0;try{let a=await y?.();if(!k.current)return;let o=new RTCPeerConnection({iceServers:[...a??[],{urls:`stun:stun.l.google.com:19302`}]}),s=new MediaStream,c=!1,l=!1,u=null,d,f,p=()=>{f!==void 0&&(clearTimeout(f),f=void 0);let e=u;if(u=null,e){d!==void 0&&typeof e.cancelVideoFrameCallback==`function`&&e.cancelVideoFrameCallback(d),e.removeEventListener(`loadeddata`,m);try{e.srcObject=null}catch{}e.remove()}};function m(){if(c||!k.current){p();return}c=!0,O.current=o,D.current&&(D.current.srcObject=s,D.current.play().catch(()=>{})),r&&r!==o&&r.close(),p()}let h=()=>{if(l||c||!k.current)return;if(l=!0,typeof document>`u`){m();return}let e=document.createElement(`video`);e.muted=!0,e.playsInline=!0,e.autoplay=!0,e.style.cssText=`position:absolute;left:-9999px;top:0;width:1px;height:1px;opacity:0;pointer-events:none;`,e.srcObject=s,u=e,(re.current??document.body).appendChild(e),e.play().catch(()=>{}),typeof e.requestVideoFrameCallback==`function`&&(d=e.requestVideoFrameCallback(()=>m())),e.addEventListener(`loadeddata`,m,{once:!0}),f=setTimeout(()=>m(),1800)};o.ontrack=e=>{console.debug(`[WebRTC] ontrack (reoffer)`,e.track.kind,e.track.readyState),s.addTrack(e.track),h()},o.oniceconnectionstatechange=()=>{if(!k.current)return;let e=o.iceConnectionState;console.debug(`[WebRTC] ICE state (reoffer):`,e),e===`connected`||e===`completed`?(se.current=0,h(),He(`playing`),D.current?.paused&&D.current.play().catch(()=>{})):(e===`failed`||e===`closed`)&&(p(),!c&&e===`failed`&&o.close(),He(`disconnected`),et())};let g=null,_=[];if(o.onicecandidate=e=>{if(!e.candidate)return;let t=e.candidate.toJSON();g&&b?b(g,t).catch(()=>{}):_.push(t)},o.addTransceiver(`video`,{direction:`recvonly`}),o.addTransceiver(`audio`,{direction:`recvonly`}),ce.current){let e=o.createDataChannel(`camstack-control`);ce.current(e)}let v=await o.createOffer();if(await o.setLocalDescription(v),!k.current){o.close();return}let S={...cY(re.current),...T},{sessionId:ee,sdpAnswer:C}=await n(e,o.localDescription?.sdp??v.sdp??``,t,S);if(!k.current){o.close();return}if(g=ee,ie.current.add(ee),ue.current=ee,b)for(let e of _)b(ee,e).catch(()=>{});if(_.length=0,await o.setRemoteDescription({type:`answer`,sdp:C}),x){let e=new Set,t=Date.now(),n=async()=>{if(k.current&&!(o.connectionState===`closed`||o.signalingState===`closed`)){try{let{candidates:n,done:r}=await x(ee);for(let t of n){let n=t.candidate??``;n&&!e.has(n)&&(e.add(n),o.addIceCandidate(new RTCIceCandidate(t)).catch(()=>{}))}let a=o.iceConnectionState;if(r||Date.now()-t>1e4||a===`connected`||a===`completed`)return}catch{}setTimeout(()=>{n()},200)}};n()}Ke(ee)}catch(t){console.debug(`[WebRTC] reoffer failed; keeping last frame, re-arming poll`,t instanceof Error?t.message:String(t)),Ke(e)}finally{pe.current=!1}},[C,y,b,x,He,Ke,T]);let Xe=Ne?Ye:je?qe:Je,Ze=(0,K.useRef)(()=>{}),Qe=(0,K.useRef)(m);Qe.current=m;let $e=(0,K.useRef)(()=>{});$e.current=e=>{console.warn(`[WebRTC] hard error`,{streamKey:t,msg:e}),ve(e),p?.(e),He(`error`)},Ze.current=Xe;let et=(0,K.useCallback)(()=>{if(!k.current)return;let e=se.current,t=iY(e);if(Qe.current?.(t),t.kind===`exhausted`){$e.current(`reconnect attempts exhausted (${t.attempts})`);return}se.current+=1,oe.current=setTimeout(()=>{k.current&&Ze.current()},t.delayMs)},[]);(0,K.useEffect)(()=>(k.current=!0,se.current=0,r&&Xe(),()=>{k.current=!1,Ue()}),[]);let tt=(0,K.useRef)(!1);(0,K.useEffect)(()=>{if(r){if(Ne){if(!v)return}else if(je){if(!g||!_)return}else return;tt.current||O.current||(tt.current=!0,Xe())}},[r,Ne,je,v,g,_,Xe]);let nt=()=>{se.current=0,Xe()},rt=()=>{if(se.current=0,O.current&&Ne){Ye(!0);return}if(O.current&&je){qe(!0);return}Xe()},it=(0,K.useRef)(e),at=(0,K.useRef)(t);(0,K.useEffect)(()=>{let n=it.current!==e,r=at.current!==t;if(it.current=e,at.current=t,!(!n&&!r)&&k.current){if(se.current=0,n){Ue(),Xe();return}rt()}},[e,t]);let ot=(0,K.useRef)(E);(0,K.useEffect)(()=>{ot.current!==E&&(ot.current=E,k.current&&rt())},[E]);let st=()=>{if(D.current){let e=!D.current.muted;aY(D.current,e),be(e)}},ct=async()=>{if(re.current)try{if(document.fullscreenElement){await document.exitFullscreen();return}if(re.current.requestFullscreen){await re.current.requestFullscreen();return}let e=D.current;e?.webkitEnterFullscreen&&e.webkitEnterFullscreen()}catch(e){console.warn(`Fullscreen toggle failed: ${e instanceof Error?e.message:e}`)}},lt=async()=>{let e=D.current;if(e)try{if(typeof e.webkitSetPresentationMode==`function`){e.webkitSetPresentationMode(e.webkitPresentationMode===`picture-in-picture`?`inline`:`picture-in-picture`);return}document.pictureInPictureElement?await document.exitPictureInPicture():await e.requestPictureInPicture()}catch(e){console.warn(`PiP toggle failed: ${e instanceof Error?e.message:String(e)}`)}},ut=()=>{if(!D.current)return;let e=document.createElement(`canvas`);e.width=D.current.videoWidth||1280,e.height=D.current.videoHeight||720;let n=e.getContext(`2d`);if(!n)return;n.drawImage(D.current,0,0);let r=document.createElement(`a`);r.download=`${t.replace(/[/:]/g,`-`)}-${Date.now()}.jpg`,r.href=e.toDataURL(`image/jpeg`,.92),r.click()};(0,K.useEffect)(()=>{let e=()=>Ce(!!document.fullscreenElement);document.addEventListener(`fullscreenchange`,e);let t=D.current;return t?.addEventListener(`webkitbeginfullscreen`,e),t?.addEventListener(`webkitendfullscreen`,e),()=>{document.removeEventListener(`fullscreenchange`,e),t?.removeEventListener(`webkitbeginfullscreen`,e),t?.removeEventListener(`webkitendfullscreen`,e)}},[]),(0,K.useEffect)(()=>{let e=D.current,t=typeof document<`u`&&document.pictureInPictureEnabled===!0,n=e!==null&&typeof e.webkitSetPresentationMode==`function`;Te(t||n)},[]);let[dt,ft]=(0,K.useState)(``),pt=(0,K.useRef)(null);(0,K.useEffect)(()=>{if(!s){ft(``),pt.current=null;return}let e=async()=>{let e=O.current;if(e)try{let t=await e.getStats(),n=0,r=0,a=0,o=0,s=0,c=0;t.forEach(e=>{let t=e;t.type===`inbound-rtp`&&(t.kind??t.mediaType)===`video`?(n=t.bytesReceived??0,r=t.timestamp,a=t.framesPerSecond??0,o=t.frameWidth??0,s=t.frameHeight??0):t.type===`candidate-pair`&&t.nominated&&typeof t.currentRoundTripTime==`number`&&(c=t.currentRoundTripTime)});let l=0;pt.current&&r>pt.current.ts&&(l=Math.round((n-pt.current.bytes)*8/(r-pt.current.ts))),pt.current={bytes:n,ts:r};let u=[];o&&s&&u.push(`${o}×${s}`),a&&u.push(`${Math.round(a)}fps`),l>0&&u.push(`${l} kbps`),c&&u.push(`${Math.round(c*1e3)}ms`),ft(u.join(` · `))}catch{}};e();let t=setInterval(()=>{e()},1e3);return()=>clearInterval(t)},[s]);let mt=(0,K.useRef)(null);(0,K.useEffect)(()=>{if(!l){mt.current=null;return}let e=async()=>{let e=O.current;if(e)try{let t=await e.getStats(),n=0,r=0,a=0,o=0,s=0,c=0;t.forEach(e=>{let t=e;t.type===`inbound-rtp`&&(t.kind??t.mediaType)===`video`?(n=t.packetsLost??0,r=t.packetsReceived??0,a=t.bytesReceived??0,o=t.timestamp,s=t.jitter??0):t.type===`candidate-pair`&&t.nominated&&typeof t.currentRoundTripTime==`number`&&(c=t.currentRoundTripTime)});let u=mt.current;if(mt.current={lost:n,recv:r,bytes:a,ts:o},!u||o<=u.ts)return;let d=Math.max(0,n-u.lost),f=d+Math.max(0,r-u.recv),p=f>0?Math.min(100,d/f*100):0,m=Math.max(0,Math.round((a-u.bytes)*8/(o-u.ts)));l({rttMs:Math.round(c*1e3),jitterMs:Math.round(s*1e3),estimatedBandwidthKbps:m,packetLossPercent:p})}catch{}},t=setInterval(()=>{e()},2e3);return()=>clearInterval(t)},[l]);let ht=(0,K.useRef)(null);(0,K.useEffect)(()=>{if(!c){ht.current=null;return}let e=async()=>{let e=O.current,t=D.current;if(e)try{let n=await e.getStats(),r=0,a=0,o=0,s=0,l=0,u=0,d=0,f=0;n.forEach(e=>{let t=e;t.type===`inbound-rtp`&&(t.kind??t.mediaType)===`video`&&(r=t.framesReceived??0,a=t.framesDecoded??0,o=t.framesDropped??0,s=t.framesPerSecond??0,l=t.freezeCount??0,u=t.totalFreezesDuration??0,d=t.jitterBufferDelay??0,f=t.jitterBufferEmittedCount??0)});let p=t?.currentTime??0,m=Date.now(),h=ht.current,g=f>0?Math.round(d/f*1e3):0;h&&c({dRecv:r-h.recv,dDec:a-h.dec,dDrop:o-h.drop,fps:Math.round(s),dFreeze:l-h.freeze,freezeTotalMs:Math.round(u*1e3),avgJitterMs:g,dCtMs:Math.round((p-h.ct)*1e3),dtMs:m-h.ts,readyState:t?.readyState??-1}),ht.current={recv:r,dec:a,drop:o,freeze:l,ct:p,ts:m}}catch{}};e();let t=setInterval(()=>{e()},1e3);return()=>clearInterval(t)},[c]),(0,K.useEffect)(()=>{be(a);let e=D.current;e&&(aY(e,a),a||e.play().catch(()=>{}))},[a]);let gt=()=>{Ee||(Oe(!0),ke.current&&clearTimeout(ke.current),ke.current=setTimeout(()=>Oe(!1),3e3))},_t=()=>{Oe(e=>!e),ke.current&&clearTimeout(ke.current)};(0,K.useEffect)(()=>{if(he===`playing`){Ve();let e=setInterval(Ve,2e3);return()=>clearInterval(e)}Pe&&Ie.current&&Re(Ie.current)},[he,Pe,Ve]),(0,K.useEffect)(()=>{if(he!==`playing`){Be(!1);return}let e=D.current;if(!e)return;let t=!1,n=()=>{t||Be(!0)},r;typeof e.requestVideoFrameCallback==`function`&&(r=e.requestVideoFrameCallback(()=>n())),e.addEventListener(`loadeddata`,n,{once:!0});let a=setTimeout(n,12e3);return()=>{t=!0,clearTimeout(a),r!==void 0&&typeof e.cancelVideoFrameCallback==`function`&&e.cancelVideoFrameCallback(r),e.removeEventListener(`loadeddata`,n)}},[he]);let vt=Pe&&Le?Le:w??null,yt=!ze&&vt!==null;return(0,q.jsxs)(`div`,{ref:re,className:`relative isolate bg-black overflow-hidden group ${d}`,onMouseMove:gt,onMouseEnter:gt,onTouchStart:_t,children:[(0,q.jsx)(`video`,{ref:D,autoPlay:r,muted:ye,playsInline:!0,className:`w-full h-full object-contain relative z-0`}),yt&&vt&&(0,q.jsx)(`img`,{src:vt,alt:``,className:`absolute inset-0 w-full h-full object-contain z-[5] transform-gpu pointer-events-none`}),n&&he===`playing`&&(0,q.jsx)(`div`,{className:`absolute top-2 left-2 z-10 transform-gpu px-2 py-0.5 rounded bg-black/60 text-[10px] text-white font-medium`,children:n}),s&&dt&&(0,q.jsx)(`div`,{className:`absolute top-2 right-2 z-10 transform-gpu px-2 py-0.5 rounded bg-black/60 text-[10px] text-white font-mono`,children:dt}),h,o&&!vt&&he===`connecting`&&(0,q.jsxs)(`div`,{className:`absolute inset-0 z-10 transform-gpu flex flex-col items-center justify-center bg-black/70 gap-2`,children:[(0,q.jsx)(`svg`,{className:`h-6 w-6 text-white/60 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:(0,q.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`3`,strokeLinecap:`round`,strokeDasharray:`32`,strokeDashoffset:`32`,className:`animate-[dash_1.5s_ease-in-out_infinite]`})}),(0,q.jsx)(`span`,{className:`text-xs text-white/60`,children:`Connecting…`})]}),o&&!vt&&(he===`error`||he===`disconnected`)&&(0,q.jsxs)(`div`,{className:`absolute inset-0 z-10 transform-gpu flex flex-col items-center justify-center bg-black/70 gap-2`,children:[(0,q.jsx)(`svg`,{className:`h-6 w-6 text-red-400`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,q.jsx)(`path`,{d:`M1 1l5.5 5.5M23 23l-5.5-5.5M8.11 15.89a8 8 0 0110.78-10.78M3.64 3.64A12 12 0 0020.36 20.36`,strokeLinecap:`round`})}),(0,q.jsx)(`span`,{className:`text-xs text-red-400 text-center px-4`,children:he===`error`?_e||`Connection failed`:`Disconnected`}),(0,q.jsx)(`button`,{onClick:nt,className:`mt-1 inline-flex items-center gap-1.5 rounded px-3 py-1 text-xs bg-white/10 text-white hover:bg-white/20 transition-colors`,children:`Reconnect`})]}),o&&vt&&(he===`connecting`||he===`disconnected`)&&(0,q.jsx)(`div`,{className:`absolute top-2 left-2 z-10 transform-gpu flex h-6 w-6 items-center justify-center rounded-full bg-black/55`,children:(0,q.jsx)(`svg`,{className:`h-3.5 w-3.5 text-white/90 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:(0,q.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`3`,strokeLinecap:`round`,strokeDasharray:`32`,strokeDashoffset:`32`,className:`animate-[dash_1.5s_ease-in-out_infinite]`})})}),o&&vt&&he===`error`&&(0,q.jsx)(`button`,{onClick:nt,title:_e||`Reconnect`,className:`absolute top-2 left-2 z-10 transform-gpu flex h-6 w-6 items-center justify-center rounded-full bg-black/55 text-white/90 hover:bg-black/75 transition-colors`,children:(0,q.jsxs)(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,q.jsx)(`path`,{d:`M23 4v6h-6M1 20v-6h6`}),(0,q.jsx)(`path`,{d:`M3.51 9a9 9 0 0114.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0020.49 15`})]})}),o&&he!==`idle`&&he!==`error`&&(0,q.jsxs)(`div`,{className:`absolute bottom-0 inset-x-0 z-20 transform-gpu flex items-center justify-between px-3 py-1.5 bg-gradient-to-t from-black/80 to-transparent transition-opacity duration-200 ${Ee||De?`opacity-100 pointer-events-auto`:`opacity-0 pointer-events-none`}`,children:[(0,q.jsx)(`div`,{className:`flex items-center gap-1`,children:(0,q.jsx)(dY,{onClick:st,title:ye?`Unmute`:`Mute`,children:ye?(0,q.jsxs)(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[(0,q.jsx)(`polygon`,{points:`11 5 6 9 2 9 2 15 6 15 11 19 11 5`}),(0,q.jsx)(`line`,{x1:`23`,y1:`9`,x2:`17`,y2:`15`}),(0,q.jsx)(`line`,{x1:`17`,y1:`9`,x2:`23`,y2:`15`})]}):(0,q.jsxs)(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[(0,q.jsx)(`polygon`,{points:`11 5 6 9 2 9 2 15 6 15 11 19 11 5`}),(0,q.jsx)(`path`,{d:`M19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07`})]})})}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(dY,{onClick:ut,title:`Take snapshot`,children:(0,q.jsxs)(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[(0,q.jsx)(`path`,{d:`M23 19a2 2 0 01-2 2H3a2 2 0 01-2-2V8a2 2 0 012-2h4l2-3h6l2 3h4a2 2 0 012 2z`}),(0,q.jsx)(`circle`,{cx:`12`,cy:`13`,r:`4`})]})}),we&&(0,q.jsx)(dY,{onClick:lt,title:`Picture-in-Picture`,children:(0,q.jsxs)(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,q.jsx)(`path`,{d:`M21 9V6a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2h4`}),(0,q.jsx)(`rect`,{width:`10`,height:`7`,x:`12`,y:`13`,rx:`2`})]})}),(0,q.jsx)(dY,{onClick:ct,title:Se?`Exit fullscreen`:`Fullscreen`,children:Se?(0,q.jsx)(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:(0,q.jsx)(`path`,{d:`M8 3v3a2 2 0 01-2 2H3m18 0h-3a2 2 0 01-2-2V3m0 18v-3a2 2 0 012-2h3M3 16h3a2 2 0 012 2v3`})}):(0,q.jsx)(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:(0,q.jsx)(`path`,{d:`M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3`})})})]})]})]})}function dY({onClick:e,title:t,children:n}){return(0,q.jsx)(`button`,{onClick:e,title:t,className:`rounded-full p-1.5 min-w-[44px] min-h-[44px] flex items-center justify-center text-white/80 hover:text-white hover:bg-white/20 active:bg-white/30 transition-colors`,children:n})}async function fY(e){if(e.iceGatheringState!==`complete`)return new Promise(t=>{let n=!1,r,a=()=>{n||(n=!0,r&&clearInterval(r),e.removeEventListener(`icegatheringstatechange`,o),t())},o=()=>{e.iceGatheringState===`complete`&&a()};e.addEventListener(`icegatheringstatechange`,o);let s=Date.now();r=setInterval(()=>{let t=e.localDescription?.sdp??``;/ typ host/.test(t)&&Date.now()-s>=600&&a()},100),setTimeout(a,2500)})}oF(`camstack:player-overlays-state`,null);var pY=oF(`camstack:player-overlays-actions`,null);function mY(e){let t=(0,K.useContext)(pY);(0,K.useEffect)(()=>{if(!(!t||!e))return t.setLayer(e),()=>t.removeLayer(e.id)},[t,e])}R({id:N(),stableId:M(),addonId:M(),type:M(),name:M(),online:P(),disabled:P(),parentDeviceId:N().nullable(),role:M().nullable().optional(),features:L(M()).optional(),isCamera:P().optional(),sourceInfo:Gp.optional()}),qt.AddonStarted,qt.AddonInstalled,qt.AddonRestarted,qt.AddonUpdated,qt.AddonStopped,qt.AddonUninstalled,qt.AddonCrashed,qt.AddonError,qt.DetectionPhaseTransition,qt.DetectionResult,qt.DetectionEvent,qt.DetectionCameraNative,qt.ProviderMotion,qt.MotionOnMotionChanged,qt.MotionAnalysis,qt.MotionZonesRaw,qt.ProviderDetection,qt.PipelineAudioInferenceResult,qt.AgentOnline,qt.AgentOffline,qt.DeviceRegistered,qt.DeviceUnregistered,qt.DeviceStateChanged,qt.EventEmitted;var hY=Object.freeze([...new Set(Object.values(qt))].toSorted()),gY=Object.freeze([qt.PipelineCameraMetricsSnapshot,qt.PipelineRunnerLoadSnapshot,qt.PipelineEngineMetricsSnapshot,qt.PipelineInferenceResult,qt.PipelineTrace,qt.PipelineProgress,qt.StreamBrokerMetricsSnapshot,qt.MetricsNodeResourcesSnapshot,qt.MetricsNodeProcessesSnapshot,qt.ClusterTopologySnapshot,qt.MotionAnalysis,qt.MotionZonesRaw,qt.DetectionResult,qt.PipelineAudioInferenceResult,qt.PlatformProbePhase,qt.BenchmarkProgress,qt.ModelDownloadProgress]),_Y=new Set(gY);Object.freeze(hY.filter(e=>!_Y.has(e))),Object.freeze([...new Set(qO.filter(e=>e.scope===`device`).map(e=>e.name))].toSorted()),oF(`camstack:zone-editing`,null);var vY=500,yY=800;function bY(e,t,n){try{let r=e.live;if(!r)return null;let a=r.onEvent;return!a||typeof a.subscribe!=`function`?null:a.subscribe({category:t},{onData:n})}catch{return null}}function xY(e,t){return e?.id===t}function SY(e,t){let[n,r]=(0,K.useState)(null),[a,o]=(0,K.useState)(null),[s,c]=(0,K.useState)(null),[l,u]=(0,K.useState)(`watching`),d=(0,K.useRef)(void 0),f=(0,K.useRef)(void 0),p=(0,K.useRef)(void 0),m=(0,K.useRef)(0);return(0,K.useEffect)(()=>{if(t===null)return;let n=bY(e,`detection.motion-analysis`,e=>{let n=e;if(!xY(n?.source,t))return;let a=n.data;!a?.regions||a.regions.length===0||(r({zones:a.regions.map(e=>({...e.bbox,intensity:e.intensity})),frameWidth:a.frameWidth,frameHeight:a.frameHeight}),d.current&&clearTimeout(d.current),d.current=setTimeout(()=>r(null),vY))});return()=>{n?.unsubscribe(),d.current&&clearTimeout(d.current)}},[e,t]),(0,K.useEffect)(()=>{if(t===null)return;let n=bY(e,`detection.motion-zones-raw`,e=>{let n=e;if(!xY(n?.source,t))return;let r=n.data;r?.zones&&(o({boxes:r.zones.map(e=>({bbox:e.bbox,changeScore:e.changeScore})),frameWidth:r.frameSize?.width??0,frameHeight:r.frameSize?.height??0,motionScore:r.zones.length>0?r.zones.reduce((e,t)=>e+t.changeScore,0)/r.zones.length:0}),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>o(null),vY))});return()=>{n?.unsubscribe(),f.current&&clearTimeout(f.current)}},[e,t]),(0,K.useEffect)(()=>{if(m.current=0,t===null)return;let n=bY(e,`pipeline-analytics.frame-tracked`,e=>{let n=e?.data;!n||n.deviceId!==t||n.detections?.length&&typeof n.detections[0]?.kind==`string`&&(m.current=Date.now(),c({detections:n.detections,frameWidth:n.frameWidth,frameHeight:n.frameHeight}),p.current&&clearTimeout(p.current),p.current=setTimeout(()=>c(null),yY))});return()=>{n?.unsubscribe(),p.current&&clearTimeout(p.current)}},[e,t]),(0,K.useEffect)(()=>{if(t===null)return;let n=bY(e,`detection.result`,e=>{let n=e;if(!xY(n?.source,t)||Date.now()-m.current<yY)return;let r=n.data?.frame;r?.detections?.length&&(c({detections:r.detections,frameWidth:r.width,frameHeight:r.height}),p.current&&clearTimeout(p.current),p.current=setTimeout(()=>c(null),yY))});return()=>{n?.unsubscribe(),p.current&&clearTimeout(p.current)}},[e,t]),(0,K.useEffect)(()=>{if(t===null)return;let n=bY(e,`detection.phase-transition`,e=>{let n=e;xY(n?.source,t)&&n.data?.to&&u(n.data.to)});return()=>{n?.unsubscribe()}},[e,t]),{motion:n,motionRaw:a,detection:s,phase:l}}var CY=5*6e4,wY=720*6e4,TY=`camstack:turn-servers:v1`;function EY(){let e=globalThis;try{return e.localStorage??null}catch{return null}}function DY(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.fetchedAt!=`number`||!Array.isArray(t.servers)?!1:t.servers.every(e=>{if(typeof e!=`object`||!e)return!1;let t=e;return!(!(typeof t.urls==`string`||Array.isArray(t.urls)&&t.urls.every(e=>typeof e==`string`))||t.username!==void 0&&typeof t.username!=`string`||t.credential!==void 0&&typeof t.credential!=`string`)})}var OY=new class{freshTtlMs;staleCapMs;storage;now;storageKey;memory=new WeakMap;inflight=new WeakMap;constructor(e={}){this.freshTtlMs=e.freshTtlMs??CY,this.staleCapMs=e.staleCapMs??wY,this.storage=`storage`in e?e.storage??null:EY(),this.now=e.now??(()=>Date.now()),this.storageKey=e.storageKey??TY}async getOrFetch(e,t){let n=this.now(),r=this.memory.get(e)??this.readStorage();if(r){let a=n-r.fetchedAt;if(a<this.freshTtlMs)return r.servers;if(a<this.staleCapMs)return this.startFetch(e,t,r),r.servers}return this.startFetch(e,t,r)}startFetch(e,t,n){let r=this.inflight.get(e);if(r)return r;let a=(async()=>{try{let n=await t();if(n.length>0){let t={servers:n,fetchedAt:this.now()};this.memory.set(e,t),this.writeStorage(t)}return n}catch{return n?.servers}})().finally(()=>{this.inflight.delete(e)});return this.inflight.set(e,a),a}readStorage(){if(this.storage)try{let e=this.storage.getItem(this.storageKey);if(e===null)return;let t=JSON.parse(e);return DY(t)?t:void 0}catch{return}}writeStorage(e){if(this.storage)try{this.storage.setItem(this.storageKey,JSON.stringify(e))}catch{}}};function kY(e,t,n=5e3){let[r,a]=(0,K.useState)([]);(0,K.useEffect)(()=>{if(t===null)return;let r=!1,o=()=>{e.webrtcSession.listStreams.query({deviceId:t}).then(e=>{r||a(e)}).catch(()=>{})};o();let s=setInterval(o,n);return()=>{r=!0,clearInterval(s)}},[e,t,n]);let[o,s]=(0,K.useState)(null);(0,K.useEffect)(()=>{if(t===null)return;let n=!1;return e.pipelineOrchestrator&&e.pipelineOrchestrator.getCameraMetrics.query({deviceId:t}).then(e=>{n||!e||s({phase:e.phase,detectionFps:e.actualFps,avgInferenceMs:e.avgInferenceTimeMs,droppedFrames:e.droppedFrames})}).catch(()=>{}),()=>{n=!0}},[e,t]),dH(`pipeline.camera-metrics-snapshot`,e=>{if(t===null)return;let n=e.data;n.deviceId!==t||!n.metrics||s({phase:n.metrics.phase,detectionFps:n.metrics.actualFps,avgInferenceMs:n.metrics.avgInferenceTimeMs,droppedFrames:n.metrics.droppedFrames})});let{streams:c,hasWebrtc:l}=(0,K.useMemo)(()=>t===null||r.length===0?{streams:[],hasWebrtc:!1}:{streams:r.map(e=>({id:e.id,label:e.label,target:e.target,status:e.status,inputFps:e.inputFps,decodeFps:e.decodeFps,bitrateKbps:e.bitrateKbps})),hasWebrtc:!0},[t,r]),u=(0,K.useCallback)(async()=>{let t=e.turnProvider;if(t)return OY.getOrFetch(e,async()=>(await t.getTurnServers.query()).map(e=>({urls:typeof e.urls==`string`?e.urls:[...e.urls],...e.username===void 0?{}:{username:e.username},...e.credential===void 0?{}:{credential:e.credential}})))},[e]);(0,K.useEffect)(()=>{u()},[u]);let d=(0,K.useCallback)(async(n,r)=>{if(t===null)throw Error(`No device selected`);let a=await e.webrtcSession.createSession.mutate({deviceId:t,target:n,hints:r}),o=await u();return{sessionId:a.sessionId,sdpOffer:a.sdpOffer,...o?{iceServers:o}:{}}},[e,t,u]),f=(0,K.useCallback)(async(n,r,a,o)=>{if(t===null)throw Error(`No device selected`);return e.webrtcSession.handleOffer.mutate({deviceId:t,target:n,sdpOffer:r,...a===void 0?{}:{sessionId:a},...o===void 0?{}:{hints:o}})},[e,t]),p=(0,K.useCallback)(async(n,r)=>{if(t===null)throw Error(`No device selected`);await e.webrtcSession.handleAnswer.mutate({deviceId:t,sessionId:n,sdpAnswer:r})},[e,t]);return{streams:c,hasWebrtc:l,pipelineMetrics:o,createSession:d,handleOffer:f,getIceServers:u,addIceCandidate:(0,K.useCallback)(async(n,r)=>{t!==null&&await e.webrtcSession.addIceCandidate.mutate({deviceId:t,sessionId:n,candidate:r.candidate??``,sdpMid:r.sdpMid??null,sdpMLineIndex:r.sdpMLineIndex??null}).catch(()=>{})},[e,t]),getIceCandidates:(0,K.useCallback)(async n=>t===null?{candidates:[],done:!0}:e.webrtcSession.getIceCandidates.query({deviceId:t,sessionId:n}),[e,t]),sendAnswer:p,closeSession:(0,K.useCallback)(async n=>{t!==null&&await e.webrtcSession.closeSession.mutate({deviceId:t,sessionId:n}).catch(()=>{})},[e,t]),getSessionState:(0,K.useCallback)(async n=>{if(t===null)return{pendingRenegotiation:null};try{return await e.webrtcSession.getSessionState.query({deviceId:t,sessionId:n})}catch{return{pendingRenegotiation:null}}},[e,t])}}(0,K.lazy)(()=>pl(()=>import(`./MaskShapeCanvas-DI4BY7W2-Bxm34WFr.js`).then(e=>({default:e.MaskShapeCanvas})),[],import.meta.url)),(0,K.lazy)(()=>pl(()=>import(`./MotionZonesSettings-NcxxQN8r-S8uFj2nP.js`).then(e=>({default:e.MotionZonesSettings})),__vite__mapDeps([0,1]),import.meta.url)),(0,K.lazy)(()=>pl(()=>import(`./PrivacyMaskSettings-APgPLF7p-nhHVCSoL.js`).then(e=>({default:e.PrivacyMaskSettings})),__vite__mapDeps([2,1]),import.meta.url));var AY=B([`reel`,`gallery`]),jY=B([`small`,`medium`,`large`]),MY=B([`auto`,`dark`,`light`]),NY=R({label:P(),sublabel:P(),camera:P(),time:P(),badges:P()}),PY={label:!0,sublabel:!0,camera:!0,time:!0,badges:!0},FY=B([`time`,`importance`]),IY=B([`text`,`semantic`]),LY=wc([V(`auto`),N().int().min(1).max(12)]),RY=R({serverUrl:M().min(1),token:M().min(1),view:AY.default(`reel`),rows:N().int().min(1).max(6).default(1),columns:LY.default(`auto`),thumbSize:jY.default(`medium`),fields:NY.default(PY),deviceIds:L(N().int().nonnegative()).default([]),classes:L(M()).default([]),deviceNames:z(M(),M()).default({}),strings:R({empty:M().optional(),error:M().optional(),retry:M().optional(),end:M().optional()}).default({}),search:M().default(``),searchMode:IY.default(`text`),semanticLimit:N().int().min(1).max(200).default(50),semanticMinScore:N().min(0).max(1).default(.2),sort:FY.default(`time`),sinceMs:N().int().nonnegative().optional(),untilMs:N().int().nonnegative().optional(),pageSize:N().int().min(1).max(500).default(60),maxRows:N().int().min(1).max(5e3).default(600),refreshMs:N().int().min(0).max(6e5).default(15e3),maxAgeMs:N().int().min(6e4).default(720*60*60*1e3),theme:MY.default(`auto`)}),zY=R({view:AY.optional(),rows:N().int().min(1).max(6).optional(),columns:LY.optional(),thumbSize:jY.optional(),fields:NY.partial().optional(),deviceIds:L(N().int().nonnegative()).optional(),classes:L(M()).optional(),deviceNames:z(M(),M()).optional(),strings:R({empty:M().optional(),error:M().optional(),retry:M().optional(),end:M().optional()}).optional(),search:M().optional(),searchMode:IY.optional(),semanticLimit:N().int().min(1).max(200).optional(),semanticMinScore:N().min(0).max(1).optional(),sort:FY.optional(),sinceMs:N().int().nonnegative().nullable().optional(),untilMs:N().int().nonnegative().nullable().optional(),pageSize:N().int().min(1).max(500).optional(),maxRows:N().int().min(1).max(5e3).optional(),refreshMs:N().int().min(0).max(6e5).optional(),maxAgeMs:N().int().min(6e4).optional(),theme:MY.optional()});function BY(e){return e===`small`?80:e===`large`?132:106}function VY(e,t=1){let n=Number.isFinite(t)&&t>0?t:1,r=Math.round(BY(e)*n);return Math.max(64,Math.min(320,r))}function HY(e){return BY(e)+6+14}function UY(e){if(e==null)return{ok:!1,error:`config is required`};let t=RY.safeParse(e);return t.success?{ok:!0,config:t.data}:{ok:!1,error:t.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `)}}function WY(e,t){let n=t.fields===void 0?e.fields:{...e.fields,...t.fields},{sinceMs:r,untilMs:a,...o}=t,{sinceMs:s,untilMs:c,...l}=e,u=GY(r,s),d=GY(a,c);return{...l,...o,fields:n,...u===void 0?{}:{sinceMs:u},...d===void 0?{}:{untilMs:d}}}function GY(e,t){if(e!==null)return e??t}function KY(e,t,n){let r=n[String(e)];return r!==void 0&&r.trim().length>0?r:t}var qY={empty:`No events`,error:`Couldn't load events`,retry:`Retry`,end:`·`};function JY(e,t){let n=e.strings[t];return n!==void 0&&n.trim().length>0?n:qY[t]}var YY=`/addon/pipeline-analytics/event-media`,XY=64,ZY=320;function QY(e){return e.replace(/\/+$/,``)}function $Y(e){let t=Math.round(e);return Number.isFinite(t)?Math.max(XY,Math.min(ZY,t)):XY}function eX(e,t,n){return`${QY(e)}${YY}/${t}?kind=thumbnailSmall&variant=thumb&size=${$Y(n)}`}var tX=`audio`;function nX(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function rX(e){let t=new Map;if(!Array.isArray(e))return t;for(let n of e){if(!nX(n))continue;let e=n.kinds;if(Array.isArray(e))for(let n of e){if(!nX(n))continue;let e=n.kind;if(typeof e!=`string`||e.length===0)continue;let r=n.parentKind;t.set(e,typeof r==`string`&&r.length>0?r:e)}}return t}function iX(e,t){return t.get(e)??e}function aX(e){return`audio-${e.toLowerCase()}`}function oX(e){let t=new Map;if(!Array.isArray(e))return t;for(let n of e){if(!nX(n))continue;let e=n.kinds;if(Array.isArray(e))for(let n of e){if(!nX(n))continue;let e=n.kind,r=n.iconId;typeof e!=`string`||e.length===0||typeof r!=`string`||r.length===0||t.set(e,r)}}return t}function sX(e,t){let n=e.toLowerCase();return t.get(e)??t.get(n)??n}var cX={background:`#09090b`,card:`#18181b`,cardHover:`#27272a`,border:`#27272a`,text:`#fafafa`,textMuted:`#a1a1aa`,skeleton:`#27272a`,chip:`#3f3f46`,colorScheme:`dark`},lX={background:`#ffffff`,card:`#f4f4f5`,cardHover:`#e4e4e7`,border:`#e4e4e7`,text:`#18181b`,textMuted:`#71717a`,skeleton:`#e4e4e7`,chip:`#d4d4d8`,colorScheme:`light`};function uX(e,t){return e===`light`?lX:e===`dark`||t?cX:lX}function dX(e){let t=e.toLowerCase();return t.includes(`person`)||t.includes(`face`)?`#38bdf8`:t.includes(`vehicle`)||t.includes(`car`)||t.includes(`truck`)||t.includes(`plate`)?`#a78bfa`:t.includes(`animal`)||t.includes(`dog`)||t.includes(`cat`)||t.includes(`bird`)?`#fbbf24`:t.includes(`package`)||t.includes(`parcel`)?`#34d399`:t.includes(`audio`)||t.includes(`sound`)?`#f472b6`:t.includes(`motion`)?`#94a3b8`:`#71717a`}function fX(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}function pX(e,t){let n=new Date(e),r=new Date(t),a=String(n.getHours()).padStart(2,`0`),o=String(n.getMinutes()).padStart(2,`0`);return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()?`${a}:${o}`:`${String(n.getDate()).padStart(2,`0`)}/${String(n.getMonth()+1).padStart(2,`0`)} ${a}:${o}`}var mX=/[_\-/.]+/g;function hX(e){return e.toLowerCase().replace(mX,` `).replace(/\s+/g,` `).trim()}function gX(e){if(e===void 0)return[];let t=e.trim().toLowerCase();if(t.length===0)return[];let n=hX(e);return n===t||n.length===0?[t]:[t,n]}var _X=new Map;function vX(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function yX(e){return typeof e==`string`&&e.length>0?e:void 0}function bX(e){if(!Array.isArray(e))return[];let t=[];for(let n of e)typeof n==`string`&&n.length>0&&!t.includes(n)&&t.push(n);return t}function xX(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){let e=vX(n)?yX(n.label):void 0;e!==void 0&&!t.includes(e)&&t.push(e)}return t}function SX(e,t){if(!vX(e))return null;let n=yX(e.trackId),r=yX(e.className);if(n===void 0||r===void 0||typeof e.deviceId!=`number`||typeof e.firstSeen!=`number`||typeof e.lastSeen!=`number`)return null;let a=yX(e.label),o=yX(e.subLabel),s=yX(e.producingDeviceName),c=bX(e.classes);return{trackId:n,deviceId:e.deviceId,cameraName:t.get(e.deviceId)??`Camera ${e.deviceId}`,className:r,title:s??o??a??r,...a===void 0?{}:{label:a},...o===void 0?{}:{subLabel:o},...typeof e.importance==`number`?{importance:e.importance}:{},firstSeen:e.firstSeen,lastSeen:e.lastSeen,state:typeof e.state==`string`?e.state:`idle`,active:e.active===!0,zonesVisited:bX(e.zonesVisited),zoneNames:bX(e.zoneNames),classes:c.includes(r)?c:[r,...c],audioLabels:xX(e.audioLabels),bestEventId:yX(e.bestEventId)??n,...s===void 0?{}:{producingDeviceName:s}}}function CX(e,t){if(!Array.isArray(e))return[];let n=[];for(let r of e){let e=SX(r,t);e!==null&&n.push(e)}return n}function wX(e,t){let n=new Set;for(let r of[e.className,...e.classes])r.length!==0&&(n.add(r),n.add(iX(r,t)));if(e.audioLabels.length>0){n.add(tX);for(let t of e.audioLabels)n.add(aX(t))}return n}function TX(e,t,n=_X){if(t.size===0)return!0;let r=wX(e,n);for(let e of t)if(r.has(e))return!0;return!1}function EX(e,t=_X){let n=new Set,r=e=>{for(let t of gX(e))n.add(t)};for(let n of[e.className,...e.classes])r(n),n.length>0&&r(iX(n,t));r(e.label),r(e.subLabel),r(e.cameraName),r(e.producingDeviceName);for(let t of e.audioLabels)r(t),r(aX(t));for(let t of e.zoneNames)r(t);for(let n of[e.label,e.subLabel]){if(n===void 0)continue;let e=t.get(n.trim().toLowerCase());e!==void 0&&r(e)}return n}function DX(e,t,n=_X){let r=t.trim().toLowerCase();if(r.length===0)return!0;let a=hX(t);for(let t of EX(e,n))if(t.includes(r)||a.length>0&&t.includes(a))return!0;return!1}function OX(e,t,n,r=_X){let a=new Set(t);return e.filter(e=>TX(e,a,r)&&DX(e,n,r))}function kX(e,t){if(t)return``;let n=[e.title];for(let t of e.audioLabels)t!==e.className&&t!==e.label&&!n.includes(t)&&n.push(t);return n.join(` · `)}function AX(e,t){let n=!1,r=e.map(e=>{let r=t.get(e.deviceId);return r===void 0||r===e.cameraName?e:(n=!0,{...e,cameraName:r})});return n?r:e}function jX(e){let t=e.filter(e=>e.isCamera===!0).map(e=>e.id);return t.length>0?t:e.map(e=>e.id)}var MX=1e4;function NX(){try{return window.parent!==window}catch{return!0}}var PX=null;function FX(e){PX=e}function IX(e){if(PX===null||typeof e!=`object`||!e)return e;let t=e;if(t.type!==`log`)return e;let n=typeof t.data==`object`&&t.data!==null?t.data:{};return{...t,data:{deviceId:PX,...n}}}function LX(e){let t=IX(e),n=window.ReactNativeWebView;if(n){n.postMessage(JSON.stringify(t));return}NX()&&window.parent.postMessage(t,`*`)}function RX(e){let t=t=>{let n=t.data;if(typeof n!=`object`||!n)return;let r=n;r.type!==`embed-command`||typeof r.command!=`object`||r.command===null||e(r.command)};return window.addEventListener(`message`,t),()=>window.removeEventListener(`message`,t)}function zX(e,t,n,r,a){let o=t();if(o!=null)return Promise.resolve(n(o));if(a?.urlFirst===!0){let e=r===void 0?null:r();if(e!==null)return Promise.resolve(e)}if(!NX()){let t=r===void 0?null:r();return t===null?Promise.resolve({ok:!1,error:`config global for mode "${e}" is not set`}):Promise.resolve(t)}return new Promise(t=>{let r,a=e=>{let o=e.data;if(typeof o!=`object`||!o)return;let s=o;s.type===`embed-config`&&(clearTimeout(r),window.removeEventListener(`message`,a),t(n(s.config)))};window.addEventListener(`message`,a),r=setTimeout(()=>{window.removeEventListener(`message`,a),t({ok:!1,error:`config handshake timed out`})},MX),window.parent.postMessage({type:`embed-ready`,mode:e},`*`)})}function BX(e,t,n,r,a){let[o,s]=(0,K.useState)(null),c=(0,K.useRef)(t);c.current=t;let l=(0,K.useRef)(n);l.current=n;let u=(0,K.useRef)(r);u.current=r;let d=a?.urlFirst===!0;return(0,K.useEffect)(()=>{let t=!0;return zX(e,()=>c.current(),e=>l.current(e),()=>u.current===void 0?null:u.current(),{urlFirst:d}).then(e=>{t&&s(e)}),()=>{t=!1}},[e,d]),o}var VX=[`window`,`sort`,`semantic-search`,`macro-classes`,`device-names`,`heartbeat`];function HX(e){return{v:1,type:`ready`,view:e,features:[...VX]}}function UX(e){return{v:1,type:`error`,message:e}}function WX(e,t){return t===void 0?{v:1,type:`state`,state:e}:{v:1,type:`state`,state:e,message:t}}function GX(e){return{v:1,type:`trackClick`,...e}}function KX(e,t,n,r=`feed`){return{v:1,type:`countChanged`,loaded:e,shown:t,hasMore:n,mode:r}}function qX(){return{v:1,type:`heartbeat`}}function JX(e){LX(e)}function YX(e,t,n=`feed`){LX({type:`log`,scope:n,msg:e,...t===void 0?{}:{data:t}})}function XX(e){if(typeof e!=`object`||!e)return null;let t=e,n=t.type;if(n===`refresh`||n===`reload`||n===`loadMore`||n===`scrollToTop`||n===`ping`)return{type:n};if(n===`setWindow`){let e=ZX.safeParse(t);return e.success?{type:`setWindow`,...e.data.sinceMs===void 0?{}:{sinceMs:e.data.sinceMs},...e.data.untilMs===void 0?{}:{untilMs:e.data.untilMs}}:null}if(n!==`setConfig`)return null;let r=zY.safeParse(t.patch);return r.success?{type:`setConfig`,patch:r.data}:null}var ZX=R({sinceMs:N().int().nonnegative().nullable().optional(),untilMs:N().int().nonnegative().nullable().optional()});function QX(e){return{...e.sinceMs===void 0?{}:{sinceMs:e.sinceMs},...e.untilMs===void 0?{}:{untilMs:e.untilMs}}}var $X=250,eZ=new Map,tZ=new Map,nZ=5e3,rZ=5e3,iZ=[250,750],aZ=40;function oZ(e,t){for(eZ.set(e,t);eZ.size>$X;){let e=eZ.keys().next();if(e.done===!0)break;let t=eZ.get(e.value);eZ.delete(e.value),t!==void 0&&URL.revokeObjectURL(t)}}async function sZ(e,t){let n=eZ.get(e);if(n!==void 0)return eZ.delete(e),eZ.set(e,n),{status:`ready`,src:n};let r=tZ.get(e);if(r!==void 0)return r;let a=(async()=>{let n=performance.now();try{for(let r=0;r<=iZ.length;r+=1){let a=new AbortController,o=setTimeout(()=>a.abort(),nZ);try{let o=await fetch(e,{headers:{Authorization:`Bearer ${t}`},signal:a.signal});if(o.ok){let t=Math.round(performance.now()-n),a=await o.blob(),s=Math.round(performance.now()-n),c=URL.createObjectURL(a);return oZ(e,c),(aZ>0||s>=500)&&(aZ=Math.max(0,aZ-1),YX(`thumbnail ready`,{ms:s,headersMs:t,blobMs:s-t,bytes:a.size,attempt:r+1,serverTiming:o.headers?.get(`server-timing`)??null},`media`)),{status:`ready`,src:c}}if(o.status===401||o.status===403||o.status===404)return YX(`thumbnail missing`,{ms:Math.round(performance.now()-n),status:o.status,attempt:r+1},`media`),{status:`missing`}}catch{}finally{clearTimeout(o)}let s=iZ[r];s!==void 0&&await new Promise(e=>setTimeout(e,s))}return YX(`thumbnail transient failure`,{ms:Math.round(performance.now()-n),attempts:iZ.length+1},`media`),{status:`transient-failure`}}finally{tZ.delete(e)}})();return tZ.set(e,a),a}async function cZ(e,t){let n=await sZ(e,t);return n.status===`ready`?n.src:null}function lZ(e,t){let[n,r]=(0,K.useState)({status:`loading`}),[a,o]=(0,K.useState)(0);return(0,K.useEffect)(()=>{if(e===null){r({status:`loading`});return}let n=eZ.get(e);if(n!==void 0){r({status:`ready`,src:n});return}let a=!0,s;return r({status:`loading`}),sZ(e,t).then(e=>{if(a){if(e.status===`ready`){r({status:`ready`,src:e.src});return}if(e.status===`missing`){r({status:`failed`});return}s=setTimeout(()=>o(e=>e+1),rZ)}}),()=>{a=!1,s!==void 0&&clearTimeout(s)}},[e,t,a]),n}function uZ(e){let t=e?.clientHeight??0;return t>0?t:600}function dZ(e,t){let{root:n,disabled:r}=t,[a,o]=(0,K.useState)(r===!0),s=(0,K.useRef)(a);return s.current=a,(0,K.useEffect)(()=>{if(s.current)return;if(r===!0){o(!0);return}let t=e.current;if(!t||typeof IntersectionObserver!=`function`){o(!0);return}let a=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(o(!0),a.disconnect())},{root:n,rootMargin:`${uZ(n)}px`});return a.observe(t),()=>a.disconnect()},[e,n,r]),a}var fZ=`#f472b6`,pZ=(0,K.memo)(function({row:e,serverUrl:t,token:n,thumbPx:r,width:a,heroPx:o,fields:s,palette:c,nowMs:l,variant:u,iconId:d,scrollRoot:f,eagerImages:p,onClick:m}){let h=(0,K.useRef)(null),g=lZ(dZ(h,{root:f,...p===!0?{disabled:!0}:{}})?eX(t,e.bestEventId,r):null,n),_=dX(e.className),v=u===`reel`,y=o+6+14,b=e.title===e.className,x=s.label,S=kX(e,x),ee=vq(d),C=(0,q.jsxs)(`div`,{style:{position:`relative`,width:v?o:`100%`,height:v?o:void 0,aspectRatio:v?void 0:`1 / 1`,borderRadius:10,overflow:`hidden`,background:c.skeleton,border:`1px solid ${c.border}`,boxSizing:`border-box`,flex:`0 0 auto`},children:[(0,q.jsx)(`div`,{className:g.status===`loading`?`events-skeleton`:void 0,"data-testid":`card-image-backing`,style:{position:`absolute`,inset:0,background:g.status===`failed`?`${_}22`:c.skeleton,boxShadow:`inset 0 0 0 1px ${c.border}`}}),g.status===`ready`?(0,q.jsx)(`img`,{src:g.src,alt:``,draggable:!1,style:{position:`absolute`,inset:0,width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):null,s.label&&(0,q.jsxs)(`div`,{style:{position:`absolute`,left:4,right:4,bottom:4,display:`flex`,flexWrap:v?`nowrap`:`wrap`,gap:3,alignItems:`center`,pointerEvents:`none`},children:[b&&(0,q.jsx)(`span`,{"data-testid":`card-class-glyph`,title:e.className,style:{display:`inline-flex`,alignItems:`center`,justifyContent:`center`,background:`${_}E6`,color:`#fff`,borderRadius:4,padding:`2px 4px`,flex:`0 0 auto`},children:(0,q.jsx)(ee,{size:13,color:`#fff`})}),e.title!==e.className&&(0,q.jsx)(`span`,{"data-testid":`card-title`,style:{background:`#000000B3`,color:`#fff`,fontSize:11,fontWeight:700,lineHeight:1.35,padding:`2px 6px`,borderRadius:4,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:e.title}),!v&&e.audioLabels.filter(t=>t!==e.className&&t!==e.label).map(e=>{let t=vq(aX(e));return(0,q.jsx)(`span`,{title:e,style:{display:`inline-flex`,alignItems:`center`,justifyContent:`center`,background:`${fZ}E6`,color:`#fff`,borderRadius:4,padding:`2px 4px`,flex:`0 0 auto`},children:(0,q.jsx)(t,{size:13,color:`#fff`})},`audio-${e}`)})]}),s.badges&&e.active&&(0,q.jsx)(`span`,{title:`active`,style:{position:`absolute`,top:4,right:4,width:8,height:8,borderRadius:999,background:`#22c55e`,boxShadow:`0 0 0 2px rgba(0,0,0,0.35)`}}),s.badges&&!v&&e.importance!==void 0&&(0,q.jsxs)(`span`,{"data-testid":`card-importance`,style:{position:`absolute`,top:4,left:4,display:`inline-flex`,alignItems:`center`,gap:2,background:`#000000B3`,color:`#fff`,fontSize:10,fontWeight:700,fontVariantNumeric:`tabular-nums`,padding:`1px 5px`,borderRadius:8},children:[`★`,Math.round(e.importance*100)]})]});if(v)return(0,q.jsxs)(`button`,{ref:h,type:`button`,onClick:()=>m(e),"data-track-id":e.trackId,"data-device-id":e.deviceId,style:{width:a,height:y,minWidth:a,minHeight:y,display:`flex`,flexDirection:`column`,alignItems:`center`,padding:0,border:`none`,background:`transparent`,cursor:`pointer`,font:`inherit`,color:c.text,boxSizing:`border-box`,contain:`layout paint`,overflow:`hidden`},children:[C,(0,q.jsxs)(`div`,{style:{paddingTop:3,paddingBottom:3,paddingLeft:4,paddingRight:4,display:`flex`,flexDirection:`column`,alignItems:`center`,maxWidth:`100%`,boxSizing:`border-box`},children:[s.camera&&e.producingDeviceName!==void 0&&(0,q.jsx)(`span`,{style:{fontSize:11,lineHeight:`14px`,fontWeight:600,maxWidth:`100%`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.producingDeviceName}),s.time&&(0,q.jsx)(`span`,{"data-testid":`card-time`,style:{fontSize:11,lineHeight:`14px`,color:c.textMuted,fontVariantNumeric:`tabular-nums`,whiteSpace:`nowrap`},children:fX(e.lastSeen)})]})]});let w=s.camera,T=e.producingDeviceName??e.cameraName,E=w||s.time||s.sublabel&&S.length>0;return(0,q.jsxs)(`button`,{ref:h,type:`button`,onClick:()=>m(e),"data-track-id":e.trackId,"data-device-id":e.deviceId,style:{width:a,display:`flex`,flexDirection:`column`,gap:4,padding:0,border:`none`,background:`transparent`,cursor:`pointer`,textAlign:`left`,font:`inherit`,color:c.text,boxSizing:`border-box`},children:[C,E&&(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:1,minWidth:0,paddingTop:2,paddingBottom:2},children:[s.sublabel&&S.length>0&&(0,q.jsx)(`span`,{style:{fontSize:11,color:c.textMuted,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:S}),w&&(0,q.jsx)(`span`,{"data-testid":`card-camera`,title:T,style:{fontSize:12,fontWeight:600,lineHeight:`15px`,display:`-webkit-box`,WebkitLineClamp:2,WebkitBoxOrient:`vertical`,overflow:`hidden`},children:T}),s.time&&(0,q.jsx)(`span`,{"data-testid":`card-time`,style:{fontSize:11,lineHeight:`14px`,color:c.textMuted,fontVariantNumeric:`tabular-nums`,whiteSpace:`nowrap`,flex:`0 0 auto`},children:pX(e.lastSeen,l)}),s.badges&&e.zonesVisited.length>0&&(0,q.jsx)(`span`,{style:{fontSize:10,color:c.textMuted,background:c.chip,borderRadius:5,padding:`1px 5px`,alignSelf:`flex-start`,marginTop:2,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,maxWidth:`100%`},children:e.zonesVisited.join(` · `)})]})]})});function mZ(e){return{listRecentTracks:t=>e.trpcClient.pipelineAnalytics.listRecentTracks.query(t),listDevices:()=>e.trpcClient.deviceManager.listAll.query({}),searchObjectEvents:t=>e.trpcClient.pipelineAnalytics.searchObjectEvents.query(t),listEventKinds:t=>e.trpcClient.pipelineAnalytics.listEventKindsBatch.query({deviceIds:t})}}var hZ=2e3,gZ=1e3;function _Z(e,t){let n=Math.max(1,Math.floor(e)),r=Math.max(1,Math.floor(hZ/Math.max(1,Math.floor(t))));return Math.min(n,gZ,r)}function vZ(e,t){return e.lastSeen===t.lastSeen?e.trackId===t.trackId?0:e.trackId<t.trackId?1:-1:t.lastSeen-e.lastSeen}var yZ={rows:[],cursor:null,exhausted:!1};function bZ(e,t){let n=new Map;for(let t of e)n.set(t.trackId,t);for(let e of t)n.set(e.trackId,e);return[...n.values()].sort(vZ)}function xZ(e,t,n){return{rows:bZ(e.rows,t),cursor:n,exhausted:n===null}}function SZ(e,t,n){let r=new Set(e.rows.map(e=>e.trackId)),a=0;for(let e of t)r.has(e.trackId)||(a+=1);return{state:{...e,rows:bZ(e.rows,t)},gap:n!==null,deltaCursor:n,added:a}}function CZ(e){let t=e.rows[0];return t===void 0?null:t.lastSeen}function wZ(e,t){return!e.exhausted&&e.rows.length<Math.max(1,t)}function TZ(e,t){return Math.max(0,e-Math.max(0,t))}function EZ(e){let t=e.sinceMs??TZ(e.anchorMs,e.maxAgeMs);return e.untilMs===void 0?{since:t}:{since:t,until:e.untilMs}}function DZ(e,t){return e===void 0||e>t}function OZ(e,t){return t===`time`?e:[...e].sort((e,t)=>{let n=e.importance??-1,r=t.importance??-1;return n===r?vZ(e,t):r-n})}function kZ(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function AZ(e){return typeof e==`string`&&e.length>0?e:void 0}function jZ(e,t){if(!kZ(e))return null;let n=AZ(e.id),r=AZ(e.className);if(n===void 0||r===void 0||typeof e.deviceId!=`number`||typeof e.timestamp!=`number`||typeof e.score!=`number`)return null;let a=AZ(e.trackId),o=AZ(e.mediaKey),s=AZ(e.label),c=AZ(e.subLabel);return{trackId:a??n,deviceId:e.deviceId,cameraName:t.get(e.deviceId)??`Camera ${e.deviceId}`,className:r,title:c??s??r,...s===void 0?{}:{label:s},...c===void 0?{}:{subLabel:c},...typeof e.importance==`number`?{importance:e.importance}:{},firstSeen:e.timestamp,lastSeen:e.timestamp,state:`idle`,active:!1,zonesVisited:[],zoneNames:[],classes:[r],audioLabels:[],bestEventId:o??a??n,score:e.score}}function MZ(e,t){if(!Array.isArray(e))return[];let n=new Map;for(let r of e){let e=jZ(r,t);if(e===null)continue;let a=n.get(e.trackId);(a===void 0||e.score>a.score)&&n.set(e.trackId,e)}return[...n.values()].sort((e,t)=>e.score===t.score?t.lastSeen-e.lastSeen:t.score-e.score)}function NZ(e,t){if(t.length===0)return e;let n=new Set(t.map(e=>e.trackId));return[...t,...e.filter(e=>!n.has(e.trackId))]}function PZ(e,t){if(e.length===0)return e;let n=Math.max(1,Math.floor(t.rowsPerColumn)),r=Math.max(1,t.cardWidth+t.gap),a=Math.max(0,Math.floor(Math.max(0,t.scrollLeft)/r)),o=t.viewportWidth>0?t.viewportWidth:t.cardWidth,s=Math.max(a+1,Math.ceil((Math.max(0,t.scrollLeft)+o*2)/r));return e.slice(a*n,Math.min(e.length,s*n))}var FZ=[`label`,`sublabel`,`camera`,`time`,`badges`];function IZ(e,t){let n=e.get(t);if(n===null||n.trim()===``)return;let r=Number.parseInt(n,10);return Number.isFinite(r)?r:void 0}function LZ(e){if(e===null)return;if(e.trim()===``)return[];let t=[];for(let n of e.split(`,`)){let e=Number.parseInt(n.trim(),10);Number.isFinite(e)&&e>=0&&t.push(e)}return t}function RZ(e){if(e!==null)return e.trim()===``?[]:e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}function zZ(e){if(e===null)return;let t=new Set((RZ(e)??[]).map(e=>e.toLowerCase())),n={};for(let e of FZ)n[e]=t.has(e.toLowerCase());return n}function BZ(e,t){let n=e.startsWith(`?`)?e.slice(1):e;for(let e of n.split(`&`)){if(e.length===0)continue;let n=e.indexOf(`=`);if((n===-1?e:e.slice(0,n))===t)return n===-1?``:e.slice(n+1)}return null}function VZ(e){if(e===null)return;let t={};if(e.trim()===``)return t;for(let n of e.split(`,`)){let e=n.indexOf(`:`);if(e<=0)continue;let r=n.slice(0,e).trim();if(!/^\d+$/.test(r))continue;let a;try{a=decodeURIComponent(n.slice(e+1))}catch{continue}a.trim().length!==0&&(t[r]=a)}return t}function HZ(e,t){let n=e.get(t);if(n===null)return;if(n.trim()===``)return null;let r=Number.parseInt(n,10);return Number.isFinite(r)&&r>=0?r:void 0}function UZ(e){if(e===null||e.trim()===``)return;if(e===`auto`)return`auto`;let t=Number.parseInt(e,10);return Number.isFinite(t)?t:void 0}function WZ(e){let t=e.startsWith(`#`)?e.slice(1):e;if(t.length===0)return null;let n=new URLSearchParams(t).get(`t`);return n!==null&&n.length>0?n:null}function GZ(e){let t=new URLSearchParams(e.startsWith(`?`)?e.slice(1):e),n=t.get(`v`);if(n===null)return null;if(Number.parseInt(n,10)!==1)return{ok:!1,error:`unsupported events URL version "${n}"`};let r={},a=t.get(`view`);a!==null&&(r.view=a);let o=IZ(t,`rows`);o!==void 0&&(r.rows=o);let s=UZ(t.get(`cols`));s!==void 0&&(r.columns=s);let c=t.get(`thumb`);c!==null&&(r.thumbSize=c);let l=zZ(t.get(`fields`));l!==void 0&&(r.fields=l);let u=LZ(t.get(`devices`));u!==void 0&&(r.deviceIds=u);let d=RZ(t.get(`classes`));d!==void 0&&(r.classes=d);let f=t.get(`q`);f!==null&&(r.search=f);let p=IZ(t,`page`);p!==void 0&&(r.pageSize=p);let m=IZ(t,`max`);m!==void 0&&(r.maxRows=m);let h=IZ(t,`refresh`);h!==void 0&&(r.refreshMs=h);let g=IZ(t,`age`);g!==void 0&&(r.maxAgeMs=g);let _=t.get(`theme`);_!==null&&(r.theme=_);let v=t.get(`sort`);v!==null&&(r.sort=v);let y=t.get(`smode`);y!==null&&(r.searchMode=y);let b=IZ(t,`slimit`);b!==void 0&&(r.semanticLimit=b);let x=t.get(`sscore`);if(x!==null&&x.trim()!==``){let e=Number.parseFloat(x);Number.isFinite(e)&&(r.semanticMinScore=e)}let S=HZ(t,`since`);S!==void 0&&(r.sinceMs=S);let ee=HZ(t,`until`);ee!==void 0&&(r.untilMs=ee);let C=VZ(BZ(e,`names`));C!==void 0&&(r.deviceNames=C);let w=zY.safeParse(r);return w.success?{ok:!0,patch:w.data}:{ok:!1,error:w.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `)}}function KZ(e,t,n){let r=GZ(e);if(r===null)return null;if(!r.ok)return{ok:!1,error:r.error};let a=WZ(t);return a===null?null:UY({serverUrl:n,token:a,fields:PY,...r.patch})}function qZ(){let e=KZ(location.search,location.hash,location.origin);return e!==null&&location.hash!==``&&history.replaceState(null,``,location.pathname+location.search),e}function JZ(){let e=GZ(location.search);return e===null||!e.ok?null:e.patch}function YZ(e,t){return!e.ok||t===null?e:{ok:!0,config:WY(e.config,t)}}var XZ=5,ZZ=3,QZ=[300,900],$Z=0;function eQ(e){if(typeof e!=`object`||!e)return!1;let t=e;return`tracks`in t&&(t.nextCursor===null||typeof t.nextCursor==`string`)}function tQ(e){let{client:t,deviceIds:n,nameById:r,pageSize:a,maxRows:o,refreshMs:s,maxAgeMs:c}=e,{sinceMs:l,untilMs:u,devicesResolved:d}=e,[f,p]=(0,K.useState)(yZ),[m,h]=(0,K.useState)(!1),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(null),[b,x]=(0,K.useState)(0),S=(0,K.useRef)(yZ);S.current=f;let ee=(0,K.useRef)(!1),C=(0,K.useRef)(!1),w=(0,K.useRef)(0),T=(0,K.useRef)(null),E=(0,K.useRef)(Date.now()),te=(0,K.useRef)(r);te.current=r;let ne=n.join(`,`),D=(0,K.useCallback)(async e=>{let n=`feed-${String(++$Z)}`,r=performance.now();try{let a=await t.listRecentTracks(e),o=Math.round(performance.now()-r);return eQ(a)?(YX(`request complete`,{requestId:n,ms:o,rows:Array.isArray(a.tracks)?a.tracks.length:null,devices:e.deviceIds.length,limit:e.limit,paged:e.cursor!==void 0}),{ok:!0,page:a}):(YX(`request invalid`,{requestId:n,ms:o}),{ok:!1,message:`unexpected response shape`})}catch(t){let a=t instanceof Error?t.message:String(t);return YX(`listRecentTracks failed`,{error:a,devices:e.deviceIds.length,limit:e.limit,since:e.since,cursor:e.cursor??null,requestId:n,ms:Math.round(performance.now()-r)}),{ok:!1,message:a}}},[t]),re=(0,K.useCallback)(()=>{if(ee.current){C.current=!0;return}let e=S.current;if(!wZ(e,o)||n.length===0)return;ee.current=!0,_(!0);let t=_Z(a,n.length),r=EZ({anchorMs:E.current,maxAgeMs:c,...l===void 0?{}:{sinceMs:l},...u===void 0?{}:{untilMs:u}});D({deviceIds:[...n],since:r.since,limit:t,projection:`slim`,...r.until===void 0?{}:{until:r.until},...e.cursor===null?{}:{cursor:e.cursor}}).then(e=>{if(e.ok){let t=CX(e.page.tracks,te.current),n=xZ(S.current,t,e.page.nextCursor);S.current=n,p(n),w.current=0,y(null),h(!0);return}let t=w.current,n=QZ[t];if(t+1<ZZ&&n!==void 0){w.current=t+1,YX(`page failed — retrying`,{attempt:t+1,of:ZZ,backoffMs:n}),T.current=setTimeout(()=>{T.current=null,O.current()},n);return}w.current=0,y(e.message),h(!0)}).finally(()=>{ee.current=!1,_(!1),C.current&&(C.current=!1,O.current())})},[D,n,ne,a,o,c,l,u]),O=(0,K.useRef)(re);O.current=re;let ie=(0,K.useCallback)(()=>{if(ee.current||n.length===0)return;let e=CZ(S.current);if(e===null){se.current();return}ee.current=!0;let t=_Z(a,n.length);(async()=>{let r=null,a=0,o=!0;for(;o&&a<XZ;){let s=await D({deviceIds:[...n],since:e,limit:t,projection:`slim`,...u===void 0?{}:{until:u},...r===null?{}:{cursor:r}});if(!s.ok)return;let c=s.page,l=CX(c.tracks,te.current),d=SZ(S.current,l,c.nextCursor);S.current=d.state,p(d.state),y(null),o=d.gap,r=d.deltaCursor,a+=1}o&&YX(`delta drain hit its page bound — newer rows may be missing`,{since:e,pages:a,bound:XZ})})().finally(()=>{ee.current=!1,C.current&&(C.current=!1,O.current())})},[D,n,ne,a,re,u]),ae=(0,K.useCallback)(()=>{T.current!==null&&(clearTimeout(T.current),T.current=null),w.current=0},[]),oe=(0,K.useCallback)(()=>{ae(),y(null),h(!1),O.current()},[ae]),se=(0,K.useRef)(()=>{}),k=(0,K.useCallback)(()=>{ae(),E.current=Date.now(),C.current=!1,S.current=yZ,p(yZ),h(!1),_(!1),y(null),x(e=>e+1)},[]),ce=`${ne}|${c}|${l??``}|${u??``}`,le=(0,K.useRef)(ce);return(0,K.useEffect)(()=>{le.current!==ce&&(le.current=ce,!(S.current.rows.length===0&&!m)&&k())},[ce,k,m]),(0,K.useEffect)(()=>{if(n.length===0){d&&h(!0);return}re()},[b,ne,d]),(0,K.useEffect)(()=>{if(s<=0||n.length===0||!DZ(u,Date.now()))return;let e=setInterval(()=>ie(),s);return()=>clearInterval(e)},[s,ie,n.length,u]),se.current=oe,(0,K.useEffect)(()=>ae,[ae]),{rows:f.rows,retry:oe,loading:!m,loadingMore:g&&m,error:v,hasMore:wZ(f,o),loadMore:re,refresh:ie,reload:k}}function nQ(e){let{urls:t,token:n,paused:r,enabled:a}=e,o=(0,K.useRef)(0),s=(0,K.useRef)(0),c=(0,K.useRef)(!1),l=(0,K.useRef)(t),u=(0,K.useRef)(t[0]??``);l.current=t;let d=t[0]??``;u.current!==d&&(u.current=d,o.current=0),(0,K.useEffect)(()=>{if(c.current=!1,!a||r)return;let e=!1,t=()=>{if(!(e||c.current))for(;s.current<4;){let e=l.current,r=o.current;if(r>=e.length)return;o.current=r+1;let a=e[r];a===void 0||a.length===0||(s.current+=1,cZ(a,n).finally(()=>{s.current=Math.max(0,s.current-1),t()}))}};return t(),()=>{e=!0,c.current=!0}},[a,r,n,t.length])}var rQ=.5,iQ=88;function aQ(e){return e<=0?0:Math.min(e*rQ,iQ)}function oQ(e){return e>=56}function sQ(e){let{root:t,onRefresh:n,enabled:r}=e,[a,o]=(0,K.useState)(0),s=(0,K.useRef)(null),c=(0,K.useRef)(0);c.current=a;let l=(0,K.useRef)(n);l.current=n;let u=(0,K.useCallback)(()=>{s.current=null,o(0)},[]);return(0,K.useEffect)(()=>{if(!r||t===null)return;let e=e=>{if(t.scrollTop>0){s.current=null;return}let n=e.touches[0];s.current=n===void 0?null:n.clientY},n=e=>{let n=s.current;if(n===null)return;let r=e.touches[0];if(r!==void 0){if(t.scrollTop>0){s.current=null,o(0);return}o(aQ(r.clientY-n))}},a=()=>{if(s.current===null)return;let e=c.current;u(),oQ(e)&&l.current()},d={passive:!0};return t.addEventListener(`touchstart`,e,d),t.addEventListener(`touchmove`,n,d),t.addEventListener(`touchend`,a,d),t.addEventListener(`touchcancel`,u,d),()=>{t.removeEventListener(`touchstart`,e),t.removeEventListener(`touchmove`,n),t.removeEventListener(`touchend`,a),t.removeEventListener(`touchcancel`,u)}},[t,r,u]),{distance:a,armed:oQ(a)}}var cQ=8,lQ=10,uQ=400,dQ=8;function fQ({message:e,palette:t}){return(0,K.useEffect)(()=>{JX(UX(e)),JX(WX(`error`,e))},[e]),(0,q.jsxs)(`div`,{style:{position:`fixed`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,background:t.background,color:`#f87171`,fontFamily:`system-ui, sans-serif`,fontSize:13,padding:16,textAlign:`center`},children:[`Events embed config error: `,e]})}function pQ({client:e,initialConfig:t}){let[n,r]=(0,K.useState)(t),[a,o]=(0,K.useState)(()=>window.matchMedia?.(`(prefers-color-scheme: dark)`).matches??!0),[s,c]=(0,K.useState)(()=>Date.now()),[l,u]=(0,K.useState)(null);(0,K.useEffect)(()=>{let t=!1;return e.listDevices().then(e=>{t||u(e)}).catch(()=>{t||u([])}),()=>{t=!0}},[e]);let d=(0,K.useMemo)(()=>{let e=new Map;for(let t of l??[])e.set(t.id,KY(t.id,t.name??`Camera ${t.id}`,n.deviceNames));for(let[t,r]of Object.entries(n.deviceNames)){let n=Number(t);Number.isInteger(n)&&!e.has(n)&&r.trim().length>0&&e.set(n,r)}return e},[l,n.deviceNames]),[f,p]=(0,K.useState)(()=>new Map),[m,h]=(0,K.useState)(()=>new Map),g=(0,K.useMemo)(()=>n.deviceIds.length>0?n.deviceIds:l===null?[]:jX(l),[n.deviceIds,l]);(0,K.useEffect)(()=>{if(g.length===0)return;let t=!1;return e.listEventKinds([...g]).then(e=>{t||(p(rX(e)),h(oX(e)))}).catch(()=>{YX(`event-kind taxonomy unavailable — class filter is exact-id only`)}),()=>{t=!0}},[e,g]);let _=tQ({client:e,deviceIds:g,nameById:d,pageSize:n.pageSize,maxRows:n.maxRows,refreshMs:n.refreshMs,maxAgeMs:n.maxAgeMs,devicesResolved:n.deviceIds.length>0||l!==null,...n.sinceMs===void 0?{}:{sinceMs:n.sinceMs},...n.untilMs===void 0?{}:{untilMs:n.untilMs}}),v=n.searchMode===`semantic`?n.search.trim():``,[y,b]=(0,K.useState)({query:``,rows:[],loading:!1});(0,K.useEffect)(()=>{if(v.length===0||g.length===0){b({query:``,rows:[],loading:!1});return}let t=!1;return b(e=>({...e,query:v,loading:!0})),e.searchObjectEvents({text:v,limit:n.semanticLimit,minScore:n.semanticMinScore,...g.length===1&&g[0]!==void 0?{deviceId:g[0]}:{},...n.sinceMs===void 0?{}:{since:n.sinceMs},...n.untilMs===void 0?{}:{until:n.untilMs}}).then(e=>{t||b({query:v,rows:MZ(e,d),loading:!1})}).catch(e=>{t||(YX(`searchObjectEvents failed`,{error:e instanceof Error?e.message:String(e)}),b({query:v,rows:[],loading:!1}))}),()=>{t=!0}},[e,v,g,d,n.semanticLimit,n.semanticMinScore,n.sinceMs,n.untilMs]);let x=v.length>0,S=(0,K.useMemo)(()=>AX(_.rows,d),[_.rows,d]),ee=(0,K.useMemo)(()=>AX(y.rows,d),[y.rows,d]),C=(0,K.useMemo)(()=>{let e=OX(S,n.classes,n.search,f);return x?NZ(OZ(OX(ee,n.classes,``,f),n.sort),e):OZ(e,n.sort)},[x,ee,S,n.classes,n.search,n.sort,f]),w=uX(n.theme,a),T=(0,K.useRef)(null),[E,te]=(0,K.useState)(null),ne=E!==null&&E.clientHeight===0&&E.clientWidth===0,D=(0,K.useRef)(null),re=(0,K.useRef)(_.loadMore);re.current=_.loadMore;let O=(0,K.useRef)(_.refresh);O.current=_.refresh;let ie=(0,K.useRef)(_.reload);ie.current=_.reload;let ae=(0,K.useCallback)(e=>{if(e.type===`setConfig`){r(t=>WY(t,e.patch));return}if(e.type===`setWindow`){r(t=>WY(t,QX(e)));return}if(e.type===`refresh`){O.current();return}if(e.type===`reload`){ie.current();return}if(e.type===`loadMore`){re.current();return}if(e.type===`ping`){JX(qX());return}T.current?.scrollTo({top:0,left:0,behavior:`smooth`})},[]);(0,K.useEffect)(()=>(window.__camstackEvents={setConfig:e=>{let t=XX({type:`setConfig`,patch:e});t!==null&&ae(t)},setWindow:e=>{let t=XX({type:`setWindow`,...e});t!==null&&ae(t)},refresh:()=>ae({type:`refresh`}),reload:()=>ae({type:`reload`}),loadMore:()=>ae({type:`loadMore`}),scrollToTop:()=>ae({type:`scrollToTop`}),ping:()=>ae({type:`ping`})},RX(e=>{let t=XX(e);t!==null&&ae(t)})),[ae]),(0,K.useEffect)(()=>{JX(HX(n.view))},[]),(0,K.useEffect)(()=>{JX(x?KX(y.rows.length,C.length,!1,`semantic`):KX(_.rows.length,C.length,_.hasMore,`feed`))},[_.rows.length,C.length,_.hasMore,x,y.rows.length]),(0,K.useEffect)(()=>{if(_.error!==null&&!x){JX(WX(`error`,_.error));return}if(x?y.loading:_.loading){JX(WX(`loading`));return}JX(WX(C.length===0?`empty`:`ready`))},[_.loading,_.error,C.length,x,y.loading]),(0,K.useEffect)(()=>{let e=window.matchMedia?.(`(prefers-color-scheme: dark)`);if(!e)return;let t=e=>o(e.matches);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,K.useEffect)(()=>{document.documentElement.style.colorScheme=w.colorScheme,document.body.style.background=w.background},[w]),(0,K.useEffect)(()=>{let e=`camstack-events-keyframes`;if(document.getElementById(e)!==null)return;let t=document.createElement(`style`);t.id=e,t.textContent=`@keyframes camstack-spin{to{transform:rotate(360deg)}}`,document.head.appendChild(t)},[]),(0,K.useEffect)(()=>{let e=setInterval(()=>c(Date.now()),6e4);return()=>clearInterval(e)},[]),(0,K.useEffect)(()=>{let e=T.current,t=D.current;if(!e||!t||x)return;let n=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&re.current()},{root:e,rootMargin:`${uQ}px`});return n.observe(t),()=>n.disconnect()},[n.view,_.hasMore,x]);let oe=(0,K.useRef)(0);(0,K.useEffect)(()=>{if(x||_.loading||_.loadingMore||!_.hasMore)return;let e=T.current;if(!e||C.length===0)return;let t=n.view===`reel`;if((t?e.clientWidth:e.clientHeight)!==0){if(t?e.scrollWidth>e.clientWidth+1:e.scrollHeight>e.clientHeight+1){oe.current=0;return}oe.current>=dQ||(oe.current+=1,re.current())}},[C.length,_.loading,_.loadingMore,_.hasMore,x,n.view]);let se=sQ({root:E,enabled:n.view===`gallery`&&!x,onRefresh:()=>O.current()}),k=BY(n.thumbSize),ce=HY(n.thumbSize),le=VY(n.thumbSize,window.devicePixelRatio||1),ue=n.view===`reel`,[de,fe]=(0,K.useState)(!1),[pe,me]=(0,K.useState)({scrollLeft:0,viewportWidth:0});(0,K.useEffect)(()=>{let e=E;if(e===null)return;let t=null,n=()=>{me({scrollLeft:e.scrollLeft,viewportWidth:e.clientWidth})},r=()=>{n(),fe(!0),t!==null&&clearTimeout(t),t=setTimeout(()=>fe(!1),250)};return n(),e.addEventListener(`scroll`,r,{passive:!0}),window.addEventListener(`resize`,n),()=>{e.removeEventListener(`scroll`,r),window.removeEventListener(`resize`,n),t!==null&&clearTimeout(t)}},[E]);let he=(0,K.useMemo)(()=>ue?PZ(C,{scrollLeft:pe.scrollLeft,viewportWidth:pe.viewportWidth,cardWidth:k,gap:cQ,rowsPerColumn:n.rows}):C,[ue,C,pe,k,n.rows]);nQ({urls:(0,K.useMemo)(()=>he.map(e=>eX(n.serverUrl,e.bestEventId,le)),[he,n.serverUrl,le]),token:n.token,paused:de,enabled:!_.loading&&C.length>0});let ge=(0,K.useCallback)(e=>{JX(GX({trackId:e.trackId,deviceId:e.deviceId,bestEventId:e.bestEventId,className:e.className,firstSeen:e.firstSeen,lastSeen:e.lastSeen}))},[]),_e=ue?{display:`grid`,gridTemplateRows:`repeat(${n.rows}, ${ce}px)`,gridAutoFlow:`column`,gridAutoColumns:`${k}px`,gap:cQ,alignContent:`start`}:{display:`grid`,gridTemplateColumns:n.columns===`auto`?`repeat(auto-fill, minmax(${k}px, 1fr))`:`repeat(${n.columns}, minmax(0, 1fr))`,gap:cQ,alignContent:`start`},ve=x?y.loading:_.loading,ye=!x&&_.loadingMore&&C.length>0,be=!x&&!_.hasMore&&!_.loadingMore&&C.length>0,xe=!x&&_.error!==null,Se=!ve&&!xe&&C.length===0;return(0,q.jsxs)(`div`,{ref:e=>{T.current=e,te(t=>t===e?t:e)},"data-testid":`events-scroller`,style:{position:`fixed`,inset:0,background:w.background,color:w.text,fontFamily:`system-ui, -apple-system, sans-serif`,overflowX:ue?`auto`:`hidden`,overflowY:ue?`hidden`:`auto`,padding:ue?`4px ${lQ}px`:lQ,boxSizing:`border-box`,WebkitOverflowScrolling:`touch`},children:[se.distance>0&&(0,q.jsx)(`div`,{"data-testid":`pull-indicator`,"data-armed":se.armed?`true`:`false`,"aria-hidden":!0,style:{position:`absolute`,top:Math.max(0,se.distance-28),left:0,right:0,display:`flex`,justifyContent:`center`,pointerEvents:`none`,zIndex:2,opacity:Math.min(1,se.distance/56)},children:(0,q.jsx)(`span`,{style:{width:22,height:22,borderRadius:999,border:`2px solid ${w.chip}`,borderTopColor:w.textMuted,background:w.card,boxShadow:`0 1px 4px rgba(0,0,0,0.25)`,transform:`rotate(${se.distance*4}deg)`,animation:_.loadingMore?`camstack-spin 700ms linear infinite`:void 0}})}),xe&&(0,q.jsxs)(`div`,{"data-testid":`state-error`,style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,flexDirection:`column`,color:`#f87171`,fontSize:13,padding:16,textAlign:`center`},children:[(0,q.jsx)(`span`,{children:JY(n,`error`)}),(0,q.jsx)(`button`,{type:`button`,"data-testid":`state-retry`,onClick:()=>_.retry(),style:{marginTop:10,font:`inherit`,fontSize:12,color:w.text,background:w.card,border:`1px solid ${w.border}`,borderRadius:8,padding:`5px 14px`,cursor:`pointer`},children:JY(n,`retry`)})]}),Se&&(0,q.jsx)(`div`,{"data-testid":`state-empty`,style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,color:w.textMuted,fontSize:13},children:JY(n,`empty`)}),ve&&C.length===0&&(0,q.jsx)(`div`,{"data-testid":`state-loading`,style:_e,children:Array.from({length:ue?8:12},(e,t)=>(0,q.jsx)(`div`,{style:{width:ue?k:`100%`,height:ue?ce:void 0,aspectRatio:ue?void 0:`1 / 1`,borderRadius:10,background:w.skeleton,border:`1px solid ${w.border}`,boxSizing:`border-box`,opacity:.6}},`skeleton-${t}`))}),(0,q.jsxs)(`div`,{style:_e,children:[C.map(e=>(0,q.jsx)(pZ,{row:e,serverUrl:n.serverUrl,token:n.token,thumbPx:le,width:ue?`${k}px`:`100%`,heroPx:k,variant:ue?`reel`:`gallery`,iconId:sX(e.className,m),scrollRoot:E,...ne?{eagerImages:!0}:{},fields:n.fields,palette:w,nowMs:s,onClick:ge},e.trackId)),ye&&(0,q.jsx)(`div`,{"data-testid":`tail-loading`,"aria-label":`Loading more events`,style:{width:ue?k:`100%`,height:ue?ce:void 0,aspectRatio:ue?void 0:`1 / 1`,borderRadius:10,background:w.skeleton,border:`1px solid ${w.border}`,boxSizing:`border-box`,opacity:.6,display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,q.jsx)(`span`,{style:{width:14,height:14,borderRadius:999,border:`2px solid ${w.chip}`,borderTopColor:w.textMuted,animation:`camstack-spin 700ms linear infinite`}})}),be&&(0,q.jsx)(`div`,{"data-testid":`tail-end`,style:{display:`flex`,alignItems:`center`,justifyContent:`center`,color:w.textMuted,fontSize:11,opacity:.75,padding:ue?`0 12px`:`10px 0`,width:ue?`max-content`:`100%`,height:ue?k:void 0,gridColumn:ue?`auto`:`1 / -1`,whiteSpace:`nowrap`},children:JY(n,`end`)}),(0,q.jsx)(`div`,{ref:D,style:{width:1,height:1,gridRow:ue?1:`auto`},"aria-hidden":!0})]})]})}function mQ(){let e=BX(`events`,()=>window.__CAMSTACK_EVENTS__,UY,qZ,{urlFirst:!0}),t=(0,K.useMemo)(()=>JZ(),[]),n=(0,K.useMemo)(()=>e===null?null:YZ(e,t),[e,t]),r=(0,K.useMemo)(()=>{if(n===null||!n.ok)return null;let e=DA({serverUrl:n.config.serverUrl,token:n.config.token});return{system:e,client:mZ(e)}},[n]);(0,K.useEffect)(()=>{if(r)return()=>r.system.close()},[r]);let a=uX(n!==null&&n.ok?n.config.theme:`auto`,window.matchMedia?.(`(prefers-color-scheme: dark)`).matches??!0);return n===null?null:n.ok?r?(0,q.jsx)(pQ,{client:r.client,initialConfig:n.config}):(0,q.jsx)(fQ,{message:`Failed to initialise the events embed`,palette:a}):(0,q.jsx)(fQ,{message:n.error,palette:a})}var hQ=B([`auto`,`high`,`medium`,`low`]),gQ=wc([V(`auto`),N().int().min(1)]),_Q=R({enabled:P(),motion:P(),motionHoldSec:N().optional(),audio:B([`off`,`sensor`,`level`]),audioDb:N(),audioHoldSec:N(),detection:P(),detectionHoldSec:N(),detectionClasses:L(M()).optional(),appearance:R({motionColor:M(),audioColor:M(),detectionColor:M(),thickness:N()}).optional()}),vQ=R({serverUrl:M().min(1),token:M().min(1),devices:L(N().int().nonnegative()).min(1),layout:gQ,quality:hQ,showName:P(),showBadges:P(),muted:P(),paused:P(),highlight:_Q.optional(),activeOnly:P().optional(),showBoxes:P().optional(),audioOnIds:L(N().int().nonnegative()).optional(),pausedIds:L(N().int().nonnegative()).optional(),snapshots:z(M(),M()).optional(),ptzIds:L(N().int().nonnegative()).optional()});function yQ(e){if(e==null)return{ok:!1,error:`config is required`};let t=vQ.safeParse(e);return t.success?{ok:!0,config:t.data}:{ok:!1,error:t.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `)}}var bQ=B([`auto`,`high`,`medium`,`low`]),xQ=wc([V(`auto`),N().int().min(1)]),SQ=R({enabled:P(),motion:P(),audio:B([`off`,`sensor`,`level`]),audioDb:N(),audioHoldSec:N(),detection:P(),detectionHoldSec:N(),detectionClasses:L(M()).optional(),appearance:R({motionColor:M(),audioColor:M(),detectionColor:M(),thickness:N()}).optional()}),CQ=R({devices:L(N().int().nonnegative()).min(1),layout:xQ,quality:bQ,showName:P(),audioOnIds:L(N().int().nonnegative()).optional(),activeOnly:P().optional(),boxes:P().optional(),highlight:SQ.optional()}),wQ=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`;function TQ(e){let t=``,n=0;for(;n<e.length;){let r=e[n];if(r===void 0)return null;let a,o;if(r<128)a=r,o=0;else if((r&224)==192)a=r&31,o=1;else if((r&240)==224)a=r&15,o=2;else if((r&248)==240)a=r&7,o=3;else return null;for(let t=1;t<=o;t++){let r=e[n+t];if(r===void 0||(r&192)!=128)return null;a=a<<6|r&63}n+=o+1,t+=String.fromCodePoint(a)}return t}function EQ(e){if(e.length%4==1)return null;let t=[];for(let n of e){let e=wQ.indexOf(n);if(e<0)return null;t.push(e)}let n=[];for(let e=0;e<t.length;e+=4){let r=t[e],a=t[e+1];if(r===void 0||a===void 0)return null;let o=t[e+2],s=t[e+3];n.push(r<<2|a>>4),o!==void 0&&n.push((a&15)<<4|o>>2),s!==void 0&&o!==void 0&&n.push((o&3)<<6|s)}let r=TQ(n);if(r===null)return null;try{return JSON.parse(r)}catch{return null}}function DQ(e,t){return e.startsWith(t)?e.slice(t.length):e}function OQ(e){let t=new URLSearchParams(DQ(e,`#`)).get(`t`);return t!==null&&t.length>0?t:null}function kQ(e,t){return new URLSearchParams(DQ(e,`?`)).has(`v`)||OQ(t)!==null}function AQ(e){if(e.length===0)return null;let t=[];for(let n of e.split(`,`)){if(!/^\d+$/.test(n))return null;t.push(Number(n))}return t}function jQ(e){return{ok:!1,error:e}}function MQ(e,t){let n=new URLSearchParams(DQ(e,`?`)),r=n.get(`mode`);if(r!==null&&r!==`grid`)return jQ(`unsupported mode "${r}"`);let a=n.get(`v`);if(a===null)return jQ(`missing share-link version (v)`);if(a!==`1`)return jQ(`unsupported share-link version "${a}"`);let o=n.get(`devices`),s=o===null?null:AQ(o);if(s===null||s.length===0)return jQ(`invalid or missing devices list`);let c=n.get(`layout`),l;if(c===null||c===`auto`)l=`auto`;else if(/^\d+$/.test(c)&&Number(c)>=1)l=Number(c);else return jQ(`invalid layout "${c}"`);let u=n.get(`q`)??`auto`,d=bQ.safeParse(u);if(!d.success)return jQ(`invalid quality "${u}"`);let f=n.get(`names`)??`0`;if(f!==`0`&&f!==`1`)return jQ(`invalid names flag "${f}"`);let p=n.get(`audio`),m;if(p!==null){let e=AQ(p);if(e===null)return jQ(`invalid audio list "${p}"`);m=e}let h=n.get(`activeOnly`);if(h!==null&&h!==`0`&&h!==`1`)return jQ(`invalid activeOnly flag "${h}"`);let g=h===`1`,_=n.get(`boxes`);if(_!==null&&_!==`0`&&_!==`1`)return jQ(`invalid boxes flag "${_}"`);let v=_===`1`,y=n.get(`hl`),b;if(y!==null){let e=EQ(y),t=SQ.safeParse(e);if(e===null||!t.success)return jQ(`invalid highlight config (hl)`);b=t.data}let x={devices:[...s],layout:l,quality:d.data,showName:f===`1`,...m!==void 0&&m.length>0?{audioOnIds:[...m]}:{},...g?{activeOnly:!0}:{},...v?{boxes:!0}:{},...b===void 0?{}:{highlight:b}},S=CQ.safeParse(x);return S.success?{ok:!0,params:S.data,token:OQ(t)}:jQ(S.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `))}function NQ(e,t,n){if(!kQ(e,t))return null;let r=MQ(e,t);if(!r.ok)return{ok:!1,error:r.error};if(r.token===null)return{ok:!1,error:`share token missing — the link must end with #t=<token>`};let a=r.params;return yQ({serverUrl:n,token:r.token,devices:[...a.devices],layout:a.layout,quality:a.quality,showName:a.showName,showBadges:!0,muted:!0,paused:!1,...a.highlight===void 0?{}:{highlight:a.highlight},...a.activeOnly===!0?{activeOnly:!0}:{},...a.boxes===!0?{showBoxes:!0}:{},...a.audioOnIds!==void 0&&a.audioOnIds.length>0?{audioOnIds:[...a.audioOnIds]}:{}})}function PQ(){let e=NQ(location.search,location.hash,location.origin);return e!==null&&location.hash!==``&&history.replaceState(null,``,location.pathname+location.search),e}var FQ=16/9;function IQ(e,t,n,r){if(e<=0||t<=0||n<=0)return{cols:0,rows:0,cellW:0,cellH:0};if(typeof r==`number`&&r>=1){let a=Math.floor(r),o=Math.ceil(e/a),s=Math.min(t/a,n/o*FQ);return{cols:a,rows:o,cellW:s,cellH:s/FQ}}let a={cols:1,rows:e,cellW:0,cellH:0},o=-1;for(let r=1;r<=e;r++){let s=Math.ceil(e/r),c=Math.min(t/r,n/s*FQ),l=c/FQ,u=c*l;u>o&&(o=u,a={cols:r,rows:s,cellW:c,cellH:l})}return a}function LQ(){let[e,t]=(0,K.useState)(null),[n,r]=(0,K.useState)(`idle`),a=(0,K.useRef)(null),o=(0,K.useRef)(null),s=(0,K.useRef)(null),c=(0,K.useRef)(0),l=(0,K.useRef)(null),u=HH(),d=UH(),f=WH(),p=(0,K.useRef)({start:u.mutateAsync,answer:d.mutateAsync,stop:f.mutateAsync});p.current={start:u.mutateAsync,answer:d.mutateAsync,stop:f.mutateAsync};let m=(0,K.useCallback)(()=>{if(a.current){try{a.current.close()}catch{}a.current=null}if(o.current){for(let e of o.current.getTracks())try{e.stop()}catch{}o.current=null}},[]),h=(0,K.useCallback)(async()=>{let e=s.current;if(s.current=null,m(),e)try{await p.current.stop({deviceId:e.deviceId,sessionId:e.sessionId})}catch{}},[m]),g=(0,K.useCallback)(async e=>{if(l.current===e){c.current+=1,l.current=null,t(null),r(`idle`),await h();return}c.current+=1;let n=c.current;l.current=e,t(e),r(`starting`);let u;try{u=await navigator.mediaDevices.getUserMedia({audio:!0,video:!1})}catch{n===c.current&&(l.current=null,t(null),r(`error`));return}if(n!==c.current){for(let e of u.getTracks())e.stop();return}if(await h(),n!==c.current){for(let e of u.getTracks())e.stop();return}let d=null;try{o.current=u;let f=await p.current.start({deviceId:e});if(n!==c.current){try{await p.current.stop({deviceId:e,sessionId:f.sessionId})}catch{}m();return}s.current={deviceId:e,sessionId:f.sessionId},d=new RTCPeerConnection,a.current=d,d.oniceconnectionstatechange=()=>{if(n!==c.current||!d)return;let e=d.iceConnectionState;e===`connected`||e===`completed`?r(`talking`):(e===`failed`||e===`closed`||e===`disconnected`)&&(l.current=null,t(null),r(`idle`),h())};for(let e of u.getAudioTracks())d.addTrack(e,u);await d.setRemoteDescription({type:`offer`,sdp:f.sdpOffer});let g=await d.createAnswer();if(await d.setLocalDescription(g),n!==c.current)return;await p.current.answer({deviceId:e,sessionId:f.sessionId,sdpAnswer:d.localDescription?.sdp??g.sdp??``})}catch{if(d)try{d.close()}catch{}m();let e=s.current;if(s.current=null,e)try{await p.current.stop({deviceId:e.deviceId,sessionId:e.sessionId})}catch{}n===c.current&&(l.current=null,t(null),r(`error`))}},[h,m]),_=(0,K.useCallback)(e=>{if(e===null){c.current+=1,l.current=null,t(null),r(`idle`),h();return}l.current!==e&&g(e)},[h,g]);return(0,K.useEffect)(()=>()=>{c.current+=1,h()},[h]),{activeMicId:e,micState:n,toggleMic:e=>{g(e)},setActiveMic:_}}var RQ=6e3,zQ=500;function BQ(e,t){let n=(0,K.useRef)(new Map),[,r]=(0,K.useState)(0),a=t?.motion??!1,o=t?.audio??`off`,s=t?.audioDb??-30,c=t?.audioHoldSec??3,l=t?.detection??!1,u=t?.detectionHoldSec??3,d=t?.detectionClasses??[],f=(e,t)=>{n.current.set(e,Date.now()+t),r(e=>e+1)};dH(qt.MotionOnMotionChanged,e=>{if(!a)return;let t=e.data;t&&t.detected&&f(t.deviceId,RQ)}),dH(qt.PipelineAudioInferenceResult,e=>{if(o===`off`)return;let t=e.data;t&&(o===`sensor`?t.frame.detections.length>0:(t.frame.level?.dbfs??-1/0)>=s)&&f(t.deviceId,c*1e3)}),dH(qt.DetectionResult,e=>{if(!l)return;let t=e.data;t&&t.frame.detections.some(e=>d.length===0||d.includes(e.macroClass))&&f(t.frame.deviceId,u*1e3)}),(0,K.useEffect)(()=>{let e=setInterval(()=>r(e=>e+1),zQ);return()=>clearInterval(e)},[]);let p=Date.now(),m=new Set;for(let t of e){let e=n.current.get(t);e!==void 0&&p<e&&m.add(t)}return m}function VQ(e){return{type:`tileOpen`,deviceId:e}}function HQ(e){return{type:`audioToggle`,deviceId:e}}function UQ(e){return{type:`pauseToggle`,deviceId:e}}function WQ(e){return{type:`ptzOpen`,deviceId:e}}function GQ(e,t){return t===void 0?{type:`state`,state:e}:{type:`state`,state:e,message:t}}function KQ(e){return{type:`layout`,tiles:e}}function qQ(e){LX(e)}var JQ=1e4,YQ=1e3,XQ=[0,5e3,15e3,3e4];function ZQ(e){return XQ[Math.max(0,Math.min(e,XQ.length-1))]??0}function QQ(e){return!e.playing||e.lastFrameAt===null?!1:e.nowMs-e.lastFrameAt>=e.stallMs}function $Q(e){let{containerRef:t,playing:n,onRecover:r,stallMs:a=JQ}=e,o=e.now??Date.now,[s,c]=(0,K.useState)({recovering:!1,attempts:0}),l=(0,K.useRef)(null),u=(0,K.useRef)(0),d=(0,K.useRef)(0),f=(0,K.useRef)(r);f.current=r;let p=(0,K.useRef)(o);p.current=o;let m=(0,K.useCallback)(()=>{let e=p.current(),t=l.current;l.current=e,u.current>0&&t!==null&&e-t<a&&(u.current=0,c({recovering:!1,attempts:0}))},[a]);return(0,K.useEffect)(()=>{if(!n){l.current=null;return}let e=t.current?.querySelector(`video`);if(!e)return;let r=!1,a=null;if(typeof e.requestVideoFrameCallback==`function`){let t=()=>{r||(m(),a=e.requestVideoFrameCallback?.(t)??null)};return a=e.requestVideoFrameCallback(t),()=>{r=!0,a!==null&&e.cancelVideoFrameCallback?.(a)}}let o=e.currentTime,s=setInterval(()=>{if(r)return;let t=e.currentTime;t!==o&&(o=t,m())},YQ);return()=>{r=!0,clearInterval(s)}},[n,t,m]),(0,K.useEffect)(()=>{if(!n)return;let e=setInterval(()=>{let e=p.current();if(e<d.current||!QQ({lastFrameAt:l.current,nowMs:e,stallMs:a,playing:n})||u.current>=4)return;let t=u.current;u.current=t+1,l.current=e,d.current=e+ZQ(t+1)+a,c({recovering:!0,attempts:t+1}),f.current()},YQ);return()=>clearInterval(e)},[n,a]),s}var e$=500;function t$(e,t,n){let{motion:r,detection:a}=SY(e.trpcClient,t),o=(0,K.useRef)(0),s=(0,K.useRef)(0),c=(0,K.useRef)(0),l=(0,K.useRef)(!1),[,u]=(0,K.useState)(0),d=n?.audio??`off`,f=n?.audioDb??-30,p=n?.audioHoldSec??3,m=n?.motionHoldSec??0,h=n?.detectionHoldSec??3,g=n?.detectionClasses??[],_=g.join(`,`);if(dH(qt.MotionOnMotionChanged,e=>{let r=e.data;!r||r.deviceId!==t||!n?.motion||(r.detected===!0?(c.current=Date.now()+Math.max(1,m)*1e3,l.current=!0,u(e=>e+1)):r.detected===!1&&l.current&&(c.current=Date.now()+m*1e3,l.current=!1,u(e=>e+1)))}),dH(qt.PipelineAudioInferenceResult,e=>{let n=e.data;!n||n.deviceId!==t||d===`off`||(d===`sensor`?n.frame.detections.length>0:(n.frame.level?.dbfs??-1/0)>=f)&&(o.current=Date.now()+p*1e3,u(e=>e+1))}),(0,K.useEffect)(()=>{a&&a.detections.some(e=>g.length===0||g.includes(e.macroClass))&&(s.current=Date.now()+h*1e3,u(e=>e+1))},[a,h,_]),(0,K.useEffect)(()=>{let e=r!==null;(e||l.current)&&(c.current=Date.now()+m*1e3,e||u(e=>e+1)),l.current=e},[r,m]),(0,K.useEffect)(()=>{let e=setInterval(()=>u(e=>e+1),e$);return()=>clearInterval(e)},[]),!n?.enabled)return null;let v=Date.now();return n.detection&&v<s.current?`detection`:d!==`off`&&v<o.current?`audio`:n.motion&&(r!==null||v<c.current)?`motion`:null}var n$={motion:`#DC2626`,audio:`#3B82F6`,detection:`#22C55E`},r$=2500,i$={person:`#f59e0b`,vehicle:`#3b82f6`,animal:`#22c55e`,face:`#a855f7`,plate:`#ec4899`},a$=`#ef4444`;function o$(e){return i$[e]??a$}function s$(e){return e<0?0:e>1?1:e}function c$(e){if(e.width<=0||e.height<=0)return[];let t=[];for(let n of e.detections){let{bbox:r}=n,a=s$(r.x/e.width),o=s$(r.y/e.height),s=s$((r.x+r.width)/e.width),c=s$((r.y+r.height)/e.height);s<=a||c<=o||t.push({label:n.macroClass,score:n.score,x1:a,y1:o,x2:s,y2:c})}return t}function l$({deviceId:e}){let[t,n]=(0,K.useState)([]),r=(0,K.useRef)(void 0);return dH(qt.DetectionResult,t=>{let a=t.data;!a||a.frame.deviceId!==e||(n(c$(a.frame)),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>n([]),r$))}),(0,K.useEffect)(()=>()=>{r.current&&clearTimeout(r.current),n([])},[e]),t.length===0?null:(0,q.jsx)(`div`,{style:{position:`absolute`,inset:0,overflow:`hidden`,pointerEvents:`none`},children:t.map((e,t)=>{let n=o$(e.label),r=Math.round(e.score*100);return(0,q.jsx)(`div`,{style:{position:`absolute`,left:`${e.x1*100}%`,top:`${e.y1*100}%`,width:`${(e.x2-e.x1)*100}%`,height:`${(e.y2-e.y1)*100}%`,border:`2px solid ${n}`,borderRadius:3},children:(0,q.jsx)(`span`,{style:{position:`absolute`,left:-2,bottom:`100%`,background:n,color:`#fff`,fontSize:10,fontWeight:700,fontFamily:`system-ui, sans-serif`,lineHeight:`14px`,padding:`0 4px`,borderRadius:3,whiteSpace:`nowrap`},children:`${e.label} ${r}%`})},`${e.label}-${t}`)})})}function u$(e,t,n,r){let a=Number.isFinite(e)&&e>0?e:0,o=Number.isFinite(t)&&t>0?t:0;if(!Number.isFinite(n)||!Number.isFinite(r)||n<=0||r<=0)return{width:a,height:o};let s=Math.min(a/n,o/r);return{width:n*s,height:r*s}}function d$(e,t,n){return!Number.isFinite(e)||!Number.isFinite(t)||!Number.isFinite(n)?0:Math.max(0,(n*t-e)/2)}function f$(e,t,n,r){if(!Number.isFinite(e))return 0;let a=d$(t,n,r);return Math.max(-a,Math.min(a,e))}var p$=4,m$=8,h$=300;function g$(e,t){return Math.hypot(e.x-t.x,e.y-t.y)}function _$({children:e,onTap:t}){let n=(0,K.useRef)(null),r=(0,K.useRef)(null),a=(0,K.useRef)(new Map),o=(0,K.useRef)(1),s=(0,K.useRef)(0),c=(0,K.useRef)(0),l=(0,K.useRef)(null),u=(0,K.useRef)(null),d=(0,K.useRef)(0),f=()=>{let e=r.current;e&&(e.style.transform=`translate(${s.current}px, ${c.current}px) scale(${o.current})`)},p=()=>{let e=n.current?.getBoundingClientRect();if(!e||e.width<=0||e.height<=0)return;let t=r.current?.querySelector(`video`)??null,a=t?null:r.current?.querySelector(`img`)??null,l=t?.videoWidth??a?.naturalWidth??0,u=t?.videoHeight??a?.naturalHeight??0,d=u$(e.width,e.height,l,u);s.current=f$(s.current,e.width,d.width,o.current),c.current=f$(c.current,e.height,d.height,o.current)},m=()=>{o.current=1,s.current=0,c.current=0,f()},h=e=>{try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}if(a.current.set(e.pointerId,{x:e.clientX,y:e.clientY}),a.current.size===2){let e=[...a.current.values()],t=e[0],n=e[1];t&&n&&(l.current={dist:g$(t,n),scale:o.current,cx:(t.x+n.x)/2,cy:(t.y+n.y)/2,tx:s.current,ty:c.current}),u.current=null}else a.current.size===1&&(u.current={x:e.clientX,y:e.clientY,tx:s.current,ty:c.current,moved:!1})},g=e=>{if(!a.current.has(e.pointerId))return;if(a.current.set(e.pointerId,{x:e.clientX,y:e.clientY}),a.current.size>=2&&l.current){let e=[...a.current.values()],t=e[0],n=e[1];if(!t||!n)return;let r=g$(t,n);l.current.dist>0&&(o.current=Math.max(1,Math.min(p$,l.current.scale*(r/l.current.dist))));let u=(t.x+n.x)/2,d=(t.y+n.y)/2;s.current=l.current.tx+(u-l.current.cx),c.current=l.current.ty+(d-l.current.cy),p(),f();return}let t=u.current;if(a.current.size===1&&t){let n=e.clientX-t.x,r=e.clientY-t.y;(Math.abs(n)>m$||Math.abs(r)>m$)&&(t.moved=!0),o.current>1&&(s.current=t.tx+n,c.current=t.ty+r,p(),f())}},_=e=>{let n=a.current.size===1,r=u.current;if(a.current.delete(e.pointerId),a.current.size<2&&(l.current=null),a.current.size===0&&(u.current=null,n&&r&&!r.moved)){let e=Date.now();e-d.current<h$?(d.current=0,m()):(d.current=e,t())}};return(0,q.jsx)(`div`,{ref:n,style:{position:`absolute`,inset:0,overflow:`hidden`,touchAction:`none`},onPointerDown:h,onPointerMove:g,onPointerUp:_,onPointerCancel:_,children:(0,q.jsx)(`div`,{ref:r,style:{width:`100%`,height:`100%`,transformOrigin:`center center`,willChange:`transform`},children:e})})}var v$=3500;function y$(e){return e===`auto`?{kind:`adaptive`}:{kind:`profile`,profile:e===`medium`?`mid`:e}}function b$({system:e,deviceId:t,name:n,online:r,quality:a,muted:o,paused:s,showName:c,audioActive:l,micActive:u,onTogglePause:d,onToggleAudio:f,onToggleMic:p,onOpen:m,ptzSupported:h,onPtz:g,highlight:_,showBoxes:v,reconnectSignal:y,onStall:b,posterUrl:x}){let{handleOffer:S,getIceServers:ee,addIceCandidate:C,getIceCandidates:w,closeSession:T,getSessionState:E}=kY(e.trpcClient,t),te=t$(e,t,_),ne=(0,K.useRef)(null),[D,re]=(0,K.useState)(0),[O,ie]=(0,K.useState)(`idle`),ae=$Q({containerRef:ne,playing:O===`playing`&&!s,onRecover:()=>{re(e=>e+1),b?.(t)}}),[oe,se]=(0,K.useState)(void 0);(0,K.useEffect)(()=>{if(x||s)return;let n=!1;return e.trpcClient.snapshot.getSnapshot.query({deviceId:t}).then(e=>{!n&&e?.base64&&se(`data:${e.contentType??`image/jpeg`};base64,${e.base64}`)}).catch(()=>{}),()=>{n=!0}},[x,s,e,t]);let k=x??oe,ce=(0,K.useMemo)(()=>y$(a),[a]),le=`grid:${t}:${a}`,ue=(0,K.useMemo)(()=>(e,t)=>S(ce,e,t),[S,ce]),de=(0,K.useMemo)(()=>(e,t,n)=>S(n,t,e),[S]),[fe,pe]=(0,K.useState)(!1),me=(0,K.useRef)(null),he=()=>{me.current&&clearTimeout(me.current),me.current=setTimeout(()=>pe(!1),v$)},ge=()=>{pe(!0),he()},_e=()=>{pe(e=>{let t=!e;return t&&he(),t})},ve=e=>{e.stopPropagation(),ge()};return(0,K.useEffect)(()=>()=>{me.current&&clearTimeout(me.current)},[]),(0,q.jsxs)(`div`,{ref:ne,"data-stall-recovering":ae.recovering?`true`:void 0,style:{position:`relative`,width:`100%`,height:`100%`,background:`#000`},children:[(0,q.jsx)(_$,{onTap:_e,children:s?(0,q.jsx)(`div`,{style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,color:`#fafaf9`},children:(0,q.jsx)(C$,{size:28})}):(0,q.jsx)(uY,{serverUrl:e.serverUrl,streamKey:le,autoPlay:!0,muted:o,showControls:!1,className:`w-full h-full`,handleOffer:ue,reoffer:de,getSessionState:E,getIceServers:ee,addIceCandidate:C,getIceCandidates:w,closeSession:T,reconnectSignal:(y??0)+D,onStateChange:ie,posterUrl:k,onClientNetworkSample:a===`auto`?n=>{e.trpcClient.networkQuality.reportClientStats.mutate({deviceId:t,...n}).catch(()=>{})}:void 0},le)}),v&&!s?(0,q.jsx)(l$,{deviceId:t}):null,te&&(()=>{let e=_?.appearance,t=te===`motion`?e?.motionColor??n$.motion:te===`audio`?e?.audioColor??n$.audio:e?.detectionColor??n$.detection;return(0,q.jsx)(`div`,{style:{position:`absolute`,inset:0,border:`${e?.thickness??3}px solid ${t}`,boxShadow:`inset 0 0 12px ${t}`,pointerEvents:`none`}})})(),(c||fe)&&(0,q.jsxs)(`div`,{style:{position:`absolute`,left:0,right:0,top:0,display:`flex`,alignItems:`center`,gap:6,padding:`4px 8px`,background:`rgba(0,0,0,0.6)`,color:`#fafaf9`,fontSize:12,fontWeight:600,fontFamily:`system-ui, sans-serif`,pointerEvents:`none`,opacity:c||fe?1:0,transition:`opacity 150ms ease`},children:[(0,q.jsx)(`span`,{style:{width:8,height:8,borderRadius:4,background:r?`#34d399`:`#71717a`}}),(0,q.jsx)(`span`,{style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:n})]}),(0,q.jsxs)(`div`,{style:{position:`absolute`,inset:0,opacity:+!!fe,transition:`opacity 150ms ease`,pointerEvents:`none`},children:[(0,q.jsx)(`div`,{style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,pointerEvents:`none`},children:(0,q.jsx)(x$,{label:s?`Play`:`Pause`,big:!0,enabled:fe,onClick:e=>{ve(e),d(t)},children:s?(0,q.jsx)(C$,{size:22}):(0,q.jsx)(w$,{size:22})})}),(0,q.jsxs)(`div`,{style:{position:`absolute`,left:8,bottom:8,display:`flex`,gap:8,pointerEvents:`none`},children:[(0,q.jsx)(x$,{label:l?`Mute`:`Listen`,active:l,enabled:fe,onClick:e=>{ve(e),f(t)},children:l?(0,q.jsx)(T$,{size:18}):(0,q.jsx)(E$,{size:18})}),(0,q.jsx)(x$,{label:u?`Stop talk`:`Talk`,active:u,enabled:fe,onClick:e=>{ve(e),p(t)},children:(0,q.jsx)(D$,{size:18,muted:!u})}),h&&g?(0,q.jsx)(x$,{label:`PTZ`,enabled:fe,onClick:e=>{ve(e),g(t)},children:(0,q.jsx)(k$,{size:18})}):null]}),(0,q.jsx)(`div`,{style:{position:`absolute`,right:8,bottom:8,pointerEvents:`none`},children:(0,q.jsx)(x$,{label:`Open`,enabled:fe,onClick:e=>{ve(e),m(t)},children:(0,q.jsx)(O$,{size:18})})})]})]})}function x$({children:e,label:t,onClick:n,big:r=!1,active:a=!1,enabled:o=!0}){let s=r?52:40;return(0,q.jsx)(`button`,{type:`button`,"aria-label":t,onClick:n,style:{width:s,height:s,borderRadius:s/2,border:`none`,display:`flex`,alignItems:`center`,justifyContent:`center`,background:a?`rgba(59,130,246,0.85)`:`rgba(0,0,0,0.55)`,color:`#fafaf9`,cursor:`pointer`,padding:0,WebkitTapHighlightColor:`transparent`,pointerEvents:o?`auto`:`none`},children:e})}var S$={fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`};function C$({size:e}){return(0,q.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,children:(0,q.jsx)(`polygon`,{points:`6 4 20 12 6 20 6 4`,fill:`currentColor`})})}function w$({size:e}){return(0,q.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,children:[(0,q.jsx)(`rect`,{x:`6`,y:`4`,width:`4`,height:`16`,fill:`currentColor`}),(0,q.jsx)(`rect`,{x:`14`,y:`4`,width:`4`,height:`16`,fill:`currentColor`})]})}function T$({size:e}){return(0,q.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,...S$,children:[(0,q.jsx)(`polygon`,{points:`11 5 6 9 2 9 2 15 6 15 11 19 11 5`}),(0,q.jsx)(`path`,{d:`M19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07`})]})}function E$({size:e}){return(0,q.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,...S$,children:[(0,q.jsx)(`polygon`,{points:`11 5 6 9 2 9 2 15 6 15 11 19 11 5`}),(0,q.jsx)(`line`,{x1:`23`,y1:`9`,x2:`17`,y2:`15`}),(0,q.jsx)(`line`,{x1:`17`,y1:`9`,x2:`23`,y2:`15`})]})}function D$({size:e,muted:t}){return(0,q.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,...S$,children:[(0,q.jsx)(`path`,{d:`M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z`}),(0,q.jsx)(`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2M12 19v4`}),t&&(0,q.jsx)(`line`,{x1:`3`,y1:`3`,x2:`21`,y2:`21`})]})}function O$({size:e}){return(0,q.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,...S$,children:(0,q.jsx)(`path`,{d:`M15 3h6v6M21 3l-9 9M21 14v5a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5`})})}function k$({size:e}){return(0,q.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,...S$,children:[(0,q.jsx)(`path`,{d:`M12 2v20M2 12h20`}),(0,q.jsx)(`path`,{d:`M12 2l-3 3M12 2l3 3M12 22l-3-3M12 22l3-3M2 12l3-3M2 12l3 3M22 12l-3-3M22 12l-3 3`})]})}function A$({message:e}){return(0,K.useEffect)(()=>qQ(GQ(`error`,e)),[e]),(0,q.jsxs)(`div`,{style:{position:`fixed`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,background:`#000`,color:`#f87171`,fontFamily:`system-ui, sans-serif`,fontSize:13,padding:16,textAlign:`center`},children:[`Grid embed config error: `,e]})}function j$({system:e,config:t}){let[n,r]=(0,K.useState)(()=>new Set(t.audioOnIds??[])),a=LQ(),o=(0,K.useRef)(a.setActiveMic);o.current=a.setActiveMic;let[s,c]=(0,K.useState)(()=>new Set(t.pausedIds??[])),[l,u]=(0,K.useState)(t.highlight),[d,f]=(0,K.useState)(t.activeOnly??!1),[p,m]=(0,K.useState)(t.showBoxes??!1),h=BQ(t.devices,l),g=(0,K.useMemo)(()=>d?t.devices.filter(e=>h.has(e)):t.devices,[d,t.devices,h]),[_,v]=(0,K.useState)(t.quality),[y,b]=(0,K.useState)(t.layout),[x,S]=(0,K.useState)(t.showName),[ee,C]=(0,K.useState)(0),[w,T]=(0,K.useState)(()=>t.snapshots??{}),E=(0,K.useMemo)(()=>new Set(t.ptzIds??[]),[t.ptzIds]),[te,ne]=(0,K.useState)({w:window.innerWidth,h:window.innerHeight}),[D,re]=(0,K.useState)({});(0,K.useEffect)(()=>{let t=!1;return e.trpcClient.deviceManager.listAll.query({}).then(e=>{if(t)return;let n={};for(let t of e)n[t.id]={name:t.name??`Camera ${t.id}`,online:t.online??!1};re(n)}).catch(()=>{}),()=>{t=!0}},[e]),(0,K.useEffect)(()=>(window.__camstackGrid={setAudioOn:e=>r(new Set(e)),setMutedAll:e=>{e&&r(new Set)},setActiveMic:e=>o.current(e),setHighlight:e=>u(e),setActiveOnly:e=>f(e),setShowBoxes:e=>m(e),setPaused:e=>c(new Set(e)),setQuality:e=>v(e),setLayout:e=>b(e),setShowName:S,setShowBadges:()=>{},setSnapshots:e=>T(e),fit:(e,t)=>ne({w:e,h:t}),reconnect:()=>C(e=>e+1)},qQ(GQ(`ready`)),()=>{window.__camstackGrid&&delete window.__camstackGrid}),[]),(0,K.useEffect)(()=>RX(e=>{let t=window.__camstackGrid;if(t)switch(e.kind){case`setAudioOn`:t.setAudioOn(e.value);break;case`setMutedAll`:t.setMutedAll(e.value);break;case`setActiveMic`:t.setActiveMic(e.value);break;case`setHighlight`:t.setHighlight(e.value);break;case`setActiveOnly`:t.setActiveOnly(e.value);break;case`setShowBoxes`:t.setShowBoxes(e.value===!0);break;case`setPaused`:t.setPaused(e.value);break;case`setQuality`:t.setQuality(e.value);break;case`setLayout`:t.setLayout(e.value);break;case`setShowName`:t.setShowName(e.value);break;case`setShowBadges`:t.setShowBadges(e.value);break;case`setSnapshots`:t.setSnapshots(e.value);break;case`fit`:t.fit(e.w,e.h);break;case`reconnect`:t.reconnect();break;default:break}}),[]);let O=(0,K.useMemo)(()=>IQ(g.length,te.w,te.h,y),[g.length,te.w,te.h,y]),ie=(0,K.useRef)(null);return(0,K.useEffect)(()=>{let e=ie.current;if(!e)return;let t=[];e.querySelectorAll(`[data-device-id]`).forEach(e=>{let n=Number(e.dataset.deviceId),r=e.getBoundingClientRect();t.push({deviceId:n,rect:{x:r.x,y:r.y,w:r.width,h:r.height}})}),t.length&&qQ(KQ(t))},[O,g]),(0,q.jsxs)(`div`,{ref:ie,style:{position:`fixed`,inset:0,background:`#000`,display:`flex`,flexWrap:`wrap`,alignItems:`center`,justifyContent:`center`},children:[d&&g.length===0&&(0,q.jsx)(`div`,{style:{color:`#a1a1aa`,fontFamily:`system-ui, sans-serif`,fontSize:14,padding:24,textAlign:`center`},children:`No active cameras`}),g.map(t=>(0,q.jsx)(`div`,{"data-device-id":t,style:{width:O.cellW,height:O.cellH},children:(0,q.jsx)(b$,{system:e,deviceId:t,name:D[t]?.name??`Camera ${t}`,online:D[t]?.online??!1,quality:_,muted:!n.has(t),paused:s.has(t),showName:x,audioActive:n.has(t),micActive:a.activeMicId===t,onTogglePause:e=>qQ(UQ(e)),onToggleAudio:e=>qQ(HQ(e)),onToggleMic:a.toggleMic,onOpen:e=>qQ(VQ(e)),ptzSupported:E.has(t),onPtz:e=>qQ(WQ(e)),highlight:l,showBoxes:p,reconnectSignal:ee,posterUrl:w[String(t)]})},t))]})}function M$(){let e=BX(`grid`,()=>window.__CAMSTACK_GRID__,yQ,PQ),t=(0,K.useMemo)(()=>e===null||!e.ok?null:{system:DA({serverUrl:e.config.serverUrl,token:e.config.token}),queryClient:new rM({defaultOptions:{queries:{retry:!1,refetchOnWindowFocus:!1}}})},[e]);return(0,K.useEffect)(()=>{if(t)return()=>t.system.close()},[t]),e===null?null:e.ok?t?(0,q.jsx)(lH,{system:t.system,children:(0,q.jsx)(oM,{client:t.queryClient,children:(0,q.jsx)($.Provider,{client:t.system.trpcClient,queryClient:t.queryClient,children:(0,q.jsx)(j$,{system:t.system,config:e.config})})})}):(0,q.jsx)(A$,{message:`Failed to initialise the grid embed`}):(0,q.jsx)(A$,{message:e.error})}var N$=wc([R({kind:V(`adaptive`)}),R({kind:V(`profile`),profile:ml})]),P$=R({deviceId:N().int().nonnegative(),target:N$.optional(),muted:P().optional(),stats:P().optional(),snapshot:M().optional()});function F$(e){let t=P$.safeParse(e);return t.success?t.data:null}function I$(e,t){let n=e.length;if(n===0)return 0;let r=0,a=n-1,o=-1;for(;r<=a;){let n=r+a>>1,s=e[n];if(!s)break;s.startMs<=t?(o=n,r=n+1):a=n-1}if(o===-1)return 0;let s=e[o];if(s&&t<s.startMs+s.durMs)return o;let c=e[o+1];return s&&c?Math.abs(s.startMs-t)<=Math.abs(c.startMs-t)?o:o+1:o}function L$(e,t){return e.length===0?null:e[I$(e,t)]??null}var R$=`/addon/recorder/playback`,z$=1129530417,B$=2;function V$(e,t){let n=0,r=1,a=t;for(;;){let t=e[a];if(t===void 0)throw Error(`CSD1: truncated varint`);if(n+=(t&127)*r,a++,!(t&128))break;if(r*=128,r>2**53-1)throw Error(`CSD1: varint out of range`)}return{value:n,next:a}}function H$(e){if(e.length<6)throw Error(`CSD1: too short`);if(((e[0]??0)<<24|(e[1]??0)<<16|(e[2]??0)<<8|(e[3]??0))>>>0!==z$)throw Error(`CSD1: bad magic`);let t=e[4];if(t!==1&&t!==B$)throw Error(`CSD1: unsupported version ${String(t)}`);let n=e[5]===1,r=6,a=V$(e,r);r=a.next;let o=new TextDecoder().decode(e.subarray(r,r+a.value));r+=a.value;let s=V$(e,r);r=s.next;let c=V$(e,r);r=c.next;let l=[],u=0;for(let n=0;n<c.value;n++){let n=V$(e,r);r=n.next;let a=V$(e,r);r=a.next;let o=V$(e,r);r=o.next;let s=u+n.value;u=s;let c;if(t===B$){let t=V$(e,r);if(r=t.next,t.value>0){let n=V$(e,r);r=n.next;let a=V$(e,r);r=a.next;let o=[],s=0,l=0;for(let n=0;n<t.value;n++){let t=V$(e,r);r=t.next;let n=V$(e,r);r=n.next,s+=t.value,l+=n.value,o.push({timeTicks:s,moofOffset:l})}c={trackId:n.value,mfraOffset:a.value,samples:o}}}l.push({startMs:s,durMs:a.value,bytes:o.value,...c?{mfra:c}:{}})}return{profile:o,hydrated:n,asOfMs:s.value,rows:l}}var U$=36e5,W$=5*6e4;function G$(e,t){let n=[...e,t].sort((e,t)=>e.fromMs-t.fromMs),r=[];for(let e of n){let t=r[r.length-1];t&&e.fromMs<=t.toMs?r[r.length-1]={fromMs:t.fromMs,toMs:Math.max(t.toMs,e.toMs)}:r.push(e)}return r}function K$(e,t,n){return e.some(e=>e.fromMs<=t&&e.toMs>=n)}var q$=class{deps;fetchImpl;rows=[];coverage=[];servedProfile=null;allCache=null;inFlight=new Map;constructor(e){this.deps=e,this.fetchImpl=e.fetchImpl??((e,t)=>fetch(e,t))}urlFor(e,t){let n=new Date(t.startMs),r=e=>String(e).padStart(2,`0`),a=`${e}/${n.getUTCFullYear()}/${r(n.getUTCMonth()+1)}/${r(n.getUTCDate())}/${r(n.getUTCHours())}`,o=`${t.startMs}-${t.durMs}-${t.bytes}.m4s`;return`${this.deps.baseUrl}/${this.deps.deviceId}/${a}/${o}`}async ensure(e,t){if(K$(this.coverage,e,t))return this.window(e,t,!0);let n=`${e}:${t}`,r=this.inFlight.get(n);if(r)return await r,this.window(e,t,K$(this.coverage,e,t));let a=this.fetchWindow(e,t);this.inFlight.set(n,a);try{await a}finally{this.inFlight.get(n)===a&&this.inFlight.delete(n)}return this.window(e,t,K$(this.coverage,e,t))}async fetchWindow(e,t){let n=this.deps.profile===void 0?``:`&profile=${encodeURIComponent(this.deps.profile)}`,r=`${this.deps.baseUrl}/${this.deps.deviceId}/directory?from=${Math.floor(e)}&to=${Math.ceil(t)}${n}`,a=await this.fetchImpl(r,{headers:{...this.deps.headers},credentials:`include`});if(!a.ok)throw Error(`directory: HTTP ${a.status}`);let o=H$(new Uint8Array(await a.arrayBuffer()));o.profile!==``&&(this.servedProfile=o.profile);let s=new Set(this.rows.map(e=>e.startMs));for(let e of o.rows)s.has(e.startMs)||this.rows.push(e);if(this.rows.sort((e,t)=>e.startMs-t.startMs),this.allCache=null,o.hydrated){let n=o.asOfMs>0?Math.min(t,o.asOfMs):t;n>e&&(this.coverage=G$(this.coverage,{fromMs:e,toMs:n}))}this.deps.onLog?.(`directory:fetched`,{fromMs:e,toMs:t,rows:o.rows.length,hydrated:o.hydrated,profile:o.profile})}window(e,t,n){let r=this.servedProfile;return r===null?{segments:[],profile:null,hydrated:n}:{segments:this.rows.filter(n=>n.startMs<t&&n.startMs+n.durMs>e).map(e=>({uri:this.urlFor(r,e),startMs:e.startMs,durMs:e.durMs,bytes:e.bytes,...e.mfra?{mfra:e.mfra}:{}})),profile:r,hydrated:n}}all(){if(this.allCache)return this.allCache;let e=this.servedProfile;return e===null?[]:(this.allCache=this.rows.map(t=>({uri:this.urlFor(e,t),startMs:t.startMs,durMs:t.durMs,bytes:t.bytes,...t.mfra?{mfra:t.mfra}:{}})),this.allCache)}async ensureAround(e){let t=Math.floor(e/U$)*U$,n=t-(e<t+W$?U$:0),r=t+U$+(e>=t+U$-W$?U$:0);return this.ensure(n,r)}isCovered(e){return K$(this.coverage,e,e)}clear(){this.rows=[],this.coverage=[],this.servedProfile=null,this.allCache=null,this.inFlight.clear()}},J$=u(s((e=>{var t=(function(){var e=new Date,n=4,r=3,a=2,o=1,s=n;return{setLogLevel:function(e){s=e==this.debug?o:e==this.info?a:e==this.warn?r:(this.error,n)},debug:function(n,r){console.debug===void 0&&(console.debug=console.log),o>=s&&console.debug(`[`+t.getDurationString(new Date-e,1e3)+`]`,`[`+n+`]`,r)},log:function(e,t){this.debug(e.msg)},info:function(n,r){a>=s&&console.info(`[`+t.getDurationString(new Date-e,1e3)+`]`,`[`+n+`]`,r)},warn:function(n,a){r>=s&&console.warn(`[`+t.getDurationString(new Date-e,1e3)+`]`,`[`+n+`]`,a)},error:function(r,a){n>=s&&console.error(`[`+t.getDurationString(new Date-e,1e3)+`]`,`[`+r+`]`,a)}}})();t.getDurationString=function(e,t){var n;function r(e,t){for(var n=(``+e).split(`.`);n[0].length<t;)n[0]=`0`+n[0];return n.join(`.`)}e<0?(n=!0,e=-e):n=!1;var a=e/(t||1),o=Math.floor(a/3600);a-=o*3600;var s=Math.floor(a/60);a-=s*60;var c=a*1e3;return a=Math.floor(a),c-=a*1e3,c=Math.floor(c),(n?`-`:``)+o+`:`+r(s,2)+`:`+r(a,2)+`.`+r(c,3)},t.printRanges=function(e){var n=e.length;if(n>0){for(var r=``,a=0;a<n;a++)a>0&&(r+=`,`),r+=`[`+t.getDurationString(e.start(a))+`,`+t.getDurationString(e.end(a))+`]`;return r}else return`(empty)`},e!==void 0&&(e.Log=t);var n=function(e){if(e instanceof ArrayBuffer)this.buffer=e,this.dataview=new DataView(e);else throw`Needs an array buffer`;this.position=0};n.prototype.getPosition=function(){return this.position},n.prototype.getEndPosition=function(){return this.buffer.byteLength},n.prototype.getLength=function(){return this.buffer.byteLength},n.prototype.seek=function(e){var t=Math.max(0,Math.min(this.buffer.byteLength,e));return this.position=isNaN(t)||!isFinite(t)?0:t,!0},n.prototype.isEos=function(){return this.getPosition()>=this.getEndPosition()},n.prototype.readAnyInt=function(e,t){var n=0;if(this.position+e<=this.buffer.byteLength){switch(e){case 1:n=t?this.dataview.getInt8(this.position):this.dataview.getUint8(this.position);break;case 2:n=t?this.dataview.getInt16(this.position):this.dataview.getUint16(this.position);break;case 3:if(t)throw`No method for reading signed 24 bits values`;n=this.dataview.getUint8(this.position)<<16,n|=this.dataview.getUint8(this.position+1)<<8,n|=this.dataview.getUint8(this.position+2);break;case 4:n=t?this.dataview.getInt32(this.position):this.dataview.getUint32(this.position);break;case 8:if(t)throw`No method for reading signed 64 bits values`;n=this.dataview.getUint32(this.position)<<32,n|=this.dataview.getUint32(this.position+4);break;default:throw`readInt method not implemented for size: `+e}return this.position+=e,n}else throw`Not enough bytes in buffer`},n.prototype.readUint8=function(){return this.readAnyInt(1,!1)},n.prototype.readUint16=function(){return this.readAnyInt(2,!1)},n.prototype.readUint24=function(){return this.readAnyInt(3,!1)},n.prototype.readUint32=function(){return this.readAnyInt(4,!1)},n.prototype.readUint64=function(){return this.readAnyInt(8,!1)},n.prototype.readString=function(e){if(this.position+e<=this.buffer.byteLength){for(var t=``,n=0;n<e;n++)t+=String.fromCharCode(this.readUint8());return t}else throw`Not enough bytes in buffer`},n.prototype.readCString=function(){for(var e=[];;){var t=this.readUint8();if(t!==0)e.push(t);else break}return String.fromCharCode.apply(null,e)},n.prototype.readInt8=function(){return this.readAnyInt(1,!0)},n.prototype.readInt16=function(){return this.readAnyInt(2,!0)},n.prototype.readInt32=function(){return this.readAnyInt(4,!0)},n.prototype.readInt64=function(){return this.readAnyInt(8,!1)},n.prototype.readUint8Array=function(e){for(var t=new Uint8Array(e),n=0;n<e;n++)t[n]=this.readUint8();return t},n.prototype.readInt16Array=function(e){for(var t=new Int16Array(e),n=0;n<e;n++)t[n]=this.readInt16();return t},n.prototype.readUint16Array=function(e){for(var t=new Int16Array(e),n=0;n<e;n++)t[n]=this.readUint16();return t},n.prototype.readUint32Array=function(e){for(var t=new Uint32Array(e),n=0;n<e;n++)t[n]=this.readUint32();return t},n.prototype.readInt32Array=function(e){for(var t=new Int32Array(e),n=0;n<e;n++)t[n]=this.readInt32();return t},e!==void 0&&(e.MP4BoxStream=n);var r=function(e,t,n){this._byteOffset=t||0,e instanceof ArrayBuffer?this.buffer=e:typeof e==`object`?(this.dataView=e,t&&(this._byteOffset+=t)):this.buffer=new ArrayBuffer(e||0),this.position=0,this.endianness=n??r.LITTLE_ENDIAN};r.prototype={},r.prototype.getPosition=function(){return this.position},r.prototype._realloc=function(e){if(this._dynamicSize){var t=this._byteOffset+this.position+e,n=this._buffer.byteLength;if(t<=n){t>this._byteLength&&(this._byteLength=t);return}for(n<1&&(n=1);t>n;)n*=2;var r=new ArrayBuffer(n),a=new Uint8Array(this._buffer);new Uint8Array(r,0,a.length).set(a),this.buffer=r,this._byteLength=t}},r.prototype._trimAlloc=function(){if(this._byteLength!=this._buffer.byteLength){var e=new ArrayBuffer(this._byteLength),t=new Uint8Array(e),n=new Uint8Array(this._buffer,0,t.length);t.set(n),this.buffer=e}},r.BIG_ENDIAN=!1,r.LITTLE_ENDIAN=!0,r.prototype._byteLength=0,Object.defineProperty(r.prototype,"byteLength",{get:function(){return this._byteLength-this._byteOffset}}),Object.defineProperty(r.prototype,"buffer",{get:function(){return this._trimAlloc(),this._buffer},set:function(e){this._buffer=e,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(r.prototype,"byteOffset",{get:function(){return this._byteOffset},set:function(e){this._byteOffset=e,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(r.prototype,"dataView",{get:function(){return this._dataView},set:function(e){this._byteOffset=e.byteOffset,this._buffer=e.buffer,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._byteOffset+e.byteLength}}),r.prototype.seek=function(e){var t=Math.max(0,Math.min(this.byteLength,e));this.position=isNaN(t)||!isFinite(t)?0:t},r.prototype.isEof=function(){return this.position>=this._byteLength},r.prototype.mapUint8Array=function(e){this._realloc(e*1);var t=new Uint8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=e*1,t},r.prototype.readInt32Array=function(e,t){e??=this.byteLength-this.position/4;var n=new Int32Array(e);return r.memcpy(n.buffer,0,this.buffer,this.byteOffset+this.position,e*n.BYTES_PER_ELEMENT),r.arrayToNative(n,t??this.endianness),this.position+=n.byteLength,n},r.prototype.readInt16Array=function(e,t){e??=this.byteLength-this.position/2;var n=new Int16Array(e);return r.memcpy(n.buffer,0,this.buffer,this.byteOffset+this.position,e*n.BYTES_PER_ELEMENT),r.arrayToNative(n,t??this.endianness),this.position+=n.byteLength,n},r.prototype.readInt8Array=function(e){e??=this.byteLength-this.position;var t=new Int8Array(e);return r.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},r.prototype.readUint32Array=function(e,t){e??=this.byteLength-this.position/4;var n=new Uint32Array(e);return r.memcpy(n.buffer,0,this.buffer,this.byteOffset+this.position,e*n.BYTES_PER_ELEMENT),r.arrayToNative(n,t??this.endianness),this.position+=n.byteLength,n},r.prototype.readUint16Array=function(e,t){e??=this.byteLength-this.position/2;var n=new Uint16Array(e);return r.memcpy(n.buffer,0,this.buffer,this.byteOffset+this.position,e*n.BYTES_PER_ELEMENT),r.arrayToNative(n,t??this.endianness),this.position+=n.byteLength,n},r.prototype.readUint8Array=function(e){e??=this.byteLength-this.position;var t=new Uint8Array(e);return r.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},r.prototype.readFloat64Array=function(e,t){e??=this.byteLength-this.position/8;var n=new Float64Array(e);return r.memcpy(n.buffer,0,this.buffer,this.byteOffset+this.position,e*n.BYTES_PER_ELEMENT),r.arrayToNative(n,t??this.endianness),this.position+=n.byteLength,n},r.prototype.readFloat32Array=function(e,t){e??=this.byteLength-this.position/4;var n=new Float32Array(e);return r.memcpy(n.buffer,0,this.buffer,this.byteOffset+this.position,e*n.BYTES_PER_ELEMENT),r.arrayToNative(n,t??this.endianness),this.position+=n.byteLength,n},r.prototype.readInt32=function(e){var t=this._dataView.getInt32(this.position,e??this.endianness);return this.position+=4,t},r.prototype.readInt16=function(e){var t=this._dataView.getInt16(this.position,e??this.endianness);return this.position+=2,t},r.prototype.readInt8=function(){var e=this._dataView.getInt8(this.position);return this.position+=1,e},r.prototype.readUint32=function(e){var t=this._dataView.getUint32(this.position,e??this.endianness);return this.position+=4,t},r.prototype.readUint16=function(e){var t=this._dataView.getUint16(this.position,e??this.endianness);return this.position+=2,t},r.prototype.readUint8=function(){var e=this._dataView.getUint8(this.position);return this.position+=1,e},r.prototype.readFloat32=function(e){var t=this._dataView.getFloat32(this.position,e??this.endianness);return this.position+=4,t},r.prototype.readFloat64=function(e){var t=this._dataView.getFloat64(this.position,e??this.endianness);return this.position+=8,t},r.endianness=new Int8Array(new Int16Array([1]).buffer)[0]>0,r.memcpy=function(e,t,n,r,a){var o=new Uint8Array(e,t,a),s=new Uint8Array(n,r,a);o.set(s)},r.arrayToNative=function(e,t){return t==this.endianness?e:this.flipArrayEndianness(e)},r.nativeToEndian=function(e,t){return this.endianness==t?e:this.flipArrayEndianness(e)},r.flipArrayEndianness=function(e){for(var t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=0;n<e.byteLength;n+=e.BYTES_PER_ELEMENT)for(var r=n+e.BYTES_PER_ELEMENT-1,a=n;r>a;r--,a++){var o=t[a];t[a]=t[r],t[r]=o}return e},r.prototype.failurePosition=0,String.fromCharCodeUint8=function(e){for(var t=[],n=0;n<e.length;n++)t[n]=e[n];return String.fromCharCode.apply(null,t)},r.prototype.readString=function(e,t){return t==null||t==`ASCII`?String.fromCharCodeUint8.apply(null,[this.mapUint8Array(e??this.byteLength-this.position)]):new TextDecoder(t).decode(this.mapUint8Array(e))},r.prototype.readCString=function(e){var t=this.byteLength-this.position,n=new Uint8Array(this._buffer,this._byteOffset+this.position),r=t;e!=null&&(r=Math.min(e,t));for(var a=0;a<r&&n[a]!==0;a++);var o=String.fromCharCodeUint8.apply(null,[this.mapUint8Array(a)]);return e==null?a!=t&&(this.position+=1):this.position+=r-a,o};var a=2**32;r.prototype.readInt64=function(){return this.readInt32()*a+this.readUint32()},r.prototype.readUint64=function(){return this.readUint32()*a+this.readUint32()},r.prototype.readInt64=function(){return this.readUint32()*a+this.readUint32()},r.prototype.readUint24=function(){return(this.readUint8()<<16)+(this.readUint8()<<8)+this.readUint8()},e!==void 0&&(e.DataStream=r),r.prototype.save=function(e){var t=new Blob([this.buffer]);if(window.URL&&URL.createObjectURL){var n=window.URL.createObjectURL(t),r=document.createElement(`a`);document.body.appendChild(r),r.setAttribute(`href`,n),r.setAttribute(`download`,e),r.setAttribute(`target`,`_self`),r.click(),window.URL.revokeObjectURL(n)}else throw`DataStream.save: Can't create object URL.`},r.prototype._dynamicSize=!0,Object.defineProperty(r.prototype,"dynamicSize",{get:function(){return this._dynamicSize},set:function(e){e||this._trimAlloc(),this._dynamicSize=e}}),r.prototype.shift=function(e){var t=new ArrayBuffer(this._byteLength-e),n=new Uint8Array(t),r=new Uint8Array(this._buffer,e,n.length);n.set(r),this.buffer=t,this.position-=e},r.prototype.writeInt32Array=function(e,t){if(this._realloc(e.length*4),e instanceof Int32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt32Array(e.length,t);else for(var n=0;n<e.length;n++)this.writeInt32(e[n],t)},r.prototype.writeInt16Array=function(e,t){if(this._realloc(e.length*2),e instanceof Int16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt16Array(e.length,t);else for(var n=0;n<e.length;n++)this.writeInt16(e[n],t)},r.prototype.writeInt8Array=function(e){if(this._realloc(e.length*1),e instanceof Int8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt8Array(e.length);else for(var t=0;t<e.length;t++)this.writeInt8(e[t])},r.prototype.writeUint32Array=function(e,t){if(this._realloc(e.length*4),e instanceof Uint32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint32Array(e.length,t);else for(var n=0;n<e.length;n++)this.writeUint32(e[n],t)},r.prototype.writeUint16Array=function(e,t){if(this._realloc(e.length*2),e instanceof Uint16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint16Array(e.length,t);else for(var n=0;n<e.length;n++)this.writeUint16(e[n],t)},r.prototype.writeUint8Array=function(e){if(this._realloc(e.length*1),e instanceof Uint8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint8Array(e.length);else for(var t=0;t<e.length;t++)this.writeUint8(e[t])},r.prototype.writeFloat64Array=function(e,t){if(this._realloc(e.length*8),e instanceof Float64Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat64Array(e.length,t);else for(var n=0;n<e.length;n++)this.writeFloat64(e[n],t)},r.prototype.writeFloat32Array=function(e,t){if(this._realloc(e.length*4),e instanceof Float32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)r.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat32Array(e.length,t);else for(var n=0;n<e.length;n++)this.writeFloat32(e[n],t)},r.prototype.writeInt32=function(e,t){this._realloc(4),this._dataView.setInt32(this.position,e,t??this.endianness),this.position+=4},r.prototype.writeInt16=function(e,t){this._realloc(2),this._dataView.setInt16(this.position,e,t??this.endianness),this.position+=2},r.prototype.writeInt8=function(e){this._realloc(1),this._dataView.setInt8(this.position,e),this.position+=1},r.prototype.writeUint32=function(e,t){this._realloc(4),this._dataView.setUint32(this.position,e,t??this.endianness),this.position+=4},r.prototype.writeUint16=function(e,t){this._realloc(2),this._dataView.setUint16(this.position,e,t??this.endianness),this.position+=2},r.prototype.writeUint8=function(e){this._realloc(1),this._dataView.setUint8(this.position,e),this.position+=1},r.prototype.writeFloat32=function(e,t){this._realloc(4),this._dataView.setFloat32(this.position,e,t??this.endianness),this.position+=4},r.prototype.writeFloat64=function(e,t){this._realloc(8),this._dataView.setFloat64(this.position,e,t??this.endianness),this.position+=8},r.prototype.writeUCS2String=function(e,t,n){n??=e.length;for(var r=0;r<e.length&&r<n;r++)this.writeUint16(e.charCodeAt(r),t);for(;r<n;r++)this.writeUint16(0)},r.prototype.writeString=function(e,t,n){var r=0;if(t==null||t==`ASCII`)if(n!=null){var a=Math.min(e.length,n);for(r=0;r<a;r++)this.writeUint8(e.charCodeAt(r));for(;r<n;r++)this.writeUint8(0)}else for(r=0;r<e.length;r++)this.writeUint8(e.charCodeAt(r));else this.writeUint8Array(new TextEncoder(t).encode(e.substring(0,n)))},r.prototype.writeCString=function(e,t){var n=0;if(t!=null){var r=Math.min(e.length,t);for(n=0;n<r;n++)this.writeUint8(e.charCodeAt(n));for(;n<t;n++)this.writeUint8(0)}else{for(n=0;n<e.length;n++)this.writeUint8(e.charCodeAt(n));this.writeUint8(0)}},r.prototype.writeStruct=function(e,t){for(var n=0;n<e.length;n+=2){var r=e[n+1];this.writeType(r,t[e[n]],t)}},r.prototype.writeType=function(e,t,n){var a;if(typeof e==`function`)return e(this,t);if(typeof e==`object`&&!(e instanceof Array))return e.set(this,t,n);var o=null,s=`ASCII`,c=this.position;switch(typeof e==`string`&&/:/.test(e)&&(a=e.split(`:`),e=a[0],o=parseInt(a[1])),typeof e==`string`&&/,/.test(e)&&(a=e.split(`,`),e=a[0],s=parseInt(a[1])),e){case`uint8`:this.writeUint8(t);break;case`int8`:this.writeInt8(t);break;case`uint16`:this.writeUint16(t,this.endianness);break;case`int16`:this.writeInt16(t,this.endianness);break;case`uint32`:this.writeUint32(t,this.endianness);break;case`int32`:this.writeInt32(t,this.endianness);break;case`float32`:this.writeFloat32(t,this.endianness);break;case`float64`:this.writeFloat64(t,this.endianness);break;case`uint16be`:this.writeUint16(t,r.BIG_ENDIAN);break;case`int16be`:this.writeInt16(t,r.BIG_ENDIAN);break;case`uint32be`:this.writeUint32(t,r.BIG_ENDIAN);break;case`int32be`:this.writeInt32(t,r.BIG_ENDIAN);break;case`float32be`:this.writeFloat32(t,r.BIG_ENDIAN);break;case`float64be`:this.writeFloat64(t,r.BIG_ENDIAN);break;case`uint16le`:this.writeUint16(t,r.LITTLE_ENDIAN);break;case`int16le`:this.writeInt16(t,r.LITTLE_ENDIAN);break;case`uint32le`:this.writeUint32(t,r.LITTLE_ENDIAN);break;case`int32le`:this.writeInt32(t,r.LITTLE_ENDIAN);break;case`float32le`:this.writeFloat32(t,r.LITTLE_ENDIAN);break;case`float64le`:this.writeFloat64(t,r.LITTLE_ENDIAN);break;case`cstring`:this.writeCString(t,o);break;case`string`:this.writeString(t,s,o);break;case`u16string`:this.writeUCS2String(t,this.endianness,o);break;case`u16stringle`:this.writeUCS2String(t,r.LITTLE_ENDIAN,o);break;case`u16stringbe`:this.writeUCS2String(t,r.BIG_ENDIAN,o);break;default:if(e.length==3){for(var l=e[1],u=0;u<t.length;u++)this.writeType(l,t[u]);break}else{this.writeStruct(e,t);break}}o!=null&&(this.position=c,this._realloc(o),this.position=c+o)},r.prototype.writeUint64=function(e){var t=Math.floor(e/a);this.writeUint32(t),this.writeUint32(e&4294967295)},r.prototype.writeUint24=function(e){this.writeUint8((e&16711680)>>16),this.writeUint8((e&65280)>>8),this.writeUint8(e&255)},r.prototype.adjustUint32=function(e,t){var n=this.position;this.seek(e),this.writeUint32(t),this.seek(n)},r.prototype.mapInt32Array=function(e,t){this._realloc(e*4);var n=new Int32Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(n,t??this.endianness),this.position+=e*4,n},r.prototype.mapInt16Array=function(e,t){this._realloc(e*2);var n=new Int16Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(n,t??this.endianness),this.position+=e*2,n},r.prototype.mapInt8Array=function(e){this._realloc(e*1);var t=new Int8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=e*1,t},r.prototype.mapUint32Array=function(e,t){this._realloc(e*4);var n=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(n,t??this.endianness),this.position+=e*4,n},r.prototype.mapUint16Array=function(e,t){this._realloc(e*2);var n=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(n,t??this.endianness),this.position+=e*2,n},r.prototype.mapFloat64Array=function(e,t){this._realloc(e*8);var n=new Float64Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(n,t??this.endianness),this.position+=e*8,n},r.prototype.mapFloat32Array=function(e,t){this._realloc(e*4);var n=new Float32Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(n,t??this.endianness),this.position+=e*4,n};var o=function(e){this.buffers=[],this.bufferIndex=-1,e&&(this.insertBuffer(e),this.bufferIndex=0)};o.prototype=new r(new ArrayBuffer,0,r.BIG_ENDIAN),o.prototype.initialized=function(){var e;return this.bufferIndex>-1?!0:this.buffers.length>0?(e=this.buffers[0],e.fileStart===0?(this.buffer=e,this.bufferIndex=0,t.debug(`MultiBufferStream`,`Stream ready for parsing`),!0):(t.warn(`MultiBufferStream`,`The first buffer should have a fileStart of 0`),this.logBufferLevel(),!1)):(t.warn(`MultiBufferStream`,`No buffer to start parsing from`),this.logBufferLevel(),!1)},ArrayBuffer.concat=function(e,n){t.debug(`ArrayBuffer`,`Trying to create a new buffer of size: `+(e.byteLength+n.byteLength));var r=new Uint8Array(e.byteLength+n.byteLength);return r.set(new Uint8Array(e),0),r.set(new Uint8Array(n),e.byteLength),r.buffer},o.prototype.reduceBuffer=function(e,t,n){var r=new Uint8Array(n);return r.set(new Uint8Array(e,t,n)),r.buffer.fileStart=e.fileStart+t,r.buffer.usedBytes=0,r.buffer},o.prototype.insertBuffer=function(e){for(var n=!0,r=0;r<this.buffers.length;r++){var a=this.buffers[r];if(e.fileStart<=a.fileStart){if(e.fileStart===a.fileStart)if(e.byteLength>a.byteLength){this.buffers.splice(r,1),r--;continue}else t.warn(`MultiBufferStream`,`Buffer (fileStart: `+e.fileStart+` - Length: `+e.byteLength+`) already appended, ignoring`);else e.fileStart+e.byteLength<=a.fileStart||(e=this.reduceBuffer(e,0,a.fileStart-e.fileStart)),t.debug(`MultiBufferStream`,`Appending new buffer (fileStart: `+e.fileStart+` - Length: `+e.byteLength+`)`),this.buffers.splice(r,0,e),r===0&&(this.buffer=e);n=!1;break}else if(e.fileStart<a.fileStart+a.byteLength){var o=a.fileStart+a.byteLength-e.fileStart,s=e.byteLength-o;if(s>0)e=this.reduceBuffer(e,o,s);else{n=!1;break}}}n&&(t.debug(`MultiBufferStream`,`Appending new buffer (fileStart: `+e.fileStart+` - Length: `+e.byteLength+`)`),this.buffers.push(e),r===0&&(this.buffer=e))},o.prototype.logBufferLevel=function(e){var n,r,a,o,s=[],c,l=``;for(a=0,o=0,n=0;n<this.buffers.length;n++)r=this.buffers[n],n===0?(c={},s.push(c),c.start=r.fileStart,c.end=r.fileStart+r.byteLength,l+=`[`+c.start+`-`):c.end===r.fileStart?c.end=r.fileStart+r.byteLength:(c={},c.start=r.fileStart,l+=s[s.length-1].end-1+`], [`+c.start+`-`,c.end=r.fileStart+r.byteLength,s.push(c)),a+=r.usedBytes,o+=r.byteLength;s.length>0&&(l+=c.end-1+`]`);var u=e?t.info:t.debug;this.buffers.length===0?u(`MultiBufferStream`,`No more buffer in memory`):u(`MultiBufferStream`,``+this.buffers.length+` stored buffer(s) (`+a+`/`+o+` bytes), continuous ranges: `+l)},o.prototype.cleanBuffers=function(){var e,n;for(e=0;e<this.buffers.length;e++)n=this.buffers[e],n.usedBytes===n.byteLength&&(t.debug(`MultiBufferStream`,`Removing buffer #`+e),this.buffers.splice(e,1),e--)},o.prototype.mergeNextBuffer=function(){var e;if(this.bufferIndex+1<this.buffers.length)if(e=this.buffers[this.bufferIndex+1],e.fileStart===this.buffer.fileStart+this.buffer.byteLength){var n=this.buffer.byteLength,r=this.buffer.usedBytes,a=this.buffer.fileStart;return this.buffers[this.bufferIndex]=ArrayBuffer.concat(this.buffer,e),this.buffer=this.buffers[this.bufferIndex],this.buffers.splice(this.bufferIndex+1,1),this.buffer.usedBytes=r,this.buffer.fileStart=a,t.debug(`ISOFile`,`Concatenating buffer for box parsing (length: `+n+`->`+this.buffer.byteLength+`)`),!0}else return!1;else return!1},o.prototype.findPosition=function(e,n,r){var a,o=null,s=-1;for(a=e===!0?0:this.bufferIndex;a<this.buffers.length&&(o=this.buffers[a],o.fileStart<=n);)s=a,r&&(o.fileStart+o.byteLength<=n?o.usedBytes=o.byteLength:o.usedBytes=n-o.fileStart,this.logBufferLevel()),a++;return s===-1?-1:(o=this.buffers[s],o.fileStart+o.byteLength>=n?(t.debug(`MultiBufferStream`,`Found position in existing buffer #`+s),s):-1)},o.prototype.findEndContiguousBuf=function(e){var t,n,r,a=e===void 0?this.bufferIndex:e;if(n=this.buffers[a],this.buffers.length>a+1)for(t=a+1;t<this.buffers.length&&(r=this.buffers[t],r.fileStart===n.fileStart+n.byteLength);t++)n=r;return n.fileStart+n.byteLength},o.prototype.getEndFilePositionAfter=function(e){var t=this.findPosition(!0,e,!1);return t===-1?e:this.findEndContiguousBuf(t)},o.prototype.addUsedBytes=function(e){this.buffer.usedBytes+=e,this.logBufferLevel()},o.prototype.setAllUsedBytes=function(){this.buffer.usedBytes=this.buffer.byteLength,this.logBufferLevel()},o.prototype.seek=function(e,n,r){var a=this.findPosition(n,e,r);return a===-1?(t.debug(`MultiBufferStream`,`Position `+e+` not found in buffered data`),!1):(this.buffer=this.buffers[a],this.bufferIndex=a,this.position=e-this.buffer.fileStart,t.debug(`MultiBufferStream`,`Repositioning parser at buffer position: `+this.position),!0)},o.prototype.getPosition=function(){if(this.bufferIndex===-1||this.buffers[this.bufferIndex]===null)throw`Error accessing position in the MultiBufferStream`;return this.buffers[this.bufferIndex].fileStart+this.position},o.prototype.getLength=function(){return this.byteLength},o.prototype.getEndPosition=function(){if(this.bufferIndex===-1||this.buffers[this.bufferIndex]===null)throw`Error accessing position in the MultiBufferStream`;return this.buffers[this.bufferIndex].fileStart+this.byteLength},e!==void 0&&(e.MultiBufferStream=o);var s=function(){var e=3,n=4,r=5,a=6,o=[];o[e]=`ES_Descriptor`,o[n]=`DecoderConfigDescriptor`,o[r]=`DecoderSpecificInfo`,o[a]=`SLConfigDescriptor`,this.getDescriptorName=function(e){return o[e]};var s=this,c={};return this.parseOneDescriptor=function(e){var n=0,r=0,a=e.readUint8(),s,l;for(n++,l=e.readUint8(),n++;l&128;)r=(r<<7)+(l&127),l=e.readUint8(),n++;return r=(r<<7)+(l&127),t.debug(`MPEG4DescriptorParser`,`Found `+(o[a]||`Descriptor `+a)+`, size `+r+` at position `+e.getPosition()),s=o[a]?new c[o[a]](r):new c.Descriptor(r),s.parse(e),s},c.Descriptor=function(e,t){this.tag=e,this.size=t,this.descs=[]},c.Descriptor.prototype.parse=function(e){this.data=e.readUint8Array(this.size)},c.Descriptor.prototype.findDescriptor=function(e){for(var t=0;t<this.descs.length;t++)if(this.descs[t].tag==e)return this.descs[t];return null},c.Descriptor.prototype.parseRemainingDescriptors=function(e){for(var t=e.position;e.position<t+this.size;){var n=s.parseOneDescriptor(e);this.descs.push(n)}},c.ES_Descriptor=function(t){c.Descriptor.call(this,e,t)},c.ES_Descriptor.prototype=new c.Descriptor,c.ES_Descriptor.prototype.parse=function(e){if(this.ES_ID=e.readUint16(),this.flags=e.readUint8(),this.size-=3,this.flags&128?(this.dependsOn_ES_ID=e.readUint16(),this.size-=2):this.dependsOn_ES_ID=0,this.flags&64){var t=e.readUint8();this.URL=e.readString(t),this.size-=t+1}else this.URL=``;this.flags&32?(this.OCR_ES_ID=e.readUint16(),this.size-=2):this.OCR_ES_ID=0,this.parseRemainingDescriptors(e)},c.ES_Descriptor.prototype.getOTI=function(e){var t=this.findDescriptor(n);return t?t.oti:0},c.ES_Descriptor.prototype.getAudioConfig=function(e){var t=this.findDescriptor(n);if(!t)return null;var a=t.findDescriptor(r);if(a&&a.data){var o=(a.data[0]&248)>>3;return o===31&&a.data.length>=2&&(o=32+((a.data[0]&7)<<3)+((a.data[1]&224)>>5)),o}else return null},c.DecoderConfigDescriptor=function(e){c.Descriptor.call(this,n,e)},c.DecoderConfigDescriptor.prototype=new c.Descriptor,c.DecoderConfigDescriptor.prototype.parse=function(e){this.oti=e.readUint8(),this.streamType=e.readUint8(),this.upStream=(this.streamType>>1&1)!=0,this.streamType>>>=2,this.bufferSize=e.readUint24(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32(),this.size-=13,this.parseRemainingDescriptors(e)},c.DecoderSpecificInfo=function(e){c.Descriptor.call(this,r,e)},c.DecoderSpecificInfo.prototype=new c.Descriptor,c.SLConfigDescriptor=function(e){c.Descriptor.call(this,a,e)},c.SLConfigDescriptor.prototype=new c.Descriptor,this};e!==void 0&&(e.MPEG4DescriptorParser=s);var c={ERR_INVALID_DATA:-1,ERR_NOT_ENOUGH_DATA:0,OK:1,BASIC_BOXES:[{type:`mdat`,name:`MediaDataBox`},{type:`idat`,name:`ItemDataBox`},{type:`free`,name:`FreeSpaceBox`},{type:`skip`,name:`FreeSpaceBox`},{type:`meco`,name:`AdditionalMetadataContainerBox`},{type:`strk`,name:`SubTrackBox`}],FULL_BOXES:[{type:`hmhd`,name:`HintMediaHeaderBox`},{type:`nmhd`,name:`NullMediaHeaderBox`},{type:`iods`,name:`ObjectDescriptorBox`},{type:`xml `,name:`XMLBox`},{type:`bxml`,name:`BinaryXMLBox`},{type:`ipro`,name:`ItemProtectionBox`},{type:`mere`,name:`MetaboxRelationBox`}],CONTAINER_BOXES:[[{type:`moov`,name:`CompressedMovieBox`},[`trak`,`pssh`]],[{type:`trak`,name:`TrackBox`}],[{type:`edts`,name:`EditBox`}],[{type:`mdia`,name:`MediaBox`}],[{type:`minf`,name:`MediaInformationBox`}],[{type:`dinf`,name:`DataInformationBox`}],[{type:`stbl`,name:`SampleTableBox`},[`sgpd`,`sbgp`]],[{type:`mvex`,name:`MovieExtendsBox`},[`trex`]],[{type:`moof`,name:`CompressedMovieFragmentBox`},[`traf`]],[{type:`traf`,name:`TrackFragmentBox`},[`trun`,`sgpd`,`sbgp`]],[{type:`vttc`,name:`VTTCueBox`}],[{type:`tref`,name:`TrackReferenceBox`}],[{type:`iref`,name:`ItemReferenceBox`}],[{type:`mfra`,name:`MovieFragmentRandomAccessBox`},[`tfra`]],[{type:`meco`,name:`AdditionalMetadataContainerBox`}],[{type:`hnti`,name:`trackhintinformation`}],[{type:`hinf`,name:`hintstatisticsbox`}],[{type:`strk`,name:`SubTrackBox`}],[{type:`strd`,name:`SubTrackDefinitionBox`}],[{type:`sinf`,name:`ProtectionSchemeInfoBox`}],[{type:`rinf`,name:`RestrictedSchemeInfoBox`}],[{type:`schi`,name:`SchemeInformationBox`}],[{type:`trgr`,name:`TrackGroupBox`}],[{type:`udta`,name:`UserDataBox`},[`kind`]],[{type:`iprp`,name:`ItemPropertiesBox`},[`ipma`]],[{type:`ipco`,name:`ItemPropertyContainerBox`}],[{type:`grpl`,name:`GroupsListBox`}],[{type:`j2kH`,name:`J2KHeaderInfoBox`}],[{type:`etyp`,name:`ExtendedTypeBox`},[`tyco`]]],boxCodes:[],fullBoxCodes:[],containerBoxCodes:[],sampleEntryCodes:{},sampleGroupEntryCodes:[],trackGroupTypes:[],UUIDBoxes:{},UUIDs:[],initialize:function(){c.FullBox.prototype=new c.Box,c.ContainerBox.prototype=new c.Box,c.SampleEntry.prototype=new c.Box,c.TrackGroupTypeBox.prototype=new c.FullBox,c.BASIC_BOXES.forEach(function(e){c.createBoxCtor(e.type,e.name)}),c.FULL_BOXES.forEach(function(e){c.createFullBoxCtor(e.type,e.name)}),c.CONTAINER_BOXES.forEach(function(e){c.createContainerBoxCtor(e[0].type,e[0].name,null,e[1])})},Box:function(e,t,n,r){this.type=e,this.box_name=n,this.size=t,this.uuid=r},FullBox:function(e,t,n,r){c.Box.call(this,e,t,n,r),this.flags=0,this.version=0},ContainerBox:function(e,t,n,r){c.Box.call(this,e,t,n,r),this.boxes=[]},SampleEntry:function(e,t,n,r){c.ContainerBox.call(this,e,t),this.hdr_size=n,this.start=r},SampleGroupEntry:function(e){this.grouping_type=e},TrackGroupTypeBox:function(e,t){c.FullBox.call(this,e,t)},createBoxCtor:function(e,t,n){c.boxCodes.push(e),c[e+`Box`]=function(n){c.Box.call(this,e,n,t)},c[e+`Box`].prototype=new c.Box,n&&(c[e+`Box`].prototype.parse=n)},createFullBoxCtor:function(e,t,n){c[e+`Box`]=function(n){c.FullBox.call(this,e,n,t)},c[e+`Box`].prototype=new c.FullBox,c[e+`Box`].prototype.parse=function(e){this.parseFullHeader(e),n&&n.call(this,e)}},addSubBoxArrays:function(e){if(e){this.subBoxNames=e;for(var t=e.length,n=0;n<t;n++)this[e[n]+`s`]=[]}},createContainerBoxCtor:function(e,t,n,r){c[e+`Box`]=function(n){c.ContainerBox.call(this,e,n,t),c.addSubBoxArrays.call(this,r)},c[e+`Box`].prototype=new c.ContainerBox,n&&(c[e+`Box`].prototype.parse=n)},createMediaSampleEntryCtor:function(e,t,n){c.sampleEntryCodes[e]=[],c[e+`SampleEntry`]=function(e,t){c.SampleEntry.call(this,e,t),c.addSubBoxArrays.call(this,n)},c[e+`SampleEntry`].prototype=new c.SampleEntry,t&&(c[e+`SampleEntry`].prototype.parse=t)},createSampleEntryCtor:function(e,t,n,r){c.sampleEntryCodes[e].push(t),c[t+`SampleEntry`]=function(n){c[e+`SampleEntry`].call(this,t,n),c.addSubBoxArrays.call(this,r)},c[t+`SampleEntry`].prototype=new c[e+`SampleEntry`],n&&(c[t+`SampleEntry`].prototype.parse=n)},createEncryptedSampleEntryCtor:function(e,t,n){c.createSampleEntryCtor.call(this,e,t,n,[`sinf`])},createSampleGroupCtor:function(e,t){c[e+`SampleGroupEntry`]=function(t){c.SampleGroupEntry.call(this,e,t)},c[e+`SampleGroupEntry`].prototype=new c.SampleGroupEntry,t&&(c[e+`SampleGroupEntry`].prototype.parse=t)},createTrackGroupCtor:function(e,t){c[e+`TrackGroupTypeBox`]=function(t){c.TrackGroupTypeBox.call(this,e,t)},c[e+`TrackGroupTypeBox`].prototype=new c.TrackGroupTypeBox,t&&(c[e+`TrackGroupTypeBox`].prototype.parse=t)},createUUIDBox:function(e,t,n,r,a){c.UUIDs.push(e),c.UUIDBoxes[e]=function(a){n?c.FullBox.call(this,`uuid`,a,t,e):r?c.ContainerBox.call(this,`uuid`,a,t,e):c.Box.call(this,`uuid`,a,t,e)},c.UUIDBoxes[e].prototype=n?new c.FullBox:r?new c.ContainerBox:new c.Box,a&&(n?c.UUIDBoxes[e].prototype.parse=function(e){this.parseFullHeader(e),a&&a.call(this,e)}:c.UUIDBoxes[e].prototype.parse=a)}};c.initialize(),c.TKHD_FLAG_ENABLED=1,c.TKHD_FLAG_IN_MOVIE=2,c.TKHD_FLAG_IN_PREVIEW=4,c.TFHD_FLAG_BASE_DATA_OFFSET=1,c.TFHD_FLAG_SAMPLE_DESC=2,c.TFHD_FLAG_SAMPLE_DUR=8,c.TFHD_FLAG_SAMPLE_SIZE=16,c.TFHD_FLAG_SAMPLE_FLAGS=32,c.TFHD_FLAG_DUR_EMPTY=65536,c.TFHD_FLAG_DEFAULT_BASE_IS_MOOF=131072,c.TRUN_FLAGS_DATA_OFFSET=1,c.TRUN_FLAGS_FIRST_FLAG=4,c.TRUN_FLAGS_DURATION=256,c.TRUN_FLAGS_SIZE=512,c.TRUN_FLAGS_FLAGS=1024,c.TRUN_FLAGS_CTS_OFFSET=2048,c.Box.prototype.add=function(e){return this.addBox(new c[e+`Box`])},c.Box.prototype.addBox=function(e){return this.boxes.push(e),this[e.type+`s`]?this[e.type+`s`].push(e):this[e.type]=e,e},c.Box.prototype.set=function(e,t){return this[e]=t,this},c.Box.prototype.addEntry=function(e,t){var n=t||`entries`;return this[n]||(this[n]=[]),this[n].push(e),this},e!==void 0&&(e.BoxParser=c),c.parseUUID=function(e){return c.parseHex16(e)},c.parseHex16=function(e){for(var t=``,n=0;n<16;n++){var r=e.readUint8().toString(16);t+=r.length===1?`0`+r:r}return t},c.parseOneBox=function(e,n,r){var a,o=e.getPosition(),s=0,l,u;if(e.getEndPosition()-o<8)return t.debug(`BoxParser`,`Not enough data in stream to parse the type and size of the box`),{code:c.ERR_NOT_ENOUGH_DATA};if(r&&r<8)return t.debug(`BoxParser`,`Not enough bytes left in the parent box to parse a new box`),{code:c.ERR_NOT_ENOUGH_DATA};var d=e.readUint32(),f=e.readString(4),p=f;if(t.debug(`BoxParser`,`Found box of type '`+f+`' and size `+d+` at position `+o),s=8,f==`uuid`){if(e.getEndPosition()-e.getPosition()<16||r-s<16)return e.seek(o),t.debug(`BoxParser`,`Not enough bytes left in the parent box to parse a UUID box`),{code:c.ERR_NOT_ENOUGH_DATA};u=c.parseUUID(e),s+=16,p=u}if(d==1){if(e.getEndPosition()-e.getPosition()<8||r&&r-s<8)return e.seek(o),t.warn(`BoxParser`,`Not enough data in stream to parse the extended size of the "`+f+`" box`),{code:c.ERR_NOT_ENOUGH_DATA};d=e.readUint64(),s+=8}else if(d===0){if(r)d=r;else if(f!==`mdat`)return t.error(`BoxParser`,`Unlimited box size not supported for type: '`+f+`'`),a=new c.Box(f,d),{code:c.OK,box:a,size:a.size}}return d!==0&&d<s?(t.error(`BoxParser`,`Box of type `+f+` has an invalid size `+d+` (too small to be a box)`),{code:c.ERR_NOT_ENOUGH_DATA,type:f,size:d,hdr_size:s,start:o}):d!==0&&r&&d>r?(t.error(`BoxParser`,`Box of type '`+f+`' has a size `+d+` greater than its container size `+r),{code:c.ERR_NOT_ENOUGH_DATA,type:f,size:d,hdr_size:s,start:o}):d!==0&&o+d>e.getEndPosition()?(e.seek(o),t.info(`BoxParser`,`Not enough data in stream to parse the entire '`+f+`' box`),{code:c.ERR_NOT_ENOUGH_DATA,type:f,size:d,hdr_size:s,start:o}):n?{code:c.OK,type:f,size:d,hdr_size:s,start:o}:(c[f+`Box`]?a=new c[f+`Box`](d):f===`uuid`?c.UUIDBoxes[u]?a=new c.UUIDBoxes[u](d):(t.warn(`BoxParser`,`Unknown uuid type: '`+u+`'`),a=new c.Box(f,d),a.uuid=u,a.has_unparsed_data=!0):(t.warn(`BoxParser`,`Unknown box type: '`+f+`'`),a=new c.Box(f,d),a.has_unparsed_data=!0),a.hdr_size=s,a.start=o,a.write===c.Box.prototype.write&&a.type!==`mdat`&&(t.info(`BoxParser`,`'`+p+`' box writing not yet implemented, keeping unparsed data in memory for later write`),a.parseDataAndRewind(e)),a.parse(e),l=e.getPosition()-(a.start+a.size),l<0?(t.warn(`BoxParser`,`Parsing of box '`+p+`' did not read the entire indicated box data size (missing `+-l+` bytes), seeking forward`),e.seek(a.start+a.size)):l>0&&(t.error(`BoxParser`,`Parsing of box '`+p+`' read `+l+` more bytes than the indicated box data size, seeking backwards`),a.size!==0&&e.seek(a.start+a.size)),{code:c.OK,box:a,size:a.size})},c.Box.prototype.parse=function(e){this.type==`mdat`?this.size===0?e.seek(e.getEndPosition()):e.seek(this.start+this.size):this.data=e.readUint8Array(this.size-this.hdr_size)},c.Box.prototype.parseDataAndRewind=function(e){this.data=e.readUint8Array(this.size-this.hdr_size),e.position-=this.size-this.hdr_size},c.FullBox.prototype.parseDataAndRewind=function(e){this.parseFullHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=4,e.position-=this.size-this.hdr_size},c.FullBox.prototype.parseFullHeader=function(e){this.version=e.readUint8(),this.flags=e.readUint24(),this.hdr_size+=4},c.FullBox.prototype.parse=function(e){this.parseFullHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},c.ContainerBox.prototype.parse=function(e){for(var n,r;e.getPosition()<this.start+this.size;)if(n=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),n.code===c.OK)if(r=n.box,this.boxes.push(r),this.subBoxNames&&this.subBoxNames.indexOf(r.type)!=-1)this[this.subBoxNames[this.subBoxNames.indexOf(r.type)]+`s`].push(r);else{var a=r.type===`uuid`?r.uuid:r.type;this[a]?t.warn(`Box of type `+a+` already stored in field of this type`):this[a]=r}else return},c.Box.prototype.parseLanguage=function(e){this.language=e.readUint16();var t=[];t[0]=this.language>>10&31,t[1]=this.language>>5&31,t[2]=this.language&31,this.languageString=String.fromCharCode(t[0]+96,t[1]+96,t[2]+96)},c.SAMPLE_ENTRY_TYPE_VISUAL=`Visual`,c.SAMPLE_ENTRY_TYPE_AUDIO=`Audio`,c.SAMPLE_ENTRY_TYPE_HINT=`Hint`,c.SAMPLE_ENTRY_TYPE_METADATA=`Metadata`,c.SAMPLE_ENTRY_TYPE_SUBTITLE=`Subtitle`,c.SAMPLE_ENTRY_TYPE_SYSTEM=`System`,c.SAMPLE_ENTRY_TYPE_TEXT=`Text`,c.SampleEntry.prototype.parseHeader=function(e){e.readUint8Array(6),this.data_reference_index=e.readUint16(),this.hdr_size+=8},c.SampleEntry.prototype.parse=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},c.SampleEntry.prototype.parseDataAndRewind=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,e.position-=this.size-this.hdr_size},c.SampleEntry.prototype.parseFooter=function(e){c.ContainerBox.prototype.parse.call(this,e)},c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_HINT),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SYSTEM),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_TEXT),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,function(e){var t;this.parseHeader(e),e.readUint16(),e.readUint16(),e.readUint32Array(3),this.width=e.readUint16(),this.height=e.readUint16(),this.horizresolution=e.readUint32(),this.vertresolution=e.readUint32(),e.readUint32(),this.frame_count=e.readUint16(),t=Math.min(31,e.readUint8()),this.compressorname=e.readString(t),t<31&&e.readString(31-t),this.depth=e.readUint16(),e.readUint16(),this.parseFooter(e)}),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,function(e){this.parseHeader(e),e.readUint32Array(2),this.channel_count=e.readUint16(),this.samplesize=e.readUint16(),e.readUint16(),e.readUint16(),this.samplerate=e.readUint32()/65536,this.parseFooter(e)}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`avc1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`avc2`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`avc3`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`avc4`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`av01`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`dav1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`hvc1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`hev1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`hvt1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`lhe1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`dvh1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`dvhe`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`vvc1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`vvi1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`vvs1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`vvcN`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`vp08`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`vp09`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`avs3`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`j2ki`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`mjp2`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`mjpg`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`uncv`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`mp4a`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`ac-3`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`ac-4`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`ec-3`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`Opus`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`mha1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`mha2`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`mhm1`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`mhm2`),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`fLaC`),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,`encv`),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,`enca`),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,`encu`),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SYSTEM,`encs`),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_TEXT,`enct`),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA,`encm`),c.createBoxCtor(`a1lx`,`AV1LayeredImageIndexingProperty`,function(e){var t=((e.readUint8()&1)+1)*16;this.layer_size=[];for(var n=0;n<3;n++)t==16?this.layer_size[n]=e.readUint16():this.layer_size[n]=e.readUint32()}),c.createBoxCtor(`a1op`,`OperatingPointSelectorProperty`,function(e){this.op_index=e.readUint8()}),c.createFullBoxCtor(`auxC`,`AuxiliaryTypeProperty`,function(e){this.aux_type=e.readCString();var t=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=e.readUint8Array(t)}),c.createBoxCtor(`av1C`,`AV1CodecConfigurationBox`,function(e){var n=e.readUint8();if((n>>7&1)!=1){t.error(`av1C marker problem`);return}if(this.version=n&127,this.version!==1){t.error(`av1C version `+this.version+` not supported`);return}if(n=e.readUint8(),this.seq_profile=n>>5&7,this.seq_level_idx_0=n&31,n=e.readUint8(),this.seq_tier_0=n>>7&1,this.high_bitdepth=n>>6&1,this.twelve_bit=n>>5&1,this.monochrome=n>>4&1,this.chroma_subsampling_x=n>>3&1,this.chroma_subsampling_y=n>>2&1,this.chroma_sample_position=n&3,n=e.readUint8(),this.reserved_1=n>>5&7,this.reserved_1!==0){t.error(`av1C reserved_1 parsing problem`);return}if(this.initial_presentation_delay_present=n>>4&1,this.initial_presentation_delay_present===1)this.initial_presentation_delay_minus_one=n&15;else if(this.reserved_2=n&15,this.reserved_2!==0){t.error(`av1C reserved_2 parsing problem`);return}var r=this.size-this.hdr_size-4;this.configOBUs=e.readUint8Array(r)});function l(e){var t=`<table class='inner-table'>`;t+=`<thead><tr><th>length</th><th>nalu_data</th></tr></thead>`,t+=`<tbody>`;for(var n=0;n<e.length;n++){var r=e[n];t+=`<tr>`,t+=`<td>`+r.length+`</td>`,t+=`<td>`,t+=r.nalu.reduce(function(e,t){return e+t.toString(16).padStart(2,`0`)},`0x`),t+=`</td></tr>`}return t+=`</tbody></table>`,t}c.createBoxCtor(`avcC`,`AVCConfigurationBox`,function(e){var t,n;for(this.configurationVersion=e.readUint8(),this.AVCProfileIndication=e.readUint8(),this.profile_compatibility=e.readUint8(),this.AVCLevelIndication=e.readUint8(),this.lengthSizeMinusOne=e.readUint8()&3,this.nb_SPS_nalus=e.readUint8()&31,n=this.size-this.hdr_size-6,this.SPS=[],this.SPS.toString=function(){return l(this)},t=0;t<this.nb_SPS_nalus;t++)this.SPS[t]={},this.SPS[t].length=e.readUint16(),this.SPS[t].nalu=e.readUint8Array(this.SPS[t].length),n-=2+this.SPS[t].length;for(this.nb_PPS_nalus=e.readUint8(),n--,this.PPS=[],this.PPS.toString=function(){return l(this)},t=0;t<this.nb_PPS_nalus;t++)this.PPS[t]={},this.PPS[t].length=e.readUint16(),this.PPS[t].nalu=e.readUint8Array(this.PPS[t].length),n-=2+this.PPS[t].length;n>0&&(this.ext=e.readUint8Array(n))}),c.createBoxCtor(`btrt`,`BitRateBox`,function(e){this.bufferSizeDB=e.readUint32(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32()}),c.createFullBoxCtor(`ccst`,`CodingConstraintsBox`,function(e){var t=e.readUint8();this.all_ref_pics_intra=(t&128)==128,this.intra_pred_used=(t&64)==64,this.max_ref_per_pic=(t&63)>>2,e.readUint24()}),c.createBoxCtor(`cdef`,`ComponentDefinitionBox`,function(e){var t;for(this.channel_count=e.readUint16(),this.channel_indexes=[],this.channel_types=[],this.channel_associations=[],t=0;t<this.channel_count;t++)this.channel_indexes.push(e.readUint16()),this.channel_types.push(e.readUint16()),this.channel_associations.push(e.readUint16())}),c.createBoxCtor(`clap`,`CleanApertureBox`,function(e){this.cleanApertureWidthN=e.readUint32(),this.cleanApertureWidthD=e.readUint32(),this.cleanApertureHeightN=e.readUint32(),this.cleanApertureHeightD=e.readUint32(),this.horizOffN=e.readUint32(),this.horizOffD=e.readUint32(),this.vertOffN=e.readUint32(),this.vertOffD=e.readUint32()}),c.createBoxCtor(`clli`,`ContentLightLevelBox`,function(e){this.max_content_light_level=e.readUint16(),this.max_pic_average_light_level=e.readUint16()}),c.createFullBoxCtor(`cmex`,`CameraExtrinsicMatrixProperty`,function(e){this.flags&1&&(this.pos_x=e.readInt32()),this.flags&2&&(this.pos_y=e.readInt32()),this.flags&4&&(this.pos_z=e.readInt32()),this.flags&8&&(this.version==0?this.flags&16?(this.quat_x=e.readInt32(),this.quat_y=e.readInt32(),this.quat_z=e.readInt32()):(this.quat_x=e.readInt16(),this.quat_y=e.readInt16(),this.quat_z=e.readInt16()):this.version),this.flags&32&&(this.id=e.readUint32())}),c.createFullBoxCtor(`cmin`,`CameraIntrinsicMatrixProperty`,function(e){this.focal_length_x=e.readInt32(),this.principal_point_x=e.readInt32(),this.principal_point_y=e.readInt32(),this.flags&1&&(this.focal_length_y=e.readInt32(),this.skew_factor=e.readInt32())}),c.createBoxCtor(`cmpd`,`ComponentDefinitionBox`,function(e){for(this.component_count=e.readUint32(),this.component_types=[],this.component_type_urls=[],i=0;i<this.component_count;i++){var t=e.readUint16();this.component_types.push(t),t>=32768&&this.component_type_urls.push(e.readCString())}}),c.createFullBoxCtor(`co64`,`ChunkLargeOffsetBox`,function(e){var t=e.readUint32(),n;if(this.chunk_offsets=[],this.version===0)for(n=0;n<t;n++)this.chunk_offsets.push(e.readUint64())}),c.createFullBoxCtor(`CoLL`,`ContentLightLevelBox`,function(e){this.maxCLL=e.readUint16(),this.maxFALL=e.readUint16()}),c.createBoxCtor(`colr`,`ColourInformationBox`,function(e){if(this.colour_type=e.readString(4),this.colour_type===`nclx`){this.colour_primaries=e.readUint16(),this.transfer_characteristics=e.readUint16(),this.matrix_coefficients=e.readUint16();var t=e.readUint8();this.full_range_flag=t>>7}else (this.colour_type===`rICC`||this.colour_type===`prof`)&&(this.ICC_profile=e.readUint8Array(this.size-4))}),c.createFullBoxCtor(`cprt`,`CopyrightBox`,function(e){this.parseLanguage(e),this.notice=e.readCString()}),c.createFullBoxCtor(`cslg`,`CompositionToDecodeBox`,function(e){this.version===0&&(this.compositionToDTSShift=e.readInt32(),this.leastDecodeToDisplayDelta=e.readInt32(),this.greatestDecodeToDisplayDelta=e.readInt32(),this.compositionStartTime=e.readInt32(),this.compositionEndTime=e.readInt32())}),c.createFullBoxCtor(`ctts`,`CompositionOffsetBox`,function(e){var n=e.readUint32(),r;if(this.sample_counts=[],this.sample_offsets=[],this.version===0)for(r=0;r<n;r++){this.sample_counts.push(e.readUint32());var a=e.readInt32();a<0&&t.warn(`BoxParser`,`ctts box uses negative values without using version 1`),this.sample_offsets.push(a)}else if(this.version==1)for(r=0;r<n;r++)this.sample_counts.push(e.readUint32()),this.sample_offsets.push(e.readInt32())}),c.createBoxCtor(`dac3`,`AC3SpecificBox`,function(e){var t=e.readUint8(),n=e.readUint8(),r=e.readUint8();this.fscod=t>>6,this.bsid=t>>1&31,this.bsmod=(t&1)<<2|n>>6&3,this.acmod=n>>3&7,this.lfeon=n>>2&1,this.bit_rate_code=n&3|r>>5&7}),c.createBoxCtor(`dec3`,`EC3SpecificBox`,function(e){var t=e.readUint16();this.data_rate=t>>3,this.num_ind_sub=t&7,this.ind_subs=[];for(var n=0;n<this.num_ind_sub+1;n++){var r={};this.ind_subs.push(r);var a=e.readUint8(),o=e.readUint8(),s=e.readUint8();r.fscod=a>>6,r.bsid=a>>1&31,r.bsmod=(a&1)<<4|o>>4&15,r.acmod=o>>1&7,r.lfeon=o&1,r.num_dep_sub=s>>1&15,r.num_dep_sub>0&&(r.chan_loc=(s&1)<<8|e.readUint8())}}),c.createFullBoxCtor(`dfLa`,`FLACSpecificBox`,function(e){var t=127,n=128,r=[],a=[`STREAMINFO`,`PADDING`,`APPLICATION`,`SEEKTABLE`,`VORBIS_COMMENT`,`CUESHEET`,`PICTURE`,`RESERVED`];do{var o=e.readUint8(),s=Math.min(o&t,a.length-1);if(s?e.readUint8Array(e.readUint24()):(e.readUint8Array(13),this.samplerate=e.readUint32()>>12,e.readUint8Array(20)),r.push(a[s]),o&n)break}while(!0);this.numMetadataBlocks=r.length+` (`+r.join(`, `)+`)`}),c.createBoxCtor(`dimm`,`hintimmediateBytesSent`,function(e){this.bytessent=e.readUint64()}),c.createBoxCtor(`dmax`,`hintlongestpacket`,function(e){this.time=e.readUint32()}),c.createBoxCtor(`dmed`,`hintmediaBytesSent`,function(e){this.bytessent=e.readUint64()}),c.createBoxCtor(`dOps`,`OpusSpecificBox`,function(e){if(this.Version=e.readUint8(),this.OutputChannelCount=e.readUint8(),this.PreSkip=e.readUint16(),this.InputSampleRate=e.readUint32(),this.OutputGain=e.readInt16(),this.ChannelMappingFamily=e.readUint8(),this.ChannelMappingFamily!==0){this.StreamCount=e.readUint8(),this.CoupledCount=e.readUint8(),this.ChannelMapping=[];for(var t=0;t<this.OutputChannelCount;t++)this.ChannelMapping[t]=e.readUint8()}}),c.createFullBoxCtor(`dref`,`DataReferenceBox`,function(e){var t,n;this.entries=[];for(var r=e.readUint32(),a=0;a<r;a++)if(t=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),t.code===c.OK)n=t.box,this.entries.push(n);else return}),c.createBoxCtor(`drep`,`hintrepeatedBytesSent`,function(e){this.bytessent=e.readUint64()}),c.createFullBoxCtor(`elng`,`ExtendedLanguageBox`,function(e){this.extended_language=e.readString(this.size-this.hdr_size)}),c.createFullBoxCtor(`elst`,`EditListBox`,function(e){this.entries=[];for(var t=e.readUint32(),n=0;n<t;n++){var r={};this.entries.push(r),this.version===1?(r.segment_duration=e.readUint64(),r.media_time=e.readInt64()):(r.segment_duration=e.readUint32(),r.media_time=e.readInt32()),r.media_rate_integer=e.readInt16(),r.media_rate_fraction=e.readInt16()}}),c.createFullBoxCtor(`emsg`,`EventMessageBox`,function(e){this.version==1?(this.timescale=e.readUint32(),this.presentation_time=e.readUint64(),this.event_duration=e.readUint32(),this.id=e.readUint32(),this.scheme_id_uri=e.readCString(),this.value=e.readCString()):(this.scheme_id_uri=e.readCString(),this.value=e.readCString(),this.timescale=e.readUint32(),this.presentation_time_delta=e.readUint32(),this.event_duration=e.readUint32(),this.id=e.readUint32());var t=this.size-this.hdr_size-(16+(this.scheme_id_uri.length+1)+(this.value.length+1));this.version==1&&(t-=4),this.message_data=e.readUint8Array(t)}),c.createEntityToGroupCtor=function(e,t){c[e+`Box`]=function(t){c.FullBox.call(this,e,t)},c[e+`Box`].prototype=new c.FullBox,c[e+`Box`].prototype.parse=function(e){if(this.parseFullHeader(e),t)t.call(this,e);else for(this.group_id=e.readUint32(),this.num_entities_in_group=e.readUint32(),this.entity_ids=[],i=0;i<this.num_entities_in_group;i++){var n=e.readUint32();this.entity_ids.push(n)}}},c.createEntityToGroupCtor(`aebr`),c.createEntityToGroupCtor(`afbr`),c.createEntityToGroupCtor(`albc`),c.createEntityToGroupCtor(`altr`),c.createEntityToGroupCtor(`brst`),c.createEntityToGroupCtor(`dobr`),c.createEntityToGroupCtor(`eqiv`),c.createEntityToGroupCtor(`favc`),c.createEntityToGroupCtor(`fobr`),c.createEntityToGroupCtor(`iaug`),c.createEntityToGroupCtor(`pano`),c.createEntityToGroupCtor(`slid`),c.createEntityToGroupCtor(`ster`),c.createEntityToGroupCtor(`tsyn`),c.createEntityToGroupCtor(`wbbr`),c.createEntityToGroupCtor(`prgr`),c.createEntityToGroupCtor(`pymd`,function(e){this.group_id=e.readUint32(),this.num_entities_in_group=e.readUint32(),this.entity_ids=[];for(var t=0;t<this.num_entities_in_group;t++){var n=e.readUint32();this.entity_ids.push(n)}for(this.tile_size_x=e.readUint16(),this.tile_size_y=e.readUint16(),this.layer_binning=[],this.tiles_in_layer_column_minus1=[],this.tiles_in_layer_row_minus1=[],t=0;t<this.num_entities_in_group;t++)this.layer_binning[t]=e.readUint16(),this.tiles_in_layer_row_minus1[t]=e.readUint16(),this.tiles_in_layer_column_minus1[t]=e.readUint16()}),c.createFullBoxCtor(`esds`,`ElementaryStreamDescriptorBox`,function(e){var t=e.readUint8Array(this.size-this.hdr_size);if(s!==void 0){var n=new s;this.esd=n.parseOneDescriptor(new r(t.buffer,0,r.BIG_ENDIAN))}}),c.createBoxCtor(`fiel`,`FieldHandlingBox`,function(e){this.fieldCount=e.readUint8(),this.fieldOrdering=e.readUint8()}),c.createBoxCtor(`frma`,`OriginalFormatBox`,function(e){this.data_format=e.readString(4)}),c.createBoxCtor(`ftyp`,`FileTypeBox`,function(e){var t=this.size-this.hdr_size;this.major_brand=e.readString(4),this.minor_version=e.readUint32(),t-=8,this.compatible_brands=[];for(var n=0;t>=4;)this.compatible_brands[n]=e.readString(4),t-=4,n++}),c.createFullBoxCtor(`hdlr`,`HandlerBox`,function(e){this.version===0&&(e.readUint32(),this.handler=e.readString(4),e.readUint32Array(3),this.name=e.readString(this.size-this.hdr_size-20),this.name[this.name.length-1]===`\0`&&(this.name=this.name.slice(0,-1)))}),c.createBoxCtor(`hvcC`,`HEVCConfigurationBox`,function(e){var t,n,r,a;this.configurationVersion=e.readUint8(),a=e.readUint8(),this.general_profile_space=a>>6,this.general_tier_flag=(a&32)>>5,this.general_profile_idc=a&31,this.general_profile_compatibility=e.readUint32(),this.general_constraint_indicator=e.readUint8Array(6),this.general_level_idc=e.readUint8(),this.min_spatial_segmentation_idc=e.readUint16()&4095,this.parallelismType=e.readUint8()&3,this.chroma_format_idc=e.readUint8()&3,this.bit_depth_luma_minus8=e.readUint8()&7,this.bit_depth_chroma_minus8=e.readUint8()&7,this.avgFrameRate=e.readUint16(),a=e.readUint8(),this.constantFrameRate=a>>6,this.numTemporalLayers=(a&13)>>3,this.temporalIdNested=(a&4)>>2,this.lengthSizeMinusOne=a&3,this.nalu_arrays=[],this.nalu_arrays.toString=function(){var e=`<table class='inner-table'>`;e+=`<thead><tr><th>completeness</th><th>nalu_type</th><th>nalu_data</th></tr></thead>`,e+=`<tbody>`;for(var t=0;t<this.length;t++){var n=this[t];e+=`<tr>`,e+=`<td rowspan='`+n.length+`'>`+n.completeness+`</td>`,e+=`<td rowspan='`+n.length+`'>`+n.nalu_type+`</td>`;for(var r=0;r<n.length;r++){var a=n[r];r!==0&&(e+=`<tr>`),e+=`<td>`,e+=a.data.reduce(function(e,t){return e+t.toString(16).padStart(2,`0`)},`0x`),e+=`</td></tr>`}}return e+=`</tbody></table>`,e};var o=e.readUint8();for(t=0;t<o;t++){var s=[];this.nalu_arrays.push(s),a=e.readUint8(),s.completeness=(a&128)>>7,s.nalu_type=a&63;var c=e.readUint16();for(n=0;n<c;n++){var l={};s.push(l),r=e.readUint16(),l.data=e.readUint8Array(r)}}}),c.createFullBoxCtor(`iinf`,`ItemInfoBox`,function(e){var n;this.version===0?this.entry_count=e.readUint16():this.entry_count=e.readUint32(),this.item_infos=[];for(var r=0;r<this.entry_count;r++)if(n=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),n.code===c.OK)n.box.type!==`infe`&&t.error(`BoxParser`,`Expected 'infe' box, got `+n.box.type),this.item_infos[r]=n.box;else return}),c.createFullBoxCtor(`iloc`,`ItemLocationBox`,function(e){var t=e.readUint8();this.offset_size=t>>4&15,this.length_size=t&15,t=e.readUint8(),this.base_offset_size=t>>4&15,this.version===1||this.version===2?this.index_size=t&15:this.index_size=0,this.items=[];var n=0;if(this.version<2)n=e.readUint16();else if(this.version===2)n=e.readUint32();else throw`version of iloc box not supported`;for(var r=0;r<n;r++){var a={};if(this.items.push(a),this.version<2)a.item_ID=e.readUint16();else if(this.version===2)a.item_ID=e.readUint32();else throw`version of iloc box not supported`;switch(this.version===1||this.version===2?a.construction_method=e.readUint16()&15:a.construction_method=0,a.data_reference_index=e.readUint16(),this.base_offset_size){case 0:a.base_offset=0;break;case 4:a.base_offset=e.readUint32();break;case 8:a.base_offset=e.readUint64();break;default:throw`Error reading base offset size`}var o=e.readUint16();a.extents=[];for(var s=0;s<o;s++){var c={};if(a.extents.push(c),this.version===1||this.version===2)switch(this.index_size){case 0:c.extent_index=0;break;case 4:c.extent_index=e.readUint32();break;case 8:c.extent_index=e.readUint64();break;default:throw`Error reading extent index`}switch(this.offset_size){case 0:c.extent_offset=0;break;case 4:c.extent_offset=e.readUint32();break;case 8:c.extent_offset=e.readUint64();break;default:throw`Error reading extent index`}switch(this.length_size){case 0:c.extent_length=0;break;case 4:c.extent_length=e.readUint32();break;case 8:c.extent_length=e.readUint64();break;default:throw`Error reading extent index`}}}}),c.createBoxCtor(`imir`,`ImageMirror`,function(e){var t=e.readUint8();this.reserved=t>>7,this.axis=t&1}),c.createFullBoxCtor(`infe`,`ItemInfoEntry`,function(e){if((this.version===0||this.version===1)&&(this.item_ID=e.readUint16(),this.item_protection_index=e.readUint16(),this.item_name=e.readCString(),this.content_type=e.readCString(),this.content_encoding=e.readCString()),this.version===1){this.extension_type=e.readString(4),t.warn(`BoxParser`,`Cannot parse extension type`),e.seek(this.start+this.size);return}this.version>=2&&(this.version===2?this.item_ID=e.readUint16():this.version===3&&(this.item_ID=e.readUint32()),this.item_protection_index=e.readUint16(),this.item_type=e.readString(4),this.item_name=e.readCString(),this.item_type===`mime`?(this.content_type=e.readCString(),this.content_encoding=e.readCString()):this.item_type===`uri `&&(this.item_uri_type=e.readCString()))}),c.createFullBoxCtor(`ipma`,`ItemPropertyAssociationBox`,function(e){var t,n;for(entry_count=e.readUint32(),this.associations=[],t=0;t<entry_count;t++){var r={};this.associations.push(r),this.version<1?r.id=e.readUint16():r.id=e.readUint32();var a=e.readUint8();for(r.props=[],n=0;n<a;n++){var o=e.readUint8(),s={};r.props.push(s),s.essential=(o&128)>>7==1,this.flags&1?s.property_index=(o&127)<<8|e.readUint8():s.property_index=o&127}}}),c.createFullBoxCtor(`iref`,`ItemReferenceBox`,function(e){var n,r;for(this.references=[];e.getPosition()<this.start+this.size;)if(n=c.parseOneBox(e,!0,this.size-(e.getPosition()-this.start)),n.code===c.OK)r=this.version===0?new c.SingleItemTypeReferenceBox(n.type,n.size,n.hdr_size,n.start):new c.SingleItemTypeReferenceBoxLarge(n.type,n.size,n.hdr_size,n.start),r.write===c.Box.prototype.write&&r.type!==`mdat`&&(t.warn(`BoxParser`,r.type+` box writing not yet implemented, keeping unparsed data in memory for later write`),r.parseDataAndRewind(e)),r.parse(e),this.references.push(r);else return}),c.createBoxCtor(`irot`,`ImageRotation`,function(e){this.angle=e.readUint8()&3}),c.createFullBoxCtor(`ispe`,`ImageSpatialExtentsProperty`,function(e){this.image_width=e.readUint32(),this.image_height=e.readUint32()}),c.createFullBoxCtor(`kind`,`KindBox`,function(e){this.schemeURI=e.readCString(),this.value=e.readCString()}),c.createFullBoxCtor(`leva`,`LevelAssignmentBox`,function(e){var n=e.readUint8();this.levels=[];for(var r=0;r<n;r++){var a={};this.levels[r]=a,a.track_ID=e.readUint32();var o=e.readUint8();switch(a.padding_flag=o>>7,a.assignment_type=o&127,a.assignment_type){case 0:a.grouping_type=e.readString(4);break;case 1:a.grouping_type=e.readString(4),a.grouping_type_parameter=e.readUint32();break;case 2:break;case 3:break;case 4:a.sub_track_id=e.readUint32();break;default:t.warn(`BoxParser`,`Unknown leva assignement type`)}}}),c.createBoxCtor(`lhvC`,`LHEVCConfigurationBox`,function(e){var t,n,r;this.configurationVersion=e.readUint8(),this.min_spatial_segmentation_idc=e.readUint16()&4095,this.parallelismType=e.readUint8()&3,r=e.readUint8(),this.numTemporalLayers=(r&13)>>3,this.temporalIdNested=(r&4)>>2,this.lengthSizeMinusOne=r&3,this.nalu_arrays=[],this.nalu_arrays.toString=function(){var e=`<table class='inner-table'>`;e+=`<thead><tr><th>completeness</th><th>nalu_type</th><th>nalu_data</th></tr></thead>`,e+=`<tbody>`;for(var t=0;t<this.length;t++){var n=this[t];e+=`<tr>`,e+=`<td rowspan='`+n.length+`'>`+n.completeness+`</td>`,e+=`<td rowspan='`+n.length+`'>`+n.nalu_type+`</td>`;for(var r=0;r<n.length;r++){var a=n[r];r!==0&&(e+=`<tr>`),e+=`<td>`,e+=a.data.reduce(function(e,t){return e+t.toString(16).padStart(2,`0`)},`0x`),e+=`</td></tr>`}}return e+=`</tbody></table>`,e};var a=e.readUint8();for(t=0;t<a;t++){var o=[];this.nalu_arrays.push(o),r=e.readUint8(),o.completeness=(r&128)>>7,o.nalu_type=r&63;var s=e.readUint16();for(n=0;n<s;n++){var c={};o.push(c);var l=e.readUint16();c.data=e.readUint8Array(l)}}}),c.createBoxCtor(`lsel`,`LayerSelectorProperty`,function(e){this.layer_id=e.readUint16()}),c.createBoxCtor(`maxr`,`hintmaxrate`,function(e){this.period=e.readUint32(),this.bytes=e.readUint32()});function u(e,t){this.x=e,this.y=t}u.prototype.toString=function(){return`(`+this.x+`,`+this.y+`)`},c.createBoxCtor(`mdcv`,`MasteringDisplayColourVolumeBox`,function(e){this.display_primaries=[],this.display_primaries[0]=new u(e.readUint16(),e.readUint16()),this.display_primaries[1]=new u(e.readUint16(),e.readUint16()),this.display_primaries[2]=new u(e.readUint16(),e.readUint16()),this.white_point=new u(e.readUint16(),e.readUint16()),this.max_display_mastering_luminance=e.readUint32(),this.min_display_mastering_luminance=e.readUint32()}),c.createFullBoxCtor(`mdhd`,`MediaHeaderBox`,function(e){this.version==1?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.parseLanguage(e),e.readUint16()}),c.createFullBoxCtor(`mehd`,`MovieExtendsHeaderBox`,function(e){this.flags&1&&(t.warn(`BoxParser`,`mehd box incorrectly uses flags set to 1, converting version to 1`),this.version=1),this.version==1?this.fragment_duration=e.readUint64():this.fragment_duration=e.readUint32()}),c.createFullBoxCtor(`meta`,`MetaBox`,function(e){this.boxes=[],c.ContainerBox.prototype.parse.call(this,e)}),c.createFullBoxCtor(`mfhd`,`MovieFragmentHeaderBox`,function(e){this.sequence_number=e.readUint32()}),c.createFullBoxCtor(`mfro`,`MovieFragmentRandomAccessOffsetBox`,function(e){this._size=e.readUint32()}),c.createFullBoxCtor(`mskC`,`MaskConfigurationProperty`,function(e){this.bits_per_pixel=e.readUint8()}),c.createFullBoxCtor(`mvhd`,`MovieHeaderBox`,function(e){this.version==1?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.rate=e.readUint32(),this.volume=e.readUint16()>>8,e.readUint16(),e.readUint32Array(2),this.matrix=e.readUint32Array(9),e.readUint32Array(6),this.next_track_id=e.readUint32()}),c.createBoxCtor(`npck`,`hintPacketsSent`,function(e){this.packetssent=e.readUint32()}),c.createBoxCtor(`nump`,`hintPacketsSent`,function(e){this.packetssent=e.readUint64()}),c.createFullBoxCtor(`padb`,`PaddingBitsBox`,function(e){var t=e.readUint32();this.padbits=[];for(var n=0;n<Math.floor((t+1)/2);n++)this.padbits=e.readUint8()}),c.createBoxCtor(`pasp`,`PixelAspectRatioBox`,function(e){this.hSpacing=e.readUint32(),this.vSpacing=e.readUint32()}),c.createBoxCtor(`payl`,`CuePayloadBox`,function(e){this.text=e.readString(this.size-this.hdr_size)}),c.createBoxCtor(`payt`,`hintpayloadID`,function(e){this.payloadID=e.readUint32();var t=e.readUint8();this.rtpmap_string=e.readString(t)}),c.createFullBoxCtor(`pdin`,`ProgressiveDownloadInfoBox`,function(e){var t=(this.size-this.hdr_size)/8;this.rate=[],this.initial_delay=[];for(var n=0;n<t;n++)this.rate[n]=e.readUint32(),this.initial_delay[n]=e.readUint32()}),c.createFullBoxCtor(`pitm`,`PrimaryItemBox`,function(e){this.version===0?this.item_id=e.readUint16():this.item_id=e.readUint32()}),c.createFullBoxCtor(`pixi`,`PixelInformationProperty`,function(e){var t;for(this.num_channels=e.readUint8(),this.bits_per_channels=[],t=0;t<this.num_channels;t++)this.bits_per_channels[t]=e.readUint8()}),c.createBoxCtor(`pmax`,`hintlargestpacket`,function(e){this.bytes=e.readUint32()}),c.createFullBoxCtor(`prdi`,`ProgressiveDerivedImageItemInformationProperty`,function(e){if(this.step_count=e.readUint16(),this.item_count=[],this.flags&2)for(var t=0;t<this.step_count;t++)this.item_count[t]=e.readUint16()}),c.createFullBoxCtor(`prft`,`ProducerReferenceTimeBox`,function(e){this.ref_track_id=e.readUint32(),this.ntp_timestamp=e.readUint64(),this.version===0?this.media_time=e.readUint32():this.media_time=e.readUint64()}),c.createFullBoxCtor(`pssh`,`ProtectionSystemSpecificHeaderBox`,function(e){if(this.system_id=c.parseHex16(e),this.version>0){var t=e.readUint32();this.kid=[];for(var n=0;n<t;n++)this.kid[n]=c.parseHex16(e)}var r=e.readUint32();r>0&&(this.data=e.readUint8Array(r))}),c.createFullBoxCtor(`clef`,`TrackCleanApertureDimensionsBox`,function(e){this.width=e.readUint32(),this.height=e.readUint32()}),c.createFullBoxCtor(`enof`,`TrackEncodedPixelsDimensionsBox`,function(e){this.width=e.readUint32(),this.height=e.readUint32()}),c.createFullBoxCtor(`prof`,`TrackProductionApertureDimensionsBox`,function(e){this.width=e.readUint32(),this.height=e.readUint32()}),c.createContainerBoxCtor(`tapt`,`TrackApertureModeDimensionsBox`,null,[`clef`,`prof`,`enof`]),c.createBoxCtor(`rtp `,`rtpmoviehintinformation`,function(e){this.descriptionformat=e.readString(4),this.sdptext=e.readString(this.size-this.hdr_size-4)}),c.createFullBoxCtor(`saio`,`SampleAuxiliaryInformationOffsetsBox`,function(e){this.flags&1&&(this.aux_info_type=e.readString(4),this.aux_info_type_parameter=e.readUint32());var t=e.readUint32();this.offset=[];for(var n=0;n<t;n++)this.version===0?this.offset[n]=e.readUint32():this.offset[n]=e.readUint64()}),c.createFullBoxCtor(`saiz`,`SampleAuxiliaryInformationSizesBox`,function(e){if(this.flags&1&&(this.aux_info_type=e.readString(4),this.aux_info_type_parameter=e.readUint32()),this.default_sample_info_size=e.readUint8(),this.sample_count=e.readUint32(),this.sample_info_size=[],this.default_sample_info_size===0)for(var t=0;t<this.sample_count;t++)this.sample_info_size[t]=e.readUint8()}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA,`mett`,function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA,`metx`,function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.namespace=e.readCString(),this.schema_location=e.readCString(),this.parseFooter(e)}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,`sbtt`,function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,`stpp`,function(e){this.parseHeader(e),this.namespace=e.readCString(),this.schema_location=e.readCString(),this.auxiliary_mime_types=e.readCString(),this.parseFooter(e)}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,`stxt`,function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,`tx3g`,function(e){this.parseHeader(e),this.displayFlags=e.readUint32(),this.horizontal_justification=e.readInt8(),this.vertical_justification=e.readInt8(),this.bg_color_rgba=e.readUint8Array(4),this.box_record=e.readInt16Array(4),this.style_record=e.readUint8Array(12),this.parseFooter(e)}),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA,`wvtt`,function(e){this.parseHeader(e),this.parseFooter(e)}),c.createSampleGroupCtor(`alst`,function(e){var t,n=e.readUint16();for(this.first_output_sample=e.readUint16(),this.sample_offset=[],t=0;t<n;t++)this.sample_offset[t]=e.readUint32();var r=this.description_length-4-4*n;for(this.num_output_samples=[],this.num_total_samples=[],t=0;t<r/4;t++)this.num_output_samples[t]=e.readUint16(),this.num_total_samples[t]=e.readUint16()}),c.createSampleGroupCtor(`avll`,function(e){this.layerNumber=e.readUint8(),this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()}),c.createSampleGroupCtor(`avss`,function(e){this.subSequenceIdentifier=e.readUint16(),this.layerNumber=e.readUint8();var t=e.readUint8();this.durationFlag=t>>7,this.avgRateFlag=t>>6&1,this.durationFlag&&(this.duration=e.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()),this.dependency=[];for(var n=e.readUint8(),r=0;r<n;r++){var a={};this.dependency.push(a),a.subSeqDirectionFlag=e.readUint8(),a.layerNumber=e.readUint8(),a.subSequenceIdentifier=e.readUint16()}}),c.createSampleGroupCtor(`dtrt`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createSampleGroupCtor(`mvif`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createSampleGroupCtor(`prol`,function(e){this.roll_distance=e.readInt16()}),c.createSampleGroupCtor(`rap `,function(e){var t=e.readUint8();this.num_leading_samples_known=t>>7,this.num_leading_samples=t&127}),c.createSampleGroupCtor(`rash`,function(e){if(this.operation_point_count=e.readUint16(),this.description_length!==2+(this.operation_point_count===1?2:this.operation_point_count*6)+9)t.warn(`BoxParser`,`Mismatch in `+this.grouping_type+` sample group length`),this.data=e.readUint8Array(this.description_length-2);else{if(this.operation_point_count===1)this.target_rate_share=e.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var n=0;n<this.operation_point_count;n++)this.available_bitrate[n]=e.readUint32(),this.target_rate_share[n]=e.readUint16()}this.maximum_bitrate=e.readUint32(),this.minimum_bitrate=e.readUint32(),this.discard_priority=e.readUint8()}}),c.createSampleGroupCtor(`roll`,function(e){this.roll_distance=e.readInt16()}),c.SampleGroupEntry.prototype.parse=function(e){t.warn(`BoxParser`,`Unknown Sample Group type: `+this.grouping_type),this.data=e.readUint8Array(this.description_length)},c.createSampleGroupCtor(`scif`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createSampleGroupCtor(`scnm`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createSampleGroupCtor(`seig`,function(e){this.reserved=e.readUint8();var t=e.readUint8();this.crypt_byte_block=t>>4,this.skip_byte_block=t&15,this.isProtected=e.readUint8(),this.Per_Sample_IV_Size=e.readUint8(),this.KID=c.parseHex16(e),this.constant_IV_size=0,this.constant_IV=0,this.isProtected===1&&this.Per_Sample_IV_Size===0&&(this.constant_IV_size=e.readUint8(),this.constant_IV=e.readUint8Array(this.constant_IV_size))}),c.createSampleGroupCtor(`stsa`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createSampleGroupCtor(`sync`,function(e){var t=e.readUint8();this.NAL_unit_type=t&63}),c.createSampleGroupCtor(`tele`,function(e){var t=e.readUint8();this.level_independently_decodable=t>>7}),c.createSampleGroupCtor(`tsas`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createSampleGroupCtor(`tscl`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createSampleGroupCtor(`vipr`,function(e){t.warn(`BoxParser`,`Sample Group type: `+this.grouping_type+` not fully parsed`)}),c.createFullBoxCtor(`sbgp`,`SampleToGroupBox`,function(e){this.grouping_type=e.readString(4),this.version===1?this.grouping_type_parameter=e.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var t=e.readUint32(),n=0;n<t;n++){var r={};this.entries.push(r),r.sample_count=e.readInt32(),r.group_description_index=e.readInt32()}});function d(e,t){this.bad_pixel_row=e,this.bad_pixel_column=t}d.prototype.toString=function(){return`[row: `+this.bad_pixel_row+`, column: `+this.bad_pixel_column+`]`},c.createFullBoxCtor(`sbpm`,`SensorBadPixelsMapBox`,function(e){var t;for(this.component_count=e.readUint16(),this.component_index=[],t=0;t<this.component_count;t++)this.component_index.push(e.readUint16());var n=e.readUint8();for(this.correction_applied=(n&128)==128,this.num_bad_rows=e.readUint32(),this.num_bad_cols=e.readUint32(),this.num_bad_pixels=e.readUint32(),this.bad_rows=[],this.bad_columns=[],this.bad_pixels=[],t=0;t<this.num_bad_rows;t++)this.bad_rows.push(e.readUint32());for(t=0;t<this.num_bad_cols;t++)this.bad_columns.push(e.readUint32());for(t=0;t<this.num_bad_pixels;t++){var r=e.readUint32(),a=e.readUint32();this.bad_pixels.push(new d(r,a))}}),c.createFullBoxCtor(`schm`,`SchemeTypeBox`,function(e){this.scheme_type=e.readString(4),this.scheme_version=e.readUint32(),this.flags&1&&(this.scheme_uri=e.readString(this.size-this.hdr_size-8))}),c.createBoxCtor(`sdp `,`rtptracksdphintinformation`,function(e){this.sdptext=e.readString(this.size-this.hdr_size)}),c.createFullBoxCtor(`sdtp`,`SampleDependencyTypeBox`,function(e){var t,n=this.size-this.hdr_size;this.is_leading=[],this.sample_depends_on=[],this.sample_is_depended_on=[],this.sample_has_redundancy=[];for(var r=0;r<n;r++)t=e.readUint8(),this.is_leading[r]=t>>6,this.sample_depends_on[r]=t>>4&3,this.sample_is_depended_on[r]=t>>2&3,this.sample_has_redundancy[r]=t&3}),c.createFullBoxCtor(`senc`,`SampleEncryptionBox`),c.createFullBoxCtor(`sgpd`,`SampleGroupDescriptionBox`,function(e){this.grouping_type=e.readString(4),t.debug(`BoxParser`,`Found Sample Groups of type `+this.grouping_type),this.version===1?this.default_length=e.readUint32():this.default_length=0,this.version>=2&&(this.default_group_description_index=e.readUint32()),this.entries=[];for(var n=e.readUint32(),r=0;r<n;r++){var a=c[this.grouping_type+`SampleGroupEntry`]?new c[this.grouping_type+`SampleGroupEntry`](this.grouping_type):new c.SampleGroupEntry(this.grouping_type);this.entries.push(a),this.version===1&&this.default_length===0?a.description_length=e.readUint32():a.description_length=this.default_length,a.write===c.SampleGroupEntry.prototype.write&&(t.info(`BoxParser`,`SampleGroup for type `+this.grouping_type+` writing not yet implemented, keeping unparsed data in memory for later write`),a.data=e.readUint8Array(a.description_length),e.position-=a.description_length),a.parse(e)}}),c.createFullBoxCtor(`sidx`,`CompressedSegmentIndexBox`,function(e){this.reference_ID=e.readUint32(),this.timescale=e.readUint32(),this.version===0?(this.earliest_presentation_time=e.readUint32(),this.first_offset=e.readUint32()):(this.earliest_presentation_time=e.readUint64(),this.first_offset=e.readUint64()),e.readUint16(),this.references=[];for(var t=e.readUint16(),n=0;n<t;n++){var r={};this.references.push(r);var a=e.readUint32();r.reference_type=a>>31&1,r.referenced_size=a&2147483647,r.subsegment_duration=e.readUint32(),a=e.readUint32(),r.starts_with_SAP=a>>31&1,r.SAP_type=a>>28&7,r.SAP_delta_time=a&268435455}}),c.SingleItemTypeReferenceBox=function(e,t,n,r){c.Box.call(this,e,t),this.hdr_size=n,this.start=r},c.SingleItemTypeReferenceBox.prototype=new c.Box,c.SingleItemTypeReferenceBox.prototype.parse=function(e){this.from_item_ID=e.readUint16();var t=e.readUint16();this.references=[];for(var n=0;n<t;n++)this.references[n]={},this.references[n].to_item_ID=e.readUint16()},c.SingleItemTypeReferenceBoxLarge=function(e,t,n,r){c.Box.call(this,e,t),this.hdr_size=n,this.start=r},c.SingleItemTypeReferenceBoxLarge.prototype=new c.Box,c.SingleItemTypeReferenceBoxLarge.prototype.parse=function(e){this.from_item_ID=e.readUint32();var t=e.readUint16();this.references=[];for(var n=0;n<t;n++)this.references[n]={},this.references[n].to_item_ID=e.readUint32()},c.createFullBoxCtor(`SmDm`,`SMPTE2086MasteringDisplayMetadataBox`,function(e){this.primaryRChromaticity_x=e.readUint16(),this.primaryRChromaticity_y=e.readUint16(),this.primaryGChromaticity_x=e.readUint16(),this.primaryGChromaticity_y=e.readUint16(),this.primaryBChromaticity_x=e.readUint16(),this.primaryBChromaticity_y=e.readUint16(),this.whitePointChromaticity_x=e.readUint16(),this.whitePointChromaticity_y=e.readUint16(),this.luminanceMax=e.readUint32(),this.luminanceMin=e.readUint32()}),c.createFullBoxCtor(`smhd`,`SoundMediaHeaderBox`,function(e){this.balance=e.readUint16(),e.readUint16()}),c.createFullBoxCtor(`ssix`,`CompressedSubsegmentIndexBox`,function(e){this.subsegments=[];for(var t=e.readUint32(),n=0;n<t;n++){var r={};this.subsegments.push(r),r.ranges=[];for(var a=e.readUint32(),o=0;o<a;o++){var s={};r.ranges.push(s),s.level=e.readUint8(),s.range_size=e.readUint24()}}}),c.createFullBoxCtor(`stco`,`ChunkOffsetBox`,function(e){var t=e.readUint32();if(this.chunk_offsets=[],this.version===0)for(var n=0;n<t;n++)this.chunk_offsets.push(e.readUint32())}),c.createFullBoxCtor(`stdp`,`DegradationPriorityBox`,function(e){var t=(this.size-this.hdr_size)/2;this.priority=[];for(var n=0;n<t;n++)this.priority[n]=e.readUint16()}),c.createFullBoxCtor(`sthd`,`SubtitleMediaHeaderBox`),c.createFullBoxCtor(`stri`,`SubTrackInformationBox`,function(e){this.switch_group=e.readUint16(),this.alternate_group=e.readUint16(),this.sub_track_id=e.readUint32();var t=(this.size-this.hdr_size-8)/4;this.attribute_list=[];for(var n=0;n<t;n++)this.attribute_list[n]=e.readUint32()}),c.createFullBoxCtor(`stsc`,`SampleToChunkBox`,function(e){var t=e.readUint32(),n;if(this.first_chunk=[],this.samples_per_chunk=[],this.sample_description_index=[],this.version===0)for(n=0;n<t;n++)this.first_chunk.push(e.readUint32()),this.samples_per_chunk.push(e.readUint32()),this.sample_description_index.push(e.readUint32())}),c.createFullBoxCtor(`stsd`,`SampleDescriptionBox`,function(e){var n,r,a,o;for(this.entries=[],a=e.readUint32(),n=1;n<=a;n++)if(r=c.parseOneBox(e,!0,this.size-(e.getPosition()-this.start)),r.code===c.OK)c[r.type+`SampleEntry`]?(o=new c[r.type+`SampleEntry`](r.size),o.hdr_size=r.hdr_size,o.start=r.start):(t.warn(`BoxParser`,`Unknown sample entry type: `+r.type),o=new c.SampleEntry(r.type,r.size,r.hdr_size,r.start)),o.write===c.SampleEntry.prototype.write&&(t.info(`BoxParser`,`SampleEntry `+o.type+` box writing not yet implemented, keeping unparsed data in memory for later write`),o.parseDataAndRewind(e)),o.parse(e),this.entries.push(o);else return}),c.createFullBoxCtor(`stsg`,`SubTrackSampleGroupBox`,function(e){this.grouping_type=e.readUint32();var t=e.readUint16();this.group_description_index=[];for(var n=0;n<t;n++)this.group_description_index[n]=e.readUint32()}),c.createFullBoxCtor(`stsh`,`ShadowSyncSampleBox`,function(e){var t=e.readUint32(),n;if(this.shadowed_sample_numbers=[],this.sync_sample_numbers=[],this.version===0)for(n=0;n<t;n++)this.shadowed_sample_numbers.push(e.readUint32()),this.sync_sample_numbers.push(e.readUint32())}),c.createFullBoxCtor(`stss`,`SyncSampleBox`,function(e){var t,n=e.readUint32();if(this.version===0)for(this.sample_numbers=[],t=0;t<n;t++)this.sample_numbers.push(e.readUint32())}),c.createFullBoxCtor(`stsz`,`SampleSizeBox`,function(e){var t;if(this.sample_sizes=[],this.version===0)for(this.sample_size=e.readUint32(),this.sample_count=e.readUint32(),t=0;t<this.sample_count;t++)this.sample_size===0?this.sample_sizes.push(e.readUint32()):this.sample_sizes[t]=this.sample_size}),c.createFullBoxCtor(`stts`,`TimeToSampleBox`,function(e){var n=e.readUint32(),r,a;if(this.sample_counts=[],this.sample_deltas=[],this.version===0)for(r=0;r<n;r++)this.sample_counts.push(e.readUint32()),a=e.readInt32(),a<0&&(t.warn(`BoxParser`,`File uses negative stts sample delta, using value 1 instead, sync may be lost!`),a=1),this.sample_deltas.push(a)}),c.createFullBoxCtor(`stvi`,`StereoVideoBox`,function(e){var t=e.readUint32();this.single_view_allowed=t&3,this.stereo_scheme=e.readUint32();var n=e.readUint32();this.stereo_indication_type=e.readString(n);var r,a;for(this.boxes=[];e.getPosition()<this.start+this.size;)if(r=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),r.code===c.OK)a=r.box,this.boxes.push(a),this[a.type]=a;else return}),c.createBoxCtor(`styp`,`SegmentTypeBox`,function(e){c.ftypBox.prototype.parse.call(this,e)}),c.createFullBoxCtor(`stz2`,`CompactSampleSizeBox`,function(e){var n,r;if(this.sample_sizes=[],this.version===0)if(this.reserved=e.readUint24(),this.field_size=e.readUint8(),r=e.readUint32(),this.field_size===4)for(n=0;n<r;n+=2){var a=e.readUint8();this.sample_sizes[n]=a>>4&15,this.sample_sizes[n+1]=a&15}else if(this.field_size===8)for(n=0;n<r;n++)this.sample_sizes[n]=e.readUint8();else if(this.field_size===16)for(n=0;n<r;n++)this.sample_sizes[n]=e.readUint16();else t.error(`BoxParser`,`Error in length field in stz2 box`)}),c.createFullBoxCtor(`subs`,`SubSampleInformationBox`,function(e){var t,n,r=e.readUint32(),a;for(this.entries=[],t=0;t<r;t++){var o={};if(this.entries[t]=o,o.sample_delta=e.readUint32(),o.subsamples=[],a=e.readUint16(),a>0)for(n=0;n<a;n++){var s={};o.subsamples.push(s),this.version==1?s.size=e.readUint32():s.size=e.readUint16(),s.priority=e.readUint8(),s.discardable=e.readUint8(),s.codec_specific_parameters=e.readUint32()}}}),c.createFullBoxCtor(`tenc`,`TrackEncryptionBox`,function(e){if(e.readUint8(),this.version===0)e.readUint8();else{var t=e.readUint8();this.default_crypt_byte_block=t>>4&15,this.default_skip_byte_block=t&15}this.default_isProtected=e.readUint8(),this.default_Per_Sample_IV_Size=e.readUint8(),this.default_KID=c.parseHex16(e),this.default_isProtected===1&&this.default_Per_Sample_IV_Size===0&&(this.default_constant_IV_size=e.readUint8(),this.default_constant_IV=e.readUint8Array(this.default_constant_IV_size))}),c.createFullBoxCtor(`tfdt`,`TrackFragmentBaseMediaDecodeTimeBox`,function(e){this.version==1?this.baseMediaDecodeTime=e.readUint64():this.baseMediaDecodeTime=e.readUint32()}),c.createFullBoxCtor(`tfhd`,`TrackFragmentHeaderBox`,function(e){var t=0;this.track_id=e.readUint32(),this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=e.readUint64(),t+=8):this.base_data_offset=0,this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=e.readUint32(),t+=4):this.default_sample_description_index=0,this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=e.readUint32(),t+=4):this.default_sample_duration=0,this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=e.readUint32(),t+=4):this.default_sample_size=0,this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_SAMPLE_FLAGS?(this.default_sample_flags=e.readUint32(),t+=4):this.default_sample_flags=0}),c.createFullBoxCtor(`tfra`,`TrackFragmentRandomAccessBox`,function(e){this.track_ID=e.readUint32(),e.readUint24();var t=e.readUint8();this.length_size_of_traf_num=t>>4&3,this.length_size_of_trun_num=t>>2&3,this.length_size_of_sample_num=t&3,this.entries=[];for(var n=e.readUint32(),r=0;r<n;r++)this.version===1?(this.time=e.readUint64(),this.moof_offset=e.readUint64()):(this.time=e.readUint32(),this.moof_offset=e.readUint32()),this.traf_number=e[`readUint`+8*(this.length_size_of_traf_num+1)](),this.trun_number=e[`readUint`+8*(this.length_size_of_trun_num+1)](),this.sample_number=e[`readUint`+8*(this.length_size_of_sample_num+1)]()}),c.createFullBoxCtor(`tkhd`,`TrackHeaderBox`,function(e){this.version==1?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.track_id=e.readUint32(),e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.track_id=e.readUint32(),e.readUint32(),this.duration=e.readUint32()),e.readUint32Array(2),this.layer=e.readInt16(),this.alternate_group=e.readInt16(),this.volume=e.readInt16()>>8,e.readUint16(),this.matrix=e.readInt32Array(9),this.width=e.readUint32(),this.height=e.readUint32()}),c.createBoxCtor(`tmax`,`hintmaxrelativetime`,function(e){this.time=e.readUint32()}),c.createBoxCtor(`tmin`,`hintminrelativetime`,function(e){this.time=e.readUint32()}),c.createBoxCtor(`totl`,`hintBytesSent`,function(e){this.bytessent=e.readUint32()}),c.createBoxCtor(`tpay`,`hintBytesSent`,function(e){this.bytessent=e.readUint32()}),c.createBoxCtor(`tpyl`,`hintBytesSent`,function(e){this.bytessent=e.readUint64()}),c.TrackGroupTypeBox.prototype.parse=function(e){this.parseFullHeader(e),this.track_group_id=e.readUint32()},c.createTrackGroupCtor(`msrc`),c.TrackReferenceTypeBox=function(e,t,n,r){c.Box.call(this,e,t),this.hdr_size=n,this.start=r},c.TrackReferenceTypeBox.prototype=new c.Box,c.TrackReferenceTypeBox.prototype.parse=function(e){this.track_ids=e.readUint32Array((this.size-this.hdr_size)/4)},c.trefBox.prototype.parse=function(e){for(var n,r;e.getPosition()<this.start+this.size;)if(n=c.parseOneBox(e,!0,this.size-(e.getPosition()-this.start)),n.code===c.OK)r=new c.TrackReferenceTypeBox(n.type,n.size,n.hdr_size,n.start),r.write===c.Box.prototype.write&&r.type!==`mdat`&&(t.info(`BoxParser`,`TrackReference `+r.type+` box writing not yet implemented, keeping unparsed data in memory for later write`),r.parseDataAndRewind(e)),r.parse(e),this.boxes.push(r);else return},c.createFullBoxCtor(`trep`,`TrackExtensionPropertiesBox`,function(e){for(this.track_ID=e.readUint32(),this.boxes=[];e.getPosition()<this.start+this.size;)if(ret=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),ret.code===c.OK)box=ret.box,this.boxes.push(box);else return}),c.createFullBoxCtor(`trex`,`TrackExtendsBox`,function(e){this.track_id=e.readUint32(),this.default_sample_description_index=e.readUint32(),this.default_sample_duration=e.readUint32(),this.default_sample_size=e.readUint32(),this.default_sample_flags=e.readUint32()}),c.createBoxCtor(`trpy`,`hintBytesSent`,function(e){this.bytessent=e.readUint64()}),c.createFullBoxCtor(`trun`,`TrackRunBox`,function(e){var t=0;if(this.sample_count=e.readUint32(),t+=4,this.size-this.hdr_size>t&&this.flags&c.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=e.readInt32(),t+=4):this.data_offset=0,this.size-this.hdr_size>t&&this.flags&c.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=e.readUint32(),t+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>t)for(var n=0;n<this.sample_count;n++)this.flags&c.TRUN_FLAGS_DURATION&&(this.sample_duration[n]=e.readUint32()),this.flags&c.TRUN_FLAGS_SIZE&&(this.sample_size[n]=e.readUint32()),this.flags&c.TRUN_FLAGS_FLAGS&&(this.sample_flags[n]=e.readUint32()),this.flags&c.TRUN_FLAGS_CTS_OFFSET&&(this.version===0?this.sample_composition_time_offset[n]=e.readUint32():this.sample_composition_time_offset[n]=e.readInt32())}),c.createFullBoxCtor(`tsel`,`TrackSelectionBox`,function(e){this.switch_group=e.readUint32();var t=(this.size-this.hdr_size-4)/4;this.attribute_list=[];for(var n=0;n<t;n++)this.attribute_list[n]=e.readUint32()}),c.createFullBoxCtor(`txtC`,`TextConfigBox`,function(e){this.config=e.readCString()}),c.createBoxCtor(`tyco`,`TypeCombinationBox`,function(e){var t=(this.size-this.hdr_size)/4;this.compatible_brands=[];for(var n=0;n<t;n++)this.compatible_brands[n]=e.readString(4)}),c.createFullBoxCtor(`udes`,`UserDescriptionProperty`,function(e){this.lang=e.readCString(),this.name=e.readCString(),this.description=e.readCString(),this.tags=e.readCString()}),c.createFullBoxCtor(`uncC`,`UncompressedFrameConfigBox`,function(e){var t;if(this.profile=e.readString(4),this.version!=1&&this.version==0){for(this.component_count=e.readUint32(),this.component_index=[],this.component_bit_depth_minus_one=[],this.component_format=[],this.component_align_size=[],t=0;t<this.component_count;t++)this.component_index.push(e.readUint16()),this.component_bit_depth_minus_one.push(e.readUint8()),this.component_format.push(e.readUint8()),this.component_align_size.push(e.readUint8());this.sampling_type=e.readUint8(),this.interleave_type=e.readUint8(),this.block_size=e.readUint8();var n=e.readUint8();this.component_little_endian=n>>7&1,this.block_pad_lsb=n>>6&1,this.block_little_endian=n>>5&1,this.block_reversed=n>>4&1,this.pad_unknown=n>>3&1,this.pixel_size=e.readUint32(),this.row_align_size=e.readUint32(),this.tile_align_size=e.readUint32(),this.num_tile_cols_minus_one=e.readUint32(),this.num_tile_rows_minus_one=e.readUint32()}}),c.createFullBoxCtor(`url `,`DataEntryUrlBox`,function(e){this.flags!==1&&(this.location=e.readCString())}),c.createFullBoxCtor(`urn `,`DataEntryUrnBox`,function(e){this.name=e.readCString(),this.size-this.hdr_size-this.name.length-1>0&&(this.location=e.readCString())}),c.createUUIDBox(`a5d40b30e81411ddba2f0800200c9a66`,`LiveServerManifestBox`,!0,!1,function(e){this.LiveServerManifest=e.readString(this.size-this.hdr_size).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}),c.createUUIDBox(`d08a4f1810f34a82b6c832d8aba183d3`,`PiffProtectionSystemSpecificHeaderBox`,!0,!1,function(e){this.system_id=c.parseHex16(e);var t=e.readUint32();t>0&&(this.data=e.readUint8Array(t))}),c.createUUIDBox(`a2394f525a9b4f14a2446c427c648df4`,`PiffSampleEncryptionBox`,!0,!1),c.createUUIDBox(`8974dbce7be74c5184f97148f9882554`,`PiffTrackEncryptionBox`,!0,!1,function(e){this.default_AlgorithmID=e.readUint24(),this.default_IV_size=e.readUint8(),this.default_KID=c.parseHex16(e)}),c.createUUIDBox(`d4807ef2ca3946958e5426cb9e46a79f`,`TfrfBox`,!0,!1,function(e){this.fragment_count=e.readUint8(),this.entries=[];for(var t=0;t<this.fragment_count;t++){var n={},r=0,a=0;this.version===1?(r=e.readUint64(),a=e.readUint64()):(r=e.readUint32(),a=e.readUint32()),n.absolute_time=r,n.absolute_duration=a,this.entries.push(n)}}),c.createUUIDBox(`6d1d9b0542d544e680e2141daff757b2`,`TfxdBox`,!0,!1,function(e){this.version===1?(this.absolute_time=e.readUint64(),this.duration=e.readUint64()):(this.absolute_time=e.readUint32(),this.duration=e.readUint32())}),c.createFullBoxCtor(`vmhd`,`VideoMediaHeaderBox`,function(e){this.graphicsmode=e.readUint16(),this.opcolor=e.readUint16Array(3)}),c.createFullBoxCtor(`vpcC`,`VPCodecConfigurationRecord`,function(e){var t;this.version===1?(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4,this.chromaSubsampling=t>>1&7,this.videoFullRangeFlag=t&1,this.colourPrimaries=e.readUint8(),this.transferCharacteristics=e.readUint8(),this.matrixCoefficients=e.readUint8(),this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize)):(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4&15,this.colorSpace=t&15,t=e.readUint8(),this.chromaSubsampling=t>>4&15,this.transferFunction=t>>1&7,this.videoFullRangeFlag=t&1,this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize))}),c.createBoxCtor(`vttC`,`WebVTTConfigurationBox`,function(e){this.text=e.readString(this.size-this.hdr_size)}),c.createFullBoxCtor(`vvcC`,`VvcConfigurationBox`,function(e){var t,n,r={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(e){this.held_bits=e.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(e){this.held_bits=e.readUint16(),this.num_held_bits=16},extract_bits:function(e){var t=this.held_bits>>this.num_held_bits-e&(1<<e)-1;return this.num_held_bits-=e,t}};if(r.stream_read_1_bytes(e),r.extract_bits(5),this.lengthSizeMinusOne=r.extract_bits(2),this.ptl_present_flag=r.extract_bits(1),this.ptl_present_flag){if(r.stream_read_2_bytes(e),this.ols_idx=r.extract_bits(9),this.num_sublayers=r.extract_bits(3),this.constant_frame_rate=r.extract_bits(2),this.chroma_format_idc=r.extract_bits(2),r.stream_read_1_bytes(e),this.bit_depth_minus8=r.extract_bits(3),r.extract_bits(5),r.stream_read_2_bytes(e),r.extract_bits(2),this.num_bytes_constraint_info=r.extract_bits(6),this.general_profile_idc=r.extract_bits(7),this.general_tier_flag=r.extract_bits(1),this.general_level_idc=e.readUint8(),r.stream_read_1_bytes(e),this.ptl_frame_only_constraint_flag=r.extract_bits(1),this.ptl_multilayer_enabled_flag=r.extract_bits(1),this.general_constraint_info=new Uint8Array(this.num_bytes_constraint_info),this.num_bytes_constraint_info){for(t=0;t<this.num_bytes_constraint_info-1;t++){var a=r.extract_bits(6);r.stream_read_1_bytes(e);var o=r.extract_bits(2);this.general_constraint_info[t]=a<<2|o}this.general_constraint_info[this.num_bytes_constraint_info-1]=r.extract_bits(6)}else r.extract_bits(6);if(this.num_sublayers>1){for(r.stream_read_1_bytes(e),this.ptl_sublayer_present_mask=0,n=this.num_sublayers-2;n>=0;--n){var s=r.extract_bits(1);this.ptl_sublayer_present_mask|=s<<n}for(n=this.num_sublayers;n<=8&&this.num_sublayers>1;++n)r.extract_bits(1);for(this.sublayer_level_idc=[],n=this.num_sublayers-2;n>=0;--n)this.ptl_sublayer_present_mask&1<<n&&(this.sublayer_level_idc[n]=e.readUint8())}if(this.ptl_num_sub_profiles=e.readUint8(),this.general_sub_profile_idc=[],this.ptl_num_sub_profiles)for(t=0;t<this.ptl_num_sub_profiles;t++)this.general_sub_profile_idc.push(e.readUint32());this.max_picture_width=e.readUint16(),this.max_picture_height=e.readUint16(),this.avg_frame_rate=e.readUint16()}var c=12,l=13;this.nalu_arrays=[];var u=e.readUint8();for(t=0;t<u;t++){var d=[];this.nalu_arrays.push(d),r.stream_read_1_bytes(e),d.completeness=r.extract_bits(1),r.extract_bits(2),d.nalu_type=r.extract_bits(5);var f=1;for(d.nalu_type!=l&&d.nalu_type!=c&&(f=e.readUint16()),n=0;n<f;n++){var p=e.readUint16();d.push({data:e.readUint8Array(p),length:p})}}}),c.createFullBoxCtor(`vvnC`,`VvcNALUConfigBox`,function(e){var t=strm.readUint8();this.lengthSizeMinusOne=t&3}),c.SampleEntry.prototype.isVideo=function(){return!1},c.SampleEntry.prototype.isAudio=function(){return!1},c.SampleEntry.prototype.isSubtitle=function(){return!1},c.SampleEntry.prototype.isMetadata=function(){return!1},c.SampleEntry.prototype.isHint=function(){return!1},c.SampleEntry.prototype.getCodec=function(){return this.type.replace(`.`,``)},c.SampleEntry.prototype.getWidth=function(){return``},c.SampleEntry.prototype.getHeight=function(){return``},c.SampleEntry.prototype.getChannelCount=function(){return``},c.SampleEntry.prototype.getSampleRate=function(){return``},c.SampleEntry.prototype.getSampleSize=function(){return``},c.VisualSampleEntry.prototype.isVideo=function(){return!0},c.VisualSampleEntry.prototype.getWidth=function(){return this.width},c.VisualSampleEntry.prototype.getHeight=function(){return this.height},c.AudioSampleEntry.prototype.isAudio=function(){return!0},c.AudioSampleEntry.prototype.getChannelCount=function(){return this.channel_count},c.AudioSampleEntry.prototype.getSampleRate=function(){return this.samplerate},c.AudioSampleEntry.prototype.getSampleSize=function(){return this.samplesize},c.SubtitleSampleEntry.prototype.isSubtitle=function(){return!0},c.MetadataSampleEntry.prototype.isMetadata=function(){return!0},c.decimalToHex=function(e,t){var n=Number(e).toString(16);for(t??=t=2;n.length<t;)n=`0`+n;return n},c.avc1SampleEntry.prototype.getCodec=c.avc2SampleEntry.prototype.getCodec=c.avc3SampleEntry.prototype.getCodec=c.avc4SampleEntry.prototype.getCodec=function(){var e=c.SampleEntry.prototype.getCodec.call(this);return this.avcC?e+`.`+c.decimalToHex(this.avcC.AVCProfileIndication)+c.decimalToHex(this.avcC.profile_compatibility)+c.decimalToHex(this.avcC.AVCLevelIndication):e},c.hev1SampleEntry.prototype.getCodec=c.hvc1SampleEntry.prototype.getCodec=function(){var e,t=c.SampleEntry.prototype.getCodec.call(this);if(this.hvcC){switch(t+=`.`,this.hvcC.general_profile_space){case 0:t+=``;break;case 1:t+=`A`;break;case 2:t+=`B`;break;case 3:t+=`C`;break}t+=this.hvcC.general_profile_idc,t+=`.`;var n=this.hvcC.general_profile_compatibility,r=0;for(e=0;e<32&&(r|=n&1,e!=31);e++)r<<=1,n>>=1;t+=c.decimalToHex(r,0),t+=`.`,this.hvcC.general_tier_flag===0?t+=`L`:t+=`H`,t+=this.hvcC.general_level_idc;var a=!1,o=``;for(e=5;e>=0;e--)(this.hvcC.general_constraint_indicator[e]||a)&&(o=`.`+c.decimalToHex(this.hvcC.general_constraint_indicator[e],0)+o,a=!0);t+=o}return t},c.vvc1SampleEntry.prototype.getCodec=c.vvi1SampleEntry.prototype.getCodec=function(){var e,t=c.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){t+=`.`+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?t+=`.H`:t+=`.L`,t+=this.vvcC.general_level_idc;var n=``;if(this.vvcC.general_constraint_info){var r=[],a=0;a|=this.vvcC.ptl_frame_only_constraint<<7,a|=this.vvcC.ptl_multilayer_enabled<<6;var o;for(e=0;e<this.vvcC.general_constraint_info.length;++e)a|=this.vvcC.general_constraint_info[e]>>2&63,r.push(a),a&&(o=e),a=this.vvcC.general_constraint_info[e]>>2&3;if(o===void 0)n=`.CA`;else{n=`.C`;var s=`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`,l=0,u=0;for(e=0;e<=o;++e)for(l=l<<8|r[e],u+=8;u>=5;){var d=l>>u-5&31;n+=s[d],u-=5,l&=(1<<u)-1}u&&(l<<=5-u,n+=s[l&31])}}t+=n}return t},c.mp4aSampleEntry.prototype.getCodec=function(){var e=c.SampleEntry.prototype.getCodec.call(this);if(this.esds&&this.esds.esd){var t=this.esds.esd.getOTI(),n=this.esds.esd.getAudioConfig();return e+`.`+c.decimalToHex(t)+(n?`.`+n:``)}else return e},c.stxtSampleEntry.prototype.getCodec=function(){var e=c.SampleEntry.prototype.getCodec.call(this);return this.mime_format?e+`.`+this.mime_format:e},c.vp08SampleEntry.prototype.getCodec=c.vp09SampleEntry.prototype.getCodec=function(){var e=c.SampleEntry.prototype.getCodec.call(this),t=this.vpcC.level;t==0&&(t=`00`);var n=this.vpcC.bitDepth;return n==8&&(n=`08`),e+`.0`+this.vpcC.profile+`.`+t+`.`+n},c.av01SampleEntry.prototype.getCodec=function(){var e=c.SampleEntry.prototype.getCodec.call(this),t=this.av1C.seq_level_idx_0;t<10&&(t=`0`+t);var n;return this.av1C.seq_profile===2&&this.av1C.high_bitdepth===1?n=this.av1C.twelve_bit===1?`12`:`10`:this.av1C.seq_profile<=2&&(n=this.av1C.high_bitdepth===1?`10`:`08`),e+`.`+this.av1C.seq_profile+`.`+t+(this.av1C.seq_tier_0?`H`:`M`)+`.`+n},c.Box.prototype.writeHeader=function(e,n){this.size+=8,this.size>a&&(this.size+=8),this.type===`uuid`&&(this.size+=16),t.debug(`BoxWriter`,`Writing box `+this.type+` of size: `+this.size+` at position `+e.getPosition()+(n||``)),this.size>a?e.writeUint32(1):(this.sizePosition=e.getPosition(),e.writeUint32(this.size)),e.writeString(this.type,null,4),this.type===`uuid`&&e.writeUint8Array(this.uuid),this.size>a&&e.writeUint64(this.size)},c.FullBox.prototype.writeHeader=function(e){this.size+=4,c.Box.prototype.writeHeader.call(this,e,` v=`+this.version+` f=`+this.flags),e.writeUint8(this.version),e.writeUint24(this.flags)},c.Box.prototype.write=function(e){this.type===`mdat`?this.data&&(this.size=this.data.length,this.writeHeader(e),e.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(e),this.data&&e.writeUint8Array(this.data))},c.ContainerBox.prototype.write=function(e){this.size=0,this.writeHeader(e);for(var n=0;n<this.boxes.length;n++)this.boxes[n]&&(this.boxes[n].write(e),this.size+=this.boxes[n].size);t.debug(`BoxWriter`,`Adjusting box `+this.type+` with new size `+this.size),e.adjustUint32(this.sizePosition,this.size)},c.TrackReferenceTypeBox.prototype.write=function(e){this.size=this.track_ids.length*4,this.writeHeader(e),e.writeUint32Array(this.track_ids)},c.avcCBox.prototype.write=function(e){var t;for(this.size=7,t=0;t<this.SPS.length;t++)this.size+=2+this.SPS[t].length;for(t=0;t<this.PPS.length;t++)this.size+=2+this.PPS[t].length;for(this.ext&&(this.size+=this.ext.length),this.writeHeader(e),e.writeUint8(this.configurationVersion),e.writeUint8(this.AVCProfileIndication),e.writeUint8(this.profile_compatibility),e.writeUint8(this.AVCLevelIndication),e.writeUint8(this.lengthSizeMinusOne+252),e.writeUint8(this.SPS.length+224),t=0;t<this.SPS.length;t++)e.writeUint16(this.SPS[t].length),e.writeUint8Array(this.SPS[t].nalu);for(e.writeUint8(this.PPS.length),t=0;t<this.PPS.length;t++)e.writeUint16(this.PPS[t].length),e.writeUint8Array(this.PPS[t].nalu);this.ext&&e.writeUint8Array(this.ext)},c.co64Box.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.chunk_offsets.length,this.writeHeader(e),e.writeUint32(this.chunk_offsets.length),t=0;t<this.chunk_offsets.length;t++)e.writeUint64(this.chunk_offsets[t])},c.cslgBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20,this.writeHeader(e),e.writeInt32(this.compositionToDTSShift),e.writeInt32(this.leastDecodeToDisplayDelta),e.writeInt32(this.greatestDecodeToDisplayDelta),e.writeInt32(this.compositionStartTime),e.writeInt32(this.compositionEndTime)},c.cttsBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(e),e.writeUint32(this.sample_counts.length),t=0;t<this.sample_counts.length;t++)e.writeUint32(this.sample_counts[t]),this.version===1?e.writeInt32(this.sample_offsets[t]):e.writeUint32(this.sample_offsets[t])},c.drefBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.entries.length);for(var n=0;n<this.entries.length;n++)this.entries[n].write(e),this.size+=this.entries[n].size;t.debug(`BoxWriter`,`Adjusting box `+this.type+` with new size `+this.size),e.adjustUint32(this.sizePosition,this.size)},c.elngBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=this.extended_language.length,this.writeHeader(e),e.writeString(this.extended_language)},c.elstBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+12*this.entries.length,this.writeHeader(e),e.writeUint32(this.entries.length);for(var t=0;t<this.entries.length;t++){var n=this.entries[t];e.writeUint32(n.segment_duration),e.writeInt32(n.media_time),e.writeInt16(n.media_rate_integer),e.writeInt16(n.media_rate_fraction)}},c.emsgBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=16+this.message_data.length+(this.scheme_id_uri.length+1)+(this.value.length+1),this.writeHeader(e),e.writeCString(this.scheme_id_uri),e.writeCString(this.value),e.writeUint32(this.timescale),e.writeUint32(this.presentation_time_delta),e.writeUint32(this.event_duration),e.writeUint32(this.id),e.writeUint8Array(this.message_data)},c.ftypBox.prototype.write=function(e){this.size=8+4*this.compatible_brands.length,this.writeHeader(e),e.writeString(this.major_brand,null,4),e.writeUint32(this.minor_version);for(var t=0;t<this.compatible_brands.length;t++)e.writeString(this.compatible_brands[t],null,4)},c.hdlrBox.prototype.write=function(e){this.size=20+this.name.length+1,this.version=0,this.flags=0,this.writeHeader(e),e.writeUint32(0),e.writeString(this.handler,null,4),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeCString(this.name)},c.hvcCBox.prototype.write=function(e){var t,n;for(this.size=23,t=0;t<this.nalu_arrays.length;t++)for(this.size+=3,n=0;n<this.nalu_arrays[t].length;n++)this.size+=2+this.nalu_arrays[t][n].data.length;for(this.writeHeader(e),e.writeUint8(this.configurationVersion),e.writeUint8((this.general_profile_space<<6)+(this.general_tier_flag<<5)+this.general_profile_idc),e.writeUint32(this.general_profile_compatibility),e.writeUint8Array(this.general_constraint_indicator),e.writeUint8(this.general_level_idc),e.writeUint16(this.min_spatial_segmentation_idc+(15<<24)),e.writeUint8(this.parallelismType+252),e.writeUint8(this.chroma_format_idc+252),e.writeUint8(this.bit_depth_luma_minus8+248),e.writeUint8(this.bit_depth_chroma_minus8+248),e.writeUint16(this.avgFrameRate),e.writeUint8((this.constantFrameRate<<6)+(this.numTemporalLayers<<3)+(this.temporalIdNested<<2)+this.lengthSizeMinusOne),e.writeUint8(this.nalu_arrays.length),t=0;t<this.nalu_arrays.length;t++)for(e.writeUint8((this.nalu_arrays[t].completeness<<7)+this.nalu_arrays[t].nalu_type),e.writeUint16(this.nalu_arrays[t].length),n=0;n<this.nalu_arrays[t].length;n++)e.writeUint16(this.nalu_arrays[t][n].data.length),e.writeUint8Array(this.nalu_arrays[t][n].data)},c.kindBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=this.schemeURI.length+1+(this.value.length+1),this.writeHeader(e),e.writeCString(this.schemeURI),e.writeCString(this.value)},c.mdhdBox.prototype.write=function(e){this.size=20,this.flags=0,this.version=0,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.timescale),e.writeUint32(this.duration),e.writeUint16(this.language),e.writeUint16(0)},c.mehdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.fragment_duration)},c.mfhdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.sequence_number)},c.mvhdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=96,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.timescale),e.writeUint32(this.duration),e.writeUint32(this.rate),e.writeUint16(this.volume<<8),e.writeUint16(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32Array(this.matrix),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(this.next_track_id)},c.SampleEntry.prototype.writeHeader=function(e){this.size=8,c.Box.prototype.writeHeader.call(this,e),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint16(this.data_reference_index)},c.SampleEntry.prototype.writeFooter=function(e){for(var n=0;n<this.boxes.length;n++)this.boxes[n].write(e),this.size+=this.boxes[n].size;t.debug(`BoxWriter`,`Adjusting box `+this.type+` with new size `+this.size),e.adjustUint32(this.sizePosition,this.size)},c.SampleEntry.prototype.write=function(e){this.writeHeader(e),e.writeUint8Array(this.data),this.size+=this.data.length,t.debug(`BoxWriter`,`Adjusting box `+this.type+` with new size `+this.size),e.adjustUint32(this.sizePosition,this.size)},c.VisualSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=70,e.writeUint16(0),e.writeUint16(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint16(this.width),e.writeUint16(this.height),e.writeUint32(this.horizresolution),e.writeUint32(this.vertresolution),e.writeUint32(0),e.writeUint16(this.frame_count),e.writeUint8(Math.min(31,this.compressorname.length)),e.writeString(this.compressorname,null,31),e.writeUint16(this.depth),e.writeInt16(-1),this.writeFooter(e)},c.AudioSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=20,e.writeUint32(0),e.writeUint32(0),e.writeUint16(this.channel_count),e.writeUint16(this.samplesize),e.writeUint16(0),e.writeUint16(0),e.writeUint32(this.samplerate<<16),this.writeFooter(e)},c.stppSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=this.namespace.length+1+this.schema_location.length+1+this.auxiliary_mime_types.length+1,e.writeCString(this.namespace),e.writeCString(this.schema_location),e.writeCString(this.auxiliary_mime_types),this.writeFooter(e)},c.SampleGroupEntry.prototype.write=function(e){e.writeUint8Array(this.data)},c.sbgpBox.prototype.write=function(e){this.version=1,this.flags=0,this.size=12+8*this.entries.length,this.writeHeader(e),e.writeString(this.grouping_type,null,4),e.writeUint32(this.grouping_type_parameter),e.writeUint32(this.entries.length);for(var t=0;t<this.entries.length;t++){var n=this.entries[t];e.writeInt32(n.sample_count),e.writeInt32(n.group_description_index)}},c.sgpdBox.prototype.write=function(e){var t,n;for(this.flags=0,this.size=12,t=0;t<this.entries.length;t++)n=this.entries[t],this.version===1&&(this.default_length===0&&(this.size+=4),this.size+=n.data.length);for(this.writeHeader(e),e.writeString(this.grouping_type,null,4),this.version===1&&e.writeUint32(this.default_length),this.version>=2&&e.writeUint32(this.default_sample_description_index),e.writeUint32(this.entries.length),t=0;t<this.entries.length;t++)n=this.entries[t],this.version===1&&this.default_length===0&&e.writeUint32(n.description_length),n.write(e)},c.sidxBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20+12*this.references.length,this.writeHeader(e),e.writeUint32(this.reference_ID),e.writeUint32(this.timescale),e.writeUint32(this.earliest_presentation_time),e.writeUint32(this.first_offset),e.writeUint16(0),e.writeUint16(this.references.length);for(var t=0;t<this.references.length;t++){var n=this.references[t];e.writeUint32(n.reference_type<<31|n.referenced_size),e.writeUint32(n.subsegment_duration),e.writeUint32(n.starts_with_SAP<<31|n.SAP_type<<28|n.SAP_delta_time)}},c.smhdBox.prototype.write=function(e){this.version=0,this.flags=1,this.size=4,this.writeHeader(e),e.writeUint16(this.balance),e.writeUint16(0)},c.stcoBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+4*this.chunk_offsets.length,this.writeHeader(e),e.writeUint32(this.chunk_offsets.length),e.writeUint32Array(this.chunk_offsets)},c.stscBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+12*this.first_chunk.length,this.writeHeader(e),e.writeUint32(this.first_chunk.length),t=0;t<this.first_chunk.length;t++)e.writeUint32(this.first_chunk[t]),e.writeUint32(this.samples_per_chunk[t]),e.writeUint32(this.sample_description_index[t])},c.stsdBox.prototype.write=function(e){var n;for(this.version=0,this.flags=0,this.size=0,this.writeHeader(e),e.writeUint32(this.entries.length),this.size+=4,n=0;n<this.entries.length;n++)this.entries[n].write(e),this.size+=this.entries[n].size;t.debug(`BoxWriter`,`Adjusting box `+this.type+` with new size `+this.size),e.adjustUint32(this.sizePosition,this.size)},c.stshBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.shadowed_sample_numbers.length,this.writeHeader(e),e.writeUint32(this.shadowed_sample_numbers.length),t=0;t<this.shadowed_sample_numbers.length;t++)e.writeUint32(this.shadowed_sample_numbers[t]),e.writeUint32(this.sync_sample_numbers[t])},c.stssBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+4*this.sample_numbers.length,this.writeHeader(e),e.writeUint32(this.sample_numbers.length),e.writeUint32Array(this.sample_numbers)},c.stszBox.prototype.write=function(e){var t,n=!0;if(this.version=0,this.flags=0,this.sample_sizes.length>0)for(t=0;t+1<this.sample_sizes.length;)if(this.sample_sizes[t+1]!==this.sample_sizes[0]){n=!1;break}else t++;else n=!1;this.size=8,n||(this.size+=4*this.sample_sizes.length),this.writeHeader(e),n?e.writeUint32(this.sample_sizes[0]):e.writeUint32(0),e.writeUint32(this.sample_sizes.length),n||e.writeUint32Array(this.sample_sizes)},c.sttsBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(e),e.writeUint32(this.sample_counts.length),t=0;t<this.sample_counts.length;t++)e.writeUint32(this.sample_counts[t]),e.writeUint32(this.sample_deltas[t])},c.tfdtBox.prototype.write=function(e){var t=2**32-1;this.version=+(this.baseMediaDecodeTime>t),this.flags=0,this.size=4,this.version===1&&(this.size+=4),this.writeHeader(e),this.version===1?e.writeUint64(this.baseMediaDecodeTime):e.writeUint32(this.baseMediaDecodeTime)},c.tfhdBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&c.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&c.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&c.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&c.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&c.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(e),e.writeUint32(this.track_id),this.flags&c.TFHD_FLAG_BASE_DATA_OFFSET&&e.writeUint64(this.base_data_offset),this.flags&c.TFHD_FLAG_SAMPLE_DESC&&e.writeUint32(this.default_sample_description_index),this.flags&c.TFHD_FLAG_SAMPLE_DUR&&e.writeUint32(this.default_sample_duration),this.flags&c.TFHD_FLAG_SAMPLE_SIZE&&e.writeUint32(this.default_sample_size),this.flags&c.TFHD_FLAG_SAMPLE_FLAGS&&e.writeUint32(this.default_sample_flags)},c.tkhdBox.prototype.write=function(e){this.version=0,this.size=80,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.track_id),e.writeUint32(0),e.writeUint32(this.duration),e.writeUint32(0),e.writeUint32(0),e.writeInt16(this.layer),e.writeInt16(this.alternate_group),e.writeInt16(this.volume<<8),e.writeUint16(0),e.writeInt32Array(this.matrix),e.writeUint32(this.width),e.writeUint32(this.height)},c.trexBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20,this.writeHeader(e),e.writeUint32(this.track_id),e.writeUint32(this.default_sample_description_index),e.writeUint32(this.default_sample_duration),e.writeUint32(this.default_sample_size),e.writeUint32(this.default_sample_flags)},c.trunBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&c.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&c.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&c.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&c.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&c.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&c.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(e),e.writeUint32(this.sample_count),this.flags&c.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=e.getPosition(),e.writeInt32(this.data_offset)),this.flags&c.TRUN_FLAGS_FIRST_FLAG&&e.writeUint32(this.first_sample_flags);for(var t=0;t<this.sample_count;t++)this.flags&c.TRUN_FLAGS_DURATION&&e.writeUint32(this.sample_duration[t]),this.flags&c.TRUN_FLAGS_SIZE&&e.writeUint32(this.sample_size[t]),this.flags&c.TRUN_FLAGS_FLAGS&&e.writeUint32(this.sample_flags[t]),this.flags&c.TRUN_FLAGS_CTS_OFFSET&&(this.version===0?e.writeUint32(this.sample_composition_time_offset[t]):e.writeInt32(this.sample_composition_time_offset[t]))},c[`url Box`].prototype.write=function(e){this.version=0,this.location?(this.flags=0,this.size=this.location.length+1):(this.flags=1,this.size=0),this.writeHeader(e),this.location&&e.writeCString(this.location)},c[`urn Box`].prototype.write=function(e){this.version=0,this.flags=0,this.size=this.name.length+1+(this.location?this.location.length+1:0),this.writeHeader(e),e.writeCString(this.name),this.location&&e.writeCString(this.location)},c.vmhdBox.prototype.write=function(e){this.version=0,this.flags=1,this.size=8,this.writeHeader(e),e.writeUint16(this.graphicsmode),e.writeUint16Array(this.opcolor)},c.cttsBox.prototype.unpack=function(e){var t,n,r=0;for(t=0;t<this.sample_counts.length;t++)for(n=0;n<this.sample_counts[t];n++)e[r].pts=e[r].dts+this.sample_offsets[t],r++},c.sttsBox.prototype.unpack=function(e){var t,n,r=0;for(t=0;t<this.sample_counts.length;t++)for(n=0;n<this.sample_counts[t];n++)r===0?e[r].dts=0:e[r].dts=e[r-1].dts+this.sample_deltas[t],r++},c.stcoBox.prototype.unpack=function(e){var t;for(t=0;t<this.chunk_offsets.length;t++)e[t].offset=this.chunk_offsets[t]},c.stscBox.prototype.unpack=function(e){var t,n,r,a=0,o=0;for(t=0;t<this.first_chunk.length;t++)for(n=0;n<(t+1<this.first_chunk.length?this.first_chunk[t+1]:1/0);n++)for(o++,r=0;r<this.samples_per_chunk[t];r++){if(e[a])e[a].description_index=this.sample_description_index[t],e[a].chunk_index=o;else return;a++}},c.stszBox.prototype.unpack=function(e){var t;for(t=0;t<this.sample_sizes.length;t++)e[t].size=this.sample_sizes[t]},c.DIFF_BOXES_PROP_NAMES=[`boxes`,`entries`,`references`,`subsamples`,`items`,`item_infos`,`extents`,`associations`,`subsegments`,`ranges`,`seekLists`,`seekPoints`,`esd`,`levels`],c.DIFF_PRIMITIVE_ARRAY_PROP_NAMES=[`compatible_brands`,`matrix`,`opcolor`,`sample_counts`,`sample_deltas`,`first_chunk`,`samples_per_chunk`,`sample_sizes`,`chunk_offsets`,`sample_offsets`,`sample_description_index`,`sample_duration`],c.boxEqualFields=function(e,t){if(e&&!t)return!1;for(var n in e)if(c.DIFF_BOXES_PROP_NAMES.indexOf(n)>-1)continue;else if(e[n]instanceof c.Box||t[n]instanceof c.Box)continue;else if(e[n]===void 0||t[n]===void 0)continue;else if(typeof e[n]==`function`||typeof t[n]==`function`)continue;else if(e.subBoxNames&&e.subBoxNames.indexOf(n.slice(0,4))>-1||t.subBoxNames&&t.subBoxNames.indexOf(n.slice(0,4))>-1)continue;else if(n===`data`||n===`start`||n===`size`||n===`creation_time`||n===`modification_time`)continue;else if(c.DIFF_PRIMITIVE_ARRAY_PROP_NAMES.indexOf(n)>-1)continue;else if(e[n]!==t[n])return!1;return!0},c.boxEqual=function(e,t){if(!c.boxEqualFields(e,t))return!1;for(var n=0;n<c.DIFF_BOXES_PROP_NAMES.length;n++){var r=c.DIFF_BOXES_PROP_NAMES[n];if(e[r]&&t[r]&&!c.boxEqual(e[r],t[r]))return!1}return!0};var f=function(){};f.prototype.parseSample=function(e){var t,r,a=new n(e.buffer);for(t=[];!a.isEos();)r=c.parseOneBox(a,!1),r.code===c.OK&&r.box.type===`vttc`&&t.push(r.box);return t},f.prototype.getText=function(e,t,n){function r(e,t,n){return n||=`0`,e+=``,e.length>=t?e:Array(t-e.length+1).join(n)+e}function a(e){var t=Math.floor(e/3600),n=Math.floor((e-t*3600)/60),a=Math.floor(e-t*3600-n*60),o=Math.floor((e-t*3600-n*60-a)*1e3);return``+r(t,2)+`:`+r(n,2)+`:`+r(a,2)+`.`+r(o,3)}for(var o=this.parseSample(n),s=``,c=0;c<o.length;c++){var l=o[c];s+=a(e)+` --> `+a(t)+`\r
|
|
112
|
+
`,s+=l.payl.text}return s};var p=function(){};p.prototype.parseSample=function(e){var t={},r;t.resources=[];var a=new n(e.data.buffer);if(!e.subsamples||e.subsamples.length===0)t.documentString=a.readString(e.data.length);else if(t.documentString=a.readString(e.subsamples[0].size),e.subsamples.length>1)for(r=1;r<e.subsamples.length;r++)t.resources[r]=a.readUint8Array(e.subsamples[r].size);return typeof DOMParser<`u`&&(t.document=new DOMParser().parseFromString(t.documentString,`application/xml`)),t};var m=function(){};m.prototype.parseSample=function(e){return new n(e.data.buffer).readString(e.data.length)},m.prototype.parseConfig=function(e){var t,r=new n(e.buffer);return r.readUint32(),t=r.readCString(),t},e!==void 0&&(e.VTTin4Parser=f,e.XMLSubtitlein4Parser=p,e.Textin4Parser=m);var h=function(e){this.stream=e||new o,this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.onMoovStart=null,this.moovStartSent=!1,this.onReady=null,this.readySent=!1,this.onSegment=null,this.onSamples=null,this.onError=null,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.items=[],this.entity_groups=[],this.onSidx=null,this.sidxSent=!1};h.prototype.setSegmentOptions=function(e,t,n){var r=this.getTrackById(e);if(r){var a={};this.fragmentedTracks.push(a),a.id=e,a.user=t,a.trak=r,r.nextSample=0,a.segmentStream=null,a.nb_samples=1e3,a.rapAlignement=!0,n&&(n.nbSamples&&(a.nb_samples=n.nbSamples),n.rapAlignement&&(a.rapAlignement=n.rapAlignement))}},h.prototype.unsetSegmentOptions=function(e){for(var t=-1,n=0;n<this.fragmentedTracks.length;n++)this.fragmentedTracks[n].id==e&&(t=n);t>-1&&this.fragmentedTracks.splice(t,1)},h.prototype.setExtractionOptions=function(e,t,n){var r=this.getTrackById(e);if(r){var a={};this.extractedTracks.push(a),a.id=e,a.user=t,a.trak=r,r.nextSample=0,a.nb_samples=1e3,a.samples=[],n&&n.nbSamples&&(a.nb_samples=n.nbSamples)}},h.prototype.unsetExtractionOptions=function(e){for(var t=-1,n=0;n<this.extractedTracks.length;n++)this.extractedTracks[n].id==e&&(t=n);t>-1&&this.extractedTracks.splice(t,1)},h.prototype.parse=function(){var e,n,r=!1;if(!(this.restoreParsePosition&&!this.restoreParsePosition()))for(;;)if(this.hasIncompleteMdat&&this.hasIncompleteMdat()){if(this.processIncompleteMdat())continue;return}else if(this.saveParsePosition&&this.saveParsePosition(),e=c.parseOneBox(this.stream,r),e.code===c.ERR_NOT_ENOUGH_DATA)if(this.processIncompleteBox){if(this.processIncompleteBox(e))continue;return}else return;else{var a;switch(n=e.box,a=n.type===`uuid`?n.uuid:n.type,this.boxes.push(n),a){case`mdat`:this.mdats.push(n);break;case`moof`:this.moofs.push(n);break;case`moov`:this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0);default:this[a]!==void 0&&t.warn(`ISOFile`,`Duplicate Box of type: `+a+`, overriding previous occurrence`),this[a]=n;break}this.updateUsedBytes&&this.updateUsedBytes(n,e)}},h.prototype.checkBuffer=function(e){if(e==null)throw`Buffer must be defined and non empty`;if(e.fileStart===void 0)throw`Buffer must have a fileStart property`;return e.byteLength===0?(t.warn(`ISOFile`,`Ignoring empty buffer (fileStart: `+e.fileStart+`)`),this.stream.logBufferLevel(),!1):(t.info(`ISOFile`,`Processing buffer (fileStart: `+e.fileStart+`)`),e.usedBytes=0,this.stream.insertBuffer(e),this.stream.logBufferLevel(),this.stream.initialized()?!0:(t.warn(`ISOFile`,`Not ready to start parsing`),!1))},h.prototype.appendBuffer=function(e,n){var r;if(this.checkBuffer(e))return this.parse(),this.moovStartFound&&!this.moovStartSent&&(this.moovStartSent=!0,this.onMoovStart&&this.onMoovStart()),this.moov?(this.sampleListBuilt||=(this.buildSampleLists(),!0),this.updateSampleLists(),this.onReady&&!this.readySent&&(this.readySent=!0,this.onReady(this.getInfo())),this.processSamples(n),this.nextSeekPosition?(r=this.nextSeekPosition,this.nextSeekPosition=void 0):r=this.nextParsePosition,this.stream.getEndFilePositionAfter&&(r=this.stream.getEndFilePositionAfter(r))):r=this.nextParsePosition?this.nextParsePosition:0,this.sidx&&this.onSidx&&!this.sidxSent&&(this.onSidx(this.sidx),this.sidxSent=!0),this.meta&&(this.flattenItemInfo&&!this.itemListBuilt&&(this.flattenItemInfo(),this.itemListBuilt=!0),this.processItems&&this.processItems(this.onItem)),this.stream.cleanBuffers&&(t.info(`ISOFile`,`Done processing buffer (fileStart: `+e.fileStart+`) - next buffer to fetch should have a fileStart position of `+r),this.stream.logBufferLevel(),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0),t.info(`ISOFile`,`Sample data size in memory: `+this.getAllocatedSampleDataSize())),r},h.prototype.getInfo=function(){var e,t,n={},r,a,o,s,c=new Date(`1904-01-01T00:00:00Z`).getTime();if(this.moov)for(n.hasMoov=!0,n.duration=this.moov.mvhd.duration,n.timescale=this.moov.mvhd.timescale,n.isFragmented=this.moov.mvex!=null,n.isFragmented&&this.moov.mvex.mehd&&(n.fragment_duration=this.moov.mvex.mehd.fragment_duration),n.isProgressive=this.isProgressive,n.hasIOD=this.moov.iods!=null,n.brands=[],n.brands.push(this.ftyp.major_brand),n.brands=n.brands.concat(this.ftyp.compatible_brands),n.created=new Date(c+this.moov.mvhd.creation_time*1e3),n.modified=new Date(c+this.moov.mvhd.modification_time*1e3),n.tracks=[],n.audioTracks=[],n.videoTracks=[],n.subtitleTracks=[],n.metadataTracks=[],n.hintTracks=[],n.otherTracks=[],e=0;e<this.moov.traks.length;e++){if(r=this.moov.traks[e],s=r.mdia.minf.stbl.stsd.entries[0],a={},n.tracks.push(a),a.id=r.tkhd.track_id,a.name=r.mdia.hdlr.name,a.references=[],r.tref)for(t=0;t<r.tref.boxes.length;t++)o={},a.references.push(o),o.type=r.tref.boxes[t].type,o.track_ids=r.tref.boxes[t].track_ids;r.edts&&(a.edits=r.edts.elst.entries),a.created=new Date(c+r.tkhd.creation_time*1e3),a.modified=new Date(c+r.tkhd.modification_time*1e3),a.movie_duration=r.tkhd.duration,a.movie_timescale=n.timescale,a.layer=r.tkhd.layer,a.alternate_group=r.tkhd.alternate_group,a.volume=r.tkhd.volume,a.matrix=r.tkhd.matrix,a.track_width=r.tkhd.width/65536,a.track_height=r.tkhd.height/65536,a.timescale=r.mdia.mdhd.timescale,a.cts_shift=r.mdia.minf.stbl.cslg,a.duration=r.mdia.mdhd.duration,a.samples_duration=r.samples_duration,a.codec=s.getCodec(),a.kind=r.udta&&r.udta.kinds.length?r.udta.kinds[0]:{schemeURI:``,value:``},a.language=r.mdia.elng?r.mdia.elng.extended_language:r.mdia.mdhd.languageString,a.nb_samples=r.samples.length,a.size=r.samples_size,a.bitrate=a.size*8*a.timescale/a.samples_duration,s.isAudio()?(a.type=`audio`,n.audioTracks.push(a),a.audio={},a.audio.sample_rate=s.getSampleRate(),a.audio.channel_count=s.getChannelCount(),a.audio.sample_size=s.getSampleSize()):s.isVideo()?(a.type=`video`,n.videoTracks.push(a),a.video={},a.video.width=s.getWidth(),a.video.height=s.getHeight()):s.isSubtitle()?(a.type=`subtitles`,n.subtitleTracks.push(a)):s.isHint()?(a.type=`metadata`,n.hintTracks.push(a)):s.isMetadata()?(a.type=`metadata`,n.metadataTracks.push(a)):(a.type=`metadata`,n.otherTracks.push(a))}else n.hasMoov=!1;if(n.mime=``,n.hasMoov&&n.tracks){for(n.videoTracks&&n.videoTracks.length>0?n.mime+=`video/mp4; codecs="`:n.audioTracks&&n.audioTracks.length>0?n.mime+=`audio/mp4; codecs="`:n.mime+=`application/mp4; codecs="`,e=0;e<n.tracks.length;e++)e!==0&&(n.mime+=`,`),n.mime+=n.tracks[e].codec;n.mime+=`"; profiles="`,n.mime+=this.ftyp.compatible_brands.join(),n.mime+=`"`}return n},h.prototype.setNextSeekPositionFromSample=function(e){e&&(this.nextSeekPosition?this.nextSeekPosition=Math.min(e.offset+e.alreadyRead,this.nextSeekPosition):this.nextSeekPosition=e.offset+e.alreadyRead)},h.prototype.processSamples=function(e){var n,r;if(this.sampleProcessingStarted){if(this.isFragmentationInitialized&&this.onSegment!==null)for(n=0;n<this.fragmentedTracks.length;n++){var a=this.fragmentedTracks[n];for(r=a.trak;r.nextSample<r.samples.length&&this.sampleProcessingStarted;){t.debug(`ISOFile`,`Creating media fragment on track #`+a.id+` for sample `+r.nextSample);var o=this.createFragment(a.id,r.nextSample,a.segmentStream);if(o)a.segmentStream=o,r.nextSample++;else break;if((r.nextSample%a.nb_samples===0||e||r.nextSample>=r.samples.length)&&(t.info(`ISOFile`,`Sending fragmented data on track #`+a.id+` for samples [`+Math.max(0,r.nextSample-a.nb_samples)+`,`+(r.nextSample-1)+`]`),t.info(`ISOFile`,`Sample data size in memory: `+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(a.id,a.user,a.segmentStream.buffer,r.nextSample,e||r.nextSample>=r.samples.length),a.segmentStream=null,a!==this.fragmentedTracks[n]))break}}if(this.onSamples!==null)for(n=0;n<this.extractedTracks.length;n++){var s=this.extractedTracks[n];for(r=s.trak;r.nextSample<r.samples.length&&this.sampleProcessingStarted;){t.debug(`ISOFile`,`Exporting on track #`+s.id+` sample #`+r.nextSample);var c=this.getSample(r,r.nextSample);if(c)r.nextSample++,s.samples.push(c);else{this.setNextSeekPositionFromSample(r.samples[r.nextSample]);break}if((r.nextSample%s.nb_samples===0||r.nextSample>=r.samples.length)&&(t.debug(`ISOFile`,`Sending samples on track #`+s.id+` for sample `+r.nextSample),this.onSamples&&this.onSamples(s.id,s.user,s.samples),s.samples=[],s!==this.extractedTracks[n]))break}}}},h.prototype.getBox=function(e){var t=this.getBoxes(e,!0);return t.length?t[0]:null},h.prototype.getBoxes=function(e,t){var n=[];return h._sweep.call(this,e,n,t),n},h._sweep=function(e,t,n){for(var r in this.type&&this.type==e&&t.push(this),this.boxes){if(t.length&&n)return;h._sweep.call(this.boxes[r],e,t,n)}},h.prototype.getTrackSamplesInfo=function(e){var t=this.getTrackById(e);if(t)return t.samples},h.prototype.getTrackSample=function(e,t){var n=this.getTrackById(e);return this.getSample(n,t)},h.prototype.releaseUsedSamples=function(e,n){var r=0,a=this.getTrackById(e);a.lastValidSample||=0;for(var o=a.lastValidSample;o<n;o++)r+=this.releaseSample(a,o);t.info(`ISOFile`,`Track #`+e+` released samples up to `+n+` (released size: `+r+`, remaining: `+this.samplesDataSize+`)`),a.lastValidSample=n},h.prototype.start=function(){this.sampleProcessingStarted=!0,this.processSamples(!1)},h.prototype.stop=function(){this.sampleProcessingStarted=!1},h.prototype.flush=function(){t.info(`ISOFile`,`Flushing remaining samples`),this.updateSampleLists(),this.processSamples(!0),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0)},h.prototype.seekTrack=function(e,n,r){var a,o,s=1/0,c=0,l=0,u;if(r.samples.length===0)return t.info(`ISOFile`,`No sample in track, cannot seek! Using time `+t.getDurationString(0,1)+` and offset: 0`),{offset:0,time:0};for(a=0;a<r.samples.length;a++){if(o=r.samples[a],a===0)l=0,u=o.timescale;else if(o.cts>e*o.timescale){l=a-1;break}n&&o.is_sync&&(c=a)}for(n&&(l=c),e=r.samples[l].cts,r.nextSample=l;r.samples[l].alreadyRead===r.samples[l].size&&r.samples[l+1];)l++;return s=r.samples[l].offset+r.samples[l].alreadyRead,t.info(`ISOFile`,`Seeking to `+(n?`RAP`:``)+` sample #`+r.nextSample+` on track `+r.tkhd.track_id+`, time `+t.getDurationString(e,u)+` and offset: `+s),{offset:s,time:e/u}},h.prototype.getTrackDuration=function(e){var t;return e.samples?(t=e.samples[e.samples.length-1],(t.cts+t.duration)/t.timescale):1/0},h.prototype.seek=function(e,n){var r=this.moov,a,o,s,c={offset:1/0,time:1/0};if(this.moov){for(s=0;s<r.traks.length;s++)a=r.traks[s],!(e>this.getTrackDuration(a))&&(o=this.seekTrack(e,n,a),o.offset<c.offset&&(c.offset=o.offset),o.time<c.time&&(c.time=o.time));return t.info(`ISOFile`,`Seeking at time `+t.getDurationString(c.time,1)+` needs a buffer with a fileStart position of `+c.offset),c.offset===1/0?c={offset:this.nextParsePosition,time:0}:c.offset=this.stream.getEndFilePositionAfter(c.offset),t.info(`ISOFile`,`Adjusted seek position (after checking data already in buffer): `+c.offset),c}else throw`Cannot seek: moov not received!`},h.prototype.equal=function(e){for(var t=0;t<this.boxes.length&&t<e.boxes.length;){var n=this.boxes[t],r=e.boxes[t];if(!c.boxEqual(n,r))return!1;t++}return!0},e!==void 0&&(e.ISOFile=h),h.prototype.lastBoxStartPosition=0,h.prototype.parsingMdat=null,h.prototype.nextParsePosition=0,h.prototype.discardMdatData=!1,h.prototype.processIncompleteBox=function(e){var t,n,r;return e.type===`mdat`?(t=new c[e.type+`Box`](e.size),this.parsingMdat=t,this.boxes.push(t),this.mdats.push(t),t.start=e.start,t.hdr_size=e.hdr_size,this.stream.addUsedBytes(t.hdr_size),this.lastBoxStartPosition=t.start+t.size,r=this.stream.seek(t.start+t.size,!1,this.discardMdatData),r?(this.parsingMdat=null,!0):(this.moovStartFound?this.nextParsePosition=this.stream.findEndContiguousBuf():this.nextParsePosition=t.start+t.size,!1)):(e.type===`moov`&&(this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0)),n=this.stream.mergeNextBuffer?this.stream.mergeNextBuffer():!1,n?(this.nextParsePosition=this.stream.getEndPosition(),!0):(e.type?this.moovStartFound?this.nextParsePosition=this.stream.getEndPosition():this.nextParsePosition=this.stream.getPosition()+e.size:this.nextParsePosition=this.stream.getEndPosition(),!1))},h.prototype.hasIncompleteMdat=function(){return this.parsingMdat!==null},h.prototype.processIncompleteMdat=function(){var e=this.parsingMdat;return this.stream.seek(e.start+e.size,!1,this.discardMdatData)?(t.debug(`ISOFile`,`Found 'mdat' end in buffered data`),this.parsingMdat=null,!0):(this.nextParsePosition=this.stream.findEndContiguousBuf(),!1)},h.prototype.restoreParsePosition=function(){return this.stream.seek(this.lastBoxStartPosition,!0,this.discardMdatData)},h.prototype.saveParsePosition=function(){this.lastBoxStartPosition=this.stream.getPosition()},h.prototype.updateUsedBytes=function(e,t){this.stream.addUsedBytes&&(e.type===`mdat`?(this.stream.addUsedBytes(e.hdr_size),this.discardMdatData&&this.stream.addUsedBytes(e.size-e.hdr_size)):this.stream.addUsedBytes(e.size))},h.prototype.add=c.Box.prototype.add,h.prototype.addBox=c.Box.prototype.addBox,h.prototype.init=function(e){var t=e||{};this.add(`ftyp`).set(`major_brand`,t.brands&&t.brands[0]||`iso4`).set(`minor_version`,0).set(`compatible_brands`,t.brands||[`iso4`]);var n=this.add(`moov`);return n.add(`mvhd`).set(`timescale`,t.timescale||600).set(`rate`,t.rate||65536).set(`creation_time`,0).set(`modification_time`,0).set(`duration`,t.duration||0).set(`volume`,t.width?0:256).set(`matrix`,[65536,0,0,0,65536,0,0,0,1073741824]).set(`next_track_id`,1),n.add(`mvex`),this},h.prototype.addTrack=function(e){this.moov||this.init(e);var t=e||{};t.width=t.width||320,t.height=t.height||320,t.id=t.id||this.moov.mvhd.next_track_id,t.type=t.type||`avc1`;var r=this.moov.add(`trak`);this.moov.mvhd.next_track_id=t.id+1,r.add(`tkhd`).set(`flags`,c.TKHD_FLAG_ENABLED|c.TKHD_FLAG_IN_MOVIE|c.TKHD_FLAG_IN_PREVIEW).set(`creation_time`,0).set(`modification_time`,0).set(`track_id`,t.id).set(`duration`,t.duration||0).set(`layer`,t.layer||0).set(`alternate_group`,0).set(`volume`,1).set(`matrix`,[65536,0,0,0,65536,0,0,0,1073741824]).set(`width`,t.width<<16).set(`height`,t.height<<16);var a=r.add(`mdia`);a.add(`mdhd`).set(`creation_time`,0).set(`modification_time`,0).set(`timescale`,t.timescale||1).set(`duration`,t.media_duration||0).set(`language`,t.language||`und`),a.add(`hdlr`).set(`handler`,t.hdlr||`vide`).set(`name`,t.name||`Track created with MP4Box.js`),a.add(`elng`).set(`extended_language`,t.language||`fr-FR`);var o=a.add(`minf`);if(c[t.type+`SampleEntry`]!==void 0){var s=new c[t.type+`SampleEntry`];s.data_reference_index=1;var l=``;for(var u in c.sampleEntryCodes)for(var d=c.sampleEntryCodes[u],f=0;f<d.length;f++)if(d.indexOf(t.type)>-1){l=u;break}switch(l){case`Visual`:if(o.add(`vmhd`).set(`graphicsmode`,0).set(`opcolor`,[0,0,0]),s.set(`width`,t.width).set(`height`,t.height).set(`horizresolution`,72<<16).set(`vertresolution`,72<<16).set(`frame_count`,1).set(`compressorname`,t.type+` Compressor`).set(`depth`,24),t.avcDecoderConfigRecord){var p=new c.avcCBox;p.parse(new n(t.avcDecoderConfigRecord)),s.addBox(p)}else if(t.hevcDecoderConfigRecord){var m=new c.hvcCBox;m.parse(new n(t.hevcDecoderConfigRecord)),s.addBox(m)}break;case`Audio`:o.add(`smhd`).set(`balance`,t.balance||0),s.set(`channel_count`,t.channel_count||2).set(`samplesize`,t.samplesize||16).set(`samplerate`,t.samplerate||65536);break;case`Hint`:o.add(`hmhd`);break;case`Subtitle`:switch(o.add(`sthd`),t.type){case`stpp`:s.set(`namespace`,t.namespace||`nonamespace`).set(`schema_location`,t.schema_location||``).set(`auxiliary_mime_types`,t.auxiliary_mime_types||``);break}break;case`Metadata`:o.add(`nmhd`);break;case`System`:o.add(`nmhd`);break;default:o.add(`nmhd`);break}t.description&&s.addBox(t.description),t.description_boxes&&t.description_boxes.forEach(function(e){s.addBox(e)}),o.add(`dinf`).add(`dref`).addEntry(new c[`url Box`]().set(`flags`,1));var h=o.add(`stbl`);return h.add(`stsd`).addEntry(s),h.add(`stts`).set(`sample_counts`,[]).set(`sample_deltas`,[]),h.add(`stsc`).set(`first_chunk`,[]).set(`samples_per_chunk`,[]).set(`sample_description_index`,[]),h.add(`stco`).set(`chunk_offsets`,[]),h.add(`stsz`).set(`sample_sizes`,[]),this.moov.mvex.add(`trex`).set(`track_id`,t.id).set(`default_sample_description_index`,t.default_sample_description_index||1).set(`default_sample_duration`,t.default_sample_duration||0).set(`default_sample_size`,t.default_sample_size||0).set(`default_sample_flags`,t.default_sample_flags||0),this.buildTrakSampleLists(r),t.id}},c.Box.prototype.computeSize=function(e){var t=e||new r;t.endianness=r.BIG_ENDIAN,this.write(t)},h.prototype.addSample=function(e,t,n){var r=n||{},a={},o=this.getTrackById(e);if(o!==null){a.number=o.samples.length,a.track_id=o.tkhd.track_id,a.timescale=o.mdia.mdhd.timescale,a.description_index=r.sample_description_index?r.sample_description_index-1:0,a.description=o.mdia.minf.stbl.stsd.entries[a.description_index],a.data=t,a.size=t.byteLength,a.alreadyRead=a.size,a.duration=r.duration||1,a.cts=r.cts||0,a.dts=r.dts||0,a.is_sync=r.is_sync||!1,a.is_leading=r.is_leading||0,a.depends_on=r.depends_on||0,a.is_depended_on=r.is_depended_on||0,a.has_redundancy=r.has_redundancy||0,a.degradation_priority=r.degradation_priority||0,a.offset=0,a.subsamples=r.subsamples,o.samples.push(a),o.samples_size+=a.size,o.samples_duration+=a.duration,o.first_dts===void 0&&(o.first_dts=r.dts),this.processSamples();var s=this.createSingleSampleMoof(a);return this.addBox(s),s.computeSize(),s.trafs[0].truns[0].data_offset=s.size+8,this.add(`mdat`).data=new Uint8Array(t),a}},h.prototype.createSingleSampleMoof=function(e){var t=0;t=e.is_sync?1<<25:65536;var n=new c.moofBox;n.add(`mfhd`).set(`sequence_number`,this.nextMoofNumber),this.nextMoofNumber++;var r=n.add(`traf`),a=this.getTrackById(e.track_id);return r.add(`tfhd`).set(`track_id`,e.track_id).set(`flags`,c.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),r.add(`tfdt`).set(`baseMediaDecodeTime`,e.dts-(a.first_dts||0)),r.add(`trun`).set(`flags`,c.TRUN_FLAGS_DATA_OFFSET|c.TRUN_FLAGS_DURATION|c.TRUN_FLAGS_SIZE|c.TRUN_FLAGS_FLAGS|c.TRUN_FLAGS_CTS_OFFSET).set(`data_offset`,0).set(`first_sample_flags`,0).set(`sample_count`,1).set(`sample_duration`,[e.duration]).set(`sample_size`,[e.size]).set(`sample_flags`,[t]).set(`sample_composition_time_offset`,[e.cts-e.dts]),n},h.prototype.lastMoofIndex=0,h.prototype.samplesDataSize=0,h.prototype.resetTables=function(){var e,t,n,r,a,o,s,c;for(this.initial_duration=this.moov.mvhd.duration,this.moov.mvhd.duration=0,e=0;e<this.moov.traks.length;e++){t=this.moov.traks[e],t.tkhd.duration=0,t.mdia.mdhd.duration=0,n=t.mdia.minf.stbl.stco||t.mdia.minf.stbl.co64,n.chunk_offsets=[],r=t.mdia.minf.stbl.stsc,r.first_chunk=[],r.samples_per_chunk=[],r.sample_description_index=[],a=t.mdia.minf.stbl.stsz||t.mdia.minf.stbl.stz2,a.sample_sizes=[],o=t.mdia.minf.stbl.stts,o.sample_counts=[],o.sample_deltas=[],s=t.mdia.minf.stbl.ctts,s&&(s.sample_counts=[],s.sample_offsets=[]),c=t.mdia.minf.stbl.stss;var l=t.mdia.minf.stbl.boxes.indexOf(c);l!=-1&&(t.mdia.minf.stbl.boxes[l]=null)}},h.initSampleGroups=function(e,t,n,r,a){var o,s,c,l;function u(e,t,n){this.grouping_type=e,this.grouping_type_parameter=t,this.sbgp=n,this.last_sample_in_run=-1,this.entry_index=-1}for(t&&(t.sample_groups_info=[]),e.sample_groups_info||=[],s=0;s<n.length;s++){for(l=n[s].grouping_type+`/`+n[s].grouping_type_parameter,c=new u(n[s].grouping_type,n[s].grouping_type_parameter,n[s]),t&&(t.sample_groups_info[l]=c),e.sample_groups_info[l]||(e.sample_groups_info[l]=c),o=0;o<r.length;o++)r[o].grouping_type===n[s].grouping_type&&(c.description=r[o],c.description.used=!0);if(a)for(o=0;o<a.length;o++)a[o].grouping_type===n[s].grouping_type&&(c.fragment_description=a[o],c.fragment_description.used=!0,c.is_fragment=!0)}if(!t)for(s=0;s<r.length;s++)!r[s].used&&r[s].version>=2&&(l=r[s].grouping_type+`/0`,c=new u(r[s].grouping_type,0),e.sample_groups_info[l]||(e.sample_groups_info[l]=c));else if(a)for(s=0;s<a.length;s++)!a[s].used&&a[s].version>=2&&(l=a[s].grouping_type+`/0`,c=new u(a[s].grouping_type,0),c.is_fragment=!0,t.sample_groups_info[l]||(t.sample_groups_info[l]=c))},h.setSampleGroupProperties=function(e,t,n,r){var a,o;for(a in t.sample_groups=[],r)if(t.sample_groups[a]={},t.sample_groups[a].grouping_type=r[a].grouping_type,t.sample_groups[a].grouping_type_parameter=r[a].grouping_type_parameter,n>=r[a].last_sample_in_run&&(r[a].last_sample_in_run<0&&(r[a].last_sample_in_run=0),r[a].entry_index++,r[a].entry_index<=r[a].sbgp.entries.length-1&&(r[a].last_sample_in_run+=r[a].sbgp.entries[r[a].entry_index].sample_count)),r[a].entry_index<=r[a].sbgp.entries.length-1?t.sample_groups[a].group_description_index=r[a].sbgp.entries[r[a].entry_index].group_description_index:t.sample_groups[a].group_description_index=-1,t.sample_groups[a].group_description_index!==0){var s=r[a].fragment_description?r[a].fragment_description:r[a].description;t.sample_groups[a].group_description_index>0?(o=t.sample_groups[a].group_description_index>65535?(t.sample_groups[a].group_description_index>>16)-1:t.sample_groups[a].group_description_index-1,s&&o>=0&&(t.sample_groups[a].description=s.entries[o])):s&&s.version>=2&&s.default_group_description_index>0&&(t.sample_groups[a].description=s.entries[s.default_group_description_index-1])}},h.process_sdtp=function(e,t,n){t&&(e?(t.is_leading=e.is_leading[n],t.depends_on=e.sample_depends_on[n],t.is_depended_on=e.sample_is_depended_on[n],t.has_redundancy=e.sample_has_redundancy[n]):(t.is_leading=0,t.depends_on=0,t.is_depended_on=0,t.has_redundancy=0))},h.prototype.buildSampleLists=function(){var e,t;for(e=0;e<this.moov.traks.length;e++)t=this.moov.traks[e],this.buildTrakSampleLists(t)},h.prototype.buildTrakSampleLists=function(e){var t,n,r,a,o,s,c,l,u,d,f,p,m,g,_,v,y,b,x,S,ee,C,w,T;if(e.samples=[],e.samples_duration=0,e.samples_size=0,n=e.mdia.minf.stbl.stco||e.mdia.minf.stbl.co64,r=e.mdia.minf.stbl.stsc,a=e.mdia.minf.stbl.stsz||e.mdia.minf.stbl.stz2,o=e.mdia.minf.stbl.stts,s=e.mdia.minf.stbl.ctts,c=e.mdia.minf.stbl.stss,l=e.mdia.minf.stbl.stsd,u=e.mdia.minf.stbl.subs,p=e.mdia.minf.stbl.stdp,d=e.mdia.minf.stbl.sbgps,f=e.mdia.minf.stbl.sgpds,b=-1,x=-1,S=-1,ee=-1,C=0,w=0,T=0,h.initSampleGroups(e,null,d,f),a!==void 0){for(t=0;t<a.sample_sizes.length;t++){var E={};E.number=t,E.track_id=e.tkhd.track_id,E.timescale=e.mdia.mdhd.timescale,E.alreadyRead=0,e.samples[t]=E,E.size=a.sample_sizes[t],e.samples_size+=E.size,t===0?(g=1,m=0,E.chunk_index=g,E.chunk_run_index=m,y=r.samples_per_chunk[m],v=0,_=m+1<r.first_chunk.length?r.first_chunk[m+1]-1:1/0):t<y?(E.chunk_index=g,E.chunk_run_index=m):(g++,E.chunk_index=g,v=0,g<=_||(m++,_=m+1<r.first_chunk.length?r.first_chunk[m+1]-1:1/0),E.chunk_run_index=m,y+=r.samples_per_chunk[m]),E.description_index=r.sample_description_index[E.chunk_run_index]-1,E.description=l.entries[E.description_index],E.offset=n.chunk_offsets[E.chunk_index-1]+v,v+=E.size,t>b&&(x++,b<0&&(b=0),b+=o.sample_counts[x]),t>0?(e.samples[t-1].duration=o.sample_deltas[x],e.samples_duration+=e.samples[t-1].duration,E.dts=e.samples[t-1].dts+e.samples[t-1].duration):E.dts=0,s?(t>=S&&(ee++,S<0&&(S=0),S+=s.sample_counts[ee]),E.cts=e.samples[t].dts+s.sample_offsets[ee]):E.cts=E.dts,c?(t==c.sample_numbers[C]-1?(E.is_sync=!0,C++):(E.is_sync=!1,E.degradation_priority=0),u&&u.entries[w].sample_delta+T==t+1&&(E.subsamples=u.entries[w].subsamples,T+=u.entries[w].sample_delta,w++)):E.is_sync=!0,h.process_sdtp(e.mdia.minf.stbl.sdtp,E,E.number),p?E.degradation_priority=p.priority[t]:E.degradation_priority=0,u&&u.entries[w].sample_delta+T==t&&(E.subsamples=u.entries[w].subsamples,T+=u.entries[w].sample_delta),(d.length>0||f.length>0)&&h.setSampleGroupProperties(e,E,t,e.sample_groups_info)}t>0&&(e.samples[t-1].duration=Math.max(e.mdia.mdhd.duration-e.samples[t-1].dts,0),e.samples_duration+=e.samples[t-1].duration)}},h.prototype.updateSampleLists=function(){var e,t,n,r,a,o,s,l,u,d,f,p,m,g,_;if(this.moov!==void 0){for(;this.lastMoofIndex<this.moofs.length;)if(u=this.moofs[this.lastMoofIndex],this.lastMoofIndex++,u.type==`moof`)for(d=u,e=0;e<d.trafs.length;e++){for(f=d.trafs[e],p=this.getTrackById(f.tfhd.track_id),m=this.getTrexById(f.tfhd.track_id),r=f.tfhd.flags&c.TFHD_FLAG_SAMPLE_DESC?f.tfhd.default_sample_description_index:m?m.default_sample_description_index:1,a=f.tfhd.flags&c.TFHD_FLAG_SAMPLE_DUR?f.tfhd.default_sample_duration:m?m.default_sample_duration:0,o=f.tfhd.flags&c.TFHD_FLAG_SAMPLE_SIZE?f.tfhd.default_sample_size:m?m.default_sample_size:0,s=f.tfhd.flags&c.TFHD_FLAG_SAMPLE_FLAGS?f.tfhd.default_sample_flags:m?m.default_sample_flags:0,f.sample_number=0,f.sbgps.length>0&&h.initSampleGroups(p,f,f.sbgps,p.mdia.minf.stbl.sgpds,f.sgpds),t=0;t<f.truns.length;t++){var v=f.truns[t];for(n=0;n<v.sample_count;n++){g={},g.moof_number=this.lastMoofIndex,g.number_in_traf=f.sample_number,f.sample_number++,g.number=p.samples.length,f.first_sample_index=p.samples.length,p.samples.push(g),g.track_id=p.tkhd.track_id,g.timescale=p.mdia.mdhd.timescale,g.description_index=r-1,g.description=p.mdia.minf.stbl.stsd.entries[g.description_index],g.size=o,v.flags&c.TRUN_FLAGS_SIZE&&(g.size=v.sample_size[n]),p.samples_size+=g.size,g.duration=a,v.flags&c.TRUN_FLAGS_DURATION&&(g.duration=v.sample_duration[n]),p.samples_duration+=g.duration,p.first_traf_merged||n>0?g.dts=p.samples[p.samples.length-2].dts+p.samples[p.samples.length-2].duration:(f.tfdt?g.dts=f.tfdt.baseMediaDecodeTime:g.dts=0,p.first_traf_merged=!0),g.cts=g.dts,v.flags&c.TRUN_FLAGS_CTS_OFFSET&&(g.cts=g.dts+v.sample_composition_time_offset[n]),_=s,v.flags&c.TRUN_FLAGS_FLAGS?_=v.sample_flags[n]:n===0&&v.flags&c.TRUN_FLAGS_FIRST_FLAG&&(_=v.first_sample_flags),g.is_sync=!(_>>16&1),g.is_leading=_>>26&3,g.depends_on=_>>24&3,g.is_depended_on=_>>22&3,g.has_redundancy=_>>20&3,g.degradation_priority=_&65535;var y=!!(f.tfhd.flags&c.TFHD_FLAG_BASE_DATA_OFFSET),b=!!(f.tfhd.flags&c.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),x=!!(v.flags&c.TRUN_FLAGS_DATA_OFFSET),S=0;S=y?f.tfhd.base_data_offset:b||t===0?d.start:l,t===0&&n===0?x?g.offset=S+v.data_offset:g.offset=S:g.offset=l,l=g.offset+g.size,(f.sbgps.length>0||f.sgpds.length>0||p.mdia.minf.stbl.sbgps.length>0||p.mdia.minf.stbl.sgpds.length>0)&&h.setSampleGroupProperties(p,g,g.number_in_traf,f.sample_groups_info)}}if(f.subs){p.has_fragment_subsamples=!0;var ee=f.first_sample_index;for(t=0;t<f.subs.entries.length;t++)ee+=f.subs.entries[t].sample_delta,g=p.samples[ee-1],g.subsamples=f.subs.entries[t].subsamples}}}},h.prototype.getSample=function(e,n){var a,o=e.samples[n];if(!this.moov)return null;if(!o.data)o.data=new Uint8Array(o.size),o.alreadyRead=0,this.samplesDataSize+=o.size,t.debug(`ISOFile`,`Allocating sample #`+n+` on track #`+e.tkhd.track_id+` of size `+o.size+` (total: `+this.samplesDataSize+`)`);else if(o.alreadyRead==o.size)return o;for(;;){var s=this.stream.findPosition(!0,o.offset+o.alreadyRead,!1);if(s>-1){a=this.stream.buffers[s];var c=a.byteLength-(o.offset+o.alreadyRead-a.fileStart);if(o.size-o.alreadyRead<=c)return t.debug(`ISOFile`,`Getting sample #`+n+` data (alreadyRead: `+o.alreadyRead+` offset: `+(o.offset+o.alreadyRead-a.fileStart)+` read size: `+(o.size-o.alreadyRead)+` full size: `+o.size+`)`),r.memcpy(o.data.buffer,o.alreadyRead,a,o.offset+o.alreadyRead-a.fileStart,o.size-o.alreadyRead),a.usedBytes+=o.size-o.alreadyRead,this.stream.logBufferLevel(),o.alreadyRead=o.size,o;if(c===0)return null;t.debug(`ISOFile`,`Getting sample #`+n+` partial data (alreadyRead: `+o.alreadyRead+` offset: `+(o.offset+o.alreadyRead-a.fileStart)+` read size: `+c+` full size: `+o.size+`)`),r.memcpy(o.data.buffer,o.alreadyRead,a,o.offset+o.alreadyRead-a.fileStart,c),o.alreadyRead+=c,a.usedBytes+=c,this.stream.logBufferLevel()}else return null}},h.prototype.releaseSample=function(e,t){var n=e.samples[t];return n.data?(this.samplesDataSize-=n.size,n.data=null,n.alreadyRead=0,n.size):0},h.prototype.getAllocatedSampleDataSize=function(){return this.samplesDataSize},h.prototype.getCodecs=function(){var e,t=``;for(e=0;e<this.moov.traks.length;e++){var n=this.moov.traks[e];e>0&&(t+=`,`),t+=n.mdia.minf.stbl.stsd.entries[0].getCodec()}return t},h.prototype.getTrexById=function(e){var t;if(!this.moov||!this.moov.mvex)return null;for(t=0;t<this.moov.mvex.trexs.length;t++){var n=this.moov.mvex.trexs[t];if(n.track_id==e)return n}return null},h.prototype.getTrackById=function(e){if(this.moov===void 0)return null;for(var t=0;t<this.moov.traks.length;t++){var n=this.moov.traks[t];if(n.tkhd.track_id==e)return n}return null},h.prototype.itemsDataSize=0,h.prototype.flattenItemInfo=function(){var e=this.items,n=this.entity_groups,r,a,o,s=this.meta;if(s!=null&&s.hdlr!==void 0&&s.iinf!==void 0){for(r=0;r<s.iinf.item_infos.length;r++)o={},o.id=s.iinf.item_infos[r].item_ID,e[o.id]=o,o.ref_to=[],o.name=s.iinf.item_infos[r].item_name,s.iinf.item_infos[r].protection_index>0&&(o.protection=s.ipro.protections[s.iinf.item_infos[r].protection_index-1]),s.iinf.item_infos[r].item_type?o.type=s.iinf.item_infos[r].item_type:o.type=`mime`,o.content_type=s.iinf.item_infos[r].content_type,o.content_encoding=s.iinf.item_infos[r].content_encoding,o.item_uri_type=s.iinf.item_infos[r].item_uri_type;if(s.grpl)for(r=0;r<s.grpl.boxes.length;r++)entity_group={},entity_group.id=s.grpl.boxes[r].group_id,entity_group.entity_ids=s.grpl.boxes[r].entity_ids,entity_group.type=s.grpl.boxes[r].type,n[entity_group.id]=entity_group;if(s.iloc)for(r=0;r<s.iloc.items.length;r++){var c=s.iloc.items[r];switch(o=e[c.item_ID],c.data_reference_index!==0&&(t.warn(`Item storage with reference to other files: not supported`),o.source=s.dinf.boxes[c.data_reference_index-1]),c.construction_method){case 0:break;case 1:break;case 2:t.warn(`Item storage with construction_method : not supported`);break}for(o.extents=[],o.size=0,a=0;a<c.extents.length;a++)o.extents[a]={},o.extents[a].offset=c.extents[a].extent_offset+c.base_offset,c.construction_method==1&&(o.extents[a].offset+=s.idat.start+s.idat.hdr_size),o.extents[a].length=c.extents[a].extent_length,o.extents[a].alreadyRead=0,o.size+=o.extents[a].length}if(s.pitm&&(e[s.pitm.item_id].primary=!0),s.iref)for(r=0;r<s.iref.references.length;r++){var l=s.iref.references[r];for(a=0;a<l.references.length;a++)e[l.from_item_ID].ref_to.push({type:l.type,id:l.references[a]})}if(s.iprp)for(var u=0;u<s.iprp.ipmas.length;u++){var d=s.iprp.ipmas[u];for(r=0;r<d.associations.length;r++){var f=d.associations[r];if(o=e[f.id],o||=n[f.id],o)for(o.properties===void 0&&(o.properties={},o.properties.boxes=[]),a=0;a<f.props.length;a++){var p=f.props[a];if(p.property_index>0&&p.property_index-1<s.iprp.ipco.boxes.length){var m=s.iprp.ipco.boxes[p.property_index-1];o.properties[m.type]=m,o.properties.boxes.push(m)}}}}}},h.prototype.getItem=function(e){var n,a;if(!this.meta)return null;if(a=this.items[e],!a.data&&a.size)a.data=new Uint8Array(a.size),a.alreadyRead=0,this.itemsDataSize+=a.size,t.debug(`ISOFile`,`Allocating item #`+e+` of size `+a.size+` (total: `+this.itemsDataSize+`)`);else if(a.alreadyRead===a.size)return a;for(var o=0;o<a.extents.length;o++){var s=a.extents[o];if(s.alreadyRead!==s.length){var c=this.stream.findPosition(!0,s.offset+s.alreadyRead,!1);if(c>-1){n=this.stream.buffers[c];var l=n.byteLength-(s.offset+s.alreadyRead-n.fileStart);if(s.length-s.alreadyRead<=l)t.debug(`ISOFile`,`Getting item #`+e+` extent #`+o+` data (alreadyRead: `+s.alreadyRead+` offset: `+(s.offset+s.alreadyRead-n.fileStart)+` read size: `+(s.length-s.alreadyRead)+` full extent size: `+s.length+` full item size: `+a.size+`)`),r.memcpy(a.data.buffer,a.alreadyRead,n,s.offset+s.alreadyRead-n.fileStart,s.length-s.alreadyRead),n.usedBytes+=s.length-s.alreadyRead,this.stream.logBufferLevel(),a.alreadyRead+=s.length-s.alreadyRead,s.alreadyRead=s.length;else return t.debug(`ISOFile`,`Getting item #`+e+` extent #`+o+` partial data (alreadyRead: `+s.alreadyRead+` offset: `+(s.offset+s.alreadyRead-n.fileStart)+` read size: `+l+` full extent size: `+s.length+` full item size: `+a.size+`)`),r.memcpy(a.data.buffer,a.alreadyRead,n,s.offset+s.alreadyRead-n.fileStart,l),s.alreadyRead+=l,a.alreadyRead+=l,n.usedBytes+=l,this.stream.logBufferLevel(),null}else return null}}return a.alreadyRead===a.size?a:null},h.prototype.releaseItem=function(e){var t=this.items[e];if(t.data){this.itemsDataSize-=t.size,t.data=null,t.alreadyRead=0;for(var n=0;n<t.extents.length;n++){var r=t.extents[n];r.alreadyRead=0}return t.size}else return 0},h.prototype.processItems=function(e){for(var t in this.items){var n=this.items[t];this.getItem(n.id),e&&!n.sent&&(e(n),n.sent=!0,n.data=null)}},h.prototype.hasItem=function(e){for(var t in this.items){var n=this.items[t];if(n.name===e)return n.id}return-1},h.prototype.getMetaHandler=function(){return this.meta?this.meta.hdlr.handler:null},h.prototype.getPrimaryItem=function(){return!this.meta||!this.meta.pitm?null:this.getItem(this.meta.pitm.item_id)},h.prototype.itemToFragmentedTrackFile=function(e){var t=e||{},n=null;if(n=t.itemId?this.getItem(t.itemId):this.getPrimaryItem(),n==null)return null;var r=new h;r.discardMdatData=!1;var a={type:n.type,description_boxes:n.properties.boxes};n.properties.ispe&&(a.width=n.properties.ispe.image_width,a.height=n.properties.ispe.image_height);var o=r.addTrack(a);return o?(r.addSample(o,n.data),r):null},h.prototype.write=function(e){for(var t=0;t<this.boxes.length;t++)this.boxes[t].write(e)},h.prototype.createFragment=function(e,n,a){var o=this.getTrackById(e),s=this.getSample(o,n);if(s==null)return this.setNextSeekPositionFromSample(o.samples[n]),null;var l=a||new r;l.endianness=r.BIG_ENDIAN;var u=this.createSingleSampleMoof(s);u.write(l),u.trafs[0].truns[0].data_offset=u.size+8,t.debug(`MP4Box`,`Adjusting data_offset with new value `+u.trafs[0].truns[0].data_offset),l.adjustUint32(u.trafs[0].truns[0].data_offset_position,u.trafs[0].truns[0].data_offset);var d=new c.mdatBox;return d.data=s.data,d.write(l),l},h.writeInitializationSegment=function(e,n,a,o){var s;t.debug(`ISOFile`,`Generating initialization segment`);var c=new r;c.endianness=r.BIG_ENDIAN,e.write(c);var l=n.add(`mvex`);for(a&&l.add(`mehd`).set(`fragment_duration`,a),s=0;s<n.traks.length;s++)l.add(`trex`).set(`track_id`,n.traks[s].tkhd.track_id).set(`default_sample_description_index`,1).set(`default_sample_duration`,o).set(`default_sample_size`,0).set(`default_sample_flags`,65536);return n.write(c),c.buffer},h.prototype.save=function(e){var t=new r;t.endianness=r.BIG_ENDIAN,this.write(t),t.save(e)},h.prototype.getBuffer=function(){var e=new r;return e.endianness=r.BIG_ENDIAN,this.write(e),e.buffer},h.prototype.initializeSegmentation=function(){var e,n,r,a;for(this.onSegment===null&&t.warn(`MP4Box`,`No segmentation callback set!`),this.isFragmentationInitialized||(this.isFragmentationInitialized=!0,this.nextMoofNumber=0,this.resetTables()),n=[],e=0;e<this.fragmentedTracks.length;e++){var o=new c.moovBox;o.mvhd=this.moov.mvhd,o.boxes.push(o.mvhd),r=this.getTrackById(this.fragmentedTracks[e].id),o.boxes.push(r),o.traks.push(r),a={},a.id=r.tkhd.track_id,a.user=this.fragmentedTracks[e].user,a.buffer=h.writeInitializationSegment(this.ftyp,o,this.moov.mvex&&this.moov.mvex.mehd?this.moov.mvex.mehd.fragment_duration:void 0,this.moov.traks[e].samples.length>0?this.moov.traks[e].samples[0].duration:0),n.push(a)}return n},c.Box.prototype.printHeader=function(e){this.size+=8,this.size>a&&(this.size+=8),this.type===`uuid`&&(this.size+=16),e.log(e.indent+`size:`+this.size),e.log(e.indent+`type:`+this.type)},c.FullBox.prototype.printHeader=function(e){this.size+=4,c.Box.prototype.printHeader.call(this,e),e.log(e.indent+`version:`+this.version),e.log(e.indent+`flags:`+this.flags)},c.Box.prototype.print=function(e){this.printHeader(e)},c.ContainerBox.prototype.print=function(e){this.printHeader(e);for(var t=0;t<this.boxes.length;t++)if(this.boxes[t]){var n=e.indent;e.indent+=` `,this.boxes[t].print(e),e.indent=n}},h.prototype.print=function(e){e.indent=``;for(var t=0;t<this.boxes.length;t++)this.boxes[t]&&this.boxes[t].print(e)},c.mvhdBox.prototype.print=function(e){c.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+`creation_time: `+this.creation_time),e.log(e.indent+`modification_time: `+this.modification_time),e.log(e.indent+`timescale: `+this.timescale),e.log(e.indent+`duration: `+this.duration),e.log(e.indent+`rate: `+this.rate),e.log(e.indent+`volume: `+(this.volume>>8)),e.log(e.indent+`matrix: `+this.matrix.join(`, `)),e.log(e.indent+`next_track_id: `+this.next_track_id)},c.tkhdBox.prototype.print=function(e){c.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+`creation_time: `+this.creation_time),e.log(e.indent+`modification_time: `+this.modification_time),e.log(e.indent+`track_id: `+this.track_id),e.log(e.indent+`duration: `+this.duration),e.log(e.indent+`volume: `+(this.volume>>8)),e.log(e.indent+`matrix: `+this.matrix.join(`, `)),e.log(e.indent+`layer: `+this.layer),e.log(e.indent+`alternate_group: `+this.alternate_group),e.log(e.indent+`width: `+this.width),e.log(e.indent+`height: `+this.height)};var g={};g.createFile=function(e,t){var n=e===void 0?!0:e,r=new h(t);return r.discardMdatData=!n,r},e!==void 0&&(e.createFile=g.createFile)}))()),Y$=class extends Error{unsupported=!0;codec;constructor(e){super(`unsupported codec: ${e}`),this.name=`UnsupportedCodecError`,this.codec=e}};function X$(e){return e instanceof Error&&e.unsupported===!0}function Z$(e){return e.replace(/^hev1\./i,`hvc1.`)}function Q$(e,t){let n=e.getTrackById(t)?.mdia?.minf?.stbl?.stsd?.entries??[];for(let e of n){let t=e.hvcC??e.avcC;if(t){let e=new J$.DataStream(void 0,0,J$.DataStream.BIG_ENDIAN);return t.write(e),new Uint8Array(e.buffer,8)}}}function $$(e,t){if(e.length===0)return null;let n=e.findIndex(e=>e.is_sync);n<0&&(n=0);let r=e[n],a=r.cts/r.timescale*1e3,o=n;for(let r=n+1;r<e.length;r++){let n=e[r];if(n.cts/n.timescale*1e3-a<=t)o=r;else break}return{start:n,end:o}}function e1(e,t){return new Promise((n,r)=>{e.onError=e=>r(Error(`mp4box: ${e}`)),e.onReady=t=>{let a=t.videoTracks?.[0];if(!a){r(Error(`no video track`));return}let o=Q$(e,a.id);n({config:{codec:Z$(a.codec),codedWidth:a.video?.width,codedHeight:a.video?.height,...o?{description:o}:{}},trackId:a.id})};let a=t;a.fileStart=0,e.appendBuffer(a),e.flush()})}async function t1(e){let t=J$.createFile(),{config:n,trackId:r}=await e1(t,e);return{config:n,chunk:await new Promise((e,n)=>{t.onSamples=(t,r,a)=>{let o=a.find(e=>e.is_sync)??a[0];if(!o){n(Error(`no sample`));return}e(new EncodedVideoChunk({type:`key`,timestamp:Math.round(o.cts/o.timescale*1e6),data:o.data}))},t.setExtractionOptions(r,null,{nbSamples:1}),t.start()})}}var n1=2048;async function r1(e,t){let n=J$.createFile(),{config:r,trackId:a}=await e1(n,e);return{config:r,chunks:await new Promise((e,r)=>{n.onSamples=(n,a,o)=>{let s=$$(o,t);if(!s){r(Error(`no sample`));return}let c=[];for(let e=s.start;e<=s.end;e++){let t=o[e];c.push(new EncodedVideoChunk({type:t.is_sync?`key`:`delta`,timestamp:Math.round(t.cts/t.timescale*1e6),data:t.data}))}e(c)},n.setExtractionOptions(a,null,{nbSamples:n1}),n.start()})}}var i1=class{decoder=null;async decodeSegment(e){let{config:t,chunk:n}=await t1(e);if(!(await VideoDecoder.isConfigSupported(t)).supported)throw new Y$(t.codec);return await new Promise((e,r)=>{this.decoder&&this.decoder.state!==`closed`&&this.decoder.close();let a=new VideoDecoder({output:t=>e(t),error:e=>r(e)});a.configure(t),this.decoder=a,a.decode(n),a.flush().catch(r)})}async decodeSegmentAt(e,t){let{config:n,chunks:r}=await r1(e,t);if(!(await VideoDecoder.isConfigSupported(n)).supported)throw new Y$(n.codec);return await new Promise((e,t)=>{this.decoder&&this.decoder.state!==`closed`&&this.decoder.close();let a=null,o=new VideoDecoder({output:e=>{a?.close(),a=e},error:e=>t(e)});o.configure(n),this.decoder=o;for(let e of r)o.decode(e);o.flush().then(()=>{a?e(a):t(Error(`no frame decoded`))}).catch(t)})}close(){this.decoder&&this.decoder.state!==`closed`&&this.decoder.close(),this.decoder=null}},a1=[`live`,`loading`,`playing`,`paused`,`gap`,`ended`,`error`];function o1(e){return typeof e==`string`&&a1.includes(e)}var s1=`low`,c1=class{deps;begun=!1;disposed=!1;lastSentProfile=null;positionsSeen=0;firstFrameAnnounced=!1;rvfcHandle=null;retargets=0;renders=0;acks=0;onMessage=e=>{if(this.disposed||typeof e.data!=`string`)return;let t;try{t=JSON.parse(e.data)}catch{return}if(typeof t!=`object`||!t)return;let n=t;if(n.t===`state`&&o1(n.state)){this.deps.onState?.(n.state);return}n.t!==`position`||typeof n.epochMs!=`number`||(this.deps.onPosition?.(n.epochMs),this.begun&&(this.positionsSeen+=1,this.rvfcCapable()||(this.acks+=1,this.send({t:`scrubAck`}))))};constructor(e){this.deps=e,this.deps.channel.addEventListener(`message`,this.onMessage)}rvfcCapable(){return typeof this.deps.video()?.requestVideoFrameCallback==`function`}send(e){return this.disposed||this.deps.channel.readyState!==`open`?!1:(this.deps.channel.send(JSON.stringify(e)),!0)}playRecorded(e,t,n){let r=this.send({t:`playRecorded`,deviceId:e,epoch:t,profile:n});return r&&(this.lastSentProfile=n),r}seek(e){return this.send({t:`seek`,epoch:e})}warm(e){return this.send({t:`warm`,epoch:e,profile:s1})}setRate(e){return this.send({t:`setRate`,rate:e})}stepFrame(e){return this.send({t:`stepFrame`,dir:e})}commit(e){return this.end(),this.send({t:`scrubCommit`,epoch:e})}goLive(){let e=this.send({t:`goLive`});return e&&this.deps.onLog?.(`scrub:push-golive`,{}),this.end(),e}isActive(){return this.begun&&!this.disposed&&this.deps.channel.readyState===`open`}isOpen(){return!this.disposed&&this.deps.channel.readyState===`open`}begin(){return this.disposed||this.deps.channel.readyState!==`open`?!1:this.begun?!0:(this.begun=!0,this.positionsSeen=0,this.firstFrameAnnounced=!1,this.retargets=0,this.renders=0,this.acks=0,this.lastSentProfile!==s1&&(this.lastSentProfile=s1,this.send({t:`setProfile`,profile:s1})),this.send({t:`scrubStart`}),this.armRenderAck(),this.deps.onLog?.(`scrub:push-begin`,{rvfc:this.rvfcCapable()}),!0)}retarget(e,t){this.isActive()&&(this.retargets+=1,this.send(t?{t:`scrubTo`,epoch:e,m:t.mode,v:Math.round(t.velocityPxPerS)}:{t:`scrubTo`,epoch:e}))}end(){this.begun&&this.deps.onLog?.(`scrub:push-drag-end`,{retargets:this.retargets,positions:this.positionsSeen,renders:this.renders,acks:this.acks}),this.begun=!1,this.cancelRenderAck()}dispose(){this.end(),this.disposed=!0,this.deps.channel.removeEventListener(`message`,this.onMessage)}armRenderAck(){let e=this.deps.video();e?.requestVideoFrameCallback&&(this.rvfcHandle=e.requestVideoFrameCallback(()=>{this.rvfcHandle=null,!(!this.begun||this.disposed)&&(this.positionsSeen>0&&(this.renders+=1,this.acks+=1,this.send({t:`scrubAck`}),this.firstFrameAnnounced||(this.firstFrameAnnounced=!0,this.deps.onFirstFrame?.()),this.deps.onFrameRendered?.(),this.deps.onLog?.(`scrub:drawn`,{depth:`push`})),this.armRenderAck())}))}cancelRenderAck(){this.rvfcHandle!==null&&(this.deps.video()?.cancelVideoFrameCallback?.(this.rvfcHandle),this.rvfcHandle=null)}},l1=class extends Error{needBytes;constructor(e,t){super(e),this.needBytes=t,this.name=`MfraParseError`}},u1=16;function d1(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function f1(e,t){let n=t.charCodeAt(0),r=t.charCodeAt(1),a=t.charCodeAt(2),o=t.charCodeAt(3);for(let t=e.length-4;t>=0;t--)if(e[t]===n&&e[t+1]===r&&e[t+2]===a&&e[t+3]===o)return t;return-1}var p1=2048;function m1(e,t,n){let r=8;for(;r+8<=e.length;){let a=t.getUint32(r);if(a<8||r+a>e.length)break;if(String.fromCharCode(e[r+4],e[r+5],e[r+6],e[r+7])===`tfra`&&(n===void 0||t.getUint32(r+12)===n))return r+4;r+=a}return-1}function h1(e,t,n={}){if(e.length<u1)throw new l1(`tail too short to contain mfro`,p1);let r=d1(e),a=f1(e,`mfro`);if(a<0)throw new l1(`no mfro box in tail`);let o=r.getUint32(a+8);if(o<=0||o>t)throw new l1(`implausible mfra size ${o}`);if(o>e.length)throw new l1(`mfra spans ${o} bytes, tail has ${e.length}`,o);let s=e.length-o,c=e.subarray(s),l=t-o,u=d1(c),d=m1(c,u,n.trackId);if(d<0)throw new l1(n.trackId===void 0?`no tfra box inside mfra`:`no tfra box for track ${n.trackId}`);let f=d+4,p=c[f]??0;f+=4;let m=u.getUint32(f);f+=4;let h=u.getUint32(f);f+=4;let g=(h>>4&3)+1,_=(h>>2&3)+1,v=(h&3)+1,y=u.getUint32(f);f+=4;let b=[];for(let e=0;e<y;e++){let e,t;if(p===1?(e=Number(u.getBigUint64(f)),f+=8,t=Number(u.getBigUint64(f)),f+=8):(e=u.getUint32(f),f+=4,t=u.getUint32(f),f+=4),f+=g+_+v,f>c.length)throw new l1(`tfra declares ${y} entries but the box ends early`);b.push({timeTicks:e,moofOffset:t})}if(b.length===0)throw new l1(`tfra has no entries`);return{samples:b,mfraOffset:l,trackId:m}}function g1(e,t){let{samples:n,mfraOffset:r}=e,a=0,o=n.length-1,s=0;for(;a<=o;){let e=a+o>>1,r=n[e];if(r===void 0)break;r.timeTicks<=t?(s=e,a=e+1):o=e-1}return{start:n[s]?.moofOffset??0,end:n[s+1]?.moofOffset??r,sampleIndex:s}}function*_1(e,t=0,n=e.length){let r=new DataView(e.buffer,e.byteOffset,e.byteLength),a=t;for(;a+8<=n;){let t=r.getUint32(a),o=String.fromCharCode(e[a+4],e[a+5],e[a+6],e[a+7]);if(t<8)return;let s=Math.min(a+t,n);yield[o,a,s],a=s}}function v1(e,t,n=0,r=e.length){for(let[a,o,s]of _1(e,n,r))if(a===t)return[o,s];return null}function y1(e){let t=v1(e,`moof`);if(!t)return null;let[n,r]=t;if(r>e.length)return null;let a=v1(e,`traf`,n+8,r);if(!a)return null;let o=v1(e,`trun`,a[0]+8,a[1]);if(!o)return null;let s=new DataView(e.buffer,e.byteOffset,e.byteLength),c=o[0]+8,l=s.getUint32(c)&16777215;c+=4;let u=s.getUint32(c);c+=4;let d=(l&1)!=0,f=(l&4)!=0,p=(l&256)!=0,m=(l&512)!=0,h=(l&1024)!=0,g=(l&2048)!=0,_=r-n+8;if(d&&(_=s.getInt32(c),c+=4),f&&(c+=4),!m)return null;let v=[];for(let t=0;t<u;t++){p&&(c+=4);let t=s.getUint32(c);if(c+=4,h&&(c+=4),g&&(c+=4),c>e.length)return null;v.push(t)}return{sizes:v,dataOffset:_}}function*b1(e,t,n,r){let a=n;for(;a+8<=r;){let n=t.getUint32(a);if(n<8)return;let o=String.fromCharCode(e[a+4],e[a+5],e[a+6],e[a+7]),s=a+n;if(s>r)return;yield[o,a,s],a=s}}function x1(e,t){return e[t+8]??0}function S1(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength);for(let[n,r,a]of b1(e,t,0,e.length))if(n===`moov`)for(let[n,o,s]of b1(e,t,r+8,a)){if(n!==`trak`)continue;let r=C1(e,t,o,s);if(r)return{...r,initEnd:a}}return null}function C1(e,t,n,r){let a=null,o=null,s=!1;for(let[c,l,u]of b1(e,t,n+8,r))if(c===`tkhd`)a=t.getUint32(l+12+(x1(e,l)===1?16:8));else if(c===`mdia`){for(let[n,r,a]of b1(e,t,l+8,u))if(n===`mdhd`)o=t.getUint32(r+12+(x1(e,r)===1?16:8));else if(n===`hdlr`){let t=r+16;t+4<=a&&(s=String.fromCharCode(e[t],e[t+1],e[t+2],e[t+3])===`vide`)}}return!s||a===null||o===null||o<=0?null:{videoTrackId:a,videoTimescale:o}}function w1(e){let t=e.headers?.get?.(`content-range`);if(!t)return null;let n=/\/(\d+)\s*$/.exec(t)?.[1];if(n===void 0)return null;let r=Number(n);return Number.isFinite(r)&&r>0?r:null}function T1(e,t,n,r){let a=Math.max(0,n-t.startMs),o=e.samples[0]?.timeTicks??0;if(r!==null&&r>0)return o+a/1e3*r;let s=e.samples[e.samples.length-1]?.timeTicks??0,c=t.durMs>0?a/t.durMs:0;return Math.round(s*c)}var E1=8,D1=128*1024,O1=512*1024,k1=4096,A1=class{deps;fetchImpl;headers;now;fragmentCacheSize;smallFragmentBytes;initByProfile=new Map;indexByUrl=new Map;fragments=new Map;reads=[];constructor(e={}){this.deps=e,this.fetchImpl=e.fetchImpl??((e,t)=>fetch(e,t)),this.headers=e.headers??{},this.now=e.now??(()=>Date.now()),this.fragmentCacheSize=e.fragmentCacheSize??E1,this.smallFragmentBytes=e.smallFragmentBytes??D1}async readRange(e,t,n){let r=this.now(),a=await this.fetchImpl(e,{headers:{...this.headers,range:t},credentials:`include`,...n?{signal:n}:{}});if(!a.ok&&a.status!==206)throw Error(`byte-range ${t} on ${e}: HTTP ${a.status}`);let o=new Uint8Array(await a.arrayBuffer());return this.record({bytes:o.length,ms:this.now()-r}),{bytes:o,totalBytes:w1(a)}}record(e){this.reads.push(e),this.reads.length>32&&this.reads.shift()}throughputBytesPerMs(){let e=this.reads.filter(e=>e.bytes>16*1024&&e.ms>0);if(e.length<3)return null;let t=e.reduce((e,t)=>e+t.bytes,0),n=e.reduce((e,t)=>e+t.ms,0);return n>0?t/n:null}async init(e,t,n){let r=this.initByProfile.get(e);if(r)return r;let{bytes:a}=await this.readRange(t.url,`bytes=0-${k1-1}`,n),o=S1(a);o===null&&this.deps.onLog?.(`init:unparsed`,{url:t.url,profile:e});let s={bytes:o===null?a:a.subarray(0,o.initEnd),info:o};return this.initByProfile.set(e,s),s}async index(e,t,n){let r=this.indexByUrl.get(e.url);if(r)return r;let a=e.mfra;if(a!==void 0&&(t===void 0||t===a.trackId)){let t={samples:a.samples,mfraOffset:a.mfraOffset,trackId:a.trackId};return this.indexByUrl.set(e.url,t),t}let o=p1;for(let r=0;r<2;r++){let a=await this.readRange(e.url,`bytes=-${o}`,n),s=a.totalBytes??e.bytes;if(s===void 0)throw new l1(`unknown size for ${e.url} — no Content-Range, no byte count`);try{let n=h1(a.bytes,s,t===void 0?{}:{trackId:t});return this.indexByUrl.set(e.url,n),n}catch(t){if(t instanceof l1&&t.needBytes&&r===0){o=t.needBytes+64,this.deps.onLog?.(`mfra:refetch`,{url:e.url,tailBytes:o});continue}throw t}}throw new l1(`could not read an index for ${e.url}`)}async fragmentAt(e,t,n,r){let{index:a,timescale:o}=await this.locate(e,t,r),{start:s,end:c,sampleIndex:l}=g1(a,T1(a,t,n,o));return{bytes:await this.fragmentBytes(t,s,c,r),sampleIndex:l,index:a,timescale:o}}async locate(e,t,n){let r=await this.init(e,t,n);return{index:await this.index(t,r.info?.videoTrackId,n),timescale:r.info?.videoTimescale??null}}async keyframeAt(e,t,n,r){let{index:a,timescale:o}=await this.locate(e,t,r),{start:s,end:c,sampleIndex:l}=g1(a,T1(a,t,n,o));if(c-s<=this.smallFragmentBytes)return{bytes:await this.fragmentBytes(t,s,c,r),sampleIndex:l,index:a,timescale:o};let u=Math.min(c,s+O1),d=await this.fragmentBytes(t,s,u,r),f=y1(d),p=f?.sizes[0];if(f===null||p===void 0)return this.deps.onLog?.(`keyframe:no-trun`,{url:t.url,start:s}),{bytes:await this.fragmentBytes(t,s,c,r),sampleIndex:l,index:a,timescale:o};let m=f.dataOffset+p;if(m<=d.length)return{bytes:d.subarray(0,m),sampleIndex:l,index:a,timescale:o};let h=Math.min(c,s+m);return{bytes:await this.fragmentBytes(t,s,h,r),sampleIndex:l,index:a,timescale:o}}async fragmentAfter(e,t,n,r){let a=t.samples[n+1];if(a===void 0)return null;let o=t.samples[n+2];return this.fragmentBytes(e,a.moofOffset,o?.moofOffset??t.mfraOffset,r)}async fragmentBytes(e,t,n,r){let a=`${e.url}#${t}-${n}`,o=this.fragments.get(a);if(o)return this.fragments.delete(a),this.fragments.set(a,o),o;let{bytes:s}=await this.readRange(e.url,`bytes=${t}-${n-1}`,r);for(this.fragments.set(a,s);this.fragments.size>this.fragmentCacheSize;){let e=this.fragments.keys().next().value;if(e===void 0)break;this.fragments.delete(e)}return s}clear(){this.initByProfile.clear(),this.indexByUrl.clear(),this.fragments.clear(),this.reads.length=0}},j1=class{windowMs;maxSamples;samples=[];constructor(e){this.windowMs=e.windowMs,this.maxSamples=Math.max(2,e.maxSamples??6)}add(e,t){this.samples.push({epochMs:e,at:t}),this.samples.length>this.maxSamples&&(this.samples=this.samples.slice(this.samples.length-this.maxSamples))}velocity(){if(this.samples.length<2)return 0;let e=this.samples[0],t=this.samples[this.samples.length-1],n=t.at-e.at;return n<=0?0:(t.epochMs-e.epochMs)/n}windowKey(e){return Math.floor(e/this.windowMs)*this.windowMs}projectedWindowKeys(e,t,n){let r=Math.max(1,n),a=this.windowKey(e),o=this.velocity();if(o===0)return[a,a-this.windowMs,a+this.windowMs].slice(0,r);let s=e+o*t,c=o>0?1:-1,l=[a],u=a;for(;l.length<r&&(u+=c*this.windowMs,!(c>0&&u>s+this.windowMs||c<0&&u<s-this.windowMs));)l.push(u);return l.slice(0,r)}reset(){this.samples=[]}};function M1(e,t,n,r){let a=t-e;if(Math.abs(a)<=r)return null;let o=a/Math.max(1,n);Math.abs(o)<r&&(o=Math.sign(a)*r);let s=Math.round(e+o);return Math.abs(t-s)<=r?null:s}var N1=`low`,P1=4e3,F1=6e4,I1=1e3,L1=10,R1=150,z1=1e4,B1=class extends Error{constructor(e){super(`scrub read outran its deadline (${e}ms slot)`),this.name=`DeadlineError`}},V1=3,H1=class{deps;pushedSinceDrawn=0;pushProvedDead=!1;disposed=!1;velocity=new j1({windowMs:F1});lastSampleAt=0;pendingEpoch=null;running=!1;lastPaintedEpoch=null;sweepDeadline=0;framesLeft=L1;lookahead=null;inFlightAcs=new Set;constructor(e){this.deps=e}now(){return this.deps.now?.()??Date.now()}async scrubTo(e){if(this.disposed)return`no-footage`;let t=this.now();t-this.lastSampleAt>500&&(this.velocity.reset(),this.pushProvedDead=!1,this.pushedSinceDrawn=0),this.lastSampleAt=t,this.velocity.add(e,t);let n=this.deps.push;if(n?.isActive()&&!this.pushProvedDead)if(this.pushedSinceDrawn+=1,this.pushedSinceDrawn>V1)this.pushProvedDead=!0,this.deps.onLog?.(`scrub:push-abandoned`,{pushed:this.pushedSinceDrawn,reason:`no frame drawn — falling back to the sweep`});else return this.deps.onLog?.(`scrub:pushed`,{epochMs:e}),n.retarget(e),`queued`;if(this.pendingEpoch=e,this.sweepDeadline=t+I1,this.framesLeft=L1,this.running)return`queued`;this.running=!0;try{let e=`no-footage`,t=this.lastPaintedEpoch;for(;!this.disposed;){let n=this.pendingEpoch;if(n===null)break;let r=this.now(),a=t!==null&&r<this.sweepDeadline&&this.framesLeft>0?M1(t,n,this.framesLeft,P1):null;if(a===null)this.pendingEpoch=null,e=await this.paintOne(n,r+z1,null,!0),t=n;else{this.framesLeft=Math.max(0,this.framesLeft-1);let r=M1(a,n,this.framesLeft,P1);e=await this.paintOne(a,this.sweepDeadline,r,!1),t=a}}return e}finally{this.running=!1}}bounded(e,t,n){let r=t-this.now();return r<=0?(n?.abort(),Promise.reject(new B1(0))):new Promise((t,a)=>{let o=setTimeout(()=>{n?.abort(),a(new B1(r))},r);e.then(e=>{clearTimeout(o),t(e)},e=>{clearTimeout(o),a(e instanceof Error?e:Error(String(e)))})})}startRead(e){let t=new AbortController;this.inFlightAcs.add(t);let n=(async()=>{try{let n=await this.deps.locate(e);if(this.disposed)return null;if(n===null)return this.deps.onLog?.(`scrub:no-segment`,{epochMs:e}),null;let[r,a]=await Promise.all([this.deps.source.keyframeAt(N1,n,e,t.signal),this.deps.source.init(N1,n,t.signal)]),o=new Uint8Array(a.bytes.length+r.bytes.length);return o.set(a.bytes,0),o.set(r.bytes,a.bytes.length),{bytes:o.buffer,readBytes:r.bytes.length,sampleIndex:r.sampleIndex}}finally{this.inFlightAcs.delete(t)}})();return n.catch(()=>{}),{epochMs:e,promise:n,ac:t}}takeOrStartRead(e){let t=this.lookahead;return this.lookahead=null,t&&t.epochMs===e?t:this.startRead(e)}armLookahead(e,t){(async()=>{let n=!1;e.then(()=>{n=!0},()=>{n=!0}),await new Promise(e=>setTimeout(e,R1)),!(n||this.disposed||this.lookahead!==null)&&(this.lookahead=this.startRead(t))})()}async paintOne(e,t,n,r){let a=this.velocity.velocity(),o=this.takeOrStartRead(e);n!==null&&this.armLookahead(o.promise,n);let s;try{s=await this.bounded(o.promise,t,r?o.ac:null)}catch(t){return t instanceof B1?this.skipped(e,r,`read`):(this.deps.onLog?.(`scrub:failed`,{epochMs:e,disposed:this.disposed,error:t instanceof Error?t.message:String(t)}),`no-footage`)}if(this.disposed||s===null)return`no-footage`;let c,l=this.deps.decode(s.bytes);try{c=await this.bounded(l,t,null)}catch(t){return t instanceof B1?(l.then(e=>e.close()).catch(()=>{}),this.skipped(e,r,`decode`)):(this.deps.onLog?.(`scrub:failed`,{epochMs:e,disposed:this.disposed,error:t instanceof Error?t.message:String(t)}),`no-footage`)}return this.disposed?(c.close(),`no-footage`):(this.deps.draw(c),c.close(),this.lastPaintedEpoch=e,this.deps.onDrawn?.(),this.deps.warmAhead?.(e,a>=0?1:-1),this.deps.onLog?.(`scrub:drawn`,{epochMs:e,depth:`keyframe`,kind:r?`target`:`sweep`,bytes:s.readBytes,sampleIndex:s.sampleIndex}),`drawn`)}notePushDrawn(){this.pushedSinceDrawn=0}skipped(e,t,n){return this.deps.onLog?.(`scrub:skipped`,{epochMs:e,stage:n,kind:t?`target`:`sweep`}),`skipped`}armPrefetch(e){this.disposed||(async()=>{try{let t=await this.deps.locate(e);if(t===null||this.disposed)return;let{info:n}=await this.deps.source.init(N1,t);await this.deps.source.index(t,n?.videoTrackId)}catch{}})()}dispose(){this.disposed=!0,this.pendingEpoch=null;for(let e of this.inFlightAcs)e.abort();this.inFlightAcs.clear(),this.lookahead=null}};function U1(){let e=!1;return{fire(){return e?!1:(e=!0,!0)},reset(){e=!1}}}var W1=R({serverUrl:M().min(1),token:M().min(1),deviceId:N().int().nonnegative(),target:N$,muted:P(),stats:P().optional(),highlight:_Q.optional(),snapshot:M().optional()});function G1(e,t){try{return new URL(t,e).toString()}catch{return t}}function K1(e,t){LX(t===void 0?{type:`state`,state:e}:{type:`state`,state:e,message:t})}function q1(e){switch(e){case`playing`:return`playing`;case`error`:return`error`;case`connecting`:case`disconnected`:case`idle`:return`connecting`}}function J1(e){return e.kind===`adaptive`?{kind:`adaptive`}:{kind:`profile`,profile:e.profile}}function Y1(e){return e.kind===`adaptive`?`embed:adaptive`:`embed:profile:${e.profile}`}function X1(e){let t=W1.safeParse(e);return t.success?{ok:!0,config:t.data}:{ok:!1,error:t.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `)}}function Z1({message:e}){return(0,K.useEffect)(()=>{K1(`error`,e)},[e]),(0,q.jsxs)(`div`,{style:{position:`fixed`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,background:`#000`,color:`#f87171`,fontFamily:`system-ui, sans-serif`,fontSize:13,padding:16,textAlign:`center`},children:[`Embed config error: `,e]})}function Q1({system:e,deviceId:t,token:n,initialTarget:r,initialMuted:a,initialStats:o,initialHighlight:s,initialSnapshot:c}){let[l,u]=(0,K.useState)(r);(0,K.useEffect)(()=>FX(t),[t]);let d=(0,K.useRef)(l);d.current=l;let[f,p]=(0,K.useState)(a),[m,h]=(0,K.useState)(o),[g,_]=(0,K.useState)(s),[v,y]=(0,K.useState)(c),[b,x]=(0,K.useState)(0),[S,ee]=(0,K.useState)({w:window.innerWidth,h:window.innerHeight}),C=t$(e,t,g),w=LQ(),T=(0,K.useRef)(w.setActiveMic);T.current=w.setActiveMic;let E=(0,K.useRef)(0),{handleOffer:te,getIceServers:ne,addIceCandidate:D,getIceCandidates:re,closeSession:O,getSessionState:ie}=kY(e.trpcClient,t),ae=(0,K.useMemo)(()=>J1(l),[l]),oe=(0,K.useMemo)(()=>(e,t,n)=>te(ae,e,t,n),[te,ae]),se=(0,K.useMemo)(()=>(e,t,n,r)=>te(n,t,e,r),[te]),k=(0,K.useRef)(null),[ce,le]=(0,K.useState)(!1),[ue,de]=(0,K.useState)(!1),fe=(0,K.useRef)(null),pe=(0,K.useRef)(null),me=(0,K.useRef)(null),he=(0,K.useRef)(null),ge=(0,K.useRef)(null),_e=(0,K.useRef)(U1()),ve=(0,K.useRef)(new Map),ye=(0,K.useRef)(!1),be=(0,K.useMemo)(()=>({Authorization:`Bearer ${n}`}),[n]),xe=(0,K.useMemo)(()=>()=>(me.current||=new A1({headers:be}),me.current),[be]),Se=(0,K.useMemo)(()=>n=>{let r=ve.current.get(n);if(r)return r;let a=new q$({baseUrl:G1(e.serverUrl,R$),deviceId:t,profile:n,headers:be,onLog:(e,t)=>LX({type:`log`,scope:`directory`,msg:e,data:t})});return ve.current.set(n,a),a},[e,t,be]),Ce=(0,K.useMemo)(()=>e=>{let t=k.current,n=t?.getContext(`2d`);if(!t||!n)return;let r=window.devicePixelRatio||1,a=Math.max(1,Math.round(S.w*r)),o=Math.max(1,Math.round(S.h*r));t.width!==a&&(t.width=a),t.height!==o&&(t.height=o),n.imageSmoothingEnabled=!0,n.imageSmoothingQuality=`high`;let s=`displayWidth`in e?e.displayWidth||e.codedWidth:typeof e.width==`number`?e.width:0,c=`displayHeight`in e?e.displayHeight||e.codedHeight:typeof e.height==`number`?e.height:0;if(s<=0||c<=0)return;let l=Math.min(a/s,o/c),u=s*l,d=c*l;n.clearRect(0,0,a,o),n.drawImage(e,(a-u)/2,(o-d)/2,u,d),de(!0)},[S.w,S.h]),we=(0,K.useRef)(Ce);we.current=Ce,(0,K.useEffect)(()=>{LX({type:`log`,scope:`recorded:canvas`,msg:`visibility`,data:{visible:ce&&ue,scrubbing:ce,previewReady:ue}})},[ce,ue]),(0,K.useEffect)(()=>{if(!f)return;let e=setInterval(()=>{let e=0;for(let t of Array.from(document.querySelectorAll(`video`))){t.muted||(t.muted=!0,e++);let n=t.srcObject;if(n instanceof MediaStream)for(let t of n.getAudioTracks())t.enabled&&(t.enabled=!1,e++)}e>0&&LX({type:`log`,scope:`live-audio`,msg:`re-muted`,data:{corrected:e}})},1e3);return()=>clearInterval(e)},[f]);let Te=(0,K.useMemo)(()=>()=>(pe.current||=new H1({source:xe(),push:{isActive:()=>he.current?.isActive()??!1,retarget:e=>he.current?.retarget(e)},warmAhead:(e,t)=>{let n=36e5,r=(Math.floor(e/n)+(t===1?1:-1))*n;Se(`low`).ensure(r,r+n).catch(()=>{})},locate:async e=>{let t=Se(`low`);await t.ensureAround(e);let n=L$(t.all(),e);return n===null?null:{url:n.uri,startMs:n.startMs,durMs:n.durMs,...n.bytes===void 0?{}:{bytes:n.bytes}}},decode:async e=>(fe.current||=new i1,fe.current.decodeSegment(e)),draw:e=>we.current(e),onDrawn:()=>{_e.current.fire()&&LX({type:`scrubDrawn`})},onLog:(e,t)=>LX({type:`log`,scope:`scrub`,msg:e,data:t})}),pe.current),[Se,xe,e,t,be]),Ee=(0,K.useRef)(Te);Ee.current=Te;let De=(0,K.useMemo)(()=>async e=>{try{await Te().scrubTo(e)}catch(e){X$(e)&&!ye.current&&(ye.current=!0,LX({type:`log`,scope:`scrub`,msg:`webcodecs-unsupported`,data:{codec:e.codec}}))}},[Te]),Oe=(0,K.useRef)(De);Oe.current=De,(0,K.useEffect)(()=>()=>{pe.current?.dispose(),he.current?.dispose()},[]),(0,K.useEffect)(()=>{let e=()=>he.current?.isOpen()?he.current:null,n=()=>{let e=d.current;return e.kind===`profile`?e.profile:`mid`},r=e=>{LX({type:`log`,scope:`recorded:session`,msg:`pointer move with no open session`,data:{what:e}}),LX({type:`recState`,state:`error`})},a=a=>{le(!1);let o=e();if(!o){r(`scrubCommit`);return}o.end(),o.playRecorded(t,a,n())};return window.__camstackEmbed={setMuted:e=>p(e),setTarget:e=>{let t=N$.safeParse(e);t.success&&u(t.data)},setStats:e=>h(e),setHighlight:e=>_(e),setSnapshot:e=>y(e),setMic:e=>T.current(e?t:null),fit:(e,t)=>ee({w:e,h:t}),reconnect:()=>x(e=>e+1),playRecorded:(t,n,a)=>{if(!Number.isFinite(n))return;let o=e();if(!o){r(`playRecorded`);return}o.playRecorded(t,n,a)},seek:a=>{if(!Number.isFinite(a))return;let o=e();if(!o){r(`seek`);return}o.playRecorded(t,a,n())},scrubCommit:e=>{Number.isFinite(e)&&a(e)},scrubStart:()=>{LX({type:`log`,scope:`recorded:scrub`,msg:`scrubStart`,data:{}}),de(!1),_e.current.reset(),le(!0),he.current?.begin(),E.current>0&&Ee.current().armPrefetch(E.current)},scrubTo:e=>{Number.isFinite(e)&&Oe.current(e)},timelineWarm:e=>{Number.isFinite(e)&&(he.current?.warm(e),Ee.current().armPrefetch(e))},scrubEnd:e=>{Number.isFinite(e)&&a(e)},setRate:t=>{Number.isFinite(t)&&e()?.setRate(t)},stepFrame:t=>{t!==1&&t!==-1||e()?.stepFrame(t)},goLive:()=>{le(!1),he.current?.goLive(),LX({type:`recState`,state:`live`})}},()=>{window.__camstackEmbed&&delete window.__camstackEmbed}},[t]),(0,K.useEffect)(()=>{LX({type:`micState`,state:w.micState})},[w.micState]),(0,K.useEffect)(()=>RX(e=>{let t=window.__camstackEmbed;if(t)switch(e.kind){case`setMuted`:t.setMuted(e.value);break;case`setTarget`:t.setTarget(e.value);break;case`setStats`:t.setStats(e.value);break;case`setHighlight`:t.setHighlight(e.value);break;case`setSnapshot`:t.setSnapshot(e.value);break;case`setMic`:t.setMic(e.value);break;case`fit`:t.fit(e.w,e.h);break;case`reconnect`:t.reconnect();break;case`playRecorded`:t.playRecorded(e.deviceId,e.epochMs,e.profile);break;case`seek`:t.seek(e.epochMs??e.value);break;case`scrubCommit`:t.scrubCommit(e.epochMs??e.value);break;case`scrubStart`:t.scrubStart();break;case`scrubTo`:t.scrubTo(e.epochMs??e.value);break;case`scrubEnd`:t.scrubEnd(e.epochMs??e.value);break;case`setRate`:t.setRate(e.rate??e.value);break;case`stepFrame`:{let n=e.dir;(n===1||n===-1)&&t.stepFrame(n);break}case`goLive`:t.goLive();break;default:break}}),[]);let ke=Y1(l);return(0,q.jsxs)(`div`,{style:{position:`fixed`,left:0,top:0,width:S.w,height:S.h,background:`#000`},children:[(0,q.jsx)(uY,{serverUrl:e.serverUrl,streamKey:ke,autoPlay:!0,muted:f,showControls:!1,showStats:m,onPlaybackStats:e=>LX({type:`log`,scope:`playback`,msg:`stats`,data:e}),onConnectTiming:e=>LX({type:`log`,scope:`webrtc-timing`,msg:`connect`,data:e}),onClientNetworkSample:l.kind===`adaptive`?n=>{e.trpcClient.networkQuality.reportClientStats.mutate({deviceId:t,...n}).catch(()=>{})}:void 0,className:`w-full h-full`,handleOffer:oe,reoffer:se,getSessionState:ie,getIceServers:ne,addIceCandidate:D,getIceCandidates:re,closeSession:O,reconnectSignal:b,posterUrl:v,onStateChange:e=>K1(q1(e)),onError:e=>K1(`error`,e),onReconnectAttempt:e=>LX({type:`log`,scope:`live:retry`,msg:e.kind===`retry`?`auto-retry scheduled`:`auto-retry exhausted`,data:e}),onControlChannel:e=>{he.current?.dispose(),he.current=new c1({channel:e,video:()=>ge.current,onState:e=>LX({type:`recState`,state:e}),onPosition:e=>{E.current=e,LX({type:`position`,positionMs:e})},onFirstFrame:()=>{de(!1),_e.current.fire()&&LX({type:`scrubDrawn`})},onFrameRendered:()=>pe.current?.notePushDrawn(),onLog:(e,t)=>LX({type:`log`,scope:`scrub`,msg:e,data:t})})},onVideoElement:e=>{ge.current=e}}),(0,q.jsx)(`canvas`,{ref:k,style:{position:`absolute`,inset:0,width:`100%`,height:`100%`,background:`#000`,pointerEvents:`none`,transform:`translateZ(0)`,zIndex:2,display:ce&&ue?`block`:`none`}}),C&&(()=>{let e=g?.appearance,t=C===`motion`?e?.motionColor??n$.motion:C===`audio`?e?.audioColor??n$.audio:e?.detectionColor??n$.detection;return(0,q.jsx)(`div`,{style:{position:`absolute`,inset:0,border:`${e?.thickness??3}px solid ${t}`,boxShadow:`inset 0 0 12px ${t}`,pointerEvents:`none`,transform:`translateZ(0)`}})})()]})}function $1(){let e=BX(`player`,()=>window.__CAMSTACK_EMBED__,X1),[t,n]=(0,K.useState)(null);(0,K.useEffect)(()=>{let e=e=>{let t=F$(e);t&&n(t)};window.__camstackEmbedPage={setDevice:e};let t=RX(t=>{t.kind===`setDevice`&&e(t.value)});return()=>{window.__camstackEmbedPage&&delete window.__camstackEmbedPage,t()}},[]);let r=(0,K.useMemo)(()=>e===null||!e.ok?null:{system:DA({serverUrl:e.config.serverUrl,token:e.config.token}),queryClient:new rM({defaultOptions:{queries:{retry:!1,refetchOnWindowFocus:!1}}})},[e]);if((0,K.useEffect)(()=>{if(r)return()=>{r.system.close()}},[r]),e===null)return null;if(!e.ok)return(0,q.jsx)(Z1,{message:e.error});if(!r)return(0,q.jsx)(Z1,{message:`Failed to initialise the embed player`});let a=t?.deviceId??e.config.deviceId,o=t?.target??e.config.target,s=t?.muted??e.config.muted,c=t?.stats??e.config.stats??!1,l=t===null?e.config.snapshot:t.snapshot;return(0,q.jsx)(lH,{system:r.system,children:(0,q.jsx)(oM,{client:r.queryClient,children:(0,q.jsx)($.Provider,{client:r.system.trpcClient,queryClient:r.queryClient,children:(0,q.jsx)(Q1,{system:r.system,deviceId:a,token:e.config.token,initialTarget:o,initialMuted:s,initialStats:c,initialHighlight:e.config.highlight,initialSnapshot:l},a)})})})}var e0=R({serverUrl:M().min(1),token:M().min(1),deviceId:N().int().nonnegative(),startMs:N().int().nonnegative().optional()});function t0(e){if(e==null)return{ok:!1,error:`config is required`};let t=e0.safeParse(e);return t.success?{ok:!0,config:t.data}:{ok:!1,error:t.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `)}}function n0(e,t){let n=(e-t)/1e3;return Number.isFinite(n)&&n>0?n:0}var r0=360*60*1e3;function i0(e){LX(e)}function a0(e,t,n){try{LX({type:`log`,scope:e,msg:t,data:n})}catch{}try{console.debug(`[rec-embed:${e}] ${t}`,n??``)}catch{}}function o0({system:e,config:t}){(0,K.useEffect)(()=>FX(t.deviceId),[t.deviceId]);let n=(0,K.useRef)(null),r=(0,K.useRef)(null),a=(0,K.useRef)(0),o=(0,K.useRef)(0),s=(0,K.useRef)(0),[c,l]=(0,K.useState)({w:window.innerWidth,h:window.innerHeight}),[u,d]=(0,K.useState)(!1),f=(0,K.useRef)(!1),p=(0,K.useRef)(null),m=(0,K.useRef)(null),h=(0,K.useRef)(null),g=(0,K.useRef)(U1()),_=(0,K.useRef)(null),v=(0,K.useMemo)(()=>async r=>{let c=n.current;if(!c)return;let l=++s.current;o.current=performance.now(),a0(`loadAt`,`start`,{epochMs:r,window:r0}),i0({type:`state`,state:`loading`});try{let n=await e.trpcClient.recording.getPlaybackManifest.query({deviceId:t.deviceId,fromMs:r,toMs:r+r0});if(l!==s.current){a0(`loadAt`,`superseded`,{epochMs:r});return}if(a0(`loadAt`,`manifest`,{playbackUrl:n?.playbackUrl??null,endpoints:n?.playbackEndpoints?.length??0,localMaster:!!n?.localMasterPath}),!n?.playbackUrl){i0({type:`state`,state:`error`,message:`no footage`}),d(!1);return}c.src=n.playbackUrl;let o=()=>{if(l!==s.current)return;let e=typeof c.getStartDate==`function`?c.getStartDate():null,t=e instanceof Date&&!Number.isNaN(e.getTime())?e.getTime():r;a.current=t;let n=n0(r,t);if(n>0)try{c.currentTime=n}catch(e){a0(`loadAt`,`seek-failed`,{msg:String(e)})}c.play().catch(e=>{a0(`loadAt`,`play-rejected`,{msg:String(e)})}),a0(`loadAt`,`seek`,{epochMs:r,media0Ms:t,offsetSec:n})};c.readyState>=HTMLMediaElement.HAVE_METADATA?o():c.addEventListener(`loadedmetadata`,o,{once:!0}),a0(`loadAt`,`src-set`,{src:n.playbackUrl})}catch(e){a0(`loadAt`,`error`,{msg:e instanceof Error?e.message:String(e)}),i0({type:`state`,state:`error`,message:e instanceof Error?e.message:String(e)}),d(!1)}},[e,t.deviceId]),y=(0,K.useMemo)(()=>()=>(_.current||=new q$({baseUrl:R$,deviceId:t.deviceId,profile:`low`,onLog:(e,t)=>a0(`directory`,e,t)}),_.current),[t.deviceId]),b=(0,K.useMemo)(()=>e=>{let t=r.current,n=t?.getContext(`2d`);if(!t||!n)return;t.width=c.w,t.height=c.h;let a=`displayWidth`in e?e.displayWidth||e.codedWidth:e.width,o=`displayHeight`in e?e.displayHeight||e.codedHeight:e.height,s=Math.min(c.w/a,c.h/o),l=a*s,u=o*s;n.clearRect(0,0,c.w,c.h),n.drawImage(e,(c.w-l)/2,(c.h-u)/2,l,u)},[c.w,c.h]),x=(0,K.useRef)(b);x.current=b;let S=(0,K.useMemo)(()=>()=>(h.current||=(m.current||=new A1,new H1({source:m.current,warmAhead:(e,t)=>{let n=36e5,r=(Math.floor(e/n)+(t===1?1:-1))*n;y().ensure(r,r+n).catch(()=>{})},locate:async e=>{let t=y();await t.ensureAround(e);let n=L$(t.all(),e);return n===null?null:{url:n.uri,startMs:n.startMs,durMs:n.durMs,...n.bytes===void 0?{}:{bytes:n.bytes}}},decode:async e=>(p.current||=new i1,p.current.decodeSegment(e)),draw:e=>x.current(e),onDrawn:()=>{g.current.fire()&&i0({type:`scrubDrawn`})},onLog:(e,t)=>a0(`scrub`,e,t)})),h.current),[y,t.deviceId]),ee=(0,K.useMemo)(()=>async e=>{try{a0(`scrub`,await S().scrubTo(e),{epochMs:e})}catch(e){a0(`scrub`,`error`,{msg:e instanceof Error?e.message:String(e)}),f.current||(f.current=!0,i0({type:`state`,state:`error`,message:`scrub: ${e instanceof Error?e.message:String(e)}`}))}},[S]);return(0,K.useEffect)(()=>(a0(`init`,`mounted`,{deviceId:t.deviceId,startMs:t.startMs??null,hasWebCodecs:window.VideoDecoder!==void 0,ua:navigator.userAgent}),window.__camstackRecording={seekTo:e=>{a0(`cmd`,`seekTo`,{epochMs:e}),v(e)},play:()=>{a0(`cmd`,`play`),n.current?.play().catch(()=>{})},pause:()=>{a0(`cmd`,`pause`),n.current?.pause()},setRate:e=>{a0(`cmd`,`setRate`,{rate:e}),n.current&&(n.current.playbackRate=e)},fit:(e,t)=>{a0(`cmd`,`fit`,{w:e,h:t}),l({w:e,h:t})},scrubStart:()=>{a0(`cmd`,`scrubStart`),f.current=!1,g.current.reset(),d(!0);let e=n.current;e&&S().armPrefetch(a.current+e.currentTime*1e3)},scrubTo:e=>{a0(`cmd`,`scrubTo`,{epochMs:e}),ee(e)},scrubEnd:e=>{a0(`cmd`,`scrubEnd`,{epochMs:e}),h.current?.dispose(),h.current=null,v(e)}},t.startMs&&t.startMs>0&&v(t.startMs),()=>{window.__camstackRecording&&delete window.__camstackRecording,h.current?.dispose(),h.current=null,p.current?.close(),p.current=null}),[v,ee,S,t.startMs,t.deviceId]),(0,K.useEffect)(()=>RX(e=>{let t=window.__camstackRecording;if(t)switch(e.kind){case`seekTo`:t.seekTo(e.value);break;case`play`:t.play();break;case`pause`:t.pause();break;case`setRate`:t.setRate(e.value);break;case`scrubStart`:t.scrubStart();break;case`scrubTo`:t.scrubTo(e.value);break;case`scrubEnd`:t.scrubEnd(e.value);break;case`fit`:t.fit(e.w,e.h);break;default:break}}),[]),(0,q.jsxs)(`div`,{style:{position:`fixed`,left:0,top:0,width:c.w,height:c.h,background:`#000`},children:[(0,q.jsx)(`video`,{ref:n,playsInline:!0,controls:!1,style:{width:`100%`,height:`100%`,objectFit:`contain`,background:`#000`},onLoadedMetadata:e=>a0(`video`,`loadedmetadata`,{w:e.currentTarget.videoWidth,h:e.currentTarget.videoHeight,dur:e.currentTarget.duration}),onPlaying:()=>{a0(`video`,`playing`,{vodStartMs:Math.round(performance.now()-o.current)}),i0({type:`state`,state:`playing`}),d(!1)},onPause:()=>i0({type:`state`,state:`paused`}),onEnded:()=>i0({type:`state`,state:`ended`}),onError:e=>{let t=e.currentTarget.error;a0(`video`,`error`,{code:t?.code??null,message:t?.message??null}),i0({type:`state`,state:`error`,message:t?.message||`video error`}),d(!1)},onTimeUpdate:e=>i0({type:`position`,positionMs:a.current+e.currentTarget.currentTime*1e3})}),(0,q.jsx)(`canvas`,{ref:r,style:{position:`absolute`,left:0,top:0,width:`100%`,height:`100%`,background:`#000`,display:u?`block`:`none`}})]})}function s0(){let e=BX(`recording`,()=>window.__CAMSTACK_RECORDING__,t0),t=(0,K.useMemo)(()=>e===null||!e.ok?null:(document.cookie=`camstack_session=${e.config.token}; path=/; SameSite=Lax`,DA({serverUrl:e.config.serverUrl,token:e.config.token})),[e]);return(0,K.useEffect)(()=>()=>t?.close(),[t]),e===null?null:e.ok?t?(0,q.jsx)(o0,{system:t,config:e.config}):(i0({type:`state`,state:`error`,message:`init failed`}),null):(i0({type:`state`,state:`error`,message:e.error}),null)}function c0(){let e=new URLSearchParams(location.search).get(`mode`)??`grid`;return e===`player`?(0,q.jsx)($1,{}):e===`recording`?(0,q.jsx)(s0,{}):e===`events`?(0,q.jsx)(mQ,{}):(0,q.jsx)(M$,{})}var l0=document.getElementById(`root`);l0&&(0,v.createRoot)(l0).render((0,q.jsx)(c0,{}));export{kJ as a,pH as c,HA as d,m as f,u as g,c as h,dV as i,mY as l,s as m,tV as n,Q as o,f as p,aF as r,iF as s,Xz as t,uH as u};
|