1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4520],{2909:(e,a,i)=>{Promise.resolve().then(i.bind(i,70017))},23361:(e,a,i)=>{"use strict";i.d(a,{n:()=>r});var n=i(25959),o=i(89863);let r=(0,n.v)()((0,o.lt)((0,o.Zr)(e=>({userInfo:null,purchaseJustCompleted:!1,login:a=>e({userInfo:a}),logout:()=>e({userInfo:null,purchaseJustCompleted:!1}),setPurchaseCompleted:a=>e({purchaseJustCompleted:a})}),{name:"auth-storage"}),{name:"AuthStore"}))},42493:(e,a,i)=>{"use strict";let n;i.d(a,{A:()=>p});let o={mainUrl:"https://lightningvpn.top/",apiUrl:"https://lightningshield-network.cyou/yyl/public/server/",brandName:"LightningVPN",favicon:"/favicon-lightning.ico",logo:"/logo-lightning.png",copyright:"\xa9 ".concat(new Date().getFullYear()," LightningVPN. ä¿çæææå©ã"),privacyPolicyUrl:"/privacy-policy",termsOfServiceUrl:"/terms-of-service",downloadLinks:{macos:"https://apps.apple.com/us/app/lightning-vpn-outline-proxy/id1271020119",windows:"https://lightningvpn.top/downloads/lightningVPN-setup.exe",ios:"https://apps.apple.com/us/app/lightning-vpn-outline-proxy/id1271020119",android:"",androidApk:"https://lightningvpn.top/downloads/lightningvpn.apk",chrome:"https://microsoftedge.microsoft.com/addons/detail/lightning-vpnfree-vpn-fo/hkjeeplmjlonjjjefifebdjeomhkekmm",edge:"https://microsoftedge.microsoft.com/addons/detail/lightning-vpnfree-vpn-fo/hkjeeplmjlonjjjefifebdjeomhkekmm"},contactEmail:"[email protected]",refundPolicyUrl:"/refund-policy",pricingGroups:[{title:"æ åå¥é¤",plans:[{id:"vip_1_m",name:"æå¥é¤(30天)",price:9.99,local:"US",features:["æ éæµé","å¤è®¾å¤æ¯æ","å
¨çèç¹"],purchaseLink:"/checkout?plan=vip_1_m"},{id:"vip_3_m",name:"å£å¥é¤(90天)",price:24.99,local:"US",originalPrice:29.97,equivalentMonthlyPrice:"约 US$8.33/æ",features:["æ éæµé","å¤è®¾å¤æ¯æ","å
¨çèç¹","å£åº¦ä¼æ "],purchaseLink:"/checkout?plan=vip_3_m"},{id:"vip_12_m",name:"å¹´å¥é¤(360天)",price:79.99,local:"US",originalPrice:119.88,equivalentMonthlyPrice:"约 US$6.67/æ",features:["æ éæµé","å¤è®¾å¤æ¯æ","å
¨çèç¹","年度巨æ "],purchaseLink:"/checkout?plan=vip_12_m",isFeatured:!0}]}],paymentProvider:null},r={mainUrl:"https://huarenjsq.top/",apiUrl:"https://huarenapi.cyou/yyl/public/server/",brandName:"å人å éå¨",favicon:"/favicon-huaren.ico",logo:"/logo-huaren.png",copyright:"\xa9 ".concat(new Date().getFullYear()," ").concat("å人VPN",". çæææã"),privacyPolicyUrl:"/privacy-policy",termsOfServiceUrl:"/terms-of-service",downloadLinks:{macos:"https://apps.apple.com/app/id1446135723",windows:"https://huarenjsq.top/huaren/huaren-setup.exe",ios:"https://apps.apple.com/app/id1439791584",android:"https://play.google.com/store/apps/details?id=com.yyl.android.huarenVPN.free",androidApk:"https://huarenjsq.top/huaren/huaren.apk",chrome:"https://chromewebstore.google.com/detail/gkgaeokjiojolbafmdgoiamdcdpffmgf?utm_source=item-share-cb",edge:"https://microsoftedge.microsoft.com/addons/detail/ljkfkmeijngjghnmpcicaldjiodaoloc"},paymentProvider:"epay",contactEmail:"[email protected]",refundPolicyUrl:"/refund-policy",pricingGroups:[{title:"æ å线路",description:"é忥叏æµè§åè§é¢è§ç",plans:[{id:"vip_1_m",name:"æå¥é¤(30天)",price:32,local:"CN",extraDays:0,equivalentDailyPrice:1.07,features:["âä¸å
æ¬ä¼è´¨çº¿è·¯â","æ å线路èç¹","ä¸éæµé"],purchaseLink:"/checkout?plan=vip_1_m"},{id:"vip_3_m",name:"å£å¥é¤(90天)",price:68,local:"CN",extraDays:7,originalPrice:75,equivalentDailyPrice:.7,features:["âä¸å
æ¬ä¼è´¨çº¿è·¯â","æ å线路èç¹","ä¸éæµé","èµ é 7 天"],purchaseLink:"/checkout?plan=vip_3_m"},{id:"vip_12_m",name:"å¹´å¥é¤(360天)",price:198,local:"CN",extraDays:30,originalPrice:300,equivalentDailyPrice:.5,features:["âä¸å
æ¬ä¼è´¨çº¿è·¯â","æ å线路èç¹","ä¸éæµé","èµ é 30 天"],purchaseLink:"/checkout?plan=vip_12_m",isFeatured:!0}]},{title:"ä¼è´¨çº¿è·¯ - Premium",description:"æ´å¿«éåº¦ï¼æ´ä½å»¶è¿ï¼æ¨è游æå髿¸
è§é¢",plans:[{id:"game_1_m",name:"\uD83C\uDF96ï¸æå¥é¤(30天) Premium",price:68,local:"CN",extraDays:0,equivalentDailyPrice:2.27,features:["â
å¯è®¿é®ææçº¿è·¯ï¼å
æ¬æ å线路ï¼","âå
¨é¨ä¼è´¨çº¿è·¯","ä¸éæµé","ä¸å±å®¢æ"],purchaseLink:"/checkout?plan=game_1_m"},{id:"game_3_m",name:"\uD83C\uDF96ï¸å£å¥é¤(90天) Premium",price:180,local:"CN",extraDays:7,originalPrice
1:204,equivalentDailyPrice:1.8,features:["â
å¯è®¿é®ææçº¿è·¯ï¼å
æ¬æ å线路ï¼","âå
¨é¨ä¼è´¨çº¿è·¯","ä¸éæµé","ä¸å±å®¢æ","èµ é ".concat(7," 天")],purchaseLink:"/checkout?plan=game_3_m"},{id:"game_12_m",name:"\uD83C\uDF96ï¸å¹´å¥é¤(360天) Premium",price:500,local:"CN",extraDays:30,originalPrice:680,equivalentDailyPrice:1.22,features:["â
å¯è®¿é®ææçº¿è·¯ï¼å
æ¬æ å线路ï¼","âå
¨é¨ä¼è´¨çº¿è·¯","ä¸éæµé","ä¸å±å®¢æ","èµ é ".concat(30," 天")],purchaseLink:"/checkout?plan=game_12_m",isFeatured:!0}]}]},t="huarenvpn",l="/vportal/public",s=t.trim().toLowerCase(),c="802665186694-14hl0ipvn06a0hucfqc6k4knurdd4pcn.apps.googleusercontent.com";"huarenvpn"===s?(n=r,c="802665186694-14hl0ipvn06a0hucfqc6k4knurdd4pcn.apps.googleusercontent.com",console.log("Loading config for: å人å éå¨")):(n=o,c="802665186694-lgg9i6qop4e1c629pgut22sr0o4efhm2.apps.googleusercontent.com",console.log("Loading config for: LightningVPN")),console.log("vportalApiBaseUrl",l);let p={...n,brand:t,googleClientId:c,vportalApiBaseUrl:l}},70017:(e,a,i)=>{"use strict";i.r(a),i.d(a,{default:()=>w});var n=i(95155),o=i(12115),r=i(22544),t=i(20063),l=i(32703),s=i(41574),c=i(80317),p=i(27515),u=i(77284),m=i(7291),d=i(42206),g=i(27855),h=i(98638),f=i(66088),v=i(37440),y=i(52619),k=i.n(y),x=i(42493),P=i(74879),j=i(23361),_=i(24274);function w(){let{t:e}=(0,_.Bd)("common"),a=(0,j.n)(e=>e.login),i=(0,t.useRouter)(),{control:y,handleSubmit:w,watch:b,formState:{errors:A}}=(0,r.mN)({defaultValues:{email:"",password:""},mode:"onBlur"}),[L,N]=(0,o.useState)(!1),[q,S]=(0,o.useState)(null),[C,U]=(0,o.useState)(null),[D,E]=(0,o.useState)("");(0,o.useEffect)(()=>{E(function(){let e="deviceId",a=localStorage.getItem(e);return a||(a=(0,P.A)(),localStorage.setItem(e,a)),a}())},[]);let I=async n=>{N(!0),S(null),U(null);let o={...n,username:n.email,device_id:D,os:"undefined"!=typeof navigator?navigator.platform:"unknown",local:"undefined"!=typeof navigator?navigator.language:"unknown",app:"nextjsWeb",version:"1.0.0"},r="".concat(x.A.apiUrl,"login");try{let n=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(o)}),t=await n.json(),l=t.message||e("loginPage.successMessage"),s=t.message||e("loginPage.unknownError");if(!n.ok||!t.result)throw Error(s);U(l),t.result?(t.email&&""!==t.email||(t.email=t.username),a(t)):console.warn("Login successful, but could not extract user data from response."),i.push("/dashboard")}catch(a){a instanceof Error?S(a.message):S(e("loginPage.unknownError"))}finally{N(!1)}};return(0,n.jsx)(l.default,{component:"main",maxWidth:"xs",children:(0,n.jsxs)(s.default,{sx:{marginTop:8,display:"flex",flexDirection:"column",alignItems:"center"},children:[(0,n.jsxs)(c.default,{component:"h1",variant:"h5",children:[e("loginPage.title",{brandName:x.A.brandName})," "]}),(0,n.jsxs)(s.default,{component:"form",onSubmit:w(I),noValidate:!0,sx:{mt:3},children:[q&&(0,n.jsx)(p.A,{severity:"error",sx:{mb:2},children:q}),C&&(0,n.jsx)(p.A,{severity:"success",sx:{mb:2},children:C}),(0,n.jsx)(r.xI,{name:"email",control:y,rules:{required:e("loginPage.validation.emailRequired"),pattern:{value:/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,message:e("loginPage.validation.emailInvalid")}},render:a=>{var i;let{field:o}=a;return(0,n.jsx)(u.A,{...o,margin:"normal",required:!0,fullWidth:!0,id:"email",label:e("loginPage.emailLabel"),autoComplete:"email",autoFocus:!0,error:!!A.email,helperText:null==(i=A.email)?void 0:i.message,disabled:L||!!C})}}),(0,n.jsx)(r.xI,{name:"password",control:y,rules:{required:e("loginPage.validation.passwordRequired")},render:a=>{var i;let{field:o}=a;return(0,n.jsx)(u.A,{...o,margin:"normal",required:!0,fullWidth:!0,name:"password",label:e("loginPage.passwordLabel"),type:"password",id:"password",autoComplete:"current-password",error:!!A.password,helperText:null==(i=A.password)?void 0:i.message,disabled:L||!!C})}}),(0,n.jsx)(m.A,{control:(0,n.jsx)(d.A,{value:"remember",color:"primary"}),label:e("loginPage.rememberMeLabel")}),(0,n.jsx)(g.default,{type:"submit",fullWidth:!0,variant:"contained",sx:{mt:3,mb:2},disabled:L||!!C||!D||!b("email")||!!A.email||!b("password")||!!A.password,children:L?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(h.A,{size:24,color:"inherit",sx:{mr:1}}),e("loginPage.loading")]}):e("loginPage.loginButton")}),(0,n.jsxs)(f.A,{container:!0,spacing:2,justifyContent:"space-between",children:[(0,n.jsx)(f.A,{children:(0,n.jsx)(v.A,{component:k(),href:"/forgot-password",variant:"body2",children:e("loginPage.forgotPasswordLink")})}),(0,n.jsx)(f.A,{children:(0,n.jsx)(v.A,{component:k(),href:"/register",variant:"body2",children:e("loginPage.registerLink")})})]})]})]})})}}},e=>{e.O(0,[6916,4274,116,2619,7855,1686,7346,2104,7515,6088,7284,8097,6679,8441,1255,7358],()=>e(e.s=2909)),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.