PageSourceSearch

https://hotpot.ai/login

html hotpot.ai collected 2026-10-02 03:27:46 UTC 23,391 bytes, 416 lines download raw bytes

1<!doctype html>
2<html lang="en"><head>
3  <meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
4  <title>Log in — Hotpot</title>
5  
6  
7<!-- Open Graph Tags BEGIN ------------------------------------------------------------------ -->
8<meta property="og:type" content="website">
9<meta property="og:site_name" content="Hotpot.ai">
10<meta property="og:title" content="Log in — Hotpot">
11<meta property="og:description" content="">
12<meta property="og:image" content="https://hotpot.ai/images/site/ogDefaultImage.jpg">
13<meta property="og:locale" content="en">
14<meta property="og:url" content="https://hotpot.ai/login">
15
16
17<!-- Twitter Tags BEGIN --------------------------------------------------------------------- -->
18<meta name="twitter:card" content="summary_large_image">
19<meta name="twitter:image" content="https://hotpot.ai/images/site/ogDefaultImage.jpg">
20<meta name="twitter:site" content="@HotpotHelper">
21<meta name="twitter:title" content="Log in — Hotpot">
22<meta name="twitter:description" content="">
23
24
25<!-- Apple Tags BEGIN ----------------------------------------------------------------------- -->
26<link rel="apple-touch-icon" href="/images/apple-touch-icon.png" type="image/png">
27<meta name="apple-mobile-web-app-capable" content="yes">
28<meta name="apple-mobile-web-app-title" content="Hotpot.ai">
29<meta name="apple-mobile-web-app-status-bar-style" content="default">
30
31
32  <meta name="robots" content="noindex,nofollow">
33
34
35<!-- Strucutred Data BEGIN -------------------------------------------------------- -->
36<script type="application/ld+json">
37{
38  "@context": "http://schema.org",
39  "@type": "Organization",
40  "legalName": "Panabee, LLC",
41  "name": "Hotpot.ai",
42  "url": "https://hotpot.ai",
43  "sameAs" : [
44    "https://twitter.com/HotpotHelper",
45    "https://github.com/HotpotDesign",
46    "https://www.facebook.com/HotpotDesign"
47  ],
48  "brand": {
49    "@type": "Brand",
50    "name": "Hotpot.ai",
51    "alternateName": "Hotpot",
52    "logo": "https://hotpot.ai/images/apple-touch-icon.png"
53  },
54  "contactPoint" : [
55    {
56      "@type" : "ContactPoint",
57      "contactType" : "customer service",
58      "email": "[email protected]",
59      "url": "https://hotpot.ai"
60    }
61  ]
62}
63</script>
63
64<!-- Strucutred Data END -------------------------------------------------------- -->
65
66  
66<script src="https://the.gatekeeperconsent.com/cmp.min.js" data-cfasync="false"></script>
66
67  <meta name="csrf-param" content="authenticity_token" />
68<meta name="csrf-token" content="6XFeWNS2Te-GFMCMam7rc4zIDa_Q8-R93NxSrqmQfYafh228e7SBkHqDMARUCYKDCIXbhsBX3eGqKrjvgFa7Bg" />
69  <link rel="icon" href="/images/logos/brandmark_purple.svg" type="image/svg+xml">
70  <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
71  <link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Fraunces:opsz,[email protected],400;9..144,500&display=swap" rel="stylesheet">
72    <link rel="stylesheet" href="/assets/reset-05c44cf8428909649f0fc1436c3efe551a61163501a75f8f0103b768b3cd2596.css" />
73<link rel="stylesheet" href="/assets/scaffold-78ab6c448fd9f4681431cc60c74bde6917cfd2a07429f21977713536c1d214cc.css" />
74    
74<script src="/assets/jquery.min-56a981c8f3080b80f66fcf27c928c1670f0434681478a3fdf46606110390da81.js"></script>
vendor: 1 bytes, line 74
74
75<script src="/assets/application-3467a6e706548758b0dc6978735f8295fb8704c65aca0a40bc72f1d9ff605bac.js"></script>
75
76  <!-- **************************** Firebase BEGIN ******************************************  -->
77
78
79<!-- 
79<script defer src="https://www.gstatic.com/firebasejs/8.10.1/firebase-app.js"></script>
vendor: 1 bytes, line 79
79
80<script defer src="https://www.gstatic.com/firebasejs/8.10.1/firebase-storage.js"></script>
vendor: 1 bytes, line 80
80
81<script defer src="https://www.gstatic.com/firebasejs/8.10.1/firebase-firestore.js"></script>
vendor: 1 bytes, line 81
81
82<script defer src="https://www.gstatic.com/firebasejs/8.10.1/firebase-auth.js"></script>
82 -->
83
84
85<script src="/assets/firebase-app.min-64b2a3c2e511dae3d94ebf515af93a09632b663eae3ed251ed302bbf86d604f9.js" defer="defer"></script>
vendor: 1 bytes, line 85
85
86<script src="/assets/firebase-storage.min-fdbc3fdf9a8bd3f2b6ca663b6b6d49e4a08c0201cd904c3ad3ebe5d8cc55f95c.js" defer="defer"></script>
vendor: 1 bytes, line 86
86
87<script src="/assets/firebase-firestore.min-2f75ac675d8a4e14be62735c3d05ffd12564967a3b01f4b0022c3c84a587a32a.js" defer="defer"></script>
vendor: 1 bytes, line 87
87
88<script src="/assets/firebase-auth.min-cba571615cc848b9a65bbee42fd292d141ade16544b116b26b7fd0e63a21661b.js" defer="defer"></script>
88
89
90
91
92<script src="/assets/file_deletion_client-e3d9eb8a57ffae17bbbe0eedc5815021542989e429d7a624cdea42041052e85f.js" defer="defer"></script>
vendor: 1 bytes, line 92
92
93<script src="/assets/hotpotFirebaseClass-2f4487a880020ad8e26667198ee76bf7d33040254e034cdadc69db3b4c611900.js" defer="defer"></script>
93
94<!-- **************************** Firebase END ********************************************  -->
95
96  <link rel="stylesheet" href="/assets/marketing_tokens-60f70232900adbd82774c7b637e32028f0374ccfc04d06449b8b8b41c6872b1b.css" />
97<link rel="stylesheet" href="/assets/landing_pages-e23e68a9d874ca0f9975b5e0e492457ab864868b059417abb4b2273c6e223084.css" />
98<link rel="stylesheet" href="/assets/terms_summary-913cef7b4c26dbcf67ed1b67fdc7d5e96eb6d45a8ea29b47388f8dc6872d590c.css" />
99<script src="/assets/landing_pages-08a1bdd6be44f61c72a5fdff8a1661deb637e43e09182026d277eb5e11c5a69c.js" defer="defer"></script>
99
100
101  <link rel="stylesheet" href="/assets/local_site_pages-61da92ae630fda7289d3f9353a8acf5e5719901f5923088fcc3459191907e16b.css" />
102<link rel="stylesheet" href="/assets/local_content_pages-bbe3128d000515b45bd6d6703cea12baf3eec4323fb730e37149a99f8f7d5a44.css" />
103<link rel="stylesheet" href="/assets/local_contact-49927ac14e3f431cc740e60017c43516b0f8a56cccadf6c9a896526664c7a08d.css" />
104<link rel="stylesheet" href="/assets/local_redesign-1e4de7ccb6a287983689928e332d05e22df0470f7b0b5750c5bf7bef69f47907.css" />
105  
105<script src="/assets/local_redesign-3bd0575e8d8ecd461e8e953f3a177c75751c2efcd26915b2a35ec5f84109a91a.js" defer="defer"></script>
105
106</head><body class="marketing local-redesign local-auth">
107  <a class="skip" href="#main">Skip to content</a>
108  <header class="site-header">
109  <div class="wrap header-inner">
110      <a class="brand" href="/" aria-label="Hotpot home"><img src="/images/logos/brandmark_purple.svg?v=20260922-filled" height="32" alt=""><span class="wordmark" aria-hidden="true"></span></a>
111
112    <div class="desktop-nav-slot">
113      <nav class="product-nav" aria-label="Main navigation">
114        <ul class="nav-groups">
115            <li class="nav-group" data-nav-group="images">
116              <button type="button" class="nav-trigger" id="nav-trigger-images" aria-expanded="false" aria-controls="nav-panel-images">
117                <span>AI Image</span><span class="nav-chevron"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="m7 9 5 5 5-5"/></svg></span>
118              </button>
119              <div class="nav-panel" id="nav-panel-images" hidden>
120                <p class="nav-description">Spark imagination with AI</p>
121                <ul class="nav-links">
122                    <li><a href="/art-generator"><span>Image Generator</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
123                    <li><a href="/ai-character-generator"><span>AI Characters</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
124                    <li><a href="/logo-generator"><span>AI Logos</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
125                    <li><a href="/anime-generator"><span>AI Anime</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
126                </ul>
127              </div>
128</li>            <li class="nav-group" data-nav-group="headshots">
129              <button type="button" class="nav-trigger" id="nav-trigger-headshots" aria-expanded="false" aria-controls="nav-panel-headshots">
130                <span>AI Headshot</span><span class="nav-chevron"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="m7 9 5 5 5-5"/></svg></span>
131              </button>
132              <div class="nav-panel" id="nav-panel-headshots" hidden>
133                <p class="nav-description">Reimagine yourself with AI</p>
134                <ul class="nav-links">
135                    <li><a href="/headshots/create"><span>General Headshot</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
136                    <li><a href="/headshots/create"><span>Corporate Headshot</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
137                    <li><a href="/headshots/create"><span>Lunar New Year Headshot</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
138                    <li><a href="/headshots/create"><span>Avatar</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
139                    <li><a href="/headshots/create"><span>Cosplay Headshot</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
140                    <li><a href="/headshots/create"><span>Real Estate Headshot</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
141                    <li><a href="/headshots/create"><span>Medical Headshot</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
142                    <li><a href="/headshots/create"><span>Xmas Headshot</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
143                </ul>
144              </div>
145</li>            <li class="nav-group" data-nav-group="editing">
146              <button type="button" class="nav-trigger" id="nav-trigger-editing" aria-expanded="false" aria-controls="nav-panel-editing">
147                <span>AI Editing</span><span class="nav-chevron"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="m7 9 5 5 5-5"/></svg></span>
148              </button>
149              <div class="nav-panel" id="nav-panel-editing" hidden>
150                <p class="nav-description">Transform photos with AI</p>
151                <ul class="nav-links">
152                    <li><a href="/ai-editor"><span>AI Editor</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
153                    <li><a href="/upscale-photo"><span>Photo Upscaler</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
154                    <li><a href="/colorize-picture"><span>Photo Colorizer</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
155                    <li><a href="/restore-picture"><span>Photo Restorer</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
156                    <li><a href="/remove-background"><span>
156Background Remover</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
157                </ul>
158              </div>
159</li>            <li class="nav-group" data-nav-group="game" hidden="hidden">
160              <button type="button" class="nav-trigger" id="nav-trigger-game" aria-expanded="false" aria-controls="nav-panel-game">
161                <span>AI Game</span><span class="nav-chevron"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="m7 9 5 5 5-5"/></svg></span>
162              </button>
163              <div class="nav-panel" id="nav-panel-game" hidden>
164                <p class="nav-description">Create game content with AI</p>
165                <ul class="nav-links">
166                    <li><a href="/game-tools"><span>AI Game Tools</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
167                    <li><a href="/ai-character-generator"><span>AI Game Characters</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
168                    <li><a href="/background-generator"><span>
168AI Game Background</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
169                    <li><a href="/sparkwriter"><span>AI Game Copywriter</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
170                    <li><a href="/logo-generator"><span>AI Game Logo</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
171                    <li><a href="/dnd-generator"><span>AI DnD Generator</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
172                </ul>
173              </div>
174</li>            <li class="nav-group" data-nav-group="writing" hidden="hidden">
175              <button type="button" class="nav-trigger" id="nav-trigger-writing" aria-expanded="false" aria-controls="nav-panel-writing">
176                <span>AI Writing</span><span class="nav-chevron"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="m7 9 5 5 5-5"/></svg></span>
177              </button>
178              <div class="nav-panel" id="nav-panel-writing" hidden>
179                <p class="nav-description">Elevate writing with AI</p>
180                <ul class="nav-links">
181                    <li><a href="/sparkwriter"><span>Content Brainstorming</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
182                    <li><a href="/sparkwriter"><span>Art &amp; NFT Idea</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
183                    <li><a href="/sparkwriter"><span>Copywriting</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
184                    <li><a href="/sparkwriter"><span>Song Writing</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
185                    <li><a href="/sparkwriter"><span>Book Writing</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
186                    <li><a href="/sparkwriter"><span>Professional Writing</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
187                    <li><a href="/sparkwriter"><span>Product Writing</span><span class="nav-arrow" aria-hidden="true">→</span></a></li>
188                </ul>
189              </div>
190</li>        </ul>
191      </nav>
192    </div>
193    <a class="nav-icon-button desktop-account" href="/account" aria-label="Account" title="Account"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><circle cx="12" cy="8" r="3.5"/><path d="M5 21v-2a7 7 0 0 1 14 0v2"/></svg></a>
194    <button type="button" class="nav-icon-button menu-toggle" aria-label="Open menu" aria-expanded="false" aria-controls="mobile-menu"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M3 6h18M3 12h18M3 18h18"/></svg></button>
195  </div>
196  <dialog class="mobile-menu" id="mobile-menu" aria-label="Site navigation">
197    <div class="mobile-menu-header">
198        <a class="brand" href="/" aria-label="Hotpot home"><img src="/images/logos/brandmark_purple.svg?v=20260922-filled" height="32" alt=""><span class="wordmark" aria-hidden="true"></span></a>
199
200      <button type="button" class="nav-icon-button menu-close" aria-label="Close menu"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="m3 3 18 18M3 21 21 3"/></svg></button>
201    </div>
202    <div class="mobile-utilities">
203      <a class="nav-icon-button" href="/" aria-label="Home" title="Home"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="m3 10 9-7 9 7M5 9v12h5v-7h4v7h5V9"/></svg></a>
204      <a class="nav-icon-button" href="/account" aria-label="Account" title="Account"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><circle cx="12" cy="8" r="3.5"/><path d="M5 21v-2a7 7 0 0 1 14 0v2"/></svg></a>
205      <a class="nav-icon-button" href="/contact" target="_blank" rel="noopener" aria-label="Support (opens in a new tab)" title="Support (opens in a new tab)"><svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="1.65" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="9"/><path d="M9.5 9c0-3.3 5.2-3.3 5.2-.1 0 2-2.7 1.9-2.7 4.1M12 17h.01"/></svg>
206</a>
207    </div>
208    <div class="mobile-menu-body"><div class="mobile-nav-slot"></div></div>
209  </dialog>
210</header>
211
212  
213<main id="main" class="contact-layout" tabindex="-1"><section class="contact-panel"><div class="contact-inner" id="pageBox">
214<h1>Log in</h1>
215<a class="auth-alternate" href="/signup">Or create account</a>
216<div id="preAuthBox"><div class="formBox">
217<label for="account-email">Email address</label><input id="account-email" type="email" class="email" required autocomplete="email">
218<label for="account-password">Password</label><div class="password-field"><input id="account-password" type="password" class="password" required autocomplete="current-password"><button type="button" class="password-toggle" aria-label="Show password" aria-pressed="false">Show</button></div>
219<div class="passwordReset"><button type="button" class="button link text-button">Reset password</button></div>
220<div id="messageBox" role="alert" style="display:none"></div>
221<button type="button" id="submitButton" class="primary">Log In</button>
222</div></div></div></section><aside class="picture-panel" aria-labelledby="picture-title">
223    <div class="picture-inner">
224      <h2 id="picture-title">Spark imagination</h2>
225      <div class="picture-mosaic">
226        <img class="mosaic-a" src="/images/site/ai/image_generator/art_maker/style_catalog/watercolor_1.jpg" alt="Watercolor city in warm pinks and greens">
227        <img src="/images/site/ai/image_generator/art_maker/style_catalog/japanese_art.jpg" alt="Japanese-style dragon above ocean waves">
228        <img src="/images/site/ai/image_generator/art_maker/style_catalog/oil_painting_1.jpg" alt="Oil painting of an elderly man beside flowers">
229      </div>
230    </div>
231  </aside>
232</main>
233<script>
234
235// ================================================================================
236// Global Vars
237// ================================================================================
238// Data variables
239let LogCategoryName = 'Login';
240let Db = null;
241
242// View variables
243let MessageBox = null;
244
245
246// ================================================================================
247// Init Functions
248// ================================================================================
249function initPreAuthBox() {
250	// Handle clicks on submit button.
251	$('#submitButton').on('click', function() {
252		didClickSubmitButton();
253	});
254
255	// Handle password resets.
256	$('.passwordReset .button').on('click', function() {
257		didClickPasswordResetButton();
258	});
259
260
261	// Pre-fill email input?
262	let email = getURLParameter('email');
263	if (email) {
264		$('.formBox .email').val(email);
265	}
266}
267
268
269async function didClickPasswordResetButton() {
270	const email = getEmail();
271	let text = `<p>Please check ${email}, both spam and inbox.</p> <p>Important: if you get multiple reset emails, only use the latest one. Earlier ones will not work.</p>`;
272	let title = 'Check your email';
273
274	if (isValidEmail(email)) {
275		const result = await Db.resetUserPassword(email);
276		if (result.statusCode !== 200) {
277			title = 'Reset error';
278			text = `<p>${result.statusText}</p>`;
279		}
280	} else {
281		title = 'Invalid email';
282		text = `<p>Please check your email and try again.</p>`;
283	}
284
285	window.localResetFeedback(title, text);
286}
287
288
289async function didClickSubmitButton() {
290	// Get form values.
291	let email = getEmail();
292	let password = getPassword();
293
294
295	// Exit early if @email is invalid.
296	if (!isValidEmail(email)) {
297    showPageMessage('Please enter a valid email address');
298    return;
299	}
300
301	// Login user?
302	let loginResult = await Db.loginUser(email, password);
303
304	if (loginResult.statusCode === 200) {
305		loginDidSucceed();
306	} else {
307		showPageMessage(loginResult.statusText);
308	}
309}
310
311
312function loginDidSucceed() {
313	window.location = '/account';
314}
315
316
317function showPageMessage(message) {
318	MessageBox.text(message);
319	MessageBox.show();
320}
321
322
323function hidePageMessage() {
324	MessageBox.hide();
325}
326
327
328function getEmail() {
329	return $('.formBox .email').val();
330}
331
332
333function getPassword() {
334	return $('.formBox .password').val();
335}
336
337
338function initKeyboardEvents() {
339   $(document).keydown(function(event) {
340      didKeyboardEvent(event);
341   });
342}
343
344
345function didKeyboardEvent(event) {
346   // Return pressed? Submit form.
347   if (event.keyCode === 13 && !event.target.closest("button")) {
348    didClickSubmitButton();
349   }
350}
351
352
353function initFirebase() {
354	Db = new HotpotFirebaseClass();
355}
356
357
358function initGlobals() {
359	MessageBox = $('#messageBox');
360}
361
362
363function initPage() {
364	initGlobals();
365
366	initFirebase();
367
368	initPreAuthBox();
369
370	initKeyboardEvents();
371
372	// Prefill email field?
373	const email = getUrlParameter('email');
374	if (email) {
375		document.querySelector("input[type=email]").value = email;
376	}
377
378	const success = getUrlParameter("success");
379	if (success) {
380		MessageClass.showMessage("Payment success. Please register/login to finalize the purchase.");
381	}
382
383	if (email && success) {
384		document.querySelector("input[type=email]").disabled = true;
385	}
386
387	debug(LogCategoryName + ' ready');
388}
389
390
391$(document).ready(function() {
392	initPage();
393});
394
395
396</script>
396
397
398
399  <footer class="site-footer"><div class="wrap">
400  <div class="footer-brandline">
401    <a class="brand" href="/" aria-label="Hotpot home"><img src="/images/logos/brandmark_paper.svg" height="32" alt=""><span class="wordmark" aria-hidden="true"></span></a>
402    <p>Imagine freely</p>
403  </div>
404  <nav class="footer-columns" aria-label="Footer">
405      <div><h3>AI Images</h3><a href="/art-generator">Image Generator</a><a href="/ai-character-generator">AI Characters</a><a href="/logo-generator">AI Logos</a><a href="/anime-generator">AI Anime</a></div>
406      <div><h3>AI Headshots</h3><a href="/headshots/create">General Headshot</a><a href="/headshots/create">Corporate Headshot</a><a href="/headshots/create">Lunar New Year Headshot</a><a href="/headshots/create">Avatar</a><a href="/headshots/create">Cosplay Headshot</a><a href="/headshots/create">Real Estate Headshot</a><a href="/headshots/create">Medical Headshot</a><a href="/headshots/create">Xmas Headshot</a></div>
407      <div><h3>AI Editing</h3><a href="/ai-editor">AI Editor</a><a href="/upscale-photo">Photo Upscaler</a><a href="/colorize-picture">Photo Colorizer</a><a href="/restore-picture">Photo Restorer</a><a href="/remove-background">Background Remover</a></div>
408      <div><h3>More Hotpot</h3><a href="/help">Help</a><a href="/about">About</a><a href="/blog/ai-thoughts">AI Misinformation</a><a href="https://x.com/panabee/status/2096357777434374638">Curing Cancer</a></div>
409  </nav>
410  <div class="footer-legal">
411    <span>© 2026 Panabee, LLC. All rights reserved.</span>
412    <div><a href="/terms">Terms</a><a href="/privacy">Privacy</a><a href="/credits">Credits</a></div>
413  </div>
414</div></footer>
415
416<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a4409cf3fd331477',t:'MTc5MDkxMTY2NQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
416</body></html>

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.