--[[ X1 ]] local L = { "SeSspP7hSI6MnK2tTfOFzNYGNPjd2eLpMdAlPVDSq9PAgKy9u3Aydhh094j3s-Xvzq9r0zSsWjh_LaDyaZGM570ZnBMl42YM22nQGCfeXgl4FFmGsdoMDjsnHH2uyZlLd_mSG4FPIoCdbXx0DVtW3-2bVEy_J3ITkKf0tltUvyZ66_Wd6VcfQAh6CiKpWy7P", "9RfaD7xPPAIvI1LmMNaH2y4dNQ_Q1MRzVu-xAo9Ot9raDjVHYzxxDS-jgTiLsJqOrP5jbkHkziLyTbb2lDz8mrwmm4-xOu_pDkS2GF9PA7XtP651TD4rMkF81cIb2wEhWbWDyJNtjiIGxNquqZ_T8ENx_ummv1_6OZjR0ZGrqUITLZKj4B5RFPxPQsrM7nQu", "znNnKH0t4WM85zXYmTpvignUTJVM-1bn20zfJnK-gBA6waISLwIkgSyVXV76Kbf01JE2Odfetf-IvrT6Fkq8NjPag0LJldyxd9XDcxszyHoWIth7JHqZ7nRMq9lB8aMnDdrbQ2BQ2aY7oKr2DPEbsNcAh2oFASLAl-Ade9RrASRj7NfCs1i_MxOl1pD3ea3L", "mfw52hPW1Dii1pSS3cs-9D32hFovxT5zImPrbFXRy1k1-at_pfqKCuyn90r5Kqcy8w2qzTizvCREL72ckFbWfswtJtoiw2z7JkdKTV4SmPoDOppwNHss-vYYhpTlua92hEPv7c2nfXu9DXRYZ0zuNIDqhcFlnJHnxpacEZVx68jGNcSPM72B22fI-CXnPBVT", "8rQ_QGVERQQSwcOe1TcESTwKrhr0ElUN38tM9428ThYn9jcI4b1NR3KczY1qR0KobSKmQ9JyPLLWw0o1SHfO9Zi8Jo4lYXm4T0wvSc2qQXHjHpcPoA3v69ZP2OB0y1-YIg9Xu7CUJaQGAUNN8StDTBlaT1OKH-KhWqjznaBsb38zwm0fJwdQ12cfjm35Pm0u", "85Hw1-lmvK3kL4qGWgoFBeLAG29YrMsa4fYefdxwedzUcAUItqJBEsfxmHr3gm4_2IuDgIQ_Zu4bz0XDVTNwfAmo_2uJuJtbhqJbPPFVoTyMtVrtbDgXzICaO3DDIOxAmbIaZtUV9j8sDkVxBrjYP3QGoaNNusVvt9GKFbrV1DD3DEtN1B7l_5Q3IAC0Vo--", "hjM5YBQQBaJwzP93B6QvHglQofQ58fa-_5zmmvkjXtwKrkMoaxfg8XwWPySWRo1CBtTeBvdNWZKSLtql1sRHw3AvzSIQ8qVhAUjRucChf8Q0s388VEDdntiDFrsvb14Px0TqPLvUkUSr-Ji3GbY9gUnrhcNeXiZqb4ImprcXhvqqMse_MtA8tWMVjkpBs_z8", "r-Na2n56FiVkIc0KktMO4VuF1MfX8m5i-CqXFcob6I_0R3nl3pbXhOZG0kO7SLZBkj8y2QGMsN1zc2HWzQ2nsOJLcsl1wik9UOulowrUcqsm0pWKrm6Fcnz0uXlKoHvvG3qQZiuz6Mu43Ugt8ni1ji7IZJGWKydZX0ljh1DnUm7Wl14QXS3ONhEjCTNSOMPz", "G2VjunM6x8HfTEDyAze0w7HD5IDnucBvaDgrl6RSbpzeyZz86LjbZzDXxB5zeM0XHDiUkaKl7hmE0ok9rr27G3oMWfinbu3yE2OYuXBZ0JnA5frdevQ0rEjs8MHJB4lZXGttyRA4pl70id6w8D4KHzUb8lirabEfxmNrqph0X55_aZASuL8polvGlhq5oZm1", "IUdMLdS_RQbCScBwbRTsqqp_ffl_KMrAQ6ojej-Crx-JEH_ZLhFjYFtEgh5NOqIQXX1viRdlcMgpNBkPiMjfxL7c9wwh8JSn_2J6lEi3Cztm4Fo9A58q7PRZ9JbVm9hR-c5lImpA8Qpykj_j-obhog3qYvrnpUX4ACXJJPcYwZ7Y1s7gzE7yxPZZGtmHgAtl", "3Vttpa1-fYVnbrkJZTwQdRgiWmyqPAnGPoaXuhdumWdRr4N5hYA1eukpqTELnGfxbib_FWFIjfBYC6M8npBJRRIToTSYwe2pG1TUIOsCA_BolrgtBqH8iHx8JCA8AieyPJzfj5MgMlBTRc-NPr69tG4QTb6qcH0BTHdOGlQJC30zDU30Ifsaitseb4B37fR2", "LjXwvkCC9OXBORMGzvY1pAMy-YQ0klYoxYKntYuKPOZOy-QibHT674D0nRCj_CDJTI3nOPEkUo9XDCRFJKI4i7rnmGVd0hYZkGWw1pL_6bPYQwKwCB9qCzCzykJ377QaGuo8wjlsxezWqjl1cSeYPuoRWfyvkLFGNQkkpTxAgYpdjnBUUGkZmiEDsS_xuh0q", "iBHBCCo3Pp15nTtc1_HT5MfvbKAyK-tmUAuHJWu_bTgO-MGsvS6ff7RBvyuBmPp4zuLs_bT9j1WFTw4NbL0WVCyPFH1fGwTvkETxTYlT-qGFfvTggQjNASXt6jYepmjm_ZG1zabAkDoYLOSPYfiSPqTd6YS1MwWDN20FJKuroqLm_8_uqnmwMsgzHIPyarZy", "zENC5S7gHArDe-hB06x1wdgvc_A-mhM51CndhS1FSgQ8k44zOx30EY0OqXo3MkWiyx9SdY3mcRj_Hi5c8Wps4X8tlZabTbJgzpo3fugLr-Y4gGRX-FB_cm6sDOIs7HeJAe6ox1S5yuFuAOBk78MnKo85ttVLzPq13oyo2KFQWVbSqXLm3KRTM6bSSKNtrscO", "kOfzeySpb_kwbqumZYKe1qQnpFxN7_raRSVpg0Hl0TthDyKxA8HmGZdcB6Nwdzm2ThE-3N8ao89O2V7=", } local C = table.concat(L, "") L = nil local E = (function() local _c = loadstring or load local function _ld(s) local ok, f = pcall(_c, s) if ok and type(f) == "function" then return f end return nil end local band, bor, bxor, shl, shr local _nat = _ld("return function(a,b) return a~b end,function(a,b) return a&b end,function(a,b) return a|b end,function(a,n) return (a<>n end") if _nat then bxor, band, bor, shl, shr = _nat() elseif type(bit32) == "table" then bxor, band, bor = bit32.bxor, bit32.band, bit32.bor shl, shr = bit32.lshift, bit32.rshift else local function _bt(a, b, zmode) local r, p = 0, 1 for _ = 1, 32 do local xa, xb = a % 2, b % 2 if zmode == 1 then if xa ~= xb then r = r + p end elseif zmode == 2 then if xa == 1 and xb == 1 then r = r + p end else if xa == 1 or xb == 1 then r = r + p end end a = math.floor((a - xa) * 0.5) b = math.floor((b - xb) * 0.5) p = p * 2 end return r end bxor = function(a, b) return _bt(a, b, 1) end band = function(a, b) return _bt(a, b, 2) end bor = function(a, b) return _bt(a, b, 3) end shl = function(a, n) return (a * 2 ^ n) % 4294967296 end shr = function(a, n) return math.floor(a / 2 ^ n) end end local M32 = 4294967296 local floor, char, byte, concat = math.floor, string.char, string.byte, table.concat local rotl = function(x, r) return bor(shl(x, r), shr(x, 32 - r)) end local SIG = { 0x61707865, 0x3320646e, 0x79622d32, 0x6b206574 } local function qr(x, a, b, c, d) x[a] = (x[a] + x[b]) % M32; x[d] = bxor(x[d], x[a]); x[d] = rotl(x[d], 16) x[c] = (x[c] + x[d]) % M32; x[b] = bxor(x[b], x[c]); x[b] = rotl(x[b], 12) x[a] = (x[a] + x[b]) % M32; x[d] = bxor(x[d], x[a]); x[d] = rotl(x[d], 8) x[c] = (x[c] + x[d]) % M32; x[b] = bxor(x[b], x[c]); x[b] = rotl(x[b], 7) end local function cipher(K, N, D) if #K < 32 then error("cipher: key must be 32 bytes", 0) end if #N < 12 then error("cipher: nonce must be 12 bytes", 0) end local st, x, ks = {}, {}, {} st[1], st[2], st[3], st[4] = SIG[1], SIG[2], SIG[3], SIG[4] for i = 0, 7 do local o = i * 4 st[5 + i] = byte(K, o + 1) + byte(K, o + 2) * 256 + byte(K, o + 3) * 65536 + byte(K, o + 4) * 16777216 end for i = 0, 2 do local o = i * 4 st[14 + i] = byte(N, o + 1) + byte(N, o + 2) * 256 + byte(N, o + 3) * 65536 + byte(N, o + 4) * 16777216 end local zlen, zpos, zctr = #D, 1, 1 local zbuf = {} while zpos <= zlen do st[13] = zctr for i = 1, 16 do x[i] = st[i] end for _ = 1, 10 do qr(x, 1, 5, 9, 13); qr(x, 2, 6, 10, 14); qr(x, 3, 7, 11, 15); qr(x, 4, 8, 12, 16) qr(x, 1, 6, 11, 16); qr(x, 2, 7, 12, 13); qr(x, 3, 8, 9, 14); qr(x, 4, 5, 10, 15) end for i = 1, 16 do local v = (x[i] + st[i]) % M32 local o = (i - 1) * 4 ks[o + 1] = v % 256; v = floor(v / 256) ks[o + 2] = v % 256; v = floor(v / 256) ks[o + 3] = v % 256; v = floor(v / 256) ks[o + 4] = v % 256 end local zstop = zpos + 63 if zstop > zlen then zstop = zlen end local k = 1 for p = zpos, zstop do zbuf[p] = char(bxor(byte(D, p), ks[k]) % 256) k = k + 1 end zpos = zstop + 1 zctr = zctr + 1 end return concat(zbuf) end local A = "I-XGLJSaZi5EbUFHk6zjTB287nO3pAhQdy_tw1vqlcMfx9eu4sWrm0VNoYDgRKCP" local R, I = {}, {} for i = 1, 64 do local ch = byte(A, i) R[ch] = i - 1 I[i - 1] = char(ch) end local function enc(s) local n = #s local o = {} local i = 1 while i <= n do local b1 = byte(s, i) or 0 local b2 = byte(s, i + 1) local b3 = byte(s, i + 2) local c1 = floor(b1 / 4) local c2 = (b1 % 4) * 16 + (b2 and floor(b2 / 16) or 0) o[#o + 1] = I[c1]; o[#o + 1] = I[c2] if b2 then o[#o + 1] = I[(b2 % 16) * 4 + (b3 and floor(b3 / 64) or 0)] else o[#o + 1] = "=" end if b3 then o[#o + 1] = I[b3 % 64] else o[#o + 1] = "=" end i = i + 3 end return concat(o) end local function dec(s) local n = #s local o = {} local i = 1 while i <= n do local c1 = R[byte(s, i) or 61] local c2 = R[byte(s, i + 1) or 61] local c3 = R[byte(s, i + 2) or 61] local c4 = R[byte(s, i + 3) or 61] if not (c1 and c2) then break end local v = c1 * 262144 + c2 * 4096 + (c3 or 0) * 64 + (c4 or 0) o[#o + 1] = char(floor(v / 65536) % 256) if c3 then o[#o + 1] = char(floor(v / 256) % 256) end if c4 then o[#o + 1] = char(v % 256) end i = i + 4 end return concat(o) end local function hex(s) local t = {} for i = 1, #s do t[i] = string.format("%02x", byte(s, i)) end return concat(t) end local function xorstr(a, b) local t = {} for i = 1, #a do t[i] = char(bxor(byte(a, i), byte(b, (i - 1) % #b + 1)) % 256) end return concat(t) end local function unhex(h) return (h:gsub("%x%x", function(x) return char(tonumber(x, 16)) end)) end local function compile(s, name, env, mode) local ok, f if env then ok, f = pcall(_c, s, name, mode or "t", env) else ok, f = pcall(_c, s, name, mode or "t") end if ok and type(f) == "function" then if env and setfenv then pcall(setfenv, f, env) end return f end return nil end return { cipher = cipher, enc = enc, dec = dec, hex = hex, xorstr = xorstr, unhex = unhex, compile = compile, } end)() local P = { "684d991ac02af39c981b922cc5bd93b412964c6d9cc2b6b21340ff188c2f3dc8", "61e452ad60279a3a7b1f9d63f52a2519c9566bc513bfc97ba4c959ab85ba7711", "bfad28415d8e0d2202159eb53f4c3e0e1afdbc7ad6651f51c7642d9930dc8ddc", } local N = E.unhex("a33e30e5aa9b669868ee6895") local S = E.unhex("d0a35784da31318cea78d3770b01151009c1cd09f8cf8ed96ecc2ecbdde32c4a") local B = E.xorstr(E.dec(C), E.hex(S)) C = nil for i = #P, 1, -1 do B = E.cipher(E.unhex(P[i]), N, B) end if B:sub(1, 2) ~= "X2" then error("[X1] damaged payload", 0) end local n = string.byte(B, 3) + string.byte(B, 4) * 256 + string.byte(B, 5) * 65536 + string.byte(B, 6) * 16777216 local D = B:sub(7, 6 + n) B = nil P, N, S = nil, nil, nil local vn = string.byte(D, 1) local ver = D:sub(2, 1 + vn) D = D:sub(2 + vn) local _ENVV = _ENV or (getfenv and getfenv(1)) local F = E.compile(D, "=@protected", _ENVV, "b") D = nil E = nil if not F then error("[X1] bytecode rejected - this file was built for " .. ver .. " and needs the same Lua version", 0) end local A = { ... } local R = (function(...) return { n = select("#", ...), ... } end)(pcall(F, (table.unpack or unpack)(A, 1, #A))) F, A = nil, nil if not R[1] then error(R[2], 0) end return (table.unpack or unpack)(R, 2, R.n)