PageSourceSearch

https://roosma.dev/archives/

html roosma.dev collected 2026-09-25 22:02:57 UTC 23,282 bytes, 495 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-us" dir="ltr">
3    <head><meta charset='utf-8'>
4<meta name='viewport' content='width=device-width, initial-scale=1'><meta name='description' content="">
5<title>Archives</title>
6
7<link rel='canonical' href='https://roosma.dev/archives/'>
8
9<link rel="stylesheet" href="/scss/style.min.0304c6baf04e01a8fe70693791cb744d56a3578a3120a8796cefc66825aa39c7.css"><meta property='og:title' content="Archives">
10<meta property='og:description' content="">
11<meta property='og:url' content='https://roosma.dev/archives/'>
12<meta property='og:site_name' content='Insights in Coding with Duncan'>
13<meta property='og:type' content='article'><meta property='article:section' content='Page' /><meta property='article:published_time' content='2022-03-06T00:00:00&#43;00:00'/><meta property='article:modified_time' content='2022-03-06T00:00:00&#43;00:00'/>
14<meta name="twitter:title" content="Archives">
15<meta name="twitter:description" content="">
16    <link rel="shortcut icon" href="/favicon.png" />
17
18  
19
20
21    </head>
22    <body class="template-archives">
23    
23<script>
24        (function() {
25            const colorSchemeKey = 'StackColorScheme';
26            if(!localStorage.getItem(colorSchemeKey)){
27                localStorage.setItem(colorSchemeKey, "auto");
28            }
29        })();
30    </script>
30<script>
31    (function() {
32        const colorSchemeKey = 'StackColorScheme';
33        const colorSchemeItem = localStorage.getItem(colorSchemeKey);
34        const supportDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches === true;
35
36        if (colorSchemeItem == 'dark' || colorSchemeItem === 'auto' && supportDarkMode) {
37            
38
39            document.documentElement.dataset.scheme = 'dark';
40        } else {
41            document.documentElement.dataset.scheme = 'light';
42        }
43    })();
44</script>
44
45<div class="container main-container flex on-phone--column extended"><aside class="sidebar left-sidebar sticky ">
46    <button class="hamburger hamburger--spin" type="button" id="toggle-menu" aria-label="Toggle Menu">
47        <span class="hamburger-box">
48            <span class="hamburger-inner"></span>
49        </span>
50    </button>
51
52    <header>
53        
54            
55            <figure class="site-avatar">
56                <a href="/">
57                
58                    
59                    
60                    
61                        
62                        <img src="/img/avatar_hubc40be1f072dad8c3a05446a61a4297a_42934_300x0_resize_box_3.png" width="300"
63                            height="300" class="site-logo" loading="lazy" alt="Avatar">
64                    
65                
66                </a>
67                
68            </figure>
69            
70        
71        
72        <div class="site-meta">
73            <h1 class="site-name"><a href="/">Insights in Coding with Duncan</a></h1>
74            <h2 class="site-description">Developer Opinions: Views from the Coding Trenches</h2>
75        </div>
76    </header><ol class="menu-social">
77            
78                <li>
79                    <a 
80                        href='https://github.com/droosma'
81                        target="_blank"
82                        title="GitHub"
83                        rel="me"
84                    >
85                        
86                        
87                            <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-github" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
88  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
89  <path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5" />
90</svg>
91
92
93
94                        
95                    </a>
96                </li>
97            
98                <li>
99                    <a 
100                        href='https://twitter.com/duncanroosma'
101                        target="_blank"
102                        title="Twitter"
103                        rel="me"
104                    >
105                        
106                        
107                            <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-twitter" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
108  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
109  <path d="M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c-.002 -.249 1.51 -2.772 1.818 -4.013z" />
110</svg>
111
112
113
114                        
115                    </a>
116                </li>
117            
118        </ol><ol class="menu" id="main-menu">
119        
120        
121        
122        <li >
123            <a href='/' >
124                
125                
126                
127                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-home" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
128  <path stroke="none" d="M0 0h24v24H0z"/>
129  <polyline points="5 12 3 12 12 3 21 12 19 12" />
130  <path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-7" />
131  <path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v6" />
132</svg>
133
134
135
136                
137                <span>Home</span>
138            </a>
139        </li>
140        
141        
142        <li  class='current' >
143            <a href='/archives/' >
144                
145                
146                
147                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-archive" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
148  <path stroke="none" d="M0 0h24v24H0z"/>
149  <rect x="3" y="4" width="18" height="4" rx="2" />
150  <path d="M5 8v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-10" />
151  <line x1="10" y1="12" x2="14" y2="12" />
152</svg>
153
154
155
156                
157                <span>Archives</span>
158            </a>
159        </li>
160        
161        
162        <li >
163            <a href='/search/' >
164                
165                
166                
167                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-search" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
168  <path stroke="none" d="M0 0h24v24H0z"/>
169  <circle cx="10" cy="10" r="7" />
170  <line x1="21" y1="21" x2="15" y2="15" />
171</svg>
172
173
174
175                
176                <span>Search</span>
177            </a>
178        </li>
179        
180        
181        <li >
182            <a href='/manual/' >
183                
184                
185                
186                    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
187<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
188<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
189�<g id="SVGRepo_bgCarrier" stroke-width="0"/>
190�<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>
191�<g id="SVGRepo_iconCarrier"> <path d="M3 10C3 6.22876 3 4.34315 4.17157 3.17157C5.34315 2 7.22876 2 11 2H13C16.7712 2 18.6569 2 19.8284 3.17157C21 4.34315 21 6.22876 21 10V14C21 17.7712 21 19.6569 19.8284 20.8284C18.6569 22 16.7712 22 13 22H11C7.22876 22 5.34315 22 4.17157 20.8284C3 19.6569 3 17.7712 3 14V10Z" stroke="#c0c0c0" stroke-width="1.5"/> <path d="M8 12H16" stroke="#c0c0c0" stroke-width="1.5" stroke-linecap="round"/> <path d="M8 8H16" stroke="#c0c0c0" stroke-width="1.5" stroke-linecap="round"/> <path d="M8 16H13" stroke="#c0c0c0" stroke-width="1.5" stroke-linecap="round"/> </g>
192�</svg>
193                
194                <span>Manual</span>
195            </a>
196        </li>
197        
198        <li class="menu-bottom-section">
199            <ol class="menu">
200
201                
202                    <li id="dark-mode-toggle">
203                        <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-toggle-left" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
204  <path stroke="none" d="M0 0h24v24H0z"/>
205  <circle cx="8" cy="12" r="2" />
206  <rect x="2" y="6" width="20" height="12" rx="6" />
207</svg>
208
209
210
211                        <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-toggle-right" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
212  <path stroke="none" d="M0 0h24v24H0z"/>
213  <circle cx="16" cy="12" r="2" />
214  <rect x="2" y="6" width="20" height="12" rx="6" />
215</svg>
216
217
218
219                        <span>Dark Mode</span>
220                    </li>
221                
222            </ol>
223        </li>
224    </ol>
225</aside>
226
227            <main class="main full-width">
228    <header>
229        <h2 class="section-title">Categories</h2>
230        <div class="subsection-list">
231            <div class="article-list--tile">
232                
233                    
234<article class="">
235    <a href="/categories/development/">
236        
237        
238
239        <div class="article-details">
240            <h2 class="article-title">Development</h2>
241        </div>
242    </a>
243</article>
244
245                
246                    
247<article class="">
248    <a href="/categories/personal/">
249        
250        
251
252        <div class="article-details">
253            <h2 class="article-title">Personal</h2>
254        </div>
255    </a>
256</article>
257
258                
259            </div>
260        </div>
261        
262    </header>
263
264    
265    
266    
267
268    
269    
270    <div class="archives-group" id="2024">
271        <h2 class="archives-date section-title"><a href="/archives/#2024">2024</a></h2>
272        <div class="article-list--compact">
273            
274                <article>
275    <a href="/p/parsing-unstructured-data-with-semantic-kernel/">
276        <div class="article-details">
277            <h2 class="article-title">Making Sense of Unstructured Data using Semantic Kernel</h2>
278            <footer class="article-time">
279                <time datetime='2024-05-19T00:00:00Z'>19 May 2024</time>
280            </footer>
281        </div>
282            <div class="article-image">
283                <img src="/p/parsing-unstructured-data-with-semantic-kernel/cover_hu38bbc435e0c358b623557bbd4d78769d_355710_120x120_fill_q75_h2_box_smart1_2.webp" 
284                        width="120"
285                        height="120" 
286                        alt="Making Sense of Unstructured Data using Semantic Kernel"
287                        loading="lazy">
288                
289            </div>
290        
291    </a>
292</article>
293            
294                <article>
295    <a href="/p/generative-ai-hello-world/">
296        <div class="article-details">
297            <h2 class="article-title">The Hello World of Generative AI: Exploring Retrieval Augmented Generation</h2>
298            <footer class="article-time">
299                <time datetime='2024-03-01T00:00:00Z'>01 Mar 2024</time>
300            </footer>
301        </div>
302            <div class="article-image">
303                <img src="/p/generative-ai-hello-world/cover_hue8b587ebe60b11cacc69385ca1596438_104032_120x120_fill_q75_h2_box_smart1_2.webp" 
304                        width="120"
305                        height="120" 
306                        alt="The Hello World of Generative AI: Exploring Retrieval Augmented Generation"
307                        loading="lazy">
308                
309            </div>
310        
311    </a>
312</article>
313            
314                <article>
315    <a href="/p/practical-approaches-database-testing-testcontainers/">
316        <div class="article-details">
317            <h2 class="article-title">Practical Approaches to Database Testing with Testcontainers</h2>
318            <footer class="article-time">
319                <time datetime='2024-02-24T00:00:00Z'>24 Feb 2024</time>
320            </footer>
321        </div>
322            <div class="article-image">
323                <img src="/p/practical-approaches-database-testing-testcontainers/cover_huced37aa605cb2f636be99479ee06b27c_240398_120x120_fill_q75_h2_box_smart1_2.webp" 
324                        width="120"
325                        height="120" 
326                        alt="Practical Approaches to Database Testing with Testcontainers"
327                        loading="lazy">
328                
329            </div>
330        
331    </a>
332</article>
333            
334                <article>
335    <a href="/p/virtual-hideaway-international-talk/">
336        <div class="article-details">
337            <h2 class="article-title">From Virtual Hideaway to International Talk</h2>
338            <footer class="article-time">
339                <time datetime='2024-02-09T00:00:00Z'>09 Feb 2024</time>
340            </footer>
341        </div>
342            <div class="article-image">
343                <img src="/p/virtual-hideaway-international-talk/cover_hue6e679018e9d0f6a3f6bc329f6c6c14e_264205_120x120_fill_q75_box_smart1.jpg" 
344                        width="120"
345                        height="120" 
346                        alt="From Virtual Hideaway to International Talk"
347                        loading="lazy">
348                
349            </div>
350        
351    </a>
352</article>
353            
354        </div>
355    </div>
356    
357    
358    <div class="archives-group" id="2023">
359        <h2 class="archives-date section-title"><a href="/archives/#2023">2023</a></h2>
360        <div class="article-list--compact">
361            
362                <article>
363    <a href="/p/first-opentelemetry-exporter/">
364        <div class="article-details">
365            <h2 class="article-title">My first OpenTelemetry exporter in Go</h2>
366            <footer class="article-time">
367                <time datetime='2023-10-24T00:00:00Z'>24 Oct 2023</time>
368            </footer>
369        </div>
370            <div class="article-image">
371                <img src="/p/first-opentelemetry-exporter/cover_huad3ba9cb1405c54f6910e0611fabcc1a_2231125_120x120_fill_box_smart1_3.png" 
372                        width="120"
373                        height="120" 
374                        alt="My first OpenTelemetry exporter in Go"
375                        loading="lazy">
376                
377            </div>
378        
379    </a>
380</article>
381            
382                <article>
383    <a href="/p/opentelemetry-decoupled/">
384        <div class="article-details">
385            <h2 class="article-title">OpenTelemetry Refined: The Collector’s Approach to Decoupled Data Exporting</h2>
386            <footer class="article-time">
387                <time datetime='2023-08-07T00:00:00Z'>07 Aug 2023</time>
388            </footer>
389        </div>
390            <div class="article-image">
391                <img src="/p/opentelemetry-decoupled/cover_hue3dfb79d9f7a31abb673df0f8a18ed5b_76849_120x120_fill_q75_box_smart1.jpg" 
392                        width="120"
393                        height="120" 
394                        alt="OpenTelemetry Refined: The Collector’s Approach to Decoupled Data Exporting"
395                        loading="lazy">
396                
397            </div>
398        
399    </a>
400</article>
401            
402                <article>
403    <a href="/p/ai-empowers-dyslexic-dev/">
404        <div class="article-details">
405            <h2 class="article-title">From Mount Everest to Rolling Hills: A Dyslexic Developer&#39;s Journey with AI</h2>
406            <footer class="article-time">
407                <time datetime='2023-07-31T00:00:00Z'>31 Jul 2023</time>
408            </footer>
409        </div>
410            <div class="article-image">
411                <img src="/p/ai-empowers-dyslexic-dev/cover_hu1e190dfd48f70cfac45ee42b39ddef9f_562851_120x120_fill_box_smart1_3.png" 
412                        width="120"
413                        height="120" 
414                        alt="From Mount Everest to Rolling Hills: A Dyslexic Developer&#39;s Journey with AI"
415                        loading="lazy">
416                
417            </div>
418        
419    </a>
420</article>
421            
422                <article>
423    <a href="/p/hello-world/">
424        <div class="article-details">
425            <h2 class="article-title">Hello World</h2>
426            <footer class="article-time">
427                <time datetime='2023-07-24T00:00:00Z'>24 Jul 2023</time>
428            </footer>
429        </div>
430            <div class="article-image">
431                <img src="/p/hello-world/cover_hu31b4bb2b4578f1c8ef95e9b64fe92dfa_92778_120x120_fill_q75_box_smart1.jpg" 
432                        width="120"
433                        height="120" 
434                        alt="Hello World"
435                        loading="lazy">
436                
437            </div>
438        
439    </a>
440</article>
441            
442        </div>
443    </div>
444    
445
446    <footer class="site-footer">
447    <section class="copyright">
448        &copy; 
449        
450            2023 - 
451        
452        2025 Insights in Coding with Duncan
453    </section>
454    
455    <section class="powerby">
456        Theme <b><a href="https://github.com/CaiJimmy/hugo-theme-stack" target="_blank" rel="noopener" data-version="3.17.0">Stack</a></b> designed by <a href="https://jimmycai.com" target="_blank" rel="noopener">Jimmy</a>
457    </section>
458
459    
459<script type="text/javascript">
460        !(function (cfg){function e(){cfg.onInit&&cfg.onInit(i)}var S,u,D,t,n,i,C=window,x=document,w=C.location,I="script",b="ingestionendpoint",E="disableExceptionTracking",A="ai.device.";"instrumentationKey"[S="toLowerCase"](),u="crossOrigin",D="POST",t="appInsightsSDK",n=cfg.name||"appInsights",(cfg.name||C[t])&&(C[t]=n),i=C[n]||function(l){var d=!1,g=!1,f={initialize:!0,queue:[],sv:"7",version:2,config:l};function m(e,t){var n={},i="Browser";function a(e){e=""+e;return 1===e.length?"0"+e:e}return n[A+"id"]=i[S](),n[A+"type"]=i,n["ai.operation.name"]=w&&w.pathname||"_unknown_",n["ai.internal.sdkVersion"]="javascript:snippet_"+(f.sv||f.version),{time:(i=new Date).getUTCFullYear()+"-"+a(1+i.getUTCMonth())+"-"+a(i.getUTCDate())+"T"+a(i.getUTCHours())+":"+a(i.getUTCMinutes())+":"+a(i.getUTCSeconds())+"."+(i.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z",iKey:e,name:"Microsoft.ApplicationInsights."+e.replace(/-/g,"")+"."+t,sampleRate:100,tags:n,data:{baseData:{ver:2}},ver:4,seq:"1",aiDataContract:undefined}}var h=-1,v=0,y=["js.monitor.azure.com","js.cdn.applicationinsights.io","js.cdn.monitor.azure.com","js0.cdn.applicationinsights.io","js0.cdn.monitor.azure.com","js2.cdn.applicationinsights.io","js2.cdn.monitor.azure.com","az416426.vo.msecnd.net"],k=l.url||cfg.src;if(k){if((n=navigator)&&(~(n=(n.userAgent||"").toLowerCase()).indexOf("msie")||~n.indexOf("trident/"))&&~k.indexOf("ai.3")&&(k=k.replace(/(\/)(ai\.3\.)([^\d]*)$/,function(e,t,n){return t+"ai.2"+n})),!1!==cfg.cr)for(var e=0;e<y.length;e++)if(0<k.indexOf(y[e])){h=e;break}var i=function(e){var a,t,n,i,o,r,s,c,p,u;f.queue=[],g||(0<=h&&v+1<y.length?(a=(h+v+1)%y.length,T(k.replace(/^(.*\/\/)([\w\.]*)(\/.*)$/,function(e,t,n,i){return t+y[a]+i})),v+=1):(d=g=!0,o=k,c=(p=function(){var e,t={},n=l.connectionString;if(n)for(var i=n.split(";"),a=0;a<i.length;a++){var o=i[a].split("=");2===o.length&&(t[o[0][S]()]=o[1])}return t[b]||(e=(n=t.endpointsuffix)?t.location:null,t[b]="https://"+(e?e+".":"")+"dc."+(n||"services.visualstudio.com")),t}()).instrumentationkey||l.instrumentationKey||"",p=(p=p[b])?p+"/v2/track":l.endpointUrl,(u=[]).push((t="SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details)",n=o,r=p,(s=(i=m(c,"Exception")).data).baseType="ExceptionData",s.baseData.exceptions=[{typeName:"SDKLoadFailed",message:t.replace(/\./g,"-"),hasFullStack:!1,stack:t+"\nSnippet failed to load ["+n+"] -- Telemetry is disabled\nHelp Link: https://go.microsoft.com/fwlink/?linkid=2128109\nHost: "+(w&&w.pathname||"_unknown_")+"\nEndpoint: "+r,parsedStack:[]}],i)),u.push((s=o,t=p,(r=(n=m(c,"Message")).data).baseType="MessageData",(i=r.baseData).message='AI (Internal): 99 message:"'+("SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details) ("+s+")").replace(/\"/g,"")+'"',i.properties={endpoint:t},n)),o=u,c=p,JSON&&((r=C.fetch)&&!cfg.useXhr?r(c,{method:D,body:JSON.stringify(o),mode:"cors"}):XMLHttpRequest&&((s=new XMLHttpRequest).open(D,c),s.setRequestHeader("Content-type","application/json"),s.send(JSON.stringify(o))))))},a=function(e,t){g||setTimeout(function(){!t&&f.core||i()},500),d=!1},T=function(e){var n=x.createElement(I),e=(n.src=e,cfg[u]);return!e&&""!==e||"undefined"==n[u]||(n[u]=e),n.onload=a,n.onerror=i,n.onreadystatechange=function(e,t){"loaded"!==n.readyState&&"complete"!==n.readyState||a(0,t)},cfg.ld&&cfg.ld<0?x.getElementsByTagName("head")[0].appendChild(n):setTimeout(function(){x.getElementsByTagName(I)[0].parentNode.appendChild(n)},cfg.ld||0),n};T(k)}try{f.cookie=x.cookie}catch(p){}function t(e){for(;e.length;)!function(t){f[t]=function(){var e=arguments;d||f.queue.push(function(){f[t].apply(f,e)})}}(e.pop())}var r,s,n="track",o="TrackPage",c="TrackEvent",n=(t([n+"Event",n+"PageView",n+"Exception",n+"Trace",n+"DependencyData",n+"Metric",n+"PageViewPerformance","start"+o,"stop"+o,"start"+c,"stop"+c,"addTelemetryInitializer","setAuthenticatedUserContext","clearAuthenticatedUserContext","flush"]),f.SeverityLevel={Verbose:0,Information:1,Warning:2,Error:3,Critical:4},(l.extensionConfig||{}).ApplicationInsightsAnalytics||{});return!0!==l[E]&&!0!==n[E]&&(t(["_"+(r="onerror")]),s=C[r],C[r]=function(e,t,n,i,a){var o=s&&s(e,t,n,i,a);return!0!==o&&f["_"+r]({message:e,url:t,lineNumber:n,columnNumber:i,error:a,evt:C.event}),o},l.autoExceptionInstrumented=!0),f}(cfg.cfg),(C[n]=i).queue&&0===i.queue.length?(i.queue.push(e),i.trackPageView({})):e();})({
461        src: "https://js.monitor.azure.com/scripts/b/ai.3.gbl.min.js",
462        
463        
464        
465        crossOrigin: "anonymous",
466        
467        
468        cfg: { 
469         connectionString: "InstrumentationKey=12fab97b-b1ea-48a1-9cee-66993623f610;IngestionEndpoint=https://westeurope-5.in.applicationinsights.azure.com/;LiveEndpoint=https://westeurope.livediagnostics.monitor.azure.com/;ApplicationId=29725583-859b-4729-ae05-9db0b75a917a"
470        }});
471        </script>
471
472</footer>
473
474
475            </main>
476        </div>
477        
477<script 
478                src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vibrant.min.js"integrity="sha256-awcR2jno4kI5X0zL8ex0vi2z&#43;KMkF24hUW8WePSA9HM="crossorigin="anonymous"
479                
480                >
481            </script>
481<script type="text/javascript" src="/ts/main.js" defer></script>
vendor: 1 bytes, line 481
481
482<script>
483    (function () {
484        const customFont = document.createElement('link');
485        customFont.href = "https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&display=swap";
486
487        customFont.type = "text/css";
488        customFont.rel = "stylesheet";
489
490        document.head.appendChild(customFont);
491    }());
492</script>
492
493
494    </body>
495</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.