move software to own api for permissions, add location/date into gui, fix console commands for software #7854

Signed-off-by: si458 <simonsmith5521@gmail.com>

si458 committed May 30, 2026 at 11:41 UTC 365f23487ccfcce2a3982a2fb53a5e6a04d9f294
7 files changed +5557 -5615
agents/meshcore.js
+367 -442
@@ -1295,196 +1295,6 @@ function handleServerCommand(data) {
1295 break;
1296 case 'msg': {
1297 switch (data.type) {
1298 - // FÜGE DIESEN NEUEN BLOCK HIER EIN
1299 - case 'software': {
1300 - // Hilfsfunktion: Antwortet als 'software'-Typ
1301 - var sendSoftwareResponse = function(responseData) {
1302 - mesh.SendCommand({
1303 - action: 'msg',
1304 - type: 'software',
1305 - value: (typeof responseData === 'string') ? responseData : JSON.stringify(responseData),
1306 - sessionid: data.sessionid
1307 - });
1308 - };
1309 -
1310 - if (data.value == 'installedapps') {
1311 - try {
1312 - if (require('win-info').installedApps) {
1313 - require('win-info').installedApps().then(sendSoftwareResponse).catch(function(e) { sendSoftwareResponse({ error: e.toString() }); });
1314 - } else { sendSoftwareResponse({ error: "Not supported" }); }
1315 - } catch (e) { sendSoftwareResponse({ error: e.toString() }); }
1316 - }
1317 - else if (data.value == 'installedstoreapps') {
1318 - try {
1319 - if (require('win-info').installedStoreApps) {
1320 - require('win-info').installedStoreApps().then(sendSoftwareResponse).catch(function(e) { sendSoftwareResponse({ error: e.toString() }); });
1321 - }
1322 - } catch (e) { sendSoftwareResponse({ error: e.toString() }); }
1323 - }
1324 - // --- UNINSTALL APP (Win32) ---
1325 - else if (typeof data.value === 'string' && data.value.indexOf('uninstallapp ') === 0) {
1326 - var base64Cmd = data.value.substring(13).trim(); // "uninstallapp " abschneiden
1327 - var uninstallCmd = '';
1328 -
1329 - try {
1330 - var b = Buffer.from(base64Cmd, 'base64');
1331 - var decoded = b.toString();
1332 - if (decoded && decoded.length > 0 && decoded.indexOf(':') >= 0) { uninstallCmd = decoded; } else { uninstallCmd = base64Cmd; }
1333 - } catch (e) { uninstallCmd = base64Cmd; }
1334 -
1335 - if (!uninstallCmd || uninstallCmd.trim() === '' || uninstallCmd.trim() === '\\') {
1336 - sendSoftwareResponse({ success: false, error: 'No valid uninstall command available' });
1337 - } else {
1338 - var logDir = (process.env['ProgramData'] || 'C:\\ProgramData') + '\\MeshAgent';
1339 - try { if (!require('fs').existsSync(logDir)) { require('fs').mkdirSync(logDir); } } catch (e) { }
1340 - var logFile = logDir + '\\MeshAgent_Uninstall.log';
1341 -
1342 - var child_process = require('child_process');
1343 - var cmdPath = process.env['windir'] + '\\system32\\cmd.exe';
1344 -
1345 - var writeLog = function(message, callback) {
1346 - try {
1347 - var timestamp = new Date().toISOString();
1348 - var logLine = timestamp + ' | ' + message;
1349 - logLine = logLine.replace(/"/g, '""').replace(/&/g, '^&').replace(/</g, '^<').replace(/>/g, '^>').replace(/\|/g, '^|');
1350 - var logChild = child_process.execFile(cmdPath, ['cmd', '/c', 'echo ' + logLine + ' >> "' + logFile + '"'], { timeout: 5000 });
1351 - logChild.on('exit', function() { if (callback) callback(); });
1352 - } catch (e) { if (callback) callback(); }
1353 - };
1354 -
1355 - try {
1356 - writeLog('UNINSTALL START - Command: ' + uninstallCmd.replace(/\\/g, '/'));
1357 - var originalCmd = uninstallCmd;
1358 -
1359 - if (uninstallCmd.toLowerCase().indexOf('msiexec') >= 0) {
1360 - uninstallCmd = uninstallCmd.replace(/\/q[nbrf]?/gi, '');
1361 - if (uninstallCmd.indexOf('/QN') < 0) { uninstallCmd = uninstallCmd + ' /QN /norestart'; }
1362 - } else {
1363 - if (uninstallCmd.toLowerCase().indexOf('/s') < 0) { uninstallCmd = uninstallCmd + ' /S /silent /SILENT /VERYSILENT /quiet /norestart'; }
1364 - }
1365 - uninstallCmd = uninstallCmd.replace(/\s+/g, ' ').trim();
1366 -
1367 - var child = child_process.execFile(cmdPath, ['cmd', '/c', uninstallCmd], { timeout: 300000 });
1368 - child.stdout.str = ''; child.stderr.str = '';
1369 - child._cmd = uninstallCmd;
1370 -
1371 - child.stdout.on('data', function(c) { this.str += c.toString(); });
1372 - child.stderr.on('data', function(c) { this.str += c.toString(); });
1373 -
1374 - child.on('exit', function(code) {
1375 - var success = (code === 0 || code === null || code === 3010);
1376 - var status = success ? 'SUCCESS' : 'FAILED';
1377 - writeLog('UNINSTALL ' + status + ' - ExitCode: ' + code);
1378 -
1379 - var result = { success: success, exitCode: code, command: child._cmd };
1380 - if (child.stdout.str) result.stdout = child.stdout.str.trim().substring(0, 500);
1381 - if (child.stderr.str) result.stderr = child.stderr.str.trim().substring(0, 500);
1382 - sendSoftwareResponse(result);
1383 - });
1384 - sendSoftwareResponse({ status: 'Silent uninstall started', command: uninstallCmd });
1385 - } catch (ex) {
1386 - writeLog('UNINSTALL ERROR - ' + ex.toString());
1387 - sendSoftwareResponse({ error: ex.toString() });
1388 - }
1389 - }
1390 - }
1391 - // --- UNINSTALL STORE APP (Verbesserte Version) ---
1392 - else if (typeof data.value === 'string' && data.value.indexOf('uninstallstoreapp ') === 0) {
1393 - // Namen extrahieren und Anführungszeichen entfernen, falls vorhanden
1394 - var rawName = data.value.substring(18).trim();
1395 - var packageName = rawName.replace(/"/g, "").replace(/'/g, "");
1396 -
1397 - var logDir = (process.env['ProgramData'] || 'C:\\ProgramData') + '\\MeshAgent';
1398 - try { if (!require('fs').existsSync(logDir)) { require('fs').mkdirSync(logDir); } } catch (e) { }
1399 - var logFile = logDir + '\\MeshAgent_StoreUninstall.log';
1400 -
1401 - try {
1402 - var psPath = (process.env['SystemRoot'] || 'C:\\Windows') + '\\System32\\WindowsPowerShell\\v1.0\\powershell.exe';
1403 - var child_process = require('child_process');
1404 -
1405 - // Marker, um das Ende der Ausgabe zu erkennen
1406 - var completionMarker = '###DONE###' + Date.now();
1407 -
1408 - var child = child_process.execFile(psPath, ['powershell', '-NoProfile', '-NoLogo', '-ExecutionPolicy', 'Bypass', '-Command', '-'], {});
1409 - child.stdout.str = ''; child.stderr.str = '';
1410 - child._completed = false;
1411 -
1412 - child.stdout.on('data', function(c) {
1413 - this.str += c.toString();
1414 - // Wir warten auf den Marker
1415 - if (!child._completed && this.str.indexOf(completionMarker) >= 0) {
1416 - child._completed = true;
1417 - // Ergebnis extrahieren (alles vor dem Marker)
1418 - var output = this.str.split(completionMarker)[0].trim();
1419 - sendSoftwareResponse({ status: 'Finished', output: output });
1420 - }
1421 - });
1422 - child.stderr.on('data', function(c) { this.str += c.toString(); });
1423 -
1424 - // Das ausführliche PowerShell Skript (wie früher)
1425 - var script = [
1426 - "$LogFile = '" + logFile + "'",
1427 - "$TargetName = '" + packageName + "'",
1428 - "function Write-Log { param([string]$Msg); $Line = \"$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - $Msg\"; Add-Content -Path $LogFile -Value $Line -ErrorAction SilentlyContinue; Write-Output $Msg }",
1429 - "",
1430 - "Write-Log \"STORE UNINSTALL START: $TargetName\"",
1431 - "Write-Log \"Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)\"",
1432 - "",
1433 - "$foundCount = 0",
1434 - "$pkgs = Get-AppxPackage -AllUsers -Name \"*$TargetName*\"",
1435 - "if ($pkgs) {",
1436 - " if ($pkgs -isnot [array]) { $pkgs = @($pkgs) }",
1437 - " Write-Log \"Found (AllUsers): $($pkgs.Count) packages\"",
1438 - " foreach ($p in $pkgs) {",
1439 - " Write-Log \"Removing: $($p.PackageFullName)\"",
1440 - " try {",
1441 - " Remove-AppxPackage -Package $p.PackageFullName -AllUsers -ErrorAction Stop",
1442 - " Write-Log \"SUCCESS: Removed with -AllUsers\"",
1443 - " $foundCount++",
1444 - " } catch {",
1445 - " Write-Log \"WARN: AllUsers failed, trying current user only. Error: $($_.Exception.Message)\"",
1446 - " try {",
1447 - " Remove-AppxPackage -Package $p.PackageFullName -ErrorAction Stop",
1448 - " Write-Log \"SUCCESS: Removed from CurrentUser\"",
1449 - " $foundCount++",
1450 - " } catch {",
1451 - " Write-Log \"ERROR: Failed to remove $($p.PackageFullName). Error: $($_.Exception.Message)\"",
1452 - " }",
1453 - " }",
1454 - " }",
1455 - "} else { Write-Log \"Found (AllUsers): 0 packages\" }",
1456 - "",
1457 - "$prov = Get-AppxProvisionedPackage -Online | Where-Object { $_.PackageName -like \"*$TargetName*\" }",
1458 - "if ($prov) {",
1459 - " if ($prov -isnot [array]) { $prov = @($prov) }",
1460 - " Write-Log \"Found provisioned: $($prov.Count) packages\"",
1461 - " foreach ($pr in $prov) {",
1462 - " Write-Log \"Deprovisioning: $($pr.DisplayName)\"",
1463 - " try {",
1464 - " Remove-AppxProvisionedPackage -Online -PackageName $pr.PackageName -ErrorAction Stop | Out-Null",
1465 - " Write-Log \"SUCCESS: Deprovisioned\"",
1466 - " } catch {",
1467 - " Write-Log \"ERROR: Failed to deprovision. Error: $($_.Exception.Message)\"",
1468 - " }",
1469 - " }",
1470 - "} else { Write-Log \"Found provisioned: 0 packages\" }",
1471 - "",
1472 - "'" + completionMarker + "'",
1473 - "exit"
1474 - ].join("\r\n");
1475 -
1476 - child.stdin.write(script + "\r\n");
1477 -
1478 - // Timeout Safety
1479 - setTimeout(function() { if (!child._completed) { child.kill(); sendSoftwareResponse({ error: 'Timeout' }); } }, 60000);
1480 -
1481 - sendSoftwareResponse({ status: 'Store app removal started', package: packageName });
1482 - } catch (ex) {
1483 - sendSoftwareResponse({ error: ex.toString() });
1484 - }
1485 - }
1486 - break;
1487 - }
1298 case 'console': { // Process a console command
1299 if ((typeof data.rights != 'number') || ((data.rights & 8) == 0) || ((data.rights & 16) == 0)) break; // Check console rights (Remote Control and Console)
1300 if (data.value && data.sessionid) {
@@ -1898,6 +1708,162 @@ function handleServerCommand(data) {
1708 }
1709 break;
1710 }
1711 + case 'software': {
1712 + var sendSoftwareResponse = function(responseData) {
1713 + mesh.SendCommand({
1714 + action: 'software',
1715 + value: (typeof responseData === 'string') ? responseData : JSON.stringify(responseData),
1716 + sessionid: data.sessionid
1717 + });
1718 + };
1719 + if (data.value == 'installedapps') {
1720 + try {
1721 + if (require('win-info').installedApps) {
1722 + require('win-info').installedApps().then(sendSoftwareResponse).catch(function(e) { sendSoftwareResponse({ error: e.toString() }); });
1723 + } else { sendSoftwareResponse({ error: "Not supported" }); }
1724 + } catch (e) { sendSoftwareResponse({ error: e.toString() }); }
1725 + } else if (data.value == 'installedstoreapps') {
1726 + try {
1727 + if (require('win-info').installedStoreApps) {
1728 + require('win-info').installedStoreApps().then(sendSoftwareResponse).catch(function(e) { sendSoftwareResponse({ error: e.toString() }); });
1729 + }
1730 + } catch (e) { sendSoftwareResponse({ error: e.toString() }); }
1731 + } else if (typeof data.value === 'string' && data.value.indexOf('uninstallapp ') === 0) {
1732 + var base64Cmd = data.value.substring(13).trim();
1733 + var uninstallCmd = '';
1734 + try {
1735 + var b = Buffer.from(base64Cmd, 'base64');
1736 + var decoded = b.toString();
1737 + if (decoded && decoded.length > 0 && decoded.indexOf(':') >= 0) { uninstallCmd = decoded; } else { uninstallCmd = base64Cmd; }
1738 + } catch (e) { uninstallCmd = base64Cmd; }
1739 + if (!uninstallCmd || uninstallCmd.trim() === '' || uninstallCmd.trim() === '\\') {
1740 + sendSoftwareResponse({ success: false, error: 'No valid uninstall command available' });
1741 + } else {
1742 + var logDir = (process.env['ProgramData'] || 'C:\\ProgramData') + '\\MeshAgent';
1743 + try { if (!require('fs').existsSync(logDir)) { require('fs').mkdirSync(logDir); } } catch (e) { }
1744 + var logFile = logDir + '\\MeshAgent_Uninstall.log';
1745 + var child_process = require('child_process');
1746 + var cmdPath = process.env['windir'] + '\\system32\\cmd.exe';
1747 + var writeLog = function(message, callback) {
1748 + try {
1749 + var timestamp = new Date().toISOString();
1750 + var logLine = timestamp + ' | ' + message;
1751 + logLine = logLine.replace(/"/g, '""').replace(/&/g, '^&').replace(/</g, '^<').replace(/>/g, '^>').replace(/\|/g, '^|');
1752 + var logChild = child_process.execFile(cmdPath, ['cmd', '/c', 'echo ' + logLine + ' >> "' + logFile + '"'], { timeout: 5000 });
1753 + logChild.on('exit', function() { if (callback) callback(); });
1754 + } catch (e) { if (callback) callback(); }
1755 + };
1756 + try {
1757 + writeLog('UNINSTALL START - Command: ' + uninstallCmd.replace(/\\/g, '/'));
1758 + var originalCmd = uninstallCmd;
1759 + if (uninstallCmd.toLowerCase().indexOf('msiexec') >= 0) {
1760 + uninstallCmd = uninstallCmd.replace(/\/q[nbrf]?/gi, '');
1761 + if (uninstallCmd.indexOf('/QN') < 0) { uninstallCmd = uninstallCmd + ' /QN /norestart'; }
1762 + } else {
1763 + if (uninstallCmd.toLowerCase().indexOf('/s') < 0) { uninstallCmd = uninstallCmd + ' /S /silent /SILENT /VERYSILENT /quiet /norestart'; }
1764 + }
1765 + uninstallCmd = uninstallCmd.replace(/\s+/g, ' ').trim();
1766 + var child = child_process.execFile(cmdPath, ['cmd', '/c', uninstallCmd], { timeout: 300000 });
1767 + child.stdout.str = ''; child.stderr.str = '';
1768 + child._cmd = uninstallCmd;
1769 + child.stdout.on('data', function(c) { this.str += c.toString(); });
1770 + child.stderr.on('data', function(c) { this.str += c.toString(); });
1771 + child.on('exit', function(code) {
1772 + var success = (code === 0 || code === null || code === 3010);
1773 + var status = success ? 'SUCCESS' : 'FAILED';
1774 + writeLog('UNINSTALL ' + status + ' - ExitCode: ' + code);
1775 + var result = { success: success, exitCode: code, command: child._cmd };
1776 + if (child.stdout.str) result.stdout = child.stdout.str.trim().substring(0, 500);
1777 + if (child.stderr.str) result.stderr = child.stderr.str.trim().substring(0, 500);
1778 + sendSoftwareResponse(result);
1779 + });
1780 + sendSoftwareResponse({ status: 'Silent uninstall started', command: uninstallCmd });
1781 + } catch (ex) {
1782 + writeLog('UNINSTALL ERROR - ' + ex.toString());
1783 + sendSoftwareResponse({ error: ex.toString() });
1784 + }
1785 + }
1786 + } else if (typeof data.value === 'string' && data.value.indexOf('uninstallstoreapp ') === 0) {
1787 + var rawName = data.value.substring(18).trim();
1788 + var packageName = rawName.replace(/"/g, "").replace(/'/g, "");
1789 + var logDir = (process.env['ProgramData'] || 'C:\\ProgramData') + '\\MeshAgent';
1790 + try { if (!require('fs').existsSync(logDir)) { require('fs').mkdirSync(logDir); } } catch (e) { }
1791 + var logFile = logDir + '\\MeshAgent_StoreUninstall.log';
1792 + try {
1793 + var psPath = (process.env['SystemRoot'] || 'C:\\Windows') + '\\System32\\WindowsPowerShell\\v1.0\\powershell.exe';
1794 + var child_process = require('child_process');
1795 + var completionMarker = '###DONE###' + Date.now();
1796 + var child = child_process.execFile(psPath, ['powershell', '-NoProfile', '-NoLogo', '-ExecutionPolicy', 'Bypass', '-Command', '-'], {});
1797 + child.stdout.str = ''; child.stderr.str = '';
1798 + child._completed = false;
1799 + child.stdout.on('data', function(c) {
1800 + this.str += c.toString();
1801 + if (!child._completed && this.str.indexOf(completionMarker) >= 0) {
1802 + child._completed = true;
1803 + var output = this.str.split(completionMarker)[0].trim();
1804 + sendSoftwareResponse({ status: 'Finished', output: output });
1805 + }
1806 + });
1807 + child.stderr.on('data', function(c) { this.str += c.toString(); });
1808 + var script = [
1809 + "$LogFile = '" + logFile + "'",
1810 + "$TargetName = '" + packageName + "'",
1811 + "function Write-Log { param([string]$Msg); $Line = \"$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - $Msg\"; Add-Content -Path $LogFile -Value $Line -ErrorAction SilentlyContinue; Write-Output $Msg }",
1812 + "",
1813 + "Write-Log \"STORE UNINSTALL START: $TargetName\"",
1814 + "Write-Log \"Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)\"",
1815 + "",
1816 + "$foundCount = 0",
1817 + "$pkgs = Get-AppxPackage -AllUsers -Name \"*$TargetName*\"",
1818 + "if ($pkgs) {",
1819 + " if ($pkgs -isnot [array]) { $pkgs = @($pkgs) }",
1820 + " Write-Log \"Found (AllUsers): $($pkgs.Count) packages\"",
1821 + " foreach ($p in $pkgs) {",
1822 + " Write-Log \"Removing: $($p.PackageFullName)\"",
1823 + " try {",
1824 + " Remove-AppxPackage -Package $p.PackageFullName -AllUsers -ErrorAction Stop",
1825 + " Write-Log \"SUCCESS: Removed with -AllUsers\"",
1826 + " $foundCount++",
1827 + " } catch {",
1828 + " Write-Log \"WARN: AllUsers failed, trying current user only. Error: $($_.Exception.Message)\"",
1829 + " try {",
1830 + " Remove-AppxPackage -Package $p.PackageFullName -ErrorAction Stop",
1831 + " Write-Log \"SUCCESS: Removed from CurrentUser\"",
1832 + " $foundCount++",
1833 + " } catch {",
1834 + " Write-Log \"ERROR: Failed to remove $($p.PackageFullName). Error: $($_.Exception.Message)\"",
1835 + " }",
1836 + " }",
1837 + " }",
1838 + "} else { Write-Log \"Found (AllUsers): 0 packages\" }",
1839 + "",
1840 + "$prov = Get-AppxProvisionedPackage -Online | Where-Object { $_.PackageName -like \"*$TargetName*\" }",
1841 + "if ($prov) {",
1842 + " if ($prov -isnot [array]) { $prov = @($prov) }",
1843 + " Write-Log \"Found provisioned: $($prov.Count) packages\"",
1844 + " foreach ($pr in $prov) {",
1845 + " Write-Log \"Deprovisioning: $($pr.DisplayName)\"",
1846 + " try {",
1847 + " Remove-AppxProvisionedPackage -Online -PackageName $pr.PackageName -ErrorAction Stop | Out-Null",
1848 + " Write-Log \"SUCCESS: Deprovisioned\"",
1849 + " } catch {",
1850 + " Write-Log \"ERROR: Failed to deprovision. Error: $($_.Exception.Message)\"",
1851 + " }",
1852 + " }",
1853 + "} else { Write-Log \"Found provisioned: 0 packages\" }",
1854 + "",
1855 + "'" + completionMarker + "'",
1856 + "exit"
1857 + ].join("\r\n");
1858 + child.stdin.write(script + "\r\n");
1859 + setTimeout(function() { if (!child._completed) { child.kill(); sendSoftwareResponse({ error: 'Timeout' }); } }, 60000);
1860 + sendSoftwareResponse({ status: 'Store app removal started', package: packageName });
1861 + } catch (ex) {
1862 + sendSoftwareResponse({ error: ex.toString() });
1863 + }
1864 + }
1865 + break;
1866 + }
1867 case 'acmactivate': {
1868 if (amt != null) {
1869 MeshServerLogEx(23, null, "Attempting Intel AMT ACM mode activation", data);
@@ -6046,7 +6012,6 @@ function processConsoleCommand(cmd, args, rights, sessionid) {
6012 case 'installedapps': {
6013 if (process.platform == 'win32') {
6014 try {
6049 - // Wir nutzen 'sessionid' aus dem Funktionskopf von processConsoleCommand
6015 require('win-info').installedApps().then(function (apps) {
6016 sendConsoleText(JSON.stringify(apps, null, 1), sessionid);
6017 }).catch(function(e) {
@@ -6061,7 +6026,6 @@ function processConsoleCommand(cmd, args, rights, sessionid) {
6026 case 'installedstoreapps': {
6027 if (process.platform == 'win32') {
6028 try {
6064 - // Hier muss der Name exakt so geschrieben sein wie in module.exports der win-info.js
6029 require('win-info').installedStoreApps().then(function (apps) {
6030 if (apps && apps.length > 0) {
6031 sendConsoleText(JSON.stringify(apps, null, 1), sessionid);
@@ -6077,260 +6041,221 @@ function processConsoleCommand(cmd, args, rights, sessionid) {
6041 }
6042 break;
6043 }
6080 - case 'uninstallapp':
6081 - if (args['_'].length < 1) {
6082 - response = "Usage: uninstallapp <base64-encoded-command>";
6083 - } else {
6084 - var base64Cmd = args['_'][0];
6085 - var uninstallCmd = '';
6086 -
6087 - // Base64 dekodieren
6088 - try {
6089 - var b = Buffer.from(base64Cmd, 'base64');
6090 - var decoded = b.toString();
6091 -
6092 - if (decoded && decoded.length > 0 && decoded.indexOf(':') >= 0) {
6093 - uninstallCmd = decoded;
6094 - } else {
6095 - uninstallCmd = base64Cmd;
6096 - }
6097 - } catch (e) {
6098 - uninstallCmd = base64Cmd;
6099 - }
6100 -
6101 - // Prüfen ob Befehl leer oder ungültig ist
6102 - if (!uninstallCmd || uninstallCmd.trim() === '' || uninstallCmd.trim() === '\\') {
6103 - response = JSON.stringify({ success: false, error: 'No valid uninstall command available' });
6104 - break;
6105 - }
6106 -
6107 - var logDir = (process.env['ProgramData'] || 'C:\\ProgramData') + '\\MeshAgent';
6108 - try { if (!require('fs').existsSync(logDir)) { require('fs').mkdirSync(logDir); } } catch (e) { }
6109 - var logFile = logDir + '\\MeshAgent_Uninstall.log';
6110 -
6111 - var child_process = require('child_process');
6112 - var cmdPath = process.env['windir'] + '\\system32\\cmd.exe';
6113 -
6114 - // Log-Funktion mit CMD echo
6115 - function writeLog(message, callback) {
6116 - try {
6117 - var timestamp = new Date().toISOString();
6118 - var logLine = timestamp + ' | ' + message;
6119 - // Sonderzeichen escapen
6120 - logLine = logLine.replace(/"/g, '""').replace(/&/g, '^&').replace(/</g, '^<').replace(/>/g, '^>').replace(/\|/g, '^|');
6121 -
6122 - var logChild = child_process.execFile(cmdPath, ['cmd', '/c', 'echo ' + logLine + ' >> "' + logFile + '"'], { timeout: 5000 });
6123 - logChild.on('exit', function() {
6124 - if (callback) callback();
6125 - });
6126 - } catch (e) {
6127 - if (callback) callback();
6128 - }
6129 - }
6130 -
6131 - try {
6132 - // Logging - Start
6133 - writeLog('UNINSTALL START - Command: ' + uninstallCmd.replace(/\\/g, '/'));
6134 -
6135 - var originalCmd = uninstallCmd;
6136 -
6137 - // Silent-Parameter hinzufügen
6138 - if (uninstallCmd.toLowerCase().indexOf('msiexec') >= 0) {
6139 - uninstallCmd = uninstallCmd.replace(/\/q[nbrf]?/gi, '');
6140 - if (uninstallCmd.indexOf('/QN') < 0) {
6141 - uninstallCmd = uninstallCmd + ' /QN /norestart';
6142 - }
6143 - } else {
6144 - if (uninstallCmd.toLowerCase().indexOf('/s') < 0) {
6145 - uninstallCmd = uninstallCmd + ' /S /silent /SILENT /VERYSILENT /quiet /norestart';
6146 - }
6147 - }
6148 -
6149 - uninstallCmd = uninstallCmd.replace(/\s+/g, ' ').trim();
6150 -
6151 - writeLog('UNINSTALL EXEC - Modified: ' + uninstallCmd.replace(/\\/g, '/'));
6152 -
6153 - var child = child_process.execFile(cmdPath, ['cmd', '/c', uninstallCmd], { timeout: 300000 });
6154 -
6155 - child.stdout.str = '';
6156 - child.stderr.str = '';
6157 - child._sessionid = sessionid;
6158 - child._cmd = uninstallCmd;
6159 - child._originalCmd = originalCmd;
6160 - child._writeLog = writeLog;
6161 -
6162 - child.stdout.on('data', function(c) { this.str += c.toString(); });
6163 - child.stderr.on('data', function(c) { this.str += c.toString(); });
6164 -
6165 - child.on('exit', function(code) {
6166 - var success = (code === 0 || code === null || code === 3010);
6167 - var status = success ? 'SUCCESS' : 'FAILED';
6168 -
6169 - child._writeLog('UNINSTALL ' + status + ' - ExitCode: ' + code);
6170 -
6171 - var result = {
6172 - success: success,
6173 - exitCode: code,
6174 - command: child._cmd
6175 - };
6176 -
6177 - if (child.stdout.str) result.stdout = child.stdout.str.trim().substring(0, 500);
6178 - if (child.stderr.str) result.stderr = child.stderr.str.trim().substring(0, 500);
6179 -
6180 - sendConsoleText(JSON.stringify(result), child._sessionid);
6181 - });
6182 -
6183 - response = JSON.stringify({ status: 'Silent uninstall started', command: uninstallCmd });
6184 - } catch (ex) {
6185 - writeLog('UNINSTALL ERROR - ' + ex.toString());
6186 - response = JSON.stringify({ error: ex.toString() });
6187 - }
6188 - }
6189 - break;
6190 -
6191 - case 'uninstallstoreapp':
6192 - if (args['_'].length < 1) {
6193 - response = "Usage: uninstallstoreapp <PackageName>";
6194 - } else {
6195 - var packageName = args['_'][0];
6196 -
6197 - var logDir = (process.env['ProgramData'] || 'C:\\ProgramData') + '\\MeshAgent';
6198 - try { if (!require('fs').existsSync(logDir)) { require('fs').mkdirSync(logDir); } } catch (e) { }
6199 - var logFile = logDir + '\\MeshAgent_StoreUninstall.log';
6200 -
6044 + case 'uninstallapp': {
6045 + if (args['_'].length < 1) {
6046 + response = "Usage: uninstallapp <base64-encoded-command>";
6047 + } else {
6048 + var base64Cmd = args['_'][0];
6049 + var uninstallCmd = '';
6050 + try {
6051 + var b = Buffer.from(base64Cmd, 'base64');
6052 + var decoded = b.toString();
6053 + if (decoded && decoded.length > 0 && decoded.indexOf(':') >= 0) {
6054 + uninstallCmd = decoded;
6055 + } else {
6056 + uninstallCmd = base64Cmd;
6057 + }
6058 + } catch (e) {
6059 + uninstallCmd = base64Cmd;
6060 + }
6061 + if (!uninstallCmd || uninstallCmd.trim() === '' || uninstallCmd.trim() === '\\') {
6062 + response = JSON.stringify({ success: false, error: 'No valid uninstall command available' });
6063 + break;
6064 + }
6065 + var logDir = (process.env['ProgramData'] || 'C:\\ProgramData') + '\\MeshAgent';
6066 + try { if (!require('fs').existsSync(logDir)) { require('fs').mkdirSync(logDir); } } catch (e) { }
6067 + var logFile = logDir + '\\MeshAgent_Uninstall.log';
6068 + var child_process = require('child_process');
6069 + var cmdPath = process.env['windir'] + '\\system32\\cmd.exe';
6070 + function writeLog(message, callback) {
6071 try {
6202 - var psPath = (process.env['SystemRoot'] || 'C:\\Windows') + '\\System32\\WindowsPowerShell\\v1.0\\powershell.exe';
6203 - var child_process = require('child_process');
6204 - var safePackageName = packageName.replace(/'/g, "''");
6205 - var completionMarker = '###DONE###' + Date.now();
6206 -
6207 - var child = child_process.execFile(psPath, ['powershell', '-NoProfile', '-NoLogo', '-Command', '-'], {});
6208 -
6209 - child.stdout.str = '';
6210 - child.stderr.str = '';
6211 - child._sessionid = sessionid;
6212 - child._packageName = packageName;
6213 - child._marker = completionMarker;
6214 - child._completed = false;
6215 - child._logFile = logFile;
6216 -
6217 - child.stdout.on('data', function(c) {
6218 - this.str += c.toString();
6219 -
6220 - if (!child._completed && this.str.indexOf(child._marker) >= 0) {
6221 - child._completed = true;
6222 - var result = this.str.split(child._marker)[0].trim();
6223 -
6224 - if (result === 'NO_MATCH' || result === '') {
6225 - sendConsoleText(JSON.stringify({
6226 - success: false,
6227 - error: 'No matching packages found',
6228 - package: child._packageName
6229 - }), child._sessionid);
6230 - } else if (result.indexOf('REMOVED') >= 0 || result.indexOf('DEPROVISIONED') >= 0) {
6231 - var items = result.split('|').filter(function(x) { return x.length > 0; });
6232 - sendConsoleText(JSON.stringify({
6233 - success: true,
6234 - message: 'Store app removed',
6235 - results: items
6236 - }), child._sessionid);
6237 - } else if (result.indexOf('FAILED') >= 0) {
6238 - sendConsoleText(JSON.stringify({
6239 - success: false,
6240 - error: 'Removal failed',
6241 - details: result.split('|')
6242 - }), child._sessionid);
6243 - } else {
6244 - sendConsoleText(JSON.stringify({ output: result }), child._sessionid);
6245 - }
6246 - }
6072 + var timestamp = new Date().toISOString();
6073 + var logLine = timestamp + ' | ' + message;
6074 + logLine = logLine.replace(/"/g, '""').replace(/&/g, '^&').replace(/</g, '^<').replace(/>/g, '^>').replace(/\|/g, '^|');
6075 + var logChild = child_process.execFile(cmdPath, ['cmd', '/c', 'echo ' + logLine + ' >> "' + logFile + '"'], { timeout: 5000 });
6076 + logChild.on('exit', function() {
6077 + if (callback) callback();
6078 });
6248 -
6249 - child.stderr.on('data', function(c) { this.str += c.toString(); });
6250 -
6251 - // PowerShell-Skript mit Logging
6252 - var script = [
6253 - "$LogFile = '" + logFile + "'",
6254 - "function Write-Log { param([string]$Message); $LogLine = \"$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - $Message\"; Add-Content -Path $LogFile -Value $LogLine -ErrorAction SilentlyContinue }",
6255 - "",
6256 - "Write-Log 'STORE UNINSTALL START: " + safePackageName + "'",
6257 - "Write-Log \"Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)\"",
6258 - "",
6259 - "$ErrorActionPreference = 'SilentlyContinue'",
6260 - "$results = @()",
6261 - "",
6262 - "# Packages suchen",
6263 - "$pkgs = Get-AppxPackage -AllUsers -Name '*" + safePackageName + "*'",
6264 - "Write-Log \"Found (AllUsers): $($pkgs.Count) packages\"",
6265 - "",
6266 - "if (-not $pkgs) {",
6267 - " $pkgs = Get-AppxPackage -Name '*" + safePackageName + "*'",
6268 - " Write-Log \"Found (CurrentUser): $($pkgs.Count) packages\"",
6269 - "}",
6270 - "",
6271 - "foreach ($p in $pkgs) {",
6272 - " Write-Log \"Removing: $($p.PackageFullName)\"",
6273 - " try {",
6274 - " Remove-AppxPackage -Package $p.PackageFullName -AllUsers -ErrorAction Stop",
6275 - " Write-Log 'SUCCESS: Removed with -AllUsers'",
6276 - " $results += 'REMOVED_ALLUSERS:' + $p.PackageFullName",
6277 - " } catch {",
6278 - " Write-Log \"FAILED -AllUsers: $($_.Exception.Message)\"",
6279 - " try {",
6280 - " Remove-AppxPackage -Package $p.PackageFullName -ErrorAction Stop",
6281 - " Write-Log 'SUCCESS: Removed'",
6282 - " $results += 'REMOVED:' + $p.PackageFullName",
6283 - " } catch {",
6284 - " Write-Log \"FAILED: $($_.Exception.Message)\"",
6285 - " $results += 'FAILED:' + $p.PackageFullName + ':' + $_.Exception.Message",
6286 - " }",
6287 - " }",
6288 - "}",
6289 - "",
6290 - "# Provisioned Packages entfernen",
6291 - "$prov = Get-AppxProvisionedPackage -Online 2>$null | Where-Object { $_.PackageName -like '*" + safePackageName + "*' }",
6292 - "Write-Log \"Found provisioned: $($prov.Count) packages\"",
6293 - "",
6294 - "foreach ($pr in $prov) {",
6295 - " Write-Log \"Deprovisioning: $($pr.DisplayName)\"",
6296 - " try {",
6297 - " Remove-AppxProvisionedPackage -Online -PackageName $pr.PackageName -ErrorAction Stop | Out-Null",
6298 - " Write-Log 'SUCCESS: Deprovisioned'",
6299 - " $results += 'DEPROVISIONED:' + $pr.DisplayName",
6300 - " } catch {",
6301 - " Write-Log \"FAILED: $($_.Exception.Message)\"",
6302 - " $results += 'DEPROV_FAILED:' + $pr.DisplayName",
6303 - " }",
6304 - "}",
6305 - "",
6306 - "if ($results.Count -eq 0) {",
6307 - " Write-Log 'NO_MATCH'",
6308 - " 'NO_MATCH'",
6309 - "} else {",
6310 - " $output = $results -join '|'",
6311 - " Write-Log \"RESULT: $output\"",
6312 - " $output",
6313 - "}",
6314 - "'" + completionMarker + "'",
6315 - "exit"
6316 - ].join("\r\n");
6317 -
6318 - child.stdin.write(script + "\r\n");
6319 -
6320 - setTimeout(function() {
6321 - if (!child._completed) {
6322 - sendConsoleText(JSON.stringify({ error: 'Timeout after 2 minutes' }), child._sessionid);
6323 - }
6324 - }, 120000);
6325 -
6326 - response = JSON.stringify({ status: 'Store app removal started', package: packageName });
6327 - } catch (ex) {
6328 - var logErr = new Date().toISOString() + ' - STORE UNINSTALL ERROR: ' + ex.toString() + '\r\n';
6329 - try { require('fs').appendFileSync(logFile, logErr); } catch (e) { }
6330 - response = JSON.stringify({ error: ex.toString() });
6079 + } catch (e) {
6080 + if (callback) callback();
6081 }
6332 - break;
6082 + }
6083 + try {
6084 + writeLog('UNINSTALL START - Command: ' + uninstallCmd.replace(/\\/g, '/'));
6085 + var originalCmd = uninstallCmd;
6086 + if (uninstallCmd.toLowerCase().indexOf('msiexec') >= 0) {
6087 + uninstallCmd = uninstallCmd.replace(/\/q[nbrf]?/gi, '');
6088 + if (uninstallCmd.indexOf('/QN') < 0) {
6089 + uninstallCmd = uninstallCmd + ' /QN /norestart';
6090 + }
6091 + } else {
6092 + if (uninstallCmd.toLowerCase().indexOf('/s') < 0) {
6093 + uninstallCmd = uninstallCmd + ' /S /silent /SILENT /VERYSILENT /quiet /norestart';
6094 + }
6095 + }
6096 + uninstallCmd = uninstallCmd.replace(/\s+/g, ' ').trim();
6097 + writeLog('UNINSTALL EXEC - Modified: ' + uninstallCmd.replace(/\\/g, '/'));
6098 + var child = child_process.execFile(cmdPath, ['cmd', '/c', uninstallCmd], { timeout: 300000 });
6099 + child.stdout.str = '';
6100 + child.stderr.str = '';
6101 + child._sessionid = sessionid;
6102 + child._cmd = uninstallCmd;
6103 + child._originalCmd = originalCmd;
6104 + child._writeLog = writeLog;
6105 + child.stdout.on('data', function(c) { this.str += c.toString(); });
6106 + child.stderr.on('data', function(c) { this.str += c.toString(); });
6107 + child.on('exit', function(code) {
6108 + var success = (code === 0 || code === null || code === 3010);
6109 + var status = success ? 'SUCCESS' : 'FAILED';
6110 + child._writeLog('UNINSTALL ' + status + ' - ExitCode: ' + code);
6111 + var result = {
6112 + success: success,
6113 + exitCode: code,
6114 + command: child._cmd
6115 + };
6116 + if (child.stdout.str) result.stdout = child.stdout.str.trim().substring(0, 500);
6117 + if (child.stderr.str) result.stderr = child.stderr.str.trim().substring(0, 500);
6118 + sendConsoleText(JSON.stringify(result), child._sessionid);
6119 + });
6120 + response = JSON.stringify({ status: 'Silent uninstall started', command: uninstallCmd });
6121 + } catch (ex) {
6122 + writeLog('UNINSTALL ERROR - ' + ex.toString());
6123 + response = JSON.stringify({ error: ex.toString() });
6124 + }
6125 + }
6126 + break;
6127 + }
6128 + case 'uninstallstoreapp': {
6129 + if (args['_'].length < 1) {
6130 + response = "Usage: uninstallstoreapp <PackageName>";
6131 + } else {
6132 + var packageName = args['_'][0];
6133 + var logDir = (process.env['ProgramData'] || 'C:\\ProgramData') + '\\MeshAgent';
6134 + try { if (!require('fs').existsSync(logDir)) { require('fs').mkdirSync(logDir); } } catch (e) { }
6135 + var logFile = logDir + '\\MeshAgent_StoreUninstall.log';
6136 + try {
6137 + var psPath = (process.env['SystemRoot'] || 'C:\\Windows') + '\\System32\\WindowsPowerShell\\v1.0\\powershell.exe';
6138 + var child_process = require('child_process');
6139 + var safePackageName = packageName.replace(/'/g, "''");
6140 + var completionMarker = '###DONE###' + Date.now();
6141 + var child = child_process.execFile(psPath, ['powershell', '-NoProfile', '-NoLogo', '-Command', '-'], {});
6142 + child.stdout.str = '';
6143 + child.stderr.str = '';
6144 + child._sessionid = sessionid;
6145 + child._packageName = packageName;
6146 + child._marker = completionMarker;
6147 + child._completed = false;
6148 + child._logFile = logFile;
6149 + child.stdout.on('data', function(c) {
6150 + this.str += c.toString();
6151 + if (!child._completed && this.str.indexOf(child._marker) >= 0) {
6152 + child._completed = true;
6153 + var result = this.str.split(child._marker)[0].trim();
6154 + if (result === 'NO_MATCH' || result === '') {
6155 + sendConsoleText(JSON.stringify({
6156 + success: false,
6157 + error: 'No matching packages found',
6158 + package: child._packageName
6159 + }), child._sessionid);
6160 + } else if (result.indexOf('REMOVED') >= 0 || result.indexOf('DEPROVISIONED') >= 0) {
6161 + var items = result.split('|').filter(function(x) { return x.length > 0; });
6162 + sendConsoleText(JSON.stringify({
6163 + success: true,
6164 + message: 'Store app removed',
6165 + results: items
6166 + }), child._sessionid);
6167 + } else if (result.indexOf('FAILED') >= 0) {
6168 + sendConsoleText(JSON.stringify({
6169 + success: false,
6170 + error: 'Removal failed',
6171 + details: result.split('|')
6172 + }), child._sessionid);
6173 + } else {
6174 + sendConsoleText(JSON.stringify({ output: result }), child._sessionid);
6175 + }
6176 + }
6177 + });
6178 + child.stderr.on('data', function(c) { this.str += c.toString(); });
6179 + var script = [
6180 + "$LogFile = '" + logFile + "'",
6181 + "function Write-Log { param([string]$Message); $LogLine = \"$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - $Message\"; Add-Content -Path $LogFile -Value $LogLine -ErrorAction SilentlyContinue }",
6182 + "",
6183 + "Write-Log 'STORE UNINSTALL START: " + safePackageName + "'",
6184 + "Write-Log \"Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)\"",
6185 + "",
6186 + "$ErrorActionPreference = 'SilentlyContinue'",
6187 + "$results = @()",
6188 + "",
6189 + "# Packages suchen",
6190 + "$pkgs = Get-AppxPackage -AllUsers -Name '*" + safePackageName + "*'",
6191 + "Write-Log \"Found (AllUsers): $($pkgs.Count) packages\"",
6192 + "",
6193 + "if (-not $pkgs) {",
6194 + " $pkgs = Get-AppxPackage -Name '*" + safePackageName + "*'",
6195 + " Write-Log \"Found (CurrentUser): $($pkgs.Count) packages\"",
6196 + "}",
6197 + "",
6198 + "foreach ($p in $pkgs) {",
6199 + " Write-Log \"Removing: $($p.PackageFullName)\"",
6200 + " try {",
6201 + " Remove-AppxPackage -Package $p.PackageFullName -AllUsers -ErrorAction Stop",
6202 + " Write-Log 'SUCCESS: Removed with -AllUsers'",
6203 + " $results += 'REMOVED_ALLUSERS:' + $p.PackageFullName",
6204 + " } catch {",
6205 + " Write-Log \"FAILED -AllUsers: $($_.Exception.Message)\"",
6206 + " try {",
6207 + " Remove-AppxPackage -Package $p.PackageFullName -ErrorAction Stop",
6208 + " Write-Log 'SUCCESS: Removed'",
6209 + " $results += 'REMOVED:' + $p.PackageFullName",
6210 + " } catch {",
6211 + " Write-Log \"FAILED: $($_.Exception.Message)\"",
6212 + " $results += 'FAILED:' + $p.PackageFullName + ':' + $_.Exception.Message",
6213 + " }",
6214 + " }",
6215 + "}",
6216 + "",
6217 + "# Provisioned Packages entfernen",
6218 + "$prov = Get-AppxProvisionedPackage -Online 2>$null | Where-Object { $_.PackageName -like '*" + safePackageName + "*' }",
6219 + "Write-Log \"Found provisioned: $($prov.Count) packages\"",
6220 + "",
6221 + "foreach ($pr in $prov) {",
6222 + " Write-Log \"Deprovisioning: $($pr.DisplayName)\"",
6223 + " try {",
6224 + " Remove-AppxProvisionedPackage -Online -PackageName $pr.PackageName -ErrorAction Stop | Out-Null",
6225 + " Write-Log 'SUCCESS: Deprovisioned'",
6226 + " $results += 'DEPROVISIONED:' + $pr.DisplayName",
6227 + " } catch {",
6228 + " Write-Log \"FAILED: $($_.Exception.Message)\"",
6229 + " $results += 'DEPROV_FAILED:' + $pr.DisplayName",
6230 + " }",
6231 + "}",
6232 + "",
6233 + "if ($results.Count -eq 0) {",
6234 + " Write-Log 'NO_MATCH'",
6235 + " 'NO_MATCH'",
6236 + "} else {",
6237 + " $output = $results -join '|'",
6238 + " Write-Log \"RESULT: $output\"",
6239 + " $output",
6240 + "}",
6241 + "'" + completionMarker + "'",
6242 + "exit"
6243 + ].join("\r\n");
6244 + child.stdin.write(script + "\r\n");
6245 + setTimeout(function() {
6246 + if (!child._completed) {
6247 + sendConsoleText(JSON.stringify({ error: 'Timeout after 2 minutes' }), child._sessionid);
6248 + }
6249 + }, 120000);
6250 + response = JSON.stringify({ status: 'Store app removal started', package: packageName });
6251 + } catch (ex) {
6252 + var logErr = new Date().toISOString() + ' - STORE UNINSTALL ERROR: ' + ex.toString() + '\r\n';
6253 + try { require('fs').appendFileSync(logFile, logErr); } catch (e) { }
6254 + response = JSON.stringify({ error: ex.toString() });
6255 + }
6256 }
6257 + break;
6258 + }
6259 case 'qfe': {
6260 if(process.platform == 'win32'){
6261 var qfe = require('win-info').qfe();
agents/modules_meshcore/win-info.js
+8 -23
@@ -183,55 +183,40 @@ function pendingReboot()
183 }
184
185 function installedApps() {
186 + var ret = new promise(function (res, rej) { this._res = res; this._rej = rej; });
187 var registry = require('win-registry');
188 var HKEY = registry.HKEY;
189 var results = [];
189 -
190 var registryPaths = [
191 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall',
192 'SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall'
193 ];
194 -
194 try {
195 for (var i in registryPaths) {
196 var path = registryPaths[i];
198 -
199 - // Wir nutzen direkt die Registry-Komponente für die Unterschlüssel
197 var keyInfo = registry.QueryKey(HKEY.LocalMachine, path);
201 -
202 - // Falls QueryKey fehlschlägt oder keine Subkeys hat, überspringen
198 if (!keyInfo || !keyInfo.subkeys) continue;
204 -
199 for (var j = 0; j < keyInfo.subkeys.length; j++) {
200 var subPath = path + '\\' + keyInfo.subkeys[j];
207 -
208 - // Wir nutzen deine im Modul definierte regQuery Funktion!
209 - // Diese ist sicher, da sie try-catch bereits enthält.
201 var name = regQuery(HKEY.LocalMachine, subPath, 'DisplayName');
211 -
202 if (name && name != '') {
203 results.push({
204 name: name,
205 version: regQuery(HKEY.LocalMachine, subPath, 'DisplayVersion') || '',
206 publisher: regQuery(HKEY.LocalMachine, subPath, 'Publisher') || '',
217 - uninstall: regQuery(HKEY.LocalMachine, subPath, 'QuietUninstallString') ||
218 - regQuery(HKEY.LocalMachine, subPath, 'UninstallString') || ''
207 + uninstall: regQuery(HKEY.LocalMachine, subPath, 'QuietUninstallString') || regQuery(HKEY.LocalMachine, subPath, 'UninstallString') || '',
208 + location: regQuery(HKEY.LocalMachine, subPath, 'InstallLocation') || '',
209 + date: regQuery(HKEY.LocalMachine, subPath, 'InstallDate') || ''
210 });
211 }
212 }
213 }
214 } catch (e) {
224 - // Stille Fehlerbehandlung für maximale Stabilität im Agenten
215 + ret._rej(e);
216 + return (ret);
217 }
226 -
227 - // Das Promise-Mirror Objekt für MeshCentral Kompatibilität
228 - return {
229 - data: results,
230 - then: function(cb) { if (typeof cb === 'function') cb(this.data); return this; },
231 - catch: function(cb) { return this; },
232 - finally: function(cb) { if (typeof cb === 'function') cb(); return this; },
233 - on: function(ev, cb) { if (ev === 'exit' && typeof cb === 'function') cb(0); return this; }
234 - };
218 + ret._res(results);
219 + return (ret);
220 }
221
222 function installedStoreApps() {
meshagent.js
+6
@@ -1224,6 +1224,12 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) {
1224 parent.routeAgentCommand(command, obj.domain.id, obj.dbNodeKey, obj.dbMeshKey);
1225 break;
1226 }
1227 + case 'software':
1228 + {
1229 + // Todo - save software into database for offline access but send to web clients for now
1230 + parent.routeAgentCommand(command, obj.domain.id, obj.dbNodeKey, obj.dbMeshKey);
1231 + break;
1232 + }
1233 case 'coreinfo':
1234 {
1235 // Sent by the agent to update agent information
meshuser.js
+23 -42
@@ -978,6 +978,27 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
978 }
979 break;
980 }
981 + case 'software': {
982 + if (domain.softwareinventory !== true) {
983 + if (command.responseid != null) { try { ws.send(JSON.stringify({ action: 'software', responseid: command.responseid, result: 'Denied' })); } catch (ex) { } }
984 + break;
985 + }
986 + parent.GetNodeWithRights(domain, user, command.nodeid, function (node, rights, visible) {
987 + var mesh = parent.meshes[node.meshid];
988 + if ((node != null) && (mesh != null) && ((rights & MESHRIGHT_DEVICEDETAILS) != 0)) {
989 + var agent = parent.wsagents[command.nodeid];
990 + if (agent != null) {
991 + console.log(command);
992 + routeCommandToNode(command, requiredRights, requiredNonRights, func, routingOptions);
993 + } else {
994 + if (command.responseid != null) { try { ws.send(JSON.stringify({ action: 'software', responseid: command.responseid, result: 'Agent offline' })); } catch (ex) { } }
995 + }
996 + } else {
997 + if (command.responseid != null) { try { ws.send(JSON.stringify({ action: 'software', responseid: command.responseid, result: 'Denied' })); } catch (ex) { } }
998 + }
999 + });
1000 + break;
1001 + }
1002 case 'msg':
1003 {
1004 // Check the nodeid
@@ -1057,48 +1078,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
1078 var func = null;
1079 if (command.responseid != null) { func = function (r) { try { ws.send(JSON.stringify({ action: 'msg', result: r ? 'OK' : 'Unable to route', tag: command.tag, responseid: command.responseid })); } catch (ex) { } } }
1080
1060 - // BEGIN SOFTWARE
1061 - var isSoftwareCmd = (command.type === 'console') &&
1062 - (command.value === 'installedapps' ||
1063 - command.value === 'installedstoreapps' ||
1064 - (typeof command.value === 'string' &&
1065 - (command.value.indexOf('uninstallapp ') === 0 ||
1066 - command.value.indexOf('uninstallstoreapp ') === 0)));
1067 -
1068 - if (isSoftwareCmd) {
1069 - if (domain.softwareinventory !== true) { if (func) { func(false); } break; }
1070 - // Wir prüfen auf MESHRIGHT_DEVICEDETAILS (0x100000)
1071 - parent.GetNodeWithRights(domain, user, command.nodeid, function (node, rights, visible) {
1072 - var mesh = parent.meshes[node.meshid];
1073 - if ((node != null) && (mesh != null) && ((rights & MESHRIGHT_DEVICEDETAILS) != 0)) {
1074 - var agent = parent.wsagents[command.nodeid];
1075 - if (agent != null) {
1076 - // Wir bauen das Command um
1077 - // WICHTIG: type='software' und sessionid muss gesetzt sein
1078 - var newCommand = {
1079 - action: 'msg',
1080 - type: 'software', // Neuer Typ!
1081 - value: command.value,
1082 - sessionid: ws.sessionId, // Essenziell für den Rückweg
1083 - rights: rights,
1084 - username: user.name,
1085 - remoteaddr: req.clientIp
1086 - };
1087 -
1088 - try { agent.send(JSON.stringify(newCommand)); } catch (ex) { }
1089 - if (func) { func(true); }
1090 - } else {
1091 - if (func) { func(false); } // Agent offline
1092 - }
1093 - } else {
1094 - if (func) { func(false); } // Keine Rechte
1095 - }
1096 - });
1097 - } else {
1098 - // Standard Routing für Console etc.
1099 - routeCommandToNode(command, requiredRights, requiredNonRights, func, routingOptions);
1100 - }
1101 - // END SOFTWARE
1081 + // Route this command to a target node
1082 + routeCommandToNode(command, requiredRights, requiredNonRights, func, routingOptions);
1083 break;
1084 }
1085 case 'events':
translate/translate.json
+5098 -5064
@@ -26,10 +26,10 @@
26 "zh-chs": " + CIRA",
27 "zh-cht": " + CIRA",
28 "xloc": [
29 - "default.handlebars->121->2336",
29 "default.handlebars->121->2338",
31 - "default3.handlebars->123->2317",
32 - "default3.handlebars->123->2319"
30 + "default.handlebars->121->2340",
31 + "default3.handlebars->123->2321",
32 + "default3.handlebars->123->2323"
33 ]
34 },
35 {
@@ -278,8 +278,8 @@
278 "zh-chs": " 可以使用密码提示,但不建议使用。",
279 "zh-cht": " 可以使用密碼提示,但不建議使用。",
280 "xloc": [
281 - "default.handlebars->121->2204",
282 - "default3.handlebars->123->2171"
281 + "default.handlebars->121->2206",
282 + "default3.handlebars->123->2175"
283 ]
284 },
285 {
@@ -308,10 +308,10 @@
308 "zh-chs": " 用户需要先登录到该服务器一次,然后才能将其添加到设备组。",
309 "zh-cht": " 用戶需要先登入到該伺服器一次,然後才能將其新增到裝置群。",
310 "xloc": [
311 - "default.handlebars->121->2462",
312 - "default.handlebars->121->3051",
313 - "default3.handlebars->123->2444",
314 - "default3.handlebars->123->3030"
311 + "default.handlebars->121->2464",
312 + "default.handlebars->121->3053",
313 + "default3.handlebars->123->2448",
314 + "default3.handlebars->123->3034"
315 ]
316 },
317 {
@@ -399,7 +399,7 @@
399 "zh-cht": " TLS。",
400 "xloc": [
401 "default.handlebars->121->289",
402 - "default3.handlebars->123->283"
402 + "default3.handlebars->123->285"
403 ]
404 },
405 {
@@ -429,7 +429,7 @@
429 "zh-cht": " 沒有TLS。",
430 "xloc": [
431 "default.handlebars->121->290",
432 - "default3.handlebars->123->284"
432 + "default3.handlebars->123->286"
433 ]
434 },
435 {
@@ -519,7 +519,7 @@
519 "zh-cht": "(可選的)",
520 "xloc": [
521 "default.handlebars->121->605",
522 - "default3.handlebars->123->595"
522 + "default3.handlebars->123->597"
523 ]
524 },
525 {
@@ -569,10 +569,10 @@
569 "zh-chs": "* 8-16个字符,1个大写,1个小写,1个数字,1个非字母数字。",
570 "zh-cht": "* 8-16個字符,1個大寫,1個小寫,1個數字,1個非字母數字。",
571 "xloc": [
572 - "default.handlebars->121->2420",
572 + "default.handlebars->121->2422",
573 "default.handlebars->121->567",
574 - "default3.handlebars->123->2399",
575 - "default3.handlebars->123->557"
574 + "default3.handlebars->123->2403",
575 + "default3.handlebars->123->559"
576 ]
577 },
578 {
@@ -602,7 +602,7 @@
602 "zh-cht": "*對於BSD,首先運行“ pkg install wget sudo bash ”。",
603 "xloc": [
604 "default.handlebars->121->664",
605 - "default3.handlebars->123->654"
605 + "default3.handlebars->123->656"
606 ]
607 },
608 {
@@ -662,14 +662,14 @@
662 "default.handlebars->121->1687",
663 "default.handlebars->121->1689",
664 "default.handlebars->121->1691",
665 - "default.handlebars->121->2538",
666 - "default.handlebars->121->2824",
667 - "default3.handlebars->123->1023",
668 - "default3.handlebars->123->1659",
665 + "default.handlebars->121->2540",
666 + "default.handlebars->121->2826",
667 + "default3.handlebars->123->1025",
668 "default3.handlebars->123->1661",
669 "default3.handlebars->123->1663",
671 - "default3.handlebars->123->2520",
672 - "default3.handlebars->123->2806"
670 + "default3.handlebars->123->1665",
671 + "default3.handlebars->123->2524",
672 + "default3.handlebars->123->2810"
673 ]
674 },
675 {
@@ -758,7 +758,7 @@
758 "xloc": [
759 "default-mobile.handlebars->55->393",
760 "default.handlebars->121->391",
761 - "default3.handlebars->123->380"
761 + "default3.handlebars->123->382"
762 ]
763 },
764 {
@@ -788,7 +788,7 @@
788 "zh-cht": ", 本地設備",
789 "xloc": [
790 "default.handlebars->121->393",
791 - "default3.handlebars->123->382"
791 + "default3.handlebars->123->384"
792 ]
793 },
794 {
@@ -818,8 +818,8 @@
818 "zh-cht": ",MQTT在線",
819 "xloc": [
820 "default-mobile.handlebars->55->973",
821 - "default.handlebars->121->1878",
822 - "default3.handlebars->123->1848"
821 + "default.handlebars->121->1880",
822 + "default3.handlebars->123->1852"
823 ]
824 },
825 {
@@ -849,9 +849,9 @@
849 "zh-cht": ", 不同意",
850 "xloc": [
851 "default.handlebars->121->1128",
852 - "default.handlebars->121->2378",
853 - "default3.handlebars->123->1118",
854 - "default3.handlebars->123->2359"
852 + "default.handlebars->121->2380",
853 + "default3.handlebars->123->1120",
854 + "default3.handlebars->123->2363"
855 ]
856 },
857 {
@@ -881,9 +881,9 @@
881 "zh-cht": ",提示同意",
882 "xloc": [
883 "default.handlebars->121->1129",
884 - "default.handlebars->121->2379",
885 - "default3.handlebars->123->1119",
886 - "default3.handlebars->123->2360"
884 + "default.handlebars->121->2381",
885 + "default3.handlebars->123->1121",
886 + "default3.handlebars->123->2364"
887 ]
888 },
889 {
@@ -912,7 +912,7 @@
912 "zh-cht": ", RDP",
913 "xloc": [
914 "default.handlebars->121->1430",
915 - "default3.handlebars->123->1411"
915 + "default3.handlebars->123->1413"
916 ]
917 },
918 {
@@ -942,9 +942,9 @@
942 "zh-cht": ", 每天重複",
943 "xloc": [
944 "default.handlebars->121->1125",
945 - "default.handlebars->121->2375",
946 - "default3.handlebars->123->1115",
947 - "default3.handlebars->123->2356"
945 + "default.handlebars->121->2377",
946 + "default3.handlebars->123->1117",
947 + "default3.handlebars->123->2360"
948 ]
949 },
950 {
@@ -974,9 +974,9 @@
974 "zh-cht": ", 每週重複一次",
975 "xloc": [
976 "default.handlebars->121->1126",
977 - "default.handlebars->121->2376",
978 - "default3.handlebars->123->1116",
979 - "default3.handlebars->123->2357"
977 + "default.handlebars->121->2378",
978 + "default3.handlebars->123->1118",
979 + "default3.handlebars->123->2361"
980 ]
981 },
982 {
@@ -1006,7 +1006,7 @@
1006 "zh-cht": ", 中繼設備",
1007 "xloc": [
1008 "default.handlebars->121->392",
1009 - "default3.handlebars->123->381"
1009 + "default3.handlebars->123->383"
1010 ]
1011 },
1012 {
@@ -1036,7 +1036,7 @@
1036 "xloc": [
1037 "default-mobile.handlebars->55->696",
1038 "default.handlebars->121->1552",
1039 - "default3.handlebars->123->1524"
1039 + "default3.handlebars->123->1526"
1040 ]
1041 },
1042 {
@@ -1065,7 +1065,7 @@
1065 "zh-cht": ", SSH",
1066 "xloc": [
1067 "default.handlebars->121->1520",
1068 - "default3.handlebars->123->1492"
1068 + "default3.handlebars->123->1494"
1069 ]
1070 },
1071 {
@@ -1094,7 +1094,7 @@
1094 "zh-cht": ",軟體KVM",
1095 "xloc": [
1096 "default.handlebars->121->1413",
1097 - "default3.handlebars->123->1394",
1097 + "default3.handlebars->123->1396",
1098 "sharing.handlebars->49->12"
1099 ]
1100 },
@@ -1125,9 +1125,9 @@
1125 "zh-cht": ", 工具欄",
1126 "xloc": [
1127 "default.handlebars->121->1130",
1128 - "default.handlebars->121->2380",
1129 - "default3.handlebars->123->1120",
1130 - "default3.handlebars->123->2361"
1128 + "default.handlebars->121->2382",
1129 + "default3.handlebars->123->1122",
1130 + "default3.handlebars->123->2365"
1131 ]
1132 },
1133 {
@@ -1157,9 +1157,9 @@
1157 "zh-cht": ", 僅查看桌面",
1158 "xloc": [
1159 "default.handlebars->121->1127",
1160 - "default.handlebars->121->2377",
1161 - "default3.handlebars->123->1117",
1162 - "default3.handlebars->123->2358"
1160 + "default.handlebars->121->2379",
1161 + "default3.handlebars->123->1119",
1162 + "default3.handlebars->123->2362"
1163 ]
1164 },
1165 {
@@ -1193,9 +1193,9 @@
1193 "default.handlebars->121->1429",
1194 "default.handlebars->121->1521",
1195 "default.handlebars->121->1553",
1196 - "default3.handlebars->123->1410",
1197 - "default3.handlebars->123->1493",
1198 - "default3.handlebars->123->1525",
1196 + "default3.handlebars->123->1412",
1197 + "default3.handlebars->123->1495",
1198 + "default3.handlebars->123->1527",
1199 "sharing-mobile.handlebars->55->14",
1200 "sharing-mobile.handlebars->55->46",
1201 "sharing-mobile.handlebars->55->63",
@@ -1356,7 +1356,7 @@
1356 "zh-cht": ",{0}觀看",
1357 "xloc": [
1358 "default.handlebars->121->1424",
1359 - "default3.handlebars->123->1405",
1359 + "default3.handlebars->123->1407",
1360 "sharing.handlebars->49->13"
1361 ]
1362 },
@@ -1456,8 +1456,8 @@
1456 "en": "0 bps",
1457 "xloc": [
1458 "default-mobile.handlebars->55->370",
1459 - "default.handlebars->121->2621",
1460 - "default3.handlebars->123->2603"
1459 + "default.handlebars->121->2623",
1460 + "default3.handlebars->123->2607"
1461 ]
1462 },
1463 {
@@ -1514,8 +1514,8 @@
1514 "zh-chs": "1个活跃时段",
1515 "zh-cht": "1個活躍時段",
1516 "xloc": [
1517 - "default.handlebars->121->3146",
1518 - "default3.handlebars->123->3125"
1517 + "default.handlebars->121->3148",
1518 + "default3.handlebars->123->3129"
1519 ]
1520 },
1521 {
@@ -1546,8 +1546,8 @@
1546 "xloc": [
1547 "default-mobile.handlebars->55->1116",
1548 "default-mobile.handlebars->55->378",
1549 - "default.handlebars->121->2632",
1550 - "default3.handlebars->123->2614",
1549 + "default.handlebars->121->2634",
1550 + "default3.handlebars->123->2618",
1551 "download.handlebars->7->1",
1552 "download2.handlebars->11->1",
1553 "sharing-mobile.handlebars->55->111",
@@ -1610,7 +1610,7 @@
1610 "zh-cht": "1位聯絡文",
1611 "xloc": [
1612 "default.handlebars->121->1426",
1613 - "default3.handlebars->123->1407",
1613 + "default3.handlebars->123->1409",
1614 "sharing.handlebars->49->15"
1615 ]
1616 },
@@ -1643,9 +1643,9 @@
1643 "default.handlebars->121->298",
1644 "default.handlebars->121->596",
1645 "default.handlebars->121->610",
1646 - "default3.handlebars->123->293",
1647 - "default3.handlebars->123->586",
1648 - "default3.handlebars->123->600"
1646 + "default3.handlebars->123->295",
1647 + "default3.handlebars->123->588",
1648 + "default3.handlebars->123->602"
1649 ]
1650 },
1651 {
@@ -1674,8 +1674,8 @@
1674 "zh-chs": "1组",
1675 "zh-cht": "1群",
1676 "xloc": [
1677 - "default.handlebars->121->3101",
1678 - "default3.handlebars->123->3080"
1677 + "default.handlebars->121->3103",
1678 + "default3.handlebars->123->3084"
1679 ]
1680 },
1681 {
@@ -1707,9 +1707,9 @@
1707 "default.handlebars->121->296",
1708 "default.handlebars->121->594",
1709 "default.handlebars->121->608",
1710 - "default3.handlebars->123->291",
1711 - "default3.handlebars->123->584",
1712 - "default3.handlebars->123->598"
1710 + "default3.handlebars->123->293",
1711 + "default3.handlebars->123->586",
1712 + "default3.handlebars->123->600"
1713 ]
1714 },
1715 {
@@ -1739,9 +1739,9 @@
1739 "zh-cht": "1分鐘",
1740 "xloc": [
1741 "default.handlebars->121->1238",
1742 - "default.handlebars->121->2169",
1743 - "default3.handlebars->123->1227",
1744 - "default3.handlebars->123->2137"
1742 + "default.handlebars->121->2171",
1743 + "default3.handlebars->123->1229",
1744 + "default3.handlebars->123->2141"
1745 ]
1746 },
1747 {
@@ -1828,9 +1828,9 @@
1828 "default.handlebars->121->300",
1829 "default.handlebars->121->598",
1830 "default.handlebars->121->612",
1831 - "default3.handlebars->123->295",
1832 - "default3.handlebars->123->588",
1833 - "default3.handlebars->123->602"
1831 + "default3.handlebars->123->297",
1832 + "default3.handlebars->123->590",
1833 + "default3.handlebars->123->604"
1834 ]
1835 },
1836 {
@@ -1859,8 +1859,8 @@
1859 "zh-chs": "有1个用户没有显示,请使用搜索框查找用户...",
1860 "zh-cht": "有1個用戶沒有顯示,請使用搜尋框搜尋用戶...",
1861 "xloc": [
1862 - "default.handlebars->121->2856",
1863 - "default3.handlebars->123->2838"
1862 + "default.handlebars->121->2858",
1863 + "default3.handlebars->123->2842"
1864 ]
1865 },
1866 {
@@ -1890,7 +1890,7 @@
1890 "zh-cht": "1個節點",
1891 "xloc": [
1892 "default.handlebars->121->723",
1893 - "default3.handlebars->123->713"
1893 + "default3.handlebars->123->715"
1894 ]
1895 },
1896 {
@@ -1921,7 +1921,7 @@
1921 "xloc": [
1922 "default-mobile.handlebars->55->573",
1923 "default.handlebars->121->1278",
1924 - "default3.handlebars->123->1267"
1924 + "default3.handlebars->123->1269"
1925 ]
1926 },
1927 {
@@ -2006,7 +2006,7 @@
2006 "zh-cht": "1 個選定的設備處於離線狀態。",
2007 "xloc": [
2008 "default.handlebars->121->791",
2009 - "default3.handlebars->123->781"
2009 + "default3.handlebars->123->783"
2010 ]
2011 },
2012 {
@@ -2036,7 +2036,7 @@
2036 "zh-cht": "1 個選定的設備在線。",
2037 "xloc": [
2038 "default.handlebars->121->789",
2039 - "default3.handlebars->123->779"
2039 + "default3.handlebars->123->781"
2040 ]
2041 },
2042 {
@@ -2072,7 +2072,7 @@
2072 "default-mobile.handlebars->55->425",
2073 "default-mobile.handlebars->55->429",
2074 "default-mobile.handlebars->55->433",
2075 - "default.handlebars->121->2860",
2075 + "default.handlebars->121->2862",
2076 "default.handlebars->121->485",
2077 "default.handlebars->121->488",
2078 "default.handlebars->121->492",
@@ -2080,14 +2080,14 @@
2080 "default.handlebars->121->500",
2081 "default.handlebars->121->504",
2082 "default.handlebars->121->508",
2083 - "default3.handlebars->123->2842",
2084 - "default3.handlebars->123->475",
2085 - "default3.handlebars->123->478",
2086 - "default3.handlebars->123->482",
2087 - "default3.handlebars->123->486",
2088 - "default3.handlebars->123->490",
2089 - "default3.handlebars->123->494",
2090 - "default3.handlebars->123->498"
2083 + "default3.handlebars->123->2846",
2084 + "default3.handlebars->123->477",
2085 + "default3.handlebars->123->480",
2086 + "default3.handlebars->123->484",
2087 + "default3.handlebars->123->488",
2088 + "default3.handlebars->123->492",
2089 + "default3.handlebars->123->496",
2090 + "default3.handlebars->123->500"
2091 ]
2092 },
2093 {
@@ -2119,9 +2119,9 @@
2119 "default.handlebars->121->299",
2120 "default.handlebars->121->597",
2121 "default.handlebars->121->611",
2122 - "default3.handlebars->123->294",
2123 - "default3.handlebars->123->587",
2124 - "default3.handlebars->123->601"
2122 + "default3.handlebars->123->296",
2123 + "default3.handlebars->123->589",
2124 + "default3.handlebars->123->603"
2125 ]
2126 },
2127 {
@@ -2300,9 +2300,9 @@
2300 "zh-cht": "10分鐘",
2301 "xloc": [
2302 "default.handlebars->121->1240",
2303 - "default.handlebars->121->2171",
2304 - "default3.handlebars->123->1229",
2305 - "default3.handlebars->123->2139"
2303 + "default.handlebars->121->2173",
2304 + "default3.handlebars->123->1231",
2305 + "default3.handlebars->123->2143"
2306 ]
2307 },
2308 {
@@ -2333,7 +2333,7 @@
2333 "xloc": [
2334 "default-mobile.handlebars->55->575",
2335 "default.handlebars->121->1280",
2336 - "default3.handlebars->123->1269"
2336 + "default3.handlebars->123->1271"
2337 ]
2338 },
2339 {
@@ -2511,9 +2511,9 @@
2511 "zh-cht": "12小時",
2512 "xloc": [
2513 "default.handlebars->121->1248",
2514 - "default.handlebars->121->2179",
2515 - "default3.handlebars->123->1237",
2516 - "default3.handlebars->123->2147"
2514 + "default.handlebars->121->2181",
2515 + "default3.handlebars->123->1239",
2516 + "default3.handlebars->123->2151"
2517 ]
2518 },
2519 {
@@ -2633,9 +2633,9 @@
2633 "zh-cht": "15分鐘",
2634 "xloc": [
2635 "default.handlebars->121->1241",
2636 - "default.handlebars->121->2172",
2637 - "default3.handlebars->123->1230",
2638 - "default3.handlebars->123->2140"
2636 + "default.handlebars->121->2174",
2637 + "default3.handlebars->123->1232",
2638 + "default3.handlebars->123->2144"
2639 ]
2640 },
2641 {
@@ -2665,9 +2665,9 @@
2665 "zh-cht": "16小時",
2666 "xloc": [
2667 "default.handlebars->121->1249",
2668 - "default.handlebars->121->2180",
2669 - "default3.handlebars->123->1238",
2670 - "default3.handlebars->123->2148"
2668 + "default.handlebars->121->2182",
2669 + "default3.handlebars->123->1240",
2670 + "default3.handlebars->123->2152"
2671 ]
2672 },
2673 {
@@ -2813,9 +2813,9 @@
2813 "zh-cht": "2天",
2814 "xloc": [
2815 "default.handlebars->121->1251",
2816 - "default.handlebars->121->2182",
2817 - "default3.handlebars->123->1240",
2818 - "default3.handlebars->123->2150"
2816 + "default.handlebars->121->2184",
2817 + "default3.handlebars->123->1242",
2818 + "default3.handlebars->123->2154"
2819 ]
2820 },
2821 {
@@ -2845,9 +2845,9 @@
2845 "zh-cht": "2小時",
2846 "xloc": [
2847 "default.handlebars->121->1245",
2848 - "default.handlebars->121->2176",
2849 - "default3.handlebars->123->1234",
2850 - "default3.handlebars->123->2144"
2848 + "default.handlebars->121->2178",
2849 + "default3.handlebars->123->1236",
2850 + "default3.handlebars->123->2148"
2851 ]
2852 },
2853 {
@@ -2878,7 +2878,7 @@
2878 "xloc": [
2879 "default-mobile.handlebars->55->83",
2880 "default.handlebars->121->240",
2881 - "default3.handlebars->123->235"
2881 + "default3.handlebars->123->237"
2882 ]
2883 },
2884 {
@@ -2909,7 +2909,7 @@
2909 "xloc": [
2910 "default-mobile.handlebars->55->88",
2911 "default.handlebars->121->245",
2912 - "default3.handlebars->123->240"
2912 + "default3.handlebars->123->242"
2913 ]
2914 },
2915 {
@@ -3058,9 +3058,9 @@
3058 "zh-cht": "24小時",
3059 "xloc": [
3060 "default.handlebars->121->1250",
3061 - "default.handlebars->121->2181",
3062 - "default3.handlebars->123->1239",
3063 - "default3.handlebars->123->2149"
3061 + "default.handlebars->121->2183",
3062 + "default3.handlebars->123->1241",
3063 + "default3.handlebars->123->2153"
3064 ]
3065 },
3066 {
@@ -3121,8 +3121,8 @@
3121 "zh-chs": "2FA备份代码已清除",
3122 "zh-cht": "2FA備份代碼已清除",
3123 "xloc": [
3124 - "default.handlebars->121->2745",
3125 - "default3.handlebars->123->2727"
3124 + "default.handlebars->121->2747",
3125 + "default3.handlebars->123->2731"
3126 ]
3127 },
3128 {
@@ -3153,7 +3153,7 @@
3153 "xloc": [
3154 "default-mobile.handlebars->55->70",
3155 "default.handlebars->121->225",
3156 - "default3.handlebars->123->220"
3156 + "default3.handlebars->123->222"
3157 ]
3158 },
3159 {
@@ -3182,8 +3182,8 @@
3182 "zh-chs": "第二个因素",
3183 "zh-cht": "第二個因素",
3184 "xloc": [
3185 - "default.handlebars->121->3331",
3186 - "default3.handlebars->123->3306"
3185 + "default.handlebars->121->3333",
3186 + "default3.handlebars->123->3310"
3187 ]
3188 },
3189 {
@@ -3212,10 +3212,10 @@
3212 "zh-chs": "启用第二因素身份验证",
3213 "zh-cht": "啟用第二因素身份驗證",
3214 "xloc": [
3215 - "default.handlebars->121->2874",
3216 - "default.handlebars->121->3127",
3217 - "default3.handlebars->123->2856",
3218 - "default3.handlebars->123->3106"
3215 + "default.handlebars->121->2876",
3216 + "default.handlebars->121->3129",
3217 + "default3.handlebars->123->2860",
3218 + "default3.handlebars->123->3110"
3219 ]
3220 },
3221 {
@@ -3387,9 +3387,9 @@
3387 "zh-cht": "30分鐘",
3388 "xloc": [
3389 "default.handlebars->121->1242",
3390 - "default.handlebars->121->2173",
3391 - "default3.handlebars->123->1231",
3392 - "default3.handlebars->123->2141"
3390 + "default.handlebars->121->2175",
3391 + "default3.handlebars->123->1233",
3392 + "default3.handlebars->123->2145"
3393 ]
3394 },
3395 {
@@ -3422,8 +3422,8 @@
3422 "default-mobile.handlebars->55->753",
3423 "default.handlebars->121->1631",
3424 "default.handlebars->121->1646",
3425 - "default3.handlebars->123->1603",
3426 - "default3.handlebars->123->1615"
3425 + "default3.handlebars->123->1605",
3426 + "default3.handlebars->123->1617"
3427 ]
3428 },
3429 {
@@ -3485,9 +3485,9 @@
3485 "zh-cht": "4天",
3486 "xloc": [
3487 "default.handlebars->121->1252",
3488 - "default.handlebars->121->2183",
3489 - "default3.handlebars->123->1241",
3490 - "default3.handlebars->123->2151"
3488 + "default.handlebars->121->2185",
3489 + "default3.handlebars->123->1243",
3490 + "default3.handlebars->123->2155"
3491 ]
3492 },
3493 {
@@ -3517,9 +3517,9 @@
3517 "zh-cht": "4個小時",
3518 "xloc": [
3519 "default.handlebars->121->1246",
3520 - "default.handlebars->121->2177",
3521 - "default3.handlebars->123->1235",
3522 - "default3.handlebars->123->2145"
3520 + "default.handlebars->121->2179",
3521 + "default3.handlebars->123->1237",
3522 + "default3.handlebars->123->2149"
3523 ]
3524 },
3525 {
@@ -3666,9 +3666,9 @@
3666 "zh-cht": "45分鐘",
3667 "xloc": [
3668 "default.handlebars->121->1243",
3669 - "default.handlebars->121->2174",
3670 - "default3.handlebars->123->1232",
3671 - "default3.handlebars->123->2142"
3669 + "default.handlebars->121->2176",
3670 + "default3.handlebars->123->1234",
3671 + "default3.handlebars->123->2146"
3672 ]
3673 },
3674 {
@@ -3727,9 +3727,9 @@
3727 "zh-cht": "5分鐘",
3728 "xloc": [
3729 "default.handlebars->121->1239",
3730 - "default.handlebars->121->2170",
3731 - "default3.handlebars->123->1228",
3732 - "default3.handlebars->123->2138"
3730 + "default.handlebars->121->2172",
3731 + "default3.handlebars->123->1230",
3732 + "default3.handlebars->123->2142"
3733 ]
3734 },
3735 {
@@ -3760,7 +3760,7 @@
3760 "xloc": [
3761 "default-mobile.handlebars->55->574",
3762 "default.handlebars->121->1279",
3763 - "default3.handlebars->123->1268"
3763 + "default3.handlebars->123->1270"
3764 ]
3765 },
3766 {
@@ -3941,9 +3941,9 @@
3941 "zh-cht": "60分鐘",
3942 "xloc": [
3943 "default.handlebars->121->1244",
3944 - "default.handlebars->121->2175",
3945 - "default3.handlebars->123->1233",
3946 - "default3.handlebars->123->2143"
3944 + "default.handlebars->121->2177",
3945 + "default3.handlebars->123->1235",
3946 + "default3.handlebars->123->2147"
3947 ]
3948 },
3949 {
@@ -4035,8 +4035,8 @@
4035 "default-mobile.handlebars->55->752",
4036 "default.handlebars->121->1633",
4037 "default.handlebars->121->1645",
4038 - "default3.handlebars->123->1605",
4039 - "default3.handlebars->123->1614"
4038 + "default3.handlebars->123->1607",
4039 + "default3.handlebars->123->1616"
4040 ]
4041 },
4042 {
@@ -4095,7 +4095,7 @@
4095 "zh-cht": "7天電源狀態",
4096 "xloc": [
4097 "default.handlebars->121->1325",
4098 - "default3.handlebars->123->1309"
4098 + "default3.handlebars->123->1311"
4099 ]
4100 },
4101 {
@@ -4124,8 +4124,8 @@
4124 "zh-chs": "7天",
4125 "zh-cht": "7天",
4126 "xloc": [
4127 - "default.handlebars->121->2184",
4128 - "default3.handlebars->123->2152"
4127 + "default.handlebars->121->2186",
4128 + "default3.handlebars->123->2156"
4129 ]
4130 },
4131 {
@@ -4217,13 +4217,13 @@
4217 "zh-cht": "8小時",
4218 "xloc": [
4219 "default.handlebars->121->1247",
4220 - "default.handlebars->121->2178",
4220 + "default.handlebars->121->2180",
4221 "default.handlebars->121->595",
4222 "default.handlebars->121->609",
4223 - "default3.handlebars->123->1236",
4224 - "default3.handlebars->123->2146",
4225 - "default3.handlebars->123->585",
4226 - "default3.handlebars->123->599"
4223 + "default3.handlebars->123->1238",
4224 + "default3.handlebars->123->2150",
4225 + "default3.handlebars->123->587",
4226 + "default3.handlebars->123->601"
4227 ]
4228 },
4229 {
@@ -4426,12 +4426,12 @@
4426 "zh-cht": "ACM",
4427 "xloc": [
4428 "default-mobile.handlebars->55->504",
4429 - "default.handlebars->121->2356",
4429 + "default.handlebars->121->2358",
4430 "default.handlebars->121->473",
4431 "default.handlebars->121->929",
4432 - "default3.handlebars->123->2337",
4433 - "default3.handlebars->123->463",
4434 - "default3.handlebars->123->919"
4432 + "default3.handlebars->123->2341",
4433 + "default3.handlebars->123->465",
4434 + "default3.handlebars->123->921"
4435 ]
4436 },
4437 {
@@ -4461,8 +4461,8 @@
4461 "xloc": [
4462 "default.handlebars->121->451",
4463 "default.handlebars->121->758",
4464 - "default3.handlebars->123->441",
4465 - "default3.handlebars->123->748"
4464 + "default3.handlebars->123->443",
4465 + "default3.handlebars->123->750"
4466 ]
4467 },
4468 {
@@ -4472,7 +4472,7 @@
4472 "pl": "Host AMT",
4473 "xloc": [
4474 "default.handlebars->121->422",
4475 - "default3.handlebars->123->412"
4475 + "default3.handlebars->123->414"
4476 ]
4477 },
4478 {
@@ -4483,7 +4483,7 @@
4483 "pl": "Stan AMT",
4484 "xloc": [
4485 "default.handlebars->121->423",
4486 - "default3.handlebars->123->413"
4486 + "default3.handlebars->123->415"
4487 ]
4488 },
4489 {
@@ -4511,8 +4511,8 @@
4511 "zh-chs": "操作系统",
4512 "zh-cht": "AMT操作系統",
4513 "xloc": [
4514 - "default.handlebars->121->3490",
4515 - "default3.handlebars->123->3465"
4514 + "default.handlebars->121->3492",
4515 + "default3.handlebars->123->3469"
4516 ]
4517 },
4518 {
@@ -4540,10 +4540,10 @@
4540 "zh-chs": "AMT-Redir",
4541 "zh-cht": "AMT-Redir",
4542 "xloc": [
4543 - "default.handlebars->121->3341",
4544 - "default.handlebars->121->3394",
4545 - "default3.handlebars->123->3316",
4546 - "default3.handlebars->123->3369"
4543 + "default.handlebars->121->3343",
4544 + "default.handlebars->121->3396",
4545 + "default3.handlebars->123->3320",
4546 + "default3.handlebars->123->3373"
4547 ]
4548 },
4549 {
@@ -4571,10 +4571,10 @@
4571 "zh-chs": "AMT-WSMAN",
4572 "zh-cht": "AMT-WSMAN",
4573 "xloc": [
4574 - "default.handlebars->121->3340",
4575 - "default.handlebars->121->3393",
4576 - "default3.handlebars->123->3315",
4577 - "default3.handlebars->123->3368"
4574 + "default.handlebars->121->3342",
4575 + "default.handlebars->121->3395",
4576 + "default3.handlebars->123->3319",
4577 + "default3.handlebars->123->3372"
4578 ]
4579 },
4580 {
@@ -4583,7 +4583,7 @@
4583 "nl": "APK",
4584 "xloc": [
4585 "default.handlebars->121->685",
4586 - "default3.handlebars->123->675"
4586 + "default3.handlebars->123->677"
4587 ]
4588 },
4589 {
@@ -4596,7 +4596,7 @@
4596 "xloc": [
4597 "default-mobile.handlebars->55->1025",
4598 "default.handlebars->121->684",
4599 - "default3.handlebars->123->674"
4599 + "default3.handlebars->123->676"
4600 ]
4601 },
4602 {
@@ -4605,7 +4605,7 @@
4605 "nl": "ARM 64bit versie van de macOS Mesh Agent",
4606 "xloc": [
4607 "default.handlebars->121->673",
4608 - "default3.handlebars->123->663"
4608 + "default3.handlebars->123->665"
4609 ]
4610 },
4611 {
@@ -4619,8 +4619,8 @@
4619 "xloc": [
4620 "default.handlebars->121->658",
4621 "default.handlebars->121->705",
4622 - "default3.handlebars->123->648",
4623 - "default3.handlebars->123->695"
4622 + "default3.handlebars->123->650",
4623 + "default3.handlebars->123->697"
4624 ]
4625 },
4626 {
@@ -4815,10 +4815,10 @@
4815 "default.handlebars->121->950",
4816 "default.handlebars->121->971",
4817 "default.handlebars->121->973",
4818 - "default3.handlebars->123->938",
4818 "default3.handlebars->123->940",
4820 - "default3.handlebars->123->961",
4821 - "default3.handlebars->123->963"
4819 + "default3.handlebars->123->942",
4820 + "default3.handlebars->123->963",
4821 + "default3.handlebars->123->965"
4822 ]
4823 },
4824 {
@@ -4848,8 +4848,8 @@
4848 "zh-cht": "拒絕存取",
4849 "xloc": [
4850 "default-mobile.handlebars->55->974",
4851 - "default.handlebars->121->1879",
4852 - "default3.handlebars->123->1849"
4851 + "default.handlebars->121->1881",
4852 + "default3.handlebars->123->1853"
4853 ]
4854 },
4855 {
@@ -4938,8 +4938,8 @@
4938 "zh-chs": "访问服务器档案",
4939 "zh-cht": "存取伺服器檔案",
4940 "xloc": [
4941 - "default.handlebars->121->3057",
4942 - "default3.handlebars->123->3036"
4941 + "default.handlebars->121->3059",
4942 + "default3.handlebars->123->3040"
4943 ]
4944 },
4945 {
@@ -5066,19 +5066,19 @@
5066 "default-mobile.handlebars->55->471",
5067 "default-mobile.handlebars->55->473",
5068 "default-mobile.handlebars->container->page_content->column_l->p3->p3info->3->p3AccountActions->p2AccountSecurity->1->0",
5069 - "default.handlebars->121->2213",
5069 "default.handlebars->121->2215",
5071 - "default.handlebars->121->3545",
5070 + "default.handlebars->121->2217",
5071 + "default.handlebars->121->3547",
5072 "default.handlebars->121->766",
5073 "default.handlebars->121->889",
5074 "default.handlebars->121->891",
5075 - "default3.handlebars->123->2202",
5076 - "default3.handlebars->123->2203",
5077 - "default3.handlebars->123->3518",
5078 - "default3.handlebars->123->3520",
5079 - "default3.handlebars->123->756",
5080 - "default3.handlebars->123->879",
5081 - "default3.handlebars->123->881"
5075 + "default3.handlebars->123->2206",
5076 + "default3.handlebars->123->2207",
5077 + "default3.handlebars->123->3522",
5078 + "default3.handlebars->123->3524",
5079 + "default3.handlebars->123->758",
5080 + "default3.handlebars->123->881",
5081 + "default3.handlebars->123->883"
5082 ]
5083 },
5084 {
@@ -5108,8 +5108,8 @@
5108 "zh-cht": "帳號設定",
5109 "xloc": [
5110 "default-mobile.handlebars->55->1083",
5111 - "default.handlebars->121->3414",
5112 - "default3.handlebars->123->3389"
5111 + "default.handlebars->121->3416",
5112 + "default3.handlebars->123->3393"
5113 ]
5114 },
5115 {
@@ -5184,8 +5184,8 @@
5184 "pl": "Konto zmienione di synchronizacji z danymi LDAP.",
5185 "uk": "Акаунт змінено на синхронізацію з даними LDAP.",
5186 "xloc": [
5187 - "default.handlebars->121->2806",
5188 - "default3.handlebars->123->2788"
5187 + "default.handlebars->121->2808",
5188 + "default3.handlebars->123->2792"
5189 ]
5190 },
5191 {
@@ -5214,8 +5214,8 @@
5214 "zh-chs": "帐户已更改:{0}",
5215 "zh-cht": "帳戶已更改:{0}",
5216 "xloc": [
5217 - "default.handlebars->121->2718",
5218 - "default3.handlebars->123->2700"
5217 + "default.handlebars->121->2720",
5218 + "default3.handlebars->123->2704"
5219 ]
5220 },
5221 {
@@ -5244,8 +5244,8 @@
5244 "zh-chs": "创建帐户,电子邮件为{0}",
5245 "zh-cht": "創建帳戶,電子郵件為{0}",
5246 "xloc": [
5247 - "default.handlebars->121->2717",
5248 - "default3.handlebars->123->2699"
5247 + "default.handlebars->121->2719",
5248 + "default3.handlebars->123->2703"
5249 ]
5250 },
5251 {
@@ -5274,8 +5274,8 @@
5274 "zh-chs": "已创建帐户,名称为 {0}。",
5275 "zh-cht": "已創建帳戶,名稱為 {0}。",
5276 "xloc": [
5277 - "default.handlebars->121->2780",
5278 - "default3.handlebars->123->2762"
5277 + "default.handlebars->121->2782",
5278 + "default3.handlebars->123->2766"
5279 ]
5280 },
5281 {
@@ -5304,8 +5304,8 @@
5304 "zh-chs": "创建帐户,用户名是{0}",
5305 "zh-cht": "帳戶已創建,用戶名是{0}",
5306 "xloc": [
5307 - "default.handlebars->121->2716",
5308 - "default3.handlebars->123->2698"
5307 + "default.handlebars->121->2718",
5308 + "default3.handlebars->123->2702"
5309 ]
5310 },
5311 {
@@ -5336,11 +5336,11 @@
5336 "xloc": [
5337 "default-mobile.handlebars->55->74",
5338 "default.handlebars->121->229",
5339 - "default.handlebars->121->2876",
5340 - "default.handlebars->121->3054",
5341 - "default3.handlebars->123->224",
5342 - "default3.handlebars->123->2858",
5343 - "default3.handlebars->123->3033"
5339 + "default.handlebars->121->2878",
5340 + "default.handlebars->121->3056",
5341 + "default3.handlebars->123->226",
5342 + "default3.handlebars->123->2862",
5343 + "default3.handlebars->123->3037"
5344 ]
5345 },
5346 {
@@ -5370,8 +5370,8 @@
5370 "zh-cht": "達到帳戶限制。",
5371 "xloc": [
5372 "default-mobile.handlebars->55->1095",
5373 - "default.handlebars->121->3426",
5374 - "default3.handlebars->123->3401",
5373 + "default.handlebars->121->3428",
5374 + "default3.handlebars->123->3405",
5375 "login-mobile.handlebars->23->6",
5376 "login.handlebars->13->8",
5377 "login2.handlebars->17->206"
@@ -5434,8 +5434,8 @@
5434 "zh-chs": "帐号登录",
5435 "zh-cht": "帳號登錄",
5436 "xloc": [
5437 - "default.handlebars->121->2653",
5438 - "default3.handlebars->123->2635"
5437 + "default.handlebars->121->2655",
5438 + "default3.handlebars->123->2639"
5439 ]
5440 },
5441 {
@@ -5464,8 +5464,8 @@
5464 "zh-chs": "来自 {0}、{1}、{2} 的帐户登录",
5465 "zh-cht": "從 {0}、{1}、{2} 登錄帳戶",
5466 "xloc": [
5467 - "default.handlebars->121->2759",
5468 - "default3.handlebars->123->2741"
5467 + "default.handlebars->121->2761",
5468 + "default3.handlebars->123->2745"
5469 ]
5470 },
5471 {
@@ -5479,8 +5479,8 @@
5479 "pl": "Zapisy logowania tokenami użytkownika",
5480 "uk": "Записи токенів входу до акаунту",
5481 "xloc": [
5482 - "default.handlebars->121->3383",
5483 - "default3.handlebars->123->3358"
5482 + "default.handlebars->121->3385",
5483 + "default3.handlebars->123->3362"
5484 ]
5485 },
5486 {
@@ -5509,8 +5509,8 @@
5509 "zh-chs": "帐户登出",
5510 "zh-cht": "帳戶登出",
5511 "xloc": [
5512 - "default.handlebars->121->2654",
5513 - "default3.handlebars->123->2636"
5512 + "default.handlebars->121->2656",
5513 + "default3.handlebars->123->2640"
5514 ]
5515 },
5516 {
@@ -5570,8 +5570,8 @@
5570 "zh-chs": "帐户密码已更改:{0}",
5571 "zh-cht": "帳戶密碼已更改:{0}",
5572 "xloc": [
5573 - "default.handlebars->121->2726",
5574 - "default3.handlebars->123->2708"
5573 + "default.handlebars->121->2728",
5574 + "default3.handlebars->123->2712"
5575 ]
5576 },
5577 {
@@ -5600,8 +5600,8 @@
5600 "zh-chs": "帐户已删除",
5601 "zh-cht": "帳戶已刪除",
5602 "xloc": [
5603 - "default.handlebars->121->2715",
5604 - "default3.handlebars->123->2697"
5603 + "default.handlebars->121->2717",
5604 + "default3.handlebars->123->2701"
5605 ]
5606 },
5607 {
@@ -5661,9 +5661,9 @@
5661 "zh-cht": "指令",
5662 "xloc": [
5663 "default-mobile.handlebars->55->989",
5664 - "default.handlebars->121->1894",
5664 + "default.handlebars->121->1896",
5665 "default.handlebars->container->column_l->p42->p42tbl->1->0->8",
5666 - "default3.handlebars->123->1864",
5666 + "default3.handlebars->123->1868",
5667 "default3.handlebars->container->column_l->p42->p42tbl->1->0->17"
5668 ]
5669 },
@@ -5695,8 +5695,8 @@
5695 "xloc": [
5696 "default.handlebars->121->1372",
5697 "default.handlebars->121->1374",
5698 - "default3.handlebars->123->1354",
5699 - "default3.handlebars->123->1356"
5698 + "default3.handlebars->123->1356",
5699 + "default3.handlebars->123->1358"
5700 ]
5701 },
5702 {
@@ -5730,14 +5730,14 @@
5730 "default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->0->1->1",
5731 "default-mobile.handlebars->container->page_content->column_l->p10->p10terminal->termTable->termarea4->1->3",
5732 "default.handlebars->121->1034",
5733 - "default.handlebars->121->1840",
5734 - "default.handlebars->121->1849",
5733 + "default.handlebars->121->1842",
5734 + "default.handlebars->121->1851",
5735 "default.handlebars->container->column_l->p11->deskarea0->deskarea1->1",
5736 "default.handlebars->container->column_l->p12->termTable->1->1->0->1->1",
5737 "default.handlebars->container->column_l->p13->p13toolbar->1->0->1->1",
5738 - "default3.handlebars->123->1024",
5739 - "default3.handlebars->123->1810",
5740 - "default3.handlebars->123->1819",
5738 + "default3.handlebars->123->1026",
5739 + "default3.handlebars->123->1814",
5740 + "default3.handlebars->123->1823",
5741 "default3.handlebars->container->column_l->p11->deskarea0->deskMobileActionsPanel->5",
5742 "default3.handlebars->container->column_l->p11->deskarea0->deskarea1->3",
5743 "default3.handlebars->container->column_l->p12->termTable->1->1->0->1->3",
@@ -5771,7 +5771,7 @@
5771 "zh-cht": "使用FAT格式的USB密鑰在管理控制模式(ACM)中激活英特爾&reg;AMT。將setup.bin放在其上,然後使用此鍵引導一台或多台計算機。",
5772 "xloc": [
5773 "default.handlebars->121->561",
5774 - "default3.handlebars->123->551"
5774 + "default3.handlebars->123->553"
5775 ]
5776 },
5777 {
@@ -5858,8 +5858,8 @@
5858 "zh-chs": "如果ACM失败,则激活到CCM",
5859 "zh-cht": "如果ACM失敗,則激活到CCM",
5860 "xloc": [
5861 - "default.handlebars->121->2411",
5862 - "default3.handlebars->123->2390"
5861 + "default.handlebars->121->2413",
5862 + "default3.handlebars->123->2394"
5863 ]
5864 },
5865 {
@@ -5896,10 +5896,10 @@
5896 "default.handlebars->121->1733",
5897 "default.handlebars->121->922",
5898 "default.handlebars->121->924",
5899 - "default3.handlebars->123->1669",
5900 - "default3.handlebars->123->1703",
5901 - "default3.handlebars->123->912",
5902 - "default3.handlebars->123->914"
5899 + "default3.handlebars->123->1671",
5900 + "default3.handlebars->123->1705",
5901 + "default3.handlebars->123->914",
5902 + "default3.handlebars->123->916"
5903 ]
5904 },
5905 {
@@ -5929,7 +5929,7 @@
5929 "zh-cht": "啟動",
5930 "xloc": [
5931 "default.handlebars->121->340",
5932 - "default3.handlebars->123->335"
5932 + "default3.handlebars->123->337"
5933 ]
5934 },
5935 {
@@ -5959,9 +5959,9 @@
5959 "zh-cht": "主動設備共享",
5960 "xloc": [
5961 "default.handlebars->121->1110",
5962 - "default.handlebars->121->2360",
5963 - "default3.handlebars->123->1100",
5964 - "default3.handlebars->123->2341"
5962 + "default.handlebars->121->2362",
5963 + "default3.handlebars->123->1102",
5964 + "default3.handlebars->123->2345"
5965 ]
5966 },
5967 {
@@ -5990,8 +5990,8 @@
5990 "zh-chs": "活动登录令牌",
5991 "zh-cht": "活動登錄令牌",
5992 "xloc": [
5993 - "default.handlebars->121->2246",
5994 - "default3.handlebars->123->2231"
5993 + "default.handlebars->121->2248",
5994 + "default3.handlebars->123->2235"
5995 ]
5996 },
5997 {
@@ -6022,7 +6022,7 @@
6022 "xloc": [
6023 "default-mobile.handlebars->55->796",
6024 "default.handlebars->121->987",
6025 - "default3.handlebars->123->977"
6025 + "default3.handlebars->123->979"
6026 ]
6027 },
6028 {
@@ -6053,7 +6053,7 @@
6053 "xloc": [
6054 "default-mobile.handlebars->55->795",
6055 "default.handlebars->121->986",
6056 - "default3.handlebars->123->976"
6056 + "default3.handlebars->123->978"
6057 ]
6058 },
6059 {
@@ -6085,7 +6085,7 @@
6085 "default-mobile.handlebars->55->666",
6086 "default.handlebars->121->1462",
6087 "default.handlebars->121->1468",
6088 - "default3.handlebars->123->1442",
6088 + "default3.handlebars->123->1444",
6089 "sharing-mobile.handlebars->55->41"
6090 ]
6091 },
@@ -6115,10 +6115,10 @@
6115 "zh-chs": "添加代理",
6116 "zh-cht": "新增代理",
6117 "xloc": [
6118 - "default.handlebars->121->2350",
6118 + "default.handlebars->121->2352",
6119 "default.handlebars->121->527",
6120 - "default3.handlebars->123->2331",
6121 - "default3.handlebars->123->517"
6120 + "default3.handlebars->123->2335",
6121 + "default3.handlebars->123->519"
6122 ]
6123 },
6124 {
@@ -6147,14 +6147,14 @@
6147 "zh-chs": "添加设备",
6148 "zh-cht": "新增裝置",
6149 "xloc": [
6150 - "default.handlebars->121->2354",
6151 - "default.handlebars->121->3029",
6152 - "default.handlebars->121->3222",
6150 + "default.handlebars->121->2356",
6151 + "default.handlebars->121->3031",
6152 + "default.handlebars->121->3224",
6153 "default.handlebars->121->531",
6154 - "default3.handlebars->123->2335",
6155 - "default3.handlebars->123->3008",
6156 - "default3.handlebars->123->3195",
6157 - "default3.handlebars->123->521"
6154 + "default3.handlebars->123->2339",
6155 + "default3.handlebars->123->3012",
6156 + "default3.handlebars->123->3199",
6157 + "default3.handlebars->123->523"
6158 ]
6159 },
6160 {
@@ -6184,7 +6184,7 @@
6184 "zh-cht": "新增裝置日誌",
6185 "xloc": [
6186 "default.handlebars->121->1196",
6187 - "default3.handlebars->123->1184"
6187 + "default3.handlebars->123->1186"
6188 ]
6189 },
6190 {
@@ -6213,14 +6213,14 @@
6213 "zh-chs": "添加设备组",
6214 "zh-cht": "新增裝置群",
6215 "xloc": [
6216 - "default.handlebars->121->2499",
6217 - "default.handlebars->121->3023",
6218 - "default.handlebars->121->3210",
6216 + "default.handlebars->121->2501",
6217 + "default.handlebars->121->3025",
6218 + "default.handlebars->121->3212",
6219 "default.handlebars->121->427",
6220 - "default3.handlebars->123->2481",
6221 - "default3.handlebars->123->3002",
6222 - "default3.handlebars->123->3183",
6223 - "default3.handlebars->123->417"
6220 + "default3.handlebars->123->2485",
6221 + "default3.handlebars->123->3006",
6222 + "default3.handlebars->123->3187",
6223 + "default3.handlebars->123->419"
6224 ]
6225 },
6226 {
@@ -6249,8 +6249,8 @@
6249 "zh-chs": "添加设备组权限",
6250 "zh-cht": "新增裝置群權限",
6251 "xloc": [
6252 - "default.handlebars->121->2496",
6253 - "default3.handlebars->123->2478"
6252 + "default.handlebars->121->2498",
6253 + "default3.handlebars->123->2482"
6254 ]
6255 },
6256 {
@@ -6279,10 +6279,10 @@
6279 "zh-chs": "添加设备权限",
6280 "zh-cht": "新增裝置權限",
6281 "xloc": [
6282 - "default.handlebars->121->2501",
6282 "default.handlebars->121->2503",
6284 - "default3.handlebars->123->2483",
6285 - "default3.handlebars->123->2485"
6283 + "default.handlebars->121->2505",
6284 + "default3.handlebars->123->2487",
6285 + "default3.handlebars->123->2489"
6286 ]
6287 },
6288 {
@@ -6312,7 +6312,7 @@
6312 "zh-cht": "新增Intel&reg; AMT裝置",
6313 "xloc": [
6314 "default.handlebars->121->551",
6315 - "default3.handlebars->123->541"
6315 + "default3.handlebars->123->543"
6316 ]
6317 },
6318 {
@@ -6342,7 +6342,7 @@
6342 "zh-cht": "新增密鑰",
6343 "xloc": [
6344 "default.handlebars->121->259",
6345 - "default3.handlebars->123->252"
6345 + "default3.handlebars->123->254"
6346 ]
6347 },
6348 {
@@ -6372,7 +6372,7 @@
6372 "zh-cht": "新增本地",
6373 "xloc": [
6374 "default.handlebars->121->521",
6375 - "default3.handlebars->123->511"
6375 + "default3.handlebars->123->513"
6376 ]
6377 },
6378 {
@@ -6401,8 +6401,8 @@
6401 "zh-chs": "添加成员身份",
6402 "zh-cht": "新增成員身份",
6403 "xloc": [
6404 - "default.handlebars->121->3242",
6405 - "default3.handlebars->123->3215"
6404 + "default.handlebars->121->3244",
6405 + "default3.handlebars->123->3219"
6406 ]
6407 },
6408 {
@@ -6432,7 +6432,7 @@
6432 "zh-cht": "新增 Mesh Agent",
6433 "xloc": [
6434 "default.handlebars->121->722",
6435 - "default3.handlebars->123->712"
6435 + "default3.handlebars->123->714"
6436 ]
6437 },
6438 {
@@ -6461,18 +6461,18 @@
6461 "zh-chs": "添加安全密钥",
6462 "zh-cht": "新增安全密鑰",
6463 "xloc": [
6464 - "default.handlebars->121->1959",
6465 - "default.handlebars->121->1960",
6464 + "default.handlebars->121->1961",
6465 + "default.handlebars->121->1962",
6466 "default.handlebars->121->263",
6467 "default.handlebars->121->265",
6468 "default.handlebars->121->268",
6469 "default.handlebars->121->269",
6470 - "default3.handlebars->123->1927",
6471 - "default3.handlebars->123->1928",
6472 - "default3.handlebars->123->256",
6470 + "default3.handlebars->123->1931",
6471 + "default3.handlebars->123->1932",
6472 "default3.handlebars->123->258",
6474 - "default3.handlebars->123->261",
6475 - "default3.handlebars->123->263"
6473 + "default3.handlebars->123->260",
6474 + "default3.handlebars->123->263",
6475 + "default3.handlebars->123->265"
6476 ]
6477 },
6478 {
@@ -6503,7 +6503,7 @@
6503 "xloc": [
6504 "default-mobile.handlebars->55->1007",
6505 "default.handlebars->121->1102",
6506 - "default3.handlebars->123->1092"
6506 + "default3.handlebars->123->1094"
6507 ]
6508 },
6509 {
@@ -6532,8 +6532,8 @@
6532 "zh-chs": "添加用户设备权限",
6533 "zh-cht": "新增用戶裝置權限",
6534 "xloc": [
6535 - "default.handlebars->121->2506",
6536 - "default3.handlebars->123->2488"
6535 + "default.handlebars->121->2508",
6536 + "default3.handlebars->123->2492"
6537 ]
6538 },
6539 {
@@ -6563,13 +6563,13 @@
6563 "zh-cht": "新增用戶群",
6564 "xloc": [
6565 "default.handlebars->121->1103",
6566 - "default.handlebars->121->2344",
6567 - "default.handlebars->121->2498",
6568 - "default.handlebars->121->3216",
6569 - "default3.handlebars->123->1093",
6570 - "default3.handlebars->123->2325",
6571 - "default3.handlebars->123->2480",
6572 - "default3.handlebars->123->3189"
6566 + "default.handlebars->121->2346",
6567 + "default.handlebars->121->2500",
6568 + "default.handlebars->121->3218",
6569 + "default3.handlebars->123->1095",
6570 + "default3.handlebars->123->2329",
6571 + "default3.handlebars->123->2484",
6572 + "default3.handlebars->123->3193"
6573 ]
6574 },
6575 {
@@ -6598,8 +6598,8 @@
6598 "zh-chs": "添加用户组设备权限",
6599 "zh-cht": "新增用戶群裝置權限",
6600 "xloc": [
6601 - "default.handlebars->121->2508",
6602 - "default3.handlebars->123->2490"
6601 + "default.handlebars->121->2510",
6602 + "default3.handlebars->123->2494"
6603 ]
6604 },
6605 {
@@ -6657,10 +6657,10 @@
6657 "zh-chs": "添加用户",
6658 "zh-cht": "新增用戶",
6659 "xloc": [
6660 - "default.handlebars->121->2343",
6661 - "default.handlebars->121->3018",
6662 - "default3.handlebars->123->2324",
6663 - "default3.handlebars->123->2997"
6660 + "default.handlebars->121->2345",
6661 + "default.handlebars->121->3020",
6662 + "default3.handlebars->123->2328",
6663 + "default3.handlebars->123->3001"
6664 ]
6665 },
6666 {
@@ -6689,8 +6689,8 @@
6689 "zh-chs": "将用户添加到设备组",
6690 "zh-cht": "將用戶新增到裝置群",
6691 "xloc": [
6692 - "default.handlebars->121->2495",
6693 - "default3.handlebars->123->2477"
6692 + "default.handlebars->121->2497",
6693 + "default3.handlebars->123->2481"
6694 ]
6695 },
6696 {
@@ -6719,8 +6719,8 @@
6719 "zh-chs": "将用户添加到用户组",
6720 "zh-cht": "將用戶新增到用戶群",
6721 "xloc": [
6722 - "default.handlebars->121->3053",
6723 - "default3.handlebars->123->3032"
6722 + "default.handlebars->121->3055",
6723 + "default3.handlebars->123->3036"
6724 ]
6725 },
6726 {
@@ -6750,7 +6750,7 @@
6750 "zh-cht": "新增YubiKey&reg;OTP",
6751 "xloc": [
6752 "default.handlebars->121->260",
6753 - "default3.handlebars->123->253"
6753 + "default3.handlebars->123->255"
6754 ]
6755 },
6756 {
@@ -6780,7 +6780,7 @@
6780 "zh-cht": "將本地設備添加到設備組 \\\"{0}\\\"。",
6781 "xloc": [
6782 "default.handlebars->121->532",
6783 - "default3.handlebars->123->522"
6783 + "default3.handlebars->123->524"
6784 ]
6785 },
6786 {
@@ -6810,7 +6810,7 @@
6810 "zh-cht": "通過掃描本地網絡新增新的Intel&reg; AMT電腦。",
6811 "xloc": [
6812 "default.handlebars->121->522",
6813 - "default3.handlebars->123->512"
6813 + "default3.handlebars->123->514"
6814 ]
6815 },
6816 {
@@ -6840,7 +6840,7 @@
6840 "zh-cht": "新增位於本地網絡上的新Intel&reg; AMT電腦。",
6841 "xloc": [
6842 "default.handlebars->121->520",
6843 - "default3.handlebars->123->510"
6843 + "default3.handlebars->123->512"
6844 ]
6845 },
6846 {
@@ -6870,7 +6870,7 @@
6870 "zh-cht": "將新的Intel&reg; AMT裝置新增到裝置群“{0}”。",
6871 "xloc": [
6872 "default.handlebars->121->541",
6873 - "default3.handlebars->123->531"
6873 + "default3.handlebars->123->533"
6874 ]
6875 },
6876 {
@@ -6899,10 +6899,10 @@
6899 "zh-chs": "通过安装Mesh Agent将新计算机添加到该设备组。",
6900 "zh-cht": "通過安裝Mesh Agent將新電腦新增到該裝置群。",
6901 "xloc": [
6902 - "default.handlebars->121->2349",
6902 + "default.handlebars->121->2351",
6903 "default.handlebars->121->526",
6904 - "default3.handlebars->123->2330",
6905 - "default3.handlebars->123->516"
6904 + "default3.handlebars->123->2334",
6905 + "default3.handlebars->123->518"
6906 ]
6907 },
6908 {
@@ -6931,10 +6931,10 @@
6931 "zh-chs": "添加位于本地网络上的设备。",
6932 "zh-cht": "添加位於本地網絡上的設備。",
6933 "xloc": [
6934 - "default.handlebars->121->2353",
6934 + "default.handlebars->121->2355",
6935 "default.handlebars->121->530",
6936 - "default3.handlebars->123->2334",
6937 - "default3.handlebars->123->520"
6936 + "default3.handlebars->123->2338",
6937 + "default3.handlebars->123->522"
6938 ]
6939 },
6940 {
@@ -6964,7 +6964,7 @@
6964 "zh-cht": "添加本地設備",
6965 "xloc": [
6966 "default.handlebars->121->540",
6967 - "default3.handlebars->123->530"
6967 + "default3.handlebars->123->532"
6968 ]
6969 },
6970 {
@@ -6994,7 +6994,7 @@
6994 "zh-cht": "新增標籤",
6995 "xloc": [
6996 "default.handlebars->121->798",
6997 - "default3.handlebars->123->788"
6997 + "default3.handlebars->123->790"
6998 ]
6999 },
7000 {
@@ -7024,7 +7024,7 @@
7024 "zh-cht": "通過定期在遠程設備上以管理員身份運行MeshCmd,添加,激活和配置Intel&reg; AMT以將“{0}”分組。",
7025 "xloc": [
7026 "default.handlebars->121->558",
7027 - "default3.handlebars->123->548"
7027 + "default3.handlebars->123->550"
7028 ]
7029 },
7030 {
@@ -7053,8 +7053,8 @@
7053 "zh-chs": "添加了身份验证应用程序",
7054 "zh-cht": "添加了身份驗證應用程序",
7055 "xloc": [
7056 - "default.handlebars->121->2742",
7057 - "default3.handlebars->123->2724"
7056 + "default.handlebars->121->2744",
7057 + "default3.handlebars->123->2728"
7058 ]
7059 },
7060 {
@@ -7083,8 +7083,8 @@
7083 "zh-chs": "已将设备共享{0}从{1}添加到{2}",
7084 "zh-cht": "已將設備共享{0}從{1}添加到{2}",
7085 "xloc": [
7086 - "default.handlebars->121->2753",
7087 - "default3.handlebars->123->2735"
7086 + "default.handlebars->121->2755",
7087 + "default3.handlebars->123->2739"
7088 ]
7089 },
7090 {
@@ -7113,8 +7113,8 @@
7113 "zh-chs": "添加了每天重复的设备共享 {0}。",
7114 "zh-cht": "添加了每天重複的設備共享 {0}。",
7115 "xloc": [
7116 - "default.handlebars->121->2790",
7117 - "default3.handlebars->123->2772"
7116 + "default.handlebars->121->2792",
7117 + "default3.handlebars->123->2776"
7118 ]
7119 },
7120 {
@@ -7143,8 +7143,8 @@
7143 "zh-chs": "添加了每周重复的设备共享 {0}。",
7144 "zh-cht": "添加了每週重複的設備共享 {0}。",
7145 "xloc": [
7146 - "default.handlebars->121->2791",
7147 - "default3.handlebars->123->2773"
7146 + "default.handlebars->121->2793",
7147 + "default3.handlebars->123->2777"
7148 ]
7149 },
7150 {
@@ -7173,8 +7173,8 @@
7173 "zh-chs": "添加了无限时间的设备共享 {0}。",
7174 "zh-cht": "添加了無限時間的設備共享 {0}。",
7175 "xloc": [
7176 - "default.handlebars->121->2783",
7177 - "default3.handlebars->123->2765"
7176 + "default.handlebars->121->2785",
7177 + "default3.handlebars->123->2769"
7178 ]
7179 },
7180 {
@@ -7203,10 +7203,10 @@
7203 "zh-chs": "已将设备{0}添加到设备组{1}",
7204 "zh-cht": "已將設備{0}添加到設備組{1}",
7205 "xloc": [
7206 - "default.handlebars->121->2709",
7207 - "default.handlebars->121->2736",
7208 - "default3.handlebars->123->2691",
7209 - "default3.handlebars->123->2718"
7206 + "default.handlebars->121->2711",
7207 + "default.handlebars->121->2738",
7208 + "default3.handlebars->123->2695",
7209 + "default3.handlebars->123->2722"
7210 ]
7211 },
7212 {
@@ -7235,8 +7235,8 @@
7235 "zh-chs": "添加登录令牌",
7236 "zh-cht": "添加了登錄令牌",
7237 "xloc": [
7238 - "default.handlebars->121->2767",
7239 - "default3.handlebars->123->2749"
7238 + "default.handlebars->121->2769",
7239 + "default3.handlebars->123->2753"
7240 ]
7241 },
7242 {
@@ -7265,8 +7265,8 @@
7265 "zh-chs": "新增推送通知认证装置",
7266 "zh-cht": "增加推送通知認證設備",
7267 "xloc": [
7268 - "default.handlebars->121->2765",
7269 - "default3.handlebars->123->2747"
7268 + "default.handlebars->121->2767",
7269 + "default3.handlebars->123->2751"
7270 ]
7271 },
7272 {
@@ -7295,8 +7295,8 @@
7295 "zh-chs": "添加了安全密钥",
7296 "zh-cht": "添加了安全密鑰",
7297 "xloc": [
7298 - "default.handlebars->121->2747",
7299 - "default3.handlebars->123->2729"
7298 + "default.handlebars->121->2749",
7299 + "default3.handlebars->123->2733"
7300 ]
7301 },
7302 {
@@ -7325,8 +7325,8 @@
7325 "zh-chs": "已将用户组{0}添加到设备组{1}",
7326 "zh-cht": "已將用戶組{0}添加到設備組{1}",
7327 "xloc": [
7328 - "default.handlebars->121->2720",
7329 - "default3.handlebars->123->2702"
7328 + "default.handlebars->121->2722",
7329 + "default3.handlebars->123->2706"
7330 ]
7331 },
7332 {
@@ -7355,10 +7355,10 @@
7355 "zh-chs": "已将用户{0}添加到用户组{1}",
7356 "zh-cht": "已將用戶{0}添加到用戶組{1}",
7357 "xloc": [
7358 - "default.handlebars->121->2723",
7359 - "default.handlebars->121->2732",
7360 - "default3.handlebars->123->2705",
7361 - "default3.handlebars->123->2714"
7358 + "default.handlebars->121->2725",
7359 + "default.handlebars->121->2734",
7360 + "default3.handlebars->123->2709",
7361 + "default3.handlebars->123->2718"
7362 ]
7363 },
7364 {
@@ -7388,7 +7388,7 @@
7388 "zh-cht": "地址",
7389 "xloc": [
7390 "default.handlebars->121->420",
7391 - "default3.handlebars->123->410"
7391 + "default3.handlebars->123->412"
7392 ]
7393 },
7394 {
@@ -7448,7 +7448,7 @@
7448 "xloc": [
7449 "default-mobile.handlebars->55->842",
7450 "default.handlebars->121->1701",
7451 - "default3.handlebars->123->1671"
7451 + "default3.handlebars->123->1673"
7452 ]
7453 },
7454 {
@@ -7479,7 +7479,7 @@
7479 "xloc": [
7480 "default-mobile.handlebars->55->848",
7481 "default.handlebars->121->1707",
7482 - "default3.handlebars->123->1677"
7482 + "default3.handlebars->123->1679"
7483 ]
7484 },
7485 {
@@ -7508,15 +7508,15 @@
7508 "zh-chs": "管理员PowerShell",
7509 "zh-cht": "管理員PowerShell",
7510 "xloc": [
7511 - "default.handlebars->121->3262",
7512 - "default.handlebars->121->3272",
7513 - "default.handlebars->121->3337",
7514 - "default.handlebars->121->3390",
7511 + "default.handlebars->121->3264",
7512 + "default.handlebars->121->3274",
7513 + "default.handlebars->121->3339",
7514 + "default.handlebars->121->3392",
7515 "default.handlebars->termShellContextMenu->3",
7516 - "default3.handlebars->123->3237",
7517 - "default3.handlebars->123->3247",
7518 - "default3.handlebars->123->3312",
7519 - "default3.handlebars->123->3365",
7516 + "default3.handlebars->123->3241",
7517 + "default3.handlebars->123->3251",
7518 + "default3.handlebars->123->3316",
7519 + "default3.handlebars->123->3369",
7520 "default3.handlebars->container->column_l->p12->termTable->1->1->0->1->1->connectbutton2span->5->3->0",
7521 "player.handlebars->31->29",
7522 "xterm.handlebars->termShellContextMenu->cxtermps"
@@ -7548,8 +7548,8 @@
7548 "zh-chs": "管理领域",
7549 "zh-cht": "管理領域",
7550 "xloc": [
7551 - "default.handlebars->121->3105",
7552 - "default3.handlebars->123->3084"
7551 + "default.handlebars->121->3107",
7552 + "default3.handlebars->123->3088"
7553 ]
7554 },
7555 {
@@ -7609,8 +7609,8 @@
7609 "zh-chs": "管理领域",
7610 "zh-cht": "管理領域",
7611 "xloc": [
7612 - "default.handlebars->121->2950",
7613 - "default3.handlebars->123->2929"
7612 + "default.handlebars->121->2952",
7613 + "default3.handlebars->123->2933"
7614 ]
7615 },
7616 {
@@ -7639,8 +7639,8 @@
7639 "zh-chs": "管理员",
7640 "zh-cht": "管理員",
7641 "xloc": [
7642 - "default.handlebars->121->2868",
7643 - "default3.handlebars->123->2850"
7642 + "default.handlebars->121->2870",
7643 + "default3.handlebars->123->2854"
7644 ]
7645 },
7646 {
@@ -7670,8 +7670,8 @@
7670 "zh-cht": "南非文",
7671 "xloc": [
7672 "default-mobile.handlebars->55->120",
7673 - "default.handlebars->121->1962",
7674 - "default3.handlebars->123->1930",
7673 + "default.handlebars->121->1964",
7674 + "default3.handlebars->123->1934",
7675 "login2.handlebars->17->1"
7676 ]
7677 },
@@ -7705,18 +7705,18 @@
7705 "default-mobile.handlebars->55->463",
7706 "default-mobile.handlebars->55->520",
7707 "default-mobile.handlebars->container->page_content->column_l->p10->p10console->consoleTable->1->4->1->1->1->0->p15outputselecttd->p15outputselect->p15outputselect1",
7708 - "default.handlebars->121->2579",
7709 - "default.handlebars->121->2592",
7710 - "default.handlebars->121->3488",
7708 + "default.handlebars->121->2581",
7709 + "default.handlebars->121->2594",
7710 + "default.handlebars->121->3490",
7711 "default.handlebars->121->447",
7712 "default.handlebars->121->754",
7713 "default.handlebars->container->column_l->p15->consoleTable->1->6->1->1->1->0->p15outputselecttd->p15outputselect->p15outputselect1",
7714 "default.handlebars->container->dialog->dialogBody->dialog7->1->td7meshkvm",
7715 - "default3.handlebars->123->2561",
7716 - "default3.handlebars->123->2574",
7717 - "default3.handlebars->123->3463",
7718 - "default3.handlebars->123->437",
7719 - "default3.handlebars->123->744",
7715 + "default3.handlebars->123->2565",
7716 + "default3.handlebars->123->2578",
7717 + "default3.handlebars->123->3467",
7718 + "default3.handlebars->123->439",
7719 + "default3.handlebars->123->746",
7720 "default3.handlebars->container->column_l->p15->consoleTable->1->6->1->1->1->0->p15outputselecttd->p15outputselect->p15outputselect1",
7721 "default3.handlebars->container->xxAddAgentModal->xxAddAgentModalConf->1->xxAddAgentBody->dialog7->1->td7meshkvm"
7722 ]
@@ -7747,10 +7747,10 @@
7747 "zh-chs": "代理+英特尔AMT",
7748 "zh-cht": "代理+Intel&reg; AMT",
7749 "xloc": [
7750 - "default.handlebars->121->2581",
7751 - "default.handlebars->121->2594",
7752 - "default3.handlebars->123->2563",
7753 - "default3.handlebars->123->2576"
7750 + "default.handlebars->121->2583",
7751 + "default.handlebars->121->2596",
7752 + "default3.handlebars->123->2567",
7753 + "default3.handlebars->123->2580"
7754 ]
7755 },
7756 {
@@ -7812,10 +7812,10 @@
7812 "xloc": [
7813 "default-mobile.handlebars->55->1054",
7814 "default-mobile.handlebars->55->602",
7815 - "default.handlebars->121->2516",
7815 + "default.handlebars->121->2518",
7816 "default.handlebars->121->844",
7817 - "default3.handlebars->123->2498",
7818 - "default3.handlebars->123->834"
7817 + "default3.handlebars->123->2502",
7818 + "default3.handlebars->123->836"
7819 ]
7820 },
7821 {
@@ -7844,8 +7844,8 @@
7844 "zh-chs": "代理错误计数器",
7845 "zh-cht": "代理錯誤計數器",
7846 "xloc": [
7847 - "default.handlebars->121->3456",
7848 - "default3.handlebars->123->3431"
7847 + "default.handlebars->121->3458",
7848 + "default3.handlebars->123->3435"
7849 ]
7850 },
7851 {
@@ -7875,7 +7875,7 @@
7875 "zh-cht": "代理 IP 地址",
7876 "xloc": [
7877 "default.handlebars->121->371",
7878 - "default3.handlebars->123->367"
7878 + "default3.handlebars->123->369"
7879 ]
7880 },
7881 {
@@ -7952,7 +7952,7 @@
7952 "xloc": [
7953 "default-mobile.handlebars->55->436",
7954 "default.handlebars->121->511",
7955 - "default3.handlebars->123->501"
7955 + "default3.handlebars->123->503"
7956 ]
7957 },
7958 {
@@ -8042,9 +8042,9 @@
8042 "zh-cht": "代理自行共享",
8043 "xloc": [
8044 "default.handlebars->121->1131",
8045 - "default.handlebars->121->2381",
8046 - "default3.handlebars->123->1121",
8047 - "default3.handlebars->123->2362"
8045 + "default.handlebars->121->2383",
8046 + "default3.handlebars->123->1123",
8047 + "default3.handlebars->123->2366"
8048 ]
8049 },
8050 {
@@ -8073,8 +8073,8 @@
8073 "zh-chs": "代理会话",
8074 "zh-cht": "代理時段",
8075 "xloc": [
8076 - "default.handlebars->121->3473",
8077 - "default3.handlebars->123->3448"
8076 + "default.handlebars->121->3475",
8077 + "default3.handlebars->123->3452"
8078 ]
8079 },
8080 {
@@ -8105,7 +8105,7 @@
8105 "xloc": [
8106 "default-mobile.handlebars->55->517",
8107 "default.handlebars->121->945",
8108 - "default3.handlebars->123->935"
8108 + "default3.handlebars->123->937"
8109 ]
8110 },
8111 {
@@ -8136,8 +8136,8 @@
8136 "xloc": [
8137 "default.handlebars->121->359",
8138 "default.handlebars->121->407",
8139 - "default3.handlebars->123->355",
8140 - "default3.handlebars->123->397"
8139 + "default3.handlebars->123->357",
8140 + "default3.handlebars->123->399"
8141 ]
8142 },
8143 {
@@ -8166,9 +8166,9 @@
8166 "zh-chs": "代理类型",
8167 "zh-cht": "代理類型",
8168 "xloc": [
8169 - "default.handlebars->121->2590",
8169 + "default.handlebars->121->2592",
8170 "default.handlebars->container->column_l->p21->p21main->1->1->meshOsChartDiv->1",
8171 - "default3.handlebars->123->2572",
8171 + "default3.handlebars->123->2576",
8172 "default3.handlebars->container->column_l->p21->p21main->1->1->meshOsChartDiv->1"
8173 ]
8174 },
@@ -8200,8 +8200,8 @@
8200 "xloc": [
8201 "default.handlebars->121->360",
8202 "default.handlebars->121->408",
8203 - "default3.handlebars->123->356",
8204 - "default3.handlebars->123->398"
8203 + "default3.handlebars->123->358",
8204 + "default3.handlebars->123->400"
8205 ]
8206 },
8207 {
@@ -8230,8 +8230,8 @@
8230 "zh-chs": "代理关闭了与服务器压缩的{0}%代理会话。已发送:{1},已压缩:{2}",
8231 "zh-cht": "代理關閉了與{0}%代理到服務器壓縮的會話。已發送:{1},已壓縮:{2}",
8232 "xloc": [
8233 - "default.handlebars->121->2706",
8234 - "default3.handlebars->123->2688"
8233 + "default.handlebars->121->2708",
8234 + "default3.handlebars->123->2692"
8235 ]
8236 },
8237 {
@@ -8263,9 +8263,9 @@
8263 "default.handlebars->121->1089",
8264 "default.handlebars->121->1090",
8265 "default.handlebars->121->278",
8266 - "default3.handlebars->123->1079",
8267 - "default3.handlebars->123->1080",
8268 - "default3.handlebars->123->272"
8266 + "default3.handlebars->123->1081",
8267 + "default3.handlebars->123->1082",
8268 + "default3.handlebars->123->274"
8269 ]
8270 },
8271 {
@@ -8295,7 +8295,7 @@
8295 "zh-cht": "與有限特權相關的代理",
8296 "xloc": [
8297 "default.handlebars->121->279",
8298 - "default3.handlebars->123->273"
8298 + "default3.handlebars->123->275"
8299 ]
8300 },
8301 {
@@ -8325,7 +8325,7 @@
8325 "zh-cht": "代理已斷開連接",
8326 "xloc": [
8327 "default.handlebars->121->283",
8328 - "default3.handlebars->123->277"
8328 + "default3.handlebars->123->279"
8329 ]
8330 },
8331 {
@@ -8385,8 +8385,8 @@
8385 "zh-cht": "代理離線",
8386 "xloc": [
8387 "default-mobile.handlebars->55->972",
8388 - "default.handlebars->121->1877",
8389 - "default3.handlebars->123->1847"
8388 + "default.handlebars->121->1879",
8389 + "default3.handlebars->123->1851"
8390 ]
8391 },
8392 {
@@ -8416,8 +8416,8 @@
8416 "zh-cht": "代理在線",
8417 "xloc": [
8418 "default-mobile.handlebars->55->971",
8419 - "default.handlebars->121->1876",
8420 - "default3.handlebars->123->1846"
8419 + "default.handlebars->121->1878",
8420 + "default3.handlebars->123->1850"
8421 ]
8422 },
8423 {
@@ -8447,7 +8447,7 @@
8447 "zh-cht": "代理在特權降低的遠程設備上運行。",
8448 "xloc": [
8449 "default.handlebars->121->1083",
8450 - "default3.handlebars->123->1073"
8450 + "default3.handlebars->123->1075"
8451 ]
8452 },
8453 {
@@ -8476,12 +8476,12 @@
8476 "zh-chs": "代理",
8477 "zh-cht": "代理",
8478 "xloc": [
8479 - "default.handlebars->121->2547",
8480 - "default.handlebars->121->3501",
8479 + "default.handlebars->121->2549",
8480 + "default.handlebars->121->3503",
8481 "default.handlebars->121->614",
8482 - "default3.handlebars->123->2529",
8483 - "default3.handlebars->123->3476",
8484 - "default3.handlebars->123->604"
8482 + "default3.handlebars->123->2533",
8483 + "default3.handlebars->123->3480",
8484 + "default3.handlebars->123->606"
8485 ]
8486 },
8487 {
@@ -8511,8 +8511,8 @@
8511 "zh-cht": "阿爾巴尼亞文",
8512 "xloc": [
8513 "default-mobile.handlebars->55->121",
8514 - "default.handlebars->121->1963",
8515 - "default3.handlebars->123->1931",
8514 + "default.handlebars->121->1965",
8515 + "default3.handlebars->123->1935",
8516 "login2.handlebars->17->2"
8517 ]
8518 },
@@ -8525,8 +8525,8 @@
8525 "xloc": [
8526 "default.handlebars->121->1215",
8527 "default.handlebars->121->807",
8528 - "default3.handlebars->123->1204",
8529 - "default3.handlebars->123->797"
8528 + "default3.handlebars->123->1206",
8529 + "default3.handlebars->123->799"
8530 ]
8531 },
8532 {
@@ -8558,9 +8558,9 @@
8558 "default-mobile.handlebars->55->377",
8559 "default-mobile.handlebars->55->703",
8560 "default-mobile.handlebars->55->705",
8561 - "default.handlebars->121->3305",
8561 + "default.handlebars->121->3307",
8562 "default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->devListToolbar->DevFilterSelect->1",
8563 - "default3.handlebars->123->3280",
8563 + "default3.handlebars->123->3284",
8564 "default3.handlebars->container->column_l->p1->devListToolbarSpan->devListToolbar->DevFilterSelect->1",
8565 "sharing-mobile.handlebars->55->79",
8566 "sharing-mobile.handlebars->55->81"
@@ -8592,8 +8592,8 @@
8592 "zh-chs": "全部可用",
8593 "zh-cht": "全部可用",
8594 "xloc": [
8595 - "default.handlebars->121->2830",
8596 - "default3.handlebars->123->2812"
8595 + "default.handlebars->121->2832",
8596 + "default3.handlebars->123->2816"
8597 ]
8598 },
8599 {
@@ -8622,10 +8622,10 @@
8622 "zh-chs": "所有可用的代理",
8623 "zh-cht": "所有可用的代理",
8624 "xloc": [
8625 - "default.handlebars->121->2548",
8625 + "default.handlebars->121->2550",
8626 "default.handlebars->121->615",
8627 - "default3.handlebars->123->2530",
8628 - "default3.handlebars->123->605"
8627 + "default3.handlebars->123->2534",
8628 + "default3.handlebars->123->607"
8629 ]
8630 },
8631 {
@@ -8655,7 +8655,7 @@
8655 "zh-cht": "所有顯示",
8656 "xloc": [
8657 "default.handlebars->121->1513",
8658 - "default3.handlebars->123->1485"
8658 + "default3.handlebars->123->1487"
8659 ]
8660 },
8661 {
@@ -8684,8 +8684,8 @@
8684 "zh-chs": "所有事件",
8685 "zh-cht": "所有事件",
8686 "xloc": [
8687 - "default.handlebars->121->2828",
8688 - "default3.handlebars->123->2810"
8687 + "default.handlebars->121->2830",
8688 + "default3.handlebars->123->2814"
8689 ]
8690 },
8691 {
@@ -8717,9 +8717,9 @@
8717 "default.handlebars->121->1431",
8718 "default.handlebars->121->1433",
8719 "default.handlebars->121->1434",
8720 - "default3.handlebars->123->1412",
8720 "default3.handlebars->123->1414",
8722 - "default3.handlebars->123->1415"
8721 + "default3.handlebars->123->1416",
8722 + "default3.handlebars->123->1417"
8723 ]
8724 },
8725 {
@@ -8760,7 +8760,7 @@
8760 "zh-chs": "所有主题",
8761 "zh-cht": "所有主題",
8762 "xloc": [
8763 - "default3.handlebars->123->2199"
8763 + "default3.handlebars->123->2203"
8764 ]
8765 },
8766 {
@@ -8818,8 +8818,8 @@
8818 "zh-chs": "允许覆盖服务器设备名称直到下次连接",
8819 "zh-cht": "允許覆寫伺服器裝置名稱直到下次連線",
8820 "xloc": [
8821 - "default.handlebars->121->2453",
8822 - "default3.handlebars->123->2435"
8821 + "default.handlebars->121->2455",
8822 + "default3.handlebars->123->2439"
8823 ]
8824 },
8825 {
@@ -8848,10 +8848,10 @@
8848 "zh-chs": "允许用户管理此设备组和该组中的设备。",
8849 "zh-cht": "允許用戶管理此裝置群和該群中的裝置。",
8850 "xloc": [
8851 - "default.handlebars->121->2460",
8852 - "default.handlebars->121->3050",
8853 - "default3.handlebars->123->2442",
8854 - "default3.handlebars->123->3029"
8851 + "default.handlebars->121->2462",
8852 + "default.handlebars->121->3052",
8853 + "default3.handlebars->123->2446",
8854 + "default3.handlebars->123->3033"
8855 ]
8856 },
8857 {
@@ -8880,8 +8880,8 @@
8880 "zh-chs": "允许用户管理此设备。",
8881 "zh-cht": "允許用戶管理此裝置。",
8882 "xloc": [
8883 - "default.handlebars->121->2461",
8884 - "default3.handlebars->123->2443"
8883 + "default.handlebars->121->2463",
8884 + "default3.handlebars->123->2447"
8885 ]
8886 },
8887 {
@@ -8911,11 +8911,11 @@
8911 "zh-cht": "允許",
8912 "xloc": [
8913 "default.handlebars->121->307",
8914 - "default.handlebars->121->3564",
8915 - "default.handlebars->121->3567",
8916 - "default3.handlebars->123->302",
8917 - "default3.handlebars->123->3539",
8918 - "default3.handlebars->123->3542"
8914 + "default.handlebars->121->3566",
8915 + "default.handlebars->121->3569",
8916 + "default3.handlebars->123->304",
8917 + "default3.handlebars->123->3543",
8918 + "default3.handlebars->123->3546"
8919 ]
8920 },
8921 {
@@ -8979,7 +8979,7 @@
8979 "default-mobile.handlebars->55->663",
8980 "default.handlebars->121->1455",
8981 "default.handlebars->121->1459",
8982 - "default3.handlebars->123->1436",
8982 + "default3.handlebars->123->1438",
8983 "sharing-mobile.handlebars->55->34",
8984 "sharing-mobile.handlebars->55->38"
8985 ]
@@ -9011,7 +9011,7 @@
9011 "zh-cht": "替代Shell",
9012 "xloc": [
9013 "default.handlebars->121->1421",
9014 - "default3.handlebars->123->1402"
9014 + "default3.handlebars->123->1404"
9015 ]
9016 },
9017 {
@@ -9103,7 +9103,7 @@
9103 "zh-cht": "備用(F10 = ESC + 0)",
9104 "xloc": [
9105 "default.handlebars->121->1547",
9106 - "default3.handlebars->123->1519",
9106 + "default3.handlebars->123->1521",
9107 "sharing.handlebars->49->37"
9108 ]
9109 },
@@ -9174,14 +9174,14 @@
9174 "zh-chs": "一直通知",
9175 "zh-cht": "一直通知",
9176 "xloc": [
9177 - "default.handlebars->121->2320",
9178 - "default.handlebars->121->3009",
9179 - "default.handlebars->121->3114",
9177 + "default.handlebars->121->2322",
9178 + "default.handlebars->121->3011",
9179 + "default.handlebars->121->3116",
9180 "default.handlebars->121->997",
9181 - "default3.handlebars->123->2301",
9182 - "default3.handlebars->123->2988",
9183 - "default3.handlebars->123->3093",
9184 - "default3.handlebars->123->987"
9181 + "default3.handlebars->123->2305",
9182 + "default3.handlebars->123->2992",
9183 + "default3.handlebars->123->3097",
9184 + "default3.handlebars->123->989"
9185 ]
9186 },
9187 {
@@ -9210,14 +9210,14 @@
9210 "zh-chs": "一直提示",
9211 "zh-cht": "一直提示",
9212 "xloc": [
9213 - "default.handlebars->121->2321",
9214 - "default.handlebars->121->3010",
9215 - "default.handlebars->121->3115",
9213 + "default.handlebars->121->2323",
9214 + "default.handlebars->121->3012",
9215 + "default.handlebars->121->3117",
9216 "default.handlebars->121->998",
9217 - "default3.handlebars->123->2302",
9218 - "default3.handlebars->123->2989",
9219 - "default3.handlebars->123->3094",
9220 - "default3.handlebars->123->988"
9217 + "default3.handlebars->123->2306",
9218 + "default3.handlebars->123->2993",
9219 + "default3.handlebars->123->3098",
9220 + "default3.handlebars->123->990"
9221 ]
9222 },
9223 {
@@ -9225,7 +9225,7 @@
9225 "nl": "Amazon App Store",
9226 "xloc": [
9227 "default.handlebars->121->682",
9228 - "default3.handlebars->123->672"
9228 + "default3.handlebars->123->674"
9229 ]
9230 },
9231 {
@@ -9298,8 +9298,8 @@
9298 "pl": "Wystąpił nieznany błąd.",
9299 "uk": "Сталася невідома помилка.",
9300 "xloc": [
9301 - "default.handlebars->121->3251",
9302 - "default3.handlebars->123->3226"
9301 + "default.handlebars->121->3253",
9302 + "default3.handlebars->123->3230"
9303 ]
9304 },
9305 {
@@ -9366,7 +9366,7 @@
9366 "xloc": [
9367 "default-mobile.handlebars->55->1026",
9368 "default.handlebars->121->683",
9369 - "default3.handlebars->123->673"
9369 + "default3.handlebars->123->675"
9370 ]
9371 },
9372 {
@@ -9434,7 +9434,7 @@
9434 "uk": "Android MeshAgent",
9435 "xloc": [
9436 "default.handlebars->121->620",
9437 - "default3.handlebars->123->610"
9437 + "default3.handlebars->123->612"
9438 ]
9439 },
9440 {
@@ -9445,7 +9445,7 @@
9445 "xloc": [
9446 "default-mobile.handlebars->55->815",
9447 "default.handlebars->121->1664",
9448 - "default3.handlebars->123->1636"
9448 + "default3.handlebars->123->1638"
9449 ]
9450 },
9451 {
@@ -9505,10 +9505,10 @@
9505 "zh-chs": "杀毒软件未激活",
9506 "zh-cht": "殺毒軟件未激活",
9507 "xloc": [
9508 - "default.handlebars->121->2583",
9509 - "default.handlebars->121->2597",
9510 - "default3.handlebars->123->2565",
9511 - "default3.handlebars->123->2579"
9508 + "default.handlebars->121->2585",
9509 + "default.handlebars->121->2599",
9510 + "default3.handlebars->123->2569",
9511 + "default3.handlebars->123->2583"
9512 ]
9513 },
9514 {
@@ -9539,7 +9539,7 @@
9539 "xloc": [
9540 "default-mobile.handlebars->55->792",
9541 "default.handlebars->121->983",
9542 - "default3.handlebars->123->973"
9542 + "default3.handlebars->123->975"
9543 ]
9544 },
9545 {
@@ -9569,7 +9569,7 @@
9569 "zh-cht": "任何可支持的",
9570 "xloc": [
9571 "default.handlebars->121->588",
9572 - "default3.handlebars->123->578"
9572 + "default3.handlebars->123->580"
9573 ]
9574 },
9575 {
@@ -9660,7 +9660,7 @@
9660 "zh-cht": "蘋果macOS",
9661 "xloc": [
9662 "default.handlebars->121->630",
9663 - "default3.handlebars->123->620"
9663 + "default3.handlebars->123->622"
9664 ]
9665 },
9666 {
@@ -9670,7 +9670,7 @@
9670 "uk": "Apple macOS (Деінсталяція)",
9671 "xloc": [
9672 "default.handlebars->121->635",
9673 - "default3.handlebars->123->625"
9673 + "default3.handlebars->123->627"
9674 ]
9675 },
9676 {
@@ -9681,7 +9681,7 @@
9681 "xloc": [
9682 "agentinvite.handlebars->13->12",
9683 "default.handlebars->121->715",
9684 - "default3.handlebars->123->705"
9684 + "default3.handlebars->123->707"
9685 ]
9686 },
9687 {
@@ -9711,7 +9711,7 @@
9711 "zh-cht": "僅限Apple macOS",
9712 "xloc": [
9713 "default.handlebars->121->590",
9714 - "default3.handlebars->123->580"
9714 + "default3.handlebars->123->582"
9715 ]
9716 },
9717 {
@@ -9762,7 +9762,7 @@
9762 "zh-cht": "應用程序,始終連接",
9763 "xloc": [
9764 "default.handlebars->121->644",
9765 - "default3.handlebars->123->634"
9765 + "default3.handlebars->123->636"
9766 ]
9767 },
9768 {
@@ -9792,7 +9792,7 @@
9792 "zh-cht": "應用程序,根據用戶請求連接",
9793 "xloc": [
9794 "default.handlebars->121->643",
9795 - "default3.handlebars->123->633"
9795 + "default3.handlebars->123->635"
9796 ]
9797 },
9798 {
@@ -9822,8 +9822,8 @@
9822 "zh-cht": "阿拉伯文(阿爾及利亞)",
9823 "xloc": [
9824 "default-mobile.handlebars->55->123",
9825 - "default.handlebars->121->1965",
9826 - "default3.handlebars->123->1933",
9825 + "default.handlebars->121->1967",
9826 + "default3.handlebars->123->1937",
9827 "login2.handlebars->17->4"
9828 ]
9829 },
@@ -9854,8 +9854,8 @@
9854 "zh-cht": "阿拉伯文(巴林)",
9855 "xloc": [
9856 "default-mobile.handlebars->55->124",
9857 - "default.handlebars->121->1966",
9858 - "default3.handlebars->123->1934",
9857 + "default.handlebars->121->1968",
9858 + "default3.handlebars->123->1938",
9859 "login2.handlebars->17->5"
9860 ]
9861 },
@@ -9886,8 +9886,8 @@
9886 "zh-cht": "阿拉伯文(埃及)",
9887 "xloc": [
9888 "default-mobile.handlebars->55->125",
9889 - "default.handlebars->121->1967",
9890 - "default3.handlebars->123->1935",
9889 + "default.handlebars->121->1969",
9890 + "default3.handlebars->123->1939",
9891 "login2.handlebars->17->6"
9892 ]
9893 },
@@ -9918,8 +9918,8 @@
9918 "zh-cht": "阿拉伯文(伊拉克)",
9919 "xloc": [
9920 "default-mobile.handlebars->55->126",
9921 - "default.handlebars->121->1968",
9922 - "default3.handlebars->123->1936",
9921 + "default.handlebars->121->1970",
9922 + "default3.handlebars->123->1940",
9923 "login2.handlebars->17->7"
9924 ]
9925 },
@@ -9950,8 +9950,8 @@
9950 "zh-cht": "阿拉伯文(約旦)",
9951 "xloc": [
9952 "default-mobile.handlebars->55->127",
9953 - "default.handlebars->121->1969",
9954 - "default3.handlebars->123->1937",
9953 + "default.handlebars->121->1971",
9954 + "default3.handlebars->123->1941",
9955 "login2.handlebars->17->8"
9956 ]
9957 },
@@ -9982,8 +9982,8 @@
9982 "zh-cht": "阿拉伯文(科威特)",
9983 "xloc": [
9984 "default-mobile.handlebars->55->128",
9985 - "default.handlebars->121->1970",
9986 - "default3.handlebars->123->1938",
9985 + "default.handlebars->121->1972",
9986 + "default3.handlebars->123->1942",
9987 "login2.handlebars->17->9"
9988 ]
9989 },
@@ -10014,8 +10014,8 @@
10014 "zh-cht": "阿拉伯文(黎巴嫩)",
10015 "xloc": [
10016 "default-mobile.handlebars->55->129",
10017 - "default.handlebars->121->1971",
10018 - "default3.handlebars->123->1939",
10017 + "default.handlebars->121->1973",
10018 + "default3.handlebars->123->1943",
10019 "login2.handlebars->17->10"
10020 ]
10021 },
@@ -10046,8 +10046,8 @@
10046 "zh-cht": "阿拉伯文(利比亞)",
10047 "xloc": [
10048 "default-mobile.handlebars->55->130",
10049 - "default.handlebars->121->1972",
10050 - "default3.handlebars->123->1940",
10049 + "default.handlebars->121->1974",
10050 + "default3.handlebars->123->1944",
10051 "login2.handlebars->17->11"
10052 ]
10053 },
@@ -10078,8 +10078,8 @@
10078 "zh-cht": "阿拉伯文(摩洛哥)",
10079 "xloc": [
10080 "default-mobile.handlebars->55->131",
10081 - "default.handlebars->121->1973",
10082 - "default3.handlebars->123->1941",
10081 + "default.handlebars->121->1975",
10082 + "default3.handlebars->123->1945",
10083 "login2.handlebars->17->12"
10084 ]
10085 },
@@ -10110,8 +10110,8 @@
10110 "zh-cht": "阿拉伯文(阿曼)",
10111 "xloc": [
10112 "default-mobile.handlebars->55->132",
10113 - "default.handlebars->121->1974",
10114 - "default3.handlebars->123->1942",
10113 + "default.handlebars->121->1976",
10114 + "default3.handlebars->123->1946",
10115 "login2.handlebars->17->13"
10116 ]
10117 },
@@ -10142,8 +10142,8 @@
10142 "zh-cht": "阿拉伯文(卡塔爾)",
10143 "xloc": [
10144 "default-mobile.handlebars->55->133",
10145 - "default.handlebars->121->1975",
10146 - "default3.handlebars->123->1943",
10145 + "default.handlebars->121->1977",
10146 + "default3.handlebars->123->1947",
10147 "login2.handlebars->17->14"
10148 ]
10149 },
@@ -10174,8 +10174,8 @@
10174 "zh-cht": "阿拉伯文(沙特阿拉伯)",
10175 "xloc": [
10176 "default-mobile.handlebars->55->134",
10177 - "default.handlebars->121->1976",
10178 - "default3.handlebars->123->1944",
10177 + "default.handlebars->121->1978",
10178 + "default3.handlebars->123->1948",
10179 "login2.handlebars->17->15"
10180 ]
10181 },
@@ -10206,8 +10206,8 @@
10206 "zh-cht": "阿拉伯文(標準)",
10207 "xloc": [
10208 "default-mobile.handlebars->55->122",
10209 - "default.handlebars->121->1964",
10210 - "default3.handlebars->123->1932",
10209 + "default.handlebars->121->1966",
10210 + "default3.handlebars->123->1936",
10211 "login2.handlebars->17->3"
10212 ]
10213 },
@@ -10238,8 +10238,8 @@
10238 "zh-cht": "阿拉伯文(敘利亞)",
10239 "xloc": [
10240 "default-mobile.handlebars->55->135",
10241 - "default.handlebars->121->1977",
10242 - "default3.handlebars->123->1945",
10241 + "default.handlebars->121->1979",
10242 + "default3.handlebars->123->1949",
10243 "login2.handlebars->17->16"
10244 ]
10245 },
@@ -10270,8 +10270,8 @@
10270 "zh-cht": "阿拉伯文(突尼斯)",
10271 "xloc": [
10272 "default-mobile.handlebars->55->136",
10273 - "default.handlebars->121->1978",
10274 - "default3.handlebars->123->1946",
10273 + "default.handlebars->121->1980",
10274 + "default3.handlebars->123->1950",
10275 "login2.handlebars->17->17"
10276 ]
10277 },
@@ -10302,8 +10302,8 @@
10302 "zh-cht": "阿拉伯文(阿聯酋)",
10303 "xloc": [
10304 "default-mobile.handlebars->55->137",
10305 - "default.handlebars->121->1979",
10306 - "default3.handlebars->123->1947",
10305 + "default.handlebars->121->1981",
10306 + "default3.handlebars->123->1951",
10307 "login2.handlebars->17->18"
10308 ]
10309 },
@@ -10334,8 +10334,8 @@
10334 "zh-cht": "阿拉伯文(也門)",
10335 "xloc": [
10336 "default-mobile.handlebars->55->138",
10337 - "default.handlebars->121->1980",
10338 - "default3.handlebars->123->1948",
10337 + "default.handlebars->121->1982",
10338 + "default3.handlebars->123->1952",
10339 "login2.handlebars->17->19"
10340 ]
10341 },
@@ -10366,8 +10366,8 @@
10366 "zh-cht": "阿拉貢文",
10367 "xloc": [
10368 "default-mobile.handlebars->55->139",
10369 - "default.handlebars->121->1981",
10370 - "default3.handlebars->123->1949",
10369 + "default.handlebars->121->1983",
10370 + "default3.handlebars->123->1953",
10371 "login2.handlebars->17->20"
10372 ]
10373 },
@@ -10405,10 +10405,10 @@
10405 "default.handlebars->121->1632",
10406 "default.handlebars->121->1634",
10407 "default.handlebars->121->1644",
10408 - "default3.handlebars->123->1602",
10408 "default3.handlebars->123->1604",
10409 "default3.handlebars->123->1606",
10411 - "default3.handlebars->123->1613"
10410 + "default3.handlebars->123->1608",
10411 + "default3.handlebars->123->1615"
10412 ]
10413 },
10414 {
@@ -10438,7 +10438,7 @@
10438 "zh-cht": "你確定要連接到{0}裝置嗎?",
10439 "xloc": [
10440 "default.handlebars->121->515",
10441 - "default3.handlebars->123->505"
10441 + "default3.handlebars->123->507"
10442 ]
10443 },
10444 {
@@ -10468,8 +10468,8 @@
10468 "zh-cht": "你確定要刪除群{0}嗎?刪除裝置群還將刪除該群中有關裝置的所有訊息。",
10469 "xloc": [
10470 "default-mobile.handlebars->55->1014",
10471 - "default.handlebars->121->2425",
10472 - "default3.handlebars->123->2404"
10471 + "default.handlebars->121->2427",
10472 + "default3.handlebars->123->2408"
10473 ]
10474 },
10475 {
@@ -10499,7 +10499,7 @@
10499 "zh-cht": "你確定要刪除節點{0}嗎?",
10500 "xloc": [
10501 "default.handlebars->121->1347",
10502 - "default3.handlebars->123->1331"
10502 + "default3.handlebars->123->1333"
10503 ]
10504 },
10505 {
@@ -10510,7 +10510,7 @@
10510 "uk": "Ви впевнені, що бажаєте відкрити цей файл/теку на робочому столі віддаленого пристрою?",
10511 "xloc": [
10512 "default.handlebars->121->1568",
10513 - "default3.handlebars->123->1540"
10513 + "default3.handlebars->123->1542"
10514 ]
10515 },
10516 {
@@ -10540,7 +10540,7 @@
10540 "zh-cht": "你確定要卸載所選代理嗎?",
10541 "xloc": [
10542 "default.handlebars->121->1336",
10543 - "default3.handlebars->123->1321"
10543 + "default3.handlebars->123->1323"
10544 ]
10545 },
10546 {
@@ -10570,7 +10570,7 @@
10570 "zh-cht": "你確定要卸載所選的{0}代理嗎?",
10571 "xloc": [
10572 "default.handlebars->121->1335",
10573 - "default3.handlebars->123->1320"
10573 + "default3.handlebars->123->1322"
10574 ]
10575 },
10576 {
@@ -10599,8 +10599,8 @@
10599 "zh-chs": "您确定要{0}插件吗:{1}",
10600 "zh-cht": "你確定要{0}外掛嗎:{1}",
10601 "xloc": [
10602 - "default.handlebars->121->3554",
10603 - "default3.handlebars->123->3529"
10602 + "default.handlebars->121->3556",
10603 + "default3.handlebars->123->3533"
10604 ]
10605 },
10606 {
@@ -10661,8 +10661,8 @@
10661 "zh-cht": "亞美尼亞文",
10662 "xloc": [
10663 "default-mobile.handlebars->55->140",
10664 - "default.handlebars->121->1982",
10665 - "default3.handlebars->123->1950",
10664 + "default.handlebars->121->1984",
10665 + "default3.handlebars->123->1954",
10666 "login2.handlebars->17->21"
10667 ]
10668 },
@@ -10875,8 +10875,8 @@
10875 "zh-cht": "阿薩姆文",
10876 "xloc": [
10877 "default-mobile.handlebars->55->141",
10878 - "default.handlebars->121->1983",
10879 - "default3.handlebars->123->1951",
10878 + "default.handlebars->121->1985",
10879 + "default3.handlebars->123->1955",
10880 "login2.handlebars->17->22"
10881 ]
10882 },
@@ -10908,7 +10908,7 @@
10908 "xloc": [
10909 "default-mobile.handlebars->55->869",
10910 "default.handlebars->121->1728",
10911 - "default3.handlebars->123->1698"
10911 + "default3.handlebars->123->1700"
10912 ]
10913 },
10914 {
@@ -11000,8 +11000,8 @@
11000 "xloc": [
11001 "default.handlebars->121->689",
11002 "default.handlebars->121->693",
11003 - "default3.handlebars->123->679",
11004 - "default3.handlebars->123->683"
11003 + "default3.handlebars->123->681",
11004 + "default3.handlebars->123->685"
11005 ]
11006 },
11007 {
@@ -11060,8 +11060,8 @@
11060 "zh-cht": "阿斯圖里亞斯文",
11061 "xloc": [
11062 "default-mobile.handlebars->55->142",
11063 - "default.handlebars->121->1984",
11064 - "default3.handlebars->123->1952",
11063 + "default.handlebars->121->1986",
11064 + "default3.handlebars->123->1956",
11065 "login2.handlebars->17->23"
11066 ]
11067 },
@@ -11091,8 +11091,8 @@
11091 "zh-chs": "尝试激活英特尔(R)AMT ACM模式",
11092 "zh-cht": "嘗試激活英特爾(R)AMT ACM模式",
11093 "xloc": [
11094 - "default.handlebars->121->2675",
11095 - "default3.handlebars->123->2657"
11094 + "default.handlebars->121->2677",
11095 + "default3.handlebars->123->2661"
11096 ]
11097 },
11098 {
@@ -11127,9 +11127,9 @@
11127 "default.handlebars->121->1522",
11128 "default.handlebars->121->1526",
11129 "default.handlebars->121->1538",
11130 - "default3.handlebars->123->1494",
11131 - "default3.handlebars->123->1498",
11132 - "default3.handlebars->123->1510",
11130 + "default3.handlebars->123->1496",
11131 + "default3.handlebars->123->1500",
11132 + "default3.handlebars->123->1512",
11133 "sharing-mobile.handlebars->55->47",
11134 "sharing-mobile.handlebars->55->56",
11135 "sharing-mobile.handlebars->55->64",
@@ -11166,8 +11166,8 @@
11166 "zh-chs": "认证软件",
11167 "zh-cht": "認證軟體",
11168 "xloc": [
11169 - "default.handlebars->121->3118",
11170 - "default3.handlebars->123->3097"
11169 + "default.handlebars->121->3120",
11170 + "default3.handlebars->123->3101"
11171 ]
11172 },
11173 {
@@ -11196,12 +11196,12 @@
11196 "zh-chs": "认证设备",
11197 "zh-cht": "認證設備",
11198 "xloc": [
11199 - "default.handlebars->121->1945",
11199 "default.handlebars->121->1947",
11201 - "default.handlebars->121->1951",
11202 - "default3.handlebars->123->1914",
11203 - "default3.handlebars->123->1916",
11204 - "default3.handlebars->123->1919"
11200 + "default.handlebars->121->1949",
11201 + "default.handlebars->121->1953",
11202 + "default3.handlebars->123->1918",
11203 + "default3.handlebars->123->1920",
11204 + "default3.handlebars->123->1923"
11205 ]
11206 },
11207 {
@@ -11234,8 +11234,8 @@
11234 "default-mobile.handlebars->55->698",
11235 "default.handlebars->121->1540",
11236 "default.handlebars->121->1555",
11237 - "default3.handlebars->123->1512",
11238 - "default3.handlebars->123->1527",
11237 + "default3.handlebars->123->1514",
11238 + "default3.handlebars->123->1529",
11239 "sharing-mobile.handlebars->55->57",
11240 "sharing-mobile.handlebars->55->74"
11241 ]
@@ -11270,14 +11270,14 @@
11270 "default-mobile.handlebars->55->327",
11271 "default-mobile.handlebars->55->80",
11272 "default-mobile.handlebars->55->85",
11273 - "default.handlebars->121->1941",
11273 "default.handlebars->121->1943",
11274 + "default.handlebars->121->1945",
11275 "default.handlebars->121->237",
11276 "default.handlebars->121->242",
11277 - "default3.handlebars->123->1910",
11278 - "default3.handlebars->123->1912",
11279 - "default3.handlebars->123->232",
11280 - "default3.handlebars->123->237"
11277 + "default3.handlebars->123->1914",
11278 + "default3.handlebars->123->1916",
11279 + "default3.handlebars->123->234",
11280 + "default3.handlebars->123->239"
11281 ]
11282 },
11283 {
@@ -11308,7 +11308,7 @@
11308 "xloc": [
11309 "default-mobile.handlebars->55->81",
11310 "default.handlebars->121->238",
11311 - "default3.handlebars->123->233"
11311 + "default3.handlebars->123->235"
11312 ]
11313 },
11314 {
@@ -11339,7 +11339,7 @@
11339 "xloc": [
11340 "default-mobile.handlebars->55->86",
11341 "default.handlebars->121->243",
11342 - "default3.handlebars->123->238"
11342 + "default3.handlebars->123->240"
11343 ]
11344 },
11345 {
@@ -11427,10 +11427,10 @@
11427 "zh-chs": "自动删除",
11428 "zh-cht": "自動刪除",
11429 "xloc": [
11430 - "default.handlebars->121->2303",
11431 - "default.handlebars->121->2821",
11432 - "default3.handlebars->123->2284",
11433 - "default3.handlebars->123->2803"
11430 + "default.handlebars->121->2305",
11431 + "default.handlebars->121->2823",
11432 + "default3.handlebars->123->2288",
11433 + "default3.handlebars->123->2807"
11434 ]
11435 },
11436 {
@@ -11496,8 +11496,8 @@
11496 "zh-chs": "自动下载代理程序核心转储文件:“{0}”",
11497 "zh-cht": "自動下載代理程序核心轉儲文件:“{0}”",
11498 "xloc": [
11499 - "default.handlebars->121->2756",
11500 - "default3.handlebars->123->2738"
11499 + "default.handlebars->121->2758",
11500 + "default3.handlebars->123->2742"
11501 ]
11502 },
11503 {
@@ -11588,8 +11588,8 @@
11588 "zh-chs": "自动移除非活动设备",
11589 "zh-cht": "自動移除非活動設備",
11590 "xloc": [
11591 - "default.handlebars->121->2455",
11592 - "default3.handlebars->123->2437"
11591 + "default.handlebars->121->2457",
11592 + "default3.handlebars->123->2441"
11593 ]
11594 },
11595 {
@@ -11618,8 +11618,8 @@
11618 "zh-chs": "可用內存",
11619 "zh-cht": "可用內存",
11620 "xloc": [
11621 - "default.handlebars->121->3482",
11622 - "default3.handlebars->123->3457"
11621 + "default.handlebars->121->3484",
11622 + "default3.handlebars->123->3461"
11623 ]
11624 },
11625 {
@@ -11649,8 +11649,8 @@
11649 "zh-cht": "阿塞拜疆文",
11650 "xloc": [
11651 "default-mobile.handlebars->55->143",
11652 - "default.handlebars->121->1985",
11653 - "default3.handlebars->123->1953",
11652 + "default.handlebars->121->1987",
11653 + "default3.handlebars->123->1957",
11654 "login2.handlebars->17->24"
11655 ]
11656 },
@@ -11701,14 +11701,14 @@
11701 "default.handlebars->121->959",
11702 "default.handlebars->121->974",
11703 "default.handlebars->121->978",
11704 - "default3.handlebars->123->451",
11704 "default3.handlebars->123->453",
11705 "default3.handlebars->123->455",
11707 - "default3.handlebars->123->941",
11708 - "default3.handlebars->123->945",
11709 - "default3.handlebars->123->949",
11710 - "default3.handlebars->123->964",
11711 - "default3.handlebars->123->968"
11706 + "default3.handlebars->123->457",
11707 + "default3.handlebars->123->943",
11708 + "default3.handlebars->123->947",
11709 + "default3.handlebars->123->951",
11710 + "default3.handlebars->123->966",
11711 + "default3.handlebars->123->970"
11712 ]
11713 },
11714 {
@@ -11739,7 +11739,7 @@
11739 "xloc": [
11740 "default-mobile.handlebars->55->857",
11741 "default.handlebars->121->1716",
11742 - "default3.handlebars->123->1686"
11742 + "default3.handlebars->123->1688"
11743 ]
11744 },
11745 {
@@ -11881,7 +11881,7 @@
11881 "xloc": [
11882 "default-mobile.handlebars->55->640",
11883 "default.handlebars->121->1437",
11884 - "default3.handlebars->123->1418",
11884 + "default3.handlebars->123->1420",
11885 "sharing-mobile.handlebars->55->17"
11886 ]
11887 },
@@ -11913,7 +11913,7 @@
11913 "xloc": [
11914 "agentinvite.handlebars->13->8",
11915 "default.handlebars->121->639",
11916 - "default3.handlebars->123->629"
11916 + "default3.handlebars->123->631"
11917 ]
11918 },
11919 {
@@ -11942,14 +11942,14 @@
11942 "zh-chs": "后台运行与交互式运行",
11943 "zh-cht": "背景與互動",
11944 "xloc": [
11945 - "default.handlebars->121->2554",
11946 - "default.handlebars->121->2561",
11945 + "default.handlebars->121->2556",
11946 + "default.handlebars->121->2563",
11947 "default.handlebars->121->601",
11948 "default.handlebars->121->622",
11949 - "default3.handlebars->123->2536",
11950 - "default3.handlebars->123->2543",
11951 - "default3.handlebars->123->591",
11952 - "default3.handlebars->123->612"
11949 + "default3.handlebars->123->2540",
11950 + "default3.handlebars->123->2547",
11951 + "default3.handlebars->123->593",
11952 + "default3.handlebars->123->614"
11953 ]
11954 },
11955 {
@@ -11979,16 +11979,16 @@
11979 "zh-cht": "僅背景",
11980 "xloc": [
11981 "agentinvite.handlebars->13->9",
11982 - "default.handlebars->121->2555",
11983 - "default.handlebars->121->2563",
11982 + "default.handlebars->121->2557",
11983 + "default.handlebars->121->2565",
11984 "default.handlebars->121->602",
11985 "default.handlebars->121->623",
11986 "default.handlebars->121->640",
11987 - "default3.handlebars->123->2537",
11988 - "default3.handlebars->123->2545",
11989 - "default3.handlebars->123->592",
11990 - "default3.handlebars->123->613",
11991 - "default3.handlebars->123->630"
11987 + "default3.handlebars->123->2541",
11988 + "default3.handlebars->123->2549",
11989 + "default3.handlebars->123->594",
11990 + "default3.handlebars->123->615",
11991 + "default3.handlebars->123->632"
11992 ]
11993 },
11994 {
@@ -12048,10 +12048,10 @@
12048 "zh-chs": "备用码",
12049 "zh-cht": "備用碼",
12050 "xloc": [
12051 - "default.handlebars->121->3122",
12052 - "default.handlebars->121->3358",
12053 - "default3.handlebars->123->3101",
12054 - "default3.handlebars->123->3333"
12051 + "default.handlebars->121->3124",
12052 + "default.handlebars->121->3360",
12053 + "default3.handlebars->123->3105",
12054 + "default3.handlebars->123->3337"
12055 ]
12056 },
12057 {
@@ -12082,7 +12082,7 @@
12082 "xloc": [
12083 "default-mobile.handlebars->55->71",
12084 "default.handlebars->121->226",
12085 - "default3.handlebars->123->221"
12085 + "default3.handlebars->123->223"
12086 ]
12087 },
12088 {
@@ -12141,8 +12141,8 @@
12141 "zh-chs": "错误的签名",
12142 "zh-cht": "錯誤的簽名",
12143 "xloc": [
12144 - "default.handlebars->121->3463",
12145 - "default3.handlebars->123->3438"
12144 + "default.handlebars->121->3465",
12145 + "default3.handlebars->123->3442"
12146 ]
12147 },
12148 {
@@ -12171,8 +12171,8 @@
12171 "zh-chs": "错误的网络证书",
12172 "zh-cht": "錯誤的網絡憑證",
12173 "xloc": [
12174 - "default.handlebars->121->3462",
12175 - "default3.handlebars->123->3437"
12174 + "default.handlebars->121->3464",
12175 + "default3.handlebars->123->3441"
12176 ]
12177 },
12178 {
@@ -12202,8 +12202,8 @@
12202 "zh-cht": "巴斯克",
12203 "xloc": [
12204 "default-mobile.handlebars->55->144",
12205 - "default.handlebars->121->1986",
12206 - "default3.handlebars->123->1954",
12205 + "default.handlebars->121->1988",
12206 + "default3.handlebars->123->1958",
12207 "login2.handlebars->17->25"
12208 ]
12209 },
@@ -12234,7 +12234,7 @@
12234 "zh-cht": "批處理文件上傳",
12235 "xloc": [
12236 "default.handlebars->121->820",
12237 - "default3.handlebars->123->810"
12237 + "default3.handlebars->123->812"
12238 ]
12239 },
12240 {
@@ -12314,8 +12314,8 @@
12314 "zh-chs": "将{0}个文件批量上传到文件夹{1}",
12315 "zh-cht": "將{0}個文件批量上傳到文件夾{1}",
12316 "xloc": [
12317 - "default.handlebars->121->2755",
12318 - "default3.handlebars->123->2737"
12317 + "default.handlebars->121->2757",
12318 + "default3.handlebars->123->2741"
12319 ]
12320 },
12321 {
@@ -12343,7 +12343,7 @@
12343 "xloc": [
12344 "default-mobile.handlebars->55->914",
12345 "default.handlebars->121->1773",
12346 - "default3.handlebars->123->1743"
12346 + "default3.handlebars->123->1745"
12347 ]
12348 },
12349 {
@@ -12373,7 +12373,7 @@
12373 "xloc": [
12374 "default-mobile.handlebars->55->912",
12375 "default.handlebars->121->1771",
12376 - "default3.handlebars->123->1741"
12376 + "default3.handlebars->123->1743"
12377 ]
12378 },
12379 {
@@ -12403,8 +12403,8 @@
12403 "zh-cht": "白俄羅斯文",
12404 "xloc": [
12405 "default-mobile.handlebars->55->146",
12406 - "default.handlebars->121->1988",
12407 - "default3.handlebars->123->1956",
12406 + "default.handlebars->121->1990",
12407 + "default3.handlebars->123->1960",
12408 "login2.handlebars->17->27"
12409 ]
12410 },
@@ -12435,8 +12435,8 @@
12435 "zh-cht": "孟加拉",
12436 "xloc": [
12437 "default-mobile.handlebars->55->147",
12438 - "default.handlebars->121->1989",
12439 - "default3.handlebars->123->1957",
12438 + "default.handlebars->121->1991",
12439 + "default3.handlebars->123->1961",
12440 "login2.handlebars->17->28"
12441 ]
12442 },
@@ -12480,7 +12480,7 @@
12480 "xloc": [
12481 "default-mobile.handlebars->55->949",
12482 "default.handlebars->121->1808",
12483 - "default3.handlebars->123->1778"
12483 + "default3.handlebars->123->1780"
12484 ]
12485 },
12486 {
@@ -12492,7 +12492,7 @@
12492 "xloc": [
12493 "default-mobile.handlebars->55->970",
12494 "default.handlebars->121->1829",
12495 - "default3.handlebars->123->1799"
12495 + "default3.handlebars->123->1801"
12496 ]
12497 },
12498 {
@@ -12523,7 +12523,7 @@
12523 "xloc": [
12524 "default-mobile.handlebars->55->812",
12525 "default.handlebars->121->1661",
12526 - "default3.handlebars->123->1633"
12526 + "default3.handlebars->123->1635"
12527 ]
12528 },
12529 {
@@ -12553,8 +12553,8 @@
12553 "zh-cht": "波斯尼亞文",
12554 "xloc": [
12555 "default-mobile.handlebars->55->148",
12556 - "default.handlebars->121->1990",
12557 - "default3.handlebars->123->1958",
12556 + "default.handlebars->121->1992",
12557 + "default3.handlebars->123->1962",
12558 "login2.handlebars->17->29"
12559 ]
12560 },
@@ -12585,8 +12585,8 @@
12585 "zh-cht": "布列塔尼",
12586 "xloc": [
12587 "default-mobile.handlebars->55->149",
12588 - "default.handlebars->121->1991",
12589 - "default3.handlebars->123->1959",
12588 + "default.handlebars->121->1993",
12589 + "default3.handlebars->123->1963",
12590 "login2.handlebars->17->30"
12591 ]
12592 },
@@ -12616,9 +12616,9 @@
12616 "zh-chs": "广播",
12617 "zh-cht": "廣播",
12618 "xloc": [
12619 - "default.handlebars->121->3016",
12619 + "default.handlebars->121->3018",
12620 "default.handlebars->container->column_l->p4->3->1->0->3->1",
12621 - "default3.handlebars->123->2995",
12621 + "default3.handlebars->123->2999",
12622 "default3.handlebars->container->column_l->p4->3->1->0->p4toolbarActions->1->7->3->1",
12623 "default3.handlebars->container->column_l->p4->3->1->0->p4toolbarActions->3"
12624 ]
@@ -12649,8 +12649,8 @@
12649 "zh-chs": "广播消息",
12650 "zh-cht": "廣播消息",
12651 "xloc": [
12652 - "default.handlebars->121->2932",
12653 - "default3.handlebars->123->2913"
12652 + "default.handlebars->121->2934",
12653 + "default3.handlebars->123->2917"
12654 ]
12655 },
12656 {
@@ -12679,8 +12679,8 @@
12679 "zh-chs": "向所有连接的用户广播消息。",
12680 "zh-cht": "向所有連接的用戶廣播消息。",
12681 "xloc": [
12682 - "default.handlebars->121->2927",
12683 - "default3.handlebars->123->2908"
12682 + "default.handlebars->121->2929",
12683 + "default3.handlebars->123->2912"
12684 ]
12685 },
12686 {
@@ -12709,8 +12709,8 @@
12709 "zh-chs": "浏览器",
12710 "zh-cht": "瀏覽器",
12711 "xloc": [
12712 - "default.handlebars->121->3329",
12713 - "default3.handlebars->123->3304"
12712 + "default.handlebars->121->3331",
12713 + "default3.handlebars->123->3308"
12714 ]
12715 },
12716 {
@@ -12802,7 +12802,7 @@
12802 "xloc": [
12803 "default-mobile.handlebars->55->739",
12804 "default.handlebars->121->1629",
12805 - "default3.handlebars->123->1601"
12805 + "default3.handlebars->123->1603"
12806 ]
12807 },
12808 {
@@ -12832,8 +12832,8 @@
12832 "zh-cht": "保加利亞文",
12833 "xloc": [
12834 "default-mobile.handlebars->55->145",
12835 - "default.handlebars->121->1987",
12836 - "default3.handlebars->123->1955",
12835 + "default.handlebars->121->1989",
12836 + "default3.handlebars->123->1959",
12837 "login2.handlebars->17->26"
12838 ]
12839 },
@@ -12864,8 +12864,8 @@
12864 "zh-cht": "緬甸文",
12865 "xloc": [
12866 "default-mobile.handlebars->55->150",
12867 - "default.handlebars->121->1992",
12868 - "default3.handlebars->123->1960",
12867 + "default.handlebars->121->1994",
12868 + "default3.handlebars->123->1964",
12869 "login2.handlebars->17->31"
12870 ]
12871 },
@@ -12895,8 +12895,8 @@
12895 "zh-chs": "默认情况下,不活动的设备将在 1 天后移除。",
12896 "zh-cht": "默認情況下,非活動設備將在 1 天后移除。",
12897 "xloc": [
12898 - "default.handlebars->121->2457",
12899 - "default3.handlebars->123->2439"
12898 + "default.handlebars->121->2459",
12899 + "default3.handlebars->123->2443"
12900 ]
12901 },
12902 {
@@ -12925,8 +12925,8 @@
12925 "zh-chs": "默认情况下,非活动设备将在 {0} 天后移除。",
12926 "zh-cht": "默認情況下,不活動的設備將在 {0} 天后被移除。",
12927 "xloc": [
12928 - "default.handlebars->121->2458",
12929 - "default3.handlebars->123->2440"
12928 + "default.handlebars->121->2460",
12929 + "default3.handlebars->123->2444"
12930 ]
12931 },
12932 {
@@ -12968,8 +12968,8 @@
12968 "zh-chs": "字节输入",
12969 "zh-cht": "字節輸入",
12970 "xloc": [
12971 - "default.handlebars->121->3325",
12972 - "default3.handlebars->123->3300"
12971 + "default.handlebars->121->3327",
12972 + "default3.handlebars->123->3304"
12973 ]
12974 },
12975 {
@@ -12998,8 +12998,8 @@
12998 "zh-chs": "字节输出",
12999 "zh-cht": "字節輸出",
13000 "xloc": [
13001 - "default.handlebars->121->3326",
13002 - "default3.handlebars->123->3301"
13001 + "default.handlebars->121->3328",
13002 + "default3.handlebars->123->3305"
13003 ]
13004 },
13005 {
@@ -13078,8 +13078,8 @@
13078 "default-mobile.handlebars->55->503",
13079 "default.handlebars->121->471",
13080 "default.handlebars->121->927",
13081 - "default3.handlebars->123->461",
13082 - "default3.handlebars->123->917"
13081 + "default3.handlebars->123->463",
13082 + "default3.handlebars->123->919"
13083 ]
13084 },
13085 {
@@ -13108,8 +13108,8 @@
13108 "zh-chs": "CCM模式",
13109 "zh-cht": "CCM模式",
13110 "xloc": [
13111 - "default.handlebars->121->2408",
13112 - "default3.handlebars->123->2387"
13111 + "default.handlebars->121->2410",
13112 + "default3.handlebars->123->2391"
13113 ]
13114 },
13115 {
@@ -13123,9 +13123,9 @@
13123 "default.handlebars->121->1801",
13124 "default.handlebars->121->1813",
13125 "default.handlebars->121->1820",
13126 - "default3.handlebars->123->1771",
13127 - "default3.handlebars->123->1783",
13128 - "default3.handlebars->123->1790"
13126 + "default3.handlebars->123->1773",
13127 + "default3.handlebars->123->1785",
13128 + "default3.handlebars->123->1792"
13129 ]
13130 },
13131 {
@@ -13155,12 +13155,12 @@
13155 "zh-cht": "CIRA",
13156 "xloc": [
13157 "default-mobile.handlebars->55->464",
13158 - "default.handlebars->121->3489",
13158 + "default.handlebars->121->3491",
13159 "default.handlebars->121->449",
13160 "default.handlebars->121->756",
13161 - "default3.handlebars->123->3464",
13162 - "default3.handlebars->123->439",
13163 - "default3.handlebars->123->746"
13161 + "default3.handlebars->123->3468",
13162 + "default3.handlebars->123->441",
13163 + "default3.handlebars->123->748"
13164 ]
13165 },
13166 {
@@ -13189,8 +13189,8 @@
13189 "zh-chs": "CIRA服务器",
13190 "zh-cht": "CIRA伺服器",
13191 "xloc": [
13192 - "default.handlebars->121->3538",
13193 - "default3.handlebars->123->3513"
13192 + "default.handlebars->121->3540",
13193 + "default3.handlebars->123->3517"
13194 ]
13195 },
13196 {
@@ -13219,8 +13219,8 @@
13219 "zh-chs": "CIRA服务器命令",
13220 "zh-cht": "CIRA伺服器指令",
13221 "xloc": [
13222 - "default.handlebars->121->3539",
13223 - "default3.handlebars->123->3514"
13222 + "default.handlebars->121->3541",
13223 + "default3.handlebars->123->3518"
13224 ]
13225 },
13226 {
@@ -13279,8 +13279,8 @@
13279 "zh-chs": "CIRA设置",
13280 "zh-cht": "CIRA設置",
13281 "xloc": [
13282 - "default.handlebars->121->2416",
13283 - "default3.handlebars->123->2394"
13282 + "default.handlebars->121->2418",
13283 + "default3.handlebars->123->2398"
13284 ]
13285 },
13286 {
@@ -13312,11 +13312,11 @@
13312 "default-mobile.handlebars->55->863",
13313 "default.handlebars->121->1624",
13314 "default.handlebars->121->1722",
13315 - "default.handlebars->121->3514",
13315 + "default.handlebars->121->3516",
13316 "default.handlebars->container->column_l->p40->3->1->p40type->5",
13317 - "default3.handlebars->123->1596",
13318 - "default3.handlebars->123->1692",
13319 - "default3.handlebars->123->3489",
13317 + "default3.handlebars->123->1598",
13318 + "default3.handlebars->123->1694",
13319 + "default3.handlebars->123->3493",
13320 "default3.handlebars->container->column_l->p40->3->3->p40type->5"
13321 ]
13322 },
@@ -13346,8 +13346,8 @@
13346 "zh-chs": "CPU负载",
13347 "zh-cht": "CPU負載",
13348 "xloc": [
13349 - "default.handlebars->121->3478",
13350 - "default3.handlebars->123->3453"
13349 + "default.handlebars->121->3480",
13350 + "default3.handlebars->123->3457"
13351 ]
13352 },
13353 {
@@ -13376,8 +13376,8 @@
13376 "zh-chs": "最近15分钟的CPU负载",
13377 "zh-cht": "最近15分鐘的CPU負載",
13378 "xloc": [
13379 - "default.handlebars->121->3481",
13380 - "default3.handlebars->123->3456"
13379 + "default.handlebars->121->3483",
13380 + "default3.handlebars->123->3460"
13381 ]
13382 },
13383 {
@@ -13406,8 +13406,8 @@
13406 "zh-chs": "最近5分钟的CPU负载",
13407 "zh-cht": "最近5分鐘的CPU負載",
13408 "xloc": [
13409 - "default.handlebars->121->3480",
13410 - "default3.handlebars->123->3455"
13409 + "default.handlebars->121->3482",
13410 + "default3.handlebars->123->3459"
13411 ]
13412 },
13413 {
@@ -13436,8 +13436,8 @@
13436 "zh-chs": "最近一分钟的CPU负载",
13437 "zh-cht": "最近一分鐘的CPU負載",
13438 "xloc": [
13439 - "default.handlebars->121->3479",
13440 - "default3.handlebars->123->3454"
13439 + "default.handlebars->121->3481",
13440 + "default3.handlebars->123->3458"
13441 ]
13442 },
13443 {
@@ -13469,8 +13469,8 @@
13469 "default.handlebars->121->1518",
13470 "default.handlebars->121->1549",
13471 "default.handlebars->container->column_l->p12->termTable->1->1->4->1->1->terminalSettingsButtons",
13472 - "default3.handlebars->123->1490",
13473 - "default3.handlebars->123->1521",
13472 + "default3.handlebars->123->1492",
13473 + "default3.handlebars->123->1523",
13474 "default3.handlebars->container->column_l->p12->termTable->1->1->4->1->3->terminalSettingsButtons",
13475 "sharing.handlebars->49->25",
13476 "sharing.handlebars->49->39",
@@ -13503,8 +13503,8 @@
13503 "zh-chs": "CSV",
13504 "zh-cht": "CSV",
13505 "xloc": [
13506 - "default.handlebars->121->2838",
13507 - "default3.handlebars->123->2820"
13506 + "default.handlebars->121->2840",
13507 + "default3.handlebars->123->2824"
13508 ]
13509 },
13510 {
@@ -13533,12 +13533,12 @@
13533 "zh-chs": "CSV格式",
13534 "zh-cht": "CSV格式",
13535 "xloc": [
13536 - "default.handlebars->121->2842",
13537 - "default.handlebars->121->2919",
13536 + "default.handlebars->121->2844",
13537 + "default.handlebars->121->2921",
13538 "default.handlebars->121->829",
13539 - "default3.handlebars->123->2824",
13540 - "default3.handlebars->123->2900",
13541 - "default3.handlebars->123->819"
13539 + "default3.handlebars->123->2828",
13540 + "default3.handlebars->123->2904",
13541 + "default3.handlebars->123->821"
13542 ]
13543 },
13544 {
@@ -13547,8 +13547,8 @@
13547 "nl": "Het CSV bestandsformaat is als volgt:",
13548 "uk": "Формат файлу CSV нижче:",
13549 "xloc": [
13550 - "default.handlebars->121->2905",
13551 - "default3.handlebars->123->2886"
13550 + "default.handlebars->121->2907",
13551 + "default3.handlebars->123->2890"
13552 ]
13553 },
13554 {
@@ -13577,8 +13577,8 @@
13577 "zh-chs": "呼叫错误",
13578 "zh-cht": "呼叫錯誤",
13579 "xloc": [
13580 - "default.handlebars->121->3573",
13581 - "default3.handlebars->123->3549"
13580 + "default.handlebars->121->3575",
13581 + "default3.handlebars->123->3553"
13582 ]
13583 },
13584 {
@@ -13591,10 +13591,10 @@
13591 "pl": "CallMeBot",
13592 "uk": "CallMeBot",
13593 "xloc": [
13594 - "default.handlebars->121->1912",
13595 - "default.handlebars->121->3157",
13596 - "default3.handlebars->123->1881",
13597 - "default3.handlebars->123->3136"
13594 + "default.handlebars->121->1914",
13595 + "default.handlebars->121->3159",
13596 + "default3.handlebars->123->1885",
13597 + "default3.handlebars->123->3140"
13598 ]
13599 },
13600 {
@@ -13656,13 +13656,13 @@
13656 "agent-translations.json",
13657 "default-mobile.handlebars->55->336",
13658 "default-mobile.handlebars->dialog->idx_dlgButtonBar",
13659 - "default.handlebars->121->2268",
13660 - "default.handlebars->121->3544",
13661 - "default.handlebars->121->3558",
13659 + "default.handlebars->121->2270",
13660 + "default.handlebars->121->3546",
13661 + "default.handlebars->121->3560",
13662 "default.handlebars->121->574",
13663 "default.handlebars->container->dialog->idx_dlgButtonBar",
13664 - "default3.handlebars->123->3533",
13665 - "default3.handlebars->123->564",
13664 + "default3.handlebars->123->3537",
13665 + "default3.handlebars->123->566",
13666 "default3.handlebars->container->xxAddAgentModal->xxAddAgentModalConf->1->5->idx_dlgCancelButton",
13667 "login-mobile.handlebars->dialog->idx_dlgButtonBar",
13668 "login.handlebars->dialog->idx_dlgButtonBar",
@@ -13746,14 +13746,14 @@
13746 "default.handlebars->121->1798",
13747 "default.handlebars->121->1810",
13748 "default.handlebars->121->1817",
13749 - "default3.handlebars->123->1746",
13750 - "default3.handlebars->123->1752",
13751 - "default3.handlebars->123->1758",
13752 - "default3.handlebars->123->1763",
13749 + "default3.handlebars->123->1748",
13750 + "default3.handlebars->123->1754",
13751 + "default3.handlebars->123->1760",
13752 "default3.handlebars->123->1765",
13754 - "default3.handlebars->123->1768",
13755 - "default3.handlebars->123->1780",
13756 - "default3.handlebars->123->1787"
13753 + "default3.handlebars->123->1767",
13754 + "default3.handlebars->123->1770",
13755 + "default3.handlebars->123->1782",
13756 + "default3.handlebars->123->1789"
13757 ]
13758 },
13759 {
@@ -13788,9 +13788,9 @@
13788 "default.handlebars->121->1774",
13789 "default.handlebars->121->1780",
13790 "default.handlebars->121->1786",
13791 - "default3.handlebars->123->1744",
13792 - "default3.handlebars->123->1750",
13793 - "default3.handlebars->123->1756"
13791 + "default3.handlebars->123->1746",
13792 + "default3.handlebars->123->1752",
13793 + "default3.handlebars->123->1758"
13794 ]
13795 },
13796 {
@@ -13824,9 +13824,9 @@
13824 "default.handlebars->121->1799",
13825 "default.handlebars->121->1811",
13826 "default.handlebars->121->1818",
13827 - "default3.handlebars->123->1769",
13828 - "default3.handlebars->123->1781",
13829 - "default3.handlebars->123->1788"
13827 + "default3.handlebars->123->1771",
13828 + "default3.handlebars->123->1783",
13829 + "default3.handlebars->123->1790"
13830 ]
13831 },
13832 {
@@ -13856,8 +13856,8 @@
13856 "zh-cht": "加泰羅尼亞文",
13857 "xloc": [
13858 "default-mobile.handlebars->55->151",
13859 - "default.handlebars->121->1993",
13860 - "default3.handlebars->123->1961",
13859 + "default.handlebars->121->1995",
13860 + "default3.handlebars->123->1965",
13861 "login2.handlebars->17->32"
13862 ]
13863 },
@@ -13888,7 +13888,7 @@
13888 "zh-cht": "在這裡為中心顯示地圖",
13889 "xloc": [
13890 "default.handlebars->121->880",
13891 - "default3.handlebars->123->870"
13891 + "default3.handlebars->123->872"
13892 ]
13893 },
13894 {
@@ -13928,7 +13928,7 @@
13928 "en": "Cerulean",
13929 "nl": "Hemelsblauw",
13930 "xloc": [
13931 - "default3.handlebars->123->2175"
13931 + "default3.handlebars->123->2179"
13932 ]
13933 },
13934 {
@@ -13958,8 +13958,8 @@
13958 "zh-cht": "查莫羅",
13959 "xloc": [
13960 "default-mobile.handlebars->55->152",
13961 - "default.handlebars->121->1994",
13962 - "default3.handlebars->123->1962",
13961 + "default.handlebars->121->1996",
13962 + "default3.handlebars->123->1966",
13963 "login2.handlebars->17->33"
13964 ]
13965 },
@@ -14020,8 +14020,8 @@
14020 "zh-chs": "更改{0}的邮箱",
14021 "zh-cht": "更改{0}的電郵",
14022 "xloc": [
14023 - "default.handlebars->121->3197",
14024 - "default3.handlebars->123->3174"
14023 + "default.handlebars->121->3199",
14024 + "default3.handlebars->123->3178"
14025 ]
14026 },
14027 {
@@ -14053,9 +14053,9 @@
14053 "default.handlebars->121->1055",
14054 "default.handlebars->121->1344",
14055 "default.handlebars->121->1345",
14056 - "default3.handlebars->123->1045",
14057 - "default3.handlebars->123->1329",
14058 - "default3.handlebars->123->1330"
14056 + "default3.handlebars->123->1047",
14057 + "default3.handlebars->123->1331",
14058 + "default3.handlebars->123->1332"
14059 ]
14060 },
14061 {
@@ -14100,10 +14100,10 @@
14100 "zh-cht": "更改密碼",
14101 "xloc": [
14102 "default-mobile.handlebars->55->344",
14103 - "default.handlebars->121->2210",
14104 - "default.handlebars->121->3143",
14105 - "default3.handlebars->123->2173",
14106 - "default3.handlebars->123->3122"
14103 + "default.handlebars->121->2212",
14104 + "default.handlebars->121->3145",
14105 + "default3.handlebars->123->2177",
14106 + "default3.handlebars->123->3126"
14107 ]
14108 },
14109 {
@@ -14132,8 +14132,8 @@
14132 "zh-chs": "更改{0}的密码",
14133 "zh-cht": "更改{0}的密碼",
14134 "xloc": [
14135 - "default.handlebars->121->3206",
14136 - "default3.handlebars->123->3179"
14135 + "default.handlebars->121->3208",
14136 + "default3.handlebars->123->3183"
14137 ]
14138 },
14139 {
@@ -14162,8 +14162,8 @@
14162 "zh-chs": "更改{0}的真实名称",
14163 "zh-cht": "更改{0}的真實名稱",
14164 "xloc": [
14165 - "default.handlebars->121->3192",
14166 - "default3.handlebars->123->3170"
14165 + "default.handlebars->121->3194",
14166 + "default3.handlebars->123->3174"
14167 ]
14168 },
14169 {
@@ -14314,8 +14314,8 @@
14314 "zh-chs": "更改该用户的密码",
14315 "zh-cht": "更改該用戶的密碼",
14316 "xloc": [
14317 - "default.handlebars->121->3142",
14318 - "default3.handlebars->123->3121"
14317 + "default.handlebars->121->3144",
14318 + "default3.handlebars->123->3125"
14319 ]
14320 },
14321 {
@@ -14374,8 +14374,8 @@
14374 "zh-chs": "更改您的邮件地址。",
14375 "zh-cht": "在此處更改你的帳戶電郵地址。",
14376 "xloc": [
14377 - "default.handlebars->121->2197",
14378 - "default3.handlebars->123->2166"
14377 + "default.handlebars->121->2199",
14378 + "default3.handlebars->123->2170"
14379 ]
14380 },
14381 {
@@ -14404,8 +14404,8 @@
14404 "zh-chs": "在下面的框中两次输入旧密码和新密码,以更改帐户密码。",
14405 "zh-cht": "在下面的框中兩次輸入舊密碼和新密碼,以更改帳戶密碼。",
14406 "xloc": [
14407 - "default.handlebars->121->2203",
14408 - "default3.handlebars->123->2170"
14407 + "default.handlebars->121->2205",
14408 + "default3.handlebars->123->2174"
14409 ]
14410 },
14411 {
@@ -14434,8 +14434,8 @@
14434 "zh-chs": "更改帐户凭据",
14435 "zh-cht": "帳戶憑證已更改",
14436 "xloc": [
14437 - "default.handlebars->121->2727",
14438 - "default3.handlebars->123->2709"
14437 + "default.handlebars->121->2729",
14438 + "default3.handlebars->123->2713"
14439 ]
14440 },
14441 {
@@ -14464,8 +14464,8 @@
14464 "zh-chs": "将帐户显示名称更改为 {0}。",
14465 "zh-cht": "將帳戶顯示名稱更改為 {0}。",
14466 "xloc": [
14467 - "default.handlebars->121->2779",
14468 - "default3.handlebars->123->2761"
14467 + "default.handlebars->121->2781",
14468 + "default3.handlebars->123->2765"
14469 ]
14470 },
14471 {
@@ -14494,10 +14494,10 @@
14494 "zh-chs": "{1}组中的设备{0}已更改:{2}",
14495 "zh-cht": "{1}組中的設備{0}已更改:{2}",
14496 "xloc": [
14497 - "default.handlebars->121->2711",
14498 - "default.handlebars->121->2792",
14499 - "default3.handlebars->123->2693",
14500 - "default3.handlebars->123->2774"
14497 + "default.handlebars->121->2713",
14498 + "default.handlebars->121->2794",
14499 + "default3.handlebars->123->2697",
14500 + "default3.handlebars->123->2778"
14501 ]
14502 },
14503 {
@@ -14526,8 +14526,8 @@
14526 "zh-chs": "语言从{1}更改为{2}",
14527 "zh-cht": "語言從{1}更改為{2}",
14528 "xloc": [
14529 - "default.handlebars->121->2655",
14530 - "default3.handlebars->123->2637"
14529 + "default.handlebars->121->2657",
14530 + "default3.handlebars->123->2641"
14531 ]
14532 },
14533 {
@@ -14556,10 +14556,10 @@
14556 "zh-chs": "已更改{0}的用户设备权限",
14557 "zh-cht": "已更改{0}的用戶設備權限",
14558 "xloc": [
14559 - "default.handlebars->121->2713",
14560 - "default.handlebars->121->2734",
14561 - "default3.handlebars->123->2695",
14562 - "default3.handlebars->123->2716"
14559 + "default.handlebars->121->2715",
14560 + "default.handlebars->121->2736",
14561 + "default3.handlebars->123->2699",
14562 + "default3.handlebars->123->2720"
14563 ]
14564 },
14565 {
@@ -14589,8 +14589,8 @@
14589 "zh-cht": "更改語言將需要刷新頁面。",
14590 "xloc": [
14591 "default-mobile.handlebars->55->319",
14592 - "default.handlebars->121->2161",
14593 - "default3.handlebars->123->2129"
14592 + "default.handlebars->121->2163",
14593 + "default3.handlebars->123->2133"
14594 ]
14595 },
14596 {
@@ -14618,7 +14618,7 @@
14618 "xloc": [
14619 "default-mobile.handlebars->55->896",
14620 "default.handlebars->121->1755",
14621 - "default3.handlebars->123->1725"
14621 + "default3.handlebars->123->1727"
14622 ]
14623 },
14624 {
@@ -14646,7 +14646,7 @@
14646 "xloc": [
14647 "default-mobile.handlebars->55->898",
14648 "default.handlebars->121->1757",
14649 - "default3.handlebars->123->1727"
14649 + "default3.handlebars->123->1729"
14650 ]
14651 },
14652 {
@@ -14678,15 +14678,15 @@
14678 "default.handlebars->121->1044",
14679 "default.handlebars->121->1163",
14680 "default.handlebars->121->1188",
14681 - "default.handlebars->121->2859",
14682 - "default.handlebars->121->3138",
14683 - "default.handlebars->121->3139",
14684 - "default3.handlebars->123->1034",
14685 - "default3.handlebars->123->1151",
14686 - "default3.handlebars->123->1176",
14687 - "default3.handlebars->123->2841",
14688 - "default3.handlebars->123->3117",
14689 - "default3.handlebars->123->3118",
14681 + "default.handlebars->121->2861",
14682 + "default.handlebars->121->3140",
14683 + "default.handlebars->121->3141",
14684 + "default3.handlebars->123->1036",
14685 + "default3.handlebars->123->1153",
14686 + "default3.handlebars->123->1178",
14687 + "default3.handlebars->123->2845",
14688 + "default3.handlebars->123->3121",
14689 + "default3.handlebars->123->3122",
14690 "default3.handlebars->container->column_l->p11->deskarea0->deskMobileActionsPanel->27"
14691 ]
14692 },
@@ -14718,10 +14718,10 @@
14718 "xloc": [
14719 "default-mobile.handlebars->55->1044",
14720 "default-mobile.handlebars->55->1064",
14721 - "default.handlebars->121->2489",
14722 - "default.handlebars->121->2527",
14723 - "default3.handlebars->123->2471",
14724 - "default3.handlebars->123->2509"
14721 + "default.handlebars->121->2491",
14722 + "default.handlebars->121->2529",
14723 + "default3.handlebars->123->2475",
14724 + "default3.handlebars->123->2513"
14725 ]
14726 },
14727 {
@@ -14751,8 +14751,8 @@
14751 "zh-cht": "聊天請求,點擊這裡接受。",
14752 "xloc": [
14753 "default-mobile.handlebars->55->1096",
14754 - "default.handlebars->121->3427",
14755 - "default3.handlebars->123->3402"
14754 + "default.handlebars->121->3429",
14755 + "default3.handlebars->123->3406"
14756 ]
14757 },
14758 {
@@ -14811,8 +14811,8 @@
14811 "zh-cht": "車臣",
14812 "xloc": [
14813 "default-mobile.handlebars->55->153",
14814 - "default.handlebars->121->1995",
14815 - "default3.handlebars->123->1963",
14814 + "default.handlebars->121->1997",
14815 + "default3.handlebars->123->1967",
14816 "login2.handlebars->17->34"
14817 ]
14818 },
@@ -14843,7 +14843,7 @@
14843 "zh-cht": "檢查並單擊確定以清除錯誤日誌。",
14844 "xloc": [
14845 "default.handlebars->121->220",
14846 - "default3.handlebars->123->216"
14846 + "default3.handlebars->123->218"
14847 ]
14848 },
14849 {
@@ -14873,7 +14873,7 @@
14873 "zh-cht": "檢查並單擊確定以開始伺服器自我更新。",
14874 "xloc": [
14875 "default.handlebars->121->215",
14876 - "default3.handlebars->123->211"
14876 + "default3.handlebars->123->213"
14877 ]
14878 },
14879 {
@@ -14918,7 +14918,7 @@
14918 "uk": "Для перевірки програми обміну повідомленнями, введіть код підтвердження після отримання.",
14919 "xloc": [
14920 "default.handlebars->121->274",
14921 - "default3.handlebars->123->268"
14921 + "default3.handlebars->123->270"
14922 ]
14923 },
14924 {
@@ -14948,7 +14948,7 @@
14948 "zh-cht": "檢查你的電話並輸入驗證碼。",
14949 "xloc": [
14950 "default.handlebars->121->271",
14951 - "default3.handlebars->123->265"
14951 + "default3.handlebars->123->267"
14952 ]
14953 },
14954 {
@@ -14977,10 +14977,10 @@
14977 "zh-chs": "检查...",
14978 "zh-cht": "檢查...",
14979 "xloc": [
14980 - "default.handlebars->121->1961",
14981 - "default.handlebars->121->3549",
14982 - "default3.handlebars->123->1929",
14983 - "default3.handlebars->123->3524"
14980 + "default.handlebars->121->1963",
14981 + "default.handlebars->121->3551",
14982 + "default3.handlebars->123->1933",
14983 + "default3.handlebars->123->3528"
14984 ]
14985 },
14986 {
@@ -15008,7 +15008,7 @@
15008 "xloc": [
15009 "default-mobile.handlebars->55->890",
15010 "default.handlebars->121->1749",
15011 - "default3.handlebars->123->1719"
15011 + "default3.handlebars->123->1721"
15012 ]
15013 },
15014 {
@@ -15038,8 +15038,8 @@
15038 "zh-cht": "中文",
15039 "xloc": [
15040 "default-mobile.handlebars->55->154",
15041 - "default.handlebars->121->1996",
15042 - "default3.handlebars->123->1964",
15041 + "default.handlebars->121->1998",
15042 + "default3.handlebars->123->1968",
15043 "login2.handlebars->17->35"
15044 ]
15045 },
@@ -15070,8 +15070,8 @@
15070 "zh-cht": "中文(香港)",
15071 "xloc": [
15072 "default-mobile.handlebars->55->155",
15073 - "default.handlebars->121->1997",
15074 - "default3.handlebars->123->1965",
15073 + "default.handlebars->121->1999",
15074 + "default3.handlebars->123->1969",
15075 "login2.handlebars->17->36"
15076 ]
15077 },
@@ -15102,8 +15102,8 @@
15102 "zh-cht": "中文(中國)",
15103 "xloc": [
15104 "default-mobile.handlebars->55->156",
15105 - "default.handlebars->121->1998",
15106 - "default3.handlebars->123->1966",
15105 + "default.handlebars->121->2000",
15106 + "default3.handlebars->123->1970",
15107 "login2.handlebars->17->37"
15108 ]
15109 },
@@ -15134,8 +15134,8 @@
15134 "zh-cht": "簡體中文",
15135 "xloc": [
15136 "default-mobile.handlebars->55->316",
15137 - "default.handlebars->121->2158",
15138 - "default3.handlebars->123->2126",
15137 + "default.handlebars->121->2160",
15138 + "default3.handlebars->123->2130",
15139 "login2.handlebars->17->197"
15140 ]
15141 },
@@ -15166,8 +15166,8 @@
15166 "zh-cht": "中文(新加坡)",
15167 "xloc": [
15168 "default-mobile.handlebars->55->157",
15169 - "default.handlebars->121->1999",
15170 - "default3.handlebars->123->1967",
15169 + "default.handlebars->121->2001",
15170 + "default3.handlebars->123->1971",
15171 "login2.handlebars->17->38"
15172 ]
15173 },
@@ -15198,8 +15198,8 @@
15198 "zh-cht": "中文(台灣)",
15199 "xloc": [
15200 "default-mobile.handlebars->55->158",
15201 - "default.handlebars->121->2000",
15202 - "default3.handlebars->123->1968",
15201 + "default.handlebars->121->2002",
15202 + "default3.handlebars->123->1972",
15203 "login2.handlebars->17->39"
15204 ]
15205 },
@@ -15230,8 +15230,8 @@
15230 "zh-cht": "繁體中文",
15231 "xloc": [
15232 "default-mobile.handlebars->55->317",
15233 - "default.handlebars->121->2159",
15234 - "default3.handlebars->123->2127",
15233 + "default.handlebars->121->2161",
15234 + "default3.handlebars->123->2131",
15235 "login2.handlebars->17->198"
15236 ]
15237 },
@@ -15293,8 +15293,8 @@
15293 "zh-cht": "楚瓦什",
15294 "xloc": [
15295 "default-mobile.handlebars->55->159",
15296 - "default.handlebars->121->2001",
15297 - "default3.handlebars->123->1969",
15296 + "default.handlebars->121->2003",
15297 + "default3.handlebars->123->1973",
15298 "login2.handlebars->17->40"
15299 ]
15300 },
@@ -15342,14 +15342,14 @@
15342 "default.handlebars->121->1599",
15343 "default.handlebars->121->1601",
15344 "default.handlebars->121->1603",
15345 - "default.handlebars->121->2649",
15345 + "default.handlebars->121->2651",
15346 "default.handlebars->container->column_l->p15->consoleTable->1->6->1->1->1->0->7",
15347 "default.handlebars->container->column_l->p41->3->1",
15348 - "default3.handlebars->123->1569",
15348 "default3.handlebars->123->1571",
15349 "default3.handlebars->123->1573",
15350 "default3.handlebars->123->1575",
15352 - "default3.handlebars->123->2631",
15351 + "default3.handlebars->123->1577",
15352 + "default3.handlebars->123->2635",
15353 "default3.handlebars->container->column_l->p15->consoleTable->1->6->1->1->1->0->7",
15354 "default3.handlebars->container->column_l->p41->3->3",
15355 "messenger.handlebars->xbottom->1->1->0->5",
@@ -15450,7 +15450,7 @@
15450 "zh-cht": "清除保安編碼",
15451 "xloc": [
15452 "default.handlebars->121->251",
15453 - "default3.handlebars->123->245"
15453 + "default3.handlebars->123->247"
15454 ]
15455 },
15456 {
@@ -15481,8 +15481,8 @@
15481 "xloc": [
15482 "default.handlebars->121->782",
15483 "default.handlebars->121->824",
15484 - "default3.handlebars->123->772",
15485 - "default3.handlebars->123->814"
15484 + "default3.handlebars->123->774",
15485 + "default3.handlebars->123->816"
15486 ]
15487 },
15488 {
@@ -15512,7 +15512,7 @@
15512 "zh-cht": "清除所選設備上的代理核心?",
15513 "xloc": [
15514 "default.handlebars->121->823",
15515 - "default3.handlebars->123->813"
15515 + "default3.handlebars->123->815"
15516 ]
15517 },
15518 {
@@ -15542,8 +15542,8 @@
15542 "zh-cht": "全部清除",
15543 "xloc": [
15544 "default-mobile.handlebars->55->1079",
15545 - "default.handlebars->121->3410",
15546 - "default3.handlebars->123->3385"
15545 + "default.handlebars->121->3412",
15546 + "default3.handlebars->123->3389"
15547 ]
15548 },
15549 {
@@ -15574,7 +15574,7 @@
15574 "xloc": [
15575 "default-mobile.handlebars->55->400",
15576 "default.handlebars->121->399",
15577 - "default3.handlebars->123->388"
15577 + "default3.handlebars->123->390"
15578 ]
15579 },
15580 {
@@ -15604,8 +15604,8 @@
15604 "zh-cht": "清除核心",
15605 "xloc": [
15606 "default-mobile.handlebars->55->980",
15607 - "default.handlebars->121->1885",
15608 - "default3.handlebars->123->1855"
15607 + "default.handlebars->121->1887",
15608 + "default3.handlebars->123->1859"
15609 ]
15610 },
15611 {
@@ -15636,7 +15636,7 @@
15636 "xloc": [
15637 "default-mobile.handlebars->55->84",
15638 "default.handlebars->121->241",
15639 - "default3.handlebars->123->236"
15639 + "default3.handlebars->123->238"
15640 ]
15641 },
15642 {
@@ -15666,8 +15666,8 @@
15666 "zh-cht": "清除此通知",
15667 "xloc": [
15668 "default-mobile.handlebars->55->1078",
15669 - "default.handlebars->121->3409",
15670 - "default3.handlebars->123->3384"
15669 + "default.handlebars->121->3411",
15670 + "default3.handlebars->123->3388"
15671 ]
15672 },
15673 {
@@ -15696,8 +15696,9 @@
15696 "zh-chs": "单击刷新以加载已安装的软件...",
15697 "zh-cht": "按一下重新整理以載入已安裝的軟體...",
15698 "xloc": [
15699 - "default.handlebars->121->133",
15699 + "default.handlebars->121->132",
15700 "default.handlebars->container->column_l->p18->p18info->p18html->1->1",
15701 + "default3.handlebars->123->130",
15702 "default3.handlebars->container->column_l->p18->p18info->p18html->1->1"
15703 ]
15704 },
@@ -15727,8 +15728,8 @@
15728 "zh-chs": "单击刷新以更新",
15729 "zh-cht": "按一下重新整理以更新",
15730 "xloc": [
15730 - "default.handlebars->121->1873",
15731 - "default3.handlebars->123->1843"
15731 + "default.handlebars->121->1875",
15732 + "default3.handlebars->123->1847"
15733 ]
15734 },
15735 {
@@ -15844,10 +15845,10 @@
15845 "zh-chs": "单击此处编辑设备组名称",
15846 "zh-cht": "單擊此處編輯裝置群名稱",
15847 "xloc": [
15847 - "default.handlebars->121->2282",
15848 - "default.handlebars->121->2588",
15849 - "default3.handlebars->123->2263",
15850 - "default3.handlebars->123->2570"
15848 + "default.handlebars->121->2284",
15849 + "default.handlebars->121->2590",
15850 + "default3.handlebars->123->2267",
15851 + "default3.handlebars->123->2574"
15852 ]
15853 },
15854 {
@@ -15877,7 +15878,7 @@
15878 "zh-cht": "單擊此處編輯伺服器端裝置名稱",
15879 "xloc": [
15880 "default.handlebars->121->896",
15880 - "default3.handlebars->123->886"
15881 + "default3.handlebars->123->888"
15882 ]
15883 },
15884 {
@@ -15906,8 +15907,8 @@
15907 "zh-chs": "单击此处编辑用户组名称",
15908 "zh-cht": "單擊此處編輯用戶群名稱",
15909 "xloc": [
15909 - "default.handlebars->121->2989",
15910 - "default3.handlebars->123->2968"
15910 + "default.handlebars->121->2991",
15911 + "default3.handlebars->123->2972"
15912 ]
15913 },
15914 {
@@ -16026,8 +16027,8 @@
16027 "zh-cht": "單擊確定將驗證電郵發送到:",
16028 "xloc": [
16029 "default-mobile.handlebars->55->329",
16029 - "default.handlebars->121->2194",
16030 - "default3.handlebars->123->2163"
16030 + "default.handlebars->121->2196",
16031 + "default3.handlebars->123->2167"
16032 ]
16033 },
16034 {
@@ -16118,7 +16119,7 @@
16119 "xloc": [
16120 "default-mobile.handlebars->55->841",
16121 "default.handlebars->121->1700",
16121 - "default3.handlebars->123->1670"
16122 + "default3.handlebars->123->1672"
16123 ]
16124 },
16125 {
@@ -16147,8 +16148,8 @@
16148 "zh-chs": "客户编号",
16149 "zh-cht": "客戶編號",
16150 "xloc": [
16150 - "default.handlebars->121->2259",
16151 - "default3.handlebars->123->2244"
16151 + "default.handlebars->121->2261",
16152 + "default3.handlebars->123->2248"
16153 ]
16154 },
16155 {
@@ -16177,8 +16178,8 @@
16178 "zh-chs": "客户端启动的远程访问",
16179 "zh-cht": "客戶端啟動的遠程訪問",
16180 "xloc": [
16180 - "default.handlebars->121->2415",
16181 - "default3.handlebars->123->2395"
16181 + "default.handlebars->121->2417",
16182 + "default3.handlebars->123->2399"
16183 ]
16184 },
16185 {
@@ -16207,8 +16208,8 @@
16208 "zh-chs": "客户机密",
16209 "zh-cht": "客戶機密",
16210 "xloc": [
16210 - "default.handlebars->121->2260",
16211 - "default3.handlebars->123->2245"
16211 + "default.handlebars->121->2262",
16212 + "default3.handlebars->123->2249"
16213 ]
16214 },
16215 {
@@ -16275,10 +16276,10 @@
16276 "default.handlebars->121->1571",
16277 "default.handlebars->121->249",
16278 "default.handlebars->121->258",
16278 - "default.handlebars->121->3543",
16279 - "default3.handlebars->123->1475",
16280 - "default3.handlebars->123->1543",
16281 - "default3.handlebars->123->354",
16279 + "default.handlebars->121->3545",
16280 + "default3.handlebars->123->1477",
16281 + "default3.handlebars->123->1545",
16282 + "default3.handlebars->123->356",
16283 "sharing.handlebars->49->51"
16284 ]
16285 },
@@ -16308,8 +16309,8 @@
16309 "zh-chs": "已关闭桌面多路复用会话 \\\"{0}\\\",{1} 秒",
16310 "zh-cht": "已關閉桌面多路復用會話 \\\"{0}\\\",{1} 秒",
16311 "xloc": [
16311 - "default.handlebars->121->2799",
16312 - "default3.handlebars->123->2781"
16312 + "default.handlebars->121->2801",
16313 + "default3.handlebars->123->2785"
16314 ]
16315 },
16316 {
@@ -16338,8 +16339,8 @@
16339 "zh-chs": "封闭式桌面多路复用会话,{0}秒",
16340 "zh-cht": "封閉式桌面多路復用會話,{0}秒",
16341 "xloc": [
16341 - "default.handlebars->121->2660",
16342 - "default3.handlebars->123->2642"
16342 + "default.handlebars->121->2662",
16343 + "default3.handlebars->123->2646"
16344 ]
16345 },
16346 {
@@ -16369,7 +16370,7 @@
16370 "zh-cht": "碼",
16371 "xloc": [
16372 "default.handlebars->121->341",
16372 - "default3.handlebars->123->336"
16373 + "default3.handlebars->123->338"
16374 ]
16375 },
16376 {
@@ -16466,7 +16467,7 @@
16467 "xloc": [
16468 "agentinvite.handlebars->13->17",
16469 "default.handlebars->121->720",
16469 - "default3.handlebars->123->710"
16470 + "default3.handlebars->123->712"
16471 ]
16472 },
16473 {
@@ -16496,7 +16497,7 @@
16497 "zh-cht": "命令行",
16498 "xloc": [
16499 "default.handlebars->121->141",
16499 - "default3.handlebars->123->137"
16500 + "default3.handlebars->123->139"
16501 ]
16502 },
16503 {
@@ -16528,10 +16529,10 @@
16529 "default-mobile.handlebars->55->1066",
16530 "default.handlebars->121->1165",
16531 "default.handlebars->121->1190",
16531 - "default.handlebars->121->2529",
16532 - "default3.handlebars->123->1153",
16533 - "default3.handlebars->123->1178",
16534 - "default3.handlebars->123->2511"
16532 + "default.handlebars->121->2531",
16533 + "default3.handlebars->123->1155",
16534 + "default3.handlebars->123->1180",
16535 + "default3.handlebars->123->2515"
16536 ]
16537 },
16538 {
@@ -16549,7 +16550,7 @@
16550 "xloc": [
16551 "default-mobile.handlebars->55->607",
16552 "default.handlebars->121->849",
16552 - "default3.handlebars->123->839"
16553 + "default3.handlebars->123->841"
16554 ]
16555 },
16556 {
@@ -16567,7 +16568,7 @@
16568 "xloc": [
16569 "default-mobile.handlebars->55->608",
16570 "default.handlebars->121->850",
16570 - "default3.handlebars->123->840"
16571 + "default3.handlebars->123->842"
16572 ]
16573 },
16574 {
@@ -16585,7 +16586,7 @@
16586 "xloc": [
16587 "default-mobile.handlebars->55->606",
16588 "default.handlebars->121->848",
16588 - "default3.handlebars->123->838"
16589 + "default3.handlebars->123->840"
16590 ]
16591 },
16592 {
@@ -16614,10 +16615,10 @@
16615 "zh-chs": "通用设备组",
16616 "zh-cht": "通用裝置群",
16617 "xloc": [
16617 - "default.handlebars->121->3024",
16618 - "default.handlebars->121->3211",
16619 - "default3.handlebars->123->3003",
16620 - "default3.handlebars->123->3184"
16618 + "default.handlebars->121->3026",
16619 + "default.handlebars->121->3213",
16620 + "default3.handlebars->123->3007",
16621 + "default3.handlebars->123->3188"
16622 ]
16623 },
16624 {
@@ -16646,10 +16647,10 @@
16647 "zh-chs": "通用设备",
16648 "zh-cht": "通用裝置",
16649 "xloc": [
16649 - "default.handlebars->121->3030",
16650 - "default.handlebars->121->3223",
16651 - "default3.handlebars->123->3009",
16652 - "default3.handlebars->123->3196"
16650 + "default.handlebars->121->3032",
16651 + "default.handlebars->121->3225",
16652 + "default3.handlebars->123->3013",
16653 + "default3.handlebars->123->3200"
16654 ]
16655 },
16656 {
@@ -16680,7 +16681,7 @@
16681 "xloc": [
16682 "default-mobile.handlebars->55->807",
16683 "default.handlebars->121->1656",
16683 - "default3.handlebars->123->1628"
16684 + "default3.handlebars->123->1630"
16685 ]
16686 },
16687 {
@@ -16710,7 +16711,7 @@
16711 "zh-cht": "壓縮檔案...",
16712 "xloc": [
16713 "default.handlebars->121->1560",
16713 - "default3.handlebars->123->1532",
16714 + "default3.handlebars->123->1534",
16715 "sharing.handlebars->49->47"
16716 ]
16717 },
@@ -16726,8 +16727,8 @@
16727 "pl": "Zapisy pliku konfiguracyjnego",
16728 "uk": "Записи файлу конфігурації",
16729 "xloc": [
16729 - "default.handlebars->121->3376",
16730 - "default3.handlebars->123->3351"
16730 + "default.handlebars->121->3378",
16731 + "default3.handlebars->123->3355"
16732 ]
16733 },
16734 {
@@ -16760,27 +16761,27 @@
16761 "default-mobile.handlebars->55->620",
16762 "default.handlebars->121->1339",
16763 "default.handlebars->121->1348",
16763 - "default.handlebars->121->2426",
16764 - "default.handlebars->121->2889",
16765 - "default.handlebars->121->2979",
16766 - "default.handlebars->121->3046",
16767 - "default.handlebars->121->3209",
16764 + "default.handlebars->121->2428",
16765 + "default.handlebars->121->2891",
16766 + "default.handlebars->121->2981",
16767 + "default.handlebars->121->3048",
16768 + "default.handlebars->121->3211",
16769 "default.handlebars->121->793",
16769 - "default3.handlebars->123->1324",
16770 - "default3.handlebars->123->1332",
16771 - "default3.handlebars->123->2405",
16772 - "default3.handlebars->123->2871",
16773 - "default3.handlebars->123->2958",
16774 - "default3.handlebars->123->3025",
16775 - "default3.handlebars->123->3182",
16776 - "default3.handlebars->123->783"
16770 + "default3.handlebars->123->1326",
16771 + "default3.handlebars->123->1334",
16772 + "default3.handlebars->123->2409",
16773 + "default3.handlebars->123->2875",
16774 + "default3.handlebars->123->2962",
16775 + "default3.handlebars->123->3029",
16776 + "default3.handlebars->123->3186",
16777 + "default3.handlebars->123->785"
16778 ]
16779 },
16780 {
16781 "en": "Confirm Password",
16782 "nl": "Bevestig wachtwoord",
16783 "xloc": [
16783 - "default3.handlebars->123->2919"
16784 + "default3.handlebars->123->2923"
16785 ]
16786 },
16787 {
@@ -16811,7 +16812,7 @@
16812 "xloc": [
16813 "default-mobile.handlebars->55->717",
16814 "default.handlebars->121->1592",
16814 - "default3.handlebars->123->1564",
16815 + "default3.handlebars->123->1566",
16816 "sharing-mobile.handlebars->55->92",
16817 "sharing.handlebars->49->69"
16818 ]
@@ -16843,7 +16844,7 @@
16844 "zh-cht": "確認{0}個條目的複製到此位置?",
16845 "xloc": [
16846 "default.handlebars->121->1591",
16846 - "default3.handlebars->123->1563",
16847 + "default3.handlebars->123->1565",
16848 "sharing.handlebars->49->68"
16849 ]
16850 },
@@ -16903,8 +16904,8 @@
16904 "zh-chs": "确认删除选定的帐户?",
16905 "zh-cht": "確認刪除所選帳戶?",
16906 "xloc": [
16906 - "default.handlebars->121->2888",
16907 - "default3.handlebars->123->2870"
16907 + "default.handlebars->121->2890",
16908 + "default3.handlebars->123->2874"
16909 ]
16910 },
16911 {
@@ -16933,8 +16934,8 @@
16934 "zh-chs": "确认删除选定的用户组?",
16935 "zh-cht": "確認刪除所選用戶群?",
16936 "xloc": [
16936 - "default.handlebars->121->2978",
16937 - "default3.handlebars->123->2957"
16937 + "default.handlebars->121->2980",
16938 + "default3.handlebars->123->2961"
16939 ]
16940 },
16941 {
@@ -16963,24 +16964,24 @@
16964 "zh-chs": "确认删除用户{0}?",
16965 "zh-cht": "確認刪除用戶{0}?",
16966 "xloc": [
16966 - "default.handlebars->121->3208",
16967 - "default3.handlebars->123->3181"
16967 + "default.handlebars->121->3210",
16968 + "default3.handlebars->123->3185"
16969 ]
16970 },
16971 {
16972 "en": "Confirm disabling 2FA Duo login security.",
16973 "nl": "Bevestig het uitschakelen van 2FA Duo inlogbeveiliging.",
16974 "xloc": [
16974 - "default.handlebars->121->1940",
16975 - "default3.handlebars->123->1909"
16975 + "default.handlebars->121->1942",
16976 + "default3.handlebars->123->1913"
16977 ]
16978 },
16979 {
16980 "en": "Confirm enabling of Duo 2FA login security. Once enabled you will be given the option to use Duo at login for added security. Click ok to go thru the steps to enable Duo.",
16981 "nl": "Bevestig het inschakelen van Duo 2FA inlogbeveiliging. Eenmaal ingeschakeld, krijgt u de mogelijkheid om Duo te gebruiken bij het inloggen voor extra veiligheid. Klik op OK om de stappen te doorlopen om Duo in te schakelen.",
16982 "xloc": [
16982 - "default.handlebars->121->1938",
16983 - "default3.handlebars->123->1907"
16983 + "default.handlebars->121->1940",
16984 + "default3.handlebars->123->1911"
16985 ]
16986 },
16987 {
@@ -17009,8 +17010,8 @@
17010 "zh-chs": "确认删除用户“ {0} ”的成员身份?",
17011 "zh-cht": "確認刪除用戶“ {0} ”的成員身份?",
17012 "xloc": [
17012 - "default.handlebars->121->3049",
17013 - "default3.handlebars->123->3028"
17013 + "default.handlebars->121->3051",
17014 + "default3.handlebars->123->3032"
17015 ]
17016 },
17017 {
@@ -17039,8 +17040,8 @@
17040 "zh-chs": "确认删除用户组“ {0} ”的成员身份?",
17041 "zh-cht": "確認刪除用戶群“ {0} ”的成員身份?",
17042 "xloc": [
17042 - "default.handlebars->121->3240",
17043 - "default3.handlebars->123->3213"
17043 + "default.handlebars->121->3242",
17044 + "default3.handlebars->123->3217"
17045 ]
17046 },
17047 {
@@ -17071,7 +17072,7 @@
17072 "xloc": [
17073 "default-mobile.handlebars->55->719",
17074 "default.handlebars->121->1594",
17074 - "default3.handlebars->123->1566",
17075 + "default3.handlebars->123->1568",
17076 "sharing-mobile.handlebars->55->94",
17077 "sharing.handlebars->49->71"
17078 ]
@@ -17103,7 +17104,7 @@
17104 "zh-cht": "確認將{0}個條目移到該位置?",
17105 "xloc": [
17106 "default.handlebars->121->1593",
17106 - "default3.handlebars->123->1565",
17107 + "default3.handlebars->123->1567",
17108 "sharing.handlebars->49->70"
17109 ]
17110 },
@@ -17163,8 +17164,8 @@
17164 "zh-chs": "确认覆盖?",
17165 "zh-cht": "確認覆蓋?",
17166 "xloc": [
17166 - "default.handlebars->121->2641",
17167 - "default3.handlebars->123->2623"
17167 + "default.handlebars->121->2643",
17168 + "default3.handlebars->123->2627"
17169 ]
17170 },
17171 {
@@ -17193,10 +17194,10 @@
17194 "zh-chs": "确认删除设备“ {0} ”的访问权限?",
17195 "zh-cht": "確認刪除裝置“ {0} ”的訪問權限?",
17196 "xloc": [
17196 - "default.handlebars->121->3039",
17197 - "default.handlebars->121->3231",
17198 - "default3.handlebars->123->3018",
17199 - "default3.handlebars->123->3204"
17197 + "default.handlebars->121->3041",
17198 + "default.handlebars->121->3233",
17199 + "default3.handlebars->123->3022",
17200 + "default3.handlebars->123->3208"
17201 ]
17202 },
17203 {
@@ -17225,10 +17226,10 @@
17226 "zh-chs": "确认删除设备组“ {0} ”的访问权限?",
17227 "zh-cht": "確認刪除裝置群“ {0} ”的訪問權限?",
17228 "xloc": [
17228 - "default.handlebars->121->3041",
17229 - "default.handlebars->121->3244",
17230 - "default3.handlebars->123->3020",
17231 - "default3.handlebars->123->3217"
17229 + "default.handlebars->121->3043",
17230 + "default.handlebars->121->3246",
17231 + "default3.handlebars->123->3024",
17232 + "default3.handlebars->123->3221"
17233 ]
17234 },
17235 {
@@ -17257,8 +17258,8 @@
17258 "zh-chs": "确认删除用户“ {0} ”的访问权限?",
17259 "zh-cht": "確認刪除用戶“ {0} ”的訪問權限?",
17260 "xloc": [
17260 - "default.handlebars->121->3233",
17261 - "default3.handlebars->123->3206"
17261 + "default.handlebars->121->3235",
17262 + "default3.handlebars->123->3210"
17263 ]
17264 },
17265 {
@@ -17287,8 +17288,8 @@
17288 "zh-chs": "确认删除用户组“ {0} ”的访问权限?",
17289 "zh-cht": "確認刪除用戶群“ {0} ”的訪問權限?",
17290 "xloc": [
17290 - "default.handlebars->121->3236",
17291 - "default3.handlebars->123->3209"
17291 + "default.handlebars->121->3238",
17292 + "default3.handlebars->123->3213"
17293 ]
17294 },
17295 {
@@ -17317,10 +17318,10 @@
17318 "zh-chs": "确认删除访问权限?",
17319 "zh-cht": "確認刪除訪問權限?",
17320 "xloc": [
17320 - "default.handlebars->121->3234",
17321 - "default.handlebars->121->3237",
17322 - "default3.handlebars->123->3207",
17323 - "default3.handlebars->123->3210"
17321 + "default.handlebars->121->3236",
17322 + "default.handlebars->121->3239",
17323 + "default3.handlebars->123->3211",
17324 + "default3.handlebars->123->3214"
17325 ]
17326 },
17327 {
@@ -17350,8 +17351,8 @@
17351 "zh-cht": "確認刪除身份驗證軟體兩步登入?",
17352 "xloc": [
17353 "default-mobile.handlebars->55->328",
17353 - "default.handlebars->121->1944",
17354 - "default3.handlebars->123->1913"
17354 + "default.handlebars->121->1946",
17355 + "default3.handlebars->123->1917"
17356 ]
17357 },
17358 {
@@ -17380,8 +17381,8 @@
17381 "zh-chs": "确认删除设备共享“{0}”?",
17382 "zh-cht": "確認刪除設備共享“{0}”?",
17383 "xloc": [
17383 - "default.handlebars->121->3229",
17384 - "default3.handlebars->123->3202"
17384 + "default.handlebars->121->3231",
17385 + "default3.handlebars->123->3206"
17386 ]
17387 },
17388 {
@@ -17410,8 +17411,8 @@
17411 "zh-chs": "确认移除推送认证设备?",
17412 "zh-cht": "確認移除推送認證設備?",
17413 "xloc": [
17413 - "default.handlebars->121->1946",
17414 - "default3.handlebars->123->1915"
17414 + "default.handlebars->121->1948",
17415 + "default3.handlebars->123->1919"
17416 ]
17417 },
17418 {
@@ -17440,8 +17441,8 @@
17441 "zh-chs": "确认删除用户“ {0} ”的权限?",
17442 "zh-cht": "確認刪除用戶“ {0} ”的權限?",
17443 "xloc": [
17443 - "default.handlebars->121->2541",
17444 - "default3.handlebars->123->2523"
17444 + "default.handlebars->121->2543",
17445 + "default3.handlebars->123->2527"
17446 ]
17447 },
17448 {
@@ -17470,8 +17471,8 @@
17471 "zh-chs": "确认删除用户组“ {0} ”的权限?",
17472 "zh-cht": "確認刪除用戶群“ {0} ”的權限?",
17473 "xloc": [
17473 - "default.handlebars->121->2543",
17474 - "default3.handlebars->123->2525"
17474 + "default.handlebars->121->2545",
17475 + "default3.handlebars->123->2529"
17476 ]
17477 },
17478 {
@@ -17501,7 +17502,7 @@
17502 "zh-cht": "確認刪除所選設備?",
17503 "xloc": [
17504 "default.handlebars->121->787",
17504 - "default3.handlebars->123->777"
17505 + "default3.handlebars->123->779"
17506 ]
17507 },
17508 {
@@ -17530,8 +17531,8 @@
17531 "zh-chs": "确认删除此登录令牌?",
17532 "zh-cht": "確認刪除此登錄令牌?",
17533 "xloc": [
17533 - "default.handlebars->121->2252",
17534 - "default3.handlebars->123->2237"
17534 + "default.handlebars->121->2254",
17535 + "default3.handlebars->123->2241"
17536 ]
17537 },
17538 {
@@ -17590,7 +17591,7 @@
17591 "zh-cht": "確認刪除 {0} 個選定的設備?",
17592 "xloc": [
17593 "default.handlebars->121->788",
17593 - "default3.handlebars->123->778"
17594 + "default3.handlebars->123->780"
17595 ]
17596 },
17597 {
@@ -17620,8 +17621,8 @@
17621 "zh-cht": "將{1}入口{2}中的{0}限製到此位置?",
17622 "xloc": [
17623 "default-mobile.handlebars->55->387",
17623 - "default.handlebars->121->2644",
17624 - "default3.handlebars->123->2626"
17624 + "default.handlebars->121->2646",
17625 + "default3.handlebars->123->2630"
17626 ]
17627 },
17628 {
@@ -17655,12 +17656,12 @@
17656 "default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->0->1->3",
17657 "default-mobile.handlebars->container->page_content->column_l->p10->p10terminal->termTable->termarea1->1->3->connectbutton2span",
17658 "default.handlebars->121->1001",
17658 - "default.handlebars->121->2324",
17659 + "default.handlebars->121->2326",
17660 "default.handlebars->container->column_l->p11->deskarea0->deskarea1->3->connectbutton1span",
17661 "default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->connectbutton2span",
17662 "default.handlebars->container->column_l->p13->p13toolbar->1->0->1->3",
17662 - "default3.handlebars->123->2305",
17663 - "default3.handlebars->123->991",
17663 + "default3.handlebars->123->2309",
17664 + "default3.handlebars->123->993",
17665 "default3.handlebars->container->column_l->p11->deskarea0->deskarea1->1->connectbutton1span->connectbutton1",
17666 "default3.handlebars->container->column_l->p12->termTable->1->1->0->1->1->connectbutton2span->connectbutton2",
17667 "default3.handlebars->container->column_l->p13->p13toolbar->1->0->1->1->p13Connectspan->p13Connect",
@@ -17705,7 +17706,7 @@
17706 "xloc": [
17707 "default.handlebars->121->514",
17708 "default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->kvmListToolbar->KvmDesktopButtons",
17708 - "default3.handlebars->123->504",
17709 + "default3.handlebars->123->506",
17710 "default3.handlebars->container->column_l->p1->devListToolbarSpan->kvmListToolbar->KvmDesktopButtons"
17711 ]
17712 },
@@ -17735,8 +17736,8 @@
17736 "zh-chs": "连接到服务器",
17737 "zh-cht": "連接到伺服器",
17738 "xloc": [
17738 - "default.handlebars->121->2419",
17739 - "default3.handlebars->123->2398"
17739 + "default.handlebars->121->2421",
17740 + "default3.handlebars->123->2402"
17741 ]
17742 },
17743 {
@@ -17951,7 +17952,7 @@
17952 "default.handlebars->121->11",
17953 "default.handlebars->121->474",
17954 "default3.handlebars->123->11",
17954 - "default3.handlebars->123->464",
17955 + "default3.handlebars->123->466",
17956 "sharing-mobile.handlebars->55->4",
17957 "sharing.handlebars->49->4",
17958 "ssh.handlebars->21->4",
@@ -17984,8 +17985,8 @@
17985 "zh-chs": "已连接的英特尔&reg;AMT",
17986 "zh-cht": "已連接的Intel&reg; AMT",
17987 "xloc": [
17987 - "default.handlebars->121->3468",
17988 - "default3.handlebars->123->3443"
17988 + "default.handlebars->121->3470",
17989 + "default3.handlebars->123->3447"
17990 ]
17991 },
17992 {
@@ -18014,8 +18015,8 @@
18015 "zh-chs": "已连接的英特尔&reg;AMT CIRA",
18016 "zh-cht": "已連接的Intel&reg; AMT CIRA",
18017 "xloc": [
18017 - "default.handlebars->121->3469",
18018 - "default3.handlebars->123->3444"
18018 + "default.handlebars->121->3471",
18019 + "default3.handlebars->123->3448"
18020 ]
18021 },
18022 {
@@ -18044,8 +18045,8 @@
18045 "zh-chs": "已连接的用户",
18046 "zh-cht": "已连接的用户",
18047 "xloc": [
18047 - "default.handlebars->121->3474",
18048 - "default3.handlebars->123->3449"
18048 + "default.handlebars->121->3476",
18049 + "default3.handlebars->123->3453"
18050 ]
18051 },
18052 {
@@ -18106,7 +18107,7 @@
18107 "xloc": [
18108 "default-mobile.handlebars->55->802",
18109 "default.handlebars->121->1651",
18109 - "default3.handlebars->123->1623"
18110 + "default3.handlebars->123->1625"
18111 ]
18112 },
18113 {
@@ -18201,10 +18202,10 @@
18202 "default.handlebars->121->436",
18203 "default.handlebars->121->517",
18204 "default.handlebars->121->9",
18204 - "default3.handlebars->123->1592",
18205 - "default3.handlebars->123->423",
18206 - "default3.handlebars->123->426",
18207 - "default3.handlebars->123->507",
18205 + "default3.handlebars->123->1594",
18206 + "default3.handlebars->123->425",
18207 + "default3.handlebars->123->428",
18208 + "default3.handlebars->123->509",
18209 "default3.handlebars->123->9",
18210 "sharing-mobile.handlebars->55->110",
18211 "sharing-mobile.handlebars->55->2",
@@ -18240,8 +18241,8 @@
18241 "zh-chs": "连接数量",
18242 "zh-cht": "連接數量",
18243 "xloc": [
18243 - "default.handlebars->121->3500",
18244 - "default3.handlebars->123->3475"
18244 + "default.handlebars->121->3502",
18245 + "default3.handlebars->123->3479"
18246 ]
18247 },
18248 {
@@ -18302,8 +18303,8 @@
18303 "default-mobile.handlebars->55->699",
18304 "default.handlebars->121->1539",
18305 "default.handlebars->121->1556",
18305 - "default3.handlebars->123->1511",
18306 - "default3.handlebars->123->1528",
18306 + "default3.handlebars->123->1513",
18307 + "default3.handlebars->123->1530",
18308 "login2.handlebars->17->232",
18309 "sharing-mobile.handlebars->55->75"
18310 ]
@@ -18334,8 +18335,8 @@
18335 "zh-chs": "连接转发器",
18336 "zh-cht": "連接轉發器",
18337 "xloc": [
18337 - "default.handlebars->121->3537",
18338 - "default3.handlebars->123->3512"
18338 + "default.handlebars->121->3539",
18339 + "default3.handlebars->123->3516"
18340 ]
18341 },
18342 {
@@ -18425,12 +18426,12 @@
18426 "xloc": [
18427 "default-mobile.handlebars->55->525",
18428 "default.handlebars->121->1018",
18428 - "default.handlebars->121->2595",
18429 + "default.handlebars->121->2597",
18430 "default.handlebars->121->421",
18431 "default.handlebars->container->column_l->p21->p21main->1->1->meshConnChartDiv->1",
18431 - "default3.handlebars->123->1008",
18432 - "default3.handlebars->123->2577",
18433 - "default3.handlebars->123->411",
18432 + "default3.handlebars->123->1010",
18433 + "default3.handlebars->123->2581",
18434 + "default3.handlebars->123->413",
18435 "default3.handlebars->container->column_l->p21->p21main->1->1->meshConnChartDiv->1"
18436 ]
18437 },
@@ -18460,8 +18461,8 @@
18461 "zh-chs": "同意",
18462 "zh-cht": "同意",
18463 "xloc": [
18463 - "default.handlebars->121->2820",
18464 - "default3.handlebars->123->2802"
18464 + "default.handlebars->121->2822",
18465 + "default3.handlebars->123->2806"
18466 ]
18467 },
18468 {
@@ -18496,8 +18497,8 @@
18497 "default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevConsole",
18498 "default.handlebars->container->topbar->1->1->ServerSubMenuSpan->ServerSubMenu->1->0->ServerConsole",
18499 "default.handlebars->contextMenu->cxconsole",
18499 - "default3.handlebars->123->1146",
18500 - "default3.handlebars->123->1171",
18500 + "default3.handlebars->123->1148",
18501 + "default3.handlebars->123->1173",
18502 "default3.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevConsole",
18503 "default3.handlebars->container->topbar->1->1->ServerSubMenuSpan->ServerSubMenu->1->0->ServerConsole",
18504 "default3.handlebars->contextMenu->cxconsole"
@@ -18530,7 +18531,7 @@
18531 "zh-cht": "控制台 -",
18532 "xloc": [
18533 "default.handlebars->121->897",
18533 - "default3.handlebars->123->887"
18534 + "default3.handlebars->123->889"
18535 ]
18536 },
18537 {
@@ -18561,8 +18562,8 @@
18562 "xloc": [
18563 "default.handlebars->121->1157",
18564 "default.handlebars->121->1182",
18564 - "default3.handlebars->123->1145",
18565 - "default3.handlebars->123->1170",
18565 + "default3.handlebars->123->1147",
18566 + "default3.handlebars->123->1172",
18567 "messenger.handlebars->remoteImage->3->2"
18568 ]
18569 },
@@ -18622,8 +18623,8 @@
18623 "zh-chs": "Cookie编码器",
18624 "zh-cht": "Cookie編碼器",
18625 "xloc": [
18625 - "default.handlebars->121->3520",
18626 - "default3.handlebars->123->3495"
18626 + "default.handlebars->121->3522",
18627 + "default3.handlebars->123->3499"
18628 ]
18629 },
18630 {
@@ -18657,7 +18658,7 @@
18658 "default.handlebars->121->666",
18659 "default.handlebars->container->column_l->p13->p13toolbar->1->2->1->3",
18660 "default.handlebars->container->column_l->p5->p5toolbar->1->0->p5filehead->3",
18660 - "default3.handlebars->123->656",
18661 + "default3.handlebars->123->658",
18662 "default3.handlebars->container->column_l->p13->p13toolbar->1->2->1->3",
18663 "default3.handlebars->container->column_l->p13->p13toolbar->1->2->1->3->37->3->p13MobileCopyButton",
18664 "default3.handlebars->container->column_l->p5->p5toolbar->1->0->p5filehead->3",
@@ -18695,9 +18696,9 @@
18696 "default.handlebars->121->180",
18697 "default.handlebars->121->188",
18698 "default.handlebars->121->191",
18698 - "default3.handlebars->123->176",
18699 - "default3.handlebars->123->184",
18700 - "default3.handlebars->123->187"
18699 + "default3.handlebars->123->178",
18700 + "default3.handlebars->123->186",
18701 + "default3.handlebars->123->189"
18702 ]
18703 },
18704 {
@@ -18709,7 +18710,7 @@
18710 "uk": "Скопіюйте секретний ключ до буфера обміну",
18711 "xloc": [
18712 "default.handlebars->121->235",
18712 - "default3.handlebars->123->230"
18713 + "default3.handlebars->123->232"
18714 ]
18715 },
18716 {
@@ -18741,9 +18742,9 @@
18742 "default.handlebars->121->686",
18743 "default.handlebars->121->690",
18744 "default.handlebars->121->694",
18744 - "default3.handlebars->123->676",
18745 - "default3.handlebars->123->680",
18746 - "default3.handlebars->123->684"

This file is too large to show in full.

views/default.handlebars
+28 -24
@@ -2767,6 +2767,24 @@
2767 }
2768 break;
2769 }
2770 + case 'software': {
2771 + try {
2772 + var softwareData = message.value;
2773 + if (JSON.parse(message.value).error) {
2774 + QH('p18Status', '<span style=color:red>' + "ERROR: " + JSON.parse(message.value).error + '</span>');
2775 + QH('p18html', '<div style="text-align:center;padding:50px;color:gray"><i>' + "Click Refresh to load installed software..." + '</i></div>');
2776 + installedAppsLoading = false;
2777 + installedAppsLoadingType = 0;
2778 + return;
2779 + }
2780 + if (typeof softwareData === 'string' && softwareData.trim().charAt(0) === '[' && softwareData.indexOf('"name"') >= 0) {
2781 + handleInstalledAppsResponse(softwareData);
2782 + } else if (typeof softwareData === 'string' && (softwareData.indexOf('"success"') >= 0 || softwareData.indexOf('"status"') >= 0 || softwareData.indexOf('"error"') >= 0)) {
2783 + handleUninstallResponse(softwareData);
2784 + }
2785 + } catch (xx) { }
2786 + break;
2787 + }
2788 case 'lastconnect': {
2789 var node = getNodeFromId(message.nodeid);
2790 if (node != null) {
@@ -2801,25 +2819,7 @@
2819 if (typeof message.memory.percentConsumed == 'number') { memory = message.memory.percentConsumed; }
2820 deviceDetailsStatsData.push([now, cpu, memory]);
2821 deviceDetailsStatsDraw(message);
2804 - } else if (message.type === 'software') {
2805 - try {
2806 - var softwareData = message.value;
2807 - if (JSON.parse(message.value).error) {
2808 - QH('p18Status', '<span style=color:red>' + "ERROR: " + JSON.parse(message.value).error + '</span>');
2809 - QH('p18html', '<div style="text-align:center;padding:50px;color:gray"><i>' + "Click Refresh to load installed software..." + '</i></div>');
2810 - installedAppsLoading = false;
2811 - installedAppsLoadingType = 0;
2812 - return;
2813 - }
2814 - if (typeof softwareData === 'string' && softwareData.trim().charAt(0) === '[' && softwareData.indexOf('"name"') >= 0) {
2815 - handleInstalledAppsResponse(softwareData);
2816 - }
2817 - else if (typeof softwareData === 'string' && (softwareData.indexOf('"success"') >= 0 || softwareData.indexOf('"status"') >= 0 || softwareData.indexOf('"error"') >= 0)) {
2818 - handleUninstallResponse(softwareData);
2819 - }
2820 - } catch (xx) { }
2821 -
2822 - } else if (message.type === 'console') { p15consoleReceive(nodes[index], message.value, message.source); } // This is a console message.
2822 + } else if (message.type === 'console') { p15consoleReceive(nodes[index], message.value, message.source); } // This is a console message.
2823 else if (message.type === 'notify') { // This is a notification message.
2824 var n = getstore('notifications', 0);
2825 if (((n & 8) == 0) && (message.amtMessage != null)) { break; } // Intel AMT desktop & terminal messages should be ignored.
@@ -12921,7 +12921,7 @@
12921 installedAppsLoadingType = 0;
12922 return;
12923 }
12924 - meshserver.send({ action: 'msg', type: 'software', nodeid: currentNode._id, value: 'installedapps' });
12924 + meshserver.send({ action: 'software', nodeid: currentNode._id, value: 'installedapps' });
12925 }
12926
12927 function handleInstalledAppsResponse(data) {
@@ -12961,7 +12961,7 @@
12961 installedAppsLoading = true;
12962 installedAppsLoadingType = 2; // Store Apps laden
12963 QH('p18Status', '<span style="color:blue">' + "Loading store apps..." + '</span>');
12964 - meshserver.send({ action: 'msg', type: 'software', nodeid: currentNode._id, value: 'installedstoreapps' });
12964 + meshserver.send({ action: 'software', nodeid: currentNode._id, value: 'installedstoreapps' });
12965 }
12966
12967 function toggleStoreApps() {
@@ -13005,10 +13005,12 @@
13005 x += '<th style="text-align:left;padding:8px;border:1px solid #ddd">' + "Name" + '</th>';
13006 x += '<th style="text-align:left;padding:8px;border:1px solid #ddd;width:120px">' + "Version" + '</th>';
13007 x += '<th style="text-align:left;padding:8px;border:1px solid #ddd;width:200px">' + "Publisher" + '</th>';
13008 + x += '<th style="text-align:left;padding:8px;border:1px solid #ddd;width:100px">' + "Install Date" + '</th>';
13009 + x += '<th style="text-align:left;padding:8px;border:1px solid #ddd;width:200px">' + "Location" + '</th>';
13010 x += '<th style="text-align:center;padding:8px;border:1px solid #ddd;width:180px">' + "Actions" + '</th>';
13011 x += '</tr></thead><tbody>';
13012 if (desktopApps.length === 0) {
13011 - x += '<tr><td colspan="4" style="text-align:center;color:gray;padding:20px">';
13013 + x += '<tr><td colspan="6" style="text-align:center;color:gray;padding:20px">';
13014 x += searchTerm ? "No applications matching" + '"' + EscapeHtml(searchTerm) + '"' : "No desktop applications found";
13015 x += '</td></tr>';
13016 } else {
@@ -13021,6 +13023,8 @@
13023 x += '<td style="padding:6px 8px;border:1px solid #eee" title="' + EscapeHtml(app.name || '') + '">' + EscapeHtml(app.name || '-') + '</td>';
13024 x += '<td style="padding:6px 8px;border:1px solid #eee">' + EscapeHtml(app.version || '-') + '</td>';
13025 x += '<td style="padding:6px 8px;border:1px solid #eee">' + EscapeHtml(app.publisher || '-') + '</td>';
13026 + x += '<td style="padding:6px 8px;border:1px solid #eee">' + EscapeHtml(app.date || '-') + '</td>';
13027 + x += '<td style="padding:6px 8px;border:1px solid #eee">' + EscapeHtml(app.location || '-') + '</td>';
13028 x += '<td style="text-align:center;padding:6px 8px;border:1px solid #eee">';
13029 var userRights = GetNodeRights(currentNode);
13030 if (hasUninstall && (userRights == 0xFFFFFFFF)) {
@@ -13123,7 +13127,7 @@
13127 setDialogMode(2, "Uninstall Software", 3, function() {
13128 QH('p18Status', '<span style="color:blue">' + "Uninstalling..." + '</span>');
13129 var base64Cmd = btoa(unescape(encodeURIComponent(cmd))); //Use Base64 encoding to avoid special character problems.
13126 - meshserver.send({ action: 'msg', type: 'software', nodeid: currentNode._id, value: 'uninstallapp ' + base64Cmd });
13130 + meshserver.send({ action: 'software', nodeid: currentNode._id, value: 'uninstallapp ' + base64Cmd });
13131 setTimeout(function() { QH('p18Status', "Uninstall started. Click Refresh to update"); }, 2000);
13132 }, dialogContent);
13133 }
@@ -13138,7 +13142,7 @@
13142 dialogContent += '</div>';
13143 setDialogMode(2, "Remove Store App", 3, function() {
13144 QH('p18Status', '<span style="color:blue">' + "Removing..." + '</span>');
13141 - meshserver.send({ action: 'msg', type: 'software', nodeid: currentNode._id, value: 'uninstallstoreapp "' + cmd.replace(/"/g, '\\"') + '"' });
13145 + meshserver.send({ action: 'software', nodeid: currentNode._id, value: 'uninstallstoreapp "' + cmd.replace(/"/g, '\\"') + '"' });
13146 setTimeout(function() { QH('p18Status', "Remove command sent. Click Refresh to update"); }, 2000);
13147 }, dialogContent);
13148 }
views/default3.handlebars
+27 -20
@@ -3655,6 +3655,24 @@
3655 }
3656 break;
3657 }
3658 + case 'software': {
3659 + try {
3660 + var softwareData = message.value;
3661 + if (JSON.parse(message.value).error) {
3662 + QH('p18Status', '<span style=color:red>' + "ERROR: " + JSON.parse(message.value).error + '</span>');
3663 + QH('p18html', '<div style="text-align:center;padding:50px;color:gray"><i>' + "Click Refresh to load installed software..." + '</i></div>');
3664 + installedAppsLoading = false;
3665 + installedAppsLoadingType = 0;
3666 + return;
3667 + }
3668 + if (typeof softwareData === 'string' && softwareData.trim().charAt(0) === '[' && softwareData.indexOf('"name"') >= 0) {
3669 + handleInstalledAppsResponse(softwareData);
3670 + } else if (typeof softwareData === 'string' && (softwareData.indexOf('"success"') >= 0 || softwareData.indexOf('"status"') >= 0 || softwareData.indexOf('"error"') >= 0)) {
3671 + handleUninstallResponse(softwareData);
3672 + }
3673 + } catch (xx) { }
3674 + break;
3675 + }
3676 case 'lastconnect': {
3677 var node = getNodeFromId(message.nodeid);
3678 if (node != null) {
@@ -3689,21 +3707,6 @@
3707 if (typeof message.memory.percentConsumed == 'number') { memory = message.memory.percentConsumed; }
3708 deviceDetailsStatsData.push([now, cpu, memory]);
3709 deviceDetailsStatsDraw(message);
3692 - } else if (message.type === 'software') {
3693 - var softwareData = message.value;
3694 -
3695 - if (typeof softwareData === 'string' && softwareData.trim().charAt(0) === '[' && softwareData.indexOf('"name"') >= 0) {
3696 - if (typeof handleInstalledAppsResponse === 'function') {
3697 - handleInstalledAppsResponse(softwareData);
3698 - }
3699 - }
3700 -
3701 - else if (typeof softwareData === 'string' && (softwareData.indexOf('"success"') >= 0 || softwareData.indexOf('"status"') >= 0 || softwareData.indexOf('"error"') >= 0)) {
3702 - if (typeof handleUninstallResponse === 'function') {
3703 - handleUninstallResponse(softwareData);
3704 - }
3705 - }
3706 -
3710 } else if (message.type === 'console') { p15consoleReceive(nodes[index], message.value, message.source); } // This is a console message.
3711 else if (message.type === 'notify') { // This is a notification message.
3712 var n = getstore('notifications', 0);
@@ -14812,7 +14815,7 @@
14815 installedAppsLoadingType = 0;
14816 return;
14817 }
14815 - meshserver.send({ action: 'msg', type: 'software', nodeid: currentNode._id, value: 'installedapps'});
14818 + meshserver.send({ action: 'software', nodeid: currentNode._id, value: 'installedapps'});
14819 }
14820
14821 function handleInstalledAppsResponse(data) {
@@ -14852,7 +14855,7 @@
14855 installedAppsLoading = true;
14856 installedAppsLoadingType = 2;
14857 QH('p18Status', '<span style="color:blue">' + "Loading store apps..." + '</span>');
14855 - meshserver.send({ action: 'msg', type: 'console', nodeid: currentNode._id, value: 'installedstoreapps' });
14858 + meshserver.send({ action: 'software', nodeid: currentNode._id, value: 'installedstoreapps' });
14859 }
14860
14861 function toggleStoreApps() {
@@ -14896,10 +14899,12 @@
14899 x += '<th style="text-align:left;padding:8px;border:1px solid #ddd">' + "Name" + '</th>';
14900 x += '<th style="text-align:left;padding:8px;border:1px solid #ddd;width:120px">' + "Version" + '</th>';
14901 x += '<th style="text-align:left;padding:8px;border:1px solid #ddd;width:200px">' + "Publisher" + '</th>';
14902 + x += '<th style="text-align:left;padding:8px;border:1px solid #ddd;width:100px">' + "Install Date" + '</th>';
14903 + x += '<th style="text-align:left;padding:8px;border:1px solid #ddd;width:200px">' + "Location" + '</th>';
14904 x += '<th style="text-align:center;padding:8px;border:1px solid #ddd;width:180px">' + "Actions" + '</th>';
14905 x += '</tr></thead><tbody>';
14906 if (desktopApps.length === 0) {
14902 - x += '<tr><td colspan="4" style="text-align:center;color:gray;padding:20px">';
14907 + x += '<tr><td colspan="6" style="text-align:center;color:gray;padding:20px">';
14908 x += searchTerm ? "No applications matching" + '"' + EscapeHtml(searchTerm) + '"' : "No desktop applications found";
14909 x += '</td></tr>';
14910 } else {
@@ -14912,6 +14917,8 @@
14917 x += '<td style="padding:6px 8px;border:1px solid #eee" title="' + EscapeHtml(app.name || '') + '">' + EscapeHtml(app.name || '-') + '</td>';
14918 x += '<td style="padding:6px 8px;border:1px solid #eee">' + EscapeHtml(app.version || '-') + '</td>';
14919 x += '<td style="padding:6px 8px;border:1px solid #eee">' + EscapeHtml(app.publisher || '-') + '</td>';
14920 + x += '<td style="padding:6px 8px;border:1px solid #eee">' + EscapeHtml(app.date || '-') + '</td>';
14921 + x += '<td style="padding:6px 8px;border:1px solid #eee">' + EscapeHtml(app.location || '-') + '</td>';
14922 x += '<td style="text-align:center;padding:6px 8px;border:1px solid #eee">';
14923 var userRights = GetNodeRights(currentNode);
14924 if (hasUninstall && (userRights == 0xFFFFFFFF)) {
@@ -15015,7 +15022,7 @@
15022 showModal('xxAddAgentModal', 'idx_dlgOkButton', function() {
15023 QH('p18Status', '<span style="color:blue">' + "Uninstalling..." + '</span>');
15024 var base64Cmd = btoa(unescape(encodeURIComponent(cmd))); //Use Base64 encoding to avoid special character problems.
15018 - meshserver.send({ action: 'msg', type: 'software', nodeid: currentNode._id, value: 'uninstallapp ' + base64Cmd });
15025 + meshserver.send({ action: 'software', nodeid: currentNode._id, value: 'uninstallapp ' + base64Cmd });
15026 setTimeout(function() { QH('p18Status', "Uninstall started. Click Refresh to update"); }, 2000);
15027 });
15028 }
@@ -15031,7 +15038,7 @@
15038 setModalContent('xxAddAgent', "Remove Store App", dialogContent);
15039 showModal('xxAddAgentModal', 'idx_dlgOkButton', function() {
15040 QH('p18Status', '<span style="color:blue">' + "Removing..." + '</span>');
15034 - meshserver.send({ action: 'msg', type: 'software', nodeid: currentNode._id, value: 'uninstallstoreapp "' + cmd.replace(/"/g, '\\"') + '"' });
15041 + meshserver.send({ action: 'software', nodeid: currentNode._id, value: 'uninstallstoreapp "' + cmd.replace(/"/g, '\\"') + '"' });
15042 setTimeout(function() { QH('p18Status', "Remove command sent. Click Refresh to update"); }, 2000);
15043 });
15044 }