PageSourceSearch

https://coolheaders.bubbleapps.io/

html coolheaders.bubbleapps.io collected 2026-10-03 08:22:16 UTC 24,281 bytes, 665 lines download raw bytes

1<!doctype html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5
6<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
7
8<title>Cool Headers and Footers Block | RapidDev</title>
9<script type="text/javascript">
10    window.bubble_session_uid = '1791015735613x360381234741320500';
11</script>
vendor: 1 bytes, line 11
11
12<script type="text/javascript">
13    window.headers_source_maps = [["plugin_main_headers_1618916043803x877032991371296800",219,444],["plugin_main_headers_1747215160971x266397951550554100",445,450],["plugin_page_headers_AAI",451,453],["custom_app_header",455,511]]
14</script>
vendor: 1 bytes, line 14
14
15<script type="text/javascript">
16function make_proxy(target, name) {
17  return new Proxy(target, {
18    get: function(target, prop) {
19      if (prop in target) {
20        return target[prop];
21      }
22      throw new Error('The variable ' + name + ' is not fully initialized yet');
23    }
24  });
25}
26window.appquery = make_proxy({
27  app_version: function() { return "live"; },
28  last_change: function() { return "35119357610";},
29}, 'appquery');
30window.Lib = new Proxy(function() {}, {
31  get: function(target, prop) {
32    if (prop === 'is_skeleton') {
33      return true;
34    }
35    throw new Error('The variable ' + Lib + ' is not fully initialized yet');
36  },
37  apply: function() {
38    return make_proxy({
39      current_user: function() {
40        return make_proxy({ id: "1791015735613x360381234741320500" }, 'Lib().current_user');
41      }
42    }, 'Lib()');
43  }
44});
45</script>
vendor: 1 bytes, line 45
45
46<script type="text/javascript">
47function load_error_function (event) {
48  return window.load_error_log.push({ msg: event.message, error_url: event.filename, line: event.lineno, col: event.colno })
49}
50window.load_error_log = [];
51window.addEventListener('error', load_error_function);
52window.disableLoadErrorFunction = function () {
53  window.removeEventListener('error', load_error_function);
54}
55</script>
55
56<meta name="referrer" content="origin">
57<script type="text/javascript">
58if (!window._bubble_page_load_data) {
59  window._bubble_page_load_data = {}
60}
61if (!window._bubble_page_load_data.js_execution_timings) {
62  window._bubble_page_load_data.js_execution_timings = {}
63}
64window._bubble_page_load_data.js_execution_timings['pre_early_js'] = Date.now();
65</script>
65<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/early_js/05ae9fe83d6b755291132aab9d325d70918aafd336da1bd91a41a31c8b25734b/early.js"></script>
65<script type="text/javascript">
66if (!window._bubble_page_load_data) {
67  window._bubble_page_load_data = {}
68}
69if (!window._bubble_page_load_data.js_execution_timings) {
70  window._bubble_page_load_data.js_execution_timings = {}
71}
72window._bubble_page_load_data.js_execution_timings['post_early_js'] = Date.now();
73</script>
vendor: 1 bytes, line 73
73
74<script type="text/javascript">(function () {
75    function onWebFontFinish () {
76        window.google_web_fonts_active = true;
77if (window.google_web_fonts_active_cb) {
78    window.google_web_fonts_active_cb();
79}
80        (function fontface_loaded_snippet (font) {
81  if (window.fontface_loaded == null) {
82    window.fontface_loaded = {}
83  }
84  if (font != null) {
85    window.fontface_loaded[font] = true
86  } else {
87    window.all_fontface_loaded = true
88  }
89  if (window.fontface_webfonts_loaded_cb) {
90    return window.fontface_webfonts_loaded_cb(font)
91  }
92})()
93    }
94    const WebFontConfig = {'google': { families: ["Inter:700","Lato:regular","Lato:400","Lato:700","Montserrat:regular","Montserrat:500","Poppins:500","Roboto:300","Roboto:regular","Roboto:500","Roboto:italic","Roboto:regular","Source Sans 3:700"] },
95        active: function() {
96            onWebFontFinish()
97        },
98        inactive: function() {
99            console.log('Failed to load all the fonts');
100            onWebFontFinish()
101        },
102        fontinactive: function(family_name, fvd) {
103            console.log('fontinactive being called for ' + family_name + ', Google says the fonts didnt render');
104            onWebFontFinish()
105        }
106    }
107        window.WebFont.load(WebFontConfig);
108})();</script>
vendor: 1 bytes, line 108
108
109<script>
110(function initialize_data() {
111const xhr = new XMLHttpRequest();
112xhr.onreadystatechange = function() {
113    if (this.readyState === 4 && this.status === 200) {
114        const data = JSON.parse(this.responseText);
115
116        function init_data() {
117            data.forEach(function(d) {
118                Lib().db_instance().initialize_data(d.id, d.data, d.type, d.version);
119            })
120        }
121
122        if (window.Lib && window.Lib.is_skeleton == null) {
123            init_data();
124        } else {
125            window.Lib_post_load = init_data;
126        }
127    }
128};
129xhr.open("GET", "https://coolheaders.bubbleapps.io/api/1.1/init/data?location=" + encodeURIComponent(window.location.href), true);
130xhr.send();
131})();
132</script>
vendor: 1 bytes, line 132
132
133<script type="text/javascript">window.gm_key = "AIzaSyAlT1MzDJL1hTzjgn_-PbAD3NQEIKjcJi4";</script>
vendor: 1 bytes, line 133
133
134<script type="text/javascript">window.glrl_key_status = false;</script>
vendor: 1 bytes, line 134
134
135<script type="text/javascript">window.bubble_page_load_id = "1791015735644x492";</script>
vendor: 1 bytes, line 135
135
136<script type="text/javascript">window.bubble_plp_token = "1791015735702.BgTLpYqmXooAC2HHdpC6dChk2K8CmOL7ogMAwalAJhQ=";</script>
vendor: 1 bytes, line 136
136
137<script type="text/javascript">window.bubble_is_leanjs = false;</script>
vendor: 1 bytes, line 137
137
138<script type="text/javascript">window.bubble_shim_modules = false;</script>
138
139<link rel="icon" type="image/png" href="https://860c1db12ec443a9ab7e16207c362326.cdn.bubble.io/f1530294839424x143528842134401200/Icon-no-clearspace.png" />
140<meta name="fragment" content="!">
141<meta name="description" content="Bubble introduces a new way to build a web application. It’s a point-and-click programming tool. Bubble hosts all applications on its cloud platform.">
142<meta name="description" content="Bubble introduces a new way to build a web application. It’s a point-and-click programming tool. Bubble hosts all applications on its cloud platform.">
143<meta name="twitter:card" content="summary_large_image" />
144<meta property="og:title" content="Check out my Bubble app" />
145<meta name="twitter:title" content="Check out my Bubble app" />
146<meta property="og:site_name" content="Bubble" />
147<meta name="twitter:site_name" content="Bubble" />
148<meta property="og:description" content="Bubble is the only platform that lets you switch between AI prompting and visual editing to go beyond prototypes and launch real apps — no code required. " />
149<meta name="twitter:description" content="Bubble is the only platform that lets you switch between AI prompting and visual editing to go beyond prototypes and launch real apps — no code required. " />
150<link rel="image_src" href="https://860c1db12ec443a9ab7e16207c362326.cdn.bubble.io/f1762463484754x595287411041153000/Bubbleio%20opengraph.png" />
151<meta property="og:image" content="https://860c1db12ec443a9ab7e16207c362326.cdn.bubble.io/f1762463484754x595287411041153000/Bubbleio%20opengraph.png" />
152<meta name="twitter:image:src" content="https://860c1db12ec443a9ab7e16207c362326.cdn.bubble.io/f1762463484754x595287411041153000/Bubbleio%20opengraph.png" />
153<meta property="og:url" content="https://coolheaders.bubbleapps.io/" />
154<meta property="og:type" content="website" />
155<meta property="fb:app_id" content="340887986039814" />
156<meta name="twitter:card" content="summary_large_image" />
157<meta name="apple-mobile-web-app-capable" content="yes">
158<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
159<meta name="viewport" content="width=device-width,initial-scale=1.0, user-scalable=no, minimal-ui">
160<script type="text/javascript">window._p = '{"id":"template_app","no_branding":false,"import_export_csv":false,"custom_domain":false}';</script>
vendor: 1 bytes, line 160
160
161<script type="text/javascript">window.bubble_page_name = "index";</script>
vendor: 1 bytes, line 161
161
162<script type="text/javascript">window.__bubble_module_mode = false;</script>
162
163<link type="text/css" href="/package/run_css/ff2cf2649f4e06b4f729e6680b22d09afef7fb26a8ef3f017ddcb8b55023bf59/coolheaders/live/index/xfalse/xfalse/run.css" rel="stylesheet">
164<script type="text/javascript">
165if (!window._bubble_page_load_data) {
166  window._bubble_page_load_data = {}
167}
168if (!window._bubble_page_load_data.js_execution_timings) {
169  window._bubble_page_load_data.js_execution_timings = {}
170}
171window._bubble_page_load_data.js_execution_timings['pre_run_js'] = Date.now();
172</script>
vendor: 1 bytes, line 172
172
173<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/pre_run_jquery_js/dee903a9e36db713e4c86d0cdd96d921e37be0c1293ed8dee29e2e4d7713b9ff/pre_run_jquery.js"></script>
vendor: 1 bytes, line 173
173
174<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/run_js/7071f7b382ccc6d041103d870a4570d077555f03000bb5d6d4422cbe7bed9355/xfalse/x12/run.js"></script>
vendor: 1 bytes, line 174
174
175<script type="text/javascript">
176if (!window._bubble_page_load_data) {
177  window._bubble_page_load_data = {}
178}
179if (!window._bubble_page_load_data.js_execution_timings) {
180  window._bubble_page_load_data.js_execution_timings = {}
181}
182window._bubble_page_load_data.js_execution_timings['post_run_js'] = Date.now();
183</script>
vendor: 1 bytes, line 183
183
184<script type="text/javascript">
185if (!window._bubble_page_load_data) {
186  window._bubble_page_load_data = {}
187}
188if (!window._bubble_page_load_data.js_execution_timings) {
189  window._bubble_page_load_data.js_execution_timings = {}
190}
191window._bubble_page_load_data.js_execution_timings['pre_static_js'] = Date.now();
192</script>
192<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/static_js/474f5375461139971fb30aeae83fc702c03c1ce28f4d02178b42b5d709c14d1f/coolheaders/live/index/xnull/xfalse/xfalse/xfalse/static.js"></script>
192<script type="text/javascript">
193if (!window._bubble_page_load_data) {
194  window._bubble_page_load_data = {}
195}
196if (!window._bubble_page_load_data.js_execution_timings) {
197  window._bubble_page_load_data.js_execution_timings = {}
198}
199window._bubble_page_load_data.js_execution_timings['post_static_js'] = Date.now();
200</script>
vendor: 1 bytes, line 200
200
201<script type="text/javascript">
202if (!window._bubble_page_load_data) {
203  window._bubble_page_load_data = {}
204}
205if (!window._bubble_page_load_data.js_execution_timings) {
206  window._bubble_page_load_data.js_execution_timings = {}
207}
208window._bubble_page_load_data.js_execution_timings['pre_dynamic_js'] = Date.now();
209</script>
209<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/dynamic_js/258fe7919d3d148f3ab6d48de9167626b9f4ca86073ef2d119161325ef09e0a9/coolheaders/live/index/xnull/xfalse/xfalse/en_us/xfalse/xfalse/dynamic.js"></script>
209<script type="text/javascript">
210if (!window._bubble_page_load_data) {
211  window._bubble_page_load_data = {}
212}
213if (!window._bubble_page_load_data.js_execution_timings) {
214  window._bubble_page_load_data.js_execution_timings = {}
215}
216window._bubble_page_load_data.js_execution_timings['post_dynamic_js'] = Date.now();
217</script>
vendor: 1 bytes, line 217
217
218<script type="text/javascript">window._bubble_page_load_data.js_execution_timings.plugin_js_start_execution = Date.now();</script>
218
219<!-- 1618916043803x877032991371296800 -->
220<script defer src="//meta.cdn.bubble.io/f1678588430465x230578802325048350/icons.js"></script>
220
221
222<script>
223  const allSelect = /\[(hi.*)\](.*)\[\/(hi.*)\]/;
224  const colormatch = /#[0-9A-f]{3,6}#/;
225  const fillMatcher = /fill="currentColor"/;
226  
227  function replaceIcon(btn) {
228    const btn_nodes = Array.from(btn.childNodes);
229
230    if (!btn_nodes) return;
231
232    const text_node = btn_nodes.find((node) => node.nodeName === "#text");
233
234    if (!text_node) return;
235
236    let content = text_node.data;
237    let iconColor = content.match(colormatch);
238    content = content.replace(colormatch, "");
239
240    const iconMarkup = content.match(allSelect);
241
242    if (!iconMarkup) {
243      if (btn.getAttribute("data-heroicon-last-text")) {
244        const current_text = Array.from(btn.childNodes).find((node) => node.nodeName === "#text");
245        if (current_text && (current_text.data !== btn.getAttribute("data-heroicon-last-text"))) {
246          btn.setAttribute("data-heroicon-last-text", current_text.data);
247          btn.childNodes.forEach((node) => {
248            if (node.nodeName !== "#text") {
249              node.remove();
250            }
251          });
252        }
253      }
254      return;
255    }
256
257    if (iconMarkup[1] != iconMarkup[3]) return;
258
259    const iconProps = iconMarkup[1].slice(2).split("-");
260
261    const props = {
262      name: iconMarkup[2],
263      size: '20px',
264      color: btn.innerHTML.match(colormatch) ? btn.innerHTML.match(colormatch)[0].slice(0, -1) : undefined,
265      set: "mini",
266      position: undefined,
267      iconHTML: undefined,
268      style: 'style="',
269      spacing: '8px',
270      stroke_width: '1.5px',
271    };
272
273    if (props.color) {
274      props.iconHTML = props.iconHTML.replace(fillMatcher, "fill=" + iconColor);
275    }
276
277    iconProps.forEach((property) => {
278      switch (property) {
279        case "l":
280          props.position = "left";
281          break;
282        case "r":
283          props.position = "right";
284          break;
285        case "b":
286          props.position = "center";
287          break;
288        case "o":
289          props.set = "outlined";
290          break;
291        case "s":
292          props.set = "solid";
293          break;
294      }
295      if (/m[0-99]+/.test(property)) {
296        const matched = property.match(/m([0-99]+)/);
297        props.spacing = `${matched[1]}px`;
298      }
299      if (/w[0-99]+/.test(property)) {
300        const matched = property.match(/w([0-99]+)/);
301        props.stroke_width = `${matched[1]}px`;
302      }
303
304      const number = Number(property);
305
306      if (number && number > 0) {
307        props.size = String(number) + "px";
308      }
309    });
310
311    if (window[`heroicons_${props.set}`].has(props.name)) {
312      props.iconHTML = window[`heroicons_${props.set}`].get(props.name);
313    } else {
314      console.log("Did not find applicable heroicon!");
315      return;
316    }
317
318    btn.classList.add("heroicon");
319
320    props.style += ` ${props.set == 'outlined' ? ` stroke-width: ${props.stroke_width};` : ''} height: ${props.size}; width: ${props.size}; `;
321
322    let insertBefore = props.iconHTML.lastIndexOf("viewBox");
323
324    btn.childNodes.forEach((node) => {
325      if (node.nodeName === "#text") {
326        node.data = node.data.replace(allSelect, "");
327        btn.setAttribute("data-heroicon-last-text", node.data);
328      }
329    });
330
331    btn.childNodes.forEach((node) => {
332      if (node.nodeName !== "#text") {
333        node.remove();
334      }
335    });
336
337    if (props.position == "left") {
338      let styledHTML =
339        props.iconHTML.substring(0, insertBefore) +
340        props.style +
341        `margin-right:${props.spacing}"` +
342        props.iconHTML.substring(insertBefore);
343      btn.insertAdjacentHTML("afterbegin", styledHTML);
344    } else if (props.position == "right") {
345      let styledHTML =
346        props.iconHTML.substring(0, insertBefore) +
347        props.style +
348        `margin-left:${props.spacing}"` +
349        props.iconHTML.substring(insertBefore);
350      btn.insertAdjacentHTML("beforeend", styledHTML);
351    } else {
352      let styledHTML =
353        props.iconHTML.substring(0, insertBefore) + props.style + `"` + props.iconHTML.substring(insertBefore);
354      btn.insertAdjacentHTML("beforeend", styledHTML);
355    }
356  }
357
358  document.addEventListener("DOMContentLoaded", function () {
359    
360
361    let config = {
362      subtree: true,
363      childList: true,
364      attributes: true,
365      characterData: true,
366    };
367
368    let callback = function (mutationsList, observer) {
369      for (let mutation of mutationsList) {
370        if (mutation.target.tagName === "BUTTON") {
371          replaceIcon(mutation.target);
372        } else if (mutation.addedNodes) {
373          mutation.addedNodes.forEach((node) => {
374            if (node.tagName == "BUTTON") {
375              replaceIcon(node);
376            }
377          });
378        } else if (
379          mutation.target.nodeName === "#text" &&
380          mutation.target.parentElement &&
381          mutation.target.parentElement.tagName === "BUTTON"
382        ) {
383          replaceIcon(mutation.target.parentElement);          
384        }
385        Array.from(document.querySelectorAll("button")).forEach(btn => replaceIcon(btn));
386      }
387    };
388
389    const observer = new MutationObserver(callback);
390    observer.observe(document, config);
391  });
392</script>
392
393
394<style>
395  .animate-spin>circle {
396    color: inherit;
397    opacity: 25%
398  }
399
400  .animate-spin {
401    animation: 1s linear infinite spin
402  }
403
404  @keyframes spin {
405    from {
406      transform: rotate(0)
407    }
408
409    to {
410      transform: rotate(360deg)
411    }
412  }
413
414  .heroicon {
415    display: inline-flex;
416    vertical-align: middle;
417    justify-content: center;
418    align-items: center;
419  }
420
421  .dots_one {
422    stroke: currentColor;
423    fill: currentColor;
424    animation: dots 0.8s linear infinite;
425    animation-delay: -0.8s;
426    margin-right: 1px;
427  }
428
429  .dots_two {
430    animation-delay: -0.65s;
431  }
432
433  .dots_three {
434    animation-delay: -0.5s;
435  }
436
437  @keyframes dots {
438
439    93.75%,
440    100% {
441      opacity: 0.2;
442    }
443  }
444</style>
445<!-- 1747215160971x266397951550554100 -->
446<script type="module">
447	import vapiAiweb from 'https://cdn.jsdelivr.net/npm/@vapi-ai/web@latest/+esm'
448    
449    window.RapidVapiAI = vapiAiweb.default
450</script>
450
451<!-- AAI -->
452<style>.outline {  transition: stroke var(--transition-duration) var(--transition-easing); }</style>
453
454<script type="text/javascript">window._bubble_page_load_data.js_execution_timings.plugin_js_end_execution = Date.now();</script>
454
455<!-- custom app meta header -->
456<script>
457    var conf = {
458        id: "headerblock",
459        ref: document.referrer
460    };
461</script>
vendor: 1 bytes, line 461
461
462<script src="https://rdbackend.bubbleapps.io/rdbnr.js" ></script>
462
463
464<script>!function () {var reb2b = window.reb2b = window.reb2b || [];if (reb2b.invoked) return;reb2b.invoked = true;reb2b.methods = ["identify", "collect"];reb2b.factory = function (method) {return function () {var args = Array.prototype.slice.call(arguments);args.unshift(method);reb2b.push(args);return reb2b;};};for (var i = 0; i < reb2b.methods.length; i++) {var key = reb2b.methods[i];reb2b[key] = reb2b.factory(key);}reb2b.load = function (key) {var script = document.createElement("script");script.type = "text/javascript";script.async = true;script.src = "https://s3-us-west-2.amazonaws.com/b2bjsstore/b/" + key + "/1LNKLDHR3GOJ.js.gz";var first = document.getElementsByTagName("script")[0];first.parentNode.insertBefore(script, first);};reb2b.SNIPPET_VERSION = "1.0.1";reb2b.load("1LNKLDHR3GOJ");}();</script>
464
465
466<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 466-467
466
467<script async src="https://www.googletagmanager.com/gtag/js?id=
467G-LDCQJXJ7Y3
vendor: 12 bytes, line 467
467"></script>
468<script>
469  window.dataLayer = window.dataLayer || [];
470  function gtag(){dataLayer.push(arguments);}
471  gtag('js', new Date());
472
473  gtag('config', 'G-LDCQJXJ7Y3');
474</script>
474
475
476
477<!-- Meta Pixel Code -->
478<script>
vendor: 399 bytes, lines 478-487
478
479!function(f,b,e,v,n,t,s)
480{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
481n.callMethod.apply(n,arguments):n.queue.push(arguments)};
482if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
483n.queue=[];t=b.createElement(e);t.async=!0;
484t.src=v;s=b.getElementsByTagName(e)[0];
485s.parentNode.insertBefore(t,s)}(window, document,'script',
486'https://connect.facebook.net/en_US/fbevents.js');
487fbq('init', '
487897916741239286
vendor: 30 bytes, lines 487-488
487');
488fbq('track', 'PageView');
489</script>
489
490<noscript><img height="1" width="1" style="display:none"
491src="https://www.facebook.com/tr?id=897916741239286&ev=PageView&noscript=1"
492/></noscript>
493<!-- End Meta Pixel Code -->
494
495<script type="text/javascript">
496_linkedin_partner_id = "7634906";
497window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
498window._linkedin_data_partner_ids.push(_linkedin_partner_id);
499</script>
499<script type="text/javascript">
500(function(l) {
501if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])};
502window.lintrk.q=[]}
503var s = document.getElementsByTagName("script")[0];
504var b = document.createElement("script");
505b.type = "text/javascript";b.async = true;
506b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
507s.parentNode.insertBefore(b, s);})(window.lintrk);
508</script>
508
509<noscript>
510<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=7634906&fmt=gif" />
511- </noscript>
512</head>
513<body>
513<script type="text/javascript">
514window.addEventListener('DOMContentLoaded', function () {
515  if (window.appquery == null) {
516    (function() {
517    const html = `
518      <div class="error-card">
519        <div class="error-section">
520          <div class="error-title">Your browser was unable to load some necessary resources</div>
521          <div class="error-message">Contact your IT network administrator to allow access to:
522    • d3dqmih97rcqmh.cloudfront.net
523    • 860c1db12ec443a9ab7e16207c362326.cdn.bubble.io/
524    • d1muf25xaso8hp.cloudfront.net</div>
525        </div>
526      </div>
527    `
528
529    const css = document.createElement('style')
530    css.type = 'text/css'
531    css.appendChild(
532      document.createTextNode(`
533      .error-overlay {
534        width: 100%;
535        height: 100%;
536        background: rgba(0,0,0,0.30);
537        overflow: hidden;
538        display: flex;
539        justify-content: center;
540        align-items: flex-start;
541        position: fixed;
542        inset: 0;
543        z-index: 999999;
544      }
545
546      .error-card {
547        width: 500px;
548        margin: 40px;
549        background: white;
550        box-shadow: 0px 1px 2px rgba(0,0,0,0.10);
551        border-radius: 8px;
552        display: flex;
553        flex-direction: column;
554      }
555
556      .error-section {
557        padding: 40px;
558        display: flex;
559        flex-direction: column;
560        gap: 12px;
561      }
562
563      .error-title {
564        color: #1A1A1A;
565        font-size: 18px;
566        font-family: Arial, sans-serif;
567        font-weight: 600;
568        line-height: 28px;
569      }
570
571      .error-message {
572        color: #525252;
573        font-size: 14px;
574        font-family: Arial, sans-serif;
575        font-weight: 400;
576        line-height: 20px;
577        white-space: pre-wrap;
578      }
579    `)
580    )
581    document.head.appendChild(css)
582
583    const container = document.createElement('div')
584    container.className = 'error-overlay'
585    container.innerHTML = html
586    document.body.appendChild(container)
587  })()
588    httpRequest = new XMLHttpRequest();
589httpRequest.open('POST', '/user/m', true);
590httpRequest.setRequestHeader('Content-Type', 'application/json');
591httpRequest.send(JSON.stringify({measures: {page_load_error: 1, url: document.location.href, errors: window.load_error_log}}));
592  };
593});
594</script>
594<script type="text/javascript">window.addEventListener('DOMContentLoaded', function () {if (window.appquery && window.app == null) {(function() {
595    const html = `
596      <div class="error-card">
597        <div class="error-section">
598          <div class="error-title">Your browser was unable to load the application</div>
599          <div class="error-message">We&#39;ve been notified of the issue. Please try again in a few moments and make sure not to use ad-blockers.</div>
600        </div>
601      </div>
602    `
603
604    const css = document.createElement('style')
605    css.type = 'text/css'
606    css.appendChild(
607      document.createTextNode(`
608      .error-overlay {
609        width: 100%;
610        height: 100%;
611        background: rgba(0,0,0,0.30);
612        overflow: hidden;
613        display: flex;
614        justify-content: center;
615        align-items: flex-start;
616        position: fixed;
617        inset: 0;
618        z-index: 999999;
619      }
620
621      .error-card {
622        width: 500px;
623        margin: 40px;
624        background: white;
625        box-shadow: 0px 1px 2px rgba(0,0,0,0.10);
626        border-radius: 8px;
627        display: flex;
628        flex-direction: column;
629      }
630
631      .error-section {
632        padding: 40px;
633        display: flex;
634        flex-direction: column;
635        gap: 12px;
636      }
637
638      .error-title {
639        color: #1A1A1A;
640        font-size: 18px;
641        font-family: Arial, sans-serif;
642        font-weight: 600;
643        line-height: 28px;
644      }
645
646      .error-message {
647        color: #525252;
648        font-size: 14px;
649        font-family: Arial, sans-serif;
650        font-weight: 400;
651        line-height: 20px;
652        white-space: pre-wrap;
653      }
654    `)
655    )
656    document.head.appendChild(css)
657
658    const container = document.createElement('div')
659    container.className = 'error-overlay'
660    container.innerHTML = html
661    document.body.appendChild(container)
662  })()}});</script>
662
663<img style="display: none;" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
664</body>
665</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.