yo-moss-ai 0.0.21 → 0.0.22
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/bin/bootstrap-deps.mjs +7 -6
- package/bin/runtime-manifest.json +1 -1
- package/dist/assets/esp-flasher-CLKzE7JE.js +2 -2
- package/dist/assets/index-BTL1clBe.js +45 -0
- package/dist/assets/{index-CzQKR67c.css → index-Bcf5kQZF.css} +1 -1
- package/dist/index.html +2 -2
- package/dist/models/mediapipe/blaze_face_full_range.tflite +0 -0
- package/dist/models/mediapipe/blaze_face_short_range.tflite +0 -0
- package/dist/models/mediapipe/wasm/vision_wasm_internal.js +8841 -0
- package/dist/models/mediapipe/wasm/vision_wasm_internal.wasm +0 -0
- package/dist/models/mediapipe/wasm/vision_wasm_nosimd_internal.js +8832 -0
- package/dist/models/mediapipe/wasm/vision_wasm_nosimd_internal.wasm +0 -0
- package/dist/stl/moss.stl +0 -0
- package/dist/stl/planetary_engine.stl +0 -0
- package/dist/textures/earth-lights.png +0 -0
- package/dist/textures/earth-night.jpg +0 -0
- package/dist/textures/earth_clouds.jpg +0 -0
- package/dist/textures/moon-base.jpg +0 -0
- package/dist/textures/moon-bump.jpg +0 -0
- package/dist/textures/wandering.png +0 -0
- package/dist-server/board-presets.mjs +1 -1
- package/dist-server/camera.mjs +1 -1
- package/dist-server/dev-ui.mjs +1 -1
- package/dist-server/device-chat-sync.mjs +1 -1
- package/dist-server/device-config-view.mjs +1 -1
- package/dist-server/device-focus.mjs +1 -1
- package/dist-server/device-http.mjs +1 -1
- package/dist-server/device-identity.mjs +1 -1
- package/dist-server/device-presence.mjs +1 -1
- package/dist-server/device-probe.mjs +1 -1
- package/dist-server/device-registry.mjs +1 -1
- package/dist-server/device-routes.mjs +1 -1
- package/dist-server/device-runtime.mjs +1 -1
- package/dist-server/device-session.mjs +1 -1
- package/dist-server/ffmpeg.mjs +1 -1
- package/dist-server/gimbal-control.mjs +1 -1
- package/dist-server/home-path.mjs +1 -1
- package/dist-server/index.mjs +1 -1
- package/dist-server/ir-import-validate.mjs +1 -1
- package/dist-server/known-scan-device.mjs +1 -1
- package/dist-server/lan-discover.mjs +1 -1
- package/dist-server/listen-port.mjs +1 -1
- package/dist-server/mcp/backoff.mjs +1 -1
- package/dist-server/mcp/bridge-manager.mjs +1 -1
- package/dist-server/mcp/builtin-tools.mjs +1 -1
- package/dist-server/mcp/dedupe-servers.mjs +1 -1
- package/dist-server/mcp/doctor.mjs +1 -1
- package/dist-server/mcp/fixtures/echo-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/hotkey-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/mihome-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/onvif-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/shell-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/yunxiangji-mcp.mjs +1 -1
- package/dist-server/mcp/hotkey-agent-docs.mjs +1 -1
- package/dist-server/mcp/hotkey-driver.mjs +1 -1
- package/dist-server/mcp/hotkey-handlers.mjs +1 -1
- package/dist-server/mcp/hotkey-import-validate.mjs +1 -1
- package/dist-server/mcp/hotkey-store.mjs +1 -1
- package/dist-server/mcp/http-client.mjs +1 -1
- package/dist-server/mcp/http-pipe.mjs +1 -1
- package/dist-server/mcp/local-probe.mjs +1 -1
- package/dist-server/mcp/marketplace.mjs +1 -1
- package/dist-server/mcp/onvif-handlers.mjs +1 -1
- package/dist-server/mcp/parse-server-json.mjs +1 -1
- package/dist-server/mcp/paths.mjs +1 -1
- package/dist-server/mcp/routes.mjs +1 -1
- package/dist-server/mcp/schema.mjs +1 -1
- package/dist-server/mcp/settings.mjs +1 -1
- package/dist-server/mcp/shell-approval.mjs +1 -1
- package/dist-server/mcp/shell-policy.mjs +1 -1
- package/dist-server/mcp/shell-trash.mjs +1 -1
- package/dist-server/mcp/stdio-pipe.mjs +1 -1
- package/dist-server/mcp/store.mjs +1 -1
- package/dist-server/mcp/task-notify.mjs +1 -1
- package/dist-server/mcp/ws-connect.mjs +1 -1
- package/dist-server/mcp/yunxiangji.mjs +1 -1
- package/dist-server/media-cache.mjs +1 -1
- package/dist-server/mihome/cloud.mjs +1 -1
- package/dist-server/mihome/devices.mjs +1 -1
- package/dist-server/mihome/local.mjs +1 -1
- package/dist-server/mihome/mcp-desc.mjs +1 -1
- package/dist-server/mihome/queue.mjs +1 -1
- package/dist-server/mihome/rc4.mjs +1 -1
- package/dist-server/mihome/routes.mjs +1 -1
- package/dist-server/mihome/service.mjs +1 -1
- package/dist-server/mihome/sign.mjs +1 -1
- package/dist-server/mihome/spec.mjs +1 -1
- package/dist-server/mihome/store.mjs +1 -1
- package/dist-server/onboard-preview.mjs +1 -1
- package/dist-server/tab-focus.mjs +1 -1
- package/dist-server/voice-wake.mjs +1 -1
- package/package.json +2 -4
- package/dist/assets/index-C1bPuFAs.js +0 -45
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const _0xd7ab58=_0x54e9;(function(_0x5e8681,_0x3566fb){const _0x5ddada=_0x54e9,_0x6009a1=_0x5e8681();while(!![]){try{const _0x466af6=parseInt(_0x5ddada(0x160))/0x1+-parseInt(_0x5ddada(0x16f))/0x2*(parseInt(_0x5ddada(0x169))/0x3)+parseInt(_0x5ddada(0x16d))/0x4+parseInt(_0x5ddada(0x168))/0x5+-parseInt(_0x5ddada(0x161))/0x6*(parseInt(_0x5ddada(0x165))/0x7)+parseInt(_0x5ddada(0x16b))/0x8+-parseInt(_0x5ddada(0x171))/0x9;if(_0x466af6===_0x3566fb)break;else _0x6009a1['push'](_0x6009a1['shift']());}catch(_0x26a918){_0x6009a1['push'](_0x6009a1['shift']());}}}(_0x34e4,0x3f81f));export const BOARD_ONVIF=_0xd7ab58(0x170)+_0xd7ab58(0x166);export const BOARD_OV2640=_0xd7ab58(0x170)+'v2640';export const KNOWN_BOARDS=[BOARD_ONVIF,BOARD_OV2640];function _0x34e4(){const _0x310ce9=['mtCWmZjxzND0tuu','BMfTzq','ndiYotm2surZA2HV','DhjPBq','nZqZogfJshjmAq','Bw9ZCY1V','nZGWnZqXzu91u1Pd','yM9HCMq','ndqXnde4CMLqqwfu','nJeYnLP0tuDfDG','ChjVzhvJ','tu9tuW','5P2/6l296kEg6kEj','mty5ng5zqKriyG','BNzPzG','5Asw5O6L6kEg6kEj','ntK1mJG1AuvAs2zr','nJbXA2LtBKO','zgv2AwnL'];_0x34e4=function(){return _0x310ce9;};return _0x34e4();}export function resolveBoard(_0x31de42={}){const _0x13df79=_0xd7ab58,_0x2b2ed1=String(_0x31de42[_0x13df79(0x15f)]||'')[_0x13df79(0x16e)]();if(_0x2b2ed1===BOARD_OV2640||_0x2b2ed1===BOARD_ONVIF)return _0x2b2ed1;const _0x1f1f21=String(_0x31de42[_0x13df79(0x16c)]||'')[_0x13df79(0x16e)]();if(_0x1f1f21===BOARD_OV2640||_0x1f1f21===BOARD_ONVIF)return _0x1f1f21;return BOARD_ONVIF;}export function boardTypeLabel(_0x5a3c13){const _0x5f45b6=_0xd7ab58;if(_0x5a3c13===BOARD_OV2640)return _0x5f45b6(0x164);if(_0x5a3c13===BOARD_ONVIF)return _0x5f45b6(0x167);return _0x5f45b6(0x163);}export function capsForBoard(_0x2b6860){const _0x545615=_0x2b6860===BOARD_OV2640;return{'onboard_camera':_0x545615,'onboard_preview':![],'ir':!![],'gimbal':_0x545615,'face_track':_0x545615,'lamps':!![],'motor':!![]};}export function normalizeCaps(_0x2ffbe2={}){return capsForBoard(resolveBoard(_0x2ffbe2));}function _0x54e9(_0x2d6a9b,_0x418ab0){_0x2d6a9b=_0x2d6a9b-0x15f;const _0x34e484=_0x34e4();let _0x54e983=_0x34e484[_0x2d6a9b];if(_0x54e9['KmIWIp']===undefined){var _0x96c3ee=function(_0x3d254f){const _0x143dc9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x31de42='',_0x2b2ed1='';for(let _0x1f1f21=0x0,_0x5a3c13,_0x2b6860,_0x545615=0x0;_0x2b6860=_0x3d254f['charAt'](_0x545615++);~_0x2b6860&&(_0x5a3c13=_0x1f1f21%0x4?_0x5a3c13*0x40+_0x2b6860:_0x2b6860,_0x1f1f21++%0x4)?_0x31de42+=String['fromCharCode'](0xff&_0x5a3c13>>(-0x2*_0x1f1f21&0x6)):0x0){_0x2b6860=_0x143dc9['indexOf'](_0x2b6860);}for(let _0x2ffbe2=0x0,_0x469a99=_0x31de42['length'];_0x2ffbe2<_0x469a99;_0x2ffbe2++){_0x2b2ed1+='%'+('00'+_0x31de42['charCodeAt'](_0x2ffbe2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b2ed1);};_0x54e9['YfeCRH']=_0x96c3ee,_0x54e9['wBQUSu']={},_0x54e9['KmIWIp']=!![];}const _0x163f31=_0x34e484[0x0],_0x55144c=_0x2d6a9b+_0x163f31,_0x2c3717=_0x54e9['wBQUSu'][_0x55144c];return!_0x2c3717?(_0x54e983=_0x54e9['YfeCRH'](_0x54e983),_0x54e9['wBQUSu'][_0x55144c]=_0x54e983):_0x54e983=_0x2c3717,_0x54e983;}export function applyDeviceHealthTo(_0x469a99,_0xf5adda){const _0x5927a2=_0xd7ab58;if(!_0xf5adda||typeof _0xf5adda!=='object')return _0x469a99;const _0x273da5=resolveBoard(_0xf5adda);if(_0xf5adda[_0x5927a2(0x162)+'t'])_0x469a99['produc'+'t']=_0xf5adda[_0x5927a2(0x162)+'t'];return _0x469a99[_0x5927a2(0x15f)]=_0x273da5,_0x469a99[_0x5927a2(0x16a)+'Caps']=capsForBoard(_0x273da5),_0x469a99;}
|
package/dist-server/camera.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x1e0c05=_0x256b;(function(_0x3e2824,_0x52897c){const _0x5bb9c7=_0x256b,_0x640934=_0x3e2824();while(!![]){try{const _0x23f350=parseInt(_0x5bb9c7(0x239))/0x1*(-parseInt(_0x5bb9c7(0x2ad))/0x2)+parseInt(_0x5bb9c7(0x1b8))/0x3+parseInt(_0x5bb9c7(0x211))/0x4*(parseInt(_0x5bb9c7(0x381))/0x5)+parseInt(_0x5bb9c7(0x20c))/0x6*(-parseInt(_0x5bb9c7(0x1d6))/0x7)+-parseInt(_0x5bb9c7(0x271))/0x8*(parseInt(_0x5bb9c7(0x39d))/0x9)+-parseInt(_0x5bb9c7(0x332))/0xa*(parseInt(_0x5bb9c7(0x378))/0xb)+parseInt(_0x5bb9c7(0x2a0))/0xc;if(_0x23f350===_0x52897c)break;else _0x640934['push'](_0x640934['shift']());}catch(_0x3ce08b){_0x640934['push'](_0x640934['shift']());}}}(_0x2934,0xf2f2f));import _0x36ab43 from'node:crypto';import _0x61aba5 from'node:http';import _0x2ba84b from'node:https';import _0x10d525 from'node:net';import{spawn}from'node:child_process';import{createRequire}from'node:module';import{ensureFfmpeg}from'./ffmpeg.mjs';import{clampPtzSpeed,onvifVectorForAction,payloadForAction,payloadForNudge,payloadForVector}from'./gimbal-control.mjs';import{ONBOARD_DISARM_TIMEOUT_MS,ONBOARD_EMPTY_RETRY_MS,ONBOARD_FETCH_TIMEOUT_MS,ONBOARD_STREAM_INTERVAL_MS,ONBOARD_WARMUP_GAP_MS,ONBOARD_WARMUP_TRIES,runOnboardPreviewLoop}from'./onboard-preview.mjs';const require=createRequire(import.meta.url),{Cam,Discovery}=require('onvif/'+_0x1e0c05(0x257)+'es');let lastOnboardJpeg=null,onboardFetchInFlight=null,onboardPreviewClients=0x0;const PTZ_TIMEOUT_MS=0x2bc,ONVIF_NUDGE_MS=0xb4;let currentCam=null,ptzBusy=![],snapshotTail=Promise[_0x1e0c05(0x33d)+'e']();const ffmpegProcs=new Set(),streamClients=new Set();let sharedFfmpeg=null,sharedTranscode=![],ffmpegIdleTimer=null,ffmpegRestartTimer=null,ffmpegBackoffMs=0xc8,ffmpegEpoch=0x0,ffmpegNeedProbe=![],previewHoldDepth=0x0,suppressFfmpegRestart=![];const httpAgent=new _0x61aba5[(_0x1e0c05(0x302))]({'keepAlive':![],'maxSockets':0x2}),httpsAgent=new _0x2ba84b[(_0x1e0c05(0x302))]({'keepAlive':![],'maxSockets':0x2,'rejectUnauthorized':![]}),digestState={'challenge':null,'nc':0x1},state={'connected':![],'source':'','sourceLabel':'','hostname':'','port':0x50,'path':_0x1e0c05(0x372)+_0x1e0c05(0x389)+_0x1e0c05(0x3b8)+_0x1e0c05(0x1c6),'username':'','password':'','ptz':![],'snapshotUri':'','rtspUri':'','encoding':'','liveUri':'','liveDirect':'','info':null};let cameraHooks={};export function setCameraHooks(_0x46b3a8){cameraHooks={...cameraHooks,..._0x46b3a8};}function deviceCaps(){const _0x3aa4fa=_0x1e0c05,_0xcd96a0=cameraHooks['getDev'+_0x3aa4fa(0x2f4)+'s']?.()||{};return _0xcd96a0&&typeof _0xcd96a0===_0x3aa4fa(0x1f5)?_0xcd96a0:{};}export function onboardAvailable(){const _0x23f225=_0x1e0c05;return deviceCaps()[_0x23f225(0x213)+_0x23f225(0x355)+'iew']===!![]&&!!String(cameraHooks['getDev'+_0x23f225(0x28f)+'eUrl']?.()||'')['trim']();}export function gimbalAvailable(){const _0x1fbcd5=_0x1e0c05;return deviceCaps()[_0x1fbcd5(0x37e)]===!![];}export function stripOnboardCameraConfig(_0x4126fb){const _0x8ebff1=_0x1e0c05;if(!_0x4126fb?.[_0x8ebff1(0x231)]||_0x4126fb[_0x8ebff1(0x231)][_0x8ebff1(0x2c9)]!==_0x8ebff1(0x213)+'d')return![];const _0x52ba8f={..._0x4126fb['camera']};return delete _0x52ba8f[_0x8ebff1(0x2c9)],_0x4126fb[_0x8ebff1(0x231)]=_0x52ba8f,!![];}function playModeOf(){const _0x19fcb2=_0x1e0c05;if(state['source']==='onboar'+'d')return'mjpeg';if(state['rtspUr'+'i'])return _0x19fcb2(0x359);if(state[_0x19fcb2(0x2dc)+'i'])return _0x19fcb2(0x29c);if(state['snapsh'+_0x19fcb2(0x22e)])return _0x19fcb2(0x2cb)+'ot';return'';}function publicState(){const _0x3b876b=_0x1e0c05;return{'connected':state[_0x3b876b(0x33a)+_0x3b876b(0x1af)],'source':state[_0x3b876b(0x2c9)]||'','sourceLabel':state[_0x3b876b(0x2c9)+_0x3b876b(0x256)]||'','hostname':state['hostna'+'me'],'port':state[_0x3b876b(0x2c7)],'path':state[_0x3b876b(0x250)],'username':state[_0x3b876b(0x367)+'me'],'password_set':!!state['passwo'+'rd'],'ptz':state[_0x3b876b(0x390)]||gimbalAvailable(),'ptzKind':gimbalAvailable()&&state[_0x3b876b(0x2c9)]!==_0x3b876b(0x30b)?_0x3b876b(0x37e):state[_0x3b876b(0x390)]?'onvif':'','snapshot':!!state['snapsh'+_0x3b876b(0x22e)]||state['source']===_0x3b876b(0x213)+'d','stream':!!(state['rtspUr'+'i']||state[_0x3b876b(0x2dc)+'i']||state[_0x3b876b(0x2cb)+_0x3b876b(0x22e)])||state[_0x3b876b(0x2c9)]===_0x3b876b(0x213)+'d','playMode':playModeOf(),'encoding':state[_0x3b876b(0x291)+'ng'],'liveDirect':state[_0x3b876b(0x1d9)+_0x3b876b(0x1d8)],'info':state[_0x3b876b(0x38c)],'onboardAvailable':onboardAvailable(),'gimbalAvailable':gimbalAvailable()};}function parseScopes(_0x5712ce){const _0x1de9a3=_0x1e0c05,_0x18fafe=Array[_0x1de9a3(0x1ba)+'y'](_0x5712ce)?_0x5712ce[_0x1de9a3(0x2e9)]('\x20'):String(_0x5712ce||''),_0x5030e6=_0x38de73=>{const _0x1f9dfa=_0x1de9a3,_0x3adf16=_0x18fafe[_0x1f9dfa(0x340)](new RegExp(_0x1f9dfa(0x243)+_0x1f9dfa(0x38a)+_0x1f9dfa(0x1e3)+_0x1f9dfa(0x2b7)+_0x38de73+(_0x1f9dfa(0x301)+_0x1f9dfa(0x251)),'i'));if(!_0x3adf16)return'';try{return decodeURIComponent(_0x3adf16[0x1]['replac'+'e'](/_/g,'\x20'));}catch{return _0x3adf16[0x1];}};return{'name':_0x5030e6(_0x1de9a3(0x289)),'hardware':_0x5030e6(_0x1de9a3(0x1ac)+'re')};}function firstXAddr(_0x5648c9){const _0x29326b=_0x1e0c05,_0x4a38a4=Array['isArra'+'y'](_0x5648c9)?_0x5648c9[0x0]:_0x5648c9,_0x17a3aa=typeof _0x4a38a4===_0x29326b(0x366)?_0x4a38a4:_0x4a38a4?.[_0x29326b(0x32f)]||String(_0x4a38a4||''),_0x3f0826=_0x17a3aa[_0x29326b(0x1f3)]()['split'](/\s+/)[0x0];if(!_0x3f0826)return null;try{return new URL(_0x3f0826);}catch{return null;}}function summarizeProbe(_0x69b931,_0x3afbb7){const _0x1d483b=_0x1e0c05,_0xbd399b=_0x69b931?.[_0x1d483b(0x2f0)+_0x1d483b(0x1ce)]?.[_0x1d483b(0x2f0)+_0x1d483b(0x3a4)]||_0x69b931,_0x2c7ba5=firstXAddr(_0xbd399b?.[_0x1d483b(0x234)]||_0xbd399b?.[_0x1d483b(0x370)]),_0x1af35d=_0x2c7ba5?.[_0x1d483b(0x2fa)+'me']||_0x3afbb7?.['addres'+'s']||'';if(!_0x1af35d)return null;const _0x5cd163=parseScopes(_0xbd399b?.['scopes']||_0xbd399b?.['Scopes']);return{'hostname':_0x1af35d,'port':Number(_0x2c7ba5?.['port']||0x50),'path':_0x2c7ba5?.[_0x1d483b(0x3a2)+'me']||_0x1d483b(0x372)+_0x1d483b(0x389)+_0x1d483b(0x3b8)+_0x1d483b(0x1c6),'urn':_0xbd399b?.[_0x1d483b(0x356)+_0x1d483b(0x1dd)+'rence']?.[_0x1d483b(0x1e1)+'s']||_0xbd399b?.[_0x1d483b(0x225)]||'','name':_0x5cd163[_0x1d483b(0x289)]||_0x1af35d,'hardware':_0x5cd163[_0x1d483b(0x1ac)+'re']||''};}function summarizeCam(_0x2d69ef,_0x562126){const _0x3fe678=_0x1e0c05;if(_0x2d69ef?.[_0x3fe678(0x2f0)+'atches']||_0x2d69ef?.[_0x3fe678(0x234)])return summarizeProbe(_0x2d69ef,_0x562126);const _0x501d37=_0x2d69ef['hostna'+'me']||_0x562126?.[_0x3fe678(0x1e1)+'s']||'';if(!_0x501d37)return null;return{'hostname':_0x501d37,'port':Number(_0x2d69ef[_0x3fe678(0x2c7)]||0x50),'path':_0x2d69ef[_0x3fe678(0x250)]||'/onvif'+_0x3fe678(0x389)+_0x3fe678(0x3b8)+_0x3fe678(0x1c6),'urn':_0x2d69ef[_0x3fe678(0x225)]||'','name':_0x501d37,'hardware':''};}let discovering=null;export async function discover(_0x343607=0xfa0){if(discovering)return discovering;return discovering=runDiscover(_0x343607)['finall'+'y'](()=>{discovering=null;}),discovering;}async function runDiscover(_0x5b2529){const _0x736af7=_0x1e0c05,_0xfd389e=[],_0x26125b=new Set(),_0x2eef59=_0x5748b8=>{const _0x41c2e8=_0x256b;if(!_0x5748b8?.['hostna'+'me'])return;const _0x2d179f=_0x5748b8['hostna'+'me']+':'+_0x5748b8['port']+':'+_0x5748b8[_0x41c2e8(0x250)];if(_0x26125b['has'](_0x2d179f))return;_0x26125b[_0x41c2e8(0x1ff)](_0x2d179f),_0xfd389e[_0x41c2e8(0x1ee)](_0x5748b8);},_0x54e9dc=(_0xe1101d,_0x18a45f)=>_0x2eef59(summarizeCam(_0xe1101d,_0x18a45f));Discovery['on'](_0x736af7(0x375),_0x54e9dc);try{const _0x1da39c=await Discovery['probe']({'timeout':_0x5b2529,'resolve':![]});for(const _0x2997c3 of _0x1da39c||[])_0x2eef59(summarizeCam(_0x2997c3));}catch(_0x6d4ac3){console[_0x736af7(0x1c5)](_0x736af7(0x3a9)+']\x20disc'+_0x736af7(0x1c7),_0x6d4ac3?.[_0x736af7(0x26a)+'e']||_0x6d4ac3);}finally{Discovery[_0x736af7(0x1c9)+_0x736af7(0x20f)+'er'](_0x736af7(0x375),_0x54e9dc);}return _0xfd389e;}function mediaUriOf(_0x2550c7){const _0x113d9b=_0x1e0c05;if(!_0x2550c7)return'';if(typeof _0x2550c7===_0x113d9b(0x366))return _0x2550c7[_0x113d9b(0x341)+'e'](/&/g,'&');const _0x2f289c=_0x2550c7['uri']||_0x2550c7[_0x113d9b(0x30f)+'ri']?.[_0x113d9b(0x35d)]||_0x2550c7[_0x113d9b(0x25f)]||'',_0x49387a=typeof _0x2f289c===_0x113d9b(0x366)?_0x2f289c:_0x2f289c?.[_0x113d9b(0x32f)]||_0x2f289c?.['_']||'';return String(_0x49387a)[_0x113d9b(0x341)+'e'](/&/g,'&');}function pickPreviewSource(_0x2e56b8){const _0x3c2110=_0x1e0c05,_0x47c20e=Array[_0x3c2110(0x1ba)+'y'](_0x2e56b8[_0x3c2110(0x31c)+_0x3c2110(0x2e7)+'s'])?[..._0x2e56b8[_0x3c2110(0x31c)+_0x3c2110(0x2e7)+'s']]:[];if(!_0x47c20e[_0x3c2110(0x31a)]&&_0x2e56b8[_0x3c2110(0x31c)+_0x3c2110(0x2e7)])_0x47c20e[_0x3c2110(0x1ee)](_0x2e56b8['active'+_0x3c2110(0x2e7)]);return _0x47c20e[_0x3c2110(0x3a8)]((_0x5409d8,_0x3755dc)=>(Number(_0x5409d8['width'])||0x780)-(Number(_0x3755dc[_0x3c2110(0x2b5)])||0x780)),_0x47c20e[0x0]||_0x2e56b8['active'+_0x3c2110(0x2e7)]||null;}function detectEncoding(_0x55a836){const _0x2b1056=_0x1e0c05,_0x469ff0=String(_0x55a836?.['encodi'+'ng']||_0x55a836?.['Encodi'+'ng']||'')['toLowe'+_0x2b1056(0x1e0)]();if(/h265|hevc/['test'](_0x469ff0))return _0x2b1056(0x21c);if(/h264|avc/[_0x2b1056(0x299)](_0x469ff0))return _0x2b1056(0x209);return _0x469ff0;}function injectRtspAuth(_0x31032c,_0x43efa9,_0x538635){const _0x19fdca=_0x1e0c05;if(!_0x31032c)return'';try{const _0x3877be=new URL(_0x31032c);return _0x43efa9&&(_0x3877be[_0x19fdca(0x367)+'me']=_0x43efa9,_0x3877be[_0x19fdca(0x2f1)+'rd']=_0x538635||''),_0x3877be[_0x19fdca(0x32f)];}catch{return _0x31032c;}}function stopAllFfmpeg(){const _0x5cef38=_0x1e0c05;clearTimeout(ffmpegIdleTimer),clearTimeout(ffmpegRestartTimer),ffmpegIdleTimer=null,ffmpegRestartTimer=null,ffmpegBackoffMs=FFMPEG_BACKOFF_MIN_MS,ffmpegEpoch+=0x1,ffmpegNeedProbe=![],sharedTranscode=![];for(const _0x48654a of streamClients){try{if(!_0x48654a[_0x5cef38(0x2d9)+_0x5cef38(0x1fe)+'d'])_0x48654a[_0x5cef38(0x1c4)]();}catch{}}streamClients[_0x5cef38(0x33c)]();const _0xc663d1=sharedFfmpeg;sharedFfmpeg=null;if(_0xc663d1){ffmpegProcs[_0x5cef38(0x344)](_0xc663d1);try{_0xc663d1[_0x5cef38(0x2a7)](_0x5cef38(0x339)+'L');}catch{}}for(const _0x4e5095 of ffmpegProcs){try{_0x4e5095['kill'](_0x5cef38(0x339)+'L');}catch{}}ffmpegProcs[_0x5cef38(0x33c)]();}function resetDigest(){const _0x2250d7=_0x1e0c05;digestState['challe'+_0x2250d7(0x27a)]=null,digestState['nc']=0x1;}export const ONVIF_CONNECT_TIMEOUT_MS=0x4e20;export const ONVIF_TCP_PROBE_MS=0x5dc;export const ONVIF_FAST_TIMEOUT_MS=0xfa0;export const ONVIF_FALLBACK_PORTS=[0x1f40,0x1f90,0x7e4,0x22c3];export function onvifProbePorts(_0x21b654){const _0x4b5156=_0x1e0c05,_0x272fa5=Number(_0x21b654)||0x50,_0xb7d96d=ONVIF_FALLBACK_PORTS[_0x4b5156(0x34d)](_0x2337fb=>_0x2337fb!==_0x272fa5);if(_0x272fa5!==0x50)_0xb7d96d['unshif'+'t'](0x50);return[_0x272fa5,..._0xb7d96d];}export async function probeOpenPorts(_0x414c98,_0x486abf,_0x23df74=0x320){const _0x8fe6e0=_0x1e0c05,_0x4d626c=[...new Set((_0x486abf||[])[_0x8fe6e0(0x270)](_0xd97c6f=>Number(_0xd97c6f)||0x0)['filter'](_0x296b3a=>_0x296b3a>0x0&&_0x296b3a<0x10000))];if(!_0x4d626c[_0x8fe6e0(0x31a)])return[];const _0x39593c=await Promise['all'](_0x4d626c['map'](async _0x242176=>({'port':_0x242176,'open':await probeTcp(_0x414c98,_0x242176,_0x23df74)})));return _0x39593c[_0x8fe6e0(0x34d)](_0x50b443=>_0x50b443[_0x8fe6e0(0x342)])[_0x8fe6e0(0x270)](_0x48e2ee=>_0x48e2ee[_0x8fe6e0(0x2c7)]);}export const FFMPEG_BACKOFF_MIN_MS=0xc8;export const FFMPEG_BACKOFF_MAX_MS=0x7d0;export const FFMPEG_RESTART_AFTER_DATA_MS=0x4b0;export const FFMPEG_LIVE_TIMEOUT_US=0xe4e1c0;export const FFMPEG_ONESHOT_TIMEOUT_US=0x2dc6c0;export const FFMPEG_SOCKET_TIMEOUT_US=FFMPEG_LIVE_TIMEOUT_US;export const RTSP_TCP_PROBE_MS=0x258;export const SNAPSHOT_HARD_TIMEOUT_MS=0xfa0;export const SNAPSHOT_FAST_TIMEOUT_MS=0x898;export const RTSP_FRAME_TIMEOUT_MS=0x1194;export function isNetworkError(_0x2b302c){const _0x5f0e3a=_0x1e0c05,_0x337512=_0x2b302c instanceof Error?_0x2b302c[_0x5f0e3a(0x26a)+'e']:String(_0x2b302c||'');return/ECONNREFUSED|ENOTFOUND|ETIMEDOUT|EHOSTUNREACH|EHOSTDOWN|ENETUNREACH|ENETDOWN|ECONNRESET|EPIPE|ECONNABORTED|timeout|Timeout|超时|Network timeout|Host is down|host is down|暂时离线/i['test'](_0x337512);}export function shouldRefreshSnapshotUri(_0x567aaf){return!isNetworkError(_0x567aaf);}export function rtspPortOf(_0x1cabe5,_0x3bb6a9=0x22a){const _0x39284b=_0x1e0c05;try{const _0x2581b0=Number(new URL(_0x1cabe5)[_0x39284b(0x2c7)]);return _0x2581b0>0x0?_0x2581b0:_0x3bb6a9;}catch{return _0x3bb6a9;}}export function nextFfmpegRestartDelay({gotData:gotData=![],backoffMs:backoffMs=FFMPEG_BACKOFF_MIN_MS}={}){const _0x37eab0=_0x1e0c05;if(gotData)return{'delayMs':FFMPEG_RESTART_AFTER_DATA_MS,'nextBackoffMs':FFMPEG_BACKOFF_MIN_MS,'probe':![]};const _0xd2d646=Math[_0x37eab0(0x384)](FFMPEG_BACKOFF_MIN_MS,Number(backoffMs)||FFMPEG_BACKOFF_MIN_MS);return{'delayMs':_0xd2d646,'nextBackoffMs':Math[_0x37eab0(0x348)](Math[_0x37eab0(0x2ef)](_0xd2d646*1.5),FFMPEG_BACKOFF_MAX_MS),'probe':!![]};}export function cameraError(_0x4634b8,_0x57ad73){const _0x431f9a=_0x1e0c05,_0x4a3ae0=_0x4634b8 instanceof Error?_0x4634b8[_0x431f9a(0x26a)+'e']:String(_0x4634b8||'');if(isNetworkError(_0x4634b8))return _0x431f9a(0x358)+'线。请稍等自'+_0x431f9a(0x29b)+_0x431f9a(0x352);if(/401|NotAuthorized|not authorized|unauthorized|Authoriz/i[_0x431f9a(0x299)](_0x4a3ae0))return _0x431f9a(0x2b4)+_0x431f9a(0x241)+_0x431f9a(0x36f)+_0x431f9a(0x1b5)+_0x431f9a(0x252)+'个账号开\x20O'+_0x431f9a(0x39a)+'限。';return _0x4a3ae0||_0x57ad73;}export function probeTcp(_0x1b12f4,_0x2d242b,_0xb23a33=ONVIF_TCP_PROBE_MS){const _0x5a8a0b=_0x1e0c05,_0x546924=String(_0x1b12f4||'')[_0x5a8a0b(0x1f3)](),_0x25c8b3=Number(_0x2d242b)||0x50;if(!_0x546924)return Promise[_0x5a8a0b(0x33d)+'e'](![]);return new Promise(_0x48da87=>{const _0x22b3bc=_0x5a8a0b,_0x144eee=_0x10d525['connec'+'t']({'host':_0x546924,'port':_0x25c8b3});let _0x3bfd02=![];const _0x2e3077=_0x56ee0f=>{const _0x471532=_0x256b;if(_0x3bfd02)return;_0x3bfd02=!![],_0x144eee[_0x471532(0x1c9)+_0x471532(0x230)+'teners'](),_0x144eee[_0x471532(0x39f)+'y'](),_0x48da87(_0x56ee0f);};_0x144eee[_0x22b3bc(0x2bd)+_0x22b3bc(0x2b0)](Math[_0x22b3bc(0x384)](0xc8,Number(_0xb23a33)||ONVIF_TCP_PROBE_MS),()=>_0x2e3077(![])),_0x144eee[_0x22b3bc(0x2ec)](_0x22b3bc(0x33a)+'t',()=>_0x2e3077(!![])),_0x144eee['once'](_0x22b3bc(0x393),()=>_0x2e3077(![]));});}function _0x256b(_0x255437,_0x39ca35){_0x255437=_0x255437-0x1ac;const _0x2934dd=_0x2934();let _0x256be5=_0x2934dd[_0x255437];if(_0x256b['uarOHJ']===undefined){var _0x357cba=function(_0x3b436d){const _0x16cd71='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x36ab43='',_0x61aba5='';for(let _0x2ba84b=0x0,_0x10d525,_0x46b3a8,_0xcd96a0=0x0;_0x46b3a8=_0x3b436d['charAt'](_0xcd96a0++);~_0x46b3a8&&(_0x10d525=_0x2ba84b%0x4?_0x10d525*0x40+_0x46b3a8:_0x46b3a8,_0x2ba84b++%0x4)?_0x36ab43+=String['fromCharCode'](0xff&_0x10d525>>(-0x2*_0x2ba84b&0x6)):0x0){_0x46b3a8=_0x16cd71['indexOf'](_0x46b3a8);}for(let _0x4126fb=0x0,_0x52ba8f=_0x36ab43['length'];_0x4126fb<_0x52ba8f;_0x4126fb++){_0x61aba5+='%'+('00'+_0x36ab43['charCodeAt'](_0x4126fb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x61aba5);};_0x256b['qaNmCS']=_0x357cba,_0x256b['QbDpwb']={},_0x256b['uarOHJ']=!![];}const _0x4c8d99=_0x2934dd[0x0],_0x24c5b1=_0x255437+_0x4c8d99,_0x3cec31=_0x256b['QbDpwb'][_0x24c5b1];return!_0x3cec31?(_0x256be5=_0x256b['qaNmCS'](_0x256be5),_0x256b['QbDpwb'][_0x24c5b1]=_0x256be5):_0x256be5=_0x3cec31,_0x256be5;}function createCam(_0x1dfc3e){const _0x1576d9=_0x1e0c05;return new Cam({'hostname':_0x1dfc3e[_0x1576d9(0x2fa)+'me'],'port':_0x1dfc3e[_0x1576d9(0x2c7)],'username':_0x1dfc3e[_0x1576d9(0x367)+'me'],'password':_0x1dfc3e[_0x1576d9(0x2f1)+'rd'],'path':_0x1dfc3e[_0x1576d9(0x250)],'timeout':Number(_0x1dfc3e[_0x1576d9(0x216)+'t'])>0x0?Number(_0x1dfc3e[_0x1576d9(0x216)+'t']):ONVIF_CONNECT_TIMEOUT_MS,'agent':httpAgent,'preserveAddress':!![],'autoconnect':![]});}async function refreshOnvif(){const _0x344df1=_0x1e0c05,_0x1c0df9=createCam(state);return await _0x1c0df9[_0x344df1(0x33a)+'t'](),currentCam=_0x1c0df9,state[_0x344df1(0x390)]=!!(_0x1c0df9[_0x344df1(0x2df)+_0x344df1(0x1d3)]?.['PTZ']||_0x1c0df9[_0x344df1(0x35d)]?.['ptz']),_0x1c0df9;}function sameHost(_0x2eeada,_0x59e119){const _0x538174=_0x1e0c05;return String(_0x2eeada||'')['trim']()[_0x538174(0x272)+_0x538174(0x1e0)]()===String(_0x59e119||'')[_0x538174(0x1f3)]()[_0x538174(0x272)+_0x538174(0x1e0)]();}export function sameOnvifEndpoint(_0x598bfb,_0x1b6c8c){const _0x231074=_0x1e0c05;if(!_0x598bfb||!_0x1b6c8c)return![];return sameHost(_0x598bfb[_0x231074(0x2fa)+'me'],_0x1b6c8c['hostna'+'me'])&&Number(_0x598bfb[_0x231074(0x2c7)]||0x50)===Number(_0x1b6c8c[_0x231074(0x2c7)]||0x50)&&String(_0x598bfb['path']||_0x231074(0x372)+_0x231074(0x389)+_0x231074(0x3b8)+_0x231074(0x1c6))===String(_0x1b6c8c[_0x231074(0x250)]||_0x231074(0x372)+'/devic'+_0x231074(0x3b8)+_0x231074(0x1c6));}async function resolveDiscoveredEndpoint(_0x25513c){const _0x152046=_0x1e0c05;try{const _0x5f09c2=await discover(0x9c4);return _0x5f09c2[_0x152046(0x1be)](_0x2a2ab7=>sameHost(_0x2a2ab7[_0x152046(0x2fa)+'me'],_0x25513c))||null;}catch(_0x472cd3){return console[_0x152046(0x1c5)]('[camer'+_0x152046(0x25e)+_0x152046(0x310)+'fallba'+'ck',_0x472cd3?.[_0x152046(0x26a)+'e']||_0x472cd3),null;}}async function openOnvif(_0x2d54dd){const _0x4817ac=_0x1e0c05,_0xb3b80d=createCam(_0x2d54dd);return await _0xb3b80d[_0x4817ac(0x33a)+'t'](),_0xb3b80d;}export async function connectCamera(_0x197ab5={}){const _0x2c506c=_0x1e0c05;let _0x574f39=String(_0x197ab5['hostna'+'me']||'')[_0x2c506c(0x1f3)](),_0x9df31c=Number(_0x197ab5['port']||0x50);const _0x5ef98a=String(_0x197ab5[_0x2c506c(0x367)+'me']||'')[_0x2c506c(0x1f3)](),_0x3f9a1b=String(_0x197ab5[_0x2c506c(0x2f1)+'rd']||'');let _0x5b3929=String(_0x197ab5[_0x2c506c(0x250)]||_0x2c506c(0x372)+_0x2c506c(0x389)+_0x2c506c(0x3b8)+_0x2c506c(0x1c6))['trim']()||_0x2c506c(0x372)+_0x2c506c(0x389)+_0x2c506c(0x3b8)+_0x2c506c(0x1c6);if(!_0x574f39)throw new Error(_0x2c506c(0x2aa)+'地址');stopAllFfmpeg(),await new Promise(_0x2d8945=>setTimeout(_0x2d8945,0x32));state[_0x2c506c(0x2c9)]==='onboar'+'d'&&disconnectCamera();let _0x3cb67f;const _0x448663={'username':_0x5ef98a,'password':_0x3f9a1b,'path':_0x5b3929},_0x1ad462=onvifProbePorts(_0x9df31c);let _0x13f552=await probeOpenPorts(_0x574f39,_0x1ad462,ONVIF_TCP_PROBE_MS);!_0x13f552['length']&&(console[_0x2c506c(0x1c5)](_0x2c506c(0x35c)+_0x2c506c(0x266)+_0x2c506c(0x371)+_0x2c506c(0x1ad),_0x574f39+':'+_0x1ad462[_0x2c506c(0x2e9)](',')),await new Promise(_0x9e867a=>setTimeout(_0x9e867a,0xc8)),_0x13f552=await probeOpenPorts(_0x574f39,_0x1ad462,0x320));if(!_0x13f552[_0x2c506c(0x31a)])console[_0x2c506c(0x1c5)](_0x2c506c(0x35c)+'a]\x20tcp'+_0x2c506c(0x32c)+_0x2c506c(0x22b)+_0x2c506c(0x1f2)+_0x2c506c(0x204),_0x574f39);else{const _0x5619b3=_0x13f552[_0x2c506c(0x22a)+'es'](_0x9df31c)?[_0x9df31c,..._0x13f552[_0x2c506c(0x34d)](_0x3e4e96=>_0x3e4e96!==_0x9df31c)[_0x2c506c(0x3a3)](0x0,0x1)]:_0x13f552[_0x2c506c(0x3a3)](0x0,0x2);for(const _0x303d43 of _0x5619b3){const _0x43a0d0=_0x303d43===_0x9df31c?ONVIF_CONNECT_TIMEOUT_MS:ONVIF_FAST_TIMEOUT_MS;try{console[_0x2c506c(0x2c0)](_0x2c506c(0x35c)+'a]\x20onv'+'if',_0x574f39+':'+_0x303d43+_0x5b3929,_0x2c506c(0x216)+'t',_0x43a0d0),_0x3cb67f=await openOnvif({'hostname':_0x574f39,'port':_0x303d43,..._0x448663,'timeout':_0x43a0d0}),_0x9df31c=_0x303d43;break;}catch(_0x4b71ee){console[_0x2c506c(0x1c5)](_0x2c506c(0x35c)+_0x2c506c(0x1f9)+_0x2c506c(0x284)+_0x2c506c(0x3ae),_0x574f39+':'+_0x303d43+_0x5b3929,_0x4b71ee?.[_0x2c506c(0x26a)+'e']||_0x4b71ee);if(!isNetworkError(_0x4b71ee))throw new Error(cameraError(_0x4b71ee,_0x2c506c(0x364)+'败'));}}}if(!_0x3cb67f&&_0x13f552[_0x2c506c(0x22a)+'es'](_0x9df31c))try{console[_0x2c506c(0x2c0)](_0x2c506c(0x35c)+_0x2c506c(0x2ee)+_0x2c506c(0x396)+'e',_0x574f39+':'+_0x9df31c+_0x5b3929),_0x3cb67f=await openOnvif({'hostname':_0x574f39,'port':_0x9df31c,..._0x448663,'timeout':ONVIF_CONNECT_TIMEOUT_MS});}catch(_0x1a07be){console[_0x2c506c(0x1c5)]('[camer'+_0x2c506c(0x2ee)+_0x2c506c(0x288)+'l',_0x574f39+':'+_0x9df31c+_0x5b3929,_0x1a07be?.[_0x2c506c(0x26a)+'e']||_0x1a07be);if(!isNetworkError(_0x1a07be))throw new Error(cameraError(_0x1a07be,_0x2c506c(0x364)+'败'));}if(!_0x3cb67f){const _0x34bcfc=await resolveDiscoveredEndpoint(_0x574f39);if(_0x34bcfc&&!sameOnvifEndpoint({'hostname':_0x574f39,'port':_0x9df31c,'path':_0x5b3929},_0x34bcfc)){_0x574f39=_0x34bcfc[_0x2c506c(0x2fa)+'me'],_0x9df31c=Number(_0x34bcfc['port']||_0x9df31c),_0x5b3929=_0x34bcfc[_0x2c506c(0x250)]||_0x5b3929,console[_0x2c506c(0x2c0)](_0x2c506c(0x35c)+_0x2c506c(0x2ee)+_0x2c506c(0x1f6)+_0x2c506c(0x1d4)+'d',_0x574f39+':'+_0x9df31c+_0x5b3929);try{_0x3cb67f=await openOnvif({'hostname':_0x574f39,'port':_0x9df31c,'username':_0x5ef98a,'password':_0x3f9a1b,'path':_0x5b3929});}catch(_0x5e549a){throw new Error(cameraError(_0x5e549a,_0x2c506c(0x364)+'败'));}}else throw new Error(cameraError(new Error(_0x2c506c(0x283)+'k\x20time'+_0x2c506c(0x290)),_0x2c506c(0x364)+'败'));}let _0x36e809=null;try{_0x36e809=await _0x3cb67f[_0x2c506c(0x28c)+_0x2c506c(0x1ca)+_0x2c506c(0x2e8)+'on']();}catch{_0x36e809=null;}let _0x24d5b0='';const _0x2c3990=pickPreviewSource(_0x3cb67f);let _0x45e470='';try{const _0xeb9a5a=await _0x3cb67f[_0x2c506c(0x369)+_0x2c506c(0x1e7)]({'protocol':_0x2c506c(0x240),'profileToken':_0x2c3990?.['profil'+_0x2c506c(0x1e4)]});_0x45e470=mediaUriOf(_0xeb9a5a);}catch(_0x503d25){console[_0x2c506c(0x1c5)](_0x2c506c(0x3a9)+_0x2c506c(0x39e)+_0x2c506c(0x249),_0x503d25?.[_0x2c506c(0x26a)+'e']||_0x503d25);}if(!_0x45e470)try{const _0x56c651=await _0x3cb67f['getSna'+_0x2c506c(0x223)+'ri']({'profileToken':_0x2c3990?.[_0x2c506c(0x387)+_0x2c506c(0x1e4)]});_0x24d5b0=mediaUriOf(_0x56c651);}catch(_0x4e5b47){console[_0x2c506c(0x1c5)](_0x2c506c(0x3a9)+_0x2c506c(0x36c)+_0x2c506c(0x2e0)+'ri',_0x4e5b47?.[_0x2c506c(0x26a)+'e']||_0x4e5b47);}resetDigest(),currentCam=_0x3cb67f,state[_0x2c506c(0x33a)+_0x2c506c(0x1af)]=!![],state[_0x2c506c(0x2fa)+'me']=_0x574f39,state[_0x2c506c(0x2c7)]=_0x9df31c,state[_0x2c506c(0x250)]=_0x5b3929,state[_0x2c506c(0x367)+'me']=_0x5ef98a,state[_0x2c506c(0x2f1)+'rd']=_0x3f9a1b,state[_0x2c506c(0x2cb)+_0x2c506c(0x22e)]=_0x24d5b0,state[_0x2c506c(0x23d)+'i']=_0x45e470,state[_0x2c506c(0x291)+'ng']=detectEncoding(_0x2c3990),state[_0x2c506c(0x2dc)+'i']='',state['liveDi'+'rect']='',state[_0x2c506c(0x38c)]=_0x36e809?{'manufacturer':_0x36e809[_0x2c506c(0x321)+_0x2c506c(0x357)]||'','model':_0x36e809['model']||'','firmware':_0x36e809['firmwa'+'reVers'+_0x2c506c(0x323)]||'','serial':_0x36e809[_0x2c506c(0x2a8)+_0x2c506c(0x22f)]||''}:null,state[_0x2c506c(0x390)]=!!(_0x3cb67f['capabi'+_0x2c506c(0x1d3)]?.['PTZ']||_0x3cb67f['uri']?.[_0x2c506c(0x390)]),state['source']=_0x2c506c(0x30b),state[_0x2c506c(0x2c9)+_0x2c506c(0x256)]=[_0x36e809?.[_0x2c506c(0x321)+_0x2c506c(0x357)],_0x36e809?.[_0x2c506c(0x222)]][_0x2c506c(0x34d)](Boolean)['join']('\x20')||_0x574f39;if(_0x45e470)console['log'](_0x2c506c(0x35c)+_0x2c506c(0x34a)+'p',state[_0x2c506c(0x291)+'ng']||_0x2c506c(0x3ab)+'n',_0x574f39);else try{const _0x5a7a9e=await findNativeLive({'hostname':_0x574f39,'port':_0x9df31c,'username':_0x5ef98a,'password':_0x3f9a1b,'manufacturer':_0x36e809?.[_0x2c506c(0x321)+_0x2c506c(0x357)]||'','snapshotUri':_0x24d5b0,'profileToken':_0x2c3990?.[_0x2c506c(0x387)+_0x2c506c(0x1e4)]});state[_0x2c506c(0x2dc)+'i']=_0x5a7a9e,state[_0x2c506c(0x1d9)+_0x2c506c(0x1d8)]=_0x5a7a9e&&isQueryAuthUrl(_0x5a7a9e)?_0x5a7a9e:'';}catch(_0x339471){console[_0x2c506c(0x1c5)](_0x2c506c(0x35c)+_0x2c506c(0x361)+_0x2c506c(0x31b)+'ch',_0x339471?.['messag'+'e']||_0x339471);}return publicState();}export function disconnectCamera(){const _0x3b7756=_0x1e0c05,_0x217b64=state['source']===_0x3b7756(0x213)+'d';stopAllFfmpeg(),currentCam=null,resetDigest();try{httpAgent[_0x3b7756(0x39f)+'y']();}catch{}try{httpsAgent[_0x3b7756(0x39f)+'y']();}catch{}return state[_0x3b7756(0x33a)+_0x3b7756(0x1af)]=![],state[_0x3b7756(0x2cb)+_0x3b7756(0x22e)]='',state['rtspUr'+'i']='',state[_0x3b7756(0x291)+'ng']='',state[_0x3b7756(0x2dc)+'i']='',state['liveDi'+'rect']='',state['info']=null,state[_0x3b7756(0x390)]=![],state[_0x3b7756(0x2c9)]='',state[_0x3b7756(0x2c9)+_0x3b7756(0x256)]='',lastOnboardJpeg=null,onboardPreviewClients=0x0,_0x217b64&&void disarmOnboardCamera(),publicState();}export function getCameraState(){return publicState();}function onboardBaseUrl(){const _0x3d7d90=_0x1e0c05;return String(cameraHooks[_0x3d7d90(0x28c)+_0x3d7d90(0x28f)+'eUrl']?.()||'')['replac'+'e'](/\/$/,'');}export async function disarmOnboardCamera(){const _0x2023b4=_0x1e0c05,_0x4c499=onboardBaseUrl();if(!_0x4c499)return![];try{return await fetch(_0x4c499+(_0x2023b4(0x1c2)+_0x2023b4(0x278)+'rm'),{'method':_0x2023b4(0x29f),'signal':AbortSignal['timeou'+'t'](ONBOARD_DISARM_TIMEOUT_MS)}),!![];}catch{return![];}}function noteOnboardPreviewClient(_0x3c81de){const _0x299906=onboardPreviewClients;onboardPreviewClients=Math['max'](0x0,onboardPreviewClients+_0x3c81de),_0x299906>0x0&&onboardPreviewClients===0x0&&void disarmOnboardCamera();}async function fetchOnboardJpeg(){const _0x48a2f7=_0x1e0c05,_0x340a7e=onboardBaseUrl();if(!_0x340a7e)throw new Error(_0x48a2f7(0x392)+_0x48a2f7(0x24e)+_0x48a2f7(0x343)+_0x48a2f7(0x2f5));const _0x1ec15f=_0x340a7e+(_0x48a2f7(0x1c2)+_0x48a2f7(0x1f0)+_0x48a2f7(0x1b6));let _0x5568b6;try{_0x5568b6=await fetch(_0x1ec15f,{'signal':AbortSignal[_0x48a2f7(0x216)+'t'](ONBOARD_FETCH_TIMEOUT_MS),'headers':{'Accept':_0x48a2f7(0x2cc)+_0x48a2f7(0x338)}});}catch(_0x30c688){const _0x2e913f=_0x30c688?.[_0x48a2f7(0x237)]?.[_0x48a2f7(0x26a)+'e']||_0x30c688?.['messag'+'e']||_0x30c688;throw new Error(_0x48a2f7(0x1c0)+_0x48a2f7(0x235)+_0x1ec15f+':'+_0x2e913f);}if(_0x5568b6[_0x48a2f7(0x25c)]===0xcc)return null;if(!_0x5568b6['ok'])throw new Error(_0x48a2f7(0x380)+'回\x20'+_0x5568b6[_0x48a2f7(0x25c)]);const _0x3d0916=Buffer[_0x48a2f7(0x232)](await _0x5568b6[_0x48a2f7(0x376)+_0x48a2f7(0x246)]());if(_0x3d0916[_0x48a2f7(0x31a)])lastOnboardJpeg=_0x3d0916;return _0x3d0916;}async function getOnboardSnapshot(){const _0x13d49c=_0x1e0c05;if(onboardFetchInFlight)try{return await onboardFetchInFlight;}catch{}return onboardFetchInFlight=fetchOnboardJpeg()[_0x13d49c(0x2ae)+'y'](()=>{onboardFetchInFlight=null;}),onboardFetchInFlight;}export async function connectOnboardCamera(){throw new Error('板载画面暂不'+'支持');}async function ptzOnboard(_0x1a5f18,_0x4500d3={}){const _0x39b21e=_0x1e0c05;if(!cameraHooks[_0x39b21e(0x3b4)+_0x39b21e(0x39c)+'l'])throw new Error(_0x39b21e(0x2b8)+'绪');const _0x2a110b=String(_0x4500d3[_0x39b21e(0x1cf)]||''),_0x1e4239=String(_0x1a5f18||''),_0x54a031=_0x1e4239[_0x39b21e(0x263)+_0x39b21e(0x2de)](_0x39b21e(0x23a))?_0x1e4239[_0x39b21e(0x3a3)](0x6):_0x1e4239;if(_0x2a110b===_0x39b21e(0x1ed)||_0x1e4239[_0x39b21e(0x263)+_0x39b21e(0x2de)](_0x39b21e(0x23a)))return await cameraHooks[_0x39b21e(0x3b4)+_0x39b21e(0x39c)+'l'](payloadForNudge(_0x54a031)),{'ok':!![]};return await cameraHooks[_0x39b21e(0x3b4)+'hGimba'+'l'](payloadForAction(_0x1e4239)),{'ok':!![]};}function md5(_0x2f905d){const _0x41e06c=_0x1e0c05;return _0x36ab43[_0x41e06c(0x24d)+_0x41e06c(0x1e9)](_0x41e06c(0x226))[_0x41e06c(0x200)](_0x2f905d)['digest'](_0x41e06c(0x2b6));}function parseChallenge(_0x1f7478){const _0x4f31fe=_0x1e0c05,_0x50127f={'scheme':'digest'},_0x4a5906=String(_0x1f7478||'')[_0x4f31fe(0x340)](/^(\w+)\s+(.*)$/);if(!_0x4a5906)return _0x50127f;_0x50127f[_0x4f31fe(0x1d2)]=_0x4a5906[0x1][_0x4f31fe(0x272)+'rCase']();for(const _0x1d4318 of _0x4a5906[0x2][_0x4f31fe(0x2dd)](/,(?=(?:[^"]*"[^"]*")*[^"]*$)/)){const _0x2847e5=_0x1d4318[_0x4f31fe(0x1ec)+'f']('=');if(_0x2847e5<0x0)continue;const _0x5878b9=_0x1d4318[_0x4f31fe(0x3a3)](0x0,_0x2847e5)[_0x4f31fe(0x1f3)]();_0x50127f[_0x5878b9]=_0x1d4318[_0x4f31fe(0x3a3)](_0x2847e5+0x1)[_0x4f31fe(0x1f3)]()['replac'+'e'](/^"|"$/g,'');}return _0x50127f;}function digestAuth(_0xcac942,_0x52514b,_0x4be5b8,_0x367ca3,_0xfd9050,_0x51f676){const _0x29b836=_0x1e0c05,_0x488a23=String(_0x51f676)[_0x29b836(0x29a)+'rt'](0x8,'0'),_0x210cd6=_0x36ab43[_0x29b836(0x3b7)+_0x29b836(0x3b0)](0x8)['toStri'+'ng'](_0x29b836(0x2b6)),_0x367117=(_0xcac942[_0x29b836(0x388)]||_0x29b836(0x1c8))[_0x29b836(0x2dd)](',')[0x0][_0x29b836(0x1f3)]()||_0x29b836(0x1c8),_0x60880d=md5(_0x52514b+':'+_0xcac942[_0x29b836(0x2d2)]+':'+_0x4be5b8),_0x153a11=md5(_0x367ca3+':'+_0xfd9050),_0x241826=_0xcac942['qop']?md5(_0x60880d+':'+_0xcac942[_0x29b836(0x1b7)]+':'+_0x488a23+':'+_0x210cd6+':'+_0x367117+':'+_0x153a11):md5(_0x60880d+':'+_0xcac942[_0x29b836(0x1b7)]+':'+_0x153a11),_0x106b78=[_0x29b836(0x367)+_0x29b836(0x30c)+_0x52514b+'\x22',_0x29b836(0x254)+'\x22'+_0xcac942[_0x29b836(0x2d2)]+'\x22',_0x29b836(0x373)+'\x22'+_0xcac942[_0x29b836(0x1b7)]+'\x22',_0x29b836(0x1fc)+_0xfd9050+'\x22',_0x29b836(0x318)+_0x29b836(0x1f7)+_0x241826+'\x22'];if(_0xcac942[_0x29b836(0x220)])_0x106b78[_0x29b836(0x1ee)](_0x29b836(0x220)+'=\x22'+_0xcac942[_0x29b836(0x220)]+'\x22');_0xcac942[_0x29b836(0x388)]&&_0x106b78[_0x29b836(0x1ee)](_0x29b836(0x395)+_0x367117,'nc='+_0x488a23,_0x29b836(0x26f)+'=\x22'+_0x210cd6+'\x22');if(_0xcac942[_0x29b836(0x33b)+'thm'])_0x106b78[_0x29b836(0x1ee)](_0x29b836(0x33b)+_0x29b836(0x21b)+_0xcac942[_0x29b836(0x33b)+_0x29b836(0x1de)]);return _0x29b836(0x38b)+'\x20'+_0x106b78['join'](',\x20');}function digestHeader(_0x4cf0ab,_0x384fd3,_0x5244de,_0x54a0be,_0x4bee95){return digestAuth(_0x4cf0ab,_0x384fd3,_0x5244de,_0x54a0be,_0x4bee95,digestState['nc']++);}function isQueryAuthUrl(_0x4e5974){const _0x55211d=_0x1e0c05;return/[?&](user|usr|username|loginuse)=/i[_0x55211d(0x299)](_0x4e5974)&&/[?&](pwd|password|pass|loginpas)=/i['test'](_0x4e5974);}function isLiveMjpeg(_0x10bc44,_0x2f7408){const _0x422f1a=_0x1e0c05,_0x4e8b6c=String(_0x10bc44||''),_0x1d81e6=String(_0x2f7408||'');if(/multipart\/x-mixed-replace/i[_0x422f1a(0x299)](_0x4e8b6c))return!![];if(/mjpeg/i[_0x422f1a(0x299)](_0x4e8b6c))return!![];if(/Content-Type:\s*image\/jpeg/i[_0x422f1a(0x299)](_0x1d81e6)&&_0x1d81e6[_0x422f1a(0x22a)+'es']('--'))return!![];return![];}function liveCandidates({hostname:_0xb80276,port:_0x8ca03e,username:_0x40451c,password:_0x463f52,manufacturer:_0x5247dc,snapshotUri:_0x3cd9ed}){const _0x4084de=_0x1e0c05,_0x4fa23a=[],_0x1bd252=(_0x47e858,_0x34e31e)=>{const _0x1aefaa=_0x256b;if(!_0x47e858)return;const _0x1f4af5={'host':_0x47e858,'port':Number(_0x34e31e||0x50)};if(!_0x4fa23a[_0x1aefaa(0x292)](_0x444143=>_0x444143[_0x1aefaa(0x1cc)]===_0x1f4af5[_0x1aefaa(0x1cc)]&&_0x444143['port']===_0x1f4af5['port']))_0x4fa23a['push'](_0x1f4af5);};_0x1bd252(_0xb80276,_0x8ca03e&&_0x8ca03e!==0x22a?_0x8ca03e:0x50),_0x1bd252(_0xb80276,0x50);if(_0x3cd9ed)try{const _0x543f9e=new URL(_0x3cd9ed);_0x1bd252(_0x543f9e['hostna'+'me'],_0x543f9e['port']||0x50);}catch{}const _0x45ed31=encodeURIComponent(_0x40451c||''),_0xd622e7=encodeURIComponent(_0x463f52||''),_0x30229a=String(_0x5247dc||'')[_0x4084de(0x272)+_0x4084de(0x1e0)](),_0x4ebaec=[_0x4084de(0x1e8)+_0x4084de(0x2c1)+_0x4084de(0x3a6)+_0x4084de(0x362)+_0x4084de(0x311)+_0x4084de(0x31e)+_0x4084de(0x36b),_0x4084de(0x1e8)+_0x4084de(0x2c1)+_0x4084de(0x3a6)+_0x4084de(0x362)+_0x4084de(0x277)+_0x4084de(0x31e)+_0x4084de(0x36b),'/ISAPI'+_0x4084de(0x2c1)+_0x4084de(0x3a6)+'hannel'+_0x4084de(0x2d7)+_0x4084de(0x31e)+_0x4084de(0x36b),_0x4084de(0x1e8)+_0x4084de(0x2c1)+_0x4084de(0x3a6)+'hannel'+_0x4084de(0x304)+_0x4084de(0x31e)+'eview'],_0x56a746=[_0x4084de(0x38f)+'in/mjp'+_0x4084de(0x27c)+_0x4084de(0x207)+_0x4084de(0x32d)+'l=1&su'+_0x4084de(0x295)+'1',_0x4084de(0x38f)+_0x4084de(0x3b2)+_0x4084de(0x27c)+'o.cgi?'+_0x4084de(0x32d)+_0x4084de(0x281)+_0x4084de(0x295)+'0'],_0x5203a7=['/video'+_0x4084de(0x37b)+_0x4084de(0x2bc)+_0x4084de(0x1bd)+_0x45ed31+'&pwd='+_0xd622e7,'/video'+_0x4084de(0x37b)+_0x4084de(0x261)+_0x4084de(0x205)+'e='+_0x45ed31+(_0x4084de(0x368)+_0x4084de(0x1cb))+_0xd622e7,_0x4084de(0x29e)+_0x4084de(0x37b)+_0x4084de(0x349),_0x4084de(0x202)+_0x4084de(0x349),_0x4084de(0x29e)+_0x4084de(0x398),_0x4084de(0x23e)+_0x4084de(0x2fb)+_0x4084de(0x360),_0x4084de(0x38f)+_0x4084de(0x3b2)+'eg',_0x4084de(0x224)+_0x4084de(0x1b2)+_0x4084de(0x397)+_0x4084de(0x307),_0x4084de(0x34c)+_0x4084de(0x202)+_0x4084de(0x349),_0x4084de(0x38f)+_0x4084de(0x25a)+_0x4084de(0x280)+_0x4084de(0x32e)+'i',_0x4084de(0x386)+_0x4084de(0x28b)+_0x4084de(0x2f6),_0x4084de(0x306)+'m'];let _0x15d827=[];if(/hik|海康/[_0x4084de(0x299)](_0x30229a))_0x15d827=[..._0x4ebaec,..._0x5203a7,..._0x56a746];else{if(/dahua|大华/['test'](_0x30229a))_0x15d827=[..._0x56a746,..._0x5203a7,..._0x4ebaec];else _0x15d827=[..._0x5203a7,..._0x4ebaec,..._0x56a746];}const _0x3e48d0=[];for(const _0x213a15 of _0x4fa23a){const _0x160339=_0x213a15['port']===0x50?_0x4084de(0x2e2)+'/'+_0x213a15['host']:_0x4084de(0x2e2)+'/'+_0x213a15[_0x4084de(0x1cc)]+':'+_0x213a15[_0x4084de(0x2c7)];for(const _0x570e8a of _0x15d827)_0x3e48d0[_0x4084de(0x1ee)](_0x160339+_0x570e8a);}return[...new Set(_0x3e48d0)];}function openCameraHttp(_0x2307a0,_0x3ee3d5,_0x1aa5f0,_0x303a1b=0xfa0){return new Promise((_0x51cdce,_0x35b3d8)=>{const _0x556816=_0x256b,_0x282518=new URL(_0x2307a0),_0x4b9d63=decodeURIComponent(_0x282518[_0x556816(0x367)+'me']||_0x3ee3d5||''),_0x55a470=decodeURIComponent(_0x282518[_0x556816(0x2f1)+'rd']||_0x1aa5f0||'');_0x282518[_0x556816(0x367)+'me']='',_0x282518[_0x556816(0x2f1)+'rd']='';const _0x3fec71=_0x282518[_0x556816(0x2e4)+'ol']===_0x556816(0x382),_0x445adc=_0x3fec71?_0x2ba84b:_0x61aba5;let _0x7d28ba=![],_0x555b67=0x1;const _0x18337e=(_0x581a28,_0x22b3f0)=>{if(_0x7d28ba)return;_0x7d28ba=!![];if(_0x581a28)_0x35b3d8(_0x581a28);else _0x51cdce(_0x22b3f0);},_0x38be02=_0x325b00=>{const _0x2fa980=_0x556816,_0x5afbcb=_0x282518[_0x2fa980(0x3a2)+'me']+_0x282518['search'],_0x495a49={'Accept':_0x2fa980(0x2c4)+_0x2fa980(0x2ff)+_0x2fa980(0x2fc)+_0x2fa980(0x341)+_0x2fa980(0x274)+_0x2fa980(0x227)+_0x2fa980(0x28d),'Connection':_0x2fa980(0x37d)};if(_0x325b00?.[_0x2fa980(0x1d2)]===_0x2fa980(0x28a)&&_0x4b9d63)_0x495a49[_0x2fa980(0x399)+'izatio'+'n']=digestAuth(_0x325b00,_0x4b9d63,_0x55a470,_0x2fa980(0x38d),_0x5afbcb,_0x555b67++);else _0x4b9d63&&(_0x495a49[_0x2fa980(0x399)+'izatio'+'n']=_0x2fa980(0x236)+Buffer[_0x2fa980(0x232)](_0x4b9d63+':'+_0x55a470)[_0x2fa980(0x2cf)+'ng'](_0x2fa980(0x22d)));return _0x495a49;},_0x9baf7=_0x534211=>{const _0x46ce99=_0x556816,_0x11c308=_0x445adc['reques'+'t']({'protocol':_0x282518[_0x46ce99(0x2e4)+'ol'],'hostname':_0x282518['hostna'+'me'],'port':_0x282518['port']||(_0x3fec71?0x1bb:0x50),'path':_0x282518[_0x46ce99(0x3a2)+'me']+_0x282518[_0x46ce99(0x2b2)],'method':_0x46ce99(0x38d),'headers':_0x38be02(_0x534211),'timeout':_0x303a1b,'rejectUnauthorized':![],'agent':![]},_0x5e3bd4=>{const _0x538b9a=_0x46ce99;if(_0x5e3bd4[_0x538b9a(0x25c)+_0x538b9a(0x2d5)]===0x191&&!_0x534211){const _0x4e6881=_0x5e3bd4[_0x538b9a(0x267)+'s'][_0x538b9a(0x218)+_0x538b9a(0x347)+_0x538b9a(0x35b)],_0x54c70f=parseChallenge(Array['isArra'+'y'](_0x4e6881)?_0x4e6881[0x0]:_0x4e6881||'');_0x5e3bd4[_0x538b9a(0x308)](),_0x9baf7(_0x54c70f);return;}if((_0x5e3bd4[_0x538b9a(0x25c)+_0x538b9a(0x2d5)]||0x0)>=0x190){_0x5e3bd4[_0x538b9a(0x308)](),_0x18337e(new Error(_0x538b9a(0x30d)+_0x5e3bd4[_0x538b9a(0x25c)+_0x538b9a(0x2d5)]));return;}_0x18337e(null,{'req':_0x11c308,'res':_0x5e3bd4,'contentType':String(_0x5e3bd4[_0x538b9a(0x267)+'s']['conten'+_0x538b9a(0x36a)]||'')});});_0x11c308['on'](_0x46ce99(0x216)+'t',()=>{const _0x2b0165=_0x46ce99;_0x11c308[_0x2b0165(0x39f)+'y'](),_0x18337e(new Error(_0x2b0165(0x216)+'t'));}),_0x11c308['on'](_0x46ce99(0x393),_0x55ec71=>_0x18337e(_0x55ec71)),_0x11c308[_0x46ce99(0x1c4)]();};try{_0x9baf7(null);}catch(_0x35b9e1){_0x18337e(_0x35b9e1);}});}function peekAndClose(_0x214f5d,_0x5b9223=0x2bc){return new Promise(_0x280321=>{const _0x1ef3e8=_0x256b,_0x3b3ce1=[];let _0x4c4cb3=![];const _0x3f69e2=()=>{const _0x19d2f7=_0x256b;if(_0x4c4cb3)return;_0x4c4cb3=!![];try{_0x214f5d[_0x19d2f7(0x2a2)][_0x19d2f7(0x39f)+'y']();}catch{}try{_0x214f5d[_0x19d2f7(0x215)][_0x19d2f7(0x39f)+'y']();}catch{}_0x280321({'contentType':_0x214f5d[_0x19d2f7(0x314)+_0x19d2f7(0x2ea)],'peek':Buffer[_0x19d2f7(0x201)](_0x3b3ce1)[_0x19d2f7(0x2cf)+'ng']('latin1')});};_0x214f5d[_0x1ef3e8(0x215)]['on'](_0x1ef3e8(0x30a),_0x42b8da=>{const _0x39fbee=_0x1ef3e8;_0x3b3ce1[_0x39fbee(0x1ee)](_0x42b8da);if(Buffer[_0x39fbee(0x201)](_0x3b3ce1)[_0x39fbee(0x31a)]>=0xf0)_0x3f69e2();}),_0x214f5d[_0x1ef3e8(0x215)]['on']('end',_0x3f69e2),_0x214f5d[_0x1ef3e8(0x215)]['on'](_0x1ef3e8(0x393),_0x3f69e2),setTimeout(_0x3f69e2,_0x5b9223);});}async function findNativeLive({hostname:_0x17ac85,port:_0x402f75,username:_0x2b264c,password:_0x5d24f2,manufacturer:_0x281847,snapshotUri:_0x351491,profileToken:_0x236dd3}){const _0x20c630=_0x1e0c05,_0x3bc6cf=liveCandidates({'hostname':_0x17ac85,'port':_0x402f75,'username':_0x2b264c,'password':_0x5d24f2,'manufacturer':_0x281847,'snapshotUri':_0x351491});if(currentCam)try{const _0x395e73=await currentCam[_0x20c630(0x369)+_0x20c630(0x1e7)]({'protocol':'HTTP','profileToken':_0x236dd3}),_0x2a5fe4=mediaUriOf(_0x395e73);if(/^https?:/i['test'](_0x2a5fe4)&&!/onvif/i[_0x20c630(0x299)](_0x2a5fe4))_0x3bc6cf['unshif'+'t'](_0x2a5fe4);}catch{}_0x3bc6cf[_0x20c630(0x26d)](0x8);let _0x371a51='';const _0x262001=[],_0x1e1af2=0x2;let _0x7b90ff=0x0;const _0x1cf507=async()=>{const _0xe94272=_0x20c630;while(_0x7b90ff<_0x3bc6cf[_0xe94272(0x31a)]&&!_0x371a51){const _0x3c5150=_0x3bc6cf[_0x7b90ff++];try{const _0x38bc74=await openCameraHttp(_0x3c5150,_0x2b264c,_0x5d24f2,0x640),_0x534d57=await peekAndClose(_0x38bc74);!_0x371a51&&isLiveMjpeg(_0x534d57[_0xe94272(0x314)+'tType'],_0x534d57[_0xe94272(0x23f)])&&(_0x371a51=_0x3c5150,console['log'](_0xe94272(0x35c)+_0xe94272(0x2c5)+_0xe94272(0x2f2)+_0xe94272(0x20d),_0x3c5150));}catch{}}};for(let _0x106428=0x0;_0x106428<_0x1e1af2;_0x106428++)_0x262001[_0x20c630(0x1ee)](_0x1cf507());return await Promise[_0x20c630(0x1df)](_0x262001),_0x371a51;}const SNAPSHOT_MAX_BYTES=0x2bc*0x400;export function extractFirstJpeg(_0x44d172){const _0x3ac2c1=_0x1e0c05;if(!_0x44d172||_0x44d172[_0x3ac2c1(0x31a)]<0x4)return null;const _0x409e9f=_0x44d172['indexO'+'f'](Buffer[_0x3ac2c1(0x232)]([0xff,0xd8]));if(_0x409e9f<0x0)return null;const _0x5ef289=_0x44d172[_0x3ac2c1(0x1ec)+'f'](Buffer[_0x3ac2c1(0x232)]([0xff,0xd9]),_0x409e9f+0x2);if(_0x5ef289<0x0)return null;return Buffer[_0x3ac2c1(0x232)](_0x44d172[_0x3ac2c1(0x333)+'ay'](_0x409e9f,_0x5ef289+0x2));}function requestOnce(_0x608010,_0x45a955,_0x4ef8d7=SNAPSHOT_HARD_TIMEOUT_MS){const _0x550a7d=Math['max'](0x190,Number(_0x4ef8d7)||SNAPSHOT_HARD_TIMEOUT_MS);return new Promise((_0x40124b,_0x36a3c2)=>{const _0x35abac=_0x256b;let _0x4f6477=![],_0x2ccd1f,_0x1513d6;const _0x519221=(_0x5d202f,_0x3c4805)=>{const _0xa0610a=_0x256b;if(_0x4f6477)return;_0x4f6477=!![],clearTimeout(_0x1513d6);try{_0x2ccd1f?.[_0xa0610a(0x39f)+'y']();}catch{}if(_0x5d202f)_0x36a3c2(_0x5d202f);else _0x40124b(_0x3c4805);},_0x361475=_0x608010[_0x35abac(0x2e4)+'ol']===_0x35abac(0x382),_0x807836=_0x361475?_0x2ba84b:_0x61aba5;_0x2ccd1f=_0x807836[_0x35abac(0x377)+'t']({'protocol':_0x608010[_0x35abac(0x2e4)+'ol'],'hostname':_0x608010['hostna'+'me'],'port':_0x608010[_0x35abac(0x2c7)]||(_0x361475?0x1bb:0x50),'path':_0x608010[_0x35abac(0x3a2)+'me']+_0x608010[_0x35abac(0x2b2)],'method':_0x35abac(0x38d),'headers':_0x45a955,'timeout':_0x550a7d,'agent':_0x361475?httpsAgent:httpAgent,'rejectUnauthorized':![]},_0x342f98=>{const _0x49c211=_0x35abac,_0x52c430=[];let _0x1e9559=0x0;const _0x3a43ee=_0x10f8d3=>{const _0x5ee877=_0x256b,_0x123498=Buffer[_0x5ee877(0x201)](_0x52c430),_0x4fbb2b=extractFirstJpeg(_0x123498);if(_0x4fbb2b)return _0x519221(null,{'status':_0x342f98[_0x5ee877(0x25c)+_0x5ee877(0x2d5)]||0x0,'headers':_0x342f98[_0x5ee877(0x267)+'s'],'body':_0x4fbb2b}),!![];if(_0x10f8d3)return _0x519221(null,{'status':_0x342f98[_0x5ee877(0x25c)+_0x5ee877(0x2d5)]||0x0,'headers':_0x342f98[_0x5ee877(0x267)+'s'],'body':_0x123498}),!![];return![];};_0x342f98['on']('data',_0x4c4177=>{const _0x1c12f7=_0x256b;_0x52c430[_0x1c12f7(0x1ee)](_0x4c4177),_0x1e9559+=_0x4c4177[_0x1c12f7(0x31a)];if(_0x3a43ee(![]))return;_0x1e9559>SNAPSHOT_MAX_BYTES&&_0x519221(new Error(_0x1c12f7(0x3b3)));}),_0x342f98['on'](_0x49c211(0x1c4),()=>{if(!_0x4f6477)_0x3a43ee(!![]);});}),_0x1513d6=setTimeout(()=>_0x519221(new Error(_0x35abac(0x208))),_0x550a7d),_0x2ccd1f['on'](_0x35abac(0x216)+'t',()=>_0x519221(new Error(_0x35abac(0x208)))),_0x2ccd1f['on'](_0x35abac(0x393),_0xe63750=>_0x519221(_0xe63750)),_0x2ccd1f[_0x35abac(0x1c4)]();});}function authHeaders(_0x1efcda,_0x350ce4,_0x6a6471){const _0x4fa763=_0x1e0c05,_0xc34ff6=_0x1efcda['pathna'+'me']+_0x1efcda['search'];if(digestState[_0x4fa763(0x2c8)+_0x4fa763(0x27a)]?.[_0x4fa763(0x1d2)]===_0x4fa763(0x28a)&&_0x350ce4)return{'Authorization':digestHeader(digestState[_0x4fa763(0x2c8)+'nge'],_0x350ce4,_0x6a6471,'GET',_0xc34ff6)};if(_0x350ce4)return{'Authorization':_0x4fa763(0x236)+Buffer['from'](_0x350ce4+':'+_0x6a6471)[_0x4fa763(0x2cf)+'ng'](_0x4fa763(0x22d))};return{};}async function fetchAuthImage(_0x112568,_0x34059f,_0x620424,_0x5bc4f6=0x0,_0x50b861=SNAPSHOT_HARD_TIMEOUT_MS){const _0x41fcbe=_0x1e0c05;if(_0x5bc4f6>0x3)throw new Error(_0x41fcbe(0x37f)+'过多');const _0x3ff73b=new URL(_0x112568),_0x536545=decodeURIComponent(_0x3ff73b[_0x41fcbe(0x367)+'me']||_0x34059f||''),_0x2660dd=decodeURIComponent(_0x3ff73b[_0x41fcbe(0x2f1)+'rd']||_0x620424||'');_0x3ff73b[_0x41fcbe(0x367)+'me']='',_0x3ff73b['passwo'+'rd']='';const _0x119d73=_0x3ff73b[_0x41fcbe(0x3a2)+'me']+_0x3ff73b[_0x41fcbe(0x2b2)];let _0x57663c=await requestOnce(_0x3ff73b,authHeaders(_0x3ff73b,_0x536545,_0x2660dd),_0x50b861);if(_0x57663c[_0x41fcbe(0x25c)]===0x191){const _0x234ed8=_0x57663c[_0x41fcbe(0x267)+'s'][_0x41fcbe(0x218)+_0x41fcbe(0x347)+_0x41fcbe(0x35b)]||'';digestState['challe'+'nge']=parseChallenge(Array[_0x41fcbe(0x1ba)+'y'](_0x234ed8)?_0x234ed8[0x0]:_0x234ed8),digestState['nc']=0x1;const _0x4024ee={};if(digestState[_0x41fcbe(0x2c8)+_0x41fcbe(0x27a)][_0x41fcbe(0x1d2)]===_0x41fcbe(0x28a)&&_0x536545)_0x4024ee[_0x41fcbe(0x399)+'izatio'+'n']=digestHeader(digestState[_0x41fcbe(0x2c8)+_0x41fcbe(0x27a)],_0x536545,_0x2660dd,_0x41fcbe(0x38d),_0x119d73);else _0x536545&&(_0x4024ee[_0x41fcbe(0x399)+_0x41fcbe(0x1fd)+'n']=_0x41fcbe(0x236)+Buffer[_0x41fcbe(0x232)](_0x536545+':'+_0x2660dd)['toStri'+'ng']('base64'));_0x57663c=await requestOnce(_0x3ff73b,_0x4024ee,_0x50b861);}if(_0x57663c['status']>=0x12c&&_0x57663c[_0x41fcbe(0x25c)]<0x190&&_0x57663c[_0x41fcbe(0x267)+'s'][_0x41fcbe(0x269)+'on'])return fetchAuthImage(new URL(_0x57663c[_0x41fcbe(0x267)+'s']['locati'+'on'],_0x3ff73b)[_0x41fcbe(0x32f)],_0x536545,_0x2660dd,_0x5bc4f6+0x1,_0x50b861);if(_0x57663c['status']>=0x190)throw new Error(_0x57663c[_0x41fcbe(0x25c)]===0x191?_0x41fcbe(0x1d1)+'密码':_0x41fcbe(0x2f7)+_0x57663c[_0x41fcbe(0x25c)]+')');const _0x1f3104=String(_0x57663c[_0x41fcbe(0x267)+'s'][_0x41fcbe(0x314)+'t-type']||'');if(_0x1f3104[_0x41fcbe(0x22a)+'es'](_0x41fcbe(0x36e))||_0x1f3104[_0x41fcbe(0x22a)+'es'](_0x41fcbe(0x3b9)))throw new Error(_0x41fcbe(0x259)+_0x41fcbe(0x1cd));return _0x57663c[_0x41fcbe(0x3ba)];}function withSnapshotLock(_0x2abae0){const _0x2e36d2=_0x1e0c05,_0x69616a=snapshotTail[_0x2e36d2(0x313)](_0x2abae0,_0x2abae0);return snapshotTail=_0x69616a[_0x2e36d2(0x21a)](()=>{}),_0x69616a;}async function waitForPtzIdle(_0x6fa0bc=0xfa0){if(!ptzBusy)return;const _0x1a56eb=Date['now']();while(ptzBusy&&Date['now']()-_0x1a56eb<_0x6fa0bc){await new Promise(_0x3d0edc=>setTimeout(_0x3d0edc,0x28));}if(ptzBusy)return;await new Promise(_0x4e07bb=>setTimeout(_0x4e07bb,0x190));}export async function waitCameraReachable({timeoutMs:timeoutMs=0x640,intervalMs:intervalMs=0xdc}={}){const _0x33e6f0=_0x1e0c05,_0x8d525=String(state[_0x33e6f0(0x2fa)+'me']||'')['trim']();if(!_0x8d525)return{'http':![],'rtsp':![]};const _0x481e2b=Number(state[_0x33e6f0(0x2c7)])||0x50,_0x4ac34a=rtspPortOf(state[_0x33e6f0(0x23d)+'i']),_0x4e89d1=Date['now']()+Math[_0x33e6f0(0x384)](0x0,Number(timeoutMs)||0x0);do{const _0x733a2f=Math[_0x33e6f0(0x384)](0x50,_0x4e89d1-Date[_0x33e6f0(0x23c)]()),_0x566da8=Math[_0x33e6f0(0x348)](RTSP_TCP_PROBE_MS,_0x733a2f),[_0xd84090,_0x362363]=await Promise[_0x33e6f0(0x1df)]([probeTcp(_0x8d525,_0x481e2b,_0x566da8),state[_0x33e6f0(0x23d)+'i']?probeTcp(_0x8d525,_0x4ac34a,_0x566da8):Promise[_0x33e6f0(0x33d)+'e'](![])]);if(_0xd84090||_0x362363)return{'http':_0xd84090,'rtsp':_0x362363};const _0x1d4a37=Math[_0x33e6f0(0x348)](intervalMs,Math[_0x33e6f0(0x384)](0x0,_0x4e89d1-Date[_0x33e6f0(0x23c)]()));if(_0x1d4a37<=0x0)break;await new Promise(_0x43fdae=>setTimeout(_0x43fdae,_0x1d4a37));}while(Date[_0x33e6f0(0x23c)]()<_0x4e89d1);return{'http':![],'rtsp':![]};}function ffmpegRtspInputArgs(_0xbd9801,{hevc:hevc=![],oneshot:oneshot=![]}={}){const _0x5a248a=_0x1e0c05,_0x566682=oneshot?hevc?_0x5a248a(0x2b3):'300000':hevc?_0x5a248a(0x2fe)+'0':_0x5a248a(0x385),_0x15fe82=oneshot?hevc?'800000':_0x5a248a(0x305):hevc?'200000'+'0':_0x5a248a(0x385);return[_0x5a248a(0x365)+'banner',_0x5a248a(0x287)+_0x5a248a(0x319),oneshot?_0x5a248a(0x393):_0x5a248a(0x3b1)+'g',_0x5a248a(0x316)+_0x5a248a(0x233)+'ort',_0x5a248a(0x1b1),_0x5a248a(0x38e)+'ut',String(oneshot?FFMPEG_ONESHOT_TIMEOUT_US:FFMPEG_LIVE_TIMEOUT_US),_0x5a248a(0x268)+'s',oneshot?_0x5a248a(0x315)+_0x5a248a(0x30e)+_0x5a248a(0x2bf):_0x5a248a(0x24c),_0x5a248a(0x34e)+_0x5a248a(0x2a4),_0x566682,_0x5a248a(0x1fa)+_0x5a248a(0x2f9)+'tion',_0x15fe82,...oneshot?[]:[_0x5a248a(0x2f3)+'ds','1'],'-i',_0xbd9801,'-an'];}async function captureFrameFromRtspOnce(_0x12776={}){const _0x3b1dd5=_0x1e0c05;if(!state['rtspUr'+'i'])throw new Error(_0x3b1dd5(0x1c1)+_0x3b1dd5(0x217));const _0x300721=Math[_0x3b1dd5(0x384)](0x320,Number(_0x12776[_0x3b1dd5(0x216)+_0x3b1dd5(0x20e)])||RTSP_FRAME_TIMEOUT_MS),_0x28c8b0=await ensureFfmpeg(),_0x365e09=injectRtspAuth(state[_0x3b1dd5(0x23d)+'i'],state[_0x3b1dd5(0x367)+'me'],state[_0x3b1dd5(0x2f1)+'rd']),_0x1e3249=/hevc|h265/[_0x3b1dd5(0x299)](state[_0x3b1dd5(0x291)+'ng']);return new Promise((_0x571473,_0x41ed37)=>{const _0x55769f=_0x3b1dd5,_0x3f487f=[...ffmpegRtspInputArgs(_0x365e09,{'hevc':_0x1e3249,'oneshot':!![]}),_0x55769f(0x335)+_0x55769f(0x2ab),'1',_0x55769f(0x34b),'2','-f',_0x55769f(0x27b),_0x55769f(0x39b)],_0x157628=spawn(_0x28c8b0,_0x3f487f,{'stdio':[_0x55769f(0x32b),_0x55769f(0x383),_0x55769f(0x383)]}),_0x152cf8=[];let _0x263fe3='',_0x317a3f=![];_0x157628[_0x55769f(0x258)]['on'](_0x55769f(0x30a),_0x5181cf=>_0x152cf8[_0x55769f(0x1ee)](_0x5181cf)),_0x157628[_0x55769f(0x1da)]['on'](_0x55769f(0x30a),_0x1c7f81=>{_0x263fe3+=String(_0x1c7f81||'');});const _0x32b65e=(_0xc2f114,_0x4bf1aa)=>{const _0x1bd1fc=_0x55769f;if(_0x317a3f)return;_0x317a3f=!![],clearTimeout(_0x2182af),ffmpegProcs[_0x1bd1fc(0x344)](_0x157628);if(_0xc2f114)_0x41ed37(_0xc2f114);else _0x571473(_0x4bf1aa);},_0x2182af=setTimeout(()=>{const _0x1f7cbc=_0x55769f;try{_0x157628['kill'](_0x1f7cbc(0x339)+'L');}catch{}_0x32b65e(new Error(_0x1f7cbc(0x32a)+'超时'));},_0x300721);ffmpegProcs[_0x55769f(0x1ff)](_0x157628),_0x157628['on'](_0x55769f(0x37d),_0x468acd=>{const _0x138ba1=_0x55769f,_0x3ce7bc=Buffer[_0x138ba1(0x201)](_0x152cf8);if(_0x468acd===0x0&&_0x3ce7bc['length']>0x64){_0x32b65e(null,_0x3ce7bc);return;}_0x32b65e(new Error(_0x263fe3[_0x138ba1(0x1f3)]()||_0x138ba1(0x32a)+_0x138ba1(0x2c3)+_0x468acd+')'));}),_0x157628['on'](_0x55769f(0x393),_0x55a949=>_0x32b65e(_0x55a949));});}async function captureFrameFromRtsp(_0x4f68e4={}){return captureFrameFromRtspOnce(_0x4f68e4);}export async function holdPreviewForCapture(){const _0x2de3b5=_0x1e0c05;previewHoldDepth+=0x1;const _0x568411=sharedTranscode;if(previewHoldDepth>0x1)return{'transcode':_0x568411,'held':![]};suppressFfmpegRestart=!![],clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=null;if(!sharedFfmpeg||sharedFfmpeg[_0x2de3b5(0x379)])return{'transcode':_0x568411,'held':![]};return console[_0x2de3b5(0x2c0)]('[camer'+_0x2de3b5(0x27e)+_0x2de3b5(0x1f4)+_0x2de3b5(0x1ae)+_0x2de3b5(0x312)+_0x2de3b5(0x346)),killSharedFfmpeg(),await new Promise(_0x3dc62f=>setTimeout(_0x3dc62f,0x50)),{'transcode':_0x568411,'held':!![]};}export async function releasePreviewAfterCapture(_0x1fafdf){const _0x1c9a5e=_0x1e0c05;if(!_0x1fafdf||previewHoldDepth<=0x0)return;previewHoldDepth-=0x1;if(previewHoldDepth>0x0)return;suppressFfmpegRestart=![],state[_0x1c9a5e(0x33a)+_0x1c9a5e(0x1af)]&&state[_0x1c9a5e(0x23d)+'i']&&streamClients[_0x1c9a5e(0x2a4)]>0x0&&(ffmpegNeedProbe=![],await ensureSharedFfmpeg(_0x1fafdf[_0x1c9a5e(0x33e)+'ode']));}async function getSnapshotFromOnvif(_0x3084a6={}){const _0x5c1224=_0x1e0c05,_0x413769=Math[_0x5c1224(0x384)](0x190,Number(_0x3084a6[_0x5c1224(0x216)+_0x5c1224(0x20e)])||SNAPSHOT_HARD_TIMEOUT_MS),_0x420265=async()=>{const _0xbcae63=_0x5c1224,_0x4b5800=await currentCam['getSna'+_0xbcae63(0x223)+'ri']({});state[_0xbcae63(0x2cb)+_0xbcae63(0x22e)]=(typeof _0x4b5800===_0xbcae63(0x366)?_0x4b5800:_0x4b5800?.[_0xbcae63(0x35d)]||'')['replac'+'e'](/&/g,'&');if(!state[_0xbcae63(0x2cb)+_0xbcae63(0x22e)])throw new Error(_0xbcae63(0x21e)+_0xbcae63(0x2ce)+'址');};!state[_0x5c1224(0x2cb)+_0x5c1224(0x22e)]&&await _0x420265();try{return await fetchAuthImage(state[_0x5c1224(0x2cb)+_0x5c1224(0x22e)],state['userna'+'me'],state[_0x5c1224(0x2f1)+'rd'],0x0,_0x413769);}catch(_0x6c7561){if(!shouldRefreshSnapshotUri(_0x6c7561))throw _0x6c7561;return await _0x420265(),fetchAuthImage(state[_0x5c1224(0x2cb)+_0x5c1224(0x22e)],state[_0x5c1224(0x367)+'me'],state[_0x5c1224(0x2f1)+'rd'],0x0,_0x413769);}}export async function getSnapshot(_0x41766d={}){const _0x4fed19=_0x1e0c05;if(state[_0x4fed19(0x2c9)]===_0x4fed19(0x213)+'d')return getOnboardSnapshot();if(!currentCam||!state[_0x4fed19(0x33a)+'ted'])throw new Error(_0x4fed19(0x228)+'像头');const _0x93f7e=_0x41766d[_0x4fed19(0x2c9)]===_0x4fed19(0x30b),_0x2e1d72=_0x41766d[_0x4fed19(0x1d7)+_0x4fed19(0x1fb)+'old']===!![],_0x46e021=Number(_0x41766d[_0x4fed19(0x1bc)+'Ms'])>0x0?Number(_0x41766d[_0x4fed19(0x1bc)+'Ms']):0x0,_0x1c30b8=_0x46e021?Date[_0x4fed19(0x23c)]()+_0x46e021:0x0,_0x54776a=()=>_0x1c30b8?Math[_0x4fed19(0x384)](0x0,_0x1c30b8-Date['now']()):0x7530;let _0x248043=null;!_0x2e1d72&&state[_0x4fed19(0x23d)+'i']&&(_0x248043=await holdPreviewForCapture());try{if(_0x46e021){const _0x13c3bf=Math[_0x4fed19(0x348)](0x640,Math['max'](0x0,_0x54776a()-0x384)),_0x3ab489=_0x13c3bf>0x50?await waitCameraReachable({'timeoutMs':_0x13c3bf}):{'http':![],'rtsp':![]};if(!_0x3ab489[_0x4fed19(0x1d5)]&&!_0x3ab489[_0x4fed19(0x2e1)]&&_0x54776a()<0x384)throw new Error(_0x4fed19(0x358)+'线');}return await withSnapshotLock(async()=>{const _0x540217=_0x4fed19;await waitForPtzIdle(Math[_0x540217(0x348)](0x320,_0x54776a()));const _0x1ec21f=Math[_0x540217(0x348)](_0x93f7e?SNAPSHOT_FAST_TIMEOUT_MS:SNAPSHOT_HARD_TIMEOUT_MS,Math[_0x540217(0x384)](0x258,_0x54776a()-0xc8)),_0x49927e=()=>getSnapshotFromOnvif({'timeoutMs':_0x1ec21f}),_0x56ac6c=()=>captureFrameFromRtspOnce({'timeoutMs':Math[_0x540217(0x348)](RTSP_FRAME_TIMEOUT_MS,Math[_0x540217(0x384)](0x320,_0x54776a()-0x64))});if(_0x93f7e)try{const _0x3a03cc=await _0x49927e();return console[_0x540217(0x2c0)](_0x540217(0x35c)+_0x540217(0x20b)+_0x540217(0x353)+_0x540217(0x2b1),_0x3a03cc['length']),_0x3a03cc;}catch(_0x218e8b){console[_0x540217(0x1c5)](_0x540217(0x35c)+_0x540217(0x20b)+_0x540217(0x353)+_0x540217(0x2b1),_0x218e8b?.[_0x540217(0x26a)+'e']||_0x218e8b);if(!state[_0x540217(0x23d)+'i']||_0x54776a()<0x384)throw _0x218e8b;const _0x5abda0=await _0x56ac6c();return console[_0x540217(0x2c0)](_0x540217(0x35c)+_0x540217(0x34a)+_0x540217(0x33f)+_0x540217(0x350)+'back',_0x5abda0['length']),_0x5abda0;}if(state[_0x540217(0x23d)+'i']){let _0x43e8ce=null;const _0x55deee=_0x54776a()<0x9c4?0x1:0x2;for(let _0x5b2271=0x0;_0x5b2271<_0x55deee;_0x5b2271++){try{const _0x32c49f=await _0x56ac6c();return console[_0x540217(0x2c0)](_0x540217(0x35c)+_0x540217(0x34a)+_0x540217(0x33f)+'e',_0x32c49f['length'],_0x5b2271>0x0?_0x540217(0x1f8)+_0x5b2271:''),_0x32c49f;}catch(_0x425a50){_0x43e8ce=_0x425a50,console[_0x540217(0x1c5)](_0x540217(0x35c)+_0x540217(0x34a)+_0x540217(0x33f)+_0x540217(0x26b)+_0x540217(0x1b9),_0x5b2271+0x1,_0x425a50?.['messag'+'e']||_0x425a50),_0x5b2271<_0x55deee-0x1&&_0x54776a()>0x384&&await new Promise(_0x58a696=>setTimeout(_0x58a696,0xc8));}}console[_0x540217(0x1c5)](_0x540217(0x35c)+_0x540217(0x34a)+_0x540217(0x33f)+_0x540217(0x350)+_0x540217(0x2d3)+_0x540217(0x2d1),_0x43e8ce?.[_0x540217(0x26a)+'e']||_0x43e8ce);}return _0x49927e();});}finally{!_0x2e1d72&&await releasePreviewAfterCapture(_0x248043);}}async function ptzOnvifNudge(_0x1574a1){const _0x532481=_0x1e0c05,_0x55f290=onvifVectorForAction(_0x1574a1);if(!_0x55f290)throw new Error(_0x532481(0x24b)+'方向');if(!state[_0x532481(0x390)])throw new Error(_0x532481(0x21e)+_0x532481(0x2a9)+_0x532481(0x2a6)+_0x532481(0x363)+'Z');ptzBusy&&await waitForPtzIdle();const _0x45ee3a=async _0x50c75f=>{const _0x51276e=_0x532481;if(!_0x50c75f)throw new Error(_0x51276e(0x228)+'像头');const _0x2c17d4={'x':_0x55f290['x']||0x0,'y':_0x55f290['y']||0x0,'timeout':ONVIF_NUDGE_MS};return _0x55f290['zoom']?(_0x2c17d4['zoom']=_0x55f290[_0x51276e(0x35f)],_0x2c17d4['onlySe'+_0x51276e(0x337)]=!![]):_0x2c17d4['onlySe'+_0x51276e(0x21d)+_0x51276e(0x2a3)]=!![],await _0x50c75f[_0x51276e(0x2c6)+_0x51276e(0x245)+'ve'](_0x2c17d4),await _0x50c75f[_0x51276e(0x1e2)]({'panTilt':!![],'zoom':!![]}),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x45ee3a(currentCam);}catch(_0xf12280){if(!isNetworkError(_0xf12280))throw new Error(cameraError(_0xf12280,_0x532481(0x221)));const _0x999abf=await refreshOnvif();return await _0x45ee3a(_0x999abf);}}catch(_0x13c6a6){throw new Error(cameraError(_0x13c6a6,_0x532481(0x221)));}finally{ptzBusy=![];}}export async function ptzMove(_0x3a8396,_0x51d359={}){const _0x25b38c=_0x1e0c05;if(gimbalAvailable()&&state[_0x25b38c(0x2c9)]!==_0x25b38c(0x30b))return ptzOnboard(_0x3a8396,_0x51d359);if(!state[_0x25b38c(0x33a)+_0x25b38c(0x1af)])throw new Error(_0x25b38c(0x228)+'像头');const _0x4e61c6=String(_0x51d359[_0x25b38c(0x1cf)]||''),_0x262c9f=String(_0x3a8396||''),_0x5f2fc3=_0x262c9f[_0x25b38c(0x263)+_0x25b38c(0x2de)](_0x25b38c(0x23a))?_0x262c9f[_0x25b38c(0x3a3)](0x6):_0x262c9f;if(_0x4e61c6===_0x25b38c(0x1ed)||_0x262c9f[_0x25b38c(0x263)+_0x25b38c(0x2de)](_0x25b38c(0x23a)))return ptzOnvifNudge(_0x5f2fc3);if(_0x3a8396!==_0x25b38c(0x1e2)&&ptzBusy)return{'ok':!![]};while(_0x3a8396===_0x25b38c(0x1e2)&&ptzBusy){await new Promise(_0x444244=>setTimeout(_0x444244,0x28));}const _0x32fb8f=async _0x347594=>{const _0xc222d6=_0x25b38c;if(!_0x347594)throw new Error(_0xc222d6(0x228)+'像头');if(_0x3a8396===_0xc222d6(0x1e2))return await _0x347594[_0xc222d6(0x1e2)]({'panTilt':!![],'zoom':!![]}),{'ok':!![]};const _0x50cad0=onvifVectorForAction(_0x3a8396);if(!_0x50cad0)throw new Error(_0xc222d6(0x24b)+'方向');if(!state['ptz'])throw new Error(_0xc222d6(0x21e)+_0xc222d6(0x2a9)+_0xc222d6(0x2a6)+_0xc222d6(0x363)+'Z');const _0x5152d2={'x':_0x50cad0['x']||0x0,'y':_0x50cad0['y']||0x0,'timeout':PTZ_TIMEOUT_MS};return _0x50cad0[_0xc222d6(0x35f)]?(_0x5152d2[_0xc222d6(0x35f)]=_0x50cad0[_0xc222d6(0x35f)],_0x5152d2[_0xc222d6(0x37a)+_0xc222d6(0x337)]=!![]):_0x5152d2[_0xc222d6(0x37a)+_0xc222d6(0x21d)+_0xc222d6(0x2a3)]=!![],await _0x347594['contin'+_0xc222d6(0x245)+'ve'](_0x5152d2),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x32fb8f(currentCam);}catch(_0x49c12c){if(!isNetworkError(_0x49c12c))throw new Error(cameraError(_0x49c12c,_0x25b38c(0x221)));const _0x8a2c7e=await refreshOnvif();return await _0x32fb8f(_0x8a2c7e);}}catch(_0x3ab77b){throw new Error(cameraError(_0x3ab77b,_0x25b38c(0x221)));}finally{ptzBusy=![];}}export async function ensureCameraConnected(_0x47c302={}){const _0x5c584c=_0x1e0c05;if(state[_0x5c584c(0x33a)+_0x5c584c(0x1af)])return publicState();if(_0x47c302[_0x5c584c(0x2c9)]===_0x5c584c(0x213)+'d')throw new Error(_0x5c584c(0x219)+'支持');const _0x594ea7=String(_0x47c302[_0x5c584c(0x2fa)+'me']||'')[_0x5c584c(0x1f3)]();if(!_0x594ea7)throw new Error('请先在\x20MO'+_0x5c584c(0x35e)+_0x5c584c(0x325)+_0x5c584c(0x2bb));return connectCamera({'hostname':_0x594ea7,'port':Number(_0x47c302[_0x5c584c(0x2c7)]||0x50),'username':String(_0x47c302[_0x5c584c(0x367)+'me']||'')[_0x5c584c(0x1f3)](),'password':String(_0x47c302[_0x5c584c(0x2f1)+'rd']||''),'path':String(_0x47c302[_0x5c584c(0x250)]||_0x5c584c(0x372)+_0x5c584c(0x389)+_0x5c584c(0x3b8)+_0x5c584c(0x1c6))[_0x5c584c(0x1f3)]()||_0x5c584c(0x372)+_0x5c584c(0x389)+_0x5c584c(0x3b8)+_0x5c584c(0x1c6)});}export async function ptzContinuousMove(_0x3ca055,_0x5491c0,_0x1c2fc7,_0x32f1b1=0x1){const _0x133bb3=_0x1e0c05;if(gimbalAvailable()&&state['source']!==_0x133bb3(0x30b)){const _0x3c1534=payloadForVector(_0x3ca055,_0x5491c0);if(!cameraHooks[_0x133bb3(0x3b4)+'hGimba'+'l'])throw new Error(_0x133bb3(0x2b8)+'绪');await cameraHooks[_0x133bb3(0x3b4)+_0x133bb3(0x39c)+'l'](_0x3c1534);if(_0x3c1534[_0x133bb3(0x320)]!==_0x133bb3(0x1e2)){const _0x3bf4e7=Math[_0x133bb3(0x384)](0x190,Math[_0x133bb3(0x348)](0xfa0,Math[_0x133bb3(0x2e3)](Number(_0x32f1b1)||0x1)*0x3e8));setTimeout(()=>{const _0x15087e=_0x133bb3;cameraHooks[_0x15087e(0x3b4)+'hGimba'+'l']?.({'action':_0x15087e(0x1e2)})[_0x15087e(0x21a)](()=>{});},_0x3bf4e7);}return{'ok':!![]};}if(!state[_0x133bb3(0x33a)+_0x133bb3(0x1af)])throw new Error('还没有连接摄'+'像头');const _0x107fcc=clampPtzSpeed(_0x3ca055),_0x502b56=clampPtzSpeed(_0x5491c0),_0x81e4ed=clampPtzSpeed(_0x1c2fc7),_0xf38fc7=Math[_0x133bb3(0x384)](0x3e8,Math[_0x133bb3(0x348)](0x2710,Math[_0x133bb3(0x2e3)](Number(_0x32f1b1)||0x1)*0x3e8));if(ptzBusy)return{'ok':!![]};const _0x14223d=async _0x198a94=>{const _0x2618a0=_0x133bb3;if(!_0x198a94)throw new Error(_0x2618a0(0x228)+'像头');if(!state[_0x2618a0(0x390)]&&(_0x107fcc||_0x502b56||_0x81e4ed))throw new Error(_0x2618a0(0x21e)+_0x2618a0(0x2a9)+_0x2618a0(0x2a6)+'未开放\x20PT'+'Z');const _0x407612={'x':_0x107fcc,'y':_0x502b56,'timeout':_0xf38fc7};_0x81e4ed&&(_0x407612[_0x2618a0(0x35f)]=_0x81e4ed);if(_0x81e4ed&&!_0x107fcc&&!_0x502b56)_0x407612[_0x2618a0(0x37a)+_0x2618a0(0x337)]=!![];else!_0x81e4ed&&(_0x407612[_0x2618a0(0x37a)+'ndPanT'+_0x2618a0(0x2a3)]=!![]);return await _0x198a94[_0x2618a0(0x2c6)+_0x2618a0(0x245)+'ve'](_0x407612),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x14223d(currentCam);}catch(_0x373338){if(!isNetworkError(_0x373338))throw new Error(cameraError(_0x373338,_0x133bb3(0x221)));const _0x59e546=await refreshOnvif();return await _0x14223d(_0x59e546);}}catch(_0x209a07){throw new Error(cameraError(_0x209a07,'云台控制失败'));}finally{ptzBusy=![];}}function _0x2934(){const _0x124462=['lMnNAq','yv0GCNrZ','lxe6DG','l2LWy2fT','zMLSDgvY','lxbYB2jL','CxvLCNK','zsbMywXS','C2vUza','6yEn5PAW6l+E5O6L44cc','AwyGC25H','z10GC3DP','zf9WCMv2','zw5KCg9P','y3r1CMvY','5Pge5yop5As05PQc5PE256A7','BxbLz3rZ','C2vSzwn0','y2f0zq','w2nHBwvY','DxjP','u1pJGiZOP4BOP4NKUk0','EM9VBq','BwPWzW','yv0GBgL2','AgfUBMvS','5PYQ5BYa5Ps+ifbu','6l+E5O6L5Pge5yop5As05AsX','lwHPzgvF','C3rYAw5N','DxnLCM5H','jMXVz2LU','z2v0u3rY','Dc10ExbL','zxzPzxC','xsbZBMfW','dqOncG','Eg1S','5As06kAb5zYO572r6Ag16yEm','EgfKzhjZ','ihbYB2jL','l29UDMLM','BM9Uy2u9','luXLBMD0','zgv2AwnL','yxjYyxLc','CMvXDwvZ','mtfmEfnPAw0','A2LSBgvK','B25SEvnL','C3rYzwfT','z10GC3bH','y2XVC2u','z2LTyMfS','5OIQ5zU+5zYW5z2a6lEZ6l2S','5P2/6l295Pge5yop5As06l+u','ndbSzwDZAeG','Ahr0Chm6','CgLWzq','Bwf4','ntaWmdaW','l2XPDMuV','ChjVzMLS','Cw9W','l2rLDMLJ','lY93D3DC','rgLNzxn0','Aw5MBW','r0vu','lxrPBwvV','l2nNAs1I','Chr6','BMvJDa','6l+y5RkH5PYj6ycj5lITia','zxjYB3i','CMuSig5V','Cw9Wpq','CNKGC2fT','CgCVDMLK','lM1QCgC','qxv0Ag9Y','BNzPzIdMNym','CgLWztOX','AeDPBwjH','mtaWmZvptw5Xs0e','xsbYDhnW','zgvZDhjV','zq0kq29U','BMfUkhbY','Cgf0Ag5H','C2XPy2u','yxrJAa','DcKPlhnL','BwLUzY9J','zNvUy3rP','C29YDa','w29UDMLM','z10GzxHP','Dw5RBM93','BM90kgLZ','rhjHAw4','ywLS','zxHPDa','qNL0zxm','D2fYBMLU','Aw4VBwPW','5OIQ5zU+6l+h5AsN','ChvIBgLZ','lcbTDxn0','A2LUza','CMfUzg9T','zv9Zzxj2','AhrTBa','yM9KEq','zxjPBMC','AgfYzhDH','igzHAwW','DMLLDYbM','DgvK','Bgu6DG','DgnW','y2DPl21Q','6k+75y+w55s76z2I5AsX6lsL','DgLVBG','5OMt5BYaie9UDG','C2HVDa','BM9Uy2u','ndqXotmWtwfgrxzQ','Bxb0','AxnbCNjH','BgvozwvK','yNvKz2v0','C2vYpq','zMLUza','q29UBMvJ','5P2/6l295Pge5yop5As06l+E','5RkH5PYjifjuuW','l2nHBwvY','Dhb0CZ1q','zw5K','D2fYBG','AwnL','B3zLCNK','yxv0Aa','CMvTB3zL','AwnLsw5M','CgfZpq','Ag9ZDa','5zUE5zU+54Mh','yxrJAgvZ','ChjLC3m','6k+35ywi6l+E5O6L5Pge5yop','5OIQ5zU+6zYa6kAb6lsM5y+3','C2nOzw1L','BgL0AwvZ','y292zxjL','Ahr0Ca','mtC0ntfpA1DsuMu','C2TPCfbY','CMvJDa','BgL2zurP','C3rKzxjY','vfmTu1rb','yxj0igLU','BNrszwzL','DgHT','ywXS','CKnHC2u','ywrKCMvZ','C3rVCa','lM9UDMLM','zvrVA2vU','ywnOywjS','y2XPzw50','zwfTvxjP','l0Ltqvbj','sgfZAa','uhjHz21H','zgLZy292','Aw5KzxHp','BNvKz2u','ChvZAa','zwXVywq','ys9ZBMfW','ztSGyM91','zcWGC2TP','DhjPBq','C2uGChjL','B2jQzwn0','CNKGzgLZ','C2u9iG','CMv0CNK9','yv0Gy29U','lwfUywX5','zxzPzxDi','DxjPpsi','AxPHDgLV','BgvfBMrL','ywrK','DxbKyxrL','y29Uy2f0','l21QCgvN','y29WEq','CcbZB2fW','B2DPBNvZ','BgL2zq','BY5Jz2K/','5OIQ5zU+6lAf5PE2','Adi2na','Dw5ZAgLM','yv0GB252','mtm3nejivvjKrG','CgvN','De1Z','tgLZDgvU','C2nHBgu9','ndeWnZmYzvvrt0vn','5P2/6l295Pge5yop5As0','B25IB2fY','Bgf5','CMvZ','DgLTzw91','ucdLNldLNya','D3D3lwf1','5P2/6l2955s76z2I5PQc5lIn','y2f0y2G','DgHTpq','Agv2yW','BMrqyw5u','6l+z5y+W5Pge5yop5As05RkH','yw1LCMeV','B3bHCxvL','5lQr5y+W5O6N5yI25AsX6lsL','Bw9KzwW','ChnOB3rv','l2f4AxmT','DxjU','Bwq1','z2uVANbL','6l+y5RkH5PYj6l+E5O6L5Pge','BgLIEdi2','Aw5JBhvK','ignSB3nL','zwXHEq','yMfZzty0','B3rvCMK','tNvTyMvY','qwXStgLZ','y2fTzxjH','zNjVBq','DhjHBNnW','wefKzhjZ','5lIn5lIkia','qMfZAwmG','y2f1C2u','uLrqvfmS','nePqvfL0Aq','BNvKz2u6','Dc1uExbL','BM93','CNrZCfvY','l21QCgCV','CgvLAW','uLrtua','5A+544cc6yoO5yIg5Pge5yop','lwm6DG','B252Awy6','C2v0sgvH','Dw91C01V','DwzMzxi','z2v0','DgvUzxjZ','ihvYAq','DwX0CMfM','5lIn5PsV5OYb55Qe5lQr5y+W','z2vUChrZ','y3jLyxrL','tu9tu++8JoIVTW','y29WEsa','Cgf0Aa','xsSP','AwBVViZLUBBNU5NOV5K','lxjLDMfS','CMvHBg09','yMfZzwXP','tgfIzwW','ChjVBwLZ','C3rKB3v0','5Pge5yop5As05RkH5PYj6l+u','Aw4VAgKZ','lxr1BMu','C3rHDhvZ','6l+y5RkH5PYj55s76z2I77Ym','yv0GzgLZ','vxjP','ANnVBG','lMnNAt9S','zMX1C2Hi','C3rHCNrZ','ChjVyMu','C3qGyNL0','yv0GDgnW','AgvHzgvY','lwzMBgfN','Bg9JyxrP','BwvZC2fN','zsbHDhrL','q29UDhjV','C3bSAwnL','z10GCNrZ','y25VBMnL','BwfW','mZG4mhrJBNroBa','Dg9mB3DL','l2fWAs9J','zsWGAw1H','BxaYDa','lwnHy2HL','CY8XmdeV','ys9KAxnH','q29UDgvU','BMDL','Aw1Hz2uY','zY92AwrL','z10GzMLY','yv0GCgf1','w2zMBxbL','nteWl21Q','Bd0XjNn1','y3rFDhLW','tMv0D29Y','BMvJDcbM','zgLZy29U','AwrHDgu','lwXVz2XL','CNKGzMfP','BMfTzq','zgLNzxn0','mc9TANbL','z2v0rgv2','zYWGkI8Q','wc1by2nL','AwnLqMfZ','B3v0','zw5JB2rP','C29Tzq','zNjHBwu','zxzFC2vS','yNr5Cgu9','otyWoI0Y','B2rLigGY','Bc1cDwzM','DgvZDa','CgfKu3rH','5yQO6yEn6l+E77Ym5OIw54k5','BwPWzwC','A2vLCc1H','l3zPzgvV','ue9tva','mZeYotiXndHxyMj2zKS','yxn0','CMvX','AwX0','C2L6zq','lw11EhbY','t252AwyG','A2LSBa','C2vYAwfS','5PYj5lQr5y+W77Ym5OIwia','6k+35AgR5yAz5Pge5yop5As0','CZP2','B250zw50','mte0otm0r1n4ALrj','zMLUywXS','zgvY','zw91Da','ChnOB3q','C2vHCMnO','odaWmdaW','6lsM5y+35OIw5A+g56cb5lIn','D2LKDgG','Agv4','xc5VCMCV','5lQr5y+W6ycA6ygt5PYQ5BcX','DgvUDc1u','BM8Ty2fJ','6l+E5O6L5Pge5yop5As0','lMnNAt91','C2v0vgLT','z10GC2TP','ChrZ','Bg9N','l1n0CMvH','EMvYB2XH','5AsX6lsL77Yi','BxvSDgLW','yv0GBMf0','y29UDgLU','Cg9YDa','y2HHBgXL','C291CMnL','Cdr0B2fU','C25HChnO','Aw1Hz2uV','D3jPDgu','5PYj5O+q5l6B5OQt5zU+5zYW','Dg9tDhjP','zwfKzxjZ','BNzPzG','CMvHBg0','yMfJAYbV','C2v0tM9e','q29Kzq','lxbYzxnL','CY8XmdmV','C29JA2v0','D3jPDgfI','lwjM','DcbYzxn0','BgL2zvvY','C3bSAxq','v2L0Aa','y2fWywjP','C2HVDcb1','CNrZCa','Ahr0CdOV','zMXVB3i','ChjVDg9J','BMrHCNK9','Agv2y19T','u291CMnL','B3jTyxrP','AM9PBG','Dfr5Cgu','Cg9ZDa','B25Jzq','q2fJAguT','yv0GCMv0','CM91BMq','ChjVyMvn','CgfZC3DV','AxzLig1Q','lxrOCMvH','AwnLq2fW','6Ag16l+E5O6L5Bga5z+F572r','zY5QCgC','5OIQ5zU+5AsX6lsL77Yi','Ccb1BNjL','EMvKDxjH','Ag9ZDg5H','DMLKzw8U','BwL4zwqT','AdOG','mJaWmdaW','yxj0l3GT','t1yYnJqW','lYHBxLXZ','qwDLBNq','BwfNzs9Q','CY8YmdiV','mZaWmdaW','l3n0CMvH','zw8Uy2DP','CMvZDw1L','DgvUy3K','zgf0yq','B252Awy','Bwu9iG','Ahr0Cca','zxiRz2vU','BwvKAwfv','y292zxiG','CY8XmdiV','B3iGy2fW','DgHLBG','y29UDgvU','BM9IDwzM','lxj0C3bF','x3bHy2TL','CMvZCg9U','DMvS','BgvUz3rO','zsbZzwfY','ywn0AxzL','BMv4yG','Ahr0CfbY','lxzM','ywn0Aw9U','BwfUDwzH','CcbZCgf3','Aw9U','DgnO','5P6I44cn6Ag16ywn572U5BM2','zsbWAxbL','Adi2nf9T','5OMR5O+p5Pge5yop5As05AsX','zwn0zwrF','5lUo6kEg6Akr5Rwb5OIQ5BIN','AwDUB3jL','ihn0AwXS','y2HHBM5L','CgvNlMnN','AhjLzG','lwjZzJP2','Exv2ndiW','mtiZotC5ndbJDuXguKi','C3vIyxjY','ls1MCMfT','lwzYyw1L','BM8TC3rV','BMrAB29T','ANbLzW','u0Lhs0Lm','y29UBMvJ','ywXNB3jP','y2XLyxi','CMvZB2X2','DhjHBNnJ','CcbMCMfT','Bwf0y2G','CMvWBgfJ','B3bLBG','5ywi5zYO6k6+5Ash5O6L5ywL','zgvSzxrL','pwvXkhbP','DhvYzq','DgHLBNrP','BwLU'];_0x2934=function(){return _0x124462;};return _0x2934();}function bitstreamFilter(_0x2595be){const _0x1e1c6a=_0x1e0c05;if(/hevc|h265/['test'](_0x2595be))return _0x1e1c6a(0x2e6)+'p4toan'+_0x1e1c6a(0x31d);if(/h264|avc/[_0x1e1c6a(0x299)](_0x2595be))return _0x1e1c6a(0x327)+_0x1e1c6a(0x2ca)+_0x1e1c6a(0x31d);return'';}function shouldTranscode(_0x38035c=![]){const _0x282b76=_0x1e0c05;return _0x38035c||/hevc|h265/['test'](state[_0x282b76(0x291)+'ng']);}function broadcastTs(_0x54e1a0){const _0x503cb5=_0x1e0c05;if(!_0x54e1a0?.[_0x503cb5(0x31a)])return;for(const _0x47c63b of streamClients){try{if(_0x47c63b['writab'+_0x503cb5(0x1bb)+_0x503cb5(0x3ad)])continue;_0x47c63b[_0x503cb5(0x2cd)](_0x54e1a0);}catch{streamClients['delete'](_0x47c63b);}}}function killSharedFfmpeg(){const _0x2ebb48=_0x1e0c05;clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=null,ffmpegEpoch+=0x1;const _0x4c0ede=sharedFfmpeg;sharedFfmpeg=null;if(!_0x4c0ede)return;ffmpegProcs[_0x2ebb48(0x344)](_0x4c0ede);try{_0x4c0ede[_0x2ebb48(0x258)]?.[_0x2ebb48(0x1c9)+_0x2ebb48(0x230)+_0x2ebb48(0x248)](_0x2ebb48(0x30a)),_0x4c0ede[_0x2ebb48(0x2a7)](_0x2ebb48(0x339)+'L');}catch{}}function scheduleFfmpegRestart(_0x522d8c){const _0x3b1ffe=_0x1e0c05;if(suppressFfmpegRestart)return;if(!state[_0x3b1ffe(0x33a)+_0x3b1ffe(0x1af)]||!streamClients[_0x3b1ffe(0x2a4)])return;const {delayMs:_0x78eb01,nextBackoffMs:_0x316e15,probe:_0x5cd094}=nextFfmpegRestartDelay({'gotData':_0x522d8c,'backoffMs':ffmpegBackoffMs});ffmpegBackoffMs=_0x316e15,ffmpegNeedProbe=_0x5cd094,console[_0x3b1ffe(0x1c5)](_0x3b1ffe(0x27f)+'g]\x20exi'+_0x3b1ffe(0x2db)+_0x3b1ffe(0x1dc),_0x78eb01,'ms',_0x5cd094?_0x3b1ffe(0x264):'hot'),clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=setTimeout(()=>{ffmpegRestartTimer=null,void resumeSharedFfmpeg();},_0x78eb01);}async function resumeSharedFfmpeg(){const _0x2baeed=_0x1e0c05;if(suppressFfmpegRestart||!state['connec'+_0x2baeed(0x1af)]||!streamClients[_0x2baeed(0x2a4)])return;if(ffmpegNeedProbe){const _0x452cad=await probeTcp(state[_0x2baeed(0x2fa)+'me'],rtspPortOf(state[_0x2baeed(0x23d)+'i']),RTSP_TCP_PROBE_MS);if(suppressFfmpegRestart||!state[_0x2baeed(0x33a)+_0x2baeed(0x1af)]||!streamClients[_0x2baeed(0x2a4)])return;if(!_0x452cad){console['warn'](_0x2baeed(0x27f)+_0x2baeed(0x26e)+'p\x20clos'+'ed',state[_0x2baeed(0x2fa)+'me'],rtspPortOf(state['rtspUr'+'i'])),scheduleFfmpegRestart(![]);return;}ffmpegNeedProbe=![];}await ensureSharedFfmpeg(sharedTranscode);}async function ensureSharedFfmpeg(_0xf19bc4){const _0x491647=_0x1e0c05,_0x5bb8f3=!!_0xf19bc4;if(sharedFfmpeg&&!sharedFfmpeg[_0x491647(0x379)]){if(sharedTranscode===_0x5bb8f3)return;console[_0x491647(0x2c0)](_0x491647(0x27f)+_0x491647(0x354)+_0x491647(0x324),sharedTranscode?_0x491647(0x209):_0x491647(0x203),'->',_0x5bb8f3?_0x491647(0x209):_0x491647(0x203)),killSharedFfmpeg();}const _0x5a9748=++ffmpegEpoch;if(ffmpegNeedProbe){const _0x2efc5d=await probeTcp(state[_0x491647(0x2fa)+'me'],rtspPortOf(state[_0x491647(0x23d)+'i']),RTSP_TCP_PROBE_MS);if(_0x5a9748!==ffmpegEpoch)return;if(!_0x2efc5d){console[_0x491647(0x1c5)](_0x491647(0x27f)+_0x491647(0x2be)+_0x491647(0x322)+'n,\x20rts'+_0x491647(0x2f8)+_0x491647(0x1e5)+'e'),scheduleFfmpegRestart(![]);return;}ffmpegNeedProbe=![];}let _0x3129c;try{_0x3129c=await ensureFfmpeg();}catch(_0x4acf33){console[_0x491647(0x1c5)](_0x491647(0x27f)+'g]',_0x4acf33[_0x491647(0x26a)+'e']);return;}if(_0x5a9748!==ffmpegEpoch)return;if(sharedFfmpeg&&!sharedFfmpeg[_0x491647(0x379)]){if(sharedTranscode===_0x5bb8f3)return;killSharedFfmpeg();}if(!state[_0x491647(0x23d)+'i']||!state[_0x491647(0x33a)+'ted'])return;const _0x445e03=injectRtspAuth(state[_0x491647(0x23d)+'i'],state['userna'+'me'],state[_0x491647(0x2f1)+'rd']),_0x445593=/hevc|h265/[_0x491647(0x299)](state[_0x491647(0x291)+'ng']),_0x19235e=ffmpegRtspInputArgs(_0x445e03,{'hevc':_0x445593,'oneshot':![]});if(_0x5bb8f3)_0x19235e['push'](_0x491647(0x242),_0x491647(0x229)+'4',_0x491647(0x2d6)+'t',_0x491647(0x24a)+_0x491647(0x2a1),_0x491647(0x25b),_0x491647(0x2c2)+_0x491647(0x309),'-profi'+_0x491647(0x1b0),_0x491647(0x255)+'ne','-pix_f'+'mt',_0x491647(0x331)+'p',_0x491647(0x2da),'0','-g','15',_0x491647(0x31f),_0x491647(0x35a)+_0x491647(0x345)+_0x491647(0x282)+'e\x5c,I)+'+_0x491647(0x3ac)+_0x491647(0x3a1)+_0x491647(0x294)+_0x491647(0x329)+_0x491647(0x3a5)+_0x491647(0x1c3)+_0x491647(0x1db)+_0x491647(0x238)+_0x491647(0x210)+_0x491647(0x296));else{_0x19235e[_0x491647(0x1ee)](_0x491647(0x242),'copy');const _0x1c0b41=bitstreamFilter(state[_0x491647(0x291)+'ng']);if(_0x1c0b41)_0x19235e[_0x491647(0x1ee)](_0x491647(0x330),_0x1c0b41);}_0x19235e[_0x491647(0x1ee)]('-f','mpegts','-muxde'+_0x491647(0x214),'0',_0x491647(0x2a5)+_0x491647(0x1ef),'0','-flush'+_0x491647(0x317)+'ts','1',_0x491647(0x39b));if(_0x5a9748!==ffmpegEpoch)return;sharedTranscode=_0x5bb8f3;const _0x564822=spawn(_0x3129c,_0x19235e,{'stdio':[_0x491647(0x32b),_0x491647(0x383),_0x491647(0x383)]});sharedFfmpeg=_0x564822,ffmpegProcs[_0x491647(0x1ff)](_0x564822);let _0x86a70b=![];console[_0x491647(0x2c0)]('[ffmpe'+'g]',_0x5bb8f3?_0x491647(0x33e)+_0x491647(0x297)+'64':_0x491647(0x24f)+(state['encodi'+'ng']||_0x491647(0x3ab)+'n'),state['hostna'+'me']),_0x564822[_0x491647(0x258)]['on']('data',_0x3c7ae9=>{const _0x2d0ba0=_0x491647;!_0x86a70b&&(_0x86a70b=!![],ffmpegNeedProbe=![],console[_0x2d0ba0(0x2c0)](_0x2d0ba0(0x27f)+_0x2d0ba0(0x27d)+_0x2d0ba0(0x265)+'es',_0x3c7ae9[_0x2d0ba0(0x31a)])),ffmpegBackoffMs=FFMPEG_BACKOFF_MIN_MS,broadcastTs(_0x3c7ae9);}),_0x564822['stderr']['on'](_0x491647(0x30a),_0x18350c=>{const _0x30fe41=_0x491647,_0x34704d=String(_0x18350c||'')[_0x30fe41(0x1f3)]();if(_0x34704d)console[_0x30fe41(0x1c5)]('[ffmpe'+'g]',_0x34704d);}),_0x564822['on']('error',_0xbfd4c4=>{const _0x333207=_0x491647;console[_0x333207(0x1c5)](_0x333207(0x27f)+_0x333207(0x37c)+'wn',_0xbfd4c4['messag'+'e']);}),_0x564822['on'](_0x491647(0x3af),_0xab90bb=>{const _0x3015f3=_0x491647;ffmpegProcs['delete'](_0x564822);if(sharedFfmpeg===_0x564822)sharedFfmpeg=null;console[_0x3015f3(0x1c5)]('[ffmpe'+_0x3015f3(0x3aa)+'t',_0xab90bb,_0x3015f3(0x30a),_0x86a70b,_0x3015f3(0x1e6)+'s',streamClients[_0x3015f3(0x2a4)]),scheduleFfmpegRestart(_0x86a70b);});}function startMpegtsStream(_0x407266,_0x57d5d9){const _0x11aed9=_0x1e0c05,_0x5e8050=shouldTranscode(String(_0x407266[_0x11aed9(0x34f)]?.['codec']||'')===_0x11aed9(0x209));_0x407266[_0x11aed9(0x2bd)+_0x11aed9(0x2b0)](0x0),_0x57d5d9[_0x11aed9(0x2bd)+'eout'](0x0),_0x407266[_0x11aed9(0x2d8)]?.[_0x11aed9(0x2bd)+_0x11aed9(0x2b0)](0x0),_0x57d5d9['socket']?.[_0x11aed9(0x2bd)+_0x11aed9(0x2b0)](0x0),_0x407266[_0x11aed9(0x2d8)]?.['setNoD'+_0x11aed9(0x22c)]?.(!![]),_0x57d5d9[_0x11aed9(0x2d8)]?.[_0x11aed9(0x2d4)+_0x11aed9(0x22c)]?.(!![]),_0x57d5d9[_0x11aed9(0x244)+'der'](_0x11aed9(0x279)+_0x11aed9(0x23b),'video/'+_0x11aed9(0x275)),_0x57d5d9[_0x11aed9(0x244)+_0x11aed9(0x2af)]('Cache-'+'Contro'+'l','no-sto'+_0x11aed9(0x394)+_0x11aed9(0x276)+_0x11aed9(0x3b5)+_0x11aed9(0x253)+_0x11aed9(0x286)),_0x57d5d9[_0x11aed9(0x244)+_0x11aed9(0x2af)](_0x11aed9(0x1bf)+_0x11aed9(0x1b4),_0x11aed9(0x29d)+'live'),_0x57d5d9['setHea'+_0x11aed9(0x2af)](_0x11aed9(0x28e)+_0x11aed9(0x298)+_0x11aed9(0x3bb),'no');if(typeof _0x57d5d9[_0x11aed9(0x262)+_0x11aed9(0x2d0)]===_0x11aed9(0x3a7)+'on')_0x57d5d9[_0x11aed9(0x262)+_0x11aed9(0x2d0)]();streamClients[_0x11aed9(0x1ff)](_0x57d5d9),clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=null,ensureSharedFfmpeg(_0x5e8050);let _0xd9a98a=![];const _0x5893bc=()=>{const _0x1bc958=_0x11aed9;if(_0xd9a98a)return;_0xd9a98a=!![],streamClients[_0x1bc958(0x344)](_0x57d5d9);try{if(!_0x57d5d9[_0x1bc958(0x2d9)+_0x1bc958(0x1fe)+'d'])_0x57d5d9[_0x1bc958(0x1c4)]();}catch{}streamClients[_0x1bc958(0x2a4)]===0x0&&(clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=setTimeout(()=>{const _0x15bbba=_0x1bc958;ffmpegIdleTimer=null;if(streamClients[_0x15bbba(0x2a4)]===0x0)killSharedFfmpeg();},0xfa0));};_0x407266['on'](_0x11aed9(0x37d),_0x5893bc),_0x57d5d9['on'](_0x11aed9(0x37d),_0x5893bc);}export function registerCameraRoutes(_0x58dc7f,{getConfig:_0x176dd6,saveConfig:_0x1e06e1}){const _0x4801aa=_0x1e0c05;_0x58dc7f[_0x4801aa(0x2eb)](_0x4801aa(0x273)+_0x4801aa(0x21f)+_0x4801aa(0x1eb)+'er',async(_0x1ce583,_0xb1858c)=>{const _0x291294=_0x4801aa;try{const _0x3dc897=await discover();onboardAvailable()&&_0x3dc897[_0x291294(0x20a)+'t']({'kind':_0x291294(0x213)+'d','hostname':'onboar'+'d','port':0x157c,'path':_0x291294(0x1c2)+_0x291294(0x1f0)+_0x291294(0x1b6),'name':_0x291294(0x212),'hardware':_0x291294(0x300)}),_0xb1858c[_0x291294(0x260)]({'devices':_0x3dc897});}catch(_0x495ae8){_0xb1858c[_0x291294(0x25c)](0x190)[_0x291294(0x260)]({'message':cameraError(_0x495ae8,_0x291294(0x328)+'败')});}}),_0x58dc7f['get'](_0x4801aa(0x273)+_0x4801aa(0x21f)+_0x4801aa(0x25c),(_0x109eee,_0x538f23)=>{const _0x3f9f4b=_0x4801aa,_0x3029b2=_0x176dd6();if(stripOnboardCameraConfig(_0x3029b2))_0x1e06e1();const _0x842e28=_0x3029b2[_0x3f9f4b(0x231)]||{};_0x538f23['json']({...publicState(),'saved':{'source':_0x842e28['source']||'','hostname':_0x842e28[_0x3f9f4b(0x2fa)+'me']||'','port':_0x842e28['port']||0x50,'path':_0x842e28[_0x3f9f4b(0x250)]||_0x3f9f4b(0x372)+_0x3f9f4b(0x389)+_0x3f9f4b(0x3b8)+_0x3f9f4b(0x1c6),'username':_0x842e28['userna'+'me']||'','password_set':!!_0x842e28[_0x3f9f4b(0x2f1)+'rd']}});}),_0x58dc7f[_0x4801aa(0x2eb)]('/api/c'+'amera/'+'connec'+'t',async(_0x123b3a,_0x12ccc6)=>{const _0x2d291e=_0x4801aa;try{const _0x58e772=_0x176dd6(),_0x2e176a=_0x58e772[_0x2d291e(0x231)]||{},_0x5a4d15=_0x123b3a[_0x2d291e(0x3ba)]?.['source']===_0x2d291e(0x213)+'d'||_0x123b3a['body']?.[_0x2d291e(0x3b6)]===_0x2d291e(0x213)+'d'||_0x123b3a[_0x2d291e(0x3ba)]?.['hostna'+'me']===_0x2d291e(0x213)+'d';if(_0x5a4d15){if(stripOnboardCameraConfig(_0x58e772))_0x1e06e1();_0x12ccc6['status'](0x190)[_0x2d291e(0x260)]({'message':'板载画面暂不'+'支持'});return;}const _0x3459df=_0x123b3a[_0x2d291e(0x3ba)]?.[_0x2d291e(0x2f1)+'rd']||_0x2e176a[_0x2d291e(0x2f1)+'rd']||'',_0x352eb9=await connectCamera({'hostname':_0x123b3a[_0x2d291e(0x3ba)]?.['hostna'+'me']||_0x2e176a[_0x2d291e(0x2fa)+'me'],'port':_0x123b3a[_0x2d291e(0x3ba)]?.[_0x2d291e(0x2c7)]||_0x2e176a[_0x2d291e(0x2c7)],'username':_0x123b3a[_0x2d291e(0x3ba)]?.[_0x2d291e(0x367)+'me']||_0x2e176a[_0x2d291e(0x367)+'me'],'password':_0x3459df,'path':_0x123b3a[_0x2d291e(0x3ba)]?.[_0x2d291e(0x250)]||_0x2e176a[_0x2d291e(0x250)]});_0x58e772[_0x2d291e(0x231)]={'source':'onvif','hostname':state[_0x2d291e(0x2fa)+'me'],'port':state['port'],'path':state[_0x2d291e(0x250)],'username':state[_0x2d291e(0x367)+'me'],'password':state[_0x2d291e(0x2f1)+'rd']},_0x1e06e1(),_0x12ccc6['json'](_0x352eb9);}catch(_0x4875a0){_0x12ccc6[_0x2d291e(0x25c)](0x190)[_0x2d291e(0x260)]({'message':cameraError(_0x4875a0,_0x2d291e(0x364)+'败')});}}),_0x58dc7f[_0x4801aa(0x2eb)]('/api/c'+_0x4801aa(0x21f)+_0x4801aa(0x285)+_0x4801aa(0x391),(_0xc62ca,_0x42183f)=>{const _0x2643b8=_0x4801aa;_0x42183f[_0x2643b8(0x260)](disconnectCamera());}),_0x58dc7f[_0x4801aa(0x247)](_0x4801aa(0x273)+'amera/'+_0x4801aa(0x2cb)+'ot',async(_0x17b64c,_0x196c83)=>{const _0x6fd57b=_0x4801aa;try{const _0x5be041=await getSnapshot();if(!_0x5be041?.[_0x6fd57b(0x31a)]){_0x196c83[_0x6fd57b(0x25c)](0xcc)[_0x6fd57b(0x1c4)]();return;}_0x196c83['setHea'+'der'](_0x6fd57b(0x279)+_0x6fd57b(0x23b),'image/'+_0x6fd57b(0x338)),_0x196c83['setHea'+_0x6fd57b(0x2af)](_0x6fd57b(0x2ed)+_0x6fd57b(0x26c)+'l',_0x6fd57b(0x336)+'re'),_0x196c83[_0x6fd57b(0x351)](_0x5be041);}catch(_0x4682e5){_0x196c83[_0x6fd57b(0x25c)](0x190)[_0x6fd57b(0x260)]({'message':cameraError(_0x4682e5,_0x6fd57b(0x1b3))});}}),_0x58dc7f[_0x4801aa(0x247)](_0x4801aa(0x273)+_0x4801aa(0x21f)+_0x4801aa(0x37b),async(_0x2a3915,_0x275153)=>{const _0x3c180b=_0x4801aa;if(!state[_0x3c180b(0x33a)+_0x3c180b(0x1af)]){_0x275153[_0x3c180b(0x25c)](0x190)[_0x3c180b(0x260)]({'message':_0x3c180b(0x25d)+_0x3c180b(0x1d0)+'头'});return;}if(state[_0x3c180b(0x23d)+'i']){startMpegtsStream(_0x2a3915,_0x275153);return;}if(state[_0x3c180b(0x2dc)+'i'])try{const _0x429126=await openCameraHttp(state[_0x3c180b(0x2dc)+'i'],state[_0x3c180b(0x367)+'me'],state['passwo'+'rd'],0x1f40);_0x275153[_0x3c180b(0x244)+_0x3c180b(0x2af)](_0x3c180b(0x279)+'t-Type',_0x429126[_0x3c180b(0x314)+_0x3c180b(0x2ea)]||_0x3c180b(0x2c4)+'art/x-'+'mixed-'+_0x3c180b(0x341)+'e;\x20bou'+_0x3c180b(0x2e5)+_0x3c180b(0x293)),_0x275153[_0x3c180b(0x244)+_0x3c180b(0x2af)](_0x3c180b(0x2ed)+_0x3c180b(0x26c)+'l',_0x3c180b(0x336)+_0x3c180b(0x394)+_0x3c180b(0x276)+',\x20must'+'-reval'+_0x3c180b(0x286)),_0x275153[_0x3c180b(0x244)+_0x3c180b(0x2af)](_0x3c180b(0x1bf)+_0x3c180b(0x1b4),_0x3c180b(0x29d)+_0x3c180b(0x206)),_0x275153[_0x3c180b(0x244)+_0x3c180b(0x2af)](_0x3c180b(0x28e)+_0x3c180b(0x298)+_0x3c180b(0x3bb),'no');const _0x5998d8=()=>{const _0x16101f=_0x3c180b;try{_0x429126[_0x16101f(0x2a2)][_0x16101f(0x39f)+'y']();}catch{}try{_0x429126[_0x16101f(0x215)][_0x16101f(0x39f)+'y']();}catch{}};_0x2a3915['on'](_0x3c180b(0x37d),_0x5998d8),_0x275153['on']('close',_0x5998d8),_0x429126[_0x3c180b(0x215)]['on'](_0x3c180b(0x393),_0x5998d8),_0x429126[_0x3c180b(0x215)][_0x3c180b(0x383)](_0x275153);return;}catch(_0x1c9158){console[_0x3c180b(0x1c5)]('[camer'+_0x3c180b(0x361)+_0x3c180b(0x326),_0x1c9158?.[_0x3c180b(0x26a)+'e']||_0x1c9158);}if(!state[_0x3c180b(0x2cb)+_0x3c180b(0x22e)]){_0x275153[_0x3c180b(0x25c)](0x190)[_0x3c180b(0x260)]({'message':_0x3c180b(0x21e)+'有可播放的预'+'览流'});return;}_0x275153[_0x3c180b(0x244)+'der'](_0x3c180b(0x279)+_0x3c180b(0x23b),_0x3c180b(0x2c4)+_0x3c180b(0x2ff)+'mixed-'+_0x3c180b(0x341)+_0x3c180b(0x1f1)+_0x3c180b(0x2e5)+_0x3c180b(0x293)),_0x275153['setHea'+'der'](_0x3c180b(0x2ed)+_0x3c180b(0x26c)+'l',_0x3c180b(0x336)+_0x3c180b(0x394)+_0x3c180b(0x276)+_0x3c180b(0x3b5)+_0x3c180b(0x253)+_0x3c180b(0x286)),_0x275153[_0x3c180b(0x244)+_0x3c180b(0x2af)](_0x3c180b(0x1ea),_0x3c180b(0x2ba)+'he'),_0x275153['setHea'+_0x3c180b(0x2af)](_0x3c180b(0x1bf)+_0x3c180b(0x1b4),_0x3c180b(0x29d)+_0x3c180b(0x206)),_0x275153['setHea'+'der'](_0x3c180b(0x28e)+_0x3c180b(0x298)+_0x3c180b(0x3bb),'no');let _0x12a3ae=![];const _0x147d00=()=>{_0x12a3ae=!![];};_0x2a3915['on'](_0x3c180b(0x37d),_0x147d00),_0x275153['on']('close',_0x147d00);const _0x19283a=state['source']===_0x3c180b(0x213)+'d';_0x19283a&¬eOnboardPreviewClient(0x1);try{await runOnboardPreviewLoop({'getFrame':()=>getSnapshot()[_0x3c180b(0x21a)](()=>null),'writeFrame':async _0x478478=>{const _0x41dcd6=_0x3c180b;if(_0x12a3ae||!state[_0x41dcd6(0x33a)+_0x41dcd6(0x1af)])return![];try{return _0x275153[_0x41dcd6(0x2cd)](_0x41dcd6(0x334)+_0x41dcd6(0x3a0)+_0x41dcd6(0x2b9)+'ype:\x20i'+_0x41dcd6(0x303)+'peg\x0d\x0aC'+_0x41dcd6(0x2ac)+_0x41dcd6(0x374)+_0x41dcd6(0x2fd)+_0x478478[_0x41dcd6(0x31a)]+_0x41dcd6(0x36d)),_0x275153['write'](_0x478478),_0x275153[_0x41dcd6(0x2cd)]('\x0d\x0a'),!![];}catch{return![];}},'isOpen':()=>!_0x12a3ae&&state[_0x3c180b(0x33a)+_0x3c180b(0x1af)],'delayMs':_0x19283a?ONBOARD_STREAM_INTERVAL_MS:0x0,'emptyDelayMs':_0x19283a?ONBOARD_EMPTY_RETRY_MS:0x12c});}finally{_0x19283a&¬eOnboardPreviewClient(-0x1);if(!_0x275153[_0x3c180b(0x2d9)+_0x3c180b(0x1fe)+'d'])_0x275153[_0x3c180b(0x1c4)]();}}),_0x58dc7f['post']('/api/c'+_0x4801aa(0x21f)+_0x4801aa(0x390),async(_0x252f14,_0x130cf8)=>{const _0x4ab090=_0x4801aa;try{const _0x559b56=String(_0x252f14[_0x4ab090(0x3ba)]?.[_0x4ab090(0x320)]||'');_0x130cf8[_0x4ab090(0x260)](await ptzMove(_0x559b56,{'press':_0x252f14[_0x4ab090(0x3ba)]?.['press']}));}catch(_0x417767){_0x130cf8['status'](0x190)[_0x4ab090(0x260)]({'message':cameraError(_0x417767,_0x4ab090(0x221))});}});}
|
|
1
|
+
const _0x432854=_0x8f68;(function(_0x8b054b,_0x1204e6){const _0x2aa5bc=_0x8f68,_0x2bb9a4=_0x8b054b();while(!![]){try{const _0x29ef3c=parseInt(_0x2aa5bc(0x20d))/0x1+-parseInt(_0x2aa5bc(0x15a))/0x2*(parseInt(_0x2aa5bc(0x160))/0x3)+parseInt(_0x2aa5bc(0x318))/0x4*(-parseInt(_0x2aa5bc(0x1fe))/0x5)+parseInt(_0x2aa5bc(0x21f))/0x6+parseInt(_0x2aa5bc(0x27d))/0x7*(-parseInt(_0x2aa5bc(0x207))/0x8)+-parseInt(_0x2aa5bc(0x31f))/0x9+parseInt(_0x2aa5bc(0x2d2))/0xa*(parseInt(_0x2aa5bc(0x24f))/0xb);if(_0x29ef3c===_0x1204e6)break;else _0x2bb9a4['push'](_0x2bb9a4['shift']());}catch(_0x4e6e28){_0x2bb9a4['push'](_0x2bb9a4['shift']());}}}(_0x4e53,0xc3757));import _0x50fd9d from'node:crypto';import _0x5cb1aa from'node:http';import _0x4b0e3b from'node:https';import _0x18f084 from'node:net';import{spawn}from'node:child_process';import{createRequire}from'node:module';import{ensureFfmpeg}from'./ffmpeg.mjs';import{clampPtzSpeed,onvifVectorForAction,payloadForAction,payloadForNudge,payloadForVector}from'./gimbal-control.mjs';import{ONBOARD_DISARM_TIMEOUT_MS,ONBOARD_EMPTY_RETRY_MS,ONBOARD_FETCH_TIMEOUT_MS,ONBOARD_STREAM_INTERVAL_MS,ONBOARD_WARMUP_GAP_MS,ONBOARD_WARMUP_TRIES,runOnboardPreviewLoop}from'./onboard-preview.mjs';function _0x4e53(){const _0x22e562=['zMXVB3i','zv9Zzxj2','mtC2CMfWyKvN','l2f4AxmT','zxzFC2vS','C29JA2v0','CgfZC3DV','yv0GzgLZ','AhjLzG','lxbYB2jL','BwfNzs9Q','Cg9YDa','zxjYB3i','D3jPDgfI','r0vu','BMrAB29T','jMXVz2LU','Dfr5Cgu','CNKGC2fT','Aw1Hz2uY','Aw9U','l2fWAs9J','yv0GBgL2','lxbYzxnL','zvvYBa','y2fTzxjH','DcbPBG','yM9KEq','DgnW','zwn0zwrF','lxbYB2zP','5lUo6kEg6Akr5Rwb5OIQ5BIN','Cw9W','zMLYBxDH','ChvIBgLZ','Ag9ZDg5H','Ahr0Cca','y29Kzwm','zw91Da','EMvKDxjH','CMuSig5V','C2nOzw1L','zNvUy3rP','tgfIzwW','yxrJAa','sfruua','5P6I44cn6Ag16ywn572U5BM2','Bgu6DG','mZvZrvLUvuO','CMvX','BMrHCNK9','DgvUy3K','AwnLqMfZ','B3jTyxrP','yxv0Aa','Ahr0CdOV','6l+y5RkH5PYj6l+E5O6L5Pge','CMvWBgfJ','Bwq1','y292zxiG','C3rKB3v0','CY8YmdiV','BMrqyw5u','CMv0CNK9','C2nHBgu9','BMfTzq','AhrTBa','lxzM','C29YDa','5PYQ5BYa5Ps+ifbu','BgvUz3rO','l2rLDMLJ','q29Kzq','BMvJDa','ztSGyM91','C25HChnO','CNKGzMfP','5A+544cc6yoO5yIg5Pge5yop','AgfUBMvS','lw11EhbY','zxHPDa','DxjP','B2DPBNvZ','mc9TANbL','zYWGkI8Q','u0Lhs0Lm','AgvHzgvY','v2L0Aa','Dc1uExbL','B3iGy2fW','yv0GCMv0','lYHBxLXZ','lMnNAt9S','6k+35ywi6l+E5O6L5Pge5yop','CcbMCMfT','Aw5JBhvK','5lIn5PsV5OYb55Qe5lQr5y+W','Cgf0Aa','w2nHBwvY','CgLWzq','lxr1BMu','zgv2AwnL','D3jPDgu','AxnbCNjH','5P2/6l2955s76z2I5PQc5lIn','5Pge5yop5As05RkH5PYj6l+u','CKnHC2u','AwyGC25H','DxjU','C2nVCgvZ','Aw1Hz2uV','DhjHBNnW','CMvHBg0','CY8XmdiV','xsbZBMfW','ChvZAa','BNrszwzL','Bw9KzwW','BM9Uy2u','zvrVA2vU','ANnVBG','y3rFDhLW','zwfKzxjZ','Aw4VAgKZ','uhjHz21H','y2f0zq','A2LSBgvK','y2fWywjP','6l+E5O6L5Pge5yop5As05AsX','zw8Uy2DP','A2vLCc1H','zgLZy29U','5As06kAb5zYO572r6Ag16yEm','mteXnJuZmgPOqLDuvG','C3rHDhvZ','B3rvCMK','Dc10ExbL','yxrJAgvZ','BgL0AwvZ','Bwu9iG','yv0GCNrZ','C2v0sgvH','C3bSAwnL','DgHT','C2vUza','BMDL','l3zPzgvV','uLrqvfmS','C2v0vgLT','5OIQ5zU+6zYa6kAb6lsM5y+3','z2vUChrZ','y2f0y2G','CMvXDwvZ','C29Tzq','yw1LCMeV','AM9PBG','l2nNAs1I','ANbLzW','y29UBMvJ','DMLKzw8V','Awv3','D2LKDgG','lwjZzJP2','C3vIyxjY','zgvSzxrL','zMLSDgvY','AgvSza','z10GzxHP','5lQr5y+W6ycA6ygt5PYQ5BcX','Ag9ZDa','C2L6zq','BwL4zwqT','B25IB2fY','BwLU','B2rL','zf9WCMv2','CY8XmdmV','vfmTu1rb','zw5KCg9P','C3rVCa','zY92AwrL','u2nVCgvZ','C2u9iG','CMfUzg9T','BMvJDcbM','AwnL','BgvfBMrL','C3rKzxjY','C2TPCfbY','ywn0AxzL','zsbWAxbL','5PYj5lQr5y+W77Ym5OIwia','CgfZpq','AeDPBwjH','vxjP','CMvZCg9U','CMvHBg09','lwnHy2HL','ywrK','y3r1CMvY','lxrOCMvH','BwPWzwC','BNvKz2u6','mtuXoda0mfDmv1jvta','qwDLBNq','5lIn5lIkia','ihbYB2jL','zxjPBMC','BM8TC3rV','lMnNAt91','mta5mdmXmdrptuzxBuS','zxzPzxDi','lwzMBgfN','D3D3lwf1','C2vHCMnO','t252AwyG','B25Jzq','t1yYnJqW','yxn0','C3rYzwfT','5P2/6l295Pge5yop5As06l+E','5yQO6yEn6l+E77Ym5OIw54k5','xsSP','AdOG','lwXVz2XL','wefKzhjZ','z2v0','zw5K','C2vSzwn0','wc1by2nL','BgLIEdi2','Dw5RBM93','tMv0D29Y','BNzPzIdMNym','mJuXmtHNy21Qyve','l1n0CMvH','CxvLCNK','CMvJDa','DgHLBG','mJaWmdaW','mZbTtLvmt3O','ywrKCMvZ','ntaWmdaW','DhjPBq','y29UDgLU','B25SEvnL','yv0Gy29U','lxj0C3bF','zgf0yq','Aw5KzxHp','ChnOB3rv','D2fYBG','BgL2zurP','yxjYyxLc','z2v0rgv2','zsbHDhrL','BgL2zq','Aw5MBW','zgvY','BwLUzY9J','Dw5ZAgLM','lw11EgrL','qNL0zxm','CNrZCfvY','Bg9N','zwXVywq','u291CMnL','AgfYzhDH','Agv4','Chr6','B2jQzwn0','Agv2yW','BM9Uy2u9','Dg9tDhjP','y2HHBgXL','y2XVC2u','pwvXkhbP','BMfUkhbY','C3bSAxq','B3zLCNK','y2DPl21Q','5AsX6lsL77Yi','AwX0','5RkH5PYjifjuuW','ChjVyMu','uLrtua','6l+z5y+W5Pge5yop5As05RkH','q29UDhjV','C291CMnL','ywXS','DgnO','rhjHAw4','AwnLq2fW','B2XK','CgfKu3rH','w29UDMLM','ucdLNldLNya','ls1MCMfT','Bwf4','lwm6DG','rw5JB2rP','BNzPzG','y29WEq','DxnLCM5H','x3bHy2TL','5Pge5yop5As05PQc5PE256A7','zq0kq29U','Aw4VBwPW','l2LWy2fT','BwfUDwzH','l29UDMLM','C2XPy2u','BwPWzW','CMvZB2X2','tu9tu++8JoIVTW','B3bHCxvL','BwvZC2fN','Cgf0Ag5H','AwrHDgu','z2uVANbL','AwDUB3jL','zgvZDhjV','lM9UDMLM','EMvYB2XH','DMvS','EM9VBq','BxbLz3rZ','y2XLyxi','CgvNdqPd','A2LSBa','l0Ltqvbj','Ahr0CfbY','y2HHBM5L','5OMR5O+p5Pge5yop5As05AsX','zxzPzxC','CMvTB3zL','Adi2na','q29UBMvJ','ue9tva','lwfUywX5','DgLVBG','5OIQ5zU+5zYW5z2a6lEZ6l2S','AxzLig1Q','lxjLDMfS','5OIQ5zU+6l+h5AsN','DMLKzw8U','dqOncG','B3j0','BMv4yG','C2v0tM9e','ywLS','Ahr0Chm6','Bxb0','DgLTzw91','DgHTpq','Cw9Wpq','ChjVzMLS','BwvKAwfv','Dw91C01V','zwXHEq','xsbYDhnW','y29Uy2f0','luXLBMD0','BM90kgLZ','BY5Jz2K/','DcKPlhnL','DhjHBNnJ','zsWGAw1H','yxj0l3GT','5P2/6l295Pge5yop5As0','5ywi5zYO6k6+5Ash5O6L5ywL','AgfZ','BxvSDgLW','ChjLC3m','lxbPEf9M','ChjVyMvn','AwnLsw5M','zwfTvxjP','ChjVDg9J','6l+E5O6L5Pge5yop5As0','C2uGChjL','z2LTyMfS','DwX0CMfM','DgvK','z10GC3DP','zgLZy292','C3rHCNrZ','qxv0Ag9Y','6k+35AgR5yAz5Pge5yop5As0','5zUE5zU+54Mh','CZP2','y25VBMnL','DgvUzxjZ','C3rYAw5N','q29UDgvU','q2fJAguT','ufrA','C2HVDa','nvbtvgDoDa','jNb3zd0','6k+75y+w55s76z2I5AsX6lsL','zNjVBq','Eg1S','Bg9JyxrP','lwfU','CMvUy2u','ys9ZBMfW','mtuZnZe2mgPeyNrvsa','ExbLoIbP','l2nHBwvY','lxe6DG','Bgf0Aw4X','qMfZAwmG','ndu4otGXz2nMz3j2','DgvZDa','5PYj5y+V5PkT5Ps+55Qe6Ake','zMLUywXS','lcbTDxn0','otyWoI0Y','Bd0XjNn1','BgL2zvvY','Bwf0y2G','lwzYyw1L','yv0GBMf0','yMfUBMvY','lwHPzgvF','B2rLigGY','zMX1C2Hi','DgHLBNrP','DMLLDYbM','AxPHDgLV','nZm5ndCWnKLpvuflqq','BgvozwvK','sgfZAa','Dg9mB3DL','Dhb0CZ1q','y29UDgvU','C2HVDcb1','w2zMBxbL','zsbZzwfY','CMvwzxjZ','yNr5Cgu9','y29WEsa','BMm9','5lQr5y+W5O6N5yI25AsX6lsL','igzHAwW','CMvZDw1L','zgLNzxn0','CMvZDgfY','yv0GDgnW','yMfZzty0','Bc1cDwzM','BM93','DxjPpsi','lwjM','nteWl21Q','6yEn5PAW6l+E5O6L44cc','B3v0','z2v0u25H','CgCVDMLK','A2LUza','5OMt5BYaie9UDG','yMfZzwXP','Cg9ZDa','BNvKz2u','EgfKzhjZ','B252AwyV','xc5VCMCV','ywXNB3jP','lwzSDxnO','C3qGyNL0','B252Awy','5lIQ6lsM5y+35BYaie8','yMfJAYbV','zw5JB2rP','CMvZ','zsbMywXS'];_0x4e53=function(){return _0x22e562;};return _0x4e53();}const require=createRequire(import.meta.url),{Cam,Discovery}=require(_0x432854(0x242)+'promis'+'es');let lastOnboardJpeg=null,onboardFetchInFlight=null,onboardPreviewClients=0x0;const PTZ_TIMEOUT_MS=0x2bc,ONVIF_NUDGE_MS=0xb4;let currentCam=null,ptzBusy=![],snapshotTail=Promise[_0x432854(0x1a9)+'e']();const ffmpegProcs=new Set(),streamClients=new Set();let sharedFfmpeg=null,sharedTranscode=![],ffmpegIdleTimer=null,ffmpegRestartTimer=null,ffmpegBackoffMs=0x320,previewHoldDepth=0x0,suppressFfmpegRestart=![];const httpAgent=new _0x5cb1aa[(_0x432854(0x319))]({'keepAlive':![],'maxSockets':0x2}),httpsAgent=new _0x4b0e3b[(_0x432854(0x319))]({'keepAlive':![],'maxSockets':0x2,'rejectUnauthorized':![]}),digestState={'challenge':null,'nc':0x1},state={'connected':![],'source':'','sourceLabel':'','hostname':'','port':0x50,'path':'/onvif'+_0x432854(0x294)+_0x432854(0x24e)+'ice','username':'','password':'','ptz':![],'snapshotUri':'','rtspUri':'','encoding':'','liveUri':'','liveDirect':'','info':null};let cameraHooks={};export function setCameraHooks(_0x3df75d){cameraHooks={...cameraHooks,..._0x3df75d};}function deviceCaps(){const _0x1c03ce=_0x432854,_0x481f6b=cameraHooks[_0x1c03ce(0x16e)+_0x1c03ce(0x194)+'s']?.()||{};return _0x481f6b&&typeof _0x481f6b===_0x1c03ce(0x17e)?_0x481f6b:{};}export function onboardAvailable(){const _0x1eddda=_0x432854;return deviceCaps()[_0x1eddda(0x2f9)+_0x1eddda(0x2fc)+_0x1eddda(0x2ed)]===!![]&&!!String(cameraHooks[_0x1eddda(0x16e)+_0x1eddda(0x281)+_0x1eddda(0x265)]?.()||'')[_0x1eddda(0x163)]();}export function gimbalAvailable(){const _0x251f08=_0x432854;return deviceCaps()[_0x251f08(0x1ed)]===!![];}export function stripOnboardCameraConfig(_0x1cb591){const _0x6553e6=_0x432854;if(!_0x1cb591?.[_0x6553e6(0x266)]||_0x1cb591[_0x6553e6(0x266)][_0x6553e6(0x190)]!==_0x6553e6(0x2f9)+'d')return![];const _0x5733cd={..._0x1cb591[_0x6553e6(0x266)]};return delete _0x5733cd[_0x6553e6(0x190)],_0x1cb591['camera']=_0x5733cd,!![];}function playModeOf(){const _0x331674=_0x432854;if(state['source']===_0x331674(0x2f9)+'d')return _0x331674(0x316);if(state['rtspUr'+'i'])return _0x331674(0x1b6);if(state[_0x331674(0x214)+'i'])return _0x331674(0x316);if(state[_0x331674(0x298)+_0x331674(0x2d4)])return _0x331674(0x298)+'ot';return'';}function publicState(){const _0x425e9d=_0x432854;return{'connected':state[_0x425e9d(0x2eb)+_0x425e9d(0x1ef)],'source':state[_0x425e9d(0x190)]||'','sourceLabel':state['source'+_0x425e9d(0x278)]||'','hostname':state[_0x425e9d(0x270)+'me'],'port':state[_0x425e9d(0x258)],'path':state[_0x425e9d(0x2ae)],'username':state['userna'+'me'],'password_set':!!state['passwo'+'rd'],'ptz':state['ptz']||gimbalAvailable(),'ptzKind':gimbalAvailable()&&state[_0x425e9d(0x190)]!==_0x425e9d(0x247)?_0x425e9d(0x1ed):state['ptz']?_0x425e9d(0x247):'','snapshot':!!state[_0x425e9d(0x298)+_0x425e9d(0x2d4)]||state[_0x425e9d(0x190)]===_0x425e9d(0x2f9)+'d','stream':!!(state['rtspUr'+'i']||state[_0x425e9d(0x214)+'i']||state['snapsh'+_0x425e9d(0x2d4)])||state['source']===_0x425e9d(0x2f9)+'d','playMode':playModeOf(),'encoding':state[_0x425e9d(0x24a)+'ng'],'liveDirect':state['liveDi'+_0x425e9d(0x15d)],'info':state[_0x425e9d(0x171)],'onboardAvailable':onboardAvailable(),'gimbalAvailable':gimbalAvailable()};}function parseScopes(_0x15acb2){const _0x5c78f8=_0x432854,_0x361a66=Array[_0x5c78f8(0x2b4)+'y'](_0x15acb2)?_0x15acb2['join']('\x20'):String(_0x15acb2||''),_0x3016d5=_0x2d323a=>{const _0x364efc=_0x5c78f8,_0x487595=_0x361a66[_0x364efc(0x215)](new RegExp('onvif:'+'//www\x5c'+_0x364efc(0x1b2)+_0x364efc(0x243)+_0x2d323a+(_0x364efc(0x2a8)+_0x364efc(0x32b)),'i'));if(!_0x487595)return'';try{return decodeURIComponent(_0x487595[0x1]['replac'+'e'](/_/g,'\x20'));}catch{return _0x487595[0x1];}};return{'name':_0x3016d5(_0x5c78f8(0x28e)),'hardware':_0x3016d5(_0x5c78f8(0x17b)+'re')};}function firstXAddr(_0x20c453){const _0x5b735a=_0x432854,_0x443461=Array[_0x5b735a(0x2b4)+'y'](_0x20c453)?_0x20c453[0x0]:_0x20c453,_0x1568a0=typeof _0x443461===_0x5b735a(0x1f9)?_0x443461:_0x443461?.[_0x5b735a(0x255)]||String(_0x443461||''),_0x48f58f=_0x1568a0['trim']()[_0x5b735a(0x186)](/\s+/)[0x0];if(!_0x48f58f)return null;try{return new URL(_0x48f58f);}catch{return null;}}function summarizeProbe(_0x1848e8,_0x367fe2){const _0x2fd63d=_0x432854,_0x2da6f0=_0x1848e8?.[_0x2fd63d(0x1e7)+_0x2fd63d(0x2d6)]?.[_0x2fd63d(0x1e7)+_0x2fd63d(0x279)]||_0x1848e8,_0x1ab75c=firstXAddr(_0x2da6f0?.[_0x2fd63d(0x151)]||_0x2da6f0?.[_0x2fd63d(0x241)]),_0x3ebcd6=_0x1ab75c?.[_0x2fd63d(0x270)+'me']||_0x367fe2?.[_0x2fd63d(0x161)+'s']||'';if(!_0x3ebcd6)return null;const _0x434628=parseScopes(_0x2da6f0?.[_0x2fd63d(0x2ba)]||_0x2da6f0?.[_0x2fd63d(0x302)]);return{'hostname':_0x3ebcd6,'port':Number(_0x1ab75c?.[_0x2fd63d(0x258)]||0x50),'path':_0x1ab75c?.[_0x2fd63d(0x1ad)+'me']||_0x2fd63d(0x1a6)+_0x2fd63d(0x294)+'e_serv'+_0x2fd63d(0x306),'urn':_0x2da6f0?.[_0x2fd63d(0x2ff)+_0x2fd63d(0x2c1)+_0x2fd63d(0x205)]?.[_0x2fd63d(0x161)+'s']||_0x2da6f0?.[_0x2fd63d(0x2b9)]||'','name':_0x434628['name']||_0x3ebcd6,'hardware':_0x434628[_0x2fd63d(0x17b)+'re']||''};}function summarizeCam(_0x2c8d7c,_0x504ef2){const _0xa027d5=_0x432854;if(_0x2c8d7c?.[_0xa027d5(0x1e7)+_0xa027d5(0x2d6)]||_0x2c8d7c?.[_0xa027d5(0x151)])return summarizeProbe(_0x2c8d7c,_0x504ef2);const _0x5854c4=_0x2c8d7c['hostna'+'me']||_0x504ef2?.[_0xa027d5(0x161)+'s']||'';if(!_0x5854c4)return null;return{'hostname':_0x5854c4,'port':Number(_0x2c8d7c[_0xa027d5(0x258)]||0x50),'path':_0x2c8d7c['path']||_0xa027d5(0x1a6)+_0xa027d5(0x294)+'e_serv'+_0xa027d5(0x306),'urn':_0x2c8d7c[_0xa027d5(0x2b9)]||'','name':_0x5854c4,'hardware':''};}let discovering=null;export async function discover(_0x4db2e4=0xfa0){if(discovering)return discovering;return discovering=runDiscover(_0x4db2e4)['finall'+'y'](()=>{discovering=null;}),discovering;}async function runDiscover(_0x52b809){const _0xdb7000=_0x432854,_0x35eb3f=[],_0x185ad4=new Set(),_0x117d9d=_0x4cd1ff=>{const _0x4498d5=_0x8f68;if(!_0x4cd1ff?.['hostna'+'me'])return;const _0x129fc8=_0x4cd1ff[_0x4498d5(0x270)+'me']+':'+_0x4cd1ff[_0x4498d5(0x258)]+':'+_0x4cd1ff['path'];if(_0x185ad4[_0x4498d5(0x1e3)](_0x129fc8))return;_0x185ad4['add'](_0x129fc8),_0x35eb3f[_0x4498d5(0x2c0)](_0x4cd1ff);},_0x2460d6=(_0x19b226,_0x2b875a)=>_0x117d9d(summarizeCam(_0x19b226,_0x2b875a));Discovery['on'](_0xdb7000(0x2b2),_0x2460d6);try{const _0xb9ffd3=await Discovery[_0xdb7000(0x18c)]({'timeout':_0x52b809,'resolve':![]});for(const _0x5885a8 of _0xb9ffd3||[])_0x117d9d(summarizeCam(_0x5885a8));}catch(_0x4cf430){console[_0xdb7000(0x16b)]('[onvif'+']\x20disc'+_0xdb7000(0x187),_0x4cf430?.[_0xdb7000(0x1ac)+'e']||_0x4cf430);}finally{Discovery[_0xdb7000(0x1bf)+'Listen'+'er'](_0xdb7000(0x2b2),_0x2460d6);}return _0x35eb3f;}function mediaUriOf(_0x47397f){const _0x115ed9=_0x432854;if(!_0x47397f)return'';if(typeof _0x47397f===_0x115ed9(0x1f9))return _0x47397f[_0x115ed9(0x286)+'e'](/&/g,'&');const _0x1255e7=_0x47397f[_0x115ed9(0x29e)]||_0x47397f[_0x115ed9(0x1d5)+'ri']?.['uri']||_0x47397f[_0x115ed9(0x30f)]||'',_0x55df37=typeof _0x1255e7===_0x115ed9(0x1f9)?_0x1255e7:_0x1255e7?.[_0x115ed9(0x255)]||_0x1255e7?.['_']||'';return String(_0x55df37)[_0x115ed9(0x286)+'e'](/&/g,'&');}function pickPreviewSource(_0x771d46){const _0x2b2fda=_0x432854,_0x23ea6f=Array[_0x2b2fda(0x2b4)+'y'](_0x771d46[_0x2b2fda(0x30a)+_0x2b2fda(0x17a)+'s'])?[..._0x771d46[_0x2b2fda(0x30a)+_0x2b2fda(0x17a)+'s']]:[];if(!_0x23ea6f[_0x2b2fda(0x293)]&&_0x771d46[_0x2b2fda(0x30a)+_0x2b2fda(0x17a)])_0x23ea6f[_0x2b2fda(0x2c0)](_0x771d46[_0x2b2fda(0x30a)+_0x2b2fda(0x17a)]);return _0x23ea6f[_0x2b2fda(0x291)]((_0x3fc13c,_0x148feb)=>(Number(_0x3fc13c[_0x2b2fda(0x2ee)])||0x780)-(Number(_0x148feb[_0x2b2fda(0x2ee)])||0x780)),_0x23ea6f[0x0]||_0x771d46[_0x2b2fda(0x30a)+'Source']||null;}function detectEncoding(_0xd7f11c){const _0x546038=_0x432854,_0x2913ff=String(_0xd7f11c?.[_0x546038(0x24a)+'ng']||_0xd7f11c?.[_0x546038(0x19c)+'ng']||'')[_0x546038(0x222)+_0x546038(0x2b7)]();if(/h265|hevc/['test'](_0x2913ff))return _0x546038(0x17f);if(/h264|avc/[_0x546038(0x20e)](_0x2913ff))return _0x546038(0x1c0);return _0x2913ff;}function injectRtspAuth(_0x20dea9,_0x4742dd,_0x45df27){const _0x33e7a6=_0x432854;if(!_0x20dea9)return'';try{const _0x56baac=new URL(_0x20dea9);return _0x4742dd&&(_0x56baac[_0x33e7a6(0x19f)+'me']=_0x4742dd,_0x56baac[_0x33e7a6(0x253)+'rd']=_0x45df27||''),_0x56baac[_0x33e7a6(0x255)];}catch{return _0x20dea9;}}function stopAllFfmpeg(){const _0x1253b7=_0x432854;clearTimeout(ffmpegIdleTimer),clearTimeout(ffmpegRestartTimer),ffmpegIdleTimer=null,ffmpegRestartTimer=null,ffmpegBackoffMs=0x320,sharedTranscode=![];const _0x2f19f1=sharedFfmpeg;sharedFfmpeg=null;if(_0x2f19f1){ffmpegProcs[_0x1253b7(0x2f1)](_0x2f19f1);try{_0x2f19f1[_0x1253b7(0x1b9)](_0x1253b7(0x2a2)+'L');}catch{}}for(const _0x1abe9f of ffmpegProcs){try{_0x1abe9f[_0x1253b7(0x1b9)]('SIGKIL'+'L');}catch{}}ffmpegProcs[_0x1253b7(0x1b7)]();for(const _0x1d89c6 of streamClients){try{if(!_0x1d89c6[_0x1253b7(0x25a)+_0x1253b7(0x307)+'d'])_0x1d89c6[_0x1253b7(0x153)]();}catch{}}streamClients[_0x1253b7(0x1b7)]();}function resetDigest(){const _0x703472=_0x432854;digestState[_0x703472(0x182)+'nge']=null,digestState['nc']=0x1;}export const ONVIF_CONNECT_TIMEOUT_MS=0x4e20;export const ONVIF_TCP_PROBE_MS=0x9c4;export function isNetworkError(_0x562a80){const _0x95985e=_0x432854,_0x3f028f=_0x562a80 instanceof Error?_0x562a80[_0x95985e(0x1ac)+'e']:String(_0x562a80||'');return/ECONNREFUSED|ENOTFOUND|ETIMEDOUT|EHOSTUNREACH|EHOSTDOWN|ENETUNREACH|ENETDOWN|ECONNRESET|EPIPE|ECONNABORTED|timeout|Timeout|Network timeout/i['test'](_0x3f028f);}export function cameraError(_0x417562,_0x53f286){const _0x2de4d9=_0x432854,_0x298242=_0x417562 instanceof Error?_0x417562[_0x2de4d9(0x1ac)+'e']:String(_0x417562||'');if(isNetworkError(_0x417562))return _0x2de4d9(0x1a1)+'线。请稍等自'+_0x2de4d9(0x32a)+_0x2de4d9(0x238);if(/401|NotAuthorized|not authorized|unauthorized|Authoriz/i[_0x2de4d9(0x20e)](_0x298242))return'账号或密码不'+_0x2de4d9(0x29a)+_0x2de4d9(0x2d1)+_0x2de4d9(0x23d)+'if,并给这'+_0x2de4d9(0x248)+_0x2de4d9(0x159)+'限。';return _0x298242||_0x53f286;}export function probeTcp(_0x3bf9d8,_0x7597c7,_0x474757=ONVIF_TCP_PROBE_MS){const _0x594f78=String(_0x3bf9d8||'')['trim'](),_0xad85ec=Number(_0x7597c7)||0x50;if(!_0x594f78)return Promise['resolv'+'e'](![]);return new Promise(_0x365815=>{const _0x199396=_0x8f68,_0x33e25b=_0x18f084[_0x199396(0x2eb)+'t']({'host':_0x594f78,'port':_0xad85ec});let _0x2aaf6e=![];const _0x3f9e43=_0x3d1218=>{const _0xcc386c=_0x199396;if(_0x2aaf6e)return;_0x2aaf6e=!![],_0x33e25b[_0xcc386c(0x1bf)+'AllLis'+'teners'](),_0x33e25b[_0xcc386c(0x1b1)+'y'](),_0x365815(_0x3d1218);};_0x33e25b[_0x199396(0x2e1)+_0x199396(0x273)](Math[_0x199396(0x19a)](0xc8,Number(_0x474757)||ONVIF_TCP_PROBE_MS),()=>_0x3f9e43(![])),_0x33e25b[_0x199396(0x325)](_0x199396(0x2eb)+'t',()=>_0x3f9e43(!![])),_0x33e25b[_0x199396(0x325)](_0x199396(0x259),()=>_0x3f9e43(![]));});}function createCam(_0x391c26){const _0x760b55=_0x432854;return new Cam({'hostname':_0x391c26[_0x760b55(0x270)+'me'],'port':_0x391c26[_0x760b55(0x258)],'username':_0x391c26[_0x760b55(0x19f)+'me'],'password':_0x391c26[_0x760b55(0x253)+'rd'],'path':_0x391c26[_0x760b55(0x2ae)],'timeout':Number(_0x391c26[_0x760b55(0x1d1)+'t'])>0x0?Number(_0x391c26[_0x760b55(0x1d1)+'t']):ONVIF_CONNECT_TIMEOUT_MS,'agent':httpAgent,'preserveAddress':!![],'autoconnect':![]});}async function refreshOnvif(){const _0x55536f=_0x432854,_0x1ef511=createCam(state);return await _0x1ef511[_0x55536f(0x2eb)+'t'](),currentCam=_0x1ef511,state[_0x55536f(0x17d)]=!!(_0x1ef511[_0x55536f(0x2cc)+_0x55536f(0x2d7)]?.[_0x55536f(0x1fc)]||_0x1ef511[_0x55536f(0x29e)]?.[_0x55536f(0x17d)]),_0x1ef511;}function sameHost(_0x2a0a43,_0x16e82b){const _0x239145=_0x432854;return String(_0x2a0a43||'')['trim']()[_0x239145(0x222)+_0x239145(0x2b7)]()===String(_0x16e82b||'')[_0x239145(0x163)]()['toLowe'+_0x239145(0x2b7)]();}export function sameOnvifEndpoint(_0xcaf83c,_0x51b9a3){const _0x2d68e6=_0x432854;if(!_0xcaf83c||!_0x51b9a3)return![];return sameHost(_0xcaf83c[_0x2d68e6(0x270)+'me'],_0x51b9a3[_0x2d68e6(0x270)+'me'])&&Number(_0xcaf83c[_0x2d68e6(0x258)]||0x50)===Number(_0x51b9a3[_0x2d68e6(0x258)]||0x50)&&String(_0xcaf83c['path']||_0x2d68e6(0x1a6)+_0x2d68e6(0x294)+'e_serv'+_0x2d68e6(0x306))===String(_0x51b9a3['path']||_0x2d68e6(0x1a6)+_0x2d68e6(0x294)+_0x2d68e6(0x24e)+_0x2d68e6(0x306));}async function resolveDiscoveredEndpoint(_0x1625df){const _0x59b017=_0x432854;try{const _0x2e2d0a=await discover(0x9c4);return _0x2e2d0a['find'](_0x9f504d=>sameHost(_0x9f504d['hostna'+'me'],_0x1625df))||null;}catch(_0x34efbd){return console[_0x59b017(0x16b)](_0x59b017(0x2af)+_0x59b017(0x254)+_0x59b017(0x288)+'fallba'+'ck',_0x34efbd?.['messag'+'e']||_0x34efbd),null;}}async function openOnvif(_0x96670f){const _0x13f320=_0x432854,_0xd3a3d7=createCam(_0x96670f);return await _0xd3a3d7[_0x13f320(0x2eb)+'t'](),_0xd3a3d7;}export async function connectCamera(_0x6dd967={}){const _0x2d07fb=_0x432854;let _0x7efb43=String(_0x6dd967[_0x2d07fb(0x270)+'me']||'')[_0x2d07fb(0x163)](),_0x554ac2=Number(_0x6dd967[_0x2d07fb(0x258)]||0x50);const _0x233b4e=String(_0x6dd967[_0x2d07fb(0x19f)+'me']||'')['trim'](),_0x151271=String(_0x6dd967['passwo'+'rd']||'');let _0x50d81e=String(_0x6dd967[_0x2d07fb(0x2ae)]||_0x2d07fb(0x1a6)+_0x2d07fb(0x294)+_0x2d07fb(0x24e)+_0x2d07fb(0x306))[_0x2d07fb(0x163)]()||_0x2d07fb(0x1a6)+_0x2d07fb(0x294)+_0x2d07fb(0x24e)+'ice';if(!_0x7efb43)throw new Error(_0x2d07fb(0x1f4)+'地址');stopAllFfmpeg(),await new Promise(_0x2679ca=>setTimeout(_0x2679ca,0x32));state[_0x2d07fb(0x190)]===_0x2d07fb(0x2f9)+'d'&&disconnectCamera();let _0x3b8eba;const _0x27e85b={'username':_0x233b4e,'password':_0x151271,'path':_0x50d81e},_0x3190fe=await probeTcp(_0x7efb43,_0x554ac2);if(!_0x3190fe)console[_0x2d07fb(0x16b)]('[camer'+_0x2d07fb(0x231)+_0x2d07fb(0x31b)+_0x2d07fb(0x22d),_0x7efb43+':'+_0x554ac2);else try{_0x3b8eba=await openOnvif({'hostname':_0x7efb43,'port':_0x554ac2,..._0x27e85b});}catch(_0x5b62cd){console[_0x2d07fb(0x16b)](_0x2d07fb(0x2af)+_0x2d07fb(0x166)+_0x2d07fb(0x305)+_0x2d07fb(0x1ce),_0x7efb43+':'+_0x554ac2+_0x50d81e,_0x5b62cd?.[_0x2d07fb(0x1ac)+'e']||_0x5b62cd);if(!isNetworkError(_0x5b62cd))throw new Error(cameraError(_0x5b62cd,_0x2d07fb(0x2cd)+'败'));}if(!_0x3b8eba)try{console[_0x2d07fb(0x178)](_0x2d07fb(0x2af)+_0x2d07fb(0x2a7)+_0x2d07fb(0x25f)+'e',_0x7efb43+':'+_0x554ac2+_0x50d81e),_0x3b8eba=await openOnvif({'hostname':_0x7efb43,'port':_0x554ac2,..._0x27e85b});}catch(_0x4522e8){console[_0x2d07fb(0x16b)](_0x2d07fb(0x2af)+_0x2d07fb(0x2a7)+_0x2d07fb(0x299)+'l',_0x7efb43+':'+_0x554ac2+_0x50d81e,_0x4522e8?.[_0x2d07fb(0x1ac)+'e']||_0x4522e8);if(!isNetworkError(_0x4522e8))throw new Error(cameraError(_0x4522e8,_0x2d07fb(0x2cd)+'败'));}if(!_0x3b8eba){const _0x2c41b8=await resolveDiscoveredEndpoint(_0x7efb43);if(_0x2c41b8&&!sameOnvifEndpoint({'hostname':_0x7efb43,'port':_0x554ac2,'path':_0x50d81e},_0x2c41b8)){_0x7efb43=_0x2c41b8[_0x2d07fb(0x270)+'me'],_0x554ac2=Number(_0x2c41b8[_0x2d07fb(0x258)]||_0x554ac2),_0x50d81e=_0x2c41b8[_0x2d07fb(0x2ae)]||_0x50d81e,console[_0x2d07fb(0x178)](_0x2d07fb(0x2af)+'a]\x20ret'+'ry\x20dis'+'covere'+'d',_0x7efb43+':'+_0x554ac2+_0x50d81e);try{_0x3b8eba=await openOnvif({'hostname':_0x7efb43,'port':_0x554ac2,'username':_0x233b4e,'password':_0x151271,'path':_0x50d81e});}catch(_0x42bef9){throw new Error(cameraError(_0x42bef9,_0x2d07fb(0x2cd)+'败'));}}else throw new Error(cameraError(new Error(_0x2d07fb(0x158)+'k\x20time'+_0x2d07fb(0x239)),_0x2d07fb(0x2cd)+'败'));}let _0x51d861=null;try{_0x51d861=await _0x3b8eba['getDev'+_0x2d07fb(0x1e8)+_0x2d07fb(0x282)+'on']();}catch{_0x51d861=null;}let _0x63ed29='';const _0x3955f6=pickPreviewSource(_0x3b8eba);let _0x20f579='';try{const _0x2b03d7=await _0x3b8eba['getStr'+_0x2d07fb(0x1e9)]({'protocol':_0x2d07fb(0x18d),'profileToken':_0x3955f6?.[_0x2d07fb(0x1d4)+'eToken']});_0x20f579=mediaUriOf(_0x2b03d7);}catch(_0x339952){console['warn']('[onvif'+_0x2d07fb(0x1d8)+'\x20uri',_0x339952?.[_0x2d07fb(0x1ac)+'e']||_0x339952);}if(!_0x20f579)try{const _0x4d5abe=await _0x3b8eba[_0x2d07fb(0x23a)+_0x2d07fb(0x16a)+'ri']({'profileToken':_0x3955f6?.[_0x2d07fb(0x1d4)+_0x2d07fb(0x2c4)]});_0x63ed29=mediaUriOf(_0x4d5abe);}catch(_0x4b46ee){console[_0x2d07fb(0x16b)](_0x2d07fb(0x197)+_0x2d07fb(0x2bf)+_0x2d07fb(0x225)+'ri',_0x4b46ee?.[_0x2d07fb(0x1ac)+'e']||_0x4b46ee);}resetDigest(),currentCam=_0x3b8eba,state[_0x2d07fb(0x2eb)+_0x2d07fb(0x1ef)]=!![],state[_0x2d07fb(0x270)+'me']=_0x7efb43,state[_0x2d07fb(0x258)]=_0x554ac2,state[_0x2d07fb(0x2ae)]=_0x50d81e,state['userna'+'me']=_0x233b4e,state[_0x2d07fb(0x253)+'rd']=_0x151271,state[_0x2d07fb(0x298)+'otUri']=_0x63ed29,state['rtspUr'+'i']=_0x20f579,state[_0x2d07fb(0x24a)+'ng']=detectEncoding(_0x3955f6),state[_0x2d07fb(0x214)+'i']='',state[_0x2d07fb(0x16c)+_0x2d07fb(0x15d)]='',state['info']=_0x51d861?{'manufacturer':_0x51d861[_0x2d07fb(0x1a5)+'cturer']||'','model':_0x51d861[_0x2d07fb(0x2c2)]||'','firmware':_0x51d861[_0x2d07fb(0x26e)+_0x2d07fb(0x228)+_0x2d07fb(0x261)]||'','serial':_0x51d861['serial'+'Number']||''}:null,state[_0x2d07fb(0x17d)]=!!(_0x3b8eba[_0x2d07fb(0x2cc)+'lities']?.[_0x2d07fb(0x1fc)]||_0x3b8eba[_0x2d07fb(0x29e)]?.[_0x2d07fb(0x17d)]),state[_0x2d07fb(0x190)]=_0x2d07fb(0x247),state[_0x2d07fb(0x190)+_0x2d07fb(0x278)]=[_0x51d861?.['manufa'+_0x2d07fb(0x314)],_0x51d861?.[_0x2d07fb(0x2c2)]][_0x2d07fb(0x2f2)](Boolean)[_0x2d07fb(0x2e8)]('\x20')||_0x7efb43;if(_0x20f579)console[_0x2d07fb(0x178)](_0x2d07fb(0x2af)+_0x2d07fb(0x2d9)+'p',state['encodi'+'ng']||_0x2d07fb(0x157)+'n',_0x7efb43);else try{const _0x58a016=await findNativeLive({'hostname':_0x7efb43,'port':_0x554ac2,'username':_0x233b4e,'password':_0x151271,'manufacturer':_0x51d861?.[_0x2d07fb(0x1a5)+_0x2d07fb(0x314)]||'','snapshotUri':_0x63ed29,'profileToken':_0x3955f6?.[_0x2d07fb(0x1d4)+_0x2d07fb(0x2c4)]});state[_0x2d07fb(0x214)+'i']=_0x58a016,state[_0x2d07fb(0x16c)+_0x2d07fb(0x15d)]=_0x58a016&&isQueryAuthUrl(_0x58a016)?_0x58a016:'';}catch(_0x5c0233){console[_0x2d07fb(0x16b)]('[camer'+_0x2d07fb(0x263)+_0x2d07fb(0x227)+'ch',_0x5c0233?.[_0x2d07fb(0x1ac)+'e']||_0x5c0233);}return publicState();}export function disconnectCamera(){const _0x5e2e44=_0x432854,_0x35ec4f=state[_0x5e2e44(0x190)]===_0x5e2e44(0x2f9)+'d';stopAllFfmpeg(),currentCam=null,resetDigest();try{httpAgent['destro'+'y']();}catch{}try{httpsAgent[_0x5e2e44(0x1b1)+'y']();}catch{}return state[_0x5e2e44(0x2eb)+_0x5e2e44(0x1ef)]=![],state[_0x5e2e44(0x298)+_0x5e2e44(0x2d4)]='',state[_0x5e2e44(0x177)+'i']='',state[_0x5e2e44(0x24a)+'ng']='',state[_0x5e2e44(0x214)+'i']='',state[_0x5e2e44(0x16c)+_0x5e2e44(0x15d)]='',state['info']=null,state[_0x5e2e44(0x17d)]=![],state[_0x5e2e44(0x190)]='',state[_0x5e2e44(0x190)+_0x5e2e44(0x278)]='',lastOnboardJpeg=null,onboardPreviewClients=0x0,_0x35ec4f&&void disarmOnboardCamera(),publicState();}export function getCameraState(){return publicState();}function onboardBaseUrl(){const _0x4b4f7b=_0x432854;return String(cameraHooks[_0x4b4f7b(0x16e)+_0x4b4f7b(0x281)+_0x4b4f7b(0x265)]?.()||'')[_0x4b4f7b(0x286)+'e'](/\/$/,'');}export async function disarmOnboardCamera(){const _0x5be1cc=_0x432854,_0x1caf0b=onboardBaseUrl();if(!_0x1caf0b)return![];try{return await fetch(_0x1caf0b+('/camer'+'a/disa'+'rm'),{'method':_0x5be1cc(0x1c2),'signal':AbortSignal[_0x5be1cc(0x1d1)+'t'](ONBOARD_DISARM_TIMEOUT_MS)}),!![];}catch{return![];}}function noteOnboardPreviewClient(_0x3180d8){const _0x57e834=_0x432854,_0x5b793d=onboardPreviewClients;onboardPreviewClients=Math[_0x57e834(0x19a)](0x0,onboardPreviewClients+_0x3180d8),_0x5b793d>0x0&&onboardPreviewClients===0x0&&void disarmOnboardCamera();}function _0x8f68(_0x460691,_0x5a1862){_0x460691=_0x460691-0x150;const _0x4e53ba=_0x4e53();let _0x8f6813=_0x4e53ba[_0x460691];if(_0x8f68['qtPcPw']===undefined){var _0x416b22=function(_0x1bbd53){const _0x2a6ed6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x50fd9d='',_0x5cb1aa='';for(let _0x4b0e3b=0x0,_0x18f084,_0x3df75d,_0x481f6b=0x0;_0x3df75d=_0x1bbd53['charAt'](_0x481f6b++);~_0x3df75d&&(_0x18f084=_0x4b0e3b%0x4?_0x18f084*0x40+_0x3df75d:_0x3df75d,_0x4b0e3b++%0x4)?_0x50fd9d+=String['fromCharCode'](0xff&_0x18f084>>(-0x2*_0x4b0e3b&0x6)):0x0){_0x3df75d=_0x2a6ed6['indexOf'](_0x3df75d);}for(let _0x1cb591=0x0,_0x5733cd=_0x50fd9d['length'];_0x1cb591<_0x5733cd;_0x1cb591++){_0x5cb1aa+='%'+('00'+_0x50fd9d['charCodeAt'](_0x1cb591)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5cb1aa);};_0x8f68['wgrVJT']=_0x416b22,_0x8f68['vdGEti']={},_0x8f68['qtPcPw']=!![];}const _0x7a7939=_0x4e53ba[0x0],_0x509220=_0x460691+_0x7a7939,_0x5286c8=_0x8f68['vdGEti'][_0x509220];return!_0x5286c8?(_0x8f6813=_0x8f68['wgrVJT'](_0x8f6813),_0x8f68['vdGEti'][_0x509220]=_0x8f6813):_0x8f6813=_0x5286c8,_0x8f6813;}async function fetchOnboardJpeg(){const _0x2fb81d=_0x432854,_0x15a0a0=onboardBaseUrl();if(!_0x15a0a0)throw new Error('还没有选中\x20'+_0x2fb81d(0x1aa)+_0x2fb81d(0x1e2)+'页连接局域网');const _0x32e0df=_0x15a0a0+(_0x2fb81d(0x209)+_0x2fb81d(0x206)+'shot');let _0x8593aa;try{_0x8593aa=await fetch(_0x32e0df,{'signal':AbortSignal[_0x2fb81d(0x1d1)+'t'](ONBOARD_FETCH_TIMEOUT_MS),'headers':{'Accept':_0x2fb81d(0x2bb)+'jpeg'}});}catch(_0x3298c4){const _0x14ee0f=_0x3298c4?.['cause']?.['messag'+'e']||_0x3298c4?.[_0x2fb81d(0x1ac)+'e']||_0x3298c4;throw new Error(_0x2fb81d(0x329)+_0x2fb81d(0x31a)+_0x32e0df+':'+_0x14ee0f);}if(_0x8593aa[_0x2fb81d(0x2d3)]===0xcc)return null;if(!_0x8593aa['ok'])throw new Error('板载摄像头返'+'回\x20'+_0x8593aa[_0x2fb81d(0x2d3)]);const _0x438bfc=Buffer[_0x2fb81d(0x201)](await _0x8593aa[_0x2fb81d(0x16d)+'uffer']());if(_0x438bfc['length'])lastOnboardJpeg=_0x438bfc;return _0x438bfc;}async function getOnboardSnapshot(){const _0xa6c6b5=_0x432854;if(onboardFetchInFlight)try{return await onboardFetchInFlight;}catch{}return onboardFetchInFlight=fetchOnboardJpeg()[_0xa6c6b5(0x210)+'y'](()=>{onboardFetchInFlight=null;}),onboardFetchInFlight;}export async function connectOnboardCamera(){const _0x371678=_0x432854;throw new Error(_0x371678(0x2b5)+'支持');}async function ptzOnboard(_0x91db9c,_0x747738={}){const _0x1df412=_0x432854;if(!cameraHooks['publis'+'hGimba'+'l'])throw new Error('云台通道未就'+'绪');const _0x309736=String(_0x747738[_0x1df412(0x1e5)]||''),_0x404202=String(_0x91db9c||''),_0xb46402=_0x404202[_0x1df412(0x1f2)+_0x1df412(0x2a4)](_0x1df412(0x317))?_0x404202[_0x1df412(0x1a7)](0x6):_0x404202;if(_0x309736===_0x1df412(0x240)||_0x404202[_0x1df412(0x1f2)+_0x1df412(0x2a4)](_0x1df412(0x317)))return await cameraHooks[_0x1df412(0x26f)+_0x1df412(0x30e)+'l'](payloadForNudge(_0xb46402)),{'ok':!![]};return await cameraHooks[_0x1df412(0x26f)+_0x1df412(0x30e)+'l'](payloadForAction(_0x404202)),{'ok':!![]};}function md5(_0x3524b0){const _0x2e27a9=_0x432854;return _0x50fd9d['create'+_0x2e27a9(0x221)](_0x2e27a9(0x287))['update'](_0x3524b0)[_0x2e27a9(0x22f)](_0x2e27a9(0x17c));}function parseChallenge(_0x218c95){const _0x21cd36=_0x432854,_0x9ad84e={'scheme':_0x21cd36(0x22f)},_0x2fcc9c=String(_0x218c95||'')[_0x21cd36(0x215)](/^(\w+)\s+(.*)$/);if(!_0x2fcc9c)return _0x9ad84e;_0x9ad84e['scheme']=_0x2fcc9c[0x1][_0x21cd36(0x222)+_0x21cd36(0x2b7)]();for(const _0x59fb87 of _0x2fcc9c[0x2][_0x21cd36(0x186)](/,(?=(?:[^"]*"[^"]*")*[^"]*$)/)){const _0x386f0c=_0x59fb87[_0x21cd36(0x169)+'f']('=');if(_0x386f0c<0x0)continue;const _0x130ab7=_0x59fb87['slice'](0x0,_0x386f0c)[_0x21cd36(0x163)]();_0x9ad84e[_0x130ab7]=_0x59fb87[_0x21cd36(0x1a7)](_0x386f0c+0x1)[_0x21cd36(0x163)]()[_0x21cd36(0x286)+'e'](/^"|"$/g,'');}return _0x9ad84e;}function digestAuth(_0x32e017,_0x31d987,_0x1fee82,_0x1a710f,_0x3fdc87,_0x13277a){const _0x651a09=_0x432854,_0x42cd89=String(_0x13277a)[_0x651a09(0x196)+'rt'](0x8,'0'),_0x504123=_0x50fd9d[_0x651a09(0x304)+_0x651a09(0x176)](0x8)[_0x651a09(0x181)+'ng'](_0x651a09(0x17c)),_0x4eca86=(_0x32e017[_0x651a09(0x26d)]||_0x651a09(0x283))[_0x651a09(0x186)](',')[0x0]['trim']()||_0x651a09(0x283),_0xe82d80=md5(_0x31d987+':'+_0x32e017['realm']+':'+_0x1fee82),_0x1bf055=md5(_0x1a710f+':'+_0x3fdc87),_0x57e65c=_0x32e017[_0x651a09(0x26d)]?md5(_0xe82d80+':'+_0x32e017[_0x651a09(0x2c3)]+':'+_0x42cd89+':'+_0x504123+':'+_0x4eca86+':'+_0x1bf055):md5(_0xe82d80+':'+_0x32e017[_0x651a09(0x2c3)]+':'+_0x1bf055),_0x841757=['userna'+_0x651a09(0x2d8)+_0x31d987+'\x22',_0x651a09(0x311)+'\x22'+_0x32e017[_0x651a09(0x2bd)]+'\x22',_0x651a09(0x180)+'\x22'+_0x32e017[_0x651a09(0x2c3)]+'\x22',_0x651a09(0x235)+_0x3fdc87+'\x22',_0x651a09(0x310)+_0x651a09(0x303)+_0x57e65c+'\x22'];if(_0x32e017[_0x651a09(0x1ab)])_0x841757['push'](_0x651a09(0x1ab)+'=\x22'+_0x32e017[_0x651a09(0x1ab)]+'\x22');_0x32e017[_0x651a09(0x26d)]&&_0x841757[_0x651a09(0x2c0)](_0x651a09(0x1d3)+_0x4eca86,_0x651a09(0x22b)+_0x42cd89,_0x651a09(0x1f7)+'=\x22'+_0x504123+'\x22');if(_0x32e017[_0x651a09(0x244)+_0x651a09(0x2dc)])_0x841757[_0x651a09(0x2c0)](_0x651a09(0x244)+_0x651a09(0x1d2)+_0x32e017['algori'+_0x651a09(0x2dc)]);return'Digest'+'\x20'+_0x841757[_0x651a09(0x2e8)](',\x20');}function digestHeader(_0x1c6083,_0x1dd65b,_0x3d03e3,_0x2815a4,_0x3bbbec){return digestAuth(_0x1c6083,_0x1dd65b,_0x3d03e3,_0x2815a4,_0x3bbbec,digestState['nc']++);}function isQueryAuthUrl(_0x294bcb){const _0x2c394f=_0x432854;return/[?&](user|usr|username|loginuse)=/i[_0x2c394f(0x20e)](_0x294bcb)&&/[?&](pwd|password|pass|loginpas)=/i[_0x2c394f(0x20e)](_0x294bcb);}function isLiveMjpeg(_0x48c500,_0x56503c){const _0x48a014=_0x432854,_0x3badb1=String(_0x48c500||''),_0x434dcc=String(_0x56503c||'');if(/multipart\/x-mixed-replace/i[_0x48a014(0x20e)](_0x3badb1))return!![];if(/mjpeg/i[_0x48a014(0x20e)](_0x3badb1))return!![];if(/Content-Type:\s*image\/jpeg/i[_0x48a014(0x20e)](_0x434dcc)&&_0x434dcc[_0x48a014(0x2ac)+'es']('--'))return!![];return![];}function liveCandidates({hostname:_0x56c335,port:_0x54ddce,username:_0x38df9a,password:_0x269654,manufacturer:_0x27e3c5,snapshotUri:_0x5b058c}){const _0x4a89dd=_0x432854,_0x3138e5=[],_0x4d772b=(_0x139b5e,_0x2768b9)=>{const _0x5285b2=_0x8f68;if(!_0x139b5e)return;const _0x4a946a={'host':_0x139b5e,'port':Number(_0x2768b9||0x50)};if(!_0x3138e5[_0x5285b2(0x2e6)](_0x505966=>_0x505966[_0x5285b2(0x2f6)]===_0x4a946a[_0x5285b2(0x2f6)]&&_0x505966['port']===_0x4a946a[_0x5285b2(0x258)]))_0x3138e5[_0x5285b2(0x2c0)](_0x4a946a);};_0x4d772b(_0x56c335,_0x54ddce&&_0x54ddce!==0x22a?_0x54ddce:0x50),_0x4d772b(_0x56c335,0x50);if(_0x5b058c)try{const _0x543989=new URL(_0x5b058c);_0x4d772b(_0x543989[_0x4a89dd(0x270)+'me'],_0x543989[_0x4a89dd(0x258)]||0x50);}catch{}const _0x588fbd=encodeURIComponent(_0x38df9a||''),_0x3fb61c=encodeURIComponent(_0x269654||''),_0xae1e7f=String(_0x27e3c5||'')[_0x4a89dd(0x222)+_0x4a89dd(0x2b7)](),_0x36e840=[_0x4a89dd(0x1ba)+_0x4a89dd(0x15b)+_0x4a89dd(0x173)+_0x4a89dd(0x29b)+_0x4a89dd(0x2be)+_0x4a89dd(0x1bb)+_0x4a89dd(0x1be),_0x4a89dd(0x1ba)+_0x4a89dd(0x15b)+_0x4a89dd(0x173)+_0x4a89dd(0x29b)+'s/101/'+_0x4a89dd(0x1bb)+'eview',_0x4a89dd(0x1ba)+_0x4a89dd(0x15b)+_0x4a89dd(0x173)+_0x4a89dd(0x29b)+_0x4a89dd(0x2fd)+_0x4a89dd(0x1bb)+_0x4a89dd(0x1be),_0x4a89dd(0x1ba)+_0x4a89dd(0x15b)+_0x4a89dd(0x173)+_0x4a89dd(0x29b)+_0x4a89dd(0x28a)+_0x4a89dd(0x1bb)+_0x4a89dd(0x1be)],_0x20073a=[_0x4a89dd(0x2e9)+_0x4a89dd(0x1a3)+_0x4a89dd(0x301)+_0x4a89dd(0x1dc)+_0x4a89dd(0x1bc)+_0x4a89dd(0x213)+_0x4a89dd(0x229)+'1',_0x4a89dd(0x2e9)+'in/mjp'+'g/vide'+_0x4a89dd(0x1dc)+_0x4a89dd(0x1bc)+_0x4a89dd(0x213)+_0x4a89dd(0x229)+'0'],_0xf6dfb8=[_0x4a89dd(0x2df)+_0x4a89dd(0x328)+_0x4a89dd(0x31e)+'ser='+_0x588fbd+_0x4a89dd(0x1ff)+_0x3fb61c,_0x4a89dd(0x2df)+'stream'+_0x4a89dd(0x2a9)+_0x4a89dd(0x29f)+'e='+_0x588fbd+(_0x4a89dd(0x25d)+_0x4a89dd(0x30d))+_0x3fb61c,_0x4a89dd(0x2df)+_0x4a89dd(0x328)+'.cgi','/mjpeg'+'.cgi',_0x4a89dd(0x2df)+'.mjpg','/mjpg/'+_0x4a89dd(0x1c9)+_0x4a89dd(0x1a8),_0x4a89dd(0x2e9)+_0x4a89dd(0x1a3)+'eg',_0x4a89dd(0x250)+_0x4a89dd(0x188)+_0x4a89dd(0x23b)+_0x4a89dd(0x2ce),_0x4a89dd(0x1a4)+'/mjpeg'+'.cgi',_0x4a89dd(0x2e9)+_0x4a89dd(0x2c8)+_0x4a89dd(0x237)+'peg.cg'+'i','/live/'+_0x4a89dd(0x2a0)+'g.jpg','/strea'+'m'];let _0x545310=[];if(/hik|海康/[_0x4a89dd(0x20e)](_0xae1e7f))_0x545310=[..._0x36e840,..._0xf6dfb8,..._0x20073a];else{if(/dahua|大华/['test'](_0xae1e7f))_0x545310=[..._0x20073a,..._0xf6dfb8,..._0x36e840];else _0x545310=[..._0xf6dfb8,..._0x36e840,..._0x20073a];}const _0x10ae10=[];for(const _0x2383c6 of _0x3138e5){const _0x3c3cf6=_0x2383c6[_0x4a89dd(0x258)]===0x50?_0x4a89dd(0x284)+'/'+_0x2383c6['host']:_0x4a89dd(0x284)+'/'+_0x2383c6[_0x4a89dd(0x2f6)]+':'+_0x2383c6[_0x4a89dd(0x258)];for(const _0x3e8a73 of _0x545310)_0x10ae10[_0x4a89dd(0x2c0)](_0x3c3cf6+_0x3e8a73);}return[...new Set(_0x10ae10)];}function openCameraHttp(_0x23d8c2,_0x52d68b,_0x218151,_0x290758=0xfa0){return new Promise((_0x2793ec,_0x165794)=>{const _0x417496=_0x8f68,_0x3b2867=new URL(_0x23d8c2),_0x41117c=decodeURIComponent(_0x3b2867['userna'+'me']||_0x52d68b||''),_0x522819=decodeURIComponent(_0x3b2867[_0x417496(0x253)+'rd']||_0x218151||'');_0x3b2867[_0x417496(0x19f)+'me']='',_0x3b2867[_0x417496(0x253)+'rd']='';const _0x5c1921=_0x3b2867[_0x417496(0x1ea)+'ol']===_0x417496(0x1cf),_0x485113=_0x5c1921?_0x4b0e3b:_0x5cb1aa;let _0x640d0c=![],_0x3cc98c=0x1;const _0x290aab=(_0x8bc26f,_0x1b05c)=>{if(_0x640d0c)return;_0x640d0c=!![];if(_0x8bc26f)_0x165794(_0x8bc26f);else _0x2793ec(_0x1b05c);},_0x281015=_0xebd249=>{const _0x1737dd=_0x417496,_0x3f6920=_0x3b2867['pathna'+'me']+_0x3b2867[_0x1737dd(0x323)],_0x202fc9={'Accept':'multip'+_0x1737dd(0x1e0)+_0x1737dd(0x2f8)+_0x1737dd(0x286)+_0x1737dd(0x1df)+_0x1737dd(0x1af)+_0x1737dd(0x2a1),'Connection':'close'};if(_0xebd249?.[_0x1737dd(0x276)]==='digest'&&_0x41117c)_0x202fc9[_0x1737dd(0x1f3)+_0x1737dd(0x21e)+'n']=digestAuth(_0xebd249,_0x41117c,_0x522819,'GET',_0x3f6920,_0x3cc98c++);else _0x41117c&&(_0x202fc9[_0x1737dd(0x1f3)+'izatio'+'n']=_0x1737dd(0x20c)+Buffer[_0x1737dd(0x201)](_0x41117c+':'+_0x522819)[_0x1737dd(0x181)+'ng']('base64'));return _0x202fc9;},_0x206a08=_0x5d7a28=>{const _0x50d952=_0x417496,_0x4707a0=_0x485113[_0x50d952(0x2e5)+'t']({'protocol':_0x3b2867[_0x50d952(0x1ea)+'ol'],'hostname':_0x3b2867['hostna'+'me'],'port':_0x3b2867[_0x50d952(0x258)]||(_0x5c1921?0x1bb:0x50),'path':_0x3b2867[_0x50d952(0x1ad)+'me']+_0x3b2867[_0x50d952(0x323)],'method':_0x50d952(0x25b),'headers':_0x281015(_0x5d7a28),'timeout':_0x290758,'rejectUnauthorized':![],'agent':![]},_0x1006ea=>{const _0x2b0dc2=_0x50d952;if(_0x1006ea[_0x2b0dc2(0x2d3)+_0x2b0dc2(0x295)]===0x191&&!_0x5d7a28){const _0x31c6d1=_0x1006ea[_0x2b0dc2(0x2a3)+'s']['www-au'+_0x2b0dc2(0x21c)+_0x2b0dc2(0x2ca)],_0x632d86=parseChallenge(Array[_0x2b0dc2(0x2b4)+'y'](_0x31c6d1)?_0x31c6d1[0x0]:_0x31c6d1||'');_0x1006ea[_0x2b0dc2(0x22e)](),_0x206a08(_0x632d86);return;}if((_0x1006ea[_0x2b0dc2(0x2d3)+_0x2b0dc2(0x295)]||0x0)>=0x190){_0x1006ea[_0x2b0dc2(0x22e)](),_0x290aab(new Error(_0x2b0dc2(0x271)+_0x1006ea[_0x2b0dc2(0x2d3)+'Code']));return;}_0x290aab(null,{'req':_0x4707a0,'res':_0x1006ea,'contentType':String(_0x1006ea[_0x2b0dc2(0x2a3)+'s'][_0x2b0dc2(0x224)+_0x2b0dc2(0x2d5)]||'')});});_0x4707a0['on']('timeou'+'t',()=>{const _0x3f782d=_0x50d952;_0x4707a0[_0x3f782d(0x1b1)+'y'](),_0x290aab(new Error(_0x3f782d(0x1d1)+'t'));}),_0x4707a0['on'](_0x50d952(0x259),_0x40f9ce=>_0x290aab(_0x40f9ce)),_0x4707a0[_0x50d952(0x153)]();};try{_0x206a08(null);}catch(_0x3da5bc){_0x290aab(_0x3da5bc);}});}function peekAndClose(_0x233af5,_0x59fe38=0x2bc){return new Promise(_0x376112=>{const _0x2dcad9=_0x8f68,_0x201ad3=[];let _0x27ee65=![];const _0x401c88=()=>{const _0x1a19ef=_0x8f68;if(_0x27ee65)return;_0x27ee65=!![];try{_0x233af5[_0x1a19ef(0x27e)][_0x1a19ef(0x1b1)+'y']();}catch{}try{_0x233af5['res']['destro'+'y']();}catch{}_0x376112({'contentType':_0x233af5[_0x1a19ef(0x224)+_0x1a19ef(0x25e)],'peek':Buffer['concat'](_0x201ad3)[_0x1a19ef(0x181)+'ng'](_0x1a19ef(0x20b))});};_0x233af5['res']['on']('data',_0x2dc840=>{const _0x796dfe=_0x8f68;_0x201ad3[_0x796dfe(0x2c0)](_0x2dc840);if(Buffer['concat'](_0x201ad3)[_0x796dfe(0x293)]>=0xf0)_0x401c88();}),_0x233af5['res']['on']('end',_0x401c88),_0x233af5[_0x2dcad9(0x24b)]['on'](_0x2dcad9(0x259),_0x401c88),setTimeout(_0x401c88,_0x59fe38);});}async function findNativeLive({hostname:_0x2e3ef6,port:_0x5b7cc0,username:_0x3317df,password:_0x1506a6,manufacturer:_0x449fd9,snapshotUri:_0x11b369,profileToken:_0xfe9ed0}){const _0x2740=_0x432854,_0x31e2cf=liveCandidates({'hostname':_0x2e3ef6,'port':_0x5b7cc0,'username':_0x3317df,'password':_0x1506a6,'manufacturer':_0x449fd9,'snapshotUri':_0x11b369});if(currentCam)try{const _0x57c672=await currentCam['getStr'+_0x2740(0x1e9)]({'protocol':_0x2740(0x27a),'profileToken':_0xfe9ed0}),_0x2db878=mediaUriOf(_0x57c672);if(/^https?:/i[_0x2740(0x20e)](_0x2db878)&&!/onvif/i[_0x2740(0x20e)](_0x2db878))_0x31e2cf[_0x2740(0x174)+'t'](_0x2db878);}catch{}_0x31e2cf[_0x2740(0x2db)](0x8);let _0x2beb63='';const _0x167870=[],_0x26b850=0x2;let _0x46776c=0x0;const _0xbf768b=async()=>{const _0x4be0e6=_0x2740;while(_0x46776c<_0x31e2cf[_0x4be0e6(0x293)]&&!_0x2beb63){const _0x409144=_0x31e2cf[_0x46776c++];try{const _0x10bae1=await openCameraHttp(_0x409144,_0x3317df,_0x1506a6,0x640),_0x1c6b09=await peekAndClose(_0x10bae1);!_0x2beb63&&isLiveMjpeg(_0x1c6b09[_0x4be0e6(0x224)+'tType'],_0x1c6b09['peek'])&&(_0x2beb63=_0x409144,console['log'](_0x4be0e6(0x2af)+_0x4be0e6(0x217)+_0x4be0e6(0x1c6)+'peg',_0x409144));}catch{}}};for(let _0x56436b=0x0;_0x56436b<_0x26b850;_0x56436b++)_0x167870[_0x2740(0x2c0)](_0xbf768b());return await Promise[_0x2740(0x191)](_0x167870),_0x2beb63;}const SNAPSHOT_MAX_BYTES=0x2bc*0x400,SNAPSHOT_HARD_TIMEOUT_MS=0xfa0;export function extractFirstJpeg(_0x52a84b){const _0x6c43ea=_0x432854;if(!_0x52a84b||_0x52a84b['length']<0x4)return null;const _0x2a21f2=_0x52a84b[_0x6c43ea(0x169)+'f'](Buffer[_0x6c43ea(0x201)]([0xff,0xd8]));if(_0x2a21f2<0x0)return null;const _0x59a05f=_0x52a84b[_0x6c43ea(0x169)+'f'](Buffer[_0x6c43ea(0x201)]([0xff,0xd9]),_0x2a21f2+0x2);if(_0x59a05f<0x0)return null;return Buffer[_0x6c43ea(0x201)](_0x52a84b[_0x6c43ea(0x2f0)+'ay'](_0x2a21f2,_0x59a05f+0x2));}function requestOnce(_0x46efbf,_0x4f5231){return new Promise((_0x43abad,_0x358774)=>{const _0x1397d9=_0x8f68;let _0x1a0c2e=![],_0x2ada4f,_0x49abf4;const _0x30c548=(_0x1f547f,_0x372544)=>{const _0x808a40=_0x8f68;if(_0x1a0c2e)return;_0x1a0c2e=!![],clearTimeout(_0x49abf4);try{_0x2ada4f?.[_0x808a40(0x1b1)+'y']();}catch{}if(_0x1f547f)_0x358774(_0x1f547f);else _0x43abad(_0x372544);},_0x57b471=_0x46efbf[_0x1397d9(0x1ea)+'ol']===_0x1397d9(0x1cf),_0x1034b3=_0x57b471?_0x4b0e3b:_0x5cb1aa;_0x2ada4f=_0x1034b3['reques'+'t']({'protocol':_0x46efbf[_0x1397d9(0x1ea)+'ol'],'hostname':_0x46efbf['hostna'+'me'],'port':_0x46efbf[_0x1397d9(0x258)]||(_0x57b471?0x1bb:0x50),'path':_0x46efbf[_0x1397d9(0x1ad)+'me']+_0x46efbf[_0x1397d9(0x323)],'method':_0x1397d9(0x25b),'headers':_0x4f5231,'timeout':SNAPSHOT_HARD_TIMEOUT_MS,'agent':_0x57b471?httpsAgent:httpAgent,'rejectUnauthorized':![]},_0x213855=>{const _0x1e20e2=_0x1397d9,_0x154a48=[];let _0x24edb3=0x0;const _0x464ad8=_0x521baf=>{const _0x1abcd9=_0x8f68,_0x17c9e1=Buffer['concat'](_0x154a48),_0x1938ba=extractFirstJpeg(_0x17c9e1);if(_0x1938ba)return _0x30c548(null,{'status':_0x213855['status'+_0x1abcd9(0x295)]||0x0,'headers':_0x213855['header'+'s'],'body':_0x1938ba}),!![];if(_0x521baf)return _0x30c548(null,{'status':_0x213855['status'+'Code']||0x0,'headers':_0x213855[_0x1abcd9(0x2a3)+'s'],'body':_0x17c9e1}),!![];return![];};_0x213855['on'](_0x1e20e2(0x168),_0x5650d1=>{const _0x4c3a74=_0x1e20e2;_0x154a48['push'](_0x5650d1),_0x24edb3+=_0x5650d1[_0x4c3a74(0x293)];if(_0x464ad8(![]))return;_0x24edb3>SNAPSHOT_MAX_BYTES&&_0x30c548(new Error(_0x4c3a74(0x1c8)));}),_0x213855['on'](_0x1e20e2(0x153),()=>{if(!_0x1a0c2e)_0x464ad8(!![]);});}),_0x49abf4=setTimeout(()=>_0x30c548(new Error('截图超时')),SNAPSHOT_HARD_TIMEOUT_MS),_0x2ada4f['on']('timeou'+'t',()=>_0x30c548(new Error('截图超时'))),_0x2ada4f['on'](_0x1397d9(0x259),_0x12ef4c=>_0x30c548(_0x12ef4c)),_0x2ada4f[_0x1397d9(0x153)]();});}function authHeaders(_0x3f1a10,_0x374651,_0x2790be){const _0x575920=_0x432854,_0x3eae61=_0x3f1a10[_0x575920(0x1ad)+'me']+_0x3f1a10[_0x575920(0x323)];if(digestState[_0x575920(0x182)+_0x575920(0x2de)]?.[_0x575920(0x276)]===_0x575920(0x22f)&&_0x374651)return{'Authorization':digestHeader(digestState[_0x575920(0x182)+_0x575920(0x2de)],_0x374651,_0x2790be,_0x575920(0x25b),_0x3eae61)};if(_0x374651)return{'Authorization':_0x575920(0x20c)+Buffer[_0x575920(0x201)](_0x374651+':'+_0x2790be)[_0x575920(0x181)+'ng']('base64')};return{};}async function fetchAuthImage(_0x1da0e5,_0x2bc2e7,_0x112bb5,_0x58a151=0x0){const _0x3c01c8=_0x432854;if(_0x58a151>0x3)throw new Error(_0x3c01c8(0x1c5)+'过多');const _0x5ba2b6=new URL(_0x1da0e5),_0x3cee3d=decodeURIComponent(_0x5ba2b6[_0x3c01c8(0x19f)+'me']||_0x2bc2e7||''),_0x10b7a4=decodeURIComponent(_0x5ba2b6['passwo'+'rd']||_0x112bb5||'');_0x5ba2b6[_0x3c01c8(0x19f)+'me']='',_0x5ba2b6['passwo'+'rd']='';const _0x13b724=_0x5ba2b6[_0x3c01c8(0x1ad)+'me']+_0x5ba2b6[_0x3c01c8(0x323)];let _0x4b53b8=await requestOnce(_0x5ba2b6,authHeaders(_0x5ba2b6,_0x3cee3d,_0x10b7a4));if(_0x4b53b8[_0x3c01c8(0x2d3)]===0x191){const _0x852e0b=_0x4b53b8['header'+'s'][_0x3c01c8(0x322)+_0x3c01c8(0x21c)+_0x3c01c8(0x2ca)]||'';digestState[_0x3c01c8(0x182)+_0x3c01c8(0x2de)]=parseChallenge(Array[_0x3c01c8(0x2b4)+'y'](_0x852e0b)?_0x852e0b[0x0]:_0x852e0b),digestState['nc']=0x1;const _0x1dc1b1={};if(digestState[_0x3c01c8(0x182)+_0x3c01c8(0x2de)][_0x3c01c8(0x276)]===_0x3c01c8(0x22f)&&_0x3cee3d)_0x1dc1b1[_0x3c01c8(0x1f3)+_0x3c01c8(0x21e)+'n']=digestHeader(digestState[_0x3c01c8(0x182)+_0x3c01c8(0x2de)],_0x3cee3d,_0x10b7a4,_0x3c01c8(0x25b),_0x13b724);else _0x3cee3d&&(_0x1dc1b1[_0x3c01c8(0x1f3)+_0x3c01c8(0x21e)+'n']=_0x3c01c8(0x20c)+Buffer[_0x3c01c8(0x201)](_0x3cee3d+':'+_0x10b7a4)[_0x3c01c8(0x181)+'ng'](_0x3c01c8(0x232)));_0x4b53b8=await requestOnce(_0x5ba2b6,_0x1dc1b1);}if(_0x4b53b8['status']>=0x12c&&_0x4b53b8[_0x3c01c8(0x2d3)]<0x190&&_0x4b53b8[_0x3c01c8(0x2a3)+'s'][_0x3c01c8(0x203)+'on'])return fetchAuthImage(new URL(_0x4b53b8[_0x3c01c8(0x2a3)+'s'][_0x3c01c8(0x203)+'on'],_0x5ba2b6)[_0x3c01c8(0x255)],_0x3cee3d,_0x10b7a4,_0x58a151+0x1);if(_0x4b53b8[_0x3c01c8(0x2d3)]>=0x190)throw new Error(_0x4b53b8[_0x3c01c8(0x2d3)]===0x191?_0x3c01c8(0x2e2)+'密码':'截图失败('+_0x4b53b8[_0x3c01c8(0x2d3)]+')');const _0xad071f=String(_0x4b53b8[_0x3c01c8(0x2a3)+'s'][_0x3c01c8(0x224)+_0x3c01c8(0x2d5)]||'');if(_0xad071f[_0x3c01c8(0x2ac)+'es'](_0x3c01c8(0x202))||_0xad071f[_0x3c01c8(0x2ac)+'es'](_0x3c01c8(0x28f)))throw new Error(_0x3c01c8(0x2b6)+_0x3c01c8(0x1f5));return _0x4b53b8[_0x3c01c8(0x268)];}function withSnapshotLock(_0x43dc71){const _0x407200=_0x432854,_0x336af9=snapshotTail[_0x407200(0x15e)](_0x43dc71,_0x43dc71);return snapshotTail=_0x336af9['catch'](()=>{}),_0x336af9;}async function waitForPtzIdle(_0x34c811=0xfa0){const _0x4173ab=_0x432854;if(!ptzBusy)return;const _0x10ce9e=Date['now']();while(ptzBusy&&Date[_0x4173ab(0x234)]()-_0x10ce9e<_0x34c811){await new Promise(_0x563948=>setTimeout(_0x563948,0x28));}if(ptzBusy)return;await new Promise(_0xbc73a5=>setTimeout(_0xbc73a5,0x190));}async function captureFrameFromRtspOnce(){const _0x25d500=_0x432854;if(!state[_0x25d500(0x177)+'i'])throw new Error(_0x25d500(0x18b)+_0x25d500(0x198));const _0xffdefb=await ensureFfmpeg(),_0x3f2f3a=injectRtspAuth(state[_0x25d500(0x177)+'i'],state[_0x25d500(0x19f)+'me'],state[_0x25d500(0x253)+'rd']),_0x295ac0=/hevc|h265/[_0x25d500(0x20e)](state['encodi'+'ng']);return new Promise((_0x368c13,_0x176c56)=>{const _0x42320c=_0x25d500,_0x440886=[_0x42320c(0x219)+_0x42320c(0x218),_0x42320c(0x150)+_0x42320c(0x1b4),_0x42320c(0x259),_0x42320c(0x167)+_0x42320c(0x2bc)+_0x42320c(0x1cb),_0x42320c(0x269),_0x42320c(0x256)+_0x42320c(0x2f7),_0x295ac0?_0x42320c(0x15f)+'0':_0x42320c(0x162),_0x42320c(0x1c3)+_0x42320c(0x274)+_0x42320c(0x1c4),_0x295ac0?_0x42320c(0x15f)+'0':_0x42320c(0x162),'-i',_0x3f2f3a,_0x42320c(0x204),_0x42320c(0x216)+_0x42320c(0x1f6),'1',_0x42320c(0x20a),'2','-f',_0x42320c(0x260),'pipe:1'],_0x3bf8aa=spawn(_0xffdefb,_0x440886,{'stdio':['ignore',_0x42320c(0x2b0),_0x42320c(0x2b0)]}),_0x5a9979=[];let _0x473303='';_0x3bf8aa[_0x42320c(0x289)]['on'](_0x42320c(0x168),_0x49dc01=>_0x5a9979[_0x42320c(0x2c0)](_0x49dc01)),_0x3bf8aa[_0x42320c(0x308)]['on'](_0x42320c(0x168),_0xd13f90=>{_0x473303+=String(_0xd13f90||'');});const _0x569fd6=setTimeout(()=>{const _0x394801=_0x42320c;try{_0x3bf8aa['kill'](_0x394801(0x2a2)+'L');}catch{}_0x176c56(new Error(_0x394801(0x26c)+'超时'));},0x3a98),_0x14523f=(_0xa162e2,_0x91208d)=>{clearTimeout(_0x569fd6),ffmpegProcs['delete'](_0x3bf8aa);if(_0xa162e2)_0x176c56(_0xa162e2);else _0x368c13(_0x91208d);};ffmpegProcs['add'](_0x3bf8aa),_0x3bf8aa['on']('close',_0x1f7143=>{const _0x29a207=_0x42320c,_0x48f0f8=Buffer[_0x29a207(0x1d9)](_0x5a9979);if(_0x1f7143===0x0&&_0x48f0f8[_0x29a207(0x293)]>0x64){_0x14523f(null,_0x48f0f8);return;}_0x14523f(new Error(_0x473303[_0x29a207(0x163)]()||'从视频流截帧'+_0x29a207(0x189)+_0x1f7143+')'));}),_0x3bf8aa['on']('error',_0xc674e6=>_0x14523f(_0xc674e6));});}async function captureFrameFromRtsp(){return captureFrameFromRtspOnce();}export async function holdPreviewForCapture(){const _0x56f7da=_0x432854;previewHoldDepth+=0x1;if(previewHoldDepth>0x1)return{'transcode':sharedTranscode,'held':![]};if(!sharedFfmpeg||sharedFfmpeg[_0x56f7da(0x2cb)]||!streamClients[_0x56f7da(0x2f7)])return{'transcode':sharedTranscode,'held':![]};suppressFfmpegRestart=!![];const _0x1f6209=sharedTranscode;return console['log']('[camer'+'a]\x20pau'+_0x56f7da(0x1ec)+_0x56f7da(0x21d)+_0x56f7da(0x2a6)+'ture'),killSharedFfmpeg(),await new Promise(_0x24e229=>setTimeout(_0x24e229,0xfa)),{'transcode':_0x1f6209,'held':!![]};}export async function releasePreviewAfterCapture(_0x567f9b){const _0x18b66a=_0x432854;if(!_0x567f9b||previewHoldDepth<=0x0)return;previewHoldDepth-=0x1;if(previewHoldDepth>0x0)return;suppressFfmpegRestart=![],_0x567f9b[_0x18b66a(0x2f3)]&&state['connec'+_0x18b66a(0x1ef)]&&state[_0x18b66a(0x177)+'i']&&streamClients[_0x18b66a(0x2f7)]>0x0&&await ensureSharedFfmpeg(_0x567f9b[_0x18b66a(0x1de)+_0x18b66a(0x2fb)]);}async function getSnapshotFromOnvif(){const _0x5a290d=_0x432854,_0x237d58=async()=>{const _0x43e026=_0x8f68,_0x59033f=await currentCam[_0x43e026(0x23a)+_0x43e026(0x16a)+'ri']({});state[_0x43e026(0x298)+'otUri']=(typeof _0x59033f===_0x43e026(0x1f9)?_0x59033f:_0x59033f?.[_0x43e026(0x29e)]||'')[_0x43e026(0x286)+'e'](/&/g,'&');if(!state[_0x43e026(0x298)+'otUri'])throw new Error('这台摄像头没'+'有提供抓图地'+'址');};!state[_0x5a290d(0x298)+_0x5a290d(0x2d4)]&&await _0x237d58();try{return await fetchAuthImage(state[_0x5a290d(0x298)+_0x5a290d(0x2d4)],state[_0x5a290d(0x19f)+'me'],state[_0x5a290d(0x253)+'rd']);}catch(_0x39b241){return await _0x237d58(),fetchAuthImage(state[_0x5a290d(0x298)+_0x5a290d(0x2d4)],state[_0x5a290d(0x19f)+'me'],state[_0x5a290d(0x253)+'rd']);}}export async function getSnapshot(_0x76c5c6={}){const _0x3f38d3=_0x432854;if(state[_0x3f38d3(0x190)]==='onboar'+'d')return getOnboardSnapshot();if(!currentCam||!state[_0x3f38d3(0x2eb)+_0x3f38d3(0x1ef)])throw new Error(_0x3f38d3(0x285)+'像头');const _0x125446=_0x76c5c6[_0x3f38d3(0x190)]===_0x3f38d3(0x247),_0x12c907=_0x76c5c6[_0x3f38d3(0x309)+_0x3f38d3(0x320)+_0x3f38d3(0x195)]===!![]||_0x125446;let _0x25e5c0=null;!_0x12c907&&state[_0x3f38d3(0x177)+'i']&&(_0x25e5c0=await holdPreviewForCapture());try{return await withSnapshotLock(async()=>{const _0x1c5f82=_0x3f38d3;await waitForPtzIdle();if(_0x125446){const _0x35b4fe=await getSnapshotFromOnvif();return console[_0x1c5f82(0x178)](_0x1c5f82(0x2af)+'a]\x20onv'+_0x1c5f82(0x2b8)+'pshot',_0x35b4fe[_0x1c5f82(0x293)]),_0x35b4fe;}if(state[_0x1c5f82(0x177)+'i']){let _0x329963=null;for(let _0x4e3819=0x0;_0x4e3819<0x3;_0x4e3819++){try{const _0x2896d0=await captureFrameFromRtsp();return console[_0x1c5f82(0x178)](_0x1c5f82(0x2af)+_0x1c5f82(0x2d9)+_0x1c5f82(0x2ab)+'e',_0x2896d0[_0x1c5f82(0x293)],_0x4e3819>0x0?_0x1c5f82(0x28c)+_0x4e3819:''),_0x2896d0;}catch(_0x18ccee){_0x329963=_0x18ccee,console[_0x1c5f82(0x16b)](_0x1c5f82(0x2af)+_0x1c5f82(0x2d9)+_0x1c5f82(0x2ab)+_0x1c5f82(0x16f)+_0x1c5f82(0x1d0),_0x4e3819+0x1,_0x18ccee?.[_0x1c5f82(0x1ac)+'e']||_0x18ccee),_0x4e3819<0x2&&await new Promise(_0x20311e=>setTimeout(_0x20311e,0x15e*(_0x4e3819+0x1)));}}console[_0x1c5f82(0x16b)](_0x1c5f82(0x2af)+_0x1c5f82(0x2d9)+'p\x20fram'+_0x1c5f82(0x24c)+_0x1c5f82(0x249)+_0x1c5f82(0x19d),_0x329963?.['messag'+'e']||_0x329963);}return getSnapshotFromOnvif();});}finally{!_0x12c907&&await releasePreviewAfterCapture(_0x25e5c0);}}async function ptzOnvifNudge(_0x375329){const _0x24a2fd=_0x432854,_0x43ea50=onvifVectorForAction(_0x375329);if(!_0x43ea50)throw new Error(_0x24a2fd(0x2ad)+'方向');if(!state[_0x24a2fd(0x17d)])throw new Error(_0x24a2fd(0x18e)+_0x24a2fd(0x30c)+'Onvif\x20'+_0x24a2fd(0x292)+'Z');ptzBusy&&await waitForPtzIdle();const _0x386a87=async _0x1e5d88=>{const _0xa7b51a=_0x24a2fd;if(!_0x1e5d88)throw new Error(_0xa7b51a(0x285)+'像头');const _0x52b1f8={'x':_0x43ea50['x']||0x0,'y':_0x43ea50['y']||0x0,'timeout':ONVIF_NUDGE_MS};return _0x43ea50[_0xa7b51a(0x1b5)]?(_0x52b1f8['zoom']=_0x43ea50[_0xa7b51a(0x1b5)],_0x52b1f8['onlySe'+_0xa7b51a(0x25c)]=!![]):_0x52b1f8[_0xa7b51a(0x165)+'ndPanT'+'ilt']=!![],await _0x1e5d88[_0xa7b51a(0x164)+_0xa7b51a(0x1d6)+'ve'](_0x52b1f8),await _0x1e5d88[_0xa7b51a(0x300)]({'panTilt':!![],'zoom':!![]}),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x386a87(currentCam);}catch(_0x1e4a01){if(!isNetworkError(_0x1e4a01))throw new Error(cameraError(_0x1e4a01,_0x24a2fd(0x22c)));const _0x4849f7=await refreshOnvif();return await _0x386a87(_0x4849f7);}}catch(_0x5e778d){throw new Error(cameraError(_0x5e778d,_0x24a2fd(0x22c)));}finally{ptzBusy=![];}}export async function ptzMove(_0x30db46,_0x118c71={}){const _0x4d3497=_0x432854;if(gimbalAvailable()&&state[_0x4d3497(0x190)]!=='onvif')return ptzOnboard(_0x30db46,_0x118c71);if(!state[_0x4d3497(0x2eb)+_0x4d3497(0x1ef)])throw new Error(_0x4d3497(0x285)+'像头');const _0xb91250=String(_0x118c71[_0x4d3497(0x1e5)]||''),_0x3cb175=String(_0x30db46||''),_0x567270=_0x3cb175[_0x4d3497(0x1f2)+_0x4d3497(0x2a4)](_0x4d3497(0x317))?_0x3cb175[_0x4d3497(0x1a7)](0x6):_0x3cb175;if(_0xb91250===_0x4d3497(0x240)||_0x3cb175['starts'+'With'](_0x4d3497(0x317)))return ptzOnvifNudge(_0x567270);if(_0x30db46!=='stop'&&ptzBusy)return{'ok':!![]};while(_0x30db46===_0x4d3497(0x300)&&ptzBusy){await new Promise(_0x11608f=>setTimeout(_0x11608f,0x28));}const _0x47cf9f=async _0x1fc88f=>{const _0x98c9d6=_0x4d3497;if(!_0x1fc88f)throw new Error(_0x98c9d6(0x285)+'像头');if(_0x30db46===_0x98c9d6(0x300))return await _0x1fc88f[_0x98c9d6(0x300)]({'panTilt':!![],'zoom':!![]}),{'ok':!![]};const _0x2f6470=onvifVectorForAction(_0x30db46);if(!_0x2f6470)throw new Error(_0x98c9d6(0x2ad)+'方向');if(!state[_0x98c9d6(0x17d)])throw new Error(_0x98c9d6(0x18e)+_0x98c9d6(0x30c)+'Onvif\x20'+'未开放\x20PT'+'Z');const _0x5b772a={'x':_0x2f6470['x']||0x0,'y':_0x2f6470['y']||0x0,'timeout':PTZ_TIMEOUT_MS};return _0x2f6470[_0x98c9d6(0x1b5)]?(_0x5b772a[_0x98c9d6(0x1b5)]=_0x2f6470[_0x98c9d6(0x1b5)],_0x5b772a['onlySe'+_0x98c9d6(0x25c)]=!![]):_0x5b772a[_0x98c9d6(0x165)+_0x98c9d6(0x28b)+_0x98c9d6(0x18a)]=!![],await _0x1fc88f[_0x98c9d6(0x164)+_0x98c9d6(0x1d6)+'ve'](_0x5b772a),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x47cf9f(currentCam);}catch(_0x3412ee){if(!isNetworkError(_0x3412ee))throw new Error(cameraError(_0x3412ee,_0x4d3497(0x22c)));const _0x2b00c7=await refreshOnvif();return await _0x47cf9f(_0x2b00c7);}}catch(_0x4c2502){throw new Error(cameraError(_0x4c2502,_0x4d3497(0x22c)));}finally{ptzBusy=![];}}export async function ensureCameraConnected(_0x47e624={}){const _0x2142b1=_0x432854;if(state[_0x2142b1(0x2eb)+_0x2142b1(0x1ef)])return publicState();if(_0x47e624[_0x2142b1(0x190)]===_0x2142b1(0x2f9)+'d')throw new Error(_0x2142b1(0x2b5)+'支持');const _0x3ace76=String(_0x47e624[_0x2142b1(0x270)+'me']||'')[_0x2142b1(0x163)]();if(!_0x3ace76)throw new Error('请先在\x20MO'+'SS「视觉中'+_0x2142b1(0x27b)+_0x2142b1(0x1eb));return connectCamera({'hostname':_0x3ace76,'port':Number(_0x47e624['port']||0x50),'username':String(_0x47e624[_0x2142b1(0x19f)+'me']||'')[_0x2142b1(0x163)](),'password':String(_0x47e624[_0x2142b1(0x253)+'rd']||''),'path':String(_0x47e624[_0x2142b1(0x2ae)]||_0x2142b1(0x1a6)+_0x2142b1(0x294)+_0x2142b1(0x24e)+_0x2142b1(0x306))['trim']()||_0x2142b1(0x1a6)+_0x2142b1(0x294)+_0x2142b1(0x24e)+_0x2142b1(0x306)});}export async function ptzContinuousMove(_0x365a71,_0x5ede32,_0x2d7d3c,_0x18e40b=0x1){const _0x95bfb=_0x432854;if(gimbalAvailable()&&state[_0x95bfb(0x190)]!==_0x95bfb(0x247)){const _0xfdb34e=payloadForVector(_0x365a71,_0x5ede32);if(!cameraHooks[_0x95bfb(0x26f)+'hGimba'+'l'])throw new Error(_0x95bfb(0x2f5)+'绪');await cameraHooks[_0x95bfb(0x26f)+_0x95bfb(0x30e)+'l'](_0xfdb34e);if(_0xfdb34e['action']!==_0x95bfb(0x300)){const _0xc42afd=Math[_0x95bfb(0x19a)](0x190,Math[_0x95bfb(0x2fa)](0xfa0,Math[_0x95bfb(0x24d)](Number(_0x18e40b)||0x1)*0x3e8));setTimeout(()=>{const _0x567943=_0x95bfb;cameraHooks[_0x567943(0x26f)+_0x567943(0x30e)+'l']?.({'action':'stop'})[_0x567943(0x2e4)](()=>{});},_0xc42afd);}return{'ok':!![]};}if(!state['connec'+'ted'])throw new Error(_0x95bfb(0x285)+'像头');const _0x4dfda8=clampPtzSpeed(_0x365a71),_0x2e9c6f=clampPtzSpeed(_0x5ede32),_0x2a23dc=clampPtzSpeed(_0x2d7d3c),_0x1549d2=Math['max'](0x3e8,Math[_0x95bfb(0x2fa)](0x2710,Math[_0x95bfb(0x24d)](Number(_0x18e40b)||0x1)*0x3e8));if(ptzBusy)return{'ok':!![]};const _0xc2ce50=async _0x4c599a=>{const _0x15ca6b=_0x95bfb;if(!_0x4c599a)throw new Error(_0x15ca6b(0x285)+'像头');if(!state[_0x15ca6b(0x17d)]&&(_0x4dfda8||_0x2e9c6f||_0x2a23dc))throw new Error(_0x15ca6b(0x18e)+_0x15ca6b(0x30c)+_0x15ca6b(0x324)+_0x15ca6b(0x292)+'Z');const _0x46c001={'x':_0x4dfda8,'y':_0x2e9c6f,'timeout':_0x1549d2};_0x2a23dc&&(_0x46c001['zoom']=_0x2a23dc);if(_0x2a23dc&&!_0x4dfda8&&!_0x2e9c6f)_0x46c001['onlySe'+_0x15ca6b(0x25c)]=!![];else!_0x2a23dc&&(_0x46c001[_0x15ca6b(0x165)+_0x15ca6b(0x28b)+_0x15ca6b(0x18a)]=!![]);return await _0x4c599a['contin'+_0x15ca6b(0x1d6)+'ve'](_0x46c001),{'ok':!![]};};ptzBusy=!![];try{try{return await _0xc2ce50(currentCam);}catch(_0x4d2d7e){if(!isNetworkError(_0x4d2d7e))throw new Error(cameraError(_0x4d2d7e,'云台控制失败'));const _0x4b4b6a=await refreshOnvif();return await _0xc2ce50(_0x4b4b6a);}}catch(_0xc85123){throw new Error(cameraError(_0xc85123,_0x95bfb(0x22c)));}finally{ptzBusy=![];}}function bitstreamFilter(_0x23c534){const _0x3d8361=_0x432854;if(/hevc|h265/[_0x3d8361(0x20e)](_0x23c534))return'hevc_m'+'p4toan'+_0x3d8361(0x1cc);if(/h264|avc/[_0x3d8361(0x20e)](_0x23c534))return'h264_m'+'p4toan'+_0x3d8361(0x1cc);return'';}function shouldTranscode(_0x17367b=![]){const _0x51bf82=_0x432854;return _0x17367b||/hevc|h265/[_0x51bf82(0x20e)](state[_0x51bf82(0x24a)+'ng']);}function broadcastTs(_0x106c23){const _0x3e815d=_0x432854;if(!_0x106c23?.['length'])return;for(const _0x255cb1 of streamClients){try{if(_0x255cb1[_0x3e815d(0x25a)+_0x3e815d(0x220)+_0x3e815d(0x193)])continue;_0x255cb1[_0x3e815d(0x2b3)](_0x106c23);}catch{streamClients[_0x3e815d(0x2f1)](_0x255cb1);}}}function killSharedFfmpeg(){const _0x5eae76=_0x432854;clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=null;const _0x3193eb=sharedFfmpeg;sharedFfmpeg=null;if(!_0x3193eb)return;ffmpegProcs[_0x5eae76(0x2f1)](_0x3193eb);try{_0x3193eb[_0x5eae76(0x289)]?.['remove'+'AllLis'+_0x5eae76(0x1f8)](_0x5eae76(0x168)),_0x3193eb[_0x5eae76(0x1b9)](_0x5eae76(0x2a2)+'L');}catch{}}async function ensureSharedFfmpeg(_0x3f9bbe){const _0x3d6329=_0x432854,_0x5c0097=!!_0x3f9bbe;if(sharedFfmpeg&&!sharedFfmpeg[_0x3d6329(0x2cb)]){if(sharedTranscode===_0x5c0097)return;console[_0x3d6329(0x178)](_0x3d6329(0x226)+_0x3d6329(0x1f0)+_0x3d6329(0x192),sharedTranscode?_0x3d6329(0x1c0):'copy','->',_0x5c0097?_0x3d6329(0x1c0):'copy'),killSharedFfmpeg();}let _0x5bd0a8;try{_0x5bd0a8=await ensureFfmpeg();}catch(_0x5025af){console[_0x3d6329(0x16b)](_0x3d6329(0x226)+'g]',_0x5025af['messag'+'e']);return;}if(sharedFfmpeg&&!sharedFfmpeg[_0x3d6329(0x2cb)]){if(sharedTranscode===_0x5c0097)return;killSharedFfmpeg();}const _0x15f169=injectRtspAuth(state['rtspUr'+'i'],state['userna'+'me'],state[_0x3d6329(0x253)+'rd']),_0x3002be=/hevc|h265/[_0x3d6329(0x20e)](state[_0x3d6329(0x24a)+'ng']),_0x487c51=[_0x3d6329(0x219)+'banner',_0x3d6329(0x150)+_0x3d6329(0x1b4),'warnin'+'g',_0x3d6329(0x167)+_0x3d6329(0x2bc)+_0x3d6329(0x1cb),_0x3d6329(0x269),_0x3d6329(0x321)+'s',_0x3d6329(0x2e3),'-probe'+_0x3d6329(0x2f7),_0x3002be?_0x3d6329(0x15f)+'0':_0x3d6329(0x162),_0x3d6329(0x1c3)+_0x3d6329(0x274)+_0x3d6329(0x1c4),_0x3002be?'200000'+'0':'500000',_0x3d6329(0x315)+'ds','1','-i',_0x15f169,_0x3d6329(0x204)];if(_0x5c0097)_0x487c51[_0x3d6329(0x2c0)](_0x3d6329(0x19b),_0x3d6329(0x156)+'4',_0x3d6329(0x264)+'t',_0x3d6329(0x1ee)+_0x3d6329(0x327),_0x3d6329(0x2b1),_0x3d6329(0x1b3)+_0x3d6329(0x280),_0x3d6329(0x26b)+_0x3d6329(0x27c),_0x3d6329(0x23e)+'ne',_0x3d6329(0x1e6)+'mt','yuv420'+'p',_0x3d6329(0x236),'0','-g','15',_0x3d6329(0x290),_0x3d6329(0x154)+_0x3d6329(0x184)+_0x3d6329(0x2c6)+'e\x5c,I)+'+_0x3d6329(0x1db)+_0x3d6329(0x185)+_0x3d6329(0x251)+_0x3d6329(0x26a)+_0x3d6329(0x1dd)+_0x3d6329(0x223)+_0x3d6329(0x2fe)+_0x3d6329(0x2e0)+_0x3d6329(0x28d)+_0x3d6329(0x212));else{_0x487c51[_0x3d6329(0x2c0)](_0x3d6329(0x19b),_0x3d6329(0x19e));const _0x2d73e6=bitstreamFilter(state[_0x3d6329(0x24a)+'ng']);if(_0x2d73e6)_0x487c51[_0x3d6329(0x2c0)](_0x3d6329(0x2ef),_0x2d73e6);}_0x487c51[_0x3d6329(0x2c0)]('-f',_0x3d6329(0x1b6),_0x3d6329(0x175)+'lay','0',_0x3d6329(0x29c)+_0x3d6329(0x179),'0',_0x3d6329(0x245)+_0x3d6329(0x1a0)+'ts','1','pipe:1'),sharedTranscode=_0x5c0097;const _0x36e886=spawn(_0x5bd0a8,_0x487c51,{'stdio':[_0x3d6329(0x1b0),_0x3d6329(0x2b0),_0x3d6329(0x2b0)]});sharedFfmpeg=_0x36e886,ffmpegProcs[_0x3d6329(0x313)](_0x36e886);let _0x516bf0=![];console[_0x3d6329(0x178)](_0x3d6329(0x226)+'g]',_0x5c0097?_0x3d6329(0x1de)+_0x3d6329(0x21a)+'64':_0x3d6329(0x22a)+(state[_0x3d6329(0x24a)+'ng']||_0x3d6329(0x157)+'n'),state[_0x3d6329(0x270)+'me']),_0x36e886[_0x3d6329(0x289)]['on'](_0x3d6329(0x168),_0x4e09bd=>{const _0x1c6311=_0x3d6329;!_0x516bf0&&(_0x516bf0=!![],console['log'](_0x1c6311(0x226)+'g]\x20fir'+_0x1c6311(0x246)+'es',_0x4e09bd[_0x1c6311(0x293)])),ffmpegBackoffMs=0x320,broadcastTs(_0x4e09bd);}),_0x36e886[_0x3d6329(0x308)]['on'](_0x3d6329(0x168),_0x1dd040=>{const _0x3b46a3=_0x3d6329,_0x29520b=String(_0x1dd040||'')[_0x3b46a3(0x163)]();if(_0x29520b)console['warn'](_0x3b46a3(0x226)+'g]',_0x29520b);}),_0x36e886['on'](_0x3d6329(0x259),_0x20a294=>{const _0x3ec3b1=_0x3d6329;console['warn'](_0x3ec3b1(0x226)+'g]\x20spa'+'wn',_0x20a294[_0x3ec3b1(0x1ac)+'e']);}),_0x36e886['on'](_0x3d6329(0x29d),_0x87e8a2=>{const _0x58237f=_0x3d6329;ffmpegProcs[_0x58237f(0x2f1)](_0x36e886);if(sharedFfmpeg===_0x36e886)sharedFfmpeg=null;console[_0x58237f(0x16b)](_0x58237f(0x226)+_0x58237f(0x2f4)+'t',_0x87e8a2,_0x58237f(0x168),_0x516bf0,'client'+'s',streamClients[_0x58237f(0x2f7)]);if(suppressFfmpegRestart)return;if(!state[_0x58237f(0x2eb)+_0x58237f(0x1ef)]||!streamClients[_0x58237f(0x2f7)])return;console[_0x58237f(0x16b)]('[ffmpe'+_0x58237f(0x2f4)+'t',_0x87e8a2,_0x58237f(0x230)+_0x58237f(0x267),ffmpegBackoffMs,'ms'),clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=setTimeout(()=>{const _0x4e2c2e=_0x58237f;ffmpegRestartTimer=null;if(!state[_0x4e2c2e(0x2eb)+'ted']||!streamClients['size'])return;ensureSharedFfmpeg(sharedTranscode);},ffmpegBackoffMs),ffmpegBackoffMs=Math[_0x58237f(0x2fa)](ffmpegBackoffMs*0x2,0x1f40);});}function startMpegtsStream(_0x2e5bf2,_0x3b9645){const _0xb4605c=_0x432854,_0x490111=shouldTranscode(String(_0x2e5bf2[_0xb4605c(0x15c)]?.[_0xb4605c(0x272)]||'')===_0xb4605c(0x1c0));_0x2e5bf2[_0xb4605c(0x2e1)+'eout'](0x0),_0x3b9645[_0xb4605c(0x2e1)+_0xb4605c(0x273)](0x0),_0x2e5bf2[_0xb4605c(0x252)]?.['setTim'+_0xb4605c(0x273)](0x0),_0x3b9645[_0xb4605c(0x252)]?.['setTim'+'eout'](0x0),_0x2e5bf2[_0xb4605c(0x252)]?.[_0xb4605c(0x1cd)+'elay']?.(!![]),_0x3b9645[_0xb4605c(0x252)]?.[_0xb4605c(0x1cd)+_0xb4605c(0x1d7)]?.(!![]),_0x3b9645[_0xb4605c(0x2da)+_0xb4605c(0x172)](_0xb4605c(0x1fa)+_0xb4605c(0x2a5),_0xb4605c(0x2ec)+'mp2t'),_0x3b9645[_0xb4605c(0x2da)+_0xb4605c(0x172)]('Cache-'+_0xb4605c(0x18f)+'l','no-sto'+_0xb4605c(0x275)+_0xb4605c(0x312)+_0xb4605c(0x211)+'-reval'+_0xb4605c(0x1ae)),_0x3b9645['setHea'+_0xb4605c(0x172)](_0xb4605c(0x1c1)+_0xb4605c(0x1c4),_0xb4605c(0x2cf)+_0xb4605c(0x170)),_0x3b9645[_0xb4605c(0x2da)+_0xb4605c(0x172)](_0xb4605c(0x155)+_0xb4605c(0x233)+'ering','no');if(typeof _0x3b9645[_0xb4605c(0x21b)+_0xb4605c(0x2c7)]===_0xb4605c(0x277)+'on')_0x3b9645['flushH'+_0xb4605c(0x2c7)]();streamClients[_0xb4605c(0x313)](_0x3b9645),clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=null,ensureSharedFfmpeg(_0x490111);let _0x41b844=![];const _0x464046=()=>{const _0x17d48f=_0xb4605c;if(_0x41b844)return;_0x41b844=!![],streamClients[_0x17d48f(0x2f1)](_0x3b9645);try{if(!_0x3b9645[_0x17d48f(0x25a)+'leEnde'+'d'])_0x3b9645['end']();}catch{}streamClients[_0x17d48f(0x2f7)]===0x0&&(clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=setTimeout(()=>{const _0x1830e9=_0x17d48f;ffmpegIdleTimer=null;if(streamClients[_0x1830e9(0x2f7)]===0x0)killSharedFfmpeg();},0xfa0));};_0x2e5bf2['on'](_0xb4605c(0x183),_0x464046),_0x3b9645['on'](_0xb4605c(0x183),_0x464046);}export function registerCameraRoutes(_0x169d45,{getConfig:_0x49382f,saveConfig:_0x33fde2}){const _0x4ed249=_0x432854;_0x169d45[_0x4ed249(0x23f)](_0x4ed249(0x262)+'amera/'+_0x4ed249(0x1f1)+'er',async(_0xbd634b,_0x57c2e4)=>{const _0x3d88a6=_0x4ed249;try{const _0x123151=await discover();onboardAvailable()&&_0x123151['unshif'+'t']({'kind':_0x3d88a6(0x2f9)+'d','hostname':_0x3d88a6(0x2f9)+'d','port':0x157c,'path':_0x3d88a6(0x209)+_0x3d88a6(0x206)+_0x3d88a6(0x1fd),'name':_0x3d88a6(0x1e1),'hardware':_0x3d88a6(0x326)}),_0x57c2e4[_0x3d88a6(0x2c5)]({'devices':_0x123151});}catch(_0x1d2d83){_0x57c2e4[_0x3d88a6(0x2d3)](0x190)[_0x3d88a6(0x2c5)]({'message':cameraError(_0x1d2d83,_0x3d88a6(0x1bd)+'败')});}}),_0x169d45[_0x4ed249(0x152)](_0x4ed249(0x262)+_0x4ed249(0x2e7)+_0x4ed249(0x2d3),(_0x4c0761,_0x5c6c60)=>{const _0x55c14e=_0x4ed249,_0x27d8b4=_0x49382f();if(stripOnboardCameraConfig(_0x27d8b4))_0x33fde2();const _0x49b8a0=_0x27d8b4[_0x55c14e(0x266)]||{};_0x5c6c60[_0x55c14e(0x2c5)]({...publicState(),'saved':{'source':_0x49b8a0['source']||'','hostname':_0x49b8a0[_0x55c14e(0x270)+'me']||'','port':_0x49b8a0[_0x55c14e(0x258)]||0x50,'path':_0x49b8a0['path']||_0x55c14e(0x1a6)+_0x55c14e(0x294)+'e_serv'+_0x55c14e(0x306),'username':_0x49b8a0['userna'+'me']||'','password_set':!!_0x49b8a0[_0x55c14e(0x253)+'rd']}});}),_0x169d45['post'](_0x4ed249(0x262)+_0x4ed249(0x2e7)+_0x4ed249(0x2eb)+'t',async(_0xb73de5,_0x1b7264)=>{const _0x15bf31=_0x4ed249;try{const _0x502781=_0x49382f(),_0x590f15=_0x502781['camera']||{},_0x4977eb=_0xb73de5[_0x15bf31(0x268)]?.[_0x15bf31(0x190)]===_0x15bf31(0x2f9)+'d'||_0xb73de5[_0x15bf31(0x268)]?.[_0x15bf31(0x23c)]===_0x15bf31(0x2f9)+'d'||_0xb73de5[_0x15bf31(0x268)]?.[_0x15bf31(0x270)+'me']===_0x15bf31(0x2f9)+'d';if(_0x4977eb){if(stripOnboardCameraConfig(_0x502781))_0x33fde2();_0x1b7264[_0x15bf31(0x2d3)](0x190)[_0x15bf31(0x2c5)]({'message':_0x15bf31(0x2b5)+'支持'});return;}const _0x43a021=_0xb73de5[_0x15bf31(0x268)]?.[_0x15bf31(0x253)+'rd']||_0x590f15[_0x15bf31(0x253)+'rd']||'',_0x33c2b5=await connectCamera({'hostname':_0xb73de5[_0x15bf31(0x268)]?.[_0x15bf31(0x270)+'me']||_0x590f15['hostna'+'me'],'port':_0xb73de5[_0x15bf31(0x268)]?.[_0x15bf31(0x258)]||_0x590f15[_0x15bf31(0x258)],'username':_0xb73de5[_0x15bf31(0x268)]?.['userna'+'me']||_0x590f15[_0x15bf31(0x19f)+'me'],'password':_0x43a021,'path':_0xb73de5['body']?.[_0x15bf31(0x2ae)]||_0x590f15[_0x15bf31(0x2ae)]});_0x502781[_0x15bf31(0x266)]={'source':_0x15bf31(0x247),'hostname':state[_0x15bf31(0x270)+'me'],'port':state[_0x15bf31(0x258)],'path':state[_0x15bf31(0x2ae)],'username':state[_0x15bf31(0x19f)+'me'],'password':state[_0x15bf31(0x253)+'rd']},_0x33fde2(),_0x1b7264[_0x15bf31(0x2c5)](_0x33c2b5);}catch(_0x1da641){_0x1b7264[_0x15bf31(0x2d3)](0x190)['json']({'message':cameraError(_0x1da641,_0x15bf31(0x2cd)+'败')});}}),_0x169d45[_0x4ed249(0x23f)]('/api/c'+_0x4ed249(0x2e7)+_0x4ed249(0x2d0)+_0x4ed249(0x296),(_0x46171b,_0x56802b)=>{const _0x2df446=_0x4ed249;_0x56802b[_0x2df446(0x2c5)](disconnectCamera());}),_0x169d45[_0x4ed249(0x152)](_0x4ed249(0x262)+'amera/'+_0x4ed249(0x298)+'ot',async(_0x452b73,_0x3f3819)=>{const _0x22a136=_0x4ed249;try{const _0x41d749=await getSnapshot();if(!_0x41d749?.['length']){_0x3f3819[_0x22a136(0x2d3)](0xcc)[_0x22a136(0x153)]();return;}_0x3f3819[_0x22a136(0x2da)+_0x22a136(0x172)](_0x22a136(0x1fa)+'t-Type','image/'+_0x22a136(0x2ea)),_0x3f3819[_0x22a136(0x2da)+_0x22a136(0x172)]('Cache-'+_0x22a136(0x18f)+'l',_0x22a136(0x31d)+'re'),_0x3f3819[_0x22a136(0x2dd)](_0x41d749);}catch(_0x5ac52d){_0x3f3819[_0x22a136(0x2d3)](0x190)[_0x22a136(0x2c5)]({'message':cameraError(_0x5ac52d,_0x22a136(0x200))});}}),_0x169d45[_0x4ed249(0x152)](_0x4ed249(0x262)+_0x4ed249(0x2e7)+_0x4ed249(0x328),async(_0x9ec859,_0x3a87b2)=>{const _0x48837b=_0x4ed249;if(!state[_0x48837b(0x2eb)+_0x48837b(0x1ef)]){_0x3a87b2[_0x48837b(0x2d3)](0x190)[_0x48837b(0x2c5)]({'message':'还没有画面,'+_0x48837b(0x2aa)+'头'});return;}if(state[_0x48837b(0x177)+'i']){startMpegtsStream(_0x9ec859,_0x3a87b2);return;}if(state[_0x48837b(0x214)+'i'])try{const _0x4e15db=await openCameraHttp(state[_0x48837b(0x214)+'i'],state[_0x48837b(0x19f)+'me'],state['passwo'+'rd'],0x1f40);_0x3a87b2[_0x48837b(0x2da)+_0x48837b(0x172)](_0x48837b(0x1fa)+'t-Type',_0x4e15db[_0x48837b(0x224)+'tType']||_0x48837b(0x1e4)+_0x48837b(0x1e0)+_0x48837b(0x2f8)+_0x48837b(0x286)+_0x48837b(0x297)+'ndary='+'frame'),_0x3a87b2['setHea'+_0x48837b(0x172)](_0x48837b(0x1fb)+_0x48837b(0x18f)+'l','no-sto'+'re,\x20no'+_0x48837b(0x312)+',\x20must'+'-reval'+'idate'),_0x3a87b2[_0x48837b(0x2da)+_0x48837b(0x172)](_0x48837b(0x1c1)+_0x48837b(0x1c4),'keep-a'+_0x48837b(0x170)),_0x3a87b2[_0x48837b(0x2da)+_0x48837b(0x172)](_0x48837b(0x155)+'l-Buff'+'ering','no');const _0x44b3a5=()=>{const _0x408897=_0x48837b;try{_0x4e15db[_0x408897(0x27e)][_0x408897(0x1b1)+'y']();}catch{}try{_0x4e15db[_0x408897(0x24b)][_0x408897(0x1b1)+'y']();}catch{}};_0x9ec859['on'](_0x48837b(0x183),_0x44b3a5),_0x3a87b2['on']('close',_0x44b3a5),_0x4e15db[_0x48837b(0x24b)]['on'](_0x48837b(0x259),_0x44b3a5),_0x4e15db[_0x48837b(0x24b)][_0x48837b(0x2b0)](_0x3a87b2);return;}catch(_0x564d09){console[_0x48837b(0x16b)](_0x48837b(0x2af)+_0x48837b(0x263)+_0x48837b(0x30b),_0x564d09?.[_0x48837b(0x1ac)+'e']||_0x564d09);}if(!state[_0x48837b(0x298)+_0x48837b(0x2d4)]){_0x3a87b2[_0x48837b(0x2d3)](0x190)[_0x48837b(0x2c5)]({'message':_0x48837b(0x18e)+_0x48837b(0x20f)+'览流'});return;}_0x3a87b2[_0x48837b(0x2da)+_0x48837b(0x172)](_0x48837b(0x1fa)+_0x48837b(0x2a5),_0x48837b(0x1e4)+_0x48837b(0x1e0)+_0x48837b(0x2f8)+_0x48837b(0x286)+_0x48837b(0x297)+_0x48837b(0x27f)+'frame'),_0x3a87b2[_0x48837b(0x2da)+_0x48837b(0x172)](_0x48837b(0x1fb)+_0x48837b(0x18f)+'l',_0x48837b(0x31d)+_0x48837b(0x275)+'-cache'+_0x48837b(0x211)+_0x48837b(0x1c7)+_0x48837b(0x1ae)),_0x3a87b2[_0x48837b(0x2da)+'der'](_0x48837b(0x2c9),'no-cac'+'he'),_0x3a87b2['setHea'+_0x48837b(0x172)](_0x48837b(0x1c1)+_0x48837b(0x1c4),_0x48837b(0x2cf)+_0x48837b(0x170)),_0x3a87b2[_0x48837b(0x2da)+_0x48837b(0x172)](_0x48837b(0x155)+'l-Buff'+_0x48837b(0x31c),'no');let _0x38acab=![];const _0x40122d=()=>{_0x38acab=!![];};_0x9ec859['on'](_0x48837b(0x183),_0x40122d),_0x3a87b2['on']('close',_0x40122d);const _0x12f9ad=state['source']===_0x48837b(0x2f9)+'d';_0x12f9ad&¬eOnboardPreviewClient(0x1);try{await runOnboardPreviewLoop({'getFrame':()=>getSnapshot()[_0x48837b(0x2e4)](()=>null),'writeFrame':async _0x2bc1c9=>{const _0x30b687=_0x48837b;if(_0x38acab||!state[_0x30b687(0x2eb)+_0x30b687(0x1ef)])return![];try{return _0x3a87b2[_0x30b687(0x2b3)](_0x30b687(0x199)+_0x30b687(0x1a2)+'tent-T'+_0x30b687(0x208)+_0x30b687(0x257)+_0x30b687(0x1b8)+'ontent'+_0x30b687(0x1da)+_0x30b687(0x32c)+_0x2bc1c9['length']+_0x30b687(0x1ca)),_0x3a87b2[_0x30b687(0x2b3)](_0x2bc1c9),_0x3a87b2[_0x30b687(0x2b3)]('\x0d\x0a'),!![];}catch{return![];}},'isOpen':()=>!_0x38acab&&state[_0x48837b(0x2eb)+'ted'],'delayMs':_0x12f9ad?ONBOARD_STREAM_INTERVAL_MS:0x0,'emptyDelayMs':_0x12f9ad?ONBOARD_EMPTY_RETRY_MS:0x12c});}finally{_0x12f9ad&¬eOnboardPreviewClient(-0x1);if(!_0x3a87b2['writab'+_0x48837b(0x307)+'d'])_0x3a87b2[_0x48837b(0x153)]();}}),_0x169d45[_0x4ed249(0x23f)]('/api/c'+_0x4ed249(0x2e7)+_0x4ed249(0x17d),async(_0x4cf3bd,_0x5c57ba)=>{const _0x258d04=_0x4ed249;try{const _0x92423c=String(_0x4cf3bd['body']?.['action']||'');_0x5c57ba[_0x258d04(0x2c5)](await ptzMove(_0x92423c,{'press':_0x4cf3bd[_0x258d04(0x268)]?.[_0x258d04(0x1e5)]}));}catch(_0x4af4a8){_0x5c57ba[_0x258d04(0x2d3)](0x190)[_0x258d04(0x2c5)]({'message':cameraError(_0x4af4a8,_0x258d04(0x22c))});}});}
|
package/dist-server/dev-ui.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function _0x58eb(_0xd4084b,_0x486c1b){_0xd4084b=_0xd4084b-0x116;const _0x1d425f=_0x1d42();let _0x58ebf3=_0x1d425f[_0xd4084b];if(_0x58eb['UfaBSm']===undefined){var _0x53cf4c=function(_0x559479){const _0x364f15='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x7fa4d3='',_0x436aa7='';for(let _0x4f9de4=0x0,_0x1734c6,_0x21c1c2,_0x13006c=0x0;_0x21c1c2=_0x559479['charAt'](_0x13006c++);~_0x21c1c2&&(_0x1734c6=_0x4f9de4%0x4?_0x1734c6*0x40+_0x21c1c2:_0x21c1c2,_0x4f9de4++%0x4)?_0x7fa4d3+=String['fromCharCode'](0xff&_0x1734c6>>(-0x2*_0x4f9de4&0x6)):0x0){_0x21c1c2=_0x364f15['indexOf'](_0x21c1c2);}for(let _0x50fe1f=0x0,_0x27439a=_0x7fa4d3['length'];_0x50fe1f<_0x27439a;_0x50fe1f++){_0x436aa7+='%'+('00'+_0x7fa4d3['charCodeAt'](_0x50fe1f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x436aa7);};_0x58eb['sNeRfV']=_0x53cf4c,_0x58eb['kGwmuK']={},_0x58eb['UfaBSm']=!![];}const _0x26aad7=_0x1d425f[0x0],_0x7373c0=_0xd4084b+_0x26aad7,_0x57a2df=_0x58eb['kGwmuK'][_0x7373c0];return!_0x57a2df?(_0x58ebf3=_0x58eb['sNeRfV'](_0x58ebf3),_0x58eb['kGwmuK'][_0x7373c0]=_0x58ebf3):_0x58ebf3=_0x57a2df,_0x58ebf3;}function _0x1d42(){const _0x12d48e=['DxnL','zw52','tujfrerf','rf9wsvrf','mtGWmdyWoeTXAfveua','D2fYzxm','ogTLrNP1va','mte0uwjPqKjS','ndeYmJm0mMf3se1TDG','DML0zq','DhjPBq','zMfSC2u','mJm4mdGZntb2q3nsEem','mtqZmtKZBvfzrKXh','rvzFvuK','mJyXnte0offVC251Ca','nJiZnZG2oeLMzfzoyG','BwLKzgXL','mtK1otbevunpvMy','mtbntwjmqNO','tu9tu19e','tK9erv9f','DML0zs5J','DgLVBG'];_0x1d42=function(){return _0x12d48e;};return _0x1d42();}(function(_0xed8c5f,_0x34a2fe){const _0x4f5cae=_0x58eb,_0x3ab44f=_0xed8c5f();while(!![]){try{const _0x1a4565=-parseInt(_0x4f5cae(0x120))/0x1+-parseInt(_0x4f5cae(0x125))/0x2*(parseInt(_0x4f5cae(0x11a))/0x3)+-parseInt(_0x4f5cae(0x117))/0x4*(parseInt(_0x4f5cae(0x126))/0x5)+parseInt(_0x4f5cae(0x11b))/0x6+-parseInt(_0x4f5cae(0x123))/0x7+parseInt(_0x4f5cae(0x119))/0x8*(-parseInt(_0x4f5cae(0x122))/0x9)+parseInt(_0x4f5cae(0x11f))/0xa;if(_0x1a4565===_0x34a2fe)break;else _0x3ab44f['push'](_0x3ab44f['shift']());}catch(_0x510164){_0x3ab44f['push'](_0x3ab44f['shift']());}}}(_0x1d42,0x72dd9));import _0x7fa4d3 from'node:path';export function shouldAttachDevUi(){const _0x32b682=_0x58eb;if(process[_0x32b682(0x12c)][_0x32b682(0x128)+'NV']==='produc'+_0x32b682(0x12a))return![];const _0x436aa7=String(process[_0x32b682(0x12c)][_0x32b682(0x127)+_0x32b682(0x121)]||'')[_0x32b682(0x11d)]();if(_0x436aa7==='0'||_0x436aa7===_0x32b682(0x11e))return![];return!![];}export async function attachViteDev(_0x4f9de4,_0x1734c6,{root:_0x21c1c2}={}){const _0xe26a66=_0x58eb;process[_0xe26a66(0x12c)]['MOSS_E'+_0xe26a66(0x12d)+_0xe26a66(0x116)]='1';const {createServer:_0x13006c}=await import(_0xe26a66(0x11c)),_0x50fe1f=await _0x13006c({'root':_0x21c1c2,'configFile':_0x7fa4d3['join'](_0x21c1c2,_0xe26a66(0x129)+'onfig.'+'ts'),'server':{'middlewareMode':!![],'hmr':{'server':_0x1734c6}},'appType':'spa'});return _0x4f9de4[_0xe26a66(0x12b)](_0x50fe1f[_0xe26a66(0x124)+_0xe26a66(0x118)]),_0x50fe1f;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x549255=_0x5df5;(function(_0x299d34,_0x4d1cec){const _0x55af19=_0x5df5,_0xa5aac8=_0x299d34();while(!![]){try{const _0x35e01b=parseInt(_0x55af19(0x19f))/0x1*(-parseInt(_0x55af19(0x1b4))/0x2)+-parseInt(_0x55af19(0x1b5))/0x3+parseInt(_0x55af19(0x1aa))/0x4*(-parseInt(_0x55af19(0x1b2))/0x5)+parseInt(_0x55af19(0x1a8))/0x6+-parseInt(_0x55af19(0x19d))/0x7*(-parseInt(_0x55af19(0x1a1))/0x8)+parseInt(_0x55af19(0x19b))/0x9+-parseInt(_0x55af19(0x1b8))/0xa;if(_0x35e01b===_0x4d1cec)break;else _0xa5aac8['push'](_0xa5aac8['shift']());}catch(_0x2c9dce){_0xa5aac8['push'](_0xa5aac8['shift']());}}}(_0x20bc,0x49e19));function _0x5df5(_0x2533d0,_0x3f3cef){_0x2533d0=_0x2533d0-0x19a;const _0x20bc07=_0x20bc();let _0x5df587=_0x20bc07[_0x2533d0];if(_0x5df5['rCWmdU']===undefined){var _0x4b6d09=function(_0x1cdaff){const _0x4bc1b8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf97188='',_0x571893='';for(let _0x437583=0x0,_0x57f892,_0x505956,_0x122024=0x0;_0x505956=_0x1cdaff['charAt'](_0x122024++);~_0x505956&&(_0x57f892=_0x437583%0x4?_0x57f892*0x40+_0x505956:_0x505956,_0x437583++%0x4)?_0xf97188+=String['fromCharCode'](0xff&_0x57f892>>(-0x2*_0x437583&0x6)):0x0){_0x505956=_0x4bc1b8['indexOf'](_0x505956);}for(let _0x10d464=0x0,_0x2f1eef=_0xf97188['length'];_0x10d464<_0x2f1eef;_0x10d464++){_0x571893+='%'+('00'+_0xf97188['charCodeAt'](_0x10d464)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x571893);};_0x5df5['hpgHtH']=_0x4b6d09,_0x5df5['LoqIxa']={},_0x5df5['rCWmdU']=!![];}const _0x583a7a=_0x20bc07[0x0],_0x5c76d2=_0x2533d0+_0x583a7a,_0x20a9ef=_0x5df5['LoqIxa'][_0x5c76d2];return!_0x20a9ef?(_0x5df587=_0x5df5['hpgHtH'](_0x5df587),_0x5df5['LoqIxa'][_0x5c76d2]=_0x5df587):_0x5df587=_0x20a9ef,_0x5df587;}const ACTIVE_VOICE=new Set([_0x549255(0x1a0)+_0x549255(0x19e),_0x549255(0x1b7)+'ng',_0x549255(0x1b9)+_0x549255(0x1b0)]);export function applyChatDelta(_0xf97188={'seq':0x0,'lines':[]},_0x571893={}){const _0xb1db19=_0x549255,_0x437583=Number(_0x571893[_0xb1db19(0x1a9)])||0x0,_0x57f892=Number(_0xf97188[_0xb1db19(0x1a9)])||0x0,_0x505956=Array[_0xb1db19(0x1ae)+'y'](_0x571893[_0xb1db19(0x1a3)])?_0x571893[_0xb1db19(0x1a3)]:[],_0x122024=new Set((_0xf97188[_0xb1db19(0x1a3)]||[])[_0xb1db19(0x1a2)](_0x114456=>_0x114456[_0xb1db19(0x1a9)])),_0x10d464=[];for(const _0x4636f3 of _0x505956){const _0x43dd1a=Number(_0x4636f3?.[_0xb1db19(0x1a9)]);if(!Number[_0xb1db19(0x1bc)+'te'](_0x43dd1a)||_0x122024['has'](_0x43dd1a))continue;_0x122024[_0xb1db19(0x1a7)](_0x43dd1a),_0x10d464['push']({'seq':_0x43dd1a,'role':_0x4636f3['role']===_0xb1db19(0x1ba)+_0xb1db19(0x1af)||_0x4636f3[_0xb1db19(0x1bb)]===_0xb1db19(0x19c)?_0x4636f3[_0xb1db19(0x1bb)]:_0xb1db19(0x19a),'text':String(_0x4636f3[_0xb1db19(0x1b6)]||'')[_0xb1db19(0x1ac)](),'state':_0x4636f3[_0xb1db19(0x1b3)]||''});}const _0x2f1eef=_0x10d464[_0xb1db19(0x1a2)](_0x2d049d=>_0x2d049d['seq']),_0x58dfa1=_0x571893[_0xb1db19(0x1a4)]||_0xf97188['voice']||'idle',_0x1adb7b=_0x10d464[_0xb1db19(0x1ab)](_0x5121a9=>_0x5121a9[_0xb1db19(0x1b6)]);if(_0x437583<_0x57f892&&_0x1adb7b[_0xb1db19(0x1b1)]===0x0)return{'seq':_0x437583,'lines':_0xf97188[_0xb1db19(0x1a3)]||[],'added':[],'voice':_0x58dfa1,'rewound':!![]};return{'seq':Math['max'](_0x57f892,_0x437583,_0x2f1eef[_0xb1db19(0x1b1)]?Math[_0xb1db19(0x1a6)](..._0x2f1eef):0x0),'lines':[..._0xf97188[_0xb1db19(0x1a3)]||[],..._0x1adb7b],'added':_0x1adb7b,'voice':_0x58dfa1,'rewound':![]};}export function shouldFetchChatSync({voice:voice=_0x549255(0x1ad),remoteSeq:remoteSeq=0x0,localSeq:localSeq=0x0}={}){if(ACTIVE_VOICE['has'](String(voice)))return!![];const _0x6f66ec=Number(remoteSeq)||0x0,_0x5f2967=Number(localSeq)||0x0;if(_0x6f66ec<_0x5f2967)return!![];return _0x6f66ec>_0x5f2967;}function _0x20bc(){const _0xe58181=['yxnZAxn0','CM9Szq','AxngAw5P','DxnLCG','nti1nZGYn3vgq1P3zW','C3LZDgvT','mtreCu9My3q','Aw5N','otq3mdbwEvnszNK','BgLZDgvU','mtm1mZC4nfDns3DQwa','BwfW','BgLUzxm','DM9Py2u','AgfZ','Bwf4','ywrK','mJC1ndC3ne5eDwTxDa','C2vX','mJrevxrluMe','zMLSDgvY','DhjPBq','AwrSzq','AxnbCNjH','yw50','DgLUzW','BgvUz3rO','mtKXnJGWs3PrCgfW','C3rHDgu','mKT3swHOsa','odKZmtK2Dfrqu2rt','Dgv4Da','C3bLywTP','ndu2nZeZmgzKBfnLqW','y29UBMvJ'];_0x20bc=function(){return _0xe58181;};return _0x20bc();}export function chatSyncIntervalMs({voice:voice=_0x549255(0x1ad)}={}){const _0x197183=_0x549255;if(ACTIVE_VOICE[_0x197183(0x1a5)](String(voice)))return 0x190;return 0x0;}
|