PageSourceSearch

https://wingu.se/about.html

html wingu.se collected 2026-09-29 15:08:35 UTC 22,947 bytes, 313 lines download raw bytes

1<!DOCTYPE html>
2<html>
3<head>
4<meta charset="utf-8">
5<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
6<meta name="generator" content="Observable Framework v1.13.4">
7<title>About | Yingyu Pages</title>
8<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&amp;display=swap" crossorigin>
10<link rel="preload" as="style" href="./_observablehq/theme-air,near-midnight.b050d634.css">
11<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&amp;display=swap" crossorigin>
12<link rel="stylesheet" type="text/css" href="./_observablehq/theme-air,near-midnight.b050d634.css">
13<link rel="modulepreload" href="./_observablehq/client.3724cce3.js">
14<link rel="modulepreload" href="./_observablehq/runtime.607a8173.js">
15<link rel="modulepreload" href="./_observablehq/stdlib.277aeab8.js">
16
17  <link rel="icon" href="./_file/images/favicon.d88f8e9b.ico" type="image/ico" sizes="64x64">
18  <link rel="stylesheet" type="text/css" href="./_file/style/default.f67a1631.css">
19  <link rel="alternate" type="application/json" href="https://wingu.se/feed.json" title="Yingyu Pages JSON Feed">
20  <link rel="alternate" type="application/atom+xml" href="https://wingu.se/atom.xml" title="Yingyu Pages Atom Feed">
21  <link rel="alternate" type="application/rss+xml" href="https://wingu.se/rss.xml" title="Yingyu Pages RSS Feed">
22  <link rel="alternate" type="application/json" href="https://wingu.se/feed-en.json" title="Yingyu Pages JSON Feed (English)">
23  <link rel="alternate" type="application/atom+xml" href="https://wingu.se/atom-en.xml" title="Yingyu Pages Atom Feed (English)">
24  <link rel="alternate" type="application/rss+xml" href="https://wingu.se/rss-en.xml" title="Yingyu Pages RSS Feed (English)">
25  
25<script>
26    window.translationMap = {"/2010/08/25/sudoku-poj-2676-cpp-html-javascript-css":{"en":"Me and Sudoku — Starting from POJ2676","zh":"我和数独——从POJ2676说起"},"/2010/08/27/3-141592-pi-big-number-calculation":{"en":"A Small Program for Calculating Pi_Arbitrary-Precision Algorithm Practice","zh":"计算圆周率的小程序_高精度算法练习"},"/2010/08/28/internet-sharing-1-access":{"en":"Things About Network Sharing (1) — Shared Internet Access","zh":"网络共享那些事(一)——共享上网"},"/2010/09/11/number-of-stack-pop-catalan_number":{"en":"Stack Pop Count Problem (Catalan Numbers)","zh":"出栈数量问题(卡塔兰数)"},"/2010/12/01/the-maximum-bipartite-matching-problem-poj-1422":{"en":"Maximum Bipartite Matching Template","zh":"二分图最大匹配模板"},"/2011/10/20/cmd-help-generator":{"en":"Generating Help for CMD Commands","zh":"CMD命令帮助生成"},"/2011/11/21/data-you-send-in-http-request":{"en":"From a Developer's Perspective, What Do You Submit When You Open a Web Page","zh":"从开发者的角度,当你打开网页的时候,你提交了什么"},"/2012/02/09/thoughts":{"en":"Some Thoughts","zh":"小感触"},"/2012/03/08/shortest-path":{"en":"Shortest Path Topic","zh":"最短路专题"},"/2012/05/19/Bipartite-graph":{"en":"Bipartite Graph Topic","zh":"二分图专题"},"/2012/06/22/genetic-algorithm":{"en":"A Small Experiment with Genetic Algorithms","zh":"小试遗传算法"},"/2012/08/29/possibilities":{"en":"Obtaining a Uniform Probability Distribution from a Non-uniform Probability Distribution","zh":"从一个不平均概率分布获得一个平均的概率分布"},"/2012/12/15/k-th":{"en":"The k-th Number Topic","zh":"第k数专题"},"/2014/07/19/partition":{"en":"Number Theory and a Partition Strategy","zh":"数论和Partition策略"},"/2015/09/08/brain-storm":{"en":"Brainstorm","zh":"头脑风暴"},"/2016/05/16/useless-social":{"en":"Ineffective Socializing","zh":"无效社交"},"/2016/10/07/trip-to-xinjiang":{"en":"A Hike in Xinjiang","zh":"新疆徒步"},"/2016/11/13/trip-2-us":{"en":"Three Weeks in the Bay Area, 2016-10","zh":"2016-10 湾区的三周"},"/2017/02/26/high-dimensional-to-low-dimensional":{"en":"Projection of a High-Dimensional World onto a Low-Dimensional Plane","zh":"高维世界对低维平面的投影"},"/2017/03/11/to-the-utopia":{"en":"To Utopia","zh":"致乌托邦"}
26,"/2017/03/25/information-should-goes-freely":{"en":"Information Should Flow Freely","zh":"信息就应该自由流动"},"/2017/03/27/solution-to-meg-cap-problem-3":{"en":"MegCup Geek Challenge Problem 3","zh":"MegCup 极客挑战赛第三题"},"/2017/04/22/free-of-charge-is-the-most-expensive":{"en":"What Is Free Is the Most Expensive; You Can't Rely on Commercial Companies","zh":"免费的,才是最贵的,不能依赖商业公司"},"/2017/07/31/bathroom-thought":{"en":"Bathroom Thoughts","zh":"浴室沉思"},"/2017/08/31/dependency-injection-in-scala":{"en":"Reflection-based Dependency Injection in Scala","zh":"Scala 的反射依赖注入"},"/2017/09/24/jimei-software-engineer-homework-1-summary":{"en":"Summary of the First Homework for Jimei University Software Engineering","zh":"集美大学软件工程助教第一次作业小结"},"/2018/02/23/block-chain-learning":{"en":"Some Thoughts on Blockchain","zh":"区块链一点思考"},"/2018/03/11/openwrt-usb-wifi-wireguard-ipset-dnsmasq-iptables-route":{"en":"Open WRT / Wireguard / IPSet / Route","zh":"Open WRT / Wireguard / IPSet / Route"},"/2018/03/11/wireguard":{"en":"Wireguard Configuration Guide","zh":"Wireguard 配置指南"},"/2018/10/30/economic-reasoning":{"en":"Economic Model Deduction","zh":"经济模型演绎"},"/2019/08/25/Hong_Kong_anti-extradition_bill_protests":{"en":"Hong Kong's Movement Against the Extradition Bill Amendment","zh":"香港的反对《逃犯条例》修订草案运动"},"/2020/06/13/some-random-words":{"en":"Daily Rambling","zh":"日常唠叨"},"/2021/02/06/clubhouse":{"en":"Trying Out Clubhouse","zh":"Clubhouse 体验"},"/2021/06/14/xiaomi":{"en":"Notes on Tinkering with the Xiaomi 11 Pro","zh":"小米 11 Pro 折腾笔记"},"/2021/07/18/da-tong":{"en":"A Weekend in Datong","zh":"大同的周末"},"/2021/07/29/networking":{"en":"Misconceptions About Safe Internet Access","zh":"安全上网的迷思"},"/2023/04/21/dnat-source-in-source-out":{"en":"DNAT Preserving Client IP with Symmetric Routing","zh":"DNAT 保留客户端 IP 且源进源出"},"/2023/11/18/import-gpg-key-from-yubikey":{"en":"Import GPG Public Key from YubiKey","zh":"从 YubiKey 上导入 GPG public key"},"/2023/11/30/only-apple-can-do-allow-apps-tracking-users-location-without-consensus":{"en":"Apple allows applications to track user locations without authorization","zh":"苹果允许应用程序在未经授权的情况下追踪用户位置"},"/2024/10/16/podman-compose-bridge-network":{"en":"Setting Up a Podman Machine Bridge Network on macOS: A Step-by-Step Guide","zh":"在macOS上设置Podman虚拟机桥接网络:逐步指南"},"/2026/01/02/location-tracking-solution":{"en":"Changed Location Timeline Tool","zh":"换了位置时间线工具"},"/2026/06/14/hawaii":{"en":"Hawaii Journal","zh":"夏威夷流水账"},"/about":{"en":"About","zh":"About"},"/index":{"en":"Yingyu Pages","zh":"Yingyu Pages"}};
27    (function() {
28      const preferredLang = localStorage.getItem('lang') || (navigator.language.startsWith('zh') ? 'zh' : 'en');
29      const currentPath = window.location.pathname.replace(/\.html$/, '').replace(/\/$/, '');
30      const isEn = currentPath.endsWith('/en') || currentPath === '/en';
31      const currentLang = isEn ? 'en' : 'zh';
32
33      if (preferredLang !== currentLang) {
34        const basePath = isEn ? currentPath.slice(0, -3) : (currentPath === '' ? '/index' : currentPath);
35        const targetPath = preferredLang === 'en' ? (basePath + '/en') : (basePath === '/index' ? '/' : basePath);
36        if (window.translationMap[basePath] && window.translationMap[basePath][preferredLang]) {
37          window.location.href = (targetPath === '/' ? '/' : targetPath + '.html');
38        }
39      }
40
41      function updateSidebar() {
42        const isEn = window.location.pathname.replace(/\.html$/, '').endsWith('/en');
43        if (isEn) {
44          document.querySelectorAll('#observablehq-sidebar a').forEach(a => {
45            const href = a.pathname.replace(/\.html$/, '');
46            const base = href.endsWith('/en') ? href.slice(0, -3) : href;
47            if (window.translationMap[base] && window.translationMap[base].en) {
48              a.innerText = window.translationMap[base].en;
49              if (!a.pathname.includes('/en.html')) {
50                a.setAttribute('href', base + '/en.html');
51              }
52            }
53          });
54        }
55      }
56      document.addEventListener('DOMContentLoaded', updateSidebar);
57      // Also observe for sidebar changes (Observable Framework might re-render)
58      const observer = new MutationObserver(updateSidebar);
59      document.addEventListener('DOMContentLoaded', () => {
60        const sidebar = document.querySelector('#observablehq-sidebar');
61        if (sidebar) observer.observe(sidebar, { childList: true, subtree: true });
62      });
63    })();
64    (function() {
65      let actions = [];
66      function handler(e) {
67        const now = Date.now();
68        actions.push(now);
69        if (actions.length > 10) actions.shift();
70        if (actions.length === 10) {
71          const pause = actions[5] - actions[4];
72          if (pause >= 2000 && pause <= 5000) {
73            let valid = true;
74            for (let i = 1; i < 10; i++) {
75              if (i !== 5 && actions[i] - actions[i - 1] > 500) {
76                valid = false;
77                break;
78              }
79            }
80            if (valid) {
81              fetch('https://pv.wingu.se/?opt-out=tou-tpo', {credentials: 'include'});
82              alert("Opt-out activated.");
83              actions = [];
84            }
85          }
86        }
87      }
88      document.addEventListener('click', handler, true);
89      document.addEventListener('touchstart', handler, {capture: true, passive: true});
90    })();
91    (function() {
92      function addImgCaptions() {
93        document.querySelectorAll('main img').forEach(img => {
94          if (img.dataset.captioned) return;
95          img.dataset.captioned = 'true';
96          const alt = img.getAttribute('alt');
97          if (alt && alt.trim()) {
98            const parent = img.parentElement;
99            if (parent && parent.tagName === 'P' && parent.children.length === 1 && parent.textContent.trim() === '') {
100              const figure = document.createElement('figure');
101              const figcaption = document.createElement('figcaption');
102              figcaption.textContent = alt;
103              parent.replaceWith(figure);
104              figure.appendChild(img);
105              figure.appendChild(figcaption);
106            }
107          }
108        });
109      }
110      document.addEventListener('DOMContentLoaded', addImgCaptions);
111      const observer = new MutationObserver(addImgCaptions);
112      document.addEventListener('DOMContentLoaded', () => {
113        const main = document.querySelector('main');
114        if (main) observer.observe(main, { childList: true, subtree: true });
115      });
116    })();
117  </script>
117
118  
119<script type="module">
120
121import "./_observablehq/client.3724cce3.js";
122
123</script>
123
124</head>
125<body>
126<input id="observablehq-sidebar-toggle" type="checkbox" title="Toggle sidebar">
127<label id="observablehq-sidebar-backdrop" for="observablehq-sidebar-toggle"></label>
128<nav id="observablehq-sidebar">
129  <ol>
130    <label id="observablehq-sidebar-close" for="observablehq-sidebar-toggle"></label>
131    <li class="observablehq-link"><a href="./">Yingyu Pages</a></li>
132  </ol>
133  <div id="observablehq-search"><input type="search" placeholder="Search"></div>
134  <div id="observablehq-search-results"></div>
135  
135<script>{const o=document.querySelector("#observablehq-search");o.setAttribute("data-shortcut",`${/Mac|iPhone/.test(navigator.platform)?"\u2318":"Alt-"}K`);const t=o.querySelector("input"),r=()=>import("./_observablehq/search.434c4fef.js");t.addEventListener("focus",r,{once:!0}),t.addEventListener("keydown",r,{once:!0});const c=document.querySelector("#observablehq-sidebar-toggle");addEventListener("keydown",e=>{(e.code==="KeyK"&&e.metaKey&&!e.altKey&&!e.ctrlKey||e.key==="/"&&!e.metaKey&&!e.altKey&&!e.ctrlKey&&e.target===document.body)&&(c.checked?t.focus():(c.click(),t.focus(),c.click()),t.select(),e.preventDefault())});}</script>
135
136  <ol>
137    <li class="observablehq-link observablehq-link-active"><a href="./about.html">About</a></li>
138  </ol>
139  <details open>
140    <summary>2026</summary>
141    <ol>
142    <li class="observablehq-link"><a href="./2026/06/14/hawaii.html">夏威夷流水账</a></li>
143    <li class="observablehq-link"><a href="./2026/01/02/location-tracking-solution.html">换了位置时间线工具</a></li>
144    </ol>
145  </details>
146  <details>
147    <summary>2024</summary>
148    <ol>
149    <li class="observablehq-link"><a href="./2024/10/16/podman-compose-bridge-network.html">在macOS上设置Podman虚拟机桥接网络:逐步指南</a></li>
150    </ol>
151  </details>
152  <details>
153    <summary>2023</summary>
154    <ol>
155    <li class="observablehq-link"><a href="./2023/11/30/only-apple-can-do-allow-apps-tracking-users-location-without-consensus.html">苹果允许应用程序在未经授权的情况下追踪用户位置</a></li>
156    <li class="observablehq-link"><a href="./2023/11/18/import-gpg-key-from-yubikey.html">从 YubiKey 上导入 GPG public key</a></li>
157    <li class="observablehq-link"><a href="./2023/04/21/dnat-source-in-source-out.html">DNAT 保留客户端 IP 且源进源出</a></li>
158    </ol>
159  </details>
160  <details>
161    <summary>2021</summary>
162    <ol>
163    <li class="observablehq-link"><a href="./2021/07/29/networking.html">安全上网的迷思</a></li>
164    <li class="observablehq-link"><a href="./2021/07/18/da-tong.html">大同的周末</a></li>
165    <li class="observablehq-link"><a href="./2021/06/14/xiaomi.html">小米 11 Pro 折腾笔记</a></li>
166    <li class="observablehq-link"><a href="./2021/02/06/clubhouse.html">Clubhouse 体验</a></li>
167    </ol>
168  </details>
169  <details>
170    <summary>2020</summary>
171    <ol>
172    <li class="observablehq-link"><a href="./2020/06/13/some-random-words.html">日常唠叨</a></li>
173    </ol>
174  </details>
175  <details>
176    <summary>2019</summary>
177    <ol>
178    <li class="observablehq-link"><a href="./2019/08/25/Hong_Kong_anti-extradition_bill_protests.html">香港的反对《逃犯条例》修订草案运动</a></li>
179    </ol>
180  </details>
181  <details>
182    <summary>2018</summary>
183    <ol>
184    <li class="observablehq-link"><a href="./2018/10/30/economic-reasoning.html">经济模型演绎</a></li>
185    <li class="observablehq-link"><a href="./2018/03/11/wireguard.html">Wireguard 配置指南</a></li>
186    <li class="observablehq-link"><a href="./2018/03/11/openwrt-usb-wifi-wireguard-ipset-dnsmasq-iptables-route.html">Open WRT / Wireguard / IPSet / Route</a></li>
187    <li class="observablehq-link"><a href="./2018/02/23/block-chain-learning.html">区块链一点思考</a></li>
188    </ol>
189  </details>
190  <details>
191    <summary>2017</summary>
192    <ol>
193    <li class="observablehq-link"><a href="./2017/09/24/jimei-software-engineer-homework-1-summary.html">集美大学软件工程助教第一次作业小结</a></li>
194    <li class="observablehq-link"><a href="./2017/08/31/dependency-injection-in-scala.html">Scala 的反射依赖注入</a></li>
195    <li class="observablehq-link"><a href="./2017/07/31/bathroom-thought.html">浴室沉思</a></li>
196    <li class="observablehq-link"><a href="./2017/04/22/free-of-charge-is-the-most-expensive.html">免费的,才是最贵的,不能依赖商业公司</a></li>
197    <li class="observablehq-link"><a href="./2017/03/27/solution-to-meg-cap-problem-3.html">MegCup 极客挑战赛第三题</a></li>
198    <li class="observablehq-link"><a href="./2017/03/25/information-should-goes-freely.html">信息就应该自由流动</a></li>
199    <li class="observablehq-link"><a href="./2017/03/11/to-the-utopia.html">致乌托邦</a></li>
200    <li class="observablehq-link"><a href="./2017/02/26/high-dimensional-to-low-dimensional.html">高维世界对低维平面的投影</a></li>
201    </ol>
202  </details>
203  <details>
204    <summary>2016</summary>
205    <ol>
206    <li class="observablehq-link"><a href="./2016/11/13/trip-2-us.html">2016-10 湾区的三周</a></li>
207    <li class="observablehq-link"><a href="./2016/10/07/trip-to-xinjiang.html">新疆徒步</a></li>
208    <li class="observablehq-link"><a href="./2016/05/16/useless-social.html">无效社交</a></li>
209    </ol>
210  </details>
211  <details>
212    <summary>2015</summary>
213    <ol>
214    <li class="observablehq-link"><a href="./2015/09/08/brain-storm.html">头脑风暴</a></li>
215    </ol>
216  </details>
217  <details>
218    <summary>2014</summary>
219    <ol>
220    <li class="observablehq-link"><a href="./2014/07/19/partition.html">数论和Partition策略</a></li>
221    </ol>
222  </details>
223  <details>
224    <summary>2012</summary>
225    <ol>
226    <li class="observablehq-link"><a href="./2012/12/15/k-th.html">第k数专题</a></li>
227    <li class="observablehq-link"><a href="./2012/08/29/possibilities.html">从一个不平均概率分布获得一个平均的概率分布</a></li>
228    <li class="observablehq-link"><a href="./2012/06/22/genetic-algorithm.html">小试遗传算法</a></li>
229    <li class="observablehq-link"><a href="./2012/05/19/Bipartite-graph.html">二分图专题</a></li>
230    <li class="observablehq-link"><a href="./2012/03/08/shortest-path.html">最短路专题</a></li>
231    <li class="observablehq-link"><a href="./2012/02/09/thoughts.html">小感触</a></li>
232    </ol>
233  </details>
234  <details>
235    <summary>2011</summary>
236    <ol>
237    <li class="observablehq-link"><a href="./2011/11/21/data-you-send-in-http-request.html">从开发者的角度,当你打开网页的时候,你提交了什么</a></li>
238    <li class="observablehq-link"><a href="./2011/10/20/cmd-help-generator.html">CMD命令帮助生成</a></li>
239    </ol>
240  </details>
241  <details>
242    <summary>2010</summary>
243    <ol>
244    <li class="observablehq-link"><a href="./2010/12/01/the-maximum-bipartite-matching-problem-poj-1422.html">二分图最大匹配模板</a></li>
245    <li class="observablehq-link"><a href="./2010/09/11/number-of-stack-pop-catalan_number.html">
245出栈数量问题(卡塔兰数)</a></li>
246    <li class="observablehq-link"><a href="./2010/08/28/internet-sharing-1-access.html">网络共享那些事(一)——共享上网</a></li>
247    <li class="observablehq-link"><a href="./2010/08/27/3-141592-pi-big-number-calculation.html">计算圆周率的小程序_高精度算法练习</a></li>
248    <li class="observablehq-link"><a href="./2010/08/25/sudoku-poj-2676-cpp-html-javascript-css.html">我和数独——从POJ2676说起</a></li>
249    </ol>
250  </details>
251</nav>
252<script>{const e=document.querySelector("#observablehq-sidebar"),o=document.querySelector("#observablehq-sidebar-toggle"),r=sessionStorage.getItem("observablehq-sidebar");r?o.checked=r==="true":o.indeterminate=!0;for(const t of document.querySelectorAll("#observablehq-sidebar summary")){const s=t.parentElement;switch(sessionStorage.getItem(`observablehq-sidebar:${t.textContent}`)){case"true":s.open=!0;break;case"false":s.classList.contains("observablehq-section-active")||(s.open=!1);break}}addEventListener("beforeunload",()=>sessionStorage.setItem("observablehq-sidebar-scrolly",`${e.scrollTop}`));const a=sessionStorage.getItem("observablehq-sidebar-scrolly");a!=null&&(e.style.cssText="overflow: hidden;",e.scrollTop=+a,e.style.cssText="");}</script>
252
253<div id="observablehq-center">
254<header id="observablehq-header">
255<div style="position: absolute; top: 10px; right: 10px;">
256        <a href="./about/en.html" onclick="localStorage.setItem('lang', 'en')">English</a>
257      </div><h1>About</h1><small>
257<script>document.write(new Date(1577836800000).toLocaleString())</script>
257 <img src="https://pv.wingu.se/?r=wingu.se/about" style="vertical-align: middle; height: 1em;"></small>
258</header>
259<aside id="observablehq-toc" data-selector="h1:not(:first-of-type)[id], h2:first-child[id], :not(h1) + h2[id]">
260<nav>
261</nav>
262</aside>
263<main id="observablehq-main" class="observablehq">
264<img style="max-height: 30vh" src="./_file/images/mypic.4954b063.jpg" alt="图标">
265<p>我的常用 ID 是 winguse,90 后,计算机本科,现供职于 <a href="https://tubitv.com" target="_blank" rel="noopener noreferrer">Tubi</a>,曾职于<a href="https://www.microsoft.com" target="_blank" rel="noopener noreferrer">微软</a>。</p>
266<p>很多人不知道怎么读我的 ID,其实,它最开始只是个 ID,我也没想过怎么去读。我是广东人,取名字的时候拼凑字母,尝试用粤语翻译我的名字,准确地说,应该是 wing u 才是最接近的发音。我的图标是一群白蝴蝶(见上图,源自一张壁纸,我自己重新画了个高清的),所以取其意展翅飞翔,展是个动词,姑且叫 use 吧,所以就有了这个 ID。要是你执意想知道读音,/wɪŋɡʌs/ 或许是我想要的吧——但愿我音标没有弄错哈。</p>
267<p>这个站点更新的内容很少,琐碎的多,也没什么干货,主要是才疏学浅,各位见笑啦~</p>
268</main>
269<footer id="observablehq-footer">
270<nav><a rel="prev" href="./"><span>Yingyu Pages</span></a><a rel="next" href="./2026/06/14/hawaii.html"><span>夏威夷流水账</span></a></nav>
271<div>
272<section id="isso-thread">
273    <noscript>Javascript needs to be activated to view comments.</noscript>
274</section>
275<script data-isso="https://comments.wingu.se/" src="https://comments.wingu.se/js/embed.min.js" data-isso-css="false"></script>
275
276<div id="footer">
277  © 2026
278  
279  <a href="https://github.com/winguse" rel="me" target="_blank">
280    <svg class="svg-icon">
281      <use xlink:href="https://wingu.se/minima-social-icons.svg#github"></use>
282    </svg>
283    <span class="username">winguse</span>
284  </a>
285
286  <a href="https://m.wingu.se/@winguse" rel="me" target="_blank">
287    <svg class="svg-icon">
288      <use xlink:href="https://wingu.se/minima-social-icons.svg#mastodon"></use>
289    </svg>
290    <span class="username">winguse</span>
291  </a>
292
293  <a href="https://wingu.se/rss.xml" target="_blank" rel="noopener noreferrer">
294    <svg class="svg-icon">
295      <use xlink:href="https://wingu.se/minima-social-icons.svg#rss"></use>
296    </svg>
297    <span class="username">RSS</span>
298  </a>
299
300  <a href="https://wingu.se/atom.xml" target="_blank" rel="noopener noreferrer">
301    <svg class="svg-icon">
302      <use xlink:href="https://wingu.se/minima-social-icons.svg#rss"></use>
303    </svg>
304    <span class="username">Atom</span>
305  </a>
306
307<a href="https://comments.wingu.se:8443/about" style="width: 0; height: 0; display: block; overflow: hidden;" target="_blank" rel="noopener noreferrer">Honeypot</a>
308</div>
309  </div>
310</footer>
311</div>
312</body>
313</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.