1import{a as pe}from"./chunk-OXRG2J5H.js";import{a as ce}from"./chunk-TUJAHXQN.js";import{J as ne,Q as ie,a as ee,ba as oe,g as te,ia as re,la as ae,ra as le,ua as se,va as ge}from"./chunk-7XLMUGS5.js";import{a as de}from"./chunk-NP4CADP3.js";import{J as X}from"./chunk-BVYE6SD7.js";import"./chunk-EC3MMJLF.js";import{B as Y,f as q,l as V,s as H,t as K}from"./chunk-3CZRPTW4.js";import{a as w,b as Q}from"./chunk-LWGBGNSS.js";import{c as $,d as J}from"./chunk-AGBIQOXM.js";import{Aa as c,Ba as S,G,H as T,La as M,Na as l,Oa as s,S as r,U as B,V as h,Wa as W,X as L,aa as O,da as x,db as N,ea as i,fa as o,ga as p,ma as U,mb as R,na as z,oa as E,p as P,pb as F,qb as D,s as k,tc as Z,u as A,ub as j,za as a}from"./chunk-LWDTIRCY.js";import"./chunk-KI3OGBFQ.js";import"./chunk-NPIB2GR2.js";import"./chunk-QUJFQN2Y.js";import"./chunk-MRPSBUSM.js";import"./chunk-3X6G3RZB.js";import"./chunk-RXTQUOQ3.js";import"./chunk-447CKG3T.js";import"./chunk-66HF336T.js";import"./chunk-JNSODYJ3.js";import"./chunk-ELADHFWA.js";import"./chunk-7FY2OE2O.js";import"./chunk-AJKMVFFX.js";import"./chunk-WLYAAB7T.js";import"./chunk-DVXF2QER.js";import"./chunk-MTHZ7MWU.js";import"./chunk-WI5MSH4N.js";import"./chunk-BLWVX4KK.js";import"./chunk-CKP3SGE2.js";import"./chunk-ZSIIJSG4.js";import"./chunk-CDZFCBFW.js";import"./chunk-E2CLONXR.js";import"./chunk-KRDHHS7Z.js";import"./chunk-JVTPOORY.js";import"./chunk-CLDSZD2A.js";import"./chunk-4WFVMWDK.js";import"./chunk-M2X7KQLB.js";import"./chunk-DVVH2KKN.js";import"./chunk-NV3QH4JK.js";import"./chunk-LRFGNCHE.js";import"./chunk-OZYWYLNK.js";import"./chunk-42C7ZIID.js";import{e as y}from"./chunk-JHI3MBHO.js";var ue=g=>({returnUrl:g});function me(g,f){g&1&&(i(0,"div",34),p(1,"div",35),o())}function fe(g,f){if(g&1){let I=U();i(0,"ion-button",36),z("click",function(){G(I);let e=E();return T(e.signInWithGoogleNative())}),p(1,"ion-icon",37),a(2),l(3,"translate"),o()}if(g&2){let I=E();x("disabled",I.loading),r(2),S(" ",s(3,2,"WELCOME_SIGN_IN_GOOGLE")," ")}}function he(g,f){g&1&&(i(0,"div",38),p(1,"ion-spinner",39),o())}function xe(g,f){if(g&1&&(i(0,"ion-text",40)(1,"p",41),a(2),o()()),g&2){let I=E();r(2),c(I.error)}}var Fe=(()=>{let f=class f{constructor(t,e,n,u,d,_,v,C){this.authService=t,this.router=e,this.route=n,this.ngZone=u,this.platform=d,this.alertController=_,this.analytics=v,this.referralService=C,this.loading=!1,this.error="",this.isMobileApp=!1,this.returnUrl=null,this.autoGoogle=!1,this.authNavigationStarted=!1,ee({logoGoogle:oe,playCircleOutline:se,mailOutline:re,personAddOutline:le,flashOutline:ne,playOutline:ge,musicalNotesOutline:ae,imageOutline:ie,arrowForward:te})}ngOnInit(){this.isMobileApp=this.platform.is("capacitor")||this.platform.is("cordova"),console.log("\u{1F4F1} Is Mobile App:",this.isMobileApp),this.authSubscription&&this.authSubscription.unsubscribe();let t=localStorage.getItem("ai_shorts_auth_token");if(console.log("\u{1F511} Checking auth token:",t?"exists":"none"),this.returnUrl=this.route.snapshot.queryParamMap.get("returnUrl"),this.autoGoogle=this.route.snapshot.queryParamMap.get("autogoogle")==="1",this.autoGoogle&&this.isMobileApp&&setTimeout(()=>{!this.loading&&!this.authService.isAuthenticated&&this.signInWithGoogleNative()},400),this.authService.isAuthenticated){console.log("\u{1F512} User already authenticated, redirecting after auth"),this.navigateAfterAuth();return}else if(t){console.log("\u23F3 Token exists, validating..."),this.loading=!0,this.authService.getCurrentUser().subscribe(e=>{this.loading=!1,e?(console.log("\u2705 Token validated, redirecting..."),this.navigateAfterAuth()):console.log("\u2139\uFE0F Stored token not validated (401-cleared or offline) \u2014 showing sign-in options")});return}this.authSubscription=this.authService.currentUser$.pipe(A(1),P(e=>e!==null),k(1)).subscribe(e=>{console.log("\u2705 Auth state changed - user logged in:",e),this.navigateAfterAuth()})}ngOnDestroy(){this.authSubscription&&this.authSubscription.unsubscribe()}ngAfterViewInit(){this.waitForGoogleSDK()}waitForGoogleSDK(){let t=window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1",e=this.platform.is("capacitor")||this.platform.is("cordova");if(t&&!e){console.warn("Google Sign-In disabled on localhost.");let d=document.getElementById("google-signin-button");d&&(d.innerHTML='<div style="padding: 12px; background: #f0f0f0; border-radius: 4px; text-align: center; color: #666;">Google Sign-In only works on production.</div>');return}let n=0,u=setInterval(()=>{if(n++,typeof google<"u"&&google.accounts)clearInterval(u),this.initializeGoogleSignIn();else if(n>50){clearInterval(u),console.error("Google Sign-In SDK failed to load");let d=document.getElementById("google-signin-button");d&&(d.innerHTML='<div style="padding: 12px; background: #f0f0f0; border-radius: 4px; text-align: center; color: #666;">Google Sign-In unavailable.</div>')}},100)}initializeGoogleSignIn(){try{if(google.accounts.id.revoke){let e=localStorage.getItem("last_google_email");e&&google.accounts.id.revoke(e,n=>{console.log("\u{1F513} Google credentials revoked for:",e),localStorage.removeItem("last_google_email")})}google.accounts.id.disableAutoSelect(),google.accounts.id.cancel(),google.accounts.id.initialize({client_id:w.googleClientId,callback:e=>this.handleGoogleSignIn(e),auto_select:!1,cancel_on_tap_outside:!0,use_fedcm_for_prompt:!1,ux_mode:"popup"});let t=document.getElementById("google-signin-button");if(t&&(t.innerHTML=""),google.accounts.id.renderButton(document.getElementById("google-signin-button"),{theme:"filled_blue",size:"large",width:280,text:"signin_with",type:"standard"}),this.autoGoogle){try{google.accounts.id.prompt()}catch{}try{document.getElementById("google-signin-button")?.scrollIntoView({behavior:"smooth",block:"center"})}catch{}}}catch(t){console.error("Failed to initialize Google Sign-In:",t),this.error="Google Sign-In initialization failed."}}handleGoogleSignIn(t){console.log("Google Sign-In response received"),this.loading=!0,this.error="",console.log("Calling backend /api/auth/google with web credential");let e=setTimeout(()=>{this.loading&&(console.warn("Google (web) login timed out (no response from backend)"),this.ngZone.run(()=>{this.loading=!1,this.error="Sign-in timed out. Please try again."}))},15e3);this.authService.loginWithGoogle(t.credential).subscribe({next:n=>{clearTimeout(e),console.log("\u2705 Google Login Success:",n);try{this.analytics.trackLogin("google"),n&&n.id&&this.analytics.setUserId(n.id.toString())}catch{}try{n&&n.email&&localStorage.setItem("last_google_email",n.email)}catch{}this.applyPendingReferral(),this.loading=!1,this.navigateAfterAuth()},error:n=>{clearTimeout(e),console.error("\u274C Google Login Error:",n),this.loading=!1,this.error="Sign in failed. Please try again."}})}signInWithGoogleNative(){return y(this,null,function*(){if(console.log("\u{1F510} Starting native Google Sign-In (attempting plugin, then fallback to browser)..."),this.ngZone.run(()=>{this.loading=!0,this.error=""}),this.platform.is("capacitor")||this.platform.is("cordova"))try{let e=(yield import("./chunk-UYFXBBDI.js")).GoogleAuth;if(!e)throw new Error("GoogleAuth plugin not available");let n={webClientId:w.googleClientId||void 0,serverClientId:w.googleClientId||void 0,androidClientId:w.androidClientId||void 0,offline:!1,requestIdToken:!0,scopes:["openid","profile","email"]};console.debug("GoogleAuth.signIn options:",n);try{yield e.initialize({clientId:w.googleClientId,grantOfflineAccess:!1,scopes:"openid,profile,email"}
1),console.debug("GoogleAuth.initialize called before signIn (web client id)")}catch(m){console.warn("GoogleAuth.initialize (pre-signin) failed (non-fatal):",m)}let u=e.signIn(n),d=15e3,_;try{_=yield Promise.race([u,new Promise((m,b)=>setTimeout(()=>b(new Error("plugin_signin_timeout")),d))])}catch(m){console.warn("GoogleAuth.signIn failed or timed out:",m),m&&m.message==="plugin_signin_timeout"?this.ngZone.run(()=>{this.loading=!1,this.error="Sign-in timed out. Please try again."}):this.ngZone.run(()=>{this.loading=!1,this.error="Native sign-in failed. Please try again or use Email sign-in."});return}let v=_?.idToken||_?.authentication?.idToken||null,C=_?.serverAuthCode||null;if(v){console.log("Calling backend /api/auth/google with id token");let m=setTimeout(()=>{this.loading&&(console.warn("Google login timed out (no response from backend)"),this.ngZone.run(()=>{this.loading=!1,this.error="Sign-in timed out. Please try again."}))},15e3);this.authService.loginWithGoogle(v).subscribe({next:b=>{clearTimeout(m),console.log("loginWithGoogle next:",b),this.loading=!1;try{b&&b.email&&localStorage.setItem("last_google_email",b.email)}catch{}this.applyPendingReferral(),this.navigateAfterAuth()},error:b=>{clearTimeout(m),console.error("loginWithGoogle error:",b),this.loading=!1,this.error="Native sign-in failed. Opening browser fallback.",this.openBrowserFallback()}});return}else if(C){console.warn("Native plugin returned serverAuthCode (no id token).",C),yield(yield this.alertController.create({header:"Sign-in requires additional step",message:"This device returned a temporary server code instead of an ID token. We can open the browser to complete sign-in or try again. Open browser now?",buttons:[{text:"Cancel",role:"cancel",handler:()=>{this.ngZone.run(()=>{this.loading=!1})}},{text:"Open browser",handler:()=>{this.openBrowserFallback()}}]})).present();return}else console.warn("Native plugin signIn returned no id token, falling back to browser."),this.error="Native sign-in did not return a token. Falling back to browser."}catch(t){console.warn("Native GoogleAuth attempt failed:",t);let e=t||{},n=e?.code||e?.error||null,u="Google sign-in failed. You can open the browser to sign in or try Email sign-in instead.";(n===10||n==="10")&&(u="Google sign-in failed due to app configuration (developer error).\n\nPlease ensure an Android OAuth client is configured in Google Cloud Console for package `com.adloura.app` with the correct SHA-1 fingerprint (debug and release). You can open the browser to complete sign-in now.");let d=[{text:"Cancel",role:"cancel",handler:()=>{this.ngZone.run(()=>{this.loading=!1})}},{text:"Open browser",handler:()=>{this.openBrowserFallback()}}];w.production||d.push({text:"Show details",handler:()=>y(this,null,function*(){let v;try{v=JSON.stringify(e,null,2)}catch{v=String(e)}yield(yield this.alertController.create({header:"Debug details",message:'<pre style="white-space:pre-wrap">'+v+"</pre>",buttons:["Close"]})).present()})}),yield(yield this.alertController.create({header:"Google Sign-In failed",message:u,buttons:d})).present();return}this.ngZone.run(()=>{this.loading=!1,this.error="If native sign-in failed you can use Email sign-in or open the browser."})})}applyPendingReferral(){try{let t=localStorage.getItem("pending_referral_code");t&&(localStorage.removeItem("pending_referral_code"),this.referralService.applyCode(t).subscribe({error:()=>{}}))}catch{}}navigateAfterAuth(){if(this.authNavigationStarted)return;this.authNavigationStarted=!0;let t=this.getSafeReturnUrl();this.ngZone.run(()=>{this.router.navigateByUrl(t,{replaceUrl:!0}).then(e=>console.log("Post-auth navigation success:",e,t),e=>{this.authNavigationStarted=!1,console.error("Post-auth navigation failed:",e)})})}getSafeReturnUrl(){let t=this.returnUrl;return!t||!t.startsWith("/")||t.startsWith("//")||/^\/(login|signup|welcome)(?:[/?#]|$)/.test(t)?"/":t}openBrowserFallback(){return y(this,null,function*(){try{let{Browser:t}=yield import("./chunk-ANEFA6FF.js");yield t.open({url:"https://adloura.com/welcome?source=mobile_app"}),this.error="Google Sign-in opened in your browser. Complete sign-in there and return to the app."}catch(t){console.error("Failed to open external browser for Google Sign-in:",t),this.error="Unable to open browser. Please use Email Sign-In or Create Account.",setTimeout(()=>this.router.navigate(["/login"]),1200)}finally{this.loading=!1}})}openTerms(){this.router.navigate(["/terms"])}openPrivacy(){this.router.navigate(["/privacy"])}};f.\u0275fac=function(e){return new(e||f)(h(Q),h(F),h(R),h(B),h(Z),h(X),h(de),h(pe))},f.\u0275cmp=L({type:f,selectors:[["app-welcome"]],decls:89,vars:58,consts:[[1,"welcome-page",3,"fullscreen"],[1,"welcome"],[1,"top-bar"],[1,"brand"],[1,"brand-icon"],["src","assets/icon/adloura-app-icon.svg?v=adloura3","alt","Adloura"],[1,"wordmark"],[1,"wordmark-sub"],[1,"tagline"],[1,"feature-card"],[1,"feature"],[1,"f-ic"],["name","flash-outline"],[1,"f-tx"],["name","play-outline"],["name","musical-notes-outline"],["name","image-outline"],[1,"stats"],[1,"stat"],[1,"num"],[1,"lbl"],[1,"vline"],[1,"get-started-label"],[1,"free-promise"],["class","google-web-wrap",4,"ngIf"],["expand","block","class","google-alt",3,"disabled","click",4,"ngIf"],[1,"or-divider"],["expand","block","routerLink","/signup",1,"cta-email",3,"queryParams","disabled"],["expand","block","fill","outline","routerLink","/login",1,"cta-create",3,"queryParams","disabled"],["class","loading-wrapper",4,"ngIf"],["color","danger",4,"ngIf"],[1,"legal"],["routerLink","/privacy-policy"],["routerLink","/terms-conditions"],[1,"google-web-wrap"],["id","google-signin-button"],["expand","block",1,"google-alt",3,"click","disabled"],["name","logo-google","slot","start"],[1,"loading-wrapper"],["name","crescent","color","primary"],["color","danger"],[1,"error-message"]],template:function(e,n){e&1&&(i(0,"ion-content",0)(1,"div",1)(2,"div",2),p(3,"app-language-picker"),o(),i(4,"div",3)(5,"div",4),p(6,"img",5),o(),i(7,"div",6),a(8,"ADLOURA"),o(),i(9,"div",7),a(10,"AI AD STUDIO"),o(),i(11,"p",8),a(12),l(13,"translate"),o()(),i(14,"div",9)(15,"div",10)(16,"span",11),p(17,"ion-icon",12),o(),i(18,"span",13),a(19),l(20,"translate"),o()(),i(21,"div",10)(22,"span",11),p(23,"ion-icon",14),o(),i(24,"span",13),a(25),l(26,"translate"),o()(),i(27,"div",10)(28,"span",11),p(29,"ion-icon",15),o(),i(30,"span",13),a(31),l(32,"translate"),o()(),i(33,"div",10)(34,"span",11),p(35,"ion-icon",16),o(),i(36,"span",13),a(37),l(38,"translate"),o()()(),i(39,"div",17)(40,"div",18)(41,"div",19),a(42,"3"),o(),i(43,"div",20),a(44),l(45,"translate"),o()(),p(46,"div",21),i(47,"div",18)(48,"div",19),a(49,"15+"),o(),i(50,"div",20),a(51),l(52,"translate"),o()(),p(53,"div",21),i(54,"div",18)(55,"div",19),a(56,"60s"),o(),i(57,"div",20),a(58),l(59,"translate"),o()()(),i(60,"div",22),a(61),l(62,"translate"),o(),i(63,"div",23),a(64),l(65,"translate"),o(),O(66,me,2,0,"div",24)(67,fe,4,4,"ion-button",25),i(68,"div",26)(69,"span"),a(70),l(71,"translate"),o()(),i(72,"ion-button",27),a(73),l(74,"translate"),o(),i(75,"ion-button",28),a(76),l(77,"translate"),o(),O(78,he,2,0,"div",29)(79,xe,3,1,"ion-text",3
10),i(80,"div",31)(81,"a",32),a(82),l(83,"translate"),o(),i(84,"span"),a(85,"\xB7"),o(),i(86,"a",33),a(87),l(88,"translate"),o()()()()),e&2&&(x("fullscreen",!0),r(12),c(s(13,24,"WELCOME_SUBTITLE")),r(7),c(s(20,26,"WELCOME_FEATURE_1")),r(6),c(s(26,28,"WELCOME_FEATURE_2")),r(6),c(s(32,30,"WELCOME_FEATURE_3")),r(6),c(s(38,32,"WELCOME_FEATURE_4")),r(7),c(s(45,34,"WELCOME_STAT_CATEGORIES")),r(7),c(s(52,36,"WELCOME_STAT_LANGUAGES")),r(7),c(s(59,38,"WELCOME_STAT_AI_VIDEOS")),r(3),c(s(62,40,"WELCOME_GET_STARTED")),r(3),S("\u2728 ",s(65,42,"SIGNUP_BENEFIT_1")),r(2),x("ngIf",!n.isMobileApp),r(),x("ngIf",n.isMobileApp),r(3),c(s(71,44,"WELCOME_OR")),r(2),x("queryParams",n.returnUrl?M(54,ue,n.returnUrl):null)("disabled",n.loading),r(),S(" ",s(74,46,"LOGIN_CREATE_ACCOUNT")," "),r(2),x("queryParams",n.returnUrl?M(56,ue,n.returnUrl):null)("disabled",n.loading),r(),S(" ",s(77,48,"WELCOME_SIGN_IN_EMAIL")," "),r(2),x("ngIf",n.loading),r(),x("ngIf",n.error),r(3),c(s(83,50,"PRIVACY")),r(5),c(s(88,52,"TERMS")))},dependencies:[N,W,j,D,J,ce,V,q,Y,K,H,$],styles:['@charset "UTF-8";[_nghost-%COMP%]{color:var(--pn-text)}ion-content.welcome-page[_ngcontent-%COMP%]{--background: var(--pn-ink)}.welcome[_ngcontent-%COMP%]{max-width:460px;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 26px) 22px calc(env(safe-area-inset-bottom,0px) + 22px);min-height:100%;display:flex;flex-direction:column;align-items:center;text-align:center}.brand[_ngcontent-%COMP%]{position:relative;margin-top:18px}.brand-icon[_ngcontent-%COMP%]{position:relative;width:116px;height:116px;margin:0 auto 24px}.brand-icon[_ngcontent-%COMP%]:before{content:"";position:absolute;inset:-64px;background:radial-gradient(closest-side,rgba(233,174,85,.22),transparent 70%);z-index:0}.brand-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{position:relative;z-index:1;width:100%;height:100%;display:block}.wordmark[_ngcontent-%COMP%]{font-family:var(--pn-font-display);font-size:44px;font-weight:600;letter-spacing:.18em;color:var(--pn-text);padding-left:.18em;line-height:1}.wordmark-sub[_ngcontent-%COMP%]{font-family:var(--pn-font-display);font-size:15px;font-weight:600;letter-spacing:.52em;color:var(--pn-gold);padding-left:.52em;margin-top:10px}.tagline[_ngcontent-%COMP%]{margin:22px 0 0;font-size:17px;font-weight:600;color:var(--pn-text-soft)}.feature-card[_ngcontent-%COMP%]{width:100%;margin:30px 0 6px;padding:20px 18px;background:linear-gradient(180deg,#ffffff06,#fff0);background-color:var(--pn-surface);border:1px solid var(--pn-border);border-radius:var(--pn-radius-xl)}.feature[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;padding:9px 0;text-align:left}.feature[_ngcontent-%COMP%] .f-ic[_ngcontent-%COMP%]{flex:0 0 auto;width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(233,174,85,.45);border-radius:12px;background:#e9ae5512}.feature[_ngcontent-%COMP%] .f-ic[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{font-size:21px;color:var(--pn-gold)}.feature[_ngcontent-%COMP%] .f-tx[_ngcontent-%COMP%]{font-size:16px;color:var(--pn-text);font-weight:500}.stats[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;margin:26px 0 30px}.stats[_ngcontent-%COMP%] .stat[_ngcontent-%COMP%]{flex:1}.stats[_ngcontent-%COMP%] .num[_ngcontent-%COMP%]{font-family:var(--pn-font-display);font-size:30px;font-weight:700;color:var(--pn-gold);line-height:1}.stats[_ngcontent-%COMP%] .lbl[_ngcontent-%COMP%]{margin-top:7px;font-size:13px;color:var(--pn-text-mute)}.stats[_ngcontent-%COMP%] .vline[_ngcontent-%COMP%]{width:1px;height:38px;background:var(--pn-border)}.get-started-label[_ngcontent-%COMP%]{text-align:center;font-size:16px;font-weight:700;color:var(--pn-text);letter-spacing:.3px;margin:2px 0 6px}.free-promise[_ngcontent-%COMP%]{text-align:center;font-size:13px;font-weight:600;color:var(--pn-gold);margin:0 0 14px}.google-alt[_ngcontent-%COMP%]{width:100%;--background: #ffffff;--background-activated: #ececec;--background-hover: #f6f6f6;--color: #1f1f1f;--border-radius: 14px;--box-shadow: 0 4px 14px rgba(0,0,0,.28);--padding-top: 15px;--padding-bottom: 15px;font-size:15px;font-weight:600;letter-spacing:.2px;margin:0 0 4px}.google-alt[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{font-size:19px;color:#4285f4;margin-right:4px}.or-divider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;margin:16px 2px;font-size:13px;font-weight:500;color:var(--pn-text-mute)}.or-divider[_ngcontent-%COMP%]:before, .or-divider[_ngcontent-%COMP%]:after{content:"";flex:1;height:1px;background:var(--pn-border)}.cta-email[_ngcontent-%COMP%]{width:100%;--background: var(--pn-gradient);--background-activated: var(--pn-gold-dark);--background-hover: var(--pn-gold-light);--color: #15131D;--border-radius: 14px;
1--box-shadow: 0 6px 16px rgba(204,133,48,.2);--padding-top: 17px;--padding-bottom: 17px;font-size:16px;font-weight:700;letter-spacing:.2px;margin:0 0 10px}.cta-create[_ngcontent-%COMP%]{width:100%;--border-radius: 14px;--border-color: var(--pn-border);--border-width: 1px;--color: var(--pn-text-soft);--background-hover: rgba(255,255,255,.04);--padding-top: 16px;--padding-bottom: 16px;font-size:15px;font-weight:600;margin:0}.loading-wrapper[_ngcontent-%COMP%]{margin-top:18px}.error-message[_ngcontent-%COMP%]{color:var(--ion-color-danger);font-size:14px;margin-top:14px}.legal[_ngcontent-%COMP%]{margin-top:auto;padding-top:28px;font-size:13px;color:var(--pn-text-mute)}.legal[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--pn-text-mute);text-decoration:none}.legal[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin:0 8px}.google-web-wrap[_ngcontent-%COMP%]{display:flex;justify-content:center;margin:14px 0 4px;min-height:44px}.google-web-wrap[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{color-scheme:light}.top-bar[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:flex-end;margin:-2px -6px 2px;min-height:32px}.top-bar[_ngcontent-%COMP%] ion-button[_ngcontent-%COMP%]{--color: var(--pn-text-soft);--padding-start: 8px;--padding-end: 8px;font-size:13px}']});let g=f;return g})();export{Fe as WelcomePage};
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.