yo-moss-ai 0.0.20 → 0.0.21
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/runtime-manifest.json +1 -1
- package/dist/assets/esp-flasher-CLKzE7JE.js +2 -2
- package/dist/assets/index-C1bPuFAs.js +45 -0
- package/dist/assets/{index-Bcf5kQZF.css → index-CzQKR67c.css} +1 -1
- package/dist/index.html +2 -2
- 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 +1 -1
- package/dist/assets/index-DPFHeUnK.js +0 -45
package/dist/index.html
CHANGED
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
<title>MOSS 配置</title>
|
|
7
7
|
<meta name="author" content="YOKOCHEN YIMENG" />
|
|
8
8
|
<meta name="copyright" content="Copyright © 2026 YOKOCHEN YIMENG. All rights reserved." />
|
|
9
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
+
<script type="module" crossorigin src="/assets/index-C1bPuFAs.js"></script>
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/esp-flasher-CLKzE7JE.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/engine-3d-DoxdUZhy.js">
|
|
12
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
12
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CzQKR67c.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
15
|
<div id="app"></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _0x3f4a(){const _0x492a85=['q2fWCW','tu9tuW','DJi2nda','mJiZmZGWoejesurOEa','mJCXnJyWDwDUuLjP','ndy5EuvTuuvK','ChjVzhvJ','mJq2mdm5owrZsM9Lva','5P2/6l296kEg6kEj','mtyZmdq4ndHnwNDJDxq','Bw9ZCY1V','DhjPBq','mte0otG0t0jTv2D3','B2jQzwn0','mta1mJm5mKnsvK5Qqq','yM9HCMq','ndm2odCZmePHvfPJzG'];_0x3f4a=function(){return _0x492a85;};return _0x3f4a();}const _0xf9ef3a=_0x39a0;(function(_0x5499b7,_0x8b022d){const _0x3a7915=_0x39a0,_0x57f12a=_0x5499b7();while(!![]){try{const _0x5951a8=-parseInt(_0x3a7915(0x17f))/0x1+parseInt(_0x3a7915(0x174))/0x2+-parseInt(_0x3a7915(0x178))/0x3+-parseInt(_0x3a7915(0x175))/0x4+parseInt(_0x3a7915(0x170))/0x5+parseInt(_0x3a7915(0x17d))/0x6*(-parseInt(_0x3a7915(0x176))/0x7)+parseInt(_0x3a7915(0x17a))/0x8;if(_0x5951a8===_0x8b022d)break;else _0x57f12a['push'](_0x57f12a['shift']());}catch(_0x1b5a71){_0x57f12a['push'](_0x57f12a['shift']());}}}(_0x3f4a,0xc45e8));export const BOARD_ONVIF='moss-o'+'nvif';export const BOARD_OV2640=_0xf9ef3a(0x17b)+_0xf9ef3a(0x173);export const KNOWN_BOARDS=[BOARD_ONVIF,BOARD_OV2640];export function resolveBoard(_0x2ff6eb={}){const _0x283d12=_0xf9ef3a,_0x4059b7=String(_0x2ff6eb['board']||'')[_0x283d12(0x17c)]();if(_0x4059b7===BOARD_OV2640||_0x4059b7===BOARD_ONVIF)return _0x4059b7;const _0x34bd8b=String(_0x2ff6eb['name']||'')[_0x283d12(0x17c)]();if(_0x34bd8b===BOARD_OV2640||_0x34bd8b===BOARD_ONVIF)return _0x34bd8b;return BOARD_ONVIF;}function _0x39a0(_0x37eb77,_0x8fc081){_0x37eb77=_0x37eb77-0x16f;const _0x3f4a2f=_0x3f4a();let _0x39a010=_0x3f4a2f[_0x37eb77];if(_0x39a0['RCOILz']===undefined){var _0x45a14a=function(_0x3f567d){const _0x62ab2f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ff6eb='',_0x4059b7='';for(let _0x34bd8b=0x0,_0x880119,_0x50b9b4,_0x4fe79d=0x0;_0x50b9b4=_0x3f567d['charAt'](_0x4fe79d++);~_0x50b9b4&&(_0x880119=_0x34bd8b%0x4?_0x880119*0x40+_0x50b9b4:_0x50b9b4,_0x34bd8b++%0x4)?_0x2ff6eb+=String['fromCharCode'](0xff&_0x880119>>(-0x2*_0x34bd8b&0x6)):0x0){_0x50b9b4=_0x62ab2f['indexOf'](_0x50b9b4);}for(let _0xeaff9=0x0,_0x8cce49=_0x2ff6eb['length'];_0xeaff9<_0x8cce49;_0xeaff9++){_0x4059b7+='%'+('00'+_0x2ff6eb['charCodeAt'](_0xeaff9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4059b7);};_0x39a0['UAMWtT']=_0x45a14a,_0x39a0['uSlLAz']={},_0x39a0['RCOILz']=!![];}const _0x56e952=_0x3f4a2f[0x0],_0x191f13=_0x37eb77+_0x56e952,_0x4bd477=_0x39a0['uSlLAz'][_0x191f13];return!_0x4bd477?(_0x39a010=_0x39a0['UAMWtT'](_0x39a010),_0x39a0['uSlLAz'][_0x191f13]=_0x39a010):_0x39a010=_0x4bd477,_0x39a010;}export function boardTypeLabel(_0x880119){const _0x4d118b=_0xf9ef3a;if(_0x880119===BOARD_OV2640)return _0x4d118b(0x179);if(_0x880119===BOARD_ONVIF)return'外接视觉';return _0x4d118b(0x172);}export function capsForBoard(_0x50b9b4){const _0x4fe79d=_0x50b9b4===BOARD_OV2640;return{'onboard_camera':_0x4fe79d,'onboard_preview':![],'ir':!![],'gimbal':_0x4fe79d,'face_track':_0x4fe79d,'lamps':!![],'motor':!![]};}export function normalizeCaps(_0xeaff9={}){return capsForBoard(resolveBoard(_0xeaff9));}export function applyDeviceHealthTo(_0x8cce49,_0x470e56){const _0x6f4722=_0xf9ef3a;if(!_0x470e56||typeof _0x470e56!==_0x6f4722(0x17e))return _0x8cce49;const _0x55f154=resolveBoard(_0x470e56);if(_0x470e56[_0x6f4722(0x177)+'t'])_0x8cce49['produc'+'t']=_0x470e56[_0x6f4722(0x177)+'t'];return _0x8cce49[_0x6f4722(0x16f)]=_0x55f154,_0x8cce49['device'+_0x6f4722(0x171)]=capsForBoard(_0x55f154),_0x8cce49;}
|
package/dist-server/camera.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x3c5cfb=_0x2a7a;(function(_0x2c87d2,_0x4b1706){const _0x5ef4ce=_0x2a7a,_0x367d67=_0x2c87d2();while(!![]){try{const _0x22cad0=parseInt(_0x5ef4ce(0x268))/0x1+-parseInt(_0x5ef4ce(0x305))/0x2*(-parseInt(_0x5ef4ce(0x1a0))/0x3)+-parseInt(_0x5ef4ce(0x215))/0x4*(parseInt(_0x5ef4ce(0x30a))/0x5)+-parseInt(_0x5ef4ce(0x188))/0x6+parseInt(_0x5ef4ce(0x363))/0x7*(parseInt(_0x5ef4ce(0x2e2))/0x8)+parseInt(_0x5ef4ce(0x2af))/0x9*(parseInt(_0x5ef4ce(0x22c))/0xa)+-parseInt(_0x5ef4ce(0x32f))/0xb*(parseInt(_0x5ef4ce(0x1eb))/0xc);if(_0x22cad0===_0x4b1706)break;else _0x367d67['push'](_0x367d67['shift']());}catch(_0x5dc371){_0x367d67['push'](_0x367d67['shift']());}}}(_0x535d,0xc1644));import _0x3ace31 from'node:crypto';import _0x5214c0 from'node:http';import _0x49bb44 from'node:https';import _0x4a1312 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/'+_0x3c5cfb(0x26c)+'es');let lastOnboardJpeg=null,onboardFetchInFlight=null,onboardPreviewClients=0x0;const PTZ_TIMEOUT_MS=0x2bc,ONVIF_NUDGE_MS=0xb4;let currentCam=null,ptzBusy=![],snapshotTail=Promise[_0x3c5cfb(0x19d)+'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 _0x5214c0[(_0x3c5cfb(0x208))]({'keepAlive':![],'maxSockets':0x2}),httpsAgent=new _0x49bb44[(_0x3c5cfb(0x208))]({'keepAlive':![],'maxSockets':0x2,'rejectUnauthorized':![]}),digestState={'challenge':null,'nc':0x1},state={'connected':![],'source':'','sourceLabel':'','hostname':'','port':0x50,'path':_0x3c5cfb(0x31d)+'/devic'+_0x3c5cfb(0x18e)+'ice','username':'','password':'','ptz':![],'snapshotUri':'','rtspUri':'','encoding':'','liveUri':'','liveDirect':'','info':null};let cameraHooks={};export function setCameraHooks(_0x467b8d){cameraHooks={...cameraHooks,..._0x467b8d};}function deviceCaps(){const _0x4fcdb0=_0x3c5cfb,_0x4a0200=cameraHooks['getDev'+_0x4fcdb0(0x1b4)+'s']?.()||{};return _0x4a0200&&typeof _0x4a0200===_0x4fcdb0(0x20f)?_0x4a0200:{};}export function onboardAvailable(){const _0x1f23f5=_0x3c5cfb;return deviceCaps()[_0x1f23f5(0x2f0)+'d_prev'+'iew']===!![]&&!!String(cameraHooks[_0x1f23f5(0x2bc)+_0x1f23f5(0x31f)+_0x1f23f5(0x19a)]?.()||'')['trim']();}export function gimbalAvailable(){const _0x411a69=_0x3c5cfb;return deviceCaps()[_0x411a69(0x183)]===!![];}export function stripOnboardCameraConfig(_0x5b97fc){const _0x4f3150=_0x3c5cfb;if(!_0x5b97fc?.[_0x4f3150(0x1c4)]||_0x5b97fc['camera'][_0x4f3150(0x187)]!==_0x4f3150(0x2f0)+'d')return![];const _0xaa0dc8={..._0x5b97fc[_0x4f3150(0x1c4)]};return delete _0xaa0dc8[_0x4f3150(0x187)],_0x5b97fc[_0x4f3150(0x1c4)]=_0xaa0dc8,!![];}function playModeOf(){const _0x2153a6=_0x3c5cfb;if(state[_0x2153a6(0x187)]===_0x2153a6(0x2f0)+'d')return _0x2153a6(0x189);if(state[_0x2153a6(0x1d1)+'i'])return'mpegts';if(state[_0x2153a6(0x20e)+'i'])return'mjpeg';if(state['snapsh'+_0x2153a6(0x1ae)])return _0x2153a6(0x31a)+'ot';return'';}function publicState(){const _0x47fcd2=_0x3c5cfb;return{'connected':state[_0x47fcd2(0x324)+_0x47fcd2(0x202)],'source':state[_0x47fcd2(0x187)]||'','sourceLabel':state['source'+_0x47fcd2(0x25b)]||'','hostname':state[_0x47fcd2(0x2fb)+'me'],'port':state[_0x47fcd2(0x271)],'path':state[_0x47fcd2(0x1ab)],'username':state['userna'+'me'],'password_set':!!state[_0x47fcd2(0x32c)+'rd'],'ptz':state[_0x47fcd2(0x302)]||gimbalAvailable(),'ptzKind':gimbalAvailable()&&state[_0x47fcd2(0x187)]!=='onvif'?'gimbal':state[_0x47fcd2(0x302)]?_0x47fcd2(0x1bc):'','snapshot':!!state[_0x47fcd2(0x31a)+_0x47fcd2(0x1ae)]||state[_0x47fcd2(0x187)]===_0x47fcd2(0x2f0)+'d','stream':!!(state['rtspUr'+'i']||state[_0x47fcd2(0x20e)+'i']||state['snapsh'+_0x47fcd2(0x1ae)])||state[_0x47fcd2(0x187)]===_0x47fcd2(0x2f0)+'d','playMode':playModeOf(),'encoding':state[_0x47fcd2(0x32a)+'ng'],'liveDirect':state['liveDi'+'rect'],'info':state[_0x47fcd2(0x210)],'onboardAvailable':onboardAvailable(),'gimbalAvailable':gimbalAvailable()};}function parseScopes(_0x4d8a83){const _0x1ee777=_0x3c5cfb,_0x444fa6=Array[_0x1ee777(0x18d)+'y'](_0x4d8a83)?_0x4d8a83[_0x1ee777(0x2fd)]('\x20'):String(_0x4d8a83||''),_0x221b87=_0x13ae3b=>{const _0x2c7286=_0x1ee777,_0x408f35=_0x444fa6[_0x2c7286(0x2c5)](new RegExp('onvif:'+_0x2c7286(0x36b)+_0x2c7286(0x17a)+'\x5c.org/'+_0x13ae3b+('/([^\x5cs'+_0x2c7286(0x2f4)),'i'));if(!_0x408f35)return'';try{return decodeURIComponent(_0x408f35[0x1][_0x2c7286(0x19c)+'e'](/_/g,'\x20'));}catch{return _0x408f35[0x1];}};return{'name':_0x221b87(_0x1ee777(0x299)),'hardware':_0x221b87(_0x1ee777(0x2fa)+'re')};}function firstXAddr(_0xa5b693){const _0x567da3=_0x3c5cfb,_0x1a4596=Array['isArra'+'y'](_0xa5b693)?_0xa5b693[0x0]:_0xa5b693,_0x5ef7d6=typeof _0x1a4596===_0x567da3(0x1e4)?_0x1a4596:_0x1a4596?.[_0x567da3(0x20b)]||String(_0x1a4596||''),_0x18156b=_0x5ef7d6[_0x567da3(0x35a)]()[_0x567da3(0x1b7)](/\s+/)[0x0];if(!_0x18156b)return null;try{return new URL(_0x18156b);}catch{return null;}}function summarizeProbe(_0x1d6a16,_0x3c5bda){const _0x41e126=_0x3c5cfb,_0xc0f0c=_0x1d6a16?.[_0x41e126(0x27c)+_0x41e126(0x30d)]?.['probeM'+_0x41e126(0x28c)]||_0x1d6a16,_0x410450=firstXAddr(_0xc0f0c?.[_0x41e126(0x1b9)]||_0xc0f0c?.['xaddrs']),_0x5ad7a7=_0x410450?.['hostna'+'me']||_0x3c5bda?.['addres'+'s']||'';if(!_0x5ad7a7)return null;const _0x2a019d=parseScopes(_0xc0f0c?.[_0x41e126(0x33d)]||_0xc0f0c?.['Scopes']);return{'hostname':_0x5ad7a7,'port':Number(_0x410450?.[_0x41e126(0x271)]||0x50),'path':_0x410450?.['pathna'+'me']||_0x41e126(0x31d)+'/devic'+_0x41e126(0x18e)+_0x41e126(0x23a),'urn':_0xc0f0c?.[_0x41e126(0x2de)+_0x41e126(0x2e7)+_0x41e126(0x30e)]?.[_0x41e126(0x35c)+'s']||_0xc0f0c?.[_0x41e126(0x2b9)]||'','name':_0x2a019d['name']||_0x5ad7a7,'hardware':_0x2a019d['hardwa'+'re']||''};}function summarizeCam(_0x3dfadb,_0x520e28){const _0x4e49e6=_0x3c5cfb;if(_0x3dfadb?.[_0x4e49e6(0x27c)+_0x4e49e6(0x30d)]||_0x3dfadb?.[_0x4e49e6(0x1b9)])return summarizeProbe(_0x3dfadb,_0x520e28);const _0x230ce0=_0x3dfadb['hostna'+'me']||_0x520e28?.[_0x4e49e6(0x35c)+'s']||'';if(!_0x230ce0)return null;return{'hostname':_0x230ce0,'port':Number(_0x3dfadb[_0x4e49e6(0x271)]||0x50),'path':_0x3dfadb['path']||_0x4e49e6(0x31d)+_0x4e49e6(0x1ed)+_0x4e49e6(0x18e)+'ice','urn':_0x3dfadb['urn']||'','name':_0x230ce0,'hardware':''};}function _0x535d(){const _0x43805b=['BwvKAwfv','zsbMywXS','CMvTB3zL','w29UDMLM','ywXS','q29Kzq','lwfU','A2LUza','AwrHDgu','l3n0CMvH','5AsX6lsL77Yi','z10GC2TP','Dc10ExbL','6lsM5y+35OIw5A+g56cb5lIn','lMnNAq','zwXHEq','C2HVDa','BM90kgLZ','Aw5KzxHp','BwLU','t252AwyG','ywrK','C3rKzxjY','zw5KCg9P','B25SEvnL','yv0GBMf0','DhvYzq','otCXmNHPEwHuzW','Agv2y19T','Agv2yW','Bg9N','zgvZDhjV','BNrszwzL','6Ag16l+E5O6L5Bga5z+F572r','yMfZzty0','AgvHzgvY','Aw1Hz2uY','C2vUza','A2vLCc1H','BMvJDa','z10GCNrZ','B25IB2fY','CMfUzg9T','Aw1Hz2uV','q2fJAguT','xsSP','5lQr5y+W5O6N5yI25AsX6lsL','BNvKz2u','lwzMBgfN','y2XPzw50','zxzFC2vS','AgfYzhDH','Ag9ZDg5H','yv0Gy29U','AM9PBG','BMfUkhbY','CMuSig5V','ChjVzMLS','zwfTvxjP','Chr6','rhjHAw4','lwjZzJP2','ndzIwwrHDu4','Dg9mB3DL','y29UDgvU','DhjHBNnW','B3zLCNK','nu5Wze5xtG','l0Ltqvbj','yM9KEq','yxrJAgvZ','CMvUy2u','CY8YmdiV','C2v0tM9e','BM9Uy2u9','zsbWAxbL','5PYj5O+q5l6B5OQt5zU+5zYW','C29YDa','5RkH5PYjifjuuW','BMDL','lxjLDMfS','BgvozwvK','z10GzxHP','C25HChnO','zvWSssKR','lwjM','l29UDMLM','dqOncG','AwnLqMfZ','Cg9ZDa','CKnHC2u','zMLUywXS','Dw5ZAgLM','y29UBMvJ','5OIQ5zU+6lAf5PE2','5OIQ5zU+6zYa6kAb6lsM5y+3','DgnW','AgfZ','CgvLAW','zw5JB2rP','BY5Jz2K/','CgfZC3DV','B2DPBNvZ','C3rHDhvZ','mtfrqwHPwui','yMfJAW','DhjHBNnJ','CY8XmdiV','C2vHCMnO','zgf0yq','BM9IDwzM','l3zPzgvV','zgLNzxn0','C2vSzwn0','BwfUDwzH','ufrA','Bgu6DG','zgvY','C2nVCgvZ','5lIn5PsV5OYb55Qe5lQr5y+W','zxiRz2vU','6l+y5RkH5PYj6l+E5O6L5Pge','xsbZBMfW','vfmTu1rb','zMX1C2Hi','5lUo6kEg6Akr5Rwb5OIQ5BIN','y25VBMnL','Bg9JyxrP','w2zMBxbL','CZP2','BM8TC3rV','ihvYAq','zcWGC2TP','C2nOzw1L','AhrTBa','q29UDgvU','C2vYAwfS','sgfZAa','5P6I44cn6Ag16ywn572U5BM2','yv0GB252','BgvUz3rO','y2XVC2u','zgv2AwnL','ignSB3nL','CxvLCNK','A2LSBa','AwnLsw5M','DhjPBq','lM1QCgC','ywrKCMvZ','zwXVywq','CMvHBg09','6k+35ywi6l+E5O6L5Pge5yop','C2HVDcb1','ue9tva','D3D3lwf1','mZa1mNPlBuDLtW','odaWmdaW','C2v0vgLT','6l+z5y+W5Pge5yop5As05RkH','CMvJDa','Agv4','BgL0AwvZ','Aw4VBwPW','lY93D3DC','CgfZpq','ntaWmdaW','ywLS','pwvXkhbP','5P2/6l295Pge5yop5As06l+E','y29Kzwm','DgHLBNrP','zxHPDa','57Q/44cc6k+356In562j6iEQ','zMLYBxDH','Bwf4','CMvZ','zNjVBq','5As06kAb5zYO572r6Ag16yEm','D3jPDgfI','lM9UDMLM','yNvKz2v0','zMfSBgjH','AwX0','lwfUywX5','Dfr5Cgu','yNr5Cgu9','CNKGC2fT','ywn0Aw9U','z2LTyMfS','Dhb0CZ1q','lwzSDxnO','Bgf5','C291CMnL','odmZndKWr0LIrgz1','BwPWzwC','5lQr5y+W6ycA6ygt5PYQ5BcX','mJaWmdaW','5Pge5yop5As05RkH5PYj6l+u','AxnbCNjH','zv9Zzxj2','mZaWmdaW','yv0GCNrZ','AwyGC25H','lw11EgrL','BMrAB29T','CgfKu3rH','DgvUy3K','ywn0AxzL','lxj0C3bF','y29WEsa','B2rLigGY','zvvYBa','CY8XmdeV','CMvWBgfJ','CMvZB2X2','B2rL','CMv0CNK9','ndq1mtrmv3nIre0','zsbZzwfY','BwfW','lxzM','Ahr0Ca','zNvUy3rP','5PYQ5BYa5Ps+ifbu','Eg1S','CMvwzxjZ','yxv0Aa','y292zxiG','Cgf0Aa','y2f0y2G','DgvUDc1u','B3rvCMK','lxbPEf9M','Dg9tDhjP','D3jPDgu','BMv4yG','lcbTDxn0','AwnLq2fW','DgHT','qxv0Ag9Y','C3bSAxq','uLrqvfmS','wefKzhjZ','z2v0','C2TPCfbY','B252Awy','ChvZAa','Ahr0CdOV','y2f0zq','ANnVBG','z2v0u3rY','C3rKB3v0','z2vUChrZ','y2fTzxjH','6k+35AgR5yAz5Pge5yop5As0','EMvYB2XH','AgfUBMvS','AwDUB3jL','zNjHBwu','ucdLNldLNya','zw91Da','uhjHz21H','wc1by2nL','y29UDgLU','6l+y5RkH5PYj6ycj5lITia','lMnNAt91','CNrZCfvY','C29JA2v0','CcbZB2fW','DgLTzw91','yMfJAYbV','BMrqyw5u','Ag90','CgvN','BgL2zq','yv0GzgLZ','B3bHCxvL','BNvKz2u6','BM9Uy2u','lMnNAt9S','AxzLig1Q','5OMt5BYaie9UDG','Dc1uExbL','De1Z','BwfNzs9Q','C3rYAw5N','lxbYB2jL','ChnOB3rv','qMfZAwmG','CMvZCg9U','C2XPy2u','y3jLyxrL','mtK4mJu3ntj3sKHbtuy','Cgf0Ag5H','l2rLDMLJ','5PYj5lQr5y+W77Ym5OIwia','zY5QCgC','BxaYDa','CMvX','y2DPl21Q','BNzPzG','zw5K','6l+E5O6L5Pge5yop5As05AsX','z2v0u25H','lxbYzxnL','mc9TANbL','ChjVyMu','Bc1cDwzM','ys9ZBMfW','C2L6zq','C2uGChjL','5P2/6l2955s76z2I5PQc5lIn','lxr1BMu','l21QCgvN','6l+y5RkH5PYj55s76z2I77Ym','DgvK','EM9VBq','Adi2na','zMXVB3i','CcbJBg9Z','CMvZDw1L','qwDLBNq','zgvSzxrL','6l+E5O6L5Pge5yop5As0','AhjLzG','BM93','jNb3zd0','BgL2zvvY','B2jQzwn0','Aw5MBW','CgCVDMLK','B25Jzq','l2nNAs1I','CY8XmdmV','ndG1otyWngnXtKXlsq','y3r1CMvY','C3bSAwnL','ls1MCMfT','z10GzMLY','AdOG','zw8Uy2DP','y292zxjL','CgLWzq','ChjLC3m','Aw5JBhvK','rgLNzxn0','z10GC3DP','yMfZzwXP','D2fYBG','DxjP','lwXVz2XL','BNzPzIdMNym','ExbLoIbP','ihbYB2jL','DgvUzxjZ','yw1LCMeV','A2LSBgvK','mZqZmJCWquzrCNfK','Exv2ndiW','Cw9Wpq','igzHAwW','BIWGCNrZ','lwzYyw1L','zq0kq29U','B3iGy2fW','zxzPzxC','Cw9W','jMXVz2LU','B250zw50','w2nHBwvY','BxvSDgLW','AwnL','nteWl21Q','BxbLz3rZ','zMLUza','DxbKyxrL','Ahr0CfbY','zxjPBMC','zY92AwrL','ys9KAxnH','C2u9iG','BM8Ty2fJ','yxj0l3GT','tu9tu++8JoIVTW','DMLKzw8U','l2XPDMuV','5Pge5yop5As05PQc5PE256A7','CgvNlMnN','zwn0zwrF','r0vu','C3rVCa','z2uVANbL','yv0GBgL2','B3bLBG','u0Lhs0Lm','DgLVBG','5ywi5zYO6k6+5Ash5O6L5ywL','y29WEq','DxnLCM5H','CNrZCa','z10GC3bH','DwX0CMfM','zgLZy29U','5P2/6l295Pge5yop5As0','tgfIzwW','yv0GCMv0','CMvXDwvZ','xsbYDhnW','zsbHDhrL','vxjP','ChnOB3q','DcKPlhnL','y2HHBgXL','Bwu9iG','C3rYzwfT','yv0GDgnW','C2v0sgvH','mtq1mtq1nvP4tufyua','Ahr0Chm6','AwBVViZLUBBNU5NOV5K','lxrOCMvH','ChjVBwLZ','5OIQ5zU+6l+h5AsN','l2fWAs9J','ChjVDg9J','qNL0zxm','Cg9YDa','BgL2zurP','tMv0D29Y','Ccb1BNjL','CNKGzMfP','u291CMnL','zxzPzxDi','l2nHBwvY','CcbZCgf3','v2L0Aa','y29Uy2f0','ChjVyMvn','BwLUzY9J','BMm9','lwHPzgvF','q29UDhjV','C3rHCNrZ','yMfUBMvY','CcbMCMfT','zMLSDgvY','lwm6DG','ztSGyM91','6k+75y+w55s76z2I5AsX6lsL','5OIQ5zU+5AsX6lsL77Yi','5zUE5zU+54Mh','zvrVA2vU','DMLLDYbM','yxrJAa','D2LKDgG','DcbYzxn0','q29UBMvJ','DMvS','yv0GCgf1','AxPHDgLV','CM91BMq','5OIQ5zU+5zYW5z2a6lEZ6l2S','BwL4zwqT','BwPWzW','qwXStgLZ','CgLWztOX','BMfTzq','xsbKAxnJ','CMvHBg0','CgvNdqPd','lxbYB2zP','sfruua','ywXNB3jP','C2nHBgu9','BwvZC2fN','BgvfBMrL','Ag9ZDa','ChrZ','zsWGAw1H','zYWGkI8Q','lwnHy2HL','5PYj5y+V5PkT5Ps+55Qe6Ake','5lIn5lIkia','ChvIBgLZ','C3qGyNL0','Bd0XjNn1','ihn0AwXS','5OMR5O+p5Pge5yop5As05AsX','mZG3uw1fAw1l','y2fWywjP','Ahr0Cca','lw11EhbY','Cdr0B2fU','Bw9KzwW','l1n0CMvH','Dw91C01V','yxn0','zwfKzxjZ','DxjU','DgHTpq','DgvZDa','z2v0rgv2','AeDPBwjH','zxjYB3i','zgLZy292','y2XLyxi','yxjYyxLc','C2vYpq','y2HHBM5L','Dw5RBM93','Bwf0y2G','lxrPBwvV'];_0x535d=function(){return _0x43805b;};return _0x535d();}let discovering=null;export async function discover(_0x23cb6c=0xfa0){const _0xa9ab14=_0x3c5cfb;if(discovering)return discovering;return discovering=runDiscover(_0x23cb6c)[_0xa9ab14(0x322)+'y'](()=>{discovering=null;}),discovering;}async function runDiscover(_0xbe0567){const _0x17b01a=_0x3c5cfb,_0x36453e=[],_0x49327c=new Set(),_0x237566=_0x49fdaa=>{const _0x152e49=_0x2a7a;if(!_0x49fdaa?.['hostna'+'me'])return;const _0x398631=_0x49fdaa[_0x152e49(0x2fb)+'me']+':'+_0x49fdaa[_0x152e49(0x271)]+':'+_0x49fdaa['path'];if(_0x49327c[_0x152e49(0x328)](_0x398631))return;_0x49327c[_0x152e49(0x2dc)](_0x398631),_0x36453e['push'](_0x49fdaa);},_0x4f9e4f=(_0x32a1c0,_0x5287e8)=>_0x237566(summarizeCam(_0x32a1c0,_0x5287e8));Discovery['on']('device',_0x4f9e4f);try{const _0x107c05=await Discovery[_0x17b01a(0x1f9)]({'timeout':_0xbe0567,'resolve':![]});for(const _0x26ab32 of _0x107c05||[])_0x237566(summarizeCam(_0x26ab32));}catch(_0x44eced){console[_0x17b01a(0x223)](_0x17b01a(0x2ca)+_0x17b01a(0x29a)+_0x17b01a(0x309),_0x44eced?.[_0x17b01a(0x2a1)+'e']||_0x44eced);}finally{Discovery['remove'+'Listen'+'er'](_0x17b01a(0x355),_0x4f9e4f);}return _0x36453e;}function mediaUriOf(_0x78e6a5){const _0x5d7c41=_0x3c5cfb;if(!_0x78e6a5)return'';if(typeof _0x78e6a5==='string')return _0x78e6a5['replac'+'e'](/&/g,'&');const _0xe98a31=_0x78e6a5[_0x5d7c41(0x224)]||_0x78e6a5[_0x5d7c41(0x2c7)+'ri']?.[_0x5d7c41(0x224)]||_0x78e6a5[_0x5d7c41(0x260)]||'',_0x46652f=typeof _0xe98a31===_0x5d7c41(0x1e4)?_0xe98a31:_0xe98a31?.[_0x5d7c41(0x20b)]||_0xe98a31?.['_']||'';return String(_0x46652f)[_0x5d7c41(0x19c)+'e'](/&/g,'&');}function pickPreviewSource(_0x501322){const _0x1edabc=_0x3c5cfb,_0x4667cb=Array[_0x1edabc(0x18d)+'y'](_0x501322[_0x1edabc(0x196)+_0x1edabc(0x276)+'s'])?[..._0x501322['active'+_0x1edabc(0x276)+'s']]:[];if(!_0x4667cb[_0x1edabc(0x353)]&&_0x501322['active'+_0x1edabc(0x276)])_0x4667cb[_0x1edabc(0x1bd)](_0x501322[_0x1edabc(0x196)+_0x1edabc(0x276)]);return _0x4667cb[_0x1edabc(0x314)]((_0x1aac28,_0x4dfea3)=>(Number(_0x1aac28['width'])||0x780)-(Number(_0x4dfea3[_0x1edabc(0x28d)])||0x780)),_0x4667cb[0x0]||_0x501322[_0x1edabc(0x196)+_0x1edabc(0x276)]||null;}function detectEncoding(_0x2f8fae){const _0x37d3bc=_0x3c5cfb,_0x50ec5e=String(_0x2f8fae?.[_0x37d3bc(0x32a)+'ng']||_0x2f8fae?.['Encodi'+'ng']||'')['toLowe'+_0x37d3bc(0x321)]();if(/h265|hevc/['test'](_0x50ec5e))return _0x37d3bc(0x2e4);if(/h264|avc/[_0x37d3bc(0x2bb)](_0x50ec5e))return _0x37d3bc(0x204);return _0x50ec5e;}function injectRtspAuth(_0x4a70a8,_0x220580,_0x533232){const _0x28753a=_0x3c5cfb;if(!_0x4a70a8)return'';try{const _0x392310=new URL(_0x4a70a8);return _0x220580&&(_0x392310[_0x28753a(0x255)+'me']=_0x220580,_0x392310[_0x28753a(0x32c)+'rd']=_0x533232||''),_0x392310[_0x28753a(0x20b)];}catch{return _0x4a70a8;}}function stopAllFfmpeg(){const _0x2df80f=_0x3c5cfb;clearTimeout(ffmpegIdleTimer),clearTimeout(ffmpegRestartTimer),ffmpegIdleTimer=null,ffmpegRestartTimer=null,ffmpegBackoffMs=FFMPEG_BACKOFF_MIN_MS,ffmpegEpoch+=0x1,ffmpegNeedProbe=![],sharedTranscode=![];for(const _0x1227a7 of streamClients){try{if(!_0x1227a7[_0x2df80f(0x179)+_0x2df80f(0x2a2)+'d'])_0x1227a7['end']();}catch{}}streamClients[_0x2df80f(0x2c0)]();const _0x162555=sharedFfmpeg;sharedFfmpeg=null;if(_0x162555){ffmpegProcs[_0x2df80f(0x209)](_0x162555);try{_0x162555[_0x2df80f(0x358)]('SIGKIL'+'L');}catch{}}for(const _0x4da36d of ffmpegProcs){try{_0x4da36d[_0x2df80f(0x358)](_0x2df80f(0x251)+'L');}catch{}}ffmpegProcs[_0x2df80f(0x2c0)]();}function resetDigest(){const _0x3c7f68=_0x3c5cfb;digestState[_0x3c7f68(0x263)+'nge']=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(_0x52997e){const _0x3a4d9b=_0x3c5cfb,_0x25383e=Number(_0x52997e)||0x50,_0x13c3d8=ONVIF_FALLBACK_PORTS[_0x3a4d9b(0x284)](_0x280367=>_0x280367!==_0x25383e);if(_0x25383e!==0x50)_0x13c3d8[_0x3a4d9b(0x323)+'t'](0x50);return[_0x25383e,..._0x13c3d8];}export async function probeOpenPorts(_0x5c9fb7,_0x2cb74f,_0x1829a3=0x320){const _0x519c9c=_0x3c5cfb,_0xb4624b=[...new Set((_0x2cb74f||[])['map'](_0x4c28e6=>Number(_0x4c28e6)||0x0)[_0x519c9c(0x284)](_0x1fa0c0=>_0x1fa0c0>0x0&&_0x1fa0c0<0x10000))];if(!_0xb4624b[_0x519c9c(0x353)])return[];const _0x70860b=await Promise[_0x519c9c(0x2cb)](_0xb4624b[_0x519c9c(0x1a2)](async _0x506e29=>({'port':_0x506e29,'open':await probeTcp(_0x5c9fb7,_0x506e29,_0x1829a3)})));return _0x70860b[_0x519c9c(0x284)](_0x13782a=>_0x13782a[_0x519c9c(0x250)])[_0x519c9c(0x1a2)](_0x4a26fc=>_0x4a26fc['port']);}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(_0xde9e6a){const _0x2a5238=_0x3c5cfb,_0x3e5cb4=_0xde9e6a instanceof Error?_0xde9e6a[_0x2a5238(0x2a1)+'e']:String(_0xde9e6a||'');return/ECONNREFUSED|ENOTFOUND|ETIMEDOUT|EHOSTUNREACH|EHOSTDOWN|ENETUNREACH|ENETDOWN|ECONNRESET|EPIPE|ECONNABORTED|timeout|Timeout|超时|Network timeout|Host is down|host is down|暂时离线/i[_0x2a5238(0x2bb)](_0x3e5cb4);}export function shouldRefreshSnapshotUri(_0x522b30){return!isNetworkError(_0x522b30);}export function rtspPortOf(_0xc58730,_0x20d88e=0x22a){const _0x45f478=_0x3c5cfb;try{const _0x489030=Number(new URL(_0xc58730)[_0x45f478(0x271)]);return _0x489030>0x0?_0x489030:_0x20d88e;}catch{return _0x20d88e;}}export function nextFfmpegRestartDelay({gotData:gotData=![],backoffMs:backoffMs=FFMPEG_BACKOFF_MIN_MS}={}){const _0x4998e0=_0x3c5cfb;if(gotData)return{'delayMs':FFMPEG_RESTART_AFTER_DATA_MS,'nextBackoffMs':FFMPEG_BACKOFF_MIN_MS,'probe':![]};const _0x3c49fe=Math[_0x4998e0(0x175)](FFMPEG_BACKOFF_MIN_MS,Number(backoffMs)||FFMPEG_BACKOFF_MIN_MS);return{'delayMs':_0x3c49fe,'nextBackoffMs':Math[_0x4998e0(0x2da)](Math[_0x4998e0(0x293)](_0x3c49fe*1.5),FFMPEG_BACKOFF_MAX_MS),'probe':!![]};}export function cameraError(_0x5a9667,_0x20be3c){const _0x2ebcb9=_0x3c5cfb,_0x5657a5=_0x5a9667 instanceof Error?_0x5a9667[_0x2ebcb9(0x2a1)+'e']:String(_0x5a9667||'');if(isNetworkError(_0x5a9667))return _0x2ebcb9(0x249)+_0x2ebcb9(0x374)+'动重连,或点'+'重新连接。';if(/401|NotAuthorized|not authorized|unauthorized|Authoriz/i[_0x2ebcb9(0x2bb)](_0x5657a5))return _0x2ebcb9(0x2d4)+'对。部分摄像'+_0x2ebcb9(0x178)+_0x2ebcb9(0x1e0)+_0x2ebcb9(0x26a)+'个账号开\x20O'+_0x2ebcb9(0x226)+'限。';return _0x5657a5||_0x20be3c;}export function probeTcp(_0x2a71f4,_0x468af5,_0x1b23db=ONVIF_TCP_PROBE_MS){const _0x728bf8=_0x3c5cfb,_0x3090ff=String(_0x2a71f4||'')[_0x728bf8(0x35a)](),_0x13d931=Number(_0x468af5)||0x50;if(!_0x3090ff)return Promise[_0x728bf8(0x19d)+'e'](![]);return new Promise(_0x457607=>{const _0x131d66=_0x728bf8,_0x4b34fb=_0x4a1312[_0x131d66(0x324)+'t']({'host':_0x3090ff,'port':_0x13d931});let _0x78ce64=![];const _0x32f6c4=_0x495842=>{const _0x1c452f=_0x131d66;if(_0x78ce64)return;_0x78ce64=!![],_0x4b34fb['remove'+_0x1c452f(0x297)+_0x1c452f(0x229)](),_0x4b34fb[_0x1c452f(0x2e6)+'y'](),_0x457607(_0x495842);};_0x4b34fb[_0x131d66(0x365)+_0x131d66(0x1cb)](Math[_0x131d66(0x175)](0xc8,Number(_0x1b23db)||ONVIF_TCP_PROBE_MS),()=>_0x32f6c4(![])),_0x4b34fb[_0x131d66(0x212)](_0x131d66(0x324)+'t',()=>_0x32f6c4(!![])),_0x4b34fb[_0x131d66(0x212)](_0x131d66(0x2be),()=>_0x32f6c4(![]));});}function createCam(_0x4e640b){const _0x147408=_0x3c5cfb;return new Cam({'hostname':_0x4e640b[_0x147408(0x2fb)+'me'],'port':_0x4e640b[_0x147408(0x271)],'username':_0x4e640b[_0x147408(0x255)+'me'],'password':_0x4e640b[_0x147408(0x32c)+'rd'],'path':_0x4e640b[_0x147408(0x1ab)],'timeout':Number(_0x4e640b[_0x147408(0x1d4)+'t'])>0x0?Number(_0x4e640b[_0x147408(0x1d4)+'t']):ONVIF_CONNECT_TIMEOUT_MS,'agent':httpAgent,'preserveAddress':!![],'autoconnect':![]});}async function refreshOnvif(){const _0x516e71=_0x3c5cfb,_0x22188d=createCam(state);return await _0x22188d[_0x516e71(0x324)+'t'](),currentCam=_0x22188d,state['ptz']=!!(_0x22188d[_0x516e71(0x2b0)+_0x516e71(0x369)]?.[_0x516e71(0x33a)]||_0x22188d[_0x516e71(0x224)]?.[_0x516e71(0x302)]),_0x22188d;}function sameHost(_0x1f6258,_0xd68930){const _0x402e71=_0x3c5cfb;return String(_0x1f6258||'')[_0x402e71(0x35a)]()[_0x402e71(0x306)+'rCase']()===String(_0xd68930||'')[_0x402e71(0x35a)]()['toLowe'+_0x402e71(0x321)]();}export function sameOnvifEndpoint(_0x337d1c,_0x2146ef){const _0x4ee3e2=_0x3c5cfb;if(!_0x337d1c||!_0x2146ef)return![];return sameHost(_0x337d1c['hostna'+'me'],_0x2146ef[_0x4ee3e2(0x2fb)+'me'])&&Number(_0x337d1c[_0x4ee3e2(0x271)]||0x50)===Number(_0x2146ef[_0x4ee3e2(0x271)]||0x50)&&String(_0x337d1c[_0x4ee3e2(0x1ab)]||_0x4ee3e2(0x31d)+'/devic'+_0x4ee3e2(0x18e)+_0x4ee3e2(0x23a))===String(_0x2146ef[_0x4ee3e2(0x1ab)]||_0x4ee3e2(0x31d)+_0x4ee3e2(0x1ed)+_0x4ee3e2(0x18e)+_0x4ee3e2(0x23a));}async function resolveDiscoveredEndpoint(_0x9d56d1){const _0x582449=_0x3c5cfb;try{const _0x114993=await discover(0x9c4);return _0x114993[_0x582449(0x23d)](_0x1f37d3=>sameHost(_0x1f37d3['hostna'+'me'],_0x9d56d1))||null;}catch(_0x330570){return console[_0x582449(0x223)](_0x582449(0x238)+_0x582449(0x1da)+_0x582449(0x1aa)+_0x582449(0x17c)+'ck',_0x330570?.[_0x582449(0x2a1)+'e']||_0x330570),null;}}async function openOnvif(_0x16c914){const _0x4fd9e3=_0x3c5cfb,_0x16a8ba=createCam(_0x16c914);return await _0x16a8ba[_0x4fd9e3(0x324)+'t'](),_0x16a8ba;}export async function connectCamera(_0x4f0e68={}){const _0x4a4eb6=_0x3c5cfb;let _0xeb6775=String(_0x4f0e68[_0x4a4eb6(0x2fb)+'me']||'')[_0x4a4eb6(0x35a)](),_0xf2fb9e=Number(_0x4f0e68[_0x4a4eb6(0x271)]||0x50);const _0x50a8a6=String(_0x4f0e68['userna'+'me']||'')[_0x4a4eb6(0x35a)](),_0x2cedba=String(_0x4f0e68[_0x4a4eb6(0x32c)+'rd']||'');let _0x3ad619=String(_0x4f0e68['path']||_0x4a4eb6(0x31d)+_0x4a4eb6(0x1ed)+_0x4a4eb6(0x18e)+_0x4a4eb6(0x23a))['trim']()||_0x4a4eb6(0x31d)+_0x4a4eb6(0x1ed)+_0x4a4eb6(0x18e)+'ice';if(!_0xeb6775)throw new Error(_0x4a4eb6(0x1c5)+'地址');stopAllFfmpeg(),await new Promise(_0x154e5f=>setTimeout(_0x154e5f,0x32));state['source']===_0x4a4eb6(0x2f0)+'d'&&disconnectCamera();let _0x4041c3;const _0x55ce6c={'username':_0x50a8a6,'password':_0x2cedba,'path':_0x3ad619},_0x2b626f=onvifProbePorts(_0xf2fb9e);let _0x327595=await probeOpenPorts(_0xeb6775,_0x2b626f,ONVIF_TCP_PROBE_MS);!_0x327595[_0x4a4eb6(0x353)]&&(console[_0x4a4eb6(0x223)](_0x4a4eb6(0x238)+_0x4a4eb6(0x266)+_0x4a4eb6(0x228)+_0x4a4eb6(0x22f),_0xeb6775+':'+_0x2b626f[_0x4a4eb6(0x2fd)](',')),await new Promise(_0x2524c5=>setTimeout(_0x2524c5,0xc8)),_0x327595=await probeOpenPorts(_0xeb6775,_0x2b626f,0x320));if(!_0x327595[_0x4a4eb6(0x353)])console[_0x4a4eb6(0x223)](_0x4a4eb6(0x238)+_0x4a4eb6(0x266)+_0x4a4eb6(0x2ad)+_0x4a4eb6(0x356)+_0x4a4eb6(0x34b)+_0x4a4eb6(0x1d3),_0xeb6775);else{const _0x46661d=_0x327595[_0x4a4eb6(0x21f)+'es'](_0xf2fb9e)?[_0xf2fb9e,..._0x327595[_0x4a4eb6(0x284)](_0x2fc40c=>_0x2fc40c!==_0xf2fb9e)[_0x4a4eb6(0x1e9)](0x0,0x1)]:_0x327595[_0x4a4eb6(0x1e9)](0x0,0x2);for(const _0x53ceab of _0x46661d){const _0x4d37c0=_0x53ceab===_0xf2fb9e?ONVIF_CONNECT_TIMEOUT_MS:ONVIF_FAST_TIMEOUT_MS;try{console[_0x4a4eb6(0x2e5)](_0x4a4eb6(0x238)+_0x4a4eb6(0x352)+'if',_0xeb6775+':'+_0x53ceab+_0x3ad619,_0x4a4eb6(0x1d4)+'t',_0x4d37c0),_0x4041c3=await openOnvif({'hostname':_0xeb6775,'port':_0x53ceab,..._0x55ce6c,'timeout':_0x4d37c0}),_0xf2fb9e=_0x53ceab;break;}catch(_0x561575){console[_0x4a4eb6(0x223)](_0x4a4eb6(0x238)+_0x4a4eb6(0x2fc)+'nect\x20f'+_0x4a4eb6(0x36e),_0xeb6775+':'+_0x53ceab+_0x3ad619,_0x561575?.[_0x4a4eb6(0x2a1)+'e']||_0x561575);if(!isNetworkError(_0x561575))throw new Error(cameraError(_0x561575,'连接摄像头失'+'败'));}}}if(!_0x4041c3&&_0x327595[_0x4a4eb6(0x21f)+'es'](_0xf2fb9e))try{console[_0x4a4eb6(0x2e5)](_0x4a4eb6(0x238)+_0x4a4eb6(0x25c)+_0x4a4eb6(0x181)+'e',_0xeb6775+':'+_0xf2fb9e+_0x3ad619),_0x4041c3=await openOnvif({'hostname':_0xeb6775,'port':_0xf2fb9e,..._0x55ce6c,'timeout':ONVIF_CONNECT_TIMEOUT_MS});}catch(_0x141318){console[_0x4a4eb6(0x223)](_0x4a4eb6(0x238)+'a]\x20ret'+_0x4a4eb6(0x275)+'l',_0xeb6775+':'+_0xf2fb9e+_0x3ad619,_0x141318?.[_0x4a4eb6(0x2a1)+'e']||_0x141318);if(!isNetworkError(_0x141318))throw new Error(cameraError(_0x141318,'连接摄像头失'+'败'));}if(!_0x4041c3){const _0x502d3b=await resolveDiscoveredEndpoint(_0xeb6775);if(_0x502d3b&&!sameOnvifEndpoint({'hostname':_0xeb6775,'port':_0xf2fb9e,'path':_0x3ad619},_0x502d3b)){_0xeb6775=_0x502d3b[_0x4a4eb6(0x2fb)+'me'],_0xf2fb9e=Number(_0x502d3b[_0x4a4eb6(0x271)]||_0xf2fb9e),_0x3ad619=_0x502d3b['path']||_0x3ad619,console[_0x4a4eb6(0x2e5)](_0x4a4eb6(0x238)+_0x4a4eb6(0x25c)+'ry\x20dis'+_0x4a4eb6(0x21c)+'d',_0xeb6775+':'+_0xf2fb9e+_0x3ad619);try{_0x4041c3=await openOnvif({'hostname':_0xeb6775,'port':_0xf2fb9e,'username':_0x50a8a6,'password':_0x2cedba,'path':_0x3ad619});}catch(_0x4fea71){throw new Error(cameraError(_0x4fea71,_0x4a4eb6(0x1f5)+'败'));}}else throw new Error(cameraError(new Error(_0x4a4eb6(0x273)+'k\x20time'+'out'),_0x4a4eb6(0x1f5)+'败'));}let _0x14ef58=null;try{_0x14ef58=await _0x4041c3[_0x4a4eb6(0x2bc)+_0x4a4eb6(0x359)+'ormati'+'on']();}catch{_0x14ef58=null;}let _0x4245f3='';const _0x3c527f=pickPreviewSource(_0x4041c3);let _0x504dd1='';try{const _0x1d5b4a=await _0x4041c3[_0x4a4eb6(0x1c1)+_0x4a4eb6(0x301)]({'protocol':'RTSP','profileToken':_0x3c527f?.[_0x4a4eb6(0x300)+'eToken']});_0x504dd1=mediaUriOf(_0x1d5b4a);}catch(_0x1b63f5){console[_0x4a4eb6(0x223)]('[onvif'+_0x4a4eb6(0x25e)+_0x4a4eb6(0x34a),_0x1b63f5?.[_0x4a4eb6(0x2a1)+'e']||_0x1b63f5);}if(!_0x504dd1)try{const _0x8e6fbb=await _0x4041c3['getSna'+_0x4a4eb6(0x1e6)+'ri']({'profileToken':_0x3c527f?.[_0x4a4eb6(0x300)+_0x4a4eb6(0x28a)]});_0x4245f3=mediaUriOf(_0x8e6fbb);}catch(_0x2a0a3c){console[_0x4a4eb6(0x223)](_0x4a4eb6(0x2ca)+_0x4a4eb6(0x341)+_0x4a4eb6(0x360)+'ri',_0x2a0a3c?.[_0x4a4eb6(0x2a1)+'e']||_0x2a0a3c);}resetDigest(),currentCam=_0x4041c3,state[_0x4a4eb6(0x324)+_0x4a4eb6(0x202)]=!![],state[_0x4a4eb6(0x2fb)+'me']=_0xeb6775,state[_0x4a4eb6(0x271)]=_0xf2fb9e,state[_0x4a4eb6(0x1ab)]=_0x3ad619,state['userna'+'me']=_0x50a8a6,state[_0x4a4eb6(0x32c)+'rd']=_0x2cedba,state[_0x4a4eb6(0x31a)+'otUri']=_0x4245f3,state[_0x4a4eb6(0x1d1)+'i']=_0x504dd1,state[_0x4a4eb6(0x32a)+'ng']=detectEncoding(_0x3c527f),state[_0x4a4eb6(0x20e)+'i']='',state[_0x4a4eb6(0x272)+_0x4a4eb6(0x367)]='',state['info']=_0x14ef58?{'manufacturer':_0x14ef58[_0x4a4eb6(0x339)+_0x4a4eb6(0x216)]||'','model':_0x14ef58[_0x4a4eb6(0x2b4)]||'','firmware':_0x14ef58[_0x4a4eb6(0x375)+_0x4a4eb6(0x1a8)+'ion']||'','serial':_0x14ef58[_0x4a4eb6(0x34f)+'Number']||''}:null,state[_0x4a4eb6(0x302)]=!!(_0x4041c3['capabi'+_0x4a4eb6(0x369)]?.[_0x4a4eb6(0x33a)]||_0x4041c3[_0x4a4eb6(0x224)]?.['ptz']),state[_0x4a4eb6(0x187)]=_0x4a4eb6(0x1bc),state['source'+_0x4a4eb6(0x25b)]=[_0x14ef58?.[_0x4a4eb6(0x339)+_0x4a4eb6(0x216)],_0x14ef58?.[_0x4a4eb6(0x2b4)]][_0x4a4eb6(0x284)](Boolean)[_0x4a4eb6(0x2fd)]('\x20')||_0xeb6775;if(_0x504dd1)console[_0x4a4eb6(0x2e5)](_0x4a4eb6(0x238)+_0x4a4eb6(0x190)+'p',state['encodi'+'ng']||_0x4a4eb6(0x2c4)+'n',_0xeb6775);else try{const _0x5f0cb6=await findNativeLive({'hostname':_0xeb6775,'port':_0xf2fb9e,'username':_0x50a8a6,'password':_0x2cedba,'manufacturer':_0x14ef58?.[_0x4a4eb6(0x339)+_0x4a4eb6(0x216)]||'','snapshotUri':_0x4245f3,'profileToken':_0x3c527f?.[_0x4a4eb6(0x300)+_0x4a4eb6(0x28a)]});state[_0x4a4eb6(0x20e)+'i']=_0x5f0cb6,state[_0x4a4eb6(0x272)+_0x4a4eb6(0x367)]=_0x5f0cb6&&isQueryAuthUrl(_0x5f0cb6)?_0x5f0cb6:'';}catch(_0x3a1317){console['warn'](_0x4a4eb6(0x238)+'a]\x20liv'+_0x4a4eb6(0x1a1)+'ch',_0x3a1317?.[_0x4a4eb6(0x2a1)+'e']||_0x3a1317);}return publicState();}export function disconnectCamera(){const _0x2f700b=_0x3c5cfb,_0x4ef234=state[_0x2f700b(0x187)]===_0x2f700b(0x2f0)+'d';stopAllFfmpeg(),currentCam=null,resetDigest();try{httpAgent[_0x2f700b(0x2e6)+'y']();}catch{}try{httpsAgent[_0x2f700b(0x2e6)+'y']();}catch{}return state[_0x2f700b(0x324)+_0x2f700b(0x202)]=![],state[_0x2f700b(0x31a)+_0x2f700b(0x1ae)]='',state[_0x2f700b(0x1d1)+'i']='',state[_0x2f700b(0x32a)+'ng']='',state[_0x2f700b(0x20e)+'i']='',state['liveDi'+_0x2f700b(0x367)]='',state[_0x2f700b(0x210)]=null,state[_0x2f700b(0x302)]=![],state[_0x2f700b(0x187)]='',state[_0x2f700b(0x187)+'Label']='',lastOnboardJpeg=null,onboardPreviewClients=0x0,_0x4ef234&&void disarmOnboardCamera(),publicState();}export function getCameraState(){return publicState();}function onboardBaseUrl(){const _0x4cb264=_0x3c5cfb;return String(cameraHooks[_0x4cb264(0x2bc)+'iceBas'+_0x4cb264(0x19a)]?.()||'')[_0x4cb264(0x19c)+'e'](/\/$/,'');}export async function disarmOnboardCamera(){const _0x3769e4=_0x3c5cfb,_0x16a84a=onboardBaseUrl();if(!_0x16a84a)return![];try{return await fetch(_0x16a84a+(_0x3769e4(0x278)+_0x3769e4(0x242)+'rm'),{'method':_0x3769e4(0x361),'signal':AbortSignal[_0x3769e4(0x1d4)+'t'](ONBOARD_DISARM_TIMEOUT_MS)}),!![];}catch{return![];}}function noteOnboardPreviewClient(_0x1507ce){const _0x2eee9d=_0x3c5cfb,_0x1a3365=onboardPreviewClients;onboardPreviewClients=Math[_0x2eee9d(0x175)](0x0,onboardPreviewClients+_0x1507ce),_0x1a3365>0x0&&onboardPreviewClients===0x0&&void disarmOnboardCamera();}async function fetchOnboardJpeg(){const _0x1d42fe=_0x3c5cfb,_0x31460b=onboardBaseUrl();if(!_0x31460b)throw new Error(_0x1d42fe(0x1cf)+_0x1d42fe(0x246)+_0x1d42fe(0x253)+_0x1d42fe(0x2e8));const _0x4e8df5=_0x31460b+(_0x1d42fe(0x278)+_0x1d42fe(0x1fb)+_0x1d42fe(0x2d7));let _0x77d713;try{_0x77d713=await fetch(_0x4e8df5,{'signal':AbortSignal[_0x1d42fe(0x1d4)+'t'](ONBOARD_FETCH_TIMEOUT_MS),'headers':{'Accept':_0x1d42fe(0x2f2)+'jpeg'}});}catch(_0xe1ff41){const _0x2cde5e=_0xe1ff41?.['cause']?.[_0x1d42fe(0x2a1)+'e']||_0xe1ff41?.[_0x1d42fe(0x2a1)+'e']||_0xe1ff41;throw new Error(_0x1d42fe(0x370)+_0x1d42fe(0x2a9)+_0x4e8df5+':'+_0x2cde5e);}if(_0x77d713[_0x1d42fe(0x32e)]===0xcc)return null;if(!_0x77d713['ok'])throw new Error('板载摄像头返'+'回\x20'+_0x77d713[_0x1d42fe(0x32e)]);const _0x36109e=Buffer[_0x1d42fe(0x177)](await _0x77d713[_0x1d42fe(0x2c1)+'uffer']());if(_0x36109e[_0x1d42fe(0x353)])lastOnboardJpeg=_0x36109e;return _0x36109e;}async function getOnboardSnapshot(){const _0x26c0f5=_0x3c5cfb;if(onboardFetchInFlight)try{return await onboardFetchInFlight;}catch{}return onboardFetchInFlight=fetchOnboardJpeg()[_0x26c0f5(0x322)+'y'](()=>{onboardFetchInFlight=null;}),onboardFetchInFlight;}export async function connectOnboardCamera(){const _0x53adc2=_0x3c5cfb;throw new Error(_0x53adc2(0x1fe)+'支持');}async function ptzOnboard(_0x27e645,_0x434813={}){const _0x7c0cc5=_0x3c5cfb;if(!cameraHooks[_0x7c0cc5(0x2aa)+'hGimba'+'l'])throw new Error(_0x7c0cc5(0x18a)+'绪');const _0x521d1e=String(_0x434813['press']||''),_0x2b1129=String(_0x27e645||''),_0x293f66=_0x2b1129[_0x7c0cc5(0x281)+_0x7c0cc5(0x27a)]('nudge:')?_0x2b1129['slice'](0x6):_0x2b1129;if(_0x521d1e===_0x7c0cc5(0x2f6)||_0x2b1129['starts'+_0x7c0cc5(0x27a)](_0x7c0cc5(0x1dc)))return await cameraHooks[_0x7c0cc5(0x2aa)+_0x7c0cc5(0x2bd)+'l'](payloadForNudge(_0x293f66)),{'ok':!![]};return await cameraHooks[_0x7c0cc5(0x2aa)+_0x7c0cc5(0x2bd)+'l'](payloadForAction(_0x2b1129)),{'ok':!![]};}function md5(_0x1054d5){const _0x3bf225=_0x3c5cfb;return _0x3ace31[_0x3bf225(0x1ea)+_0x3bf225(0x350)]('md5')[_0x3bf225(0x23e)](_0x1054d5)['digest'](_0x3bf225(0x368));}function parseChallenge(_0x1200de){const _0x114b89=_0x3c5cfb,_0x110eb1={'scheme':_0x114b89(0x337)},_0x1a97d8=String(_0x1200de||'')[_0x114b89(0x2c5)](/^(\w+)\s+(.*)$/);if(!_0x1a97d8)return _0x110eb1;_0x110eb1[_0x114b89(0x34c)]=_0x1a97d8[0x1][_0x114b89(0x306)+_0x114b89(0x321)]();for(const _0x27cabd of _0x1a97d8[0x2][_0x114b89(0x1b7)](/,(?=(?:[^"]*"[^"]*")*[^"]*$)/)){const _0x2aa88a=_0x27cabd[_0x114b89(0x2d9)+'f']('=');if(_0x2aa88a<0x0)continue;const _0x3a9080=_0x27cabd['slice'](0x0,_0x2aa88a)[_0x114b89(0x35a)]();_0x110eb1[_0x3a9080]=_0x27cabd['slice'](_0x2aa88a+0x1)[_0x114b89(0x35a)]()[_0x114b89(0x19c)+'e'](/^"|"$/g,'');}return _0x110eb1;}function digestAuth(_0x3a7052,_0x4ccc5e,_0x1b58cb,_0x381889,_0x221818,_0x45eb28){const _0x2bfc1b=_0x3c5cfb,_0x2b5534=String(_0x45eb28)[_0x2bfc1b(0x194)+'rt'](0x8,'0'),_0x333918=_0x3ace31[_0x2bfc1b(0x2f1)+_0x2bfc1b(0x270)](0x8)[_0x2bfc1b(0x1b0)+'ng'](_0x2bfc1b(0x368)),_0x5135f4=(_0x3a7052[_0x2bfc1b(0x235)]||'auth')[_0x2bfc1b(0x1b7)](',')[0x0][_0x2bfc1b(0x35a)]()||_0x2bfc1b(0x1a9),_0x28fcdf=md5(_0x4ccc5e+':'+_0x3a7052[_0x2bfc1b(0x29b)]+':'+_0x1b58cb),_0x216a07=md5(_0x381889+':'+_0x221818),_0x389b5d=_0x3a7052[_0x2bfc1b(0x235)]?md5(_0x28fcdf+':'+_0x3a7052['nonce']+':'+_0x2b5534+':'+_0x333918+':'+_0x5135f4+':'+_0x216a07):md5(_0x28fcdf+':'+_0x3a7052[_0x2bfc1b(0x1dd)]+':'+_0x216a07),_0x535752=['userna'+_0x2bfc1b(0x264)+_0x4ccc5e+'\x22',_0x2bfc1b(0x35e)+'\x22'+_0x3a7052[_0x2bfc1b(0x29b)]+'\x22',_0x2bfc1b(0x311)+'\x22'+_0x3a7052['nonce']+'\x22','uri=\x22'+_0x221818+'\x22',_0x2bfc1b(0x1e8)+_0x2bfc1b(0x243)+_0x389b5d+'\x22'];if(_0x3a7052[_0x2bfc1b(0x1db)])_0x535752[_0x2bfc1b(0x1bd)](_0x2bfc1b(0x1db)+'=\x22'+_0x3a7052[_0x2bfc1b(0x1db)]+'\x22');_0x3a7052[_0x2bfc1b(0x235)]&&_0x535752[_0x2bfc1b(0x1bd)](_0x2bfc1b(0x22e)+_0x5135f4,_0x2bfc1b(0x27e)+_0x2b5534,_0x2bfc1b(0x345)+'=\x22'+_0x333918+'\x22');if(_0x3a7052['algori'+_0x2bfc1b(0x1b5)])_0x535752[_0x2bfc1b(0x1bd)](_0x2bfc1b(0x29f)+_0x2bfc1b(0x2ba)+_0x3a7052[_0x2bfc1b(0x29f)+_0x2bfc1b(0x1b5)]);return _0x2bfc1b(0x220)+'\x20'+_0x535752[_0x2bfc1b(0x2fd)](',\x20');}function digestHeader(_0x259219,_0x20aa5,_0x548c76,_0x327fb4,_0x343d90){return digestAuth(_0x259219,_0x20aa5,_0x548c76,_0x327fb4,_0x343d90,digestState['nc']++);}function isQueryAuthUrl(_0x2e50cb){return/[?&](user|usr|username|loginuse)=/i['test'](_0x2e50cb)&&/[?&](pwd|password|pass|loginpas)=/i['test'](_0x2e50cb);}function isLiveMjpeg(_0x391bd0,_0x42e9ff){const _0x2e0c7e=_0x3c5cfb,_0x2ea135=String(_0x391bd0||''),_0x583b83=String(_0x42e9ff||'');if(/multipart\/x-mixed-replace/i['test'](_0x2ea135))return!![];if(/mjpeg/i[_0x2e0c7e(0x2bb)](_0x2ea135))return!![];if(/Content-Type:\s*image\/jpeg/i[_0x2e0c7e(0x2bb)](_0x583b83)&&_0x583b83['includ'+'es']('--'))return!![];return![];}function liveCandidates({hostname:_0x3da052,port:_0x54df93,username:_0x1a598e,password:_0x519e8c,manufacturer:_0x5e7598,snapshotUri:_0x5e33b2}){const _0x4ebf7f=_0x3c5cfb,_0x312d40=[],_0x3ca075=(_0x543518,_0x50875f)=>{const _0x415f15=_0x2a7a;if(!_0x543518)return;const _0x564363={'host':_0x543518,'port':Number(_0x50875f||0x50)};if(!_0x312d40['some'](_0x42d3df=>_0x42d3df['host']===_0x564363[_0x415f15(0x2a3)]&&_0x42d3df[_0x415f15(0x271)]===_0x564363[_0x415f15(0x271)]))_0x312d40[_0x415f15(0x1bd)](_0x564363);};_0x3ca075(_0x3da052,_0x54df93&&_0x54df93!==0x22a?_0x54df93:0x50),_0x3ca075(_0x3da052,0x50);if(_0x5e33b2)try{const _0x3f9fa5=new URL(_0x5e33b2);_0x3ca075(_0x3f9fa5[_0x4ebf7f(0x2fb)+'me'],_0x3f9fa5[_0x4ebf7f(0x271)]||0x50);}catch{}const _0x5cfc72=encodeURIComponent(_0x1a598e||''),_0x490e0f=encodeURIComponent(_0x519e8c||''),_0xb46964=String(_0x5e7598||'')[_0x4ebf7f(0x306)+_0x4ebf7f(0x321)](),_0x4c7786=['/ISAPI'+_0x4ebf7f(0x2b5)+'ming/c'+_0x4ebf7f(0x1c7)+_0x4ebf7f(0x332)+_0x4ebf7f(0x23f)+_0x4ebf7f(0x234),'/ISAPI'+_0x4ebf7f(0x2b5)+'ming/c'+'hannel'+_0x4ebf7f(0x19b)+'httpPr'+_0x4ebf7f(0x234),_0x4ebf7f(0x30b)+_0x4ebf7f(0x2b5)+_0x4ebf7f(0x27d)+_0x4ebf7f(0x1c7)+_0x4ebf7f(0x214)+_0x4ebf7f(0x23f)+_0x4ebf7f(0x234),_0x4ebf7f(0x30b)+_0x4ebf7f(0x2b5)+_0x4ebf7f(0x27d)+'hannel'+_0x4ebf7f(0x30f)+_0x4ebf7f(0x23f)+'eview'],_0x3b07b6=['/cgi-b'+'in/mjp'+_0x4ebf7f(0x241)+_0x4ebf7f(0x32b)+_0x4ebf7f(0x2c3)+_0x4ebf7f(0x2ac)+_0x4ebf7f(0x180)+'1',_0x4ebf7f(0x213)+_0x4ebf7f(0x36a)+_0x4ebf7f(0x241)+_0x4ebf7f(0x32b)+'channe'+_0x4ebf7f(0x2ac)+_0x4ebf7f(0x180)+'0'],_0x3a18b7=[_0x4ebf7f(0x336)+'stream'+_0x4ebf7f(0x1d0)+_0x4ebf7f(0x2c2)+_0x5cfc72+_0x4ebf7f(0x20d)+_0x490e0f,_0x4ebf7f(0x336)+_0x4ebf7f(0x265)+_0x4ebf7f(0x1de)+_0x4ebf7f(0x32d)+'e='+_0x5cfc72+(_0x4ebf7f(0x236)+_0x4ebf7f(0x36c))+_0x490e0f,_0x4ebf7f(0x336)+_0x4ebf7f(0x265)+_0x4ebf7f(0x2d5),_0x4ebf7f(0x200)+_0x4ebf7f(0x2d5),_0x4ebf7f(0x336)+_0x4ebf7f(0x35b),'/mjpg/'+_0x4ebf7f(0x247)+_0x4ebf7f(0x296),_0x4ebf7f(0x213)+_0x4ebf7f(0x36a)+'eg','/axis-'+_0x4ebf7f(0x1f2)+_0x4ebf7f(0x211)+_0x4ebf7f(0x21b),'/ipcam'+'/mjpeg'+_0x4ebf7f(0x2d5),_0x4ebf7f(0x213)+'in/hi3'+_0x4ebf7f(0x23b)+_0x4ebf7f(0x24a)+'i',_0x4ebf7f(0x248)+_0x4ebf7f(0x1f8)+_0x4ebf7f(0x1ef),_0x4ebf7f(0x2d0)+'m'];let _0x3bffcf=[];if(/hik|海康/[_0x4ebf7f(0x2bb)](_0xb46964))_0x3bffcf=[..._0x4c7786,..._0x3a18b7,..._0x3b07b6];else{if(/dahua|大华/['test'](_0xb46964))_0x3bffcf=[..._0x3b07b6,..._0x3a18b7,..._0x4c7786];else _0x3bffcf=[..._0x3a18b7,..._0x4c7786,..._0x3b07b6];}const _0x25ccdf=[];for(const _0x54d96b of _0x312d40){const _0x4efdc6=_0x54d96b['port']===0x50?_0x4ebf7f(0x1be)+'/'+_0x54d96b[_0x4ebf7f(0x2a3)]:_0x4ebf7f(0x1be)+'/'+_0x54d96b[_0x4ebf7f(0x2a3)]+':'+_0x54d96b[_0x4ebf7f(0x271)];for(const _0x98f376 of _0x3bffcf)_0x25ccdf[_0x4ebf7f(0x1bd)](_0x4efdc6+_0x98f376);}return[...new Set(_0x25ccdf)];}function openCameraHttp(_0x3aed8b,_0xda0be8,_0x531605,_0x5934ae=0xfa0){return new Promise((_0x3cd7bf,_0x452f70)=>{const _0x4c88d7=_0x2a7a,_0x30f54b=new URL(_0x3aed8b),_0x4cea53=decodeURIComponent(_0x30f54b[_0x4c88d7(0x255)+'me']||_0xda0be8||''),_0x225c18=decodeURIComponent(_0x30f54b[_0x4c88d7(0x32c)+'rd']||_0x531605||'');_0x30f54b[_0x4c88d7(0x255)+'me']='',_0x30f54b[_0x4c88d7(0x32c)+'rd']='';const _0x39e0a7=_0x30f54b[_0x4c88d7(0x26f)+'ol']===_0x4c88d7(0x269),_0x156239=_0x39e0a7?_0x49bb44:_0x5214c0;let _0x1f84a8=![],_0x1695cf=0x1;const _0x3f767d=(_0x4f7147,_0x41547b)=>{if(_0x1f84a8)return;_0x1f84a8=!![];if(_0x4f7147)_0x452f70(_0x4f7147);else _0x3cd7bf(_0x41547b);},_0x1a680f=_0x35df17=>{const _0xcac6ee=_0x4c88d7,_0x30492f=_0x30f54b['pathna'+'me']+_0x30f54b[_0xcac6ee(0x333)],_0x54065b={'Accept':_0xcac6ee(0x239)+_0xcac6ee(0x245)+_0xcac6ee(0x295)+_0xcac6ee(0x19c)+_0xcac6ee(0x2a5)+_0xcac6ee(0x24e)+_0xcac6ee(0x2a6),'Connection':_0xcac6ee(0x354)};if(_0x35df17?.[_0xcac6ee(0x34c)]===_0xcac6ee(0x337)&&_0x4cea53)_0x54065b[_0xcac6ee(0x1b6)+_0xcac6ee(0x292)+'n']=digestAuth(_0x35df17,_0x4cea53,_0x225c18,'GET',_0x30492f,_0x1695cf++);else _0x4cea53&&(_0x54065b[_0xcac6ee(0x1b6)+_0xcac6ee(0x292)+'n']=_0xcac6ee(0x1e7)+Buffer[_0xcac6ee(0x177)](_0x4cea53+':'+_0x225c18)[_0xcac6ee(0x1b0)+'ng'](_0xcac6ee(0x2e9)));return _0x54065b;},_0x33ca6a=_0x17ba27=>{const _0x53917b=_0x4c88d7,_0x2db5c0=_0x156239['reques'+'t']({'protocol':_0x30f54b[_0x53917b(0x26f)+'ol'],'hostname':_0x30f54b[_0x53917b(0x2fb)+'me'],'port':_0x30f54b[_0x53917b(0x271)]||(_0x39e0a7?0x1bb:0x50),'path':_0x30f54b[_0x53917b(0x1ec)+'me']+_0x30f54b['search'],'method':_0x53917b(0x24c),'headers':_0x1a680f(_0x17ba27),'timeout':_0x5934ae,'rejectUnauthorized':![],'agent':![]},_0x5be938=>{const _0x1f30f9=_0x53917b;if(_0x5be938[_0x1f30f9(0x32e)+_0x1f30f9(0x2cc)]===0x191&&!_0x17ba27){const _0x4dd4ac=_0x5be938['header'+'s'][_0x1f30f9(0x362)+_0x1f30f9(0x372)+_0x1f30f9(0x1bf)],_0x1028ca=parseChallenge(Array['isArra'+'y'](_0x4dd4ac)?_0x4dd4ac[0x0]:_0x4dd4ac||'');_0x5be938['resume'](),_0x33ca6a(_0x1028ca);return;}if((_0x5be938[_0x1f30f9(0x32e)+_0x1f30f9(0x2cc)]||0x0)>=0x190){_0x5be938[_0x1f30f9(0x207)](),_0x3f767d(new Error(_0x1f30f9(0x2b1)+_0x5be938[_0x1f30f9(0x32e)+'Code']));return;}_0x3f767d(null,{'req':_0x2db5c0,'res':_0x5be938,'contentType':String(_0x5be938[_0x1f30f9(0x2ea)+'s'][_0x1f30f9(0x307)+_0x1f30f9(0x2d3)]||'')});});_0x2db5c0['on'](_0x53917b(0x1d4)+'t',()=>{const _0x54ca75=_0x53917b;_0x2db5c0[_0x54ca75(0x2e6)+'y'](),_0x3f767d(new Error(_0x54ca75(0x1d4)+'t'));}),_0x2db5c0['on']('error',_0x49b399=>_0x3f767d(_0x49b399)),_0x2db5c0[_0x53917b(0x1f4)]();};try{_0x33ca6a(null);}catch(_0x517a49){_0x3f767d(_0x517a49);}});}function peekAndClose(_0x1784be,_0x9b8ad7=0x2bc){return new Promise(_0x53b264=>{const _0x1e8103=_0x2a7a,_0x3c4860=[];let _0x5af462=![];const _0x48505a=()=>{const _0x418f33=_0x2a7a;if(_0x5af462)return;_0x5af462=!![];try{_0x1784be[_0x418f33(0x1f1)][_0x418f33(0x2e6)+'y']();}catch{}try{_0x1784be[_0x418f33(0x176)][_0x418f33(0x2e6)+'y']();}catch{}_0x53b264({'contentType':_0x1784be['conten'+_0x418f33(0x17f)],'peek':Buffer[_0x418f33(0x27b)](_0x3c4860)['toStri'+'ng']('latin1')});};_0x1784be['res']['on'](_0x1e8103(0x334),_0x1338de=>{const _0x4117dc=_0x1e8103;_0x3c4860[_0x4117dc(0x1bd)](_0x1338de);if(Buffer['concat'](_0x3c4860)[_0x4117dc(0x353)]>=0xf0)_0x48505a();}),_0x1784be['res']['on'](_0x1e8103(0x1f4),_0x48505a),_0x1784be[_0x1e8103(0x176)]['on'](_0x1e8103(0x2be),_0x48505a),setTimeout(_0x48505a,_0x9b8ad7);});}async function findNativeLive({hostname:_0x1eb684,port:_0xbd9228,username:_0x19a179,password:_0x170b43,manufacturer:_0xc3df71,snapshotUri:_0x135b6e,profileToken:_0x2acf15}){const _0x2e365e=_0x3c5cfb,_0x3f9d16=liveCandidates({'hostname':_0x1eb684,'port':_0xbd9228,'username':_0x19a179,'password':_0x170b43,'manufacturer':_0xc3df71,'snapshotUri':_0x135b6e});if(currentCam)try{const _0x3630c6=await currentCam[_0x2e365e(0x1c1)+_0x2e365e(0x301)]({'protocol':_0x2e365e(0x29e),'profileToken':_0x2acf15}),_0x409b96=mediaUriOf(_0x3630c6);if(/^https?:/i[_0x2e365e(0x2bb)](_0x409b96)&&!/onvif/i['test'](_0x409b96))_0x3f9d16[_0x2e365e(0x323)+'t'](_0x409b96);}catch{}_0x3f9d16[_0x2e365e(0x217)](0x8);let _0x9b80d0='';const _0x1d12b6=[],_0x2aeb77=0x2;let _0xb2cd4=0x0;const _0xb141e6=async()=>{const _0x37fce3=_0x2e365e;while(_0xb2cd4<_0x3f9d16[_0x37fce3(0x353)]&&!_0x9b80d0){const _0x50f47a=_0x3f9d16[_0xb2cd4++];try{const _0x12833d=await openCameraHttp(_0x50f47a,_0x19a179,_0x170b43,0x640),_0x4c205d=await peekAndClose(_0x12833d);!_0x9b80d0&&isLiveMjpeg(_0x4c205d[_0x37fce3(0x307)+_0x37fce3(0x17f)],_0x4c205d[_0x37fce3(0x329)])&&(_0x9b80d0=_0x50f47a,console[_0x37fce3(0x2e5)](_0x37fce3(0x238)+_0x37fce3(0x2e0)+_0x37fce3(0x1df)+_0x37fce3(0x1d8),_0x50f47a));}catch{}}};for(let _0x5e723e=0x0;_0x5e723e<_0x2aeb77;_0x5e723e++)_0x1d12b6['push'](_0xb141e6());return await Promise[_0x2e365e(0x2cb)](_0x1d12b6),_0x9b80d0;}const SNAPSHOT_MAX_BYTES=0x2bc*0x400;export function extractFirstJpeg(_0x1e339f){const _0x4160a4=_0x3c5cfb;if(!_0x1e339f||_0x1e339f['length']<0x4)return null;const _0x5cfa2e=_0x1e339f[_0x4160a4(0x2d9)+'f'](Buffer['from']([0xff,0xd8]));if(_0x5cfa2e<0x0)return null;const _0x28fdc4=_0x1e339f[_0x4160a4(0x2d9)+'f'](Buffer[_0x4160a4(0x177)]([0xff,0xd9]),_0x5cfa2e+0x2);if(_0x28fdc4<0x0)return null;return Buffer['from'](_0x1e339f['subarr'+'ay'](_0x5cfa2e,_0x28fdc4+0x2));}function requestOnce(_0xbf4497,_0x49278c,_0x15e93b=SNAPSHOT_HARD_TIMEOUT_MS){const _0x59252f=Math['max'](0x190,Number(_0x15e93b)||SNAPSHOT_HARD_TIMEOUT_MS);return new Promise((_0x324e85,_0x18505d)=>{const _0x2a929b=_0x2a7a;let _0x27e177=![],_0x36b5ad,_0x5aeba8;const _0x15b27c=(_0x5e3f30,_0x49410b)=>{const _0x9c6199=_0x2a7a;if(_0x27e177)return;_0x27e177=!![],clearTimeout(_0x5aeba8);try{_0x36b5ad?.[_0x9c6199(0x2e6)+'y']();}catch{}if(_0x5e3f30)_0x18505d(_0x5e3f30);else _0x324e85(_0x49410b);},_0x7ff3fb=_0xbf4497[_0x2a929b(0x26f)+'ol']==='https:',_0x4ce987=_0x7ff3fb?_0x49bb44:_0x5214c0;_0x36b5ad=_0x4ce987[_0x2a929b(0x25d)+'t']({'protocol':_0xbf4497['protoc'+'ol'],'hostname':_0xbf4497[_0x2a929b(0x2fb)+'me'],'port':_0xbf4497[_0x2a929b(0x271)]||(_0x7ff3fb?0x1bb:0x50),'path':_0xbf4497[_0x2a929b(0x1ec)+'me']+_0xbf4497[_0x2a929b(0x333)],'method':_0x2a929b(0x24c),'headers':_0x49278c,'timeout':_0x59252f,'agent':_0x7ff3fb?httpsAgent:httpAgent,'rejectUnauthorized':![]},_0x2a1973=>{const _0x11c031=_0x2a929b,_0x5b7f4d=[];let _0x35af92=0x0;const _0x28614a=_0x3881b=>{const _0x2e3fca=_0x2a7a,_0x23a205=Buffer[_0x2e3fca(0x27b)](_0x5b7f4d),_0x1134ca=extractFirstJpeg(_0x23a205);if(_0x1134ca)return _0x15b27c(null,{'status':_0x2a1973[_0x2e3fca(0x32e)+'Code']||0x0,'headers':_0x2a1973['header'+'s'],'body':_0x1134ca}),!![];if(_0x3881b)return _0x15b27c(null,{'status':_0x2a1973[_0x2e3fca(0x32e)+_0x2e3fca(0x2cc)]||0x0,'headers':_0x2a1973[_0x2e3fca(0x2ea)+'s'],'body':_0x23a205}),!![];return![];};_0x2a1973['on'](_0x11c031(0x334),_0x3c0439=>{const _0x5b906e=_0x11c031;_0x5b7f4d[_0x5b906e(0x1bd)](_0x3c0439),_0x35af92+=_0x3c0439[_0x5b906e(0x353)];if(_0x28614a(![]))return;_0x35af92>SNAPSHOT_MAX_BYTES&&_0x15b27c(new Error(_0x5b906e(0x26d)));}),_0x2a1973['on'](_0x11c031(0x1f4),()=>{if(!_0x27e177)_0x28614a(!![]);});}),_0x5aeba8=setTimeout(()=>_0x15b27c(new Error(_0x2a929b(0x325))),_0x59252f),_0x36b5ad['on']('timeou'+'t',()=>_0x15b27c(new Error(_0x2a929b(0x325)))),_0x36b5ad['on'](_0x2a929b(0x2be),_0x167f5e=>_0x15b27c(_0x167f5e)),_0x36b5ad[_0x2a929b(0x1f4)]();});}function authHeaders(_0xab9f75,_0x2825cc,_0xee7e84){const _0x23a1da=_0x3c5cfb,_0x43ca6f=_0xab9f75[_0x23a1da(0x1ec)+'me']+_0xab9f75[_0x23a1da(0x333)];if(digestState[_0x23a1da(0x263)+_0x23a1da(0x316)]?.[_0x23a1da(0x34c)]===_0x23a1da(0x337)&&_0x2825cc)return{'Authorization':digestHeader(digestState[_0x23a1da(0x263)+'nge'],_0x2825cc,_0xee7e84,_0x23a1da(0x24c),_0x43ca6f)};if(_0x2825cc)return{'Authorization':_0x23a1da(0x1e7)+Buffer[_0x23a1da(0x177)](_0x2825cc+':'+_0xee7e84)['toStri'+'ng'](_0x23a1da(0x2e9))};return{};}async function fetchAuthImage(_0x206c92,_0x1c8cae,_0x187f6c,_0x16cb06=0x0,_0x14c16a=SNAPSHOT_HARD_TIMEOUT_MS){const _0x3924c6=_0x3c5cfb;if(_0x16cb06>0x3)throw new Error(_0x3924c6(0x294)+'过多');const _0x6f5219=new URL(_0x206c92),_0x5ac3d2=decodeURIComponent(_0x6f5219[_0x3924c6(0x255)+'me']||_0x1c8cae||''),_0x35366e=decodeURIComponent(_0x6f5219[_0x3924c6(0x32c)+'rd']||_0x187f6c||'');_0x6f5219[_0x3924c6(0x255)+'me']='',_0x6f5219[_0x3924c6(0x32c)+'rd']='';const _0x225e75=_0x6f5219[_0x3924c6(0x1ec)+'me']+_0x6f5219[_0x3924c6(0x333)];let _0x5b2b07=await requestOnce(_0x6f5219,authHeaders(_0x6f5219,_0x5ac3d2,_0x35366e),_0x14c16a);if(_0x5b2b07['status']===0x191){const _0x2df617=_0x5b2b07[_0x3924c6(0x2ea)+'s'][_0x3924c6(0x362)+_0x3924c6(0x372)+_0x3924c6(0x1bf)]||'';digestState[_0x3924c6(0x263)+_0x3924c6(0x316)]=parseChallenge(Array['isArra'+'y'](_0x2df617)?_0x2df617[0x0]:_0x2df617),digestState['nc']=0x1;const _0xbae650={};if(digestState[_0x3924c6(0x263)+_0x3924c6(0x316)]['scheme']===_0x3924c6(0x337)&&_0x5ac3d2)_0xbae650['Author'+_0x3924c6(0x292)+'n']=digestHeader(digestState[_0x3924c6(0x263)+_0x3924c6(0x316)],_0x5ac3d2,_0x35366e,_0x3924c6(0x24c),_0x225e75);else _0x5ac3d2&&(_0xbae650[_0x3924c6(0x1b6)+_0x3924c6(0x292)+'n']=_0x3924c6(0x1e7)+Buffer[_0x3924c6(0x177)](_0x5ac3d2+':'+_0x35366e)['toStri'+'ng'](_0x3924c6(0x2e9)));_0x5b2b07=await requestOnce(_0x6f5219,_0xbae650,_0x14c16a);}if(_0x5b2b07['status']>=0x12c&&_0x5b2b07[_0x3924c6(0x32e)]<0x190&&_0x5b2b07[_0x3924c6(0x2ea)+'s'][_0x3924c6(0x346)+'on'])return fetchAuthImage(new URL(_0x5b2b07[_0x3924c6(0x2ea)+'s'][_0x3924c6(0x346)+'on'],_0x6f5219)[_0x3924c6(0x20b)],_0x5ac3d2,_0x35366e,_0x16cb06+0x1,_0x14c16a);if(_0x5b2b07[_0x3924c6(0x32e)]>=0x190)throw new Error(_0x5b2b07[_0x3924c6(0x32e)]===0x191?_0x3924c6(0x326)+'密码':_0x3924c6(0x288)+_0x5b2b07[_0x3924c6(0x32e)]+')');const _0x13fc97=String(_0x5b2b07[_0x3924c6(0x2ea)+'s'][_0x3924c6(0x307)+_0x3924c6(0x2d3)]||'');if(_0x13fc97[_0x3924c6(0x21f)+'es'](_0x3924c6(0x1a7))||_0x13fc97[_0x3924c6(0x21f)+'es'](_0x3924c6(0x34d)))throw new Error(_0x3924c6(0x18c)+_0x3924c6(0x289));return _0x5b2b07['body'];}function withSnapshotLock(_0x482b2c){const _0x407dee=_0x3c5cfb,_0x6ea29=snapshotTail['then'](_0x482b2c,_0x482b2c);return snapshotTail=_0x6ea29[_0x407dee(0x1ac)](()=>{}),_0x6ea29;}async function waitForPtzIdle(_0x1fea29=0xfa0){const _0x445f1a=_0x3c5cfb;if(!ptzBusy)return;const _0x43a397=Date[_0x445f1a(0x20c)]();while(ptzBusy&&Date['now']()-_0x43a397<_0x1fea29){await new Promise(_0x3b4dd3=>setTimeout(_0x3b4dd3,0x28));}if(ptzBusy)return;await new Promise(_0x561ca6=>setTimeout(_0x561ca6,0x190));}export async function waitCameraReachable({timeoutMs:timeoutMs=0x640,intervalMs:intervalMs=0xdc}={}){const _0x576e81=_0x3c5cfb,_0x25040e=String(state['hostna'+'me']||'')[_0x576e81(0x35a)]();if(!_0x25040e)return{'http':![],'rtsp':![]};const _0xc78a5f=Number(state[_0x576e81(0x271)])||0x50,_0xfb3d28=rtspPortOf(state[_0x576e81(0x1d1)+'i']),_0x18749b=Date['now']()+Math[_0x576e81(0x175)](0x0,Number(timeoutMs)||0x0);do{const _0x5090cd=Math[_0x576e81(0x175)](0x50,_0x18749b-Date['now']()),_0xd3f1f=Math[_0x576e81(0x2da)](RTSP_TCP_PROBE_MS,_0x5090cd),[_0x224c85,_0x200ca0]=await Promise['all']([probeTcp(_0x25040e,_0xc78a5f,_0xd3f1f),state['rtspUr'+'i']?probeTcp(_0x25040e,_0xfb3d28,_0xd3f1f):Promise['resolv'+'e'](![])]);if(_0x224c85||_0x200ca0)return{'http':_0x224c85,'rtsp':_0x200ca0};const _0x206205=Math[_0x576e81(0x2da)](intervalMs,Math['max'](0x0,_0x18749b-Date[_0x576e81(0x20c)]()));if(_0x206205<=0x0)break;await new Promise(_0x11fc0a=>setTimeout(_0x11fc0a,_0x206205));}while(Date[_0x576e81(0x20c)]()<_0x18749b);return{'http':![],'rtsp':![]};}function ffmpegRtspInputArgs(_0x5334fe,{hevc:hevc=![],oneshot:oneshot=![]}={}){const _0x29e63f=_0x3c5cfb,_0x4b0ebb=oneshot?hevc?_0x29e63f(0x364):_0x29e63f(0x18f):hevc?_0x29e63f(0x18b)+'0':_0x29e63f(0x36d),_0xbf8055=oneshot?hevc?_0x29e63f(0x364):'300000':hevc?_0x29e63f(0x18b)+'0':_0x29e63f(0x36d);return[_0x29e63f(0x27f)+_0x29e63f(0x282),_0x29e63f(0x225)+_0x29e63f(0x290),oneshot?_0x29e63f(0x2be):'warnin'+'g',_0x29e63f(0x197)+_0x29e63f(0x308)+'ort',_0x29e63f(0x327),_0x29e63f(0x2c6)+'ut',String(oneshot?FFMPEG_ONESHOT_TIMEOUT_US:FFMPEG_LIVE_TIMEOUT_US),_0x29e63f(0x2f7)+'s',oneshot?_0x29e63f(0x335)+_0x29e63f(0x33f)+_0x29e63f(0x2a4):_0x29e63f(0x1c3),_0x29e63f(0x1e5)+'size',_0x4b0ebb,_0x29e63f(0x17e)+'zedura'+_0x29e63f(0x252),_0xbf8055,...oneshot?[]:[_0x29e63f(0x26b)+'ds','1'],'-i',_0x5334fe,_0x29e63f(0x2cd)];}async function captureFrameFromRtspOnce(_0x514509={}){const _0x3da92a=_0x3c5cfb;if(!state[_0x3da92a(0x1d1)+'i'])throw new Error(_0x3da92a(0x315)+_0x3da92a(0x1ca));const _0x4de7ed=Math[_0x3da92a(0x175)](0x320,Number(_0x514509['timeou'+_0x3da92a(0x1e2)])||RTSP_FRAME_TIMEOUT_MS),_0x50428b=await ensureFfmpeg(),_0x1911cd=injectRtspAuth(state['rtspUr'+'i'],state[_0x3da92a(0x255)+'me'],state['passwo'+'rd']),_0x1f9111=/hevc|h265/['test'](state[_0x3da92a(0x32a)+'ng']);return new Promise((_0x38b22f,_0x4476cf)=>{const _0x6a444b=_0x3da92a,_0xc55f5=[...ffmpegRtspInputArgs(_0x1911cd,{'hevc':_0x1f9111,'oneshot':!![]}),_0x6a444b(0x231)+_0x6a444b(0x348),'1','-q:v','2','-f',_0x6a444b(0x2eb),_0x6a444b(0x298)],_0x420e7e=spawn(_0x50428b,_0xc55f5,{'stdio':[_0x6a444b(0x1c8),'pipe',_0x6a444b(0x21d)]}),_0x25f399=[];let _0x351935='',_0x47b10b=![];_0x420e7e[_0x6a444b(0x1c2)]['on']('data',_0xdef733=>_0x25f399[_0x6a444b(0x1bd)](_0xdef733)),_0x420e7e[_0x6a444b(0x2dd)]['on'](_0x6a444b(0x334),_0xffd2a9=>{_0x351935+=String(_0xffd2a9||'');});const _0x4f273f=(_0x63113a,_0x7d07a4)=>{const _0x510ee8=_0x6a444b;if(_0x47b10b)return;_0x47b10b=!![],clearTimeout(_0x395c0a),ffmpegProcs[_0x510ee8(0x209)](_0x420e7e);if(_0x63113a)_0x4476cf(_0x63113a);else _0x38b22f(_0x7d07a4);},_0x395c0a=setTimeout(()=>{const _0x303b6e=_0x6a444b;try{_0x420e7e[_0x303b6e(0x358)](_0x303b6e(0x251)+'L');}catch{}_0x4f273f(new Error(_0x303b6e(0x344)+'超时'));},_0x4de7ed);ffmpegProcs[_0x6a444b(0x2dc)](_0x420e7e),_0x420e7e['on'](_0x6a444b(0x354),_0x55fbf7=>{const _0x1ff811=_0x6a444b,_0x27b236=Buffer[_0x1ff811(0x27b)](_0x25f399);if(_0x55fbf7===0x0&&_0x27b236[_0x1ff811(0x353)]>0x64){_0x4f273f(null,_0x27b236);return;}_0x4f273f(new Error(_0x351935[_0x1ff811(0x35a)]()||_0x1ff811(0x344)+_0x1ff811(0x2d1)+_0x55fbf7+')'));}),_0x420e7e['on'](_0x6a444b(0x2be),_0x5bcc02=>_0x4f273f(_0x5bcc02));});}async function captureFrameFromRtsp(_0x5b2690={}){return captureFrameFromRtspOnce(_0x5b2690);}export async function holdPreviewForCapture(){const _0x43bb26=_0x3c5cfb;previewHoldDepth+=0x1;const _0x4b2fcb=sharedTranscode;if(previewHoldDepth>0x1)return{'transcode':_0x4b2fcb,'held':![]};suppressFfmpegRestart=!![],clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=null;if(!sharedFfmpeg||sharedFfmpeg['killed'])return{'transcode':_0x4b2fcb,'held':![]};return console[_0x43bb26(0x2e5)](_0x43bb26(0x238)+_0x43bb26(0x291)+_0x43bb26(0x1fd)+_0x43bb26(0x28b)+_0x43bb26(0x233)+_0x43bb26(0x2e1)),killSharedFfmpeg(),await new Promise(_0xc47281=>setTimeout(_0xc47281,0x50)),{'transcode':_0x4b2fcb,'held':!![]};}export async function releasePreviewAfterCapture(_0x4c8681){const _0x29c4d3=_0x3c5cfb;if(!_0x4c8681||previewHoldDepth<=0x0)return;previewHoldDepth-=0x1;if(previewHoldDepth>0x0)return;suppressFfmpegRestart=![],state[_0x29c4d3(0x324)+_0x29c4d3(0x202)]&&state[_0x29c4d3(0x1d1)+'i']&&streamClients['size']>0x0&&(ffmpegNeedProbe=![],await ensureSharedFfmpeg(_0x4c8681[_0x29c4d3(0x331)+_0x29c4d3(0x19e)]));}async function getSnapshotFromOnvif(_0x3fd016={}){const _0x3cdabe=_0x3c5cfb,_0x4cdad8=Math['max'](0x190,Number(_0x3fd016[_0x3cdabe(0x1d4)+_0x3cdabe(0x1e2)])||SNAPSHOT_HARD_TIMEOUT_MS),_0x1087ef=async()=>{const _0x1b3f19=_0x3cdabe,_0x48978d=await currentCam[_0x1b3f19(0x1f6)+_0x1b3f19(0x1e6)+'ri']({});state[_0x1b3f19(0x31a)+_0x1b3f19(0x1ae)]=(typeof _0x48978d===_0x1b3f19(0x1e4)?_0x48978d:_0x48978d?.[_0x1b3f19(0x224)]||'')[_0x1b3f19(0x19c)+'e'](/&/g,'&');if(!state[_0x1b3f19(0x31a)+_0x1b3f19(0x1ae)])throw new Error('这台摄像头没'+_0x1b3f19(0x313)+'址');};!state['snapsh'+_0x3cdabe(0x1ae)]&&await _0x1087ef();try{return await fetchAuthImage(state[_0x3cdabe(0x31a)+'otUri'],state[_0x3cdabe(0x255)+'me'],state[_0x3cdabe(0x32c)+'rd'],0x0,_0x4cdad8);}catch(_0x3d6c89){if(!shouldRefreshSnapshotUri(_0x3d6c89))throw _0x3d6c89;return await _0x1087ef(),fetchAuthImage(state[_0x3cdabe(0x31a)+_0x3cdabe(0x1ae)],state[_0x3cdabe(0x255)+'me'],state[_0x3cdabe(0x32c)+'rd'],0x0,_0x4cdad8);}}export async function getSnapshot(_0x33c706={}){const _0x130cd0=_0x3c5cfb;if(state[_0x130cd0(0x187)]===_0x130cd0(0x2f0)+'d')return getOnboardSnapshot();if(!currentCam||!state['connec'+_0x130cd0(0x202)])throw new Error(_0x130cd0(0x340)+'像头');const _0x1933fc=_0x33c706[_0x130cd0(0x187)]===_0x130cd0(0x1bc),_0x39815d=_0x33c706[_0x130cd0(0x1bb)+_0x130cd0(0x277)+'old']===!![],_0x527c1a=Number(_0x33c706[_0x130cd0(0x17b)+'Ms'])>0x0?Number(_0x33c706[_0x130cd0(0x17b)+'Ms']):0x0,_0x31734f=_0x527c1a?Date['now']()+_0x527c1a:0x0,_0x2f6b54=()=>_0x31734f?Math['max'](0x0,_0x31734f-Date[_0x130cd0(0x20c)]()):0x7530;let _0x1ac5cf=null;!_0x39815d&&state[_0x130cd0(0x1d1)+'i']&&(_0x1ac5cf=await holdPreviewForCapture());try{if(_0x527c1a){const _0x36031e=Math['min'](0x640,Math[_0x130cd0(0x175)](0x0,_0x2f6b54()-0x384)),_0x447aa9=_0x36031e>0x50?await waitCameraReachable({'timeoutMs':_0x36031e}):{'http':![],'rtsp':![]};if(!_0x447aa9[_0x130cd0(0x1a4)]&&!_0x447aa9[_0x130cd0(0x256)]&&_0x2f6b54()<0x384)throw new Error(_0x130cd0(0x249)+'线');}return await withSnapshotLock(async()=>{const _0x18e230=_0x130cd0;await waitForPtzIdle(Math[_0x18e230(0x2da)](0x320,_0x2f6b54()));const _0x28bdab=Math[_0x18e230(0x2da)](_0x1933fc?SNAPSHOT_FAST_TIMEOUT_MS:SNAPSHOT_HARD_TIMEOUT_MS,Math[_0x18e230(0x175)](0x258,_0x2f6b54()-0xc8)),_0x357a25=()=>getSnapshotFromOnvif({'timeoutMs':_0x28bdab}),_0x3ba5bb=()=>captureFrameFromRtspOnce({'timeoutMs':Math[_0x18e230(0x2da)](RTSP_FRAME_TIMEOUT_MS,Math[_0x18e230(0x175)](0x320,_0x2f6b54()-0x64))});if(_0x1933fc)try{const _0x2cc359=await _0x357a25();return console[_0x18e230(0x2e5)](_0x18e230(0x238)+_0x18e230(0x352)+_0x18e230(0x191)+'pshot',_0x2cc359[_0x18e230(0x353)]),_0x2cc359;}catch(_0x1491bb){console['warn'](_0x18e230(0x238)+_0x18e230(0x352)+_0x18e230(0x191)+_0x18e230(0x261),_0x1491bb?.[_0x18e230(0x2a1)+'e']||_0x1491bb);if(!state[_0x18e230(0x1d1)+'i']||_0x2f6b54()<0x384)throw _0x1491bb;const _0x38bc8e=await _0x3ba5bb();return console[_0x18e230(0x2e5)](_0x18e230(0x238)+_0x18e230(0x190)+_0x18e230(0x283)+_0x18e230(0x2c8)+_0x18e230(0x330),_0x38bc8e[_0x18e230(0x353)]),_0x38bc8e;}if(state[_0x18e230(0x1d1)+'i']){let _0x392c3a=null;const _0x59f833=_0x2f6b54()<0x9c4?0x1:0x2;for(let _0x202bdd=0x0;_0x202bdd<_0x59f833;_0x202bdd++){try{const _0x12e975=await _0x3ba5bb();return console[_0x18e230(0x2e5)](_0x18e230(0x238)+_0x18e230(0x190)+_0x18e230(0x283)+'e',_0x12e975[_0x18e230(0x353)],_0x202bdd>0x0?_0x18e230(0x19f)+_0x202bdd:''),_0x12e975;}catch(_0x5351e0){_0x392c3a=_0x5351e0,console[_0x18e230(0x223)](_0x18e230(0x238)+'a]\x20rts'+_0x18e230(0x283)+_0x18e230(0x25f)+'mpt',_0x202bdd+0x1,_0x5351e0?.[_0x18e230(0x2a1)+'e']||_0x5351e0),_0x202bdd<_0x59f833-0x1&&_0x2f6b54()>0x384&&await new Promise(_0x52c503=>setTimeout(_0x52c503,0xc8));}}console[_0x18e230(0x223)](_0x18e230(0x238)+'a]\x20rts'+'p\x20fram'+_0x18e230(0x2c8)+_0x18e230(0x1d5)+_0x18e230(0x1f3),_0x392c3a?.[_0x18e230(0x2a1)+'e']||_0x392c3a);}return _0x357a25();});}finally{!_0x39815d&&await releasePreviewAfterCapture(_0x1ac5cf);}}async function ptzOnvifNudge(_0xbeb49){const _0x49bf39=_0x3c5cfb,_0x25f733=onvifVectorForAction(_0xbeb49);if(!_0x25f733)throw new Error(_0x49bf39(0x33e)+'方向');if(!state[_0x49bf39(0x302)])throw new Error('这台摄像头没'+_0x49bf39(0x1ee)+_0x49bf39(0x2db)+'未开放\x20PT'+'Z');ptzBusy&&await waitForPtzIdle();const _0x2e4942=async _0x2fd82a=>{const _0x5c1633=_0x49bf39;if(!_0x2fd82a)throw new Error(_0x5c1633(0x340)+'像头');const _0x4287a0={'x':_0x25f733['x']||0x0,'y':_0x25f733['y']||0x0,'timeout':ONVIF_NUDGE_MS};return _0x25f733[_0x5c1633(0x203)]?(_0x4287a0[_0x5c1633(0x203)]=_0x25f733[_0x5c1633(0x203)],_0x4287a0[_0x5c1633(0x2df)+'ndZoom']=!![]):_0x4287a0[_0x5c1633(0x2df)+'ndPanT'+_0x5c1633(0x17d)]=!![],await _0x2fd82a[_0x5c1633(0x1ce)+_0x5c1633(0x2b6)+'ve'](_0x4287a0),await _0x2fd82a['stop']({'panTilt':!![],'zoom':!![]}),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x2e4942(currentCam);}catch(_0x2ffdbd){if(!isNetworkError(_0x2ffdbd))throw new Error(cameraError(_0x2ffdbd,_0x49bf39(0x2f5)));const _0x3a42b7=await refreshOnvif();return await _0x2e4942(_0x3a42b7);}}catch(_0x595c9c){throw new Error(cameraError(_0x595c9c,_0x49bf39(0x2f5)));}finally{ptzBusy=![];}}function _0x2a7a(_0x4acb51,_0x601955){_0x4acb51=_0x4acb51-0x175;const _0x535d55=_0x535d();let _0x2a7ac0=_0x535d55[_0x4acb51];if(_0x2a7a['OzspyA']===undefined){var _0x553550=function(_0x1de762){const _0x28d8ad='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3ace31='',_0x5214c0='';for(let _0x49bb44=0x0,_0x4a1312,_0x467b8d,_0x4a0200=0x0;_0x467b8d=_0x1de762['charAt'](_0x4a0200++);~_0x467b8d&&(_0x4a1312=_0x49bb44%0x4?_0x4a1312*0x40+_0x467b8d:_0x467b8d,_0x49bb44++%0x4)?_0x3ace31+=String['fromCharCode'](0xff&_0x4a1312>>(-0x2*_0x49bb44&0x6)):0x0){_0x467b8d=_0x28d8ad['indexOf'](_0x467b8d);}for(let _0x5b97fc=0x0,_0xaa0dc8=_0x3ace31['length'];_0x5b97fc<_0xaa0dc8;_0x5b97fc++){_0x5214c0+='%'+('00'+_0x3ace31['charCodeAt'](_0x5b97fc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5214c0);};_0x2a7a['PjtXlV']=_0x553550,_0x2a7a['evuINg']={},_0x2a7a['OzspyA']=!![];}const _0xe98120=_0x535d55[0x0],_0x1ad336=_0x4acb51+_0xe98120,_0x3c7abd=_0x2a7a['evuINg'][_0x1ad336];return!_0x3c7abd?(_0x2a7ac0=_0x2a7a['PjtXlV'](_0x2a7ac0),_0x2a7a['evuINg'][_0x1ad336]=_0x2a7ac0):_0x2a7ac0=_0x3c7abd,_0x2a7ac0;}export async function ptzMove(_0x21c593,_0x13e0fe={}){const _0x41a84a=_0x3c5cfb;if(gimbalAvailable()&&state[_0x41a84a(0x187)]!==_0x41a84a(0x1bc))return ptzOnboard(_0x21c593,_0x13e0fe);if(!state['connec'+_0x41a84a(0x202)])throw new Error(_0x41a84a(0x340)+'像头');const _0x1fd364=String(_0x13e0fe[_0x41a84a(0x21e)]||''),_0x19b8ff=String(_0x21c593||''),_0x518a0c=_0x19b8ff[_0x41a84a(0x281)+_0x41a84a(0x27a)](_0x41a84a(0x1dc))?_0x19b8ff['slice'](0x6):_0x19b8ff;if(_0x1fd364===_0x41a84a(0x2f6)||_0x19b8ff[_0x41a84a(0x281)+_0x41a84a(0x27a)](_0x41a84a(0x1dc)))return ptzOnvifNudge(_0x518a0c);if(_0x21c593!==_0x41a84a(0x24d)&&ptzBusy)return{'ok':!![]};while(_0x21c593===_0x41a84a(0x24d)&&ptzBusy){await new Promise(_0x3e03b3=>setTimeout(_0x3e03b3,0x28));}const _0xd2fbd7=async _0x276ebc=>{const _0x1fe54d=_0x41a84a;if(!_0x276ebc)throw new Error(_0x1fe54d(0x340)+'像头');if(_0x21c593===_0x1fe54d(0x24d))return await _0x276ebc[_0x1fe54d(0x24d)]({'panTilt':!![],'zoom':!![]}),{'ok':!![]};const _0x56688c=onvifVectorForAction(_0x21c593);if(!_0x56688c)throw new Error(_0x1fe54d(0x33e)+'方向');if(!state[_0x1fe54d(0x302)])throw new Error(_0x1fe54d(0x366)+'有云台,或\x20'+_0x1fe54d(0x2db)+_0x1fe54d(0x1a6)+'Z');const _0x5c26c9={'x':_0x56688c['x']||0x0,'y':_0x56688c['y']||0x0,'timeout':PTZ_TIMEOUT_MS};return _0x56688c[_0x1fe54d(0x203)]?(_0x5c26c9['zoom']=_0x56688c[_0x1fe54d(0x203)],_0x5c26c9['onlySe'+_0x1fe54d(0x193)]=!![]):_0x5c26c9[_0x1fe54d(0x2df)+_0x1fe54d(0x1d6)+_0x1fe54d(0x17d)]=!![],await _0x276ebc[_0x1fe54d(0x1ce)+_0x1fe54d(0x2b6)+'ve'](_0x5c26c9),{'ok':!![]};};ptzBusy=!![];try{try{return await _0xd2fbd7(currentCam);}catch(_0x397185){if(!isNetworkError(_0x397185))throw new Error(cameraError(_0x397185,_0x41a84a(0x2f5)));const _0x5b7689=await refreshOnvif();return await _0xd2fbd7(_0x5b7689);}}catch(_0x58a35d){throw new Error(cameraError(_0x58a35d,_0x41a84a(0x2f5)));}finally{ptzBusy=![];}}export async function ensureCameraConnected(_0x13d67a={}){const _0x826ed1=_0x3c5cfb;if(state[_0x826ed1(0x324)+'ted'])return publicState();if(_0x13d67a[_0x826ed1(0x187)]===_0x826ed1(0x2f0)+'d')throw new Error(_0x826ed1(0x1fe)+'支持');const _0x3ed4f1=String(_0x13d67a[_0x826ed1(0x2fb)+'me']||'')[_0x826ed1(0x35a)]();if(!_0x3ed4f1)throw new Error('请先在\x20MO'+'SS「视觉中'+_0x826ed1(0x351)+_0x826ed1(0x20a));return connectCamera({'hostname':_0x3ed4f1,'port':Number(_0x13d67a[_0x826ed1(0x271)]||0x50),'username':String(_0x13d67a[_0x826ed1(0x255)+'me']||'')[_0x826ed1(0x35a)](),'password':String(_0x13d67a[_0x826ed1(0x32c)+'rd']||''),'path':String(_0x13d67a[_0x826ed1(0x1ab)]||_0x826ed1(0x31d)+'/devic'+_0x826ed1(0x18e)+'ice')[_0x826ed1(0x35a)]()||_0x826ed1(0x31d)+_0x826ed1(0x1ed)+_0x826ed1(0x18e)+_0x826ed1(0x23a)});}export async function ptzContinuousMove(_0x308608,_0x41f69a,_0x9ecedc,_0x369b45=0x1){const _0x54f064=_0x3c5cfb;if(gimbalAvailable()&&state[_0x54f064(0x187)]!=='onvif'){const _0x3f1fe5=payloadForVector(_0x308608,_0x41f69a);if(!cameraHooks['publis'+'hGimba'+'l'])throw new Error('云台通道未就'+'绪');await cameraHooks['publis'+_0x54f064(0x2bd)+'l'](_0x3f1fe5);if(_0x3f1fe5[_0x54f064(0x182)]!=='stop'){const _0xa2eb64=Math[_0x54f064(0x175)](0x190,Math[_0x54f064(0x2da)](0xfa0,Math[_0x54f064(0x205)](Number(_0x369b45)||0x1)*0x3e8));setTimeout(()=>{const _0x3c257c=_0x54f064;cameraHooks[_0x3c257c(0x2aa)+_0x3c257c(0x2bd)+'l']?.({'action':_0x3c257c(0x24d)})[_0x3c257c(0x1ac)](()=>{});},_0xa2eb64);}return{'ok':!![]};}if(!state[_0x54f064(0x324)+_0x54f064(0x202)])throw new Error(_0x54f064(0x340)+'像头');const _0x216baf=clampPtzSpeed(_0x308608),_0x30ec02=clampPtzSpeed(_0x41f69a),_0x2f9373=clampPtzSpeed(_0x9ecedc),_0x5e2783=Math[_0x54f064(0x175)](0x3e8,Math[_0x54f064(0x2da)](0x2710,Math[_0x54f064(0x205)](Number(_0x369b45)||0x1)*0x3e8));if(ptzBusy)return{'ok':!![]};const _0x4f72a1=async _0x53f3a7=>{const _0x5e8414=_0x54f064;if(!_0x53f3a7)throw new Error(_0x5e8414(0x340)+'像头');if(!state['ptz']&&(_0x216baf||_0x30ec02||_0x2f9373))throw new Error(_0x5e8414(0x366)+_0x5e8414(0x1ee)+_0x5e8414(0x2db)+_0x5e8414(0x1a6)+'Z');const _0x140515={'x':_0x216baf,'y':_0x30ec02,'timeout':_0x5e2783};_0x2f9373&&(_0x140515['zoom']=_0x2f9373);if(_0x2f9373&&!_0x216baf&&!_0x30ec02)_0x140515['onlySe'+_0x5e8414(0x193)]=!![];else!_0x2f9373&&(_0x140515['onlySe'+_0x5e8414(0x1d6)+_0x5e8414(0x17d)]=!![]);return await _0x53f3a7[_0x5e8414(0x1ce)+_0x5e8414(0x2b6)+'ve'](_0x140515),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x4f72a1(currentCam);}catch(_0x361d51){if(!isNetworkError(_0x361d51))throw new Error(cameraError(_0x361d51,_0x54f064(0x2f5)));const _0x5e28d2=await refreshOnvif();return await _0x4f72a1(_0x5e28d2);}}catch(_0xedc0f5){throw new Error(cameraError(_0xedc0f5,_0x54f064(0x2f5)));}finally{ptzBusy=![];}}function bitstreamFilter(_0xc48f5b){const _0x4a9196=_0x3c5cfb;if(/hevc|h265/['test'](_0xc48f5b))return _0x4a9196(0x2e3)+_0x4a9196(0x2b3)+'nexb';if(/h264|avc/['test'](_0xc48f5b))return'h264_m'+_0x4a9196(0x2b3)+_0x4a9196(0x1b2);return'';}function shouldTranscode(_0x496027=![]){const _0x34e0b3=_0x3c5cfb;return _0x496027||/hevc|h265/[_0x34e0b3(0x2bb)](state[_0x34e0b3(0x32a)+'ng']);}function broadcastTs(_0x31d6cb){const _0x26a7e8=_0x3c5cfb;if(!_0x31d6cb?.[_0x26a7e8(0x353)])return;for(const _0x32c97f of streamClients){try{if(_0x32c97f[_0x26a7e8(0x179)+_0x26a7e8(0x318)+_0x26a7e8(0x303)])continue;_0x32c97f[_0x26a7e8(0x1b1)](_0x31d6cb);}catch{streamClients[_0x26a7e8(0x209)](_0x32c97f);}}}function killSharedFfmpeg(){const _0x5e8ec8=_0x3c5cfb;clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=null,ffmpegEpoch+=0x1;const _0x541feb=sharedFfmpeg;sharedFfmpeg=null;if(!_0x541feb)return;ffmpegProcs['delete'](_0x541feb);try{_0x541feb[_0x5e8ec8(0x1c2)]?.[_0x5e8ec8(0x2c9)+'AllLis'+_0x5e8ec8(0x229)](_0x5e8ec8(0x334)),_0x541feb[_0x5e8ec8(0x358)]('SIGKIL'+'L');}catch{}}function scheduleFfmpegRestart(_0x1d50ed){const _0x5936b7=_0x3c5cfb;if(suppressFfmpegRestart)return;if(!state[_0x5936b7(0x324)+_0x5936b7(0x202)]||!streamClients[_0x5936b7(0x1fc)])return;const {delayMs:_0x5d27c6,nextBackoffMs:_0x3aa156,probe:_0x4391da}=nextFfmpegRestartDelay({'gotData':_0x1d50ed,'backoffMs':ffmpegBackoffMs});ffmpegBackoffMs=_0x3aa156,ffmpegNeedProbe=_0x4391da,console[_0x5936b7(0x223)](_0x5936b7(0x347)+_0x5936b7(0x319)+_0x5936b7(0x28e)+'art\x20in',_0x5d27c6,'ms',_0x4391da?_0x5936b7(0x1f9):_0x5936b7(0x1d7)),clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=setTimeout(()=>{ffmpegRestartTimer=null,void resumeSharedFfmpeg();},_0x5d27c6);}async function resumeSharedFfmpeg(){const _0x46d4ea=_0x3c5cfb;if(suppressFfmpegRestart||!state['connec'+_0x46d4ea(0x202)]||!streamClients[_0x46d4ea(0x1fc)])return;if(ffmpegNeedProbe){const _0x54118f=await probeTcp(state[_0x46d4ea(0x2fb)+'me'],rtspPortOf(state['rtspUr'+'i']),RTSP_TCP_PROBE_MS);if(suppressFfmpegRestart||!state['connec'+_0x46d4ea(0x202)]||!streamClients[_0x46d4ea(0x1fc)])return;if(!_0x54118f){console[_0x46d4ea(0x223)](_0x46d4ea(0x347)+_0x46d4ea(0x2ef)+_0x46d4ea(0x206)+'ed',state[_0x46d4ea(0x2fb)+'me'],rtspPortOf(state[_0x46d4ea(0x1d1)+'i'])),scheduleFfmpegRestart(![]);return;}ffmpegNeedProbe=![];}await ensureSharedFfmpeg(sharedTranscode);}async function ensureSharedFfmpeg(_0x29e914){const _0x3de237=_0x3c5cfb,_0x4d115b=!!_0x29e914;if(sharedFfmpeg&&!sharedFfmpeg[_0x3de237(0x22b)]){if(sharedTranscode===_0x4d115b)return;console[_0x3de237(0x2e5)]('[ffmpe'+_0x3de237(0x221)+'tch',sharedTranscode?_0x3de237(0x204):'copy','->',_0x4d115b?'h264':_0x3de237(0x254)),killSharedFfmpeg();}const _0xebabff=++ffmpegEpoch;if(ffmpegNeedProbe){const _0x49e651=await probeTcp(state[_0x3de237(0x2fb)+'me'],rtspPortOf(state['rtspUr'+'i']),RTSP_TCP_PROBE_MS);if(_0xebabff!==ffmpegEpoch)return;if(!_0x49e651){console[_0x3de237(0x223)](_0x3de237(0x347)+_0x3de237(0x2d2)+_0x3de237(0x279)+_0x3de237(0x230)+_0x3de237(0x274)+'achabl'+'e'),scheduleFfmpegRestart(![]);return;}ffmpegNeedProbe=![];}let _0x4a249d;try{_0x4a249d=await ensureFfmpeg();}catch(_0x444028){console[_0x3de237(0x223)](_0x3de237(0x347)+'g]',_0x444028[_0x3de237(0x2a1)+'e']);return;}if(_0xebabff!==ffmpegEpoch)return;if(sharedFfmpeg&&!sharedFfmpeg[_0x3de237(0x22b)]){if(sharedTranscode===_0x4d115b)return;killSharedFfmpeg();}if(!state[_0x3de237(0x1d1)+'i']||!state[_0x3de237(0x324)+_0x3de237(0x202)])return;const _0x2396db=injectRtspAuth(state[_0x3de237(0x1d1)+'i'],state[_0x3de237(0x255)+'me'],state['passwo'+'rd']),_0x1fa501=/hevc|h265/[_0x3de237(0x2bb)](state[_0x3de237(0x32a)+'ng']),_0x1f8e69=ffmpegRtspInputArgs(_0x2396db,{'hevc':_0x1fa501,'oneshot':![]});if(_0x4d115b)_0x1f8e69[_0x3de237(0x1bd)](_0x3de237(0x285),'libx26'+'4',_0x3de237(0x1f7)+'t',_0x3de237(0x258)+_0x3de237(0x2b7),_0x3de237(0x1ff),_0x3de237(0x1c6)+_0x3de237(0x195),_0x3de237(0x29d)+_0x3de237(0x33b),_0x3de237(0x222)+'ne',_0x3de237(0x1af)+'mt',_0x3de237(0x22d)+'p',_0x3de237(0x31c),'0','-g','15',_0x3de237(0x1a3),_0x3de237(0x338)+_0x3de237(0x36f)+'ct_typ'+_0x3de237(0x31b)+_0x3de237(0x2d8)+_0x3de237(0x2fe)+_0x3de237(0x2f9)+_0x3de237(0x24b)+_0x3de237(0x262)+_0x3de237(0x184)+_0x3de237(0x342)+_0x3de237(0x1b8)+_0x3de237(0x2a0)+'960:-2');else{_0x1f8e69[_0x3de237(0x1bd)](_0x3de237(0x285),_0x3de237(0x254));const _0x406474=bitstreamFilter(state['encodi'+'ng']);if(_0x406474)_0x1f8e69[_0x3de237(0x1bd)](_0x3de237(0x304),_0x406474);}_0x1f8e69[_0x3de237(0x1bd)]('-f',_0x3de237(0x23c),_0x3de237(0x192)+_0x3de237(0x186),'0',_0x3de237(0x2b2)+_0x3de237(0x35d),'0',_0x3de237(0x185)+'_packe'+'ts','1',_0x3de237(0x298));if(_0xebabff!==ffmpegEpoch)return;sharedTranscode=_0x4d115b;const _0x1403f3=spawn(_0x4a249d,_0x1f8e69,{'stdio':[_0x3de237(0x1c8),_0x3de237(0x21d),_0x3de237(0x21d)]});sharedFfmpeg=_0x1403f3,ffmpegProcs['add'](_0x1403f3);let _0x3b742a=![];console[_0x3de237(0x2e5)](_0x3de237(0x347)+'g]',_0x4d115b?_0x3de237(0x331)+_0x3de237(0x199)+'64':_0x3de237(0x198)+(state[_0x3de237(0x32a)+'ng']||_0x3de237(0x2c4)+'n'),state[_0x3de237(0x2fb)+'me']),_0x1403f3[_0x3de237(0x1c2)]['on']('data',_0x256b4b=>{const _0x47d96d=_0x3de237;!_0x3b742a&&(_0x3b742a=!![],ffmpegNeedProbe=![],console[_0x47d96d(0x2e5)](_0x47d96d(0x347)+_0x47d96d(0x219)+_0x47d96d(0x2ab)+'es',_0x256b4b[_0x47d96d(0x353)])),ffmpegBackoffMs=FFMPEG_BACKOFF_MIN_MS,broadcastTs(_0x256b4b);}),_0x1403f3['stderr']['on'](_0x3de237(0x334),_0x21d8d1=>{const _0x222d7e=_0x3de237,_0x4c9054=String(_0x21d8d1||'')[_0x222d7e(0x35a)]();if(_0x4c9054)console[_0x222d7e(0x223)](_0x222d7e(0x347)+'g]',_0x4c9054);}),_0x1403f3['on'](_0x3de237(0x2be),_0x166916=>{const _0x415fa7=_0x3de237;console[_0x415fa7(0x223)](_0x415fa7(0x347)+_0x415fa7(0x257)+'wn',_0x166916[_0x415fa7(0x2a1)+'e']);}),_0x1403f3['on'](_0x3de237(0x373),_0x5d11b6=>{const _0x35b3c8=_0x3de237;ffmpegProcs[_0x35b3c8(0x209)](_0x1403f3);if(sharedFfmpeg===_0x1403f3)sharedFfmpeg=null;console['warn'](_0x35b3c8(0x347)+_0x35b3c8(0x319)+'t',_0x5d11b6,_0x35b3c8(0x334),_0x3b742a,_0x35b3c8(0x2f8)+'s',streamClients[_0x35b3c8(0x1fc)]),scheduleFfmpegRestart(_0x3b742a);});}function startMpegtsStream(_0x41f4f1,_0x3521b7){const _0xff53b2=_0x3c5cfb,_0x3054c2=shouldTranscode(String(_0x41f4f1[_0xff53b2(0x357)]?.[_0xff53b2(0x371)]||'')===_0xff53b2(0x204));_0x41f4f1['setTim'+_0xff53b2(0x1cb)](0x0),_0x3521b7[_0xff53b2(0x365)+_0xff53b2(0x1cb)](0x0),_0x41f4f1[_0xff53b2(0x1d2)]?.[_0xff53b2(0x365)+_0xff53b2(0x1cb)](0x0),_0x3521b7['socket']?.[_0xff53b2(0x365)+'eout'](0x0),_0x41f4f1[_0xff53b2(0x1d2)]?.[_0xff53b2(0x310)+_0xff53b2(0x2d6)]?.(!![]),_0x3521b7[_0xff53b2(0x1d2)]?.[_0xff53b2(0x310)+'elay']?.(!![]),_0x3521b7[_0xff53b2(0x267)+_0xff53b2(0x33c)](_0xff53b2(0x34e)+_0xff53b2(0x1e1),'video/'+_0xff53b2(0x1f0)),_0x3521b7['setHea'+_0xff53b2(0x33c)]('Cache-'+_0xff53b2(0x280)+'l',_0xff53b2(0x349)+_0xff53b2(0x2ff)+_0xff53b2(0x2a7)+_0xff53b2(0x1b3)+_0xff53b2(0x317)+_0xff53b2(0x2cf)),_0x3521b7[_0xff53b2(0x267)+_0xff53b2(0x33c)](_0xff53b2(0x28f)+'tion',_0xff53b2(0x2ed)+_0xff53b2(0x1d9)),_0x3521b7['setHea'+'der']('X-Acce'+_0xff53b2(0x1fa)+_0xff53b2(0x240),'no');if(typeof _0x3521b7['flushH'+_0xff53b2(0x2b8)]===_0xff53b2(0x1a5)+'on')_0x3521b7[_0xff53b2(0x343)+_0xff53b2(0x2b8)]();streamClients[_0xff53b2(0x2dc)](_0x3521b7),clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=null,ensureSharedFfmpeg(_0x3054c2);let _0x98fed4=![];const _0x540ca4=()=>{const _0x3e3ab8=_0xff53b2;if(_0x98fed4)return;_0x98fed4=!![],streamClients[_0x3e3ab8(0x209)](_0x3521b7);try{if(!_0x3521b7['writab'+_0x3e3ab8(0x2a2)+'d'])_0x3521b7[_0x3e3ab8(0x1f4)]();}catch{}streamClients[_0x3e3ab8(0x1fc)]===0x0&&(clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=setTimeout(()=>{const _0x4ddd3b=_0x3e3ab8;ffmpegIdleTimer=null;if(streamClients[_0x4ddd3b(0x1fc)]===0x0)killSharedFfmpeg();},0xfa0));};_0x41f4f1['on'](_0xff53b2(0x354),_0x540ca4),_0x3521b7['on'](_0xff53b2(0x354),_0x540ca4);}export function registerCameraRoutes(_0x5a2bef,{getConfig:_0x25b801,saveConfig:_0x5cc2af}){const _0x35340e=_0x3c5cfb;_0x5a2bef['post'](_0x35340e(0x26e)+_0x35340e(0x22a)+_0x35340e(0x2bf)+'er',async(_0x35491f,_0x111af3)=>{const _0x11ed96=_0x35340e;try{const _0xe8db37=await discover();onboardAvailable()&&_0xe8db37[_0x11ed96(0x323)+'t']({'kind':_0x11ed96(0x2f0)+'d','hostname':_0x11ed96(0x2f0)+'d','port':0x157c,'path':_0x11ed96(0x278)+_0x11ed96(0x1fb)+_0x11ed96(0x2d7),'name':_0x11ed96(0x25a),'hardware':'OV2640'}),_0x111af3[_0x11ed96(0x1c0)]({'devices':_0xe8db37});}catch(_0x5899a6){_0x111af3[_0x11ed96(0x32e)](0x190)[_0x11ed96(0x1c0)]({'message':cameraError(_0x5899a6,_0x11ed96(0x2ae)+'败')});}}),_0x5a2bef[_0x35340e(0x1ba)](_0x35340e(0x26e)+'amera/'+_0x35340e(0x32e),(_0x50b868,_0x563f38)=>{const _0x424391=_0x35340e,_0x58b0cc=_0x25b801();if(stripOnboardCameraConfig(_0x58b0cc))_0x5cc2af();const _0x365e76=_0x58b0cc[_0x424391(0x1c4)]||{};_0x563f38[_0x424391(0x1c0)]({...publicState(),'saved':{'source':_0x365e76[_0x424391(0x187)]||'','hostname':_0x365e76[_0x424391(0x2fb)+'me']||'','port':_0x365e76[_0x424391(0x271)]||0x50,'path':_0x365e76[_0x424391(0x1ab)]||_0x424391(0x31d)+_0x424391(0x1ed)+_0x424391(0x18e)+'ice','username':_0x365e76[_0x424391(0x255)+'me']||'','password_set':!!_0x365e76[_0x424391(0x32c)+'rd']}});}),_0x5a2bef[_0x35340e(0x320)](_0x35340e(0x26e)+_0x35340e(0x22a)+_0x35340e(0x324)+'t',async(_0x2c5f43,_0x48f9bc)=>{const _0x168e49=_0x35340e;try{const _0x1290e1=_0x25b801(),_0x144b33=_0x1290e1[_0x168e49(0x1c4)]||{},_0x3af296=_0x2c5f43[_0x168e49(0x30c)]?.[_0x168e49(0x187)]==='onboar'+'d'||_0x2c5f43['body']?.[_0x168e49(0x2ce)]===_0x168e49(0x2f0)+'d'||_0x2c5f43[_0x168e49(0x30c)]?.[_0x168e49(0x2fb)+'me']===_0x168e49(0x2f0)+'d';if(_0x3af296){if(stripOnboardCameraConfig(_0x1290e1))_0x5cc2af();_0x48f9bc[_0x168e49(0x32e)](0x190)[_0x168e49(0x1c0)]({'message':'板载画面暂不'+'支持'});return;}const _0x5b2aba=_0x2c5f43['body']?.[_0x168e49(0x32c)+'rd']||_0x144b33[_0x168e49(0x32c)+'rd']||'',_0x2ebe6f=await connectCamera({'hostname':_0x2c5f43[_0x168e49(0x30c)]?.[_0x168e49(0x2fb)+'me']||_0x144b33[_0x168e49(0x2fb)+'me'],'port':_0x2c5f43[_0x168e49(0x30c)]?.['port']||_0x144b33[_0x168e49(0x271)],'username':_0x2c5f43[_0x168e49(0x30c)]?.[_0x168e49(0x255)+'me']||_0x144b33[_0x168e49(0x255)+'me'],'password':_0x5b2aba,'path':_0x2c5f43['body']?.['path']||_0x144b33[_0x168e49(0x1ab)]});_0x1290e1['camera']={'source':_0x168e49(0x1bc),'hostname':state[_0x168e49(0x2fb)+'me'],'port':state[_0x168e49(0x271)],'path':state[_0x168e49(0x1ab)],'username':state[_0x168e49(0x255)+'me'],'password':state[_0x168e49(0x32c)+'rd']},_0x5cc2af(),_0x48f9bc['json'](_0x2ebe6f);}catch(_0x358e5a){_0x48f9bc[_0x168e49(0x32e)](0x190)[_0x168e49(0x1c0)]({'message':cameraError(_0x358e5a,_0x168e49(0x1f5)+'败')});}}),_0x5a2bef[_0x35340e(0x320)](_0x35340e(0x26e)+_0x35340e(0x22a)+_0x35340e(0x259)+_0x35340e(0x2ee),(_0x131013,_0x5cd9e4)=>{_0x5cd9e4['json'](disconnectCamera());}),_0x5a2bef[_0x35340e(0x1ba)](_0x35340e(0x26e)+_0x35340e(0x22a)+_0x35340e(0x31a)+'ot',async(_0x303fd7,_0xc3558a)=>{const _0x4cf2cd=_0x35340e;try{const _0x176cff=await getSnapshot();if(!_0x176cff?.[_0x4cf2cd(0x353)]){_0xc3558a[_0x4cf2cd(0x32e)](0xcc)[_0x4cf2cd(0x1f4)]();return;}_0xc3558a[_0x4cf2cd(0x267)+'der'](_0x4cf2cd(0x34e)+_0x4cf2cd(0x1e1),'image/'+'jpeg'),_0xc3558a[_0x4cf2cd(0x267)+_0x4cf2cd(0x33c)]('Cache-'+_0x4cf2cd(0x280)+'l',_0x4cf2cd(0x349)+'re'),_0xc3558a[_0x4cf2cd(0x2ec)](_0x176cff);}catch(_0x4ec201){_0xc3558a[_0x4cf2cd(0x32e)](0x190)['json']({'message':cameraError(_0x4ec201,_0x4cf2cd(0x287))});}}),_0x5a2bef['get']('/api/c'+'amera/'+_0x35340e(0x265),async(_0x426b8f,_0x25220b)=>{const _0x374713=_0x35340e;if(!state[_0x374713(0x324)+'ted']){_0x25220b[_0x374713(0x32e)](0x190)[_0x374713(0x1c0)]({'message':_0x374713(0x201)+_0x374713(0x35f)+'头'});return;}if(state[_0x374713(0x1d1)+'i']){startMpegtsStream(_0x426b8f,_0x25220b);return;}if(state[_0x374713(0x20e)+'i'])try{const _0x235925=await openCameraHttp(state[_0x374713(0x20e)+'i'],state[_0x374713(0x255)+'me'],state[_0x374713(0x32c)+'rd'],0x1f40);_0x25220b[_0x374713(0x267)+_0x374713(0x33c)](_0x374713(0x34e)+_0x374713(0x1e1),_0x235925[_0x374713(0x307)+_0x374713(0x17f)]||'multip'+'art/x-'+_0x374713(0x295)+_0x374713(0x19c)+_0x374713(0x286)+'ndary='+_0x374713(0x1c9)),_0x25220b[_0x374713(0x267)+_0x374713(0x33c)](_0x374713(0x2f3)+_0x374713(0x280)+'l',_0x374713(0x349)+'re,\x20no'+_0x374713(0x2a7)+_0x374713(0x1b3)+_0x374713(0x317)+'idate'),_0x25220b['setHea'+_0x374713(0x33c)](_0x374713(0x28f)+_0x374713(0x252),_0x374713(0x2ed)+_0x374713(0x1d9)),_0x25220b['setHea'+_0x374713(0x33c)](_0x374713(0x1cd)+_0x374713(0x1fa)+'ering','no');const _0x3fd3be=()=>{const _0x4d6c7b=_0x374713;try{_0x235925['req'][_0x4d6c7b(0x2e6)+'y']();}catch{}try{_0x235925[_0x4d6c7b(0x176)]['destro'+'y']();}catch{}};_0x426b8f['on']('close',_0x3fd3be),_0x25220b['on']('close',_0x3fd3be),_0x235925[_0x374713(0x176)]['on'](_0x374713(0x2be),_0x3fd3be),_0x235925[_0x374713(0x176)]['pipe'](_0x25220b);return;}catch(_0x49a1d5){console[_0x374713(0x223)](_0x374713(0x238)+_0x374713(0x24f)+_0x374713(0x312),_0x49a1d5?.[_0x374713(0x2a1)+'e']||_0x49a1d5);}if(!state['snapsh'+_0x374713(0x1ae)]){_0x25220b[_0x374713(0x32e)](0x190)[_0x374713(0x1c0)]({'message':_0x374713(0x366)+_0x374713(0x2a8)+'览流'});return;}_0x25220b[_0x374713(0x267)+_0x374713(0x33c)]('Conten'+_0x374713(0x1e1),_0x374713(0x239)+_0x374713(0x245)+_0x374713(0x295)+'replac'+_0x374713(0x286)+'ndary='+_0x374713(0x1c9)),_0x25220b[_0x374713(0x267)+_0x374713(0x33c)]('Cache-'+_0x374713(0x280)+'l',_0x374713(0x349)+'re,\x20no'+_0x374713(0x2a7)+_0x374713(0x1b3)+_0x374713(0x317)+_0x374713(0x2cf)),_0x25220b[_0x374713(0x267)+_0x374713(0x33c)](_0x374713(0x1cc),_0x374713(0x244)+'he'),_0x25220b[_0x374713(0x267)+_0x374713(0x33c)](_0x374713(0x28f)+_0x374713(0x252),_0x374713(0x2ed)+_0x374713(0x1d9)),_0x25220b[_0x374713(0x267)+'der'](_0x374713(0x1cd)+_0x374713(0x1fa)+_0x374713(0x240),'no');let _0x3a97be=![];const _0x345d31=()=>{_0x3a97be=!![];};_0x426b8f['on'](_0x374713(0x354),_0x345d31),_0x25220b['on'](_0x374713(0x354),_0x345d31);const _0x12084a=state[_0x374713(0x187)]===_0x374713(0x2f0)+'d';_0x12084a&¬eOnboardPreviewClient(0x1);try{await runOnboardPreviewLoop({'getFrame':()=>getSnapshot()['catch'](()=>null),'writeFrame':async _0x4e6762=>{const _0x5d5277=_0x374713;if(_0x3a97be||!state[_0x5d5277(0x324)+_0x5d5277(0x202)])return![];try{return _0x25220b[_0x5d5277(0x1b1)](_0x5d5277(0x218)+_0x5d5277(0x232)+_0x5d5277(0x1ad)+_0x5d5277(0x227)+_0x5d5277(0x1e3)+_0x5d5277(0x29c)+_0x5d5277(0x237)+'-Lengt'+_0x5d5277(0x21a)+_0x4e6762[_0x5d5277(0x353)]+_0x5d5277(0x31e)),_0x25220b['write'](_0x4e6762),_0x25220b[_0x5d5277(0x1b1)]('\x0d\x0a'),!![];}catch{return![];}},'isOpen':()=>!_0x3a97be&&state[_0x374713(0x324)+_0x374713(0x202)],'delayMs':_0x12084a?ONBOARD_STREAM_INTERVAL_MS:0x0,'emptyDelayMs':_0x12084a?ONBOARD_EMPTY_RETRY_MS:0x12c});}finally{_0x12084a&¬eOnboardPreviewClient(-0x1);if(!_0x25220b[_0x374713(0x179)+_0x374713(0x2a2)+'d'])_0x25220b['end']();}}),_0x5a2bef['post']('/api/c'+_0x35340e(0x22a)+_0x35340e(0x302),async(_0x54b7ed,_0x3e1b1f)=>{const _0x139ea4=_0x35340e;try{const _0x5e34f2=String(_0x54b7ed[_0x139ea4(0x30c)]?.[_0x139ea4(0x182)]||'');_0x3e1b1f[_0x139ea4(0x1c0)](await ptzMove(_0x5e34f2,{'press':_0x54b7ed[_0x139ea4(0x30c)]?.['press']}));}catch(_0x3d52a9){_0x3e1b1f['status'](0x190)[_0x139ea4(0x1c0)]({'message':cameraError(_0x3d52a9,_0x139ea4(0x2f5))});}});}
|
|
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))});}});}
|
package/dist-server/dev-ui.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x4669e2,_0x279556){const _0x775508=_0x777e,_0x161dcf=_0x4669e2();while(!![]){try{const _0x2afc52=-parseInt(_0x775508(0x12f))/0x1+parseInt(_0x775508(0x131))/0x2*(parseInt(_0x775508(0x12b))/0x3)+-parseInt(_0x775508(0x136))/0x4*(parseInt(_0x775508(0x13a))/0x5)+-parseInt(_0x775508(0x13f))/0x6*(-parseInt(_0x775508(0x13e))/0x7)+parseInt(_0x775508(0x127))/0x8*(-parseInt(_0x775508(0x133))/0x9)+parseInt(_0x775508(0x140))/0xa*(-parseInt(_0x775508(0x126))/0xb)+parseInt(_0x775508(0x138))/0xc*(parseInt(_0x775508(0x12c))/0xd);if(_0x2afc52===_0x279556)break;else _0x161dcf['push'](_0x161dcf['shift']());}catch(_0x19e128){_0x161dcf['push'](_0x161dcf['shift']());}}}(_0x20e3,0x9ed3b));import _0x19c0ed from'node:path';export function shouldAttachDevUi(){const _0x55b1f6=_0x777e;if(process[_0x55b1f6(0x122)][_0x55b1f6(0x13d)+'NV']===_0x55b1f6(0x12e)+_0x55b1f6(0x137))return![];const _0x1f7a22=String(process[_0x55b1f6(0x122)][_0x55b1f6(0x129)+_0x55b1f6(0x123)]||'')[_0x55b1f6(0x132)]();if(_0x1f7a22==='0'||_0x1f7a22===_0x55b1f6(0x139))return![];return!![];}function _0x777e(_0x2a124d,_0x20b490){_0x2a124d=_0x2a124d-0x122;const _0x20e30f=_0x20e3();let _0x777e04=_0x20e30f[_0x2a124d];if(_0x777e['rWlbhI']===undefined){var _0x4fdd47=function(_0x4a8da4){const _0x3f501b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x19c0ed='',_0x1f7a22='';for(let _0x57a44e=0x0,_0x261500,_0x3349d9,_0x461143=0x0;_0x3349d9=_0x4a8da4['charAt'](_0x461143++);~_0x3349d9&&(_0x261500=_0x57a44e%0x4?_0x261500*0x40+_0x3349d9:_0x3349d9,_0x57a44e++%0x4)?_0x19c0ed+=String['fromCharCode'](0xff&_0x261500>>(-0x2*_0x57a44e&0x6)):0x0){_0x3349d9=_0x3f501b['indexOf'](_0x3349d9);}for(let _0x4486f4=0x0,_0x3a57b4=_0x19c0ed['length'];_0x4486f4<_0x3a57b4;_0x4486f4++){_0x1f7a22+='%'+('00'+_0x19c0ed['charCodeAt'](_0x4486f4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f7a22);};_0x777e['JWjuug']=_0x4fdd47,_0x777e['JHILzG']={},_0x777e['rWlbhI']=!![];}const _0x13605c=_0x20e30f[0x0],_0x5f56b0=_0x2a124d+_0x13605c,_0x18a8b6=_0x777e['JHILzG'][_0x5f56b0];return!_0x18a8b6?(_0x777e04=_0x777e['JWjuug'](_0x777e04),_0x777e['JHILzG'][_0x5f56b0]=_0x777e04):_0x777e04=_0x18a8b6,_0x777e04;}function _0x20e3(){const _0x2c1da3=['rvzFvuK','DML0zs5J','C3bH','mZnSBKDvBLq','mtC2sfz1yw1H','BwLKzgXL','tu9tu19e','tujfrerf','nZvTEw1Jveq','ndGWmJjHy0rnAu0','B25MAwCU','ChjVzhvJ','mteWmZy0nfrJDwHdrG','rf9wsvrf','mtm3otb0u1PvAMu','DhjPBq','mZmWmJi4CKfhAxP5','AM9PBG','tu9tu19f','mtiWofj2qKHHtq','DgLVBG','mta4mdbpueTzz1O','zMfSC2u','mty1mdvTzwTYwwi','D2fYzxm','DxnL','tK9erv9f','ntzhy29tAgO','mJiZmZK4uxLUu0Xz','nZG4mZGWAw1vs21X','zw52'];_0x20e3=function(){return _0x2c1da3;};return _0x20e3();}export async function attachViteDev(_0x57a44e,_0x261500,{root:_0x3349d9}={}){const _0x49a226=_0x777e;process['env'][_0x49a226(0x135)+_0x49a226(0x12a)+_0x49a226(0x130)]='1';const {createServer:_0x461143}=await import('vite'),_0x4486f4=await _0x461143({'root':_0x3349d9,'configFile':_0x19c0ed[_0x49a226(0x134)](_0x3349d9,_0x49a226(0x124)+_0x49a226(0x12d)+'ts'),'server':{'middlewareMode':!![],'hmr':{'server':_0x261500}},'appType':_0x49a226(0x125)});return _0x57a44e[_0x49a226(0x13c)](_0x4486f4[_0x49a226(0x128)+_0x49a226(0x13b)]),_0x4486f4;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x132bb5=_0x463e;function _0x463e(_0x4ed3e7,_0xe75384){_0x4ed3e7=_0x4ed3e7-0x14a;const _0x53fd3f=_0x53fd();let _0x463e59=_0x53fd3f[_0x4ed3e7];if(_0x463e['FdJAaB']===undefined){var _0x344555=function(_0x3a67ab){const _0x5e27b5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x89628d='',_0x402c8c='';for(let _0x4c370d=0x0,_0x574b03,_0x5e6c1f,_0x24fabd=0x0;_0x5e6c1f=_0x3a67ab['charAt'](_0x24fabd++);~_0x5e6c1f&&(_0x574b03=_0x4c370d%0x4?_0x574b03*0x40+_0x5e6c1f:_0x5e6c1f,_0x4c370d++%0x4)?_0x89628d+=String['fromCharCode'](0xff&_0x574b03>>(-0x2*_0x4c370d&0x6)):0x0){_0x5e6c1f=_0x5e27b5['indexOf'](_0x5e6c1f);}for(let _0x29db24=0x0,_0x560182=_0x89628d['length'];_0x29db24<_0x560182;_0x29db24++){_0x402c8c+='%'+('00'+_0x89628d['charCodeAt'](_0x29db24)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x402c8c);};_0x463e['TdTSgH']=_0x344555,_0x463e['bPsJTq']={},_0x463e['FdJAaB']=!![];}const _0x3c13c2=_0x53fd3f[0x0],_0x516b06=_0x4ed3e7+_0x3c13c2,_0x582a8a=_0x463e['bPsJTq'][_0x516b06];return!_0x582a8a?(_0x463e59=_0x463e['TdTSgH'](_0x463e59),_0x463e['bPsJTq'][_0x516b06]=_0x463e59):_0x463e59=_0x582a8a,_0x463e59;}(function(_0x5d1b80,_0x145962){const _0x39b5a5=_0x463e,_0x5b3827=_0x5d1b80();while(!![]){try{const _0x2c0653=parseInt(_0x39b5a5(0x15e))/0x1*(parseInt(_0x39b5a5(0x15d))/0x2)+parseInt(_0x39b5a5(0x14a))/0x3+-parseInt(_0x39b5a5(0x151))/0x4+parseInt(_0x39b5a5(0x167))/0x5+-parseInt(_0x39b5a5(0x152))/0x6+-parseInt(_0x39b5a5(0x160))/0x7*(parseInt(_0x39b5a5(0x14b))/0x8)+parseInt(_0x39b5a5(0x161))/0x9*(parseInt(_0x39b5a5(0x164))/0xa);if(_0x2c0653===_0x145962)break;else _0x5b3827['push'](_0x5b3827['shift']());}catch(_0x758c54){_0x5b3827['push'](_0x5b3827['shift']());}}}(_0x53fd,0x4b5fb));const ACTIVE_VOICE=new Set([_0x132bb5(0x154)+_0x132bb5(0x14f),_0x132bb5(0x14d)+'ng','connec'+_0x132bb5(0x15b)]);function _0x53fd(){const _0x52b018=['mJy0mduXrK1Wr2fr','yw50','C3rHDgu','mtmWD3fdwKDK','DM9Py2u','zMLSDgvY','mJm3nZi4mfztDNzwzq','C3LZDgvT','BwfW','C2vX','mtaWmtK5nfjpv3DYCW','oezKEMPrAq','DhjPBq','C3bLywTP','AxngAw5P','Aw5N','AxnbCNjH','mtm3ndK2ofvtru5mDq','mZe1mtGWmePfyMT6ua','Bwf4','BgLZDgvU','AgfZ','DxnLCG','AwrSzq','BgLUzxm','CM9Szq','Dgv4Da','DgLUzW','BgvUz3rO','mty4ota4z2nTELLr','nLrfzNjtBq','ChvZAa','mZyZody4nhPjB2vAwG'];_0x53fd=function(){return _0x52b018;};return _0x53fd();}export function applyChatDelta(_0x89628d={'seq':0x0,'lines':[]},_0x402c8c={}){const _0x354128=_0x132bb5,_0x4c370d=Number(_0x402c8c['seq'])||0x0,_0x574b03=Number(_0x89628d[_0x354128(0x16a)])||0x0,_0x5e6c1f=Array[_0x354128(0x150)+'y'](_0x402c8c['lines'])?_0x402c8c[_0x354128(0x158)]:[],_0x24fabd=new Set((_0x89628d['lines']||[])[_0x354128(0x169)](_0x54b110=>_0x54b110[_0x354128(0x16a)])),_0x29db24=[];for(const _0x26cbf2 of _0x5e6c1f){const _0x57a573=Number(_0x26cbf2?.[_0x354128(0x16a)]);if(!Number[_0x354128(0x14e)+'te'](_0x57a573)||_0x24fabd[_0x354128(0x155)](_0x57a573))continue;_0x24fabd['add'](_0x57a573),_0x29db24[_0x354128(0x15f)]({'seq':_0x57a573,'role':_0x26cbf2['role']==='assist'+_0x354128(0x162)||_0x26cbf2[_0x354128(0x159)]===_0x354128(0x168)?_0x26cbf2['role']:_0x354128(0x156),'text':String(_0x26cbf2[_0x354128(0x15a)]||'')[_0x354128(0x14c)](),'state':_0x26cbf2[_0x354128(0x163)]||''});}const _0x560182=_0x29db24[_0x354128(0x169)](_0x47d5b0=>_0x47d5b0[_0x354128(0x16a)]),_0x5d8f5b=_0x402c8c[_0x354128(0x165)]||_0x89628d[_0x354128(0x165)]||_0x354128(0x157),_0x166ebb=_0x29db24[_0x354128(0x166)](_0x360ea6=>_0x360ea6[_0x354128(0x15a)]);if(_0x4c370d<_0x574b03&&_0x166ebb[_0x354128(0x15c)]===0x0)return{'seq':_0x4c370d,'lines':_0x89628d[_0x354128(0x158)]||[],'added':[],'voice':_0x5d8f5b,'rewound':!![]};return{'seq':Math[_0x354128(0x153)](_0x574b03,_0x4c370d,_0x560182[_0x354128(0x15c)]?Math[_0x354128(0x153)](..._0x560182):0x0),'lines':[..._0x89628d['lines']||[],..._0x166ebb],'added':_0x166ebb,'voice':_0x5d8f5b,'rewound':![]};}export function shouldFetchChatSync({voice:voice=_0x132bb5(0x157),remoteSeq:remoteSeq=0x0,localSeq:localSeq=0x0}={}){const _0x2f2f93=_0x132bb5;if(ACTIVE_VOICE[_0x2f2f93(0x155)](String(voice)))return!![];const _0x25177b=Number(remoteSeq)||0x0,_0x2efb80=Number(localSeq)||0x0;if(_0x25177b<_0x2efb80)return!![];return _0x25177b>_0x2efb80;}export function chatSyncIntervalMs({voice:voice=_0x132bb5(0x157)}={}){const _0xb2f88f=_0x132bb5;if(ACTIVE_VOICE[_0xb2f88f(0x155)](String(voice)))return 0x190;return 0x0;}
|