yo-moss-ai 0.0.21 → 0.0.23
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 +27 -2
- package/dist/assets/index-BTL1clBe.js +692 -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 _0x1ca8ff=_0x156d;(function(_0x5f01f1,_0x5ae169){const _0x2dbd0a=_0x156d,_0x3cca32=_0x5f01f1();while(!![]){try{const _0x51a176=parseInt(_0x2dbd0a(0x116))/0x1*(parseInt(_0x2dbd0a(0x112))/0x2)+parseInt(_0x2dbd0a(0x10e))/0x3+-parseInt(_0x2dbd0a(0x10f))/0x4+parseInt(_0x2dbd0a(0x11a))/0x5*(-parseInt(_0x2dbd0a(0x10d))/0x6)+-parseInt(_0x2dbd0a(0x117))/0x7+-parseInt(_0x2dbd0a(0x118))/0x8*(parseInt(_0x2dbd0a(0x10a))/0x9)+parseInt(_0x2dbd0a(0x109))/0xa;if(_0x51a176===_0x5ae169)break;else _0x3cca32['push'](_0x3cca32['shift']());}catch(_0x5cd477){_0x3cca32['push'](_0x3cca32['shift']());}}}(_0x578d,0x2f680));export const BOARD_ONVIF=_0x1ca8ff(0x10b)+_0x1ca8ff(0x111);export const BOARD_OV2640='moss-o'+_0x1ca8ff(0x114);export const KNOWN_BOARDS=[BOARD_ONVIF,BOARD_OV2640];function _0x156d(_0xc5967f,_0x395a20){_0xc5967f=_0xc5967f-0x107;const _0x578d68=_0x578d();let _0x156d67=_0x578d68[_0xc5967f];if(_0x156d['XDggzV']===undefined){var _0x10ac87=function(_0x55a1fb){const _0x22111c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x57fa8f='',_0x1cab8d='';for(let _0x23efa4=0x0,_0x1754d7,_0x2c6bed,_0x149010=0x0;_0x2c6bed=_0x55a1fb['charAt'](_0x149010++);~_0x2c6bed&&(_0x1754d7=_0x23efa4%0x4?_0x1754d7*0x40+_0x2c6bed:_0x2c6bed,_0x23efa4++%0x4)?_0x57fa8f+=String['fromCharCode'](0xff&_0x1754d7>>(-0x2*_0x23efa4&0x6)):0x0){_0x2c6bed=_0x22111c['indexOf'](_0x2c6bed);}for(let _0xecfec=0x0,_0x44cdab=_0x57fa8f['length'];_0xecfec<_0x44cdab;_0xecfec++){_0x1cab8d+='%'+('00'+_0x57fa8f['charCodeAt'](_0xecfec)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1cab8d);};_0x156d['HjQBYX']=_0x10ac87,_0x156d['eDObhR']={},_0x156d['XDggzV']=!![];}const _0x14dff6=_0x578d68[0x0],_0x234fa0=_0xc5967f+_0x14dff6,_0x1295ac=_0x156d['eDObhR'][_0x234fa0];return!_0x1295ac?(_0x156d67=_0x156d['HjQBYX'](_0x156d67),_0x156d['eDObhR'][_0x234fa0]=_0x156d67):_0x156d67=_0x1295ac,_0x156d67;}export function resolveBoard(_0x57fa8f={}){const _0x2819c6=_0x1ca8ff,_0x1cab8d=String(_0x57fa8f[_0x2819c6(0x115)]||'')['trim']();if(_0x1cab8d===BOARD_OV2640||_0x1cab8d===BOARD_ONVIF)return _0x1cab8d;const _0x23efa4=String(_0x57fa8f[_0x2819c6(0x108)]||'')['trim']();if(_0x23efa4===BOARD_OV2640||_0x23efa4===BOARD_ONVIF)return _0x23efa4;return BOARD_ONVIF;}export function boardTypeLabel(_0x1754d7){const _0x1063af=_0x1ca8ff;if(_0x1754d7===BOARD_OV2640)return _0x1063af(0x10c);if(_0x1754d7===BOARD_ONVIF)return'外接视觉';return _0x1063af(0x119);}export function capsForBoard(_0x2c6bed){const _0x149010=_0x2c6bed===BOARD_OV2640;return{'onboard_camera':_0x149010,'onboard_preview':![],'ir':!![],'gimbal':_0x149010,'face_track':_0x149010,'lamps':!![],'motor':!![]};}export function normalizeCaps(_0xecfec={}){return capsForBoard(resolveBoard(_0xecfec));}function _0x578d(){const _0x239a8b=['mJK1mZm0me9dtfnJvq','mZuXDhjvDvHo','Bw9ZCY1V','5P2/6l296kEg6kEj','mJyXnte2DfLltwfk','odeWodi4BfDruMXI','mtiYody4ofPPr0fzrG','zgv2AwnL','BNzPzG','mJeYnNLXyu9jqq','ChjVzhvJ','DJi2nda','yM9HCMq','mJm3B0nizgPz','mty5odmXmNjLqxbnEq','nJe1mLL6wgLHvG','tu9tuW','nu1SBxrRzq','B2jQzwn0','BMfTzq'];_0x578d=function(){return _0x239a8b;};return _0x578d();}export function applyDeviceHealthTo(_0x44cdab,_0xcf8ec2){const _0xee7e30=_0x1ca8ff;if(!_0xcf8ec2||typeof _0xcf8ec2!==_0xee7e30(0x107))return _0x44cdab;const _0xeba35e=resolveBoard(_0xcf8ec2);if(_0xcf8ec2[_0xee7e30(0x113)+'t'])_0x44cdab[_0xee7e30(0x113)+'t']=_0xcf8ec2['produc'+'t'];return _0x44cdab[_0xee7e30(0x115)]=_0xeba35e,_0x44cdab[_0xee7e30(0x110)+'Caps']=capsForBoard(_0xeba35e),_0x44cdab;}
|
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 _0x26e603=_0x439c;(function(_0x5ec30d,_0x405f3a){const _0x774d1e=_0x439c,_0x1cdba3=_0x5ec30d();while(!![]){try{const _0x5bc101=-parseInt(_0x774d1e(0x275))/0x1*(-parseInt(_0x774d1e(0x221))/0x2)+parseInt(_0x774d1e(0x29b))/0x3*(parseInt(_0x774d1e(0x259))/0x4)+parseInt(_0x774d1e(0x1e9))/0x5*(-parseInt(_0x774d1e(0x12b))/0x6)+-parseInt(_0x774d1e(0x2b2))/0x7+parseInt(_0x774d1e(0x171))/0x8*(-parseInt(_0x774d1e(0x1b4))/0x9)+-parseInt(_0x774d1e(0x17e))/0xa*(-parseInt(_0x774d1e(0x16c))/0xb)+-parseInt(_0x774d1e(0x1cd))/0xc;if(_0x5bc101===_0x405f3a)break;else _0x1cdba3['push'](_0x1cdba3['shift']());}catch(_0x195912){_0x1cdba3['push'](_0x1cdba3['shift']());}}}(_0x15fe,0xb9e00));import _0x22cb2c from'node:crypto';import _0x5ef6bd from'node:http';import _0x1502b2 from'node:https';import _0x17d287 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(_0x26e603(0x106)+_0x26e603(0x2b9)+'es');let lastOnboardJpeg=null,onboardFetchInFlight=null,onboardPreviewClients=0x0;const PTZ_TIMEOUT_MS=0x2bc,ONVIF_NUDGE_MS=0xb4;let currentCam=null,ptzBusy=![],snapshotTail=Promise[_0x26e603(0x21d)+'e']();const ffmpegProcs=new Set(),streamClients=new Set();let sharedFfmpeg=null,sharedTranscode=![],ffmpegIdleTimer=null,ffmpegRestartTimer=null,ffmpegBackoffMs=0x320,previewHoldDepth=0x0,suppressFfmpegRestart=![];const httpAgent=new _0x5ef6bd[(_0x26e603(0x21a))]({'keepAlive':![],'maxSockets':0x2}),httpsAgent=new _0x1502b2[(_0x26e603(0x21a))]({'keepAlive':![],'maxSockets':0x2,'rejectUnauthorized':![]}),digestState={'challenge':null,'nc':0x1},state={'connected':![],'source':'','sourceLabel':'','hostname':'','port':0x50,'path':_0x26e603(0x273)+_0x26e603(0x1c0)+_0x26e603(0x168)+_0x26e603(0x28f),'username':'','password':'','ptz':![],'snapshotUri':'','rtspUri':'','encoding':'','liveUri':'','liveDirect':'','info':null};let cameraHooks={};export function setCameraHooks(_0x1db23f){cameraHooks={...cameraHooks,..._0x1db23f};}function deviceCaps(){const _0x3f2ff7=_0x26e603,_0x10fc36=cameraHooks[_0x3f2ff7(0x132)+'iceCap'+'s']?.()||{};return _0x10fc36&&typeof _0x10fc36===_0x3f2ff7(0x1cb)?_0x10fc36:{};}export function onboardAvailable(){const _0x147f59=_0x26e603;return deviceCaps()[_0x147f59(0x201)+_0x147f59(0x1ad)+_0x147f59(0x1df)]===!![]&&!!String(cameraHooks[_0x147f59(0x132)+_0x147f59(0x1e0)+_0x147f59(0x27d)]?.()||'')[_0x147f59(0x1c7)]();}export function gimbalAvailable(){return deviceCaps()['gimbal']===!![];}export function stripOnboardCameraConfig(_0x98c213){const _0xc306d7=_0x26e603;if(!_0x98c213?.['camera']||_0x98c213[_0xc306d7(0x108)][_0xc306d7(0x111)]!=='onboar'+'d')return![];const _0x536e24={..._0x98c213[_0xc306d7(0x108)]};return delete _0x536e24['source'],_0x98c213[_0xc306d7(0x108)]=_0x536e24,!![];}function playModeOf(){const _0x5aa78d=_0x26e603;if(state[_0x5aa78d(0x111)]==='onboar'+'d')return _0x5aa78d(0x1aa);if(state['rtspUr'+'i'])return'mpegts';if(state[_0x5aa78d(0x1eb)+'i'])return'mjpeg';if(state['snapsh'+_0x5aa78d(0x1b5)])return _0x5aa78d(0x127)+'ot';return'';}function publicState(){const _0x373244=_0x26e603;return{'connected':state[_0x373244(0x2b5)+_0x373244(0x28c)],'source':state[_0x373244(0x111)]||'','sourceLabel':state[_0x373244(0x111)+_0x373244(0x13d)]||'','hostname':state['hostna'+'me'],'port':state[_0x373244(0x236)],'path':state[_0x373244(0x266)],'username':state[_0x373244(0x25f)+'me'],'password_set':!!state['passwo'+'rd'],'ptz':state[_0x373244(0x1dd)]||gimbalAvailable(),'ptzKind':gimbalAvailable()&&state['source']!==_0x373244(0x204)?_0x373244(0x297):state['ptz']?_0x373244(0x204):'','snapshot':!!state[_0x373244(0x127)+'otUri']||state[_0x373244(0x111)]===_0x373244(0x201)+'d','stream':!!(state['rtspUr'+'i']||state[_0x373244(0x1eb)+'i']||state[_0x373244(0x127)+_0x373244(0x1b5)])||state[_0x373244(0x111)]===_0x373244(0x201)+'d','playMode':playModeOf(),'encoding':state['encodi'+'ng'],'liveDirect':state[_0x373244(0x19d)+'rect'],'info':state[_0x373244(0x134)],'onboardAvailable':onboardAvailable(),'gimbalAvailable':gimbalAvailable()};}function parseScopes(_0x313dbc){const _0x45c636=_0x26e603,_0x6abaa9=Array[_0x45c636(0xdf)+'y'](_0x313dbc)?_0x313dbc[_0x45c636(0x10d)]('\x20'):String(_0x313dbc||''),_0x5ef5f3=_0xd385b4=>{const _0x4f5a67=_0x45c636,_0x3e1f54=_0x6abaa9[_0x4f5a67(0x114)](new RegExp(_0x4f5a67(0x128)+_0x4f5a67(0x2a9)+_0x4f5a67(0xe6)+'\x5c.org/'+_0xd385b4+(_0x4f5a67(0x215)+_0x4f5a67(0x1bf)),'i'));if(!_0x3e1f54)return'';try{return decodeURIComponent(_0x3e1f54[0x1]['replac'+'e'](/_/g,'\x20'));}catch{return _0x3e1f54[0x1];}};return{'name':_0x5ef5f3(_0x45c636(0x19c)),'hardware':_0x5ef5f3(_0x45c636(0x15f)+'re')};}function firstXAddr(_0x27a171){const _0x2986d7=_0x26e603,_0x2ad9bc=Array[_0x2986d7(0xdf)+'y'](_0x27a171)?_0x27a171[0x0]:_0x27a171,_0x2c5f94=typeof _0x2ad9bc===_0x2986d7(0x226)?_0x2ad9bc:_0x2ad9bc?.[_0x2986d7(0x240)]||String(_0x2ad9bc||''),_0x3fb3fd=_0x2c5f94[_0x2986d7(0x1c7)]()[_0x2986d7(0x112)](/\s+/)[0x0];if(!_0x3fb3fd)return null;try{return new URL(_0x3fb3fd);}catch{return null;}}function summarizeProbe(_0x5cad90,_0x3a596){const _0x26dbd0=_0x26e603,_0x4ecca4=_0x5cad90?.[_0x26dbd0(0x102)+_0x26dbd0(0x27c)]?.['probeM'+'atch']||_0x5cad90,_0x1c421a=firstXAddr(_0x4ecca4?.['XAddrs']||_0x4ecca4?.[_0x26dbd0(0x252)]),_0x486012=_0x1c421a?.[_0x26dbd0(0x2ab)+'me']||_0x3a596?.[_0x26dbd0(0x13c)+'s']||'';if(!_0x486012)return null;const _0x4c82c8=parseScopes(_0x4ecca4?.['scopes']||_0x4ecca4?.[_0x26dbd0(0x157)]);return{'hostname':_0x486012,'port':Number(_0x1c421a?.[_0x26dbd0(0x236)]||0x50),'path':_0x1c421a?.[_0x26dbd0(0x1c3)+'me']||_0x26dbd0(0x273)+_0x26dbd0(0x1c0)+'e_serv'+_0x26dbd0(0x28f),'urn':_0x4ecca4?.[_0x26dbd0(0x173)+_0x26dbd0(0x11a)+_0x26dbd0(0x153)]?.['addres'+'s']||_0x4ecca4?.[_0x26dbd0(0x1dc)]||'','name':_0x4c82c8[_0x26dbd0(0x19c)]||_0x486012,'hardware':_0x4c82c8[_0x26dbd0(0x15f)+'re']||''};}function summarizeCam(_0x1673a5,_0x1aff09){const _0x466508=_0x26e603;if(_0x1673a5?.[_0x466508(0x102)+_0x466508(0x27c)]||_0x1673a5?.[_0x466508(0x195)])return summarizeProbe(_0x1673a5,_0x1aff09);const _0x174b9c=_0x1673a5[_0x466508(0x2ab)+'me']||_0x1aff09?.['addres'+'s']||'';if(!_0x174b9c)return null;return{'hostname':_0x174b9c,'port':Number(_0x1673a5[_0x466508(0x236)]||0x50),'path':_0x1673a5[_0x466508(0x266)]||_0x466508(0x273)+_0x466508(0x1c0)+_0x466508(0x168)+_0x466508(0x28f),'urn':_0x1673a5[_0x466508(0x1dc)]||'','name':_0x174b9c,'hardware':''};}let discovering=null;export async function discover(_0x1f32e1=0xfa0){const _0x14c91f=_0x26e603;if(discovering)return discovering;return discovering=runDiscover(_0x1f32e1)[_0x14c91f(0x1b1)+'y'](()=>{discovering=null;}),discovering;}async function runDiscover(_0x4e1b65){const _0x3fce7f=_0x26e603,_0x46aae1=[],_0x4ed643=new Set(),_0x14791f=_0x110cab=>{const _0x4277a7=_0x439c;if(!_0x110cab?.[_0x4277a7(0x2ab)+'me'])return;const _0x17ea9a=_0x110cab[_0x4277a7(0x2ab)+'me']+':'+_0x110cab[_0x4277a7(0x236)]+':'+_0x110cab['path'];if(_0x4ed643[_0x4277a7(0x1f3)](_0x17ea9a))return;_0x4ed643[_0x4277a7(0x17c)](_0x17ea9a),_0x46aae1[_0x4277a7(0x110)](_0x110cab);},_0x3dc45c=(_0x2b7cdf,_0x23b659)=>_0x14791f(summarizeCam(_0x2b7cdf,_0x23b659));Discovery['on'](_0x3fce7f(0x1ea),_0x3dc45c);try{const _0x26daa3=await Discovery[_0x3fce7f(0xf1)]({'timeout':_0x4e1b65,'resolve':![]});for(const _0x500dfb of _0x26daa3||[])_0x14791f(summarizeCam(_0x500dfb));}catch(_0x1604e){console['warn'](_0x3fce7f(0x2ba)+_0x3fce7f(0x183)+_0x3fce7f(0x249),_0x1604e?.[_0x3fce7f(0x18b)+'e']||_0x1604e);}finally{Discovery[_0x3fce7f(0x2bd)+_0x3fce7f(0x182)+'er'](_0x3fce7f(0x1ea),_0x3dc45c);}return _0x46aae1;}function mediaUriOf(_0x303201){const _0x2f8a6a=_0x26e603;if(!_0x303201)return'';if(typeof _0x303201===_0x2f8a6a(0x226))return _0x303201['replac'+'e'](/&/g,'&');const _0x1081da=_0x303201[_0x2f8a6a(0xfc)]||_0x303201[_0x2f8a6a(0x248)+'ri']?.['uri']||_0x303201[_0x2f8a6a(0x2b1)]||'',_0x3ab050=typeof _0x1081da===_0x2f8a6a(0x226)?_0x1081da:_0x1081da?.[_0x2f8a6a(0x240)]||_0x1081da?.['_']||'';return String(_0x3ab050)['replac'+'e'](/&/g,'&');}function _0x15fe(){const _0x968182=['BgvUz3rO','BwfUDwzH','6k+75y+w55s76z2I5AsX6lsL','tu9tu++8JoIVTW','zxzPzxDi','C2v0vgLT','lM9UDMLM','CY8YmdiV','lwjZzJP2','zYWGkI8Q','Cw9Wpq','5A+544cc6yoO5yIg5Pge5yop','DhjHBNnW','C2HVDcb1','BM9Uy2u','lwnHy2HL','yMfJAYbV','ChjVyMu','CMvXDwvZ','C2nHBgu9','yv0GzgLZ','Ahr0CdOV','AwDUB3jL','z10GC3DP','D2fYBG','DgHT','zxzFC2vS','u291CMnL','DxjP','BMrqyw5u','ywn0AxzL','B3v0','y2HHBgXL','lMnNAq','ChjVyMvn','DcKPlhnL','pwvXkhbP','tMv0D29Y','B252AwyV','6l+z5y+W5Pge5yop5As05RkH','y2fTzxjH','lxbYB2jL','DhjHBNnJ','lw11EgrL','5PYj5lQr5y+W77Ym5OIwia','AM9PBG','5lQr5y+W5O6N5yI25AsX6lsL','zxjPBMC','ChvZAa','C291CMnL','C3bSAxq','l2fWAs9J','Bwf0y2G','5lIQ6lsM5y+35BYaie8','zxjYB3i','C2v0sgvH','5yQO6yEn6l+E77Ym5OIw54k5','CZP2','BNrszwzL','yw1LCMeV','DgnW','CMvZDw1L','lcbTDxn0','r0vu','D2fYBMLU','C2vHCMnO','C2nOzw1L','AgfUBMvS','DxbKyxrL','DgLVBG','C3rKB3v0','C25HChnO','B252Awy6','igzHAwW','C2v0tM9e','mZzeAePXzhy','zw91Da','CMvwzxjZ','AdOG','z10GzMLY','C3rKzxjY','5As06kAb5zYO572r6Ag16yEm','z2v0rgv2','Bxb0','Aw5MBW','DwX0CMfM','D3jPDgfI','zwfKzxjZ','Agv2yW','Dw5ZAgLM','BgL2zq','CMuSig5V','ywrKCMvZ','tgfIzwW','AwBVViZLUBBNU5NOV5K','l0Ltqvbj','x3bHy2TL','B25Jzq','ANnVBG','AwnLsw5M','6Ag16l+E5O6L5Bga5z+F572r','6l+y5RkH5PYj55s76z2I77Ym','C2HVDa','Ahr0CfbY','Bgf5','BxaYDa','zw8Uy2DP','CgvN','DgnO','C3qGyNL0','C3bSAwnL','zq0kq29U','DgvUDc1u','AgvSza','B2XK','CMvUy2u','CMvZCg9U','5PYj5y+V5PkT5Ps+55Qe6Ake','CgvNlMnN','u2nVCgvZ','zgLZy292','ufrA','6lsM5y+35OIw5A+g56cb5lIn','yxjYyxLc','jNb3zd0','ihvYAq','DwzMzxi','AgfYzhDH','BxbLz3rZ','6k+35ywi5zYOie1p','y2XLyxi','y2HHBM5L','ztSGyM91','CgvLAW','DcbPBG','Dc10ExbL','zv9Zzxj2','lxbYzxnL','6k+35ywi6l+E5O6L5Pge5yop','zY92AwrL','mtfQsKLbCK4','qMfZAwmG','5lIn5PsV5OYb55Qe5lQr5y+W','qwXStgLZ','yMfZzty0','ohLPC011vW','l2LWy2fT','zw5KCg9P','BNvKz2u6','u0Lhs0Lm','zwfTvxjP','DMLLDYbM','w2nHBwvY','5P2/6l295Pge5yop5As06l+E','mJaWmdaW','zgLNzxn0','ywrK','y25VBMnL','ndy1nda0mgfNuvrguq','v2L0Aa','y29UDgvU','ywXS','tgLZDgvU','xsbKAxnJ','CY8XmdeV','yv0GCgf1','BY5Jz2K/','Bc1cDwzM','BMrHCNK9','q29Kzq','BwfNzs9Q','BwvZC2fN','l2nNAs1I','5lIn5lIkia','CKnHC2u','C3vIyxjY','z2v0u25H','C2u9iG','dqOncG','yM9KEq','Aw4VAgKZ','wefKzhjZ','CgfZC3DV','yv0GB252','y2DPl21Q','ywn0Aw9U','Dw91C01V','zgvY','BMfTzq','BgL2zurP','BMv4yG','yv0GDgnW','sfruua','5OIQ5zU+6zYa6kAb6lsM5y+3','DhvYzq','5OIQ5zU+5AsX6lsL77Yi','lwzYyw1L','C29Tzq','y3r1CMvY','DgHTpq','ue9tva','zY5QCgC','BwPWzwC','Cg9ZDa','l21QCgvN','zf9WCMv2','zMXVB3i','DgHLBG','l3zPzgvV','zMLUywXS','lxe6DG','Bd0XjNn1','ndyZmJG0t1jfExvp','B3rvCMK','zvrVA2vU','zwn0zwrF','BM93','5OMR5O+p5Pge5yop5As05AsX','y3rFDhLW','BMrAB29T','Adi2na','CMvZ','y29WEq','xsSP','l2rLDMLJ','CcbMCMfT','BMDL','Cgf0Ag5H','Aw9U','C29YDa','DgvUy3K','DhjPBq','DgvZDa','Eg1S','lwXVz2XL','B2jQzwn0','CY8XmdmV','mJK4mZaZmNvuuMLQwq','AxzLig1Q','5RkH5PYjifjuuW','zxHPDa','BM8Ty2fJ','5OMt5BYaie9UDG','6yEn5PAW6l+E5O6L44cc','rgLNzxn0','CMvX','z2v0u3rY','5OIQ5zU+5zYW5z2a6lEZ6l2S','BwLU','Bg9JyxrP','xsbZBMfW','A2LSBgvK','DxjU','Chr6','u1pJGiZOP4BOP4NKUk0','Awv3','AwnLqMfZ','lw11EhbY','Aw5JBhvK','ChnOB3q','y2f1C2u','zsbHDhrL','uhjHz21H','BxvSDgLW','ChvIBgLZ','nZy0mtvRr1DZtxi','zgv2AwnL','BgL2zvvY','Dg9tDhjP','6l+E5O6L5Pge5yop5As0','ChnOB3rv','lwjM','zw5K','AeDPBwjH','C3rHCNrZ','AgfZ','BMm9','C2L6zq','y2f0zq','zw5JB2rP','C2XPy2u','DgHLBNrP','q29UDhjV','zgvSzxrL','q29UBMvJ','ywLS','zMLYBxDH','Bw9KzwW','Dw5RBM93','B25IB2fY','zNjHBwu','lxrOCMvH','B252Awy','lxj0C3bF','B3bHCxvL','5Pge5yop5As05RkH5PYj6l+u','C2vUza','DgLTzw91','yMfZzwXP','Cw9W','tNvTyMvY','ys9ZBMfW','B250zw50','C2vYpq','6l+y5RkH5PYj6l+E5O6L5Pge','A2vLCc1H','D3jPDgu','y29Uy2f0','BgL0AwvZ','lYHBxLXZ','BNzPzIdMNym','A2LSBa','ntaWmdaW','Bg9N','qwDLBNq','AwX0','5AsX6lsL77Yi','CMvZB2X2','D3D3lwf1','BgvfBMrL','y2XVC2u','mNn0B2XUza','Bgf0Aw4X','lM1QCgC','Cdr0B2fU','B25SEvnL','C3rYAw5N','B3jTyxrP','5ywi5zYO6k6+5Ash5O6L5ywL','CNrZCfvY','y2XPzw50','DMLKzw8U','Ag9ZDa','CMvWBgfJ','5P2/6l2955s76z2I5PQc5lIn','t1yYnJqW','Bwq1','57Q/44cc6k+356In562j6iEQ','y2fWywjP','otyWoI0Y','zgvZDhjV','lxr1BMu','Cg9YDa','BwLUzY9J','B2rL','6k+35AgR5yAz5Pge5yop5As0','EMvYB2XH','yMfUBMvY','zMLUza','zxzPzxC','y292zxiG','BMfUkhbY','AhjLzG','CgfZpq','Aw1Hz2uV','Adi2nf9T','Ahr0Chm6','CMvHBg0','ucdLNldLNya','C3rHDhvZ','BwvKAwfv','B3zLCNK','lMnNAt91','uLrtua','BgvozwvK','lxjLDMfS','nteWl21Q','Exv2ndiW','AxPHDgLV','C3rYzwfT','EgfKzhjZ','B3iGy2fW','BNvKz2u','AgvHzgvY','mc9TANbL','Dc1uExbL','qxv0Ag9Y','ndbXD0HKsK0','yv0GBgL2','l1n0CMvH','ys9KAxnH','ls1MCMfT','CgLWztOX','DxnLCM5H','CMfUzg9T','lwzMBgfN','CY8XmdiV','CgvNdqPd','uLrqvfmS','DMvS','Cgf0Aa','CNKGzMfP','yv0GCNrZ','t252AwyG','6l+E5O6L5Pge5yop5As05AsX','lxbPEf9M','Bwf4','AYb0Aw1L','Agv4','zNvUy3rP','ChjVzMLS','5P2/6l295Pge5yop5As06l+u','C2uGChjL','l29UDMLM','Dfr5Cgu','nZu0mJC0AxroEvfs','DgvUzxjZ','ChjLC3m','BwL4zwqT','q29UDgvU','5lUo6kEg6Akr5Rwb5OIQ5BIN','6l+y5RkH5PYj6ycj5lITia','yxrJAgvZ','zvvYBa','Aw4VBwPW','5OIQ5zU+6lAf5PE2','lwfU','zMfSBgjH','Aw5KzxHp','AwrHDgu','CMvHBg09','5zUE5zU+54Mh','D2LKDgG','q2fJAguT','CNKGC2fT','w2zMBxbL','zwXHEq','yxv0Aa','DgvK','zwXVywq','BM8TC3rV','AwnL','lwm6DG','BgLIEdi2','y2f0y2G','B2DPBNvZ','5PYQ5BYa5Ps+ifbu','jMXVz2LU','C2TPCfbY','z2LTyMfS','yNr5Cgu9','yxj0l3GT','CMvZDgfY','mJy5oti1zM14DNHc','B2rLigGY','z10GzxHP','EMvKDxjH','wc1by2nL','Ahr0Cca','z2v0','lwfUywX5','ywXNB3jP','DMLKzw8V','5PYj5O+q5l6B5OQt5zU+5zYW','yv0GCMv0','lxbYB2zP','BNzPzG','lY93D3DC','lwHPzgvF','Ag9ZDg5H','CgLWzq','Dg9mB3DL','EM9VBq','zMX1C2Hi','Bwu9iG','vxjP','nJC2ndi2oeTqreTXDq','CMvJDa','l2f4AxmT','y29UBMvJ','zNjVBq','DxjPpsi','C29JA2v0','ChjVBwLZ','w29UDMLM','yv0Gy29U','CgfKu3rH','CMvTB3zL','zgf0yq','BMvJDa','zsWGAw1H','ChjVDg9J','y29UDgLU','C2vYAwfS','C3rVCa','5lQr5y+W6ycA6ygt5PYQ5BcX','rhjHAw4','AxnbCNjH'];_0x15fe=function(){return _0x968182;};return _0x15fe();}function pickPreviewSource(_0x49ba78){const _0x47fc5a=_0x26e603,_0x500334=Array['isArra'+'y'](_0x49ba78['active'+_0x47fc5a(0xfb)+'s'])?[..._0x49ba78[_0x47fc5a(0xfe)+_0x47fc5a(0xfb)+'s']]:[];if(!_0x500334['length']&&_0x49ba78[_0x47fc5a(0xfe)+'Source'])_0x500334[_0x47fc5a(0x110)](_0x49ba78['active'+_0x47fc5a(0xfb)]);return _0x500334[_0x47fc5a(0x1c5)]((_0x29ba2e,_0x2a5385)=>(Number(_0x29ba2e['width'])||0x780)-(Number(_0x2a5385[_0x47fc5a(0x286)])||0x780)),_0x500334[0x0]||_0x49ba78[_0x47fc5a(0xfe)+_0x47fc5a(0xfb)]||null;}function detectEncoding(_0x5f03bb){const _0x5d3960=_0x26e603,_0x33c3a6=String(_0x5f03bb?.[_0x5d3960(0x1f7)+'ng']||_0x5f03bb?.['Encodi'+'ng']||'')['toLowe'+_0x5d3960(0x18e)]();if(/h265|hevc/['test'](_0x33c3a6))return _0x5d3960(0x138);if(/h264|avc/[_0x5d3960(0x1c8)](_0x33c3a6))return _0x5d3960(0x1bc);return _0x33c3a6;}function injectRtspAuth(_0x5eb5f3,_0x5b42fd,_0x391e35){const _0x1799c1=_0x26e603;if(!_0x5eb5f3)return'';try{const _0x415b3d=new URL(_0x5eb5f3);return _0x5b42fd&&(_0x415b3d[_0x1799c1(0x25f)+'me']=_0x5b42fd,_0x415b3d[_0x1799c1(0x196)+'rd']=_0x391e35||''),_0x415b3d[_0x1799c1(0x240)];}catch{return _0x5eb5f3;}}function stopAllFfmpeg(){const _0x770133=_0x26e603;clearTimeout(ffmpegIdleTimer),clearTimeout(ffmpegRestartTimer),ffmpegIdleTimer=null,ffmpegRestartTimer=null,ffmpegBackoffMs=0x320,sharedTranscode=![];const _0x3d69b6=sharedFfmpeg;sharedFfmpeg=null;if(_0x3d69b6){ffmpegProcs[_0x770133(0x1fb)](_0x3d69b6);try{_0x3d69b6['kill'](_0x770133(0x175)+'L');}catch{}}for(const _0x5a192c of ffmpegProcs){try{_0x5a192c[_0x770133(0x217)](_0x770133(0x175)+'L');}catch{}}ffmpegProcs[_0x770133(0x162)]();for(const _0x41528a of streamClients){try{if(!_0x41528a[_0x770133(0x136)+_0x770133(0x21f)+'d'])_0x41528a['end']();}catch{}}streamClients['clear']();}function resetDigest(){const _0x3139cd=_0x26e603;digestState[_0x3139cd(0x100)+_0x3139cd(0x1c2)]=null,digestState['nc']=0x1;}export const ONVIF_CONNECT_TIMEOUT_MS=0x4e20;export const ONVIF_TCP_PROBE_MS=0x9c4;export function isNetworkError(_0x4eaf4a){const _0x37884b=_0x26e603,_0x23302d=_0x4eaf4a instanceof Error?_0x4eaf4a['messag'+'e']:String(_0x4eaf4a||'');return/ECONNREFUSED|ENOTFOUND|ETIMEDOUT|EHOSTUNREACH|EHOSTDOWN|ENETUNREACH|ENETDOWN|ECONNRESET|EPIPE|ECONNABORTED|timeout|Timeout|Network timeout/i[_0x37884b(0x1c8)](_0x23302d);}export function cameraError(_0x1d1159,_0x5ade94){const _0x1a74af=_0x26e603,_0x1c4d44=_0x1d1159 instanceof Error?_0x1d1159[_0x1a74af(0x18b)+'e']:String(_0x1d1159||'');if(isNetworkError(_0x1d1159))return'摄像头暂时离'+_0x1a74af(0x231)+_0x1a74af(0x118)+_0x1a74af(0x1d3);if(/401|NotAuthorized|not authorized|unauthorized|Authoriz/i[_0x1a74af(0x1c8)](_0x1c4d44))return _0x1a74af(0x15a)+_0x1a74af(0xeb)+_0x1a74af(0x131)+_0x1a74af(0x1d2)+_0x1a74af(0x13e)+_0x1a74af(0x115)+_0x1a74af(0x216)+'限。';return _0x1c4d44||_0x5ade94;}export function probeTcp(_0x37b4be,_0x258bf9,_0x58dce1=ONVIF_TCP_PROBE_MS){const _0x5f5a4b=_0x26e603,_0xbaa4f0=String(_0x37b4be||'')[_0x5f5a4b(0x1c7)](),_0x126a25=Number(_0x258bf9)||0x50;if(!_0xbaa4f0)return Promise[_0x5f5a4b(0x21d)+'e'](![]);return new Promise(_0x129509=>{const _0x5129ee=_0x5f5a4b,_0x5abd59=_0x17d287[_0x5129ee(0x2b5)+'t']({'host':_0xbaa4f0,'port':_0x126a25});let _0x220bb8=![];const _0x3e2066=_0x13b026=>{const _0x42487a=_0x5129ee;if(_0x220bb8)return;_0x220bb8=!![],_0x5abd59[_0x42487a(0x2bd)+_0x42487a(0x16f)+_0x42487a(0x276)](),_0x5abd59[_0x42487a(0x234)+'y'](),_0x129509(_0x13b026);};_0x5abd59[_0x5129ee(0xe5)+_0x5129ee(0x12c)](Math['max'](0xc8,Number(_0x58dce1)||ONVIF_TCP_PROBE_MS),()=>_0x3e2066(![])),_0x5abd59[_0x5129ee(0x141)](_0x5129ee(0x2b5)+'t',()=>_0x3e2066(!![])),_0x5abd59[_0x5129ee(0x141)](_0x5129ee(0x116),()=>_0x3e2066(![]));});}function createCam(_0x1f2205){const _0x114b97=_0x26e603;return new Cam({'hostname':_0x1f2205['hostna'+'me'],'port':_0x1f2205[_0x114b97(0x236)],'username':_0x1f2205[_0x114b97(0x25f)+'me'],'password':_0x1f2205[_0x114b97(0x196)+'rd'],'path':_0x1f2205[_0x114b97(0x266)],'timeout':Number(_0x1f2205[_0x114b97(0x209)+'t'])>0x0?Number(_0x1f2205[_0x114b97(0x209)+'t']):ONVIF_CONNECT_TIMEOUT_MS,'agent':httpAgent,'preserveAddress':!![],'autoconnect':![]});}async function refreshOnvif(){const _0x50581d=_0x26e603,_0x5288e9=createCam(state);return await _0x5288e9[_0x50581d(0x2b5)+'t'](),currentCam=_0x5288e9,state['ptz']=!!(_0x5288e9[_0x50581d(0x232)+_0x50581d(0x214)]?.['PTZ']||_0x5288e9[_0x50581d(0xfc)]?.[_0x50581d(0x1dd)]),_0x5288e9;}function sameHost(_0x2e04ff,_0x1c855d){const _0x491013=_0x26e603;return String(_0x2e04ff||'')[_0x491013(0x1c7)]()[_0x491013(0x2ad)+_0x491013(0x18e)]()===String(_0x1c855d||'')[_0x491013(0x1c7)]()[_0x491013(0x2ad)+_0x491013(0x18e)]();}export function sameOnvifEndpoint(_0xaad5bb,_0x5404dd){const _0x37d8a9=_0x26e603;if(!_0xaad5bb||!_0x5404dd)return![];return sameHost(_0xaad5bb[_0x37d8a9(0x2ab)+'me'],_0x5404dd[_0x37d8a9(0x2ab)+'me'])&&Number(_0xaad5bb[_0x37d8a9(0x236)]||0x50)===Number(_0x5404dd[_0x37d8a9(0x236)]||0x50)&&String(_0xaad5bb[_0x37d8a9(0x266)]||_0x37d8a9(0x273)+'/devic'+_0x37d8a9(0x168)+_0x37d8a9(0x28f))===String(_0x5404dd[_0x37d8a9(0x266)]||_0x37d8a9(0x273)+_0x37d8a9(0x1c0)+_0x37d8a9(0x168)+_0x37d8a9(0x28f));}async function resolveDiscoveredEndpoint(_0x5ebd94){const _0x5e3125=_0x26e603;try{const _0x813a59=await discover(0x9c4);return _0x813a59[_0x5e3125(0x23c)](_0x201172=>sameHost(_0x201172[_0x5e3125(0x2ab)+'me'],_0x5ebd94))||null;}catch(_0x64edde){return console[_0x5e3125(0xf8)](_0x5e3125(0x178)+_0x5e3125(0xf4)+_0x5e3125(0x23e)+_0x5e3125(0x281)+'ck',_0x64edde?.[_0x5e3125(0x18b)+'e']||_0x64edde),null;}}async function openOnvif(_0x2feb7d){const _0x2d2474=createCam(_0x2feb7d);return await _0x2d2474['connec'+'t'](),_0x2d2474;}export async function connectCamera(_0x4cdf36={}){const _0x32baa2=_0x26e603;let _0x2f9ded=String(_0x4cdf36[_0x32baa2(0x2ab)+'me']||'')[_0x32baa2(0x1c7)](),_0x35e71d=Number(_0x4cdf36[_0x32baa2(0x236)]||0x50);const _0x341bd9=String(_0x4cdf36[_0x32baa2(0x25f)+'me']||'')[_0x32baa2(0x1c7)](),_0x19aa96=String(_0x4cdf36[_0x32baa2(0x196)+'rd']||'');let _0x4242d0=String(_0x4cdf36['path']||'/onvif'+_0x32baa2(0x1c0)+'e_serv'+_0x32baa2(0x28f))['trim']()||_0x32baa2(0x273)+_0x32baa2(0x1c0)+_0x32baa2(0x168)+_0x32baa2(0x28f);if(!_0x2f9ded)throw new Error(_0x32baa2(0x239)+'地址');stopAllFfmpeg(),await new Promise(_0x131dd5=>setTimeout(_0x131dd5,0x32));state['source']===_0x32baa2(0x201)+'d'&&disconnectCamera();let _0x5d706e;const _0x3db089={'username':_0x341bd9,'password':_0x19aa96,'path':_0x4242d0},_0x115def=await probeTcp(_0x2f9ded,_0x35e71d);if(!_0x115def)console['warn'](_0x32baa2(0x178)+_0x32baa2(0x19f)+'\x20probe'+_0x32baa2(0x129),_0x2f9ded+':'+_0x35e71d);else try{_0x5d706e=await openOnvif({'hostname':_0x2f9ded,'port':_0x35e71d,..._0x3db089});}catch(_0x2a289a){console[_0x32baa2(0xf8)](_0x32baa2(0x178)+_0x32baa2(0x2bb)+'nect\x20f'+_0x32baa2(0x1fd),_0x2f9ded+':'+_0x35e71d+_0x4242d0,_0x2a289a?.[_0x32baa2(0x18b)+'e']||_0x2a289a);if(!isNetworkError(_0x2a289a))throw new Error(cameraError(_0x2a289a,_0x32baa2(0x26a)+'败'));}if(!_0x5d706e)try{console['log'](_0x32baa2(0x178)+_0x32baa2(0x2a6)+_0x32baa2(0x288)+'e',_0x2f9ded+':'+_0x35e71d+_0x4242d0),_0x5d706e=await openOnvif({'hostname':_0x2f9ded,'port':_0x35e71d,..._0x3db089});}catch(_0x535307){console[_0x32baa2(0xf8)](_0x32baa2(0x178)+_0x32baa2(0x2a6)+_0x32baa2(0x267)+'l',_0x2f9ded+':'+_0x35e71d+_0x4242d0,_0x535307?.[_0x32baa2(0x18b)+'e']||_0x535307);if(!isNetworkError(_0x535307))throw new Error(cameraError(_0x535307,_0x32baa2(0x26a)+'败'));}if(!_0x5d706e){const _0x18ee7b=await resolveDiscoveredEndpoint(_0x2f9ded);if(_0x18ee7b&&!sameOnvifEndpoint({'hostname':_0x2f9ded,'port':_0x35e71d,'path':_0x4242d0},_0x18ee7b)){_0x2f9ded=_0x18ee7b[_0x32baa2(0x2ab)+'me'],_0x35e71d=Number(_0x18ee7b['port']||_0x35e71d),_0x4242d0=_0x18ee7b[_0x32baa2(0x266)]||_0x4242d0,console['log']('[camer'+_0x32baa2(0x2a6)+'ry\x20dis'+'covere'+'d',_0x2f9ded+':'+_0x35e71d+_0x4242d0);try{_0x5d706e=await openOnvif({'hostname':_0x2f9ded,'port':_0x35e71d,'username':_0x341bd9,'password':_0x19aa96,'path':_0x4242d0});}catch(_0x20fb05){throw new Error(cameraError(_0x20fb05,'连接摄像头失'+'败'));}}else throw new Error(cameraError(new Error(_0x32baa2(0x105)+_0x32baa2(0x26d)+_0x32baa2(0xff)),_0x32baa2(0x26a)+'败'));}let _0x720d3e=null;try{_0x720d3e=await _0x5d706e[_0x32baa2(0x132)+_0x32baa2(0x143)+_0x32baa2(0x227)+'on']();}catch{_0x720d3e=null;}let _0x2fefbf='';const _0x5adcc0=pickPreviewSource(_0x5d706e);let _0xfab284='';try{const _0x2e2d4e=await _0x5d706e[_0x32baa2(0x1d6)+_0x32baa2(0x176)]({'protocol':_0x32baa2(0x24b),'profileToken':_0x5adcc0?.[_0x32baa2(0x270)+_0x32baa2(0x1b6)]});_0xfab284=mediaUriOf(_0x2e2d4e);}catch(_0x541537){console[_0x32baa2(0xf8)]('[onvif'+']\x20rtsp'+_0x32baa2(0x15d),_0x541537?.[_0x32baa2(0x18b)+'e']||_0x541537);}if(!_0xfab284)try{const _0x54d4fc=await _0x5d706e[_0x32baa2(0x190)+_0x32baa2(0x1ee)+'ri']({'profileToken':_0x5adcc0?.[_0x32baa2(0x270)+_0x32baa2(0x1b6)]});_0x2fefbf=mediaUriOf(_0x54d4fc);}catch(_0x2d3c1a){console[_0x32baa2(0xf8)](_0x32baa2(0x2ba)+_0x32baa2(0x1da)+_0x32baa2(0xed)+'ri',_0x2d3c1a?.[_0x32baa2(0x18b)+'e']||_0x2d3c1a);}resetDigest(),currentCam=_0x5d706e,state[_0x32baa2(0x2b5)+_0x32baa2(0x28c)]=!![],state[_0x32baa2(0x2ab)+'me']=_0x2f9ded,state[_0x32baa2(0x236)]=_0x35e71d,state[_0x32baa2(0x266)]=_0x4242d0,state[_0x32baa2(0x25f)+'me']=_0x341bd9,state['passwo'+'rd']=_0x19aa96,state['snapsh'+_0x32baa2(0x1b5)]=_0x2fefbf,state[_0x32baa2(0x229)+'i']=_0xfab284,state[_0x32baa2(0x1f7)+'ng']=detectEncoding(_0x5adcc0),state[_0x32baa2(0x1eb)+'i']='',state[_0x32baa2(0x19d)+_0x32baa2(0x2b3)]='',state['info']=_0x720d3e?{'manufacturer':_0x720d3e[_0x32baa2(0xe1)+_0x32baa2(0x1a6)]||'','model':_0x720d3e[_0x32baa2(0x1ff)]||'','firmware':_0x720d3e[_0x32baa2(0x1fe)+_0x32baa2(0x12d)+_0x32baa2(0x1c4)]||'','serial':_0x720d3e[_0x32baa2(0x2c3)+_0x32baa2(0x20c)]||''}:null,state[_0x32baa2(0x1dd)]=!!(_0x5d706e[_0x32baa2(0x232)+'lities']?.[_0x32baa2(0x159)]||_0x5d706e[_0x32baa2(0xfc)]?.['ptz']),state[_0x32baa2(0x111)]=_0x32baa2(0x204),state[_0x32baa2(0x111)+_0x32baa2(0x13d)]=[_0x720d3e?.[_0x32baa2(0xe1)+_0x32baa2(0x1a6)],_0x720d3e?.[_0x32baa2(0x1ff)]]['filter'](Boolean)[_0x32baa2(0x10d)]('\x20')||_0x2f9ded;if(_0xfab284)console[_0x32baa2(0x219)]('[camer'+_0x32baa2(0x268)+'p',state[_0x32baa2(0x1f7)+'ng']||_0x32baa2(0x200)+'n',_0x2f9ded);else try{const _0x2c04a4=await findNativeLive({'hostname':_0x2f9ded,'port':_0x35e71d,'username':_0x341bd9,'password':_0x19aa96,'manufacturer':_0x720d3e?.[_0x32baa2(0xe1)+_0x32baa2(0x1a6)]||'','snapshotUri':_0x2fefbf,'profileToken':_0x5adcc0?.['profil'+_0x32baa2(0x1b6)]});state[_0x32baa2(0x1eb)+'i']=_0x2c04a4,state[_0x32baa2(0x19d)+_0x32baa2(0x2b3)]=_0x2c04a4&&isQueryAuthUrl(_0x2c04a4)?_0x2c04a4:'';}catch(_0x28edfa){console[_0x32baa2(0xf8)](_0x32baa2(0x178)+_0x32baa2(0x25a)+'e\x20sear'+'ch',_0x28edfa?.['messag'+'e']||_0x28edfa);}return publicState();}export function disconnectCamera(){const _0x4d8f49=_0x26e603,_0x2e5f5f=state[_0x4d8f49(0x111)]===_0x4d8f49(0x201)+'d';stopAllFfmpeg(),currentCam=null,resetDigest();try{httpAgent['destro'+'y']();}catch{}try{httpsAgent[_0x4d8f49(0x234)+'y']();}catch{}return state[_0x4d8f49(0x2b5)+_0x4d8f49(0x28c)]=![],state[_0x4d8f49(0x127)+_0x4d8f49(0x1b5)]='',state['rtspUr'+'i']='',state['encodi'+'ng']='',state['liveUr'+'i']='',state[_0x4d8f49(0x19d)+_0x4d8f49(0x2b3)]='',state['info']=null,state[_0x4d8f49(0x1dd)]=![],state[_0x4d8f49(0x111)]='',state[_0x4d8f49(0x111)+_0x4d8f49(0x13d)]='',lastOnboardJpeg=null,onboardPreviewClients=0x0,_0x2e5f5f&&void disarmOnboardCamera(),publicState();}export function getCameraState(){return publicState();}function onboardBaseUrl(){const _0x42ba8c=_0x26e603;return String(cameraHooks[_0x42ba8c(0x132)+_0x42ba8c(0x1e0)+'eUrl']?.()||'')[_0x42ba8c(0x22d)+'e'](/\/$/,'');}export async function disarmOnboardCamera(){const _0x3abdf4=_0x26e603,_0x2dff59=onboardBaseUrl();if(!_0x2dff59)return![];try{return await fetch(_0x2dff59+('/camer'+_0x3abdf4(0x25c)+'rm'),{'method':_0x3abdf4(0x1a8),'signal':AbortSignal[_0x3abdf4(0x209)+'t'](ONBOARD_DISARM_TIMEOUT_MS)}),!![];}catch{return![];}}function noteOnboardPreviewClient(_0x5eaa14){const _0x7171e6=_0x26e603,_0x4c1600=onboardPreviewClients;onboardPreviewClients=Math[_0x7171e6(0x26c)](0x0,onboardPreviewClients+_0x5eaa14),_0x4c1600>0x0&&onboardPreviewClients===0x0&&void disarmOnboardCamera();}async function fetchOnboardJpeg(){const _0x4b33be=_0x26e603,_0xc9aa8d=onboardBaseUrl();if(!_0xc9aa8d)throw new Error(_0x4b33be(0x27b)+_0x4b33be(0xe3)+_0x4b33be(0x228)+_0x4b33be(0x144));const _0x5b94f8=_0xc9aa8d+('/camer'+_0x4b33be(0x20d)+_0x4b33be(0x146));let _0x38a966;try{_0x38a966=await fetch(_0x5b94f8,{'signal':AbortSignal['timeou'+'t'](ONBOARD_FETCH_TIMEOUT_MS),'headers':{'Accept':_0x4b33be(0x242)+'jpeg'}});}catch(_0x3ae827){const _0x5841bc=_0x3ae827?.[_0x4b33be(0x1e4)]?.[_0x4b33be(0x18b)+'e']||_0x3ae827?.[_0x4b33be(0x18b)+'e']||_0x3ae827;throw new Error(_0x4b33be(0x179)+_0x4b33be(0x18d)+_0x5b94f8+':'+_0x5841bc);}if(_0x38a966['status']===0xcc)return null;if(!_0x38a966['ok'])throw new Error(_0x4b33be(0x271)+'回\x20'+_0x38a966[_0x4b33be(0x247)]);const _0xd477ee=Buffer[_0x4b33be(0x2b6)](await _0x38a966[_0x4b33be(0x15b)+_0x4b33be(0x15e)]());if(_0xd477ee[_0x4b33be(0xe0)])lastOnboardJpeg=_0xd477ee;return _0xd477ee;}async function getOnboardSnapshot(){const _0x4c9865=_0x26e603;if(onboardFetchInFlight)try{return await onboardFetchInFlight;}catch{}return onboardFetchInFlight=fetchOnboardJpeg()[_0x4c9865(0x1b1)+'y'](()=>{onboardFetchInFlight=null;}),onboardFetchInFlight;}export async function connectOnboardCamera(){const _0x471ca4=_0x26e603;throw new Error(_0x471ca4(0x22e)+'支持');}async function ptzOnboard(_0x2dcbd1,_0x20baae={}){const _0x3e6613=_0x26e603;if(!cameraHooks[_0x3e6613(0x1e8)+_0x3e6613(0x1f1)+'l'])throw new Error(_0x3e6613(0x2c5)+'绪');const _0x1ab88d=String(_0x20baae[_0x3e6613(0x277)]||''),_0x20ae81=String(_0x2dcbd1||''),_0x136d9e=_0x20ae81[_0x3e6613(0x1f2)+_0x3e6613(0x17f)](_0x3e6613(0x174))?_0x20ae81[_0x3e6613(0x1f8)](0x6):_0x20ae81;if(_0x1ab88d===_0x3e6613(0x254)||_0x20ae81['starts'+_0x3e6613(0x17f)]('nudge:'))return await cameraHooks[_0x3e6613(0x1e8)+_0x3e6613(0x1f1)+'l'](payloadForNudge(_0x136d9e)),{'ok':!![]};return await cameraHooks['publis'+_0x3e6613(0x1f1)+'l'](payloadForAction(_0x20ae81)),{'ok':!![]};}function md5(_0x11f981){const _0x35a649=_0x26e603;return _0x22cb2c['create'+'Hash'](_0x35a649(0x230))[_0x35a649(0x124)](_0x11f981)['digest'](_0x35a649(0x26e));}function parseChallenge(_0x404ad8){const _0x296031=_0x26e603,_0x25ee0b={'scheme':_0x296031(0x17b)},_0x162891=String(_0x404ad8||'')[_0x296031(0x114)](/^(\w+)\s+(.*)$/);if(!_0x162891)return _0x25ee0b;_0x25ee0b[_0x296031(0x122)]=_0x162891[0x1][_0x296031(0x2ad)+'rCase']();for(const _0x577df5 of _0x162891[0x2][_0x296031(0x112)](/,(?=(?:[^"]*"[^"]*")*[^"]*$)/)){const _0x3b8bf9=_0x577df5[_0x296031(0x282)+'f']('=');if(_0x3b8bf9<0x0)continue;const _0x4a7d37=_0x577df5['slice'](0x0,_0x3b8bf9)[_0x296031(0x1c7)]();_0x25ee0b[_0x4a7d37]=_0x577df5['slice'](_0x3b8bf9+0x1)[_0x296031(0x1c7)]()['replac'+'e'](/^"|"$/g,'');}return _0x25ee0b;}function digestAuth(_0x3ebfca,_0x235fcd,_0x23ec11,_0x3e93c7,_0x4fd242,_0x1de96c){const _0x145077=_0x26e603,_0x37ac82=String(_0x1de96c)[_0x145077(0x2bc)+'rt'](0x8,'0'),_0xe2b101=_0x22cb2c[_0x145077(0x260)+'Bytes'](0x8)[_0x145077(0x1ec)+'ng'](_0x145077(0x26e)),_0x4a1995=(_0x3ebfca[_0x145077(0x20b)]||_0x145077(0x28b))[_0x145077(0x112)](',')[0x0]['trim']()||'auth',_0xc75fbc=md5(_0x235fcd+':'+_0x3ebfca['realm']+':'+_0x23ec11),_0x240976=md5(_0x3e93c7+':'+_0x4fd242),_0x232e9c=_0x3ebfca['qop']?md5(_0xc75fbc+':'+_0x3ebfca[_0x145077(0xee)]+':'+_0x37ac82+':'+_0xe2b101+':'+_0x4a1995+':'+_0x240976):md5(_0xc75fbc+':'+_0x3ebfca['nonce']+':'+_0x240976),_0x3d838f=[_0x145077(0x25f)+_0x145077(0x2b0)+_0x235fcd+'\x22',_0x145077(0x284)+'\x22'+_0x3ebfca[_0x145077(0x245)]+'\x22','nonce='+'\x22'+_0x3ebfca[_0x145077(0xee)]+'\x22',_0x145077(0x2b7)+_0x4fd242+'\x22',_0x145077(0x154)+_0x145077(0x191)+_0x232e9c+'\x22'];if(_0x3ebfca[_0x145077(0x206)])_0x3d838f[_0x145077(0x110)](_0x145077(0x206)+'=\x22'+_0x3ebfca[_0x145077(0x206)]+'\x22');_0x3ebfca[_0x145077(0x20b)]&&_0x3d838f[_0x145077(0x110)](_0x145077(0xea)+_0x4a1995,_0x145077(0x1f4)+_0x37ac82,_0x145077(0x17d)+'=\x22'+_0xe2b101+'\x22');if(_0x3ebfca[_0x145077(0x2a3)+_0x145077(0xf9)])_0x3d838f[_0x145077(0x110)](_0x145077(0x2a3)+_0x145077(0x1a7)+_0x3ebfca['algori'+_0x145077(0xf9)]);return _0x145077(0x1d4)+'\x20'+_0x3d838f[_0x145077(0x10d)](',\x20');}function digestHeader(_0x134000,_0x28fb7f,_0xdf0f73,_0x1ff847,_0x23585a){return digestAuth(_0x134000,_0x28fb7f,_0xdf0f73,_0x1ff847,_0x23585a,digestState['nc']++);}function isQueryAuthUrl(_0x302a67){const _0x57ea33=_0x26e603;return/[?&](user|usr|username|loginuse)=/i[_0x57ea33(0x1c8)](_0x302a67)&&/[?&](pwd|password|pass|loginpas)=/i[_0x57ea33(0x1c8)](_0x302a67);}function isLiveMjpeg(_0x4ee6de,_0x531fa7){const _0x6d8b18=_0x26e603,_0x54fb19=String(_0x4ee6de||''),_0x310207=String(_0x531fa7||'');if(/multipart\/x-mixed-replace/i[_0x6d8b18(0x1c8)](_0x54fb19))return!![];if(/mjpeg/i[_0x6d8b18(0x1c8)](_0x54fb19))return!![];if(/Content-Type:\s*image\/jpeg/i[_0x6d8b18(0x1c8)](_0x310207)&&_0x310207[_0x6d8b18(0x1e2)+'es']('--'))return!![];return![];}function liveCandidates({hostname:_0x509bbd,port:_0x34902e,username:_0x1370ba,password:_0x1c5e93,manufacturer:_0x39370b,snapshotUri:_0x436ed7}){const _0x54faff=_0x26e603,_0x1f99f5=[],_0x476a96=(_0x1f1c59,_0xbbcdc7)=>{const _0x4f9caf=_0x439c;if(!_0x1f1c59)return;const _0x1bf036={'host':_0x1f1c59,'port':Number(_0xbbcdc7||0x50)};if(!_0x1f99f5[_0x4f9caf(0x1a5)](_0x78d8a3=>_0x78d8a3['host']===_0x1bf036[_0x4f9caf(0x22c)]&&_0x78d8a3[_0x4f9caf(0x236)]===_0x1bf036[_0x4f9caf(0x236)]))_0x1f99f5['push'](_0x1bf036);};_0x476a96(_0x509bbd,_0x34902e&&_0x34902e!==0x22a?_0x34902e:0x50),_0x476a96(_0x509bbd,0x50);if(_0x436ed7)try{const _0x2f7c75=new URL(_0x436ed7);_0x476a96(_0x2f7c75[_0x54faff(0x2ab)+'me'],_0x2f7c75[_0x54faff(0x236)]||0x50);}catch{}const _0x9f28d8=encodeURIComponent(_0x1370ba||''),_0x580416=encodeURIComponent(_0x1c5e93||''),_0x3c7295=String(_0x39370b||'')[_0x54faff(0x2ad)+_0x54faff(0x18e)](),_0x11d6fe=['/ISAPI'+_0x54faff(0x25b)+'ming/c'+'hannel'+_0x54faff(0x262)+_0x54faff(0x147)+_0x54faff(0x23d),_0x54faff(0x13f)+_0x54faff(0x25b)+_0x54faff(0x237)+_0x54faff(0x123)+_0x54faff(0x184)+_0x54faff(0x147)+_0x54faff(0x23d),_0x54faff(0x13f)+'/Strea'+'ming/c'+_0x54faff(0x123)+_0x54faff(0x1cc)+_0x54faff(0x147)+_0x54faff(0x23d),_0x54faff(0x13f)+'/Strea'+'ming/c'+'hannel'+_0x54faff(0xe7)+_0x54faff(0x147)+_0x54faff(0x23d)],_0x214834=[_0x54faff(0x18c)+_0x54faff(0x27e)+_0x54faff(0x16b)+'o.cgi?'+_0x54faff(0x163)+_0x54faff(0x1b3)+_0x54faff(0x298)+'1',_0x54faff(0x18c)+_0x54faff(0x27e)+_0x54faff(0x16b)+_0x54faff(0x186)+_0x54faff(0x163)+'l=1&su'+_0x54faff(0x298)+'0'],_0x594c72=[_0x54faff(0x1b0)+_0x54faff(0x251)+_0x54faff(0x24a)+_0x54faff(0x20f)+_0x9f28d8+_0x54faff(0x15c)+_0x580416,_0x54faff(0x1b0)+_0x54faff(0x251)+'.cgi?l'+_0x54faff(0x293)+'e='+_0x9f28d8+(_0x54faff(0x295)+_0x54faff(0x241))+_0x580416,_0x54faff(0x1b0)+_0x54faff(0x251)+'.cgi',_0x54faff(0x1ac)+_0x54faff(0x101),_0x54faff(0x1b0)+_0x54faff(0x223),'/mjpg/'+_0x54faff(0x22b)+'mjpg',_0x54faff(0x18c)+_0x54faff(0x27e)+'eg',_0x54faff(0x2b4)+_0x54faff(0x198)+'pg/vid'+_0x54faff(0x14a),_0x54faff(0x172)+_0x54faff(0x1ac)+'.cgi','/cgi-b'+_0x54faff(0x194)+_0x54faff(0x24e)+_0x54faff(0x156)+'i','/live/'+_0x54faff(0x256)+_0x54faff(0x1a9),'/strea'+'m'];let _0x3bab49=[];if(/hik|海康/[_0x54faff(0x1c8)](_0x3c7295))_0x3bab49=[..._0x11d6fe,..._0x594c72,..._0x214834];else{if(/dahua|大华/['test'](_0x3c7295))_0x3bab49=[..._0x214834,..._0x594c72,..._0x11d6fe];else _0x3bab49=[..._0x594c72,..._0x11d6fe,..._0x214834];}const _0x104112=[];for(const _0x3765ae of _0x1f99f5){const _0x13e80f=_0x3765ae[_0x54faff(0x236)]===0x50?_0x54faff(0xf5)+'/'+_0x3765ae['host']:'http:/'+'/'+_0x3765ae[_0x54faff(0x22c)]+':'+_0x3765ae[_0x54faff(0x236)];for(const _0x3fc596 of _0x3bab49)_0x104112[_0x54faff(0x110)](_0x13e80f+_0x3fc596);}return[...new Set(_0x104112)];}function openCameraHttp(_0x221b88,_0x3e3759,_0xbe1090,_0x4ff086=0xfa0){return new Promise((_0x2fb6eb,_0xeace0d)=>{const _0x4eba4b=_0x439c,_0x4479ea=new URL(_0x221b88),_0x2adeb7=decodeURIComponent(_0x4479ea[_0x4eba4b(0x25f)+'me']||_0x3e3759||''),_0xd2185a=decodeURIComponent(_0x4479ea[_0x4eba4b(0x196)+'rd']||_0xbe1090||'');_0x4479ea[_0x4eba4b(0x25f)+'me']='',_0x4479ea[_0x4eba4b(0x196)+'rd']='';const _0x656568=_0x4479ea[_0x4eba4b(0x2c1)+'ol']===_0x4eba4b(0x244),_0x50c8d4=_0x656568?_0x1502b2:_0x5ef6bd;let _0x1fd6e5=![],_0x4f9771=0x1;const _0x1a0d69=(_0x286b14,_0x42d808)=>{if(_0x1fd6e5)return;_0x1fd6e5=!![];if(_0x286b14)_0xeace0d(_0x286b14);else _0x2fb6eb(_0x42d808);},_0x1bb306=_0xd4f679=>{const _0x36f18b=_0x4eba4b,_0x1d4c71=_0x4479ea[_0x36f18b(0x1c3)+'me']+_0x4479ea[_0x36f18b(0x121)],_0x2bce6a={'Accept':_0x36f18b(0x1e7)+_0x36f18b(0x299)+'mixed-'+_0x36f18b(0x22d)+_0x36f18b(0x2c0)+'ge/jpe'+_0x36f18b(0xe9),'Connection':_0x36f18b(0x220)};if(_0xd4f679?.[_0x36f18b(0x122)]===_0x36f18b(0x17b)&&_0x2adeb7)_0x2bce6a[_0x36f18b(0x258)+_0x36f18b(0x250)+'n']=digestAuth(_0xd4f679,_0x2adeb7,_0xd2185a,_0x36f18b(0x11f),_0x1d4c71,_0x4f9771++);else _0x2adeb7&&(_0x2bce6a['Author'+'izatio'+'n']=_0x36f18b(0x16d)+Buffer[_0x36f18b(0x2b6)](_0x2adeb7+':'+_0xd2185a)[_0x36f18b(0x1ec)+'ng'](_0x36f18b(0x170)));return _0x2bce6a;},_0x3c21a1=_0x546552=>{const _0x136e40=_0x4eba4b,_0x257256=_0x50c8d4['reques'+'t']({'protocol':_0x4479ea[_0x136e40(0x2c1)+'ol'],'hostname':_0x4479ea[_0x136e40(0x2ab)+'me'],'port':_0x4479ea[_0x136e40(0x236)]||(_0x656568?0x1bb:0x50),'path':_0x4479ea[_0x136e40(0x1c3)+'me']+_0x4479ea['search'],'method':_0x136e40(0x11f),'headers':_0x1bb306(_0x546552),'timeout':_0x4ff086,'rejectUnauthorized':![],'agent':![]},_0x1a2202=>{const _0x4e1776=_0x136e40;if(_0x1a2202[_0x4e1776(0x247)+'Code']===0x191&&!_0x546552){const _0x90f7d1=_0x1a2202[_0x4e1776(0x255)+'s'][_0x4e1776(0x21e)+_0x4e1776(0x1f9)+_0x4e1776(0x1f6)],_0x2a7e32=parseChallenge(Array['isArra'+'y'](_0x90f7d1)?_0x90f7d1[0x0]:_0x90f7d1||'');_0x1a2202[_0x4e1776(0x11d)](),_0x3c21a1(_0x2a7e32);return;}if((_0x1a2202['status'+_0x4e1776(0x189)]||0x0)>=0x190){_0x1a2202['resume'](),_0x1a0d69(new Error(_0x4e1776(0x2a0)+_0x1a2202[_0x4e1776(0x247)+_0x4e1776(0x189)]));return;}_0x1a0d69(null,{'req':_0x257256,'res':_0x1a2202,'contentType':String(_0x1a2202[_0x4e1776(0x255)+'s']['conten'+_0x4e1776(0x167)]||'')});});_0x257256['on']('timeou'+'t',()=>{const _0x1b644e=_0x136e40;_0x257256[_0x1b644e(0x234)+'y'](),_0x1a0d69(new Error(_0x1b644e(0x209)+'t'));}),_0x257256['on'](_0x136e40(0x116),_0x286142=>_0x1a0d69(_0x286142)),_0x257256['end']();};try{_0x3c21a1(null);}catch(_0x17519d){_0x1a0d69(_0x17519d);}});}function peekAndClose(_0x10c3ad,_0x2a2531=0x2bc){return new Promise(_0x23aed1=>{const _0x4a3762=_0x439c,_0x186ef1=[];let _0x53bd36=![];const _0x53f5fd=()=>{const _0x24155e=_0x439c;if(_0x53bd36)return;_0x53bd36=!![];try{_0x10c3ad[_0x24155e(0x1d5)][_0x24155e(0x234)+'y']();}catch{}try{_0x10c3ad[_0x24155e(0x1bd)][_0x24155e(0x234)+'y']();}catch{}_0x23aed1({'contentType':_0x10c3ad[_0x24155e(0x180)+_0x24155e(0x274)],'peek':Buffer['concat'](_0x186ef1)['toStri'+'ng'](_0x24155e(0x222))});};_0x10c3ad[_0x4a3762(0x1bd)]['on'](_0x4a3762(0x2be),_0x365c88=>{const _0x49012b=_0x4a3762;_0x186ef1[_0x49012b(0x110)](_0x365c88);if(Buffer[_0x49012b(0x213)](_0x186ef1)[_0x49012b(0xe0)]>=0xf0)_0x53f5fd();}),_0x10c3ad[_0x4a3762(0x1bd)]['on'](_0x4a3762(0x1f0),_0x53f5fd),_0x10c3ad[_0x4a3762(0x1bd)]['on']('error',_0x53f5fd),setTimeout(_0x53f5fd,_0x2a2531);});}async function findNativeLive({hostname:_0x43205a,port:_0x470edf,username:_0x2407dd,password:_0x1a3939,manufacturer:_0x5db4c8,snapshotUri:_0x22a25f,profileToken:_0x31207f}){const _0x52239=_0x26e603,_0x358214=liveCandidates({'hostname':_0x43205a,'port':_0x470edf,'username':_0x2407dd,'password':_0x1a3939,'manufacturer':_0x5db4c8,'snapshotUri':_0x22a25f});if(currentCam)try{const _0x33e78c=await currentCam[_0x52239(0x1d6)+_0x52239(0x176)]({'protocol':_0x52239(0x1a0),'profileToken':_0x31207f}),_0x53dd52=mediaUriOf(_0x33e78c);if(/^https?:/i[_0x52239(0x1c8)](_0x53dd52)&&!/onvif/i['test'](_0x53dd52))_0x358214[_0x52239(0x139)+'t'](_0x53dd52);}catch{}_0x358214[_0x52239(0x14e)](0x8);let _0x108af8='';const _0x5d48bf=[],_0x494c47=0x2;let _0x774e4=0x0;const _0xf56ccd=async()=>{const _0x31ba2f=_0x52239;while(_0x774e4<_0x358214[_0x31ba2f(0xe0)]&&!_0x108af8){const _0xbc68bd=_0x358214[_0x774e4++];try{const _0x194981=await openCameraHttp(_0xbc68bd,_0x2407dd,_0x1a3939,0x640),_0x6fb7ab=await peekAndClose(_0x194981);!_0x108af8&&isLiveMjpeg(_0x6fb7ab[_0x31ba2f(0x180)+_0x31ba2f(0x274)],_0x6fb7ab[_0x31ba2f(0x165)])&&(_0x108af8=_0xbc68bd,console[_0x31ba2f(0x219)](_0x31ba2f(0x178)+'a]\x20nat'+_0x31ba2f(0x1ce)+_0x31ba2f(0x14b),_0xbc68bd));}catch{}}};for(let _0x52ce43=0x0;_0x52ce43<_0x494c47;_0x52ce43++)_0x5d48bf[_0x52239(0x110)](_0xf56ccd());return await Promise[_0x52239(0x181)](_0x5d48bf),_0x108af8;}const SNAPSHOT_MAX_BYTES=0x2bc*0x400,SNAPSHOT_HARD_TIMEOUT_MS=0xfa0;export function extractFirstJpeg(_0xb18f1f){const _0x29a710=_0x26e603;if(!_0xb18f1f||_0xb18f1f['length']<0x4)return null;const _0x4c8061=_0xb18f1f[_0x29a710(0x282)+'f'](Buffer['from']([0xff,0xd8]));if(_0x4c8061<0x0)return null;const _0x5eecb5=_0xb18f1f[_0x29a710(0x282)+'f'](Buffer[_0x29a710(0x2b6)]([0xff,0xd9]),_0x4c8061+0x2);if(_0x5eecb5<0x0)return null;return Buffer[_0x29a710(0x2b6)](_0xb18f1f[_0x29a710(0x18f)+'ay'](_0x4c8061,_0x5eecb5+0x2));}function requestOnce(_0x54a74e,_0x477969){return new Promise((_0x4e2a86,_0x10f056)=>{const _0x3b8471=_0x439c;let _0x58afba=![],_0x4e9fb8,_0x32423f;const _0x5c45e3=(_0x46c0d3,_0x54dcd5)=>{const _0xdeb965=_0x439c;if(_0x58afba)return;_0x58afba=!![],clearTimeout(_0x32423f);try{_0x4e9fb8?.[_0xdeb965(0x234)+'y']();}catch{}if(_0x46c0d3)_0x10f056(_0x46c0d3);else _0x4e2a86(_0x54dcd5);},_0x8e5930=_0x54a74e[_0x3b8471(0x2c1)+'ol']===_0x3b8471(0x244),_0x41b2e7=_0x8e5930?_0x1502b2:_0x5ef6bd;_0x4e9fb8=_0x41b2e7[_0x3b8471(0xf2)+'t']({'protocol':_0x54a74e['protoc'+'ol'],'hostname':_0x54a74e[_0x3b8471(0x2ab)+'me'],'port':_0x54a74e[_0x3b8471(0x236)]||(_0x8e5930?0x1bb:0x50),'path':_0x54a74e['pathna'+'me']+_0x54a74e[_0x3b8471(0x121)],'method':_0x3b8471(0x11f),'headers':_0x477969,'timeout':SNAPSHOT_HARD_TIMEOUT_MS,'agent':_0x8e5930?httpsAgent:httpAgent,'rejectUnauthorized':![]},_0xd98821=>{const _0xcf458f=_0x3b8471,_0x56e5d6=[];let _0x59c260=0x0;const _0x21b52a=_0x24be68=>{const _0x8eecd4=_0x439c,_0x114dbd=Buffer[_0x8eecd4(0x213)](_0x56e5d6),_0x51e0cf=extractFirstJpeg(_0x114dbd);if(_0x51e0cf)return _0x5c45e3(null,{'status':_0xd98821['status'+_0x8eecd4(0x189)]||0x0,'headers':_0xd98821['header'+'s'],'body':_0x51e0cf}),!![];if(_0x24be68)return _0x5c45e3(null,{'status':_0xd98821[_0x8eecd4(0x247)+_0x8eecd4(0x189)]||0x0,'headers':_0xd98821[_0x8eecd4(0x255)+'s'],'body':_0x114dbd}),!![];return![];};_0xd98821['on'](_0xcf458f(0x2be),_0x49ac70=>{const _0x229f76=_0xcf458f;_0x56e5d6[_0x229f76(0x110)](_0x49ac70),_0x59c260+=_0x49ac70['length'];if(_0x21b52a(![]))return;_0x59c260>SNAPSHOT_MAX_BYTES&&_0x5c45e3(new Error('截图过大'));}),_0xd98821['on'](_0xcf458f(0x1f0),()=>{if(!_0x58afba)_0x21b52a(!![]);});}),_0x32423f=setTimeout(()=>_0x5c45e3(new Error(_0x3b8471(0x27f))),SNAPSHOT_HARD_TIMEOUT_MS),_0x4e9fb8['on'](_0x3b8471(0x209)+'t',()=>_0x5c45e3(new Error(_0x3b8471(0x27f)))),_0x4e9fb8['on'](_0x3b8471(0x116),_0x256705=>_0x5c45e3(_0x256705)),_0x4e9fb8[_0x3b8471(0x1f0)]();});}function authHeaders(_0x14f65e,_0x5869b6,_0x5f2248){const _0x33125e=_0x26e603,_0x20a2e9=_0x14f65e['pathna'+'me']+_0x14f65e[_0x33125e(0x121)];if(digestState[_0x33125e(0x100)+_0x33125e(0x1c2)]?.[_0x33125e(0x122)]===_0x33125e(0x17b)&&_0x5869b6)return{'Authorization':digestHeader(digestState[_0x33125e(0x100)+_0x33125e(0x1c2)],_0x5869b6,_0x5f2248,'GET',_0x20a2e9)};if(_0x5869b6)return{'Authorization':'Basic\x20'+Buffer[_0x33125e(0x2b6)](_0x5869b6+':'+_0x5f2248)['toStri'+'ng'](_0x33125e(0x170))};return{};}function _0x439c(_0x595806,_0x54203a){_0x595806=_0x595806-0xde;const _0x15fe19=_0x15fe();let _0x439c5d=_0x15fe19[_0x595806];if(_0x439c['gmWbXW']===undefined){var _0x342da9=function(_0x1ee010){const _0x3ae8cf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x22cb2c='',_0x5ef6bd='';for(let _0x1502b2=0x0,_0x17d287,_0x1db23f,_0x10fc36=0x0;_0x1db23f=_0x1ee010['charAt'](_0x10fc36++);~_0x1db23f&&(_0x17d287=_0x1502b2%0x4?_0x17d287*0x40+_0x1db23f:_0x1db23f,_0x1502b2++%0x4)?_0x22cb2c+=String['fromCharCode'](0xff&_0x17d287>>(-0x2*_0x1502b2&0x6)):0x0){_0x1db23f=_0x3ae8cf['indexOf'](_0x1db23f);}for(let _0x98c213=0x0,_0x536e24=_0x22cb2c['length'];_0x98c213<_0x536e24;_0x98c213++){_0x5ef6bd+='%'+('00'+_0x22cb2c['charCodeAt'](_0x98c213)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ef6bd);};_0x439c['FlEKzd']=_0x342da9,_0x439c['HtEJoM']={},_0x439c['gmWbXW']=!![];}const _0x2bad43=_0x15fe19[0x0],_0x24bf50=_0x595806+_0x2bad43,_0x5c1fcc=_0x439c['HtEJoM'][_0x24bf50];return!_0x5c1fcc?(_0x439c5d=_0x439c['FlEKzd'](_0x439c5d),_0x439c['HtEJoM'][_0x24bf50]=_0x439c5d):_0x439c5d=_0x5c1fcc,_0x439c5d;}async function fetchAuthImage(_0x592cf8,_0x405258,_0x21d748,_0x59168c=0x0){const _0x16a11f=_0x26e603;if(_0x59168c>0x3)throw new Error(_0x16a11f(0x1d7)+'过多');const _0x485c88=new URL(_0x592cf8),_0x6fe4d7=decodeURIComponent(_0x485c88[_0x16a11f(0x25f)+'me']||_0x405258||''),_0x4f41bf=decodeURIComponent(_0x485c88[_0x16a11f(0x196)+'rd']||_0x21d748||'');_0x485c88[_0x16a11f(0x25f)+'me']='',_0x485c88[_0x16a11f(0x196)+'rd']='';const _0x2808e4=_0x485c88[_0x16a11f(0x1c3)+'me']+_0x485c88[_0x16a11f(0x121)];let _0x584545=await requestOnce(_0x485c88,authHeaders(_0x485c88,_0x6fe4d7,_0x4f41bf));if(_0x584545[_0x16a11f(0x247)]===0x191){const _0x16278a=_0x584545[_0x16a11f(0x255)+'s']['www-au'+_0x16a11f(0x1f9)+_0x16a11f(0x1f6)]||'';digestState[_0x16a11f(0x100)+_0x16a11f(0x1c2)]=parseChallenge(Array[_0x16a11f(0xdf)+'y'](_0x16278a)?_0x16278a[0x0]:_0x16278a),digestState['nc']=0x1;const _0x305d94={};if(digestState[_0x16a11f(0x100)+_0x16a11f(0x1c2)][_0x16a11f(0x122)]===_0x16a11f(0x17b)&&_0x6fe4d7)_0x305d94[_0x16a11f(0x258)+_0x16a11f(0x250)+'n']=digestHeader(digestState[_0x16a11f(0x100)+'nge'],_0x6fe4d7,_0x4f41bf,_0x16a11f(0x11f),_0x2808e4);else _0x6fe4d7&&(_0x305d94[_0x16a11f(0x258)+_0x16a11f(0x250)+'n']=_0x16a11f(0x16d)+Buffer['from'](_0x6fe4d7+':'+_0x4f41bf)['toStri'+'ng'](_0x16a11f(0x170)));_0x584545=await requestOnce(_0x485c88,_0x305d94);}if(_0x584545[_0x16a11f(0x247)]>=0x12c&&_0x584545['status']<0x190&&_0x584545[_0x16a11f(0x255)+'s'][_0x16a11f(0x1d9)+'on'])return fetchAuthImage(new URL(_0x584545[_0x16a11f(0x255)+'s']['locati'+'on'],_0x485c88)[_0x16a11f(0x240)],_0x6fe4d7,_0x4f41bf,_0x59168c+0x1);if(_0x584545['status']>=0x190)throw new Error(_0x584545[_0x16a11f(0x247)]===0x191?_0x16a11f(0x1a1)+'密码':_0x16a11f(0x1a3)+_0x584545[_0x16a11f(0x247)]+')');const _0x1ee11d=String(_0x584545[_0x16a11f(0x255)+'s'][_0x16a11f(0x180)+_0x16a11f(0x167)]||'');if(_0x1ee11d[_0x16a11f(0x1e2)+'es'](_0x16a11f(0x1c9))||_0x1ee11d[_0x16a11f(0x1e2)+'es']('html'))throw new Error(_0x16a11f(0x207)+_0x16a11f(0x285));return _0x584545[_0x16a11f(0x193)];}function withSnapshotLock(_0x5d3821){const _0x14913f=_0x26e603,_0x5cf779=snapshotTail[_0x14913f(0x1af)](_0x5d3821,_0x5d3821);return snapshotTail=_0x5cf779[_0x14913f(0x292)](()=>{}),_0x5cf779;}async function waitForPtzIdle(_0x1c29dc=0xfa0){const _0x2b9867=_0x26e603;if(!ptzBusy)return;const _0x533aaf=Date[_0x2b9867(0x1b8)]();while(ptzBusy&&Date[_0x2b9867(0x1b8)]()-_0x533aaf<_0x1c29dc){await new Promise(_0x13063a=>setTimeout(_0x13063a,0x28));}if(ptzBusy)return;await new Promise(_0x33f20b=>setTimeout(_0x33f20b,0x190));}async function captureFrameFromRtspOnce(){const _0x36ab3e=_0x26e603;if(!state[_0x36ab3e(0x229)+'i'])throw new Error(_0x36ab3e(0x1cf)+_0x36ab3e(0x246));const _0x498ac7=await ensureFfmpeg(),_0xccd124=injectRtspAuth(state[_0x36ab3e(0x229)+'i'],state['userna'+'me'],state[_0x36ab3e(0x196)+'rd']),_0x319582=/hevc|h265/[_0x36ab3e(0x1c8)](state['encodi'+'ng']);return new Promise((_0x108043,_0x5d6ef0)=>{const _0x2e86b7=_0x36ab3e,_0x30bb40=['-hide_'+'banner',_0x2e86b7(0x1ca)+_0x2e86b7(0x265),_0x2e86b7(0x116),_0x2e86b7(0x205)+_0x2e86b7(0xec)+'ort',_0x2e86b7(0x11c),_0x2e86b7(0x109)+'size',_0x319582?_0x2e86b7(0x17a)+'0':_0x2e86b7(0x218),_0x2e86b7(0x2a2)+'zedura'+'tion',_0x319582?_0x2e86b7(0x17a)+'0':_0x2e86b7(0x218),'-i',_0xccd124,_0x2e86b7(0x280),_0x2e86b7(0x1a4)+_0x2e86b7(0x119),'1',_0x2e86b7(0x1b2),'2','-f','image2',_0x2e86b7(0x25e)],_0xcc039c=spawn(_0x498ac7,_0x30bb40,{'stdio':['ignore','pipe','pipe']}),_0x3ceee0=[];let _0x21f4d4='';_0xcc039c['stdout']['on'](_0x2e86b7(0x2be),_0x15a8de=>_0x3ceee0[_0x2e86b7(0x110)](_0x15a8de)),_0xcc039c[_0x2e86b7(0x130)]['on']('data',_0x169dd9=>{_0x21f4d4+=String(_0x169dd9||'');});const _0x54ea23=setTimeout(()=>{const _0x28fbe8=_0x2e86b7;try{_0xcc039c[_0x28fbe8(0x217)](_0x28fbe8(0x175)+'L');}catch{}_0x5d6ef0(new Error(_0x28fbe8(0x27a)+'超时'));},0x3a98),_0x693fe3=(_0x467aa3,_0x267a9c)=>{clearTimeout(_0x54ea23),ffmpegProcs['delete'](_0xcc039c);if(_0x467aa3)_0x5d6ef0(_0x467aa3);else _0x108043(_0x267a9c);};ffmpegProcs[_0x2e86b7(0x17c)](_0xcc039c),_0xcc039c['on'](_0x2e86b7(0x220),_0x145169=>{const _0x3df8c2=_0x2e86b7,_0x4d16a3=Buffer[_0x3df8c2(0x213)](_0x3ceee0);if(_0x145169===0x0&&_0x4d16a3[_0x3df8c2(0xe0)]>0x64){_0x693fe3(null,_0x4d16a3);return;}_0x693fe3(new Error(_0x21f4d4['trim']()||'从视频流截帧'+_0x3df8c2(0x21c)+_0x145169+')'));}),_0xcc039c['on'](_0x2e86b7(0x116),_0x521596=>_0x693fe3(_0x521596));});}async function captureFrameFromRtsp(){return captureFrameFromRtspOnce();}export async function holdPreviewForCapture(){const _0xaffeb1=_0x26e603;previewHoldDepth+=0x1;if(previewHoldDepth>0x1)return{'transcode':sharedTranscode,'held':![]};if(!sharedFfmpeg||sharedFfmpeg[_0xaffeb1(0x1db)]||!streamClients['size'])return{'transcode':sharedTranscode,'held':![]};suppressFfmpegRestart=!![];const _0x4ddb57=sharedTranscode;return console[_0xaffeb1(0x219)](_0xaffeb1(0x178)+_0xaffeb1(0x185)+_0xaffeb1(0x272)+_0xaffeb1(0x177)+_0xaffeb1(0x253)+_0xaffeb1(0x1a2)),killSharedFfmpeg(),await new Promise(_0x2c6743=>setTimeout(_0x2c6743,0xfa)),{'transcode':_0x4ddb57,'held':!![]};}export async function releasePreviewAfterCapture(_0x2e71ed){const _0x405880=_0x26e603;if(!_0x2e71ed||previewHoldDepth<=0x0)return;previewHoldDepth-=0x1;if(previewHoldDepth>0x0)return;suppressFfmpegRestart=![],_0x2e71ed[_0x405880(0x151)]&&state[_0x405880(0x2b5)+_0x405880(0x28c)]&&state['rtspUr'+'i']&&streamClients['size']>0x0&&await ensureSharedFfmpeg(_0x2e71ed[_0x405880(0x10a)+_0x405880(0x238)]);}async function getSnapshotFromOnvif(){const _0x3f9bfb=_0x26e603,_0x1b078d=async()=>{const _0x4d196a=_0x439c,_0x35843e=await currentCam[_0x4d196a(0x190)+_0x4d196a(0x1ee)+'ri']({});state[_0x4d196a(0x127)+'otUri']=(typeof _0x35843e===_0x4d196a(0x226)?_0x35843e:_0x35843e?.[_0x4d196a(0xfc)]||'')[_0x4d196a(0x22d)+'e'](/&/g,'&');if(!state[_0x4d196a(0x127)+_0x4d196a(0x1b5)])throw new Error(_0x4d196a(0x107)+_0x4d196a(0x2a5)+'址');};!state[_0x3f9bfb(0x127)+_0x3f9bfb(0x1b5)]&&await _0x1b078d();try{return await fetchAuthImage(state[_0x3f9bfb(0x127)+_0x3f9bfb(0x1b5)],state['userna'+'me'],state[_0x3f9bfb(0x196)+'rd']);}catch(_0x19cd03){return await _0x1b078d(),fetchAuthImage(state[_0x3f9bfb(0x127)+_0x3f9bfb(0x1b5)],state[_0x3f9bfb(0x25f)+'me'],state['passwo'+'rd']);}}export async function getSnapshot(_0x237505={}){const _0x1fe172=_0x26e603;if(state['source']===_0x1fe172(0x201)+'d')return getOnboardSnapshot();if(!currentCam||!state[_0x1fe172(0x2b5)+_0x1fe172(0x28c)])throw new Error(_0x1fe172(0x210)+'像头');const _0x299b6b=_0x237505[_0x1fe172(0x111)]===_0x1fe172(0x204),_0x339a15=_0x237505[_0x1fe172(0x296)+_0x1fe172(0xe4)+_0x1fe172(0x152)]===!![]||_0x299b6b;let _0x9ec683=null;!_0x339a15&&state[_0x1fe172(0x229)+'i']&&(_0x9ec683=await holdPreviewForCapture());try{return await withSnapshotLock(async()=>{const _0x10e91f=_0x1fe172;await waitForPtzIdle();if(_0x299b6b){const _0x46cea9=await getSnapshotFromOnvif();return console[_0x10e91f(0x219)]('[camer'+_0x10e91f(0x197)+'if\x20sna'+_0x10e91f(0x1e3),_0x46cea9[_0x10e91f(0xe0)]),_0x46cea9;}if(state['rtspUr'+'i']){let _0x3347ac=null;for(let _0x27e3e8=0x0;_0x27e3e8<0x3;_0x27e3e8++){try{const _0x26d459=await captureFrameFromRtsp();return console['log'](_0x10e91f(0x178)+_0x10e91f(0x268)+_0x10e91f(0x1c1)+'e',_0x26d459[_0x10e91f(0xe0)],_0x27e3e8>0x0?'retry='+_0x27e3e8:''),_0x26d459;}catch(_0x501c2c){_0x3347ac=_0x501c2c,console['warn']('[camer'+_0x10e91f(0x268)+_0x10e91f(0x1c1)+_0x10e91f(0x1e5)+_0x10e91f(0x133),_0x27e3e8+0x1,_0x501c2c?.[_0x10e91f(0x18b)+'e']||_0x501c2c),_0x27e3e8<0x2&&await new Promise(_0x5031be=>setTimeout(_0x5031be,0x15e*(_0x27e3e8+0x1)));}}console[_0x10e91f(0xf8)](_0x10e91f(0x178)+_0x10e91f(0x268)+_0x10e91f(0x1c1)+'e\x20fall'+_0x10e91f(0xf0)+_0x10e91f(0x2a8),_0x3347ac?.[_0x10e91f(0x18b)+'e']||_0x3347ac);}return getSnapshotFromOnvif();});}finally{!_0x339a15&&await releasePreviewAfterCapture(_0x9ec683);}}async function ptzOnvifNudge(_0x27b900){const _0x19210c=_0x26e603,_0x4d1749=onvifVectorForAction(_0x27b900);if(!_0x4d1749)throw new Error(_0x19210c(0x16e)+'方向');if(!state[_0x19210c(0x1dd)])throw new Error(_0x19210c(0x107)+_0x19210c(0x10c)+_0x19210c(0x269)+_0x19210c(0x294)+'Z');ptzBusy&&await waitForPtzIdle();const _0x27802f=async _0x4c9289=>{const _0x21b4b5=_0x19210c;if(!_0x4c9289)throw new Error(_0x21b4b5(0x210)+'像头');const _0x1b906a={'x':_0x4d1749['x']||0x0,'y':_0x4d1749['y']||0x0,'timeout':ONVIF_NUDGE_MS};return _0x4d1749[_0x21b4b5(0x2ae)]?(_0x1b906a[_0x21b4b5(0x2ae)]=_0x4d1749[_0x21b4b5(0x2ae)],_0x1b906a[_0x21b4b5(0x225)+_0x21b4b5(0x1bb)]=!![]):_0x1b906a[_0x21b4b5(0x225)+_0x21b4b5(0xfd)+_0x21b4b5(0x21b)]=!![],await _0x4c9289[_0x21b4b5(0x2c2)+'uousMo'+'ve'](_0x1b906a),await _0x4c9289[_0x21b4b5(0x2c4)]({'panTilt':!![],'zoom':!![]}),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x27802f(currentCam);}catch(_0x4c571f){if(!isNetworkError(_0x4c571f))throw new Error(cameraError(_0x4c571f,_0x19210c(0x10e)));const _0xb77adf=await refreshOnvif();return await _0x27802f(_0xb77adf);}}catch(_0x2f989e){throw new Error(cameraError(_0x2f989e,_0x19210c(0x10e)));}finally{ptzBusy=![];}}export async function ptzMove(_0x37643f,_0x4d21c2={}){const _0xf7ef7a=_0x26e603;if(gimbalAvailable()&&state[_0xf7ef7a(0x111)]!==_0xf7ef7a(0x204))return ptzOnboard(_0x37643f,_0x4d21c2);if(!state[_0xf7ef7a(0x2b5)+'ted'])throw new Error(_0xf7ef7a(0x210)+'像头');const _0x5bf6fb=String(_0x4d21c2[_0xf7ef7a(0x277)]||''),_0x1d196f=String(_0x37643f||''),_0x4b3c1a=_0x1d196f[_0xf7ef7a(0x1f2)+_0xf7ef7a(0x17f)]('nudge:')?_0x1d196f[_0xf7ef7a(0x1f8)](0x6):_0x1d196f;if(_0x5bf6fb===_0xf7ef7a(0x254)||_0x1d196f['starts'+_0xf7ef7a(0x17f)](_0xf7ef7a(0x174)))return ptzOnvifNudge(_0x4b3c1a);if(_0x37643f!==_0xf7ef7a(0x2c4)&&ptzBusy)return{'ok':!![]};while(_0x37643f===_0xf7ef7a(0x2c4)&&ptzBusy){await new Promise(_0x43b2f0=>setTimeout(_0x43b2f0,0x28));}const _0x24f7e1=async _0x25affe=>{const _0x29aa57=_0xf7ef7a;if(!_0x25affe)throw new Error(_0x29aa57(0x210)+'像头');if(_0x37643f===_0x29aa57(0x2c4))return await _0x25affe[_0x29aa57(0x2c4)]({'panTilt':!![],'zoom':!![]}),{'ok':!![]};const _0x5b9623=onvifVectorForAction(_0x37643f);if(!_0x5b9623)throw new Error('不支持的云台'+'方向');if(!state[_0x29aa57(0x1dd)])throw new Error(_0x29aa57(0x107)+_0x29aa57(0x10c)+_0x29aa57(0x269)+'未开放\x20PT'+'Z');const _0x463cba={'x':_0x5b9623['x']||0x0,'y':_0x5b9623['y']||0x0,'timeout':PTZ_TIMEOUT_MS};return _0x5b9623['zoom']?(_0x463cba[_0x29aa57(0x2ae)]=_0x5b9623[_0x29aa57(0x2ae)],_0x463cba['onlySe'+'ndZoom']=!![]):_0x463cba[_0x29aa57(0x225)+_0x29aa57(0xfd)+'ilt']=!![],await _0x25affe[_0x29aa57(0x2c2)+_0x29aa57(0x19a)+'ve'](_0x463cba),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x24f7e1(currentCam);}catch(_0x59f654){if(!isNetworkError(_0x59f654))throw new Error(cameraError(_0x59f654,'云台控制失败'));const _0x469ec3=await refreshOnvif();return await _0x24f7e1(_0x469ec3);}}catch(_0x37062b){throw new Error(cameraError(_0x37062b,_0xf7ef7a(0x10e)));}finally{ptzBusy=![];}}export async function ensureCameraConnected(_0x4aefb8={}){const _0x1c134e=_0x26e603;if(state[_0x1c134e(0x2b5)+'ted'])return publicState();if(_0x4aefb8['source']==='onboar'+'d')throw new Error(_0x1c134e(0x22e)+'支持');const _0x856b59=String(_0x4aefb8[_0x1c134e(0x2ab)+'me']||'')['trim']();if(!_0x856b59)throw new Error(_0x1c134e(0x161)+_0x1c134e(0x1de)+'枢」页配置并'+_0x1c134e(0x1ed));return connectCamera({'hostname':_0x856b59,'port':Number(_0x4aefb8[_0x1c134e(0x236)]||0x50),'username':String(_0x4aefb8[_0x1c134e(0x25f)+'me']||'')[_0x1c134e(0x1c7)](),'password':String(_0x4aefb8[_0x1c134e(0x196)+'rd']||''),'path':String(_0x4aefb8[_0x1c134e(0x266)]||_0x1c134e(0x273)+_0x1c134e(0x1c0)+_0x1c134e(0x168)+_0x1c134e(0x28f))['trim']()||_0x1c134e(0x273)+_0x1c134e(0x1c0)+_0x1c134e(0x168)+_0x1c134e(0x28f)});}export async function ptzContinuousMove(_0x1a0e35,_0x1cbece,_0x229c6a,_0x28bea7=0x1){const _0x14fab6=_0x26e603;if(gimbalAvailable()&&state[_0x14fab6(0x111)]!==_0x14fab6(0x204)){const _0x142815=payloadForVector(_0x1a0e35,_0x1cbece);if(!cameraHooks[_0x14fab6(0x1e8)+_0x14fab6(0x1f1)+'l'])throw new Error(_0x14fab6(0x2c5)+'绪');await cameraHooks[_0x14fab6(0x1e8)+_0x14fab6(0x1f1)+'l'](_0x142815);if(_0x142815[_0x14fab6(0x199)]!==_0x14fab6(0x2c4)){const _0x37bfa8=Math[_0x14fab6(0x26c)](0x190,Math[_0x14fab6(0x1d8)](0xfa0,Math[_0x14fab6(0x1ae)](Number(_0x28bea7)||0x1)*0x3e8));setTimeout(()=>{const _0x2571e7=_0x14fab6;cameraHooks[_0x2571e7(0x1e8)+'hGimba'+'l']?.({'action':_0x2571e7(0x2c4)})['catch'](()=>{});},_0x37bfa8);}return{'ok':!![]};}if(!state[_0x14fab6(0x2b5)+_0x14fab6(0x28c)])throw new Error(_0x14fab6(0x210)+'像头');const _0x6fe11f=clampPtzSpeed(_0x1a0e35),_0x4811e6=clampPtzSpeed(_0x1cbece),_0x360f50=clampPtzSpeed(_0x229c6a),_0x2fed74=Math[_0x14fab6(0x26c)](0x3e8,Math['min'](0x2710,Math[_0x14fab6(0x1ae)](Number(_0x28bea7)||0x1)*0x3e8));if(ptzBusy)return{'ok':!![]};const _0x4257ce=async _0x337c29=>{const _0x59421f=_0x14fab6;if(!_0x337c29)throw new Error(_0x59421f(0x210)+'像头');if(!state[_0x59421f(0x1dd)]&&(_0x6fe11f||_0x4811e6||_0x360f50))throw new Error(_0x59421f(0x107)+'有云台,或\x20'+'Onvif\x20'+_0x59421f(0x294)+'Z');const _0x4c0f97={'x':_0x6fe11f,'y':_0x4811e6,'timeout':_0x2fed74};_0x360f50&&(_0x4c0f97['zoom']=_0x360f50);if(_0x360f50&&!_0x6fe11f&&!_0x4811e6)_0x4c0f97['onlySe'+_0x59421f(0x1bb)]=!![];else!_0x360f50&&(_0x4c0f97[_0x59421f(0x225)+_0x59421f(0xfd)+_0x59421f(0x21b)]=!![]);return await _0x337c29['contin'+_0x59421f(0x19a)+'ve'](_0x4c0f97),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x4257ce(currentCam);}catch(_0x14ba23){if(!isNetworkError(_0x14ba23))throw new Error(cameraError(_0x14ba23,_0x14fab6(0x10e)));const _0x3dd07e=await refreshOnvif();return await _0x4257ce(_0x3dd07e);}}catch(_0x2d184e){throw new Error(cameraError(_0x2d184e,'云台控制失败'));}finally{ptzBusy=![];}}function bitstreamFilter(_0x11c5c1){const _0x13f9b7=_0x26e603;if(/hevc|h265/[_0x13f9b7(0x1c8)](_0x11c5c1))return'hevc_m'+_0x13f9b7(0x224)+_0x13f9b7(0x19e);if(/h264|avc/['test'](_0x11c5c1))return _0x13f9b7(0x243)+_0x13f9b7(0x224)+'nexb';return'';}function shouldTranscode(_0x42c1d0=![]){const _0x59a356=_0x26e603;return _0x42c1d0||/hevc|h265/['test'](state[_0x59a356(0x1f7)+'ng']);}function broadcastTs(_0x1ff355){const _0x4d40c5=_0x26e603;if(!_0x1ff355?.[_0x4d40c5(0xe0)])return;for(const _0x5efbab of streamClients){try{if(_0x5efbab[_0x4d40c5(0x136)+_0x4d40c5(0x24c)+_0x4d40c5(0xde)])continue;_0x5efbab['write'](_0x1ff355);}catch{streamClients[_0x4d40c5(0x1fb)](_0x5efbab);}}}function killSharedFfmpeg(){const _0x58b797=_0x26e603;clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=null;const _0x180d35=sharedFfmpeg;sharedFfmpeg=null;if(!_0x180d35)return;ffmpegProcs[_0x58b797(0x1fb)](_0x180d35);try{_0x180d35[_0x58b797(0x126)]?.[_0x58b797(0x2bd)+'AllLis'+_0x58b797(0x276)](_0x58b797(0x2be)),_0x180d35[_0x58b797(0x217)](_0x58b797(0x175)+'L');}catch{}}async function ensureSharedFfmpeg(_0x2a135f){const _0x322b8f=_0x26e603,_0x928824=!!_0x2a135f;if(sharedFfmpeg&&!sharedFfmpeg[_0x322b8f(0x1db)]){if(sharedTranscode===_0x928824)return;console[_0x322b8f(0x219)]('[ffmpe'+_0x322b8f(0xf7)+_0x322b8f(0x14c),sharedTranscode?_0x322b8f(0x1bc):_0x322b8f(0x1be),'->',_0x928824?_0x322b8f(0x1bc):_0x322b8f(0x1be)),killSharedFfmpeg();}let _0x1e2e8c;try{_0x1e2e8c=await ensureFfmpeg();}catch(_0x5972ae){console[_0x322b8f(0xf8)](_0x322b8f(0x289)+'g]',_0x5972ae[_0x322b8f(0x18b)+'e']);return;}if(sharedFfmpeg&&!sharedFfmpeg[_0x322b8f(0x1db)]){if(sharedTranscode===_0x928824)return;killSharedFfmpeg();}const _0x360ec9=injectRtspAuth(state['rtspUr'+'i'],state[_0x322b8f(0x25f)+'me'],state['passwo'+'rd']),_0x2e42de=/hevc|h265/[_0x322b8f(0x1c8)](state[_0x322b8f(0x1f7)+'ng']),_0x45100e=[_0x322b8f(0x2aa)+_0x322b8f(0x23b),'-logle'+_0x322b8f(0x265),_0x322b8f(0x120)+'g',_0x322b8f(0x205)+_0x322b8f(0xec)+'ort','tcp',_0x322b8f(0x261)+'s','genpts',_0x322b8f(0x109)+'size',_0x2e42de?_0x322b8f(0x17a)+'0':_0x322b8f(0x218),_0x322b8f(0x2a2)+_0x322b8f(0x29e)+'tion',_0x2e42de?_0x322b8f(0x17a)+'0':_0x322b8f(0x218),_0x322b8f(0x203)+'ds','1','-i',_0x360ec9,_0x322b8f(0x280)];if(_0x928824)_0x45100e['push'](_0x322b8f(0x290),_0x322b8f(0x291)+'4',_0x322b8f(0x169)+'t',_0x322b8f(0x135)+'ast',_0x322b8f(0x235),_0x322b8f(0x23a)+_0x322b8f(0x1c6),_0x322b8f(0x2a7)+'le:v',_0x322b8f(0x20a)+'ne',_0x322b8f(0x26b)+'mt',_0x322b8f(0x24f)+'p',_0x322b8f(0x1ef),'0','-g','15','-vf','select'+_0x322b8f(0x104)+_0x322b8f(0x1ba)+'e\x5c,I)+'+'not(is'+_0x322b8f(0x23f)+_0x322b8f(0xfa)+_0x322b8f(0x1b7)+_0x322b8f(0x103)+'tpts=P'+'TS-STA'+_0x322b8f(0x264)+_0x322b8f(0xf3)+_0x322b8f(0x233));else{_0x45100e[_0x322b8f(0x110)](_0x322b8f(0x290),_0x322b8f(0x1be));const _0x53823a=bitstreamFilter(state[_0x322b8f(0x1f7)+'ng']);if(_0x53823a)_0x45100e[_0x322b8f(0x110)](_0x322b8f(0xe8),_0x53823a);}_0x45100e[_0x322b8f(0x110)]('-f',_0x322b8f(0x160),_0x322b8f(0x10b)+_0x322b8f(0x148),'0',_0x322b8f(0x1e1)+_0x322b8f(0x28d),'0','-flush'+_0x322b8f(0x140)+'ts','1',_0x322b8f(0x25e)),sharedTranscode=_0x928824;const _0x53a4e3=spawn(_0x1e2e8c,_0x45100e,{'stdio':[_0x322b8f(0xf6),_0x322b8f(0x2ac),'pipe']});sharedFfmpeg=_0x53a4e3,ffmpegProcs[_0x322b8f(0x17c)](_0x53a4e3);let _0x2518b0=![];console[_0x322b8f(0x219)](_0x322b8f(0x289)+'g]',_0x928824?_0x322b8f(0x10a)+_0x322b8f(0x29c)+'64':'copy\x20'+(state[_0x322b8f(0x1f7)+'ng']||_0x322b8f(0x200)+'n'),state[_0x322b8f(0x2ab)+'me']),_0x53a4e3['stdout']['on'](_0x322b8f(0x2be),_0x27f977=>{const _0x19b257=_0x322b8f;!_0x2518b0&&(_0x2518b0=!![],console[_0x19b257(0x219)]('[ffmpe'+_0x19b257(0x12f)+_0x19b257(0x14d)+'es',_0x27f977[_0x19b257(0xe0)])),ffmpegBackoffMs=0x320,broadcastTs(_0x27f977);}),_0x53a4e3[_0x322b8f(0x130)]['on'](_0x322b8f(0x2be),_0x20c67c=>{const _0x569ccf=_0x322b8f,_0x3142f4=String(_0x20c67c||'')[_0x569ccf(0x1c7)]();if(_0x3142f4)console[_0x569ccf(0xf8)](_0x569ccf(0x289)+'g]',_0x3142f4);}),_0x53a4e3['on']('error',_0x4ffa67=>{const _0x21e23d=_0x322b8f;console[_0x21e23d(0xf8)](_0x21e23d(0x289)+'g]\x20spa'+'wn',_0x4ffa67[_0x21e23d(0x18b)+'e']);}),_0x53a4e3['on'](_0x322b8f(0x1d0),_0x5791bc=>{const _0x3c4e57=_0x322b8f;ffmpegProcs[_0x3c4e57(0x1fb)](_0x53a4e3);if(sharedFfmpeg===_0x53a4e3)sharedFfmpeg=null;console[_0x3c4e57(0xf8)](_0x3c4e57(0x289)+_0x3c4e57(0x29d)+'t',_0x5791bc,_0x3c4e57(0x2be),_0x2518b0,_0x3c4e57(0x22a)+'s',streamClients[_0x3c4e57(0x1f5)]);if(suppressFfmpegRestart)return;if(!state[_0x3c4e57(0x2b5)+_0x3c4e57(0x28c)]||!streamClients[_0x3c4e57(0x1f5)])return;console['warn'](_0x3c4e57(0x289)+_0x3c4e57(0x29d)+'t',_0x5791bc,_0x3c4e57(0x29a)+_0x3c4e57(0x166),ffmpegBackoffMs,'ms'),clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=setTimeout(()=>{const _0x537a95=_0x3c4e57;ffmpegRestartTimer=null;if(!state[_0x537a95(0x2b5)+_0x537a95(0x28c)]||!streamClients[_0x537a95(0x1f5)])return;ensureSharedFfmpeg(sharedTranscode);},ffmpegBackoffMs),ffmpegBackoffMs=Math[_0x3c4e57(0x1d8)](ffmpegBackoffMs*0x2,0x1f40);});}function startMpegtsStream(_0x580304,_0x27768e){const _0x2cce15=_0x26e603,_0x2aa570=shouldTranscode(String(_0x580304['query']?.['codec']||'')==='h264');_0x580304[_0x2cce15(0xe5)+_0x2cce15(0x12c)](0x0),_0x27768e[_0x2cce15(0xe5)+_0x2cce15(0x12c)](0x0),_0x580304[_0x2cce15(0x2b8)]?.['setTim'+_0x2cce15(0x12c)](0x0),_0x27768e[_0x2cce15(0x2b8)]?.[_0x2cce15(0xe5)+'eout'](0x0),_0x580304[_0x2cce15(0x2b8)]?.['setNoD'+_0x2cce15(0x28a)]?.(!![]),_0x27768e[_0x2cce15(0x2b8)]?.[_0x2cce15(0x12a)+'elay']?.(!![]),_0x27768e[_0x2cce15(0x117)+_0x2cce15(0x19b)](_0x2cce15(0x279)+_0x2cce15(0x257),_0x2cce15(0x2a4)+_0x2cce15(0x149)),_0x27768e[_0x2cce15(0x117)+_0x2cce15(0x19b)](_0x2cce15(0x287)+_0x2cce15(0x1fa)+'l',_0x2cce15(0x28e)+_0x2cce15(0x13b)+_0x2cce15(0xef)+_0x2cce15(0x11e)+'-reval'+_0x2cce15(0x283)),_0x27768e[_0x2cce15(0x117)+_0x2cce15(0x19b)](_0x2cce15(0x1fc)+'tion','keep-a'+_0x2cce15(0x13a)),_0x27768e[_0x2cce15(0x117)+_0x2cce15(0x19b)](_0x2cce15(0x29f)+'l-Buff'+_0x2cce15(0x10f),'no');if(typeof _0x27768e[_0x2cce15(0x2af)+_0x2cce15(0x137)]===_0x2cce15(0x26f)+'on')_0x27768e['flushH'+'eaders']();streamClients['add'](_0x27768e),clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=null,ensureSharedFfmpeg(_0x2aa570);let _0x156d6d=![];const _0x4f32b1=()=>{const _0x59ea24=_0x2cce15;if(_0x156d6d)return;_0x156d6d=!![],streamClients['delete'](_0x27768e);try{if(!_0x27768e[_0x59ea24(0x136)+_0x59ea24(0x21f)+'d'])_0x27768e[_0x59ea24(0x1f0)]();}catch{}streamClients['size']===0x0&&(clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=setTimeout(()=>{const _0x3d6474=_0x59ea24;ffmpegIdleTimer=null;if(streamClients[_0x3d6474(0x1f5)]===0x0)killSharedFfmpeg();},0xfa0));};_0x580304['on'](_0x2cce15(0x220),_0x4f32b1),_0x27768e['on'](_0x2cce15(0x220),_0x4f32b1);}export function registerCameraRoutes(_0x529e69,{getConfig:_0x552489,saveConfig:_0x2a4c63}){const _0x4e38e8=_0x26e603;_0x529e69[_0x4e38e8(0x1ab)](_0x4e38e8(0x113)+'amera/'+_0x4e38e8(0x158)+'er',async(_0x2ece7d,_0x13e126)=>{const _0x3d8855=_0x4e38e8;try{const _0xe7a1f2=await discover();onboardAvailable()&&_0xe7a1f2[_0x3d8855(0x139)+'t']({'kind':'onboar'+'d','hostname':_0x3d8855(0x201)+'d','port':0x157c,'path':'/camer'+_0x3d8855(0x20d)+'shot','name':'板载摄像头','hardware':_0x3d8855(0x22f)}),_0x13e126['json']({'devices':_0xe7a1f2});}catch(_0x46d82d){_0x13e126[_0x3d8855(0x247)](0x190)[_0x3d8855(0x142)]({'message':cameraError(_0x46d82d,_0x3d8855(0x1b9)+'败')});}}),_0x529e69[_0x4e38e8(0x2a1)](_0x4e38e8(0x113)+'amera/'+_0x4e38e8(0x247),(_0x57458f,_0x1f66e9)=>{const _0x1aa606=_0x4e38e8,_0x5e5ff6=_0x552489();if(stripOnboardCameraConfig(_0x5e5ff6))_0x2a4c63();const _0x398e0f=_0x5e5ff6[_0x1aa606(0x108)]||{};_0x1f66e9[_0x1aa606(0x142)]({...publicState(),'saved':{'source':_0x398e0f[_0x1aa606(0x111)]||'','hostname':_0x398e0f['hostna'+'me']||'','port':_0x398e0f[_0x1aa606(0x236)]||0x50,'path':_0x398e0f[_0x1aa606(0x266)]||_0x1aa606(0x273)+_0x1aa606(0x1c0)+_0x1aa606(0x168)+_0x1aa606(0x28f),'username':_0x398e0f['userna'+'me']||'','password_set':!!_0x398e0f[_0x1aa606(0x196)+'rd']}});}),_0x529e69[_0x4e38e8(0x1ab)](_0x4e38e8(0x113)+_0x4e38e8(0x11b)+_0x4e38e8(0x2b5)+'t',async(_0x193e5e,_0x724373)=>{const _0x270f66=_0x4e38e8;try{const _0x291a30=_0x552489(),_0x5a5b4b=_0x291a30[_0x270f66(0x108)]||{},_0x3b862e=_0x193e5e[_0x270f66(0x193)]?.[_0x270f66(0x111)]===_0x270f66(0x201)+'d'||_0x193e5e[_0x270f66(0x193)]?.['kind']===_0x270f66(0x201)+'d'||_0x193e5e[_0x270f66(0x193)]?.[_0x270f66(0x2ab)+'me']===_0x270f66(0x201)+'d';if(_0x3b862e){if(stripOnboardCameraConfig(_0x291a30))_0x2a4c63();_0x724373['status'](0x190)[_0x270f66(0x142)]({'message':'板载画面暂不'+'支持'});return;}const _0x5a1902=_0x193e5e[_0x270f66(0x193)]?.['passwo'+'rd']||_0x5a5b4b[_0x270f66(0x196)+'rd']||'',_0x17adc4=await connectCamera({'hostname':_0x193e5e[_0x270f66(0x193)]?.[_0x270f66(0x2ab)+'me']||_0x5a5b4b[_0x270f66(0x2ab)+'me'],'port':_0x193e5e[_0x270f66(0x193)]?.[_0x270f66(0x236)]||_0x5a5b4b[_0x270f66(0x236)],'username':_0x193e5e[_0x270f66(0x193)]?.[_0x270f66(0x25f)+'me']||_0x5a5b4b[_0x270f66(0x25f)+'me'],'password':_0x5a1902,'path':_0x193e5e[_0x270f66(0x193)]?.[_0x270f66(0x266)]||_0x5a5b4b[_0x270f66(0x266)]});_0x291a30[_0x270f66(0x108)]={'source':_0x270f66(0x204),'hostname':state[_0x270f66(0x2ab)+'me'],'port':state['port'],'path':state[_0x270f66(0x266)],'username':state[_0x270f66(0x25f)+'me'],'password':state['passwo'+'rd']},_0x2a4c63(),_0x724373[_0x270f66(0x142)](_0x17adc4);}catch(_0x5c3876){_0x724373[_0x270f66(0x247)](0x190)[_0x270f66(0x142)]({'message':cameraError(_0x5c3876,'连接摄像头失'+'败')});}}),_0x529e69[_0x4e38e8(0x1ab)](_0x4e38e8(0x113)+'amera/'+'discon'+_0x4e38e8(0x2bf),(_0x15bf74,_0x22a7ab)=>{const _0x147e65=_0x4e38e8;_0x22a7ab[_0x147e65(0x142)](disconnectCamera());}),_0x529e69['get']('/api/c'+'amera/'+_0x4e38e8(0x127)+'ot',async(_0x5b2f2f,_0x350468)=>{const _0x11bf2f=_0x4e38e8;try{const _0xc902a4=await getSnapshot();if(!_0xc902a4?.['length']){_0x350468[_0x11bf2f(0x247)](0xcc)[_0x11bf2f(0x1f0)]();return;}_0x350468['setHea'+_0x11bf2f(0x19b)](_0x11bf2f(0x279)+'t-Type',_0x11bf2f(0x242)+'jpeg'),_0x350468[_0x11bf2f(0x117)+_0x11bf2f(0x19b)](_0x11bf2f(0x287)+_0x11bf2f(0x1fa)+'l',_0x11bf2f(0x28e)+'re'),_0x350468[_0x11bf2f(0x208)](_0xc902a4);}catch(_0xe71a4d){_0x350468[_0x11bf2f(0x247)](0x190)['json']({'message':cameraError(_0xe71a4d,_0x11bf2f(0xe2))});}}),_0x529e69[_0x4e38e8(0x2a1)](_0x4e38e8(0x113)+'amera/'+_0x4e38e8(0x251),async(_0x166eac,_0x510f8a)=>{const _0x44f2d4=_0x4e38e8;if(!state[_0x44f2d4(0x2b5)+_0x44f2d4(0x28c)]){_0x510f8a[_0x44f2d4(0x247)](0x190)[_0x44f2d4(0x142)]({'message':_0x44f2d4(0x145)+_0x44f2d4(0x16a)+'头'});return;}if(state[_0x44f2d4(0x229)+'i']){startMpegtsStream(_0x166eac,_0x510f8a);return;}if(state[_0x44f2d4(0x1eb)+'i'])try{const _0x2c611e=await openCameraHttp(state[_0x44f2d4(0x1eb)+'i'],state[_0x44f2d4(0x25f)+'me'],state[_0x44f2d4(0x196)+'rd'],0x1f40);_0x510f8a[_0x44f2d4(0x117)+_0x44f2d4(0x19b)](_0x44f2d4(0x279)+_0x44f2d4(0x257),_0x2c611e[_0x44f2d4(0x180)+_0x44f2d4(0x274)]||'multip'+_0x44f2d4(0x299)+_0x44f2d4(0x278)+'replac'+'e;\x20bou'+_0x44f2d4(0x188)+'frame'),_0x510f8a[_0x44f2d4(0x117)+_0x44f2d4(0x19b)](_0x44f2d4(0x287)+_0x44f2d4(0x1fa)+'l',_0x44f2d4(0x28e)+_0x44f2d4(0x13b)+'-cache'+_0x44f2d4(0x11e)+_0x44f2d4(0x24d)+_0x44f2d4(0x283)),_0x510f8a[_0x44f2d4(0x117)+'der']('Connec'+'tion',_0x44f2d4(0x211)+_0x44f2d4(0x13a)),_0x510f8a['setHea'+_0x44f2d4(0x19b)]('X-Acce'+_0x44f2d4(0x187)+_0x44f2d4(0x10f),'no');const _0x1bdb2e=()=>{const _0x49ad14=_0x44f2d4;try{_0x2c611e[_0x49ad14(0x1d5)]['destro'+'y']();}catch{}try{_0x2c611e[_0x49ad14(0x1bd)][_0x49ad14(0x234)+'y']();}catch{}};_0x166eac['on'](_0x44f2d4(0x220),_0x1bdb2e),_0x510f8a['on']('close',_0x1bdb2e),_0x2c611e[_0x44f2d4(0x1bd)]['on'](_0x44f2d4(0x116),_0x1bdb2e),_0x2c611e[_0x44f2d4(0x1bd)][_0x44f2d4(0x2ac)](_0x510f8a);return;}catch(_0x119a7c){console['warn'](_0x44f2d4(0x178)+_0x44f2d4(0x25a)+'e\x20pipe',_0x119a7c?.[_0x44f2d4(0x18b)+'e']||_0x119a7c);}if(!state['snapsh'+_0x44f2d4(0x1b5)]){_0x510f8a[_0x44f2d4(0x247)](0x190)['json']({'message':_0x44f2d4(0x107)+_0x44f2d4(0x155)+'览流'});return;}_0x510f8a['setHea'+_0x44f2d4(0x19b)](_0x44f2d4(0x279)+_0x44f2d4(0x257),_0x44f2d4(0x1e7)+_0x44f2d4(0x299)+'mixed-'+'replac'+_0x44f2d4(0x164)+_0x44f2d4(0x188)+_0x44f2d4(0x202)),_0x510f8a[_0x44f2d4(0x117)+_0x44f2d4(0x19b)](_0x44f2d4(0x287)+_0x44f2d4(0x1fa)+'l',_0x44f2d4(0x28e)+_0x44f2d4(0x13b)+_0x44f2d4(0xef)+',\x20must'+_0x44f2d4(0x24d)+_0x44f2d4(0x283)),_0x510f8a[_0x44f2d4(0x117)+_0x44f2d4(0x19b)](_0x44f2d4(0x1e6),_0x44f2d4(0x1d1)+'he'),_0x510f8a[_0x44f2d4(0x117)+_0x44f2d4(0x19b)](_0x44f2d4(0x1fc)+_0x44f2d4(0x125),_0x44f2d4(0x211)+_0x44f2d4(0x13a)),_0x510f8a['setHea'+_0x44f2d4(0x19b)](_0x44f2d4(0x29f)+_0x44f2d4(0x187)+_0x44f2d4(0x10f),'no');let _0x18c19d=![];const _0x51ab16=()=>{_0x18c19d=!![];};_0x166eac['on']('close',_0x51ab16),_0x510f8a['on'](_0x44f2d4(0x220),_0x51ab16);const _0x1d967b=state[_0x44f2d4(0x111)]===_0x44f2d4(0x201)+'d';_0x1d967b&¬eOnboardPreviewClient(0x1);try{await runOnboardPreviewLoop({'getFrame':()=>getSnapshot()[_0x44f2d4(0x292)](()=>null),'writeFrame':async _0x1144cf=>{const _0x4f7867=_0x44f2d4;if(_0x18c19d||!state[_0x4f7867(0x2b5)+'ted'])return![];try{return _0x510f8a['write'](_0x4f7867(0x25d)+_0x4f7867(0x14f)+_0x4f7867(0x150)+'ype:\x20i'+_0x4f7867(0x18a)+_0x4f7867(0x263)+_0x4f7867(0x20e)+'-Lengt'+_0x4f7867(0x12e)+_0x1144cf[_0x4f7867(0xe0)]+_0x4f7867(0x192)),_0x510f8a[_0x4f7867(0x212)](_0x1144cf),_0x510f8a[_0x4f7867(0x212)]('\x0d\x0a'),!![];}catch{return![];}},'isOpen':()=>!_0x18c19d&&state['connec'+_0x44f2d4(0x28c)],'delayMs':_0x1d967b?ONBOARD_STREAM_INTERVAL_MS:0x0,'emptyDelayMs':_0x1d967b?ONBOARD_EMPTY_RETRY_MS:0x12c});}finally{_0x1d967b&¬eOnboardPreviewClient(-0x1);if(!_0x510f8a[_0x44f2d4(0x136)+'leEnde'+'d'])_0x510f8a[_0x44f2d4(0x1f0)]();}}),_0x529e69[_0x4e38e8(0x1ab)](_0x4e38e8(0x113)+'amera/'+_0x4e38e8(0x1dd),async(_0x4a3d47,_0xe8eed6)=>{const _0x5c72f4=_0x4e38e8;try{const _0x1e62e8=String(_0x4a3d47[_0x5c72f4(0x193)]?.[_0x5c72f4(0x199)]||'');_0xe8eed6[_0x5c72f4(0x142)](await ptzMove(_0x1e62e8,{'press':_0x4a3d47[_0x5c72f4(0x193)]?.[_0x5c72f4(0x277)]}));}catch(_0x5b2afe){_0xe8eed6[_0x5c72f4(0x247)](0x190)[_0x5c72f4(0x142)]({'message':cameraError(_0x5b2afe,'云台控制失败')});}});}
|
package/dist-server/dev-ui.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function _0x5bde(_0x4c9a5b,_0x35ee2f){_0x4c9a5b=_0x4c9a5b-0x168;const _0xfbcdd2=_0xfbcd();let _0x5bde49=_0xfbcdd2[_0x4c9a5b];if(_0x5bde['gXAVYk']===undefined){var _0x161931=function(_0x1ca5bb){const _0x5ed245='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x37f759='',_0x13efee='';for(let _0x18b9c0=0x0,_0x573db5,_0x52337d,_0x251011=0x0;_0x52337d=_0x1ca5bb['charAt'](_0x251011++);~_0x52337d&&(_0x573db5=_0x18b9c0%0x4?_0x573db5*0x40+_0x52337d:_0x52337d,_0x18b9c0++%0x4)?_0x37f759+=String['fromCharCode'](0xff&_0x573db5>>(-0x2*_0x18b9c0&0x6)):0x0){_0x52337d=_0x5ed245['indexOf'](_0x52337d);}for(let _0x31a82b=0x0,_0x49b752=_0x37f759['length'];_0x31a82b<_0x49b752;_0x31a82b++){_0x13efee+='%'+('00'+_0x37f759['charCodeAt'](_0x31a82b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x13efee);};_0x5bde['BKxlbZ']=_0x161931,_0x5bde['hdNpsB']={},_0x5bde['gXAVYk']=!![];}const _0x51b280=_0xfbcdd2[0x0],_0x1f2f12=_0x4c9a5b+_0x51b280,_0x572596=_0x5bde['hdNpsB'][_0x1f2f12];return!_0x572596?(_0x5bde49=_0x5bde['BKxlbZ'](_0x5bde49),_0x5bde['hdNpsB'][_0x1f2f12]=_0x5bde49):_0x5bde49=_0x572596,_0x5bde49;}(function(_0x2e0937,_0x124435){const _0x52297b=_0x5bde,_0x4c0eaf=_0x2e0937();while(!![]){try{const _0x55aefd=parseInt(_0x52297b(0x17c))/0x1+-parseInt(_0x52297b(0x176))/0x2+parseInt(_0x52297b(0x17e))/0x3+parseInt(_0x52297b(0x16b))/0x4*(-parseInt(_0x52297b(0x170))/0x5)+parseInt(_0x52297b(0x172))/0x6+parseInt(_0x52297b(0x16e))/0x7+parseInt(_0x52297b(0x17a))/0x8;if(_0x55aefd===_0x124435)break;else _0x4c0eaf['push'](_0x4c0eaf['shift']());}catch(_0x2c7bc7){_0x4c0eaf['push'](_0x4c0eaf['shift']());}}}(_0xfbcd,0xc2404));import _0x37f759 from'node:path';export function shouldAttachDevUi(){const _0x21b562=_0x5bde;if(process['env']['NODE_E'+'NV']==='produc'+_0x21b562(0x180))return![];const _0x13efee=String(process[_0x21b562(0x177)][_0x21b562(0x169)+_0x21b562(0x17b)]||'')[_0x21b562(0x173)]();if(_0x13efee==='0'||_0x13efee===_0x21b562(0x171))return![];return!![];}export async function attachViteDev(_0x18b9c0,_0x573db5,{root:_0x52337d}={}){const _0x24e18b=_0x5bde;process[_0x24e18b(0x177)][_0x24e18b(0x16a)+_0x24e18b(0x16c)+_0x24e18b(0x178)]='1';const {createServer:_0x251011}=await import(_0x24e18b(0x179)),_0x31a82b=await _0x251011({'root':_0x52337d,'configFile':_0x37f759[_0x24e18b(0x174)](_0x52337d,_0x24e18b(0x17f)+_0x24e18b(0x16d)+'ts'),'server':{'middlewareMode':!![],'hmr':{'server':_0x573db5}},'appType':_0x24e18b(0x16f)});return _0x18b9c0[_0x24e18b(0x17d)](_0x31a82b[_0x24e18b(0x168)+_0x24e18b(0x175)]),_0x31a82b;}function _0xfbcd(){const _0x1c4ffd=['mtzOzeLJruq','tujfrerf','B25MAwCU','nJm4mtmYnMnjsMvnsq','C3bH','mtuZmdu5mgXrCwfnDa','zMfSC2u','ntq5ndmZogncqNHeDq','DhjPBq','AM9PBG','D2fYzxm','mJa2mtK1mez5q2fYtq','zw52','rf9wsvrf','DML0zq','mJeZmdy0og5MreHZsa','rvzFvuK','nZi1otqWALD0A2jO','DxnL','nJK0ndyXzhfcChzf','DML0zs5J','DgLVBG','BwLKzgXL','tu9tu19e','tu9tu19f'];_0xfbcd=function(){return _0x1c4ffd;};return _0xfbcd();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x487e1b=_0x51f4;(function(_0x465981,_0x4a726b){const _0x4138af=_0x51f4,_0x69560d=_0x465981();while(!![]){try{const _0x322190=-parseInt(_0x4138af(0x7e))/0x1*(-parseInt(_0x4138af(0x7c))/0x2)+parseInt(_0x4138af(0x81))/0x3+parseInt(_0x4138af(0x99))/0x4*(parseInt(_0x4138af(0x8b))/0x5)+parseInt(_0x4138af(0x9a))/0x6*(-parseInt(_0x4138af(0x94))/0x7)+parseInt(_0x4138af(0x90))/0x8*(-parseInt(_0x4138af(0x98))/0x9)+parseInt(_0x4138af(0x8a))/0xa*(-parseInt(_0x4138af(0x97))/0xb)+parseInt(_0x4138af(0x7f))/0xc;if(_0x322190===_0x4a726b)break;else _0x69560d['push'](_0x69560d['shift']());}catch(_0xf7442d){_0x69560d['push'](_0x69560d['shift']());}}}(_0x4e0b,0xaf53d));function _0x4e0b(){const _0x135977=['CM9Szq','ywrK','AwrSzq','BwfW','DgLUzW','ntbZDwH4uNu','mJe0nJy1v1LKwMjH','DxnLCG','zMLSDgvY','DM9Py2u','C2vX','oenoDwP0Bq','y29UBMvJ','AxngAw5P','C3bLywTP','mtr1z21Qq3a','Bwf4','DhjPBq','nZK5ntm1yKDnBePv','nZe3ndy4m2fuDKfwqW','mJbNDe5QA2e','mZi0ndyWmNbMt2fPrW','AgfZ','C3LZDgvT','yxnZAxn0','AxnbCNjH','ChvZAa','mJq4ndC4D1Hzvvn1','BgLZDgvU','ogvAA1rUtq','mtaXmZmWodHqrKjHrwO','Dgv4Da','mJCYmtG1ofzOrhnAva','BgvUz3rO','yw50','BgLUzxm'];_0x4e0b=function(){return _0x135977;};return _0x4e0b();}const ACTIVE_VOICE=new Set([_0x487e1b(0x7d)+'ing',_0x487e1b(0x93)+'ng',_0x487e1b(0x91)+_0x487e1b(0x89)]);export function applyChatDelta(_0x39f097={'seq':0x0,'lines':[]},_0xd2d41f={}){const _0x104c2a=_0x487e1b,_0x53a500=Number(_0xd2d41f[_0x104c2a(0x8f)])||0x0,_0x3f7279=Number(_0x39f097[_0x104c2a(0x8f)])||0x0,_0x2e109e=Array[_0x104c2a(0x7a)+'y'](_0xd2d41f[_0x104c2a(0x84)])?_0xd2d41f[_0x104c2a(0x84)]:[],_0x1f1859=new Set((_0x39f097['lines']||[])[_0x104c2a(0x88)](_0x27d4ef=>_0x27d4ef[_0x104c2a(0x8f)])),_0x310dac=[];for(const _0x5922af of _0x2e109e){const _0x55e669=Number(_0x5922af?.[_0x104c2a(0x8f)]);if(!Number[_0x104c2a(0x92)+'te'](_0x55e669)||_0x1f1859['has'](_0x55e669))continue;_0x1f1859[_0x104c2a(0x86)](_0x55e669),_0x310dac[_0x104c2a(0x7b)]({'seq':_0x55e669,'role':_0x5922af['role']===_0x104c2a(0x9d)+_0x104c2a(0x83)||_0x5922af[_0x104c2a(0x85)]===_0x104c2a(0x9c)?_0x5922af[_0x104c2a(0x85)]:_0x104c2a(0x8c),'text':String(_0x5922af[_0x104c2a(0x80)]||'')[_0x104c2a(0x96)](),'state':_0x5922af['state']||''});}const _0x2a39af=_0x310dac[_0x104c2a(0x88)](_0x3a7eac=>_0x3a7eac[_0x104c2a(0x8f)]),_0x2e821d=_0xd2d41f[_0x104c2a(0x8e)]||_0x39f097[_0x104c2a(0x8e)]||_0x104c2a(0x87),_0x2fc8e5=_0x310dac[_0x104c2a(0x8d)](_0x3921ad=>_0x3921ad[_0x104c2a(0x80)]);if(_0x53a500<_0x3f7279&&_0x2fc8e5[_0x104c2a(0x82)]===0x0)return{'seq':_0x53a500,'lines':_0x39f097[_0x104c2a(0x84)]||[],'added':[],'voice':_0x2e821d,'rewound':!![]};return{'seq':Math[_0x104c2a(0x95)](_0x3f7279,_0x53a500,_0x2a39af[_0x104c2a(0x82)]?Math[_0x104c2a(0x95)](..._0x2a39af):0x0),'lines':[..._0x39f097[_0x104c2a(0x84)]||[],..._0x2fc8e5],'added':_0x2fc8e5,'voice':_0x2e821d,'rewound':![]};}function _0x51f4(_0x4cd833,_0x53c75f){_0x4cd833=_0x4cd833-0x7a;const _0x4e0bf2=_0x4e0b();let _0x51f468=_0x4e0bf2[_0x4cd833];if(_0x51f4['IkxeUr']===undefined){var _0x5baa4e=function(_0x1371df){const _0x44484b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39f097='',_0xd2d41f='';for(let _0x53a500=0x0,_0x3f7279,_0x2e109e,_0x1f1859=0x0;_0x2e109e=_0x1371df['charAt'](_0x1f1859++);~_0x2e109e&&(_0x3f7279=_0x53a500%0x4?_0x3f7279*0x40+_0x2e109e:_0x2e109e,_0x53a500++%0x4)?_0x39f097+=String['fromCharCode'](0xff&_0x3f7279>>(-0x2*_0x53a500&0x6)):0x0){_0x2e109e=_0x44484b['indexOf'](_0x2e109e);}for(let _0x310dac=0x0,_0x2a39af=_0x39f097['length'];_0x310dac<_0x2a39af;_0x310dac++){_0xd2d41f+='%'+('00'+_0x39f097['charCodeAt'](_0x310dac)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xd2d41f);};_0x51f4['OmOkMv']=_0x5baa4e,_0x51f4['sobyPi']={},_0x51f4['IkxeUr']=!![];}const _0x459cae=_0x4e0bf2[0x0],_0x4a3cd1=_0x4cd833+_0x459cae,_0x1a8f4a=_0x51f4['sobyPi'][_0x4a3cd1];return!_0x1a8f4a?(_0x51f468=_0x51f4['OmOkMv'](_0x51f468),_0x51f4['sobyPi'][_0x4a3cd1]=_0x51f468):_0x51f468=_0x1a8f4a,_0x51f468;}export function shouldFetchChatSync({voice:voice=_0x487e1b(0x87),remoteSeq:remoteSeq=0x0,localSeq:localSeq=0x0}={}){const _0x525e45=_0x487e1b;if(ACTIVE_VOICE[_0x525e45(0x9b)](String(voice)))return!![];const _0x5bacd1=Number(remoteSeq)||0x0,_0x4f1b9c=Number(localSeq)||0x0;if(_0x5bacd1<_0x4f1b9c)return!![];return _0x5bacd1>_0x4f1b9c;}export function chatSyncIntervalMs({voice:voice=_0x487e1b(0x87)}={}){const _0xc0d480=_0x487e1b;if(ACTIVE_VOICE[_0xc0d480(0x9b)](String(voice)))return 0x190;return 0x0;}
|