1<!doctype html><html lang=en-us><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=X-UA-Compatible content="IE=edge"><link rel=stylesheet href=https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css integrity="sha512-Evv84Mr4kqVGRNSgIGL/F/aIDqQb7xQ2vcrdIwxfjThSH8CSR7PBEakCr51Ck+w+/U6swU2Im1vVX0SVk9ABhg==" crossorigin=anonymous referrerpolicy=no-referrer>
1<script src=https://code.jquery.com/jquery-3.6.0.min.js integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin=anonymous></script>
1<meta name=viewport content="width=device-width,initial-scale=1">
1<script src=https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4></script>
1<link rel=preconnect href=https://fonts.bunny.net><link href="https://fonts.bunny.net/css?family=ibm-plex-sans:300,400,400i,500,500i,600,700,700i" rel=stylesheet><link rel=stylesheet href=https://cdn.jsdelivr.net/gh/highlightjs/[email protected]/build/styles/default.min.css>
1<script src=https://cdn.jsdelivr.net/gh/highlightjs/[email protected]/build/highlight.min.js></script>
1<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css integrity=sha384-Pu5+C18nP5dwykLJOhd2U4Xen7rjScHN/qusop27hdd2drI+lL5KvX7YntvT8yew crossorigin=anonymous>
1<script defer src=https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js integrity=sha384-2B8pfmZZ6JlVoScJm/5hQfNS2TI/6hPqDZInzzPc8oHpN5SgeNOf4LzREO6p5YtZ crossorigin=anonymous></script>
1<script defer src=https://cdn.jsdelivr.net/npm/[email protected]/dist/contrib/auto-render.min.js integrity=sha384-hCXGrW6PitJEwbkoStFjeJxv+fSOOQKOPbJxSfM6G5sWZjAyWhXiTIIAmQqnlLlh crossorigin=anonymous></script>
1<script defer>document.addEventListener("DOMContentLoaded",()=>{if(!window.katex?.__defineMacro){console.error("KaTeX not available");return}katex.__defineMacro("\\qty",""),katex.__defineMacro("\\abs","\\left\\lvert #1 \\right\\rvert"),katex.__defineMacro(`\\norm`,"\\left\\lVert #1 \\right\\rVert"),katex.__defineMacro("\\dv","\\frac{d #1}{d #2}"),katex.__defineMacro("\\pdv","\\frac{\\partial #1}{\\partial #2}"),katex.__defineMacro("\\ket","\\left| #1 \\right\\rangle"),katex.__defineMacro("\\bra","\\left\\langle #1 \\right|"),katex.__defineMacro("\\braket","\\left\\langle #1 \\middle| #2 \\right\\rangle"),renderMathInElement(document.body,{strict:!1})})</script>
1<script src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es6"></script>
1<title>Projects Index</title> 2<meta name=description content="Projects Index is a index that contains a list of almost all projects for which I have ever worked on. Major categories are highlighted from chapter titles. 3Research Projects 4I end up doing a lot of research these days, and so have isolated that to a different, academic homepage. 5For a list of my recent research, please head to my academic homepage. For concision they are NOT repeated here. 6Large-Scale Endeavors 7Condution 8An open-source task management app. Website."><meta name=author content="Houjun Liu"><link rel=stylesheet href=/css/all.css><link rel=stylesheet href=/css/page.css><link rel=stylesheet href=/css/typography.css><link rel=stylesheet href=/css/components.css><link rel=stylesheet href=/css/syntax.css></head><body><div class="center-clearfix p-10" style="max-width:1200px;margin:0 auto"><header class=pb-4><span class="w-full flex justify-between flex-wrap"><div style=font-weight:600;font-size:15px><a style=border:0;cursor:pointer href=/><img src=/images/Logo_Transparent.png style=width:17px;display:inline-block;margin-right:8px;transform:translateY(-2.7px)></a>Projects Index</div><span style="float:right;display:flex;align-items:center;margin-top:5px;width:100%;max-width:400px;background:#fff;border-radius:2px;border:1px solid var(--gray-2);position:relative"><i class="fa-solid fa-magnifying-glass" style=font-size:12px;color:var(--yellow-fg);margin-right:7px;margin-left:10px></i><div style=width:100%><input id=search-query-inline name=s type=text autocomplete=off placeholder="Poke around my brain" enterkeyhint=search></div><div id=search-result-inline style=display:none></div>
8<script id=search-result-template type=text/x-js-template data-template=searchresult> 9 <a href="${link}" class="search-link"> 10 <div class="search-result-item" id="search-result-item-${key}"> 11 <div class="search-result-title">${title}</div> 12 <div class="search-result-summary">${snippet}</div> 13 </div> 14 </a> 15</script>
15<script src=https://code.jquery.com/jquery-3.3.1.min.js></script>
15<script src=https://cdnjs.cloudflare.com/ajax/libs/fuse.js/3.2.0/fuse.min.js></script>
15<script src=https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/jquery.mark.min.js></script>
15<script type=module> 16 import { create, insertMultiple, search } from 'https://cdn.jsdelivr.net/npm/@orama/orama@latest/+esm'; 17 import { pluginQPS } from 'https://cdn.jsdelivr.net/npm/@orama/[email protected]/+esm'; 18 19 let template = $('script[data-template="searchresult"]').text().split(/\$\{(.+?)\}/g); 20 21 function render(props) { 22 return function(tok, i) { return (i % 2) ? props[tok] : tok; }; 23 } 24 25 const db = create({ 26 schema: { 27 title: 'string', 28 content: 'string', 29 }, 30 plugins: [ 31 pluginQPS() 32 ], 33 }); 34 $.get("https://www.jemoka.com/index.json", function(data, status){ 35 insertMultiple(db, data.map(x => 36 ({title: x.title, content: x.contents, link: x.permalink}))); 37 }); 38 $("#search-result-inline").attr("tabindex", "-1"); 39 $(document).on("click", function (e) { 40 if (!$(e.target).closest("#search-query-inline, #search-result-inline").length) { 41 $("#search-result-inline").hide(); 42 } 43 }); 44 45 46 47 48 49 50 51 $("#search-query-inline").on("focus keyup", function () { 52 let value = $(this).val(); 53 if (value.trim() == "") { 54 $("#search-result-inline").html(""); 55 $("#search-result-inline").hide(); 56 return; 57 } 58 $("#search-result-inline").show(); 59 let results = search(db, {mode: "fulltext", term: value}); 60 let contents = results.hits.map(x => template.map(render({ 61 title: x.document.title, 62 snippet: x.document.content.slice(0, 52), 63 key: x.id, 64 link: x.document.link 65 })).join('')); 66 $("#search-result-inline").html(contents.join("\n")); 67 68 }); 69 if (/iPhone|iPad|iPod/i.test(navigator.userAgent)) { 70 $('#search-query-inline').on('focus', function(){ 71 72 $(this).data('fontSize', $(this).css('font-size')).css('font-size', '16px'); 73 }).on('blur', function(){ 74 75 $(this).css('font-size', $(this).data('fontSize')); 76 }); 77 } 78 79</script>
79</span></span><div class=w-full style="padding-bottom:4px;border-bottom:1px solid var(--gray-1);margin-top:1px"></div></header><aside id=tocbox><div id=heading style=padding-left:40px;font-weight:600;font-size:11px;color:var(--gray-3)>contents</div><div id=toc></div></aside><main><article><div style=max-width:700px><p><a href=/posts/kbhprojects/>Projects Index</a> is a <a href=/posts/kbhzettlekasten_index/>index</a> that contains a list of almost all projects for which I have ever worked on. Major categories are highlighted from chapter titles.</p><h2 id=research-projects>Research Projects</h2><p>I end up doing a lot of research these days, and so have isolated that to a different, academic homepage.</p><p><strong>For a list of my recent research, please head to my <a href=/posts/kbhresearch_index/>academic homepage</a>. For concision they are NOT repeated here.</strong></p><h2 id=large-scale-endeavors>Large-Scale Endeavors</h2><h3 id=condution>Condution</h3><p>An open-source task management app. <a href=https://www.condution.com/>Website</a>.</p><p><strong><strong>Motivation</strong></strong>: I got really tired with most other to-do apps after swapping them out over and over again, until I got fed up and built one with some friends.</p><ul><li><strong><strong>Role</strong></strong>: Co-Founder, Lead Developer.</li><li><strong><strong>Technologies</strong></strong>: React, Ionic, Firebase, Typescript, Swift, PostgreSQL</li><li><strong><strong>Key facts</strong></strong>: 10,000+ users, 8-person team, <a href=https://www.almanacnews.com/print/story/2021/02/26/community-briefs>featured</a> in the Bay Area almanac, praised by Asanaâs head of developer relations for âopen-source advocacyâ</li></ul><h3 id=simon>Simon</h3><p>Augmenting the functionality of large-language-models with Elastic. <a href=https://github.com/shabang-systems/simon>Repository</a>.</p><p><strong><strong>Motivation</strong></strong>: LLMs have become more and more prominent, and frameworks like ReAct is finally mature enough to produce coherent, well reasoned responses.</p><ul><li><strong><strong>Role</strong></strong>: Author</li><li><strong><strong>Technologies</strong></strong>: Huggingface, GPT-3.5, ElasticSearch</li></ul><h3 id=cmu-batchalign--kbhbatchalign-dot-md>CMU <a href=/posts/kbhbatchalign/>batchalign</a></h3><p>A pipeline for the automated preparation of annotated CHAT transcripts from raw audio. <a href=https://github.com/talkbank/batchalign>Repository</a>.</p><p><strong><strong>Motivation</strong></strong>: my work over the summer.</p><ul><li><strong><strong>Role</strong></strong>: Author</li><li><strong><strong>Technologies</strong></strong>: Torch, Huggingface, NLTK, CLAN, computational linguistics</li><li><strong><strong>Key facts</strong></strong>: work developed with and maintained under Prof. Brian MacWhinney at CMU’s psycolinguistics department.</li></ul><h3 id=ssi-polar-rover>SSI Polar Rover</h3><p>We are sending a Rover to Antarctica! <a href=https://github.com/stanford-ssi/powertron>Controller Repository</a>, <a href=https://github.com/stanford-ssi/PX4-Autopilot>Guidance and Nav Repository</a>.</p><p><strong><strong>Motivation</strong></strong>: rovers are cool, and we can do lots of search and planning with it.</p><ul><li><strong><strong>Role</strong></strong>: Team Lead</li><li><strong><strong>Technologies</strong></strong>: PX4, Search and Planning (Classic AI), Kalman Filters, Embedded Systems, Teensy Microcontroller</li><li><strong><strong>Key facts</strong></strong>: work sponsored by Stanford research and are on track to be tested in Antarctica in Summer 2025</li></ul><h3 id=aibridge>AIBridge</h3><p>A bootcamp for non-CS students in data science. <a href=/posts/kbhaibridge_course_website/>Website</a></p><p><strong><strong>Motivation</strong></strong>:</p><ul><li><strong><strong>Role</strong></strong>: Co-Founder, Lecturer</li><li><strong><strong>Technologies</strong></strong>: Python, ScyPy, Scikit-learn, Pandas</li><li><strong><strong>Key facts</strong></strong>: worked with Prof. Xin Liu at UC Davis to develop an introductary one-week bootcamp in ML. We piloted the program this summer at Davis to an in-person group of 20 PhD students in food science sponsored by <a href=/posts/kbhaifs/>AIFS</a>.</li></ul><h2 id=full-stack-projects>Full-Stack Projects</h2><h3 id=tractotato>tractotato</h3><p>CommonLisp macroset for time tracking. <a href=https://github.com/Jemoka/tractotato>Repo</a>.</p><p><strong><strong>Motivation</strong></strong>: I wanted to learn CommonLisp macros syntax after reading the <a href=http://landoflisp.com/>Land of Lisp</a> book.</p><ul><li><strong><strong>Role</strong></strong>: author</li><li><strong><strong>Technologies</strong></strong>: CommonLisp</li></ul><h3 id=scratchathon-portal>Scratchathon Portal</h3><p>Portal to submit projects for a scratch hackathon I hosted. <a href=https://github.com/Jemoka/ScratchathonPortal>Repo</a>.</p><p><strong><strong>Motivation</strong></strong>: my friends <a href=https://www.youtube.com/channel/UC2MtlTiLxWNQAjHyFZt95Vw>McGuy</a> and <a href="https://www.youtube.com/watch?v=1Fll6uaz5Kk">fuelvin</a>, both content creators on Scratch on YouTube, put together a Scratch hackathon summer of 2020. This is the submission portal.</p><ul><li><strong><strong>Role</strong></strong>: author</li><li><strong><strong>Technologies</strong></strong>: React, Vercel, Firebase</li></ul><h3 id=syzygy>syzygy</h3><p>Library rethinking to-do list dating to be more flexible and powerful. <a href=https://github.com/jklsnt/syzygy>Repo</a>.</p><p><strong><strong>Motivation</strong></strong>: a friend and I wanted to innovate beyond the scope of Condution to see how we can abstract away a to-do list system to its bare minimum.</p><ul><li><strong><strong>Role</strong></strong>: co-founder, co-author</li><li><strong><strong>Technologies</strong></strong>: Rust</li></ul><h3 id=positron>positron</h3><p>Library for building lightweight native apps using web tech. <a href=https://github.com/jklsnt/positron>Repo</a>.</p><p><strong><strong>Motivation</strong></strong>: I wanted to re-make electron to be more lightweight using Suckless’ Surf browser concept.</p><ul><li><strong><strong>Role</strong></strong>: author</li><li><strong><strong>Technologies</strong></strong>: C++, GTK</li></ul><h3 id=modap>MODAP</h3><p>A R&D team for fireline safety during emergency fires. <a href=https://github.com/MODAP/stack>Repository</a>.</p><p><strong><strong>Motivation</strong></strong>: a friend approached me with an opportunity to help our local community, especially with the increased influx of fires.</p><ul><li><strong><strong>Role</strong></strong>: Team Lead</li><li><strong><strong>Technologies</strong></strong>: Rust, Torch, ARM, electronics (i2C, UART, messaging protocols, etc.)</li><li><strong><strong>Key facts</strong></strong>: coordinated 5 engineers in developing new technology, supported by Dr. Robert G. Gann, Deputy Director, Center of Excellence for Advanced Technology Aerial Firefighting at the state of Colorado as well as Captain Mason of CalFire</li></ul><h2 id=os-driver-development>OS/Driver Development</h2><h3 id=broadcom-wifi-bluetooth-4377-chip-linux-driver>Broadcom Wifi/Bluetooth 4377 Chip Linux Driver</h3><p>
79A driver patchset to support cutting-edge Broadcom 4377 Wifi/Bluetooth chips. <a href=https://github.com/Jemoka/linux-mbp-wifi>Repo</a>.</p><p><strong><strong>Motivation</strong></strong>: I needed to be able to use Wifi on my laptop while running Arch Linux.</p><ul><li><strong><strong>Role</strong></strong>: author</li><li><strong><strong>Technologies</strong></strong>: C, (small amounts of) Assembly</li><li><strong><strong>Key facts</strong></strong>: integrated into the <a href=https://wiki.t2linux.org/>t2linux</a> pipeline used to make WiFi possible on Linux for most MacBooks released after 2018</li></ul><h2 id=distributed-algorithms-and-parallel-computing>Distributed Algorithms and Parallel Computing</h2><h3 id=coveather>coveather</h3><p>An encrypted, anonymized system for protected health information verification. <a href=https://arxiv.org/abs/2205.02753>Preprint</a>, <a href=https://github.com/Jemoka/coveather>Repo</a>, and <a href=/posts/kbhcoveather/>internal note</a>.</p><p><strong><strong>Motivation</strong></strong>: I wanted to be able to make vaccine passports more feasible because the current COVID testing/vaccine verification scheme is really bad.</p><ul><li><strong><strong>Role</strong></strong>: author</li><li><strong><strong>Technologies</strong></strong>: Clojure, <code>core.async</code> concurrency, Monte-Carlo simulations, blockchain, PGP</li><li><strong><strong>Key facts</strong></strong>: project won first place at the California STEM Fair, and got special recognition from the Yale Science and Engineering assoc. Total award $3000.</li></ul><h3 id=multischedule>multischedule</h3><p>A multiple-asynchronous scheduling and delegation algorithm. <a href=https://github.com/Jemoka/multischedule>Repo</a>.</p><p><strong><strong>Motivation</strong></strong>: (didn’t even come close to getting there) I wanted to create a way to solve or simplify debugging loop overrun problems in robotics codebases.</p><ul><li><strong><strong>Role</strong></strong>: author</li><li><strong><strong>Technologies</strong></strong>: Clojure, <code>core.async</code> concurrency</li></ul><h3 id=rotifer>rotifer</h3><p>A work-in-progress distributed algorithm for <a href=#taproot>taproot</a>. <a href=https://github.com/jklsnt/rotifer>Repo</a>.</p><p><strong><strong>Motivation</strong></strong>: I wanted to make taproot even more distributed if possible.</p><ul><li><strong><strong>Role</strong></strong>: author</li><li><strong><strong>Technologies</strong></strong>: Clojure, XML, UDP, ICE</li></ul><h3 id=simian>simian</h3><p>Exploring OT/CRDT and collaborative text editing for taproot. <a href=https://github.com/jklsnt/simian>Repo</a>.</p><p><strong><strong>Motivation</strong></strong>: I wanted to learn about how apps like Google Docs work, and explore Operational Transformation/CRDT, in hopes of putting it into <a href=#taproot>taproot</a>.</p><ul><li><strong><strong>Role</strong></strong>: author</li><li><strong><strong>Technologies</strong></strong>: Clojure, OT, CRDT</li></ul><h3 id=aron>aron</h3><p>A distributed multi-dimensional optimization tool. <a href=https://github.com/Jemoka/aron>Repo</a>.</p><p><strong><strong>Motivation</strong></strong>: <a href=/posts/kbhnueva_courses_index/>Nueva</a>’s course scheduling was quite a mess, and I wanted to help. It is a very complex problem and this project is in the freezer at the moment.</p><ul><li><strong><strong>Role</strong></strong>: author</li><li><strong><strong>Technologies</strong></strong>: CommonLisp</li></ul><h3 id=mitte>mitte</h3><p>Easy UDP sockets. <a href=https://github.com/jklsnt/mitte>Repo</a>, <a href=https://jklsnt.github.io/mitte/mitte/>Docs</a>.</p><p><strong><strong>Motivation</strong></strong>: a friend and I wanted to explore UDP.</p><ul><li><strong><strong>Role</strong></strong>: co-author</li><li><strong><strong>Technologies</strong></strong>: Rust, UDP, ICE (connection)</li></ul><h2 id=cryptography-and-security>Cryptography and security</h2><p>See also: <a href=#coveather>coveather</a>.</p><h3 id=jrainbow>jrainbow</h3><p>An implementation of a MD5 rainbow table. <a href=https://github.com/Jemoka/rainbow>Repo</a>, <a href=https://crates.io/crates/jrainbow>Crate</a>.</p><p><strong><strong>Motivation</strong></strong>: I wanted to understand how Rainbow Tables worked.</p><ul><li><strong><strong>Role</strong></strong>: author</li><li><strong><strong>Technologies</strong></strong>: Rust, MD5</li></ul><h2 id=note-taking-systems-and-latex-improvements>Note-taking Systems and \(\LaTeX\) improvements</h2><h3 id=taproot>taproot</h3><p>A shared <a href=/posts/kbhzettlekasten/>zettlekasten</a> of notes and learning resources put together by some friends and I. there has been a few iterations. <a href=https://github.com/jklsnt/taproot3>Current Repo</a>, <a href=https://taproot3.jklsnt.com/>Current Site</a>, <a href=https://taproot2.shabang.cf/>Legacy Site</a>, <a href=https://taproot.shabang.cf/>Even More Legacy Site</a>.</p><p><strong><strong>Motivation</strong></strong>: I started writing nice \(\LaTeX\) PDFs of my homework, and some friends wanted to have access to it. Later when I mentioned it, another friend had a similar need; so we asked many people to pool our notes and work together to share.</p><ul><li><strong><strong>Role</strong></strong>: co-founder, co-lead, developer</li><li><strong><strong>Technologies</strong></strong>
79: Next.JS, XeLaTeX, GNU Make, Firn, Hugo, Emacs Org, Org-Publish, Markdown</li></ul><h3 id=blag>blag</h3><p>The <a href=/posts/kbhzettlekasten/>zettlekasten</a> you are currently in! My currently maintained personal knowledgebase. <a href=https://github.com/jemoka/blag>Repo</a>, <a href=https://www.jemoka.com/>Site</a>.</p><p><strong><strong>Motivation</strong></strong>: I wanted to experiment with more advanced note-taking techniques after developing taproot, and it ended up superseeding the note-taking abilities of taproot.</p><ul><li><strong><strong>Role</strong></strong>: author</li><li><strong><strong>Technologies</strong></strong>: Next.js, Emacs Org, Hugo</li></ul><h3 id=gdoc-dot-el>gdoc.el</h3><p>A utility to enable GNU Emacs to edit Google Doc documents based on the <code>gdrive</code> utility. <a href=https://github.com/Jemoka/gdoc.el>Repo</a>.</p><p><strong><strong>Motivation</strong></strong>: I wanted to edit Google Docs in Emacs!</p><ul><li><strong><strong>Role</strong></strong>: author</li><li><strong><strong>Technologies</strong></strong>: GNU Emacs, elisp</li></ul><h3 id=interesting>interesting</h3><p>Things that my friends and I find interesting, chucked on the web and builds itself. <a href=https://github.com/Jemoka/interesting>Repo</a>, <a href=https://interesting-blue.vercel.app/>Site</a>. No longer maintained.</p><p><strong><strong>Motivation</strong></strong>: many text channels were too clogged with stuff my friend group found interesting, so I wanted to take initiative to collect them.</p><ul><li><strong><strong>Role</strong></strong>: co-founder, author</li><li><strong><strong>Technologies</strong></strong>: Next.js, Vercel, remark, CommonMark Markdown</li></ul><h2 id=public-configurations>Public Configurations</h2><h3 id=borg>borg</h3><p>Automatically configure terminals. <a href=https://github.com/Jemoka/Borg>Repo</a>.</p><p><strong><strong>Motivation</strong></strong>: I needed a way to copy my system terminal config onto a system quickly.</p><ul><li><strong><strong>Role</strong></strong>: author</li><li><strong><strong>Technologies</strong></strong>: Bash, Zsh, OhMyZsh</li></ul><h3 id=dot-config>.config</h3><p>A group of sane configuration files. <a href=https://github.com/Jemoka/.config>Repo</a>.</p><p><strong><strong>Motivation</strong></strong>: some Redditors asked for my Config, and I thought I’d share it to benefit the community; also for personal backup.</p><ul><li><strong><strong>Role</strong></strong>: author, maintainer</li><li><strong><strong>Technologies</strong></strong>: Unix administration, Perl, Ruby, LISP</li></ul><h3 id=dot-emacs-dot-d>.emacs.d</h3><p>Simple, powerful, and semantic GNU Emacs configuration for personal use. <a href=https://github.com/Jemoka/.emacs.d>Repo</a>.</p><p><strong><strong>Motivation</strong></strong>: I wanted to track my progress in developing a working Emacs config.</p><ul><li><strong><strong>Role</strong></strong>: author, maintainer</li><li><strong><strong>Technologies</strong></strong>: GNU Emacs, elisp</li></ul></div></article></main><footer style=margin-top:20px><p id=footer style=font-size:8px;color:var(--gray-3)>© 2019-2026 Houjun Liu. Licensed CC BY-NC-SA 4.0.</p></footer></div>
79<script src=https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.32.2/tocbot.min.js></script>
79<script>tocbot.init({tocSelector:"#toc",contentSelector:".center-clearfix",headingSelector:"h1, h2, h3",hasInnerContainers:!0})</script>
79<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"d9ac223861db48609fb967b713af3b7d","r":1,"spa":2}' crossorigin="anonymous"></script>
79 80</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.