diff --git a/client/cfg/cacert.cer b/client/cfg/cacert.cer
new file mode 100644
index 0000000..d8f5d0c
--- /dev/null
+++ b/client/cfg/cacert.cer
@@ -0,0 +1,23 @@
+-----BEGIN CERTIFICATE-----
+MIID4TCCAsmgAwIBAgIBADANBgkqhkiG9w0BAQsFADBSMQswCQYDVQQGEwJDTjEN
+MAsGA1UECgwEVFA0QTEZMBcGA1UECwwQVFA0QSBUZWxlcG9ydCBDQTEZMBcGA1UE
+AwwQVFA0QSBUZWxlcG9ydCBDQTAgFw0xODExMDgxNzMyMjJaGA8yMTE4MTAxNTE3
+MzIyMlowUjELMAkGA1UEBhMCQ04xDTALBgNVBAoMBFRQNEExGTAXBgNVBAsMEFRQ
+NEEgVGVsZXBvcnQgQ0ExGTAXBgNVBAMMEFRQNEEgVGVsZXBvcnQgQ0EwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCml/ERetMxXh17Uf4IlLjDfgGwnpQZ
+L0UoCO2vAHk0h4eRx5x4fMB/Ml1YHYghVKJ9rxWeb+v5wWz9a8CFtNu+s46nG9cw
+XdneQ2UT4L5+7a+mOyNGAcascfLWfUYoMnF0ugIf3OfsUeAwinMnvKi2I2b8XdXH
+cXRqToEYmcovPLKaXByXFLjcMHMRwR5Es0zIRx+4uuIvCICndLRX5IGy/HGEPZyV
+Vtrrrvkngz54UHB3C3sKuHuHBOxvJ1grJV9fLFptsbPhMonXfYKJpf+ODwmkEDFS
++4vV61ctYvUiElCPeQte23v6lIujqoLoHzYoi8J5BxEwBggeCgAZ/YYFAgMBAAGj
+gb8wgbwwHQYDVR0OBBYEFKHqO88fYp8ard6SKPi8X4Gpr+uiMHoGA1UdIwRzMHGA
+FKHqO88fYp8ard6SKPi8X4Gpr+uioVakVDBSMQswCQYDVQQGEwJDTjENMAsGA1UE
+CgwEVFA0QTEZMBcGA1UECwwQVFA0QSBUZWxlcG9ydCBDQTEZMBcGA1UEAwwQVFA0
+QSBUZWxlcG9ydCBDQYIBADAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+BjANBgkqhkiG9w0BAQsFAAOCAQEAQWYR/WBsaWEwTE9IuoULsGs0G5CWwfIvezil
+HUmtQQb2G3P0kxv43xU3PT3czfbd22h9diSHyyYXOShHIfNx7ZD4SUMGyukcfPst
+oyLcnlMK2hxtu3s5hTc76D+m7ylLQgV52jwHOXXS9toRhIo76HY6Q5Qbz9koP/x+
+MOwmNJ+dLQj/qI1WZZI7FS7Idi2dB5KMp11a2kxgeBIxwkCreBm/MLfdLRyaMdGX
+1L05AI0d7lCu+N+Fu2QX9wToBZ4rRQFrdakgCXqXCdM1O4Akf1KvCDXHUJKgMQUE
+Hav+XOE7nrtxIwfH4VjmCZYRE+8ZTYbG8xSHDwIRMxhsLnb63w==
+-----END CERTIFICATE-----
diff --git a/client/cfg/localhost.key b/client/cfg/localhost.key
new file mode 100644
index 0000000..852ff91
--- /dev/null
+++ b/client/cfg/localhost.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDxI1ZDRvuNnkVB
+JgTZmnwF97d7Ace+R0gSSkWi2l2oezakLSdUUkiysr1wx45u2Du36FNqMGg7LiCZ
+SX1e2Zba96PI6vwNGnlprCfXTe2eV3W8kMPKA6c9X8BTktMZINNHO3K591jGx+uM
+fyrl6/CFVPHNkl73Ium9u91JXIX9BOata4RTlphmHADc+hPXuC6oeN8qayZvV2rV
+Jfx1wMlWCMiGJM36JJO5pywteBCKQkVJuJ7y29XF2wT690o+i6ugk+yI2/2OpiET
+2E5SYdvyhlbcU+iBERsnY3X7IvFY8/m00YIjIc3reGSEwt9M5WTPRCjgonnpQGAx
+9xWXwqkzAgMBAAECggEAT9b2YdInye0EWxy+cFoBBGzPeE/PlcW+LCghRFlutzEM
+l3FH21hfL6OUq7m3BCZeJ3cp3zfl2upb6sT1WKlMlHV36jc7ew8v8fgJPPVVXp7w
+oZ2A5estvVltsX4knOZMbgJV6xLldvOMnvkf9/6VpV/Jq9nxzXvmzmZcT0TuLCaF
+uPk/g/yD5qQ8LkWXDVJeBiDrrOZYo5F+T8bveYKKIEZV0ZAlXwJqVOUFnhffIaDF
+fZVDOv4K3+q0aRDLTY2hxptHZiKzpLXgU634nBN3fiy0Fj88upNIus22gjaz+Jfx
+2pYv22iGNXAMFQwGaeuT7d4+qhgxze8C7YlLJsJWCQKBgQD8kkXbgYG+8NoKmovz
+ki9nuK1R6On5pNjZ344SJm6t/s4FaxQhE/4oHvODwgolqKyT2Sq1K8/5NInRGA29
+xPqqkkhwWk3Zf9VTXgmuXsOikPhbCOuiehO+6/ZthmHYy1jBMqkAIWYaL9Ytn2qb
+dKMHwzNdnppQNdQnwmXI2ZdRBQKBgQD0aVTSOmKfKdIxH9qFLdbi2CoyJMzjAjm9
+Ss5M0OhI9wZnCXyjPBx4hOs+M/BKx4lQ296u2Dh+gSK3L8K3x8lVqqx8gd614qaC
+EWzXZpAbd1S835o2vVYEWXU0iI9s0jkj+VnILEWBMRPYManRUATB2phwRPulimdu
+o+BWN0GG1wKBgCYBxO1hMasQB1+tHf5LM0MCcWJwEDV27wLqNzDYA7O/MjVyhZbs
+sURMVAyxuGEuXrno5hpZO3SeyVZjrj2uVKIyXSA7FpfyOqHO9tn8fKgL9LOORhcv
+E6WZUH3uyO6cuwBnpTLV082BAVPgN2SpSpcycppV8Za8Yu6QvExbIgAZAoGBALcq
+ANETxDj3hHggIQlRkwqpaOXvQkSVtGOxne1fWdTkmz24lFlYgRWotwsErX29D6Ez
+RSzPCXd0m2mhN1G3PaEfqOgeA6NXWeV73Y+HY1PSGAT7pXyEY+QajoVyGdo5qWzW
+P3yOAQCSoQaSIWulhgspILhyWgxzLpRx53t1KXw9AoGBAOxsrIrx/S6onTz58ncZ
+m99OWwJX4WmY5KKhc5dWrfgHrNfldSbhjRhjALy6hSPzkaVy01wXKeeIZl64rUbd
+S/r58yALQ5wuIHAi53BLStxgqEdHQHLg16GqL3b/+Waaf+Fy9y5eoUQ976HPr33G
+uDJ1AAnWjX3KvcyZeWLFTU2/
+-----END PRIVATE KEY-----
diff --git a/client/cfg/localhost.pem b/client/cfg/localhost.pem
new file mode 100644
index 0000000..b91d7e1
--- /dev/null
+++ b/client/cfg/localhost.pem
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIIEGTCCAwGgAwIBAgIEASUKPDANBgkqhkiG9w0BAQsFADBSMQswCQYDVQQGEwJD
+TjENMAsGA1UECgwEVFA0QTEZMBcGA1UECwwQVFA0QSBUZWxlcG9ydCBDQTEZMBcG
+A1UEAwwQVFA0QSBUZWxlcG9ydCBDQTAgFw0xODExMDgxNzMyMjdaGA8yMTE4MTAx
+NTE3MzIyN1owXzELMAkGA1UEBhMCQ04xCzAJBgNVBAgMAkJKMQswCQYDVQQHDAJ0
+cDERMA8GA1UECgwIVGVsZXBvcnQxDzANBgNVBAsMBkFzc2lzdDESMBAGA1UEAwwJ
+bG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8SNWQ0b7
+jZ5FQSYE2Zp8Bfe3ewHHvkdIEkpFotpdqHs2pC0nVFJIsrK9cMeObtg7t+hTajBo
+Oy4gmUl9XtmW2vejyOr8DRp5aawn103tnld1vJDDygOnPV/AU5LTGSDTRztyufdY
+xsfrjH8q5evwhVTxzZJe9yLpvbvdSVyF/QTmrWuEU5aYZhwA3PoT17guqHjfKmsm
+b1dq1SX8dcDJVgjIhiTN+iSTuacsLXgQikJFSbie8tvVxdsE+vdKPouroJPsiNv9
+jqYhE9hOUmHb8oZW3FPogREbJ2N1+yLxWPP5tNGCIyHN63hkhMLfTOVkz0Qo4KJ5
+6UBgMfcVl8KpMwIDAQABo4HnMIHkMB0GA1UdDgQWBBRc5d0h39QISTM55kCqPyy1
+dohEHTB6BgNVHSMEczBxgBSh6jvPH2KfGq3ekij4vF+Bqa/roqFWpFQwUjELMAkG
+A1UEBhMCQ04xDTALBgNVBAoMBFRQNEExGTAXBgNVBAsMEFRQNEEgVGVsZXBvcnQg
+Q0ExGTAXBgNVBAMMEFRQNEEgVGVsZXBvcnQgQ0GCAQAwDAYDVR0TAQH/BAIwADAO
+BgNVHQ8BAf8EBAMCA4gwEwYDVR0lBAwwCgYIKwYBBQUHAwEwFAYDVR0RBA0wC4IJ
+bG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQAfj/CpFDhv5CrnN2kxhtRAmesJ
+q6/KxxkBaimjbS/BpfvqfC9RxGH7MIqGUkbC4/ADkEt2OmVU4+f2R3+rCl+x+r1t
+9+3r/JSYYVBxFnF1GbDhiY9sKahgb4HoFjE2Fj8eVODcEzdApLr198p5IIIyfBys
+WHV4CYFMvq5qCKbSR/JMfrm9GArAh1J+B+JMIfm8xwerFi0tfK2YT+N4QkvbidjG
+sd+RKlR51GHo9m4iEQ7mDd9H8joVrVs2MVLGf2EoVU5y/Ahee4g7k3SKrn3GI/Ec
+6BRCht+INCLI3bnC3MtJHJRzv5Vmu4pSh3cwnVHfe+VWLGvGlp2+KeC02xZ2
+-----END CERTIFICATE-----
diff --git a/client/cfg/tp-assist.macos.json b/client/cfg/tp-assist.macos.json
new file mode 100644
index 0000000..ceafa76
--- /dev/null
+++ b/client/cfg/tp-assist.macos.json
@@ -0,0 +1,106 @@
+{
+ "file_version": 3,
+ "ssh": {
+ "selected": "terminal",
+ "available": [
+ {
+ "name":"terminal",
+ "display": "终端(系统自带)",
+ "app": "Terminal.app",
+ "cmdline": "Basic",
+ "desc": []
+ },
+ {
+ "name": "iterm2",
+ "display": "iTerm2",
+ "app": "iTerm2.app",
+ "cmdline": "Default",
+ "desc": []
+ },
+ {
+ "name": "securecrt",
+ "display": "SecureCRT",
+ "app": "SecureCRT.app",
+ "cmdline": "/T /N \"TP#ssh://{real_ip}\" /SSH2 /P {host_port} /PASSWORD **** {user_name}@{host_ip}",
+ "desc": []
+ },
+ {
+ "name": "other",
+ "display": "自定义",
+ "app": "",
+ "cmdline": "",
+ "desc": []
+ }
+ ]
+ },
+
+ "sftp": {
+ "selected": "securefx",
+ "available": [
+ {
+ "name": "securefx",
+ "display": "SecureFX",
+ "app": "SecureCRT.app",
+ "cmdline": "/T /N \"TP#ssh://{real_ip}\" /SSH2 /P {host_port} /PASSWORD **** {user_name}@{host_ip}",
+ "desc": []
+ },
+ {
+ "name": "other",
+ "display": "自定义",
+ "app": "",
+ "cmdline": "",
+ "desc": []
+ }
+ ]
+ },
+
+ "telnet": {
+ "selected": "terminal",
+ "available": [
+ {
+ "name":"terminal",
+ "display": "终端(系统自带)",
+ "app": "Terminal.app",
+ "cmdline": "Basic",
+ "desc": []
+ },
+ {
+ "name": "iterm2",
+ "display": "iTerm2",
+ "app": "iTerm2.app",
+ "cmdline": "Default",
+ "desc": []
+ },
+ {
+ "name": "securecrt",
+ "display": "SecureCRT",
+ "app": "SecureCRT.app",
+ "cmdline": "/T /N \"TP#ssh://{real_ip}\" /SSH2 /P {host_port} /PASSWORD **** {user_name}@{host_ip}",
+ "desc": []
+ },
+ {
+ "name": "other",
+ "display": "自定义",
+ "app": "",
+ "cmdline": "",
+ "desc": []
+ }
+ ]
+ },
+
+ "rdp": {
+ "selected": "freerdp",
+ "available": [
+ {
+ "name": "FreeRDP",
+ "display": "FreeRDP",
+ "app": "",
+ "cmdline": "",
+ "desc": [
+ "建议使用homebrew安装freerdp,安装后freerdp默认路径在:/usr/local/Cellar/freerdp/x.y.z/bin/xfreerdp",
+ "首次安装freerdp后需要重新启动计算机"
+ ]
+ }
+ ]
+ }
+}
diff --git a/client/cfg/tp-assist.windows.json b/client/cfg/tp-assist.windows.json
new file mode 100755
index 0000000..f4fc876
--- /dev/null
+++ b/client/cfg/tp-assist.windows.json
@@ -0,0 +1,82 @@
+{
+ "ssh": {
+ "selected": "putty",
+ "available": [
+ {
+ "name":"putty",
+ "display": "PuTTY(内置)",
+ "app": "{assist_tools_path}\\putty\\putty.exe",
+ "cmdline": "-ssh -pw **** -P {host_port} -l {user_name} {host_ip}"
+ },
+ {
+ "name": "crt",
+ "display": "SecureCRT",
+ "app": "",
+ "cmdline": "/T /N \"TP#ssh://{real_ip}\" /SSH2 /P {host_port} /PASSWORD **** {user_name}@{host_ip}"
+ },
+ {
+ "name": "xshell",
+ "display": "Xshell",
+ "app": "",
+ "cmdline": "-newtab \"TP#ssh://{real_ip}\" -url ssh://{user_name}:****@{host_ip}:{host_port}"
+ },
+ {
+ "name": "other",
+ "display": "自定义",
+ "app": "",
+ "cmdline": ""
+ }
+ ]
+ },
+ "scp": {
+ "selected": "winscp",
+ "available": [
+ {
+ "name":"winscp",
+ "display": "WinSCP(内置)",
+ "app": "{assist_tools_path}\\winscp\\winscp.exe",
+ "cmdline": "/sessionname=\"TP#{real_ip}\" {user_name}:****@{host_ip}:{host_port}"
+ },
+ {
+ "name": "other",
+ "display": "自定义",
+ "app": "",
+ "cmdline": ""
+ }
+ ]
+ },
+ "telnet": {
+ "selected": "putty",
+ "available": [
+ {
+ "name":"putty",
+ "display": "PuTTY(内置)",
+ "app": "{assist_tools_path}\\putty\\putty.exe",
+ "cmdline": "telnet://{user_name}@{host_ip}:{host_port}"
+ },
+ {
+ "name": "crt",
+ "display": "SecureCRT",
+ "app": "",
+ "cmdline": "/T /N \"TP#telnet://{real_ip}\" /ARG {user_name} /SCRIPT \"{assist_tools_path}\\securecrt-telnet.vbs\" /TELNET {host_ip} {host_port}"
+ },
+ {
+ "name": "other",
+ "display": "自定义",
+ "app": "",
+ "cmdline": ""
+ }
+ ]
+ },
+ "rdp" : {
+ "available" : [
+ {
+ "app" : "{assist_tools_path}\\tprdp\\tprdp-client.exe",
+ "cmdline" : "/v:{host_ip}:{host_port} /u:{user_name} /t:\"TP#{real_ip}\"",
+ "display" : "FreeRDP(内置)",
+ "name" : "freerdp"
+ }
+ ],
+ "selected" : "freerdp"
+ }
+}
diff --git a/client/tp_assist_macos/apple-scripts/compile.sh b/client/tp_assist_macos/apple-scripts/compile.sh
index 97b2bc1..7503566 100755
--- a/client/tp_assist_macos/apple-scripts/compile.sh
+++ b/client/tp_assist_macos/apple-scripts/compile.sh
@@ -4,8 +4,8 @@ PATH_ROOT=$(cd "$(dirname "$0")/.."; pwd)
echo "compiling applescripts for OS X terminal..."
-rm ${PATH_ROOT}/src/apple-scpt/Terminal.scpt
-rm ${PATH_ROOT}/src/apple-scpt/iTerm2.scpt
+rm ${PATH_ROOT}/src/apple-scpt/terminal.scpt
+rm ${PATH_ROOT}/src/apple-scpt/iterm2.scpt
-osacompile -o ${PATH_ROOT}/src/apple-scpt/Terminal.scpt -x ${PATH_ROOT}/apple-scripts/scripts/Terminal.applescript
-osacompile -o ${PATH_ROOT}/src/apple-scpt/iTerm2.scpt -x ${PATH_ROOT}/apple-scripts/scripts/iTerm2.applescript
+osacompile -o ${PATH_ROOT}/src/apple-scpt/terminal.scpt -x ${PATH_ROOT}/apple-scripts/scripts/terminal.applescript
+osacompile -o ${PATH_ROOT}/src/apple-scpt/iterm2.scpt -x ${PATH_ROOT}/apple-scripts/scripts/iterm2.applescript
diff --git a/client/tp_assist_macos/apple-scripts/scripts/Terminal.applescript b/client/tp_assist_macos/apple-scripts/scripts/Terminal.applescript
deleted file mode 100644
index 3b78a92..0000000
--- a/client/tp_assist_macos/apple-scripts/scripts/Terminal.applescript
+++ /dev/null
@@ -1,44 +0,0 @@
-on scriptRun(argsCmd, argsProfile, argsTitle)
- set theCmd to (argsCmd)
- set theProfile to (argsProfile)
- set theTitle to (argsTitle)
- CommandRun(theCmd, theProfile, theTitle)
-end scriptRun
-
-on CommandRun(theCmd, theProfile, theTitle)
- tell application "Terminal"
- if it is not running then
- --if this is the first time Terminal is running you have specify window 1
- --if you dont do this you will get two windows and the title wont be set
- activate
- set newTerm to do script theCmd in window 1
- set newTerm's current settings to settings set theProfile
- set custom title of front window to theTitle
- else
- --Terminal is running get the window count
- set windowCount to (count every window)
- if windowCount = 0 then
- --Terminal is running but no windows are open
- --run our script in a new window
- reopen
- activate
- do script theCmd in window 1
- else
- --Terminal is running and we have a window run in a new tab
- reopen
- activate
- tell application "System Events"
- tell process "Terminal"
- delay 0.2
- keystroke "t" using {command down}
- end tell
- end tell
- activate
- do script theCmd in front window
- end if
- set current settings of selected tab of front window to settings set theProfile
- set title displays custom title of front window to true
- set custom title of selected tab of front window to theTitle
- end if
- end tell
-end CommandRun
diff --git a/client/tp_assist_macos/apple-scripts/scripts/iTerm2.applescript b/client/tp_assist_macos/apple-scripts/scripts/iterm2.applescript
similarity index 100%
rename from client/tp_assist_macos/apple-scripts/scripts/iTerm2.applescript
rename to client/tp_assist_macos/apple-scripts/scripts/iterm2.applescript
diff --git a/client/tp_assist_macos/apple-scripts/scripts/terminal.applescript b/client/tp_assist_macos/apple-scripts/scripts/terminal.applescript
new file mode 100644
index 0000000..3357a40
--- /dev/null
+++ b/client/tp_assist_macos/apple-scripts/scripts/terminal.applescript
@@ -0,0 +1,77 @@
+on scriptRun(argsCmd, argsProfile, argsTitle)
+ set theCmd to (argsCmd)
+ set theProfile to (argsProfile)
+ set theTitle to (argsTitle)
+ set useless to "useless"
+ CommandRun(theCmd, theProfile, theTitle)
+end scriptRun
+
+on CommandRun(theCmd, theProfile, theTitle)
+ tell application "Terminal"
+ if it is not running then
+ --if this is the first time Terminal is running you have specify window 1
+ --if you dont do this you will get two windows and the title wont be set
+ activate
+ delay 1.0
+ set newTerm to do script theCmd in window 1
+ set newTerm's current settings to settings set theProfile
+ set custom title of front window to theTitle
+
+ delay 1.0
+ reopen
+ activate
+ tell application "System Events" to key code 36
+ else
+ --Terminal is running get the window count
+ set windowCount to (count every window)
+ if windowCount = 0 then
+ --Terminal is running but no windows are open
+ --run our script in a new window
+ reopen
+ activate
+
+ do script theCmd in window 1
+
+ set current settings of selected tab of front window to settings set theProfile
+ set title displays custom title of front window to true
+ set custom title of selected tab of front window to theTitle
+
+ delay 1.0
+ reopen
+ activate
+ tell application "System Events" to key code 36
+
+ else
+ --Terminal is running and we have a window run in a new tab
+ reopen
+ activate
+
+ tell application "System Events"
+ tell process "Terminal"
+ delay 0.5
+ keystroke "t" using {command down}
+ end tell
+ end tell
+
+ reopen
+ activate
+ do script theCmd in front window
+
+ set current settings of selected tab of front window to settings set theProfile
+ set title displays custom title of front window to true
+ set custom title of selected tab of front window to theTitle
+
+ delay 1.0
+ reopen
+ activate
+ tell application "System Events" to key code 36
+
+ end if
+
+# set current settings of selected tab of front window to settings set theProfile
+# set title displays custom title of front window to true
+# set custom title of selected tab of front window to theTitle
+ end if
+
+ end tell
+end CommandRun
diff --git a/client/tp_assist_macos/site/css/style.css b/client/tp_assist_macos/site/css/style.css
index 82956e3..36da044 100644
--- a/client/tp_assist_macos/site/css/style.css
+++ b/client/tp_assist_macos/site/css/style.css
@@ -1 +1 @@
-@charset "utf-8";body{font-family:"Microsoft YaHei","微软雅黑",Helvetica,Arial,sans-serif;font-size:13px;background-color:#fff;color:#333}html,body{height:100%}.header{width:100%;height:48px;position:fixed;top:0;line-height:48px;font-size:80%;background-color:#3b3b3b;color:#fff;z-index:999}.header .title{font-size:16px}.header .sub-title{margin-left:30px;color:#acacac}.header-fix{height:48px}.footer{width:100%;height:24px;position:fixed;bottom:0;text-align:center;line-height:24px;background-color:#d5d5d5;border-top:1px solid #a2a2a2;font-size:80%;z-index:999}.content{margin:20px 0 50px 0}.content .cfg-title{font-size:16px;font-weight:bold}.content .form-group{margin-bottom:5px}.content .col-sm-1,.content .col-sm-2,.content .col-sm-3,.content .col-sm-4,.content .col-sm-5,.content .col-sm-6,.content .col-sm-7,.content .col-sm-8,.content .col-sm-9,.content .col-sm-10,.content .col-sm-11,.content .col-sm-12{padding-left:3px;padding-right:3px}.content .arg-detail{font-size:11px}.content .arg-detail ol,.content .arg-detail ul{margin-bottom:0}.content .desc{display:inline-block;margin-top:5px;color:#6b6b6b}.content .arg-detail-common{background-color:#dbffbe;border-radius:5px;padding:15px}.content .input-args{font-family:Consolas,Lucida Console,Monaco,Courier,'Courier New',monospace}.arg-varb{color:#0a6aa1;font-weight:bold;font-family:Consolas,Lucida Console,Monaco,Courier,'Courier New',monospace;display:inline-block;width:128px}#gritter-notice-wrapper{z-index:9999}.gritter-bottom,.gritter-item,.gritter-top{background:rgba(0,0,0,0.8) !important}.gritter-top{border-top-left-radius:3px;border-top-right-radius:3px}.gritter-bottom{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.gritter-close,.gritter-light .gritter-close{left:auto !important;right:5px !important;top:5px !important;width:16px !important;height:16px !important;line-height:16px !important;display:block !important;border-radius:50%}.gritter-close:before,.gritter-light .gritter-close:before{content:'\f00d' !important;font-family:FontAwesome !important;font-size:9px !important;width:16px !important;height:16px !important;line-height:16px !important;color:#fff !important;text-indent:0 !important;position:absolute !important;text-align:center !important;right:0 !important;top:0 !important}.gritter-title{font-size:13px !important;line-height:16px !important;padding-bottom:5px !important;font-weight:400 !important;color:#fff !important;text-shadow:none !important}.gritter-item{color:#aaa !important;font-size:13px !important;padding:2px 15px 5px !important}.gritter-error .gritter-bottom,.gritter-error .gritter-item,.gritter-error .gritter-top{background:rgba(123,32,32,0.9) !important}.gritter-error .gritter-title{color:#fff !important}.gritter-error .gritter-item{color:#ddd !important}.gritter-error .gritter-close{left:auto !important;right:5px !important;top:5px !important;width:16px !important;height:16px !important;line-height:16px !important;display:block !important;border-radius:50%;background:#e33b3b !important}.gritter-success .gritter-bottom,.gritter-success .gritter-item,.gritter-success .gritter-top{background:rgba(1,65,16,0.9) !important}.gritter-success .gritter-title{color:#ddd !important}.gritter-success .gritter-item{color:#ccc !important}.gritter-success .gritter-close{background:#0eb320 !important}#gritter-notice-wrapper{width:320px;max-width:480px}/*# sourceMappingURL=style.css.map */
\ No newline at end of file
+@charset "utf-8";body{font-family:"Microsoft YaHei","微软雅黑",Helvetica,Arial,sans-serif;font-size:13px;background-color:#fff;color:#333}html,body{height:100%}.header{width:100%;height:48px;position:fixed;top:0;line-height:48px;background-color:#3b3b3b;color:#fff;z-index:999}.header .title{font-size:16px}.header .sub-title{margin-left:30px;color:#acacac}.header-fix{height:48px}.footer{width:100%;height:24px;position:fixed;bottom:0;text-align:center;line-height:24px;background-color:#d5d5d5;border-top:1px solid #a2a2a2;z-index:999}.content{margin:20px 0 50px 0}.content .cfg-title{font-size:16px;font-weight:bold}.content .form-group{margin-bottom:5px}.content .col-sm-1,.content .col-sm-2,.content .col-sm-3,.content .col-sm-4,.content .col-sm-5,.content .col-sm-6,.content .col-sm-7,.content .col-sm-8,.content .col-sm-9,.content .col-sm-10,.content .col-sm-11{padding-left:3px;padding-right:3px}.content .arg-detail ol,.content .arg-detail ul{margin-bottom:0}.content .arg-detail-common{background-color:#dbffbe;border-radius:5px;padding:15px}.content .input-args{font-family:Consolas,Lucida Console,Monaco,Courier,'Courier New',monospace}.arg-varb{color:#0a6aa1;font-weight:bold;font-family:Consolas,Lucida Console,Monaco,Courier,'Courier New',monospace;display:inline-block;width:164px}#gritter-notice-wrapper{z-index:9999}.gritter-bottom,.gritter-item,.gritter-top{background:rgba(0,0,0,0.8) !important}.gritter-top{border-top-left-radius:3px;border-top-right-radius:3px}.gritter-bottom{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.gritter-close,.gritter-light .gritter-close{left:auto !important;right:5px !important;top:5px !important;width:16px !important;height:16px !important;line-height:16px !important;display:block !important;border-radius:50%}.gritter-close:before,.gritter-light .gritter-close:before{content:'\f00d' !important;font-family:FontAwesome !important;font-size:9px !important;width:16px !important;height:16px !important;line-height:16px !important;color:#fff !important;text-indent:0 !important;position:absolute !important;text-align:center !important;right:0 !important;top:0 !important}.gritter-title{font-size:13px !important;line-height:16px !important;padding-bottom:5px !important;font-weight:400 !important;color:#fff !important;text-shadow:none !important}.gritter-item{color:#aaa !important;font-size:13px !important;padding:2px 15px 5px !important}.gritter-error .gritter-bottom,.gritter-error .gritter-item,.gritter-error .gritter-top{background:rgba(123,32,32,0.9) !important}.gritter-error .gritter-title{color:#fff !important}.gritter-error .gritter-item{color:#ddd !important}.gritter-error .gritter-close{left:auto !important;right:5px !important;top:5px !important;width:16px !important;height:16px !important;line-height:16px !important;display:block !important;border-radius:50%;background:#e33b3b !important}.gritter-success .gritter-bottom,.gritter-success .gritter-item,.gritter-success .gritter-top{background:rgba(1,65,16,0.9) !important}.gritter-success .gritter-title{color:#ddd !important}.gritter-success .gritter-item{color:#ccc !important}.gritter-success .gritter-close{background:#0eb320 !important}#gritter-notice-wrapper{width:320px;max-width:480px}/*# sourceMappingURL=style.css.map */
\ No newline at end of file
diff --git a/client/tp_assist_macos/site/css/style.css.map b/client/tp_assist_macos/site/css/style.css.map
deleted file mode 100644
index f0bfed4..0000000
--- a/client/tp_assist_macos/site/css/style.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["style.less"],"names":[],"mappings":"AAAA,SAAS,QAaT,KACE,YAJmB,kBAAmB,iCAItC,CACA,cAAA,CACA,qBAAA,CACA,WAGF,KAAM,KACJ,YAGF,QACE,UAAA,CACA,WAAA,CACA,cAAA,CACA,KAAA,CAEA,gBAAA,CAEA,aAAA,CAEA,wBAAA,CACA,UAAA,CACA,YAZF,OAcE,QACE,eAfJ,OAiBE,YACE,gBAAA,CACA,cAIJ,YACE,YAGF,QACE,UAAA,CACA,WAAA,CACA,cAAA,CACA,QAAA,CACA,iBAAA,CACA,gBAAA,CACA,wBAAA,CACA,4BAAA,CACA,aAAA,CACA,YAGF,SACE,qBADF,QAGE,YACE,cAAA,CACA,iBALJ,QAQE,aACE,kBATJ,QAYE,WAZF,QAYa,WAZb,QAYwB,WAZxB,QAYmC,WAZnC,QAY8C,WAZ9C,QAYyD,WAZzD,QAYoE,WAZpE,QAY+E,WAZ/E,QAY0F,WAZ1F,QAYqG,YAZrG,QAYiH,YAZjH,QAY6H,YACzH,gBAAA,CACA,kBAdJ,QAiBE,aACE,eAlBJ,QAiBE,YAEE,IAnBJ,QAiBE,YAEM,IACF,gBApBN,QAwBE,OACE,oBAAA,CACA,cAAA,CACA,cA3BJ,QA8BE,oBAEE,wBAAA,CAEA,iBAAA,CACA,aAnCJ,QAuCE,aACE,mDA7F0D,wBAiG9D,UACE,aAAA,CACA,gBAAA,CACA,mDApG4D,uBAoG5D,CACA,oBAAA,CACA,YAiBF,wBAKE,aAGF,gBAAiB,cAAe,aAE9B,0BAAA,YAGF,aACE,0BAAA,CACA,4BAGF,gBACE,6BAAA,CACA,+BAGF,eAAgB,cAAe,gBAU7B,SAAA,YACA,SAAA,YACA,OAAA,YACA,UAAA,YACA,WAAA,YACA,gBAAA,YACA,aAAA,YACA,kBAGF,cAAc,QAAS,cAAe,eAAc,QAClD,QAAS,OAAT,YACA,uBAAA,YACA,aAAA,YACA,UAAA,YACA,WAAA,YACA,gBAAA,YACA,UAAA,YACA,aAAA,YACA,iBAAA,YACA,iBAAA,YACA,OAAA,YACA,KAAA,YAcF,eACE,cAAA,YACA,gBAAA,YACA,kBAAA,YACA,eAAA,YACA,UAAA,YACA,gBAAA,YAQF,cAEE,UAAA,YACA,cAAA,YACA,oBAAA,YAGF,cACE,iBADF,cACmB,eADnB,cACkC,cAC9B,8BAAA,YAFJ,cAKE,gBACE,UAAA,YANJ,cASE,eACE,UAAA,YAVJ,cAaE,gBACE,SAAA,YACA,SAAA,YACA,OAAA,YACA,UAAA,YACA,WAAA,YACA,gBAAA,YACA,aAAA,YACA,iBAAA,CACA,kBAAA,YAIJ,gBACE,iBADF,gBACmB,eADnB,gBACkC,cAE9B,4BAAA,YAHJ,gBAME,gBAEE,UAAA,YARJ,gBAWE,eAEE,UAAA,YAbJ,gBAgBE,gBACE,kBAAA,YAKJ,wBACE,WAAA,CAEA","file":"style.css","sourceRoot":"../less"}
\ No newline at end of file
diff --git a/client/tp_assist_macos/site/index.html b/client/tp_assist_macos/site/index.html
index 13850f3..e942ef6 100644
--- a/client/tp_assist_macos/site/index.html
+++ b/client/tp_assist_macos/site/index.html
@@ -1,220 +1,225 @@
-
-
-
-
-
-
- TELEPORT助手配置
-
-
-
-
-
-
-
-
-
-
-
-
-