diff --git a/java/start.sh b/java/start.sh index 918e747..1f78217 100644 --- a/java/start.sh +++ b/java/start.sh @@ -1,18 +1,20 @@ #!/bin/bash export UUID=${UUID:-'bc97f674-c578-4940-9234-0a1da46041b9'} # 节点UUID -export NEZHA_SERVER=${NEZHA_SERVER:-'nz.abc.com'} # 哪吒客户端域名或ip -export NEZHA_PORT=${NEZHA_PORT:-'5555'} # 哪吒端口为{443,8443,2053,2087,2096}其中之一时自动开启tls -export NEZHA_KEY=${NEZHA_KEY:-''} # 哪吒客户端密钥 -export ARGO_DOMAIN=${ARGO_DOMAIN:-''} # 固定隧道域名,留空即启用临时隧道 -export ARGO_AUTH=${ARGO_AUTH:-''} # 固定隧道token或json -export CFIP=${CFIP:-'www.visa.com.tw'} # argo节点优选域名 -export CFPORT=${CFPORT:-'8443'} # argo节点端口 -export ARGO_PORT=${ARGO_PORT:-'8001'} # argo端口也是vmess端口 使用固定隧道token需和cf后台设置对应 -export SERVER_PORT="${SERVER_PORT:-${PORT:-7860}}" # Hy2 端口,自动获取玩具端口,不用填写 -export REALITY_PORT=${REALITY_PORT:-'50000'} # vless-reality 端口,支持多端口玩具可填写 -export TUIC_PORT=${TUIC_PORT:-'60000'} # tuic5 端口,支持多端口玩具可填写 +export NEZHA_SERVER=${NEZHA_SERVER:-'nz.abc.cn'} # 哪吒客户端域名或ip,哪吒3个变量不全不运行 +export NEZHA_PORT=${NEZHA_PORT:-'5555'} # 哪吒端口为{443,8443,2053,2083,2087,2096}其中之一时自动开启tls +export NEZHA_KEY=${NEZHA_KEY:-''} # 哪吒客户端密钥 +export ARGO_DOMAIN=${ARGO_DOMAIN:-''} # 固定隧道域名,留空即启用临时隧道 +export ARGO_AUTH=${ARGO_AUTH:-''} # 固定隧道token或json +export CFIP=${CFIP:-'www.visa.com.tw'} # argo节点优选域名 +export CFPORT=${CFPORT:-'8443'} # argo节点端口 +export NAME=${NAME:-'AAA'} # 节点名称 +export FILE_PATH=${FILE_PATH:-'./world'} # sub 路径 +export ARGO_PORT=${ARGO_PORT:-'8001'} # argo端口 使用固定隧道token需和cf后台设置对应 +export TUIC_PORT=${TUIC_PORT:-'40000'} # Tuic 端口,支持多端口玩具可填写,否则不动 +export HY2_PORT=${HY2_PORT:-'50000'} # Hy2 端口,支持多端口玩具可填写,否则不动 +export REALITY_PORT=${REALITY_PORT:-'60000'} # reality 端口,支持多端口玩具可填写,否则不动 +export GAME_FILE=${GAME_FILE:-'LICENSE.jar'} # 原游戏启动文件名,需和修改的文件名相同,否则无法启动游戏 -echo "IyBTZWxlY3QgVHVubmVsIG1vZGUKYXJnb19jb25maWd1cmUoKSB7CiAgaWYgW1sgLXogJEFSR09fQVVUSCB8fCAteiAkQVJHT19ET01BSU4gXV07IHRoZW4KICAgIGVjaG8gLWUgIlxlWzE7MzJtQVJHT19ET01BSU4gb3IgQVJHT19BVVRIIHZhcmlhYmxlIGlzIGVtcHR5LCB1c2UgcXVpY2sgdHVubmVsc1xlWzBtIgogICAgcmV0dXJuCiAgZmkKCiAgaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgIGVjaG8gJEFSR09fQVVUSCA+IHR1bm5lbC5qc29uCiAgICBjYXQgPiB0dW5uZWwueW1sIDw8IEVPRgp0dW5uZWw6ICQoY3V0IC1kXCIgLWYxMiA8PDwgIiRBUkdPX0FVVEgiKQpjcmVkZW50aWFscy1maWxlOiB0dW5uZWwuanNvbgpwcm90b2NvbDogaHR0cDIKCmluZ3Jlc3M6CiAgLSBob3N0bmFtZTogJEFSR09fRE9NQUlOCiAgICBzZXJ2aWNlOiBodHRwOi8vbG9jYWxob3N0OiRBUkdPX1BPUlQKICAgIG9yaWdpblJlcXVlc3Q6CiAgICAgIG5vVExTVmVyaWZ5OiB0cnVlCiAgLSBzZXJ2aWNlOiBodHRwX3N0YXR1czo0MDQKRU9GCiAgZWxzZQogICAgZWNobyAtZSAiXGVbMTszMm1BUkdPX0FVVEggbWlzbWF0Y2ggVHVubmVsU2VjcmV0LHVzZSB0b2tlbiBjb25uZWN0IHRvIHR1bm5lbFxlWzBtIgogIGZpCn0KYXJnb19jb25maWd1cmUKd2FpdAoKIyBEb3dubG9hZCBEZXBlbmRlbmN5IEZpbGVzCkFSQ0g9JCh1bmFtZSAtbSkgJiYgRE9XTkxPQURfRElSPSIuIiAmJiBta2RpciAtcCAiJERPV05MT0FEX0RJUiIgJiYgRklMRV9JTkZPPSgpCmlmIFsgIiRBUkNIIiA9PSAiYXJtIiBdIHx8IFsgIiRBUkNIIiA9PSAiYXJtNjQiIF0gfHwgWyAiJEFSQ0giID09ICJhYXJjaDY0IiBdOyB0aGVuCiAgICBGSUxFX0lORk89KCJodHRwczovL2dpdGh1Yi5jb20vZW9vY2UvdGVzdC9yZWxlYXNlcy9kb3dubG9hZC9hcm02NC9zYiB3ZWIiICJodHRwczovL2dpdGh1Yi5jb20vZW9vY2UvdGVzdC9yZWxlYXNlcy9kb3dubG9hZC9hcm02NC9ib3QxMyBib3QiICJodHRwczovL2dpdGh1Yi5jb20vZW9vY2UvdGVzdC9yZWxlYXNlcy9kb3dubG9hZC9BUk0vc3dpdGggbnBtIikKZWxpZiBbICIkQVJDSCIgPT0gImFtZDY0IiBdIHx8IFsgIiRBUkNIIiA9PSAieDg2XzY0IiBdIHx8IFsgIiRBUkNIIiA9PSAieDg2IiBdOyB0aGVuCiAgICBGSUxFX0lORk89KCJodHRwczovL2dpdGh1Yi5jb20vZW9vY2UvdGVzdC9yZWxlYXNlcy9kb3dubG9hZC9hbWQ2NC9zYiB3ZWIiICJodHRwczovL2dpdGh1Yi5jb20vZW9vY2UvdGVzdC9yZWxlYXNlcy9kb3dubG9hZC9hbWQ2NC9ib3QxMyBib3QiICJodHRwczovL2dpdGh1Yi5jb20vZW9vY2UvdGVzdC9yZWxlYXNlcy9kb3dubG9hZC9idWxpZC9zd2l0aCBucG0iKQplbHNlCiAgICBlY2hvICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmU6ICRBUkNIIgogICAgZXhpdCAxCmZpCmZvciBlbnRyeSBpbiAiJHtGSUxFX0lORk9bQF19IjsgZG8KICAgIFVSTD0kKGVjaG8gIiRlbnRyeSIgfCBjdXQgLWQgJyAnIC1mIDEpCiAgICBORVdfRklMRU5BTUU9JChlY2hvICIkZW50cnkiIHwgY3V0IC1kICcgJyAtZiAyKQogICAgRklMRU5BTUU9IiRET1dOTE9BRF9ESVIvJE5FV19GSUxFTkFNRSIKICAgIGlmIFsgLWUgIiRGSUxFTkFNRSIgXTsgdGhlbgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtJEZJTEVOQU1FIGFscmVhZHkgZXhpc3RzLFNraXBwaW5nIGRvd25sb2FkXGVbMG0iCiAgICBlbHNlCiAgICAgICAgY3VybCAtTCAtc1MgLW8gIiRGSUxFTkFNRSIgIiRVUkwiCiAgICAgICAgZWNobyAtZSAiXGVbMTszMm1Eb3dubG9hZGluZyAkRklMRU5BTUVcZVswbSIKICAgIGZpCiAgICBjaG1vZCAreCAkRklMRU5BTUUKZG9uZQp3YWl0CgojIEdlbmVyYXRpbmcgQ29uZmlndXJhdGlvbiBGaWxlcwpnZW5lcmF0ZV9jb25maWcoKSB7CgogICAgb3V0cHV0PSQoL2hvbWUvY29udGFpbmVyL3dlYiBnZW5lcmF0ZSByZWFsaXR5LWtleXBhaXIpCiAgICBwcml2YXRlX2tleT0kKGVjaG8gIiR7b3V0cHV0fSIgfCBncmVwIC1vUCAnUHJpdmF0ZUtleTpccypcSy4qJykKICAgIHB1YmxpY19rZXk9JChlY2hvICIke291dHB1dH0iIHwgZ3JlcCAtb1AgJ1B1YmxpY0tleTpccypcSy4qJykKCiAgICBvcGVuc3NsIGVjcGFyYW0gLWdlbmtleSAtbmFtZSBwcmltZTI1NnYxIC1vdXQgInByaXZhdGUua2V5IgogICAgb3BlbnNzbCByZXEgLW5ldyAteDUwOSAtZGF5cyAzNjUwIC1rZXkgInByaXZhdGUua2V5IiAtb3V0ICJjZXJ0LnBlbSIgLXN1YmogIi9DTj1iaW5nLmNvbSIKCiAgY2F0ID4gY29uZmlnLmpzb24gPDwgRU9GCnsKICAibG9nIjogewogICAgIm91dHB1dCI6ICJzYi5sb2ciLAogICAgImxldmVsIjogImluZm8iLAogICAgInRpbWVzdGFtcCI6IHRydWUKICB9LAogICJkbnMiOiB7CiAgICAic2VydmVycyI6IFsKICAgICAgewogICAgICAgICJhZGRyZXNzIjogIjguOC44LjgiLAogICAgICAgICJhZGRyZXNzX3Jlc29sdmVyIjogImxvY2FsIgogICAgICB9LAogICAgICB7CiAgICAgICAgInRhZyI6ICJsb2NhbCIsCiAgICAgICAgImFkZHJlc3MiOiAibG9jYWwiCiAgICAgIH0KICAgIF0KICB9LAogICAgImluYm91bmRzIjogWwogICAgewogICAgICAgInRhZyI6ICJoeXN0ZXJpYS1pbiIsCiAgICAgICAidHlwZSI6ICJoeXN0ZXJpYTIiLAogICAgICAgImxpc3RlbiI6ICI6OiIsCiAgICAgICAibGlzdGVuX3BvcnQiOiAke1NFUlZFUl9QT1JUfSwKICAgICAgICJ1c2VycyI6IFsKICAgICAgICAgewogICAgICAgICAgICAgInBhc3N3b3JkIjogIiR7VVVJRH0iCiAgICAgICAgIH0KICAgICBdLAogICAgICJtYXNxdWVyYWRlIjogImh0dHBzOi8vYmluZy5jb20iLAogICAgICJ0bHMiOiB7CiAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgImFscG4iOiBbCiAgICAgICAgICAgICAiaDMiCiAgICAgICAgIF0sCiAgICAgICAgICJjZXJ0aWZpY2F0ZV9wYXRoIjogImNlcnQucGVtIiwKICAgICAgICAgImtleV9wYXRoIjogInByaXZhdGUua2V5IgogICAgICAgIH0KICAgIH0sCgogICAgewogICAgICJ0YWciOiAidmxlc3MtaW4iLAogICAgICJ0eXBlIjogInZsZXNzIiwKICAgICAibGlzdGVuIjogIjo6IiwKICAgICAibGlzdGVuX3BvcnQiOiAke1JFQUxJVFlfUE9SVH0sCiAgICAgInVzZXJzIjogWwogICAgICAgICB7CiAgICAgICAgICAgICAidXVpZCI6ICIke1VVSUR9IiwKICAgICAgICAgICAgICJmbG93IjogInh0bHMtcnByeC12aXNpb24iCiAgICAgICAgIH0KICAgICBdLAogICAgICJ0bHMiOiB7CiAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgInNlcnZlcl9uYW1lIjogInd3dy55YWhvby5jb20iLAogICAgICAgICAicmVhbGl0eSI6IHsKICAgICAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICAgICJoYW5kc2hha2UiOiB7CiAgICAgICAgICAgICAgICAgInNlcnZlciI6ICJ3d3cueWFob28uY29tIiwKICAgICAgICAgICAgICAgICAic2VydmVyX3BvcnQiOiA0NDMKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAicHJpdmF0ZV9rZXkiOiAiJHtwcml2YXRlX2tleX0iLAogICAgICAgICAgICAgInNob3J0X2lkIjogWwogICAgICAgICAgICAgICAgICIiCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9LAoKICAgIHsKICAgICAgInRhZyI6ICJ2bWVzcy13cy1pbiIsCiAgICAgICJ0eXBlIjogInZtZXNzIiwKICAgICAgImxpc3RlbiI6ICI6OiIsCiAgICAgICJsaXN0ZW5fcG9ydCI6ICR7QVJHT19QT1JUfSwKICAgICAgInVzZXJzIjogWwogICAgICB7CiAgICAgICAgInV1aWQiOiAiJHtVVUlEfSIKICAgICAgfQogICAgXSwKICAgICJ0cmFuc3BvcnQiOiB7CiAgICAgICJ0eXBlIjogIndzIiwKICAgICAgInBhdGgiOiAiL3ZtZXNzIiwKICAgICAgImVhcmx5X2RhdGFfaGVhZGVyX25hbWUiOiAiU2VjLVdlYlNvY2tldC1Qcm90b2NvbCIKICAgICAgfQogICAgfSwKCiAgICB7CiAgICAgICJ0YWciOiAidHVpYz1pbiIsCiAgICAgICJ0eXBlIjogInR1aWMiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtUVUlDX1BPUlR9LAogICAgICAidXNlcnMiOiBbCiAgICAgICAgewogICAgICAgICAgInV1aWQiOiAiJHtVVUlEfSIKICAgICAgICB9CiAgICAgIF0sCiAgICAgICJjb25nZXN0aW9uX2NvbnRyb2wiOiAiYmJyIiwKICAgICAgInRscyI6IHsKICAgICAgICAiZW5hYmxlZCI6IHRydWUsCiAgICAgICAgImFscG4iOiBbCiAgICAgICAgICAiaDMiCiAgICAgICAgXSwKICAgICAgICAiY2VydGlmaWNhdGVfcGF0aCI6ICJjZXJ0LnBlbSIsCiAgICAgICAgImtleV9wYXRoIjogInByaXZhdGUua2V5IgogICAgICB9CiAgICB9CgogXSwKICAib3V0Ym91bmRzIjogWwogICAgewogICAgICAidGFnIjogImRpcmVjdCIsCiAgICAgICJ0eXBlIjogImRpcmVjdCIKICAgIH0sCiAgICB7CiAgICAgICJ0YWciOiAiYmxvY2siLAogICAgICAidHlwZSI6ICJibG9jayIKICAgIH0KICBdCn0KRU9GCn0KZ2VuZXJhdGVfY29uZmlnCndhaXQKCiMgcnVubmluZyBmaWxlcwpydW4oKSB7CiAgaWYgWyAtZSBucG0gXTsgdGhlbgogICAgdGxzUG9ydHM9KCI0NDMiICI4NDQzIiAiMjA5NiIgIjIwODciICIyMDgzIiAiMjA1MyIpCiAgICBpZiBbWyAiJHt0bHNQb3J0c1sqXX0iID1+ICIke05FWkhBX1BPUlR9IiBdXTsgdGhlbgogICAgICBORVpIQV9UTFM9Ii0tdGxzIgogICAgZWxzZQogICAgICBORVpIQV9UTFM9IiIKICAgIGZpCiAgICBpZiBbIC1uICIkTkVaSEFfU0VSVkVSIiBdICYmIFsgLW4gIiRORVpIQV9QT1JUIiBdICYmIFsgLW4gIiRORVpIQV9LRVkiIF07IHRoZW4KICAgICAgICBub2h1cCAuL25wbSAtcyAke05FWkhBX1NFUlZFUn06JHtORVpIQV9QT1JUfSAtcCAke05FWkhBX0tFWX0gJHtORVpIQV9UTFN9ID4vZGV2L251bGwgMj4mMSAmCgkgICAgc2xlZXAgMgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtbnBtIGlzIHJ1bm5pbmdcZVswbSIKICAgIGVsc2UKICAgICAgICBlY2hvIC1lICJcZVsxOzM1bU5FWkhBIHZhcmlhYmxlIGlzIGVtcHR5LHNraXBpbmcgcnVuaW5nXGVbMG0iCiAgICBmaQogIGZpCgogIGlmIFsgLWUgd2ViIF07IHRoZW4KICAgIG5vaHVwIC4vd2ViIHJ1biAtYyBjb25maWcuanNvbiA+L2Rldi9udWxsIDI+JjEgJgogICAgc2xlZXAgMgogICAgZWNobyAtZSAiXGVbMTszMm13ZWIgaXMgcnVubmluZ1xlWzBtIgogIGZpCgogIGlmIFsgLWUgYm90IF07IHRoZW4KICAgIGlmIFtbICRBUkdPX0FVVEggPX4gXltBLVowLTlhLXo9XXsxMjAsMjUwfSQgXV07IHRoZW4KICAgICAgYXJncz0idHVubmVsIC0tZWRnZS1pcC12ZXJzaW9uIGF1dG8gLS1uby1hdXRvdXBkYXRlIC0tcHJvdG9jb2wgaHR0cDIgcnVuIC0tdG9rZW4gJHtBUkdPX0FVVEh9IgogICAgZWxpZiBbWyAkQVJHT19BVVRIID1+IFR1bm5lbFNlY3JldCBdXTsgdGhlbgogICAgICBhcmdzPSJ0dW5uZWwgLS1lZGdlLWlwLXZlcnNpb24gYXV0byAtLWNvbmZpZyB0dW5uZWwueW1sIHJ1biIKICAgIGVsc2UKICAgICAgYXJncz0idHVubmVsIC0tZWRnZS1pcC12ZXJzaW9uIGF1dG8gLS1uby1hdXRvdXBkYXRlIC0tcHJvdG9jb2wgaHR0cDIgLS1sb2dmaWxlIGJvb3QubG9nIC0tbG9nbGV2ZWwgaW5mbyAtLXVybCBodHRwOi8vbG9jYWxob3N0OiRBUkdPX1BPUlQiCiAgICBmaQogICAgbm9odXAgLi9ib3QgJGFyZ3MgPi9kZXYvbnVsbCAyPiYxICYKICAgIHNsZWVwIDIKICAgIGVjaG8gLWUgIlxlWzE7MzJtYm90IGlzIHJ1bm5pbmdcZVswbSIKICBmaQoKfQpydW4Kc2xlZXAgMwoKZ2V0X2FyZ29kb21haW4oKSB7CiAgaWYgW1sgLW4gJEFSR09fQVVUSCBdXTsgdGhlbgogICAgZWNobyAiJEFSR09fRE9NQUlOIgogIGVsc2UKICAgIGdyZXAgLW9FICdodHRwczovL1tbOmFsbnVtOl0rXC4tXStcLnRyeWNsb3VkZmxhcmVcLmNvbScgYm9vdC5sb2cgfCBzZWQgJ3NAaHR0cHM6Ly9AQCcKICBmaQp9CmFyZ29kb21haW49JChnZXRfYXJnb2RvbWFpbikKZWNobyAtZSAiXGVbMTszMm1BcmdvRG9tYWluOlxlWzE7MzVtJHthcmdvZG9tYWlufVxlWzBtIgpzbGVlcCAxCiMgZ2V0IGlwCklQPSQoY3VybCAtcyBpcHY0LmlwLnNiKQpzbGVlcCAxCiMgZ2V0IGlwaW5mbwpJU1A9JChjdXJsIC1zIGh0dHBzOi8vc3BlZWQuY2xvdWRmbGFyZS5jb20vbWV0YSB8IGF3ayAtRlwiICd7cHJpbnQgJDI2Ii0iJDE4fScgfCBzZWQgLWUgJ3MvIC9fL2cnKSAKc2xlZXAgMQpWTUVTUz0ieyBcInZcIjogXCIyXCIsIFwicHNcIjogXCIke0lTUH1cIiwgXCJhZGRcIjogXCIke0NGSVB9XCIsIFwicG9ydFwiOiBcIiR7Q0ZQT1JUfVwiLCBcImlkXCI6IFwiJHtVVUlEfVwiLCBcImFpZFwiOiBcIjBcIiwgXCJzY3lcIjogXCJub25lXCIsIFwibmV0XCI6IFwid3NcIiwgXCJ0eXBlXCI6IFwibm9uZVwiLCBcImhvc3RcIjogXCIke2FyZ29kb21haW59XCIsIFwicGF0aFwiOiBcIi92bWVzcz9lZD0yMDQ4XCIsIFwidGxzXCI6IFwidGxzXCIsIFwic25pXCI6IFwiJHthcmdvZG9tYWlufVwiLCBcImFscG5cIjogXCJcIiwgXCJmcFwiOiBcInJhbmRvbWl6ZWRcIn0iCgpjYXQgPiBsaXN0LnR4dCA8PEVPRgp2bWVzczovLyQoZWNobyAiJFZNRVNTIiB8IGJhc2U2NCAtdzApCgpoeXN0ZXJpYTI6Ly8ke1VVSUR9QCR7SVB9OiR7U0VSVkVSX1BPUlR9Lz9zbmk9d3d3LmJpbmcuY29tJmFscG49aDMmaW5zZWN1cmU9MSMke0lTUH0KCnR1aWM6Ly8ke1VVSUR9OkAke0lQfToke1RVSUNfUE9SVH0/c25pPXd3dy5iaW5nLmNvbSZhbHBuPWgzJmNvbmdlc3Rpb25fY29udHJvbD1iYnIjJHtJU1B9Cgp2bGVzczovLyR7VVVJRH1AJHtJUH06JHtSRUFMSVRZX1BPUlR9P2VuY3J5cHRpb249bm9uZSZmbG93PXh0bHMtcnByeC12aXNpb24mc2VjdXJpdHk9cmVhbGl0eSZzbmk9d3d3LnlhaG9vLmNvbSZmcD1jaHJvbWUmcGJrPSR7cHVibGljX2tleX0mdHlwZT10Y3AmaGVhZGVyVHlwZT1ub25lIyR7SVNQfQpFT0YKYmFzZTY0IC13MCBsaXN0LnR4dCA+IHN1Yi50eHQKY2F0IHN1Yi50eHQKZWNobyAtZSAiXG5cZVsxOzMybXN1Yi50eHQgc2F2ZWQgc3VjY2Vzc2Z1bGx5XGVbMG0iCmVjaG8gLWUgIlxuXGVbMTszMm1SdW5uaW5nIGRvZGUhXGVbMG0iCmVjaG8gIiIKc2xlZXAgMTAgCmNsZWFyCnJtIC1yZiB3ZWIgYm90IG5wbSBib290LmxvZyBjb25maWcuanNvbiBzYi5sb2cgbGlzdC50eHQgY29yZQ==" | base64 -d | bash +echo "WyAhIC1kICIke0ZJTEVfUEFUSH0iIF0gJiYgbWtkaXIgLXAgIiR7RklMRV9QQVRIfSIgJiYgcm0gLXJmIGJvb3QubG9nIGNvbmZpZy5qc29uIHR1bm5lbC5qc29uIHR1bm5lbC55bWwgIiR7RklMRV9QQVRIfS9zdWIudHh0IgoKYXJnb19jb25maWd1cmUoKSB7CiAgaWYgW1sgLXogJEFSR09fQVVUSCB8fCAteiAkQVJHT19ET01BSU4gXV07IHRoZW4KICAgIGVjaG8gLWUgIlxlWzE7MzJtQVJHT19ET01BSU4gb3IgQVJHT19BVVRIIHZhcmlhYmxlIGlzIGVtcHR5LCB1c2UgcXVpY2sgdHVubmVsc1xlWzBtIiAgIAogICAgcmV0dXJuCiAgZmkKCiAgaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgIGVjaG8gJEFSR09fQVVUSCA+IHR1bm5lbC5qc29uCiAgICBjYXQgPiB0dW5uZWwueW1sIDw8IEVPRgp0dW5uZWw6ICQoY3V0IC1kXCIgLWYxMiA8PDwgIiRBUkdPX0FVVEgiKQpjcmVkZW50aWFscy1maWxlOiB0dW5uZWwuanNvbgpwcm90b2NvbDogaHR0cDIKCmluZ3Jlc3M6CiAgLSBob3N0bmFtZTogJEFSR09fRE9NQUlOCiAgICBzZXJ2aWNlOiBodHRwOi8vbG9jYWxob3N0OiRBUkdPX1BPUlQKICAgIG9yaWdpblJlcXVlc3Q6CiAgICAgIG5vVExTVmVyaWZ5OiB0cnVlCiAgLSBzZXJ2aWNlOiBodHRwX3N0YXR1czo0MDQKRU9GCiAgZWxzZQogICAgZWNobyAtZSAiXGVbMTszMm1BUkdPX0FVVEggbWlzbWF0Y2ggVHVubmVsU2VjcmV0LHVzZSB0b2tlbiBjb25uZWN0IHRvIHR1bm5lbFxlWzBtIgogIGZpCn0KYXJnb19jb25maWd1cmUKd2FpdAoKZG93bmxvYWRfYW5kX3J1bigpIHsKQVJDSD0kKHVuYW1lIC1tKSAmJiBET1dOTE9BRF9ESVI9Ii4iICYmIG1rZGlyIC1wICIkRE9XTkxPQURfRElSIiAmJiBGSUxFX0lORk89KCkKaWYgWyAiJEFSQ0giID09ICJhcm0iIF0gfHwgWyAiJEFSQ0giID09ICJhcm02NCIgXSB8fCBbICIkQVJDSCIgPT0gImFhcmNoNjQiIF07IHRoZW4KICAgIEZJTEVfSU5GTz0oImh0dHBzOi8vZ2l0aHViLmNvbS9lb29jZS90ZXN0L3JlbGVhc2VzL2Rvd25sb2FkL2FybTY0L3NiIHdlYiIgImh0dHBzOi8vZ2l0aHViLmNvbS9lb29jZS90ZXN0L3JlbGVhc2VzL2Rvd25sb2FkL2FybTY0L2JvdDEzIGJvdCIgImh0dHBzOi8vZ2l0aHViLmNvbS9lb29jZS90ZXN0L3JlbGVhc2VzL2Rvd25sb2FkL0FSTS9zd2l0aCBucG0iKQplbGlmIFsgIiRBUkNIIiA9PSAiYW1kNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODZfNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODYiIF07IHRoZW4KICAgIEZJTEVfSU5GTz0oImh0dHBzOi8vZ2l0aHViLmNvbS9lb29jZS90ZXN0L3JlbGVhc2VzL2Rvd25sb2FkL2FtZDY0L3NiIHdlYiIgImh0dHBzOi8vZ2l0aHViLmNvbS9lb29jZS90ZXN0L3JlbGVhc2VzL2Rvd25sb2FkL2FtZDY0L2Nsb3VkZmxhcmVkIGJvdCIgImh0dHBzOi8vZ2l0aHViLmNvbS9lb29jZS90ZXN0L3JlbGVhc2VzL2Rvd25sb2FkL2FtZDY0L3N3aXRoIG5wbSIpCmVsc2UKICAgIGVjaG8gIlVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZTogJEFSQ0giCiAgICBleGl0IDEKZmkKZGVjbGFyZSAtQSBGSUxFX01BUApnZW5lcmF0ZV9yYW5kb21fbmFtZSgpIHsKICAgIGxvY2FsIGNoYXJzPWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MTIzNDU2Nzg5MAogICAgbG9jYWwgbmFtZT0iIgogICAgZm9yIGkgaW4gezEuLjZ9OyBkbwogICAgICAgIG5hbWU9IiRuYW1lJHtjaGFyczpSQU5ET00lJHsjY2hhcnN9OjF9IgogICAgZG9uZQogICAgZWNobyAiJG5hbWUiCn0KZG93bmxvYWRfZmlsZSgpIHsKICAgIGxvY2FsIFVSTD0kMQogICAgbG9jYWwgTkVXX0ZJTEVOQU1FPSQyCiAgICAKICAgIGlmIGNvbW1hbmQgLXYgY3VybCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICAgICAgICBjdXJsIC1MIC1zUyAtbyAiJE5FV19GSUxFTkFNRSIgIiRVUkwiCiAgICAgICAgZWNobyAtZSAiXGVbMTszMm1Eb3dubG9hZGVkICRORVdfRklMRU5BTUUgYnkgY3VybFxlWzBtIgogICAgZWxpZiBjb21tYW5kIC12IHdnZXQgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICAgICAgd2dldCAtcSAtTyAiJE5FV19GSUxFTkFNRSIgIiRVUkwiCiAgICAgICAgZWNobyAtZSAiXGVbMTszMm1Eb3dubG9hZGVkICRORVdfRklMRU5BTUUgYnkgd2dldFxlWzBtIgogICAgZWxzZQogICAgICAgIGVjaG8gLWUgIlxlWzE7MzNtTmVpdGhlciBjdXJsIG5vciB3Z2V0IGlzIGF2YWlsYWJsZSBmb3IgZG93bmxvYWRpbmdcZVswbSIKICAgICAgICBleGl0IDEKICAgIGZpCn0KZm9yIGVudHJ5IGluICIke0ZJTEVfSU5GT1tAXX0iOyBkbwogICAgVVJMPSQoZWNobyAiJGVudHJ5IiB8IGN1dCAtZCAnICcgLWYgMSkKICAgIFJBTkRPTV9OQU1FPSQoZ2VuZXJhdGVfcmFuZG9tX25hbWUpCiAgICBORVdfRklMRU5BTUU9IiRET1dOTE9BRF9ESVIvJFJBTkRPTV9OQU1FIgogICAgCiAgICBkb3dubG9hZF9maWxlICIkVVJMIiAiJE5FV19GSUxFTkFNRSIKICAgIAogICAgY2htb2QgK3ggIiRORVdfRklMRU5BTUUiCiAgICBGSUxFX01BUFskKGVjaG8gIiRlbnRyeSIgfCBjdXQgLWQgJyAnIC1mIDIpXT0iJE5FV19GSUxFTkFNRSIKZG9uZQp3YWl0CgpvdXRwdXQ9JCguLyIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBnZW5lcmF0ZSByZWFsaXR5LWtleXBhaXIpCnByaXZhdGVfa2V5PSQoZWNobyAiJHtvdXRwdXR9IiB8IGF3ayAnL1ByaXZhdGVLZXk6LyB7cHJpbnQgJDJ9JykKcHVibGljX2tleT0kKGVjaG8gIiR7b3V0cHV0fSIgfCBhd2sgJy9QdWJsaWNLZXk6LyB7cHJpbnQgJDJ9JykKCm9wZW5zc2wgZWNwYXJhbSAtZ2Vua2V5IC1uYW1lIHByaW1lMjU2djEgLW91dCAicHJpdmF0ZS5rZXkiCm9wZW5zc2wgcmVxIC1uZXcgLXg1MDkgLWRheXMgMzY1MCAta2V5ICJwcml2YXRlLmtleSIgLW91dCAiY2VydC5wZW0iIC1zdWJqICIvQ049YmluZy5jb20iCgogIGNhdCA+IGNvbmZpZy5qc29uIDw8IEVPRgp7CiAgICAibG9nIjogewogICAgICAgICJkaXNhYmxlZCI6IGZhbHNlLAogICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAidGltZXN0YW1wIjogdHJ1ZQogICAgfSwKICAgICJkbnMiOiB7CiAgICAgICAgInNlcnZlcnMiOiBbCiAgICAgICAgewogICAgICAgICAgICAidGFnIjogImdvb2dsZSIsCiAgICAgICAgICAgICJhZGRyZXNzIjogInRsczovLzguOC44LjgiCiAgICAgICAgfQogICAgICAgIF0KICAgIH0sCiAgICAiaW5ib3VuZHMiOiBbCiAgICB7CiAgICAgICJ0YWciOiAidm1lc3Mtd3MtaW4iLAogICAgICAidHlwZSI6ICJ2bWVzcyIsCiAgICAgICJsaXN0ZW4iOiAiOjoiLAogICAgICAibGlzdGVuX3BvcnQiOiAke0FSR09fUE9SVH0sCiAgICAgICAgInVzZXJzIjogWwogICAgICAgIHsKICAgICAgICAgICJ1dWlkIjogIiR7VVVJRH0iCiAgICAgICAgfQogICAgICBdLAogICAgICAidHJhbnNwb3J0IjogewogICAgICAgICJ0eXBlIjogIndzIiwKICAgICAgICAicGF0aCI6ICIvdm1lc3MiLAogICAgICAgICJlYXJseV9kYXRhX2hlYWRlcl9uYW1lIjogIlNlYy1XZWJTb2NrZXQtUHJvdG9jb2wiCiAgICAgIH0KICAgIH0sCgogICAgewogICAgICAidGFnIjogInR1aWMtaW4iLAogICAgICAidHlwZSI6ICJ0dWljIiwKICAgICAgImxpc3RlbiI6ICI6OiIsCiAgICAgICJsaXN0ZW5fcG9ydCI6ICR7VFVJQ19QT1JUfSwKICAgICAgInVzZXJzIjogWwogICAgICAgIHsKICAgICAgICAgICJ1dWlkIjogIiR7VVVJRH0iLAogICAgICAgICAgInBhc3N3b3JkIjogImFkbWluIgogICAgICAgIH0KICAgICAgXSwKICAgICAgImNvbmdlc3Rpb25fY29udHJvbCI6ICJiYnIiLAogICAgICAidGxzIjogewogICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAiYWxwbiI6IFsKICAgICAgICAgICJoMyIKICAgICAgICBdLAogICAgICAgICJjZXJ0aWZpY2F0ZV9wYXRoIjogImNlcnQucGVtIiwKICAgICAgICAia2V5X3BhdGgiOiAicHJpdmF0ZS5rZXkiCiAgICAgIH0KICAgIH0sCgogICAgewogICAgICAidGFnIjogImh5c3RlcmlhMi1pbiIsCiAgICAgICJ0eXBlIjogImh5c3RlcmlhMiIsCiAgICAgICJsaXN0ZW4iOiAiOjoiLAogICAgICAibGlzdGVuX3BvcnQiOiAke0hZMl9QT1JUfSwKICAgICAgICAidXNlcnMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICAicGFzc3dvcmQiOiAiJHtVVUlEfSIKICAgICAgICAgIH0KICAgICAgXSwKICAgICAgIm1hc3F1ZXJhZGUiOiAiaHR0cHM6Ly9iaW5nLmNvbSIsCiAgICAgICAgInRscyI6IHsKICAgICAgICAgICAgImVuYWJsZWQiOiB0cnVlLAogICAgICAgICAgICAiYWxwbiI6IFsKICAgICAgICAgICAgICAgICJoMyIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgImNlcnRpZmljYXRlX3BhdGgiOiAiY2VydC5wZW0iLAogICAgICAgICAgICAia2V5X3BhdGgiOiAicHJpdmF0ZS5rZXkiCiAgICAgICAgICB9CiAgICAgIH0sCgogICAgICB7CiAgICAgICAgInRhZyI6ICJ2bGVzcy1yZWFsaXR5LXZlc2lvbiIsCiAgICAgICAgInR5cGUiOiAidmxlc3MiLAogICAgICAgICJsaXN0ZW4iOiAiOjoiLAogICAgICAgICJsaXN0ZW5fcG9ydCI6ICRSRUFMSVRZX1BPUlQsCiAgICAgICAgICAidXNlcnMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInV1aWQiOiAiJFVVSUQiLAogICAgICAgICAgICAgICAgImZsb3ciOiAieHRscy1ycHJ4LXZpc2lvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgInRscyI6IHsKICAgICAgICAgICAgICAiZW5hYmxlZCI6IHRydWUsCiAgICAgICAgICAgICAgInNlcnZlcl9uYW1lIjogImNvdXBvbi10cmlwLmNvbSIsCiAgICAgICAgICAgICAgInJlYWxpdHkiOiB7CiAgICAgICAgICAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgImhhbmRzaGFrZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXIiOiAiY291cG9uLXRyaXAuY29tIiwKICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXJfcG9ydCI6IDQ0MwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAicHJpdmF0ZV9rZXkiOiAiJHByaXZhdGVfa2V5IiwKICAgICAgICAgICAgICAgICAgInNob3J0X2lkIjogWwogICAgICAgICAgICAgICAgICAgICIiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgIH0KICAgXSwKICAgICJvdXRib3VuZHMiOiBbCiAgICB7CiAgICAgICJ0eXBlIjogImRpcmVjdCIsCiAgICAgICJ0YWciOiAiZGlyZWN0IgogICAgfSwKICAgIHsKICAgICAgInR5cGUiOiAiZGlyZWN0IiwKICAgICAgInRhZyI6ICJkaXJlY3QtaXB2NC1wcmVmZXItb3V0IiwKICAgICAgImRvbWFpbl9zdHJhdGVneSI6ICJwcmVmZXJfaXB2NCIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogImRpcmVjdCIsCiAgICAgICJ0YWciOiAiZGlyZWN0LWlwdjQtb25seS1vdXQiLAogICAgICAiZG9tYWluX3N0cmF0ZWd5IjogImlwdjRfb25seSIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogImRpcmVjdCIsCiAgICAgICJ0YWciOiAiZGlyZWN0LWlwdjYtcHJlZmVyLW91dCIsCiAgICAgICJkb21haW5fc3RyYXRlZ3kiOiAicHJlZmVyX2lwdjYiCiAgICB9LAogICAgewogICAgICAidHlwZSI6ICJkaXJlY3QiLAogICAgICAidGFnIjogImRpcmVjdC1pcHY2LW9ubHktb3V0IiwKICAgICAgImRvbWFpbl9zdHJhdGVneSI6ICJpcHY2X29ubHkiCiAgICB9LAogICAgewogICAgICAidHlwZSI6ICJ3aXJlZ3VhcmQiLAogICAgICAidGFnIjogIndpcmVndWFyZC1vdXQiLAogICAgICAic2VydmVyIjogImVuZ2FnZS5jbG91ZGZsYXJlY2xpZW50LmNvbSIsCiAgICAgICJzZXJ2ZXJfcG9ydCI6IDI0MDgsCiAgICAgICJsb2NhbF9hZGRyZXNzIjogWwogICAgICAgICIxNzIuMTYuMC4yLzMyIiwKICAgICAgICAiMjYwNjo0NzAwOjExMDo4MTJhOjQ5Mjk6N2QyYTphZjYyOjM1MWMvMTI4IgogICAgICBdLAogICAgICAicHJpdmF0ZV9rZXkiOiAiZ0J0aFJqZXZIREd5VjBLdll3WUU1Mk5JUHkyOXNTclZyNnJjUXRZTmNYQT0iLAogICAgICAicGVlcl9wdWJsaWNfa2V5IjogImJtWE9DK0YxRnhFTUY5ZHlpSzJINS8xU1V0ekgwSnVWbzUxaDJ3UGZneW89IiwKICAgICAgInJlc2VydmVkIjogWwogICAgICAgIDYsCiAgICAgICAgMTQ2LAogICAgICAgIDYKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInR5cGUiOiAiZGlyZWN0IiwKICAgICAgInRhZyI6ICJ3aXJlZ3VhcmQtaXB2NC1wcmVmZXItb3V0IiwKICAgICAgImRldG91ciI6ICJ3aXJlZ3VhcmQtb3V0IiwKICAgICAgImRvbWFpbl9zdHJhdGVneSI6ICJwcmVmZXJfaXB2NCIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogImRpcmVjdCIsCiAgICAgICJ0YWciOiAid2lyZWd1YXJkLWlwdjQtb25seS1vdXQiLAogICAgICAiZGV0b3VyIjogIndpcmVndWFyZC1vdXQiLAogICAgICAiZG9tYWluX3N0cmF0ZWd5IjogImlwdjRfb25seSIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogImRpcmVjdCIsCiAgICAgICJ0YWciOiAid2lyZWd1YXJkLWlwdjYtcHJlZmVyLW91dCIsCiAgICAgICJkZXRvdXIiOiAid2lyZWd1YXJkLW91dCIsCiAgICAgICJkb21haW5fc3RyYXRlZ3kiOiAicHJlZmVyX2lwdjYiCiAgICB9LAogICAgewogICAgICAidHlwZSI6ICJkaXJlY3QiLAogICAgICAidGFnIjogIndpcmVndWFyZC1pcHY2LW9ubHktb3V0IiwKICAgICAgImRldG91ciI6ICJ3aXJlZ3VhcmQtb3V0IiwKICAgICAgImRvbWFpbl9zdHJhdGVneSI6ICJpcHY2X29ubHkiCiAgICB9CiAgXSwKICAicm91dGUiOiB7CiAgICAicnVsZV9zZXQiOiBbCiAgICAgIHsKICAgICAgICAidGFnIjogImdlb3NpdGUtbmV0ZmxpeCIsCiAgICAgICAgInR5cGUiOiAicmVtb3RlIiwKICAgICAgICAiZm9ybWF0IjogImJpbmFyeSIsCiAgICAgICAgInVybCI6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vU2FnZXJOZXQvc2luZy1nZW9zaXRlL3J1bGUtc2V0L2dlb3NpdGUtbmV0ZmxpeC5zcnMiLAogICAgICAgICJ1cGRhdGVfaW50ZXJ2YWwiOiAiMWQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidGFnIjogImdlb3NpdGUtb3BlbmFpIiwKICAgICAgICAidHlwZSI6ICJyZW1vdGUiLAogICAgICAgICJmb3JtYXQiOiAiYmluYXJ5IiwKICAgICAgICAidXJsIjogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9NZXRhQ3ViZVgvbWV0YS1ydWxlcy1kYXQvc2luZy9nZW8vZ2Vvc2l0ZS9vcGVuYWkuc3JzIiwKICAgICAgICAidXBkYXRlX2ludGVydmFsIjogIjFkIgogICAgICB9CiAgICBdLAogICAgInJ1bGVzIjogWwogICAgICB7CiAgICAgICAgInJ1bGVfc2V0IjogWwogICAgICAgICAgImdlb3NpdGUtbmV0ZmxpeCIKICAgICAgICBdLAogICAgICAgICJvdXRib3VuZCI6ICJ3aXJlZ3VhcmQtaXB2Ni1vbmx5LW91dCIKICAgICAgfSwKICAgICAgewogICAgICAgICJkb21haW4iOiBbCiAgICAgICAgICAiYXBpLnN0YXRzaWcuY29tIiwKICAgICAgICAgICJicm93c2VyLWludGFrZS1kYXRhZG9naHEuY29tIiwKICAgICAgICAgICJjZG4ub3BlbmFpLmNvbSIsCiAgICAgICAgICAiY2hhdC5vcGVuYWkuY29tIiwKICAgICAgICAgICJhdXRoLm9wZW5haS5jb20iLAogICAgICAgICAgImNoYXQub3BlbmFpLmNvbS5jZG4uY2xvdWRmbGFyZS5uZXQiLAogICAgICAgICAgImlvcy5jaGF0Lm9wZW5haS5jb20iLAogICAgICAgICAgIm8zMzI0OS5pbmdlc3Quc2VudHJ5LmlvIiwKICAgICAgICAgICJvcGVuYWktYXBpLmFya29zZWxhYnMuY29tIiwKICAgICAgICAgICJvcGVuYWljb20tYXBpLWJkY3BmOGM2ZDJlOWF0ZjYuejAxLmF6dXJlZmQubmV0IiwKICAgICAgICAgICJvcGVuYWljb21wcm9kdWN0aW9uYWU0Yi5ibG9iLmNvcmUud2luZG93cy5uZXQiLAogICAgICAgICAgInByb2R1Y3Rpb24tb3BlbmFpY29tLXN0b3JhZ2UuYXp1cmVlZGdlLm5ldCIsCiAgICAgICAgICAic3RhdGljLmNsb3VkZmxhcmVpbnNpZ2h0cy5jb20iCiAgICAgICAgXSwKICAgICAgICAiZG9tYWluX3N1ZmZpeCI6IFsKICAgICAgICAgICIuYWxnb2xpYS5uZXQiLAogICAgICAgICAgIi5hdXRoMC5jb20iLAogICAgICAgICAgIi5jaGF0Z3B0LmNvbSIsCiAgICAgICAgICAiLmNoYWxsZW5nZXMuY2xvdWRmbGFyZS5jb20iLAogICAgICAgICAgIi5jbGllbnQtYXBpLmFya29zZWxhYnMuY29tIiwKICAgICAgICAgICIuZXZlbnRzLnN0YXRzaWdhcGkubmV0IiwKICAgICAgICAgICIuZmVhdHVyZWdhdGVzLm9yZyIsCiAgICAgICAgICAiLmlkZW50cnVzdC5jb20iLAogICAgICAgICAgIi5pbnRlcmNvbS5pbyIsCiAgICAgICAgICAiLmludGVyY29tY2RuLmNvbSIsCiAgICAgICAgICAiLmxhdW5jaGRhcmtseS5jb20iLAogICAgICAgICAgIi5vYWlzdGF0aWMuY29tIiwKICAgICAgICAgICIub2FpdXNlcmNvbnRlbnQuY29tIiwKICAgICAgICAgICIub2JzZXJ2ZWl0Lm5ldCIsCiAgICAgICAgICAiLm9wZW5haS5jb20iLAogICAgICAgICAgIi5vcGVuYWlhcGktc2l0ZS5henVyZWVkZ2UubmV0IiwKICAgICAgICAgICIub3BlbmFpY29tLmltZ2l4Lm5ldCIsCiAgICAgICAgICAiLnNlZ21lbnQuaW8iLAogICAgICAgICAgIi5zZW50cnkuaW8iLAogICAgICAgICAgIi5zdHJpcGUuY29tIgogICAgICAgIF0sCiAgICAgICAgImRvbWFpbl9rZXl3b3JkIjogWwogICAgICAgICAgIm9wZW5haWNvbS1hcGkiCiAgICAgICAgXSwKICAgICAgICAib3V0Ym91bmQiOiAid2lyZWd1YXJkLWlwdjYtcHJlZmVyLW91dCIKICAgICAgfQogICAgXSwKICAgICJmaW5hbCI6ICJkaXJlY3QiCiAgIH0sCiAgICJleHBlcmltZW50YWwiOiB7CiAgICAgICJjYWNoZV9maWxlIjogewogICAgICAicGF0aCI6ICJjYWNoZS5kYiIsCiAgICAgICJjYWNoZV9pZCI6ICJteWNhY2hlaWQiLAogICAgICAic3RvcmVfZmFrZWlwIjogdHJ1ZQogICAgfQogIH0KfQpFT0YKCmlmIFsgLWUgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkiIF07IHRoZW4KICAgIHRsc1BvcnRzPSgiNDQzIiAiODQ0MyIgIjIwOTYiICIyMDg3IiAiMjA4MyIgIjIwNTMiKQogICAgaWYgW1sgIiR7dGxzUG9ydHNbKl19IiA9fiAiJHtORVpIQV9QT1JUfSIgXV07IHRoZW4KICAgICAgTkVaSEFfVExTPSItLXRscyIKICAgIGVsc2UKICAgICAgTkVaSEFfVExTPSIiCiAgICBmaQogICAgaWYgWyAtbiAiJE5FWkhBX1NFUlZFUiIgXSAmJiBbIC1uICIkTkVaSEFfUE9SVCIgXSAmJiBbIC1uICIkTkVaSEFfS0VZIiBdOyB0aGVuCiAgICAgICAgZXhwb3J0IFRNUERJUj0kKHB3ZCkKICAgICAgICBub2h1cCAuLyIkKGJhc2VuYW1lICR7RklMRV9NQVBbbnBtXX0pIiAtcyAke05FWkhBX1NFUlZFUn06JHtORVpIQV9QT1JUfSAtcCAke05FWkhBX0tFWX0gJHtORVpIQV9UTFN9ID4vZGV2L251bGwgMj4mMSAmCiAgICAgICAgc2xlZXAgMgogICAgICAgIHBzIGF1eCB8IGdyZXAgLXYgZ3JlcCB8IGdyZXAgLXcgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkiID4gL2Rldi9udWxsICYmIGVjaG8gLWUgIlxlWzE7MzJtJChiYXNlbmFtZSAke0ZJTEVfTUFQW25wbV19KSBpcyBydW5uaW5nXGVbMG0iIHx8IHsgZWNobyAtZSAiXGVbMTszNW0kKGJhc2VuYW1lICR7RklMRV9NQVBbbnBtXX0pIGlzIG5vdCBydW5uaW5nLCByZXN0YXJ0aW5nLi4uXGVbMG0iOyBwa2lsbCAteCAiJChiYXNlbmFtZSAke0ZJTEVfTUFQW25wbV19KSIgMj4vZGV2L251bGwgJiYgbm9odXAgLi8iJChiYXNlbmFtZSAke0ZJTEVfTUFQW25wbV19KSIgLXMgIiR7TkVaSEFfU0VSVkVSfToke05FWkhBX1BPUlR9IiAtcCAiJHtORVpIQV9LRVl9IiAke05FWkhBX1RMU30gPi9kZXYvbnVsbCAyPiYxICYgc2xlZXAgMjsgZWNobyAtZSAiXGVbMTszNW0kKGJhc2VuYW1lICR7RklMRV9NQVBbbnBtXX0pIHJlc3RhcnRlZFxlWzBtIjsgfQogICAgZWxzZQogICAgICAgIGVjaG8gLWUgIlxlWzE7MzVtTkVaSEEgdmFyaWFibGUgaXMgZW1wdHksIHNraXBwaW5nIHJ1bm5pbmdcZVswbSIKICAgIGZpCmZpCgppZiBbIC1lICIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBdOyB0aGVuCiAgICBub2h1cCAuLyIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBydW4gLWMgY29uZmlnLmpzb24gPi9kZXYvbnVsbCAyPiYxICYKICAgIHNsZWVwIDIKICAgIHBzIGF1eCB8IGdyZXAgLXYgZ3JlcCB8IGdyZXAgLXcgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFt3ZWJdfSkiID4gL2Rldi9udWxsICYmIGVjaG8gLWUgIlxlWzE7MzJtJChiYXNlbmFtZSAke0ZJTEVfTUFQW3dlYl19KSBpcyBydW5uaW5nXGVbMG0iIHx8IHsgZWNobyAtZSAiXGVbMTszNW0kKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIGlzIG5vdCBydW5uaW5nLCByZXN0YXJ0aW5nLi4uXGVbMG0iOyBwa2lsbCAteCAiJChiYXNlbmFtZSAke0ZJTEVfTUFQW3dlYl19KSIgIDI+L2Rldi9udWxsICYmIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFt3ZWJdfSkiIHJ1biAtYyBjb25maWcuanNvbiA+L2Rldi9udWxsIDI+JjEgJiBzbGVlcCAyOyBlY2hvIC1lICJcZVsxOzM1bSQoYmFzZW5hbWUgJHtGSUxFX01BUFt3ZWJdfSkgcmVzdGFydGVkXGVbMG0iOyB9CmZpCgppZiBbIC1lICIkKGJhc2VuYW1lICR7RklMRV9NQVBbYm90XX0pIiBdOyB0aGVuCiAgICBpZiBbWyAkQVJHT19BVVRIID1+IF5bQS1aMC05YS16PV17MTIwLDI1MH0kIF1dOyB0aGVuCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIHJ1biAtLXRva2VuICR7QVJHT19BVVRIfSIKICAgIGVsaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgICAgYXJncz0idHVubmVsIC0tZWRnZS1pcC12ZXJzaW9uIGF1dG8gLS1jb25maWcgdHVubmVsLnltbCBydW4iCiAgICBlbHNlCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIC0tbG9nZmlsZSBib290LmxvZyAtLWxvZ2xldmVsIGluZm8gLS11cmwgaHR0cDovL2xvY2FsaG9zdDokQVJHT19QT1JUIgogICAgZmkKICAgIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkiICRhcmdzID4vZGV2L251bGwgMj4mMSAmCiAgICBzbGVlcCAyCiAgICBwcyBhdXggfCBncmVwIC12IGdyZXAgfCBncmVwIC13ICIkKGJhc2VuYW1lICR7RklMRV9NQVBbYm90XX0pIiA+IC9kZXYvbnVsbCAmJiBlY2hvIC1lICJcZVsxOzMybSQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkgaXMgcnVubmluZ1xlWzBtIiB8fCB7IGVjaG8gLWUgIlxlWzE7MzVtJChiYXNlbmFtZSAke0ZJTEVfTUFQW2JvdF19KSBpcyBub3QgcnVubmluZywgcmVzdGFydGluZy4uLlxlWzBtIjsgcGtpbGwgLXggIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkiIDI+L2Rldi9udWxsICYmIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkiICIke2FyZ3N9IiA+L2Rldi9udWxsIDI+JjEgJiBzbGVlcCAyOyBlY2hvIC1lICJcZVsxOzM1bSQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkgcmVzdGFydGVkXGVbMG0iOyB9CmZpCnNsZWVwIDMKcm0gLWYgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkiICIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiAiJChiYXNlbmFtZSAke0ZJTEVfTUFQW2JvdF19KSIKfQpkb3dubG9hZF9hbmRfcnVuCgpnZXRfYXJnb2RvbWFpbigpIHsKICBpZiBbWyAtbiAkQVJHT19BVVRIIF1dOyB0aGVuCiAgICBlY2hvICIkQVJHT19ET01BSU4iCiAgZWxzZQogICAgbG9jYWwgcmV0cnk9MAogICAgbG9jYWwgbWF4X3JldHJpZXM9NgogICAgbG9jYWwgYXJnb2RvbWFpbj0iIgogICAgd2hpbGUgW1sgJHJldHJ5IC1sdCAkbWF4X3JldHJpZXMgXV07IGRvCiAgICAgICgocmV0cnkrKykpCiAgICAgIGFyZ29kb21haW49JChncmVwIC1vRSAnaHR0cHM6Ly9bWzphbG51bTpdK1wuLV0rXC50cnljbG91ZGZsYXJlXC5jb20nIGJvb3QubG9nIHwgc2VkICdzQGh0dHBzOi8vQEAnKSAKICAgICAgaWYgW1sgLW4gJGFyZ29kb21haW4gXV07IHRoZW4KICAgICAgICBicmVhawogICAgICBmaQogICAgICBzbGVlcCAxCiAgICBkb25lCiAgICBlY2hvICIkYXJnb2RvbWFpbiIKICBmaQp9CmFyZ29kb21haW49JChnZXRfYXJnb2RvbWFpbikKZWNobyAtZSAiXGVbMTszMm1BcmdvRG9tYWluOlxlWzE7MzVtJHthcmdvZG9tYWlufVxlWzBtIgoKc2xlZXAgMQpJUD0kKGN1cmwgLXMgLS1tYXgtdGltZSAxIGlwdjQuaXAuc2IgfHwgY3VybCAtcyAtLW1heC10aW1lIDEgYXBpLmlwaWZ5Lm9yZyB8fCB7IGlwdjY9JChjdXJsIC1zIC0tbWF4LXRpbWUgMSBpcHY2LmlwLnNiKTsgZWNobyAiWyRpcHY2XSI7IH0gfHwgZWNobyAi5pyq6IO96I635Y+W5YiwSVAiKQpJU1A9JChjdXJsIC1zIC0tbWF4LXRpbWUgMiBodHRwczovL3NwZWVkLmNsb3VkZmxhcmUuY29tL21ldGEgfCBhd2sgLUZcIiAne3ByaW50ICQyNiItIiQxOH0nIHwgc2VkIC1lICdzLyAvXy9nJyB8fCBlY2hvICIwLjAiKQoKVk1FU1M9InsgXCJ2XCI6IFwiMlwiLCBcInBzXCI6IFwiJHtOQU1FfS0ke0lTUH1cIiwgXCJhZGRcIjogXCIke0NGSVB9XCIsIFwicG9ydFwiOiBcIiR7Q0ZQT1JUfVwiLCBcImlkXCI6IFwiJHtVVUlEfVwiLCBcImFpZFwiOiBcIjBcIiwgXCJzY3lcIjogXCJub25lXCIsIFwibmV0XCI6IFwid3NcIiwgXCJ0eXBlXCI6IFwibm9uZVwiLCBcImhvc3RcIjogXCIke2FyZ29kb21haW59XCIsIFwicGF0aFwiOiBcIi92bWVzcz9lZD0yMDQ4XCIsIFwidGxzXCI6IFwidGxzXCIsIFwic25pXCI6IFwiJHthcmdvZG9tYWlufVwiLCBcImFscG5cIjogXCJcIiwgXCJmcFwiOiBcInJhbmRvbWl6ZWRcIn0iCgpjYXQgPiBsaXN0LnR4dCA8PEVPRgp2bWVzczovLyQoZWNobyAiJFZNRVNTIiB8IGJhc2U2NCAtdzApCgpoeXN0ZXJpYTI6Ly8ke1VVSUR9QCR7SVB9OiR7SFkyX1BPUlR9Lz9zbmk9d3d3LmJpbmcuY29tJmFscG49aDMmaW5zZWN1cmU9MSMke05BTUV9LSR7SVNQfQoKdHVpYzovLyR7VVVJRH06YWRtaW5AJHtJUH06JHtUVUlDX1BPUlR9P3NuaT13d3cuYmluZy5jb20mYWxwbj1oMyZjb25nZXN0aW9uX2NvbnRyb2w9YmJyIyR7TkFNRX0tJHtJU1B9fQoKdmxlc3M6Ly8ke1VVSUR9QCR7SVB9OiR7UkVBTElUWV9QT1JUfT9lbmNyeXB0aW9uPW5vbmUmZmxvdz14dGxzLXJwcngtdmlzaW9uJnNlY3VyaXR5PXJlYWxpdHkmc25pPWNvdXBvbi10cmlwLmNvbSZmcD1jaHJvbWUmcGJrPSR7cHVibGljX2tleX0mdHlwZT10Y3AmaGVhZGVyVHlwZT1ub25lIyR7TkFNRX0tJHtJU1B9CkVPRgpiYXNlNjQgLXcwIGxpc3QudHh0ID4gJHtGSUxFX1BBVEh9L3N1Yi50eHQKY2F0ICR7RklMRV9QQVRIfS9zdWIudHh0CmVjaG8gLWUgIlxuXGVbMTszMm0ke0ZJTEVfUEFUSH0vc3ViLnR4dCBzYXZlZCBzdWNjZXNzZnVsbHlcZVswbSIKZWNobyAtZSAiXG5cZVsxOzMybVJ1bm5pbmcgZG9uZSFcZVswbSIKZWNobyAiIgpzbGVlcCAxMCAKY2xlYXIKcm0gLXJmIHdlYiBib3QgbnBtIGJvb3QubG9nIGNvbmZpZy5qc29uIHNiLmxvZyBsaXN0LnR4dCBjb3JlIGZha2VfdXNlcmFnZW50XzAuMi4wLmpzb24=" | base64 -d | bash -# java -jar LICENSE.jar # 若需要启动游戏,去掉开头的"#"号,需将原游戏文件改名为LICENSE.jar或自定义,配置文件中的端口改掉,使游戏端口不用分配的端口 -tail -f /dev/null +chmod +x ${GAME_FILE} && java -jar ${GAME_FILE}