Commit Diff


commit - /dev/null
commit + f1aa03ce0f635ba4cffe299cfc1e53c0f46f3d8e
blob - /dev/null
blob + af126c17e748efa0a337d0a83f6674acce78e388 (mode 644)
--- /dev/null
+++ docs/bicycle.md
@@ -0,0 +1,49 @@
+# Bicycle
+## Steel Frame Mountain Bike
+### Cycling instead of walking
+
+~~Summer '24 I had the chance to lay a hand at a vintage "Motobecane Mirage"
+road-bike (2024/06/21), alreayd converted to single-speed and a "Giant Custom
+Lite" touring-bike (2024/08/03). The "Giant Custom Lite" was stripped of
+unnecessary parts and will be converted to a single-speed cyclo-cross /
+gravel-bike.~~
+
+Spring '25 (2025/03/31) I had the chance to acquire a vintage "Centurion
+Weasel" mountain-bike in a very good condition. I'm very happy with this purchase
+:o)
+
+Below you will find the current specifications one photo of the bicycle.
+
+~~The reason for my fixation on the bicycles being single-speed, is due to
+the fact, that it's easier to maintain. I don't mind the missing
+sprockets and gladly will push my bicycle up a hill or a mountain, if it
+means I can quickly and easily repair it by myself.~~
+I still want to repair my bicycle by myself, so it must be easily repairable,
+but since I'm moving slowly out of my thirties, I decided to go for a
+mountainbike, since I noticed that I'm usually in or around woods or mountains.
+23x622 is too fragile for woods / off-road, and I enjoy the benefits of a
+derailleur, especially uphill.
+
+I was inspired by solderpunk to start
+[S24Os](gemini://zaibatsu.circumlunar.space/~solderpunk/gemlog/my-second-s24o.gmi);
+it suits me very well. I take a small backpack, a light sleeping bag, a portable
+ham radio, a headlamp and something to eat & drink with me.
+
+***
+
+Centurion Weasel: | Component
+:--|---
+Height: | 580mm (Diamond)
+Wheels: | 650c (26x559mm)
+Chain: | To be continued...
+Sprocket: | To be continued...
+Handlebar: | To be continued...
+Tires: | Ritchey Megabite Z-Max (57x559mm) (front)
+---: | Kenda Unknown Modell (54x559mm) (back)
+Tubes: | To be continued...
+---: |  To be continued...
+Saddle: | Velo VL-3378-2
+Crankset: | Shimano  STX-RC
+Fork: | Rock Shox Indy-C
+
+![dithered b/w photo of centurion](/images/centurion.png)
blob - /dev/null
blob + 09461c0498703990f1e66dc216662375f57621ee (mode 644)
--- /dev/null
+++ docs/hardware.md
@@ -0,0 +1,156 @@
+# Hardware 
+## Computers, peripherals and etc. I'm currently using
+
+### Workstations
+I'm OS agnostic, but nowadays I prefer macOS at home. I'd use Alpine on
+the Thinkpad, but sadly I require some programs on Windows for my retraining. I
+know about Wine. To mitigate the enshittification of Windows 11, I installed Windows 11
+IoT LSTC. For the future, I hope I can switch back to GNU/Linux or *BSD.
+
+#### Apple Macmini9,1
+* Apple M1 4x 3.20 GHz & 4x 2.10 GHz
+* 8 GB Non-ECC RAM
+* 256 GB NVME SSD
+* OS: macOS
+
+#### Lenove Thinkpad X220
+* Intel Core i5-2450M 2x 2.5 GHz
+* 16 GB Non-ECC RAM
+* 128 GB SATA SSD
+* OS: Windows
+
+### Homelab
+I already had a power hungry Supermicro H8SML-i (see
+[junkyard](junkyard/#supermicro-h8sml-i), but I'm again runnig a (file-)server at home, since
+I don't want to pay (anymore) for VMs, LLMs or cloud storage. I briefly
+evaluated these options, but came to the conclusion that I'm far more
+comfortable with my VMs, data and backups in my flat. Besides, nothing beats a
+functional homelab for experimenting, learning and tinkering :-)
+
+I'm contemplating about using OmniOS or Proxmox instead of FreeBSD. The ZFS
+pools are running with a minimal working [feature
+set](https://openzfs.github.io/openzfs-docs/Basic%20Concepts/Feature%20Flags.html),
+supported by every OS.
+
+I switched from Vodafone to DTAG (DSL), mostly because of the availability of
+DSL, possibility to use the Allnet modem and problems with VoIP of Vodafone.
+Due to missing IEEE 802.11ac support on OpenBSD I hooked a Mikrotik via RJ45 to
+my gateway, to provide stable WiFi.
+
+![dithered b/w photo of homelab](/images/homelab.png)
+
+#### Advantech FWA-1012VC-8CA1S
+* Intel Atom C3758 8x 2.2 GHz
+* 16 GB DDR4 Non-ECC RAM
+* 128 GB SATA SSD
+* OS: OpenBSD
+
+#### Allnet ALL126AS3
+* Lantiq MIPS ADM5120P 1x 175 MHz
+* 64 MB Non-ECC RAM
+* 128 MB Disk
+* OS: Linux
+
+#### APC Smart-UPS SC450
+
+#### Dell PowerEdge R730
+* 2x Intel Xeon E5-2650 v4 12x 2.2 GHz
+* 128 GB DDR4 ECC RAM
+* Storage controller: Dell HBA330 Mini Mono
+    * ZFS Pool zroot
+        * 2x 200 GB SAS SSD (OS, Jails) (RAID 1)
+    * ZFS Pool rpool
+        * 2x 6 TB SAS HDD (Data, VMs) (RAID 1)
+* GPU: Nvidia Tesla P4 8 GB GDDR5 Non-ECC RAM
+<!--
+    * ZFS Pool rpool
+        * 3x 6 TB SAS HDD (RAID 1)
+       	* 1x 200 GB SAS SSD (L2ARC)
+    * ZFS Pool backup 
+        * 2x 6 TB SAS HDD (RAID 1)
+* GPU: 2x Nvidia Tesla P100 16 GB HBM2 ECC RAM
+-->
+* OS: FreeBSD
+
+#### Juniper EX4200-24PX
+* Freescale PowerPC e500 1x 1 GHz
+* 1 GB ECC RAM
+* 1 GB Disk
+* OS: JunOS
+
+#### MikroTik RBD52G-5HacD2HnD-TC
+* Qualcomm IPQ-4018 4x 896 MHz
+* 128 MB Non-ECC RAM
+* 16 MB Disk
+* OS: RouterOS
+
+<!---
+#### Qotom Q20322G9
+* Intel Atom C3558 4x 2.0 GHz
+* 8 GB Non-ECC RAM
+* 256 GB Disk
+* OS: OpenBSD
+
+#### PC Engines apu2c4
+* AMD GX-412T 4x 1.00 GHz
+* 4 GB Non-ECC RAM
+* 16 GB M.2 SSD
+* OS: OpenWRT
+
+-->
+
+### EDC
+
+I'd rather prefer a (modular) smartphone running PostmarketOS, but sadly I
+invested a good amount of money into the walled garden of Apple, so I'm trapped
+there for the moment. I'm contemplating about a Fairphone 4 or a Mudita
+Kompakt, since I want to go minimal and break free from Apple.
+
+#### Apple iPhone12,8
+* Apple A13 Bionic 2x 2.70  GHz & 4x 1.80GHz
+* 3 GB Non-ECC RAM
+* 64 GB Disk
+* OS: iOS
+
+#### AiAiAi TMA-2 Move Wireless
+
+#### Casio GW-M5610U-ER
+
+#### Corsair Survivor Stealth v2, 64 GB
+
+#### Yubikey 5 NFC
+
+### Amateur radio
+
+#### Heltec LoRa 32 V3.2
+* ESP32-S3FN8 2x 240 MHz
+* 512 KB Non-ECC RAM
+* 8 MB Disk
+* FW: MeshCore
+* TX/RX: 470\~510 + 863\~928 MHz
+
+#### Raspberry Pi 3B+ & FrequencyLab MeshAdv Pi Hat v1.1
+* ARM Cortex-A53 4x 1.40 GHz
+* 1 GB Non-ECC RAM
+* 32 GB Disk
+* OS: Linux
+* TX/RX: 863~928 MHz
+
+#### RTL-SDR RTL2832U v4
+
+### Home entertainment
+
+#### Apple AudioAccessory5,1
+* Apple S5 2x 1.59 GHz
+* 1 GB Non-ECC RAM
+* 32 GB Disk
+* OS: audioOS
+
+#### Apple AppleTV6,2
+* Apple A10X Fusion 6x 2.30 GHz
+* 3 GB Non-ECC RAM
+* 32 GB Disk
+* OS: tvOS
+
+#### NEC UM301W
+
blob - /dev/null
blob + f00a6929ab8bf36144bddedcd175a28854c75ff5 (mode 644)
Binary files /dev/null and docs/images/centurion.png differ
blob - /dev/null
blob + bf28211751e18ea5a355a8fab773c077769bd8d1 (mode 644)
Binary files /dev/null and docs/images/favicon.png differ
blob - /dev/null
blob + f4cf2cbe242caa53cdeac71fa2bea38a55146d80 (mode 644)
Binary files /dev/null and docs/images/homelab.png differ
blob - /dev/null
blob + 81a515e880e7a78209d733fb337f503df2d16ee5 (mode 644)
Binary files /dev/null and docs/images/meditation.png differ
blob - /dev/null
blob + 62118c23c0bd35da790acccf216d2b8f4695eb33 (mode 644)
--- /dev/null
+++ docs/index.md
@@ -0,0 +1,80 @@
+       ________  ________  _______   ________  ________  ________  ________ 
+      ╱  ╱  ╱  ╲╱        ╲╱       ╲ ╱        ╲╱        ╲╱        ╲╱        ╲
+     ╱         ╱         ╱        ╱╱         ╱         ╱         ╱         ╱
+    ╱╱        ╱        _╱        ╱╱       --╱         ╱         ╱        _╱ 
+    ╲╲_______╱╲________╱╲________╱╲________╱╲________╱╲__╱__╱__╱╲________╱  
+
+# 「戦争を作るな、平和を作りましょう」
+> My internet is quieter than yours and [it&#8217;s trying to teach me something.]
+> &#8211; [solderpunk](https://zaibatsu.circumlunar.space/~solderpunk/)
+
+I'm a low-tech[^permacomputing], frugal living
+anarcho-communist[^solawi][^kropotkin], who admires UNIX[^unix]. I'm not a
+prepper, but nonetheless I'm going to be a amateur radio operator [^darc]. I'd
+like to see myself as a hacker[^hacker], but realistically I'm a bungler.
+
+I'm a late bloomer: I spent my 20&#8217;s with ████████ and my 30&#8217;s with
+pulling up my socks. Now I'm doing a retraining, to eventually become a network
+engineer. What will happen in my 40&#8217;s?
+
+In my freetime I read books, ride my [mountainbike](/bicycle) and sometimes
+sleep outdoors. I practice [sitting meditation](/meditation) - until now in
+half-lotus postion. I see myself as a complete phool: a piteous person that is
+on the way to ed(1)[^ed]. I&#8217;m a pedestrian and public transport passenger
+by conviction. I hate car culture. No, I&#8217;m not Greg[^greg]! 
+
+I started to play handpan. The sound of this instrument resonates deeply, since
+I heard the sound first over a decade ago when I was in a existential crisis.
+In the future I plan to obtain a custom handpan by 園部 良 (Ryo
+Sonobe)[^sonobe], or even an original Hang[^hang] - but this depends if I'm
+able to save enough money.
+
+At the moment I play a second-hand Metal Sounds Spacedrum Evolution: C - Deep
+Sky 7 + 1, 440 Hz. ~~I&#8217;m learning as best as I can about electronics and
+patch semi-modular synthesizers, abstaining from &#8220;eurocrack&#8221;.~~
+
+I&#8217;m a full-time teetotaler, lightening up with carbonated water. I enjoy
+instant (decaf) coffee with milk, especially in the morning and green tea as a
+contemplative moment. I'm trying to switch to barley tea. I need coffee to pull
+an all nighter or to start the day at 05:00 AM.
+
+My socialization were boy scouts, anime & manga and frequent visits to the
+book store. One can easily say that I was gullible in my early years. I&#8217;m
+mentally not capable to program in a low-level programming language. Before you
+wonder: my IQ seems to be equivalent to a vegetarian 炊き込みご飯 (takikomi
+gohan)[^takikomi]. I enjoy comedy and nature at the end of the week. I
+can&#8217;t handle a fast single-speed in traffic - yes, this is quite
+specific... 
+
+You may take a look at my [.plan](https://plan.cat/), read my
+[µblog](https://snac.asdfghasdfgh.de) or browse my [public ftp
+archive](ftp://asdfghasdfgh.de/pub). I used to hitchhike and travel; if you're
+interested, you may see my [visited
+countries](https://beeneverywhere.net/user/KJTW-7100).
+
+## Geekcode
+    -----BEGIN GEEK CODE BLOCK-----
+    Versiom: 3.20
+    G!(GTA) d---(dpu) s++:+ a?(--) c C(C++) B+(B?) L- u++
+    W-(++) H++(!H) 7?(--) w--(w) M+(M-) Z+ F+(-) PS+&#62;+++
+    PE(-) Y+&#62;++ PGP+&#62;+++ T--@ S+++(---) m++ J?  R*
+    tv&#62;!tv b+&#62;++ DI D+ e* h-- A++ r- !x+
+    ------END GEEK CODE BLOCK------
+
+## Legal notice
+If you need to contact me, please see the [RIPE
+database](https://apps.db.ripe.net/db-web-ui/lookup?source=ripe&key=ORG-MK227-RIPE&type=organisation).
+This website does not collect, store, or share any personal data. No cookies,
+tracking tools, or analytics services are used.
+
+[^permacomputing]: see [Permacomputing](https://permacomputing.net)
+[^solawi]: see ["Solidarische Landwirtschaft"](https://www.solidarische-landwirtschaft.org)
+[^kropotkin]: see [Кропоткин, Пётр Алексеевич: "La Conquête du Pain"](https://en.wikisource.org/wiki/The_Conquest_of_Bread)
+[^unix]: see ["Ken Thompson & Dennis Ritchie"](ftp://asdfghasdfgh.de/pub/ken-thompson-and-dennis-ritchie.jpg)
+[^darc]: see [DARC](https://www.darc.de/der-club/distrikte/f/ortsverbaende/03/funkamateur-werden/)
+[^hacker]: see [RFC 1392](https://datatracker.ietf.org/doc/html/rfc1392#page-21)
+[^ed]: see [Lucas, Michael W.: "Ed Mastery"](https://www.amazon.de/Ed-Mastery-Standard-Unix-Editor/dp/1642350036)
+[^greg]: see [Venetian Snares: "Greg Hates Car Culture"](https://venetiansnares.bandcamp.com/album/greg-hates-car-culture-20th-anniversary)
+[^sonobe]: see [Sonobe Handpans](https://www.sonobe-handpan.com/?lang=en)
+[^hang]: see [PANArt Hang](https://panart.ch/de/instrumente/klangskulptur-hang)
+[^takikomi]: see [Jisho.org](https://jisho.org/search/%E7%82%8A%E3%81%8D%E8%BE%BC%E3%81%BF%E3%81%94%E9%A3%AF)
blob - /dev/null
blob + 02bcda8957773fea819154f87cb486a88a1d371d (mode 644)
--- /dev/null
+++ docs/junkyard.md
@@ -0,0 +1,322 @@
+# Junkyard
+## Hardware I've abandoned
+
+### 2026
+
+#### Dell PowerEdge R530
+* Swapped the CPU to R730
+* Swapped the RAM to R730
+* Swapped the disks to R730
+
+#### Nintendo DMG-01
+* Sharp SM83 1x 4.19 MHz
+* 8 KB Non-ECC RAM
+* ROM: InsideGadgets 2 MB ROM, 32 KB FRAM v2.2
+
+#### Great Scott Gadgets HackRF One
+* ARM Cortex-M4 + Cortex-M0 2x 204 MHz
+* 200 KB Non-ECC RAM
+* TX/RX: 1~6000 MHz
+
+### 2025
+#### PC Engines apu1c4
+* AMD G-T40E 2x 1.00 GHz
+* 4 GB Non-ECC RAM
+* 64 GB M.2 SSD
+
+#### Texas Instruments BeagleBone Black
+* ARM Cortex-A8 1x 1.00 GHz
+* 512 MB Non-ECC RAM
+* 4 GB Disk
+
+#### Apple Watch5,9
+* Apple S5 2x 1.50 GHz
+* 1 GB Non-ECC RAM
+* 32 GB Disk
+
+#### Motorola C118
+* ARM7TDMI 1x 66 MHz~100 MHz
+* 256 KB Non-ECC RAM
+* 0 MB Disk
+
+#### Supermicro H8SML-i
+* AMD Opteron 3350 HE 4x 2.80 GHz
+* 8 GB ECC RAM
+* 2x 128 GB + 4x 4 TB Disk
+
+### 2024
+#### MikroTik RB962UiGS-5HACT2HNT
+* Qualcomm Atheros QCA9558 1x 720 MHz
+* 128 MB Non-ECC RAM
+* 16 MB Disk
+
+#### RTL-SDR RTL2832U v3
+* RTL2832U
+* No RAM
+* RX: 0.5~1700 MHz
+
+#### Blackberry Q10
+* Qualcomm Snapdragon S4 2x 1.50 GHz
+* 2 GB Non-ECC RAM
+* 16 GB Disk
+
+#### Apple iPhone10,4
+* Apple A11 Bionic 2x 2.40 GHz & 4x 1.40 Ghz
+* 2 GB Non-ECC RAM
+* 64 GB Disk
+
+#### HP t620
+* AMD GX-415G 4x 1.50 GHz
+* 8 GB Non-ECC RAM
+* 256 GB Disk
+
+#### Apple iPhone9,3
+* Apple A10 Fusion 4x 2.34 GHz
+* 2 GB Non-ECC RAM
+* 32 GB Disk
+
+#### Brother MFC-7360N
+* ARM9 1x 200 MHz
+* 32 MB Non-ECC RAM
+* Host-based (GDI)
+
+#### Tecsun PL-380
+* Silicon Labs Si4734
+* Unknown RAM
+* RX: 0.153\~0.513 + 0.522\~1.62 + 2.3\~21.95 + 87\~108 MHz
+
+#### Apple iMac14,3
+* Intel Core i7-4770S 4x 3.10 GHz
+* 16 GB Non-ECC RAM
+* 1 TB Disk
+
+#### Commodore 64 ("ALDI")
+* MOS 8500 1x 0.985 MHz
+* 64 KB Non-ECC RAM
+* 64 MB Disk ("EasyFlash\xc2\xb3")
+
+#### Casio GW-M5610-1
+* Quartz logic
+* Hybrid solar + battery
+* RX: 0.04 + 0.06 + 0.685 + 0.0775 MHz
+
+#### CircuitMess Ringo
+* ESP32 Xtensa LX6 2x 160 MHz
+* 520 KB Non-ECC RAM
+* 4 MB Disk
+
+### 2023
+#### Apple iPhone12,8
+* Apple A13 Bionic 6x 2.66 GHz
+* 3 GB Non-ECC RAM
+* 64 GB Disk
+
+#### Apple iMac9,1
+* Intel Core 2 Duo E8135 2x 2.66 GHz
+* 8 GB Non-ECC RAM
+* 320 GB Disk
+
+#### Brother DCP-7055W
+* ARM9 1x 200 MHz
+* 32 MB Non-ECC RAM
+* Host-based (GDI)
+
+#### Apple TV3,2
+* Apple A5 1x 1.00 GHz
+* 512 MB Non-ECC RAM
+* 8 GB Disk
+
+#### Nokia DBox2
+* Motorola MPC823 1x 66 MHz
+* 32 MB Non-ECC RAM
+* 8 MB Disk
+
+#### Blackberry Classic
+* Qualcomm Snapdragon S4 Plus 2x 1.50 GHz
+* 2 GB Non-ECC RAM
+* 16 GB Disk
+
+#### Apple MacBookPro12,1
+* Intel Core i5-5257U 2x 2.90 GHz
+* 16 GB Non-ECC RAM
+* 512 GB Disk
+
+#### Toughbook CF-19 MK1
+* Intel Core Duo U2400 2x 1.06 GHz
+* 2 GB Non-ECC RAM
+* 128 GB Disk
+
+#### Kenwood R-1000
+* No CPU - analog
+* No RAM - analog
+* RX: 0.2-30 MHz
+
+### 2022
+#### Nokia 800 Tough
+* Qualcomm Snapdragon 205 2x 1.30 GHz
+* 512 MB Non-ECC RAM
+* 4 GB Disk
+
+#### PC Engines alix2d3
+* AMD Geode LX800 1x 500 MHz
+* 256 MB Non-ECC RAM
+* 32 GB Disk
+
+#### Albrecht AE69-2H
+* SMD SL5018
+* Unknown RAM
+* RX: 28-88 + 137-174 + 406-512 MHz
+
+#### CAT B35
+* Qualcomm Snapdragon 205 2x 1.30 GHz
+* 512 MB Non-ECC RAM
+* 4 GB Disk
+
+#### Edision OS Nino+
+* Mips Broadcom BCM73625 2x 742 MHz
+* 512 MB Non-ECC RAM
+* 512 MB Disk
+
+#### Apple iPhone6,1
+* Apple A7 CPU 2x 1.3 GHz
+* 1 GB Non-ECC RAM
+* 32 GB Disk
+
+#### Lenovo ThinkPad X250
+* Intel Core i5-5300U 2x 2.90 GHz
+* 8 GB Non-ECC RAM
+* 128 GB Disk
+
+### 2018
+#### Apple MacBookAir3,1
+* Intel Core 2 Duo2x 1.40 GHz
+* 2 GB Non-ECC RAM
+* 128 GB Disk
+
+#### Raspberry Pi 3B+
+* ARM Cortex-A53 4x 1.40 GHz
+* 1 GB Non-ECC RAM
+* 32 GB Disk
+
+#### Brother HL-2035
+* SPARClite 1x 96 MHz
+* 8 MB Non-ECC RAM
+* Host-based (GDI)
+
+#### Lenovo ThinkCentre M70e
+* Intel Core 2 Duo E7500 2x 2.93 GHz
+* 4 GB Non-ECC RAM
+* 250 GB Disk
+
+#### Sony PlayStation 3
+* STI PowerPC 1x 3.20 GHz
+* 256 MB Non-ECC RAM
+* 60 GB Disk
+
+#### Sony PlayStation 2
+* MIPS R5900 1x 294.912 MHz
+* 32 MB Non-ECC RAM
+* 8 MB Disk
+
+#### Lenovo ThinkPad X200
+* Intel Core 2 Duo P8600 2x 2.40 GHz
+* 2 GB Non-ECC RAM
+* 120 GB Disk
+
+#### CAT B25
+* MediaTek MT6235 1x 208 MHz
+* 256 MB Non-ECC RAM
+* 512 MB Disk
+
+#### Raspberry Pi B+
+* ARM ARM1176JZF-S 1x 700 MHz
+* 512 MB Non-ECC RAM
+* 32 GB Disk
+
+### "A long time ago..."
+#### Samsung E1200
+* Unknown CPU 1x 156 MHz
+* Unknown RAM
+* 32 MB Disk
+
+#### Samsung E1070
+* Unknown CPU
+* Unknown RAM
+* 10 MB Disk
+
+#### Dell Inspiron Mini 910
+* Intel Atom N270 1x 1.60 GHz
+* 1024 MB Non-ECC RAM
+* 8 GB Disk
+
+#### Motorola DEFY+
+* TI OMAP 3620 1x 1.0 Ghz
+* 512 MB Non-ECC RAM
+* 3 GB Disk
+
+#### Lenovo ThinkPad X61
+* Intel Core 2 Duo L7500 2x 1.60 GHz
+* 2 GB Non-ECC RAM
+* 128 GB Disk
+
+#### Toshiba Satellite 2410
+* Intel Pentium 4 M 1x 2.00 GHz
+* 512 MB Non-ECC RAM
+* 30 GB Disk
+* NOTE: Unsure about specific model and hardware specification - could maybe have been a 1800...
+
+#### Compaq Deskpro EN
+* Intel Pentium III 1x 1.00 GHz
+* 338 MB Non-ECC RAM
+* 20 GB Disk
+* NOTE: Unsure about specific model and hardware specification...
+
+#### Apple PowerBook5,6
+* PowerPC 7447A 1x 1.67 GHz
+* 512 MB Non-ECC RAM
+* 80 GB Disk
+
+#### Microsoft XBOX
+* Intel Pentium III 1x 733 MHz
+* 64 MB Non-ECC RAM
+* 8 GB Disk
+
+#### Sony Ericsson C901
+* Unknown CPU
+* Unknown RAM
+* 110 MB Disk
+
+#### Nokia 3310
+* Unknown 1x 13 MHz
+* 4 KB Non-ECC RAM
+* 1 KB Disk
+
+#### Apple PowerMac2,1
+* PowerPC 750 1x 350 MHz
+* 64 MB Non-ECC RAM
+* 10 GB Disk
+
+#### Nokia 2110
+* 1x 6 MHz CPU
+* 96 KB Non-ECC RAM
+* Unknown Disk
+
+#### Sony PlayStation 1
+* MIPS R3051 1x 33.8688 MHz
+* 2 MB Non-ECC RAM
+* 128 KB Disk
+
+#### Nintendo 64
+* NEC VR4300 1x 93.75 MHz
+* 8 MB Non-ECC RAM ("Expansion Pak")
+* 4-64 MB ROM
+
+#### Sega Game Gear
+* Zilog Z80 1x 3.58 MHz
+* 8 KB Non-ECC RAM
+* 128 KB-4 MB ROM
+
+#### Sega Mega Drive
+* Motorola 68000 1x 7.6 MHz
+* 64 KB Non-ECC RAM
+* 256 KB-4 MB ROM
blob - /dev/null
blob + 6f57469f8af65497fa11992420a4e7584e8d13e0 (mode 644)
--- /dev/null
+++ docs/library.md
@@ -0,0 +1,225 @@
+# Library
+
+## Books I've (half-)finished
+
+<!--
+### Planned to read the coming months
+* Aitken, Robert & Steindl-Rast, David: Der spirituelle Weg - Zen-Buddhismus und Christentum im täglichen Leben - Ein Dialog
+* Blofeld, John: The Zen Teaching of Huang Po - On the Transmission of Mind
+* Borsig, Margarete von: Lotos-Sutra - Sutra von der Lotosblume des wunderbaren Gesetzes
+* Greyson, Dr. Bruce: After - A Doctor Explores What Near-Death Experiences Reveal About Life and Beyond
+* Hadamitzky, Wolfgang: Kanji und Kana 1: Handbuch der japanischen Schrift
+* Nyanatiloka: Buddhistisches Wörterbuch
+* Nagai, Hitoshi: Penetre & ich - Philosophie für ein glückliches Lebens
+* Shumucho, Sotoshu: Ōryōki - The Practice of the Eating Bowl
+* Golzio, Karl-Heinz: Lankavatara-Sutra - Die Lehre von der höchsten Bewußtheit und absoluten Erkenntnis.
+-->
+
+### Currently lying on the bedside table
+* Cleary, Thomas: No Barrier - Unlocking the Zen Koan
+* Dōgen Zenji, Eihei: Shōbōgenzō - Die Schatzkammer des wahren Dharma-Auges, Band I
+* Rosenberg, Marshall B.: Konflikte lösen durch Gewaltfreie Kommunikation
+* Suzuki, Daisetz Teitaro & Fromm, Erich: Zen-Buddhismus und Psychoanalyse
+* Suzuki, Daisetz Teitaro: Studies in the Lankavatara Sutra
+* Suzuki, Daisetz Teitaro: The Lankavatara Sutra
+
+### 2026
+* Hilbrecht, Heinz: Meditation und Gehirn - Alte Weisheit und moderne Wissenschaft
+* Nishijima, Gudo Wafu & Bailey, Jeffrey Alan: To Meet the Real Dragon - Seeking the Truth in a World of Chaos
+* Watzlawick, Paul: Wie wirklich ist die Wirklichkeit? Wahn - Täuschung - Verstehen
+
+### 2025
+* Bielefeldt, Carl: Dogen's Manuals of Zen Meditation
+* Niwano, Nikkyo: Buddhismus für Heute - Eine moderne Darstellung des Dreifachen Lotus Sutra
+* Sawaki, Kodo: Tag für Tag ein guter Tag
+* Suzuki, Daisetz Teitaro: Manual of Zen Buddhism
+
+### 2024
+* Aitken, Robert: Zen als Lebenspraxis
+* Carr, Allen: Endlich Nichtraucher!
+* Dhammika, Bhante Shravasti: Broken Buddha - Plädoyer für einen neuen Buddhismus
+* Hanh, Thich Nhat: The Heart of Buddha's Teaching - Transforming Suffering into Peace, Joy, and Liberation
+* Porter, Bill: The Zen Teaching of Bodhidharma
+* Sawaki, Kodo: An Dich - Zen-Sprüche
+* Suzuki, Daisetz Teitaro: The Zen Doctrine Of No-Mind - The Significance of the Sutra of Hui-neng
+* Suzuki, Shunryu: Zen Mind, Beginner's Mind - Informal talks on Zen meditation and practice
+* ewk: Not Zen - A Zen Revolution. How the mysterious transmission of some old men was interrupted; explained mostly in their own words
+
+### 2023
+* Braden, Gregg: Fractal Time - Das Geheimnis von 2012 und wie ein neues Zeitalter beginnt
+
+### 2021
+* Dirie, Waris: Wüstenblume
+* Jankowski, Franz: Die NS-Vergangenheit in der Heil- und Pflegeanstalt Wiesloch
+* Nesbø, Jo: Der Schneemann
+* Vine, Barbara: Das Geburtstagsgeschenk
+* Zuiker, Anthony E. & Swierczynski, Duane: Level 26 - Dark Origins
+
+### 2020
+* Gibson, William: Neuromancer
+* Rosenblatt, Bill & Robbins, Arnold: Learning the Korn Shell
+
+### 2019
+* Hawkins, Paula: The Girl on the Train
+* Jonasson, Jona: Die Analphabetin, die rechnen konnte
+
+### 2018
+* Foer, Jonathan Safran: Tiere essen
+* Murakami, Haruki: Hard-Boiled-Wonderland
+* Murakami, Haruki: Kafka am Strand
+* Murakami, Haruki: Sputnik Sweetheart
+* NOFX & Aulis, Jeff: NOFX - The Hepatitis Bathtub and other Stories
+* Restrepo, Laura: Die dunkle Braut
+
+### "A long time ago..."
+* Abbey, Edward: Die Monkey Wrench Gang
+* Adams, Douglas: Dirk Gently's Holistic Detective Agency
+* Adams, Douglas: The Hitchhiker Trilogy
+* Aitken, Robert & Steindl-Rast, David: Der spirituelle Weg - Zen-Buddhismus und Christentum im täglichen Leben - Ein Dialog
+* Allen, Gary: Die Insider
+* Arendt, Hannah: Adolf Eichmann: Die Banalität des Bösen
+* Beckett, Samuel: Warten auf Godot
+* Berkewicz, Ulla: Vielleicht werden wir ja verrückt - Eine Orientierung in vergleichendem Fanatismus
+* Bock, Thilo: Die geladene Knarre von Andreas Baader
+* Borsig, Margarete von: Lotos-Sutra - Sutra von der Lotosblume des wunderbaren Gesetzes
+* Bradbury, Ray: Der illustrierte Mann
+* Bradbury, Ray: Fahrenheit 451
+* Broder, Henryk M.: Hurra, wir kapitulieren!
+* Brown, Dan: Illuminati
+* Brown, Dan: Sakrileg
+* Bukowski, Charles: Faktotum
+* Camus, Albert: The Outsider
+* Charles Bukowski: Held außer Betrieb - Storys und Essays
+* Cioran, E.M.: Gevierteilt
+* Cioran, E.M.: Syllogismen der Bitterkeit
+* Cohelo, Paul: Auf dem Jakobsweg
+* Crimethinc! Collective: Work
+* Däniken, Erich: Beweise - Lokaltermin in fünf Kontinenten
+* Döblin, Alfred: Die Ermordung einer Butterblume und andere Erzählungen
+* Doctorow, Cory: Backup
+* Dōgen Zenji, Eihei: Shōbōgenzō - Die Schatzkammer des wahren Dharma-Auges
+* Donald, Mac Kyle: One Red Paperclip: Biete Büroklammer – suche Haus. Die verrückteste Internet-Tauschaktion der Welt
+* Dürrenmatt, Friedrich: Die Physiker
+* Ende, Michael: Die unendliche Geschichte
+* Ende, Michael: Jim Knopf
+* Ende, Michael: Jim Knopf und die wilde 13
+* Ergün, Mutlu: Kara Günlük
+* Fang, Weigui:  Das Internet und China
+* Fo, Dario: Accidental Death of an Anarchist
+* Freely, John: Istanbul - The Imperial City
+* Frisch, Max: Homo Faber
+* Gandhi, Mahatma: Mein Leben
+* George, Andrew: The Epic of Gilgamesh
+* Goethe, Johann Wolfgang: Faust
+* Goetz, Rainald: Irre
+* Goetz, Rainald: Kontrolliert
+* Greyson, Dr. Bruce: After - A Doctor Explores What Near-Death Experiences Reveal About Life and Beyond
+* Hadamitzky, Wolfgang: Kanji und Kana 1: Handbuch der japanischen Schrift
+* Henshall, Kenneth G.: A Guide to Remembering Japanese Characters
+* Hesse, Hermann: Narziss und Goldmund
+* Hesse, Hermann: Siddartha
+* Hesse, Hermann: Steppenwolf
+* Hessel, Stephane: Empört Euch!
+* Hofmann, Albert: LSD - Mein Sorgenkind
+* Hohlbein, Wolfgang: Am Abgrund - Die Chronik der Unsterblichen
+* Huxley, Aldous: Die Pforten der Wahrnehmung
+* Ibes, Norbert: Der leere Spiegel - Erfahrungen in einem japanischen Zen-Kloster
+* Jackson, Steve: Das Höllenhaus
+* Joos, Richard & Jorberg, Randolf & Gönnermann, Axel: gulli wars™ - underground piratainment since 1998
+* Kafka, Franz: Briefe an den Vater
+* Kafka, Franz: Die Verwandlung
+* Kalweit, Holger: Die Welt der Schamanen - Traumzeit und innerer Raum
+* Kapuscinski, Ryszard: Imperium
+* Katzenbach, John: Die Grausamen
+* Kerouac, Jack: On the Road
+* Kilmister, Lemmy & Garza, Janiss: White Line Fever - The Autobiography
+* Klima, Ivan: My Golden Trades
+* Klupp, Thomas: Paradiso
+* Knuf, Andreas & Tilly, Christian: Borderline, das Selbsthilfebuch
+* Kuhlmann, Heinz W.: Das dreifache Lotos-Sûtra
+* Kulla, Daniel: Entschwörungstheorie
+* Kulla, Daniel: Leben im Rausch
+* Kundera, Milan: Die unerträgliche Leichtigkeit des Seins
+* Kundera, Milan: Die Unsterblichkeit
+* La Rochefoucauld, François de: Reflexionen oder Sentenzen und moralische Maximen
+* Lanier, Jaron: You Are Not a Gadget
+* Leary, Timothy: Höhere Intelligenz und Kreativität
+* Leary, Timothy: NeuroLogic
+* Lem, Stanislaw: Die Ratte im Labyrinth
+* Lem, Stanislaw: Die Technologiefalle
+* Lem, Stanislaw: Provokationen
+* Lessing, Gotthold Ephraim: Emilia Galotti
+* Lewycka, Marina: Das Leben kleben
+* Lovecraft, H. P. - Das Ding auf der Schwelle
+* M., Adam: "Mein Name ist Adam ..." - Ein Bericht über Jahre der Abhängigkeit
+* Machfus, Nagib: Das Hausboot am Nil
+* Mann, Thomas: Der Tod in Venedig
+* Marcos, Subcomandante: Botschaften aus dem lakadonischen Urwald
+* Marquez, Gabriel Garcia: Chronik eines angekündigten Todes
+* Marquez, Gabriel Garcia: Die Liebe in den Zeiten der Cholera
+* Mascaró, Juan: The Dhammapada
+* Moers, Walter: Die 13 1/2 Leben des Käpt'n Blaubär
+* Moers, Walter: Ensel und Kretel
+* Moers, Walter: Rumo & Die Wunder im Dunkeln
+* Morris, Desmon: Der nackte Affe
+* Mulder, Merle: Straight Edge - Subkultur, Ideologie, Lebensstil?
+* Müller, Herta: Herztier
+* Murakami, Ryu: Piercing
+* Neudeck, Rupert: Afghanistan - Politische Expeditionen. Mit einem Überblick zur Geschichte Afghanistans
+* Nicholls, Stan: Die Orks
+* Nietzsche, Friedrich: Also sprach Zarathustra
+* Niwano, Nikkyo: Buddhismus für Heute - Eine moderne Darstellung des Dreifachen Lotus Sutra
+* Noack, Hans-Georg: Rolltreppe abwärts
+* Palahniuk, Chuck: Fight Club
+* Perez & Alejchem, Scholem: Ein Zwiegespräch
+* Pilnjak, Boris: Von Wölfen und Maschinen
+* Pirsig, Robert M.: Zen und die Kunst ein Motorrad zu warten
+* Prime, Ranchor: Cows and the Earth - A Story of Kinder Dairy Farming
+* Radner, Karen: Mesopotamien - Die frühen Hochkulturen an Euphrat und Tigris
+* Rapp, Tobias: Lost and Sound - Berlin, Techno und der Easyjetset
+* Reza, Hajatpour: Der brennende Geschmack der Freiheit - Mein Leben als junger Mullah im Iran
+* Rimbaud, Penny: Shibboleth
+* Roberts, Jane: Gespräche mit Seth - Von der ewigen Gültigkeit der Seele
+* Rory, Stewart: So weit die Knie tragen - Mein Fußmarsch durch Afghanistan
+* Rowling, J.K.: Harry Potter und der Gefangene von Askaban
+* Rowling, J.K.: Harry Potter und der Stein der Weisen
+* Rowling, J.K.: Harry Potter und die Kammer des Schreckens
+* Rushkoff, Douglas: Chaos Kids
+* Rushkoff, Douglas: Cyberia
+* Saint-Exupéry, Antoine de: Der kleine Prinz
+* Salinger, J.D.: Der Fänger im Roggen
+* Salvatore, R.A.: Star Wars: Das Erbe der Jedi-Ritter 1 - Die Abtrüninngen
+* Saramago, Jose: Die Stadt der Blinden
+* Saramago, Jose: Die Stadt der Sehenden
+* Saramago, Jose: Kain
+* Satre, Jean Paul: Der Ekel
+* Satre, Jean Paul: Die Hölle, das sind die anderen
+* Satre, Jean Paul: Geschlossene Gesellschaft
+* Schiller, Friedrich: Die Räuber
+* Schiller, Friedrich: Wilhelm Tell
+* Schmidt, Christian Y.: Zum ersten Mal tot - achtzehn Premieren
+* Scholl, Inge: Die weiße Rose
+* Schwarz, Friedhelm: Nestle - Macht durch Nahrung
+* Sedaris, David: Schöner wird's nicht
+* Selius, Christine: Das kleine Tee-Abc
+* Shumucho, Sotoshu: Ōryōki - The Practice of the Eating Bowl
+* Stackpole, Michael: Star Wars: X-Wing - Angriff auf Coruscant
+* Stackpole, Michael: Star Wars: X-Wing - Die Mission der Rebellen
+* Stackpole, Michael: Star Wars: X-Wing - Die teuflische Falle
+* Stephenson, Neal: Diamond Age
+* Stephenson, Neal: Snow Crash
+* Stoker, Bram: Dracula
+* Stowasser, Horst: Leben ohne Chef und Staat - Träume und Wirklichkeit der Anarchisten
+* Stross, Charles: Accelerando
+* Suzuki, Daisetz Teitaro: Manual of Zen Buddhism
+* Tolkien, J.R.R.: Der Herr der Ringe
+* Tolkien, J.R.R.: Der Hobbit
+* Trojanow, Illja: Gebrauchsanweisung für Indien
+* Vesper, Bernhard: Die Reise
+* Virilio, Paul: The Information Bomb
+* Watzlawick, Paul: Anleitung zum Unglücklichsein
+* Weizenbaum: Computermacht und Gesellschaft
+* Wichtalls, Clint: Die Pille und ich - Ein Mann im Selbstversuch
+* Williams, Tad: Die Insel des Magiers
+* Williams, Tad: Otherland - Stadt der goldenen Schatten
+* Zweig, Stefan: Die Schachnovelle
blob - /dev/null
blob + b3eaff5001d41e2151d44d7efa771b39f6ceebe3 (mode 644)
--- /dev/null
+++ docs/meditation.md
@@ -0,0 +1,42 @@
+# Meditation
+
+## Breathing in, breathing out
+
+> I'm a simple person - there is a zendo: I go there and sit.
+> - as noted by myself in ##buddhism on libera.chat
+[^irc]
+
+![dithered b/w photo of my meditation place](/images/meditation.png)
+
+More verbose explanation about my practice:
+
+I'm a practicing layperson, not having received a formal ceremony, 受戒
+(jukai), but still maintaining the minimal ethical standards of
+Buddhism, namely the "Five Precepts" (AN 8:39)[^an8-39].
+
+I follow the Soto Zen sect, but as for following traditions, I point to
+the "10 Basic Points"[^10-points] and was pointed to Kālāma Sutta (AN 3:65)[^an3-65]. I
+practice sitting meditation, because it is simple and minimal: you sit
+and "[verify] that the eyes are horizontal and the nose is vertical"[^antaiji]
+- that's it; not much cluttering your view.
+
+What follows after the sitting (e.g.: reading sutras) is your concern as
+long as it's not obstructing the clear view of the "Three marks of
+existence", त्रिलक्षण (trilakṣaṇ). I practice sitting meditation at home
+as often as I'm able to. If I'm sitting, I usually sit in the 護魔座
+(gomaza) posture in 半跏趺坐 (hanka-fuza).
+
+After stumbling upon the practices of 真向法 (makko-ho) in a translated copy of
+Robert Aitken's "Taking the Path of Zen" I usually try to end my day with these
+four excersises by Wataru Nagai, before I practice aforementioned sitting
+meditation.
+
+~~Every Friday evening I meditate with a local sangha. I used to meditate every
+first Tuesday in the month, but due to circumstances I'm not able to attend this
+session anymore.~~
+
+[^irc]: see [##Buddhism](irc://libera.chat/##buddhism)
+[^an8-39]: see ["AN 8:39"](https://www.accesstoinsight.org/tipitaka/an/an08/an08.039.than.html)
+[^10-points]: see ["10 Basic Points"](ftp://asdfghasdfgh.de/pub/10-basic-points.txt)
+[^an3-65]: see ["AN 3:65"](https://www.accesstoinsight.org/ati/tipitaka/an/an03/an03.065.than.html)
+[^antaiji]: see [Antaiji](https://antaiji.org/en/services/いま自殺しようと思いつめている人へ-内山興正著/)
blob - /dev/null
blob + 154d0cb87fa4cfe6499fb2e9225232b71f64df14 (mode 644)
--- /dev/null
+++ docs/network.md
@@ -0,0 +1,81 @@
+# Network
+<!--
+## Freifunk
+
+I'm (finally) getting into this mesh, after experimenting with Mesh{Core,tastic} and buying an apu2c4, after I decomissioned an apu1c4, since I thought I don't have any use for anymore (._.;)
+
+Item | Description
+--|---
+ID | ???
+Role | Node
+Hardware | PC Engines apu2c4
+ | Broadcom BCM43465
+ | [Interline IP-G10-F2458-M](https://interline.pl/antennas/PANEL-10-DUAL-BAND-MU-MIMO-4x4)
+Location | Outside my living room (2nd floor).
+-->
+
+## MeshCore
+I started getting into this network at the beginning of '26. I'm still
+evaluating my options (Meshtastic vs. MeshCore, Meshcom, (LoRa-)APRS,
+Reticulum), but for now I'm exploring and learning about MeshCore. Currently I
+run a repeater and companion node:
+
+| | Repeater | Companion |
+:--- | --- | --- |
+ID | DE-BW-MA mk@mesh.home.arpa | DE-BW-MA mk@road.home.arpa |
+Role | Repeater | Companion |
+Hardware | Raspberry Pi 3B+ | Heltec LoRa 32 V3.2 |
+|  | [MeshAdv Pi Hat v1.1](https://github.com/chrismyers2000/MeshAdv-Pi-Hat) |
+|  | [Interline IH-G08-F8688-V2](https://interline.pl/de/taxonomy/term/10) |
+Location | Outside my kitchen (2nd floor) | EDC |
+
+The other option for a *really* EDC is a Seeed T1000-E/RAK WisMesh Tag. If I'm
+able to buy/build a DIY solar repeater, I'm going to mount it somewhere in the
+[Odenwald](https://analyzer.letsmesh.net/map?lat=49.57705&long=8.93442&zoom=9)
+or Mannheim. But I have to look into my options...
+
+### AS213674
+I've been assigned this ASN by RIPE NCC, and have additionally control over a
+IPv6 PA space - 2a0e:8f02:2050::/44 - after applying with a LIR, namely
+freetransit.ch. ~~More information will be available on
+[as213674.net](https://as213674.net).~~
+
+## Network infrastructure
+### vps-ams.asdfghasdfgh.de
+This webpage you're reading is essentially vps-ams, hosted with
+[OpenBSD.amsterdam](https://openbsd.amsterdam) in Amsterdam, North Holland,
+Netherlands. I'm very happy with Mischa's services.
+
+vps-ams serves HTTP and DNS ("ns1.asdfghasdfgh.de") requests for my domain
+asdfghasdfgh.de.
+
+### vps-ber.asdfghasdfgh.de
+The second server is hosted with [IN-Berlin e.V.](https://in-berlin.de) in
+Berlin, Land Berlin,  Germany.
+
+vps-ber.asdfghasdfgh.de is running OpenBSD, via KVM. It's running nsd
+("ns2.asdfghasdfgh.de") and a BGP session, announcing one of the ::/48's prefix.
+
+Initally I tried to apply for an {oracle,vultr}.com free tier for the second
+server, but they declined my prepaid credit card :-( Seems I'm too much of a
+peasent for corporations.
+
+~~I plan to expand with my ASN to [iFog GmbH](https://ifog.ch), [Servperso
+Systems](https://servperso.net) & [ParadoxNetworks](https://pdxnet.co.uk) to
+further announce ::/48's.~~
+
+### in.asdfghasdfgh.de
+My network at home - connected via IKEv2/IPSec to both VPS'. If the DSL line
+fails, the router has a Sierra Wirelss EM7455, umb(4) as a fallback, controlled by
+ifstated(8). The APN is DTAG with a SIM from [fraenk](https://fraenk.de). The
+router is connected to a Smart-UPS (APC SC420), to gracefully shutdown in a case
+of power outage. The DSL line is a 100/40 MBit landline from [Maingau
+Energie](https://maingau-energie.de) - from which I also get my electricity.
+
+### ts.asdfghasdfgh.de
+My [Headscale](https://headscale.net) network - every device I own is connected
+to this mesh network.  Since I don't trust companies fully (and want to
+mitigate blocking of tailscale.com by corporate firewalls), I've set this up
+and use it as a overlay network, also having a working, company-independent,
+"legacy" IKEv2/IPSec configuration, especially for OSPF, since Wireguard has
+problems with IPv6.
blob - /dev/null
blob + 0c24023a3d1b02b3b397a292bdd94b214302a133 (mode 644)
--- /dev/null
+++ docs/robots.txt
@@ -0,0 +1,95 @@
+# Block all known AI crawlers and assistants
+# from using content for training AI models.
+# Source: https://robotstxt.com/ai
+User-Agent: GPTBot
+User-Agent: ClaudeBot
+User-Agent: Claude-User
+User-Agent: Claude-SearchBot
+User-Agent: CCBot
+User-Agent: Google-Extended
+User-Agent: Applebot-Extended
+User-Agent: Facebookbot
+User-Agent: Meta-ExternalAgent
+User-Agent: Meta-ExternalFetcher
+User-Agent: diffbot
+User-Agent: PerplexityBot
+User-Agent: Perplexity‑User
+User-Agent: Omgili
+User-Agent: Omgilibot
+User-Agent: webzio-extended
+User-Agent: ImagesiftBot
+User-Agent: Bytespider
+User-Agent: TikTokSpider
+User-Agent: Amazonbot
+User-Agent: Youbot
+User-Agent: SemrushBot-OCOB
+User-Agent: Petalbot
+User-Agent: VelenPublicWebCrawler
+User-Agent: TurnitinBot
+User-Agent: Timpibot
+User-Agent: OAI-SearchBot
+User-Agent: ICC-Crawler
+User-Agent: AI2Bot
+User-Agent: AI2Bot-Dolma
+User-Agent: DataForSeoBot
+User-Agent: AwarioBot
+User-Agent: AwarioSmartBot
+User-Agent: AwarioRssBot
+User-Agent: Google-CloudVertexBot
+User-Agent: PanguBot
+User-Agent: Kangaroo Bot
+User-Agent: Sentibot
+User-Agent: img2dataset
+User-Agent: Meltwater
+User-Agent: Seekr
+User-Agent: peer39_crawler
+User-Agent: cohere-ai
+User-Agent: cohere-training-data-crawler
+User-Agent: DuckAssistBot
+User-Agent: Scrapy
+User-Agent: Cotoyogi
+User-Agent: aiHitBot
+User-Agent: Factset_spyderbot
+User-Agent: FirecrawlAgent
+User-Agent: bedrockbot
+User-Agent: DeepSeekBot
+User-Agent: GoogleAgent-Mariner
+User-Agent: Gemini-Deep-Research
+User-Agent: Google-NotebookLM
+User-Agent: Google-Agent
+User-Agent: GoogleAgent-URLContext
+User-Agent: Google-Firebase
+User-Agent: MistralAI-User
+User-Agent: SemrushBot-FT
+User-Agent: SemrushBot-ESI
+User-Agent: AddSearchBot
+User-Agent: bigsur.ai
+User-Agent: Brightbot
+User-Agent: Crawlspace
+User-Agent: EchoboxBot
+User-Agent: FriendlyCrawler
+User-Agent: LinerBot
+User-Agent: Panscient
+User-Agent: Panscient.com
+User-Agent: Poseidon Research Crawler
+User-Agent: SBIntuitionsBot
+User-Agent: TerraCotta
+User-Agent: Thinkbot
+User-Agent: Yak
+User-Agent: YandexAdditional
+User-Agent: YandexAdditionalBot
+
+Disallow: /
+DisallowAITraining: /
+
+# Block any non-specified AI crawlers (e.g., new
+# or unknown bots) from using content for training
+# AI models, while allowing the website to be
+# indexed and accessed by bots.  These directives
+# are still experimental and may not be supported
+# by all AI crawlers.
+User-Agent: *
+DisallowAITraining: /
+Content-Usage: ai=n
+Content-Signal: search=yes, ai-input=no, ai-train=no
+Allow: /
blob - /dev/null
blob + 41c3fa5a135ed54c68a16cd15e61c4124cc174a8 (mode 644)
--- /dev/null
+++ docs/stylesheets/extra.css
@@ -0,0 +1,22 @@
+@font-face {
+  font-display: swap;
+  font-family: 'Noto Sans';
+  font-style: normal;
+  font-weight: 400;
+  src: url('/fonts/NotoSans-VariableFont_wdth,wght.ttf') format('truetype');
+}
+
+@font-face {
+  font-display: swap;
+  font-family: 'Noto Sans Mono';
+  font-style: normal;
+  font-weight: 400;
+  src: url('/fonts/NotoSansMono-VariableFont_wdth,wght.ttf') format('truetype');
+}
+
+/*
+:root { --md-text-font: "Noto Sans"; }
+:root { --md-code-font: "Noto Sans Mono"; }
+*/
+* { text-align: justify; }
+
blob - /dev/null
blob + 4632e84ebf9ebbcc3a564ddb1bdfe91c138f15fe (mode 644)
--- /dev/null
+++ site/404.html
@@ -0,0 +1,523 @@
+
+<!doctype html>
+<html lang="en" class="no-js">
+  <head>
+    
+      <meta charset="utf-8">
+      <meta name="viewport" content="width=device-width,initial-scale=1">
+      
+        <meta name="description" content="Personal homepage of Manuel Kuklinski (AS213674)">
+      
+      
+        <meta name="author" content="Manuel Kuklinski">
+      
+      
+      
+      
+      
+        
+      
+      
+      <link rel="icon" href="/images/favicon.png">
+      <meta name="generator" content="zensical-0.0.11">
+    
+    
+      
+        <title>asdfghasdfgh.de</title>
+      
+    
+    
+      
+        
+      
+      <link rel="stylesheet" href="/assets/stylesheets/modern/main.bd6182e7.min.css">
+      
+        
+          
+        
+        <link rel="stylesheet" href="/assets/stylesheets/modern/palette.dfe2e883.min.css">
+      
+      
+  
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+  
+  <style>:root{}</style>
+
+
+
+    
+    
+      
+    
+    
+      
+    
+    
+      <link rel="stylesheet" href="/stylesheets/extra.css">
+    
+    <script>__md_scope=new URL("/",location),__md_hash=e=>[...e].reduce(((e,t)=>(e<<5)-e+t.charCodeAt(0)),0),__md_get=(e,t=localStorage,a=__md_scope)=>JSON.parse(t.getItem(a.pathname+"."+e)),__md_set=(e,t,a=localStorage,_=__md_scope)=>{try{a.setItem(_.pathname+"."+e,JSON.stringify(t))}catch(e){}},document.documentElement.setAttribute("data-platform",navigator.platform)</script>
+    
+      
+
+    
+    
+  </head>
+  
+  
+    
+    
+      
+    
+    
+    
+    
+    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
+  
+    
+    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
+    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
+    <label class="md-overlay" for="__drawer"></label>
+    <div data-md-component="skip">
+      
+    </div>
+    <div data-md-component="announce">
+      
+    </div>
+    
+    
+      
+
+  
+
+<header class="md-header md-header--shadow" data-md-component="header">
+  <nav class="md-header__inner md-grid" aria-label="Header">
+    <a href="/" title="asdfghasdfgh.de" class="md-header__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    <label class="md-header__button md-icon" for="__drawer">
+      
+      <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-menu" viewBox="0 0 24 24"><path d="M4 5h16M4 12h16M4 19h16"/></svg>
+    </label>
+    <div class="md-header__title" data-md-component="header-title">
+      <div class="md-header__ellipsis">
+        <div class="md-header__topic">
+          <span class="md-ellipsis">
+            asdfghasdfgh.de
+          </span>
+        </div>
+        <div class="md-header__topic" data-md-component="header-topic">
+          <span class="md-ellipsis">
+            
+              
+            
+          </span>
+        </div>
+      </div>
+    </div>
+    
+      
+        <form class="md-header__option" data-md-component="palette">
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to light mode"  type="radio" name="__palette" id="__palette_0">
+    
+      <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun-moon" viewBox="0 0 24 24"><path d="M12 2v2M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715M16 12a4 4 0 0 0-4-4M19 5l-1.256 1.256M20 12h2"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to dark mode"  type="radio" name="__palette" id="__palette_1">
+    
+      <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to system preference"  type="radio" name="__palette" id="__palette_2">
+    
+      <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-moon" viewBox="0 0 24 24"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/></svg>
+      </label>
+    
+  
+</form>
+      
+    
+    
+      <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
+    
+    
+    
+      
+      
+        <label class="md-header__button md-icon" for="__search">
+          
+          <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-search" viewBox="0 0 24 24"><path d="m21 21-4.34-4.34"/><circle cx="11" cy="11" r="8"/></svg>
+        </label>
+        <div class="md-search" data-md-component="search" role="dialog" aria-label="Search">
+  <button type="button" class="md-search__button">
+    Search
+  </button>
+</div>
+      
+    
+    <div class="md-header__source">
+      
+    </div>
+  </nav>
+  
+</header>
+    
+    <div class="md-container" data-md-component="container">
+      
+      
+        
+          
+        
+      
+      <main class="md-main" data-md-component="main">
+        <div class="md-main__inner md-grid">
+          
+            
+              
+              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+
+<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
+  <label class="md-nav__title" for="__drawer">
+    <a href="/" title="asdfghasdfgh.de" class="md-nav__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    asdfghasdfgh.de
+  </label>
+  
+  <ul class="md-nav__list" data-md-scrollfix>
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    「戦争を作るな、平和を作りましょう」
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="/bicycle/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Bicycle
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="/hardware/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Hardware
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="/junkyard/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Junkyard
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="/library/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Library
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="/meditation/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Meditation
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="/network/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Network
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+  </ul>
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+            
+              
+              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+  
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+          
+          
+            <div class="md-content" data-md-component="content">
+              
+                
+
+
+
+  
+
+
+              
+              <article class="md-content__inner md-typeset">
+                
+  <h1>404 - Not found</h1>
+
+              </article>
+            </div>
+          
+          
+  <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
+
+<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
+        </div>
+        
+          <button type="button" class="md-top md-icon" data-md-component="top" hidden>
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-circle-arrow-up" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="m16 12-4-4-4 4M12 16V8"/></svg>
+  Back to top
+</button>
+        
+      </main>
+      
+        <footer class="md-footer">
+  
+    
+  
+  <div class="md-footer-meta md-typeset">
+    <div class="md-footer-meta__inner md-grid">
+      <div class="md-copyright">
+  
+    <div class="md-copyright__highlight">
+      WTFPL &copy; 1987 Manuel Kuklinski
+<br>
+<a href="/xyz">No permission granted to any AI/LLM/ML-powered system (or similar).</a>
+
+    </div>
+  
+  
+</div>
+      
+    </div>
+  </div>
+</footer>
+      
+    </div>
+    <div class="md-dialog" data-md-component="dialog">
+      <div class="md-dialog__inner md-typeset"></div>
+    </div>
+    
+    
+    
+      
+      
+      
+      <script id="__config" type="application/json">{"annotate":null,"base":"/","features":["announce.dismiss","content.code.annotate","content.code.copy","content.code.select","content.footnote.tooltips","content.tabs.link","content.tooltips","navigation.footer","navigation.indexes","navigation.instant","navigation.instant.prefetch","navigation.path","navigation.prune","navigation.sections","navigation.top","navigation.tracking","search.highlight"],"search":"/assets/javascripts/workers/search.5df7522c.min.js","tags":null,"translations":{"clipboard.copied":"Copied to clipboard","clipboard.copy":"Copy to clipboard","search.result.more.one":"1 more on this page","search.result.more.other":"# more on this page","search.result.none":"No matching documents","search.result.one":"1 matching document","search.result.other":"# matching documents","search.result.placeholder":"Type to start searching","search.result.term.missing":"Missing","select.version":"Select version"},"version":null}</script>
+    
+    
+      <script src="/assets/javascripts/bundle.21aa498e.min.js"></script>
+      
+    
+  </body>
+</html>
\ No newline at end of file
blob - /dev/null
blob + 1cf13b9f9d978896599290a74f77d5dbe7d1655c (mode 644)
Binary files /dev/null and site/assets/images/favicon.png differ
blob - /dev/null
blob + 1aadb4dd3a530cc9129b205eaa5cab0d77740653 (mode 644)
--- /dev/null
+++ site/assets/javascripts/bundle.21aa498e.min.js
@@ -0,0 +1,3 @@
+"use strict";(()=>{var yc=Object.create;var Ln=Object.defineProperty,xc=Object.defineProperties,wc=Object.getOwnPropertyDescriptor,Ec=Object.getOwnPropertyDescriptors,Tc=Object.getOwnPropertyNames,Dr=Object.getOwnPropertySymbols,Oc=Object.getPrototypeOf,Mn=Object.prototype.hasOwnProperty,Fo=Object.prototype.propertyIsEnumerable;var jo=(e,t,r)=>t in e?Ln(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,H=(e,t)=>{for(var r in t||(t={}))Mn.call(t,r)&&jo(e,r,t[r]);if(Dr)for(var r of Dr(t))Fo.call(t,r)&&jo(e,r,t[r]);return e},Ce=(e,t)=>xc(e,Ec(t));var _r=(e,t)=>{var r={};for(var n in e)Mn.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Dr)for(var n of Dr(e))t.indexOf(n)<0&&Fo.call(e,n)&&(r[n]=e[n]);return r};var kn=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Sc=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Tc(t))!Mn.call(e,o)&&o!==r&&Ln(e,o,{get:()=>t[o],enumerable:!(n=wc(t,o))||n.enumerable});return e};var yr=(e,t,r)=>(r=e!=null?yc(Oc(e)):{},Sc(t||!e||!e.__esModule?Ln(r,"default",{value:e,enumerable:!0}):r,e));var Uo=(e,t,r)=>new Promise((n,o)=>{var i=c=>{try{s(r.next(c))}catch(l){o(l)}},a=c=>{try{s(r.throw(c))}catch(l){o(l)}},s=c=>c.done?n(c.value):Promise.resolve(c.value).then(i,a);s((r=r.apply(e,t)).next())});var Wo=kn((An,No)=>{(function(e,t){typeof An=="object"&&typeof No!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(An,(function(){"use strict";function e(r){var n=!0,o=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(_){return!!(_&&_!==document&&_.nodeName!=="HTML"&&_.nodeName!=="BODY"&&"classList"in _&&"contains"in _.classList)}function c(_){var de=_.type,be=_.tagName;return!!(be==="INPUT"&&a[de]&&!_.readOnly||be==="TEXTAREA"&&!_.readOnly||_.isContentEditable)}function l(_){_.classList.contains("focus-visible")||(_.classList.add("focus-visible"),_.setAttribute("data-focus-visible-added",""))}function u(_){_.hasAttribute("data-focus-visible-added")&&(_.classList.remove("focus-visible"),_.removeAttribute("data-focus-visible-added"))}function p(_){_.metaKey||_.altKey||_.ctrlKey||(s(r.activeElement)&&l(r.activeElement),n=!0)}function d(_){n=!1}function m(_){s(_.target)&&(n||c(_.target))&&l(_.target)}function h(_){s(_.target)&&(_.target.classList.contains("focus-visible")||_.target.hasAttribute("data-focus-visible-added"))&&(o=!0,window.clearTimeout(i),i=window.setTimeout(function(){o=!1},100),u(_.target))}function v(_){document.visibilityState==="hidden"&&(o&&(n=!0),O())}function O(){document.addEventListener("mousemove",w),document.addEventListener("mousedown",w),document.addEventListener("mouseup",w),document.addEventListener("pointermove",w),document.addEventListener("pointerdown",w),document.addEventListener("pointerup",w),document.addEventListener("touchmove",w),document.addEventListener("touchstart",w),document.addEventListener("touchend",w)}function x(){document.removeEventListener("mousemove",w),document.removeEventListener("mousedown",w),document.removeEventListener("mouseup",w),document.removeEventListener("pointermove",w),document.removeEventListener("pointerdown",w),document.removeEventListener("pointerup",w),document.removeEventListener("touchmove",w),document.removeEventListener("touchstart",w),document.removeEventListener("touchend",w)}function w(_){_.target.nodeName&&_.target.nodeName.toLowerCase()==="html"||(n=!1,x())}document.addEventListener("keydown",p,!0),document.addEventListener("mousedown",d,!0),document.addEventListener("pointerdown",d,!0),document.addEventListener("touchstart",d,!0),document.addEventListener("visibilitychange",v,!0),O(),r.addEventListener("focus",m,!0),r.addEventListener("blur",h,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)}))});var So=kn((S0,hs)=>{"use strict";var Bu=/["'&<>]/;hs.exports=Yu;function Yu(e){var t=""+e,r=Bu.exec(t);if(!r)return t;var n,o="",i=0,a=0;for(i=r.index;i<t.length;i++){switch(t.charCodeAt(i)){case 34:n="&quot;";break;case 38:n="&amp;";break;case 39:n="&#39;";break;case 60:n="&lt;";break;case 62:n="&gt;";break;default:continue}a!==i&&(o+=t.substring(a,i)),a=i+1,o+=n}return a!==i?o+t.substring(a,i):o}});var ko=kn((Fr,Mo)=>{(function(t,r){typeof Fr=="object"&&typeof Mo=="object"?Mo.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Fr=="object"?Fr.ClipboardJS=r():t.ClipboardJS=r()})(Fr,function(){return(function(){var e={686:(function(n,o,i){"use strict";i.d(o,{default:function(){return br}});var a=i(279),s=i.n(a),c=i(370),l=i.n(c),u=i(817),p=i.n(u);function d(B){try{return document.execCommand(B)}catch(C){return!1}}var m=function(C){var k=p()(C);return d("cut"),k},h=m;function v(B){var C=document.documentElement.getAttribute("dir")==="rtl",k=document.createElement("textarea");k.style.fontSize="12pt",k.style.border="0",k.style.padding="0",k.style.margin="0",k.style.position="absolute",k.style[C?"right":"left"]="-9999px";var W=window.pageYOffset||document.documentElement.scrollTop;return k.style.top="".concat(W,"px"),k.setAttribute("readonly",""),k.value=B,k}var O=function(C,k){var W=v(C);k.container.appendChild(W);var D=p()(W);return d("copy"),W.remove(),D},x=function(C){var k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},W="";return typeof C=="string"?W=O(C,k):C instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(C==null?void 0:C.type)?W=O(C.value,k):(W=p()(C),d("copy")),W},w=x;function _(B){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_=function(k){return typeof k}:_=function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k},_(B)}var de=function(){var C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},k=C.action,W=k===void 0?"copy":k,D=C.container,Z=C.target,Ve=C.text;if(W!=="copy"&&W!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Z!==void 0)if(Z&&_(Z)==="object"&&Z.nodeType===1){if(W==="copy"&&Z.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(W==="cut"&&(Z.hasAttribute("readonly")||Z.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(Ve)return w(Ve,{container:D});if(Z)return W==="cut"?h(Z):w(Z,{container:D})},be=de;function M(B){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?M=function(k){return typeof k}:M=function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k},M(B)}function S(B,C){if(!(B instanceof C))throw new TypeError("Cannot call a class as a function")}function N(B,C){for(var k=0;k<C.length;k++){var W=C[k];W.enumerable=W.enumerable||!1,W.configurable=!0,"value"in W&&(W.writable=!0),Object.defineProperty(B,W.key,W)}}function te(B,C,k){return C&&N(B.prototype,C),k&&N(B,k),B}function ue(B,C){if(typeof C!="function"&&C!==null)throw new TypeError("Super expression must either be null or a function");B.prototype=Object.create(C&&C.prototype,{constructor:{value:B,writable:!0,configurable:!0}}),C&&ce(B,C)}function ce(B,C){return ce=Object.setPrototypeOf||function(W,D){return W.__proto__=D,W},ce(B,C)}function We(B){var C=at();return function(){var W=et(B),D;if(C){var Z=et(this).constructor;D=Reflect.construct(W,arguments,Z)}else D=W.apply(this,arguments);return vt(this,D)}}function vt(B,C){return C&&(M(C)==="object"||typeof C=="function")?C:De(B)}function De(B){if(B===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return B}function at(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(B){return!1}}function et(B){return et=Object.setPrototypeOf?Object.getPrototypeOf:function(k){return k.__proto__||Object.getPrototypeOf(k)},et(B)}function Kt(B,C){var k="data-clipboard-".concat(B);if(C.hasAttribute(k))return C.getAttribute(k)}var Mt=(function(B){ue(k,B);var C=We(k);function k(W,D){var Z;return S(this,k),Z=C.call(this),Z.resolveOptions(D),Z.listenClick(W),Z}return te(k,[{key:"resolveOptions",value:function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof D.action=="function"?D.action:this.defaultAction,this.target=typeof D.target=="function"?D.target:this.defaultTarget,this.text=typeof D.text=="function"?D.text:this.defaultText,this.container=M(D.container)==="object"?D.container:document.body}},{key:"listenClick",value:function(D){var Z=this;this.listener=l()(D,"click",function(Ve){return Z.onClick(Ve)})}},{key:"onClick",value:function(D){var Z=D.delegateTarget||D.currentTarget,Ve=this.action(Z)||"copy",Bt=be({action:Ve,container:this.container,target:this.target(Z),text:this.text(Z)});this.emit(Bt?"success":"error",{action:Ve,text:Bt,trigger:Z,clearSelection:function(){Z&&Z.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(D){return Kt("action",D)}},{key:"defaultTarget",value:function(D){var Z=Kt("target",D);if(Z)return document.querySelector(Z)}},{key:"defaultText",value:function(D){return Kt("text",D)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(D){var Z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return w(D,Z)}},{key:"cut",value:function(D){return h(D)}},{key:"isSupported",value:function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Z=typeof D=="string"?[D]:D,Ve=!!document.queryCommandSupported;return Z.forEach(function(Bt){Ve=Ve&&!!document.queryCommandSupported(Bt)}),Ve}}]),k})(s()),br=Mt}),828:(function(n){var o=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(s,c){for(;s&&s.nodeType!==o;){if(typeof s.matches=="function"&&s.matches(c))return s;s=s.parentNode}}n.exports=a}),438:(function(n,o,i){var a=i(828);function s(u,p,d,m,h){var v=l.apply(this,arguments);return u.addEventListener(d,v,h),{destroy:function(){u.removeEventListener(d,v,h)}}}function c(u,p,d,m,h){return typeof u.addEventListener=="function"?s.apply(null,arguments):typeof d=="function"?s.bind(null,document).apply(null,arguments):(typeof u=="string"&&(u=document.querySelectorAll(u)),Array.prototype.map.call(u,function(v){return s(v,p,d,m,h)}))}function l(u,p,d,m){return function(h){h.delegateTarget=a(h.target,p),h.delegateTarget&&m.call(u,h)}}n.exports=c}),879:(function(n,o){o.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},o.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||o.node(i[0]))},o.string=function(i){return typeof i=="string"||i instanceof String},o.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}}),370:(function(n,o,i){var a=i(879),s=i(438);function c(d,m,h){if(!d&&!m&&!h)throw new Error("Missing required arguments");if(!a.string(m))throw new TypeError("Second argument must be a String");if(!a.fn(h))throw new TypeError("Third argument must be a Function");if(a.node(d))return l(d,m,h);if(a.nodeList(d))return u(d,m,h);if(a.string(d))return p(d,m,h);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function l(d,m,h){return d.addEventListener(m,h),{destroy:function(){d.removeEventListener(m,h)}}}function u(d,m,h){return Array.prototype.forEach.call(d,function(v){v.addEventListener(m,h)}),{destroy:function(){Array.prototype.forEach.call(d,function(v){v.removeEventListener(m,h)})}}}function p(d,m,h){return s(document.body,d,m,h)}n.exports=c}),817:(function(n){function o(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var c=window.getSelection(),l=document.createRange();l.selectNodeContents(i),c.removeAllRanges(),c.addRange(l),a=c.toString()}return a}n.exports=o}),279:(function(n){function o(){}o.prototype={on:function(i,a,s){var c=this.e||(this.e={});return(c[i]||(c[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var c=this;function l(){c.off(i,l),a.apply(s,arguments)}return l._=a,this.on(i,l,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),c=0,l=s.length;for(c;c<l;c++)s[c].fn.apply(s[c].ctx,a);return this},off:function(i,a){var s=this.e||(this.e={}),c=s[i],l=[];if(c&&a)for(var u=0,p=c.length;u<p;u++)c[u].fn!==a&&c[u].fn._!==a&&l.push(c[u]);return l.length?s[i]=l:delete s[i],this}},n.exports=o,n.exports.TinyEmitter=o})},t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}return(function(){r.n=function(n){var o=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(o,{a:o}),o}})(),(function(){r.d=function(n,o){for(var i in o)r.o(o,i)&&!r.o(n,i)&&Object.defineProperty(n,i,{enumerable:!0,get:o[i]})}})(),(function(){r.o=function(n,o){return Object.prototype.hasOwnProperty.call(n,o)}})(),r(686)})().default})});var CM=yr(Wo());var Cn=function(e,t){return Cn=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(r[o]=n[o])},Cn(e,t)};function pe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Cn(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}function Do(e,t,r,n){function o(i){return i instanceof r?i:new r(function(a){a(i)})}return new(r||(r=Promise))(function(i,a){function s(u){try{l(n.next(u))}catch(p){a(p)}}function c(u){try{l(n.throw(u))}catch(p){a(p)}}function l(u){u.done?i(u.value):o(u.value).then(s,c)}l((n=n.apply(e,t||[])).next())})}function Vr(e,t){var r={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},n,o,i,a=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function s(l){return function(u){return c([l,u])}}function c(l){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(r=0)),r;)try{if(n=1,o&&(i=l[0]&2?o.return:l[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,l[1])).done)return i;switch(o=0,i&&(l=[l[0]&2,i.value]),l[0]){case 0:case 1:i=l;break;case 4:return r.label++,{value:l[1],done:!1};case 5:r.label++,o=l[1],l=[0];continue;case 7:l=r.ops.pop(),r.trys.pop();continue;default:if(i=r.trys,!(i=i.length>0&&i[i.length-1])&&(l[0]===6||l[0]===2)){r=0;continue}if(l[0]===3&&(!i||l[1]>i[0]&&l[1]<i[3])){r.label=l[1];break}if(l[0]===6&&r.label<i[1]){r.label=i[1],i=l;break}if(i&&r.label<i[2]){r.label=i[2],r.ops.push(l);break}i[2]&&r.ops.pop(),r.trys.pop();continue}l=t.call(e,r)}catch(u){l=[6,u],o=0}finally{n=i=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function He(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function re(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),o,i=[],a;try{for(;(t===void 0||t-- >0)&&!(o=n.next()).done;)i.push(o.value)}catch(s){a={error:s}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(a)throw a.error}}return i}function ne(e,t,r){if(r||arguments.length===2)for(var n=0,o=t.length,i;n<o;n++)(i||!(n in t))&&(i||(i=Array.prototype.slice.call(t,0,n)),i[n]=t[n]);return e.concat(i||Array.prototype.slice.call(t))}function kt(e){return this instanceof kt?(this.v=e,this):new kt(e)}function Vo(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=r.apply(e,t||[]),o,i=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",a),o[Symbol.asyncIterator]=function(){return this},o;function a(m){return function(h){return Promise.resolve(h).then(m,p)}}function s(m,h){n[m]&&(o[m]=function(v){return new Promise(function(O,x){i.push([m,v,O,x])>1||c(m,v)})},h&&(o[m]=h(o[m])))}function c(m,h){try{l(n[m](h))}catch(v){d(i[0][3],v)}}function l(m){m.value instanceof kt?Promise.resolve(m.value.v).then(u,p):d(i[0][2],m)}function u(m){c("next",m)}function p(m){c("throw",m)}function d(m,h){m(h),i.shift(),i.length&&c(i[0][0],i[0][1])}}function zo(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof He=="function"?He(e):e[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(i){r[i]=e[i]&&function(a){return new Promise(function(s,c){a=e[i](a),o(s,c,a.done,a.value)})}}function o(i,a,s,c){Promise.resolve(c).then(function(l){i({value:l,done:s})},a)}}function F(e){return typeof e=="function"}function Yt(e){var t=function(n){Error.call(n),n.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var zr=Yt(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription:
+`+r.map(function(n,o){return o+1+") "+n.toString()}).join(`
+  `):"",this.name="UnsubscriptionError",this.errors=r}});function st(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var tt=(function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,n,o,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=He(a),c=s.next();!c.done;c=s.next()){var l=c.value;l.remove(this)}}catch(v){t={error:v}}finally{try{c&&!c.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}else a.remove(this);var u=this.initialTeardown;if(F(u))try{u()}catch(v){i=v instanceof zr?v.errors:[v]}var p=this._finalizers;if(p){this._finalizers=null;try{for(var d=He(p),m=d.next();!m.done;m=d.next()){var h=m.value;try{qo(h)}catch(v){i=i!=null?i:[],v instanceof zr?i=ne(ne([],re(i)),re(v.errors)):i.push(v)}}}catch(v){n={error:v}}finally{try{m&&!m.done&&(o=d.return)&&o.call(d)}finally{if(n)throw n.error}}}if(i)throw new zr(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)qo(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&st(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&st(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=(function(){var t=new e;return t.closed=!0,t})(),e})();var Hn=tt.EMPTY;function qr(e){return e instanceof tt||e&&"closed"in e&&F(e.remove)&&F(e.add)&&F(e.unsubscribe)}function qo(e){F(e)?e():e.unsubscribe()}var Ge={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var Gt={setTimeout:function(e,t){for(var r=[],n=2;n<arguments.length;n++)r[n-2]=arguments[n];var o=Gt.delegate;return o!=null&&o.setTimeout?o.setTimeout.apply(o,ne([e,t],re(r))):setTimeout.apply(void 0,ne([e,t],re(r)))},clearTimeout:function(e){var t=Gt.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function Kr(e){Gt.setTimeout(function(){var t=Ge.onUnhandledError;if(t)t(e);else throw e})}function $e(){}var Ko=(function(){return $n("C",void 0,void 0)})();function Bo(e){return $n("E",void 0,e)}function Yo(e){return $n("N",e,void 0)}function $n(e,t,r){return{kind:e,value:t,error:r}}var At=null;function Jt(e){if(Ge.useDeprecatedSynchronousErrorHandling){var t=!At;if(t&&(At={errorThrown:!1,error:null}),e(),t){var r=At,n=r.errorThrown,o=r.error;if(At=null,n)throw o}}else e()}function Go(e){Ge.useDeprecatedSynchronousErrorHandling&&At&&(At.errorThrown=!0,At.error=e)}var xr=(function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n.isStopped=!1,r?(n.destination=r,qr(r)&&r.add(n)):n.destination=Ac,n}return t.create=function(r,n,o){return new Ct(r,n,o)},t.prototype.next=function(r){this.isStopped?In(Yo(r),this):this._next(r)},t.prototype.error=function(r){this.isStopped?In(Bo(r),this):(this.isStopped=!0,this._error(r))},t.prototype.complete=function(){this.isStopped?In(Ko,this):(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(r){this.destination.next(r)},t.prototype._error=function(r){try{this.destination.error(r)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t})(tt);var Lc=Function.prototype.bind;function Pn(e,t){return Lc.call(e,t)}var Mc=(function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var r=this.partialObserver;if(r.next)try{r.next(t)}catch(n){Br(n)}},e.prototype.error=function(t){var r=this.partialObserver;if(r.error)try{r.error(t)}catch(n){Br(n)}else Br(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(r){Br(r)}},e})(),Ct=(function(e){pe(t,e);function t(r,n,o){var i=e.call(this)||this,a;if(F(r)||!r)a={next:r!=null?r:void 0,error:n!=null?n:void 0,complete:o!=null?o:void 0};else{var s;i&&Ge.useDeprecatedNextContext?(s=Object.create(r),s.unsubscribe=function(){return i.unsubscribe()},a={next:r.next&&Pn(r.next,s),error:r.error&&Pn(r.error,s),complete:r.complete&&Pn(r.complete,s)}):a=r}return i.destination=new Mc(a),i}return t})(xr);function Br(e){Ge.useDeprecatedSynchronousErrorHandling?Go(e):Kr(e)}function kc(e){throw e}function In(e,t){var r=Ge.onStoppedNotification;r&&Gt.setTimeout(function(){return r(e,t)})}var Ac={closed:!0,next:$e,error:kc,complete:$e};var Xt=(function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"})();function Oe(e){return e}function Jo(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Rn(e)}function Rn(e){return e.length===0?Oe:e.length===1?e[0]:function(r){return e.reduce(function(n,o){return o(n)},r)}}var U=(function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var r=new e;return r.source=this,r.operator=t,r},e.prototype.subscribe=function(t,r,n){var o=this,i=Hc(t)?t:new Ct(t,r,n);return Jt(function(){var a=o,s=a.operator,c=a.source;i.add(s?s.call(i,c):c?o._subscribe(i):o._trySubscribe(i))}),i},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(r){t.error(r)}},e.prototype.forEach=function(t,r){var n=this;return r=Xo(r),new r(function(o,i){var a=new Ct({next:function(s){try{t(s)}catch(c){i(c),a.unsubscribe()}},error:i,complete:o});n.subscribe(a)})},e.prototype._subscribe=function(t){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(t)},e.prototype[Xt]=function(){return this},e.prototype.pipe=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return Rn(t)(this)},e.prototype.toPromise=function(t){var r=this;return t=Xo(t),new t(function(n,o){var i;r.subscribe(function(a){return i=a},function(a){return o(a)},function(){return n(i)})})},e.create=function(t){return new e(t)},e})();function Xo(e){var t;return(t=e!=null?e:Ge.Promise)!==null&&t!==void 0?t:Promise}function Cc(e){return e&&F(e.next)&&F(e.error)&&F(e.complete)}function Hc(e){return e&&e instanceof xr||Cc(e)&&qr(e)}function $c(e){return F(e==null?void 0:e.lift)}function T(e){return function(t){if($c(t))return t.lift(function(r){try{return e(r,this)}catch(n){this.error(n)}});throw new TypeError("Unable to lift unknown Observable type")}}function E(e,t,r,n,o){return new Pc(e,t,r,n,o)}var Pc=(function(e){pe(t,e);function t(r,n,o,i,a,s){var c=e.call(this,r)||this;return c.onFinalize=a,c.shouldUnsubscribe=s,c._next=n?function(l){try{n(l)}catch(u){r.error(u)}}:e.prototype._next,c._error=i?function(l){try{i(l)}catch(u){r.error(u)}finally{this.unsubscribe()}}:e.prototype._error,c._complete=o?function(){try{o()}catch(l){r.error(l)}finally{this.unsubscribe()}}:e.prototype._complete,c}return t.prototype.unsubscribe=function(){var r;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&((r=this.onFinalize)===null||r===void 0||r.call(this))}},t})(xr);var Zt={schedule:function(e){var t=requestAnimationFrame,r=cancelAnimationFrame,n=Zt.delegate;n&&(t=n.requestAnimationFrame,r=n.cancelAnimationFrame);var o=t(function(i){r=void 0,e(i)});return new tt(function(){return r==null?void 0:r(o)})},requestAnimationFrame:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=Zt.delegate;return((r==null?void 0:r.requestAnimationFrame)||requestAnimationFrame).apply(void 0,ne([],re(e)))},cancelAnimationFrame:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=Zt.delegate;return((r==null?void 0:r.cancelAnimationFrame)||cancelAnimationFrame).apply(void 0,ne([],re(e)))},delegate:void 0};var Zo=Yt(function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}});var I=(function(e){pe(t,e);function t(){var r=e.call(this)||this;return r.closed=!1,r.currentObservers=null,r.observers=[],r.isStopped=!1,r.hasError=!1,r.thrownError=null,r}return t.prototype.lift=function(r){var n=new Qo(this,this);return n.operator=r,n},t.prototype._throwIfClosed=function(){if(this.closed)throw new Zo},t.prototype.next=function(r){var n=this;Jt(function(){var o,i;if(n._throwIfClosed(),!n.isStopped){n.currentObservers||(n.currentObservers=Array.from(n.observers));try{for(var a=He(n.currentObservers),s=a.next();!s.done;s=a.next()){var c=s.value;c.next(r)}}catch(l){o={error:l}}finally{try{s&&!s.done&&(i=a.return)&&i.call(a)}finally{if(o)throw o.error}}}})},t.prototype.error=function(r){var n=this;Jt(function(){if(n._throwIfClosed(),!n.isStopped){n.hasError=n.isStopped=!0,n.thrownError=r;for(var o=n.observers;o.length;)o.shift().error(r)}})},t.prototype.complete=function(){var r=this;Jt(function(){if(r._throwIfClosed(),!r.isStopped){r.isStopped=!0;for(var n=r.observers;n.length;)n.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var r;return((r=this.observers)===null||r===void 0?void 0:r.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,o=this,i=o.hasError,a=o.isStopped,s=o.observers;return i||a?Hn:(this.currentObservers=null,s.push(r),new tt(function(){n.currentObservers=null,st(s,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,o=n.hasError,i=n.thrownError,a=n.isStopped;o?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new U;return r.source=this,r},t.create=function(r,n){return new Qo(r,n)},t})(U);var Qo=(function(e){pe(t,e);function t(r,n){var o=e.call(this)||this;return o.destination=r,o.source=n,o}return t.prototype.next=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.next)===null||o===void 0||o.call(n,r)},t.prototype.error=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.error)===null||o===void 0||o.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,o;return(o=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&o!==void 0?o:Hn},t})(I);var jn=(function(e){pe(t,e);function t(r){var n=e.call(this)||this;return n._value=r,n}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var n=e.prototype._subscribe.call(this,r);return!n.closed&&r.next(this._value),n},t.prototype.getValue=function(){var r=this,n=r.hasError,o=r.thrownError,i=r._value;if(n)throw o;return this._throwIfClosed(),i},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t})(I);var wr={now:function(){return(wr.delegate||Date).now()},delegate:void 0};var Er=(function(e){pe(t,e);function t(r,n,o){r===void 0&&(r=1/0),n===void 0&&(n=1/0),o===void 0&&(o=wr);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=n,i._timestampProvider=o,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,n),i}return t.prototype.next=function(r){var n=this,o=n.isStopped,i=n._buffer,a=n._infiniteTimeWindow,s=n._timestampProvider,c=n._windowTime;o||(i.push(r),!a&&i.push(s.now()+c)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),o=this,i=o._infiniteTimeWindow,a=o._buffer,s=a.slice(),c=0;c<s.length&&!r.closed;c+=i?1:2)r.next(s[c]);return this._checkFinalizedStatuses(r),n},t.prototype._trimBuffer=function(){var r=this,n=r._bufferSize,o=r._timestampProvider,i=r._buffer,a=r._infiniteTimeWindow,s=(a?1:2)*n;if(n<1/0&&s<i.length&&i.splice(0,i.length-s),!a){for(var c=o.now(),l=0,u=1;u<i.length&&i[u]<=c;u+=2)l=u;l&&i.splice(0,l+1)}},t})(I);var ei=(function(e){pe(t,e);function t(r,n){return e.call(this)||this}return t.prototype.schedule=function(r,n){return n===void 0&&(n=0),this},t})(tt);var Tr={setInterval:function(e,t){for(var r=[],n=2;n<arguments.length;n++)r[n-2]=arguments[n];var o=Tr.delegate;return o!=null&&o.setInterval?o.setInterval.apply(o,ne([e,t],re(r))):setInterval.apply(void 0,ne([e,t],re(r)))},clearInterval:function(e){var t=Tr.delegate;return((t==null?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0};var Qt=(function(e){pe(t,e);function t(r,n){var o=e.call(this,r,n)||this;return o.scheduler=r,o.work=n,o.pending=!1,o}return t.prototype.schedule=function(r,n){var o;if(n===void 0&&(n=0),this.closed)return this;this.state=r;var i=this.id,a=this.scheduler;return i!=null&&(this.id=this.recycleAsyncId(a,i,n)),this.pending=!0,this.delay=n,this.id=(o=this.id)!==null&&o!==void 0?o:this.requestAsyncId(a,this.id,n),this},t.prototype.requestAsyncId=function(r,n,o){return o===void 0&&(o=0),Tr.setInterval(r.flush.bind(r,this),o)},t.prototype.recycleAsyncId=function(r,n,o){if(o===void 0&&(o=0),o!=null&&this.delay===o&&this.pending===!1)return n;n!=null&&Tr.clearInterval(n)},t.prototype.execute=function(r,n){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var o=this._execute(r,n);if(o)return o;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(r,n){var o=!1,i;try{this.work(r)}catch(a){o=!0,i=a||new Error("Scheduled action threw falsy error")}if(o)return this.unsubscribe(),i},t.prototype.unsubscribe=function(){if(!this.closed){var r=this,n=r.id,o=r.scheduler,i=o.actions;this.work=this.state=this.scheduler=null,this.pending=!1,st(i,this),n!=null&&(this.id=this.recycleAsyncId(o,n,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t})(ei);var Fn=(function(){function e(t,r){r===void 0&&(r=e.now),this.schedulerActionCtor=t,this.now=r}return e.prototype.schedule=function(t,r,n){return r===void 0&&(r=0),new this.schedulerActionCtor(this,t).schedule(n,r)},e.now=wr.now,e})();var er=(function(e){pe(t,e);function t(r,n){n===void 0&&(n=Fn.now);var o=e.call(this,r,n)||this;return o.actions=[],o._active=!1,o}return t.prototype.flush=function(r){var n=this.actions;if(this._active){n.push(r);return}var o;this._active=!0;do if(o=r.execute(r.state,r.delay))break;while(r=n.shift());if(this._active=!1,o){for(;r=n.shift();)r.unsubscribe();throw o}},t})(Fn);var ge=new er(Qt),Un=ge;var ti=(function(e){pe(t,e);function t(r,n){var o=e.call(this,r,n)||this;return o.scheduler=r,o.work=n,o}return t.prototype.schedule=function(r,n){return n===void 0&&(n=0),n>0?e.prototype.schedule.call(this,r,n):(this.delay=n,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,n){return n>0||this.closed?e.prototype.execute.call(this,r,n):this._execute(r,n)},t.prototype.requestAsyncId=function(r,n,o){return o===void 0&&(o=0),o!=null&&o>0||o==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,n,o):(r.flush(this),0)},t})(Qt);var ri=(function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t})(er);var Nn=new ri(ti);var ni=(function(e){pe(t,e);function t(r,n){var o=e.call(this,r,n)||this;return o.scheduler=r,o.work=n,o}return t.prototype.requestAsyncId=function(r,n,o){return o===void 0&&(o=0),o!==null&&o>0?e.prototype.requestAsyncId.call(this,r,n,o):(r.actions.push(this),r._scheduled||(r._scheduled=Zt.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,o){var i;if(o===void 0&&(o=0),o!=null?o>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,o);var a=r.actions;n!=null&&n===r._scheduled&&((i=a[a.length-1])===null||i===void 0?void 0:i.id)!==n&&(Zt.cancelAnimationFrame(n),r._scheduled=void 0)},t})(Qt);var oi=(function(e){pe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n;r?n=r.id:(n=this._scheduled,this._scheduled=void 0);var o=this.actions,i;r=r||o.shift();do if(i=r.execute(r.state,r.delay))break;while((r=o[0])&&r.id===n&&o.shift());if(this._active=!1,i){for(;(r=o[0])&&r.id===n&&o.shift();)r.unsubscribe();throw i}},t})(er);var je=new oi(ni);var y=new U(function(e){return e.complete()});function Yr(e){return e&&F(e.schedule)}function Wn(e){return e[e.length-1]}function gt(e){return F(Wn(e))?e.pop():void 0}function qe(e){return Yr(Wn(e))?e.pop():void 0}function Gr(e,t){return typeof Wn(e)=="number"?e.pop():t}var tr=(function(e){return e&&typeof e.length=="number"&&typeof e!="function"});function Jr(e){return F(e==null?void 0:e.then)}function Xr(e){return F(e[Xt])}function Zr(e){return Symbol.asyncIterator&&F(e==null?void 0:e[Symbol.asyncIterator])}function Qr(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Ic(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var en=Ic();function tn(e){return F(e==null?void 0:e[en])}function rn(e){return Vo(this,arguments,function(){var r,n,o,i;return Vr(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,kt(r.read())];case 3:return n=a.sent(),o=n.value,i=n.done,i?[4,kt(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,kt(o)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function nn(e){return F(e==null?void 0:e.getReader)}function q(e){if(e instanceof U)return e;if(e!=null){if(Xr(e))return Rc(e);if(tr(e))return jc(e);if(Jr(e))return Fc(e);if(Zr(e))return ii(e);if(tn(e))return Uc(e);if(nn(e))return Nc(e)}throw Qr(e)}function Rc(e){return new U(function(t){var r=e[Xt]();if(F(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function jc(e){return new U(function(t){for(var r=0;r<e.length&&!t.closed;r++)t.next(e[r]);t.complete()})}function Fc(e){return new U(function(t){e.then(function(r){t.closed||(t.next(r),t.complete())},function(r){return t.error(r)}).then(null,Kr)})}function Uc(e){return new U(function(t){var r,n;try{for(var o=He(e),i=o.next();!i.done;i=o.next()){var a=i.value;if(t.next(a),t.closed)return}}catch(s){r={error:s}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}t.complete()})}function ii(e){return new U(function(t){Wc(e,t).catch(function(r){return t.error(r)})})}function Nc(e){return ii(rn(e))}function Wc(e,t){var r,n,o,i;return Do(this,void 0,void 0,function(){var a,s;return Vr(this,function(c){switch(c.label){case 0:c.trys.push([0,5,6,11]),r=zo(e),c.label=1;case 1:return[4,r.next()];case 2:if(n=c.sent(),!!n.done)return[3,4];if(a=n.value,t.next(a),t.closed)return[2];c.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=c.sent(),o={error:s},[3,11];case 6:return c.trys.push([6,,9,10]),n&&!n.done&&(i=r.return)?[4,i.call(r)]:[3,8];case 7:c.sent(),c.label=8;case 8:return[3,10];case 9:if(o)throw o.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function Fe(e,t,r,n,o){n===void 0&&(n=0),o===void 0&&(o=!1);var i=t.schedule(function(){r(),o?e.add(this.schedule(null,n)):this.unsubscribe()},n);if(e.add(i),!o)return i}function Pe(e,t){return t===void 0&&(t=0),T(function(r,n){r.subscribe(E(n,function(o){return Fe(n,e,function(){return n.next(o)},t)},function(){return Fe(n,e,function(){return n.complete()},t)},function(o){return Fe(n,e,function(){return n.error(o)},t)}))})}function Ht(e,t){return t===void 0&&(t=0),T(function(r,n){n.add(e.schedule(function(){return r.subscribe(n)},t))})}function ai(e,t){return q(e).pipe(Ht(t),Pe(t))}function si(e,t){return q(e).pipe(Ht(t),Pe(t))}function ci(e,t){return new U(function(r){var n=0;return t.schedule(function(){n===e.length?r.complete():(r.next(e[n++]),r.closed||this.schedule())})})}function li(e,t){return new U(function(r){var n;return Fe(r,t,function(){n=e[en](),Fe(r,t,function(){var o,i,a;try{o=n.next(),i=o.value,a=o.done}catch(s){r.error(s);return}a?r.complete():r.next(i)},0,!0)}),function(){return F(n==null?void 0:n.return)&&n.return()}})}function on(e,t){if(!e)throw new Error("Iterable cannot be null");return new U(function(r){Fe(r,t,function(){var n=e[Symbol.asyncIterator]();Fe(r,t,function(){n.next().then(function(o){o.done?r.complete():r.next(o.value)})},0,!0)})})}function ui(e,t){return on(rn(e),t)}function pi(e,t){if(e!=null){if(Xr(e))return ai(e,t);if(tr(e))return ci(e,t);if(Jr(e))return si(e,t);if(Zr(e))return on(e,t);if(tn(e))return li(e,t);if(nn(e))return ui(e,t)}throw Qr(e)}function me(e,t){return t?pi(e,t):q(e)}function Y(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=qe(e);return me(e,r)}function Dn(e,t){var r=F(e)?e:function(){return e},n=function(o){return o.error(r())};return new U(t?function(o){return t.schedule(n,0,o)}:n)}var an=Yt(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function fi(e){return e instanceof Date&&!isNaN(e)}function f(e,t){return T(function(r,n){var o=0;r.subscribe(E(n,function(i){n.next(e.call(t,i,o++))}))})}var Dc=Array.isArray;function Vc(e,t){return Dc(t)?e.apply(void 0,ne([],re(t))):e(t)}function _t(e){return f(function(t){return Vc(e,t)})}var zc=Array.isArray,qc=Object.getPrototypeOf,Kc=Object.prototype,Bc=Object.keys;function mi(e){if(e.length===1){var t=e[0];if(zc(t))return{args:t,keys:null};if(Yc(t)){var r=Bc(t);return{args:r.map(function(n){return t[n]}),keys:r}}}return{args:e,keys:null}}function Yc(e){return e&&typeof e=="object"&&qc(e)===Kc}function di(e,t){return e.reduce(function(r,n,o){return r[n]=t[o],r},{})}function ee(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=qe(e),n=gt(e),o=mi(e),i=o.args,a=o.keys;if(i.length===0)return me([],r);var s=new U(Vn(i,r,a?function(c){return di(a,c)}:Oe));return n?s.pipe(_t(n)):s}function Vn(e,t,r){return r===void 0&&(r=Oe),function(n){hi(t,function(){for(var o=e.length,i=new Array(o),a=o,s=o,c=function(u){hi(t,function(){var p=me(e[u],t),d=!1;p.subscribe(E(n,function(m){i[u]=m,d||(d=!0,s--),s||n.next(r(i.slice()))},function(){--a||n.complete()}))},n)},l=0;l<o;l++)c(l)},n)}}function hi(e,t,r){e?Fe(r,e,t):t()}function vi(e,t,r,n,o,i,a,s){var c=[],l=0,u=0,p=!1,d=function(){p&&!c.length&&!l&&t.complete()},m=function(v){return l<n?h(v):c.push(v)},h=function(v){i&&t.next(v),l++;var O=!1;q(r(v,u++)).subscribe(E(t,function(x){o==null||o(x),i?m(x):t.next(x)},function(){O=!0},void 0,function(){if(O)try{l--;for(var x=function(){var w=c.shift();a?Fe(t,a,function(){return h(w)}):h(w)};c.length&&l<n;)x();d()}catch(w){t.error(w)}}))};return e.subscribe(E(t,m,function(){p=!0,d()})),function(){s==null||s()}}function oe(e,t,r){return r===void 0&&(r=1/0),F(t)?oe(function(n,o){return f(function(i,a){return t(n,i,o,a)})(q(e(n,o)))},r):(typeof t=="number"&&(r=t),T(function(n,o){return vi(n,o,e,r)}))}function rr(e){return e===void 0&&(e=1/0),oe(Oe,e)}function bi(){return rr(1)}function rt(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return bi()(me(e,qe(e)))}function j(e){return new U(function(t){q(e()).subscribe(t)})}var Gc=["addListener","removeListener"],Jc=["addEventListener","removeEventListener"],Xc=["on","off"];function b(e,t,r,n){if(F(r)&&(n=r,r=void 0),n)return b(e,t,r).pipe(_t(n));var o=re(el(e)?Jc.map(function(s){return function(c){return e[s](t,c,r)}}):Zc(e)?Gc.map(gi(e,t)):Qc(e)?Xc.map(gi(e,t)):[],2),i=o[0],a=o[1];if(!i&&tr(e))return oe(function(s){return b(s,t,r)})(q(e));if(!i)throw new TypeError("Invalid event target");return new U(function(s){var c=function(){for(var l=[],u=0;u<arguments.length;u++)l[u]=arguments[u];return s.next(1<l.length?l:l[0])};return i(c),function(){return a(c)}})}function gi(e,t){return function(r){return function(n){return e[r](t,n)}}}function Zc(e){return F(e.addListener)&&F(e.removeListener)}function Qc(e){return F(e.on)&&F(e.off)}function el(e){return F(e.addEventListener)&&F(e.removeEventListener)}function sn(e,t,r){return r?sn(e,t).pipe(_t(r)):new U(function(n){var o=function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];return n.next(a.length===1?a[0]:a)},i=e(o);return F(t)?function(){return t(o,i)}:void 0})}function ze(e,t,r){e===void 0&&(e=0),r===void 0&&(r=Un);var n=-1;return t!=null&&(Yr(t)?r=t:n=t),new U(function(o){var i=fi(e)?+e-r.now():e;i<0&&(i=0);var a=0;return r.schedule(function(){o.closed||(o.next(a++),0<=n?this.schedule(void 0,n):o.complete())},i)})}function R(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=qe(e),n=Gr(e,1/0),o=e;return o.length?o.length===1?q(o[0]):rr(n)(me(o,r)):y}var ct=new U($e);var tl=Array.isArray;function cn(e){return e.length===1&&tl(e[0])?e[0]:e}function L(e,t){return T(function(r,n){var o=0;r.subscribe(E(n,function(i){return e.call(t,i,o++)&&n.next(i)}))})}function $t(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=gt(e),n=cn(e);return n.length?new U(function(o){var i=n.map(function(){return[]}),a=n.map(function(){return!1});o.add(function(){i=a=null});for(var s=function(l){q(n[l]).subscribe(E(o,function(u){if(i[l].push(u),i.every(function(d){return d.length})){var p=i.map(function(d){return d.shift()});o.next(r?r.apply(void 0,ne([],re(p))):p),i.some(function(d,m){return!d.length&&a[m]})&&o.complete()}},function(){a[l]=!0,!i[l].length&&o.complete()}))},c=0;!o.closed&&c<n.length;c++)s(c);return function(){i=a=null}}):y}function _i(e){return T(function(t,r){var n=!1,o=null,i=null,a=!1,s=function(){if(i==null||i.unsubscribe(),i=null,n){n=!1;var l=o;o=null,r.next(l)}a&&r.complete()},c=function(){i=null,a&&r.complete()};t.subscribe(E(r,function(l){n=!0,o=l,i||q(e(l)).subscribe(i=E(r,s,c))},function(){a=!0,(!n||!i||i.closed)&&r.complete()}))})}function Je(e,t){return t===void 0&&(t=ge),_i(function(){return ze(e,t)})}function Pt(e,t){return t===void 0&&(t=null),t=t!=null?t:e,T(function(r,n){var o=[],i=0;r.subscribe(E(n,function(a){var s,c,l,u,p=null;i++%t===0&&o.push([]);try{for(var d=He(o),m=d.next();!m.done;m=d.next()){var h=m.value;h.push(a),e<=h.length&&(p=p!=null?p:[],p.push(h))}}catch(x){s={error:x}}finally{try{m&&!m.done&&(c=d.return)&&c.call(d)}finally{if(s)throw s.error}}if(p)try{for(var v=He(p),O=v.next();!O.done;O=v.next()){var h=O.value;st(o,h),n.next(h)}}catch(x){l={error:x}}finally{try{O&&!O.done&&(u=v.return)&&u.call(v)}finally{if(l)throw l.error}}},function(){var a,s;try{for(var c=He(o),l=c.next();!l.done;l=c.next()){var u=l.value;n.next(u)}}catch(p){a={error:p}}finally{try{l&&!l.done&&(s=c.return)&&s.call(c)}finally{if(a)throw a.error}}n.complete()},void 0,function(){o=null}))})}function Se(e){return T(function(t,r){var n=null,o=!1,i;n=t.subscribe(E(r,void 0,void 0,function(a){i=q(e(a,Se(e)(t))),n?(n.unsubscribe(),n=null,i.subscribe(r)):o=!0})),o&&(n.unsubscribe(),n=null,i.subscribe(r))})}function yi(e,t,r,n,o){return function(i,a){var s=r,c=t,l=0;i.subscribe(E(a,function(u){var p=l++;c=s?e(c,u,p):(s=!0,u),n&&a.next(c)},o&&(function(){s&&a.next(c),a.complete()})))}}function zn(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=gt(e);return r?Jo(zn.apply(void 0,ne([],re(e))),_t(r)):T(function(n,o){Vn(ne([n],re(cn(e))))(o)})}function Xe(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return zn.apply(void 0,ne([],re(e)))}function Or(e){return T(function(t,r){var n=!1,o=null,i=null,a=function(){if(i==null||i.unsubscribe(),i=null,n){n=!1;var s=o;o=null,r.next(s)}};t.subscribe(E(r,function(s){i==null||i.unsubscribe(),n=!0,o=s,i=E(r,a,$e),q(e(s)).subscribe(i)},function(){a(),r.complete()},void 0,function(){o=i=null}))})}function Ke(e,t){return t===void 0&&(t=ge),T(function(r,n){var o=null,i=null,a=null,s=function(){if(o){o.unsubscribe(),o=null;var l=i;i=null,n.next(l)}};function c(){var l=a+e,u=t.now();if(u<l){o=this.schedule(void 0,l-u),n.add(o);return}s()}r.subscribe(E(n,function(l){i=l,a=t.now(),o||(o=t.schedule(c,e),n.add(o))},function(){s(),n.complete()},void 0,function(){i=o=null}))})}function nt(e){return T(function(t,r){var n=!1;t.subscribe(E(r,function(o){n=!0,r.next(o)},function(){n||r.next(e),r.complete()}))})}function Me(e){return e<=0?function(){return y}:T(function(t,r){var n=0;t.subscribe(E(r,function(o){++n<=e&&(r.next(o),e<=n&&r.complete())}))})}function he(){return T(function(e,t){e.subscribe(E(t,$e))})}function xi(e){return f(function(){return e})}function qn(e,t){return t?function(r){return rt(t.pipe(Me(1),he()),r.pipe(qn(e)))}:oe(function(r,n){return q(e(r,n)).pipe(Me(1),xi(r))})}function lt(e,t){t===void 0&&(t=ge);var r=ze(e,t);return qn(function(){return r})}function Kn(e,t){return T(function(r,n){var o=new Set;r.subscribe(E(n,function(i){var a=e?e(i):i;o.has(a)||(o.add(a),n.next(i))})),t&&q(t).subscribe(E(n,function(){return o.clear()},$e))})}function ie(e,t){return t===void 0&&(t=Oe),e=e!=null?e:rl,T(function(r,n){var o,i=!0;r.subscribe(E(n,function(a){var s=t(a);(i||!e(o,s))&&(i=!1,o=s,n.next(a))}))})}function rl(e,t){return e===t}function fe(e,t){return ie(function(r,n){return t?t(r[e],n[e]):r[e]===n[e]})}function wi(e){return e===void 0&&(e=nl),T(function(t,r){var n=!1;t.subscribe(E(r,function(o){n=!0,r.next(o)},function(){return n?r.complete():r.error(e())}))})}function nl(){return new an}function _e(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(r){return rt(r,Y.apply(void 0,ne([],re(e))))}}function ln(e,t){return t?function(r){return r.pipe(ln(function(n,o){return q(e(n,o)).pipe(f(function(i,a){return t(n,i,o,a)}))}))}:T(function(r,n){var o=0,i=null,a=!1;r.subscribe(E(n,function(s){i||(i=E(n,void 0,function(){i=null,a&&n.complete()}),q(e(s,o++)).subscribe(i))},function(){a=!0,!i&&n.complete()}))})}function V(e){return T(function(t,r){try{t.subscribe(r)}finally{r.add(e)}})}function Sr(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?L(function(o,i){return e(o,i,n)}):Oe,Me(1),r?nt(t):wi(function(){return new an}))}}function Bn(e){return e<=0?function(){return y}:T(function(t,r){var n=[];t.subscribe(E(r,function(o){n.push(o),e<n.length&&n.shift()},function(){var o,i;try{for(var a=He(n),s=a.next();!s.done;s=a.next()){var c=s.value;r.next(c)}}catch(l){o={error:l}}finally{try{s&&!s.done&&(i=a.return)&&i.call(a)}finally{if(o)throw o.error}}r.complete()},void 0,function(){n=null}))})}function Ei(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=qe(e),n=Gr(e,1/0);return T(function(o,i){rr(n)(me(ne([o],re(e)),r)).subscribe(i)})}function It(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Ei.apply(void 0,ne([],re(e)))}function Rt(e){var t,r=1/0,n;return e!=null&&(typeof e=="object"?(t=e.count,r=t===void 0?1/0:t,n=e.delay):r=e),r<=0?function(){return y}:T(function(o,i){var a=0,s,c=function(){if(s==null||s.unsubscribe(),s=null,n!=null){var u=typeof n=="number"?ze(n):q(n(a)),p=E(i,function(){p.unsubscribe(),l()});u.subscribe(p)}else l()},l=function(){var u=!1;s=o.subscribe(E(i,void 0,function(){++a<r?s?c():u=!0:i.complete()})),u&&c()};l()})}function Lr(e,t){return T(yi(e,t,arguments.length>=2,!0))}function ye(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new I}:t,n=e.resetOnError,o=n===void 0?!0:n,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,c=s===void 0?!0:s;return function(l){var u,p,d,m=0,h=!1,v=!1,O=function(){p==null||p.unsubscribe(),p=void 0},x=function(){O(),u=d=void 0,h=v=!1},w=function(){var _=u;x(),_==null||_.unsubscribe()};return T(function(_,de){m++,!v&&!h&&O();var be=d=d!=null?d:r();de.add(function(){m--,m===0&&!v&&!h&&(p=Yn(w,c))}),be.subscribe(de),!u&&m>0&&(u=new Ct({next:function(M){return be.next(M)},error:function(M){v=!0,O(),p=Yn(x,o,M),be.error(M)},complete:function(){h=!0,O(),p=Yn(x,a),be.complete()}}),q(_).subscribe(u))})(l)}}function Yn(e,t){for(var r=[],n=2;n<arguments.length;n++)r[n-2]=arguments[n];if(t===!0){e();return}if(t!==!1){var o=new Ct({next:function(){o.unsubscribe(),e()}});return q(t.apply(void 0,ne([],re(r)))).subscribe(o)}}function se(e,t,r){var n,o,i,a,s=!1;return e&&typeof e=="object"?(n=e.bufferSize,a=n===void 0?1/0:n,o=e.windowTime,t=o===void 0?1/0:o,i=e.refCount,s=i===void 0?!1:i,r=e.scheduler):a=e!=null?e:1/0,ye({connector:function(){return new Er(a,t,r)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:s})}function Ie(e){return L(function(t,r){return e<=r})}function J(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=qe(e);return T(function(n,o){(r?rt(e,n,r):rt(e,n)).subscribe(o)})}function g(e,t){return T(function(r,n){var o=null,i=0,a=!1,s=function(){return a&&!o&&n.complete()};r.subscribe(E(n,function(c){o==null||o.unsubscribe();var l=0,u=i++;q(e(c,u)).subscribe(o=E(n,function(p){return n.next(t?t(c,p,u,l++):p)},function(){o=null,s()}))},function(){a=!0,s()}))})}function Q(e){return T(function(t,r){q(e).subscribe(E(r,function(){return r.complete()},$e)),!r.closed&&t.subscribe(r)})}function Gn(e,t){return t===void 0&&(t=!1),T(function(r,n){var o=0;r.subscribe(E(n,function(i){var a=e(i,o++);(a||t)&&n.next(i),!a&&n.complete()}))})}function $(e,t,r){var n=F(e)||t||r?{next:e,error:t,complete:r}:e;return n?T(function(o,i){var a;(a=n.subscribe)===null||a===void 0||a.call(n);var s=!0;o.subscribe(E(i,function(c){var l;(l=n.next)===null||l===void 0||l.call(n,c),i.next(c)},function(){var c;s=!1,(c=n.complete)===null||c===void 0||c.call(n),i.complete()},function(c){var l;s=!1,(l=n.error)===null||l===void 0||l.call(n,c),i.error(c)},function(){var c,l;s&&((c=n.unsubscribe)===null||c===void 0||c.call(n)),(l=n.finalize)===null||l===void 0||l.call(n)}))}):Oe}function Ti(e,t){return T(function(r,n){var o=t!=null?t:{},i=o.leading,a=i===void 0?!0:i,s=o.trailing,c=s===void 0?!1:s,l=!1,u=null,p=null,d=!1,m=function(){p==null||p.unsubscribe(),p=null,c&&(O(),d&&n.complete())},h=function(){p=null,d&&n.complete()},v=function(x){return p=q(e(x)).subscribe(E(n,m,h))},O=function(){if(l){l=!1;var x=u;u=null,n.next(x),!d&&v(x)}};r.subscribe(E(n,function(x){l=!0,u=x,!(p&&!p.closed)&&(a?O():v(x))},function(){d=!0,!(c&&l&&p&&!p.closed)&&n.complete()}))})}function Mr(e,t,r){t===void 0&&(t=ge);var n=ze(e,t);return Ti(function(){return n},r)}function le(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=gt(e);return T(function(n,o){for(var i=e.length,a=new Array(i),s=e.map(function(){return!1}),c=!1,l=function(p){q(e[p]).subscribe(E(o,function(d){a[p]=d,!c&&!s[p]&&(s[p]=!0,(c=s.every(Oe))&&(s=null))},$e))},u=0;u<i;u++)l(u);n.subscribe(E(o,function(p){if(c){var d=ne([p],re(a));o.next(r?r.apply(void 0,ne([],re(d))):d)}}))})}function Oi(){let e=new Er(1);return b(document,"DOMContentLoaded",{once:!0}).subscribe(()=>e.next(document)),e}function P(e,t=document){return Array.from(t.querySelectorAll(e))}function G(e,t=document){let r=Le(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function Le(e,t=document){return t.querySelector(e)||void 0}function yt(){var e,t,r,n;return(n=(r=(t=(e=document.activeElement)==null?void 0:e.shadowRoot)==null?void 0:t.activeElement)!=null?r:document.activeElement)!=null?n:void 0}var ol=R(b(document.body,"focusin"),b(document.body,"focusout")).pipe(Ke(1),J(void 0),f(()=>yt()||document.body),se(1));function nr(e){return ol.pipe(f(t=>e.contains(t)),ie())}function jt(e,t){return j(()=>R(b(e,"mouseenter").pipe(f(()=>!0)),b(e,"mouseleave").pipe(f(()=>!1))).pipe(t?Or(r=>ze(+!r*t)):Oe,J(e.matches(":hover"))))}function Si(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Si(e,r)}function A(e,t,...r){let n=document.createElement(e);if(t)for(let o of Object.keys(t))typeof t[o]!="undefined"&&(typeof t[o]!="boolean"?n.setAttribute(o,t[o]):n.setAttribute(o,""));for(let o of r)Si(n,o);return n}function Li(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function or(e){let t=A("script",{src:e});return j(()=>(document.head.appendChild(t),R(b(t,"load"),b(t,"error").pipe(g(()=>Dn(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(f(()=>{}),V(()=>document.head.removeChild(t)),Me(1))))}var Mi=new I,il=j(()=>typeof ResizeObserver=="undefined"?or("https://unpkg.com/resize-observer-polyfill"):Y(void 0)).pipe(f(()=>new ResizeObserver(e=>e.forEach(t=>Mi.next(t)))),g(e=>R(ct,Y(e)).pipe(V(()=>e.disconnect()))),se(1));function ke(e){return{width:e.offsetWidth,height:e.offsetHeight}}function Re(e){let t=e;for(;t.clientWidth===0&&t.parentElement;)t=t.parentElement;return il.pipe($(r=>r.observe(t)),g(r=>Mi.pipe(L(n=>n.target===t),V(()=>r.unobserve(t)))),f(()=>ke(e)),J(ke(e)))}function kr(e){return{width:e.scrollWidth,height:e.scrollHeight}}function ki(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}function Ai(e){let t=[],r=e.parentElement;for(;r;)(e.clientWidth>r.clientWidth||e.clientHeight>r.clientHeight)&&t.push(r),r=(e=r).parentElement;return t.length===0&&t.push(document.documentElement),t}function xt(e){return{x:e.offsetLeft,y:e.offsetTop}}function Ci(e){let t=e.getBoundingClientRect();return{x:t.x+window.scrollX,y:t.y+window.scrollY}}function Hi(e){return R(b(window,"load"),b(window,"resize")).pipe(Je(0,je),f(()=>xt(e)),J(xt(e)))}function un(e){return{x:e.scrollLeft,y:e.scrollTop}}function Ft(e){return R(b(e,"scroll"),b(window,"scroll"),b(window,"resize")).pipe(Je(0,je),f(()=>un(e)),J(un(e)))}var $i=new I,al=j(()=>Y(new IntersectionObserver(e=>{for(let t of e)$i.next(t)},{threshold:0}))).pipe(g(e=>R(ct,Y(e)).pipe(V(()=>e.disconnect()))),se(1));function wt(e){return al.pipe($(t=>t.observe(e)),g(t=>$i.pipe(L(({target:r})=>r===e),V(()=>t.unobserve(e)),f(({isIntersecting:r})=>r))))}var sl=Object.create,ua=Object.defineProperty,cl=Object.getOwnPropertyDescriptor,ll=Object.getOwnPropertyNames,ul=Object.getPrototypeOf,pl=Object.prototype.hasOwnProperty,fl=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ml=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ll(t))!pl.call(e,o)&&o!==r&&ua(e,o,{get:()=>t[o],enumerable:!(n=cl(t,o))||n.enumerable});return e},dl=(e,t,r)=>(r=e!=null?sl(ul(e)):{},ml(t||!e||!e.__esModule?ua(r,"default",{value:e,enumerable:!0}):r,e)),hl=fl((e,t)=>{var r="Expected a function",n=NaN,o="[object Symbol]",i=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt,u=typeof global=="object"&&global&&global.Object===Object&&global,p=typeof self=="object"&&self&&self.Object===Object&&self,d=u||p||Function("return this")(),m=Object.prototype,h=m.toString,v=Math.max,O=Math.min,x=function(){return d.Date.now()};function w(S,N,te){var ue,ce,We,vt,De,at,et=0,Kt=!1,Mt=!1,br=!0;if(typeof S!="function")throw new TypeError(r);N=M(N)||0,_(te)&&(Kt=!!te.leading,Mt="maxWait"in te,We=Mt?v(M(te.maxWait)||0,N):We,br="trailing"in te?!!te.trailing:br);function B(Ee){var bt=ue,gr=ce;return ue=ce=void 0,et=Ee,vt=S.apply(gr,bt),vt}function C(Ee){return et=Ee,De=setTimeout(D,N),Kt?B(Ee):vt}function k(Ee){var bt=Ee-at,gr=Ee-et,Ro=N-bt;return Mt?O(Ro,We-gr):Ro}function W(Ee){var bt=Ee-at,gr=Ee-et;return at===void 0||bt>=N||bt<0||Mt&&gr>=We}function D(){var Ee=x();if(W(Ee))return Z(Ee);De=setTimeout(D,k(Ee))}function Z(Ee){return De=void 0,br&&ue?B(Ee):(ue=ce=void 0,vt)}function Ve(){De!==void 0&&clearTimeout(De),et=0,ue=at=ce=De=void 0}function Bt(){return De===void 0?vt:Z(x())}function Wr(){var Ee=x(),bt=W(Ee);if(ue=arguments,ce=this,at=Ee,bt){if(De===void 0)return C(at);if(Mt)return De=setTimeout(D,N),B(at)}return De===void 0&&(De=setTimeout(D,N)),vt}return Wr.cancel=Ve,Wr.flush=Bt,Wr}function _(S){var N=typeof S;return!!S&&(N=="object"||N=="function")}function de(S){return!!S&&typeof S=="object"}function be(S){return typeof S=="symbol"||de(S)&&h.call(S)==o}function M(S){if(typeof S=="number")return S;if(be(S))return n;if(_(S)){var N=typeof S.valueOf=="function"?S.valueOf():S;S=_(N)?N+"":N}if(typeof S!="string")return S===0?S:+S;S=S.replace(i,"");var te=s.test(S);return te||c.test(S)?l(S.slice(2),te?2:8):a.test(S)?n:+S}t.exports=w}),_n,K,pa,fa,Ut,Pi,ma,da,ha,lo,eo,to,vl,Cr={},va=[],bl=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Ir=Array.isArray;function ft(e,t){for(var r in t)e[r]=t[r];return e}function uo(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function Wt(e,t,r){var n,o,i,a={};for(i in t)i=="key"?n=t[i]:i=="ref"?o=t[i]:a[i]=t[i];if(arguments.length>2&&(a.children=arguments.length>3?_n.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(i in e.defaultProps)a[i]===void 0&&(a[i]=e.defaultProps[i]);return mn(e,a,n,o,null)}function mn(e,t,r,n,o){var i={type:e,props:t,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o!=null?o:++pa,__i:-1,__u:0};return o==null&&K.vnode!=null&&K.vnode(i),i}function mt(e){return e.children}function it(e,t){this.props=e,this.context=t}function ar(e,t){if(t==null)return e.__?ar(e.__,e.__i+1):null;for(var r;t<e.__k.length;t++)if((r=e.__k[t])!=null&&r.__e!=null)return r.__e;return typeof e.type=="function"?ar(e):null}function ba(e){var t,r;if((e=e.__)!=null&&e.__c!=null){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if((r=e.__k[t])!=null&&r.__e!=null){e.__e=e.__c.base=r.__e;break}return ba(e)}}function Ii(e){(!e.__d&&(e.__d=!0)&&Ut.push(e)&&!vn.__r++||Pi!=K.debounceRendering)&&((Pi=K.debounceRendering)||ma)(vn)}function vn(){for(var e,t,r,n,o,i,a,s=1;Ut.length;)Ut.length>s&&Ut.sort(da),e=Ut.shift(),s=Ut.length,e.__d&&(r=void 0,n=void 0,o=(n=(t=e).__v).__e,i=[],a=[],t.__P&&((r=ft({},n)).__v=n.__v+1,K.vnode&&K.vnode(r),po(t.__P,r,n,t.__n,t.__P.namespaceURI,32&n.__u?[o]:null,i,o!=null?o:ar(n),!!(32&n.__u),a),r.__v=n.__v,r.__.__k[r.__i]=r,ya(i,r,a),n.__e=n.__=null,r.__e!=o&&ba(r)));vn.__r=0}function ga(e,t,r,n,o,i,a,s,c,l,u){var p,d,m,h,v,O,x,w=n&&n.__k||va,_=t.length;for(c=gl(r,t,w,c,_),p=0;p<_;p++)(m=r.__k[p])!=null&&(d=m.__i==-1?Cr:w[m.__i]||Cr,m.__i=p,O=po(e,m,d,o,i,a,s,c,l,u),h=m.__e,m.ref&&d.ref!=m.ref&&(d.ref&&fo(d.ref,null,m),u.push(m.ref,m.__c||h,m)),v==null&&h!=null&&(v=h),(x=!!(4&m.__u))||d.__k===m.__k?c=_a(m,c,e,x):typeof m.type=="function"&&O!==void 0?c=O:h&&(c=h.nextSibling),m.__u&=-7);return r.__e=v,c}function gl(e,t,r,n,o){var i,a,s,c,l,u=r.length,p=u,d=0;for(e.__k=new Array(o),i=0;i<o;i++)(a=t[i])!=null&&typeof a!="boolean"&&typeof a!="function"?(c=i+d,(a=e.__k[i]=typeof a=="string"||typeof a=="number"||typeof a=="bigint"||a.constructor==String?mn(null,a,null,null,null):Ir(a)?mn(mt,{children:a},null,null,null):a.constructor==null&&a.__b>0?mn(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):a).__=e,a.__b=e.__b+1,s=null,(l=a.__i=_l(a,r,c,p))!=-1&&(p--,(s=r[l])&&(s.__u|=2)),s==null||s.__v==null?(l==-1&&(o>u?d--:o<u&&d++),typeof a.type!="function"&&(a.__u|=4)):l!=c&&(l==c-1?d--:l==c+1?d++:(l>c?d--:d++,a.__u|=4))):e.__k[i]=null;if(p)for(i=0;i<u;i++)(s=r[i])!=null&&!(2&s.__u)&&(s.__e==n&&(n=ar(s)),wa(s,s));return n}function _a(e,t,r,n){var o,i;if(typeof e.type=="function"){for(o=e.__k,i=0;o&&i<o.length;i++)o[i]&&(o[i].__=e,t=_a(o[i],t,r,n));return t}e.__e!=t&&(n&&(t&&e.type&&!t.parentNode&&(t=ar(e)),r.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function Hr(e,t){return t=t||[],e==null||typeof e=="boolean"||(Ir(e)?e.some(function(r){Hr(r,t)}):t.push(e)),t}function _l(e,t,r,n){var o,i,a,s=e.key,c=e.type,l=t[r],u=l!=null&&(2&l.__u)==0;if(l===null&&e.key==null||u&&s==l.key&&c==l.type)return r;if(n>(u?1:0)){for(o=r-1,i=r+1;o>=0||i<t.length;)if((l=t[a=o>=0?o--:i++])!=null&&!(2&l.__u)&&s==l.key&&c==l.type)return a}return-1}function Ri(e,t,r){t[0]=="-"?e.setProperty(t,r!=null?r:""):e[t]=r==null?"":typeof r!="number"||bl.test(t)?r:r+"px"}function pn(e,t,r,n,o){var i,a;e:if(t=="style")if(typeof r=="string")e.style.cssText=r;else{if(typeof n=="string"&&(e.style.cssText=n=""),n)for(t in n)r&&t in r||Ri(e.style,t,"");if(r)for(t in r)n&&r[t]==n[t]||Ri(e.style,t,r[t])}else if(t[0]=="o"&&t[1]=="n")i=t!=(t=t.replace(ha,"$1")),a=t.toLowerCase(),t=a in e||t=="onFocusOut"||t=="onFocusIn"?a.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=r,r?n?r.u=n.u:(r.u=lo,e.addEventListener(t,i?to:eo,i)):e.removeEventListener(t,i?to:eo,i);else{if(o=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=r!=null?r:"";break e}catch(s){}typeof r=="function"||(r==null||r===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&r==1?"":r))}}function ji(e){return function(t){if(this.l){var r=this.l[t.type+e];if(t.t==null)t.t=lo++;else if(t.t<r.u)return;return r(K.event?K.event(t):t)}}}function po(e,t,r,n,o,i,a,s,c,l){var u,p,d,m,h,v,O,x,w,_,de,be,M,S,N,te,ue,ce=t.type;if(t.constructor!=null)return null;128&r.__u&&(c=!!(32&r.__u),i=[s=t.__e=r.__e]),(u=K.__b)&&u(t);e:if(typeof ce=="function")try{if(x=t.props,w="prototype"in ce&&ce.prototype.render,_=(u=ce.contextType)&&n[u.__c],de=u?_?_.props.value:u.__:n,r.__c?O=(p=t.__c=r.__c).__=p.__E:(w?t.__c=p=new ce(x,de):(t.__c=p=new it(x,de),p.constructor=ce,p.render=xl),_&&_.sub(p),p.props=x,p.state||(p.state={}),p.context=de,p.__n=n,d=p.__d=!0,p.__h=[],p._sb=[]),w&&p.__s==null&&(p.__s=p.state),w&&ce.getDerivedStateFromProps!=null&&(p.__s==p.state&&(p.__s=ft({},p.__s)),ft(p.__s,ce.getDerivedStateFromProps(x,p.__s))),m=p.props,h=p.state,p.__v=t,d)w&&ce.getDerivedStateFromProps==null&&p.componentWillMount!=null&&p.componentWillMount(),w&&p.componentDidMount!=null&&p.__h.push(p.componentDidMount);else{if(w&&ce.getDerivedStateFromProps==null&&x!==m&&p.componentWillReceiveProps!=null&&p.componentWillReceiveProps(x,de),!p.__e&&p.shouldComponentUpdate!=null&&p.shouldComponentUpdate(x,p.__s,de)===!1||t.__v==r.__v){for(t.__v!=r.__v&&(p.props=x,p.state=p.__s,p.__d=!1),t.__e=r.__e,t.__k=r.__k,t.__k.some(function(We){We&&(We.__=t)}),be=0;be<p._sb.length;be++)p.__h.push(p._sb[be]);p._sb=[],p.__h.length&&a.push(p);break e}p.componentWillUpdate!=null&&p.componentWillUpdate(x,p.__s,de),w&&p.componentDidUpdate!=null&&p.__h.push(function(){p.componentDidUpdate(m,h,v)})}if(p.context=de,p.props=x,p.__P=e,p.__e=!1,M=K.__r,S=0,w){for(p.state=p.__s,p.__d=!1,M&&M(t),u=p.render(p.props,p.state,p.context),N=0;N<p._sb.length;N++)p.__h.push(p._sb[N]);p._sb=[]}else do p.__d=!1,M&&M(t),u=p.render(p.props,p.state,p.context),p.state=p.__s;while(p.__d&&++S<25);p.state=p.__s,p.getChildContext!=null&&(n=ft(ft({},n),p.getChildContext())),w&&!d&&p.getSnapshotBeforeUpdate!=null&&(v=p.getSnapshotBeforeUpdate(m,h)),te=u,u!=null&&u.type===mt&&u.key==null&&(te=xa(u.props.children)),s=ga(e,Ir(te)?te:[te],t,r,n,o,i,a,s,c,l),p.base=t.__e,t.__u&=-161,p.__h.length&&a.push(p),O&&(p.__E=p.__=null)}catch(We){if(t.__v=null,c||i!=null)if(We.then){for(t.__u|=c?160:128;s&&s.nodeType==8&&s.nextSibling;)s=s.nextSibling;i[i.indexOf(s)]=null,t.__e=s}else{for(ue=i.length;ue--;)uo(i[ue]);ro(t)}else t.__e=r.__e,t.__k=r.__k,We.then||ro(t);K.__e(We,t,r)}else i==null&&t.__v==r.__v?(t.__k=r.__k,t.__e=r.__e):s=t.__e=yl(r.__e,t,r,n,o,i,a,c,l);return(u=K.diffed)&&u(t),128&t.__u?void 0:s}function ro(e){e&&e.__c&&(e.__c.__e=!0),e&&e.__k&&e.__k.forEach(ro)}function ya(e,t,r){for(var n=0;n<r.length;n++)fo(r[n],r[++n],r[++n]);K.__c&&K.__c(t,e),e.some(function(o){try{e=o.__h,o.__h=[],e.some(function(i){i.call(o)})}catch(i){K.__e(i,o.__v)}})}function xa(e){return typeof e!="object"||e==null||e.__b&&e.__b>0?e:Ir(e)?e.map(xa):ft({},e)}function yl(e,t,r,n,o,i,a,s,c){var l,u,p,d,m,h,v,O=r.props,x=t.props,w=t.type;if(w=="svg"?o="http://www.w3.org/2000/svg":w=="math"?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),i!=null){for(l=0;l<i.length;l++)if((m=i[l])&&"setAttribute"in m==!!w&&(w?m.localName==w:m.nodeType==3)){e=m,i[l]=null;break}}if(e==null){if(w==null)return document.createTextNode(x);e=document.createElementNS(o,w,x.is&&x),s&&(K.__m&&K.__m(t,i),s=!1),i=null}if(w==null)O===x||s&&e.data==x||(e.data=x);else{if(i=i&&_n.call(e.childNodes),O=r.props||Cr,!s&&i!=null)for(O={},l=0;l<e.attributes.length;l++)O[(m=e.attributes[l]).name]=m.value;for(l in O)if(m=O[l],l!="children"){if(l=="dangerouslySetInnerHTML")p=m;else if(!(l in x)){if(l=="value"&&"defaultValue"in x||l=="checked"&&"defaultChecked"in x)continue;pn(e,l,null,m,o)}}for(l in x)m=x[l],l=="children"?d=m:l=="dangerouslySetInnerHTML"?u=m:l=="value"?h=m:l=="checked"?v=m:s&&typeof m!="function"||O[l]===m||pn(e,l,m,O[l],o);if(u)s||p&&(u.__html==p.__html||u.__html==e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(p&&(e.innerHTML=""),ga(t.type=="template"?e.content:e,Ir(d)?d:[d],t,r,n,w=="foreignObject"?"http://www.w3.org/1999/xhtml":o,i,a,i?i[0]:r.__k&&ar(r,0),s,c),i!=null)for(l=i.length;l--;)uo(i[l]);s||(l="value",w=="progress"&&h==null?e.removeAttribute("value"):h!=null&&(h!==e[l]||w=="progress"&&!h||w=="option"&&h!=O[l])&&pn(e,l,h,O[l],o),l="checked",v!=null&&v!=e[l]&&pn(e,l,v,O[l],o))}return e}function fo(e,t,r){try{if(typeof e=="function"){var n=typeof e.__u=="function";n&&e.__u(),n&&t==null||(e.__u=e(t))}else e.current=t}catch(o){K.__e(o,r)}}function wa(e,t,r){var n,o;if(K.unmount&&K.unmount(e),(n=e.ref)&&(n.current&&n.current!=e.__e||fo(n,null,t)),(n=e.__c)!=null){if(n.componentWillUnmount)try{n.componentWillUnmount()}catch(i){K.__e(i,t)}n.base=n.__P=null}if(n=e.__k)for(o=0;o<n.length;o++)n[o]&&wa(n[o],t,r||typeof e.type!="function");r||uo(e.__e),e.__c=e.__=e.__e=void 0}function xl(e,t,r){return this.constructor(e,r)}function wl(e,t,r){var n,o,i,a;t==document&&(t=document.documentElement),K.__&&K.__(e,t),o=(n=typeof r=="function")?null:r&&r.__k||t.__k,i=[],a=[],po(t,e=(!n&&r||t).__k=Wt(mt,null,[e]),o||Cr,Cr,t.namespaceURI,!n&&r?[r]:o?null:t.firstChild?_n.call(t.childNodes):null,i,!n&&r?r:o?o.__e:t.firstChild,n,a),ya(i,e,a)}_n=va.slice,K={__e:function(e,t,r,n){for(var o,i,a;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&i.getDerivedStateFromError!=null&&(o.setState(i.getDerivedStateFromError(e)),a=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(e,n||{}),a=o.__d),a)return o.__E=o}catch(s){e=s}throw e}},pa=0,fa=function(e){return e!=null&&e.constructor==null},it.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=ft({},this.state),typeof e=="function"&&(e=e(ft({},r),this.props)),e&&ft(r,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ii(this))},it.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ii(this))},it.prototype.render=mt,Ut=[],ma=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,da=function(e,t){return e.__v.__b-t.__v.__b},vn.__r=0,ha=/(PointerCapture)$|Capture$/i,lo=0,eo=ji(!1),to=ji(!0),vl=0;var $r,ve,Jn,Fi,Pr=0,Ea=[],xe=K,Ui=xe.__b,Ni=xe.__r,Wi=xe.diffed,Di=xe.__c,Vi=xe.unmount,zi=xe.__;function mo(e,t){xe.__h&&xe.__h(ve,e,Pr||t),Pr=0;var r=ve.__H||(ve.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({}),r.__[e]}function no(e){return Pr=1,El(Oa,e)}function El(e,t,r){var n=mo($r++,2);if(n.t=e,!n.__c&&(n.__=[r?r(t):Oa(void 0,t),function(s){var c=n.__N?n.__N[0]:n.__[0],l=n.t(c,s);c!==l&&(n.__N=[l,n.__[1]],n.__c.setState({}))}],n.__c=ve,!ve.__f)){var o=function(s,c,l){if(!n.__c.__H)return!0;var u=n.__c.__H.__.filter(function(d){return!!d.__c});if(u.every(function(d){return!d.__N}))return!i||i.call(this,s,c,l);var p=n.__c.props!==s;return u.forEach(function(d){if(d.__N){var m=d.__[0];d.__=d.__N,d.__N=void 0,m!==d.__[0]&&(p=!0)}}),i&&i.call(this,s,c,l)||p};ve.__f=!0;var i=ve.shouldComponentUpdate,a=ve.componentWillUpdate;ve.componentWillUpdate=function(s,c,l){if(this.__e){var u=i;i=void 0,o(s,c,l),i=u}a&&a.call(this,s,c,l)},ve.shouldComponentUpdate=o}return n.__N||n.__}function Ot(e,t){var r=mo($r++,3);!xe.__s&&Ta(r.__H,t)&&(r.__=e,r.u=t,ve.__H.__h.push(r))}function Dt(e){return Pr=5,lr(function(){return{current:e}},[])}function lr(e,t){var r=mo($r++,7);return Ta(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function Tl(e,t){return Pr=8,lr(function(){return e},t)}function Ol(){for(var e;e=Ea.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(dn),e.__H.__h.forEach(oo),e.__H.__h=[]}catch(t){e.__H.__h=[],xe.__e(t,e.__v)}}xe.__b=function(e){ve=null,Ui&&Ui(e)},xe.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),zi&&zi(e,t)},xe.__r=function(e){Ni&&Ni(e),$r=0;var t=(ve=e.__c).__H;t&&(Jn===ve?(t.__h=[],ve.__h=[],t.__.forEach(function(r){r.__N&&(r.__=r.__N),r.u=r.__N=void 0})):(t.__h.forEach(dn),t.__h.forEach(oo),t.__h=[],$r=0)),Jn=ve},xe.diffed=function(e){Wi&&Wi(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(Ea.push(t)!==1&&Fi===xe.requestAnimationFrame||((Fi=xe.requestAnimationFrame)||Sl)(Ol)),t.__H.__.forEach(function(r){r.u&&(r.__H=r.u),r.u=void 0})),Jn=ve=null},xe.__c=function(e,t){t.some(function(r){try{r.__h.forEach(dn),r.__h=r.__h.filter(function(n){return!n.__||oo(n)})}catch(n){t.some(function(o){o.__h&&(o.__h=[])}),t=[],xe.__e(n,r.__v)}}),Di&&Di(e,t)},xe.unmount=function(e){Vi&&Vi(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{dn(n)}catch(o){t=o}}),r.__H=void 0,t&&xe.__e(t,r.__v))};var qi=typeof requestAnimationFrame=="function";function Sl(e){var t,r=function(){clearTimeout(n),qi&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,35);qi&&(t=requestAnimationFrame(r))}function dn(e){var t=ve,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),ve=t}function oo(e){var t=ve;e.__c=e.__(),ve=t}function Ta(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function Oa(e,t){return typeof t=="function"?t(e):t}function Ll(e,t){for(var r in t)e[r]=t[r];return e}function Ki(e,t){for(var r in e)if(r!=="__source"&&!(r in t))return!0;for(var n in t)if(n!=="__source"&&e[n]!==t[n])return!0;return!1}function Bi(e,t){this.props=e,this.context=t}(Bi.prototype=new it).isPureReactComponent=!0,Bi.prototype.shouldComponentUpdate=function(e,t){return Ki(this.props,e)||Ki(this.state,t)};var Yi=K.__b;K.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Yi&&Yi(e)};var qx=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911,Ml=K.__e;K.__e=function(e,t,r,n){if(e.then){for(var o,i=t;i=i.__;)if((o=i.__c)&&o.__c)return t.__e==null&&(t.__e=r.__e,t.__k=r.__k),o.__c(e,t)}Ml(e,t,r,n)};var Gi=K.unmount;function Sa(e,t,r){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach(function(n){typeof n.__c=="function"&&n.__c()}),e.__c.__H=null),(e=Ll({},e)).__c!=null&&(e.__c.__P===r&&(e.__c.__P=t),e.__c.__e=!0,e.__c=null),e.__k=e.__k&&e.__k.map(function(n){return Sa(n,t,r)})),e}function La(e,t,r){return e&&r&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(n){return La(n,t,r)}),e.__c&&e.__c.__P===t&&(e.__e&&r.appendChild(e.__e),e.__c.__e=!0,e.__c.__P=r)),e}function Xn(){this.__u=0,this.o=null,this.__b=null}function Ma(e){var t=e.__.__c;return t&&t.__a&&t.__a(e)}function fn(){this.i=null,this.l=null}K.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),Gi&&Gi(e)},(Xn.prototype=new it).__c=function(e,t){var r=t.__c,n=this;n.o==null&&(n.o=[]),n.o.push(r);var o=Ma(n.__v),i=!1,a=function(){i||(i=!0,r.__R=null,o?o(s):s())};r.__R=a;var s=function(){if(!--n.__u){if(n.state.__a){var c=n.state.__a;n.__v.__k[0]=La(c,c.__c.__P,c.__c.__O)}var l;for(n.setState({__a:n.__b=null});l=n.o.pop();)l.forceUpdate()}};n.__u++||32&t.__u||n.setState({__a:n.__b=n.__v.__k[0]}),e.then(a,a)},Xn.prototype.componentWillUnmount=function(){this.o=[]},Xn.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=Sa(this.__b,r,n.__O=n.__P)}this.__b=null}var o=t.__a&&Wt(mt,null,e.fallback);return o&&(o.__u&=-33),[Wt(mt,null,t.__a?null:e.children),o]};var Ji=function(e,t,r){if(++r[1]===r[0]&&e.l.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.l.size))for(r=e.i;r;){for(;r.length>3;)r.pop()();if(r[1]<r[0])break;e.i=r=r[2]}};(fn.prototype=new it).__a=function(e){var t=this,r=Ma(t.__v),n=t.l.get(e);return n[0]++,function(o){var i=function(){t.props.revealOrder?(n.push(o),Ji(t,e,n)):o()};r?r(i):i()}},fn.prototype.render=function(e){this.i=null,this.l=new Map;var t=Hr(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var r=t.length;r--;)this.l.set(t[r],this.i=[1,0,this.i]);return e.children},fn.prototype.componentDidUpdate=fn.prototype.componentDidMount=function(){var e=this;this.l.forEach(function(t,r){Ji(e,r,t)})};var kl=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,Al=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Cl=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Hl=/[A-Z0-9]/g,$l=typeof document<"u",Pl=function(e){return(typeof Symbol<"u"&&typeof Symbol()=="symbol"?/fil|che|rad/:/fil|che|ra/).test(e)};it.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(it.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var Xi=K.event;function Il(){}function Rl(){return this.cancelBubble}function jl(){return this.defaultPrevented}K.event=function(e){return Xi&&(e=Xi(e)),e.persist=Il,e.isPropagationStopped=Rl,e.isDefaultPrevented=jl,e.nativeEvent=e};var ka,Fl={enumerable:!1,configurable:!0,get:function(){return this.class}},Zi=K.vnode;K.vnode=function(e){typeof e.type=="string"&&(function(t){var r=t.props,n=t.type,o={},i=n.indexOf("-")===-1;for(var a in r){var s=r[a];if(!(a==="value"&&"defaultValue"in r&&s==null||$l&&a==="children"&&n==="noscript"||a==="class"||a==="className")){var c=a.toLowerCase();a==="defaultValue"&&"value"in r&&r.value==null?a="value":a==="download"&&s===!0?s="":c==="translate"&&s==="no"?s=!1:c[0]==="o"&&c[1]==="n"?c==="ondoubleclick"?a="ondblclick":c!=="onchange"||n!=="input"&&n!=="textarea"||Pl(r.type)?c==="onfocus"?a="onfocusin":c==="onblur"?a="onfocusout":Cl.test(a)&&(a=c):c=a="oninput":i&&Al.test(a)?a=a.replace(Hl,"-$&").toLowerCase():s===null&&(s=void 0),c==="oninput"&&o[a=c]&&(a="oninputCapture"),o[a]=s}}n=="select"&&o.multiple&&Array.isArray(o.value)&&(o.value=Hr(r.children).forEach(function(l){l.props.selected=o.value.indexOf(l.props.value)!=-1})),n=="select"&&o.defaultValue!=null&&(o.value=Hr(r.children).forEach(function(l){l.props.selected=o.multiple?o.defaultValue.indexOf(l.props.value)!=-1:o.defaultValue==l.props.value})),r.class&&!r.className?(o.class=r.class,Object.defineProperty(o,"className",Fl)):(r.className&&!r.class||r.class&&r.className)&&(o.class=o.className=r.className),t.props=o})(e),e.$$typeof=kl,Zi&&Zi(e)};var Qi=K.__r;K.__r=function(e){Qi&&Qi(e),ka=e.__c};var ea=K.diffed;K.diffed=function(e){ea&&ea(e);var t=e.props,r=e.__e;r!=null&&e.type==="textarea"&&"value"in t&&t.value!==r.value&&(r.value=t.value==null?"":t.value),ka=null};function Aa(e){let t=Dt(e);return t.current=e,lr(()=>Object.freeze({get current(){return t.current}}),[])}var Ul=typeof globalThis<"u"&&typeof navigator<"u"&&typeof document<"u";function Nl(e,...t){var r;(r=e==null?void 0:e.addEventListener)==null||r.call(e,...t)}function Wl(e,...t){var r;(r=e==null?void 0:e.removeEventListener)==null||r.call(e,...t)}var Dl=(e,t)=>Object.hasOwn(e,t),Vl=()=>!0,zl=()=>!1;function ql(e=!1){let t=Dt(e),r=Tl(()=>t.current,[]);return Ot(()=>(t.current=!0,()=>{t.current=!1}),[]),r}function Kl(e,...t){let r=ql(),n=Aa(t[1]),o=lr(()=>function(...i){r()&&(typeof n.current=="function"?n.current.apply(this,i):typeof n.current.handleEvent=="function"&&n.current.handleEvent.apply(this,i))},[]);Ot(()=>{let i=Bl(e)?e.current:e;if(!i)return;let a=t.slice(2);return Nl(i,t[0],o,...a),()=>{Wl(i,t[0],o,...a)}},[e,t[0]])}function Bl(e){return e!==null&&typeof e=="object"&&Dl(e,"current")}var Yl=e=>typeof e=="function"?e:typeof e=="string"?t=>t.key===e:e?Vl:zl,Gl=Ul?globalThis:null;function Ca(e,t,r=[],n={}){let{event:o="keydown",target:i=Gl,eventOptions:a}=n,s=Aa(t),c=lr(()=>{let l=Yl(e);return function(u){l(u)&&s.current.call(this,u)}},r);Kl(i,o,c,a)}function Ha(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(r=Ha(e[t]))&&(n&&(n+=" "),n+=r)}else for(r in e)e[r]&&(n&&(n+=" "),n+=r);return n}function Jl(){for(var e,t,r=0,n="",o=arguments.length;r<o;r++)(e=arguments[r])&&(t=Ha(e))&&(n&&(n+=" "),n+=t);return n}var sr=Jl,Xl=Symbol.for("preact-signals");function yn(){if(Tt>1)Tt--;else{for(var e,t=!1;Ar!==void 0;){var r=Ar;for(Ar=void 0,io++;r!==void 0;){var n=r.o;if(r.o=void 0,r.f&=-3,!(8&r.f)&&Ia(r))try{r.c()}catch(o){t||(e=o,t=!0)}r=n}}if(io=0,Tt--,t)throw e}}function Zl(e){if(Tt>0)return e();Tt++;try{return e()}finally{yn()}}var ae=void 0;function $a(e){var t=ae;ae=void 0;try{return e()}finally{ae=t}}var Ar=void 0,Tt=0,io=0,bn=0;function Pa(e){if(ae!==void 0){var t=e.n;if(t===void 0||t.t!==ae)return t={i:0,S:e,p:ae.s,n:void 0,t:ae,e:void 0,x:void 0,r:t},ae.s!==void 0&&(ae.s.n=t),ae.s=t,e.n=t,32&ae.f&&e.S(t),t;if(t.i===-1)return t.i=0,t.n!==void 0&&(t.n.p=t.p,t.p!==void 0&&(t.p.n=t.n),t.p=ae.s,t.n=void 0,ae.s.n=t,ae.s=t),t}}function Ae(e,t){this.v=e,this.i=0,this.n=void 0,this.t=void 0,this.W=t==null?void 0:t.watched,this.Z=t==null?void 0:t.unwatched,this.name=t==null?void 0:t.name}Ae.prototype.brand=Xl;Ae.prototype.h=function(){return!0};Ae.prototype.S=function(e){var t=this,r=this.t;r!==e&&e.e===void 0&&(e.x=r,this.t=e,r!==void 0?r.e=e:$a(function(){var n;(n=t.W)==null||n.call(t)}))};Ae.prototype.U=function(e){var t=this;if(this.t!==void 0){var r=e.e,n=e.x;r!==void 0&&(r.x=n,e.e=void 0),n!==void 0&&(n.e=r,e.x=void 0),e===this.t&&(this.t=n,n===void 0&&$a(function(){var o;(o=t.Z)==null||o.call(t)}))}};Ae.prototype.subscribe=function(e){var t=this;return Vt(function(){var r=t.value,n=ae;ae=void 0;try{e(r)}finally{ae=n}},{name:"sub"})};Ae.prototype.valueOf=function(){return this.value};Ae.prototype.toString=function(){return this.value+""};Ae.prototype.toJSON=function(){return this.value};Ae.prototype.peek=function(){var e=ae;ae=void 0;try{return this.value}finally{ae=e}};Object.defineProperty(Ae.prototype,"value",{get:function(){var e=Pa(this);return e!==void 0&&(e.i=this.i),this.v},set:function(e){if(e!==this.v){if(io>100)throw new Error("Cycle detected");this.v=e,this.i++,bn++,Tt++;try{for(var t=this.t;t!==void 0;t=t.x)t.t.N()}finally{yn()}}}});function St(e,t){return new Ae(e,t)}function Ia(e){for(var t=e.s;t!==void 0;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function Ra(e){for(var t=e.s;t!==void 0;t=t.n){var r=t.S.n;if(r!==void 0&&(t.r=r),t.S.n=t,t.i=-1,t.n===void 0){e.s=t;break}}}function ja(e){for(var t=e.s,r=void 0;t!==void 0;){var n=t.p;t.i===-1?(t.S.U(t),n!==void 0&&(n.n=t.n),t.n!==void 0&&(t.n.p=n)):r=t,t.S.n=t.r,t.r!==void 0&&(t.r=void 0),t=n}e.s=r}function zt(e,t){Ae.call(this,void 0),this.x=e,this.s=void 0,this.g=bn-1,this.f=4,this.W=t==null?void 0:t.watched,this.Z=t==null?void 0:t.unwatched,this.name=t==null?void 0:t.name}zt.prototype=new Ae;zt.prototype.h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===bn))return!0;if(this.g=bn,this.f|=1,this.i>0&&!Ia(this))return this.f&=-2,!0;var e=ae;try{Ra(this),ae=this;var t=this.x();(16&this.f||this.v!==t||this.i===0)&&(this.v=t,this.f&=-17,this.i++)}catch(r){this.v=r,this.f|=16,this.i++}return ae=e,ja(this),this.f&=-2,!0};zt.prototype.S=function(e){if(this.t===void 0){this.f|=36;for(var t=this.s;t!==void 0;t=t.n)t.S.S(t)}Ae.prototype.S.call(this,e)};zt.prototype.U=function(e){if(this.t!==void 0&&(Ae.prototype.U.call(this,e),this.t===void 0)){this.f&=-33;for(var t=this.s;t!==void 0;t=t.n)t.S.U(t)}};zt.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var e=this.t;e!==void 0;e=e.x)e.t.N()}};Object.defineProperty(zt.prototype,"value",{get:function(){if(1&this.f)throw new Error("Cycle detected");var e=Pa(this);if(this.h(),e!==void 0&&(e.i=this.i),16&this.f)throw this.v;return this.v}});function ta(e,t){return new zt(e,t)}function Fa(e){var t=e.u;if(e.u=void 0,typeof t=="function"){Tt++;var r=ae;ae=void 0;try{t()}catch(n){throw e.f&=-2,e.f|=8,ho(e),n}finally{ae=r,yn()}}}function ho(e){for(var t=e.s;t!==void 0;t=t.n)t.S.U(t);e.x=void 0,e.s=void 0,Fa(e)}function Ql(e){if(ae!==this)throw new Error("Out-of-order effect");ja(this),ae=e,this.f&=-2,8&this.f&&ho(this),yn()}function ur(e,t){this.x=e,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32,this.name=t==null?void 0:t.name}ur.prototype.c=function(){var e=this.S();try{if(8&this.f||this.x===void 0)return;var t=this.x();typeof t=="function"&&(this.u=t)}finally{e()}};ur.prototype.S=function(){if(1&this.f)throw new Error("Cycle detected");this.f|=1,this.f&=-9,Fa(this),Ra(this),Tt++;var e=ae;return ae=this,Ql.bind(this,e)};ur.prototype.N=function(){2&this.f||(this.f|=2,this.o=Ar,Ar=this)};ur.prototype.d=function(){this.f|=8,1&this.f||ho(this)};ur.prototype.dispose=function(){this.d()};function Vt(e,t){var r=new ur(e,t);try{r.c()}catch(o){throw r.d(),o}var n=r.d.bind(r);return n[Symbol.dispose]=n,n}var Ua,vo,Zn,Na=[];Vt(function(){Ua=this.N})();function pr(e,t){K[e]=t.bind(null,K[e]||function(){})}function gn(e){Zn&&Zn(),Zn=e&&e.S()}function Wa(e){var t=this,r=e.data,n=tu(r);n.value=r;var o=lr(function(){for(var s=t,c=t.__v;c=c.__;)if(c.__c){c.__c.__$f|=4;break}var l=ta(function(){var m=n.value.value;return m===0?0:m===!0?"":m||""}),u=ta(function(){return!Array.isArray(l.value)&&!fa(l.value)}),p=Vt(function(){if(this.N=Da,u.value){var m=l.value;s.__v&&s.__v.__e&&s.__v.__e.nodeType===3&&(s.__v.__e.data=m)}}),d=t.__$u.d;return t.__$u.d=function(){p(),d.call(this)},[u,l]},[]),i=o[0],a=o[1];return i.value?a.peek():a.value}Wa.displayName="ReactiveTextNode";Object.defineProperties(Ae.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:Wa},props:{configurable:!0,get:function(){return{data:this}}},__b:{configurable:!0,value:1}});pr("__b",function(e,t){if(typeof t.type=="function"&&typeof window<"u"&&window.__PREACT_SIGNALS_DEVTOOLS__&&window.__PREACT_SIGNALS_DEVTOOLS__.exitComponent(),typeof t.type=="string"){var r,n=t.props;for(var o in n)if(o!=="children"){var i=n[o];i instanceof Ae&&(r||(t.__np=r={}),r[o]=i,n[o]=i.peek())}}e(t)});pr("__r",function(e,t){if(typeof t.type=="function"&&typeof window<"u"&&window.__PREACT_SIGNALS_DEVTOOLS__&&window.__PREACT_SIGNALS_DEVTOOLS__.enterComponent(t),t.type!==mt){gn();var r,n=t.__c;n&&(n.__$f&=-2,(r=n.__$u)===void 0&&(n.__$u=r=(function(o){var i;return Vt(function(){i=this}),i.c=function(){n.__$f|=1,n.setState({})},i})())),vo=n,gn(r)}e(t)});pr("__e",function(e,t,r,n){typeof window<"u"&&window.__PREACT_SIGNALS_DEVTOOLS__&&window.__PREACT_SIGNALS_DEVTOOLS__.exitComponent(),gn(),vo=void 0,e(t,r,n)});pr("diffed",function(e,t){typeof t.type=="function"&&typeof window<"u"&&window.__PREACT_SIGNALS_DEVTOOLS__&&window.__PREACT_SIGNALS_DEVTOOLS__.exitComponent(),gn(),vo=void 0;var r;if(typeof t.type=="string"&&(r=t.__e)){var n=t.__np,o=t.props;if(n){var i=r.U;if(i)for(var a in i){var s=i[a];s!==void 0&&!(a in n)&&(s.d(),i[a]=void 0)}else i={},r.U=i;for(var c in n){var l=i[c],u=n[c];l===void 0?(l=eu(r,c,u,o),i[c]=l):l.o(u,o)}}}e(t)});function eu(e,t,r,n){var o=t in e&&e.ownerSVGElement===void 0,i=St(r);return{o:function(a,s){i.value=a,n=s},d:Vt(function(){this.N=Da;var a=i.value.value;n[t]!==a&&(n[t]=a,o?e[t]=a:a?e.setAttribute(t,a):e.removeAttribute(t))})}}pr("unmount",function(e,t){if(typeof t.type=="string"){var r=t.__e;if(r){var n=r.U;if(n){r.U=void 0;for(var o in n){var i=n[o];i&&i.d()}}}}else{var a=t.__c;if(a){var s=a.__$u;s&&(a.__$u=void 0,s.d())}}e(t)});pr("__h",function(e,t,r,n){(n<3||n===9)&&(t.__$f|=2),e(t,r,n)});it.prototype.shouldComponentUpdate=function(e,t){var r=this.__$u,n=r&&r.s!==void 0;for(var o in t)return!0;if(this.__f||typeof this.u=="boolean"&&this.u===!0){var i=2&this.__$f;if(!(n||i||4&this.__$f)||1&this.__$f)return!0}else if(!(n||4&this.__$f)||3&this.__$f)return!0;for(var a in e)if(a!=="__source"&&e[a]!==this.props[a])return!0;for(var s in this.props)if(!(s in e))return!0;return!1};function tu(e,t){return no(function(){return St(e,t)})[0]}var ru=function(e){queueMicrotask(function(){queueMicrotask(e)})};function nu(){Zl(function(){for(var e;e=Na.shift();)Ua.call(e)})}function Da(){Na.push(this)===1&&(K.requestAnimationFrame||ru)(nu)}var ao=[0];for(let e=0;e<32;e++)ao.push(ao[e]|1<<e);function ou(e){return new Uint32Array(e)}var ra=class{constructor(e,t=ou(Math.ceil(e/32))){this.size=e,this.data=t}get(e){return this.data[e>>>5]>>>e&1}set(e){this.data[e>>>5]|=1<<(e&31)}forEach(e){let t=this.size&31;for(let r=0;r<this.data.length;r++){if(this.data[r]===0)continue;let n=this.data[r];t&&r===this.data.length-1&&(n=n&ao[t]);for(let o=0,i=32-Math.clz32(n);o<i;o++)n&1<<o&&e((r<<5)+o)}}};function iu(e,t,r){for(let n=0;t<r;){switch(n=n<<8^32|e.charCodeAt(++t),n){case 97:case 98:case 99:case 101:case 104:case 105:case 108:case 109:case 112:case 115:case 116:case 119:case 24946:case 25185:case 25455:case 25965:case 26989:case 26990:case 27753:case 28005:case 28769:case 29551:case 29810:case 30562:case 6386277:case 6447475:case 6647138:case 6909552:case 7104878:case 7169396:case 7364978:case 7565173:case 7631457:case 1701667429:case 1768845429:case 1869967971:case 1885434465:case 1936684402:case 1953653091:continue;case 25202:case 26738:case 6516588:case 6909287:case 7823986:case 1634885997:case 1634887009:case 1650553701:case 1818848875:case 1835165028:case 1835365473:case 1852863860:case 1918985067:case 1970430821:switch(e.charCodeAt(++t)){case 9:case 10:case 32:case 47:case 62:return!0}}break}return!1}function au(e,t,r=0,n=e.length){let o=0,i=r;for(let a=0;i<n;i++)switch(a=e.charCodeAt(i),a){case 60:i>r&&t(0,o,r,r=i);continue;case 62:e.charCodeAt(r+1)===47?t(2,--o,r,r=i+1):iu(e,r,n)?t(3,o,r,r=i+1):t(1,o++,r,r=i+1)}i>r&&t(0,o,r,i)}function su(e,t=0,r=e.length){let n=++t;e:for(let l=0;n<r;n++)switch(l=e.charCodeAt(n),l){case 9:case 10:case 32:case 62:break e}let o=e.slice(t,t=n),i=[],a=0,s=0,c=0;for(let l=0;n<r;n++){let u=e.charCodeAt(n);switch(a){case 0:switch(u){case 9:case 10:case 32:t===n?t++:(s=1,a=1);break;case 61:s=1,a=2;break;case 47:t++;case 62:t<n&&(s=1);break}break;case 1:switch(u){case 9:case 10:case 32:continue;case 61:a=2,t=n+1;continue;default:a=0,t=n,l++}continue;case 2:switch(u){case 9:case 10:case 32:t===n?t++:c===0&&(s=2,a=0);break;case 34:case 39:switch(c){case 0:c=u,t=n+1;continue;case u:s=2,a=0,c=0}break;case 62:t<n&&(s=2);break}}switch(s){case 1:i[l]=[e.slice(t,n),""],s=0,t=n+1;break;case 2:i[l++][1]=e.slice(t,n),s=0,t=n+1;break}}return{tag:o,attrs:i.length?Object.fromEntries(i):null}}function cu(e,t,r){return e.slice(t,r)}function lu(e){return(t,r,n,o)=>{let i=[],a=[],{onElement:s,onText:c=cu}=typeof r=="function"?{onElement:r}:r,l=0,u=0;return e(t,(p,d,m,h)=>{if(p===0)i[l++]=c(t,m,h),a[u++]={value:null,depth:d};else if(p&1&&(a[u++]={value:su(t,m,h),depth:d}),p&2)for(let v=0;u>=0;v++){let{value:O,depth:x}=a[--u];if(x>d)continue;let w=i.slice(l-=v,l+v);i[l++]=s(O,w),u++;break}},n,o),i.slice(0,l)}}function na(e){return e.replace(/[&<>]/g,t=>{switch(t.charCodeAt(0)){case 38:return"&amp;";case 60:return"&lt;";case 62:return"&gt;"}})}function Qn(e){return e.replace(/&(amp|[lg]t);/g,t=>{switch(t.charCodeAt(1)){case 97:return"&";case 108:return"<";case 103:return">"}})}function uu(e){cr.value=e,e.items.find(t=>{var r;return(r=t.tags)==null?void 0:r.length})&&(matchMedia("(max-width: 768px)").matches||Va())}function Nt(){Ze.value=Ce(H({},Ze.value),{hideSearch:!Ze.value.hideSearch})}function Va(){Ze.value=Ce(H({},Ze.value),{hideFilters:!Ze.value.hideFilters})}function hn(){return Ze.value.selectedItem}function so(e){Ze.value=Ce(H({},Ze.value),{selectedItem:e})}function pu(){var e,t;return(t=(e=cr.value)==null?void 0:e.items)!=null?t:[]}function bo(){return typeof Te.value.input=="string"?Te.value.input:""}function za(e){let t=qa();e.length&&!t.length?Te.value=Ce(H({},Te.value),{page:void 0,input:na(e)}):!e.length&&t.length?Te.value=Ce(H({},Te.value),{page:void 0,input:{type:"operator",data:{operator:"not",operands:[]}}}):Te.value=Ce(H({},Te.value),{page:void 0,input:na(e)})}function fu(){typeof ot.value.pagination.next<"u"&&(Te.value=Ce(H({},Te.value),{page:ot.value.pagination.next}))}function mu(e){let t=Te.value.filter.input;if("type"in t&&t.type==="operator"){for(let r of t.data.operands)if("type"in r&&r.type==="value"&&typeof r.data.value=="string"&&r.data.value===e)return!0}return!1}function qa(){let e=Te.value.filter.input,t=[];if("type"in e&&e.type==="operator")for(let r of e.data.operands)"type"in r&&r.type==="value"&&typeof r.data.value=="string"&&t.push(r.data.value);return t}function du(e){let t=Te.value.filter.input,r=[];if("type"in t&&t.type==="operator")for(let n of t.data.operands)"type"in n&&n.type==="value"&&typeof n.data.value=="string"&&r.push(n.data.value);if(r.includes(e)){let n=r.indexOf(e);n>-1&&r.splice(n,1)}else r.push(e);Te.value=Ce(H({},Te.value),{page:void 0,filter:Ce(H({},Te.value.filter),{input:{type:"operator",data:{operator:"and",operands:r.map(n=>({type:"value",data:{field:"tags",value:n}}))}}})}),za(bo())}function hu(){return ot.value.items}function vu(){return ot.value.total}function bu(){var e;for(let t of(e=ot.value.aggregations)!=null?e:[])if(t.type==="term")return t.data.value;return[]}function ir(){return Ze.value.hideSearch}function gu(){return Ze.value.hideFilters}function _u(){var e;return(e=Ka.value.highlight)!=null?e:!1}var Ze=St({hideSearch:!0,hideFilters:!0,selectedItem:0}),Ka=St({}),cr=St(),oa=St(),Te=St({input:"",filter:{input:{type:"operator",data:{operator:"and",operands:[]}},aggregation:{input:[{type:"term",data:{field:"tags"}}]}}}),ot=St({items:[],query:{select:{documents:new ra(0),terms:new ra(0)},values:[]},pagination:{total:0}});function yu(e,t){return{start:e.start+t,end:e.end+t,value:e.value}}function xu(e,t,r){return e.slice(t,r)}function wu(e){let{onHighlight:t,onText:r=xu}=typeof e=="function"?{onHighlight:e}:e;return(n,o,i=0,a=n.length)=>{var l;let s=[],c=(l=o==null?void 0:o.ranges)!=null?l:[];for(let u=0,p=i;u<c.length;u++){let d=c[u].start;if(d>a)break;let m=c[u].end;if(m<p)continue;d=Math.max(d,i),m=Math.min(m,a),d>i&&s.push(r(n,i,d));let{value:h}=c[u];s.push(t(n,{start:d,end:i=m,value:h}))}return i<a&&s.push(r(n,i,a)),s}}var Eu=0,Kx=Array.isArray;function z(e,t,r,n,o,i){t||(t={});var a,s,c=t;if("ref"in c)for(s in c={},t)s=="ref"?a=t[s]:c[s]=t[s];var l={type:e,props:c,key:r,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Eu,__i:-1,__u:0,__source:o,__self:i};if(typeof e=="function"&&(a=e.defaultProps))for(s in a)c[s]===void 0&&(c[s]=a[s]);return K.vnode&&K.vnode(l),l}var Tu=lu(au),Ou=wu({onText(e,t,r){return Qn(e.slice(t,r))},onHighlight(e,{start:t,end:r,value:n}){let o=Math.min(r,t+n);return t===r?null:z("mark",{children:[z("u",{children:Qn(e.slice(t,o))}),Qn(e.slice(o,r))]})}});function Ba(e,t){let r=Tu(e,{onElement(n,o){return Wt(n.tag,n.attrs,...o)},onText(n,o,i){return Ou(n,t==null?void 0:t.value.highlight,o,i)}});return z(mt,{children:r})}function Su(e,t){var n;let r=[];for(let o=0,i=0;o<e.length;o++){let a=[];if((n=t==null?void 0:t.value.highlight)!=null&&n.ranges)for(let s of t.value.highlight.ranges)a.push(yu(s,-i));r.push(Ba(e[o],Ce(H({},t),{value:Ce(H({},t==null?void 0:t.value),{highlight:{ranges:a}})}))),i+=e[o].length}return r}function Ya(e,t={}){Ka.value=t;let r=new Worker(e);r.onmessage=n=>{let o=n.data;switch(o.type){case 1:oa.value=!0;break;case 3:typeof o.data.pagination.prev<"u"?ot.value=Ce(H({},ot.value),{pagination:o.data.pagination,items:[...ot.value.items,...o.data.items]}):(ot.value=o.data,so(0));break}},Vt(()=>{cr.value&&r.postMessage({type:0,data:cr.value})}),Vt(()=>{oa.value&&r.postMessage({type:2,data:Te.value})})}var ia={container:"p",hidden:"v"};function Lu(e){return z("div",{class:sr(ia.container,{[ia.hidden]:e.hidden}),onClick:()=>Nt()})}var aa={container:"r",disabled:"c"};function co(e){return z("button",{class:sr(aa.container,{[aa.disabled]:!e.onClick}),onClick:e.onClick,children:e.children})}var sa=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Mu=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,r,n)=>n?n.toUpperCase():r.toLowerCase()),ca=e=>{let t=Mu(e);return t.charAt(0).toUpperCase()+t.slice(1)},ku=(...e)=>e.filter((t,r,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===r).join(" ").trim(),Au={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Cu=c=>{var l=c,{color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,children:o,iconNode:i,class:a=""}=l,s=_r(l,["color","size","strokeWidth","absoluteStrokeWidth","children","iconNode","class"]);return Wt("svg",H(Ce(H({},Au),{width:String(t),height:t,stroke:e,"stroke-width":n?Number(r)*24/Number(t):r,class:["lucide",a].join(" ")}),s),[...i.map(([u,p])=>Wt(u,p)),...Hr(o)])},go=(e,t)=>{let r=a=>{var s=a,{class:n="",children:o}=s,i=_r(s,["class","children"]);return Wt(Cu,Ce(H({},i),{iconNode:t,class:ku(`lucide-${sa(ca(e))}`,`lucide-${sa(e)}`,n)}),o)};return r.displayName=ca(e),r},Hu=go("corner-down-left",[["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}],["path",{d:"m9 10-5 5 5 5",key:"1kshq7"}]]),$u=go("list-filter",[["path",{d:"M2 5h20",key:"1fs1ex"}],["path",{d:"M6 12h12",key:"8npq4p"}],["path",{d:"M9 19h6",key:"456am0"}]]),Pu=go("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),Bx=dl(hl(),1);function Iu({threshold:e=0,root:t=null,rootMargin:r="0%",freezeOnceVisible:n=!1,initialIsIntersecting:o=!1,onChange:i}={}){var a;let[s,c]=no(null),[l,u]=no(()=>({isIntersecting:o,entry:void 0})),p=Dt();p.current=i;let d=((a=l.entry)==null?void 0:a.isIntersecting)&&n;Ot(()=>{if(!s||!("IntersectionObserver"in window)||d)return;let v,O=new IntersectionObserver(x=>{let w=Array.isArray(O.thresholds)?O.thresholds:[O.thresholds];x.forEach(_=>{let de=_.isIntersecting&&w.some(be=>_.intersectionRatio>=be);u({isIntersecting:de,entry:_}),p.current&&p.current(de,_),de&&n&&v&&(v(),v=void 0)})},{threshold:e,root:t,rootMargin:r});return O.observe(s),()=>{O.disconnect()}},[s,JSON.stringify(e),t,r,d,n]);let m=Dt(null);Ot(()=>{var v;!s&&(v=l.entry)!=null&&v.target&&!n&&!d&&m.current!==l.entry.target&&(m.current=l.entry.target,u({isIntersecting:o,entry:void 0}))},[s,l.entry,n,d,o]);let h=[c,!!l.isIntersecting,l.entry];return h.ref=h[0],h.isIntersecting=h[1],h.entry=h[2],h}var ut={container:"n",hidden:"l",content:"m",pop:"d",badge:"u",sidebar:"i",controls:"y",results:"w",loadmore:"k"};function Ru(e){let{isIntersecting:t,ref:r}=Iu({threshold:0});Ot(()=>{t&&fu()},[t]);let n=Dt(null);Ot(()=>{n.current&&typeof Te.value.page>"u"&&n.current.scrollTo({top:0,behavior:"smooth"})},[Te.value]);let o=qa();return z("div",{class:sr(ut.container,{[ut.hidden]:e.hidden}),children:[z("div",{class:ut.content,children:[z("div",{class:ut.controls,children:[z(co,{onClick:Nt,children:z(Pu,{})}),z(Fu,{focus:!e.hidden}),z(co,{onClick:Va,children:[z($u,{}),o.length>0&&z("span",{class:ut.badge,children:o.length})]})]}),z("div",{class:ut.results,ref:n,children:[z(Uu,{keyboard:!e.hidden}),z("div",{class:ut.loadmore,ref:r})]})]}),z("div",{class:sr(ut.sidebar,{[ut.hidden]:gu()}),children:z(ju,{})})]})}var Et={container:"z",list:"X",heading:"j",title:"F",item:"o",active:"g",value:"I",count:"R"};function ju(e){let t=bu();return t.sort((r,n)=>n.node.count-r.node.count),z("div",{class:Et.container,children:[z("h3",{class:Et.heading,children:"Filters"}),z("h4",{class:Et.title,children:"Tags"}),z("ol",{class:Et.list,children:t.map(r=>z("li",{class:sr(Et.item,{[Et.active]:mu(r.node.value)}),onClick:()=>du(r.node.value),children:[z("span",{class:Et.value,children:r.node.value}),z("span",{class:Et.count,children:r.node.count})]}))})]})}var la={container:"f"};function Fu(e){let t=Dt(null);return Ot(()=>{e.focus&&t.current&&t.current.focus()},[e.focus]),z("div",{class:la.container,children:z("input",{ref:t,type:"text",class:la.content,value:bo(),onInput:r=>za(r.currentTarget.value),autocapitalize:"off",autocomplete:"off",autocorrect:"off",placeholder:"Search",spellcheck:!1,role:"combobox"})})}var pt={container:"b",heading:"q",item:"a",active:"h",wrapper:"A",actions:"s",title:"x",path:"t"};function Uu(e){var a;let t=pu(),r=hu(),n=hn(),o=Dt([]);Ot(()=>{let s=o.current[n];s&&s.scrollIntoView({block:"center",behavior:"smooth"})},[n]),Ca(e.keyboard,s=>{let c=hn();s.key==="ArrowDown"?(s.preventDefault(),so(Math.min(c+1,r.length-1))):s.key==="ArrowUp"&&(s.preventDefault(),so(Math.max(c-1,0)))},[e.keyboard]);let i=(a=vu())!=null?a:0;return z(mt,{children:[r.length>0&&z("h3",{class:pt.heading,children:[z("span",{class:pt.bubble,children:new Intl.NumberFormat("en-US").format(i)})," ","results"]}),z("ol",{class:pt.container,children:r.map((s,c)=>{var d;let l=Ba(t[s.id].title,s.matches.find(({field:m})=>m==="title")),u=Su((d=t[s.id].path)!=null?d:[],s.matches.find(({field:m})=>m==="path")),p=t[s.id].location;if(_u()){let m=encodeURIComponent(bo()),[h,v]=p.split("#",2);p=`${h}?h=${m.replace(/%20/g,"+")}`,typeof v<"u"&&(p+=`#${v}`)}return z("li",{children:z("a",{ref:m=>{o.current[c]=m},href:p,onClick:()=>Nt(),class:sr(pt.item,{[pt.active]:c===hn()}),children:[z("div",{class:pt.wrapper,children:[z("h2",{class:pt.title,children:l}),z("menu",{class:pt.path,children:u.map(m=>z("li",{children:m}))})]}),z("nav",{class:pt.actions,children:z(co,{children:z(Hu,{})})})]})})})})]})}var Nu={container:"e"};function Wu(e){return Ca(!0,t=>{var r,n,o;if((t.metaKey||t.ctrlKey)&&t.key==="k")t.preventDefault(),Nt();else if((t.metaKey||t.ctrlKey)&&t.key==="j")document.body.classList.toggle("dark");else if(t.key==="Enter"&&!ir()){t.preventDefault(),Nt();let i=hn(),a=(n=(r=ot.value)==null?void 0:r.items[i])==null?void 0:n.id;(o=cr.value)!=null&&o.items[a].location&&(window.location.href=cr.value.items[a].location)}else t.key==="Escape"&&!ir()&&(t.preventDefault(),Nt())},[]),z("div",{class:Nu.container,children:[z(Lu,{hidden:ir()}),z(Ru,{hidden:ir()})]})}function Ga(e,t){uu(e),wl(z(Wu,{}),t)}function _o(){Nt()}function Du(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Vu(){return R(b(window,"compositionstart").pipe(f(()=>!0)),b(window,"compositionend").pipe(f(()=>!1))).pipe(J(!1))}function Ja(){let e=b(window,"keydown").pipe(f(t=>({mode:ir()?"global":"search",type:t.key,meta:t.ctrlKey||t.metaKey,claim(){t.preventDefault(),t.stopPropagation()}})),L(({mode:t,type:r})=>{if(t==="global"){let n=yt();if(typeof n!="undefined")return!Du(n,r)}return!0}),ye());return Vu().pipe(g(t=>t?y:e))}function Be(){return new URL(location.href)}function fr(e,t=!1){if(X("navigation.instant")&&!t){let r=A("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function Xa(){return new I}function Za(){return location.hash.slice(1)}function Qa(e){let t=A("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function yo(e){return R(b(window,"hashchange"),e).pipe(f(Za),J(Za()),L(t=>t.length>0),se(1))}function es(e){return yo(e).pipe(f(t=>Le(`[id="${t}"]`)),L(t=>typeof t!="undefined"))}function Rr(e){let t=matchMedia(e);return sn(r=>t.addListener(()=>r(t.matches))).pipe(J(t.matches))}function ts(){let e=matchMedia("print");return R(b(window,"beforeprint").pipe(f(()=>!0)),b(window,"afterprint").pipe(f(()=>!1))).pipe(J(e.matches))}function xo(e,t){return e.pipe(g(r=>r?t():y))}function wo(e,t){return new U(r=>{let n=new XMLHttpRequest;return n.open("GET",`${e}`),n.responseType="blob",n.addEventListener("load",()=>{n.status>=200&&n.status<300?(r.next(n.response),r.complete()):r.error(new Error(n.statusText))}),n.addEventListener("error",()=>{r.error(new Error("Network error"))}),n.addEventListener("abort",()=>{r.complete()}),typeof(t==null?void 0:t.progress$)!="undefined"&&(n.addEventListener("progress",o=>{var i;if(o.lengthComputable)t.progress$.next(o.loaded/o.total*100);else{let a=(i=n.getResponseHeader("Content-Length"))!=null?i:0;t.progress$.next(o.loaded/+a*100)}}),t.progress$.next(5)),n.send(),()=>n.abort()})}function Qe(e,t){return wo(e,t).pipe(g(r=>r.text()),f(r=>JSON.parse(r)),se(1))}function xn(e,t){let r=new DOMParser;return wo(e,t).pipe(g(n=>n.text()),f(n=>r.parseFromString(n,"text/html")),se(1))}function rs(e,t){let r=new DOMParser;return wo(e,t).pipe(g(n=>n.text()),f(n=>r.parseFromString(n,"text/xml")),se(1))}var Eo={drawer:G("[data-md-toggle=drawer]"),search:G("[data-md-toggle=search]")};function To(e,t){Eo[e].checked!==t&&Eo[e].click()}function mr(e){let t=Eo[e];return b(t,"change").pipe(f(()=>t.checked),J(t.checked))}function ns(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function os(){return R(b(window,"scroll",{passive:!0}),b(window,"resize",{passive:!0})).pipe(f(ns),J(ns()))}function is(){return{width:innerWidth,height:innerHeight}}function as(){return b(window,"resize",{passive:!0}).pipe(f(is),J(is()))}function ss(){return ee([os(),as()]).pipe(f(([e,t])=>({offset:e,size:t})),se(1))}function wn(e,{viewport$:t,header$:r}){let n=t.pipe(fe("size")),o=ee([n,r]).pipe(f(()=>xt(e)));return ee([r,t,o]).pipe(f(([{height:i},{offset:a,size:s},{x:c,y:l}])=>({offset:{x:a.x-c,y:a.y-l+i},size:s})))}var zu=G("#__config"),dr=JSON.parse(zu.textContent);dr.base=`${new URL(dr.base,Be())}`;function Ue(){return dr}function X(e){return dr.features.includes(e)}function qt(e,t){return typeof t!="undefined"?dr.translations[e].replace("#",t.toString()):dr.translations[e]}function dt(e,t=document){return G(`[data-md-component=${e}]`,t)}function we(e,t=document){return P(`[data-md-component=${e}]`,t)}function qu(e){let t=G(".md-typeset > :first-child",e);return b(t,"click",{once:!0}).pipe(f(()=>G(".md-typeset",e)),f(r=>({hash:__md_hash(r.innerHTML)})))}function cs(e){if(!X("announce.dismiss")||!e.childElementCount)return y;if(!e.hidden){let t=G(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return j(()=>{let t=new I;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),qu(e).pipe($(r=>t.next(r)),V(()=>t.complete()),f(r=>H({ref:e},r)))})}function Ku(e,{target$:t}){return t.pipe(f(r=>({hidden:r!==e})))}function ls(e,t){let r=new I;return r.subscribe(({hidden:n})=>{e.hidden=n}),Ku(e,t).pipe($(n=>r.next(n)),V(()=>r.complete()),f(n=>H({ref:e},n)))}function Oo(e,t){return t==="inline"?A("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},A("div",{class:"md-tooltip__inner md-typeset"})):A("div",{class:"md-tooltip",id:e,role:"tooltip"},A("div",{class:"md-tooltip__inner md-typeset"}))}function En(...e){return A("div",{class:"md-tooltip2",role:"dialog"},A("div",{class:"md-tooltip2__inner md-typeset"},e))}function us(...e){return A("div",{class:"md-tooltip2",role:"tooltip"},A("div",{class:"md-tooltip2__inner md-typeset"},e))}function ps(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return A("aside",{class:"md-annotation",tabIndex:0},Oo(t),A("a",{href:r,class:"md-annotation__index",tabIndex:-1},A("span",{"data-md-annotation-id":e})))}else return A("aside",{class:"md-annotation",tabIndex:0},Oo(t),A("span",{class:"md-annotation__index",tabIndex:-1},A("span",{"data-md-annotation-id":e})))}function fs(e){return A("button",{class:"md-code__button",title:qt("clipboard.copy"),"data-clipboard-target":`#${e} > code`,"data-md-type":"copy"})}function ms(){return A("button",{class:"md-code__button",title:"Toggle line selection","data-md-type":"select"})}function ds(){return A("nav",{class:"md-code__nav"})}var Gu=yr(So());function vs(e){return A("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>A("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?Li(r):r)))}function Lo(e){let t=`tabbed-control tabbed-control--${e}`;return A("div",{class:t,hidden:!0},A("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function bs(e){return A("div",{class:"md-typeset__scrollwrap"},A("div",{class:"md-typeset__table"},e))}function Ju(e){var n;let t=Ue(),r=new URL(`../${e.version}/`,t.base);return A("li",{class:"md-version__item"},A("a",{href:`${r}`,class:"md-version__link"},e.title,((n=t.version)==null?void 0:n.alias)&&e.aliases.length>0&&A("span",{class:"md-version__alias"},e.aliases[0])))}function gs(e,t){var n;let r=Ue();return e=e.filter(o=>{var i;return!((i=o.properties)!=null&&i.hidden)}),A("div",{class:"md-version"},A("button",{class:"md-version__current","aria-label":qt("select.version")},t.title,((n=r.version)==null?void 0:n.alias)&&t.aliases.length>0&&A("span",{class:"md-version__alias"},t.aliases[0])),A("ul",{class:"md-version__list"},e.map(Ju)))}var Xu=0;function Zu(e,t=250){let r=ee([nr(e),jt(e,t)]).pipe(f(([o,i])=>o||i),ie()),n=j(()=>Ai(e)).pipe(oe(Ft),Mr(1),Xe(r),f(()=>Ci(e)));return r.pipe(Sr(o=>o),g(()=>ee([r,n])),f(([o,i])=>({active:o,offset:i})),ye())}function jr(e,t,r=250){let{content$:n,viewport$:o}=t,i=`__tooltip2_${Xu++}`;return j(()=>{let a=new I,s=new jn(!1);a.pipe(he(),_e(!1)).subscribe(s);let c=s.pipe(Or(u=>ze(+!u*250,Nn)),ie(),g(u=>u?n:y),$(u=>u.id=i),ye());ee([a.pipe(f(({active:u})=>u)),c.pipe(g(u=>jt(u,250)),J(!1))]).pipe(f(u=>u.some(p=>p))).subscribe(s);let l=s.pipe(L(u=>u),le(c,o),f(([u,p,{size:d}])=>{let m=e.getBoundingClientRect(),h=m.width/2;if(p.role==="tooltip")return{x:h,y:8+m.height};if(m.y>=d.height/2){let{height:v}=ke(p);return{x:h,y:-16-v}}else return{x:h,y:16+m.height}}));return ee([c,a,l]).subscribe(([u,{offset:p},d])=>{u.style.setProperty("--md-tooltip-host-x",`${p.x}px`),u.style.setProperty("--md-tooltip-host-y",`${p.y}px`),u.style.setProperty("--md-tooltip-x",`${d.x}px`),u.style.setProperty("--md-tooltip-y",`${d.y}px`),u.classList.toggle("md-tooltip2--top",d.y<0),u.classList.toggle("md-tooltip2--bottom",d.y>=0)}),s.pipe(L(u=>u),le(c,(u,p)=>p),L(u=>u.role==="tooltip")).subscribe(u=>{let p=ke(G(":scope > *",u));u.style.setProperty("--md-tooltip-width",`${p.width}px`),u.style.setProperty("--md-tooltip-tail","0px")}),s.pipe(ie(),Pe(je),le(c)).subscribe(([u,p])=>{p.classList.toggle("md-tooltip2--active",u)}),ee([s.pipe(L(u=>u)),c]).subscribe(([u,p])=>{p.role==="dialog"?(e.setAttribute("aria-controls",i),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("aria-describedby",i)}),s.pipe(L(u=>!u)).subscribe(()=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-describedby"),e.removeAttribute("aria-haspopup")}),Zu(e,r).pipe($(u=>a.next(u)),V(()=>a.complete()),f(u=>H({ref:e},u)))})}function Ye(e,{viewport$:t},r=document.body){return jr(e,{content$:new U(n=>{let o=e.title,i=us(o);return n.next(i),e.removeAttribute("title"),r.append(i),()=>{i.remove(),e.setAttribute("title",o)}}),viewport$:t},0)}function Qu(e,t){let r=j(()=>ee([Hi(e),Ft(t)])).pipe(f(([{x:n,y:o},i])=>{let{width:a,height:s}=ke(e);return{x:n-i.x+a/2,y:o-i.y+s/2}}));return nr(e).pipe(g(n=>r.pipe(f(o=>({active:n,offset:o})),Me(+!n||1/0))))}function _s(e,t,{target$:r}){let[n,o]=Array.from(e.children);return j(()=>{let i=new I,a=i.pipe(he(),_e(!0));return i.subscribe({next({offset:s}){e.style.setProperty("--md-tooltip-x",`${s.x}px`),e.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),wt(e).pipe(Q(a)).subscribe(s=>{e.toggleAttribute("data-md-visible",s)}),R(i.pipe(L(({active:s})=>s)),i.pipe(Ke(250),L(({active:s})=>!s))).subscribe({next({active:s}){s?e.prepend(n):n.remove()},complete(){e.prepend(n)}}),i.pipe(Je(16,je)).subscribe(({active:s})=>{n.classList.toggle("md-tooltip--active",s)}),i.pipe(Mr(125,je),L(()=>!!e.offsetParent),f(()=>e.offsetParent.getBoundingClientRect()),f(({x:s})=>s)).subscribe({next(s){s?e.style.setProperty("--md-tooltip-0",`${-s}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),b(o,"click").pipe(Q(a),L(s=>!(s.metaKey||s.ctrlKey))).subscribe(s=>{s.stopPropagation(),s.preventDefault()}),b(o,"mousedown").pipe(Q(a),le(i)).subscribe(([s,{active:c}])=>{var l;if(s.button!==0||s.metaKey||s.ctrlKey)s.preventDefault();else if(c){s.preventDefault();let u=e.parentElement.closest(".md-annotation");u instanceof HTMLElement?u.focus():(l=yt())==null||l.blur()}}),r.pipe(Q(a),L(s=>s===n),lt(125)).subscribe(()=>e.focus()),Qu(e,t).pipe($(s=>i.next(s)),V(()=>i.complete()),f(s=>H({ref:e},s)))})}function ep(e){let t=Ue();if(e.tagName!=="CODE")return[e];let r=[".c",".c1",".cm"];if(t.annotate){let n=e.closest("[class|=language]");if(n)for(let o of Array.from(n.classList)){if(!o.startsWith("language-"))continue;let[,i]=o.split("-");i in t.annotate&&r.push(...t.annotate[i])}}return P(r.join(", "),e)}function tp(e){let t=[];for(let r of ep(e)){let n=[],o=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=o.nextNode();i;i=o.nextNode())n.push(i);for(let i of n){let a;for(;a=/(\(\d+\))(!)?/.exec(i.textContent);){let[,s,c]=a;if(typeof c=="undefined"){let l=i.splitText(a.index);i=l.splitText(s.length),t.push(l)}else{i.textContent=s,t.push(i);break}}}}return t}function ys(e,t){t.append(...Array.from(e.childNodes))}function Tn(e,t,{target$:r,print$:n}){let o=t.closest("[id]"),i=o==null?void 0:o.id,a=new Map;for(let s of tp(t)){let[,c]=s.textContent.match(/\((\d+)\)/);Le(`:scope > li:nth-child(${c})`,e)&&(a.set(c,ps(c,i)),s.replaceWith(a.get(c)))}return a.size===0?y:j(()=>{let s=new I,c=s.pipe(he(),_e(!0)),l=[];for(let[u,p]of a)l.push([G(".md-typeset",p),G(`:scope > li:nth-child(${u})`,e)]);return n.pipe(Q(c)).subscribe(u=>{e.hidden=!u,e.classList.toggle("md-annotation-list",u);for(let[p,d]of l)u?ys(p,d):ys(d,p)}),R(...[...a].map(([,u])=>_s(u,t,{target$:r}))).pipe(V(()=>s.complete()),ye())})}function xs(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return xs(t)}}function ws(e,t){return j(()=>{let r=xs(e);return typeof r!="undefined"?Tn(r,e,t):y})}var Ts=yr(ko());var rp=0,Es=R(b(window,"keydown").pipe(f(()=>!0)),R(b(window,"keyup"),b(window,"contextmenu")).pipe(f(()=>!1))).pipe(J(!1),se(1));function Os(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return Os(t)}}function np(e){return Re(e).pipe(f(({width:t})=>({scrollable:kr(e).width>t})),fe("scrollable"))}function Ss(e,t){let{matches:r}=matchMedia("(hover)"),n=j(()=>{let o=new I,i=o.pipe(Bn(1));o.subscribe(({scrollable:m})=>{m&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let a=[],s=e.closest("pre"),c=s.closest("[id]"),l=c?c.id:rp++;s.id=`__code_${l}`;let u=[],p=e.closest(".highlight");if(p instanceof HTMLElement){let m=Os(p);if(typeof m!="undefined"&&(p.classList.contains("annotate")||X("content.code.annotate"))){let h=Tn(m,e,t);u.push(Re(p).pipe(Q(i),f(({width:v,height:O})=>v&&O),ie(),g(v=>v?h:y)))}}let d=P(":scope > span[id]",e);if(d.length&&(e.classList.add("md-code__content"),e.closest(".select")||X("content.code.select")&&!e.closest(".no-select"))){let m=+d[0].id.split("-").pop(),h=ms();a.push(h),X("content.tooltips")&&u.push(Ye(h,{viewport$}));let v=b(h,"click").pipe(Lr(M=>!M,!1),$(()=>h.blur()),ye());v.subscribe(M=>{h.classList.toggle("md-code__button--active",M)});let O=me(d).pipe(oe(M=>jt(M).pipe(f(S=>[M,S]))));v.pipe(g(M=>M?O:y)).subscribe(([M,S])=>{let N=Le(".hll.select",M);if(N&&!S)N.replaceWith(...Array.from(N.childNodes));else if(!N&&S){let te=document.createElement("span");te.className="hll select",te.append(...Array.from(M.childNodes).slice(1)),M.append(te)}});let x=me(d).pipe(oe(M=>b(M,"mousedown").pipe($(S=>S.preventDefault()),f(()=>M)))),w=v.pipe(g(M=>M?x:y),le(Es),f(([M,S])=>{var te;let N=d.indexOf(M)+m;if(S===!1)return[N,N];{let ue=P(".hll",e).map(ce=>d.indexOf(ce.parentElement)+m);return(te=window.getSelection())==null||te.removeAllRanges(),[Math.min(N,...ue),Math.max(N,...ue)]}})),_=yo(y).pipe(L(M=>M.startsWith(`__codelineno-${l}-`)));_.subscribe(M=>{let[,,S]=M.split("-"),N=S.split(":").map(ue=>+ue-m+1);N.length===1&&N.push(N[0]);for(let ue of P(".hll:not(.select)",e))ue.replaceWith(...Array.from(ue.childNodes));let te=d.slice(N[0]-1,N[1]);for(let ue of te){let ce=document.createElement("span");ce.className="hll",ce.append(...Array.from(ue.childNodes).slice(1)),ue.append(ce)}}),_.pipe(Me(1),Pe(ge)).subscribe(M=>{if(M.includes(":")){let S=document.getElementById(M.split(":")[0]);S&&setTimeout(()=>{let N=S,te=-64;for(;N!==document.body;)te+=N.offsetTop,N=N.offsetParent;window.scrollTo({top:te})},1)}});let be=me(P('a[href^="#__codelineno"]',p)).pipe(oe(M=>b(M,"click").pipe($(S=>S.preventDefault()),f(()=>M)))).pipe(Q(i),le(Es),f(([M,S])=>{let te=+G(`[id="${M.hash.slice(1)}"]`).parentElement.id.split("-").pop();if(S===!1)return[te,te];{let ue=P(".hll",e).map(ce=>+ce.parentElement.id.split("-").pop());return[Math.min(te,...ue),Math.max(te,...ue)]}}));R(w,be).subscribe(M=>{let S=`#__codelineno-${l}-`;M[0]===M[1]?S+=M[0]:S+=`${M[0]}:${M[1]}`,history.replaceState({},"",S),window.dispatchEvent(new HashChangeEvent("hashchange",{newURL:window.location.origin+window.location.pathname+S,oldURL:window.location.href}))})}if(Ts.default.isSupported()&&(e.closest(".copy")||X("content.code.copy")&&!e.closest(".no-copy"))){let m=fs(s.id);a.push(m),X("content.tooltips")&&u.push(Ye(m,{viewport$}))}if(a.length){let m=ds();m.append(...a),s.insertBefore(m,e)}return np(e).pipe($(m=>o.next(m)),V(()=>o.complete()),f(m=>H({ref:e},m)),It(R(...u).pipe(Q(i))))});return X("content.lazy")?wt(e).pipe(L(o=>o),Me(1),g(()=>n)):n}function op(e,{target$:t,print$:r}){let n=!0;return R(t.pipe(f(o=>o.closest("details:not([open])")),L(o=>e===o),f(()=>({action:"open",reveal:!0}))),r.pipe(L(o=>o||!n),$(()=>n=e.open),f(o=>({action:o?"open":"close"}))))}function Ls(e,t){return j(()=>{let r=new I;return r.subscribe(({action:n,reveal:o})=>{e.toggleAttribute("open",n==="open"),o&&e.scrollIntoView()}),op(e,t).pipe($(n=>r.next(n)),V(()=>r.complete()),f(n=>H({ref:e},n)))})}var Ms=0;function ip(e){let t=document.createElement("h3");t.innerHTML=e.innerHTML;let r=[t],n=e.nextElementSibling;for(;n&&!(n instanceof HTMLHeadingElement);)r.push(n),n=n.nextElementSibling;return r}function ap(e,t){for(let r of P("[href], [src]",e))for(let n of["href","src"]){let o=r.getAttribute(n);if(o&&!/^(?:[a-z]+:)?\/\//i.test(o)){r[n]=new URL(r.getAttribute(n),t).toString();break}}for(let r of P("[name^=__], [for]",e))for(let n of["id","for","name"]){let o=r.getAttribute(n);o&&r.setAttribute(n,`${o}$preview_${Ms}`)}return Ms++,Y(e)}function ks(e,t){let{sitemap$:r}=t;if(!(e instanceof HTMLAnchorElement))return y;if(!(X("navigation.instant.preview")||e.hasAttribute("data-preview")))return y;e.removeAttribute("title");let n=ee([nr(e),jt(e)]).pipe(f(([i,a])=>i||a),ie(),L(i=>i));return $t([r,n]).pipe(g(([i])=>{let a=new URL(e.href);return a.search=a.hash="",i.has(`${a}`)?Y(a):y}),g(i=>xn(i).pipe(g(a=>ap(a,i)))),g(i=>{let a=e.hash?`article [id="${e.hash.slice(1)}"]`:"article h1",s=Le(a,i);return typeof s=="undefined"?y:Y(ip(s))})).pipe(g(i=>{let a=new U(s=>{let c=En(...i);return s.next(c),document.body.append(c),()=>c.remove()});return jr(e,H({content$:a},t))}))}var As=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.flowchartTitleText{fill:var(--md-mermaid-label-fg-color)}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel p,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel p{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color)}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}.classDiagramTitleText{fill:var(--md-mermaid-label-fg-color)}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs marker.marker.composition.class path,defs marker.marker.dependency.class path,defs marker.marker.extension.class path{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs marker.marker.aggregation.class path{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}.statediagramTitleText{fill:var(--md-mermaid-label-fg-color)}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel,.nodeLabel p{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}a .nodeLabel{text-decoration:underline}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}[id^=entity] path,[id^=entity] rect{fill:var(--md-default-bg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs .marker.oneOrMore.er *,defs .marker.onlyOne.er *,defs .marker.zeroOrMore.er *,defs .marker.zeroOrOne.er *{stroke:var(--md-mermaid-edge-color)!important}text:not([class]):last-child{fill:var(--md-mermaid-label-fg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var Ao,cp=0;function lp(){return typeof mermaid=="undefined"||mermaid instanceof Element?or("https://unpkg.com/mermaid@11/dist/mermaid.min.js"):Y(void 0)}function Cs(e){return e.classList.remove("mermaid"),Ao||(Ao=lp().pipe($(()=>mermaid.initialize({startOnLoad:!1,themeCSS:As,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),f(()=>{}),se(1))),Ao.subscribe(()=>Uo(null,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${cp++}`,r=A("div",{class:"mermaid"}),n=e.textContent,{svg:o,fn:i}=yield mermaid.render(t,n),a=r.attachShadow({mode:"closed"});a.innerHTML=o,e.replaceWith(r),i==null||i(a)})),Ao.pipe(f(()=>({ref:e})))}var Hs=A("table");function $s(e){return e.replaceWith(Hs),Hs.replaceWith(bs(e)),Y({ref:e})}function up(e){let t=e.find(r=>r.checked)||e[0];return R(...e.map(r=>b(r,"change").pipe(f(()=>G(`label[for="${r.id}"]`))))).pipe(J(G(`label[for="${t.id}"]`)),f(r=>({active:r})))}function Ps(e,{viewport$:t,target$:r}){let n=G(".tabbed-labels",e),o=P(":scope > input",e),i=Lo("prev");e.append(i);let a=Lo("next");return e.append(a),j(()=>{let s=new I,c=s.pipe(he(),_e(!0));ee([s,Re(e),wt(e)]).pipe(Q(c),Je(1,je)).subscribe({next([{active:l},u]){let p=xt(l),{width:d}=ke(l);e.style.setProperty("--md-indicator-x",`${p.x}px`),e.style.setProperty("--md-indicator-width",`${d}px`);let m=un(n);(p.x<m.x||p.x+d>m.x+u.width)&&n.scrollTo({left:Math.max(0,p.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),ee([Ft(n),Re(n)]).pipe(Q(c)).subscribe(([l,u])=>{let p=kr(n);i.hidden=l.x<16,a.hidden=l.x>p.width-u.width-16}),R(b(i,"click").pipe(f(()=>-1)),b(a,"click").pipe(f(()=>1))).pipe(Q(c)).subscribe(l=>{let{width:u}=ke(n);n.scrollBy({left:u*l,behavior:"smooth"})}),r.pipe(Q(c),L(l=>o.includes(l))).subscribe(l=>l.click()),n.classList.add("tabbed-labels--linked");for(let l of o){let u=G(`label[for="${l.id}"]`);u.replaceChildren(A("a",{href:`#${u.htmlFor}`,tabIndex:-1},...Array.from(u.childNodes))),b(u.firstElementChild,"click").pipe(Q(c),L(p=>!(p.metaKey||p.ctrlKey)),$(p=>{p.preventDefault(),p.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${u.htmlFor}`),u.click()})}return X("content.tabs.link")&&s.pipe(Ie(1),le(t)).subscribe(([{active:l},{offset:u}])=>{let p=l.innerText.trim();if(l.hasAttribute("data-md-switching"))l.removeAttribute("data-md-switching");else{let d=e.offsetTop-u.y;for(let h of P("[data-tabs]"))for(let v of P(":scope > input",h)){let O=G(`label[for="${v.id}"]`);if(O!==l&&O.innerText.trim()===p){O.setAttribute("data-md-switching",""),v.click();break}}window.scrollTo({top:e.offsetTop-d});let m=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([p,...m])])}}),s.pipe(Q(c)).subscribe(()=>{for(let l of P("audio, video",e))l.offsetWidth&&l.autoplay?l.play().catch(()=>{}):l.pause()}),up(o).pipe($(l=>s.next(l)),V(()=>s.complete()),f(l=>H({ref:e},l)))}).pipe(Ht(ge))}function Is(e,t){let{viewport$:r,target$:n,print$:o}=t;return R(...P(".annotate:not(.highlight)",e).map(i=>ws(i,{target$:n,print$:o})),...P("pre:not(.mermaid) > code",e).map(i=>Ss(i,{target$:n,print$:o})),...P("a",e).map(i=>ks(i,t)),...P("pre.mermaid",e).map(i=>Cs(i)),...P("table:not([class])",e).map(i=>$s(i)),...P("details",e).map(i=>Ls(i,{target$:n,print$:o})),...P("[data-tabs]",e).map(i=>Ps(i,{viewport$:r,target$:n})),...P("[title]:not([data-preview])",e).filter(()=>X("content.tooltips")).map(i=>Ye(i,{viewport$:r})),...P(".footnote-ref",e).filter(()=>X("content.footnote.tooltips")).map(i=>jr(i,{content$:new U(a=>{let s=new URL(i.href).hash.slice(1),c=Array.from(document.getElementById(s).cloneNode(!0).children),l=En(...c);return a.next(l),document.body.append(l),()=>l.remove()}),viewport$:r})))}function pp(e,{alert$:t}){return t.pipe(g(r=>R(Y(!0),Y(!1).pipe(lt(2e3))).pipe(f(n=>({message:r,active:n})))))}function Rs(e,t){let r=G(".md-typeset",e);return j(()=>{let n=new I;return n.subscribe(({message:o,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=o}),pp(e,t).pipe($(o=>n.next(o)),V(()=>n.complete()),f(o=>H({ref:e},o)))})}function fp({viewport$:e}){if(!X("header.autohide"))return Y(!1);let t=e.pipe(f(({offset:{y:o}})=>o),Pt(2,1),f(([o,i])=>[o<i,i]),fe(0)),r=ee([e,t]).pipe(L(([{offset:o},[,i]])=>Math.abs(i-o.y)>100),f(([,[o]])=>o),ie()),n=mr("search");return ee([e,n]).pipe(f(([{offset:o},i])=>o.y>400&&!i),ie(),g(o=>o?r:Y(!1)),J(!1))}function js(e,t){return j(()=>ee([Re(e),fp(t)])).pipe(f(([{height:r},n])=>({height:r,hidden:n})),ie((r,n)=>r.height===n.height&&r.hidden===n.hidden),se(1))}function Fs(e,{viewport$:t,header$:r,main$:n}){return j(()=>{let o=new I,i=o.pipe(he(),_e(!0));o.pipe(fe("active"),Xe(r)).subscribe(([{active:s},{hidden:c}])=>{e.classList.toggle("md-header--shadow",s&&!c),e.hidden=c});let a=me(P("[title]",e)).pipe(L(()=>X("content.tooltips")),oe(s=>Ye(s,{viewport$:t})));return n.subscribe(o),r.pipe(Q(i),f(s=>H({ref:e},s)),It(a.pipe(Q(i))))})}function mp(e,{viewport$:t,header$:r}){return wn(e,{viewport$:t,header$:r}).pipe(f(({offset:{y:n}})=>{let{height:o}=ke(e);return{active:o>0&&n>=o}}),fe("active"))}function Us(e,t){return j(()=>{let r=new I;r.subscribe({next({active:o}){e.classList.toggle("md-header__title--active",o)},complete(){e.classList.remove("md-header__title--active")}});let n=Le(".md-content h1");return typeof n=="undefined"?y:mp(n,t).pipe($(o=>r.next(o)),V(()=>r.complete()),f(o=>H({ref:e},o)))})}function Ns(e,{viewport$:t,header$:r}){let n=r.pipe(f(({height:i})=>i),ie()),o=n.pipe(g(()=>Re(e).pipe(f(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),fe("bottom"))));return ee([n,o,t]).pipe(f(([i,{top:a,bottom:s},{offset:{y:c},size:{height:l}}])=>(l=Math.max(0,l-Math.max(0,a-c,i)-Math.max(0,l+c-s)),{offset:a-i,height:l,active:a-i<=c})),ie((i,a)=>i.offset===a.offset&&i.height===a.height&&i.active===a.active))}function dp(e){let t=__md_get("__palette")||{index:e.findIndex(n=>matchMedia(n.getAttribute("data-md-color-media")).matches)},r=Math.max(0,Math.min(t.index,e.length-1));return Y(...e).pipe(oe(n=>b(n,"change").pipe(f(()=>n))),J(e[r]),f(n=>({index:e.indexOf(n),color:{media:n.getAttribute("data-md-color-media"),scheme:n.getAttribute("data-md-color-scheme"),primary:n.getAttribute("data-md-color-primary"),accent:n.getAttribute("data-md-color-accent")}})),se(1))}function Ws(e){let t=P("input",e),r=A("meta",{name:"theme-color"});document.head.appendChild(r);let n=A("meta",{name:"color-scheme"});document.head.appendChild(n);let o=Rr("(prefers-color-scheme: light)");return j(()=>{let i=new I;return i.subscribe(a=>{if(document.body.setAttribute("data-md-color-switching",""),a.color.media==="(prefers-color-scheme)"){let s=matchMedia("(prefers-color-scheme: light)"),c=document.querySelector(s.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");a.color.scheme=c.getAttribute("data-md-color-scheme"),a.color.primary=c.getAttribute("data-md-color-primary"),a.color.accent=c.getAttribute("data-md-color-accent")}for(let[s,c]of Object.entries(a.color))document.body.setAttribute(`data-md-color-${s}`,c);for(let s=0;s<t.length;s++){let c=t[s].nextElementSibling;c instanceof HTMLElement&&(c.hidden=a.index!==s)}__md_set("__palette",a)}),b(e,"keydown").pipe(L(a=>a.key==="Enter"),le(i,(a,s)=>s)).subscribe(({index:a})=>{a=(a+1)%t.length,t[a].click(),t[a].focus()}),i.pipe(f(()=>{let a=dt("header"),s=window.getComputedStyle(a);return n.content=s.colorScheme,s.backgroundColor.match(/\d+/g).map(c=>(+c).toString(16).padStart(2,"0")).join("")})).subscribe(a=>r.content=`#${a}`),i.pipe(Pe(ge)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),dp(t).pipe(Q(o.pipe(Ie(1))),Rt(),$(a=>i.next(a)),V(()=>i.complete()),f(a=>H({ref:e},a)))})}function Ds(e,{progress$:t}){return j(()=>{let r=new I;return r.subscribe(({value:n})=>{e.style.setProperty("--md-progress-value",`${n}`)}),t.pipe($(n=>r.next({value:n})),V(()=>r.complete()),f(n=>({ref:e,value:n})))})}var Vs='.p{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:rgba(var(--color-backdrop)/var(--alpha-lighter));cursor:pointer;height:100%;pointer-events:auto;position:absolute;transition:opacity .25s;width:100%}.p.v{opacity:0;pointer-events:none;transition:opacity .35s}.r{align-items:center;background-color:initial;border:none;border-radius:var(--space-2);cursor:pointer;display:flex;flex-shrink:0;font-family:var(--font-family);height:36px;justify-content:center;outline:none;padding:0;position:relative;transition:background-color .25s,color .25s;width:36px;z-index:1}.r svg{stroke:rgb(var(--color-foreground));height:18px;opacity:.5;width:18px}.r:before{background-color:rgb(var(--color-background-subtle));border-radius:var(--border-radius-2);content:"";inset:0;opacity:0;position:absolute;transform:scale(.75);transition:transform 125ms,opacity 125ms;z-index:0}.r:hover:before{opacity:1;transform:scale(1)}.r.c{cursor:auto}.r.c:before{display:none}.n{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:rgba(var(--color-background)/var(--alpha-light));border-radius:var(--space-3);box-shadow:0 0 60px #0000000d;display:flex;height:480px;overflow:hidden;pointer-events:auto;position:absolute;transition:transform .25s cubic-bezier(.16,1,.3,1),opacity .25s;width:640px}.n.l{opacity:0;pointer-events:none;transform:scale(1.1);transition:transform .25s .15s,opacity .15s}@media (max-width:680px){.n{border-radius:0;height:100%;width:100%}}.m{display:flex;flex-basis:min-content;flex-direction:column;flex-grow:1;flex-shrink:0}@keyframes d{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.u{animation:d .25s ease-in-out;background:var(--color-highlight);border-radius:100%;color:#fff;font-size:8px;font-weight:700;height:12px;padding-top:1px;position:absolute;right:4px;top:4px;width:12px}.i{background-color:rgb(var(--color-background-subtle)/var(--alpha-lighter));flex-shrink:0;overflow:scroll;position:relative;transition:width .35s cubic-bezier(.16,1,.3,1),opacity .25s;width:200px}.i>*{transform:translate(0);transition:transform .25s cubic-bezier(.16,1,.3,1)}.i.l{opacity:0;width:0}.i.l>*{transform:translate(-48px)}@media (max-width:680px){.i{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:rgba(var(--color-background-subtle)/var(--alpha-light));box-shadow:0 0 60px #00000026;height:100%;position:absolute;right:0;top:0}}.y{border-bottom:1px solid rgb(var(--color-foreground)/var(--alpha-lightest));display:flex;gap:var(--space-1);padding:var(--space-2)}.w{-webkit-overflow-scrolling:touch;overflow:auto}.k{padding:8px 10px}.z{color:rgb(var(--color-foreground)/var(--alpha-light));padding:var(--space-2);position:absolute;width:200px}.X,.z{display:flex;flex-direction:column}.X{gap:2px;list-style:none;padding:0}.X,.j{margin:0}.j{font-size:16px;font-weight:400}.F,.j{padding:8px}.F{font-size:14px;margin:4px 0 0;opacity:.5}.F,.o{font-size:12px}.o{cursor:pointer;display:flex;padding:4px 8px;position:relative}.o:before{background-color:var(--color-highlight-transparent);border-radius:var(--space-1);content:"";inset:0;opacity:0;position:absolute;transform:scale(.75);transition:transform 125ms,opacity 125ms;z-index:0}.o.g:before,.o:hover:before{opacity:1;transform:scale(1)}.o.g,.o:hover{color:var(--color-highlight)}.I{flex-grow:1}.I,.R{position:relative}.R{font-weight:700}.f{flex-grow:1}.f input{background:#0000;border:none;color:rgb(var(--color-foreground));font-family:var(--font-family);font-size:16px;height:100%;letter-spacing:-.25px;outline:none;width:100%}.b{color:rgb(var(--color-foreground)/var(--alpha-light));display:flex;flex-direction:column;gap:2px;line-height:1.3;list-style:none;margin:var(--space-2);margin-top:0;padding:0}.b li,.q{margin:0}.q{color:rgb(var(--color-foreground)/var(--alpha-lighter));font-size:12px;margin-top:var(--space-2);padding:0 18px}.a{border-radius:var(--space-2);color:inherit;cursor:pointer;display:flex;flex-direction:row;flex-grow:1;padding:8px 10px;position:relative;text-decoration:none}.a:before{background-color:rgb(var(--color-background-subtle));border-radius:var(--border-radius-2);content:"";display:block;inset:0;opacity:0;position:absolute;transform:scale(.9);transition:transform 125ms,opacity 125ms;z-index:0}@media (pointer:fine){.a.h:before,.a:hover:before{opacity:1;transform:scale(1)}}.a mark{background:#0000;color:var(--color-highlight)}.a u{background-color:var(--color-highlight-transparent);border-radius:2px;box-shadow:0 0 0 1px var(--color-highlight-transparent);text-decoration:none}.A{flex-grow:1}.s{margin-right:-8px;opacity:0;position:relative;transform:translate(-2px);transition:transform 125ms,opacity 125ms;z-index:0}@media (pointer:fine){.h>.s,:hover>.s{opacity:1;transform:none}}.x{font-size:14px;margin:0;position:relative}.x code{background:rgb(var(--color-background-subtle));border-radius:var(--space-1);font-size:13px;padding:2px 4px}.t{color:rgb(var(--color-foreground)/var(--alpha-lighter));display:inline-flex;flex-wrap:wrap;font-size:12px;gap:var(--space-1);list-style:none;margin:0;padding:0;position:relative}.t li{white-space:nowrap}.t li:after{content:"/";display:inline;margin-left:var(--space-1)}.t li:last-child:after{content:"";display:none}.e{--space-1:4px;--space-2:calc(var(--space-1)*2);--space-3:calc(var(--space-2)*2);--space-4:calc(var(--space-3)*2);--space-5:calc(var(--space-4)*2);--alpha-light:.7;--alpha-lighter:.54;--alpha-lightest:.1;--color-highlight:var(--md-accent-fg-color,#526cfe);--color-highlight-transparent:var(--md-accent-fg-color--transparent,#526cfe1a);--border-radius-1:var(--space-1);--border-radius-2:var(--space-2);--border-radius-3:calc(var(--space-1) + var(--space-2));--font-family:var(--md-text-font-family,Inter,Roboto Flex,system-ui,sans-serif);--font-size:16px;--line-height:1.5;--letter-spacing:-.5px;-webkit-font-smoothing:antialiased;align-items:center;display:flex;font-family:var(--font-family);font-size:var(--font-size);height:100vh;justify-content:center;letter-spacing:var(--letter-spacing);line-height:var(--line-height);pointer-events:none;position:absolute;width:100vw}@media (pointer:coarse){.e{height:-webkit-fill-available}}.e *,.e :after,.e :before{box-sizing:border-box}';function zs(e,{index$:t}){let r=Ue(),n=document.createElement("div");document.body.appendChild(n),n.style.position="fixed",n.style.height="100%",n.style.top="0",n.style.zIndex="4";let o=n.attachShadow({mode:"closed"});return o.appendChild(A("style",{},Vs.toString())),Ya(r.search,{highlight:r.features.includes("search.highlight")}),me(t).subscribe(i=>{for(let a of i.items)a.location=new URL(a.location,r.base).toString();Ga(i,o)}),b(e,"click").subscribe(()=>{_o()}),mr("search").pipe(Ie(1)).subscribe(()=>_o()),ct}var qs=yr(So());function Ks(e,{index$:t,location$:r}){return ee([t,r.pipe(J(Be()),L(n=>!!n.searchParams.get("h")))]).pipe(f(([n,o])=>vp(n.config)(o.searchParams.get("h"))),f(n=>{var a;let o=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let s=i.nextNode();s;s=i.nextNode())if((a=s.parentElement)!=null&&a.offsetHeight){let c=s.textContent,l=n(c);l.length>c.length&&o.set(s,l)}for(let[s,c]of o){let{childNodes:l}=A("span",null,c);s.replaceWith(...Array.from(l))}return{ref:e,nodes:o}}))}function vp(e){let t=e.separator.split("|").map(o=>o.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":o).join("|"),r=new RegExp(t,"img"),n=(o,i,a)=>`${i}<mark data-md-highlight>${a}</mark>`;return o=>{o=o.replace(/[\s*+\-:~^]+/g," ").replace(/&/g,"&amp;").trim();let i=new RegExp(`(^|${e.separator}|)(${o.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").split(r).filter(a=>a.length>0).join("|")})`,"img");return a=>(0,qs.default)(a).replace(i,n).replace(/<\/mark>(\s+)<mark[^>]*>/img,"$1")}}function bp(e,{viewport$:t,main$:r}){let n=e.closest(".md-grid"),o=n.offsetTop-n.parentElement.offsetTop;return ee([r,t]).pipe(f(([{offset:i,height:a},{offset:{y:s}}])=>(a=a+Math.min(o,Math.max(0,s-i))-o,{height:a,locked:s>=i+o})),ie((i,a)=>i.height===a.height&&i.locked===a.locked))}function Co(e,n){var o=n,{header$:t}=o,r=_r(o,["header$"]);let i=G(".md-sidebar__scrollwrap",e),{y:a}=xt(i);return j(()=>{let s=new I,c=s.pipe(he(),_e(!0)),l=s.pipe(Je(0,je));return l.pipe(le(t)).subscribe({next([{height:u},{height:p}]){i.style.height=`${u-2*a}px`,e.style.top=`${p}px`},complete(){i.style.height="",e.style.top=""}}),l.pipe(Sr()).subscribe(()=>{for(let u of P(".md-nav__link--active[href]",e)){if(!u.clientHeight)continue;let p=u.closest(".md-sidebar__scrollwrap");if(typeof p!="undefined"){let d=u.offsetTop-p.offsetTop,{height:m}=ke(p);p.scrollTo({top:d-m/2})}}}),me(P("label[tabindex]",e)).pipe(oe(u=>b(u,"click").pipe(Pe(ge),f(()=>u),Q(c)))).subscribe(u=>{let p=G(`[id="${u.htmlFor}"]`);G(`[aria-labelledby="${u.id}"]`).setAttribute("aria-expanded",`${p.checked}`)}),X("content.tooltips")&&me(P("abbr[title]",e)).pipe(oe(u=>Ye(u,{viewport$})),Q(c)).subscribe(),bp(e,r).pipe($(u=>s.next(u)),V(()=>s.complete()),f(u=>H({ref:e},u)))})}function Bs(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return $t(Qe(`${r}/releases/latest`).pipe(Se(()=>y),f(n=>({version:n.tag_name})),nt({})),Qe(r).pipe(Se(()=>y),f(n=>({stars:n.stargazers_count,forks:n.forks_count})),nt({}))).pipe(f(([n,o])=>H(H({},n),o)))}else{let r=`https://api.github.com/users/${e}`;return Qe(r).pipe(f(n=>({repositories:n.public_repos})),nt({}))}}function Ys(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return $t(Qe(`${r}/releases/permalink/latest`).pipe(Se(()=>y),f(({tag_name:n})=>({version:n})),nt({})),Qe(r).pipe(Se(()=>y),f(({star_count:n,forks_count:o})=>({stars:n,forks:o})),nt({}))).pipe(f(([n,o])=>H(H({},n),o)))}function Gs(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,n]=t;return Bs(r,n)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,n]=t;return Ys(r,n)}return y}var gp;function _p(e){return gp||(gp=j(()=>{let t=__md_get("__source",sessionStorage);if(t)return Y(t);if(we("consent").length){let n=__md_get("__consent");if(!(n&&n.github))return y}return Gs(e.href).pipe($(n=>__md_set("__source",n,sessionStorage)))}).pipe(Se(()=>y),L(t=>Object.keys(t).length>0),f(t=>({facts:t})),se(1)))}function Js(e){let t=G(":scope > :last-child",e);return j(()=>{let r=new I;return r.subscribe(({facts:n})=>{t.appendChild(vs(n)),t.classList.add("md-source__repository--active")}),_p(e).pipe($(n=>r.next(n)),V(()=>r.complete()),f(n=>H({ref:e},n)))})}function yp(e,{viewport$:t,header$:r}){return Re(document.body).pipe(g(()=>wn(e,{header$:r,viewport$:t})),f(({offset:{y:n}})=>({hidden:n>=10})),fe("hidden"))}function Xs(e,t){return j(()=>{let r=new I;return r.subscribe({next({hidden:n}){e.hidden=n},complete(){e.hidden=!1}}),(X("navigation.tabs.sticky")?Y({hidden:!1}):yp(e,t)).pipe($(n=>r.next(n)),V(()=>r.complete()),f(n=>H({ref:e},n)))})}function xp(e,{viewport$:t,header$:r}){let n=new Map,o=P(".md-nav__link",e);for(let s of o){let c=decodeURIComponent(s.hash.substring(1)),l=Le(`[id="${c}"]`);typeof l!="undefined"&&n.set(s,l)}let i=r.pipe(fe("height"),f(({height:s})=>{let c=dt("main"),l=G(":scope > :first-child",c);return s+.9*(l.offsetTop-c.offsetTop)}),ye());return Re(document.body).pipe(fe("height"),g(s=>j(()=>{let c=[];return Y([...n].reduce((l,[u,p])=>{for(;c.length&&n.get(c[c.length-1]).tagName>=p.tagName;)c.pop();let d=p.offsetTop;for(;!d&&p.parentElement;)p=p.parentElement,d=p.offsetTop;let m=p.offsetParent;for(;m;m=m.offsetParent)d+=m.offsetTop;return l.set([...c=[...c,u]].reverse(),d)},new Map))}).pipe(f(c=>new Map([...c].sort(([,l],[,u])=>l-u))),Xe(i),g(([c,l])=>t.pipe(Lr(([u,p],{offset:{y:d},size:m})=>{let h=d+m.height>=Math.floor(s.height);for(;p.length;){let[,v]=p[0];if(v-l<d||h)u=[...u,p.shift()];else break}for(;u.length;){let[,v]=u[u.length-1];if(v-l>=d&&!h)p=[u.pop(),...p];else break}return[u,p]},[[],[...c]]),ie((u,p)=>u[0]===p[0]&&u[1]===p[1])))))).pipe(f(([s,c])=>({prev:s.map(([l])=>l),next:c.map(([l])=>l)})),J({prev:[],next:[]}),Pt(2,1),f(([s,c])=>s.prev.length<c.prev.length?{prev:c.prev.slice(Math.max(0,s.prev.length-1),c.prev.length),next:[]}:{prev:c.prev.slice(-1),next:c.next.slice(0,c.next.length-s.next.length)}))}function Zs(e,{viewport$:t,header$:r,main$:n,target$:o}){return j(()=>{let i=new I,a=i.pipe(he(),_e(!0));if(i.subscribe(({prev:s,next:c})=>{for(let[l]of c)l.classList.remove("md-nav__link--passed"),l.classList.remove("md-nav__link--active");for(let[l,[u]]of s.entries())u.classList.add("md-nav__link--passed"),u.classList.toggle("md-nav__link--active",l===s.length-1)}),X("toc.follow")){let s=R(t.pipe(Ke(1),f(()=>{})),t.pipe(Ke(250),f(()=>"smooth")));i.pipe(L(({prev:c})=>c.length>0),Xe(n.pipe(Pe(ge))),le(s)).subscribe(([[{prev:c}],l])=>{let[u]=c[c.length-1];if(u.offsetHeight){let p=ki(u);if(typeof p!="undefined"){let d=u.offsetTop-p.offsetTop,{height:m}=ke(p);p.scrollTo({top:d-m/2,behavior:l})}}})}return X("navigation.tracking")&&t.pipe(Q(a),fe("offset"),Ke(250),Ie(1),Q(o.pipe(Ie(1))),Rt({delay:250}),le(i)).subscribe(([,{prev:s}])=>{let c=Be(),l=s[s.length-1];if(l&&l.length){let[u]=l,{hash:p}=new URL(u.href);c.hash!==p&&(c.hash=p,history.replaceState({},"",`${c}`))}else c.hash="",history.replaceState({},"",`${c}`)}),xp(e,{viewport$:t,header$:r}).pipe($(s=>i.next(s)),V(()=>i.complete()),f(s=>H({ref:e},s)))})}function wp(e,{viewport$:t,main$:r,target$:n}){let o=t.pipe(f(({offset:{y:a}})=>a),Pt(2,1),f(([a,s])=>a>s&&s>0),ie()),i=r.pipe(f(({active:a})=>a));return ee([i,o]).pipe(f(([a,s])=>!(a&&s)),ie(),Q(n.pipe(Ie(1))),_e(!0),Rt({delay:250}),f(a=>({hidden:a})))}function Qs(e,{viewport$:t,header$:r,main$:n,target$:o}){let i=new I,a=i.pipe(he(),_e(!0));return i.subscribe({next({hidden:s}){e.hidden=s,s?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(Q(a),fe("height")).subscribe(({height:s})=>{e.style.top=`${s+16}px`}),b(e,"click").subscribe(s=>{s.preventDefault(),window.scrollTo({top:0})}),wp(e,{viewport$:t,main$:n,target$:o}).pipe($(s=>i.next(s)),V(()=>i.complete()),f(s=>H({ref:e},s)))}function ec(e,t){return e.protocol=t.protocol,e.hostname=t.hostname,t.port&&(e.port=t.port),e}function Ep(e,t){let r=new Map;for(let n of P("url",e)){let o=G("loc",n),i=[ec(new URL(o.textContent),t)];r.set(`${i[0]}`,i);for(let a of P("[rel=alternate]",n)){let s=a.getAttribute("href");s!=null&&i.push(ec(new URL(s),t))}}return r}function hr(e){return rs(new URL("sitemap.xml",e)).pipe(f(t=>Ep(t,new URL(e))),Se(()=>Y(new Map)),ye())}function tc({document$:e}){let t=new Map;e.pipe(g(()=>P("link[rel=alternate]")),f(r=>new URL(r.href)),L(r=>!t.has(r.toString())),oe(r=>hr(r).pipe(f(n=>[r,n]),Se(()=>y)))).subscribe(([r,n])=>{t.set(r.toString().replace(/\/$/,""),n)}),b(document.body,"click").pipe(L(r=>!r.metaKey&&!r.ctrlKey),g(r=>{if(r.target instanceof Element){let n=r.target.closest("a");if(n&&!n.target){let o=[...t].find(([p])=>n.href.startsWith(`${p}/`));if(typeof o=="undefined")return y;let[i,a]=o,s=Be();if(s.href.startsWith(i))return y;let c=Ue(),l=s.href.replace(c.base,"");l=`${i}/${l}`;let u=a.has(l.split("#")[0])?new URL(l,c.base):new URL(i);return r.preventDefault(),Y(u)}}return y})).subscribe(r=>fr(r,!0))}var Ho=yr(ko());function Tp(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r.trimEnd()}function rc({alert$:e}){Ho.default.isSupported()&&new U(t=>{new Ho.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||Tp(G(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe($(t=>{t.trigger.focus()}),f(()=>qt("clipboard.copied"))).subscribe(e)}function nc(e,t){if(!(e.target instanceof Element))return y;let r=e.target.closest("a");if(r===null)return y;if(r.target||e.metaKey||e.ctrlKey)return y;let n=new URL(r.href);return n.search=n.hash="",t.has(`${n}`)?(e.preventDefault(),Y(r)):y}function oc(e){let t=new Map;for(let r of P(":scope > *",e.head))t.set(r.outerHTML,r);return t}function ic(e){for(let t of P("[href], [src]",e))for(let r of["href","src"]){let n=t.getAttribute(r);if(n&&!/^(?:[a-z]+:)?\/\//i.test(n)){t[r]=t[r];break}}return Y(e)}function Op(e){for(let n of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...X("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let o=Le(n),i=Le(n,e);typeof o!="undefined"&&typeof i!="undefined"&&o.replaceWith(i)}let t=oc(document);for(let[n,o]of oc(e))t.has(n)?t.delete(n):document.head.appendChild(o);for(let n of t.values()){let o=n.getAttribute("name");o!=="theme-color"&&o!=="color-scheme"&&n.remove()}let r=dt("container");return rt(P("script",r)).pipe(g(n=>{let o=e.createElement("script");if(n.src){for(let i of n.getAttributeNames())o.setAttribute(i,n.getAttribute(i));return n.replaceWith(o),new U(i=>{o.onload=()=>i.complete()})}else return o.textContent=n.textContent,n.replaceWith(o),y}),he(),_e(document))}function ac({sitemap$:e,location$:t,viewport$:r,progress$:n}){if(location.protocol==="file:")return y;Y(document).subscribe(ic);let o=b(document.body,"click").pipe(Xe(e),g(([s,c])=>nc(s,c)),f(({href:s})=>new URL(s)),ye()),i=b(window,"popstate").pipe(f(Be),ye());o.pipe(le(r)).subscribe(([s,{offset:c}])=>{history.replaceState(c,""),history.pushState(null,"",s)}),R(o,i).subscribe(t);let a=t.pipe(fe("pathname"),g(s=>xn(s,{progress$:n}).pipe(Se(()=>(fr(s,!0),y)))),g(ic),g(Op),ye());return R(a.pipe(le(t,(s,c)=>c)),a.pipe(g(()=>t),fe("hash")),t.pipe(ie((s,c)=>s.pathname===c.pathname&&s.hash===c.hash),g(()=>o),$(()=>history.back()))).subscribe(s=>{var c,l;history.state!==null||!s.hash?window.scrollTo(0,(l=(c=history.state)==null?void 0:c.y)!=null?l:0):(history.scrollRestoration="auto",Qa(s.hash),history.scrollRestoration="manual")}),t.subscribe(()=>{history.scrollRestoration="manual"}),b(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),r.pipe(fe("offset"),Ke(100)).subscribe(({offset:s})=>{history.replaceState(s,"")}),X("navigation.instant.prefetch")&&R(b(document.body,"mousemove"),b(document.body,"focusin")).pipe(Xe(e),g(([s,c])=>nc(s,c)),Ke(25),Kn(({href:s})=>s),ln(s=>{let c=document.createElement("link");return c.rel="prefetch",c.href=s.toString(),document.head.appendChild(c),b(c,"load").pipe(f(()=>c),Me(1))})).subscribe(s=>s.remove()),a}function sc(e){var u;let{selectedVersionSitemap:t,selectedVersionBaseURL:r,currentLocation:n,currentBaseURL:o}=e,i=(u=$o(o))==null?void 0:u.pathname;if(i===void 0)return;let a=Sp(n.pathname,i);if(a===void 0)return;let s=Mp(t.keys());if(!t.has(s))return;let c=$o(a,s);if(!c||!t.has(c.href))return;let l=$o(a,r);if(l)return l.hash=n.hash,l.search=n.search,l}function $o(e,t){try{return new URL(e,t)}catch(r){return}}function Sp(e,t){if(e.startsWith(t))return e.slice(t.length)}function Lp(e,t){let r=Math.min(e.length,t.length),n;for(n=0;n<r&&e[n]===t[n];++n);return n}function Mp(e){let t;for(let r of e)t===void 0?t=r:t=t.slice(0,Lp(t,r));return t!=null?t:""}function cc({document$:e}){let t=Ue(),r=Qe(new URL("../versions.json",t.base)).pipe(Se(()=>y)),n=r.pipe(f(o=>{let[,i]=t.base.match(/([^/]+)\/?$/);return o.find(({version:a,aliases:s})=>a===i||s.includes(i))||o[0]}));r.pipe(f(o=>new Map(o.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),g(o=>b(document.body,"click").pipe(L(i=>!i.metaKey&&!i.ctrlKey),le(n),g(([i,a])=>{if(i.target instanceof Element){let s=i.target.closest("a");if(s&&!s.target&&o.has(s.href)){let c=s.href;return!i.target.closest(".md-version")&&o.get(c)===a?y:(i.preventDefault(),Y(new URL(c)))}}return y}),g(i=>hr(i).pipe(f(a=>{var s;return(s=sc({selectedVersionSitemap:a,selectedVersionBaseURL:i,currentLocation:Be(),currentBaseURL:t.base}))!=null?s:i})))))).subscribe(o=>fr(o,!0)),ee([r,n]).subscribe(([o,i])=>{G(".md-header__topic").appendChild(gs(o,i))}),e.pipe(g(()=>n)).subscribe(o=>{var s;let i=new URL(t.base),a=__md_get("__outdated",sessionStorage,i);if(a===null){a=!0;let c=((s=t.version)==null?void 0:s.default)||"latest";Array.isArray(c)||(c=[c]);e:for(let l of c)for(let u of o.aliases.concat(o.version))if(new RegExp(l,"i").test(u)){a=!1;break e}__md_set("__outdated",a,sessionStorage,i)}if(a)for(let c of we("outdated"))c.hidden=!1})}function lc({document$:e,viewport$:t}){e.pipe(g(()=>P(".md-ellipsis")),oe(r=>wt(r).pipe(Q(e.pipe(Ie(1))),L(n=>n),f(()=>r),Me(1))),L(r=>r.offsetWidth<r.scrollWidth),oe(r=>{let n=r.innerText,o=r.closest("a")||r;return o.title=n,X("content.tooltips")?Ye(o,{viewport$:t}).pipe(Q(e.pipe(Ie(1))),V(()=>o.removeAttribute("title"))):y})).subscribe(),X("content.tooltips")&&e.pipe(g(()=>P(".md-status")),oe(r=>Ye(r,{viewport$:t}))).subscribe()}function uc({document$:e,tablet$:t}){e.pipe(g(()=>P(".md-toggle--indeterminate")),$(r=>{r.indeterminate=!0,r.checked=!1}),oe(r=>b(r,"change").pipe(Gn(()=>r.classList.contains("md-toggle--indeterminate")),f(()=>r))),le(t)).subscribe(([r,n])=>{r.classList.remove("md-toggle--indeterminate"),n&&(r.checked=!1)})}function kp(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function pc({document$:e}){e.pipe(g(()=>P("[data-md-scrollfix]")),$(t=>t.removeAttribute("data-md-scrollfix")),L(kp),oe(t=>b(t,"touchstart").pipe(f(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function fc({viewport$:e,tablet$:t}){ee([mr("search"),t]).pipe(f(([r,n])=>r&&!n),g(r=>Y(r).pipe(lt(r?400:100))),le(e)).subscribe(([r,{offset:{y:n}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${n}px`;else{let o=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",o&&window.scrollTo(0,o)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let n=e[r];typeof n=="string"?n=document.createTextNode(n):n.parentNode&&n.parentNode.removeChild(n),r?t.insertBefore(this.previousSibling,n):t.replaceChild(n,this)}}}));function Ap(){return location.protocol==="file:"?or(`${new URL("search.js",On.base)}`).pipe(f(()=>__index),se(1)):Qe(new URL("search.json",On.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var ht=Oi(),Nr=Xa(),vr=es(Nr),dc=Ja(),Ne=ss(),Sn=Rr("(min-width: 60em)"),hc=Rr("(min-width: 76.25em)"),vc=ts(),On=Ue(),bc=Le(".md-search")?Ap():ct,Po=new I;rc({alert$:Po});tc({document$:ht});var Io=new I,gc=hr(On.base);X("navigation.instant")&&ac({sitemap$:gc,location$:Nr,viewport$:Ne,progress$:Io}).subscribe(ht);var mc;((mc=On.version)==null?void 0:mc.provider)==="mike"&&cc({document$:ht});R(Nr,vr).pipe(lt(125)).subscribe(()=>{To("drawer",!1),To("search",!1)});dc.pipe(L(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case",":case"p":let t=document.querySelector("link[rel=prev]");t instanceof HTMLLinkElement&&(window.location.href=t.href);break;case".":case"n":let r=document.querySelector("link[rel=next]");r instanceof HTMLLinkElement&&(window.location.href=r.href);break;case"/":let n=document.querySelector("[data-md-component=search] button");n instanceof HTMLButtonElement&&n.click();break;case"Enter":let o=yt();o instanceof HTMLLabelElement&&o.click()}});lc({viewport$:Ne,document$:ht});uc({document$:ht,tablet$:Sn});pc({document$:ht});fc({viewport$:Ne,tablet$:Sn});var Lt=js(dt("header"),{viewport$:Ne}),Ur=ht.pipe(f(()=>dt("main")),g(e=>Ns(e,{viewport$:Ne,header$:Lt})),se(1)),Cp=R(...we("consent").map(e=>ls(e,{target$:vr})),...we("dialog").map(e=>Rs(e,{alert$:Po})),...we("palette").map(e=>Ws(e)),...we("progress").map(e=>Ds(e,{progress$:Io})),...we("search").map(e=>zs(e,{index$:bc})),...we("source").map(e=>Js(e))),Hp=j(()=>R(...we("announce").map(e=>cs(e)),...we("content").map(e=>Is(e,{sitemap$:gc,viewport$:Ne,target$:vr,print$:vc})),...we("content").map(e=>X("search.highlight")?Ks(e,{index$:bc,location$:Nr}):y),...we("header").map(e=>Fs(e,{viewport$:Ne,header$:Lt,main$:Ur})),...we("header-title").map(e=>Us(e,{viewport$:Ne,header$:Lt})),...we("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?xo(hc,()=>Co(e,{viewport$:Ne,header$:Lt,main$:Ur})):xo(Sn,()=>Co(e,{viewport$:Ne,header$:Lt,main$:Ur}))),...we("tabs").map(e=>Xs(e,{viewport$:Ne,header$:Lt})),...we("toc").map(e=>Zs(e,{viewport$:Ne,header$:Lt,main$:Ur,target$:vr})),...we("top").map(e=>Qs(e,{viewport$:Ne,header$:Lt,main$:Ur,target$:vr})))),_c=ht.pipe(g(()=>Hp),It(Cp),se(1));_c.subscribe();window.document$=ht;window.location$=Nr;window.target$=vr;window.keyboard$=dc;window.viewport$=Ne;window.tablet$=Sn;window.screen$=hc;window.print$=vc;window.alert$=Po;window.progress$=Io;window.component$=_c;})();
blob - /dev/null
blob + b9f5db89f01564c5d4ebd7ba98cf1a6082bc69b4 (mode 644)
--- /dev/null
+++ site/assets/javascripts/workers/search.5df7522c.min.js
@@ -0,0 +1 @@
+"use strict";(()=>{var ge=Object.create;var K=Object.defineProperty,me=Object.defineProperties,xe=Object.getOwnPropertyDescriptor,ye=Object.getOwnPropertyDescriptors,ve=Object.getOwnPropertyNames,W=Object.getOwnPropertySymbols,we=Object.getPrototypeOf,Y=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable;var B=(e,t,n)=>t in e?K(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,R=(e,t)=>{for(var n in t||(t={}))Y.call(t,n)&&B(e,n,t[n]);if(W)for(var n of W(t))Te.call(t,n)&&B(e,n,t[n]);return e},Q=(e,t)=>me(e,ye(t));var be=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ee=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of ve(t))!Y.call(e,l)&&l!==n&&K(e,l,{get:()=>t[l],enumerable:!(r=xe(t,l))||r.enumerable});return e};var Me=(e,t,n)=>(n=e!=null?ge(we(e)):{},Ee(t||!e||!e.__esModule?K(n,"default",{value:e,enumerable:!0}):n,e));var L=(e,t,n)=>B(e,typeof t!="symbol"?t+"":t,n);var k=(e,t,n)=>new Promise((r,l)=>{var a=i=>{try{s(n.next(i))}catch(u){l(u)}},o=i=>{try{s(n.throw(i))}catch(u){l(u)}},s=i=>i.done?r(i.value):Promise.resolve(i.value).then(a,o);s((n=n.apply(e,t)).next())});var he=be(de=>{"use strict";function j(e,t,n={}){return{name:e,from:t,meta:n}}function H(e,t){let n=[{value:e,depth:0}];for(let r=0,l=-1,a=0;r>=0;){let{value:o,depth:s}=n[r];if(l<=s&&o.type==="operator"&&o.data.operands.length>0)for(let i=o.data.operands.length;i>0;)n[++r]={value:o.data.operands[--i],depth:s+1};else{let i=t(o,a++,s);if(typeof i<"u")return i;--r}l=s}}var C=class extends Error{constructor(e,t){super(t),this.code=e}};function $(e,t){let n=ke(e);for(let r=0;r<n.length;r++){let l=t(n[r]);if(typeof l<"u")return l}}function ke(e){return e.items}function X(e,t){return $(e,n=>{let{matches:r}=n;for(let l=0;l<r.length;l++){let a=t(r[l],n);if(typeof a<"u")return a}})}function G(e,t=new Map){return(n,...r)=>{let l=t.get(n);return typeof l>"u"&&t.set(n,l=e(n,...r)),l}}function P(e,t){return Object.defineProperty(t,"name",{value:e}),t}function ee(e){return k(this,null,function*(){let t=[];if(typeof e.plugins<"u")for(let n=0;n<e.plugins.length;n++){let r=e.plugins[n];t.push(typeof r=="function"?yield r(e):r)}return t})}function te(e,t){return k(this,null,function*(){for(let n=0;n<e.length;n++){let r=t(e[n]);r instanceof Promise&&(yield r)}})}function q(e,t,n){for(let r=0;r<e.length;r++){let l=t(n,e[r]);typeof l<"u"&&(n=l)}return n}function Fe(e,t,n){return k(this,null,function*(){var r;for(let l=0;l<e.length;l++){let a=t(n,e[l]);typeof a<"u"&&(n=a instanceof Promise?(r=yield a)!=null?r:n:a)}return n})}function Re(e){return typeof e!="object"?{node:e,children:[]}:e}function qe(e){return typeof e=="object"&&e!==null&&"select"in e&&"values"in e}function N(e){return Math.max(1,Math.ceil(Math.log2(e)))}function ze(e){if(e.d+e.f+e.x>32)throw new RangeError("Bit format exceeds 32 bits");return e}function ne(e,t,n){let r=N(e),l=N(t),a=typeof n<"u"?N(n):32-r-l;return ze({d:r,f:l,x:a})}var b=[0];for(let e=0;e<32;e++)b.push(b[e]|1<<e);function Oe(e){return new Uint8Array(e)}function Qe(e){return new Uint32Array(e)}function M(){return[0].slice(0,0)}var J=class{constructor(e=[]){L(this,"magnitude",0);this.data=e}add(e,t,n){this.data.push({start:e,end:t,value:n}),this.magnitude=0}get(e){for(let t=0;t<this.data.length;t++){let{start:n,end:r,value:l}=this.data[t];if(e>=n&&e<r)return l}return 0}forEach(e){for(let t=0;t<this.data.length;t++){let{start:n,end:r,value:l}=this.data[t];for(let a=n;a<r;a++)e(a,l)}}get length(){return this.magnitude||(this.magnitude=re(this))}},D=class{constructor(e,t=M()){L(this,"magnitude",0);this.data=e,this.cols=t}add(e,t){this.cols.push(e),this.data.push(t),this.magnitude=0}get(e){for(let t=0;t<this.cols.length;t++)if(this.cols[t]===e)return this.data[t];return 0}forEach(e){for(let t=0;t<this.cols.length;t++)e(this.cols[t],this.data[t])}get length(){return this.magnitude||(this.magnitude=re(this))}};function re(e){let t=0;return e.forEach((n,r)=>{t+=r*r}),Math.sqrt(t)}function Ae(e,t){e instanceof J?e.data.forEach((n,r)=>{t(n,r)}):e.forEach((n,r)=>{t({start:n,end:n+1,value:1},r)})}var S=class{constructor(e,t=Qe(Math.ceil(e/32))){this.size=e,this.data=t}get(e){return this.data[e>>>5]>>>e&1}set(e){this.data[e>>>5]|=1<<(e&31)}forEach(e){let t=this.size&31;for(let n=0;n<this.data.length;n++){if(this.data[n]===0)continue;let r=this.data[n];t&&n===this.data.length-1&&(r=r&b[t]);for(let l=0,a=32-Math.clz32(r);l<a;l++)r&1<<l&&e((n<<5)+l)}}};function le(e,t){for(let n=0;n<e.data.length;n++)e.data[n]&=~t.data[n]}function z(e,t){t*=b[32]>>>0;for(let n=0;n<e.data.length;n++)e.data.fill(t)}function V(e,t){for(let n=0;n<e.data.length;n++)e.data[n]&=t.data[n]}function ae(e){for(let t=0;t<e.data.length;t++)e.data[t]^=b[31]}function A(e,t){for(let n=0;n<e.data.length;n++)e.data[n]|=t.data[n]}function Ie(e,t){let n=[{value:e,depth:0}];for(let r=1,l=0;r>0;l++){let{value:a,depth:o}=n[--r],s=t(a,l,o);if(typeof s<"u")return s;for(let i=a.children.length;i>0;)n[r++]={value:a.children[--i],depth:o+1}}}function Se(e,t){return k(this,null,function*(){let{fields:n,plugins:r=[]}=t,l=ne(e.length,n.length),a=[];for(let i=0;i<n.length;i++)a.push({terms:[],index:new Map});for(let i=0;i<e.length;i++)for(let u=0;u<n.length;u++){let d=n[u].from(e[i]);if(typeof d>"u")continue;let f=i<<l.f|u;d=q(r,(p,g)=>{var m;return(m=g.onFilterInput)==null?void 0:m.call(g,p,f,l)},d);let c=a[u],h=M();d=Array.isArray(d)?d:[d];for(let p=0;p<d.length;p++){let g=Re(d[p]);Ie(g,(m,y,x)=>{let v=c.index.get(m.node);typeof v>"u"&&c.index.set(m.node,v=M());let w=c.terms.length;for(let T=0;T<v.length;T++){let F=c.terms[v[T]];if(F.position.depth===x){if(x&&h[x-1]!==F.position.prior)continue;w=v[T];break}}w===c.terms.length&&c.terms.push({value:m.node,occurrences:M(),position:{prior:x?h[x-1]:w,depth:x}});let{occurrences:E}=c.terms[w];E.push(f<<l.x|y),h[x]=w;for(let T=0;T<v.length;T++)if(v[T]===w)return;v.push(w)})}}let o={documents:e.length,fields:n.length},s={shards:a,space:l,count:o};return yield te(r,i=>{var u;return(u=i.onFilterStore)==null?void 0:u.call(i,s,t,e)}),s})}function je(e,t,n,r={}){let l=[];if(t<0||t>=e.count.fields)return l;let a=e.shards[t],o=new Map,{count:s=1/0,depth:i=1/0}=r;for(let u=0;u<a.terms.length;u++){let d=a.terms[u],f=n(d,u);if(typeof f<"u"){let{prior:c,depth:h}=d.position;if(h>i)continue;let p=o.get(d);typeof p>"u"&&o.set(d,p={node:f,children:[]});let g=l;h>0&&(g=o.get(a.terms[c]).children),g.length<s&&g.push(p)}}return l}function Ce(e,t,n){let{documents:r,terms:l}=U(e);if(n<0||n>=e.count.fields)return{documents:r,terms:l};let a=e.shards[n];return t.forEach(o=>{let{occurrences:s}=a.terms[o];for(let i=0;i<s.length;i++){let u=s[i]>>>e.space.x>>>e.space.f;r.set(u)}l[n].set(o)}),{documents:r,terms:l}}function Pe(e){let{documents:t,terms:n}=U(e);z(t,1);for(let r=0;r<n.length;r++)z(n[r],1);return{documents:t,terms:n}}function U(e){return{documents:new S(e.count.documents),terms:e.shards.map(({terms:t})=>new S(t.length))}}function De(e,t,n){let{compiler:r,fields:l,plugins:a=[]}=n,{input:o,scope:s,abort:i=!1}=q(a,(f,c)=>{var h;return(h=c.onFilterQuery)==null?void 0:h.call(c,f,e,n)},t),u={items:[],query:{select:U(e),values:[]}},d=new Map;if(i===!1){let f=r(n),{select:c,values:h}=f(o,e);typeof s<"u"&&V(c.documents,s);let p=new Map;u.query={select:c,values:h},c.terms.forEach((g,m)=>{g.forEach(y=>{let x=e.shards[m],{occurrences:v}=x.terms[y];for(let w=0;w<v.length;w++){let E=v[w],T=E>>>e.space.x,F=T>>>e.space.f;if(!c.documents.get(F))continue;let I=p.get(T);typeof I>"u"&&p.set(T,I=new D(M()));let pe=E&b[e.space.x];I.add(pe,y)}})}),c.documents.forEach(g=>{let m={id:g,matches:[]};u.items.push(m),d.set(g,m)}),p.forEach((g,m)=>{let y=m>>>e.space.f,x=m&b[e.space.f];d.get(y).matches.push({id:m,field:l[x].name,value:{filter:g},score:0})})}return q(a,(f,c)=>{var h;return(h=c.onFilterResult)==null?void 0:h.call(c,f,e,n)},u)}function oe(e){let{fields:t}=e;return(n,r)=>{if(qe(n))return n;let l=[Pe(r)],a=[],o=0;return H(n,({type:s,data:i})=>{switch(s){case"value":let u=t.findIndex(({name:c})=>c===i.field);if(u===-1){l[o++]=U(r);break}let d=i.value;if(typeof d!="object"){let c=new D(M()),h=r.shards[u],p=h.index.get(d);if(typeof p<"u")for(let g=0;g<p.length;g++){let m=p[g];if(typeof i.depth<"u"){let{position:y}=h.terms[m];if(y.depth!==i.depth)continue}c.add(m,1)}d=c}l[o++]=Ce(r,d,u),a.push(Q(R({},i),{value:d}));break;case"operator":let f=o-i.operands.length;switch(i.operator){case"or":for(;o>f+1&&o--;){A(l[f].documents,l[o].documents);for(let c=0;c<t.length;c++)A(l[f].terms[c],l[o].terms[c])}break;case"and":for(;o>f+1&&o--;){V(l[f].documents,l[o].documents);for(let c=0;c<t.length;c++)A(l[f].terms[c],l[o].terms[c])}break;case"not":ae(l[f].documents);for(let c=0;c<t.length;c++)z(l[f].terms[c],0);for(;o>f+1&&o--;)le(l[f].documents,l[o].documents)}}}),{select:l[0],values:a}}}function Ve(e){return{name:e.name,data:e.data,onFilterOptions:e.onFilterOptions,onFilterInput:e.onFilterInput,onFilterStore:e.onFilterStore,onFilterQuery:e.onFilterQuery,onFilterResult:e.onFilterResult}}function Ue(e){return typeof e=="object"&&e!==null&&"type"in e&&"data"in e}function _e(e){return typeof e=="object"&&e!==null&&"select"in e&&"values"in e}function Be(e){return e.normalize("NFKD").toLowerCase()}function Ke(e,t){let n=Math.min(e.length,t.length);for(let r=0;r<n;r++)if(e.charCodeAt(r)!==t.charCodeAt(r))return r;return n}function Le(e,t,n=0,r=e.length){for(let l=0;n<r;n+=1+ +(l>65535)){let a=t(l=e.codePointAt(n),n);if(typeof a<"u")return a}}function se(e,t,n=0,r=e.length){let l=M();return Le(e,a=>{l.push(a);let o=t(String.fromCodePoint(...l),l.length);if(typeof o<"u")return o},n,r)}function Ne(e,t,n=0,r=e.length){let l=n;for(let a=0;l<r;l++)switch(a=e.charCodeAt(l),a){case 60:l>n&&t(n,n=l);continue;case 62:n=l+1}l>n&&t(n,l)}function ie(e,t,n,r=0){return Ne(e,(l,a)=>t(e,(o,s)=>{r=n({value:e.slice(o,s),index:r,start:o,end:s})},l,a)),r}function Ge(e,t,n,r=0){for(let l=0,a=0;l<e.length;a+=e[l++].length)r=ie(e[l],t,o=>(o.start+=a,o.end+=a,n(o)),r);return r}function He(e){let t=new RegExp(e,"gu");return(n,r,l=0,a=n.length)=>{var i;t.lastIndex=l;let o,s=0;do{o=t.exec(n);let u=(i=o==null?void 0:o.index)!=null?i:a;l<u&&r(l,Math.min(u,a)),o&&(s=o[0].length,l=o.index+s,s===0&&(t.lastIndex=o.index+1))}while(o&&l<a)}}function Je(e,t){return k(this,null,function*(){let{separator:n,transform:r,fields:l,plugins:a=[]}=t,o=ne(e.length,l.length),s=new Map;for(let f=0;f<e.length;f++)for(let c=0;c<l.length;c++){let h=l[c].from(e[f]);if(typeof h>"u")continue;let p=f<<o.f|c;h=q(a,(g,m)=>{var y;return(y=m.onTextInput)==null?void 0:y.call(m,g,p,o)},h),h=Array.isArray(h)?h:[h],Ge(h,n,g=>{let m=q(a,(y,x)=>{var v;return(v=x.onTextTokens)==null?void 0:v.call(x,y)},[g]);for(let y=0;y<m.length;y++){g=m[y];let x=r(g.value),v=s.get(x);typeof v>"u"?s.set(x,[p<<o.x|g.index]):v.push(p<<o.x|g.index)}return m.length?g.index+1:g.index})}let i={documents:e.length,fields:l.length},u={terms:[],index:new Map,space:o,count:i},d=[...s.keys()].sort();for(let f=0;f<d.length;f++)u.index.set(d[f],f),u.terms.push({value:d[f],occurrences:s.get(d[f])});return yield te(a,f=>{var c;return(c=f.onTextStore)==null?void 0:c.call(f,u,t,e)}),u})}function We(e,t,n){let{documents:r,terms:l}=_(e);return n<0||n>=e.count.fields?{documents:r,terms:l}:(t.forEach(a=>{let{occurrences:o}=e.terms[a];for(let s=0;s<o.length;s++){let i=o[s]>>>e.space.x;if((i&b[e.space.f])!==n)continue;let u=i>>>e.space.f;r.set(u)}l.set(a)}),{documents:r,terms:l})}function Ye(e,t){let{documents:n,terms:r}=_(e),l=e.space.f+e.space.x;return t.forEach(a=>{let{occurrences:o}=e.terms[a];for(let s=0;s<o.length;s++)n.set(o[s]>>>l);r.set(a)}),{documents:n,terms:r}}function _(e){return{documents:new S(e.count.documents),terms:new S(e.terms.length)}}function Ze(e,t,n){let{compiler:r,fields:l,plugins:a=[]}=n,{input:o,scope:s,abort:i=!1}=q(a,(f,c)=>{var h;return(h=c.onTextQuery)==null?void 0:h.call(c,f,e,n)},t),u={items:[],query:{select:_(e),values:[]}},d=new Map;if(i===!1){let f=r(n),{select:c,values:h}=f(o,e);typeof s<"u"&&V(c.documents,s);let p=new S(l.length),g=new Map;u.query={select:c,values:h},c.terms.forEach(m=>{z(p,0);for(let x=0;x<h.length;x++){let{field:v,value:w}=h[x];if(v==="*"){z(p,1);break}else if(w.get(m)){for(let E=0;E<l.length;E++)if(l[E].name===v){p.set(E);break}}}let{occurrences:y}=e.terms[m];for(let x=0;x<y.length;x++){let v=y[x],w=v>>>e.space.x,E=w>>>e.space.f;if(!c.documents.get(E))continue;let T=w&b[e.space.f];if(!p.get(T))continue;let F=g.get(w);typeof F>"u"&&g.set(w,F=new D(M()));let I=v&b[e.space.x];F.add(I,m)}}),c.documents.forEach(m=>{let y={id:m,matches:[]};u.items.push(y),d.set(m,y)}),g.forEach((m,y)=>{let x=y>>>e.space.f,v=y&b[e.space.f];d.get(x).matches.push({id:y,field:l[v].name,value:{text:m},score:0})})}return q(a,(f,c)=>{var h;return(h=c.onTextResult)==null?void 0:h.call(c,f,e,n)},u)}function $e(e,t=10){return e.length>1?1+e[e.length-1]-e[0]:t}function Xe(e,t,n,r=10){let l=[];e.value.text.forEach((s,i)=>{for(let u=0;u<t.data.length;u++){let{start:d,end:f}=t.data[u];d<=i&&i<f&&l.push({index:s,value:u})}}),l.sort((s,i)=>s.index-i.index);let a=l.slice(0,1),o=0;for(let s=0;s<l.length-1;s++){let i=l[s],u=l[s+1],d;if(u.index-i.index>r||u.value===i.value)d=a.map(({index:f})=>f),a=[l[s+1]];else{for(let f=0;f<a.length;f++){let c=a[f];if(c.value===u.value){if(i.index-c.index>u.index-i.index){let h=a.splice(f+1);d=a.map(({index:p})=>p),a=[...h,l[s+1]]}else d=a.map(({index:h})=>h),a=[l[s+1]];break}}typeof d>"u"&&a.push(l[s+1])}if(typeof d<"u"){let f=n(d,o++);if(typeof f<"u")return f}}if(a.length)return n(a.map(({index:s})=>s),o)}function et(e){let{transform:t,parser:n,fields:r}=e,l=n(e);return(a,o)=>{if(_e(a))return a;typeof a=="string"&&(a=l(a));let s=[_(o)],i=[],u=0;return H(a,({type:d,data:f})=>{switch(d){case"value":let c=f.value;if(typeof c=="string"){let p=new D(M()),g=o.index.get(t(c));typeof g<"u"&&p.add(g,1),c=p}if(f.field==="*")s[u++]=Ye(o,c);else{let p=r.findIndex(({name:g})=>g===f.field);s[u++]=We(o,c,p)}i.push(Q(R({},f),{value:c}));break;case"operator":let h=u-f.operands.length;switch(f.operator){case"or":for(;u>h+1&&u--;)A(s[h].documents,s[u].documents),A(s[h].terms,s[u].terms);break;case"and":for(;u>h+1&&u--;)V(s[h].documents,s[u].documents),A(s[h].terms,s[u].terms);break;case"not":for(ae(s[h].documents),z(s[h].terms,0);u>h+1&&u--;)le(s[h].documents,s[u].documents)}}}),{select:s[0],values:i}}}function tt(e,t){return H(e,(n,r,l)=>{if(n.type!=="value")return;let a=t(n.data,r,l);if(typeof a<"u")return a})}function ue(e){if(e.length===0)return[];let t=[],n=[];for(let a=0;a<e.length;a++){let{start:o,end:s}=e[a];n.push({index:o,value:a}),n.push({index:s,value:a})}n.sort((a,o)=>a.index-o.index);let r=new Set([n[0].value]),l=n[0].index;for(let a=1;a<n.length;a++){let{index:o,value:s}=n[a];if(r.size&&l<o){let i=s;r.forEach(u=>{e[u].start>l||e[u].end<o||e[i].start!==e[u].start&&e[i].end!==e[u].end&&(i=u)}),t.push({start:l,end:o,value:e[i].value})}l=o,r.has(s)?r.delete(s):r.add(s)}return t}function fe(e){let t=[];for(let n=0;n<e.values.length;n++){let{value:r}=e.values[n];Ae(r,({start:l,end:a})=>{t.push({start:l,end:a,value:n})})}return new J(ue(t))}function nt(e,t="or",n){let{separator:r}=e;return n!=null||(n=l=>({field:"*",value:l.value})),l=>{let a=[];return ie(l,r,o=>{let s=n(o);typeof s<"u"&&a.push({type:"value",data:s})}),{type:"operator",data:{operator:t,operands:a}}}}function rt(e,t){return k(this,null,function*(){let n=yield ee(t),r=yield Fe(n,(a,o)=>{var s;return(s=o.onTextOptions)==null?void 0:s.call(o,a,e)},Q(R({},t),{plugins:n})),l=yield Je(e,r);return P("text",a=>{if(a.type!=="text")throw new C("unsupported");return{type:a.type,data:Ze(l,a.data,r)}})})}function O(e){return{name:e.name,data:e.data,onTextOptions:e.onTextOptions,onTextInput:e.onTextInput,onTextTokens:e.onTextTokens,onTextStore:e.onTextStore,onTextQuery:e.onTextQuery,onTextResult:e.onTextResult}}function lt(e){let{handlers:t}=e,n,r=new Map;return Ve({name:"aggregation",onFilterStore(l,a){for(let o=0;o<t.length;o++){let s=t[o](l,a);r.set(s.name,s)}},onFilterQuery(l){var a,o;n=(o=(a=l.aggregation)==null?void 0:a.input)!=null?o:[]},onFilterResult(l){let{select:a}=l.query;l.aggregations=[];for(let o of n){let s=r.get(o.type);if(typeof s>"u")continue;let i=!0;a.documents.forEach(u=>{i=!1}),i&&z(a.documents,1),l.aggregations.push(s(o,a))}}})}function at(e={}){let{empty:t=!1,limit:n}=e;return(r,{fields:l})=>{let a=r.space.f+r.space.x;return P("term",({type:o,data:s},{documents:i})=>{if(o!=="term")throw new C("unsupported");let u=l.findIndex(({name:f})=>f===s.field),d=je(r,u,f=>{let c=0,{occurrences:h}=f;for(let p=0;p<h.length;p++)i.get(h[p]>>>a)&&c++;if(!(t===!1&&c===0))return{value:f.value,count:c}},R(R({},n),s.limit));return{type:o,data:{field:s.field,value:d}}})}}function ot(e,t="prefix"){return{type:t,data:e}}function st(e){return typeof e=="object"&&"type"in e&&typeof e.type=="string"&&"data"in e&&typeof e.data=="string"}function it(e,t={}){var i;let{prefix:n=2,filter:r=[]}=t,l=e.terms,a=new Map,o=Oe(l.length),s=M();for(let u=0;u<l.length;u++){let d=l[u];se(d,(c,h)=>{var p;return a.set(c,(p=a.get(c))!=null?p:u),h===n||void 0});let f=u?l[u-1]:"";o[u]=Ke(f,d)}for(let u=0;u<r.length;u++){let d=r[u],f=(i=e.index)==null?void 0:i.get(d);typeof f<"u"&&s.push(f)}return s.sort((u,d)=>u-d),{terms:l,index:a,cover:o,exact:s}}function ut(e,t){let n="",r=-1,l=-1;if(se(t,s=>{let i=e.index.get(s);if(typeof i>"u")return!0;n=s,r=i}),r!==-1)for(let s=n.length;s<t.length;){let i=e.terms[r];if(i.length===s)if(++r===e.terms.length){r=-1;break}else continue;if(i.charCodeAt(s)===t.charCodeAt(s))s++;else if(e.terms.length===++r||e.cover[r]<s){r=-1;break}}if(r===-1)return;for(l=r+1;l<e.terms.length&&!(e.cover[l]<t.length);l++);let a=[],o=e.exact.filter(s=>s>r&&s<l);for(let s=0;s<o.length;s++)r<o[s]&&a.push({start:r,end:o[s]-1,value:1}),r=o[s]+1;return r<=l&&a.push({start:r,end:l,value:1}),new J(a)}function ft(e={}){return O({name:"expansion",onTextStore(t,n){var l,a;let{transform:r}=n;(a=this.data)!=null||(this.data=it({terms:t.terms.map(({value:o})=>o),index:t.index},{prefix:e.prefix,filter:(l=e.filter)==null?void 0:l.map(r)}))},onTextQuery(t,n,r){let{transform:l,parser:a}=r;if(typeof t.input=="string")t.input=a(r)(t.input);else if(!Ue(t.input))return;tt(t.input,o=>{var i;let s=o.value;if(st(s))s=l(s.data);else return;o.value=(i=ut(this.data,s))!=null?i:s})}})}function ct(e){let t=Q(R({},e),{plugins:[]}),n,r,l;return O({name:"filter",onTextOptions(o,s){return k(this,null,function*(){t.plugins=yield ee(e),l=yield Se(s,t)})},onTextQuery(o){typeof o.filter<"u"&&(n=o.filter,r!=null||(r=oe(t)),n.input=r(n.input,l),o.scope=n.input.select.documents)},onTextResult(o){if(typeof n<"u"){let s=!0;o.query.select.documents.forEach(u=>{s=!1}),s||(n.scope=o.query.select.documents);let i=De(l,n,t);o.aggregations=i.aggregations,n=void 0}}})}function dt(){return{tables:new Map}}function ht(e,t={}){let{count:n}=t;return P("term",r=>{let l=fe(r);return(a,o)=>{let s=[];return a.value.text.forEach((i,u)=>{let d=o[i]>>>10,f=o[i]&b[10];for(let p=0;p<l.data.length;p++){let{start:g,end:m}=l.data[p];if(g<=u&&u<m){u=l.data[p].value;break}}let c=d,h=d+f;s.push({start:c,end:h,value:u})}),s.sort((i,u)=>i.start-u.start),{ranges:ue(s).slice(0,n)}}})}function pt(e){let t,n;return O({name:"highlight",data:dt(),onTextInput(r,l){let{tables:a}=this.data;a.set(l,n=M())},onTextTokens(r){for(let l=0;l<r.length;l++){let{index:a,start:o,end:s}=r[l];n[a]=o<<10|s-o}},onTextStore(r){t=e.handler(r)},onTextResult(r){let{tables:l}=this.data,a=t(r.query);X(r,o=>{let s=l.get(o.id);if(o.value.highlight)return;let i=a(o,s);o.value=Q(R({},o.value),{highlight:i})})}})}function gt(){return{directives:[]}}function ce(...e){return(t,n)=>{for(let r=0;r<e.length;r++){let l=e[r](t,n);if(l!==0)return l}return 0}}function mt(e){let{comparators:t}=e;return P("match",(n,{type:r,data:l})=>{if(r!=="match")throw new C("unsupported");let a=xt(e),o=ce(...t.map(s=>s(n)));return $(n,({matches:s})=>void s.sort(a)),(s,i)=>{let u=Math.min(s.matches.length,i.matches.length);for(let d=0,f=0;d<u;d++)if(f=a(s.matches[d],i.matches[d]),f!==0||(f=o(s.matches[d],i.matches[d]),f!==0))return f;return i.matches.length-s.matches.length}})}function xt(e){var a;let{fields:t,direction:n}=e,r=n==="ascending"?1:-1,l=new Map;for(let o=0;o<t.length;o++){let{name:s,meta:i}=t[o];l.set(s,(a=i.weight)!=null?a:1)}return(o,s)=>r*(l.get(o.field)-l.get(s.field))}function yt(e,t={}){let n=fe(e.query),r=G(Xe),l=G($e);return(a,o)=>{let s=r(a,n,f=>f),i=r(o,n,f=>f);if(s.length!==i.length)return i.length-s.length;let u=l(s),d=l(i);return u!==d?u-d:s[0]!==i[0]?s[0]-i[0]:0}}function vt(e){let t=new Map;return O({name:"order",data:gt(),onTextOptions(r,l){return k(this,null,function*(){for(let a=0;a<e.handlers.length;a++){let o=yield e.handlers[a](r,l);t.set(o.name,o)}})},onTextQuery(r){var l,a,o;this.data.directives=(o=(a=r.order)!=null?a:(l=e.defaults)==null?void 0:l.order)!=null?o:[]},onTextResult(r){let{directives:l}=this.data,a=[];for(let o=0;o<l.length;o++){let s=l[o],i=t.get(s.type);if(typeof i>"u")throw new C("unknown");a.push(i(r,s))}r.items.sort(ce(...a))}})}function wt(e){let t=e.handler();return O({name:"pagination",onTextQuery(n){return t.onQuery(n,e)},onTextResult(n){return t.onResult(n,e)}})}function Tt(e){let{id:t,size:n=10,from:r=0}=e;if(r-n>=0)return{id:t,size:n,from:r-n}}function bt(e,t){let{id:n,size:r=10,from:l=0}=e;if(l+r<t)return{id:n,size:r,from:l+r}}function Et(){return{query:null,result:null}}function Mt(e={}){let{cache:t=Et(),expires:n=1/0}=e;return{data:t,onQuery(r,{size:l=10}){var s,i,u,d;let a=(u=(i=(s=t.query)==null?void 0:s.page)==null?void 0:i.id)!=null?u:0,o=Date.now()-a<n;t.query=Object.assign({},r),t.result&&((d=r.page)==null?void 0:d.id)===a&&o?r.abort=!0:(t.query.page={id:Date.now(),size:l,from:0},t.result=null)},onResult(r){var o;let l=t.query.page;(o=t.result)!=null||(t.result=r),r=Object.assign({},t.result);let a=t.result.items.length;return r.pagination={total:a,prev:Tt(l),next:bt(l,a)},r.items=t.result.items.slice(l.from,l.from+l.size),r}}}var Z=null;self.onmessage=e=>k(null,null,function*(){let t=e.data;switch(t.type){case 0:Z=yield rt(t.data.items,{separator:He(t.data.config.separator),transform:G(Be),parser:r=>nt(r,"and",l=>({field:"*",value:ot(l.value),range:{start:l.start,end:l.end,value:l.index}})),compiler:et,fields:[j("title",r=>r.title,{weight:3}),j("text",r=>r.text),j("path",r=>r.path,{weight:2})],plugins:[ft(),ct({compiler:oe,fields:[j("tags",r=>r.tags)],plugins:[lt({handlers:[at()]})]}),vt({handlers:[r=>mt({fields:r.fields,comparators:[yt]})],defaults:{order:[{type:"match",data:{field:"*"}}]}}),()=>O({onTextResult(r){r.total=r.items.length}}),wt({handler:Mt,size:10}),pt({handler:r=>ht(r)}),()=>O({onTextResult(r){let{query:l}=r,a=l.values.map(({range:o})=>{var s,i;return((s=o==null?void 0:o.end)!=null?s:0)-((i=o==null?void 0:o.start)!=null?i:0)});X(r,o=>{var s;(s=o.value.highlight)==null||s.ranges.forEach(i=>{i.value=a[i.value]})})}})]}),self.postMessage({type:1});break;case 2:let n=Z({type:"text",data:t.data});self.postMessage({type:3,data:n.data});break}})});var At=Me(he());})();
blob - /dev/null
blob + dd59f941f2027f8ac78a9e9087fe4a37b17b3ccb (mode 644)
--- /dev/null
+++ site/assets/stylesheets/classic/main.59dc44d5.min.css
@@ -0,0 +1 @@
+@charset "UTF-8";html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}@media (prefers-reduced-motion){*,:after,:before{transition:none!important}}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:initial;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:initial;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:#0000;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-scheme=default]{color-scheme:light}[data-md-color-scheme=default] img[src$="#gh-dark-mode-only"],[data-md-color-scheme=default] img[src$="#only-dark"]{display:none}:root,[data-md-color-scheme=default]{--md-hue:225deg;--md-default-fg-color:#000000de;--md-default-fg-color--light:#0000008a;--md-default-fg-color--lighter:#00000052;--md-default-fg-color--lightest:#00000012;--md-default-bg-color:#fff;--md-default-bg-color--light:#ffffffb3;--md-default-bg-color--lighter:#ffffff4d;--md-default-bg-color--lightest:#ffffff1f;--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-bg-color--light:#f5f5f5b3;--md-code-bg-color--lighter:#f5f5f54d;--md-code-hl-color:#4287ff;--md-code-hl-color--light:#4287ff1a;--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-del-color:#f5503d26;--md-typeset-ins-color:#0bd57026;--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-mark-color:#ffff0080;--md-typeset-table-color:#0000001f;--md-typeset-table-color--light:rgba(0,0,0,.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-warning-fg-color:#000000de;--md-warning-bg-color:#ff9;--md-footer-fg-color:#fff;--md-footer-fg-color--light:#ffffffb3;--md-footer-fg-color--lighter:#ffffff73;--md-footer-bg-color:#000000de;--md-footer-bg-color--dark:#00000052;--md-shadow-z1:0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #0000001a,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0003,0 0 0.05rem #00000059;--color-foreground:0 0 0;--color-background:255 255 255;--color-background-subtle:240 240 240;--color-backdrop:255 255 255}.md-icon svg{fill:currentcolor;display:block;height:1.2rem;width:1.2rem}.md-icon svg.lucide{fill:#0000;stroke:currentcolor}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}aside,body,input{font-feature-settings:"kern","liga";color:var(--md-typeset-color);font-family:var(--md-text-font-family)}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family)}:root{--md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m18 21-4-4h3V7h-3l4-4 4 4h-3v10h3M2 19v-2h10v2M2 13v-2h7v2M2 7V5h4v2z"/></svg>');--md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 17h3l-4 4-4-4h3V3h2M2 17h10v2H2M6 5v2H2V5m0 6h7v2H2z"/></svg>');--md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 7h3l-4-4-4 4h3v14h2M2 17h10v2H2M6 5v2H2V5m0 6h7v2H2z"/></svg>')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6;overflow-wrap:break-word}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin-bottom:1em;margin-top:1em}.md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset h5 code{text-transform:none}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a:focus code,.md-typeset a:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset a code{color:var(--md-typeset-a-color)}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr;font-variant-ligatures:none;transition:background-color 125ms}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;transition:color 125ms,background-color 125ms;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{cursor:help;text-decoration:none}.md-typeset [data-preview],.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light)}.md-typeset small{opacity:.75}[dir=ltr] .md-typeset sub,[dir=ltr] .md-typeset sup{margin-left:.078125em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.078125em}[dir=ltr] .md-typeset blockquote{padding-left:.6rem}[dir=rtl] .md-typeset blockquote{padding-right:.6rem}[dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.md-typeset ul{list-style-type:disc}.md-typeset ul[type]{list-style-type:revert-layer}[dir=ltr] .md-typeset ol,[dir=ltr] .md-typeset ul{margin-left:.625em}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em}.md-typeset ol,.md-typeset ul{padding:0}.md-typeset ol:not([hidden]),.md-typeset ul:not([hidden]){display:flow-root}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}.md-typeset ol ol ol ol,.md-typeset ul ol ol ol{list-style-type:upper-alpha}.md-typeset ol ol ol ol ol,.md-typeset ul ol ol ol ol{list-style-type:upper-roman}.md-typeset ol[type],.md-typeset ul[type]{list-style-type:revert-layer}[dir=ltr] .md-typeset ol li,[dir=ltr] .md-typeset ul li{margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}[dir=ltr] .md-typeset ol li ol,[dir=ltr] .md-typeset ol li ul,[dir=ltr] .md-typeset ul li ol,[dir=ltr] .md-typeset ul li ul{margin-left:.625em}[dir=rtl] .md-typeset ol li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ul li ul{margin-right:.625em}.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset dd{margin-left:1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em}.md-typeset dd{margin-bottom:1.5em;margin-top:1em}.md-typeset img,.md-typeset svg,.md-typeset video{height:auto;max-width:100%}.md-typeset img[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child{margin-top:0}.md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:fit-content}.md-typeset figure img{display:block;margin:0 auto}.md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.md-typeset iframe{max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) td>:first-child,.md-typeset table:not([class]) th>:first-child{margin-top:0}.md-typeset table:not([class]) td>:last-child,.md-typeset table:not([class]) th>:last-child{margin-bottom:0}.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) td:not([align]),[dir=rtl] .md-typeset table:not([class]) th:not([align]){text-align:right}.md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.md-typeset table:not([class]) tbody tr:hover{background-color:var(--md-typeset-table-color--light);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}[dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}[dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.984375em){.md-content__inner>pre{margin:1em -.8rem}.md-content__inner>pre code{border-radius:0}}.md-typeset .md-author{border-radius:100%;display:block;flex-shrink:0;height:1.6rem;overflow:hidden;position:relative;transition:color 125ms,transform 125ms;width:1.6rem}.md-typeset .md-author img{display:block}.md-typeset .md-author--more{background:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--lighter);font-size:.6rem;font-weight:700;line-height:1.6rem;text-align:center}.md-typeset .md-author--long{height:2.4rem;width:2.4rem}.md-typeset a.md-author{transform:scale(1)}.md-typeset a.md-author img{border-radius:100%;filter:grayscale(100%) opacity(75%);transition:filter 125ms}.md-typeset a.md-author:focus,.md-typeset a.md-author:hover{transform:scale(1.1);z-index:1}.md-typeset a.md-author:focus img,.md-typeset a.md-author:hover img{filter:grayscale(0)}.md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background-color:var(--md-warning-bg-color);color:var(--md-warning-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}[dir=ltr] .md-banner__button{float:right}[dir=rtl] .md-banner__button{float:left}.md-banner__button{color:inherit;cursor:pointer;transition:opacity .25s}.no-js .md-banner__button{display:none}.md-banner__button:hover{opacity:.7}html{scrollbar-gutter:stable;font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.984375em){body[data-md-scrolllock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12z"/></svg>')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:focus,.md-clipboard:hover{color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:focus code,.md-clipboard--inline:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}:root{--md-code-select-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 19h-4v2h4c1.1 0 2-.9 2-2v-4h-2m0-12h-4v2h4v4h2V5c0-1.1-.9-2-2-2M5 5h4V3H5c-1.1 0-2 .9-2 2v4h2m0 6H3v4c0 1.1.9 2 2 2h4v-2H5zm2-4h2v2H7zm4 0h2v2h-2zm4 0h2v2h-2zM7 7h2v2H7zm4 0h2v2h-2zm4 0h2v2h-2zm-8 8h2v2H7zm4 0h2v2h-2zm4 0h2v2h-2z"/></svg>');--md-code-copy-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12z"/></svg>')}.md-typeset .md-code__content{display:grid}.md-code__nav{background-color:var(--md-code-bg-color--lighter);border-radius:.1rem;display:flex;gap:.2rem;padding:.2rem;position:absolute;right:.25em;top:.25em;transition:background-color .25s;z-index:1}:hover>.md-code__nav{background-color:var(--md-code-bg-color--light)}.md-code__button{color:var(--md-default-fg-color--lightest);cursor:pointer;display:block;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;transition:color .25s;width:1.5em}:hover>*>.md-code__button{color:var(--md-default-fg-color--light)}.md-code__button.focus-visible,.md-code__button:hover{color:var(--md-accent-fg-color)}.md-code__button--active{color:var(--md-default-fg-color)!important}.md-code__button:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-code__button[data-md-type=select]:after{-webkit-mask-image:var(--md-code-select-icon);mask-image:var(--md-code-select-icon)}.md-code__button[data-md-type=copy]:after{-webkit-mask-image:var(--md-code-copy-icon);mask-image:var(--md-code-copy-icon)}@keyframes consent{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes overlay{0%{opacity:0}to{opacity:1}}.md-consent__overlay{animation:overlay .25s both;-webkit-backdrop-filter:blur(.1rem);backdrop-filter:blur(.1rem);background-color:#0000008a;height:100%;opacity:1;position:fixed;top:0;width:100%;z-index:5}.md-consent__inner{animation:consent .5s cubic-bezier(.1,.7,.1,1) both;background-color:var(--md-default-bg-color);border:0;border-radius:.1rem;bottom:0;box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;max-height:100%;overflow:auto;padding:0;position:fixed;width:100%;z-index:5}.md-consent__form{padding:.8rem}.md-consent__settings{display:none;margin:1em 0}input:checked+.md-consent__settings{display:block}.md-consent__controls{margin-bottom:.8rem}.md-typeset .md-consent__controls .md-button{display:inline}@media screen and (max-width:44.984375em){.md-typeset .md-consent__controls .md-button{display:block;margin-top:.4rem;text-align:center;width:100%}}.md-consent label{cursor:pointer}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){[dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner,[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}[dir=ltr] .md-content__button{float:right}[dir=rtl] .md-content__button{float:left}[dir=ltr] .md-content__button{margin-left:.4rem}[dir=rtl] .md-content__button{margin-right:.4rem}.md-content__button{margin:.4rem 0;padding:0}@media print{.md-content__button{display:none}}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}.md-content__button svg.lucide{fill:#0000;stroke:currentcolor}[dir=ltr] .md-dialog{right:.8rem}[dir=rtl] .md-dialog{left:.8rem}.md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.md-dialog{display:none}}.md-dialog--active{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-feedback{margin:2em 0 1em;text-align:center}.md-feedback fieldset{border:none;margin:0;padding:0}.md-feedback__title{font-weight:700;margin:1em auto}.md-feedback__inner{position:relative}.md-feedback__list{display:flex;flex-wrap:wrap;place-content:baseline center;position:relative}.md-feedback__list:hover .md-icon:not(:disabled){color:var(--md-default-fg-color--lighter)}:disabled .md-feedback__list{min-height:1.8rem}.md-feedback__icon{color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;margin:0 .1rem;transition:color 125ms}.md-feedback__icon:not(:disabled).md-icon:hover{color:var(--md-accent-fg-color)}.md-feedback__icon:disabled{color:var(--md-default-fg-color--lightest);pointer-events:none}.md-feedback__note{opacity:0;position:relative;transform:translateY(.4rem);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-feedback__note>*{margin:0 auto;max-width:16rem}:disabled .md-feedback__note{opacity:1;transform:translateY(0)}@media print{.md-feedback{display:none}}.md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{justify-content:space-between;overflow:auto;padding:.2rem}.md-footer__inner:not([hidden]){display:flex}.md-footer__link{align-items:end;display:flex;flex-grow:0.01;margin-bottom:.4rem;margin-top:1rem;max-width:100%;outline-color:var(--md-accent-fg-color);overflow:hidden;transition:opacity .25s}.md-footer__link:focus,.md-footer__link:hover{opacity:.7}[dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.984375em){.md-footer__link--prev{flex-shrink:0}.md-footer__link--prev .md-footer__title{display:none}}[dir=ltr] .md-footer__link--next{margin-left:auto}[dir=rtl] .md-footer__link--next{margin-right:auto}.md-footer__link--next{text-align:right}[dir=rtl] .md-footer__link--next{text-align:left}.md-footer__title{flex-grow:1;font-size:.9rem;margin-bottom:.7rem;max-width:calc(100% - 2.4rem);padding:0 1rem;white-space:nowrap}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.64rem;opacity:.7}.md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-footer-fg-color)}.md-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-copyright{width:auto}}.md-copyright__highlight{color:var(--md-footer-fg-color--light)}.md-social{display:inline-flex;gap:.2rem;margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-social{padding:.6rem 0}}.md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-social__link:before{line-height:1.9}.md-social__link svg{fill:currentcolor;max-height:.8rem;vertical-align:-25%}.md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .md-input,[dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.md-typeset .md-input:focus,.md-typeset .md-input:hover{border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input--stretch{width:100%}.md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem #0000,0 .2rem .4rem #0000;color:var(--md-primary-bg-color);display:block;left:0;position:sticky;right:0;top:0;z-index:4}@media print{.md-header{display:none}}.md-header[hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.md-header--shadow{box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.md-header__inner{align-items:center;display:flex;padding:0 .2rem}.md-header__button{color:currentcolor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.234375em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo img,.md-header__button.md-logo svg{fill:currentcolor;display:block;height:1.2rem;width:auto}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;white-space:nowrap}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__topic:first-child{font-weight:700}[dir=ltr] .md-header__title{margin-left:1rem;margin-right:.4rem}[dir=rtl] .md-header__title{margin-left:.4rem;margin-right:1rem}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem}.md-header__title--active .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title--active .md-header__topic{transform:translateX(1.25rem)}.md-header__title--active .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}[data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.md-header__option>input{bottom:0}.md-header__source{display:none}@media screen and (min-width:60em){[dir=ltr] .md-header__source{margin-left:1rem}[dir=rtl] .md-header__source{margin-right:1rem}.md-header__source{display:block;max-width:11.7rem;width:11.7rem}}@media screen and (min-width:76.25em){[dir=ltr] .md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}.md-meta{color:var(--md-default-fg-color--light);font-size:.7rem;line-height:1.3}.md-meta__list{display:inline-flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.md-meta__item:not(:last-child):after{content:"·";margin-left:.2rem;margin-right:.2rem}.md-meta__link{color:var(--md-typeset-a-color)}.md-meta__link:focus,.md-meta__link:hover{color:var(--md-accent-fg-color)}.md-draft{background-color:#ff1744;border-radius:.125em;color:#fff;display:inline-block;font-weight:700;padding-left:.5714285714em;padding-right:.5714285714em}:root{--md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>');--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z"/></svg>');--md-toc-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 9h14V7H3zm0 4h14v-2H3zm0 4h14v-2H3zm16 0h2v-2h-2zm0-10v2h2V7zm0 6h2v-2h-2z"/></svg>')}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{color:var(--md-default-fg-color--light);display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{height:100%;width:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__list{list-style:none;margin:0;padding:0}.md-nav__link{align-items:flex-start;display:flex;gap:.4rem;margin-top:.625em;scroll-snap-align:start;transition:color 125ms}.md-nav__link--passed,.md-nav__link--passed code{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active,.md-nav__item .md-nav__link--active code{color:var(--md-typeset-a-color)}.md-nav__link .md-ellipsis{position:relative}.md-nav__link .md-ellipsis code{word-break:normal}[dir=ltr] .md-nav__link .md-icon:last-child{margin-left:auto}[dir=rtl] .md-nav__link .md-icon:last-child{margin-right:auto}.md-nav__link .md-typeset{font-size:.7rem;line-height:1.3}.md-nav__link svg{fill:currentcolor;flex-shrink:0;height:1.3em;position:relative;width:1.3em}.md-nav__link svg.lucide{fill:#0000;stroke:currentcolor}.md-nav__link[for]:focus,.md-nav__link[for]:hover,.md-nav__link[href]:focus,.md-nav__link[href]:hover{color:var(--md-accent-fg-color);cursor:pointer}.md-nav__link[for]:focus code,.md-nav__link[for]:hover code,.md-nav__link[href]:focus code,.md-nav__link[href]:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-nav--primary .md-nav__link[for=__toc]{display:none}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentcolor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__container>.md-nav__link{margin-top:0}.md-nav__container>.md-nav__link:first-child{flex-grow:1;min-width:0}.md-nav__icon{flex-shrink:0}.md-nav__source{display:none}@media screen and (max-width:76.234375em){.md-nav--primary,.md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.md-nav--primary .md-nav__item,.md-nav--primary .md-nav__title{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}[dir=ltr] .md-nav--primary .md-nav__title .md-nav__icon{left:.4rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem}.md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}.md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);font-weight:700}.md-nav--primary .md-nav__title .md-logo{display:block;left:.2rem;margin:.2rem;padding:.4rem;position:absolute;right:.2rem;top:.2rem}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem}.md-nav--primary .md-nav__link svg{margin-top:.1em}.md-nav--primary .md-nav__link>.md-nav__link{padding:0}[dir=ltr] .md-nav--primary .md-nav__link .md-nav__icon{margin-right:-.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{margin-left:-.2rem}.md-nav--primary .md-nav__link .md-nav__icon{font-size:1.2rem;height:1.2rem;width:1.2rem}.md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav{background-color:initial;position:static}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem}.md-nav--secondary{background-color:initial}.md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width:59.984375em){.md-nav--primary .md-nav__link[for=__toc]{display:flex}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.234375em){.md-nav--integrated .md-nav__link[for=__toc]{display:flex}.md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.md-nav{margin-bottom:-.4rem}.md-nav--secondary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:sticky;top:0;z-index:1}.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}[dir=ltr] .md-nav--secondary .md-nav__list{padding-left:.6rem}[dir=rtl] .md-nav--secondary .md-nav__list{padding-right:.6rem}.md-nav--secondary .md-nav__list{padding-bottom:.4rem}[dir=ltr] .md-nav--secondary .md-nav__item>.md-nav__link{margin-right:.4rem}[dir=rtl] .md-nav--secondary .md-nav__item>.md-nav__link{margin-left:.4rem}}@media screen and (min-width:76.25em){.md-nav{margin-bottom:-.4rem;transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav--primary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:sticky;top:0;z-index:1}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon{display:none}[dir=ltr] .md-nav--primary .md-nav__list{padding-left:.6rem}[dir=rtl] .md-nav--primary .md-nav__list{padding-right:.6rem}.md-nav--primary .md-nav__list{padding-bottom:.4rem}[dir=ltr] .md-nav--primary .md-nav__item>.md-nav__link{margin-right:.4rem}[dir=rtl] .md-nav--primary .md-nav__item>.md-nav__link{margin-left:.4rem}.md-nav__toggle~.md-nav{display:grid;grid-template-rows:minmax(.4rem,0fr);opacity:0;transition:grid-template-rows .25s cubic-bezier(.86,0,.07,1),opacity .25s,visibility 0ms .25s;visibility:collapse}.md-nav__toggle~.md-nav>.md-nav__list{overflow:hidden}.md-nav__toggle.md-toggle--indeterminate~.md-nav,.md-nav__toggle:checked~.md-nav{grid-template-rows:minmax(.4rem,1fr);opacity:1;transition:grid-template-rows .25s cubic-bezier(.86,0,.07,1),opacity .15s .1s,visibility 0ms;visibility:visible}.md-nav__toggle.md-toggle--indeterminate~.md-nav{transition:none}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--section{display:block;margin:1.25em 0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700}.md-nav__item--section>.md-nav__link[for]{color:var(--md-default-fg-color--light)}.md-nav__item--section>.md-nav__link:not(.md-nav__container){pointer-events:none}.md-nav__item--section>.md-nav__link .md-icon,.md-nav__item--section>.md-nav__link>[for]{display:none}[dir=ltr] .md-nav__item--section>.md-nav{margin-left:-.6rem}[dir=rtl] .md-nav__item--section>.md-nav{margin-right:-.6rem}.md-nav__item--section>.md-nav{display:block;opacity:1;visibility:visible}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav__icon{border-radius:100%;height:.9rem;transition:background-color .25s;width:.9rem}.md-nav__icon:hover{background-color:var(--md-accent-fg-color--transparent)}.md-nav__icon:after{background-color:currentcolor;border-radius:100%;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:transform .25s;vertical-align:-.1rem;width:100%}[dir=rtl] .md-nav__icon:after{transform:rotate(180deg)}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon:after,.md-nav__item--nested .md-toggle--indeterminate~.md-nav__link .md-nav__icon:after{transform:rotate(90deg)}.md-nav--lifted>.md-nav__list>.md-nav__item,.md-nav--lifted>.md-nav__title{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);margin-top:0;position:sticky;top:0;z-index:1}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link:not(.md-nav__container){pointer-events:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active.md-nav__item--section{margin:0}[dir=ltr] .md-nav--lifted>.md-nav__list>.md-nav__item>.md-nav:not(.md-nav--secondary){margin-left:-.6rem}[dir=rtl] .md-nav--lifted>.md-nav__list>.md-nav__item>.md-nav:not(.md-nav--secondary){margin-right:-.6rem}.md-nav--lifted>.md-nav__list>.md-nav__item>[for]{color:var(--md-default-fg-color--light)}.md-nav--lifted .md-nav[data-md-level="1"]{grid-template-rows:minmax(.4rem,1fr);opacity:1;visibility:visible}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-primary-fg-color)}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-primary-fg-color)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:1.25em;opacity:1;visibility:visible}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__list{overflow:visible;padding-bottom:0}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}}.md-pagination{font-size:.8rem;font-weight:700;gap:.4rem}.md-pagination,.md-pagination>*{align-items:center;display:flex;justify-content:center}.md-pagination>*{border-radius:.2rem;height:1.8rem;min-width:1.8rem;text-align:center}.md-pagination__current{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light)}.md-pagination__link{transition:color 125ms,background-color 125ms}.md-pagination__link:focus,.md-pagination__link:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-pagination__link:focus svg,.md-pagination__link:hover svg{color:var(--md-accent-fg-color)}.md-pagination__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-pagination__link svg{fill:currentcolor;color:var(--md-default-fg-color--lighter);display:block;max-height:100%;width:1.2rem}:root{--md-path-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z"/></svg>')}.md-path{font-size:.7rem;margin:0 .8rem;overflow:auto;padding-top:1.2rem}.md-path:not([hidden]){display:block}@media screen and (min-width:76.25em){.md-path{margin:0 1.2rem}}.md-path__list{align-items:center;display:flex;gap:.2rem;list-style:none;margin:0;padding:0}.md-path__item:not(:first-child){display:inline-flex;gap:.2rem;white-space:nowrap}.md-path__item:not(:first-child):before{background-color:var(--md-default-fg-color--lighter);content:"";display:inline;height:.8rem;-webkit-mask-image:var(--md-path-icon);mask-image:var(--md-path-icon);width:.8rem}.md-path__link{align-items:center;color:var(--md-default-fg-color--light);display:flex}.md-path__link:focus,.md-path__link:hover{color:var(--md-accent-fg-color)}:root{--md-post-pin-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16 12V4h1V2H7v2h1v8l-2 2v2h5.2v6h1.6v-6H18v-2z"/></svg>')}.md-post__back{border-bottom:.05rem solid var(--md-default-fg-color--lightest);margin-bottom:1.2rem;padding-bottom:1.2rem}@media screen and (max-width:76.234375em){.md-post__back{display:none}}[dir=rtl] .md-post__back svg{transform:scaleX(-1)}.md-post__authors{display:flex;flex-direction:column;gap:.6rem;margin:0 .6rem 1.2rem}.md-post .md-post__meta a{transition:color 125ms}.md-post .md-post__meta a:focus,.md-post .md-post__meta a:hover{color:var(--md-accent-fg-color)}.md-post__title{color:var(--md-default-fg-color--light);font-weight:700}.md-post--excerpt{margin-bottom:3.2rem}.md-post--excerpt .md-post__header{align-items:center;display:flex;gap:.6rem;min-height:1.6rem}.md-post--excerpt .md-post__authors{align-items:center;display:inline-flex;flex-direction:row;gap:.2rem;margin:0;min-height:2.4rem}[dir=ltr] .md-post--excerpt .md-post__meta .md-meta__list{margin-right:.4rem}[dir=rtl] .md-post--excerpt .md-post__meta .md-meta__list{margin-left:.4rem}.md-post--excerpt .md-post__content>:first-child{--md-scroll-margin:6rem;margin-top:0}.md-post>.md-nav--secondary{margin:1em 0}.md-pin{background:var(--md-default-fg-color--lightest);border-radius:1rem;margin-top:-.05rem;padding:.2rem}.md-pin:after{background-color:currentcolor;content:"";display:block;height:.6rem;margin:0 auto;-webkit-mask-image:var(--md-post-pin-icon);mask-image:var(--md-post-pin-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.6rem}.md-profile{align-items:center;display:flex;font-size:.7rem;gap:.6rem;line-height:1.4;width:100%}.md-profile__description{flex-grow:1}.md-content--post{display:flex}@media screen and (max-width:76.234375em){.md-content--post{flex-flow:column-reverse}}.md-content--post>.md-content__inner{flex-grow:1;min-width:0}@media screen and (min-width:76.25em){[dir=ltr] .md-content--post>.md-content__inner{margin-left:1.2rem}[dir=rtl] .md-content--post>.md-content__inner{margin-right:1.2rem}}@media screen and (max-width:76.234375em){.md-sidebar.md-sidebar--post{padding:0;position:static;width:100%}.md-sidebar.md-sidebar--post .md-sidebar__scrollwrap{overflow:visible}.md-sidebar.md-sidebar--post .md-sidebar__inner{padding:0}.md-sidebar.md-sidebar--post .md-post__meta{margin-left:.6rem;margin-right:.6rem}.md-sidebar.md-sidebar--post .md-nav__item{border:none;display:inline}.md-sidebar.md-sidebar--post .md-nav__list{display:inline-flex;flex-wrap:wrap;gap:.6rem;padding-bottom:.6rem;padding-top:.6rem}.md-sidebar.md-sidebar--post .md-nav__link{padding:0}.md-sidebar.md-sidebar--post .md-nav{height:auto;margin-bottom:0;position:static}}:root{--md-progress-value:0;--md-progress-delay:400ms}.md-progress{background:var(--md-primary-bg-color);height:.075rem;opacity:min(clamp(0,var(--md-progress-value),1),clamp(0,100 - var(--md-progress-value),1));position:fixed;top:0;transform:scaleX(calc(var(--md-progress-value)*1%));transform-origin:left;transition:transform .5s cubic-bezier(.19,1,.22,1),opacity .25s var(--md-progress-delay);width:100%;z-index:4}:root{--md-search-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>')}.md-search{position:relative}@media screen and (min-width:60em){.md-search{padding:.2rem 0}}@media screen and (max-width:59.984375em){.md-search{display:none}}.no-js .md-search{display:none}[dir=ltr] .md-search__button{padding-left:1.9rem;padding-right:2.2rem}[dir=rtl] .md-search__button{padding-left:2.2rem;padding-right:1.9rem}.md-search__button{background:var(--md-primary-fg-color);color:var(--md-primary-bg-color);cursor:pointer;font-size:.7rem;position:relative;text-align:left}@media screen and (min-width:45em){.md-search__button{background-color:#00000042;border-radius:.2rem;height:1.6rem;transition:background-color .4s,color .4s;width:8.9rem}.md-search__button:focus,.md-search__button:hover{background-color:#ffffff1f;color:var(--md-primary-bg-color)}}[dir=ltr] .md-search__button:before{left:0}[dir=rtl] .md-search__button:before{right:0}.md-search__button:before{background-color:var(--md-primary-bg-color);content:"";height:1rem;margin-left:.5rem;-webkit-mask-image:var(--md-search-icon);mask-image:var(--md-search-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.3rem;width:1rem}.md-search__button:after{background:#00000042;border-radius:.1rem;content:"Ctrl+K";display:block;font-size:.6rem;padding:.1rem .2rem;position:absolute;right:.6rem;top:.35rem}[data-platform^=Mac] .md-search__button:after{content:"⌘K"}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:focus-within .md-select__inner,.md-select:hover .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid #0000;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid #0000;border-right:.2rem solid #0000;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}[dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.md-select__link:focus,.md-select__link:hover{color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.234375em){[dir=ltr] .md-sidebar--primary{left:-12.1rem}[dir=rtl] .md-sidebar--primary{right:-12.1rem}.md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:5}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}.md-header--lifted~.md-container .md-sidebar{top:4.8rem}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) #0000}@media screen and (min-width:60em){.md-sidebar__scrollwrap{scrollbar-gutter:stable;scrollbar-width:thin}}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap:focus-within,.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb:hover,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@supports selector(::-webkit-scrollbar){.md-sidebar__scrollwrap{scrollbar-gutter:auto}[dir=ltr] .md-sidebar__inner{padding-right:calc(100% - 11.5rem)}[dir=rtl] .md-sidebar__inner{padding-left:calc(100% - 11.5rem)}}@media screen and (max-width:76.234375em){.md-overlay{background-color:#0000008a;height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:5}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@keyframes facts{0%{height:0}to{height:.65rem}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0M5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0m6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5m-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0"/></svg>');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.5 2.5 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.5 2.5 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.25.25 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"/></svg>');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25m0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41z"/></svg>');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M1 7.775V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6.25-6.25A1.75 1.75 0 0 1 1 7.775m1.5 0c0 .066.026.13.073.177l6.25 6.25a.25.25 0 0 0 .354 0l5.025-5.025a.25.25 0 0 0 0-.354l-6.25-6.25a.25.25 0 0 0-.177-.073H2.75a.25.25 0 0 0-.25.25ZM6 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2"/></svg>')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}[dir=ltr] .md-source__icon svg{margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem}.md-source__icon svg{margin-top:.6rem}[dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}[dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}[dir=ltr] .md-source__repository{margin-left:.6rem}[dir=rtl] .md-source__repository{margin-right:.6rem}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{display:flex;font-size:.55rem;gap:.4rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0;width:100%}.md-source__repository--active .md-source__facts{animation:facts .25s ease-in}.md-source__fact{overflow:hidden;text-overflow:ellipsis}.md-source__repository--active .md-source__fact{animation:fact .4s ease-out}[dir=ltr] .md-source__fact:before{margin-right:.1rem}[dir=rtl] .md-source__fact:before{margin-left:.1rem}.md-source__fact:before{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}.md-source__fact:nth-child(1n+2){flex-shrink:0}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.md-source-file{margin:1em 0}[dir=ltr] .md-source-file__fact{margin-right:.6rem}[dir=rtl] .md-source-file__fact{margin-left:.6rem}.md-source-file__fact{align-items:center;color:var(--md-default-fg-color--light);display:inline-flex;font-size:.68rem;gap:.3rem}.md-source-file__fact .md-icon{flex-shrink:0;margin-bottom:.05rem}[dir=ltr] .md-source-file__fact .md-author{float:left}[dir=rtl] .md-source-file__fact .md-author{float:right}.md-source-file__fact .md-author{margin-right:.2rem}.md-source-file__fact svg{width:.9rem}:root{--md-status:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11 9h2V7h-2m1 13c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m-1 15h2v-6h-2z"/></svg>');--md-status--new:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m23 12-2.44-2.78.34-3.68-3.61-.82-1.89-3.18L12 3 8.6 1.54 6.71 4.72l-3.61.81.34 3.68L1 12l2.44 2.78-.34 3.69 3.61.82 1.89 3.18L12 21l3.4 1.46 1.89-3.18 3.61-.82-.34-3.68zm-10 5h-2v-2h2zm0-4h-2V7h2z"/></svg>');--md-status--deprecated:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 3v1H4v2h1v13a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6h1V4h-5V3zm0 5h2v9H9zm4 0h2v9h-2z"/></svg>');--md-status--encrypted:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5zm0 6c1.4 0 2.8 1.1 2.8 2.5V11c.6 0 1.2.6 1.2 1.3v3.5c0 .6-.6 1.2-1.3 1.2H9.2c-.6 0-1.2-.6-1.2-1.3v-3.5c0-.6.6-1.2 1.2-1.2V9.5C9.2 8.1 10.6 7 12 7m0 1.2c-.8 0-1.5.5-1.5 1.3V11h3V9.5c0-.8-.7-1.3-1.5-1.3"/></svg>')}.md-status:after{background-color:var(--md-default-fg-color--light);content:"";display:inline-block;height:1.125em;-webkit-mask-image:var(--md-status);mask-image:var(--md-status);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-bottom;width:1.125em}.md-status:hover:after{background-color:currentcolor}.md-status--new:after{-webkit-mask-image:var(--md-status--new);mask-image:var(--md-status--new)}.md-status--deprecated:after{-webkit-mask-image:var(--md-status--deprecated);mask-image:var(--md-status--deprecated)}.md-status--encrypted:after{-webkit-mask-image:var(--md-status--encrypted);mask-image:var(--md-status--encrypted)}.md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);display:block;line-height:1.3;overflow:auto;width:100%;z-index:3}@media print{.md-tabs{display:none}}@media screen and (max-width:76.234375em){.md-tabs{display:none}}.md-tabs[hidden]{pointer-events:none}[dir=ltr] .md-tabs__list{margin-left:.2rem}[dir=rtl] .md-tabs__list{margin-right:.2rem}.md-tabs__list{contain:content;display:flex;list-style:none;margin:0;overflow:auto;padding:0;scrollbar-width:none;white-space:nowrap}.md-tabs__list::-webkit-scrollbar{display:none}.md-tabs__item{height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__item--active .md-tabs__link{color:inherit;opacity:1}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link:focus,.md-tabs__link:hover{color:inherit;opacity:1}[dir=ltr] .md-tabs__link svg{margin-right:.4rem}[dir=rtl] .md-tabs__link svg{margin-left:.4rem}.md-tabs__link svg{fill:currentcolor;height:1.3em}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}:root{--md-tag-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m5.41 21 .71-4h-4l.35-2h4l1.06-6h-4l.35-2h4l.71-4h2l-.71 4h6l.71-4h2l-.71 4h4l-.35 2h-4l-1.06 6h4l-.35 2h-4l-.71 4h-2l.71-4h-6l-.71 4zM9.53 9l-1.06 6h6l1.06-6z"/></svg>')}.md-typeset .md-tags:not([hidden]){display:inline-flex;flex-wrap:wrap;gap:.5em;margin-bottom:.75em;margin-top:-.125em}.md-typeset .md-tag{align-items:center;background:var(--md-default-fg-color--lightest);border-radius:2.4rem;display:inline-flex;font-size:.64rem;font-size:min(.8em,.64rem);font-weight:700;gap:.5em;letter-spacing:normal;line-height:1.6;padding:.3125em .78125em}.md-typeset .md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.md-typeset .md-tag[href]:focus,.md-typeset .md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[id]>.md-typeset .md-tag{vertical-align:text-top}.md-typeset .md-tag-shadow{opacity:.5}.md-typeset .md-tag-icon:before{background-color:var(--md-default-fg-color--lighter);content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-tag-icon);mask-image:var(--md-tag-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset .md-tag-icon[href]:focus:before,.md-typeset .md-tag-icon[href]:hover:before{background-color:var(--md-accent-bg-color)}@keyframes pulse{0%{transform:scale(.95)}75%{transform:scale(1)}to{transform:scale(.95)}}:root{--md-annotation-bg-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg>');--md-annotation-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 13h-4v4h-2v-4H7v-2h4V7h2v4h4m-5-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg>')}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);font-family:var(--md-text-font-family);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem);max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:var(--md-tooltip-y);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}.md-tooltip--active{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,z-index 0ms;z-index:2}.md-tooltip--inline{font-weight:700;-webkit-user-select:none;user-select:none;width:auto}.md-tooltip--inline:not(.md-tooltip--active){transform:translateY(.2rem) scale(.9)}.md-tooltip--inline .md-tooltip__inner{font-size:.5rem;padding:.2rem .4rem}[hidden]+.md-tooltip--inline{display:none}.focus-visible>.md-tooltip,.md-tooltip:target{outline:var(--md-accent-fg-color) auto}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner.md-typeset>:first-child{margin-top:0}.md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.md-annotation{font-style:normal;font-weight:400;outline:none;text-align:initial;vertical-align:text-bottom;white-space:normal}[dir=rtl] .md-annotation{direction:rtl}code .md-annotation{font-family:var(--md-code-font-family);font-size:inherit}.md-annotation:not([hidden]){display:inline-block;line-height:1.25}.md-annotation__index{border-radius:.01px;cursor:pointer;display:inline-block;margin-left:.4ch;margin-right:.4ch;outline:none;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;vertical-align:text-top;z-index:0}.md-annotation .md-annotation__index{transition:z-index .25s}@media screen{.md-annotation__index{width:2.2ch}[data-md-visible]>.md-annotation__index{animation:pulse 2s infinite}.md-annotation__index:before{background:var(--md-default-bg-color);-webkit-mask-image:var(--md-annotation-bg-icon);mask-image:var(--md-annotation-bg-icon)}.md-annotation__index:after,.md-annotation__index:before{content:"";height:2.2ch;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:-.1ch;width:2.2ch;z-index:-1}.md-annotation__index:after{background-color:var(--md-default-fg-color--lighter);-webkit-mask-image:var(--md-annotation-icon);mask-image:var(--md-annotation-icon);transform:scale(1.0001);transition:background-color .25s,transform .25s}.md-tooltip--active+.md-annotation__index:after{transform:rotate(45deg)}.md-tooltip--active+.md-annotation__index:after,:hover>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}}.md-tooltip--active+.md-annotation__index{animation-play-state:paused;transition-duration:0ms;z-index:2}.md-annotation__index [data-md-annotation-id]{display:inline-block}@media print{.md-annotation__index [data-md-annotation-id]{background:var(--md-default-fg-color--lighter);border-radius:2ch;color:var(--md-default-bg-color);font-weight:700;padding:0 .6ch;white-space:nowrap}.md-annotation__index [data-md-annotation-id]:after{content:attr(data-md-annotation-id)}}.md-typeset .md-annotation-list{counter-reset:annotation;list-style:none!important}.md-typeset .md-annotation-list li{position:relative}[dir=ltr] .md-typeset .md-annotation-list li:before{left:-2.125em}[dir=rtl] .md-typeset .md-annotation-list li:before{right:-2.125em}.md-typeset .md-annotation-list li:before{background:var(--md-default-fg-color--lighter);border-radius:2ch;color:var(--md-default-bg-color);content:counter(annotation);counter-increment:annotation;font-size:.8875em;font-weight:700;height:2ch;line-height:1.25;min-width:2ch;padding:0 .6ch;position:absolute;text-align:center;top:.25em}:root{--md-tooltip-width:20rem;--md-tooltip-tail:0.3rem}.md-tooltip2{-webkit-backface-visibility:hidden;backface-visibility:hidden;color:var(--md-default-fg-color);font-family:var(--md-text-font-family);opacity:0;pointer-events:none;position:absolute;top:calc(var(--md-tooltip-host-y) + var(--md-tooltip-y));transform:translateY(-.4rem);transform-origin:calc(var(--md-tooltip-host-x) + var(--md-tooltip-x)) 0;transition:transform 0ms .25s,opacity .25s,z-index .25s;width:100%;z-index:0}.md-tooltip2:before{border-left:var(--md-tooltip-tail) solid #0000;border-right:var(--md-tooltip-tail) solid #0000;content:"";display:block;left:clamp(1.5 * .8rem,var(--md-tooltip-host-x) + var(--md-tooltip-x) - var(--md-tooltip-tail),100vw - 2 * var(--md-tooltip-tail) - 1.5 * .8rem);position:absolute;z-index:1}.md-tooltip2--top:before{border-top:var(--md-tooltip-tail) solid var(--md-default-bg-color);bottom:calc(var(--md-tooltip-tail)*-1 + .025rem);filter:drop-shadow(0 1px 0 hsla(0,0%,0%,.05))}.md-tooltip2--bottom:before{border-bottom:var(--md-tooltip-tail) solid var(--md-default-bg-color);filter:drop-shadow(0 -1px 0 hsla(0,0%,0%,.05));top:calc(var(--md-tooltip-tail)*-1 + .025rem)}.md-tooltip2--active{opacity:1;transform:translateY(0);transition:transform .4s cubic-bezier(0,1,.5,1),opacity .25s,z-index 0ms;z-index:2}.md-tooltip2__inner{scrollbar-gutter:stable;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);left:clamp(.8rem,var(--md-tooltip-host-x) - .8rem,100vw - var(--md-tooltip-width) - .8rem);max-height:40vh;max-width:calc(100vw - 1.6rem);position:relative;scrollbar-width:thin}.md-tooltip2__inner::-webkit-scrollbar{height:.2rem;width:.2rem}.md-tooltip2__inner::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-tooltip2__inner::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}[role=dialog]>.md-tooltip2__inner{font-size:.64rem;overflow:auto;padding:0 .8rem;pointer-events:auto;width:var(--md-tooltip-width)}[role=dialog]>.md-tooltip2__inner:after,[role=dialog]>.md-tooltip2__inner:before{content:"";display:block;height:.8rem;position:sticky;width:100%;z-index:10}[role=dialog]>.md-tooltip2__inner:before{background:linear-gradient(var(--md-default-bg-color),#0000 75%);top:0}[role=dialog]>.md-tooltip2__inner:after{background:linear-gradient(#0000,var(--md-default-bg-color) 75%);bottom:0}[role=tooltip]>.md-tooltip2__inner{font-size:.5rem;font-weight:700;left:clamp(.8rem,var(--md-tooltip-host-x) + var(--md-tooltip-x) - var(--md-tooltip-width)/2,100vw - var(--md-tooltip-width) - .8rem);max-width:min(100vw - 2 * .8rem,400px);padding:.2rem .4rem;-webkit-user-select:none;user-select:none;width:fit-content}.md-tooltip2__inner.md-typeset>:first-child{margin-top:0}.md-tooltip2__inner.md-typeset>:last-child{margin-bottom:0}[dir=ltr] .md-top{margin-left:50%}[dir=rtl] .md-top{margin-right:50%}.md-top{background-color:var(--md-default-bg-color);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);cursor:pointer;display:block;font-size:.7rem;outline:none;padding:.4rem .8rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.md-top{display:none}}[dir=rtl] .md-top{transform:translate(50%)}.md-top[hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}[dir=rtl] .md-top[hidden]{transform:translate(50%,.2rem)}.md-top:focus,.md-top:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top svg{display:inline-block;vertical-align:-.5em}.md-top.lucide{fill:#0000;stroke:currentcolor}@keyframes hoverfix{0%{pointer-events:none}}:root{--md-version-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path fill="currentColor" d="M140.3 376.8c12.6 10.2 31.1 9.5 42.8-2.2l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301.4 192 288.5 192h-256c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 7 34.8l128 128z"/></svg>')}.md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}[dir=ltr] .md-version__current{margin-left:1.4rem;margin-right:.4rem}[dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.md-version__current{color:inherit;cursor:pointer;outline:none;position:relative;top:.05rem}[dir=ltr] .md-version__current:after{margin-left:.4rem}[dir=rtl] .md-version__current:after{margin-right:.4rem}.md-version__current:after{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.4rem}.md-version__alias{margin-left:.3rem;opacity:.7}.md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:3}.md-version:focus-within .md-version__list,.md-version:hover .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (hover:none),(pointer:coarse){.md-version:hover .md-version__list{animation:hoverfix .25s forwards}.md-version:focus-within .md-version__list{animation:none}}.md-version__item{line-height:1.8rem}[dir=ltr] .md-version__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.md-version__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}.md-version__link:focus,.md-version__link:hover{color:var(--md-accent-fg-color)}.md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m3.1 5.07c.14 0 .28.05.4.16l1.27 1.27c.23.22.23.57 0 .78l-1 1-2.05-2.05 1-1c.1-.11.24-.16.38-.16m-1.97 1.74 2.06 2.06-6.06 6.06H7.07v-2.06z"/></svg>');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 9H7V7h10m0 6H7v-2h10m-3 6H7v-2h7M12 3a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m7 0h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2"/></svg>');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg>');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17.66 11.2c-.23-.3-.51-.56-.77-.82-.67-.6-1.43-1.03-2.07-1.66C13.33 7.26 13 4.85 13.95 3c-.95.23-1.78.75-2.49 1.32-2.59 2.08-3.61 5.75-2.39 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.23.1-.47.04-.66-.12a.6.6 0 0 1-.14-.17c-1.13-1.43-1.31-3.48-.55-5.12C5.78 10 4.87 12.3 5 14.47c.06.5.12 1 .29 1.5.14.6.41 1.2.71 1.73 1.08 1.73 2.95 2.97 4.96 3.22 2.14.27 4.43-.12 6.07-1.6 1.83-1.66 2.47-4.32 1.53-6.6l-.13-.26c-.21-.46-.77-1.26-.77-1.26m-3.16 6.3c-.28.24-.74.5-1.1.6-1.12.4-2.24-.16-2.9-.82 1.19-.28 1.9-1.16 2.11-2.05.17-.8-.15-1.46-.28-2.23-.12-.74-.1-1.37.17-2.06.19.38.39.76.63 1.06.77 1 1.98 1.44 2.24 2.8.04.14.06.28.06.43.03.82-.33 1.72-.93 2.27"/></svg>');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 7 9 19l-5.5-5.5 1.41-1.41L9 16.17 19.59 5.59z"/></svg>');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m15.07 11.25-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 0 0-2-2 2 2 0 0 0-2 2H8a4 4 0 0 1 4-4 4 4 0 0 1 4 4 3.2 3.2 0 0 1-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10c0-5.53-4.5-10-10-10"/></svg>');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 14h-2V9h2m0 9h-2v-2h2M1 21h22L12 2z"/></svg>');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m11.5 20 4.86-9.73H13V4l-5 9.73h3.5zM12 2c2.75 0 5.1 1 7.05 2.95S22 9.25 22 12s-1 5.1-2.95 7.05S14.75 22 12 22s-5.1-1-7.05-2.95S2 14.75 2 12s1-5.1 2.95-7.05S9.25 2 12 2"/></svg>');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11 13h2v1h-2zm10-8v6c0 5.5-3.8 10.7-9 12-5.2-1.3-9-6.5-9-12V5l9-4zm-4 5h-2.2c-.2-.6-.6-1.1-1.1-1.5l1.2-1.2-.7-.7L12.8 8H12c-.2 0-.5 0-.7.1L9.9 6.6l-.8.8 1.2 1.2c-.5.3-.9.8-1.1 1.4H7v1h2v1H7v1h2v1H7v1h2.2c.4 1.2 1.5 2 2.8 2s2.4-.8 2.8-2H17v-1h-2v-1h2v-1h-2v-1h2zm-6 2h2v-1h-2z"/></svg>');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 2v2h1v14a4 4 0 0 0 4 4 4 4 0 0 0 4-4V4h1V2zm4 14c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1m2-4c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1m1-5h-4V4h4z"/></svg>');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 17h3l2-4V7h-6v6h3M6 17h3l2-4V7H5v6h3z"/></svg>')}.md-typeset .admonition,.md-typeset details{background-color:var(--md-admonition-bg-color);border:.075rem solid #448aff;border-radius:.2rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid;transition:box-shadow 125ms}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}.md-typeset .admonition:focus-within,.md-typeset details:focus-within{box-shadow:0 0 0 .2rem #448aff1a}.md-typeset .admonition>*,.md-typeset details>*{box-sizing:border-box}.md-typeset .admonition .admonition,.md-typeset .admonition details,.md-typeset details .admonition,.md-typeset details details{margin-bottom:1em;margin-top:1em}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition>.tabbed-set:only-child,.md-typeset details>.tabbed-set:only-child{margin-top:0}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{padding-left:2rem;padding-right:.6rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding-left:.6rem;padding-right:2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-left-width:.2rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-right-width:.2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset .admonition-title,.md-typeset summary{background-color:#448aff1a;border:none;font-weight:700;margin:0 -.6rem;padding-bottom:.4rem;padding-top:.4rem;position:relative}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}[dir=ltr] .md-typeset .admonition-title:before,[dir=ltr] .md-typeset summary:before{left:.6rem}[dir=rtl] .md-typeset .admonition-title:before,[dir=rtl] .md-typeset summary:before{right:.6rem}.md-typeset .admonition-title:before,.md-typeset summary:before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset .admonition-title code,.md-typeset summary code{box-shadow:0 0 0 .05rem var(--md-default-fg-color--lightest)}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .admonition.note:focus-within,.md-typeset details.note:focus-within{box-shadow:0 0 0 .2rem #448aff1a}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:#448aff1a}.md-typeset .note>.admonition-title:before,.md-typeset .note>summary:before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.md-typeset .note>.admonition-title:after,.md-typeset .note>summary:after{color:#448aff}.md-typeset .admonition.abstract,.md-typeset details.abstract{border-color:#00b0ff}.md-typeset .admonition.abstract:focus-within,.md-typeset details.abstract:focus-within{box-shadow:0 0 0 .2rem #00b0ff1a}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary{background-color:#00b0ff1a}.md-typeset .abstract>.admonition-title:before,.md-typeset .abstract>summary:before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.md-typeset .abstract>.admonition-title:after,.md-typeset .abstract>summary:after{color:#00b0ff}.md-typeset .admonition.info,.md-typeset details.info{border-color:#00b8d4}.md-typeset .admonition.info:focus-within,.md-typeset details.info:focus-within{box-shadow:0 0 0 .2rem #00b8d41a}.md-typeset .info>.admonition-title,.md-typeset .info>summary{background-color:#00b8d41a}.md-typeset .info>.admonition-title:before,.md-typeset .info>summary:before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.md-typeset .info>.admonition-title:after,.md-typeset .info>summary:after{color:#00b8d4}.md-typeset .admonition.tip,.md-typeset details.tip{border-color:#00bfa5}.md-typeset .admonition.tip:focus-within,.md-typeset details.tip:focus-within{box-shadow:0 0 0 .2rem #00bfa51a}.md-typeset .tip>.admonition-title,.md-typeset .tip>summary{background-color:#00bfa51a}.md-typeset .tip>.admonition-title:before,.md-typeset .tip>summary:before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.md-typeset .tip>.admonition-title:after,.md-typeset .tip>summary:after{color:#00bfa5}.md-typeset .admonition.success,.md-typeset details.success{border-color:#00c853}.md-typeset .admonition.success:focus-within,.md-typeset details.success:focus-within{box-shadow:0 0 0 .2rem #00c8531a}.md-typeset .success>.admonition-title,.md-typeset .success>summary{background-color:#00c8531a}.md-typeset .success>.admonition-title:before,.md-typeset .success>summary:before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.md-typeset .success>.admonition-title:after,.md-typeset .success>summary:after{color:#00c853}.md-typeset .admonition.question,.md-typeset details.question{border-color:#64dd17}.md-typeset .admonition.question:focus-within,.md-typeset details.question:focus-within{box-shadow:0 0 0 .2rem #64dd171a}.md-typeset .question>.admonition-title,.md-typeset .question>summary{background-color:#64dd171a}.md-typeset .question>.admonition-title:before,.md-typeset .question>summary:before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.md-typeset .question>.admonition-title:after,.md-typeset .question>summary:after{color:#64dd17}.md-typeset .admonition.warning,.md-typeset details.warning{border-color:#ff9100}.md-typeset .admonition.warning:focus-within,.md-typeset details.warning:focus-within{box-shadow:0 0 0 .2rem #ff91001a}.md-typeset .warning>.admonition-title,.md-typeset .warning>summary{background-color:#ff91001a}.md-typeset .warning>.admonition-title:before,.md-typeset .warning>summary:before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.md-typeset .warning>.admonition-title:after,.md-typeset .warning>summary:after{color:#ff9100}.md-typeset .admonition.failure,.md-typeset details.failure{border-color:#ff5252}.md-typeset .admonition.failure:focus-within,.md-typeset details.failure:focus-within{box-shadow:0 0 0 .2rem #ff52521a}.md-typeset .failure>.admonition-title,.md-typeset .failure>summary{background-color:#ff52521a}.md-typeset .failure>.admonition-title:before,.md-typeset .failure>summary:before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.md-typeset .failure>.admonition-title:after,.md-typeset .failure>summary:after{color:#ff5252}.md-typeset .admonition.danger,.md-typeset details.danger{border-color:#ff1744}.md-typeset .admonition.danger:focus-within,.md-typeset details.danger:focus-within{box-shadow:0 0 0 .2rem #ff17441a}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary{background-color:#ff17441a}.md-typeset .danger>.admonition-title:before,.md-typeset .danger>summary:before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.md-typeset .danger>.admonition-title:after,.md-typeset .danger>summary:after{color:#ff1744}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .admonition.bug:focus-within,.md-typeset details.bug:focus-within{box-shadow:0 0 0 .2rem #f500571a}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:#f500571a}.md-typeset .bug>.admonition-title:before,.md-typeset .bug>summary:before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.md-typeset .bug>.admonition-title:after,.md-typeset .bug>summary:after{color:#f50057}.md-typeset .admonition.example,.md-typeset details.example{border-color:#7c4dff}.md-typeset .admonition.example:focus-within,.md-typeset details.example:focus-within{box-shadow:0 0 0 .2rem #7c4dff1a}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:#7c4dff1a}.md-typeset .example>.admonition-title:before,.md-typeset .example>summary:before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.md-typeset .example>.admonition-title:after,.md-typeset .example>summary:after{color:#7c4dff}.md-typeset .admonition.quote,.md-typeset details.quote{border-color:#9e9e9e}.md-typeset .admonition.quote:focus-within,.md-typeset details.quote:focus-within{box-shadow:0 0 0 .2rem #9e9e9e1a}.md-typeset .quote>.admonition-title,.md-typeset .quote>summary{background-color:#9e9e9e1a}.md-typeset .quote>.admonition-title:before,.md-typeset .quote>summary:before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.md-typeset .quote>.admonition-title:after,.md-typeset .quote>summary:after{color:#9e9e9e}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.42L5.83 13H21V7z"/></svg>')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}[dir=ltr] .md-typeset .footnote>ol{margin-left:0}[dir=rtl] .md-typeset .footnote>ol{margin-right:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateX(0);transition:none}.md-typeset .footnote>ol>li:hover .footnote-backref,.md-typeset .footnote>ol>li:target .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentcolor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before{transform:scaleX(-1)}[dir=ltr] .md-typeset .headerlink{margin-left:.5rem}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}.md-typeset .headerlink:focus,.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset .headerlink:hover,.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.md-typeset h1:target,.md-typeset h2:target,.md-typeset h3:target{--md-scroll-offset:0.2rem}.md-typeset h4:target{--md-scroll-offset:0.15rem}.doc-contents td code{word-break:normal!important}.doc-md-description,.doc-md-description>p:first-child{display:inline}.md-typeset h5 .doc-object-name{text-transform:none}.doc .md-typeset__table,.doc .md-typeset__table table{display:table!important;width:100%}.doc .md-typeset__table tr{display:table-row}.doc-param-default,.doc-type_param-default{float:right}.doc-heading-parameter,.doc-heading-type_parameter{display:inline}.md-typeset .doc-heading-parameter{font-size:inherit}.doc-heading-parameter .headerlink,.doc-heading-type_parameter .headerlink{margin-left:0!important;margin-right:.2rem}.doc-section-title{font-weight:700}.doc-signature .autorefs{border-bottom:1px dotted;color:inherit}:host,:root,[data-md-color-scheme=default]{--doc-symbol-parameter-fg-color:#829bd1;--doc-symbol-type_parameter-fg-color:#829bd1;--doc-symbol-attribute-fg-color:#953800;--doc-symbol-function-fg-color:#8250df;--doc-symbol-method-fg-color:#8250df;--doc-symbol-class-fg-color:#0550ae;--doc-symbol-type_alias-fg-color:#0550ae;--doc-symbol-module-fg-color:#5cad0f;--doc-symbol-parameter-bg-color:#829bd11a;--doc-symbol-type_parameter-bg-color:#829bd11a;--doc-symbol-attribute-bg-color:#9538001a;--doc-symbol-function-bg-color:#8250df1a;--doc-symbol-method-bg-color:#8250df1a;--doc-symbol-class-bg-color:#0550ae1a;--doc-symbol-type_alias-bg-color:#0550ae1a;--doc-symbol-module-bg-color:#5cad0f1a}[data-md-color-scheme=slate]{--doc-symbol-parameter-fg-color:#829bd1;--doc-symbol-type_parameter-fg-color:#829bd1;--doc-symbol-attribute-fg-color:#ffa657;--doc-symbol-function-fg-color:#d2a8ff;--doc-symbol-method-fg-color:#d2a8ff;--doc-symbol-class-fg-color:#79c0ff;--doc-symbol-type_alias-fg-color:#79c0ff;--doc-symbol-module-fg-color:#baff79;--doc-symbol-parameter-bg-color:#829bd11a;--doc-symbol-type_parameter-bg-color:#829bd11a;--doc-symbol-attribute-bg-color:#ffa6571a;--doc-symbol-function-bg-color:#d2a8ff1a;--doc-symbol-method-bg-color:#d2a8ff1a;--doc-symbol-class-bg-color:#79c0ff1a;--doc-symbol-type_alias-bg-color:#79c0ff1a;--doc-symbol-module-bg-color:#baff791a}code.doc-symbol{border-radius:.1rem;font-size:.85em;font-weight:700;padding:0 .3em}a code.doc-symbol-parameter,code.doc-symbol-parameter{background-color:var(--doc-symbol-parameter-bg-color);color:var(--doc-symbol-parameter-fg-color)}code.doc-symbol-parameter:after{content:"param"}a code.doc-symbol-type_parameter,code.doc-symbol-type_parameter{background-color:var(--doc-symbol-type_parameter-bg-color);color:var(--doc-symbol-type_parameter-fg-color)}code.doc-symbol-type_parameter:after{content:"type-param"}a code.doc-symbol-attribute,code.doc-symbol-attribute{background-color:var(--doc-symbol-attribute-bg-color);color:var(--doc-symbol-attribute-fg-color)}code.doc-symbol-attribute:after{content:"attr"}a code.doc-symbol-function,code.doc-symbol-function{background-color:var(--doc-symbol-function-bg-color);color:var(--doc-symbol-function-fg-color)}code.doc-symbol-function:after{content:"func"}a code.doc-symbol-method,code.doc-symbol-method{background-color:var(--doc-symbol-method-bg-color);color:var(--doc-symbol-method-fg-color)}code.doc-symbol-method:after{content:"meth"}a code.doc-symbol-class,code.doc-symbol-class{background-color:var(--doc-symbol-class-bg-color);color:var(--doc-symbol-class-fg-color)}code.doc-symbol-class:after{content:"class"}a code.doc-symbol-type_alias,code.doc-symbol-type_alias{background-color:var(--doc-symbol-type_alias-bg-color);color:var(--doc-symbol-type_alias-fg-color)}code.doc-symbol-type_alias:after{content:"type"}a code.doc-symbol-module,code.doc-symbol-module{background-color:var(--doc-symbol-module-bg-color);color:var(--doc-symbol-module-fg-color)}code.doc-symbol-module:after{content:"mod"}:root{--md-admonition-icon--mkdocstrings-source:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.22 4.97a.75.75 0 0 1 1.06 0l6.5 6.5a.75.75 0 0 1 0 1.06l-6.5 6.5a.749.749 0 0 1-1.275-.326.75.75 0 0 1 .215-.734L21.19 12l-5.97-5.97a.75.75 0 0 1 0-1.06m-6.44 0a.75.75 0 0 1 0 1.06L2.81 12l5.97 5.97a.749.749 0 0 1-.326 1.275.75.75 0 0 1-.734-.215l-6.5-6.5a.75.75 0 0 1 0-1.06l6.5-6.5a.75.75 0 0 1 1.06 0"/></svg>') }.md-typeset .admonition.mkdocstrings-source,.md-typeset details.mkdocstrings-source{border:none;padding:0}.md-typeset .admonition.mkdocstrings-source:focus-within,.md-typeset details.mkdocstrings-source:focus-within{box-shadow:none}.md-typeset .mkdocstrings-source>.admonition-title,.md-typeset .mkdocstrings-source>summary{background-color:inherit}.md-typeset .mkdocstrings-source>.admonition-title:before,.md-typeset .mkdocstrings-source>summary:before{background-color:var(--md-default-fg-color);-webkit-mask-image:var(--md-admonition-icon--mkdocstrings-source);mask-image:var(--md-admonition-icon--mkdocstrings-source)}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.984375em){.md-typeset div.arithmatex{margin:0 -.8rem}.md-typeset div.arithmatex>*{width:min-content}}.md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto}.md-typeset div.arithmatex>* mjx-container{margin:0!important}.md-typeset div.arithmatex mjx-assistive-mml{height:0}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset del.critic,.md-typeset ins.critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z"/></svg>')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem}[dir=ltr] .md-typeset summary{padding-right:1.8rem}[dir=rtl] .md-typeset summary{padding-left:1.8rem}[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset summary{cursor:pointer;display:block;min-height:1rem;overflow:hidden}.md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[dir=ltr] .md-typeset summary:after{right:.4rem}[dir=rtl] .md-typeset summary:after{left:.4rem}.md-typeset summary:after{background-color:currentcolor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.md-typeset summary::marker{display:none}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset .emojione,.md-typeset .gemoji,.md-typeset .twemoji{--md-icon-size:1.125em;display:inline-flex;height:var(--md-icon-size);vertical-align:text-top}.md-typeset .emojione svg,.md-typeset .gemoji svg,.md-typeset .twemoji svg{fill:currentcolor;max-height:100%;width:var(--md-icon-size)}.md-typeset .emojione svg.lucide,.md-typeset .gemoji svg.lucide,.md-typeset .twemoji svg.lucide{fill:#0000;stroke:currentcolor}.md-typeset .lg,.md-typeset .xl,.md-typeset .xxl,.md-typeset .xxxl{vertical-align:text-bottom}.md-typeset .middle{vertical-align:middle}.md-typeset .lg{--md-icon-size:1.5em}.md-typeset .xl{--md-icon-size:2.25em}.md-typeset .xxl{--md-icon-size:3em}.md-typeset .xxxl{--md-icon-size:4em}.highlight .o,.highlight .ow{color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight .cpf,.highlight .l,.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .si,.highlight .ss{color:var(--md-code-hl-string-color)}.highlight .cp,.highlight .se,.highlight .sh,.highlight .sr,.highlight .sx{color:var(--md-code-hl-special-color)}.highlight .il,.highlight .m,.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:var(--md-code-hl-number-color)}.highlight .k,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:var(--md-code-hl-keyword-color)}.highlight .kc,.highlight .n{color:var(--md-code-hl-name-color)}.highlight .bp,.highlight .nb,.highlight .no{color:var(--md-code-hl-constant-color)}.highlight .nc,.highlight .ne,.highlight .nf,.highlight .nn{color:var(--md-code-hl-function-color)}.highlight .nd,.highlight .ni,.highlight .nl,.highlight .nt{color:var(--md-code-hl-keyword-color)}.highlight .c,.highlight .c1,.highlight .ch,.highlight .cm,.highlight .cs,.highlight .sd{color:var(--md-code-hl-comment-color)}.highlight .na,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi{color:var(--md-code-hl-variable-color)}.highlight .ge,.highlight .gh,.highlight .go,.highlight .gp,.highlight .gr,.highlight .gs,.highlight .gt,.highlight .gu{color:var(--md-code-hl-generic-color)}.highlight .gd,.highlight .gi{border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color--light);box-shadow:2px 0 0 0 var(--md-code-hl-color) inset;display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:flow-root;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:sticky;-webkit-user-select:none;user-select:none;z-index:3}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying]{display:initial}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable tbody,.highlighttable td{display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable th.filename span.filename{margin-top:0}.highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-top-left-radius:.1rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .linenodiv span[class]{padding-right:.5882352941em}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit}.md-typeset .highlighttable{direction:ltr;margin:1em 0}.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-bottom-left-radius:0;border-top-left-radius:0}.md-typeset .highlight+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset .highlight+.result:after{clear:both;content:"";display:block}@media screen and (max-width:44.984375em){.md-content__inner>.highlight{margin:1em -.8rem}.md-content__inner>.highlight>.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code,.md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos,.md-content__inner>.highlight>pre>code{border-radius:0}.md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}}.md-typeset .keys kbd:after,.md-typeset .keys kbd:before{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before,.md-typeset .keys .key-left-alt:before,.md-typeset .keys .key-right-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-command:before,.md-typeset .keys .key-left-command:before,.md-typeset .keys .key-right-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-control:before,.md-typeset .keys .key-left-control:before,.md-typeset .keys .key-right-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-left-meta:before,.md-typeset .keys .key-meta:before,.md-typeset .keys .key-right-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-left-option:before,.md-typeset .keys .key-option:before,.md-typeset .keys .key-right-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-left-shift:before,.md-typeset .keys .key-right-shift:before,.md-typeset .keys .key-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-left-super:before,.md-typeset .keys .key-right-super:before,.md-typeset .keys .key-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-left-windows:before,.md-typeset .keys .key-right-windows:before,.md-typeset .keys .key-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"↓";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"←";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"→";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"↑";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"⌫";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"⇤";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"⇪";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"⌧";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"☰";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"⌦";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"⏏";padding-right:.4em}.md-typeset .keys .key-end:before{content:"⤓";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"⎋";padding-right:.4em}.md-typeset .keys .key-home:before{content:"⤒";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"⎀";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"⇟";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"⇞";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"⎙";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"⇥";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"⌤";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"⏎";padding-left:.4em}:root{--md-tabbed-icon--prev:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.41 16.58 10.83 12l4.58-4.59L14 6l-6 6 6 6z"/></svg>');--md-tabbed-icon--next:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z"/></svg>')}.md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-set>input:target{--md-scroll-offset:0.625em}.md-typeset .tabbed-set>input.focus-visible~.tabbed-labels:before{background-color:var(--md-accent-fg-color)}.md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;scrollbar-width:none}@media print{.md-typeset .tabbed-labels{display:contents}}@media screen{.js .md-typeset .tabbed-labels{position:relative}.js .md-typeset .tabbed-labels:before{background:var(--md-default-fg-color);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,background-color .25s,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.md-typeset .tabbed-labels>label{border-bottom:.1rem solid #0000;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.64rem;font-weight:700;padding:.78125em 1.25em .625em;scroll-margin-inline-start:1rem;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.md-typeset .tabbed-labels>label:first-child{order:1}.md-typeset .tabbed-labels>label:nth-child(2){order:2}.md-typeset .tabbed-labels>label:nth-child(3){order:3}.md-typeset .tabbed-labels>label:nth-child(4){order:4}.md-typeset .tabbed-labels>label:nth-child(5){order:5}.md-typeset .tabbed-labels>label:nth-child(6){order:6}.md-typeset .tabbed-labels>label:nth-child(7){order:7}.md-typeset .tabbed-labels>label:nth-child(8){order:8}.md-typeset .tabbed-labels>label:nth-child(9){order:9}.md-typeset .tabbed-labels>label:nth-child(10){order:10}.md-typeset .tabbed-labels>label:nth-child(11){order:11}.md-typeset .tabbed-labels>label:nth-child(12){order:12}.md-typeset .tabbed-labels>label:nth-child(13){order:13}.md-typeset .tabbed-labels>label:nth-child(14){order:14}.md-typeset .tabbed-labels>label:nth-child(15){order:15}.md-typeset .tabbed-labels>label:nth-child(16){order:16}.md-typeset .tabbed-labels>label:nth-child(17){order:17}.md-typeset .tabbed-labels>label:nth-child(18){order:18}.md-typeset .tabbed-labels>label:nth-child(19){order:19}.md-typeset .tabbed-labels>label:nth-child(20){order:20}}.md-typeset .tabbed-labels>label:hover{color:var(--md-default-fg-color)}.md-typeset .tabbed-labels>label>[href]:first-child{color:inherit}.md-typeset .tabbed-labels--linked>label{padding:0}.md-typeset .tabbed-labels--linked>label>a{display:block;padding:.78125em 1.25em .625em}.md-typeset .tabbed-content{width:100%}@media print{.md-typeset .tabbed-content{display:contents}}.md-typeset .tabbed-block{display:none}@media print{.md-typeset .tabbed-block{display:block}.md-typeset .tabbed-block:first-child{order:1}.md-typeset .tabbed-block:nth-child(2){order:2}.md-typeset .tabbed-block:nth-child(3){order:3}.md-typeset .tabbed-block:nth-child(4){order:4}.md-typeset .tabbed-block:nth-child(5){order:5}.md-typeset .tabbed-block:nth-child(6){order:6}.md-typeset .tabbed-block:nth-child(7){order:7}.md-typeset .tabbed-block:nth-child(8){order:8}.md-typeset .tabbed-block:nth-child(9){order:9}.md-typeset .tabbed-block:nth-child(10){order:10}.md-typeset .tabbed-block:nth-child(11){order:11}.md-typeset .tabbed-block:nth-child(12){order:12}.md-typeset .tabbed-block:nth-child(13){order:13}.md-typeset .tabbed-block:nth-child(14){order:14}.md-typeset .tabbed-block:nth-child(15){order:15}.md-typeset .tabbed-block:nth-child(16){order:16}.md-typeset .tabbed-block:nth-child(17){order:17}.md-typeset .tabbed-block:nth-child(18){order:18}.md-typeset .tabbed-block:nth-child(19){order:19}.md-typeset .tabbed-block:nth-child(20){order:20}}.md-typeset .tabbed-block>.highlight:first-child>pre,.md-typeset .tabbed-block>pre:first-child{margin:0}.md-typeset .tabbed-block>.highlight:first-child>pre>code,.md-typeset .tabbed-block>pre:first-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child>.filename{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable{margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename,.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child+.result{margin-top:-.125em}.md-typeset .tabbed-block>.tabbed-set{margin:0}.md-typeset .tabbed-button{align-self:center;border-radius:100%;color:var(--md-default-fg-color--light);cursor:pointer;display:block;height:.9rem;margin-top:.1rem;pointer-events:auto;transition:background-color .25s;width:.9rem}.md-typeset .tabbed-button:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset .tabbed-button:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-tabbed-icon--prev);mask-image:var(--md-tabbed-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .25s,transform .25s;width:100%}.md-typeset .tabbed-control{background:linear-gradient(to right,var(--md-default-bg-color) 60%,#0000);display:flex;height:1.9rem;justify-content:start;pointer-events:none;position:absolute;transition:opacity 125ms;width:1.2rem}[dir=rtl] .md-typeset .tabbed-control{transform:rotate(180deg)}.md-typeset .tabbed-control[hidden]{opacity:0}.md-typeset .tabbed-control--next{background:linear-gradient(to left,var(--md-default-bg-color) 60%,#0000);justify-content:end;right:0}.md-typeset .tabbed-control--next .tabbed-button:after{-webkit-mask-image:var(--md-tabbed-icon--next);mask-image:var(--md-tabbed-icon--next)}@media screen and (max-width:44.984375em){[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels:after{content:""}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-right:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-left:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-right:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{width:2rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-left:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-right:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-left:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{width:2rem}}@media screen{.md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){color:var(--md-default-fg-color)}.md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.md-typeset [role=dialog] .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset [role=dialog] .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset [role=dialog] .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset [role=dialog] .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset [role=dialog] .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset [role=dialog] .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset [role=dialog] .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset [role=dialog] .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset [role=dialog] .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset [role=dialog] .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset [role=dialog] .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset [role=dialog] .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset [role=dialog] .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset [role=dialog] .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset [role=dialog] .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset [role=dialog] .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset [role=dialog] .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset [role=dialog] .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset [role=dialog] .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset [role=dialog] .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),[role=dialog] .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,[role=dialog] .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),[role=dialog] .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),[role=dialog] .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),[role=dialog] .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),[role=dialog] .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),[role=dialog] .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),[role=dialog] .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),[role=dialog] .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),[role=dialog] .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),[role=dialog] .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),[role=dialog] .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),[role=dialog] .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),[role=dialog] .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),[role=dialog] .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),[role=dialog] .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),[role=dialog] .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),[role=dialog] .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),[role=dialog] .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),[role=dialog] .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){border-color:var(--md-default-fg-color)}}.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){color:var(--md-accent-fg-color)}.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){display:block}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12m16.28-2.72a.75.75 0 0 0-.018-1.042.75.75 0 0 0-1.042-.018l-5.97 5.97-2.47-2.47a.75.75 0 0 0-1.042.018.75.75 0 0 0-.018 1.042l3 3a.75.75 0 0 0 1.06 0Z"/></svg>');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12m16.28-2.72a.75.75 0 0 0-.018-1.042.75.75 0 0 0-1.042-.018l-5.97 5.97-2.47-2.47a.75.75 0 0 0-1.042.018.75.75 0 0 0-.018 1.042l3 3a.75.75 0 0 0 1.06 0Z"/></svg>')}.md-typeset .task-list-item{list-style-type:none;position:relative}[dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}[dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}[dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:"";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}@media print{.giscus,[id=__comments]{display:none}}:root>*{--md-mermaid-font-family:var(--md-text-font-family),sans-serif;--md-mermaid-edge-color:var(--md-code-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-code-fg-color);--md-mermaid-sequence-actor-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-actor-fg-color:var(--md-mermaid-label-fg-color);--md-mermaid-sequence-actor-border-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-actor-line-color:var(--md-default-fg-color--lighter);--md-mermaid-sequence-actorman-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-actorman-line-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-box-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-box-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-label-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-label-fg-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-loop-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-loop-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-loop-border-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-message-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-message-line-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-note-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-note-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-note-border-color:var(--md-mermaid-label-fg-color);--md-mermaid-sequence-number-bg-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-number-fg-color:var(--md-accent-bg-color)}.mermaid{line-height:normal;margin:1em 0}.md-typeset .grid{grid-gap:.4rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));margin:1em 0}.md-typeset .grid.cards>ol,.md-typeset .grid.cards>ul{display:contents}.md-typeset .grid.cards>ol>li,.md-typeset .grid.cards>ul>li,.md-typeset .grid>.card{border:.05rem solid var(--md-default-fg-color--lightest);border-radius:.1rem;display:block;margin:0;padding:.8rem;transition:border .25s,box-shadow .25s}.md-typeset .grid.cards>ol>li:focus-within,.md-typeset .grid.cards>ol>li:hover,.md-typeset .grid.cards>ul>li:focus-within,.md-typeset .grid.cards>ul>li:hover,.md-typeset .grid>.card:focus-within,.md-typeset .grid>.card:hover{border-color:#0000;box-shadow:var(--md-shadow-z2)}.md-typeset .grid.cards>ol>li>hr,.md-typeset .grid.cards>ul>li>hr,.md-typeset .grid>.card>hr{margin-bottom:1em;margin-top:1em}.md-typeset .grid.cards>ol>li>:first-child,.md-typeset .grid.cards>ul>li>:first-child,.md-typeset .grid>.card>:first-child{margin-top:0}.md-typeset .grid.cards>ol>li>:last-child,.md-typeset .grid.cards>ul>li>:last-child,.md-typeset .grid>.card>:last-child{margin-bottom:0}.md-typeset .grid>*,.md-typeset .grid>.admonition,.md-typeset .grid>.highlight>*,.md-typeset .grid>.highlighttable,.md-typeset .grid>.md-typeset details,.md-typeset .grid>details,.md-typeset .grid>pre{margin-bottom:0;margin-top:0}.md-typeset .grid>.highlight>pre:only-child,.md-typeset .grid>.highlight>pre>code,.md-typeset .grid>.highlighttable,.md-typeset .grid>.highlighttable>tbody,.md-typeset .grid>.highlighttable>tbody>tr,.md-typeset .grid>.highlighttable>tbody>tr>.code,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight>pre,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight>pre>code{height:100%}.md-typeset .grid>.tabbed-set{margin-bottom:0;margin-top:0}@media screen and (min-width:45em){[dir=ltr] .md-typeset .inline{float:left}[dir=rtl] .md-typeset .inline{float:right}[dir=ltr] .md-typeset .inline{margin-right:.8rem}[dir=rtl] .md-typeset .inline{margin-left:.8rem}.md-typeset .inline{margin-bottom:.8rem;margin-top:0;width:11.7rem}[dir=ltr] .md-typeset .inline.end{float:right}[dir=rtl] .md-typeset .inline.end{float:left}[dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}}
\ No newline at end of file
blob - /dev/null
blob + 2d83819794f54c8e97ce8afaa59d0e047c163217 (mode 644)
--- /dev/null
+++ site/assets/stylesheets/classic/palette.7dc9a0ad.min.css
@@ -0,0 +1 @@
+@media screen{[data-md-color-scheme=slate]{--md-default-fg-color:hsla(var(--md-hue),15%,90%,0.82);--md-default-fg-color--light:hsla(var(--md-hue),15%,90%,0.56);--md-default-fg-color--lighter:hsla(var(--md-hue),15%,90%,0.32);--md-default-fg-color--lightest:hsla(var(--md-hue),15%,90%,0.12);--md-default-bg-color:hsla(var(--md-hue),15%,14%,1);--md-default-bg-color--light:hsla(var(--md-hue),15%,14%,0.54);--md-default-bg-color--lighter:hsla(var(--md-hue),15%,14%,0.26);--md-default-bg-color--lightest:hsla(var(--md-hue),15%,14%,0.07);--md-code-fg-color:hsla(var(--md-hue),18%,86%,0.82);--md-code-bg-color:hsla(var(--md-hue),15%,18%,1);--md-code-bg-color--light:hsla(var(--md-hue),15%,18%,0.9);--md-code-bg-color--lighter:hsla(var(--md-hue),15%,18%,0.54);--md-code-hl-color:#2977ff;--md-code-hl-color--light:#2977ff1a;--md-code-hl-number-color:#e6695b;--md-code-hl-special-color:#f06090;--md-code-hl-function-color:#c973d9;--md-code-hl-constant-color:#9383e2;--md-code-hl-keyword-color:#6791e0;--md-code-hl-string-color:#2fb170;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-kbd-color:hsla(var(--md-hue),15%,90%,0.12);--md-typeset-kbd-accent-color:hsla(var(--md-hue),15%,90%,0.2);--md-typeset-kbd-border-color:hsla(var(--md-hue),15%,14%,1);--md-typeset-mark-color:#4287ff4d;--md-typeset-table-color:hsla(var(--md-hue),15%,95%,0.12);--md-typeset-table-color--light:hsla(var(--md-hue),15%,95%,0.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-bg-color:hsla(var(--md-hue),15%,10%,0.87);--md-footer-bg-color--dark:hsla(var(--md-hue),15%,8%,1);--md-shadow-z1:0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #00000040,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0006,0 0 0.05rem #00000059;color-scheme:dark}[data-md-color-scheme=slate] img[src$="#gh-light-mode-only"],[data-md-color-scheme=slate] img[src$="#only-light"]{display:none}[data-md-color-scheme=slate]{--color-foreground:255 255 255;--color-background:22 23 26;--color-background-subtle:33 34 38;--color-backdrop:11 12 15}[data-md-color-scheme=slate][data-md-color-primary=pink]{--md-typeset-a-color:#ed5487}[data-md-color-scheme=slate][data-md-color-primary=purple]{--md-typeset-a-color:#c46fd3}[data-md-color-scheme=slate][data-md-color-primary=deep-purple]{--md-typeset-a-color:#a47bea}[data-md-color-scheme=slate][data-md-color-primary=indigo]{--md-typeset-a-color:#5488e8}[data-md-color-scheme=slate][data-md-color-primary=teal]{--md-typeset-a-color:#00ccb8}[data-md-color-scheme=slate][data-md-color-primary=green]{--md-typeset-a-color:#71c174}[data-md-color-scheme=slate][data-md-color-primary=deep-orange]{--md-typeset-a-color:#ff764d}[data-md-color-scheme=slate][data-md-color-primary=brown]{--md-typeset-a-color:#c1775c}[data-md-color-scheme=slate][data-md-color-primary=black],[data-md-color-scheme=slate][data-md-color-primary=blue-grey],[data-md-color-scheme=slate][data-md-color-primary=grey],[data-md-color-scheme=slate][data-md-color-primary=white]{--md-typeset-a-color:#5e8bde}[data-md-color-switching] *,[data-md-color-switching] :after,[data-md-color-switching] :before{transition-duration:0ms!important}}[data-md-color-accent=red]{--md-accent-fg-color:#ff1947;--md-accent-fg-color--transparent:#ff19471a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=pink]{--md-accent-fg-color:#f50056;--md-accent-fg-color--transparent:#f500561a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=purple]{--md-accent-fg-color:#df41fb;--md-accent-fg-color--transparent:#df41fb1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=deep-purple]{--md-accent-fg-color:#7c4dff;--md-accent-fg-color--transparent:#7c4dff1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=indigo]{--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=blue]{--md-accent-fg-color:#4287ff;--md-accent-fg-color--transparent:#4287ff1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=light-blue]{--md-accent-fg-color:#0091eb;--md-accent-fg-color--transparent:#0091eb1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=cyan]{--md-accent-fg-color:#00bad6;--md-accent-fg-color--transparent:#00bad61a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=teal]{--md-accent-fg-color:#00bda4;--md-accent-fg-color--transparent:#00bda41a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=green]{--md-accent-fg-color:#00c753;--md-accent-fg-color--transparent:#00c7531a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=light-green]{--md-accent-fg-color:#63de17;--md-accent-fg-color--transparent:#63de171a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=lime]{--md-accent-fg-color:#b0eb00;--md-accent-fg-color--transparent:#b0eb001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=yellow]{--md-accent-fg-color:#ffd500;--md-accent-fg-color--transparent:#ffd5001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=amber]{--md-accent-fg-color:#fa0;--md-accent-fg-color--transparent:#ffaa001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=orange]{--md-accent-fg-color:#ff9100;--md-accent-fg-color--transparent:#ff91001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=deep-orange]{--md-accent-fg-color:#ff6e42;--md-accent-fg-color--transparent:#ff6e421a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-primary=red]{--md-primary-fg-color:#ef5552;--md-primary-fg-color--light:#e57171;--md-primary-fg-color--dark:#e53734;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=pink]{--md-primary-fg-color:#e92063;--md-primary-fg-color--light:#ec417a;--md-primary-fg-color--dark:#c3185d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=purple]{--md-primary-fg-color:#ab47bd;--md-primary-fg-color--light:#bb69c9;--md-primary-fg-color--dark:#8c24a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=deep-purple]{--md-primary-fg-color:#7e56c2;--md-primary-fg-color--light:#9574cd;--md-primary-fg-color--dark:#673ab6;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=indigo]{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=blue]{--md-primary-fg-color:#2094f3;--md-primary-fg-color--light:#42a5f5;--md-primary-fg-color--dark:#1975d2;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=light-blue]{--md-primary-fg-color:#02a6f2;--md-primary-fg-color--light:#28b5f6;--md-primary-fg-color--dark:#0287cf;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=cyan]{--md-primary-fg-color:#00bdd6;--md-primary-fg-color--light:#25c5da;--md-primary-fg-color--dark:#0097a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=teal]{--md-primary-fg-color:#009485;--md-primary-fg-color--light:#26a699;--md-primary-fg-color--dark:#007a6c;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=green]{--md-primary-fg-color:#4cae4f;--md-primary-fg-color--light:#68bb6c;--md-primary-fg-color--dark:#398e3d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=light-green]{--md-primary-fg-color:#8bc34b;--md-primary-fg-color--light:#9ccc66;--md-primary-fg-color--dark:#689f38;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=lime]{--md-primary-fg-color:#cbdc38;--md-primary-fg-color--light:#d3e156;--md-primary-fg-color--dark:#b0b52c;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=yellow]{--md-primary-fg-color:#ffec3d;--md-primary-fg-color--light:#ffee57;--md-primary-fg-color--dark:#fbc02d;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=amber]{--md-primary-fg-color:#ffc105;--md-primary-fg-color--light:#ffc929;--md-primary-fg-color--dark:#ffa200;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=orange]{--md-primary-fg-color:#ffa724;--md-primary-fg-color--light:#ffa724;--md-primary-fg-color--dark:#fa8900;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=deep-orange]{--md-primary-fg-color:#ff6e42;--md-primary-fg-color--light:#ff8a66;--md-primary-fg-color--dark:#f4511f;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=brown]{--md-primary-fg-color:#795649;--md-primary-fg-color--light:#8d6e62;--md-primary-fg-color--dark:#5d4037;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=grey]{--md-primary-fg-color:#757575;--md-primary-fg-color--light:#9e9e9e;--md-primary-fg-color--dark:#616161;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=blue-grey]{--md-primary-fg-color:#546d78;--md-primary-fg-color--light:#607c8a;--md-primary-fg-color--dark:#455a63;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=light-green]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#72ad2e}[data-md-color-primary=lime]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#8b990a}[data-md-color-primary=yellow]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#b8a500}[data-md-color-primary=amber]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#d19d00}[data-md-color-primary=orange]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#e68a00}[data-md-color-primary=white]{--md-primary-fg-color:hsla(var(--md-hue),0%,100%,1);--md-primary-fg-color--light:hsla(var(--md-hue),0%,100%,0.7);--md-primary-fg-color--dark:hsla(var(--md-hue),0%,0%,0.07);--md-primary-bg-color:hsla(var(--md-hue),0%,0%,0.87);--md-primary-bg-color--light:hsla(var(--md-hue),0%,0%,0.54);--md-typeset-a-color:#4051b5}[data-md-color-primary=white] .md-button{color:var(--md-typeset-a-color)}[data-md-color-primary=white] .md-button--primary{background-color:var(--md-typeset-a-color);border-color:var(--md-typeset-a-color);color:hsla(var(--md-hue),0%,100%,1)}@media screen and (min-width:60em){[data-md-color-primary=white] .md-search__form{background-color:hsla(var(--md-hue),0%,0%,.07)}[data-md-color-primary=white] .md-search__form:hover{background-color:hsla(var(--md-hue),0%,0%,.32)}[data-md-color-primary=white] .md-search__input+.md-search__icon{color:hsla(var(--md-hue),0%,0%,.87)}}@media screen and (min-width:76.25em){[data-md-color-primary=white] .md-tabs{border-bottom:.05rem solid #00000012}}[data-md-color-primary=black]{--md-primary-fg-color:hsla(var(--md-hue),15%,9%,1);--md-primary-fg-color--light:hsla(var(--md-hue),15%,9%,0.54);--md-primary-fg-color--dark:hsla(var(--md-hue),15%,9%,1);--md-primary-bg-color:hsla(var(--md-hue),15%,100%,1);--md-primary-bg-color--light:hsla(var(--md-hue),15%,100%,0.7);--md-typeset-a-color:#4051b5}[data-md-color-primary=black] .md-button{color:var(--md-typeset-a-color)}[data-md-color-primary=black] .md-button--primary{background-color:var(--md-typeset-a-color);border-color:var(--md-typeset-a-color);color:hsla(var(--md-hue),0%,100%,1)}[data-md-color-primary=black] .md-header{background-color:hsla(var(--md-hue),15%,9%,1)}@media screen and (max-width:59.984375em){[data-md-color-primary=black] .md-nav__source{background-color:hsla(var(--md-hue),15%,11%,.87)}}@media screen and (max-width:76.234375em){html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer]{background-color:hsla(var(--md-hue),15%,9%,1)}}@media screen and (min-width:76.25em){[data-md-color-primary=black] .md-tabs{background-color:hsla(var(--md-hue),15%,9%,1)}}
\ No newline at end of file
blob - /dev/null
blob + 83912b70a50f6d49302e56caf587b24a43a2477d (mode 644)
--- /dev/null
+++ site/assets/stylesheets/modern/main.bd6182e7.min.css
@@ -0,0 +1 @@
+@charset "UTF-8";html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}@media (prefers-reduced-motion){*,:after,:before{transition:none!important}}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:initial;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:initial;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:#0000;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-scheme=default]{color-scheme:light}[data-md-color-scheme=default] img[src$="#gh-dark-mode-only"],[data-md-color-scheme=default] img[src$="#only-dark"]{display:none}:root,[data-md-color-scheme=default]{--md-hue:225deg;--md-default-fg-color:#000000de;--md-default-fg-color--light:#0000008c;--md-default-fg-color--lighter:#00000052;--md-default-fg-color--lightest:#0000000d;--md-default-bg-color:#fff;--md-default-bg-color--light:#ffffffb3;--md-default-bg-color--lighter:#ffffff4d;--md-default-bg-color--lightest:#ffffff1f;--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-bg-color--light:#f5f5f5b3;--md-code-bg-color--lighter:#f5f5f54d;--md-code-hl-color:#4287ff;--md-code-hl-color--light:#4287ff1a;--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-del-color:#f5503d26;--md-typeset-ins-color:#0bd57026;--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-mark-color:#ffff0080;--md-typeset-table-color:#0000001f;--md-typeset-table-color--light:rgba(0,0,0,.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-warning-fg-color:#000000de;--md-warning-bg-color:#ff9;--md-shadow-z1:0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #0000001a,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0003,0 0 0.05rem #00000059;--color-foreground:0 0 0;--color-background:255 255 255;--color-background-subtle:240 240 240;--color-backdrop:255 255 255}.md-icon svg{fill:currentcolor;display:block;height:1.2rem;width:1.2rem}.md-icon svg.lucide{fill:#0000;stroke:currentcolor}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}aside,body,input{font-feature-settings:"kern","liga";color:var(--md-typeset-color);font-family:var(--md-text-font-family)}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family)}:root{--md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-down-up" viewBox="0 0 24 24"><path d="m3 16 4 4 4-4m-4 4V4m14 4-4-4-4 4m4-4v16"/></svg>');--md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-down-narrow-wide" viewBox="0 0 24 24"><path d="m3 16 4 4 4-4m-4 4V4m4 0h4m-4 4h7m-7 4h10"/></svg>');--md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-up-narrow-wide" viewBox="0 0 24 24"><path d="m3 8 4-4 4 4M7 4v16m4-8h4m-4 4h7m-7 4h10"/></svg>');--md-typeset-preview-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-mouse-pointer-2" viewBox="0 0 24 24"><path d="M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z"/></svg>')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.75rem;letter-spacing:-.01em;line-height:1.8;overflow-wrap:break-word}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin-bottom:1em;margin-top:1em}.md-typeset h1{color:var(--md-default-fg-color);font-size:1.875em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:700;letter-spacing:-.025em}.md-typeset h2{font-size:1.5em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:700;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset h5 code{text-transform:none}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);text-decoration:underline;word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a:focus code,.md-typeset a:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset a code{color:var(--md-typeset-a-color)}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr;font-variant-ligatures:none;transition:background-color 125ms}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.2rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;transition:color 125ms,background-color 125ms;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{border-radius:.4rem;-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help;text-decoration:none}.md-typeset [data-preview]{position:relative}[dir=ltr] .md-typeset [data-preview]:after{margin-left:.125em}[dir=rtl] .md-typeset [data-preview]:after{margin-right:.125em}.md-typeset [data-preview]:after{background-color:currentcolor;content:"";display:inline-block;height:.8em;-webkit-mask-image:var(--md-typeset-preview-icon);mask-image:var(--md-typeset-preview-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-top;width:.8em}.md-typeset small{opacity:.75}[dir=ltr] .md-typeset sub,[dir=ltr] .md-typeset sup{margin-left:.078125em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.078125em}[dir=ltr] .md-typeset blockquote{padding-left:.6rem}[dir=rtl] .md-typeset blockquote{padding-right:.6rem}[dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.md-typeset ul{list-style-type:disc}.md-typeset ul[type]{list-style-type:revert-layer}[dir=ltr] .md-typeset ol,[dir=ltr] .md-typeset ul{margin-left:.625em}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em}.md-typeset ol,.md-typeset ul{padding:0}.md-typeset ol:not([hidden]),.md-typeset ul:not([hidden]){display:flow-root}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}.md-typeset ol ol ol ol,.md-typeset ul ol ol ol{list-style-type:upper-alpha}.md-typeset ol ol ol ol ol,.md-typeset ul ol ol ol ol{list-style-type:upper-roman}.md-typeset ol[type],.md-typeset ul[type]{list-style-type:revert-layer}[dir=ltr] .md-typeset ol li,[dir=ltr] .md-typeset ul li{margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}[dir=ltr] .md-typeset ol li ol,[dir=ltr] .md-typeset ol li ul,[dir=ltr] .md-typeset ul li ol,[dir=ltr] .md-typeset ul li ul{margin-left:.625em}[dir=rtl] .md-typeset ol li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ul li ul{margin-right:.625em}.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset dd{margin-left:1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em}.md-typeset dd{margin-bottom:1.5em;margin-top:1em}.md-typeset img,.md-typeset svg,.md-typeset video{height:auto;max-width:100%}.md-typeset img[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child{margin-top:0}.md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:fit-content}.md-typeset figure img{display:block;margin:0 auto}.md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.md-typeset iframe{max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) td>:first-child,.md-typeset table:not([class]) th>:first-child{margin-top:0}.md-typeset table:not([class]) td>:last-child,.md-typeset table:not([class]) th>:last-child{margin-bottom:0}.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) td:not([align]),[dir=rtl] .md-typeset table:not([class]) th:not([align]){text-align:right}.md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.md-typeset table:not([class]) tbody tr:hover{background-color:var(--md-typeset-table-color--light);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}[dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}[dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.984375em){.md-content__inner>pre{margin:1em -.8rem}.md-content__inner>pre code{border-radius:0}}.md-banner{background-color:var(--md-accent-fg-color--transparent);color:var(--md-default-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background-color:var(--md-warning-bg-color);color:var(--md-warning-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}[dir=ltr] .md-banner__button{float:right}[dir=rtl] .md-banner__button{float:left}.md-banner__button{color:inherit;cursor:pointer;transition:opacity .25s}.no-js .md-banner__button{display:none}.md-banner__button:hover{opacity:.7}html{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.984375em){body[data-md-scrolllock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-clipboard-copy" viewBox="0 0 24 24"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"/><path d="M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M16 4h2a2 2 0 0 1 2 2v4m1 4H11"/><path d="m15 10-4 4 4 4"/></svg>')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:focus,.md-clipboard:hover{color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:focus code,.md-clipboard--inline:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}:root{--md-code-select-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-scan" viewBox="0 0 24 24"><path d="M3 7V5a2 2 0 0 1 2-2h2m10 0h2a2 2 0 0 1 2 2v2m0 10v2a2 2 0 0 1-2 2h-2M7 21H5a2 2 0 0 1-2-2v-2"/></svg>');--md-code-copy-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-clipboard-copy" viewBox="0 0 24 24"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"/><path d="M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M16 4h2a2 2 0 0 1 2 2v4m1 4H11"/><path d="m15 10-4 4 4 4"/></svg>')}.md-typeset .md-code__content{display:grid}.md-code__nav{background-color:var(--md-code-bg-color--lighter);border-radius:.1rem;display:flex;gap:.2rem;padding:.2rem;position:absolute;right:.25em;top:.25em;transition:background-color .25s;z-index:1}:hover>.md-code__nav{background-color:var(--md-code-bg-color--light)}.md-code__button{color:var(--md-default-fg-color--lightest);cursor:pointer;display:block;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;transition:color .25s;width:1.5em}:hover>*>.md-code__button{color:var(--md-default-fg-color--light)}.md-code__button.focus-visible,.md-code__button:hover{color:var(--md-accent-fg-color)}.md-code__button--active{color:var(--md-default-fg-color)!important}.md-code__button:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-code__button[data-md-type=select]:after{-webkit-mask-image:var(--md-code-select-icon);mask-image:var(--md-code-select-icon)}.md-code__button[data-md-type=copy]:after{-webkit-mask-image:var(--md-code-copy-icon);mask-image:var(--md-code-copy-icon)}@keyframes consent{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes overlay{0%{opacity:0}to{opacity:1}}.md-consent__overlay{animation:overlay .35s both;-webkit-backdrop-filter:blur(.2rem);backdrop-filter:blur(.2rem);background-color:var(--md-default-bg-color--light);height:100%;opacity:1;position:fixed;top:0;width:100%;z-index:5}.md-consent__inner{bottom:0;display:flex;justify-content:center;max-height:100%;padding:0;position:fixed;width:100%;z-index:5}.md-consent__form{animation:consent .5s cubic-bezier(.1,.7,.1,1) both;background-color:var(--md-default-bg-color);border:0;border-radius:.8rem;box-shadow:var(--md-shadow-z3);margin:.4rem;overflow:auto;padding-left:1.2rem;padding-right:1.2rem}.md-consent__settings{display:none;margin:1em 0}input:checked+.md-consent__settings{display:block}.md-consent__controls{line-height:1.2;margin-bottom:.8rem}.md-typeset .md-consent__controls .md-button{display:inline}@media screen and (max-width:44.984375em){.md-typeset .md-consent__controls .md-button{display:block;margin-top:.4rem;text-align:center;width:100%}}.md-consent label{cursor:pointer}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.7rem}@media screen and (min-width:76.25em){[dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner,[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}[dir=ltr] .md-content__button{float:right}[dir=rtl] .md-content__button{float:left}[dir=ltr] .md-content__button{margin-left:.4rem}[dir=rtl] .md-content__button{margin-right:.4rem}.md-content__button{background-color:var(--md-default-fg-color--lightest);border-radius:.4rem;display:flex;margin-top:.2rem;padding:.3rem}@media print{.md-content__button{display:none}}.md-typeset .md-content__button{color:var(--md-default-fg-color);transition:color .25s,background-color .25s}.md-typeset .md-content__button svg{opacity:.5;transition:opacity .25s}.md-typeset .md-content__button:focus,.md-typeset .md-content__button:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset .md-content__button:focus svg,.md-typeset .md-content__button:hover svg{opacity:1}.md-content__button svg{height:.9rem;width:.9rem}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}.md-content__button svg.lucide{fill:#0000;stroke:currentcolor}[dir=ltr] .md-dialog{right:.8rem}[dir=rtl] .md-dialog{left:.8rem}.md-dialog{background-color:var(--md-accent-fg-color);border-radius:1.2rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem 1.2rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.md-dialog{display:none}}.md-dialog--active{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-feedback{margin:2em 0 1em;text-align:center}.md-feedback fieldset{border:none;margin:0;padding:0}.md-feedback__title{font-weight:700;margin:1em auto}.md-feedback__inner{position:relative}.md-feedback__list{display:flex;flex-wrap:wrap;place-content:baseline center;position:relative}.md-feedback__list:hover .md-icon:not(:disabled){color:var(--md-default-fg-color--lighter)}:disabled .md-feedback__list{min-height:1.8rem}.md-feedback__icon{color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;margin:0 .1rem;transition:color 125ms}.md-feedback__icon:not(:disabled).md-icon:hover{color:var(--md-accent-fg-color)}.md-feedback__icon:disabled{color:var(--md-default-fg-color--lightest);pointer-events:none}.md-feedback__note{opacity:0;position:relative;transform:translateY(.4rem);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-feedback__note>*{margin:0 auto;max-width:16rem}:disabled .md-feedback__note{opacity:1;transform:translateY(0)}@media print{.md-feedback{display:none}}.md-footer{background-color:var(--md-default-bg-color);border-top:.05rem solid var(--md-default-fg-color--lightest);color:var(--md-default-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{justify-content:space-between;overflow:auto;padding:.2rem}.md-footer__inner:not([hidden]){display:flex}.md-footer__link{align-items:end;display:flex;flex-grow:0.01;margin-bottom:.4rem;margin-top:1rem;max-width:100%;outline-color:var(--md-accent-fg-color);overflow:hidden;transition:opacity .25s}.md-footer__link:focus,.md-footer__link:hover{opacity:.7}[dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.984375em){.md-footer__link--prev{flex-shrink:0}.md-footer__link--prev .md-footer__title{display:none}}[dir=ltr] .md-footer__link--next{margin-left:auto}[dir=rtl] .md-footer__link--next{margin-right:auto}.md-footer__link--next{text-align:right}[dir=rtl] .md-footer__link--next{text-align:left}.md-footer__title{flex-grow:1;font-size:.8rem;margin-bottom:.7rem;max-width:calc(100% - 2.4rem);padding:0 1rem;white-space:nowrap}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.6rem;opacity:.7}.md-footer-meta{background-color:var(--md-default-fg-color--lightest)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a:not(:focus,:hover){color:var(--md-default-fg-color)}.md-copyright{color:var(--md-default-fg-color--light);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-copyright{width:auto}}.md-copyright__highlight{color:var(--md-default-fg-color)}.md-social{display:inline-flex;gap:.2rem;margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-social{padding:.6rem 0}}.md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-social__link:before{line-height:1.9}.md-social__link svg{fill:currentcolor;max-height:.8rem;vertical-align:-25%}.md-typeset .md-button{background-color:var(--md-default-fg-color--lightest);border-radius:1.2rem;color:var(--md-default-fg-color--light);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;text-decoration:none;transition:color 125ms,background-color 125ms,opacity 125ms}.md-typeset .md-button.focus-visible{outline-offset:0}.md-typeset .md-button:focus,.md-typeset .md-button:hover{color:var(--md-default-fg-color--light);opacity:.8}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button--primary:focus,.md-typeset .md-button--primary:hover{color:var(--md-primary-bg-color);opacity:.8}[dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .md-input,[dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.md-typeset .md-input:focus,.md-typeset .md-input:hover{border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input--stretch{width:100%}.md-header{-webkit-backdrop-filter:blur(.4rem);backdrop-filter:blur(.4rem);background-color:var(--md-default-bg-color--light);color:var(--md-default-fg-color);display:block;left:0;position:sticky;right:0;top:0;z-index:4}@media print{.md-header{display:none}}.md-header[hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1)}.md-header--shadow{box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest);transition:transform .25s cubic-bezier(.1,.7,.1,1)}.md-header__inner{align-items:center;display:flex;padding:0 .4rem}.md-header__button{color:currentcolor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.234375em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo img,.md-header__button.md-logo svg{fill:currentcolor;display:block;height:1.2rem;width:auto}.md-header__button.md-logo img.lucide,.md-header__button.md-logo svg.lucide{fill:#0000;stroke:currentcolor}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;white-space:nowrap}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__topic:first-child{font-weight:700}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;letter-spacing:-.025em;line-height:2.4rem;margin-left:.4rem;margin-right:.4rem}.md-header__title--active .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title--active .md-header__topic{transform:translateX(1.25rem)}.md-header__title--active .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;white-space:nowrap}.md-header__option>input{bottom:0}.md-header__source{display:none}@media screen and (min-width:60em){[dir=ltr] .md-header__source{margin-left:1rem}[dir=rtl] .md-header__source{margin-right:1rem}.md-header__source{display:block;max-width:11.5rem;width:11.5rem}}@media screen and (min-width:76.25em){[dir=ltr] .md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}.md-header .md-icon svg{height:1rem;width:1rem}:root{--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-chevron-right" viewBox="0 0 24 24"><path d="m9 18 6-6-6-6"/></svg>')}.md-nav{font-size:.7rem;line-height:1.3;transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav .md-nav__title{display:none}.md-nav__list{display:flex;flex-direction:column;gap:.2rem;list-style:none;margin:0;padding:0}[dir=ltr] .md-nav__list .md-nav__list{margin-left:.6rem}[dir=rtl] .md-nav__list .md-nav__list{margin-right:.6rem}.md-nav__item--nested .md-nav__list:after,.md-nav__item--nested .md-nav__list:before{content:" ";display:block;height:0}.md-nav__link{align-items:flex-start;border-radius:.4rem;cursor:pointer;display:flex;gap:.6rem;margin-left:.2rem;margin-right:.2rem;padding:.35rem .8rem;transition:color .25s,background-color .25s}.md-nav__link .md-nav__link{margin:0}.md-nav__link--passed,.md-nav__link--passed code{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{font-weight:500}.md-nav--primary .md-nav__item .md-nav__link--active{background:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-nav__item .md-nav__link--active,.md-nav__item .md-nav__link--active code{color:var(--md-typeset-a-color)}.md-nav__item .md-nav__link--active code svg,.md-nav__item .md-nav__link--active svg{opacity:1}[dir=ltr] .md-nav__item--nested>.md-nav__link:not(.md-nav__container){padding-right:.35rem}[dir=rtl] .md-nav__item--nested>.md-nav__link:not(.md-nav__container){padding-left:.35rem}.md-nav__link .md-ellipsis{flex-grow:1;position:relative}.md-nav__link .md-ellipsis code{word-break:normal}.md-nav__link svg{fill:currentcolor;flex-shrink:0;height:1.3em;opacity:.5;position:relative;width:1.3em}.md-nav__link svg.lucide{fill:#0000;stroke:currentcolor}.md-nav--primary .md-nav__link[for]:focus:not(.md-nav__link--active),.md-nav--primary .md-nav__link[for]:hover:not(.md-nav__link--active),.md-nav--primary .md-nav__link[href]:focus:not(.md-nav__link--active),.md-nav--primary .md-nav__link[href]:hover:not(.md-nav__link--active){background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color)}.md-nav--secondary .md-nav__link{margin-left:.2rem;margin-right:.2rem;padding:.35rem .8rem}.md-nav--secondary .md-nav__link[for]:focus,.md-nav--secondary .md-nav__link[for]:hover,.md-nav--secondary .md-nav__link[href]:focus,.md-nav--secondary .md-nav__link[href]:hover{background-color:initial;color:var(--md-accent-fg-color)}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link[for=__toc],.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__icon{font-size:.9rem;height:.9rem;width:.9rem}[dir=rtl] .md-nav__icon:after{transform:rotate(180deg)}.md-nav__item--nested .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:transform .25s;width:100%}@media screen and (min-width:76.25em){.md-nav__item--nested.md-nav__item--section>.md-nav__link .md-nav__icon:after{display:none}}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon:after,.md-nav__item--nested .md-toggle--indeterminate~.md-nav__link .md-nav__icon:after{transform:rotate(90deg)}.md-nav__container{background:#0000;gap:.2rem;padding:0}.md-nav__container>:first-child{flex-grow:1;min-width:0}.md-nav__container>:nth-child(2){padding:.35rem}@media screen and (min-width:76.25em){.md-nav__item--section>.md-nav__container>:nth-child(2){display:none}}.md-nav__container__icon{flex-shrink:0}.md-nav__toggle~.md-nav{display:grid;grid-template-rows:minmax(.005rem,0fr);opacity:0;transition:grid-template-rows .25s cubic-bezier(.86,0,.07,1),opacity .25s,visibility 0ms .25s;visibility:collapse}.md-nav__toggle~.md-nav>.md-nav__list{overflow:hidden}.md-nav__toggle.md-toggle--indeterminate~.md-nav,.md-nav__toggle:checked~.md-nav{grid-template-rows:minmax(.4rem,1fr);opacity:1;transition:grid-template-rows .25s cubic-bezier(.86,0,.07,1),opacity .15s .1s,visibility 0ms;visibility:visible}.md-nav__toggle.md-toggle--indeterminate~.md-nav{transition:none}.md-nav--secondary{margin-bottom:.1rem;margin-top:.1rem}.md-nav--secondary .md-nav{margin-top:.2rem}.md-nav--secondary .md-nav__title{background:var(--md-default-bg-color);display:flex;font-weight:700;margin-left:.2rem;margin-right:.2rem;padding:.35rem .6rem;position:sticky;top:0;z-index:1}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}.md-nav--secondary .md-nav__link{padding:.2rem .6rem}@media screen and (max-width:76.234375em){.md-nav--primary{margin-bottom:.4rem;margin-left:.2rem;margin-right:.2rem}.md-nav .md-nav__title[for=__drawer]{align-items:center;border-bottom:.05rem solid var(--md-default-fg-color-lightest);display:flex;font-size:.8rem;font-weight:700;gap:.4rem;padding:.8rem}.md-nav .md-nav__title[for=__drawer] .md-logo{height:1.6rem;width:1.6rem}.md-nav .md-nav__title[for=__drawer] .md-logo img,.md-nav .md-nav__title[for=__drawer] .md-logo svg{fill:currentcolor;display:block;height:100%;max-width:100%;object-fit:contain;width:auto}.md-nav .md-nav__title[for=__drawer] .md-logo img.lucide,.md-nav .md-nav__title[for=__drawer] .md-logo svg.lucide{fill:#0000;stroke:currentcolor}}.md-nav__source{display:none}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{margin-left:1.1rem}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{margin-right:1.1rem}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-default-fg-color--lightest)}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-default-fg-color--lightest)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:.5em;margin-top:.5em;opacity:1;visibility:visible}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary .md-nav__link{background:#0000}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary .md-nav__link--active{font-weight:500}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary .md-nav__link:focus,.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary .md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__list{margin-left:0;overflow:visible;padding-bottom:0}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}@media screen and (min-width:76.25em){.md-nav--primary{margin-bottom:.1rem;margin-top:.1rem}.md-nav__source{display:none}[dir=ltr] .md-nav__list .md-nav__item--section>.md-nav>.md-nav__list{margin-left:0}[dir=rtl] .md-nav__list .md-nav__item--section>.md-nav>.md-nav__list{margin-right:0}.md-nav__item--section>.md-nav__link--active,.md-nav__item--section>.md-nav__link>.md-nav__link--active{font-weight:700}.md-nav__item--section{margin-top:.4rem}.md-nav__item--section:first-child{margin-top:0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700}.md-nav__item--section>.md-nav__link:not(.md-nav__container){pointer-events:none}.md-nav__item--section>.md-nav{display:block;opacity:1;visibility:visible}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav--lifted{margin-top:0}.md-nav--lifted>.md-nav__list>.md-nav__item{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav{margin-top:.1rem}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav>.md-nav__list:before,.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active.md-nav__item--section{margin:0}.md-nav--lifted .md-nav[data-md-level="1"]{grid-template-rows:minmax(.4rem,1fr);opacity:1;visibility:visible}}:root{--md-path-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-chevron-right" viewBox="0 0 24 24"><path d="m9 18 6-6-6-6"/></svg>')}.md-path{font-size:.7rem;margin:.4rem .8rem 0;overflow:auto;padding-top:1.2rem}.md-path:not([hidden]){display:block}@media screen and (min-width:76.25em){.md-path{margin:.4rem 1.2rem 0}}.md-path__list{align-items:center;display:flex;gap:.2rem;list-style:none;margin:0;padding:0}.md-path__item:not(:first-child){align-items:center;display:inline-flex;gap:.2rem;white-space:nowrap}.md-path__item:not(:first-child):before{background-color:var(--md-default-fg-color--lighter);content:"";display:inline;height:.6rem;-webkit-mask-image:var(--md-path-icon);mask-image:var(--md-path-icon);width:.6rem}.md-path__link{align-items:center;color:var(--md-default-fg-color--light);display:flex;transition:color .25s}.md-path__link:focus,.md-path__link:hover{color:var(--md-accent-fg-color)}:root{--md-progress-value:0;--md-progress-delay:400ms}.md-progress{background:var(--md-primary-bg-color);height:.075rem;opacity:min(clamp(0,var(--md-progress-value),1),clamp(0,100 - var(--md-progress-value),1));position:fixed;top:0;transform:scaleX(calc(var(--md-progress-value)*1%));transform-origin:left;transition:transform .5s cubic-bezier(.19,1,.22,1),opacity .25s var(--md-progress-delay);width:100%;z-index:4}:root{--md-search-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-search" viewBox="0 0 24 24"><path d="m21 21-4.34-4.34"/><circle cx="11" cy="11" r="8"/></svg>')}.md-search{position:relative}@media screen and (min-width:45em){.md-search{padding:.2rem 0}}@media screen and (max-width:59.984375em){.md-search{display:none}}.no-js .md-search{display:none}[dir=ltr] .md-search__button{padding-left:1.9rem;padding-right:2.2rem}[dir=rtl] .md-search__button{padding-left:2.2rem;padding-right:1.9rem}.md-search__button{background:var(--md-default-bg-color);color:var(--md-default-fg-color);cursor:pointer;font-size:.7rem;position:relative;text-align:left}@media screen and (min-width:45em){.md-search__button{background-color:var(--md-default-fg-color--lightest);border-radius:.4rem;height:1.6rem;transition:background-color .4s,color .4s;width:8.9rem}.md-search__button:focus,.md-search__button:hover{background-color:var(--md-default-fg-color--lighter);color:var(--md-default-fg-color)}}[dir=ltr] .md-search__button:before{left:0}[dir=rtl] .md-search__button:before{right:0}.md-search__button:before{background-color:var(--md-default-fg-color);content:"";height:1rem;margin-left:.5rem;-webkit-mask-image:var(--md-search-icon);mask-image:var(--md-search-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.3rem;width:1rem}.md-search__button:after{background:var(--md-default-bg-color--light);border-radius:.2rem;content:"Ctrl+K";display:block;font-size:.6rem;padding:.1rem .2rem;position:absolute;right:.6rem;top:.35rem}[data-platform^=Mac] .md-search__button:after{content:"⌘K"}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:focus-within .md-select__inner,.md-select:hover .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid #0000;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid #0000;border-right:.2rem solid #0000;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}[dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.md-select__link:focus,.md-select__link:hover{color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.1rem 0;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.234375em){[dir=ltr] .md-sidebar--primary{left:-12.1rem}[dir=rtl] .md-sidebar--primary{right:-12.1rem}.md-sidebar--primary{-webkit-backdrop-filter:blur(.4rem);backdrop-filter:blur(.4rem);background-color:var(--md-default-bg-color--light);border-radius:.8rem;display:block;height:calc(100% - .8rem);position:fixed;top:.4rem;transform:translateX(0);transition:transform .25s cubic-bezier(.5,0,.5,0),box-shadow .25s;width:12.1rem;z-index:5}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.5rem);transition:transform .35s cubic-bezier(.7,.7,.1,1),box-shadow .35s}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.5rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;position:absolute;right:0;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}.md-header--lifted~.md-container .md-sidebar{top:4.8rem}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) #0000}@media screen and (min-width:60em){.md-sidebar__scrollwrap{scrollbar-gutter:stable;scrollbar-width:thin}}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap:focus-within,.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb:hover,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@supports selector(::-webkit-scrollbar){.md-sidebar__scrollwrap{scrollbar-gutter:auto}[dir=ltr] .md-sidebar__inner{padding-right:calc(100% - 11.5rem)}[dir=rtl] .md-sidebar__inner{padding-left:calc(100% - 11.5rem)}@media screen and (max-width:76.234375em){[dir=ltr] .md-sidebar__inner{padding-right:0}[dir=rtl] .md-sidebar__inner{padding-left:0}}}@media screen and (max-width:76.234375em){.md-overlay{-webkit-backdrop-filter:blur(.2rem);backdrop-filter:blur(.2rem);background-color:var(--md-default-bg-color--light);height:0;opacity:0;position:fixed;top:0;transition:width 0ms .6s,height 0ms .6s,opacity .35s .25s;width:0;z-index:5}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .35s;width:100%}}@keyframes facts{0%{height:0}to{height:.65rem}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-git-fork" viewBox="0 0 24 24"><circle cx="12" cy="18" r="3"/><circle cx="6" cy="6" r="3"/><circle cx="18" cy="6" r="3"/><path d="M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9m6 3v3"/></svg>');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book" viewBox="0 0 24 24"><path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20"/></svg>');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-star" viewBox="0 0 24 24"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.12 2.12 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16z"/></svg>');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-tag" viewBox="0 0 24 24"><path d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z"/><circle cx="7.5" cy="7.5" r=".5" fill="currentColor"/></svg>')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.55rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}[dir=ltr] .md-source__icon svg{margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem}.md-source__icon svg{margin-top:.6rem}.md-header .md-source__icon svg{height:1.2rem;width:1.2rem}[dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}[dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}[dir=ltr] .md-source__repository{margin-left:.6rem}[dir=rtl] .md-source__repository{margin-right:.6rem}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{display:flex;font-size:.55rem;gap:.4rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0;width:100%}.md-source__repository--active .md-source__facts{animation:facts 0ms ease-in}.md-source__fact{overflow:hidden;text-overflow:ellipsis}.md-source__repository--active .md-source__fact{animation:fact 0ms ease-out}[dir=ltr] .md-source__fact:before{margin-right:.1rem}[dir=rtl] .md-source__fact:before{margin-left:.1rem}.md-source__fact:before{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}.md-source__fact:nth-child(1n+2){flex-shrink:0}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.md-source-file{margin:1em 0}[dir=ltr] .md-source-file__fact{margin-right:.6rem}[dir=rtl] .md-source-file__fact{margin-left:.6rem}.md-source-file__fact{align-items:center;color:var(--md-default-fg-color--light);display:inline-flex;font-size:.68rem;gap:.3rem}.md-source-file__fact .md-icon{flex-shrink:0;margin-bottom:.05rem}[dir=ltr] .md-source-file__fact .md-author{float:left}[dir=rtl] .md-source-file__fact .md-author{float:right}.md-source-file__fact .md-author{margin-right:.2rem}.md-source-file__fact svg{width:.9rem}:root{--md-status:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-info" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4m0-4h.01"/></svg>');--md-status--new:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-badge-alert" viewBox="0 0 24 24"><path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76M12 8v4m0 4h.01"/></svg>');--md-status--deprecated:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-trash" viewBox="0 0 24 24"><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/></svg>')}.md-status:after{background-color:var(--md-default-fg-color--light);content:"";display:inline-block;height:1.125em;-webkit-mask-image:var(--md-status);mask-image:var(--md-status);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-bottom;width:1.125em}.md-status:hover:after{background-color:currentcolor}.md-status--new:after{-webkit-mask-image:var(--md-status--new);mask-image:var(--md-status--new)}.md-status--deprecated:after{-webkit-mask-image:var(--md-status--deprecated);mask-image:var(--md-status--deprecated)}.md-tabs{box-shadow:0 -.05rem 0 inset var(--md-default-fg-color--lightest);color:var(--md-default-fg-color);display:block;line-height:1.3;overflow:auto;width:100%;z-index:2}@media print{.md-tabs{display:none}}@media screen and (max-width:76.234375em){.md-tabs{display:none}}.md-header--lifted .md-tabs{box-shadow:none;margin-bottom:-.05rem}.md-tabs[hidden]{pointer-events:none}[dir=ltr] .md-tabs__list{margin-left:.4rem}[dir=rtl] .md-tabs__list{margin-right:.4rem}.md-tabs__list{contain:content;display:flex;list-style:none;margin:0;overflow:auto;padding:0;scrollbar-width:none;white-space:nowrap}.md-tabs__list::-webkit-scrollbar{display:none}.md-tabs__item{height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__item--active{border-bottom:.05rem solid var(--md-default-fg-color);font-weight:500;position:relative;transition:border-bottom .25s}.md-tabs[hidden] .md-tabs__item--active{border-bottom:.05rem solid #0000}.md-tabs__item--active .md-tabs__link{color:inherit;opacity:1}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link:focus,.md-tabs__link:hover{color:inherit;opacity:1}[dir=ltr] .md-tabs__link svg{margin-right:.4rem}[dir=rtl] .md-tabs__link svg{margin-left:.4rem}.md-tabs__link svg{fill:currentcolor;height:1.3em}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}:root{--md-tag-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m5.41 21 .71-4h-4l.35-2h4l1.06-6h-4l.35-2h4l.71-4h2l-.71 4h6l.71-4h2l-.71 4h4l-.35 2h-4l-1.06 6h4l-.35 2h-4l-.71 4h-2l.71-4h-6l-.71 4zM9.53 9l-1.06 6h6l1.06-6z"/></svg>')}.md-typeset .md-tags:not([hidden]){display:inline-flex;flex-wrap:wrap;gap:.5em;margin-bottom:.75em;margin-top:-.125em}.md-typeset .md-tag{align-items:center;background:var(--md-default-fg-color--lightest);border-radius:.4rem;display:inline-flex;font-size:.64rem;font-size:min(.8em,.64rem);font-weight:700;gap:.5em;letter-spacing:normal;line-height:1.6;padding:.3125em .78125em}.md-typeset .md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.md-typeset .md-tag[href]:focus,.md-typeset .md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[id]>.md-typeset .md-tag{vertical-align:text-top}.md-typeset .md-tag-shadow{opacity:.5}.md-typeset .md-tag-icon:before{background-color:var(--md-default-fg-color--lighter);content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-tag-icon);mask-image:var(--md-tag-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset .md-tag-icon[href]:focus:before,.md-typeset .md-tag-icon[href]:hover:before{background-color:var(--md-accent-bg-color)}@keyframes pulse{0%{transform:scale(.95)}75%{transform:scale(1)}to{transform:scale(.95)}}:root{--md-annotation-bg-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg>');--md-annotation-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 13h-4v4h-2v-4H7v-2h4V7h2v4h4m-5-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg>')}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.4rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);font-family:var(--md-text-font-family);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x) - .1rem,100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem);max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:calc(var(--md-tooltip-y) - .1rem);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}.md-tooltip--active{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,z-index 0ms;z-index:2}.md-tooltip--inline{font-weight:700;-webkit-user-select:none;user-select:none;width:auto}.md-tooltip--inline:not(.md-tooltip--active){transform:translateY(.2rem) scale(.9)}.md-tooltip--inline .md-tooltip__inner{font-size:.5rem;padding:.2rem .4rem}[hidden]+.md-tooltip--inline{display:none}.focus-visible>.md-tooltip,.md-tooltip:target{outline:var(--md-accent-fg-color) auto}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner.md-typeset>:first-child{margin-top:0}.md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.md-annotation{font-style:normal;font-weight:400;outline:none;text-align:initial;vertical-align:text-bottom;white-space:normal}[dir=rtl] .md-annotation{direction:rtl}code .md-annotation{font-family:var(--md-code-font-family);font-size:inherit}.md-annotation:not([hidden]){display:inline-block;line-height:1.25}.md-annotation__index{border-radius:.01px;cursor:pointer;display:inline-block;margin-left:.4ch;margin-right:.4ch;outline:none;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;vertical-align:text-top;z-index:0}.md-annotation .md-annotation__index{transition:z-index .25s}@media screen{.md-annotation__index{width:2.2ch}[data-md-visible]>.md-annotation__index{animation:pulse 2s infinite}.md-annotation__index:before{background:var(--md-default-bg-color);-webkit-mask-image:var(--md-annotation-bg-icon);mask-image:var(--md-annotation-bg-icon)}.md-annotation__index:after,.md-annotation__index:before{content:"";height:2.2ch;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:-.1ch;width:2.2ch;z-index:-1}.md-annotation__index:after{background-color:var(--md-default-fg-color--lighter);-webkit-mask-image:var(--md-annotation-icon);mask-image:var(--md-annotation-icon);transform:scale(1.0001);transition:background-color .25s,transform .25s}.md-tooltip--active+.md-annotation__index:after{transform:rotate(45deg)}.md-tooltip--active+.md-annotation__index:after,:hover>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}}.md-tooltip--active+.md-annotation__index{animation-play-state:paused;transition-duration:0ms;z-index:2}.md-annotation__index [data-md-annotation-id]{display:inline-block}@media print{.md-annotation__index [data-md-annotation-id]{background:var(--md-default-fg-color--lighter);border-radius:2ch;color:var(--md-default-bg-color);font-weight:700;padding:0 .6ch;white-space:nowrap}.md-annotation__index [data-md-annotation-id]:after{content:attr(data-md-annotation-id)}}.md-typeset .md-annotation-list{counter-reset:annotation;list-style:none!important}.md-typeset .md-annotation-list li{position:relative}[dir=ltr] .md-typeset .md-annotation-list li:before{left:-2.125em}[dir=rtl] .md-typeset .md-annotation-list li:before{right:-2.125em}.md-typeset .md-annotation-list li:before{background:var(--md-default-fg-color--lighter);border-radius:2ch;color:var(--md-default-bg-color);content:counter(annotation);counter-increment:annotation;font-size:.8875em;font-weight:700;height:2ch;line-height:1.25;min-width:2ch;padding:0 .6ch;position:absolute;text-align:center;top:.25em}:root{--md-tooltip-width:20rem;--md-tooltip-tail:0.3rem}.md-tooltip2{-webkit-backface-visibility:hidden;backface-visibility:hidden;color:var(--md-default-fg-color);font-family:var(--md-text-font-family);opacity:0;pointer-events:none;position:absolute;top:calc(var(--md-tooltip-host-y) + var(--md-tooltip-y));transform:translateY(.4rem);transform-origin:calc(var(--md-tooltip-host-x) + var(--md-tooltip-x)) 0;transition:transform 0ms .25s,opacity .25s,z-index .25s;width:100%;z-index:0}.md-tooltip2:before{border-left:var(--md-tooltip-tail) solid #0000;border-right:var(--md-tooltip-tail) solid #0000;content:"";display:block;left:clamp(1.5 * .8rem,var(--md-tooltip-host-x) + var(--md-tooltip-x) - var(--md-tooltip-tail),100vw - 2 * var(--md-tooltip-tail) - 1.5 * .8rem);position:absolute;z-index:1}.md-tooltip2--top:before{border-top:var(--md-tooltip-tail) solid var(--md-default-bg-color);bottom:calc(var(--md-tooltip-tail)*-1 + .025rem);filter:drop-shadow(0 1px 0 var(--md-default-fg-color--lightest))}.md-tooltip2--bottom:before{border-bottom:var(--md-tooltip-tail) solid var(--md-default-bg-color);filter:drop-shadow(0 -1px 0 var(--md-default-fg-color--lightest));top:calc(var(--md-tooltip-tail)*-1 + .025rem)}.md-tooltip2--active{opacity:1;transform:translateY(0);transition:transform .4s cubic-bezier(0,1,.35,1),opacity .25s,z-index 0ms;z-index:2}.md-tooltip2__inner{scrollbar-gutter:stable;background-color:var(--md-default-bg-color);border-radius:.4rem;box-shadow:var(--md-shadow-z2);left:clamp(.8rem,var(--md-tooltip-host-x) - .8rem,100vw - var(--md-tooltip-width) - .8rem);max-height:40vh;max-width:calc(100vw - 1.6rem);position:relative;scrollbar-width:thin}.md-tooltip2__inner::-webkit-scrollbar{height:.2rem;width:.2rem}.md-tooltip2__inner::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-tooltip2__inner::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}[role=dialog]>.md-tooltip2__inner{font-size:.64rem;overflow:auto;padding:0 .8rem;pointer-events:auto;width:var(--md-tooltip-width)}[role=dialog]>.md-tooltip2__inner:after,[role=dialog]>.md-tooltip2__inner:before{content:"";display:block;height:.8rem;position:sticky;width:100%;z-index:10}[role=dialog]>.md-tooltip2__inner:before{background:linear-gradient(var(--md-default-bg-color),#0000 75%);top:0}[role=dialog]>.md-tooltip2__inner:after{background:linear-gradient(#0000,var(--md-default-bg-color) 75%);bottom:0}[role=tooltip]>.md-tooltip2__inner{font-size:.5rem;font-weight:700;left:clamp(.8rem,var(--md-tooltip-host-x) + var(--md-tooltip-x) - var(--md-tooltip-width)/2,100vw - var(--md-tooltip-width) - .8rem);max-width:min(100vw - 2 * .8rem,400px);padding:.2rem .4rem;-webkit-user-select:none;user-select:none;width:fit-content}.md-tooltip2__inner.md-typeset>:first-child{margin-top:0}.md-tooltip2__inner.md-typeset>:last-child{margin-bottom:0}[dir=ltr] .md-top{margin-left:50%}[dir=rtl] .md-top{margin-right:50%}.md-top{-webkit-backdrop-filter:blur(.4rem);backdrop-filter:blur(.4rem);background-color:var(--md-default-bg-color--light);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);cursor:pointer;display:flex;font-size:.7rem;gap:.4rem;outline:none;padding:.4rem .8rem .4rem .6rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.md-top{display:none}}[dir=rtl] .md-top{transform:translate(50%)}.md-top[hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}[dir=rtl] .md-top[hidden]{transform:translate(50%,.2rem)}.md-top:focus,.md-top:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top svg{display:inline-block;height:.9rem;vertical-align:-.5em;width:.9rem}.md-top svg.lucide{fill:#0000;stroke:currentcolor}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-paperclip" viewBox="0 0 24 24"><path d="m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551"/></svg>');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-notebook-text" viewBox="0 0 24 24"><path d="M2 6h4m-4 4h4m-4 4h4m-4 4h4"/><rect width="16" height="20" x="4" y="2" rx="2"/><path d="M9.5 8h5m-5 4H16m-6.5 4H14"/></svg>');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-info" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4m0-4h.01"/></svg>');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-flame" viewBox="0 0 24 24"><path d="M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4"/></svg>');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-check" viewBox="0 0 24 24"><path d="M20 6 9 17l-5-5"/></svg>');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-circle-question-mark" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3m.08 4h.01"/></svg>');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-triangle-alert" viewBox="0 0 24 24"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3M12 9v4m0 4h.01"/></svg>');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-octagon-alert" viewBox="0 0 24 24"><path d="M12 16h.01M12 8v4m3.312-10a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z"/></svg>');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-zap" viewBox="0 0 24 24"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"/></svg>');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-bug" viewBox="0 0 24 24"><path d="M12 20v-9m2-4a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4zm.12-3.12L16 2"/><path d="M21 21a4 4 0 0 0-3.81-4M21 5a4 4 0 0 1-3.55 3.97M22 13h-4M3 21a4 4 0 0 1 3.81-4M3 5a4 4 0 0 0 3.55 3.97M6 13H2M8 2l1.88 1.88M9 7.13V6a3 3 0 1 1 6 0v1.13"/></svg>');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-flask-conical" viewBox="0 0 24 24"><path d="M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2M6.453 15h11.094M8.5 2h7"/></svg>');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-message-square-quote" viewBox="0 0 24 24"><path d="M14 14a2 2 0 0 0 2-2V8h-2"/><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"/><path d="M8 14a2 2 0 0 0 2-2V8H8"/></svg>')}.md-typeset .admonition,.md-typeset details{background-color:#448aff1a;border-radius:.4rem;color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .8rem;page-break-inside:avoid}.md-typeset .admonition>*,.md-typeset details>*{box-sizing:border-box}.md-typeset .admonition .admonition,.md-typeset .admonition details,.md-typeset details .admonition,.md-typeset details details{margin-bottom:1em;margin-top:1em}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition>.tabbed-set:only-child,.md-typeset details>.tabbed-set:only-child{margin-top:0}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{padding-left:1.6rem;padding-right:.8rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding-left:.8rem;padding-right:1.6rem}.md-typeset .admonition-title,.md-typeset summary{font-weight:700;margin-bottom:1em;margin-top:.6rem;position:relative}[dir=ltr] .md-typeset .admonition-title:before,[dir=ltr] .md-typeset summary:before{left:0}[dir=rtl] .md-typeset .admonition-title:before,[dir=rtl] .md-typeset summary:before{right:0}.md-typeset .admonition-title:before,.md-typeset summary:before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.125em;width:1rem}.md-typeset .admonition.note,.md-typeset details.note{background-color:#448aff1a}.md-typeset .note>.admonition-title:before,.md-typeset .note>summary:before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.md-typeset .note>.admonition-title:after,.md-typeset .note>summary:after{color:#448aff}.md-typeset .admonition.abstract,.md-typeset details.abstract{background-color:#00b0ff1a}.md-typeset .abstract>.admonition-title:before,.md-typeset .abstract>summary:before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.md-typeset .abstract>.admonition-title:after,.md-typeset .abstract>summary:after{color:#00b0ff}.md-typeset .admonition.info,.md-typeset details.info{background-color:#00b8d41a}.md-typeset .info>.admonition-title:before,.md-typeset .info>summary:before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.md-typeset .info>.admonition-title:after,.md-typeset .info>summary:after{color:#00b8d4}.md-typeset .admonition.tip,.md-typeset details.tip{background-color:#00bfa51a}.md-typeset .tip>.admonition-title:before,.md-typeset .tip>summary:before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.md-typeset .tip>.admonition-title:after,.md-typeset .tip>summary:after{color:#00bfa5}.md-typeset .admonition.success,.md-typeset details.success{background-color:#00c8531a}.md-typeset .success>.admonition-title:before,.md-typeset .success>summary:before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.md-typeset .success>.admonition-title:after,.md-typeset .success>summary:after{color:#00c853}.md-typeset .admonition.question,.md-typeset details.question{background-color:#64dd171a}.md-typeset .question>.admonition-title:before,.md-typeset .question>summary:before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.md-typeset .question>.admonition-title:after,.md-typeset .question>summary:after{color:#64dd17}.md-typeset .admonition.warning,.md-typeset details.warning{background-color:#ff91001a}.md-typeset .warning>.admonition-title:before,.md-typeset .warning>summary:before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.md-typeset .warning>.admonition-title:after,.md-typeset .warning>summary:after{color:#ff9100}.md-typeset .admonition.failure,.md-typeset details.failure{background-color:#ff52521a}.md-typeset .failure>.admonition-title:before,.md-typeset .failure>summary:before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.md-typeset .failure>.admonition-title:after,.md-typeset .failure>summary:after{color:#ff5252}.md-typeset .admonition.danger,.md-typeset details.danger{background-color:#ff17441a}.md-typeset .danger>.admonition-title:before,.md-typeset .danger>summary:before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.md-typeset .danger>.admonition-title:after,.md-typeset .danger>summary:after{color:#ff1744}.md-typeset .admonition.bug,.md-typeset details.bug{background-color:#f500571a}.md-typeset .bug>.admonition-title:before,.md-typeset .bug>summary:before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.md-typeset .bug>.admonition-title:after,.md-typeset .bug>summary:after{color:#f50057}.md-typeset .admonition.example,.md-typeset details.example{background-color:#7c4dff1a}.md-typeset .example>.admonition-title:before,.md-typeset .example>summary:before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.md-typeset .example>.admonition-title:after,.md-typeset .example>summary:after{color:#7c4dff}.md-typeset .admonition.quote,.md-typeset details.quote{background-color:#9e9e9e1a}.md-typeset .quote>.admonition-title:before,.md-typeset .quote>summary:before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.md-typeset .quote>.admonition-title:after,.md-typeset .quote>summary:after{color:#9e9e9e}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-up-to-line" viewBox="0 0 24 24"><path d="M5 3h14m-1 10-6-6-6 6m6-6v14"/></svg>')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}[dir=ltr] .md-typeset .footnote>ol{margin-left:0}[dir=rtl] .md-typeset .footnote>ol{margin-right:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateY(0);transition:none}.md-typeset .footnote>ol>li:hover .footnote-backref,.md-typeset .footnote>ol>li:target .footnote-backref{opacity:1;transform:translateY(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700;text-decoration:none}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateY(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateY(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateY(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentcolor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before{transform:scaleX(-1)}[dir=ltr] .md-typeset .headerlink{margin-left:.5rem}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;text-decoration:none;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}.md-typeset .headerlink:focus,.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset .headerlink:hover,.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.md-typeset h1:target{--md-scroll-offset:0.1rem}.md-typeset h3:target,.md-typeset h4:target{--md-scroll-offset:-0.1rem}:root{--md-admonition-icon--mkdocstrings:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-unfold-vertical" viewBox="0 0 24 24"><path d="M12 22v-6m0-8V2M4 12H2m8 0H8m8 0h-2m8 0h-2m-5 7-3 3-3-3m6-14-3-3-3 3"/></svg>');--md-admonition-icon--mkdocstrings-open:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-fold-vertical" viewBox="0 0 24 24"><path d="M12 22v-6m0-8V2M4 12H2m8 0H8m8 0h-2m8 0h-2m-5 7-3-3-3 3m6-14-3 3-3-3"/></svg>')}.doc-object-name{font-family:var(--md-code-font-family)}code.doc-symbol-heading{margin-right:.4rem;padding:0}[dir=ltr] .doc-labels{margin-left:.4rem}[dir=rtl] .doc-labels{margin-right:.4rem}.doc-label code{background:#0000;border:1px solid var(--md-default-fg-color--lightest);border-radius:.5rem;color:var(--md-default-fg-color--light);font-weight:400;padding-left:.3rem;padding-right:.3rem;vertical-align:text-bottom}.doc-contents td code{word-break:normal!important}.doc-md-description,.doc-md-description>p:first-child{display:inline}.md-typeset h5 .doc-object-name{text-transform:none}.doc .md-typeset__table,.doc .md-typeset__table table{display:table!important;width:100%}.doc .md-typeset__table tr{display:table-row}.doc-param-default,.doc-type_param-default{float:right}.doc-heading-parameter,.doc-heading-type_parameter{display:inline}.md-typeset .doc-heading-parameter{font-size:inherit}.doc-heading-parameter .headerlink,.doc-heading-type_parameter .headerlink{margin-left:0!important;margin-right:.2rem}.doc-section-title{font-weight:700}.doc-signature .autorefs{border-bottom:1px dotted;color:inherit}div.doc-contents:not(.first){border-left:.05rem solid var(--md-code-bg-color);margin-left:.4rem;padding-left:.8rem}:host,:root,[data-md-color-scheme=default]{--doc-symbol-parameter-fg-color:#829bd1;--doc-symbol-type_parameter-fg-color:#829bd1;--doc-symbol-attribute-fg-color:#953800;--doc-symbol-function-fg-color:#8250df;--doc-symbol-method-fg-color:#8250df;--doc-symbol-class-fg-color:#0550ae;--doc-symbol-type_alias-fg-color:#0550ae;--doc-symbol-module-fg-color:#5cad0f}[data-md-color-scheme=slate]{--doc-symbol-parameter-fg-color:#829bd1;--doc-symbol-type_parameter-fg-color:#829bd1;--doc-symbol-attribute-fg-color:#ffa657;--doc-symbol-function-fg-color:#d2a8ff;--doc-symbol-method-fg-color:#d2a8ff;--doc-symbol-class-fg-color:#79c0ff;--doc-symbol-type_alias-fg-color:#79c0ff;--doc-symbol-module-fg-color:#baff79}.md-ellipsis:has(.doc-symbol){font-family:var(--md-code-font-family);font-size:.95em}code.doc-symbol{background-color:initial;border-radius:.1rem;font-size:1em;font-weight:400}a code.doc-symbol-parameter,code.doc-symbol-parameter{color:var(--doc-symbol-parameter-fg-color)}.md-content code.doc-symbol-parameter:after{content:"param"}.md-sidebar code.doc-symbol-parameter:after{content:"p"}a code.doc-symbol-type_parameter,code.doc-symbol-type_parameter{color:var(--doc-symbol-type_parameter-fg-color)}.md-content code.doc-symbol-type_parameter:after{content:"type-param"}.md-sidebar code.doc-symbol-type_parameter:after{content:"t"}a code.doc-symbol-attribute,code.doc-symbol-attribute{color:var(--doc-symbol-attribute-fg-color)}.md-content code.doc-symbol-attribute:after{content:"attribute"}.md-sidebar code.doc-symbol-attribute:after{content:"a"}a code.doc-symbol-function,code.doc-symbol-function{color:var(--doc-symbol-function-fg-color)}.md-content code.doc-symbol-function:after{content:"func"}.md-sidebar code.doc-symbol-function:after{content:"f"}a code.doc-symbol-method,code.doc-symbol-method{color:var(--doc-symbol-method-fg-color)}.md-content code.doc-symbol-method:after{content:"method"}.md-sidebar code.doc-symbol-method:after{content:"m"}a code.doc-symbol-class,code.doc-symbol-class{color:var(--doc-symbol-class-fg-color)}.md-content code.doc-symbol-class:after{content:"class"}.md-sidebar code.doc-symbol-class:after{content:"c"}a code.doc-symbol-type_alias,code.doc-symbol-type_alias{color:var(--doc-symbol-type_alias-fg-color)}.md-content code.doc-symbol-type_alias:after{content:"type"}.md-sidebar code.doc-symbol-type_alias:after{content:"t"}a code.doc-symbol-module,code.doc-symbol-module{color:var(--doc-symbol-module-fg-color)}.md-content code.doc-symbol-module:after{content:"module"}.md-sidebar code.doc-symbol-module:after{content:"mod"}.md-typeset details.mkdocstrings-source{background:#0000;border:.05rem solid var(--md-code-bg-color)}.md-typeset details.mkdocstrings-source>summary:before{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-admonition-icon--mkdocstrings);mask-image:var(--md-admonition-icon--mkdocstrings)}.md-typeset details.mkdocstrings-source[open]>summary:before{-webkit-mask-image:var(--md-admonition-icon--mkdocstrings-open);mask-image:var(--md-admonition-icon--mkdocstrings-open)}.md-typeset details.mkdocstrings-source>summary:after{background-color:var(--md-default-fg-color--light)}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.984375em){.md-typeset div.arithmatex{margin:0 -.8rem}.md-typeset div.arithmatex>*{width:min-content}}.md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto}.md-typeset div.arithmatex>* mjx-container{margin:0!important}.md-typeset div.arithmatex mjx-assistive-mml{height:0}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset del.critic,.md-typeset ins.critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-chevron-right" viewBox="0 0 24 24"><path d="m9 18 6-6-6-6"/></svg>')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem;margin-bottom:.6rem}[dir=ltr] .md-typeset summary{padding-right:1.6rem}[dir=rtl] .md-typeset summary{padding-left:1.6rem}[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset summary{cursor:pointer;display:block;min-height:1rem;overflow:hidden}.md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[dir=ltr] .md-typeset summary:after{right:0}[dir=rtl] .md-typeset summary:after{left:0}.md-typeset summary:after{background-color:currentcolor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.125em;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.md-typeset summary::marker{display:none}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset .emojione,.md-typeset .gemoji,.md-typeset .twemoji{--md-icon-size:1.125em;display:inline-flex;height:var(--md-icon-size);vertical-align:text-top}.md-typeset .emojione svg,.md-typeset .gemoji svg,.md-typeset .twemoji svg{fill:currentcolor;max-height:100%;width:var(--md-icon-size)}.md-typeset .emojione svg.lucide,.md-typeset .gemoji svg.lucide,.md-typeset .twemoji svg.lucide{fill:#0000;stroke:currentcolor}.md-typeset .lg,.md-typeset .xl,.md-typeset .xxl,.md-typeset .xxxl{vertical-align:text-bottom}.md-typeset .middle{vertical-align:middle}.md-typeset .lg{--md-icon-size:1.5em}.md-typeset .xl{--md-icon-size:2.25em}.md-typeset .xxl{--md-icon-size:3em}.md-typeset .xxxl{--md-icon-size:4em}.highlight .o,.highlight .ow{color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight .cpf,.highlight .l,.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .si,.highlight .ss{color:var(--md-code-hl-string-color)}.highlight .cp,.highlight .se,.highlight .sh,.highlight .sr,.highlight .sx{color:var(--md-code-hl-special-color)}.highlight .il,.highlight .m,.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:var(--md-code-hl-number-color)}.highlight .k,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:var(--md-code-hl-keyword-color)}.highlight .kc,.highlight .n{color:var(--md-code-hl-name-color)}.highlight .bp,.highlight .nb,.highlight .no{color:var(--md-code-hl-constant-color)}.highlight .nc,.highlight .ne,.highlight .nf,.highlight .nn{color:var(--md-code-hl-function-color)}.highlight .nd,.highlight .ni,.highlight .nl,.highlight .nt{color:var(--md-code-hl-keyword-color)}.highlight .c,.highlight .c1,.highlight .ch,.highlight .cm,.highlight .cs,.highlight .sd{color:var(--md-code-hl-comment-color)}.highlight .na,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi{color:var(--md-code-hl-variable-color)}.highlight .ge,.highlight .gh,.highlight .go,.highlight .gp,.highlight .gr,.highlight .gs,.highlight .gt,.highlight .gu{color:var(--md-code-hl-generic-color)}.highlight .gd,.highlight .gi{border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color--light);box-shadow:2px 0 0 0 var(--md-code-hl-color) inset;display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.4rem;border-top-right-radius:.4rem;display:flow-root;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:sticky;-webkit-user-select:none;user-select:none;z-index:3}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying]{display:initial}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable tbody,.highlighttable td{display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable th.filename span.filename{margin-top:0}.highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.4rem;border-top-left-radius:.4rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .linenodiv span[class]{padding-right:.5882352941em}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit;text-decoration:none}.md-typeset .highlighttable{direction:ltr;margin:1em 0}.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-bottom-left-radius:0;border-top-left-radius:0}.md-typeset .highlight+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.4rem;border-bottom-right-radius:.4rem;border-top-width:.4rem;margin-top:-1.5em;overflow:visible;padding:0 1em}.md-typeset .highlight+.result:after{clear:both;content:"";display:block}@media screen and (max-width:44.984375em){.md-content__inner>.highlight{margin:1em -.8rem}.md-content__inner>.highlight>.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code,.md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos,.md-content__inner>.highlight>pre>code{border-radius:0}.md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}}.md-typeset .keys kbd:after,.md-typeset .keys kbd:before{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before,.md-typeset .keys .key-left-alt:before,.md-typeset .keys .key-right-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-command:before,.md-typeset .keys .key-left-command:before,.md-typeset .keys .key-right-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-control:before,.md-typeset .keys .key-left-control:before,.md-typeset .keys .key-right-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-left-meta:before,.md-typeset .keys .key-meta:before,.md-typeset .keys .key-right-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-left-option:before,.md-typeset .keys .key-option:before,.md-typeset .keys .key-right-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-left-shift:before,.md-typeset .keys .key-right-shift:before,.md-typeset .keys .key-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-left-super:before,.md-typeset .keys .key-right-super:before,.md-typeset .keys .key-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-left-windows:before,.md-typeset .keys .key-right-windows:before,.md-typeset .keys .key-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"↓";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"←";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"→";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"↑";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"⌫";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"⇤";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"⇪";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"⌧";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"☰";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"⌦";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"⏏";padding-right:.4em}.md-typeset .keys .key-end:before{content:"⤓";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"⎋";padding-right:.4em}.md-typeset .keys .key-home:before{content:"⤒";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"⎀";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"⇟";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"⇞";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"⎙";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"⇥";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"⌤";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"⏎";padding-left:.4em}:root{--md-tabbed-icon--prev:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.41 16.58 10.83 12l4.58-4.59L14 6l-6 6 6 6z"/></svg>');--md-tabbed-icon--next:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z"/></svg>')}.md-typeset .tabbed-set{border-radius:.075rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-set>input:target{--md-scroll-offset:0.625em}.md-typeset .tabbed-set>input.focus-visible~.tabbed-labels:before{background-color:var(--md-accent-fg-color)}.md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;scrollbar-width:none}@media print{.md-typeset .tabbed-labels{display:contents}}@media screen{.js .md-typeset .tabbed-labels{position:relative}.js .md-typeset .tabbed-labels:before{background:var(--md-default-fg-color);bottom:0;content:"";display:block;height:1.5px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,background-color .25s,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.md-typeset .tabbed-labels>label{border-bottom:.1rem solid #0000;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.7rem;font-weight:400;padding:.78125em 1.25em .625em;scroll-margin-inline-start:1rem;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.md-typeset .tabbed-labels>label:first-child{order:1}.md-typeset .tabbed-labels>label:nth-child(2){order:2}.md-typeset .tabbed-labels>label:nth-child(3){order:3}.md-typeset .tabbed-labels>label:nth-child(4){order:4}.md-typeset .tabbed-labels>label:nth-child(5){order:5}.md-typeset .tabbed-labels>label:nth-child(6){order:6}.md-typeset .tabbed-labels>label:nth-child(7){order:7}.md-typeset .tabbed-labels>label:nth-child(8){order:8}.md-typeset .tabbed-labels>label:nth-child(9){order:9}.md-typeset .tabbed-labels>label:nth-child(10){order:10}.md-typeset .tabbed-labels>label:nth-child(11){order:11}.md-typeset .tabbed-labels>label:nth-child(12){order:12}.md-typeset .tabbed-labels>label:nth-child(13){order:13}.md-typeset .tabbed-labels>label:nth-child(14){order:14}.md-typeset .tabbed-labels>label:nth-child(15){order:15}.md-typeset .tabbed-labels>label:nth-child(16){order:16}.md-typeset .tabbed-labels>label:nth-child(17){order:17}.md-typeset .tabbed-labels>label:nth-child(18){order:18}.md-typeset .tabbed-labels>label:nth-child(19){order:19}.md-typeset .tabbed-labels>label:nth-child(20){order:20}}.md-typeset .tabbed-labels>label:hover{color:var(--md-default-fg-color)}.md-typeset .tabbed-labels>label>[href]:first-child{color:inherit;text-decoration:none}.md-typeset .tabbed-labels--linked>label{padding:0}.md-typeset .tabbed-labels--linked>label>a{display:block;padding:.78125em 1.25em .625em}.md-typeset .tabbed-content{width:100%}@media print{.md-typeset .tabbed-content{display:contents}}.md-typeset .tabbed-block{display:none}@media print{.md-typeset .tabbed-block{display:block}.md-typeset .tabbed-block:first-child{order:1}.md-typeset .tabbed-block:nth-child(2){order:2}.md-typeset .tabbed-block:nth-child(3){order:3}.md-typeset .tabbed-block:nth-child(4){order:4}.md-typeset .tabbed-block:nth-child(5){order:5}.md-typeset .tabbed-block:nth-child(6){order:6}.md-typeset .tabbed-block:nth-child(7){order:7}.md-typeset .tabbed-block:nth-child(8){order:8}.md-typeset .tabbed-block:nth-child(9){order:9}.md-typeset .tabbed-block:nth-child(10){order:10}.md-typeset .tabbed-block:nth-child(11){order:11}.md-typeset .tabbed-block:nth-child(12){order:12}.md-typeset .tabbed-block:nth-child(13){order:13}.md-typeset .tabbed-block:nth-child(14){order:14}.md-typeset .tabbed-block:nth-child(15){order:15}.md-typeset .tabbed-block:nth-child(16){order:16}.md-typeset .tabbed-block:nth-child(17){order:17}.md-typeset .tabbed-block:nth-child(18){order:18}.md-typeset .tabbed-block:nth-child(19){order:19}.md-typeset .tabbed-block:nth-child(20){order:20}}.md-typeset .tabbed-block>.highlight:first-child>pre,.md-typeset .tabbed-block>pre:first-child{margin:0}.md-typeset .tabbed-block>.highlight:first-child>pre>code,.md-typeset .tabbed-block>pre:first-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child>.filename{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable{margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename,.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child+.result{margin-top:-.125em}.md-typeset .tabbed-block>.tabbed-set{margin:0}.md-typeset .tabbed-button{align-self:center;-webkit-backdrop-filter:blur(.4rem);backdrop-filter:blur(.4rem);background-color:var(--md-default-bg-color--light);border-radius:100%;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);cursor:pointer;display:block;height:.9rem;margin-top:.4rem;pointer-events:auto;transition:transform 125ms;width:.9rem}.md-typeset .tabbed-button:hover{transform:scale(1.125)}.md-typeset .tabbed-button:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-tabbed-icon--prev);mask-image:var(--md-tabbed-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .25s,transform .25s;width:100%}.md-typeset .tabbed-control{display:flex;height:1.9rem;justify-content:start;pointer-events:none;position:absolute;transition:opacity 125ms;width:1.2rem}[dir=rtl] .md-typeset .tabbed-control{transform:rotate(180deg)}.md-typeset .tabbed-control[hidden]{opacity:0}.md-typeset .tabbed-control--next{justify-content:end;right:0}.md-typeset .tabbed-control--next .tabbed-button:after{-webkit-mask-image:var(--md-tabbed-icon--next);mask-image:var(--md-tabbed-icon--next)}@media screen and (max-width:44.984375em){[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels:after{content:""}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-right:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-left:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-right:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{width:2rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-left:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-right:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-left:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{width:2rem}}@media screen{.md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){color:var(--md-default-fg-color);font-weight:500}.md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.md-typeset [role=dialog] .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset [role=dialog] .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset [role=dialog] .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset [role=dialog] .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset [role=dialog] .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset [role=dialog] .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset [role=dialog] .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset [role=dialog] .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset [role=dialog] .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset [role=dialog] .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset [role=dialog] .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset [role=dialog] .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset [role=dialog] .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset [role=dialog] .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset [role=dialog] .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset [role=dialog] .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset [role=dialog] .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset [role=dialog] .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset [role=dialog] .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset [role=dialog] .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),[role=dialog] .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,[role=dialog] .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),[role=dialog] .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),[role=dialog] .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),[role=dialog] .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),[role=dialog] .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),[role=dialog] .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),[role=dialog] .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),[role=dialog] .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),[role=dialog] .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),[role=dialog] .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),[role=dialog] .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),[role=dialog] .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),[role=dialog] .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),[role=dialog] .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),[role=dialog] .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),[role=dialog] .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),[role=dialog] .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),[role=dialog] .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),[role=dialog] .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){border-color:var(--md-default-fg-color)}}.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){color:var(--md-accent-fg-color)}.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){display:block}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-circle" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-circle-check-big" viewBox="0 0 24 24"><path d="M21.801 10A10 10 0 1 1 17 3.335"/><path d="m9 11 3 3L22 4"/></svg>')}.md-typeset .task-list-item{list-style-type:none;position:relative}[dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}[dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}[dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lighter);content:"";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.25em;width:1.25em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}@media print{.giscus,[id=__comments]{display:none}}:root>*{--md-mermaid-font-family:var(--md-text-font-family),sans-serif;--md-mermaid-edge-color:var(--md-code-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-code-fg-color);--md-mermaid-sequence-actor-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-actor-fg-color:var(--md-mermaid-label-fg-color);--md-mermaid-sequence-actor-border-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-actor-line-color:var(--md-default-fg-color--lighter);--md-mermaid-sequence-actorman-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-actorman-line-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-box-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-box-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-label-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-label-fg-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-loop-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-loop-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-loop-border-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-message-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-message-line-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-note-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-note-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-note-border-color:var(--md-mermaid-label-fg-color);--md-mermaid-sequence-number-bg-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-number-fg-color:var(--md-accent-bg-color)}.mermaid{line-height:normal;margin:1em 0}.md-typeset .grid{grid-gap:.4rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));margin:1em 0}.md-typeset .grid.cards>ol,.md-typeset .grid.cards>ul{display:contents}.md-typeset .grid.cards>ol>li,.md-typeset .grid.cards>ul>li,.md-typeset .grid>.card{border:.05rem solid var(--md-default-fg-color--lightest);border-radius:.4rem;display:block;margin:0;padding:.8rem;transition:background-color .25s,border .25s,box-shadow .25s}.md-typeset .grid.cards>ol>li:focus-within,.md-typeset .grid.cards>ol>li:hover,.md-typeset .grid.cards>ul>li:focus-within,.md-typeset .grid.cards>ul>li:hover,.md-typeset .grid>.card:focus-within,.md-typeset .grid>.card:hover{border-color:#0000;box-shadow:var(--md-shadow-z2)}.md-typeset .grid.cards>ol>li>hr,.md-typeset .grid.cards>ul>li>hr,.md-typeset .grid>.card>hr{margin-bottom:1em;margin-top:1em}.md-typeset .grid.cards>ol>li>:first-child,.md-typeset .grid.cards>ul>li>:first-child,.md-typeset .grid>.card>:first-child{margin-top:0}.md-typeset .grid.cards>ol>li>:last-child,.md-typeset .grid.cards>ul>li>:last-child,.md-typeset .grid>.card>:last-child{margin-bottom:0}.md-typeset .grid>*,.md-typeset .grid>.admonition,.md-typeset .grid>.highlight>*,.md-typeset .grid>.highlighttable,.md-typeset .grid>.md-typeset details,.md-typeset .grid>details,.md-typeset .grid>pre{margin-bottom:0;margin-top:0}.md-typeset .grid>.highlight>pre:only-child,.md-typeset .grid>.highlight>pre>code,.md-typeset .grid>.highlighttable,.md-typeset .grid>.highlighttable>tbody,.md-typeset .grid>.highlighttable>tbody>tr,.md-typeset .grid>.highlighttable>tbody>tr>.code,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight>pre,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight>pre>code{height:100%}.md-typeset .grid>.tabbed-set{margin-bottom:0;margin-top:0}@media screen and (min-width:45em){[dir=ltr] .md-typeset .inline{float:left}[dir=rtl] .md-typeset .inline{float:right}[dir=ltr] .md-typeset .inline{margin-right:.8rem}[dir=rtl] .md-typeset .inline{margin-left:.8rem}.md-typeset .inline{margin-bottom:.8rem;margin-top:0;width:11.7rem}[dir=ltr] .md-typeset .inline.end{float:right}[dir=rtl] .md-typeset .inline.end{float:left}[dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}}
\ No newline at end of file
blob - /dev/null
blob + d58a561ea40e7912959bb00f47faff7dda90f71c (mode 644)
--- /dev/null
+++ site/assets/stylesheets/modern/palette.dfe2e883.min.css
@@ -0,0 +1 @@
+@media screen{[data-md-color-scheme=slate]{--md-default-fg-color:hsla(var(--md-hue),15%,90%,0.82);--md-default-fg-color--light:hsla(var(--md-hue),15%,90%,0.56);--md-default-fg-color--lighter:hsla(var(--md-hue),15%,90%,0.32);--md-default-fg-color--lightest:hsla(var(--md-hue),15%,90%,0.12);--md-default-bg-color:hsla(var(--md-hue),15%,5%,1);--md-default-bg-color--light:hsla(var(--md-hue),15%,5%,0.54);--md-default-bg-color--lighter:hsla(var(--md-hue),15%,5%,0.26);--md-default-bg-color--lightest:hsla(var(--md-hue),15%,5%,0.07);--md-code-fg-color:hsla(var(--md-hue),20%,80%,1);--md-code-bg-color:hsla(var(--md-hue),20%,10%,1);--md-code-bg-color--light:hsla(var(--md-hue),20%,10%,0.9);--md-code-bg-color--lighter:hsla(var(--md-hue),20%,10%,0.54);--md-code-hl-color:#2977ff;--md-code-hl-color--light:#2977ff1a;--md-code-hl-number-color:#e6695b;--md-code-hl-special-color:#f06090;--md-code-hl-function-color:#c973d9;--md-code-hl-constant-color:#9383e2;--md-code-hl-keyword-color:#6791e0;--md-code-hl-string-color:#2fb170;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-kbd-color:hsla(var(--md-hue),15%,90%,0.12);--md-typeset-kbd-accent-color:hsla(var(--md-hue),15%,90%,0.2);--md-typeset-kbd-border-color:hsla(var(--md-hue),15%,14%,1);--md-typeset-mark-color:#4287ff4d;--md-typeset-table-color:hsla(var(--md-hue),15%,95%,0.12);--md-typeset-table-color--light:hsla(var(--md-hue),15%,95%,0.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-bg-color:hsla(var(--md-hue),15%,10%,0.87);--md-footer-bg-color--dark:hsla(var(--md-hue),15%,8%,1);--md-shadow-z1:0 0.2rem 0.5rem #0000000d,0 0 0.05rem #ffffff1a;--md-shadow-z2:0 0.2rem 0.5rem #00000040,0 0 0.05rem #ffffff59;--md-shadow-z3:0 0.5rem 2rem #0006,0 0 0.05rem #00000059;color-scheme:dark}[data-md-color-scheme=slate] .md-header__title,[data-md-color-scheme=slate] h1,[data-md-color-scheme=slate] h2,[data-md-color-scheme=slate] h3,[data-md-color-scheme=slate] h4,[data-md-color-scheme=slate] h5,[data-md-color-scheme=slate] h6{color:hsla(var(--md-hue),0%,100%,1)}[data-md-color-scheme=slate] img[src$="#gh-light-mode-only"],[data-md-color-scheme=slate] img[src$="#only-light"]{display:none}[data-md-color-scheme=slate]{--color-foreground:255 255 255;--color-background:22 23 26;--color-background-subtle:33 34 38;--color-backdrop:11 12 15}[data-md-color-scheme=slate][data-md-color-primary=pink]{--md-typeset-a-color:#ed5487}[data-md-color-scheme=slate][data-md-color-primary=purple]{--md-typeset-a-color:#c46fd3}[data-md-color-scheme=slate][data-md-color-primary=deep-purple]{--md-typeset-a-color:#a47bea}[data-md-color-scheme=slate][data-md-color-primary=indigo]{--md-typeset-a-color:#5488e8}[data-md-color-scheme=slate][data-md-color-primary=teal]{--md-typeset-a-color:#00ccb8}[data-md-color-scheme=slate][data-md-color-primary=green]{--md-typeset-a-color:#71c174}[data-md-color-scheme=slate][data-md-color-primary=deep-orange]{--md-typeset-a-color:#ff764d}[data-md-color-scheme=slate][data-md-color-primary=brown]{--md-typeset-a-color:#c1775c}[data-md-color-scheme=slate][data-md-color-primary=black],[data-md-color-scheme=slate][data-md-color-primary=blue-grey],[data-md-color-scheme=slate][data-md-color-primary=grey],[data-md-color-scheme=slate][data-md-color-primary=white]{--md-typeset-a-color:#5e8bde}[data-md-color-switching] *,[data-md-color-switching] :after,[data-md-color-switching] :before{transition-duration:0ms!important}}[data-md-color-accent=red]{--md-accent-fg-color:#ff1947;--md-accent-fg-color--transparent:#ff19471a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=pink]{--md-accent-fg-color:#f50056;--md-accent-fg-color--transparent:#f500561a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=purple]{--md-accent-fg-color:#df41fb;--md-accent-fg-color--transparent:#df41fb1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=deep-purple]{--md-accent-fg-color:#7c4dff;--md-accent-fg-color--transparent:#7c4dff1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=indigo]{--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=blue]{--md-accent-fg-color:#4287ff;--md-accent-fg-color--transparent:#4287ff1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=light-blue]{--md-accent-fg-color:#0091eb;--md-accent-fg-color--transparent:#0091eb1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=cyan]{--md-accent-fg-color:#00bad6;--md-accent-fg-color--transparent:#00bad61a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=teal]{--md-accent-fg-color:#00bda4;--md-accent-fg-color--transparent:#00bda41a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=green]{--md-accent-fg-color:#00c753;--md-accent-fg-color--transparent:#00c7531a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=light-green]{--md-accent-fg-color:#63de17;--md-accent-fg-color--transparent:#63de171a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=lime]{--md-accent-fg-color:#b0eb00;--md-accent-fg-color--transparent:#b0eb001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=yellow]{--md-accent-fg-color:#ffd500;--md-accent-fg-color--transparent:#ffd5001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=amber]{--md-accent-fg-color:#fa0;--md-accent-fg-color--transparent:#ffaa001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=orange]{--md-accent-fg-color:#ff9100;--md-accent-fg-color--transparent:#ff91001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=deep-orange]{--md-accent-fg-color:#ff6e42;--md-accent-fg-color--transparent:#ff6e421a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-primary=red]{--md-primary-fg-color:#ef5552;--md-primary-fg-color--light:#e57171;--md-primary-fg-color--dark:#e53734;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=pink]{--md-primary-fg-color:#e92063;--md-primary-fg-color--light:#ec417a;--md-primary-fg-color--dark:#c3185d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=purple]{--md-primary-fg-color:#ab47bd;--md-primary-fg-color--light:#bb69c9;--md-primary-fg-color--dark:#8c24a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=deep-purple]{--md-primary-fg-color:#7e56c2;--md-primary-fg-color--light:#9574cd;--md-primary-fg-color--dark:#673ab6;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=indigo]{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=blue]{--md-primary-fg-color:#2094f3;--md-primary-fg-color--light:#42a5f5;--md-primary-fg-color--dark:#1975d2;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=light-blue]{--md-primary-fg-color:#02a6f2;--md-primary-fg-color--light:#28b5f6;--md-primary-fg-color--dark:#0287cf;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=cyan]{--md-primary-fg-color:#00bdd6;--md-primary-fg-color--light:#25c5da;--md-primary-fg-color--dark:#0097a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=teal]{--md-primary-fg-color:#009485;--md-primary-fg-color--light:#26a699;--md-primary-fg-color--dark:#007a6c;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=green]{--md-primary-fg-color:#4cae4f;--md-primary-fg-color--light:#68bb6c;--md-primary-fg-color--dark:#398e3d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=light-green]{--md-primary-fg-color:#8bc34b;--md-primary-fg-color--light:#9ccc66;--md-primary-fg-color--dark:#689f38;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=lime]{--md-primary-fg-color:#cbdc38;--md-primary-fg-color--light:#d3e156;--md-primary-fg-color--dark:#b0b52c;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=yellow]{--md-primary-fg-color:#ffec3d;--md-primary-fg-color--light:#ffee57;--md-primary-fg-color--dark:#fbc02d;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=amber]{--md-primary-fg-color:#ffc105;--md-primary-fg-color--light:#ffc929;--md-primary-fg-color--dark:#ffa200;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=orange]{--md-primary-fg-color:#ffa724;--md-primary-fg-color--light:#ffa724;--md-primary-fg-color--dark:#fa8900;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=deep-orange]{--md-primary-fg-color:#ff6e42;--md-primary-fg-color--light:#ff8a66;--md-primary-fg-color--dark:#f4511f;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=brown]{--md-primary-fg-color:#795649;--md-primary-fg-color--light:#8d6e62;--md-primary-fg-color--dark:#5d4037;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=grey]{--md-primary-fg-color:#757575;--md-primary-fg-color--light:#9e9e9e;--md-primary-fg-color--dark:#616161;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=blue-grey]{--md-primary-fg-color:#546d78;--md-primary-fg-color--light:#607c8a;--md-primary-fg-color--dark:#455a63;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=light-green]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#72ad2e}[data-md-color-primary=lime]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#8b990a}[data-md-color-primary=yellow]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#b8a500}[data-md-color-primary=amber]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#d19d00}[data-md-color-primary=orange]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#e68a00}
\ No newline at end of file
blob - /dev/null
blob + a436e0ba77759075099a782029a03893905ed71a (mode 644)
--- /dev/null
+++ site/bicycle/index.html
@@ -0,0 +1,786 @@
+
+<!doctype html>
+<html lang="en" class="no-js">
+  <head>
+    
+      <meta charset="utf-8">
+      <meta name="viewport" content="width=device-width,initial-scale=1">
+      
+        <meta name="description" content="Personal homepage of Manuel Kuklinski (AS213674)">
+      
+      
+        <meta name="author" content="Manuel Kuklinski">
+      
+      
+        <link rel="canonical" href="https://www.asdfghasdfgh.de/bicycle/">
+      
+      
+        <link rel="prev" href="..">
+      
+      
+        <link rel="next" href="../hardware/">
+      
+      
+        
+      
+      
+      <link rel="icon" href="../images/favicon.png">
+      <meta name="generator" content="zensical-0.0.11">
+    
+    
+      
+        <title>Bicycle - asdfghasdfgh.de</title>
+      
+    
+    
+      
+        
+      
+      <link rel="stylesheet" href="../assets/stylesheets/modern/main.bd6182e7.min.css">
+      
+        
+          
+        
+        <link rel="stylesheet" href="../assets/stylesheets/modern/palette.dfe2e883.min.css">
+      
+      
+  
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+  
+  <style>:root{}</style>
+
+
+
+    
+    
+      
+    
+    
+      
+    
+    
+      <link rel="stylesheet" href="../stylesheets/extra.css">
+    
+    <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,t)=>(e<<5)-e+t.charCodeAt(0)),0),__md_get=(e,t=localStorage,a=__md_scope)=>JSON.parse(t.getItem(a.pathname+"."+e)),__md_set=(e,t,a=localStorage,_=__md_scope)=>{try{a.setItem(_.pathname+"."+e,JSON.stringify(t))}catch(e){}},document.documentElement.setAttribute("data-platform",navigator.platform)</script>
+    
+      
+
+    
+    
+  </head>
+  
+  
+    
+    
+      
+    
+    
+    
+    
+    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
+  
+    
+    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
+    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
+    <label class="md-overlay" for="__drawer"></label>
+    <div data-md-component="skip">
+      
+        
+        <a href="#bicycle" class="md-skip">
+          Skip to content
+        </a>
+      
+    </div>
+    <div data-md-component="announce">
+      
+    </div>
+    
+    
+      
+
+  
+
+<header class="md-header md-header--shadow" data-md-component="header">
+  <nav class="md-header__inner md-grid" aria-label="Header">
+    <a href=".." title="asdfghasdfgh.de" class="md-header__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    <label class="md-header__button md-icon" for="__drawer">
+      
+      <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-menu" viewBox="0 0 24 24"><path d="M4 5h16M4 12h16M4 19h16"/></svg>
+    </label>
+    <div class="md-header__title" data-md-component="header-title">
+      <div class="md-header__ellipsis">
+        <div class="md-header__topic">
+          <span class="md-ellipsis">
+            asdfghasdfgh.de
+          </span>
+        </div>
+        <div class="md-header__topic" data-md-component="header-topic">
+          <span class="md-ellipsis">
+            
+              Bicycle
+            
+          </span>
+        </div>
+      </div>
+    </div>
+    
+      
+        <form class="md-header__option" data-md-component="palette">
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to light mode"  type="radio" name="__palette" id="__palette_0">
+    
+      <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun-moon" viewBox="0 0 24 24"><path d="M12 2v2M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715M16 12a4 4 0 0 0-4-4M19 5l-1.256 1.256M20 12h2"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to dark mode"  type="radio" name="__palette" id="__palette_1">
+    
+      <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to system preference"  type="radio" name="__palette" id="__palette_2">
+    
+      <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-moon" viewBox="0 0 24 24"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/></svg>
+      </label>
+    
+  
+</form>
+      
+    
+    
+      <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
+    
+    
+    
+      
+      
+        <label class="md-header__button md-icon" for="__search">
+          
+          <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-search" viewBox="0 0 24 24"><path d="m21 21-4.34-4.34"/><circle cx="11" cy="11" r="8"/></svg>
+        </label>
+        <div class="md-search" data-md-component="search" role="dialog" aria-label="Search">
+  <button type="button" class="md-search__button">
+    Search
+  </button>
+</div>
+      
+    
+    <div class="md-header__source">
+      
+    </div>
+  </nav>
+  
+</header>
+    
+    <div class="md-container" data-md-component="container">
+      
+      
+        
+          
+        
+      
+      <main class="md-main" data-md-component="main">
+        <div class="md-main__inner md-grid">
+          
+            
+              
+              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+
+<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
+  <label class="md-nav__title" for="__drawer">
+    <a href=".." title="asdfghasdfgh.de" class="md-nav__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    asdfghasdfgh.de
+  </label>
+  
+  <ul class="md-nav__list" data-md-scrollfix>
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href=".." class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    「戦争を作るな、平和を作りましょう」
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+    
+  
+  
+  
+    <li class="md-nav__item md-nav__item--active">
+      
+      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
+      
+      
+        
+      
+      
+        <label class="md-nav__link md-nav__link--active" for="__toc">
+          
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Bicycle
+  
+
+    
+  </span>
+  
+  
+
+          <span class="md-nav__icon md-icon"></span>
+        </label>
+      
+      <a href="./" class="md-nav__link md-nav__link--active">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Bicycle
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+      
+        
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      On this page
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#steel-frame-mountain-bike" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Steel Frame Mountain Bike
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Steel Frame Mountain Bike">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#cycling-instead-of-walking" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Cycling instead of walking
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../hardware/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Hardware
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../junkyard/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Junkyard
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../library/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Library
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../meditation/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Meditation
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../network/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Network
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+  </ul>
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+            
+              
+              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      On this page
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#steel-frame-mountain-bike" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Steel Frame Mountain Bike
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Steel Frame Mountain Bike">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#cycling-instead-of-walking" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Cycling instead of walking
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+          
+          
+            <div class="md-content" data-md-component="content">
+              
+                
+
+
+
+  
+
+
+              
+              <article class="md-content__inner md-typeset">
+                
+                  
+
+<h1 id="bicycle">Bicycle<a class="headerlink" href="#bicycle" title="Permanent link">&para;</a></h1>
+<h2 id="steel-frame-mountain-bike">Steel Frame Mountain Bike<a class="headerlink" href="#steel-frame-mountain-bike" title="Permanent link">&para;</a></h2>
+<h3 id="cycling-instead-of-walking">Cycling instead of walking<a class="headerlink" href="#cycling-instead-of-walking" title="Permanent link">&para;</a></h3>
+<p><del>Summer '24 I had the chance to lay a hand at a vintage "Motobecane Mirage"
+road-bike (2024/06/21), alreayd converted to single-speed and a "Giant Custom
+Lite" touring-bike (2024/08/03). The "Giant Custom Lite" was stripped of
+unnecessary parts and will be converted to a single-speed cyclo-cross /
+gravel-bike.</del></p>
+<p>Spring '25 (2025/03/31) I had the chance to acquire a vintage "Centurion
+Weasel" mountain-bike in a very good condition. I'm very happy with this purchase
+:o)</p>
+<p>Below you will find the current specifications one photo of the bicycle.</p>
+<p><del>The reason for my fixation on the bicycles being single-speed, is due to
+the fact, that it's easier to maintain. I don't mind the missing
+sprockets and gladly will push my bicycle up a hill or a mountain, if it
+means I can quickly and easily repair it by myself.</del>
+I still want to repair my bicycle by myself, so it must be easily repairable,
+but since I'm moving slowly out of my thirties, I decided to go for a
+mountainbike, since I noticed that I'm usually in or around woods or mountains.
+23x622 is too fragile for woods / off-road, and I enjoy the benefits of a
+derailleur, especially uphill.</p>
+<p>I was inspired by solderpunk to start
+<a href="gemini://zaibatsu.circumlunar.space/~solderpunk/gemlog/my-second-s24o.gmi">S24Os</a>;
+it suits me very well. I take a small backpack, a light sleeping bag, a portable
+ham radio, a headlamp and something to eat &amp; drink with me.</p>
+<hr />
+<table>
+<thead>
+<tr>
+<th style="text-align: left;">Centurion Weasel:</th>
+<th>Component</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td style="text-align: left;">Height:</td>
+<td>580mm (Diamond)</td>
+</tr>
+<tr>
+<td style="text-align: left;">Wheels:</td>
+<td>650c (26x559mm)</td>
+</tr>
+<tr>
+<td style="text-align: left;">Chain:</td>
+<td>To be continued...</td>
+</tr>
+<tr>
+<td style="text-align: left;">Sprocket:</td>
+<td>To be continued...</td>
+</tr>
+<tr>
+<td style="text-align: left;">Handlebar:</td>
+<td>To be continued...</td>
+</tr>
+<tr>
+<td style="text-align: left;">Tires:</td>
+<td>Ritchey Megabite Z-Max (57x559mm) (front)</td>
+</tr>
+<tr>
+<td style="text-align: left;">---:</td>
+<td>Kenda Unknown Modell (54x559mm) (back)</td>
+</tr>
+<tr>
+<td style="text-align: left;">Tubes:</td>
+<td>To be continued...</td>
+</tr>
+<tr>
+<td style="text-align: left;">---:</td>
+<td>To be continued...</td>
+</tr>
+<tr>
+<td style="text-align: left;">Saddle:</td>
+<td>Velo VL-3378-2</td>
+</tr>
+<tr>
+<td style="text-align: left;">Crankset:</td>
+<td>Shimano  STX-RC</td>
+</tr>
+<tr>
+<td style="text-align: left;">Fork:</td>
+<td>Rock Shox Indy-C</td>
+</tr>
+</tbody>
+</table>
+<p><img alt="dithered b/w photo of centurion" src="..//images/centurion.png" /></p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                
+              </article>
+            </div>
+          
+          
+  <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
+
+<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
+        </div>
+        
+          <button type="button" class="md-top md-icon" data-md-component="top" hidden>
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-circle-arrow-up" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="m16 12-4-4-4 4M12 16V8"/></svg>
+  Back to top
+</button>
+        
+      </main>
+      
+        <footer class="md-footer">
+  
+    
+      
+      <nav class="md-footer__inner md-grid" aria-label="Footer" >
+        
+          
+          <a href=".." class="md-footer__link md-footer__link--prev" aria-label="Previous: 「戦争を作るな、平和を作りましょう」">
+            <div class="md-footer__button md-icon">
+              
+              <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-left" viewBox="0 0 24 24"><path d="m12 19-7-7 7-7M19 12H5"/></svg>
+            </div>
+            <div class="md-footer__title">
+              <span class="md-footer__direction">
+                Previous
+              </span>
+              <div class="md-ellipsis">
+                「戦争を作るな、平和を作りましょう」
+              </div>
+            </div>
+          </a>
+        
+        
+          
+          <a href="../hardware/" class="md-footer__link md-footer__link--next" aria-label="Next: Hardware">
+            <div class="md-footer__title">
+              <span class="md-footer__direction">
+                Next
+              </span>
+              <div class="md-ellipsis">
+                Hardware
+              </div>
+            </div>
+            <div class="md-footer__button md-icon">
+              
+              <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-right" viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
+            </div>
+          </a>
+        
+      </nav>
+    
+  
+  <div class="md-footer-meta md-typeset">
+    <div class="md-footer-meta__inner md-grid">
+      <div class="md-copyright">
+  
+    <div class="md-copyright__highlight">
+      WTFPL &copy; 1987 Manuel Kuklinski
+<br>
+<a href="/xyz">No permission granted to any AI/LLM/ML-powered system (or similar).</a>
+
+    </div>
+  
+  
+</div>
+      
+    </div>
+  </div>
+</footer>
+      
+    </div>
+    <div class="md-dialog" data-md-component="dialog">
+      <div class="md-dialog__inner md-typeset"></div>
+    </div>
+    
+    
+    
+      
+      
+      
+      <script id="__config" type="application/json">{"annotate":null,"base":"..","features":["announce.dismiss","content.code.annotate","content.code.copy","content.code.select","content.footnote.tooltips","content.tabs.link","content.tooltips","navigation.footer","navigation.indexes","navigation.instant","navigation.instant.prefetch","navigation.path","navigation.prune","navigation.sections","navigation.top","navigation.tracking","search.highlight"],"search":"../assets/javascripts/workers/search.5df7522c.min.js","tags":null,"translations":{"clipboard.copied":"Copied to clipboard","clipboard.copy":"Copy to clipboard","search.result.more.one":"1 more on this page","search.result.more.other":"# more on this page","search.result.none":"No matching documents","search.result.one":"1 matching document","search.result.other":"# matching documents","search.result.placeholder":"Type to start searching","search.result.term.missing":"Missing","select.version":"Select version"},"version":null}</script>
+    
+    
+      <script src="../assets/javascripts/bundle.21aa498e.min.js"></script>
+      
+    
+  </body>
+</html>
\ No newline at end of file
blob - /dev/null
blob + 38a18bf78787b5a8e1b57d39def9e7c2dfb7274b (mode 644)
--- /dev/null
+++ site/hardware/index.html
@@ -0,0 +1,1426 @@
+
+<!doctype html>
+<html lang="en" class="no-js">
+  <head>
+    
+      <meta charset="utf-8">
+      <meta name="viewport" content="width=device-width,initial-scale=1">
+      
+        <meta name="description" content="Personal homepage of Manuel Kuklinski (AS213674)">
+      
+      
+        <meta name="author" content="Manuel Kuklinski">
+      
+      
+        <link rel="canonical" href="https://www.asdfghasdfgh.de/hardware/">
+      
+      
+        <link rel="prev" href="../bicycle/">
+      
+      
+        <link rel="next" href="../junkyard/">
+      
+      
+        
+      
+      
+      <link rel="icon" href="../images/favicon.png">
+      <meta name="generator" content="zensical-0.0.11">
+    
+    
+      
+        <title>Hardware - asdfghasdfgh.de</title>
+      
+    
+    
+      
+        
+      
+      <link rel="stylesheet" href="../assets/stylesheets/modern/main.bd6182e7.min.css">
+      
+        
+          
+        
+        <link rel="stylesheet" href="../assets/stylesheets/modern/palette.dfe2e883.min.css">
+      
+      
+  
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+  
+  <style>:root{}</style>
+
+
+
+    
+    
+      
+    
+    
+      
+    
+    
+      <link rel="stylesheet" href="../stylesheets/extra.css">
+    
+    <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,t)=>(e<<5)-e+t.charCodeAt(0)),0),__md_get=(e,t=localStorage,a=__md_scope)=>JSON.parse(t.getItem(a.pathname+"."+e)),__md_set=(e,t,a=localStorage,_=__md_scope)=>{try{a.setItem(_.pathname+"."+e,JSON.stringify(t))}catch(e){}},document.documentElement.setAttribute("data-platform",navigator.platform)</script>
+    
+      
+
+    
+    
+  </head>
+  
+  
+    
+    
+      
+    
+    
+    
+    
+    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
+  
+    
+    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
+    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
+    <label class="md-overlay" for="__drawer"></label>
+    <div data-md-component="skip">
+      
+        
+        <a href="#hardware" class="md-skip">
+          Skip to content
+        </a>
+      
+    </div>
+    <div data-md-component="announce">
+      
+    </div>
+    
+    
+      
+
+  
+
+<header class="md-header md-header--shadow" data-md-component="header">
+  <nav class="md-header__inner md-grid" aria-label="Header">
+    <a href=".." title="asdfghasdfgh.de" class="md-header__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    <label class="md-header__button md-icon" for="__drawer">
+      
+      <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-menu" viewBox="0 0 24 24"><path d="M4 5h16M4 12h16M4 19h16"/></svg>
+    </label>
+    <div class="md-header__title" data-md-component="header-title">
+      <div class="md-header__ellipsis">
+        <div class="md-header__topic">
+          <span class="md-ellipsis">
+            asdfghasdfgh.de
+          </span>
+        </div>
+        <div class="md-header__topic" data-md-component="header-topic">
+          <span class="md-ellipsis">
+            
+              Hardware
+            
+          </span>
+        </div>
+      </div>
+    </div>
+    
+      
+        <form class="md-header__option" data-md-component="palette">
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to light mode"  type="radio" name="__palette" id="__palette_0">
+    
+      <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun-moon" viewBox="0 0 24 24"><path d="M12 2v2M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715M16 12a4 4 0 0 0-4-4M19 5l-1.256 1.256M20 12h2"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to dark mode"  type="radio" name="__palette" id="__palette_1">
+    
+      <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to system preference"  type="radio" name="__palette" id="__palette_2">
+    
+      <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-moon" viewBox="0 0 24 24"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/></svg>
+      </label>
+    
+  
+</form>
+      
+    
+    
+      <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
+    
+    
+    
+      
+      
+        <label class="md-header__button md-icon" for="__search">
+          
+          <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-search" viewBox="0 0 24 24"><path d="m21 21-4.34-4.34"/><circle cx="11" cy="11" r="8"/></svg>
+        </label>
+        <div class="md-search" data-md-component="search" role="dialog" aria-label="Search">
+  <button type="button" class="md-search__button">
+    Search
+  </button>
+</div>
+      
+    
+    <div class="md-header__source">
+      
+    </div>
+  </nav>
+  
+</header>
+    
+    <div class="md-container" data-md-component="container">
+      
+      
+        
+          
+        
+      
+      <main class="md-main" data-md-component="main">
+        <div class="md-main__inner md-grid">
+          
+            
+              
+              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+
+<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
+  <label class="md-nav__title" for="__drawer">
+    <a href=".." title="asdfghasdfgh.de" class="md-nav__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    asdfghasdfgh.de
+  </label>
+  
+  <ul class="md-nav__list" data-md-scrollfix>
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href=".." class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    「戦争を作るな、平和を作りましょう」
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../bicycle/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Bicycle
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+    
+  
+  
+  
+    <li class="md-nav__item md-nav__item--active">
+      
+      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
+      
+      
+        
+      
+      
+        <label class="md-nav__link md-nav__link--active" for="__toc">
+          
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Hardware
+  
+
+    
+  </span>
+  
+  
+
+          <span class="md-nav__icon md-icon"></span>
+        </label>
+      
+      <a href="./" class="md-nav__link md-nav__link--active">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Hardware
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+      
+        
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      On this page
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#computers-peripherals-and-etc-im-currently-using" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Computers, peripherals and etc. I'm currently using
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Computers, peripherals and etc. I&#x27;m currently using">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#workstations" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Workstations
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Workstations">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#apple-macmini91" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple Macmini9,1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#lenove-thinkpad-x220" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Lenove Thinkpad X220
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#homelab" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Homelab
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Homelab">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#advantech-fwa-1012vc-8ca1s" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Advantech FWA-1012VC-8CA1S
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#allnet-all126as3" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Allnet ALL126AS3
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apc-smart-ups-sc450" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        APC Smart-UPS SC450
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#dell-poweredge-r730" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Dell PowerEdge R730
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#juniper-ex4200-24px" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Juniper EX4200-24PX
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#mikrotik-rbd52g-5hacd2hnd-tc" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        MikroTik RBD52G-5HacD2HnD-TC
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#edc" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        EDC
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="EDC">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#apple-iphone128" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple iPhone12,8
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#aiaiai-tma-2-move-wireless" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        AiAiAi TMA-2 Move Wireless
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#casio-gw-m5610u-er" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Casio GW-M5610U-ER
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#corsair-survivor-stealth-v2-64-gb" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Corsair Survivor Stealth v2, 64 GB
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#yubikey-5-nfc" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Yubikey 5 NFC
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#amateur-radio" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Amateur radio
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Amateur radio">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#heltec-lora-32-v32" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Heltec LoRa 32 V3.2
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#raspberry-pi-3b-frequencylab-meshadv-pi-hat-v11" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Raspberry Pi 3B+ &amp; FrequencyLab MeshAdv Pi Hat v1.1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#rtl-sdr-rtl2832u-v4" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        RTL-SDR RTL2832U v4
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#home-entertainment" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Home entertainment
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Home entertainment">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#apple-audioaccessory51" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple AudioAccessory5,1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-appletv62" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple AppleTV6,2
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#nec-um301w" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        NEC UM301W
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../junkyard/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Junkyard
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../library/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Library
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../meditation/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Meditation
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../network/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Network
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+  </ul>
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+            
+              
+              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      On this page
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#computers-peripherals-and-etc-im-currently-using" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Computers, peripherals and etc. I'm currently using
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Computers, peripherals and etc. I&#x27;m currently using">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#workstations" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Workstations
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Workstations">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#apple-macmini91" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple Macmini9,1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#lenove-thinkpad-x220" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Lenove Thinkpad X220
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#homelab" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Homelab
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Homelab">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#advantech-fwa-1012vc-8ca1s" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Advantech FWA-1012VC-8CA1S
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#allnet-all126as3" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Allnet ALL126AS3
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apc-smart-ups-sc450" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        APC Smart-UPS SC450
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#dell-poweredge-r730" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Dell PowerEdge R730
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#juniper-ex4200-24px" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Juniper EX4200-24PX
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#mikrotik-rbd52g-5hacd2hnd-tc" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        MikroTik RBD52G-5HacD2HnD-TC
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#edc" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        EDC
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="EDC">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#apple-iphone128" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple iPhone12,8
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#aiaiai-tma-2-move-wireless" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        AiAiAi TMA-2 Move Wireless
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#casio-gw-m5610u-er" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Casio GW-M5610U-ER
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#corsair-survivor-stealth-v2-64-gb" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Corsair Survivor Stealth v2, 64 GB
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#yubikey-5-nfc" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Yubikey 5 NFC
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#amateur-radio" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Amateur radio
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Amateur radio">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#heltec-lora-32-v32" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Heltec LoRa 32 V3.2
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#raspberry-pi-3b-frequencylab-meshadv-pi-hat-v11" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Raspberry Pi 3B+ &amp; FrequencyLab MeshAdv Pi Hat v1.1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#rtl-sdr-rtl2832u-v4" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        RTL-SDR RTL2832U v4
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#home-entertainment" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Home entertainment
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Home entertainment">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#apple-audioaccessory51" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple AudioAccessory5,1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-appletv62" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple AppleTV6,2
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#nec-um301w" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        NEC UM301W
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+          
+          
+            <div class="md-content" data-md-component="content">
+              
+                
+
+
+
+  
+
+
+              
+              <article class="md-content__inner md-typeset">
+                
+                  
+
+<h1 id="hardware">Hardware<a class="headerlink" href="#hardware" title="Permanent link">&para;</a></h1>
+<h2 id="computers-peripherals-and-etc-im-currently-using">Computers, peripherals and etc. I'm currently using<a class="headerlink" href="#computers-peripherals-and-etc-im-currently-using" title="Permanent link">&para;</a></h2>
+<h3 id="workstations">Workstations<a class="headerlink" href="#workstations" title="Permanent link">&para;</a></h3>
+<p>I'm OS agnostic, but nowadays I prefer macOS at home. I'd use Alpine on
+the Thinkpad, but sadly I require some programs on Windows for my retraining. I
+know about Wine. To mitigate the enshittification of Windows 11, I installed Windows 11
+IoT LSTC. For the future, I hope I can switch back to GNU/Linux or *BSD.</p>
+<h4 id="apple-macmini91">Apple Macmini9,1<a class="headerlink" href="#apple-macmini91" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Apple M1 4x 3.20 GHz &amp; 4x 2.10 GHz</li>
+<li>8 GB Non-ECC RAM</li>
+<li>256 GB NVME SSD</li>
+<li>OS: macOS</li>
+</ul>
+<h4 id="lenove-thinkpad-x220">Lenove Thinkpad X220<a class="headerlink" href="#lenove-thinkpad-x220" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Core i5-2450M 2x 2.5 GHz</li>
+<li>16 GB Non-ECC RAM</li>
+<li>128 GB SATA SSD</li>
+<li>OS: Windows</li>
+</ul>
+<h3 id="homelab">Homelab<a class="headerlink" href="#homelab" title="Permanent link">&para;</a></h3>
+<p>I already had a power hungry Supermicro H8SML-i (see
+<a href="../junkyard/#supermicro-h8sml-i">junkyard</a>, but I'm again runnig a (file-)server at home, since
+I don't want to pay (anymore) for VMs, LLMs or cloud storage. I briefly
+evaluated these options, but came to the conclusion that I'm far more
+comfortable with my VMs, data and backups in my flat. Besides, nothing beats a
+functional homelab for experimenting, learning and tinkering :-)</p>
+<p>I'm contemplating about using OmniOS or Proxmox instead of FreeBSD. The ZFS
+pools are running with a minimal working <a href="https://openzfs.github.io/openzfs-docs/Basic%20Concepts/Feature%20Flags.html">feature
+set</a>,
+supported by every OS.</p>
+<p>I switched from Vodafone to DTAG (DSL), mostly because of the availability of
+DSL, possibility to use the Allnet modem and problems with VoIP of Vodafone.
+Due to missing IEEE 802.11ac support on OpenBSD I hooked a Mikrotik via RJ45 to
+my gateway, to provide stable WiFi.</p>
+<p><img alt="dithered b/w photo of homelab" src="..//images/homelab.png" /></p>
+<h4 id="advantech-fwa-1012vc-8ca1s">Advantech FWA-1012VC-8CA1S<a class="headerlink" href="#advantech-fwa-1012vc-8ca1s" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Atom C3758 8x 2.2 GHz</li>
+<li>16 GB DDR4 Non-ECC RAM</li>
+<li>128 GB SATA SSD</li>
+<li>OS: OpenBSD</li>
+</ul>
+<h4 id="allnet-all126as3">Allnet ALL126AS3<a class="headerlink" href="#allnet-all126as3" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Lantiq MIPS ADM5120P 1x 175 MHz</li>
+<li>64 MB Non-ECC RAM</li>
+<li>128 MB Disk</li>
+<li>OS: Linux</li>
+</ul>
+<h4 id="apc-smart-ups-sc450">APC Smart-UPS SC450<a class="headerlink" href="#apc-smart-ups-sc450" title="Permanent link">&para;</a></h4>
+<h4 id="dell-poweredge-r730">Dell PowerEdge R730<a class="headerlink" href="#dell-poweredge-r730" title="Permanent link">&para;</a></h4>
+<ul>
+<li>2x Intel Xeon E5-2650 v4 12x 2.2 GHz</li>
+<li>128 GB DDR4 ECC RAM</li>
+<li>Storage controller: Dell HBA330 Mini Mono<ul>
+<li>ZFS Pool zroot<ul>
+<li>2x 200 GB SAS SSD (OS, Jails) (RAID 1)</li>
+</ul>
+</li>
+<li>ZFS Pool rpool<ul>
+<li>2x 6 TB SAS HDD (Data, VMs) (RAID 1)</li>
+</ul>
+</li>
+</ul>
+</li>
+<li>GPU: Nvidia Tesla P4 8 GB GDDR5 Non-ECC RAM</li>
+</ul>
+<!--
+    * ZFS Pool rpool
+        * 3x 6 TB SAS HDD (RAID 1)
+        * 1x 200 GB SAS SSD (L2ARC)
+    * ZFS Pool backup 
+        * 2x 6 TB SAS HDD (RAID 1)
+* GPU: 2x Nvidia Tesla P100 16 GB HBM2 ECC RAM
+-->
+<ul>
+<li>OS: FreeBSD</li>
+</ul>
+<h4 id="juniper-ex4200-24px">Juniper EX4200-24PX<a class="headerlink" href="#juniper-ex4200-24px" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Freescale PowerPC e500 1x 1 GHz</li>
+<li>1 GB ECC RAM</li>
+<li>1 GB Disk</li>
+<li>OS: JunOS</li>
+</ul>
+<h4 id="mikrotik-rbd52g-5hacd2hnd-tc">MikroTik RBD52G-5HacD2HnD-TC<a class="headerlink" href="#mikrotik-rbd52g-5hacd2hnd-tc" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Qualcomm IPQ-4018 4x 896 MHz</li>
+<li>128 MB Non-ECC RAM</li>
+<li>16 MB Disk</li>
+<li>OS: RouterOS</li>
+</ul>
+<!---
+#### Qotom Q20322G9
+* Intel Atom C3558 4x 2.0 GHz
+* 8 GB Non-ECC RAM
+* 256 GB Disk
+* OS: OpenBSD
+
+#### PC Engines apu2c4
+* AMD GX-412T 4x 1.00 GHz
+* 4 GB Non-ECC RAM
+* 16 GB M.2 SSD
+* OS: OpenWRT
+
+-->
+
+<h3 id="edc">EDC<a class="headerlink" href="#edc" title="Permanent link">&para;</a></h3>
+<p>I'd rather prefer a (modular) smartphone running PostmarketOS, but sadly I
+invested a good amount of money into the walled garden of Apple, so I'm trapped
+there for the moment. I'm contemplating about a Fairphone 4 or a Mudita
+Kompakt, since I want to go minimal and break free from Apple.</p>
+<h4 id="apple-iphone128">Apple iPhone12,8<a class="headerlink" href="#apple-iphone128" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Apple A13 Bionic 2x 2.70  GHz &amp; 4x 1.80GHz</li>
+<li>3 GB Non-ECC RAM</li>
+<li>64 GB Disk</li>
+<li>OS: iOS</li>
+</ul>
+<h4 id="aiaiai-tma-2-move-wireless">AiAiAi TMA-2 Move Wireless<a class="headerlink" href="#aiaiai-tma-2-move-wireless" title="Permanent link">&para;</a></h4>
+<h4 id="casio-gw-m5610u-er">Casio GW-M5610U-ER<a class="headerlink" href="#casio-gw-m5610u-er" title="Permanent link">&para;</a></h4>
+<h4 id="corsair-survivor-stealth-v2-64-gb">Corsair Survivor Stealth v2, 64 GB<a class="headerlink" href="#corsair-survivor-stealth-v2-64-gb" title="Permanent link">&para;</a></h4>
+<h4 id="yubikey-5-nfc">Yubikey 5 NFC<a class="headerlink" href="#yubikey-5-nfc" title="Permanent link">&para;</a></h4>
+<h3 id="amateur-radio">Amateur radio<a class="headerlink" href="#amateur-radio" title="Permanent link">&para;</a></h3>
+<h4 id="heltec-lora-32-v32">Heltec LoRa 32 V3.2<a class="headerlink" href="#heltec-lora-32-v32" title="Permanent link">&para;</a></h4>
+<ul>
+<li>ESP32-S3FN8 2x 240 MHz</li>
+<li>512 KB Non-ECC RAM</li>
+<li>8 MB Disk</li>
+<li>FW: MeshCore</li>
+<li>TX/RX: 470~510 + 863~928 MHz</li>
+</ul>
+<h4 id="raspberry-pi-3b-frequencylab-meshadv-pi-hat-v11">Raspberry Pi 3B+ &amp; FrequencyLab MeshAdv Pi Hat v1.1<a class="headerlink" href="#raspberry-pi-3b-frequencylab-meshadv-pi-hat-v11" title="Permanent link">&para;</a></h4>
+<ul>
+<li>ARM Cortex-A53 4x 1.40 GHz</li>
+<li>1 GB Non-ECC RAM</li>
+<li>32 GB Disk</li>
+<li>OS: Linux</li>
+<li>TX/RX: 863~928 MHz</li>
+</ul>
+<h4 id="rtl-sdr-rtl2832u-v4">RTL-SDR RTL2832U v4<a class="headerlink" href="#rtl-sdr-rtl2832u-v4" title="Permanent link">&para;</a></h4>
+<h3 id="home-entertainment">Home entertainment<a class="headerlink" href="#home-entertainment" title="Permanent link">&para;</a></h3>
+<h4 id="apple-audioaccessory51">Apple AudioAccessory5,1<a class="headerlink" href="#apple-audioaccessory51" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Apple S5 2x 1.59 GHz</li>
+<li>1 GB Non-ECC RAM</li>
+<li>32 GB Disk</li>
+<li>OS: audioOS</li>
+</ul>
+<h4 id="apple-appletv62">Apple AppleTV6,2<a class="headerlink" href="#apple-appletv62" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Apple A10X Fusion 6x 2.30 GHz</li>
+<li>3 GB Non-ECC RAM</li>
+<li>32 GB Disk</li>
+<li>OS: tvOS</li>
+</ul>
+<h4 id="nec-um301w">NEC UM301W<a class="headerlink" href="#nec-um301w" title="Permanent link">&para;</a></h4>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                
+              </article>
+            </div>
+          
+          
+  <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
+
+<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
+        </div>
+        
+          <button type="button" class="md-top md-icon" data-md-component="top" hidden>
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-circle-arrow-up" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="m16 12-4-4-4 4M12 16V8"/></svg>
+  Back to top
+</button>
+        
+      </main>
+      
+        <footer class="md-footer">
+  
+    
+      
+      <nav class="md-footer__inner md-grid" aria-label="Footer" >
+        
+          
+          <a href="../bicycle/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Bicycle">
+            <div class="md-footer__button md-icon">
+              
+              <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-left" viewBox="0 0 24 24"><path d="m12 19-7-7 7-7M19 12H5"/></svg>
+            </div>
+            <div class="md-footer__title">
+              <span class="md-footer__direction">
+                Previous
+              </span>
+              <div class="md-ellipsis">
+                Bicycle
+              </div>
+            </div>
+          </a>
+        
+        
+          
+          <a href="../junkyard/" class="md-footer__link md-footer__link--next" aria-label="Next: Junkyard">
+            <div class="md-footer__title">
+              <span class="md-footer__direction">
+                Next
+              </span>
+              <div class="md-ellipsis">
+                Junkyard
+              </div>
+            </div>
+            <div class="md-footer__button md-icon">
+              
+              <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-right" viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
+            </div>
+          </a>
+        
+      </nav>
+    
+  
+  <div class="md-footer-meta md-typeset">
+    <div class="md-footer-meta__inner md-grid">
+      <div class="md-copyright">
+  
+    <div class="md-copyright__highlight">
+      WTFPL &copy; 1987 Manuel Kuklinski
+<br>
+<a href="/xyz">No permission granted to any AI/LLM/ML-powered system (or similar).</a>
+
+    </div>
+  
+  
+</div>
+      
+    </div>
+  </div>
+</footer>
+      
+    </div>
+    <div class="md-dialog" data-md-component="dialog">
+      <div class="md-dialog__inner md-typeset"></div>
+    </div>
+    
+    
+    
+      
+      
+      
+      <script id="__config" type="application/json">{"annotate":null,"base":"..","features":["announce.dismiss","content.code.annotate","content.code.copy","content.code.select","content.footnote.tooltips","content.tabs.link","content.tooltips","navigation.footer","navigation.indexes","navigation.instant","navigation.instant.prefetch","navigation.path","navigation.prune","navigation.sections","navigation.top","navigation.tracking","search.highlight"],"search":"../assets/javascripts/workers/search.5df7522c.min.js","tags":null,"translations":{"clipboard.copied":"Copied to clipboard","clipboard.copy":"Copy to clipboard","search.result.more.one":"1 more on this page","search.result.more.other":"# more on this page","search.result.none":"No matching documents","search.result.one":"1 matching document","search.result.other":"# matching documents","search.result.placeholder":"Type to start searching","search.result.term.missing":"Missing","select.version":"Select version"},"version":null}</script>
+    
+    
+      <script src="../assets/javascripts/bundle.21aa498e.min.js"></script>
+      
+    
+  </body>
+</html>
\ No newline at end of file
blob - /dev/null
blob + f00a6929ab8bf36144bddedcd175a28854c75ff5 (mode 644)
Binary files /dev/null and site/images/centurion.png differ
blob - /dev/null
blob + bf28211751e18ea5a355a8fab773c077769bd8d1 (mode 644)
Binary files /dev/null and site/images/favicon.png differ
blob - /dev/null
blob + f4cf2cbe242caa53cdeac71fa2bea38a55146d80 (mode 644)
Binary files /dev/null and site/images/homelab.png differ
blob - /dev/null
blob + 81a515e880e7a78209d733fb337f503df2d16ee5 (mode 644)
Binary files /dev/null and site/images/meditation.png differ
blob - /dev/null
blob + 473bb69ea28611513c26b8d9dbd4ee95030e09da (mode 644)
--- /dev/null
+++ site/index.html
@@ -0,0 +1,770 @@
+
+<!doctype html>
+<html lang="en" class="no-js">
+  <head>
+    
+      <meta charset="utf-8">
+      <meta name="viewport" content="width=device-width,initial-scale=1">
+      
+        <meta name="description" content="Personal homepage of Manuel Kuklinski (AS213674)">
+      
+      
+        <meta name="author" content="Manuel Kuklinski">
+      
+      
+        <link rel="canonical" href="https://www.asdfghasdfgh.de/">
+      
+      
+      
+        <link rel="next" href="bicycle/">
+      
+      
+        
+      
+      
+      <link rel="icon" href="images/favicon.png">
+      <meta name="generator" content="zensical-0.0.11">
+    
+    
+      
+        <title>「戦争を作るな、平和を作りましょう」 - asdfghasdfgh.de</title>
+      
+    
+    
+      
+        
+      
+      <link rel="stylesheet" href="assets/stylesheets/modern/main.bd6182e7.min.css">
+      
+        
+          
+        
+        <link rel="stylesheet" href="assets/stylesheets/modern/palette.dfe2e883.min.css">
+      
+      
+  
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+  
+  <style>:root{}</style>
+
+
+
+    
+    
+      
+    
+    
+      
+    
+    
+      <link rel="stylesheet" href="stylesheets/extra.css">
+    
+    <script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce(((e,t)=>(e<<5)-e+t.charCodeAt(0)),0),__md_get=(e,t=localStorage,a=__md_scope)=>JSON.parse(t.getItem(a.pathname+"."+e)),__md_set=(e,t,a=localStorage,_=__md_scope)=>{try{a.setItem(_.pathname+"."+e,JSON.stringify(t))}catch(e){}},document.documentElement.setAttribute("data-platform",navigator.platform)</script>
+    
+      
+
+    
+    
+  </head>
+  
+  
+    
+    
+      
+    
+    
+    
+    
+    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
+  
+    
+    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
+    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
+    <label class="md-overlay" for="__drawer"></label>
+    <div data-md-component="skip">
+      
+        
+        <a href="#_1" class="md-skip">
+          Skip to content
+        </a>
+      
+    </div>
+    <div data-md-component="announce">
+      
+    </div>
+    
+    
+      
+
+  
+
+<header class="md-header md-header--shadow" data-md-component="header">
+  <nav class="md-header__inner md-grid" aria-label="Header">
+    <a href="" title="asdfghasdfgh.de" class="md-header__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    <label class="md-header__button md-icon" for="__drawer">
+      
+      <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-menu" viewBox="0 0 24 24"><path d="M4 5h16M4 12h16M4 19h16"/></svg>
+    </label>
+    <div class="md-header__title" data-md-component="header-title">
+      <div class="md-header__ellipsis">
+        <div class="md-header__topic">
+          <span class="md-ellipsis">
+            asdfghasdfgh.de
+          </span>
+        </div>
+        <div class="md-header__topic" data-md-component="header-topic">
+          <span class="md-ellipsis">
+            
+              「戦争を作るな、平和を作りましょう」
+            
+          </span>
+        </div>
+      </div>
+    </div>
+    
+      
+        <form class="md-header__option" data-md-component="palette">
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to light mode"  type="radio" name="__palette" id="__palette_0">
+    
+      <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun-moon" viewBox="0 0 24 24"><path d="M12 2v2M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715M16 12a4 4 0 0 0-4-4M19 5l-1.256 1.256M20 12h2"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to dark mode"  type="radio" name="__palette" id="__palette_1">
+    
+      <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to system preference"  type="radio" name="__palette" id="__palette_2">
+    
+      <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-moon" viewBox="0 0 24 24"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/></svg>
+      </label>
+    
+  
+</form>
+      
+    
+    
+      <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
+    
+    
+    
+      
+      
+        <label class="md-header__button md-icon" for="__search">
+          
+          <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-search" viewBox="0 0 24 24"><path d="m21 21-4.34-4.34"/><circle cx="11" cy="11" r="8"/></svg>
+        </label>
+        <div class="md-search" data-md-component="search" role="dialog" aria-label="Search">
+  <button type="button" class="md-search__button">
+    Search
+  </button>
+</div>
+      
+    
+    <div class="md-header__source">
+      
+    </div>
+  </nav>
+  
+</header>
+    
+    <div class="md-container" data-md-component="container">
+      
+      
+        
+          
+        
+      
+      <main class="md-main" data-md-component="main">
+        <div class="md-main__inner md-grid">
+          
+            
+              
+              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+
+<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
+  <label class="md-nav__title" for="__drawer">
+    <a href="" title="asdfghasdfgh.de" class="md-nav__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    asdfghasdfgh.de
+  </label>
+  
+  <ul class="md-nav__list" data-md-scrollfix>
+    
+      
+      
+  
+  
+    
+  
+  
+  
+    <li class="md-nav__item md-nav__item--active">
+      
+      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
+      
+      
+        
+      
+      
+        <label class="md-nav__link md-nav__link--active" for="__toc">
+          
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    「戦争を作るな、平和を作りましょう」
+  
+
+    
+  </span>
+  
+  
+
+          <span class="md-nav__icon md-icon"></span>
+        </label>
+      
+      <a href="" class="md-nav__link md-nav__link--active">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    「戦争を作るな、平和を作りましょう」
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+      
+        
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      On this page
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#geekcode" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Geekcode
+      
+    </span>
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
+  <a href="#legal-notice" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Legal notice
+      
+    </span>
+  </a>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="bicycle/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Bicycle
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="hardware/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Hardware
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="junkyard/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Junkyard
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="library/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Library
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="meditation/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Meditation
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="network/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Network
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+  </ul>
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+            
+              
+              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      On this page
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#geekcode" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Geekcode
+      
+    </span>
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
+  <a href="#legal-notice" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Legal notice
+      
+    </span>
+  </a>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+          
+          
+            <div class="md-content" data-md-component="content">
+              
+                
+
+
+
+  
+
+
+              
+              <article class="md-content__inner md-typeset">
+                
+                  
+
+<div class="language-text highlight"><pre><span></span><code>   ________  ________  _______   ________  ________  ________  ________ 
+  ╱  ╱  ╱  ╲╱        ╲╱       ╲ ╱        ╲╱        ╲╱        ╲╱        ╲
+ ╱         ╱         ╱        ╱╱         ╱         ╱         ╱         ╱
+╱╱        ╱        _╱        ╱╱       --╱         ╱         ╱        _╱ 
+╲╲_______╱╲________╱╲________╱╲________╱╲________╱╲__╱__╱__╱╲________╱
+</code></pre></div>
+<h1 id="_1">「戦争を作るな、平和を作りましょう」<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1>
+<blockquote>
+<p>My internet is quieter than yours and [it&#8217;s trying to teach me something.]
+&#8211; <a href="https://zaibatsu.circumlunar.space/~solderpunk/">solderpunk</a></p>
+</blockquote>
+<p>I'm a low-tech<sup id="fnref:permacomputing"><a class="footnote-ref" href="#fn:permacomputing">1</a></sup>, frugal living
+anarcho-communist<sup id="fnref:solawi"><a class="footnote-ref" href="#fn:solawi">2</a></sup><sup id="fnref:kropotkin"><a class="footnote-ref" href="#fn:kropotkin">3</a></sup>, who admires UNIX<sup id="fnref:unix"><a class="footnote-ref" href="#fn:unix">4</a></sup>. I'm not a
+prepper, but nonetheless I'm going to be a amateur radio operator <sup id="fnref:darc"><a class="footnote-ref" href="#fn:darc">5</a></sup>. I'd
+like to see myself as a hacker<sup id="fnref:hacker"><a class="footnote-ref" href="#fn:hacker">6</a></sup>, but realistically I'm a bungler.</p>
+<p>I'm a late bloomer: I spent my 20&#8217;s with ████████ and my 30&#8217;s with
+pulling up my socks. Now I'm doing a retraining, to eventually become a network
+engineer. What will happen in my 40&#8217;s?</p>
+<p>In my freetime I read books, ride my <a href="/bicycle">mountainbike</a> and sometimes
+sleep outdoors. I practice <a href="/meditation">sitting meditation</a> - until now in
+half-lotus postion. I see myself as a complete phool: a piteous person that is
+on the way to ed(1)<sup id="fnref:ed"><a class="footnote-ref" href="#fn:ed">7</a></sup>. I&#8217;m a pedestrian and public transport passenger
+by conviction. I hate car culture. No, I&#8217;m not Greg<sup id="fnref:greg"><a class="footnote-ref" href="#fn:greg">8</a></sup>! </p>
+<p>I started to play handpan. The sound of this instrument resonates deeply, since
+I heard the sound first over a decade ago when I was in a existential crisis.
+In the future I plan to obtain a custom handpan by 園部 良 (Ryo
+Sonobe)<sup id="fnref:sonobe"><a class="footnote-ref" href="#fn:sonobe">9</a></sup>, or even an original Hang<sup id="fnref:hang"><a class="footnote-ref" href="#fn:hang">10</a></sup> - but this depends if I'm
+able to save enough money.</p>
+<p>At the moment I play a second-hand Metal Sounds Spacedrum Evolution: C - Deep
+Sky 7 + 1, 440 Hz. <del>I&#8217;m learning as best as I can about electronics and
+patch semi-modular synthesizers, abstaining from &#8220;eurocrack&#8221;.</del></p>
+<p>I&#8217;m a full-time teetotaler, lightening up with carbonated water. I enjoy
+instant (decaf) coffee with milk, especially in the morning and green tea as a
+contemplative moment. I'm trying to switch to barley tea. I need coffee to pull
+an all nighter or to start the day at 05:00 AM.</p>
+<p>My socialization were boy scouts, anime &amp; manga and frequent visits to the
+book store. One can easily say that I was gullible in my early years. I&#8217;m
+mentally not capable to program in a low-level programming language. Before you
+wonder: my IQ seems to be equivalent to a vegetarian 炊き込みご飯 (takikomi
+gohan)<sup id="fnref:takikomi"><a class="footnote-ref" href="#fn:takikomi">11</a></sup>. I enjoy comedy and nature at the end of the week. I
+can&#8217;t handle a fast single-speed in traffic - yes, this is quite
+specific... </p>
+<p>You may take a look at my <a href="https://plan.cat/">.plan</a>, read my
+<a href="https://snac.asdfghasdfgh.de">µblog</a> or browse my <a href="ftp://asdfghasdfgh.de/pub">public ftp
+archive</a>. I used to hitchhike and travel; if you're
+interested, you may see my <a href="https://beeneverywhere.net/user/KJTW-7100">visited
+countries</a>.</p>
+<h2 id="geekcode">Geekcode<a class="headerlink" href="#geekcode" title="Permanent link">&para;</a></h2>
+<div class="language-text highlight"><pre><span></span><code>-----BEGIN GEEK CODE BLOCK-----
+Versiom: 3.20
+G!(GTA) d---(dpu) s++:+ a?(--) c C(C++) B+(B?) L- u++
+W-(++) H++(!H) 7?(--) w--(w) M+(M-) Z+ F+(-) PS+&amp;#62;+++
+PE(-) Y+&amp;#62;++ PGP+&amp;#62;+++ T--@ S+++(---) m++ J?  R*
+tv&amp;#62;!tv b+&amp;#62;++ DI D+ e* h-- A++ r- !x+
+------END GEEK CODE BLOCK------
+</code></pre></div>
+<h2 id="legal-notice">Legal notice<a class="headerlink" href="#legal-notice" title="Permanent link">&para;</a></h2>
+<p>If you need to contact me, please see the <a href="https://apps.db.ripe.net/db-web-ui/lookup?source=ripe&amp;key=ORG-MK227-RIPE&amp;type=organisation">RIPE
+database</a>.
+This website does not collect, store, or share any personal data. No cookies,
+tracking tools, or analytics services are used.</p>
+<div class="footnote">
+<hr />
+<ol>
+<li id="fn:permacomputing">
+<p>see <a href="https://permacomputing.net">Permacomputing</a>&#160;<a class="footnote-backref" href="#fnref:permacomputing" title="Jump back to footnote 1 in the text">&#8617;</a></p>
+</li>
+<li id="fn:solawi">
+<p>see <a href="https://www.solidarische-landwirtschaft.org">"Solidarische Landwirtschaft"</a>&#160;<a class="footnote-backref" href="#fnref:solawi" title="Jump back to footnote 2 in the text">&#8617;</a></p>
+</li>
+<li id="fn:kropotkin">
+<p>see <a href="https://en.wikisource.org/wiki/The_Conquest_of_Bread">Кропоткин, Пётр Алексеевич: "La Conquête du Pain"</a>&#160;<a class="footnote-backref" href="#fnref:kropotkin" title="Jump back to footnote 3 in the text">&#8617;</a></p>
+</li>
+<li id="fn:unix">
+<p>see <a href="ftp://asdfghasdfgh.de/pub/ken-thompson-and-dennis-ritchie.jpg">"Ken Thompson &amp; Dennis Ritchie"</a>&#160;<a class="footnote-backref" href="#fnref:unix" title="Jump back to footnote 4 in the text">&#8617;</a></p>
+</li>
+<li id="fn:darc">
+<p>see <a href="https://www.darc.de/der-club/distrikte/f/ortsverbaende/03/funkamateur-werden/">DARC</a>&#160;<a class="footnote-backref" href="#fnref:darc" title="Jump back to footnote 5 in the text">&#8617;</a></p>
+</li>
+<li id="fn:hacker">
+<p>see <a href="https://datatracker.ietf.org/doc/html/rfc1392#page-21">RFC 1392</a>&#160;<a class="footnote-backref" href="#fnref:hacker" title="Jump back to footnote 6 in the text">&#8617;</a></p>
+</li>
+<li id="fn:ed">
+<p>see <a href="https://www.amazon.de/Ed-Mastery-Standard-Unix-Editor/dp/1642350036">Lucas, Michael W.: "Ed Mastery"</a>&#160;<a class="footnote-backref" href="#fnref:ed" title="Jump back to footnote 7 in the text">&#8617;</a></p>
+</li>
+<li id="fn:greg">
+<p>see <a href="https://venetiansnares.bandcamp.com/album/greg-hates-car-culture-20th-anniversary">Venetian Snares: "Greg Hates Car Culture"</a>&#160;<a class="footnote-backref" href="#fnref:greg" title="Jump back to footnote 8 in the text">&#8617;</a></p>
+</li>
+<li id="fn:sonobe">
+<p>see <a href="https://www.sonobe-handpan.com/?lang=en">Sonobe Handpans</a>&#160;<a class="footnote-backref" href="#fnref:sonobe" title="Jump back to footnote 9 in the text">&#8617;</a></p>
+</li>
+<li id="fn:hang">
+<p>see <a href="https://panart.ch/de/instrumente/klangskulptur-hang">PANArt Hang</a>&#160;<a class="footnote-backref" href="#fnref:hang" title="Jump back to footnote 10 in the text">&#8617;</a></p>
+</li>
+<li id="fn:takikomi">
+<p>see <a href="https://jisho.org/search/%E7%82%8A%E3%81%8D%E8%BE%BC%E3%81%BF%E3%81%94%E9%A3%AF">Jisho.org</a>&#160;<a class="footnote-backref" href="#fnref:takikomi" title="Jump back to footnote 11 in the text">&#8617;</a></p>
+</li>
+</ol>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                
+              </article>
+            </div>
+          
+          
+  <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
+
+<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
+        </div>
+        
+          <button type="button" class="md-top md-icon" data-md-component="top" hidden>
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-circle-arrow-up" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="m16 12-4-4-4 4M12 16V8"/></svg>
+  Back to top
+</button>
+        
+      </main>
+      
+        <footer class="md-footer">
+  
+    
+      
+      <nav class="md-footer__inner md-grid" aria-label="Footer" >
+        
+        
+          
+          <a href="bicycle/" class="md-footer__link md-footer__link--next" aria-label="Next: Bicycle">
+            <div class="md-footer__title">
+              <span class="md-footer__direction">
+                Next
+              </span>
+              <div class="md-ellipsis">
+                Bicycle
+              </div>
+            </div>
+            <div class="md-footer__button md-icon">
+              
+              <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-right" viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
+            </div>
+          </a>
+        
+      </nav>
+    
+  
+  <div class="md-footer-meta md-typeset">
+    <div class="md-footer-meta__inner md-grid">
+      <div class="md-copyright">
+  
+    <div class="md-copyright__highlight">
+      WTFPL &copy; 1987 Manuel Kuklinski
+<br>
+<a href="/xyz">No permission granted to any AI/LLM/ML-powered system (or similar).</a>
+
+    </div>
+  
+  
+</div>
+      
+    </div>
+  </div>
+</footer>
+      
+    </div>
+    <div class="md-dialog" data-md-component="dialog">
+      <div class="md-dialog__inner md-typeset"></div>
+    </div>
+    
+    
+    
+      
+      
+      
+      <script id="__config" type="application/json">{"annotate":null,"base":".","features":["announce.dismiss","content.code.annotate","content.code.copy","content.code.select","content.footnote.tooltips","content.tabs.link","content.tooltips","navigation.footer","navigation.indexes","navigation.instant","navigation.instant.prefetch","navigation.path","navigation.prune","navigation.sections","navigation.top","navigation.tracking","search.highlight"],"search":"assets/javascripts/workers/search.5df7522c.min.js","tags":null,"translations":{"clipboard.copied":"Copied to clipboard","clipboard.copy":"Copy to clipboard","search.result.more.one":"1 more on this page","search.result.more.other":"# more on this page","search.result.none":"No matching documents","search.result.one":"1 matching document","search.result.other":"# matching documents","search.result.placeholder":"Type to start searching","search.result.term.missing":"Missing","select.version":"Select version"},"version":null}</script>
+    
+    
+      <script src="assets/javascripts/bundle.21aa498e.min.js"></script>
+      
+    
+  </body>
+</html>
\ No newline at end of file
blob - /dev/null
blob + ebbf61cf52c4638e5237313aeb7014583d47dc09 (mode 644)
--- /dev/null
+++ site/junkyard/index.html
@@ -0,0 +1,2664 @@
+
+<!doctype html>
+<html lang="en" class="no-js">
+  <head>
+    
+      <meta charset="utf-8">
+      <meta name="viewport" content="width=device-width,initial-scale=1">
+      
+        <meta name="description" content="Personal homepage of Manuel Kuklinski (AS213674)">
+      
+      
+        <meta name="author" content="Manuel Kuklinski">
+      
+      
+        <link rel="canonical" href="https://www.asdfghasdfgh.de/junkyard/">
+      
+      
+        <link rel="prev" href="../hardware/">
+      
+      
+        <link rel="next" href="../library/">
+      
+      
+        
+      
+      
+      <link rel="icon" href="../images/favicon.png">
+      <meta name="generator" content="zensical-0.0.11">
+    
+    
+      
+        <title>Junkyard - asdfghasdfgh.de</title>
+      
+    
+    
+      
+        
+      
+      <link rel="stylesheet" href="../assets/stylesheets/modern/main.bd6182e7.min.css">
+      
+        
+          
+        
+        <link rel="stylesheet" href="../assets/stylesheets/modern/palette.dfe2e883.min.css">
+      
+      
+  
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+  
+  <style>:root{}</style>
+
+
+
+    
+    
+      
+    
+    
+      
+    
+    
+      <link rel="stylesheet" href="../stylesheets/extra.css">
+    
+    <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,t)=>(e<<5)-e+t.charCodeAt(0)),0),__md_get=(e,t=localStorage,a=__md_scope)=>JSON.parse(t.getItem(a.pathname+"."+e)),__md_set=(e,t,a=localStorage,_=__md_scope)=>{try{a.setItem(_.pathname+"."+e,JSON.stringify(t))}catch(e){}},document.documentElement.setAttribute("data-platform",navigator.platform)</script>
+    
+      
+
+    
+    
+  </head>
+  
+  
+    
+    
+      
+    
+    
+    
+    
+    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
+  
+    
+    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
+    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
+    <label class="md-overlay" for="__drawer"></label>
+    <div data-md-component="skip">
+      
+        
+        <a href="#junkyard" class="md-skip">
+          Skip to content
+        </a>
+      
+    </div>
+    <div data-md-component="announce">
+      
+    </div>
+    
+    
+      
+
+  
+
+<header class="md-header md-header--shadow" data-md-component="header">
+  <nav class="md-header__inner md-grid" aria-label="Header">
+    <a href=".." title="asdfghasdfgh.de" class="md-header__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    <label class="md-header__button md-icon" for="__drawer">
+      
+      <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-menu" viewBox="0 0 24 24"><path d="M4 5h16M4 12h16M4 19h16"/></svg>
+    </label>
+    <div class="md-header__title" data-md-component="header-title">
+      <div class="md-header__ellipsis">
+        <div class="md-header__topic">
+          <span class="md-ellipsis">
+            asdfghasdfgh.de
+          </span>
+        </div>
+        <div class="md-header__topic" data-md-component="header-topic">
+          <span class="md-ellipsis">
+            
+              Junkyard
+            
+          </span>
+        </div>
+      </div>
+    </div>
+    
+      
+        <form class="md-header__option" data-md-component="palette">
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to light mode"  type="radio" name="__palette" id="__palette_0">
+    
+      <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun-moon" viewBox="0 0 24 24"><path d="M12 2v2M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715M16 12a4 4 0 0 0-4-4M19 5l-1.256 1.256M20 12h2"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to dark mode"  type="radio" name="__palette" id="__palette_1">
+    
+      <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to system preference"  type="radio" name="__palette" id="__palette_2">
+    
+      <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-moon" viewBox="0 0 24 24"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/></svg>
+      </label>
+    
+  
+</form>
+      
+    
+    
+      <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
+    
+    
+    
+      
+      
+        <label class="md-header__button md-icon" for="__search">
+          
+          <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-search" viewBox="0 0 24 24"><path d="m21 21-4.34-4.34"/><circle cx="11" cy="11" r="8"/></svg>
+        </label>
+        <div class="md-search" data-md-component="search" role="dialog" aria-label="Search">
+  <button type="button" class="md-search__button">
+    Search
+  </button>
+</div>
+      
+    
+    <div class="md-header__source">
+      
+    </div>
+  </nav>
+  
+</header>
+    
+    <div class="md-container" data-md-component="container">
+      
+      
+        
+          
+        
+      
+      <main class="md-main" data-md-component="main">
+        <div class="md-main__inner md-grid">
+          
+            
+              
+              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+
+<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
+  <label class="md-nav__title" for="__drawer">
+    <a href=".." title="asdfghasdfgh.de" class="md-nav__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    asdfghasdfgh.de
+  </label>
+  
+  <ul class="md-nav__list" data-md-scrollfix>
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href=".." class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    「戦争を作るな、平和を作りましょう」
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../bicycle/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Bicycle
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../hardware/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Hardware
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+    
+  
+  
+  
+    <li class="md-nav__item md-nav__item--active">
+      
+      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
+      
+      
+        
+      
+      
+        <label class="md-nav__link md-nav__link--active" for="__toc">
+          
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Junkyard
+  
+
+    
+  </span>
+  
+  
+
+          <span class="md-nav__icon md-icon"></span>
+        </label>
+      
+      <a href="./" class="md-nav__link md-nav__link--active">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Junkyard
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+      
+        
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      On this page
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#hardware-ive-abandoned" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Hardware I've abandoned
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Hardware I&#x27;ve abandoned">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#2026" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2026
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="2026">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#dell-poweredge-r530" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Dell PowerEdge R530
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#nintendo-dmg-01" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Nintendo DMG-01
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#great-scott-gadgets-hackrf-one" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Great Scott Gadgets HackRF One
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2025" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2025
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="2025">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#pc-engines-apu1c4" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        PC Engines apu1c4
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#texas-instruments-beaglebone-black" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Texas Instruments BeagleBone Black
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-watch59" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple Watch5,9
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#motorola-c118" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Motorola C118
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#supermicro-h8sml-i" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Supermicro H8SML-i
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2024" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2024
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="2024">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#mikrotik-rb962uigs-5hact2hnt" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        MikroTik RB962UiGS-5HACT2HNT
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#rtl-sdr-rtl2832u-v3" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        RTL-SDR RTL2832U v3
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#blackberry-q10" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Blackberry Q10
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-iphone104" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple iPhone10,4
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#hp-t620" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        HP t620
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-iphone93" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple iPhone9,3
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#brother-mfc-7360n" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Brother MFC-7360N
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#tecsun-pl-380" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Tecsun PL-380
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-imac143" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple iMac14,3
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#commodore-64-aldi" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Commodore 64 ("ALDI")
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#casio-gw-m5610-1" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Casio GW-M5610-1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#circuitmess-ringo" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        CircuitMess Ringo
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2023" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2023
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="2023">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#apple-iphone128" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple iPhone12,8
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-imac91" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple iMac9,1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#brother-dcp-7055w" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Brother DCP-7055W
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-tv32" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple TV3,2
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#nokia-dbox2" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Nokia DBox2
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#blackberry-classic" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Blackberry Classic
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-macbookpro121" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple MacBookPro12,1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#toughbook-cf-19-mk1" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Toughbook CF-19 MK1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#kenwood-r-1000" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Kenwood R-1000
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2022" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2022
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="2022">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#nokia-800-tough" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Nokia 800 Tough
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#pc-engines-alix2d3" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        PC Engines alix2d3
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#albrecht-ae69-2h" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Albrecht AE69-2H
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#cat-b35" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        CAT B35
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#edision-os-nino" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Edision OS Nino+
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-iphone61" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple iPhone6,1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#lenovo-thinkpad-x250" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Lenovo ThinkPad X250
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2018" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2018
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="2018">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#apple-macbookair31" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple MacBookAir3,1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#raspberry-pi-3b" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Raspberry Pi 3B+
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#brother-hl-2035" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Brother HL-2035
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#lenovo-thinkcentre-m70e" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Lenovo ThinkCentre M70e
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#sony-playstation-3" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Sony PlayStation 3
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#sony-playstation-2" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Sony PlayStation 2
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#lenovo-thinkpad-x200" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Lenovo ThinkPad X200
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#cat-b25" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        CAT B25
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#raspberry-pi-b" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Raspberry Pi B+
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#a-long-time-ago" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        "A long time ago..."
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="&quot;A long time ago...&quot;">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#samsung-e1200" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Samsung E1200
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#samsung-e1070" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Samsung E1070
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#dell-inspiron-mini-910" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Dell Inspiron Mini 910
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#motorola-defy" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Motorola DEFY+
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#lenovo-thinkpad-x61" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Lenovo ThinkPad X61
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#toshiba-satellite-2410" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Toshiba Satellite 2410
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#compaq-deskpro-en" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Compaq Deskpro EN
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-powerbook56" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple PowerBook5,6
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#microsoft-xbox" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Microsoft XBOX
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#sony-ericsson-c901" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Sony Ericsson C901
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#nokia-3310" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Nokia 3310
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-powermac21" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple PowerMac2,1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#nokia-2110" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Nokia 2110
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#sony-playstation-1" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Sony PlayStation 1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#nintendo-64" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Nintendo 64
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#sega-game-gear" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Sega Game Gear
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#sega-mega-drive" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Sega Mega Drive
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../library/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Library
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../meditation/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Meditation
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../network/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Network
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+  </ul>
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+            
+              
+              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      On this page
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#hardware-ive-abandoned" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Hardware I've abandoned
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Hardware I&#x27;ve abandoned">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#2026" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2026
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="2026">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#dell-poweredge-r530" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Dell PowerEdge R530
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#nintendo-dmg-01" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Nintendo DMG-01
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#great-scott-gadgets-hackrf-one" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Great Scott Gadgets HackRF One
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2025" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2025
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="2025">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#pc-engines-apu1c4" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        PC Engines apu1c4
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#texas-instruments-beaglebone-black" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Texas Instruments BeagleBone Black
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-watch59" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple Watch5,9
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#motorola-c118" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Motorola C118
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#supermicro-h8sml-i" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Supermicro H8SML-i
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2024" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2024
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="2024">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#mikrotik-rb962uigs-5hact2hnt" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        MikroTik RB962UiGS-5HACT2HNT
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#rtl-sdr-rtl2832u-v3" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        RTL-SDR RTL2832U v3
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#blackberry-q10" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Blackberry Q10
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-iphone104" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple iPhone10,4
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#hp-t620" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        HP t620
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-iphone93" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple iPhone9,3
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#brother-mfc-7360n" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Brother MFC-7360N
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#tecsun-pl-380" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Tecsun PL-380
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-imac143" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple iMac14,3
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#commodore-64-aldi" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Commodore 64 ("ALDI")
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#casio-gw-m5610-1" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Casio GW-M5610-1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#circuitmess-ringo" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        CircuitMess Ringo
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2023" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2023
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="2023">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#apple-iphone128" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple iPhone12,8
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-imac91" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple iMac9,1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#brother-dcp-7055w" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Brother DCP-7055W
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-tv32" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple TV3,2
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#nokia-dbox2" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Nokia DBox2
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#blackberry-classic" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Blackberry Classic
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-macbookpro121" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple MacBookPro12,1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#toughbook-cf-19-mk1" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Toughbook CF-19 MK1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#kenwood-r-1000" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Kenwood R-1000
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2022" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2022
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="2022">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#nokia-800-tough" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Nokia 800 Tough
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#pc-engines-alix2d3" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        PC Engines alix2d3
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#albrecht-ae69-2h" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Albrecht AE69-2H
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#cat-b35" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        CAT B35
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#edision-os-nino" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Edision OS Nino+
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-iphone61" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple iPhone6,1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#lenovo-thinkpad-x250" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Lenovo ThinkPad X250
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2018" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2018
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="2018">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#apple-macbookair31" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple MacBookAir3,1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#raspberry-pi-3b" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Raspberry Pi 3B+
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#brother-hl-2035" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Brother HL-2035
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#lenovo-thinkcentre-m70e" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Lenovo ThinkCentre M70e
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#sony-playstation-3" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Sony PlayStation 3
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#sony-playstation-2" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Sony PlayStation 2
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#lenovo-thinkpad-x200" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Lenovo ThinkPad X200
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#cat-b25" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        CAT B25
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#raspberry-pi-b" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Raspberry Pi B+
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#a-long-time-ago" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        "A long time ago..."
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="&quot;A long time ago...&quot;">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#samsung-e1200" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Samsung E1200
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#samsung-e1070" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Samsung E1070
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#dell-inspiron-mini-910" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Dell Inspiron Mini 910
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#motorola-defy" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Motorola DEFY+
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#lenovo-thinkpad-x61" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Lenovo ThinkPad X61
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#toshiba-satellite-2410" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Toshiba Satellite 2410
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#compaq-deskpro-en" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Compaq Deskpro EN
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-powerbook56" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple PowerBook5,6
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#microsoft-xbox" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Microsoft XBOX
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#sony-ericsson-c901" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Sony Ericsson C901
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#nokia-3310" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Nokia 3310
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#apple-powermac21" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Apple PowerMac2,1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#nokia-2110" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Nokia 2110
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#sony-playstation-1" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Sony PlayStation 1
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#nintendo-64" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Nintendo 64
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#sega-game-gear" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Sega Game Gear
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#sega-mega-drive" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Sega Mega Drive
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+          
+          
+            <div class="md-content" data-md-component="content">
+              
+                
+
+
+
+  
+
+
+              
+              <article class="md-content__inner md-typeset">
+                
+                  
+
+<h1 id="junkyard">Junkyard<a class="headerlink" href="#junkyard" title="Permanent link">&para;</a></h1>
+<h2 id="hardware-ive-abandoned">Hardware I've abandoned<a class="headerlink" href="#hardware-ive-abandoned" title="Permanent link">&para;</a></h2>
+<h3 id="2026">2026<a class="headerlink" href="#2026" title="Permanent link">&para;</a></h3>
+<h4 id="dell-poweredge-r530">Dell PowerEdge R530<a class="headerlink" href="#dell-poweredge-r530" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Swapped the CPU to R730</li>
+<li>Swapped the RAM to R730</li>
+<li>Swapped the disks to R730</li>
+</ul>
+<h4 id="nintendo-dmg-01">Nintendo DMG-01<a class="headerlink" href="#nintendo-dmg-01" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Sharp SM83 1x 4.19 MHz</li>
+<li>8 KB Non-ECC RAM</li>
+<li>ROM: InsideGadgets 2 MB ROM, 32 KB FRAM v2.2</li>
+</ul>
+<h4 id="great-scott-gadgets-hackrf-one">Great Scott Gadgets HackRF One<a class="headerlink" href="#great-scott-gadgets-hackrf-one" title="Permanent link">&para;</a></h4>
+<ul>
+<li>ARM Cortex-M4 + Cortex-M0 2x 204 MHz</li>
+<li>200 KB Non-ECC RAM</li>
+<li>TX/RX: 1~6000 MHz</li>
+</ul>
+<h3 id="2025">2025<a class="headerlink" href="#2025" title="Permanent link">&para;</a></h3>
+<h4 id="pc-engines-apu1c4">PC Engines apu1c4<a class="headerlink" href="#pc-engines-apu1c4" title="Permanent link">&para;</a></h4>
+<ul>
+<li>AMD G-T40E 2x 1.00 GHz</li>
+<li>4 GB Non-ECC RAM</li>
+<li>64 GB M.2 SSD</li>
+</ul>
+<h4 id="texas-instruments-beaglebone-black">Texas Instruments BeagleBone Black<a class="headerlink" href="#texas-instruments-beaglebone-black" title="Permanent link">&para;</a></h4>
+<ul>
+<li>ARM Cortex-A8 1x 1.00 GHz</li>
+<li>512 MB Non-ECC RAM</li>
+<li>4 GB Disk</li>
+</ul>
+<h4 id="apple-watch59">Apple Watch5,9<a class="headerlink" href="#apple-watch59" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Apple S5 2x 1.50 GHz</li>
+<li>1 GB Non-ECC RAM</li>
+<li>32 GB Disk</li>
+</ul>
+<h4 id="motorola-c118">Motorola C118<a class="headerlink" href="#motorola-c118" title="Permanent link">&para;</a></h4>
+<ul>
+<li>ARM7TDMI 1x 66 MHz~100 MHz</li>
+<li>256 KB Non-ECC RAM</li>
+<li>0 MB Disk</li>
+</ul>
+<h4 id="supermicro-h8sml-i">Supermicro H8SML-i<a class="headerlink" href="#supermicro-h8sml-i" title="Permanent link">&para;</a></h4>
+<ul>
+<li>AMD Opteron 3350 HE 4x 2.80 GHz</li>
+<li>8 GB ECC RAM</li>
+<li>2x 128 GB + 4x 4 TB Disk</li>
+</ul>
+<h3 id="2024">2024<a class="headerlink" href="#2024" title="Permanent link">&para;</a></h3>
+<h4 id="mikrotik-rb962uigs-5hact2hnt">MikroTik RB962UiGS-5HACT2HNT<a class="headerlink" href="#mikrotik-rb962uigs-5hact2hnt" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Qualcomm Atheros QCA9558 1x 720 MHz</li>
+<li>128 MB Non-ECC RAM</li>
+<li>16 MB Disk</li>
+</ul>
+<h4 id="rtl-sdr-rtl2832u-v3">RTL-SDR RTL2832U v3<a class="headerlink" href="#rtl-sdr-rtl2832u-v3" title="Permanent link">&para;</a></h4>
+<ul>
+<li>RTL2832U</li>
+<li>No RAM</li>
+<li>RX: 0.5~1700 MHz</li>
+</ul>
+<h4 id="blackberry-q10">Blackberry Q10<a class="headerlink" href="#blackberry-q10" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Qualcomm Snapdragon S4 2x 1.50 GHz</li>
+<li>2 GB Non-ECC RAM</li>
+<li>16 GB Disk</li>
+</ul>
+<h4 id="apple-iphone104">Apple iPhone10,4<a class="headerlink" href="#apple-iphone104" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Apple A11 Bionic 2x 2.40 GHz &amp; 4x 1.40 Ghz</li>
+<li>2 GB Non-ECC RAM</li>
+<li>64 GB Disk</li>
+</ul>
+<h4 id="hp-t620">HP t620<a class="headerlink" href="#hp-t620" title="Permanent link">&para;</a></h4>
+<ul>
+<li>AMD GX-415G 4x 1.50 GHz</li>
+<li>8 GB Non-ECC RAM</li>
+<li>256 GB Disk</li>
+</ul>
+<h4 id="apple-iphone93">Apple iPhone9,3<a class="headerlink" href="#apple-iphone93" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Apple A10 Fusion 4x 2.34 GHz</li>
+<li>2 GB Non-ECC RAM</li>
+<li>32 GB Disk</li>
+</ul>
+<h4 id="brother-mfc-7360n">Brother MFC-7360N<a class="headerlink" href="#brother-mfc-7360n" title="Permanent link">&para;</a></h4>
+<ul>
+<li>ARM9 1x 200 MHz</li>
+<li>32 MB Non-ECC RAM</li>
+<li>Host-based (GDI)</li>
+</ul>
+<h4 id="tecsun-pl-380">Tecsun PL-380<a class="headerlink" href="#tecsun-pl-380" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Silicon Labs Si4734</li>
+<li>Unknown RAM</li>
+<li>RX: 0.153~0.513 + 0.522~1.62 + 2.3~21.95 + 87~108 MHz</li>
+</ul>
+<h4 id="apple-imac143">Apple iMac14,3<a class="headerlink" href="#apple-imac143" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Core i7-4770S 4x 3.10 GHz</li>
+<li>16 GB Non-ECC RAM</li>
+<li>1 TB Disk</li>
+</ul>
+<h4 id="commodore-64-aldi">Commodore 64 ("ALDI")<a class="headerlink" href="#commodore-64-aldi" title="Permanent link">&para;</a></h4>
+<ul>
+<li>MOS 8500 1x 0.985 MHz</li>
+<li>64 KB Non-ECC RAM</li>
+<li>64 MB Disk ("EasyFlash\xc2\xb3")</li>
+</ul>
+<h4 id="casio-gw-m5610-1">Casio GW-M5610-1<a class="headerlink" href="#casio-gw-m5610-1" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Quartz logic</li>
+<li>Hybrid solar + battery</li>
+<li>RX: 0.04 + 0.06 + 0.685 + 0.0775 MHz</li>
+</ul>
+<h4 id="circuitmess-ringo">CircuitMess Ringo<a class="headerlink" href="#circuitmess-ringo" title="Permanent link">&para;</a></h4>
+<ul>
+<li>ESP32 Xtensa LX6 2x 160 MHz</li>
+<li>520 KB Non-ECC RAM</li>
+<li>4 MB Disk</li>
+</ul>
+<h3 id="2023">2023<a class="headerlink" href="#2023" title="Permanent link">&para;</a></h3>
+<h4 id="apple-iphone128">Apple iPhone12,8<a class="headerlink" href="#apple-iphone128" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Apple A13 Bionic 6x 2.66 GHz</li>
+<li>3 GB Non-ECC RAM</li>
+<li>64 GB Disk</li>
+</ul>
+<h4 id="apple-imac91">Apple iMac9,1<a class="headerlink" href="#apple-imac91" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Core 2 Duo E8135 2x 2.66 GHz</li>
+<li>8 GB Non-ECC RAM</li>
+<li>320 GB Disk</li>
+</ul>
+<h4 id="brother-dcp-7055w">Brother DCP-7055W<a class="headerlink" href="#brother-dcp-7055w" title="Permanent link">&para;</a></h4>
+<ul>
+<li>ARM9 1x 200 MHz</li>
+<li>32 MB Non-ECC RAM</li>
+<li>Host-based (GDI)</li>
+</ul>
+<h4 id="apple-tv32">Apple TV3,2<a class="headerlink" href="#apple-tv32" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Apple A5 1x 1.00 GHz</li>
+<li>512 MB Non-ECC RAM</li>
+<li>8 GB Disk</li>
+</ul>
+<h4 id="nokia-dbox2">Nokia DBox2<a class="headerlink" href="#nokia-dbox2" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Motorola MPC823 1x 66 MHz</li>
+<li>32 MB Non-ECC RAM</li>
+<li>8 MB Disk</li>
+</ul>
+<h4 id="blackberry-classic">Blackberry Classic<a class="headerlink" href="#blackberry-classic" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Qualcomm Snapdragon S4 Plus 2x 1.50 GHz</li>
+<li>2 GB Non-ECC RAM</li>
+<li>16 GB Disk</li>
+</ul>
+<h4 id="apple-macbookpro121">Apple MacBookPro12,1<a class="headerlink" href="#apple-macbookpro121" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Core i5-5257U 2x 2.90 GHz</li>
+<li>16 GB Non-ECC RAM</li>
+<li>512 GB Disk</li>
+</ul>
+<h4 id="toughbook-cf-19-mk1">Toughbook CF-19 MK1<a class="headerlink" href="#toughbook-cf-19-mk1" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Core Duo U2400 2x 1.06 GHz</li>
+<li>2 GB Non-ECC RAM</li>
+<li>128 GB Disk</li>
+</ul>
+<h4 id="kenwood-r-1000">Kenwood R-1000<a class="headerlink" href="#kenwood-r-1000" title="Permanent link">&para;</a></h4>
+<ul>
+<li>No CPU - analog</li>
+<li>No RAM - analog</li>
+<li>RX: 0.2-30 MHz</li>
+</ul>
+<h3 id="2022">2022<a class="headerlink" href="#2022" title="Permanent link">&para;</a></h3>
+<h4 id="nokia-800-tough">Nokia 800 Tough<a class="headerlink" href="#nokia-800-tough" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Qualcomm Snapdragon 205 2x 1.30 GHz</li>
+<li>512 MB Non-ECC RAM</li>
+<li>4 GB Disk</li>
+</ul>
+<h4 id="pc-engines-alix2d3">PC Engines alix2d3<a class="headerlink" href="#pc-engines-alix2d3" title="Permanent link">&para;</a></h4>
+<ul>
+<li>AMD Geode LX800 1x 500 MHz</li>
+<li>256 MB Non-ECC RAM</li>
+<li>32 GB Disk</li>
+</ul>
+<h4 id="albrecht-ae69-2h">Albrecht AE69-2H<a class="headerlink" href="#albrecht-ae69-2h" title="Permanent link">&para;</a></h4>
+<ul>
+<li>SMD SL5018</li>
+<li>Unknown RAM</li>
+<li>RX: 28-88 + 137-174 + 406-512 MHz</li>
+</ul>
+<h4 id="cat-b35">CAT B35<a class="headerlink" href="#cat-b35" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Qualcomm Snapdragon 205 2x 1.30 GHz</li>
+<li>512 MB Non-ECC RAM</li>
+<li>4 GB Disk</li>
+</ul>
+<h4 id="edision-os-nino">Edision OS Nino+<a class="headerlink" href="#edision-os-nino" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Mips Broadcom BCM73625 2x 742 MHz</li>
+<li>512 MB Non-ECC RAM</li>
+<li>512 MB Disk</li>
+</ul>
+<h4 id="apple-iphone61">Apple iPhone6,1<a class="headerlink" href="#apple-iphone61" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Apple A7 CPU 2x 1.3 GHz</li>
+<li>1 GB Non-ECC RAM</li>
+<li>32 GB Disk</li>
+</ul>
+<h4 id="lenovo-thinkpad-x250">Lenovo ThinkPad X250<a class="headerlink" href="#lenovo-thinkpad-x250" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Core i5-5300U 2x 2.90 GHz</li>
+<li>8 GB Non-ECC RAM</li>
+<li>128 GB Disk</li>
+</ul>
+<h3 id="2018">2018<a class="headerlink" href="#2018" title="Permanent link">&para;</a></h3>
+<h4 id="apple-macbookair31">Apple MacBookAir3,1<a class="headerlink" href="#apple-macbookair31" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Core 2 Duo2x 1.40 GHz</li>
+<li>2 GB Non-ECC RAM</li>
+<li>128 GB Disk</li>
+</ul>
+<h4 id="raspberry-pi-3b">Raspberry Pi 3B+<a class="headerlink" href="#raspberry-pi-3b" title="Permanent link">&para;</a></h4>
+<ul>
+<li>ARM Cortex-A53 4x 1.40 GHz</li>
+<li>1 GB Non-ECC RAM</li>
+<li>32 GB Disk</li>
+</ul>
+<h4 id="brother-hl-2035">Brother HL-2035<a class="headerlink" href="#brother-hl-2035" title="Permanent link">&para;</a></h4>
+<ul>
+<li>SPARClite 1x 96 MHz</li>
+<li>8 MB Non-ECC RAM</li>
+<li>Host-based (GDI)</li>
+</ul>
+<h4 id="lenovo-thinkcentre-m70e">Lenovo ThinkCentre M70e<a class="headerlink" href="#lenovo-thinkcentre-m70e" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Core 2 Duo E7500 2x 2.93 GHz</li>
+<li>4 GB Non-ECC RAM</li>
+<li>250 GB Disk</li>
+</ul>
+<h4 id="sony-playstation-3">Sony PlayStation 3<a class="headerlink" href="#sony-playstation-3" title="Permanent link">&para;</a></h4>
+<ul>
+<li>STI PowerPC 1x 3.20 GHz</li>
+<li>256 MB Non-ECC RAM</li>
+<li>60 GB Disk</li>
+</ul>
+<h4 id="sony-playstation-2">Sony PlayStation 2<a class="headerlink" href="#sony-playstation-2" title="Permanent link">&para;</a></h4>
+<ul>
+<li>MIPS R5900 1x 294.912 MHz</li>
+<li>32 MB Non-ECC RAM</li>
+<li>8 MB Disk</li>
+</ul>
+<h4 id="lenovo-thinkpad-x200">Lenovo ThinkPad X200<a class="headerlink" href="#lenovo-thinkpad-x200" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Core 2 Duo P8600 2x 2.40 GHz</li>
+<li>2 GB Non-ECC RAM</li>
+<li>120 GB Disk</li>
+</ul>
+<h4 id="cat-b25">CAT B25<a class="headerlink" href="#cat-b25" title="Permanent link">&para;</a></h4>
+<ul>
+<li>MediaTek MT6235 1x 208 MHz</li>
+<li>256 MB Non-ECC RAM</li>
+<li>512 MB Disk</li>
+</ul>
+<h4 id="raspberry-pi-b">Raspberry Pi B+<a class="headerlink" href="#raspberry-pi-b" title="Permanent link">&para;</a></h4>
+<ul>
+<li>ARM ARM1176JZF-S 1x 700 MHz</li>
+<li>512 MB Non-ECC RAM</li>
+<li>32 GB Disk</li>
+</ul>
+<h3 id="a-long-time-ago">"A long time ago..."<a class="headerlink" href="#a-long-time-ago" title="Permanent link">&para;</a></h3>
+<h4 id="samsung-e1200">Samsung E1200<a class="headerlink" href="#samsung-e1200" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Unknown CPU 1x 156 MHz</li>
+<li>Unknown RAM</li>
+<li>32 MB Disk</li>
+</ul>
+<h4 id="samsung-e1070">Samsung E1070<a class="headerlink" href="#samsung-e1070" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Unknown CPU</li>
+<li>Unknown RAM</li>
+<li>10 MB Disk</li>
+</ul>
+<h4 id="dell-inspiron-mini-910">Dell Inspiron Mini 910<a class="headerlink" href="#dell-inspiron-mini-910" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Atom N270 1x 1.60 GHz</li>
+<li>1024 MB Non-ECC RAM</li>
+<li>8 GB Disk</li>
+</ul>
+<h4 id="motorola-defy">Motorola DEFY+<a class="headerlink" href="#motorola-defy" title="Permanent link">&para;</a></h4>
+<ul>
+<li>TI OMAP 3620 1x 1.0 Ghz</li>
+<li>512 MB Non-ECC RAM</li>
+<li>3 GB Disk</li>
+</ul>
+<h4 id="lenovo-thinkpad-x61">Lenovo ThinkPad X61<a class="headerlink" href="#lenovo-thinkpad-x61" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Core 2 Duo L7500 2x 1.60 GHz</li>
+<li>2 GB Non-ECC RAM</li>
+<li>128 GB Disk</li>
+</ul>
+<h4 id="toshiba-satellite-2410">Toshiba Satellite 2410<a class="headerlink" href="#toshiba-satellite-2410" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Pentium 4 M 1x 2.00 GHz</li>
+<li>512 MB Non-ECC RAM</li>
+<li>30 GB Disk</li>
+<li>NOTE: Unsure about specific model and hardware specification - could maybe have been a 1800...</li>
+</ul>
+<h4 id="compaq-deskpro-en">Compaq Deskpro EN<a class="headerlink" href="#compaq-deskpro-en" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Pentium III 1x 1.00 GHz</li>
+<li>338 MB Non-ECC RAM</li>
+<li>20 GB Disk</li>
+<li>NOTE: Unsure about specific model and hardware specification...</li>
+</ul>
+<h4 id="apple-powerbook56">Apple PowerBook5,6<a class="headerlink" href="#apple-powerbook56" title="Permanent link">&para;</a></h4>
+<ul>
+<li>PowerPC 7447A 1x 1.67 GHz</li>
+<li>512 MB Non-ECC RAM</li>
+<li>80 GB Disk</li>
+</ul>
+<h4 id="microsoft-xbox">Microsoft XBOX<a class="headerlink" href="#microsoft-xbox" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Intel Pentium III 1x 733 MHz</li>
+<li>64 MB Non-ECC RAM</li>
+<li>8 GB Disk</li>
+</ul>
+<h4 id="sony-ericsson-c901">Sony Ericsson C901<a class="headerlink" href="#sony-ericsson-c901" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Unknown CPU</li>
+<li>Unknown RAM</li>
+<li>110 MB Disk</li>
+</ul>
+<h4 id="nokia-3310">Nokia 3310<a class="headerlink" href="#nokia-3310" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Unknown 1x 13 MHz</li>
+<li>4 KB Non-ECC RAM</li>
+<li>1 KB Disk</li>
+</ul>
+<h4 id="apple-powermac21">Apple PowerMac2,1<a class="headerlink" href="#apple-powermac21" title="Permanent link">&para;</a></h4>
+<ul>
+<li>PowerPC 750 1x 350 MHz</li>
+<li>64 MB Non-ECC RAM</li>
+<li>10 GB Disk</li>
+</ul>
+<h4 id="nokia-2110">Nokia 2110<a class="headerlink" href="#nokia-2110" title="Permanent link">&para;</a></h4>
+<ul>
+<li>1x 6 MHz CPU</li>
+<li>96 KB Non-ECC RAM</li>
+<li>Unknown Disk</li>
+</ul>
+<h4 id="sony-playstation-1">Sony PlayStation 1<a class="headerlink" href="#sony-playstation-1" title="Permanent link">&para;</a></h4>
+<ul>
+<li>MIPS R3051 1x 33.8688 MHz</li>
+<li>2 MB Non-ECC RAM</li>
+<li>128 KB Disk</li>
+</ul>
+<h4 id="nintendo-64">Nintendo 64<a class="headerlink" href="#nintendo-64" title="Permanent link">&para;</a></h4>
+<ul>
+<li>NEC VR4300 1x 93.75 MHz</li>
+<li>8 MB Non-ECC RAM ("Expansion Pak")</li>
+<li>4-64 MB ROM</li>
+</ul>
+<h4 id="sega-game-gear">Sega Game Gear<a class="headerlink" href="#sega-game-gear" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Zilog Z80 1x 3.58 MHz</li>
+<li>8 KB Non-ECC RAM</li>
+<li>128 KB-4 MB ROM</li>
+</ul>
+<h4 id="sega-mega-drive">Sega Mega Drive<a class="headerlink" href="#sega-mega-drive" title="Permanent link">&para;</a></h4>
+<ul>
+<li>Motorola 68000 1x 7.6 MHz</li>
+<li>64 KB Non-ECC RAM</li>
+<li>256 KB-4 MB ROM</li>
+</ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                
+              </article>
+            </div>
+          
+          
+  <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
+
+<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
+        </div>
+        
+          <button type="button" class="md-top md-icon" data-md-component="top" hidden>
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-circle-arrow-up" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="m16 12-4-4-4 4M12 16V8"/></svg>
+  Back to top
+</button>
+        
+      </main>
+      
+        <footer class="md-footer">
+  
+    
+      
+      <nav class="md-footer__inner md-grid" aria-label="Footer" >
+        
+          
+          <a href="../hardware/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Hardware">
+            <div class="md-footer__button md-icon">
+              
+              <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-left" viewBox="0 0 24 24"><path d="m12 19-7-7 7-7M19 12H5"/></svg>
+            </div>
+            <div class="md-footer__title">
+              <span class="md-footer__direction">
+                Previous
+              </span>
+              <div class="md-ellipsis">
+                Hardware
+              </div>
+            </div>
+          </a>
+        
+        
+          
+          <a href="../library/" class="md-footer__link md-footer__link--next" aria-label="Next: Library">
+            <div class="md-footer__title">
+              <span class="md-footer__direction">
+                Next
+              </span>
+              <div class="md-ellipsis">
+                Library
+              </div>
+            </div>
+            <div class="md-footer__button md-icon">
+              
+              <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-right" viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
+            </div>
+          </a>
+        
+      </nav>
+    
+  
+  <div class="md-footer-meta md-typeset">
+    <div class="md-footer-meta__inner md-grid">
+      <div class="md-copyright">
+  
+    <div class="md-copyright__highlight">
+      WTFPL &copy; 1987 Manuel Kuklinski
+<br>
+<a href="/xyz">No permission granted to any AI/LLM/ML-powered system (or similar).</a>
+
+    </div>
+  
+  
+</div>
+      
+    </div>
+  </div>
+</footer>
+      
+    </div>
+    <div class="md-dialog" data-md-component="dialog">
+      <div class="md-dialog__inner md-typeset"></div>
+    </div>
+    
+    
+    
+      
+      
+      
+      <script id="__config" type="application/json">{"annotate":null,"base":"..","features":["announce.dismiss","content.code.annotate","content.code.copy","content.code.select","content.footnote.tooltips","content.tabs.link","content.tooltips","navigation.footer","navigation.indexes","navigation.instant","navigation.instant.prefetch","navigation.path","navigation.prune","navigation.sections","navigation.top","navigation.tracking","search.highlight"],"search":"../assets/javascripts/workers/search.5df7522c.min.js","tags":null,"translations":{"clipboard.copied":"Copied to clipboard","clipboard.copy":"Copy to clipboard","search.result.more.one":"1 more on this page","search.result.more.other":"# more on this page","search.result.none":"No matching documents","search.result.one":"1 matching document","search.result.other":"# matching documents","search.result.placeholder":"Type to start searching","search.result.term.missing":"Missing","select.version":"Select version"},"version":null}</script>
+    
+    
+      <script src="../assets/javascripts/bundle.21aa498e.min.js"></script>
+      
+    
+  </body>
+</html>
\ No newline at end of file
blob - /dev/null
blob + ac1106a85d20110d48386194dc3be09faccdfd58 (mode 644)
--- /dev/null
+++ site/library/index.html
@@ -0,0 +1,1133 @@
+
+<!doctype html>
+<html lang="en" class="no-js">
+  <head>
+    
+      <meta charset="utf-8">
+      <meta name="viewport" content="width=device-width,initial-scale=1">
+      
+        <meta name="description" content="Personal homepage of Manuel Kuklinski (AS213674)">
+      
+      
+        <meta name="author" content="Manuel Kuklinski">
+      
+      
+        <link rel="canonical" href="https://www.asdfghasdfgh.de/library/">
+      
+      
+        <link rel="prev" href="../junkyard/">
+      
+      
+        <link rel="next" href="../meditation/">
+      
+      
+        
+      
+      
+      <link rel="icon" href="../images/favicon.png">
+      <meta name="generator" content="zensical-0.0.11">
+    
+    
+      
+        <title>Library - asdfghasdfgh.de</title>
+      
+    
+    
+      
+        
+      
+      <link rel="stylesheet" href="../assets/stylesheets/modern/main.bd6182e7.min.css">
+      
+        
+          
+        
+        <link rel="stylesheet" href="../assets/stylesheets/modern/palette.dfe2e883.min.css">
+      
+      
+  
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+  
+  <style>:root{}</style>
+
+
+
+    
+    
+      
+    
+    
+      
+    
+    
+      <link rel="stylesheet" href="../stylesheets/extra.css">
+    
+    <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,t)=>(e<<5)-e+t.charCodeAt(0)),0),__md_get=(e,t=localStorage,a=__md_scope)=>JSON.parse(t.getItem(a.pathname+"."+e)),__md_set=(e,t,a=localStorage,_=__md_scope)=>{try{a.setItem(_.pathname+"."+e,JSON.stringify(t))}catch(e){}},document.documentElement.setAttribute("data-platform",navigator.platform)</script>
+    
+      
+
+    
+    
+  </head>
+  
+  
+    
+    
+      
+    
+    
+    
+    
+    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
+  
+    
+    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
+    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
+    <label class="md-overlay" for="__drawer"></label>
+    <div data-md-component="skip">
+      
+        
+        <a href="#library" class="md-skip">
+          Skip to content
+        </a>
+      
+    </div>
+    <div data-md-component="announce">
+      
+    </div>
+    
+    
+      
+
+  
+
+<header class="md-header md-header--shadow" data-md-component="header">
+  <nav class="md-header__inner md-grid" aria-label="Header">
+    <a href=".." title="asdfghasdfgh.de" class="md-header__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    <label class="md-header__button md-icon" for="__drawer">
+      
+      <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-menu" viewBox="0 0 24 24"><path d="M4 5h16M4 12h16M4 19h16"/></svg>
+    </label>
+    <div class="md-header__title" data-md-component="header-title">
+      <div class="md-header__ellipsis">
+        <div class="md-header__topic">
+          <span class="md-ellipsis">
+            asdfghasdfgh.de
+          </span>
+        </div>
+        <div class="md-header__topic" data-md-component="header-topic">
+          <span class="md-ellipsis">
+            
+              Library
+            
+          </span>
+        </div>
+      </div>
+    </div>
+    
+      
+        <form class="md-header__option" data-md-component="palette">
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to light mode"  type="radio" name="__palette" id="__palette_0">
+    
+      <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun-moon" viewBox="0 0 24 24"><path d="M12 2v2M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715M16 12a4 4 0 0 0-4-4M19 5l-1.256 1.256M20 12h2"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to dark mode"  type="radio" name="__palette" id="__palette_1">
+    
+      <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to system preference"  type="radio" name="__palette" id="__palette_2">
+    
+      <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-moon" viewBox="0 0 24 24"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/></svg>
+      </label>
+    
+  
+</form>
+      
+    
+    
+      <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
+    
+    
+    
+      
+      
+        <label class="md-header__button md-icon" for="__search">
+          
+          <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-search" viewBox="0 0 24 24"><path d="m21 21-4.34-4.34"/><circle cx="11" cy="11" r="8"/></svg>
+        </label>
+        <div class="md-search" data-md-component="search" role="dialog" aria-label="Search">
+  <button type="button" class="md-search__button">
+    Search
+  </button>
+</div>
+      
+    
+    <div class="md-header__source">
+      
+    </div>
+  </nav>
+  
+</header>
+    
+    <div class="md-container" data-md-component="container">
+      
+      
+        
+          
+        
+      
+      <main class="md-main" data-md-component="main">
+        <div class="md-main__inner md-grid">
+          
+            
+              
+              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+
+<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
+  <label class="md-nav__title" for="__drawer">
+    <a href=".." title="asdfghasdfgh.de" class="md-nav__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    asdfghasdfgh.de
+  </label>
+  
+  <ul class="md-nav__list" data-md-scrollfix>
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href=".." class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    「戦争を作るな、平和を作りましょう」
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../bicycle/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Bicycle
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../hardware/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Hardware
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../junkyard/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Junkyard
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+    
+  
+  
+  
+    <li class="md-nav__item md-nav__item--active">
+      
+      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
+      
+      
+        
+      
+      
+        <label class="md-nav__link md-nav__link--active" for="__toc">
+          
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Library
+  
+
+    
+  </span>
+  
+  
+
+          <span class="md-nav__icon md-icon"></span>
+        </label>
+      
+      <a href="./" class="md-nav__link md-nav__link--active">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Library
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+      
+        
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      On this page
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#books-ive-half-finished" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Books I've (half-)finished
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Books I&#x27;ve (half-)finished">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#currently-lying-on-the-bedside-table" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Currently lying on the bedside table
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2026" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2026
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2025" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2025
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2024" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2024
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2023" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2023
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2021" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2021
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2020" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2020
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2019" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2019
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2018" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2018
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#a-long-time-ago" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        "A long time ago..."
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../meditation/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Meditation
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../network/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Network
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+  </ul>
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+            
+              
+              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      On this page
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#books-ive-half-finished" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Books I've (half-)finished
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Books I&#x27;ve (half-)finished">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#currently-lying-on-the-bedside-table" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Currently lying on the bedside table
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2026" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2026
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2025" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2025
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2024" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2024
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2023" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2023
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2021" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2021
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2020" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2020
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2019" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2019
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#2018" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        2018
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#a-long-time-ago" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        "A long time ago..."
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+          
+          
+            <div class="md-content" data-md-component="content">
+              
+                
+
+
+
+  
+
+
+              
+              <article class="md-content__inner md-typeset">
+                
+                  
+
+<h1 id="library">Library<a class="headerlink" href="#library" title="Permanent link">&para;</a></h1>
+<h2 id="books-ive-half-finished">Books I've (half-)finished<a class="headerlink" href="#books-ive-half-finished" title="Permanent link">&para;</a></h2>
+<!--
+### Planned to read the coming months
+* Aitken, Robert & Steindl-Rast, David: Der spirituelle Weg - Zen-Buddhismus und Christentum im täglichen Leben - Ein Dialog
+* Blofeld, John: The Zen Teaching of Huang Po - On the Transmission of Mind
+* Borsig, Margarete von: Lotos-Sutra - Sutra von der Lotosblume des wunderbaren Gesetzes
+* Greyson, Dr. Bruce: After - A Doctor Explores What Near-Death Experiences Reveal About Life and Beyond
+* Hadamitzky, Wolfgang: Kanji und Kana 1: Handbuch der japanischen Schrift
+* Nyanatiloka: Buddhistisches Wörterbuch
+* Nagai, Hitoshi: Penetre & ich - Philosophie für ein glückliches Lebens
+* Shumucho, Sotoshu: Ōryōki - The Practice of the Eating Bowl
+* Golzio, Karl-Heinz: Lankavatara-Sutra - Die Lehre von der höchsten Bewußtheit und absoluten Erkenntnis.
+-->
+
+<h3 id="currently-lying-on-the-bedside-table">Currently lying on the bedside table<a class="headerlink" href="#currently-lying-on-the-bedside-table" title="Permanent link">&para;</a></h3>
+<ul>
+<li>Cleary, Thomas: No Barrier - Unlocking the Zen Koan</li>
+<li>Dōgen Zenji, Eihei: Shōbōgenzō - Die Schatzkammer des wahren Dharma-Auges, Band I</li>
+<li>Rosenberg, Marshall B.: Konflikte lösen durch Gewaltfreie Kommunikation</li>
+<li>Suzuki, Daisetz Teitaro &amp; Fromm, Erich: Zen-Buddhismus und Psychoanalyse</li>
+<li>Suzuki, Daisetz Teitaro: Studies in the Lankavatara Sutra</li>
+<li>Suzuki, Daisetz Teitaro: The Lankavatara Sutra</li>
+</ul>
+<h3 id="2026">2026<a class="headerlink" href="#2026" title="Permanent link">&para;</a></h3>
+<ul>
+<li>Hilbrecht, Heinz: Meditation und Gehirn - Alte Weisheit und moderne Wissenschaft</li>
+<li>Nishijima, Gudo Wafu &amp; Bailey, Jeffrey Alan: To Meet the Real Dragon - Seeking the Truth in a World of Chaos</li>
+<li>Watzlawick, Paul: Wie wirklich ist die Wirklichkeit? Wahn - Täuschung - Verstehen</li>
+</ul>
+<h3 id="2025">2025<a class="headerlink" href="#2025" title="Permanent link">&para;</a></h3>
+<ul>
+<li>Bielefeldt, Carl: Dogen's Manuals of Zen Meditation</li>
+<li>Niwano, Nikkyo: Buddhismus für Heute - Eine moderne Darstellung des Dreifachen Lotus Sutra</li>
+<li>Sawaki, Kodo: Tag für Tag ein guter Tag</li>
+<li>Suzuki, Daisetz Teitaro: Manual of Zen Buddhism</li>
+</ul>
+<h3 id="2024">2024<a class="headerlink" href="#2024" title="Permanent link">&para;</a></h3>
+<ul>
+<li>Aitken, Robert: Zen als Lebenspraxis</li>
+<li>Carr, Allen: Endlich Nichtraucher!</li>
+<li>Dhammika, Bhante Shravasti: Broken Buddha - Plädoyer für einen neuen Buddhismus</li>
+<li>Hanh, Thich Nhat: The Heart of Buddha's Teaching - Transforming Suffering into Peace, Joy, and Liberation</li>
+<li>Porter, Bill: The Zen Teaching of Bodhidharma</li>
+<li>Sawaki, Kodo: An Dich - Zen-Sprüche</li>
+<li>Suzuki, Daisetz Teitaro: The Zen Doctrine Of No-Mind - The Significance of the Sutra of Hui-neng</li>
+<li>Suzuki, Shunryu: Zen Mind, Beginner's Mind - Informal talks on Zen meditation and practice</li>
+<li>ewk: Not Zen - A Zen Revolution. How the mysterious transmission of some old men was interrupted; explained mostly in their own words</li>
+</ul>
+<h3 id="2023">2023<a class="headerlink" href="#2023" title="Permanent link">&para;</a></h3>
+<ul>
+<li>Braden, Gregg: Fractal Time - Das Geheimnis von 2012 und wie ein neues Zeitalter beginnt</li>
+</ul>
+<h3 id="2021">2021<a class="headerlink" href="#2021" title="Permanent link">&para;</a></h3>
+<ul>
+<li>Dirie, Waris: Wüstenblume</li>
+<li>Jankowski, Franz: Die NS-Vergangenheit in der Heil- und Pflegeanstalt Wiesloch</li>
+<li>Nesbø, Jo: Der Schneemann</li>
+<li>Vine, Barbara: Das Geburtstagsgeschenk</li>
+<li>Zuiker, Anthony E. &amp; Swierczynski, Duane: Level 26 - Dark Origins</li>
+</ul>
+<h3 id="2020">2020<a class="headerlink" href="#2020" title="Permanent link">&para;</a></h3>
+<ul>
+<li>Gibson, William: Neuromancer</li>
+<li>Rosenblatt, Bill &amp; Robbins, Arnold: Learning the Korn Shell</li>
+</ul>
+<h3 id="2019">2019<a class="headerlink" href="#2019" title="Permanent link">&para;</a></h3>
+<ul>
+<li>Hawkins, Paula: The Girl on the Train</li>
+<li>Jonasson, Jona: Die Analphabetin, die rechnen konnte</li>
+</ul>
+<h3 id="2018">2018<a class="headerlink" href="#2018" title="Permanent link">&para;</a></h3>
+<ul>
+<li>Foer, Jonathan Safran: Tiere essen</li>
+<li>Murakami, Haruki: Hard-Boiled-Wonderland</li>
+<li>Murakami, Haruki: Kafka am Strand</li>
+<li>Murakami, Haruki: Sputnik Sweetheart</li>
+<li>NOFX &amp; Aulis, Jeff: NOFX - The Hepatitis Bathtub and other Stories</li>
+<li>Restrepo, Laura: Die dunkle Braut</li>
+</ul>
+<h3 id="a-long-time-ago">"A long time ago..."<a class="headerlink" href="#a-long-time-ago" title="Permanent link">&para;</a></h3>
+<ul>
+<li>Abbey, Edward: Die Monkey Wrench Gang</li>
+<li>Adams, Douglas: Dirk Gently's Holistic Detective Agency</li>
+<li>Adams, Douglas: The Hitchhiker Trilogy</li>
+<li>Aitken, Robert &amp; Steindl-Rast, David: Der spirituelle Weg - Zen-Buddhismus und Christentum im täglichen Leben - Ein Dialog</li>
+<li>Allen, Gary: Die Insider</li>
+<li>Arendt, Hannah: Adolf Eichmann: Die Banalität des Bösen</li>
+<li>Beckett, Samuel: Warten auf Godot</li>
+<li>Berkewicz, Ulla: Vielleicht werden wir ja verrückt - Eine Orientierung in vergleichendem Fanatismus</li>
+<li>Bock, Thilo: Die geladene Knarre von Andreas Baader</li>
+<li>Borsig, Margarete von: Lotos-Sutra - Sutra von der Lotosblume des wunderbaren Gesetzes</li>
+<li>Bradbury, Ray: Der illustrierte Mann</li>
+<li>Bradbury, Ray: Fahrenheit 451</li>
+<li>Broder, Henryk M.: Hurra, wir kapitulieren!</li>
+<li>Brown, Dan: Illuminati</li>
+<li>Brown, Dan: Sakrileg</li>
+<li>Bukowski, Charles: Faktotum</li>
+<li>Camus, Albert: The Outsider</li>
+<li>Charles Bukowski: Held außer Betrieb - Storys und Essays</li>
+<li>Cioran, E.M.: Gevierteilt</li>
+<li>Cioran, E.M.: Syllogismen der Bitterkeit</li>
+<li>Cohelo, Paul: Auf dem Jakobsweg</li>
+<li>Crimethinc! Collective: Work</li>
+<li>Däniken, Erich: Beweise - Lokaltermin in fünf Kontinenten</li>
+<li>Döblin, Alfred: Die Ermordung einer Butterblume und andere Erzählungen</li>
+<li>Doctorow, Cory: Backup</li>
+<li>Dōgen Zenji, Eihei: Shōbōgenzō - Die Schatzkammer des wahren Dharma-Auges</li>
+<li>Donald, Mac Kyle: One Red Paperclip: Biete Büroklammer – suche Haus. Die verrückteste Internet-Tauschaktion der Welt</li>
+<li>Dürrenmatt, Friedrich: Die Physiker</li>
+<li>Ende, Michael: Die unendliche Geschichte</li>
+<li>Ende, Michael: Jim Knopf</li>
+<li>Ende, Michael: Jim Knopf und die wilde 13</li>
+<li>Ergün, Mutlu: Kara Günlük</li>
+<li>Fang, Weigui:  Das Internet und China</li>
+<li>Fo, Dario: Accidental Death of an Anarchist</li>
+<li>Freely, John: Istanbul - The Imperial City</li>
+<li>Frisch, Max: Homo Faber</li>
+<li>Gandhi, Mahatma: Mein Leben</li>
+<li>George, Andrew: The Epic of Gilgamesh</li>
+<li>Goethe, Johann Wolfgang: Faust</li>
+<li>Goetz, Rainald: Irre</li>
+<li>Goetz, Rainald: Kontrolliert</li>
+<li>Greyson, Dr. Bruce: After - A Doctor Explores What Near-Death Experiences Reveal About Life and Beyond</li>
+<li>Hadamitzky, Wolfgang: Kanji und Kana 1: Handbuch der japanischen Schrift</li>
+<li>Henshall, Kenneth G.: A Guide to Remembering Japanese Characters</li>
+<li>Hesse, Hermann: Narziss und Goldmund</li>
+<li>Hesse, Hermann: Siddartha</li>
+<li>Hesse, Hermann: Steppenwolf</li>
+<li>Hessel, Stephane: Empört Euch!</li>
+<li>Hofmann, Albert: LSD - Mein Sorgenkind</li>
+<li>Hohlbein, Wolfgang: Am Abgrund - Die Chronik der Unsterblichen</li>
+<li>Huxley, Aldous: Die Pforten der Wahrnehmung</li>
+<li>Ibes, Norbert: Der leere Spiegel - Erfahrungen in einem japanischen Zen-Kloster</li>
+<li>Jackson, Steve: Das Höllenhaus</li>
+<li>Joos, Richard &amp; Jorberg, Randolf &amp; Gönnermann, Axel: gulli wars™ - underground piratainment since 1998</li>
+<li>Kafka, Franz: Briefe an den Vater</li>
+<li>Kafka, Franz: Die Verwandlung</li>
+<li>Kalweit, Holger: Die Welt der Schamanen - Traumzeit und innerer Raum</li>
+<li>Kapuscinski, Ryszard: Imperium</li>
+<li>Katzenbach, John: Die Grausamen</li>
+<li>Kerouac, Jack: On the Road</li>
+<li>Kilmister, Lemmy &amp; Garza, Janiss: White Line Fever - The Autobiography</li>
+<li>Klima, Ivan: My Golden Trades</li>
+<li>Klupp, Thomas: Paradiso</li>
+<li>Knuf, Andreas &amp; Tilly, Christian: Borderline, das Selbsthilfebuch</li>
+<li>Kuhlmann, Heinz W.: Das dreifache Lotos-Sûtra</li>
+<li>Kulla, Daniel: Entschwörungstheorie</li>
+<li>Kulla, Daniel: Leben im Rausch</li>
+<li>Kundera, Milan: Die unerträgliche Leichtigkeit des Seins</li>
+<li>Kundera, Milan: Die Unsterblichkeit</li>
+<li>La Rochefoucauld, François de: Reflexionen oder Sentenzen und moralische Maximen</li>
+<li>Lanier, Jaron: You Are Not a Gadget</li>
+<li>Leary, Timothy: Höhere Intelligenz und Kreativität</li>
+<li>Leary, Timothy: NeuroLogic</li>
+<li>Lem, Stanislaw: Die Ratte im Labyrinth</li>
+<li>Lem, Stanislaw: Die Technologiefalle</li>
+<li>Lem, Stanislaw: Provokationen</li>
+<li>Lessing, Gotthold Ephraim: Emilia Galotti</li>
+<li>Lewycka, Marina: Das Leben kleben</li>
+<li>Lovecraft, H. P. - Das Ding auf der Schwelle</li>
+<li>M., Adam: "Mein Name ist Adam ..." - Ein Bericht über Jahre der Abhängigkeit</li>
+<li>Machfus, Nagib: Das Hausboot am Nil</li>
+<li>Mann, Thomas: Der Tod in Venedig</li>
+<li>Marcos, Subcomandante: Botschaften aus dem lakadonischen Urwald</li>
+<li>Marquez, Gabriel Garcia: Chronik eines angekündigten Todes</li>
+<li>Marquez, Gabriel Garcia: Die Liebe in den Zeiten der Cholera</li>
+<li>Mascaró, Juan: The Dhammapada</li>
+<li>Moers, Walter: Die 13 &frac12; Leben des Käpt'n Blaubär</li>
+<li>Moers, Walter: Ensel und Kretel</li>
+<li>Moers, Walter: Rumo &amp; Die Wunder im Dunkeln</li>
+<li>Morris, Desmon: Der nackte Affe</li>
+<li>Mulder, Merle: Straight Edge - Subkultur, Ideologie, Lebensstil?</li>
+<li>Müller, Herta: Herztier</li>
+<li>Murakami, Ryu: Piercing</li>
+<li>Neudeck, Rupert: Afghanistan - Politische Expeditionen. Mit einem Überblick zur Geschichte Afghanistans</li>
+<li>Nicholls, Stan: Die Orks</li>
+<li>Nietzsche, Friedrich: Also sprach Zarathustra</li>
+<li>Niwano, Nikkyo: Buddhismus für Heute - Eine moderne Darstellung des Dreifachen Lotus Sutra</li>
+<li>Noack, Hans-Georg: Rolltreppe abwärts</li>
+<li>Palahniuk, Chuck: Fight Club</li>
+<li>Perez &amp; Alejchem, Scholem: Ein Zwiegespräch</li>
+<li>Pilnjak, Boris: Von Wölfen und Maschinen</li>
+<li>Pirsig, Robert M.: Zen und die Kunst ein Motorrad zu warten</li>
+<li>Prime, Ranchor: Cows and the Earth - A Story of Kinder Dairy Farming</li>
+<li>Radner, Karen: Mesopotamien - Die frühen Hochkulturen an Euphrat und Tigris</li>
+<li>Rapp, Tobias: Lost and Sound - Berlin, Techno und der Easyjetset</li>
+<li>Reza, Hajatpour: Der brennende Geschmack der Freiheit - Mein Leben als junger Mullah im Iran</li>
+<li>Rimbaud, Penny: Shibboleth</li>
+<li>Roberts, Jane: Gespräche mit Seth - Von der ewigen Gültigkeit der Seele</li>
+<li>Rory, Stewart: So weit die Knie tragen - Mein Fußmarsch durch Afghanistan</li>
+<li>Rowling, J.K.: Harry Potter und der Gefangene von Askaban</li>
+<li>Rowling, J.K.: Harry Potter und der Stein der Weisen</li>
+<li>Rowling, J.K.: Harry Potter und die Kammer des Schreckens</li>
+<li>Rushkoff, Douglas: Chaos Kids</li>
+<li>Rushkoff, Douglas: Cyberia</li>
+<li>Saint-Exupéry, Antoine de: Der kleine Prinz</li>
+<li>Salinger, J.D.: Der Fänger im Roggen</li>
+<li>Salvatore, R.A.: Star Wars: Das Erbe der Jedi-Ritter 1 - Die Abtrüninngen</li>
+<li>Saramago, Jose: Die Stadt der Blinden</li>
+<li>Saramago, Jose: Die Stadt der Sehenden</li>
+<li>Saramago, Jose: Kain</li>
+<li>Satre, Jean Paul: Der Ekel</li>
+<li>Satre, Jean Paul: Die Hölle, das sind die anderen</li>
+<li>Satre, Jean Paul: Geschlossene Gesellschaft</li>
+<li>Schiller, Friedrich: Die Räuber</li>
+<li>Schiller, Friedrich: Wilhelm Tell</li>
+<li>Schmidt, Christian Y.: Zum ersten Mal tot - achtzehn Premieren</li>
+<li>Scholl, Inge: Die weiße Rose</li>
+<li>Schwarz, Friedhelm: Nestle - Macht durch Nahrung</li>
+<li>Sedaris, David: Schöner wird's nicht</li>
+<li>Selius, Christine: Das kleine Tee-Abc</li>
+<li>Shumucho, Sotoshu: Ōryōki - The Practice of the Eating Bowl</li>
+<li>Stackpole, Michael: Star Wars: X-Wing - Angriff auf Coruscant</li>
+<li>Stackpole, Michael: Star Wars: X-Wing - Die Mission der Rebellen</li>
+<li>Stackpole, Michael: Star Wars: X-Wing - Die teuflische Falle</li>
+<li>Stephenson, Neal: Diamond Age</li>
+<li>Stephenson, Neal: Snow Crash</li>
+<li>Stoker, Bram: Dracula</li>
+<li>Stowasser, Horst: Leben ohne Chef und Staat - Träume und Wirklichkeit der Anarchisten</li>
+<li>Stross, Charles: Accelerando</li>
+<li>Suzuki, Daisetz Teitaro: Manual of Zen Buddhism</li>
+<li>Tolkien, J.R.R.: Der Herr der Ringe</li>
+<li>Tolkien, J.R.R.: Der Hobbit</li>
+<li>Trojanow, Illja: Gebrauchsanweisung für Indien</li>
+<li>Vesper, Bernhard: Die Reise</li>
+<li>Virilio, Paul: The Information Bomb</li>
+<li>Watzlawick, Paul: Anleitung zum Unglücklichsein</li>
+<li>Weizenbaum: Computermacht und Gesellschaft</li>
+<li>Wichtalls, Clint: Die Pille und ich - Ein Mann im Selbstversuch</li>
+<li>Williams, Tad: Die Insel des Magiers</li>
+<li>Williams, Tad: Otherland - Stadt der goldenen Schatten</li>
+<li>Zweig, Stefan: Die Schachnovelle</li>
+</ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                
+              </article>
+            </div>
+          
+          
+  <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
+
+<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
+        </div>
+        
+          <button type="button" class="md-top md-icon" data-md-component="top" hidden>
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-circle-arrow-up" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="m16 12-4-4-4 4M12 16V8"/></svg>
+  Back to top
+</button>
+        
+      </main>
+      
+        <footer class="md-footer">
+  
+    
+      
+      <nav class="md-footer__inner md-grid" aria-label="Footer" >
+        
+          
+          <a href="../junkyard/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Junkyard">
+            <div class="md-footer__button md-icon">
+              
+              <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-left" viewBox="0 0 24 24"><path d="m12 19-7-7 7-7M19 12H5"/></svg>
+            </div>
+            <div class="md-footer__title">
+              <span class="md-footer__direction">
+                Previous
+              </span>
+              <div class="md-ellipsis">
+                Junkyard
+              </div>
+            </div>
+          </a>
+        
+        
+          
+          <a href="../meditation/" class="md-footer__link md-footer__link--next" aria-label="Next: Meditation">
+            <div class="md-footer__title">
+              <span class="md-footer__direction">
+                Next
+              </span>
+              <div class="md-ellipsis">
+                Meditation
+              </div>
+            </div>
+            <div class="md-footer__button md-icon">
+              
+              <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-right" viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
+            </div>
+          </a>
+        
+      </nav>
+    
+  
+  <div class="md-footer-meta md-typeset">
+    <div class="md-footer-meta__inner md-grid">
+      <div class="md-copyright">
+  
+    <div class="md-copyright__highlight">
+      WTFPL &copy; 1987 Manuel Kuklinski
+<br>
+<a href="/xyz">No permission granted to any AI/LLM/ML-powered system (or similar).</a>
+
+    </div>
+  
+  
+</div>
+      
+    </div>
+  </div>
+</footer>
+      
+    </div>
+    <div class="md-dialog" data-md-component="dialog">
+      <div class="md-dialog__inner md-typeset"></div>
+    </div>
+    
+    
+    
+      
+      
+      
+      <script id="__config" type="application/json">{"annotate":null,"base":"..","features":["announce.dismiss","content.code.annotate","content.code.copy","content.code.select","content.footnote.tooltips","content.tabs.link","content.tooltips","navigation.footer","navigation.indexes","navigation.instant","navigation.instant.prefetch","navigation.path","navigation.prune","navigation.sections","navigation.top","navigation.tracking","search.highlight"],"search":"../assets/javascripts/workers/search.5df7522c.min.js","tags":null,"translations":{"clipboard.copied":"Copied to clipboard","clipboard.copy":"Copy to clipboard","search.result.more.one":"1 more on this page","search.result.more.other":"# more on this page","search.result.none":"No matching documents","search.result.one":"1 matching document","search.result.other":"# matching documents","search.result.placeholder":"Type to start searching","search.result.term.missing":"Missing","select.version":"Select version"},"version":null}</script>
+    
+    
+      <script src="../assets/javascripts/bundle.21aa498e.min.js"></script>
+      
+    
+  </body>
+</html>
\ No newline at end of file
blob - /dev/null
blob + 3597627f221f9108c1ef70a166ee8d5c407b2553 (mode 644)
--- /dev/null
+++ site/meditation/index.html
@@ -0,0 +1,716 @@
+
+<!doctype html>
+<html lang="en" class="no-js">
+  <head>
+    
+      <meta charset="utf-8">
+      <meta name="viewport" content="width=device-width,initial-scale=1">
+      
+        <meta name="description" content="Personal homepage of Manuel Kuklinski (AS213674)">
+      
+      
+        <meta name="author" content="Manuel Kuklinski">
+      
+      
+        <link rel="canonical" href="https://www.asdfghasdfgh.de/meditation/">
+      
+      
+        <link rel="prev" href="../library/">
+      
+      
+        <link rel="next" href="../network/">
+      
+      
+        
+      
+      
+      <link rel="icon" href="../images/favicon.png">
+      <meta name="generator" content="zensical-0.0.11">
+    
+    
+      
+        <title>Meditation - asdfghasdfgh.de</title>
+      
+    
+    
+      
+        
+      
+      <link rel="stylesheet" href="../assets/stylesheets/modern/main.bd6182e7.min.css">
+      
+        
+          
+        
+        <link rel="stylesheet" href="../assets/stylesheets/modern/palette.dfe2e883.min.css">
+      
+      
+  
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+  
+  <style>:root{}</style>
+
+
+
+    
+    
+      
+    
+    
+      
+    
+    
+      <link rel="stylesheet" href="../stylesheets/extra.css">
+    
+    <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,t)=>(e<<5)-e+t.charCodeAt(0)),0),__md_get=(e,t=localStorage,a=__md_scope)=>JSON.parse(t.getItem(a.pathname+"."+e)),__md_set=(e,t,a=localStorage,_=__md_scope)=>{try{a.setItem(_.pathname+"."+e,JSON.stringify(t))}catch(e){}},document.documentElement.setAttribute("data-platform",navigator.platform)</script>
+    
+      
+
+    
+    
+  </head>
+  
+  
+    
+    
+      
+    
+    
+    
+    
+    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
+  
+    
+    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
+    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
+    <label class="md-overlay" for="__drawer"></label>
+    <div data-md-component="skip">
+      
+        
+        <a href="#meditation" class="md-skip">
+          Skip to content
+        </a>
+      
+    </div>
+    <div data-md-component="announce">
+      
+    </div>
+    
+    
+      
+
+  
+
+<header class="md-header md-header--shadow" data-md-component="header">
+  <nav class="md-header__inner md-grid" aria-label="Header">
+    <a href=".." title="asdfghasdfgh.de" class="md-header__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    <label class="md-header__button md-icon" for="__drawer">
+      
+      <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-menu" viewBox="0 0 24 24"><path d="M4 5h16M4 12h16M4 19h16"/></svg>
+    </label>
+    <div class="md-header__title" data-md-component="header-title">
+      <div class="md-header__ellipsis">
+        <div class="md-header__topic">
+          <span class="md-ellipsis">
+            asdfghasdfgh.de
+          </span>
+        </div>
+        <div class="md-header__topic" data-md-component="header-topic">
+          <span class="md-ellipsis">
+            
+              Meditation
+            
+          </span>
+        </div>
+      </div>
+    </div>
+    
+      
+        <form class="md-header__option" data-md-component="palette">
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to light mode"  type="radio" name="__palette" id="__palette_0">
+    
+      <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun-moon" viewBox="0 0 24 24"><path d="M12 2v2M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715M16 12a4 4 0 0 0-4-4M19 5l-1.256 1.256M20 12h2"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to dark mode"  type="radio" name="__palette" id="__palette_1">
+    
+      <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to system preference"  type="radio" name="__palette" id="__palette_2">
+    
+      <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-moon" viewBox="0 0 24 24"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/></svg>
+      </label>
+    
+  
+</form>
+      
+    
+    
+      <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
+    
+    
+    
+      
+      
+        <label class="md-header__button md-icon" for="__search">
+          
+          <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-search" viewBox="0 0 24 24"><path d="m21 21-4.34-4.34"/><circle cx="11" cy="11" r="8"/></svg>
+        </label>
+        <div class="md-search" data-md-component="search" role="dialog" aria-label="Search">
+  <button type="button" class="md-search__button">
+    Search
+  </button>
+</div>
+      
+    
+    <div class="md-header__source">
+      
+    </div>
+  </nav>
+  
+</header>
+    
+    <div class="md-container" data-md-component="container">
+      
+      
+        
+          
+        
+      
+      <main class="md-main" data-md-component="main">
+        <div class="md-main__inner md-grid">
+          
+            
+              
+              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+
+<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
+  <label class="md-nav__title" for="__drawer">
+    <a href=".." title="asdfghasdfgh.de" class="md-nav__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    asdfghasdfgh.de
+  </label>
+  
+  <ul class="md-nav__list" data-md-scrollfix>
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href=".." class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    「戦争を作るな、平和を作りましょう」
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../bicycle/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Bicycle
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../hardware/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Hardware
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../junkyard/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Junkyard
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../library/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Library
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+    
+  
+  
+  
+    <li class="md-nav__item md-nav__item--active">
+      
+      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
+      
+      
+        
+      
+      
+        <label class="md-nav__link md-nav__link--active" for="__toc">
+          
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Meditation
+  
+
+    
+  </span>
+  
+  
+
+          <span class="md-nav__icon md-icon"></span>
+        </label>
+      
+      <a href="./" class="md-nav__link md-nav__link--active">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Meditation
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+      
+        
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      On this page
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#breathing-in-breathing-out" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Breathing in, breathing out
+      
+    </span>
+  </a>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../network/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Network
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+  </ul>
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+            
+              
+              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      On this page
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#breathing-in-breathing-out" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Breathing in, breathing out
+      
+    </span>
+  </a>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+          
+          
+            <div class="md-content" data-md-component="content">
+              
+                
+
+
+
+  
+
+
+              
+              <article class="md-content__inner md-typeset">
+                
+                  
+
+<h1 id="meditation">Meditation<a class="headerlink" href="#meditation" title="Permanent link">&para;</a></h1>
+<h2 id="breathing-in-breathing-out">Breathing in, breathing out<a class="headerlink" href="#breathing-in-breathing-out" title="Permanent link">&para;</a></h2>
+<blockquote>
+<p>I'm a simple person - there is a zendo: I go there and sit.
+- as noted by myself in ##buddhism on libera.chat
+<sup id="fnref:irc"><a class="footnote-ref" href="#fn:irc">1</a></sup></p>
+</blockquote>
+<p><img alt="dithered b/w photo of my meditation place" src="..//images/meditation.png" /></p>
+<p>More verbose explanation about my practice:</p>
+<p>I'm a practicing layperson, not having received a formal ceremony, 受戒
+(jukai), but still maintaining the minimal ethical standards of
+Buddhism, namely the "Five Precepts" (AN 8:39)<sup id="fnref:an8-39"><a class="footnote-ref" href="#fn:an8-39">2</a></sup>.</p>
+<p>I follow the Soto Zen sect, but as for following traditions, I point to
+the "10 Basic Points"<sup id="fnref:10-points"><a class="footnote-ref" href="#fn:10-points">3</a></sup> and was pointed to Kālāma Sutta (AN 3:65)<sup id="fnref:an3-65"><a class="footnote-ref" href="#fn:an3-65">4</a></sup>. I
+practice sitting meditation, because it is simple and minimal: you sit
+and "[verify] that the eyes are horizontal and the nose is vertical"<sup id="fnref:antaiji"><a class="footnote-ref" href="#fn:antaiji">5</a></sup>
+- that's it; not much cluttering your view.</p>
+<p>What follows after the sitting (e.g.: reading sutras) is your concern as
+long as it's not obstructing the clear view of the "Three marks of
+existence", त्रिलक्षण (trilakṣaṇ). I practice sitting meditation at home
+as often as I'm able to. If I'm sitting, I usually sit in the 護魔座
+(gomaza) posture in 半跏趺坐 (hanka-fuza).</p>
+<p>After stumbling upon the practices of 真向法 (makko-ho) in a translated copy of
+Robert Aitken's "Taking the Path of Zen" I usually try to end my day with these
+four excersises by Wataru Nagai, before I practice aforementioned sitting
+meditation.</p>
+<p><del>Every Friday evening I meditate with a local sangha. I used to meditate every
+first Tuesday in the month, but due to circumstances I'm not able to attend this
+session anymore.</del></p>
+<div class="footnote">
+<hr />
+<ol>
+<li id="fn:irc">
+<p>see <a href="irc://libera.chat/##buddhism">##Buddhism</a>&#160;<a class="footnote-backref" href="#fnref:irc" title="Jump back to footnote 1 in the text">&#8617;</a></p>
+</li>
+<li id="fn:an8-39">
+<p>see <a href="https://www.accesstoinsight.org/tipitaka/an/an08/an08.039.than.html">"AN 8:39"</a>&#160;<a class="footnote-backref" href="#fnref:an8-39" title="Jump back to footnote 2 in the text">&#8617;</a></p>
+</li>
+<li id="fn:10-points">
+<p>see <a href="ftp://asdfghasdfgh.de/pub/10-basic-points.txt">"10 Basic Points"</a>&#160;<a class="footnote-backref" href="#fnref:10-points" title="Jump back to footnote 3 in the text">&#8617;</a></p>
+</li>
+<li id="fn:an3-65">
+<p>see <a href="https://www.accesstoinsight.org/ati/tipitaka/an/an03/an03.065.than.html">"AN 3:65"</a>&#160;<a class="footnote-backref" href="#fnref:an3-65" title="Jump back to footnote 4 in the text">&#8617;</a></p>
+</li>
+<li id="fn:antaiji">
+<p>see <a href="https://antaiji.org/en/services/いま自殺しようと思いつめている人へ-内山興正著/">Antaiji</a>&#160;<a class="footnote-backref" href="#fnref:antaiji" title="Jump back to footnote 5 in the text">&#8617;</a></p>
+</li>
+</ol>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                
+              </article>
+            </div>
+          
+          
+  <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
+
+<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
+        </div>
+        
+          <button type="button" class="md-top md-icon" data-md-component="top" hidden>
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-circle-arrow-up" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="m16 12-4-4-4 4M12 16V8"/></svg>
+  Back to top
+</button>
+        
+      </main>
+      
+        <footer class="md-footer">
+  
+    
+      
+      <nav class="md-footer__inner md-grid" aria-label="Footer" >
+        
+          
+          <a href="../library/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Library">
+            <div class="md-footer__button md-icon">
+              
+              <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-left" viewBox="0 0 24 24"><path d="m12 19-7-7 7-7M19 12H5"/></svg>
+            </div>
+            <div class="md-footer__title">
+              <span class="md-footer__direction">
+                Previous
+              </span>
+              <div class="md-ellipsis">
+                Library
+              </div>
+            </div>
+          </a>
+        
+        
+          
+          <a href="../network/" class="md-footer__link md-footer__link--next" aria-label="Next: Network">
+            <div class="md-footer__title">
+              <span class="md-footer__direction">
+                Next
+              </span>
+              <div class="md-ellipsis">
+                Network
+              </div>
+            </div>
+            <div class="md-footer__button md-icon">
+              
+              <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-right" viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
+            </div>
+          </a>
+        
+      </nav>
+    
+  
+  <div class="md-footer-meta md-typeset">
+    <div class="md-footer-meta__inner md-grid">
+      <div class="md-copyright">
+  
+    <div class="md-copyright__highlight">
+      WTFPL &copy; 1987 Manuel Kuklinski
+<br>
+<a href="/xyz">No permission granted to any AI/LLM/ML-powered system (or similar).</a>
+
+    </div>
+  
+  
+</div>
+      
+    </div>
+  </div>
+</footer>
+      
+    </div>
+    <div class="md-dialog" data-md-component="dialog">
+      <div class="md-dialog__inner md-typeset"></div>
+    </div>
+    
+    
+    
+      
+      
+      
+      <script id="__config" type="application/json">{"annotate":null,"base":"..","features":["announce.dismiss","content.code.annotate","content.code.copy","content.code.select","content.footnote.tooltips","content.tabs.link","content.tooltips","navigation.footer","navigation.indexes","navigation.instant","navigation.instant.prefetch","navigation.path","navigation.prune","navigation.sections","navigation.top","navigation.tracking","search.highlight"],"search":"../assets/javascripts/workers/search.5df7522c.min.js","tags":null,"translations":{"clipboard.copied":"Copied to clipboard","clipboard.copy":"Copy to clipboard","search.result.more.one":"1 more on this page","search.result.more.other":"# more on this page","search.result.none":"No matching documents","search.result.one":"1 matching document","search.result.other":"# matching documents","search.result.placeholder":"Type to start searching","search.result.term.missing":"Missing","select.version":"Select version"},"version":null}</script>
+    
+    
+      <script src="../assets/javascripts/bundle.21aa498e.min.js"></script>
+      
+    
+  </body>
+</html>
\ No newline at end of file
blob - /dev/null
blob + d4a0e0408a518b498089baa94750e54b398022b2 (mode 644)
--- /dev/null
+++ site/network/index.html
@@ -0,0 +1,908 @@
+
+<!doctype html>
+<html lang="en" class="no-js">
+  <head>
+    
+      <meta charset="utf-8">
+      <meta name="viewport" content="width=device-width,initial-scale=1">
+      
+        <meta name="description" content="Personal homepage of Manuel Kuklinski (AS213674)">
+      
+      
+        <meta name="author" content="Manuel Kuklinski">
+      
+      
+        <link rel="canonical" href="https://www.asdfghasdfgh.de/network/">
+      
+      
+        <link rel="prev" href="../meditation/">
+      
+      
+      
+        
+      
+      
+      <link rel="icon" href="../images/favicon.png">
+      <meta name="generator" content="zensical-0.0.11">
+    
+    
+      
+        <title>Network - asdfghasdfgh.de</title>
+      
+    
+    
+      
+        
+      
+      <link rel="stylesheet" href="../assets/stylesheets/modern/main.bd6182e7.min.css">
+      
+        
+          
+        
+        <link rel="stylesheet" href="../assets/stylesheets/modern/palette.dfe2e883.min.css">
+      
+      
+  
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+  
+  <style>:root{}</style>
+
+
+
+    
+    
+      
+    
+    
+      
+    
+    
+      <link rel="stylesheet" href="../stylesheets/extra.css">
+    
+    <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,t)=>(e<<5)-e+t.charCodeAt(0)),0),__md_get=(e,t=localStorage,a=__md_scope)=>JSON.parse(t.getItem(a.pathname+"."+e)),__md_set=(e,t,a=localStorage,_=__md_scope)=>{try{a.setItem(_.pathname+"."+e,JSON.stringify(t))}catch(e){}},document.documentElement.setAttribute("data-platform",navigator.platform)</script>
+    
+      
+
+    
+    
+  </head>
+  
+  
+    
+    
+      
+    
+    
+    
+    
+    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
+  
+    
+    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
+    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
+    <label class="md-overlay" for="__drawer"></label>
+    <div data-md-component="skip">
+      
+        
+        <a href="#network" class="md-skip">
+          Skip to content
+        </a>
+      
+    </div>
+    <div data-md-component="announce">
+      
+    </div>
+    
+    
+      
+
+  
+
+<header class="md-header md-header--shadow" data-md-component="header">
+  <nav class="md-header__inner md-grid" aria-label="Header">
+    <a href=".." title="asdfghasdfgh.de" class="md-header__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    <label class="md-header__button md-icon" for="__drawer">
+      
+      <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-menu" viewBox="0 0 24 24"><path d="M4 5h16M4 12h16M4 19h16"/></svg>
+    </label>
+    <div class="md-header__title" data-md-component="header-title">
+      <div class="md-header__ellipsis">
+        <div class="md-header__topic">
+          <span class="md-ellipsis">
+            asdfghasdfgh.de
+          </span>
+        </div>
+        <div class="md-header__topic" data-md-component="header-topic">
+          <span class="md-ellipsis">
+            
+              Network
+            
+          </span>
+        </div>
+      </div>
+    </div>
+    
+      
+        <form class="md-header__option" data-md-component="palette">
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to light mode"  type="radio" name="__palette" id="__palette_0">
+    
+      <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun-moon" viewBox="0 0 24 24"><path d="M12 2v2M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715M16 12a4 4 0 0 0-4-4M19 5l-1.256 1.256M20 12h2"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to dark mode"  type="radio" name="__palette" id="__palette_1">
+    
+      <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/></svg>
+      </label>
+    
+  
+    
+    
+    
+    <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to system preference"  type="radio" name="__palette" id="__palette_2">
+    
+      <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
+        <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-moon" viewBox="0 0 24 24"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/></svg>
+      </label>
+    
+  
+</form>
+      
+    
+    
+      <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
+    
+    
+    
+      
+      
+        <label class="md-header__button md-icon" for="__search">
+          
+          <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-search" viewBox="0 0 24 24"><path d="m21 21-4.34-4.34"/><circle cx="11" cy="11" r="8"/></svg>
+        </label>
+        <div class="md-search" data-md-component="search" role="dialog" aria-label="Search">
+  <button type="button" class="md-search__button">
+    Search
+  </button>
+</div>
+      
+    
+    <div class="md-header__source">
+      
+    </div>
+  </nav>
+  
+</header>
+    
+    <div class="md-container" data-md-component="container">
+      
+      
+        
+          
+        
+      
+      <main class="md-main" data-md-component="main">
+        <div class="md-main__inner md-grid">
+          
+            
+              
+              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+
+<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
+  <label class="md-nav__title" for="__drawer">
+    <a href=".." title="asdfghasdfgh.de" class="md-nav__button md-logo" aria-label="asdfghasdfgh.de" data-md-component="logo">
+      
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
+
+    </a>
+    asdfghasdfgh.de
+  </label>
+  
+  <ul class="md-nav__list" data-md-scrollfix>
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href=".." class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    「戦争を作るな、平和を作りましょう」
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../bicycle/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Bicycle
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../hardware/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Hardware
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../junkyard/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Junkyard
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../library/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Library
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../meditation/" class="md-nav__link">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Meditation
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+    </li>
+  
+
+    
+      
+      
+  
+  
+    
+  
+  
+  
+    <li class="md-nav__item md-nav__item--active">
+      
+      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
+      
+      
+        
+      
+      
+        <label class="md-nav__link md-nav__link--active" for="__toc">
+          
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Network
+  
+
+    
+  </span>
+  
+  
+
+          <span class="md-nav__icon md-icon"></span>
+        </label>
+      
+      <a href="./" class="md-nav__link md-nav__link--active">
+        
+  
+  
+  <span class="md-ellipsis">
+    
+  
+    Network
+  
+
+    
+  </span>
+  
+  
+
+      </a>
+      
+        
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      On this page
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#meshcore" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        MeshCore
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="MeshCore">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#as213674" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        AS213674
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+      
+        <li class="md-nav__item">
+  <a href="#network-infrastructure" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Network infrastructure
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Network infrastructure">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#vps-amsasdfghasdfghde" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        vps-ams.asdfghasdfgh.de
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#vps-berasdfghasdfghde" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        vps-ber.asdfghasdfgh.de
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#inasdfghasdfghde" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        in.asdfghasdfgh.de
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#tsasdfghasdfghde" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        ts.asdfghasdfgh.de
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+      
+    </li>
+  
+
+    
+  </ul>
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+            
+              
+              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+<nav class="md-nav md-nav--secondary" aria-label="On this page">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      On this page
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#meshcore" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        MeshCore
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="MeshCore">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#as213674" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        AS213674
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+      
+        <li class="md-nav__item">
+  <a href="#network-infrastructure" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        Network infrastructure
+      
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Network infrastructure">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#vps-amsasdfghasdfghde" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        vps-ams.asdfghasdfgh.de
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#vps-berasdfghasdfghde" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        vps-ber.asdfghasdfgh.de
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#inasdfghasdfghde" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        in.asdfghasdfgh.de
+      
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#tsasdfghasdfghde" class="md-nav__link">
+    <span class="md-ellipsis">
+      
+        ts.asdfghasdfgh.de
+      
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+          
+          
+            <div class="md-content" data-md-component="content">
+              
+                
+
+
+
+  
+
+
+              
+              <article class="md-content__inner md-typeset">
+                
+                  
+
+<h1 id="network">Network<a class="headerlink" href="#network" title="Permanent link">&para;</a></h1>
+<!--
+## Freifunk
+
+I'm (finally) getting into this mesh, after experimenting with Mesh{Core,tastic} and buying an apu2c4, after I decomissioned an apu1c4, since I thought I don't have any use for anymore (._.;)
+
+Item | Description
+--|---
+ID | ???
+Role | Node
+Hardware | PC Engines apu2c4
+ | Broadcom BCM43465
+ | [Interline IP-G10-F2458-M](https://interline.pl/antennas/PANEL-10-DUAL-BAND-MU-MIMO-4x4)
+Location | Outside my living room (2nd floor).
+-->
+
+<h2 id="meshcore">MeshCore<a class="headerlink" href="#meshcore" title="Permanent link">&para;</a></h2>
+<p>I started getting into this network at the beginning of '26. I'm still
+evaluating my options (Meshtastic vs. MeshCore, Meshcom, (LoRa-)APRS,
+Reticulum), but for now I'm exploring and learning about MeshCore. Currently I
+run a repeater and companion node:</p>
+<table>
+<thead>
+<tr>
+<th style="text-align: left;"></th>
+<th>Repeater</th>
+<th>Companion</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td style="text-align: left;">ID</td>
+<td>DE-BW-MA <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#109;&#107;&#64;&#109;&#101;&#115;&#104;&#46;&#104;&#111;&#109;&#101;&#46;&#97;&#114;&#112;&#97;">&#109;&#107;&#64;&#109;&#101;&#115;&#104;&#46;&#104;&#111;&#109;&#101;&#46;&#97;&#114;&#112;&#97;</a></td>
+<td>DE-BW-MA <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#109;&#107;&#64;&#114;&#111;&#97;&#100;&#46;&#104;&#111;&#109;&#101;&#46;&#97;&#114;&#112;&#97;">&#109;&#107;&#64;&#114;&#111;&#97;&#100;&#46;&#104;&#111;&#109;&#101;&#46;&#97;&#114;&#112;&#97;</a></td>
+</tr>
+<tr>
+<td style="text-align: left;">Role</td>
+<td>Repeater</td>
+<td>Companion</td>
+</tr>
+<tr>
+<td style="text-align: left;">Hardware</td>
+<td>Raspberry Pi 3B+</td>
+<td>Heltec LoRa 32 V3.2</td>
+</tr>
+<tr>
+<td style="text-align: left;"></td>
+<td><a href="https://github.com/chrismyers2000/MeshAdv-Pi-Hat">MeshAdv Pi Hat v1.1</a></td>
+<td></td>
+</tr>
+<tr>
+<td style="text-align: left;"></td>
+<td><a href="https://interline.pl/de/taxonomy/term/10">Interline IH-G08-F8688-V2</a></td>
+<td></td>
+</tr>
+<tr>
+<td style="text-align: left;">Location</td>
+<td>Outside my kitchen (2<sup>nd</sup> floor)</td>
+<td>EDC</td>
+</tr>
+</tbody>
+</table>
+<p>The other option for a <em>really</em> EDC is a Seeed T1000-E/RAK WisMesh Tag. If I'm
+able to buy/build a DIY solar repeater, I'm going to mount it somewhere in the
+<a href="https://analyzer.letsmesh.net/map?lat=49.57705&amp;long=8.93442&amp;zoom=9">Odenwald</a>
+or Mannheim. But I have to look into my options...</p>
+<h3 id="as213674">AS213674<a class="headerlink" href="#as213674" title="Permanent link">&para;</a></h3>
+<p>I've been assigned this ASN by RIPE NCC, and have additionally control over a
+IPv6 PA space - 2a0e:8f02:2050::/44 - after applying with a LIR, namely
+freetransit.ch. <del>More information will be available on
+<a href="https://as213674.net">as213674.net</a>.</del></p>
+<h2 id="network-infrastructure">Network infrastructure<a class="headerlink" href="#network-infrastructure" title="Permanent link">&para;</a></h2>
+<h3 id="vps-amsasdfghasdfghde">vps-ams.asdfghasdfgh.de<a class="headerlink" href="#vps-amsasdfghasdfghde" title="Permanent link">&para;</a></h3>
+<p>This webpage you're reading is essentially vps-ams, hosted with
+<a href="https://openbsd.amsterdam">OpenBSD.amsterdam</a> in Amsterdam, North Holland,
+Netherlands. I'm very happy with Mischa's services.</p>
+<p>vps-ams serves HTTP and DNS ("ns1.asdfghasdfgh.de") requests for my domain
+asdfghasdfgh.de.</p>
+<h3 id="vps-berasdfghasdfghde">vps-ber.asdfghasdfgh.de<a class="headerlink" href="#vps-berasdfghasdfghde" title="Permanent link">&para;</a></h3>
+<p>The second server is hosted with <a href="https://in-berlin.de">IN-Berlin e.V.</a> in
+Berlin, Land Berlin,  Germany.</p>
+<p>vps-ber.asdfghasdfgh.de is running OpenBSD, via KVM. It's running nsd
+("ns2.asdfghasdfgh.de") and a BGP session, announcing one of the ::/48's prefix.</p>
+<p>Initally I tried to apply for an {oracle,vultr}.com free tier for the second
+server, but they declined my prepaid credit card :-( Seems I'm too much of a
+peasent for corporations.</p>
+<p><del>I plan to expand with my ASN to <a href="https://ifog.ch">iFog GmbH</a>, <a href="https://servperso.net">Servperso
+Systems</a> &amp; <a href="https://pdxnet.co.uk">ParadoxNetworks</a> to
+further announce ::/48's.</del></p>
+<h3 id="inasdfghasdfghde">in.asdfghasdfgh.de<a class="headerlink" href="#inasdfghasdfghde" title="Permanent link">&para;</a></h3>
+<p>My network at home - connected via IKEv2/IPSec to both VPS'. If the DSL line
+fails, the router has a Sierra Wirelss EM7455, umb(4) as a fallback, controlled by
+ifstated(8). The APN is DTAG with a SIM from <a href="https://fraenk.de">fraenk</a>. The
+router is connected to a Smart-UPS (APC SC420), to gracefully shutdown in a case
+of power outage. The DSL line is a 100/40 MBit landline from <a href="https://maingau-energie.de">Maingau
+Energie</a> - from which I also get my electricity.</p>
+<h3 id="tsasdfghasdfghde">ts.asdfghasdfgh.de<a class="headerlink" href="#tsasdfghasdfghde" title="Permanent link">&para;</a></h3>
+<p>My <a href="https://headscale.net">Headscale</a> network - every device I own is connected
+to this mesh network.  Since I don't trust companies fully (and want to
+mitigate blocking of tailscale.com by corporate firewalls), I've set this up
+and use it as a overlay network, also having a working, company-independent,
+"legacy" IKEv2/IPSec configuration, especially for OSPF, since Wireguard has
+problems with IPv6.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                
+              </article>
+            </div>
+          
+          
+  <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
+
+<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
+        </div>
+        
+          <button type="button" class="md-top md-icon" data-md-component="top" hidden>
+  
+  <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-circle-arrow-up" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="m16 12-4-4-4 4M12 16V8"/></svg>
+  Back to top
+</button>
+        
+      </main>
+      
+        <footer class="md-footer">
+  
+    
+      
+      <nav class="md-footer__inner md-grid" aria-label="Footer" >
+        
+          
+          <a href="../meditation/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Meditation">
+            <div class="md-footer__button md-icon">
+              
+              <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-left" viewBox="0 0 24 24"><path d="m12 19-7-7 7-7M19 12H5"/></svg>
+            </div>
+            <div class="md-footer__title">
+              <span class="md-footer__direction">
+                Previous
+              </span>
+              <div class="md-ellipsis">
+                Meditation
+              </div>
+            </div>
+          </a>
+        
+        
+      </nav>
+    
+  
+  <div class="md-footer-meta md-typeset">
+    <div class="md-footer-meta__inner md-grid">
+      <div class="md-copyright">
+  
+    <div class="md-copyright__highlight">
+      WTFPL &copy; 1987 Manuel Kuklinski
+<br>
+<a href="/xyz">No permission granted to any AI/LLM/ML-powered system (or similar).</a>
+
+    </div>
+  
+  
+</div>
+      
+    </div>
+  </div>
+</footer>
+      
+    </div>
+    <div class="md-dialog" data-md-component="dialog">
+      <div class="md-dialog__inner md-typeset"></div>
+    </div>
+    
+    
+    
+      
+      
+      
+      <script id="__config" type="application/json">{"annotate":null,"base":"..","features":["announce.dismiss","content.code.annotate","content.code.copy","content.code.select","content.footnote.tooltips","content.tabs.link","content.tooltips","navigation.footer","navigation.indexes","navigation.instant","navigation.instant.prefetch","navigation.path","navigation.prune","navigation.sections","navigation.top","navigation.tracking","search.highlight"],"search":"../assets/javascripts/workers/search.5df7522c.min.js","tags":null,"translations":{"clipboard.copied":"Copied to clipboard","clipboard.copy":"Copy to clipboard","search.result.more.one":"1 more on this page","search.result.more.other":"# more on this page","search.result.none":"No matching documents","search.result.one":"1 matching document","search.result.other":"# matching documents","search.result.placeholder":"Type to start searching","search.result.term.missing":"Missing","select.version":"Select version"},"version":null}</script>
+    
+    
+      <script src="../assets/javascripts/bundle.21aa498e.min.js"></script>
+      
+    
+  </body>
+</html>
\ No newline at end of file
blob - /dev/null
blob + 0c24023a3d1b02b3b397a292bdd94b214302a133 (mode 644)
--- /dev/null
+++ site/robots.txt
@@ -0,0 +1,95 @@
+# Block all known AI crawlers and assistants
+# from using content for training AI models.
+# Source: https://robotstxt.com/ai
+User-Agent: GPTBot
+User-Agent: ClaudeBot
+User-Agent: Claude-User
+User-Agent: Claude-SearchBot
+User-Agent: CCBot
+User-Agent: Google-Extended
+User-Agent: Applebot-Extended
+User-Agent: Facebookbot
+User-Agent: Meta-ExternalAgent
+User-Agent: Meta-ExternalFetcher
+User-Agent: diffbot
+User-Agent: PerplexityBot
+User-Agent: Perplexity‑User
+User-Agent: Omgili
+User-Agent: Omgilibot
+User-Agent: webzio-extended
+User-Agent: ImagesiftBot
+User-Agent: Bytespider
+User-Agent: TikTokSpider
+User-Agent: Amazonbot
+User-Agent: Youbot
+User-Agent: SemrushBot-OCOB
+User-Agent: Petalbot
+User-Agent: VelenPublicWebCrawler
+User-Agent: TurnitinBot
+User-Agent: Timpibot
+User-Agent: OAI-SearchBot
+User-Agent: ICC-Crawler
+User-Agent: AI2Bot
+User-Agent: AI2Bot-Dolma
+User-Agent: DataForSeoBot
+User-Agent: AwarioBot
+User-Agent: AwarioSmartBot
+User-Agent: AwarioRssBot
+User-Agent: Google-CloudVertexBot
+User-Agent: PanguBot
+User-Agent: Kangaroo Bot
+User-Agent: Sentibot
+User-Agent: img2dataset
+User-Agent: Meltwater
+User-Agent: Seekr
+User-Agent: peer39_crawler
+User-Agent: cohere-ai
+User-Agent: cohere-training-data-crawler
+User-Agent: DuckAssistBot
+User-Agent: Scrapy
+User-Agent: Cotoyogi
+User-Agent: aiHitBot
+User-Agent: Factset_spyderbot
+User-Agent: FirecrawlAgent
+User-Agent: bedrockbot
+User-Agent: DeepSeekBot
+User-Agent: GoogleAgent-Mariner
+User-Agent: Gemini-Deep-Research
+User-Agent: Google-NotebookLM
+User-Agent: Google-Agent
+User-Agent: GoogleAgent-URLContext
+User-Agent: Google-Firebase
+User-Agent: MistralAI-User
+User-Agent: SemrushBot-FT
+User-Agent: SemrushBot-ESI
+User-Agent: AddSearchBot
+User-Agent: bigsur.ai
+User-Agent: Brightbot
+User-Agent: Crawlspace
+User-Agent: EchoboxBot
+User-Agent: FriendlyCrawler
+User-Agent: LinerBot
+User-Agent: Panscient
+User-Agent: Panscient.com
+User-Agent: Poseidon Research Crawler
+User-Agent: SBIntuitionsBot
+User-Agent: TerraCotta
+User-Agent: Thinkbot
+User-Agent: Yak
+User-Agent: YandexAdditional
+User-Agent: YandexAdditionalBot
+
+Disallow: /
+DisallowAITraining: /
+
+# Block any non-specified AI crawlers (e.g., new
+# or unknown bots) from using content for training
+# AI models, while allowing the website to be
+# indexed and accessed by bots.  These directives
+# are still experimental and may not be supported
+# by all AI crawlers.
+User-Agent: *
+DisallowAITraining: /
+Content-Usage: ai=n
+Content-Signal: search=yes, ai-input=no, ai-train=no
+Allow: /
blob - /dev/null
blob + af52973a5ef185e4697c4d14b25f8768b95ff41e (mode 644)
--- /dev/null
+++ site/search.json
@@ -0,0 +1 @@
+{"config":{"separator":"[\\s\\-_,:!=\\[\\]()\\\\\"`/]+|\\.(?!\\d)"},"items":[{"location":"","level":1,"title":"「戦争を作るな、平和を作りましょう」","text":"<pre><code>   ________  ________  _______   ________  ________  ________  ________ \n  ╱  ╱  ╱  ╲╱        ╲╱       ╲ ╱        ╲╱        ╲╱        ╲╱        ╲\n ╱         ╱         ╱        ╱╱         ╱         ╱         ╱         ╱\n╱╱        ╱        _╱        ╱╱       --╱         ╱         ╱        _╱ \n╲╲_______╱╲________╱╲________╱╲________╱╲________╱╲__╱__╱__╱╲________╱\n</code></pre>","path":["「戦争を作るな、平和を作りましょう」"],"tags":[]},{"location":"#_1","level":1,"title":"「戦争を作るな、平和を作りましょう」","text":"<p>My internet is quieter than yours and [it’s trying to teach me something.] – solderpunk</p> <p>I'm a low-tech<sup>1</sup>, frugal living anarcho-communist<sup>2</sup><sup>3</sup>, who admires UNIX<sup>4</sup>. I'm not a prepper, but nonetheless I'm going to be a amateur radio operator <sup>5</sup>. I'd like to see myself as a hacker<sup>6</sup>, but realistically I'm a bungler.</p> <p>I'm a late bloomer: I spent my 20’s with ████████ and my 30’s with pulling up my socks. Now I'm doing a retraining, to eventually become a network engineer. What will happen in my 40’s?</p> <p>In my freetime I read books, ride my mountainbike and sometimes sleep outdoors. I practice sitting meditation - until now in half-lotus postion. I see myself as a complete phool: a piteous person that is on the way to ed(1)<sup>7</sup>. I’m a pedestrian and public transport passenger by conviction. I hate car culture. No, I’m not Greg<sup>8</sup>! </p> <p>I started to play handpan. The sound of this instrument resonates deeply, since I heard the sound first over a decade ago when I was in a existential crisis. In the future I plan to obtain a custom handpan by 園部 良 (Ryo Sonobe)<sup>9</sup>, or even an original Hang<sup>10</sup> - but this depends if I'm able to save enough money.</p> <p>At the moment I play a second-hand Metal Sounds Spacedrum Evolution: C - Deep Sky 7 + 1, 440 Hz. I’m learning as best as I can about electronics and patch semi-modular synthesizers, abstaining from “eurocrack”.</p> <p>I’m a full-time teetotaler, lightening up with carbonated water. I enjoy instant (decaf) coffee with milk, especially in the morning and green tea as a contemplative moment. I'm trying to switch to barley tea. I need coffee to pull an all nighter or to start the day at 05:00 AM.</p> <p>My socialization were boy scouts, anime &amp; manga and frequent visits to the book store. One can easily say that I was gullible in my early years. I’m mentally not capable to program in a low-level programming language. Before you wonder: my IQ seems to be equivalent to a vegetarian 炊き込みご飯 (takikomi gohan)<sup>11</sup>. I enjoy comedy and nature at the end of the week. I can’t handle a fast single-speed in traffic - yes, this is quite specific... </p> <p>You may take a look at my .plan, read my µblog or browse my public ftp archive. I used to hitchhike and travel; if you're interested, you may see my visited countries.</p>","path":["「戦争を作るな、平和を作りましょう」"],"tags":[]},{"location":"#geekcode","level":2,"title":"Geekcode","text":"<pre><code>-----BEGIN GEEK CODE BLOCK-----\nVersiom: 3.20\nG!(GTA) d---(dpu) s++:+ a?(--) c C(C++) B+(B?) L- u++\nW-(++) H++(!H) 7?(--) w--(w) M+(M-) Z+ F+(-) PS+&amp;#62;+++\nPE(-) Y+&amp;#62;++ PGP+&amp;#62;+++ T--@ S+++(---) m++ J?  R*\ntv&amp;#62;!tv b+&amp;#62;++ DI D+ e* h-- A++ r- !x+\n------END GEEK CODE BLOCK------\n</code></pre>","path":["「戦争を作るな、平和を作りましょう」"],"tags":[]},{"location":"#legal-notice","level":2,"title":"Legal notice","text":"<p>If you need to contact me, please see the RIPE database. This website does not collect, store, or share any personal data. No cookies, tracking tools, or analytics services are used.</p> <ol> <li> <p>see Permacomputing ↩</p> </li> <li> <p>see \"Solidarische Landwirtschaft\" ↩</p> </li> <li> <p>see Кропоткин, Пётр Алексеевич: \"La Conquête du Pain\" ↩</p> </li> <li> <p>see \"Ken Thompson &amp; Dennis Ritchie\" ↩</p> </li> <li> <p>see DARC ↩</p> </li> <li> <p>see RFC 1392 ↩</p> </li> <li> <p>see Lucas, Michael W.: \"Ed Mastery\" ↩</p> </li> <li> <p>see Venetian Snares: \"Greg Hates Car Culture\" ↩</p> </li> <li> <p>see Sonobe Handpans ↩</p> </li> <li> <p>see PANArt Hang ↩</p> </li> <li> <p>see Jisho.org ↩</p> </li> </ol>","path":["「戦争を作るな、平和を作りましょう」"],"tags":[]},{"location":"bicycle/","level":1,"title":"Bicycle","text":"","path":["Bicycle"],"tags":[]},{"location":"bicycle/#steel-frame-mountain-bike","level":2,"title":"Steel Frame Mountain Bike","text":"","path":["Bicycle"],"tags":[]},{"location":"bicycle/#cycling-instead-of-walking","level":3,"title":"Cycling instead of walking","text":"<p>Summer '24 I had the chance to lay a hand at a vintage \"Motobecane Mirage\" road-bike (2024/06/21), alreayd converted to single-speed and a \"Giant Custom Lite\" touring-bike (2024/08/03). The \"Giant Custom Lite\" was stripped of unnecessary parts and will be converted to a single-speed cyclo-cross / gravel-bike.</p> <p>Spring '25 (2025/03/31) I had the chance to acquire a vintage \"Centurion Weasel\" mountain-bike in a very good condition. I'm very happy with this purchase :o)</p> <p>Below you will find the current specifications one photo of the bicycle.</p> <p>The reason for my fixation on the bicycles being single-speed, is due to the fact, that it's easier to maintain. I don't mind the missing sprockets and gladly will push my bicycle up a hill or a mountain, if it means I can quickly and easily repair it by myself. I still want to repair my bicycle by myself, so it must be easily repairable, but since I'm moving slowly out of my thirties, I decided to go for a mountainbike, since I noticed that I'm usually in or around woods or mountains. 23x622 is too fragile for woods / off-road, and I enjoy the benefits of a derailleur, especially uphill.</p> <p>I was inspired by solderpunk to start S24Os; it suits me very well. I take a small backpack, a light sleeping bag, a portable ham radio, a headlamp and something to eat &amp; drink with me.</p> Centurion Weasel: Component Height: 580mm (Diamond) Wheels: 650c (26x559mm) Chain: To be continued... Sprocket: To be continued... Handlebar: To be continued... Tires: Ritchey Megabite Z-Max (57x559mm) (front) ---: Kenda Unknown Modell (54x559mm) (back) Tubes: To be continued... ---: To be continued... Saddle: Velo VL-3378-2 Crankset: Shimano  STX-RC Fork: Rock Shox Indy-C <p></p>","path":["Bicycle"],"tags":[]},{"location":"hardware/","level":1,"title":"Hardware","text":"","path":["Hardware"],"tags":[]},{"location":"hardware/#computers-peripherals-and-etc-im-currently-using","level":2,"title":"Computers, peripherals and etc. I'm currently using","text":"","path":["Hardware"],"tags":[]},{"location":"hardware/#workstations","level":3,"title":"Workstations","text":"<p>I'm OS agnostic, but nowadays I prefer macOS at home. I'd use Alpine on the Thinkpad, but sadly I require some programs on Windows for my retraining. I know about Wine. To mitigate the enshittification of Windows 11, I installed Windows 11 IoT LSTC. For the future, I hope I can switch back to GNU/Linux or *BSD.</p>","path":["Hardware"],"tags":[]},{"location":"hardware/#apple-macmini91","level":4,"title":"Apple Macmini9,1","text":"<ul> <li>Apple M1 4x 3.20 GHz &amp; 4x 2.10 GHz</li> <li>8 GB Non-ECC RAM</li> <li>256 GB NVME SSD</li> <li>OS: macOS</li> </ul>","path":["Hardware"],"tags":[]},{"location":"hardware/#lenove-thinkpad-x220","level":4,"title":"Lenove Thinkpad X220","text":"<ul> <li>Intel Core i5-2450M 2x 2.5 GHz</li> <li>16 GB Non-ECC RAM</li> <li>128 GB SATA SSD</li> <li>OS: Windows</li> </ul>","path":["Hardware"],"tags":[]},{"location":"hardware/#homelab","level":3,"title":"Homelab","text":"<p>I already had a power hungry Supermicro H8SML-i (see junkyard, but I'm again runnig a (file-)server at home, since I don't want to pay (anymore) for VMs, LLMs or cloud storage. I briefly evaluated these options, but came to the conclusion that I'm far more comfortable with my VMs, data and backups in my flat. Besides, nothing beats a functional homelab for experimenting, learning and tinkering :-)</p> <p>I'm contemplating about using OmniOS or Proxmox instead of FreeBSD. The ZFS pools are running with a minimal working feature set, supported by every OS.</p> <p>I switched from Vodafone to DTAG (DSL), mostly because of the availability of DSL, possibility to use the Allnet modem and problems with VoIP of Vodafone. Due to missing IEEE 802.11ac support on OpenBSD I hooked a Mikrotik via RJ45 to my gateway, to provide stable WiFi.</p> <p></p>","path":["Hardware"],"tags":[]},{"location":"hardware/#advantech-fwa-1012vc-8ca1s","level":4,"title":"Advantech FWA-1012VC-8CA1S","text":"<ul> <li>Intel Atom C3758 8x 2.2 GHz</li> <li>16 GB DDR4 Non-ECC RAM</li> <li>128 GB SATA SSD</li> <li>OS: OpenBSD</li> </ul>","path":["Hardware"],"tags":[]},{"location":"hardware/#allnet-all126as3","level":4,"title":"Allnet ALL126AS3","text":"<ul> <li>Lantiq MIPS ADM5120P 1x 175 MHz</li> <li>64 MB Non-ECC RAM</li> <li>128 MB Disk</li> <li>OS: Linux</li> </ul>","path":["Hardware"],"tags":[]},{"location":"hardware/#apc-smart-ups-sc450","level":4,"title":"APC Smart-UPS SC450","text":"","path":["Hardware"],"tags":[]},{"location":"hardware/#dell-poweredge-r730","level":4,"title":"Dell PowerEdge R730","text":"<ul> <li>2x Intel Xeon E5-2650 v4 12x 2.2 GHz</li> <li>128 GB DDR4 ECC RAM</li> <li>Storage controller: Dell HBA330 Mini Mono<ul> <li>ZFS Pool zroot<ul> <li>2x 200 GB SAS SSD (OS, Jails) (RAID 1)</li> </ul> </li> <li>ZFS Pool rpool<ul> <li>2x 6 TB SAS HDD (Data, VMs) (RAID 1)</li> </ul> </li> </ul> </li> <li>GPU: Nvidia Tesla P4 8 GB GDDR5 Non-ECC RAM</li> </ul> <ul> <li>OS: FreeBSD</li> </ul>","path":["Hardware"],"tags":[]},{"location":"hardware/#juniper-ex4200-24px","level":4,"title":"Juniper EX4200-24PX","text":"<ul> <li>Freescale PowerPC e500 1x 1 GHz</li> <li>1 GB ECC RAM</li> <li>1 GB Disk</li> <li>OS: JunOS</li> </ul>","path":["Hardware"],"tags":[]},{"location":"hardware/#mikrotik-rbd52g-5hacd2hnd-tc","level":4,"title":"MikroTik RBD52G-5HacD2HnD-TC","text":"<ul> <li>Qualcomm IPQ-4018 4x 896 MHz</li> <li>128 MB Non-ECC RAM</li> <li>16 MB Disk</li> <li>OS: RouterOS</li> </ul>","path":["Hardware"],"tags":[]},{"location":"hardware/#edc","level":3,"title":"EDC","text":"<p>I'd rather prefer a (modular) smartphone running PostmarketOS, but sadly I invested a good amount of money into the walled garden of Apple, so I'm trapped there for the moment. I'm contemplating about a Fairphone 4 or a Mudita Kompakt, since I want to go minimal and break free from Apple.</p>","path":["Hardware"],"tags":[]},{"location":"hardware/#apple-iphone128","level":4,"title":"Apple iPhone12,8","text":"<ul> <li>Apple A13 Bionic 2x 2.70  GHz &amp; 4x 1.80GHz</li> <li>3 GB Non-ECC RAM</li> <li>64 GB Disk</li> <li>OS: iOS</li> </ul>","path":["Hardware"],"tags":[]},{"location":"hardware/#aiaiai-tma-2-move-wireless","level":4,"title":"AiAiAi TMA-2 Move Wireless","text":"","path":["Hardware"],"tags":[]},{"location":"hardware/#casio-gw-m5610u-er","level":4,"title":"Casio GW-M5610U-ER","text":"","path":["Hardware"],"tags":[]},{"location":"hardware/#corsair-survivor-stealth-v2-64-gb","level":4,"title":"Corsair Survivor Stealth v2, 64 GB","text":"","path":["Hardware"],"tags":[]},{"location":"hardware/#yubikey-5-nfc","level":4,"title":"Yubikey 5 NFC","text":"","path":["Hardware"],"tags":[]},{"location":"hardware/#amateur-radio","level":3,"title":"Amateur radio","text":"","path":["Hardware"],"tags":[]},{"location":"hardware/#heltec-lora-32-v32","level":4,"title":"Heltec LoRa 32 V3.2","text":"<ul> <li>ESP32-S3FN8 2x 240 MHz</li> <li>512 KB Non-ECC RAM</li> <li>8 MB Disk</li> <li>FW: MeshCore</li> <li>TX/RX: 470~510 + 863~928 MHz</li> </ul>","path":["Hardware"],"tags":[]},{"location":"hardware/#raspberry-pi-3b-frequencylab-meshadv-pi-hat-v11","level":4,"title":"Raspberry Pi 3B+ &amp; FrequencyLab MeshAdv Pi Hat v1.1","text":"<ul> <li>ARM Cortex-A53 4x 1.40 GHz</li> <li>1 GB Non-ECC RAM</li> <li>32 GB Disk</li> <li>OS: Linux</li> <li>TX/RX: 863~928 MHz</li> </ul>","path":["Hardware"],"tags":[]},{"location":"hardware/#rtl-sdr-rtl2832u-v4","level":4,"title":"RTL-SDR RTL2832U v4","text":"","path":["Hardware"],"tags":[]},{"location":"hardware/#home-entertainment","level":3,"title":"Home entertainment","text":"","path":["Hardware"],"tags":[]},{"location":"hardware/#apple-audioaccessory51","level":4,"title":"Apple AudioAccessory5,1","text":"<ul> <li>Apple S5 2x 1.59 GHz</li> <li>1 GB Non-ECC RAM</li> <li>32 GB Disk</li> <li>OS: audioOS</li> </ul>","path":["Hardware"],"tags":[]},{"location":"hardware/#apple-appletv62","level":4,"title":"Apple AppleTV6,2","text":"<ul> <li>Apple A10X Fusion 6x 2.30 GHz</li> <li>3 GB Non-ECC RAM</li> <li>32 GB Disk</li> <li>OS: tvOS</li> </ul>","path":["Hardware"],"tags":[]},{"location":"hardware/#nec-um301w","level":4,"title":"NEC UM301W","text":"","path":["Hardware"],"tags":[]},{"location":"junkyard/","level":1,"title":"Junkyard","text":"","path":["Junkyard"],"tags":[]},{"location":"junkyard/#hardware-ive-abandoned","level":2,"title":"Hardware I've abandoned","text":"","path":["Junkyard"],"tags":[]},{"location":"junkyard/#2026","level":3,"title":"2026","text":"","path":["Junkyard"],"tags":[]},{"location":"junkyard/#dell-poweredge-r530","level":4,"title":"Dell PowerEdge R530","text":"<ul> <li>Swapped the CPU to R730</li> <li>Swapped the RAM to R730</li> <li>Swapped the disks to R730</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#nintendo-dmg-01","level":4,"title":"Nintendo DMG-01","text":"<ul> <li>Sharp SM83 1x 4.19 MHz</li> <li>8 KB Non-ECC RAM</li> <li>ROM: InsideGadgets 2 MB ROM, 32 KB FRAM v2.2</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#great-scott-gadgets-hackrf-one","level":4,"title":"Great Scott Gadgets HackRF One","text":"<ul> <li>ARM Cortex-M4 + Cortex-M0 2x 204 MHz</li> <li>200 KB Non-ECC RAM</li> <li>TX/RX: 1~6000 MHz</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#2025","level":3,"title":"2025","text":"","path":["Junkyard"],"tags":[]},{"location":"junkyard/#pc-engines-apu1c4","level":4,"title":"PC Engines apu1c4","text":"<ul> <li>AMD G-T40E 2x 1.00 GHz</li> <li>4 GB Non-ECC RAM</li> <li>64 GB M.2 SSD</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#texas-instruments-beaglebone-black","level":4,"title":"Texas Instruments BeagleBone Black","text":"<ul> <li>ARM Cortex-A8 1x 1.00 GHz</li> <li>512 MB Non-ECC RAM</li> <li>4 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#apple-watch59","level":4,"title":"Apple Watch5,9","text":"<ul> <li>Apple S5 2x 1.50 GHz</li> <li>1 GB Non-ECC RAM</li> <li>32 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#motorola-c118","level":4,"title":"Motorola C118","text":"<ul> <li>ARM7TDMI 1x 66 MHz~100 MHz</li> <li>256 KB Non-ECC RAM</li> <li>0 MB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#supermicro-h8sml-i","level":4,"title":"Supermicro H8SML-i","text":"<ul> <li>AMD Opteron 3350 HE 4x 2.80 GHz</li> <li>8 GB ECC RAM</li> <li>2x 128 GB + 4x 4 TB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#2024","level":3,"title":"2024","text":"","path":["Junkyard"],"tags":[]},{"location":"junkyard/#mikrotik-rb962uigs-5hact2hnt","level":4,"title":"MikroTik RB962UiGS-5HACT2HNT","text":"<ul> <li>Qualcomm Atheros QCA9558 1x 720 MHz</li> <li>128 MB Non-ECC RAM</li> <li>16 MB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#rtl-sdr-rtl2832u-v3","level":4,"title":"RTL-SDR RTL2832U v3","text":"<ul> <li>RTL2832U</li> <li>No RAM</li> <li>RX: 0.5~1700 MHz</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#blackberry-q10","level":4,"title":"Blackberry Q10","text":"<ul> <li>Qualcomm Snapdragon S4 2x 1.50 GHz</li> <li>2 GB Non-ECC RAM</li> <li>16 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#apple-iphone104","level":4,"title":"Apple iPhone10,4","text":"<ul> <li>Apple A11 Bionic 2x 2.40 GHz &amp; 4x 1.40 Ghz</li> <li>2 GB Non-ECC RAM</li> <li>64 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#hp-t620","level":4,"title":"HP t620","text":"<ul> <li>AMD GX-415G 4x 1.50 GHz</li> <li>8 GB Non-ECC RAM</li> <li>256 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#apple-iphone93","level":4,"title":"Apple iPhone9,3","text":"<ul> <li>Apple A10 Fusion 4x 2.34 GHz</li> <li>2 GB Non-ECC RAM</li> <li>32 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#brother-mfc-7360n","level":4,"title":"Brother MFC-7360N","text":"<ul> <li>ARM9 1x 200 MHz</li> <li>32 MB Non-ECC RAM</li> <li>Host-based (GDI)</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#tecsun-pl-380","level":4,"title":"Tecsun PL-380","text":"<ul> <li>Silicon Labs Si4734</li> <li>Unknown RAM</li> <li>RX: 0.153~0.513 + 0.522~1.62 + 2.3~21.95 + 87~108 MHz</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#apple-imac143","level":4,"title":"Apple iMac14,3","text":"<ul> <li>Intel Core i7-4770S 4x 3.10 GHz</li> <li>16 GB Non-ECC RAM</li> <li>1 TB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#commodore-64-aldi","level":4,"title":"Commodore 64 (\"ALDI\")","text":"<ul> <li>MOS 8500 1x 0.985 MHz</li> <li>64 KB Non-ECC RAM</li> <li>64 MB Disk (\"EasyFlash\\xc2\\xb3\")</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#casio-gw-m5610-1","level":4,"title":"Casio GW-M5610-1","text":"<ul> <li>Quartz logic</li> <li>Hybrid solar + battery</li> <li>RX: 0.04 + 0.06 + 0.685 + 0.0775 MHz</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#circuitmess-ringo","level":4,"title":"CircuitMess Ringo","text":"<ul> <li>ESP32 Xtensa LX6 2x 160 MHz</li> <li>520 KB Non-ECC RAM</li> <li>4 MB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#2023","level":3,"title":"2023","text":"","path":["Junkyard"],"tags":[]},{"location":"junkyard/#apple-iphone128","level":4,"title":"Apple iPhone12,8","text":"<ul> <li>Apple A13 Bionic 6x 2.66 GHz</li> <li>3 GB Non-ECC RAM</li> <li>64 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#apple-imac91","level":4,"title":"Apple iMac9,1","text":"<ul> <li>Intel Core 2 Duo E8135 2x 2.66 GHz</li> <li>8 GB Non-ECC RAM</li> <li>320 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#brother-dcp-7055w","level":4,"title":"Brother DCP-7055W","text":"<ul> <li>ARM9 1x 200 MHz</li> <li>32 MB Non-ECC RAM</li> <li>Host-based (GDI)</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#apple-tv32","level":4,"title":"Apple TV3,2","text":"<ul> <li>Apple A5 1x 1.00 GHz</li> <li>512 MB Non-ECC RAM</li> <li>8 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#nokia-dbox2","level":4,"title":"Nokia DBox2","text":"<ul> <li>Motorola MPC823 1x 66 MHz</li> <li>32 MB Non-ECC RAM</li> <li>8 MB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#blackberry-classic","level":4,"title":"Blackberry Classic","text":"<ul> <li>Qualcomm Snapdragon S4 Plus 2x 1.50 GHz</li> <li>2 GB Non-ECC RAM</li> <li>16 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#apple-macbookpro121","level":4,"title":"Apple MacBookPro12,1","text":"<ul> <li>Intel Core i5-5257U 2x 2.90 GHz</li> <li>16 GB Non-ECC RAM</li> <li>512 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#toughbook-cf-19-mk1","level":4,"title":"Toughbook CF-19 MK1","text":"<ul> <li>Intel Core Duo U2400 2x 1.06 GHz</li> <li>2 GB Non-ECC RAM</li> <li>128 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#kenwood-r-1000","level":4,"title":"Kenwood R-1000","text":"<ul> <li>No CPU - analog</li> <li>No RAM - analog</li> <li>RX: 0.2-30 MHz</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#2022","level":3,"title":"2022","text":"","path":["Junkyard"],"tags":[]},{"location":"junkyard/#nokia-800-tough","level":4,"title":"Nokia 800 Tough","text":"<ul> <li>Qualcomm Snapdragon 205 2x 1.30 GHz</li> <li>512 MB Non-ECC RAM</li> <li>4 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#pc-engines-alix2d3","level":4,"title":"PC Engines alix2d3","text":"<ul> <li>AMD Geode LX800 1x 500 MHz</li> <li>256 MB Non-ECC RAM</li> <li>32 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#albrecht-ae69-2h","level":4,"title":"Albrecht AE69-2H","text":"<ul> <li>SMD SL5018</li> <li>Unknown RAM</li> <li>RX: 28-88 + 137-174 + 406-512 MHz</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#cat-b35","level":4,"title":"CAT B35","text":"<ul> <li>Qualcomm Snapdragon 205 2x 1.30 GHz</li> <li>512 MB Non-ECC RAM</li> <li>4 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#edision-os-nino","level":4,"title":"Edision OS Nino+","text":"<ul> <li>Mips Broadcom BCM73625 2x 742 MHz</li> <li>512 MB Non-ECC RAM</li> <li>512 MB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#apple-iphone61","level":4,"title":"Apple iPhone6,1","text":"<ul> <li>Apple A7 CPU 2x 1.3 GHz</li> <li>1 GB Non-ECC RAM</li> <li>32 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#lenovo-thinkpad-x250","level":4,"title":"Lenovo ThinkPad X250","text":"<ul> <li>Intel Core i5-5300U 2x 2.90 GHz</li> <li>8 GB Non-ECC RAM</li> <li>128 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#2018","level":3,"title":"2018","text":"","path":["Junkyard"],"tags":[]},{"location":"junkyard/#apple-macbookair31","level":4,"title":"Apple MacBookAir3,1","text":"<ul> <li>Intel Core 2 Duo2x 1.40 GHz</li> <li>2 GB Non-ECC RAM</li> <li>128 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#raspberry-pi-3b","level":4,"title":"Raspberry Pi 3B+","text":"<ul> <li>ARM Cortex-A53 4x 1.40 GHz</li> <li>1 GB Non-ECC RAM</li> <li>32 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#brother-hl-2035","level":4,"title":"Brother HL-2035","text":"<ul> <li>SPARClite 1x 96 MHz</li> <li>8 MB Non-ECC RAM</li> <li>Host-based (GDI)</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#lenovo-thinkcentre-m70e","level":4,"title":"Lenovo ThinkCentre M70e","text":"<ul> <li>Intel Core 2 Duo E7500 2x 2.93 GHz</li> <li>4 GB Non-ECC RAM</li> <li>250 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#sony-playstation-3","level":4,"title":"Sony PlayStation 3","text":"<ul> <li>STI PowerPC 1x 3.20 GHz</li> <li>256 MB Non-ECC RAM</li> <li>60 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#sony-playstation-2","level":4,"title":"Sony PlayStation 2","text":"<ul> <li>MIPS R5900 1x 294.912 MHz</li> <li>32 MB Non-ECC RAM</li> <li>8 MB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#lenovo-thinkpad-x200","level":4,"title":"Lenovo ThinkPad X200","text":"<ul> <li>Intel Core 2 Duo P8600 2x 2.40 GHz</li> <li>2 GB Non-ECC RAM</li> <li>120 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#cat-b25","level":4,"title":"CAT B25","text":"<ul> <li>MediaTek MT6235 1x 208 MHz</li> <li>256 MB Non-ECC RAM</li> <li>512 MB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#raspberry-pi-b","level":4,"title":"Raspberry Pi B+","text":"<ul> <li>ARM ARM1176JZF-S 1x 700 MHz</li> <li>512 MB Non-ECC RAM</li> <li>32 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#a-long-time-ago","level":3,"title":"\"A long time ago...\"","text":"","path":["Junkyard"],"tags":[]},{"location":"junkyard/#samsung-e1200","level":4,"title":"Samsung E1200","text":"<ul> <li>Unknown CPU 1x 156 MHz</li> <li>Unknown RAM</li> <li>32 MB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#samsung-e1070","level":4,"title":"Samsung E1070","text":"<ul> <li>Unknown CPU</li> <li>Unknown RAM</li> <li>10 MB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#dell-inspiron-mini-910","level":4,"title":"Dell Inspiron Mini 910","text":"<ul> <li>Intel Atom N270 1x 1.60 GHz</li> <li>1024 MB Non-ECC RAM</li> <li>8 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#motorola-defy","level":4,"title":"Motorola DEFY+","text":"<ul> <li>TI OMAP 3620 1x 1.0 Ghz</li> <li>512 MB Non-ECC RAM</li> <li>3 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#lenovo-thinkpad-x61","level":4,"title":"Lenovo ThinkPad X61","text":"<ul> <li>Intel Core 2 Duo L7500 2x 1.60 GHz</li> <li>2 GB Non-ECC RAM</li> <li>128 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#toshiba-satellite-2410","level":4,"title":"Toshiba Satellite 2410","text":"<ul> <li>Intel Pentium 4 M 1x 2.00 GHz</li> <li>512 MB Non-ECC RAM</li> <li>30 GB Disk</li> <li>NOTE: Unsure about specific model and hardware specification - could maybe have been a 1800...</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#compaq-deskpro-en","level":4,"title":"Compaq Deskpro EN","text":"<ul> <li>Intel Pentium III 1x 1.00 GHz</li> <li>338 MB Non-ECC RAM</li> <li>20 GB Disk</li> <li>NOTE: Unsure about specific model and hardware specification...</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#apple-powerbook56","level":4,"title":"Apple PowerBook5,6","text":"<ul> <li>PowerPC 7447A 1x 1.67 GHz</li> <li>512 MB Non-ECC RAM</li> <li>80 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#microsoft-xbox","level":4,"title":"Microsoft XBOX","text":"<ul> <li>Intel Pentium III 1x 733 MHz</li> <li>64 MB Non-ECC RAM</li> <li>8 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#sony-ericsson-c901","level":4,"title":"Sony Ericsson C901","text":"<ul> <li>Unknown CPU</li> <li>Unknown RAM</li> <li>110 MB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#nokia-3310","level":4,"title":"Nokia 3310","text":"<ul> <li>Unknown 1x 13 MHz</li> <li>4 KB Non-ECC RAM</li> <li>1 KB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#apple-powermac21","level":4,"title":"Apple PowerMac2,1","text":"<ul> <li>PowerPC 750 1x 350 MHz</li> <li>64 MB Non-ECC RAM</li> <li>10 GB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#nokia-2110","level":4,"title":"Nokia 2110","text":"<ul> <li>1x 6 MHz CPU</li> <li>96 KB Non-ECC RAM</li> <li>Unknown Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#sony-playstation-1","level":4,"title":"Sony PlayStation 1","text":"<ul> <li>MIPS R3051 1x 33.8688 MHz</li> <li>2 MB Non-ECC RAM</li> <li>128 KB Disk</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#nintendo-64","level":4,"title":"Nintendo 64","text":"<ul> <li>NEC VR4300 1x 93.75 MHz</li> <li>8 MB Non-ECC RAM (\"Expansion Pak\")</li> <li>4-64 MB ROM</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#sega-game-gear","level":4,"title":"Sega Game Gear","text":"<ul> <li>Zilog Z80 1x 3.58 MHz</li> <li>8 KB Non-ECC RAM</li> <li>128 KB-4 MB ROM</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"junkyard/#sega-mega-drive","level":4,"title":"Sega Mega Drive","text":"<ul> <li>Motorola 68000 1x 7.6 MHz</li> <li>64 KB Non-ECC RAM</li> <li>256 KB-4 MB ROM</li> </ul>","path":["Junkyard"],"tags":[]},{"location":"library/","level":1,"title":"Library","text":"","path":["Library"],"tags":[]},{"location":"library/#books-ive-half-finished","level":2,"title":"Books I've (half-)finished","text":"","path":["Library"],"tags":[]},{"location":"library/#currently-lying-on-the-bedside-table","level":3,"title":"Currently lying on the bedside table","text":"<ul> <li>Cleary, Thomas: No Barrier - Unlocking the Zen Koan</li> <li>Dōgen Zenji, Eihei: Shōbōgenzō - Die Schatzkammer des wahren Dharma-Auges, Band I</li> <li>Rosenberg, Marshall B.: Konflikte lösen durch Gewaltfreie Kommunikation</li> <li>Suzuki, Daisetz Teitaro &amp; Fromm, Erich: Zen-Buddhismus und Psychoanalyse</li> <li>Suzuki, Daisetz Teitaro: Studies in the Lankavatara Sutra</li> <li>Suzuki, Daisetz Teitaro: The Lankavatara Sutra</li> </ul>","path":["Library"],"tags":[]},{"location":"library/#2026","level":3,"title":"2026","text":"<ul> <li>Hilbrecht, Heinz: Meditation und Gehirn - Alte Weisheit und moderne Wissenschaft</li> <li>Nishijima, Gudo Wafu &amp; Bailey, Jeffrey Alan: To Meet the Real Dragon - Seeking the Truth in a World of Chaos</li> <li>Watzlawick, Paul: Wie wirklich ist die Wirklichkeit? Wahn - Täuschung - Verstehen</li> </ul>","path":["Library"],"tags":[]},{"location":"library/#2025","level":3,"title":"2025","text":"<ul> <li>Bielefeldt, Carl: Dogen's Manuals of Zen Meditation</li> <li>Niwano, Nikkyo: Buddhismus für Heute - Eine moderne Darstellung des Dreifachen Lotus Sutra</li> <li>Sawaki, Kodo: Tag für Tag ein guter Tag</li> <li>Suzuki, Daisetz Teitaro: Manual of Zen Buddhism</li> </ul>","path":["Library"],"tags":[]},{"location":"library/#2024","level":3,"title":"2024","text":"<ul> <li>Aitken, Robert: Zen als Lebenspraxis</li> <li>Carr, Allen: Endlich Nichtraucher!</li> <li>Dhammika, Bhante Shravasti: Broken Buddha - Plädoyer für einen neuen Buddhismus</li> <li>Hanh, Thich Nhat: The Heart of Buddha's Teaching - Transforming Suffering into Peace, Joy, and Liberation</li> <li>Porter, Bill: The Zen Teaching of Bodhidharma</li> <li>Sawaki, Kodo: An Dich - Zen-Sprüche</li> <li>Suzuki, Daisetz Teitaro: The Zen Doctrine Of No-Mind - The Significance of the Sutra of Hui-neng</li> <li>Suzuki, Shunryu: Zen Mind, Beginner's Mind - Informal talks on Zen meditation and practice</li> <li>ewk: Not Zen - A Zen Revolution. How the mysterious transmission of some old men was interrupted; explained mostly in their own words</li> </ul>","path":["Library"],"tags":[]},{"location":"library/#2023","level":3,"title":"2023","text":"<ul> <li>Braden, Gregg: Fractal Time - Das Geheimnis von 2012 und wie ein neues Zeitalter beginnt</li> </ul>","path":["Library"],"tags":[]},{"location":"library/#2021","level":3,"title":"2021","text":"<ul> <li>Dirie, Waris: Wüstenblume</li> <li>Jankowski, Franz: Die NS-Vergangenheit in der Heil- und Pflegeanstalt Wiesloch</li> <li>Nesbø, Jo: Der Schneemann</li> <li>Vine, Barbara: Das Geburtstagsgeschenk</li> <li>Zuiker, Anthony E. &amp; Swierczynski, Duane: Level 26 - Dark Origins</li> </ul>","path":["Library"],"tags":[]},{"location":"library/#2020","level":3,"title":"2020","text":"<ul> <li>Gibson, William: Neuromancer</li> <li>Rosenblatt, Bill &amp; Robbins, Arnold: Learning the Korn Shell</li> </ul>","path":["Library"],"tags":[]},{"location":"library/#2019","level":3,"title":"2019","text":"<ul> <li>Hawkins, Paula: The Girl on the Train</li> <li>Jonasson, Jona: Die Analphabetin, die rechnen konnte</li> </ul>","path":["Library"],"tags":[]},{"location":"library/#2018","level":3,"title":"2018","text":"<ul> <li>Foer, Jonathan Safran: Tiere essen</li> <li>Murakami, Haruki: Hard-Boiled-Wonderland</li> <li>Murakami, Haruki: Kafka am Strand</li> <li>Murakami, Haruki: Sputnik Sweetheart</li> <li>NOFX &amp; Aulis, Jeff: NOFX - The Hepatitis Bathtub and other Stories</li> <li>Restrepo, Laura: Die dunkle Braut</li> </ul>","path":["Library"],"tags":[]},{"location":"library/#a-long-time-ago","level":3,"title":"\"A long time ago...\"","text":"<ul> <li>Abbey, Edward: Die Monkey Wrench Gang</li> <li>Adams, Douglas: Dirk Gently's Holistic Detective Agency</li> <li>Adams, Douglas: The Hitchhiker Trilogy</li> <li>Aitken, Robert &amp; Steindl-Rast, David: Der spirituelle Weg - Zen-Buddhismus und Christentum im täglichen Leben - Ein Dialog</li> <li>Allen, Gary: Die Insider</li> <li>Arendt, Hannah: Adolf Eichmann: Die Banalität des Bösen</li> <li>Beckett, Samuel: Warten auf Godot</li> <li>Berkewicz, Ulla: Vielleicht werden wir ja verrückt - Eine Orientierung in vergleichendem Fanatismus</li> <li>Bock, Thilo: Die geladene Knarre von Andreas Baader</li> <li>Borsig, Margarete von: Lotos-Sutra - Sutra von der Lotosblume des wunderbaren Gesetzes</li> <li>Bradbury, Ray: Der illustrierte Mann</li> <li>Bradbury, Ray: Fahrenheit 451</li> <li>Broder, Henryk M.: Hurra, wir kapitulieren!</li> <li>Brown, Dan: Illuminati</li> <li>Brown, Dan: Sakrileg</li> <li>Bukowski, Charles: Faktotum</li> <li>Camus, Albert: The Outsider</li> <li>Charles Bukowski: Held außer Betrieb - Storys und Essays</li> <li>Cioran, E.M.: Gevierteilt</li> <li>Cioran, E.M.: Syllogismen der Bitterkeit</li> <li>Cohelo, Paul: Auf dem Jakobsweg</li> <li>Crimethinc! Collective: Work</li> <li>Däniken, Erich: Beweise - Lokaltermin in fünf Kontinenten</li> <li>Döblin, Alfred: Die Ermordung einer Butterblume und andere Erzählungen</li> <li>Doctorow, Cory: Backup</li> <li>Dōgen Zenji, Eihei: Shōbōgenzō - Die Schatzkammer des wahren Dharma-Auges</li> <li>Donald, Mac Kyle: One Red Paperclip: Biete Büroklammer – suche Haus. Die verrückteste Internet-Tauschaktion der Welt</li> <li>Dürrenmatt, Friedrich: Die Physiker</li> <li>Ende, Michael: Die unendliche Geschichte</li> <li>Ende, Michael: Jim Knopf</li> <li>Ende, Michael: Jim Knopf und die wilde 13</li> <li>Ergün, Mutlu: Kara Günlük</li> <li>Fang, Weigui:  Das Internet und China</li> <li>Fo, Dario: Accidental Death of an Anarchist</li> <li>Freely, John: Istanbul - The Imperial City</li> <li>Frisch, Max: Homo Faber</li> <li>Gandhi, Mahatma: Mein Leben</li> <li>George, Andrew: The Epic of Gilgamesh</li> <li>Goethe, Johann Wolfgang: Faust</li> <li>Goetz, Rainald: Irre</li> <li>Goetz, Rainald: Kontrolliert</li> <li>Greyson, Dr. Bruce: After - A Doctor Explores What Near-Death Experiences Reveal About Life and Beyond</li> <li>Hadamitzky, Wolfgang: Kanji und Kana 1: Handbuch der japanischen Schrift</li> <li>Henshall, Kenneth G.: A Guide to Remembering Japanese Characters</li> <li>Hesse, Hermann: Narziss und Goldmund</li> <li>Hesse, Hermann: Siddartha</li> <li>Hesse, Hermann: Steppenwolf</li> <li>Hessel, Stephane: Empört Euch!</li> <li>Hofmann, Albert: LSD - Mein Sorgenkind</li> <li>Hohlbein, Wolfgang: Am Abgrund - Die Chronik der Unsterblichen</li> <li>Huxley, Aldous: Die Pforten der Wahrnehmung</li> <li>Ibes, Norbert: Der leere Spiegel - Erfahrungen in einem japanischen Zen-Kloster</li> <li>Jackson, Steve: Das Höllenhaus</li> <li>Joos, Richard &amp; Jorberg, Randolf &amp; Gönnermann, Axel: gulli wars™ - underground piratainment since 1998</li> <li>Kafka, Franz: Briefe an den Vater</li> <li>Kafka, Franz: Die Verwandlung</li> <li>Kalweit, Holger: Die Welt der Schamanen - Traumzeit und innerer Raum</li> <li>Kapuscinski, Ryszard: Imperium</li> <li>Katzenbach, John: Die Grausamen</li> <li>Kerouac, Jack: On the Road</li> <li>Kilmister, Lemmy &amp; Garza, Janiss: White Line Fever - The Autobiography</li> <li>Klima, Ivan: My Golden Trades</li> <li>Klupp, Thomas: Paradiso</li> <li>Knuf, Andreas &amp; Tilly, Christian: Borderline, das Selbsthilfebuch</li> <li>Kuhlmann, Heinz W.: Das dreifache Lotos-Sûtra</li> <li>Kulla, Daniel: Entschwörungstheorie</li> <li>Kulla, Daniel: Leben im Rausch</li> <li>Kundera, Milan: Die unerträgliche Leichtigkeit des Seins</li> <li>Kundera, Milan: Die Unsterblichkeit</li> <li>La Rochefoucauld, François de: Reflexionen oder Sentenzen und moralische Maximen</li> <li>Lanier, Jaron: You Are Not a Gadget</li> <li>Leary, Timothy: Höhere Intelligenz und Kreativität</li> <li>Leary, Timothy: NeuroLogic</li> <li>Lem, Stanislaw: Die Ratte im Labyrinth</li> <li>Lem, Stanislaw: Die Technologiefalle</li> <li>Lem, Stanislaw: Provokationen</li> <li>Lessing, Gotthold Ephraim: Emilia Galotti</li> <li>Lewycka, Marina: Das Leben kleben</li> <li>Lovecraft, H. P. - Das Ding auf der Schwelle</li> <li>M., Adam: \"Mein Name ist Adam ...\" - Ein Bericht über Jahre der Abhängigkeit</li> <li>Machfus, Nagib: Das Hausboot am Nil</li> <li>Mann, Thomas: Der Tod in Venedig</li> <li>Marcos, Subcomandante: Botschaften aus dem lakadonischen Urwald</li> <li>Marquez, Gabriel Garcia: Chronik eines angekündigten Todes</li> <li>Marquez, Gabriel Garcia: Die Liebe in den Zeiten der Cholera</li> <li>Mascaró, Juan: The Dhammapada</li> <li>Moers, Walter: Die 13 ½ Leben des Käpt'n Blaubär</li> <li>Moers, Walter: Ensel und Kretel</li> <li>Moers, Walter: Rumo &amp; Die Wunder im Dunkeln</li> <li>Morris, Desmon: Der nackte Affe</li> <li>Mulder, Merle: Straight Edge - Subkultur, Ideologie, Lebensstil?</li> <li>Müller, Herta: Herztier</li> <li>Murakami, Ryu: Piercing</li> <li>Neudeck, Rupert: Afghanistan - Politische Expeditionen. Mit einem Überblick zur Geschichte Afghanistans</li> <li>Nicholls, Stan: Die Orks</li> <li>Nietzsche, Friedrich: Also sprach Zarathustra</li> <li>Niwano, Nikkyo: Buddhismus für Heute - Eine moderne Darstellung des Dreifachen Lotus Sutra</li> <li>Noack, Hans-Georg: Rolltreppe abwärts</li> <li>Palahniuk, Chuck: Fight Club</li> <li>Perez &amp; Alejchem, Scholem: Ein Zwiegespräch</li> <li>Pilnjak, Boris: Von Wölfen und Maschinen</li> <li>Pirsig, Robert M.: Zen und die Kunst ein Motorrad zu warten</li> <li>Prime, Ranchor: Cows and the Earth - A Story of Kinder Dairy Farming</li> <li>Radner, Karen: Mesopotamien - Die frühen Hochkulturen an Euphrat und Tigris</li> <li>Rapp, Tobias: Lost and Sound - Berlin, Techno und der Easyjetset</li> <li>Reza, Hajatpour: Der brennende Geschmack der Freiheit - Mein Leben als junger Mullah im Iran</li> <li>Rimbaud, Penny: Shibboleth</li> <li>Roberts, Jane: Gespräche mit Seth - Von der ewigen Gültigkeit der Seele</li> <li>Rory, Stewart: So weit die Knie tragen - Mein Fußmarsch durch Afghanistan</li> <li>Rowling, J.K.: Harry Potter und der Gefangene von Askaban</li> <li>Rowling, J.K.: Harry Potter und der Stein der Weisen</li> <li>Rowling, J.K.: Harry Potter und die Kammer des Schreckens</li> <li>Rushkoff, Douglas: Chaos Kids</li> <li>Rushkoff, Douglas: Cyberia</li> <li>Saint-Exupéry, Antoine de: Der kleine Prinz</li> <li>Salinger, J.D.: Der Fänger im Roggen</li> <li>Salvatore, R.A.: Star Wars: Das Erbe der Jedi-Ritter 1 - Die Abtrüninngen</li> <li>Saramago, Jose: Die Stadt der Blinden</li> <li>Saramago, Jose: Die Stadt der Sehenden</li> <li>Saramago, Jose: Kain</li> <li>Satre, Jean Paul: Der Ekel</li> <li>Satre, Jean Paul: Die Hölle, das sind die anderen</li> <li>Satre, Jean Paul: Geschlossene Gesellschaft</li> <li>Schiller, Friedrich: Die Räuber</li> <li>Schiller, Friedrich: Wilhelm Tell</li> <li>Schmidt, Christian Y.: Zum ersten Mal tot - achtzehn Premieren</li> <li>Scholl, Inge: Die weiße Rose</li> <li>Schwarz, Friedhelm: Nestle - Macht durch Nahrung</li> <li>Sedaris, David: Schöner wird's nicht</li> <li>Selius, Christine: Das kleine Tee-Abc</li> <li>Shumucho, Sotoshu: Ōryōki - The Practice of the Eating Bowl</li> <li>Stackpole, Michael: Star Wars: X-Wing - Angriff auf Coruscant</li> <li>Stackpole, Michael: Star Wars: X-Wing - Die Mission der Rebellen</li> <li>Stackpole, Michael: Star Wars: X-Wing - Die teuflische Falle</li> <li>Stephenson, Neal: Diamond Age</li> <li>Stephenson, Neal: Snow Crash</li> <li>Stoker, Bram: Dracula</li> <li>Stowasser, Horst: Leben ohne Chef und Staat - Träume und Wirklichkeit der Anarchisten</li> <li>Stross, Charles: Accelerando</li> <li>Suzuki, Daisetz Teitaro: Manual of Zen Buddhism</li> <li>Tolkien, J.R.R.: Der Herr der Ringe</li> <li>Tolkien, J.R.R.: Der Hobbit</li> <li>Trojanow, Illja: Gebrauchsanweisung für Indien</li> <li>Vesper, Bernhard: Die Reise</li> <li>Virilio, Paul: The Information Bomb</li> <li>Watzlawick, Paul: Anleitung zum Unglücklichsein</li> <li>Weizenbaum: Computermacht und Gesellschaft</li> <li>Wichtalls, Clint: Die Pille und ich - Ein Mann im Selbstversuch</li> <li>Williams, Tad: Die Insel des Magiers</li> <li>Williams, Tad: Otherland - Stadt der goldenen Schatten</li> <li>Zweig, Stefan: Die Schachnovelle</li> </ul>","path":["Library"],"tags":[]},{"location":"meditation/","level":1,"title":"Meditation","text":"","path":["Meditation"],"tags":[]},{"location":"meditation/#breathing-in-breathing-out","level":2,"title":"Breathing in, breathing out","text":"<p>I'm a simple person - there is a zendo: I go there and sit. - as noted by myself in ##buddhism on libera.chat <sup>1</sup></p> <p></p> <p>More verbose explanation about my practice:</p> <p>I'm a practicing layperson, not having received a formal ceremony, 受戒 (jukai), but still maintaining the minimal ethical standards of Buddhism, namely the \"Five Precepts\" (AN 8:39)<sup>2</sup>.</p> <p>I follow the Soto Zen sect, but as for following traditions, I point to the \"10 Basic Points\"<sup>3</sup> and was pointed to Kālāma Sutta (AN 3:65)<sup>4</sup>. I practice sitting meditation, because it is simple and minimal: you sit and \"[verify] that the eyes are horizontal and the nose is vertical\"<sup>5</sup> - that's it; not much cluttering your view.</p> <p>What follows after the sitting (e.g.: reading sutras) is your concern as long as it's not obstructing the clear view of the \"Three marks of existence\", त्रिलक्षण (trilakṣaṇ). I practice sitting meditation at home as often as I'm able to. If I'm sitting, I usually sit in the 護魔座 (gomaza) posture in 半跏趺坐 (hanka-fuza).</p> <p>After stumbling upon the practices of 真向法 (makko-ho) in a translated copy of Robert Aitken's \"Taking the Path of Zen\" I usually try to end my day with these four excersises by Wataru Nagai, before I practice aforementioned sitting meditation.</p> <p>Every Friday evening I meditate with a local sangha. I used to meditate every first Tuesday in the month, but due to circumstances I'm not able to attend this session anymore.</p> <ol> <li> <p>see ##Buddhism ↩</p> </li> <li> <p>see \"AN 8:39\" ↩</p> </li> <li> <p>see \"10 Basic Points\" ↩</p> </li> <li> <p>see \"AN 3:65\" ↩</p> </li> <li> <p>see Antaiji ↩</p> </li> </ol>","path":["Meditation"],"tags":[]},{"location":"network/","level":1,"title":"Network","text":"","path":["Network"],"tags":[]},{"location":"network/#meshcore","level":2,"title":"MeshCore","text":"<p>I started getting into this network at the beginning of '26. I'm still evaluating my options (Meshtastic vs. MeshCore, Meshcom, (LoRa-)APRS, Reticulum), but for now I'm exploring and learning about MeshCore. Currently I run a repeater and companion node:</p> Repeater Companion ID DE-BW-MA mk@mesh.home.arpa DE-BW-MA mk@road.home.arpa Role Repeater Companion Hardware Raspberry Pi 3B+ Heltec LoRa 32 V3.2 MeshAdv Pi Hat v1.1 Interline IH-G08-F8688-V2 Location Outside my kitchen (2<sup>nd</sup> floor) EDC <p>The other option for a really EDC is a Seeed T1000-E/RAK WisMesh Tag. If I'm able to buy/build a DIY solar repeater, I'm going to mount it somewhere in the Odenwald or Mannheim. But I have to look into my options...</p>","path":["Network"],"tags":[]},{"location":"network/#as213674","level":3,"title":"AS213674","text":"<p>I've been assigned this ASN by RIPE NCC, and have additionally control over a IPv6 PA space - 2a0e:8f02:2050::/44 - after applying with a LIR, namely freetransit.ch. More information will be available on as213674.net.</p>","path":["Network"],"tags":[]},{"location":"network/#network-infrastructure","level":2,"title":"Network infrastructure","text":"","path":["Network"],"tags":[]},{"location":"network/#vps-amsasdfghasdfghde","level":3,"title":"vps-ams.asdfghasdfgh.de","text":"<p>This webpage you're reading is essentially vps-ams, hosted with OpenBSD.amsterdam in Amsterdam, North Holland, Netherlands. I'm very happy with Mischa's services.</p> <p>vps-ams serves HTTP and DNS (\"ns1.asdfghasdfgh.de\") requests for my domain asdfghasdfgh.de.</p>","path":["Network"],"tags":[]},{"location":"network/#vps-berasdfghasdfghde","level":3,"title":"vps-ber.asdfghasdfgh.de","text":"<p>The second server is hosted with IN-Berlin e.V. in Berlin, Land Berlin,  Germany.</p> <p>vps-ber.asdfghasdfgh.de is running OpenBSD, via KVM. It's running nsd (\"ns2.asdfghasdfgh.de\") and a BGP session, announcing one of the ::/48's prefix.</p> <p>Initally I tried to apply for an {oracle,vultr}.com free tier for the second server, but they declined my prepaid credit card :-( Seems I'm too much of a peasent for corporations.</p> <p>I plan to expand with my ASN to iFog GmbH, Servperso Systems &amp; ParadoxNetworks to further announce ::/48's.</p>","path":["Network"],"tags":[]},{"location":"network/#inasdfghasdfghde","level":3,"title":"in.asdfghasdfgh.de","text":"<p>My network at home - connected via IKEv2/IPSec to both VPS'. If the DSL line fails, the router has a Sierra Wirelss EM7455, umb(4) as a fallback, controlled by ifstated(8). The APN is DTAG with a SIM from fraenk. The router is connected to a Smart-UPS (APC SC420), to gracefully shutdown in a case of power outage. The DSL line is a 100/40 MBit landline from Maingau Energie - from which I also get my electricity.</p>","path":["Network"],"tags":[]},{"location":"network/#tsasdfghasdfghde","level":3,"title":"ts.asdfghasdfgh.de","text":"<p>My Headscale network - every device I own is connected to this mesh network.  Since I don't trust companies fully (and want to mitigate blocking of tailscale.com by corporate firewalls), I've set this up and use it as a overlay network, also having a working, company-independent, \"legacy\" IKEv2/IPSec configuration, especially for OSPF, since Wireguard has problems with IPv6.</p>","path":["Network"],"tags":[]}]}
\ No newline at end of file
blob - /dev/null
blob + f25f34c3255ed442757ff5bbaac7756a411dbcba (mode 644)
--- /dev/null
+++ site/sitemap.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
+      <url>
+        <loc>https://www.asdfghasdfgh.de/</loc>
+      </url>
+      <url>
+        <loc>https://www.asdfghasdfgh.de/bicycle/</loc>
+      </url>
+      <url>
+        <loc>https://www.asdfghasdfgh.de/hardware/</loc>
+      </url>
+      <url>
+        <loc>https://www.asdfghasdfgh.de/junkyard/</loc>
+      </url>
+      <url>
+        <loc>https://www.asdfghasdfgh.de/library/</loc>
+      </url>
+      <url>
+        <loc>https://www.asdfghasdfgh.de/meditation/</loc>
+      </url>
+      <url>
+        <loc>https://www.asdfghasdfgh.de/network/</loc>
+      </url>
+</urlset>
\ No newline at end of file
blob - /dev/null
blob + 41c3fa5a135ed54c68a16cd15e61c4124cc174a8 (mode 644)
--- /dev/null
+++ site/stylesheets/extra.css
@@ -0,0 +1,22 @@
+@font-face {
+  font-display: swap;
+  font-family: 'Noto Sans';
+  font-style: normal;
+  font-weight: 400;
+  src: url('/fonts/NotoSans-VariableFont_wdth,wght.ttf') format('truetype');
+}
+
+@font-face {
+  font-display: swap;
+  font-family: 'Noto Sans Mono';
+  font-style: normal;
+  font-weight: 400;
+  src: url('/fonts/NotoSansMono-VariableFont_wdth,wght.ttf') format('truetype');
+}
+
+/*
+:root { --md-text-font: "Noto Sans"; }
+:root { --md-code-font: "Noto Sans Mono"; }
+*/
+* { text-align: justify; }
+
blob - /dev/null
blob + af395b43307053e3afca5e2bbc1eb660f0370827 (mode 644)
--- /dev/null
+++ zensical.toml
@@ -0,0 +1,337 @@
+# Pictures: exiftool -all= *.HEIC
+# Pictures: convert *.HEIC -define webp:lossless=true -resize 16.3% -colorspace gray -ordered-dither o3x3 picture.png
+
+# ============================================================================
+#
+# The configuration produced by default is meant to highlight the features
+# that Zensical provides and to serve as a starting point for your own
+# projects.
+#
+# ============================================================================
+
+[project]
+
+# The site_name is shown in the page header and the browser window title
+#
+# Read more: https://zensical.org/docs/setup/basics/#site_name
+site_name = "asdfghasdfgh.de"
+
+# The site_description is included in the HTML head and should contain a
+# meaningful description of the site content for use by search engines.
+#
+# Read more: https://zensical.org/docs/setup/basics/#site_description
+site_description = "Personal homepage of Manuel Kuklinski (AS213674)"
+
+# The site_author attribute. This is used in the HTML head element.
+#
+# Read more: https://zensical.org/docs/setup/basics/#site_author
+site_author = "Manuel Kuklinski"
+
+# The site_url is the canonical URL for your site. When building online
+# documentation you should set this.
+# Read more: https://zensical.org/docs/setup/basics/#site_url
+site_url = "https://www.asdfghasdfgh.de/"
+
+# The copyright notice appears in the page footer and can contain an HTML
+# fragment.
+#
+# Read more: https://zensical.org/docs/setup/basics/#copyright
+copyright = """
+WTFPL &copy; 1987 Manuel Kuklinski
+<br>
+<a href="/xyz">No permission granted to any AI/LLM/ML-powered system (or similar).</a>
+"""
+
+# Zensical supports both implicit navigation and explicitly defined navigation.
+# If you decide not to define a navigation here then Zensical will simply
+# derive the navigation structure from the directory structure of your
+# "docs_dir". The definition below demonstrates how a navigation structure
+# can be defined using TOML syntax.
+#
+# Read more: https://zensical.org/docs/setup/navigation/
+# nav = [
+#   { "Get started" = "index.md" },
+#   { "Markdown in 5min" = "markdown.md" },
+# ]
+
+# With the "extra_css" option you can add your own CSS styling to customize
+# your Zensical project according to your needs. You can add any number of
+# CSS files.
+#
+# The path provided should be relative to the "docs_dir".
+#
+# Read more: https://zensical.org/docs/customization/#additional-css
+#
+extra_css = ["stylesheets/extra.css"]
+
+# With the `extra_javascript` option you can add your own JavaScript to your
+# project to customize the behavior according to your needs.
+#
+# The path provided should be relative to the "docs_dir".
+#
+# Read more: https://zensical.org/docs/customization/#additional-javascript
+#extra_javascript = ["javascripts/extra.js"]
+
+# ----------------------------------------------------------------------------
+# Section for configuring theme options
+# ----------------------------------------------------------------------------
+[project.theme]
+
+font = false
+
+# change this to "classic" to use the traditional Material for MkDocs look.
+#variant = "classic"
+
+# Zensical allows you to override specific blocks, partials, or whole
+# templates as well as to define your own templates. To do this, uncomment
+# the custom_dir setting below and set it to a directory in which you
+# keep your template overrides.
+#
+# Read more:
+# - https://zensical.org/docs/customization/#extending-the-theme
+#
+#custom_dir = "overrides"
+
+# With the "favicon" option you can set your own image to use as the icon
+# browsers will use in the browser title bar or tab bar. The path provided
+# must be relative to the "docs_dir".
+#
+# Read more:
+# - https://zensical.org/docs/setup/logo-and-icons/#favicon
+# - https://developer.mozilla.org/en-US/docs/Glossary/Favicon
+#
+favicon = "images/favicon.png"
+
+# Zensical supports more than 60 different languages. This means that the
+# labels and tooltips that Zensical's templates produce are translated.
+# The "language" option allows you to set the language used. This language
+# is also indicated in the HTML head element to help with accessibility
+# and guide search engines and translation tools.
+#
+# The default language is "en" (English). It is possible to create
+# sites with multiple languages and configure a language selector. See
+# the documentation for details.
+#
+# Read more:
+# - https://zensical.org/docs/setup/language/
+#
+language = "en"
+
+# Zensical provides a number of feature toggles that change the behavior
+# of the documentation site.
+features = [
+    # Zensical includes an announcement bar. This feature allows users to
+    # dismiss it then they have read the announcement.
+    # https://zensical.org/docs/setup/header/#announcement-bar
+    "announce.dismiss",
+
+    # If you have a repository configured and turn feature this on, Zensical
+    # will generate an edit button for the page. This works for common
+    # repository hosting services.
+    # https://zensical.org/docs/setup/repository/#code-actions
+    #"content.action.edit",
+
+    # If you have a repository configured and turn feature this on, Zensical
+    # will generate a button that allows the user to view the Markdown
+    # code for the current page.
+    # https://zensical.org/docs/setup/repository/#code-actions
+    #"content.action.view",
+
+    # Code annotations allow you to add an icon with a tooltip to your
+    # code blocks to provide explanations at crucial points.
+    # https://zensical.org/docs/authoring/code-blocks/#code-annotations
+    "content.code.annotate",
+
+    # This feature turns on a button in code blocks that allow users to
+    # copy the content to their clipboard without first selecting it.
+    # https://zensical.org/docs/authoring/code-blocks/#code-copy-button
+    "content.code.copy",
+
+    # Code blocks can include a button to allow for the selection of line
+    # ranges by the user.
+    # https://zensical.org/docs/authoring/code-blocks/#code-selection-button
+    "content.code.select",
+
+    # Zensical can render footnotes as inline tooltips, so the user can read
+    # the footnote without leaving the context of the document.
+    # https://zensical.org/docs/authoring/footnotes/#footnote-tooltips
+    "content.footnote.tooltips",
+
+    # If you have many content tabs that have the same titles (e.g., "Python",
+    # "JavaScript", "Cobol"), this feature causes all of them to switch to
+    # at the same time when the user chooses their language in one.
+    # https://zensical.org/docs/authoring/content-tabs/#linked-content-tabs
+    "content.tabs.link",
+
+    # TODO: not sure I understand this one? Is there a demo of this in the docs?
+    # https://zensical.org/docs/authoring/tooltips/#improved-tooltips
+    "content.tooltips",
+
+    # With this feature enabled, Zensical will automatically hide parts
+    # of the header when the user scrolls past a certain point.
+    # https://zensical.org/docs/setup/header/#automatic-hiding
+    # "header.autohide",
+
+    # Turn on this feature to expand all collapsible sections in the
+    # navigation sidebar by default.
+    # https://zensical.org/docs/setup/navigation/#navigation-expansion
+    # "navigation.expand",
+
+    # This feature turns on navigation elements in the footer that allow the
+    # user to navigate to a next or previous page.
+    # https://zensical.org/docs/setup/footer/#navigation
+    "navigation.footer",
+
+    # When section index pages are enabled, documents can be directly attached
+    # to sections, which is particularly useful for providing overview pages.
+    # https://zensical.org/docs/setup/navigation/#section-index-pages
+    "navigation.indexes",
+
+    # When instant navigation is enabled, clicks on all internal links will be
+    # intercepted and dispatched via XHR without fully reloading the page.
+    # https://zensical.org/docs/setup/navigation/#instant-navigation
+    "navigation.instant",
+
+    # With instant prefetching, your site will start to fetch a page once the
+    # user hovers over a link. This will reduce the perceived loading time
+    # for the user.
+    # https://zensical.org/docs/setup/navigation/#instant-prefetching
+    "navigation.instant.prefetch",
+
+    # In order to provide a better user experience on slow connections when
+    # using instant navigation, a progress indicator can be enabled.
+    # https://zensical.org/docs/setup/navigation/#progress-indicator
+    #"navigation.instant.progress",
+
+    # When navigation paths are activated, a breadcrumb navigation is rendered
+    # above the title of each page
+    # https://zensical.org/docs/setup/navigation/#navigation-path
+    "navigation.path",
+
+    # When pruning is enabled, only the visible navigation items are included
+    # in the rendered HTML, reducing the size of the built site by 33% or more.
+    # https://zensical.org/docs/setup/navigation/#navigation-pruning
+    "navigation.prune",
+
+    # When sections are enabled, top-level sections are rendered as groups in
+    # the sidebar for viewports above 1220px, but remain as-is on mobile.
+    # https://zensical.org/docs/setup/navigation/#navigation-sections
+    "navigation.sections",
+
+    # When tabs are enabled, top-level sections are rendered in a menu layer
+    # below the header for viewports above 1220px, but remain as-is on mobile.
+    # https://zensical.org/docs/setup/navigation/#navigation-tabs
+    #"navigation.tabs",
+
+    # When sticky tabs are enabled, navigation tabs will lock below the header
+    # and always remain visible when scrolling down.
+    # https://zensical.org/docs/setup/navigation/#sticky-navigation-tabs
+    #"navigation.tabs.sticky",
+
+    # A back-to-top button can be shown when the user, after scrolling down,
+    # starts to scroll up again.
+    # https://zensical.org/docs/setup/navigation/#back-to-top-button
+    "navigation.top",
+
+    # When anchor tracking is enabled, the URL in the address bar is
+    # automatically updated with the active anchor as highlighted in the table
+    # of contents.
+    # https://zensical.org/docs/setup/navigation/#anchor-tracking
+    "navigation.tracking",
+
+    # When search highlighting is enabled and a user clicks on a search result,
+    # Zensical will highlight all occurrences after following the link.
+    # https://zensical.org/docs/setup/search/#search-highlighting
+    "search.highlight",
+
+    # When anchor following for the table of contents is enabled, the sidebar
+    # is automatically scrolled so that the active anchor is always visible.
+    # https://zensical.org/docs/setup/navigation/#anchor-following
+    # "toc.follow",
+
+    # When navigation integration for the table of contents is enabled, it is
+    # always rendered as part of the navigation sidebar on the left.
+    # https://zensical.org/docs/setup/navigation/#navigation-integration
+    #"toc.integrate",
+]
+
+# ----------------------------------------------------------------------------
+# In the "palette" subsection you can configure options for the color scheme.
+# You can configure different color # schemes, e.g., to turn on dark mode,
+# that the user can switch between. Each color scheme can be further
+# customized.
+#
+# Read more:
+# - https://zensical.org/docs/setup/colors/
+# ----------------------------------------------------------------------------
+# Palette toggle for automatic mode
+[[project.theme.palette]]
+media = "(prefers-color-scheme)"
+toggle.icon = "lucide/sun-moon"
+toggle.name = "Switch to light mode"
+
+# Palette toggle for light mode
+[[project.theme.palette]]
+media = "(prefers-color-scheme: light)"
+scheme = "default"
+toggle.icon = "lucide/sun"
+toggle.name = "Switch to dark mode"
+
+# Palette toggle for dark mode
+[[project.theme.palette]]
+media = "(prefers-color-scheme: dark)"
+scheme = "slate"
+toggle.icon = "lucide/moon"
+toggle.name = "Switch to system preference"
+
+#[[project.theme.palette]]
+#scheme = "default"
+#toggle.icon = "lucide/sun"
+#toggle.name = "Switch to dark mode"
+
+#[[project.theme.palette]]
+#scheme = "slate"
+#toggle.icon = "lucide/moon"
+#toggle.name = "Switch to light mode"
+
+# ----------------------------------------------------------------------------
+# In the "font" subsection you can configure the fonts used. By default, fonts
+# are loaded from Google Fonts, giving you a wide range of choices from a set
+# of suitably licensed fonts. There are options for a normal text font and for
+# a monospaced font used in code blocks.
+# ----------------------------------------------------------------------------
+#[project.theme.font]
+#text = "Droid Sans"
+#code = "Inconsolata"
+
+# ----------------------------------------------------------------------------
+# You can configure your own logo to be shown in the header using the "logo"
+# option in the "icons" subsection. The logo can be a path to a file in your
+# "docs_dir" or it can be a path to an icon.
+#
+# Likewise, you can customize the logo used for the repository section of the
+# header. Zensical derives the default logo for this from the repository URL.
+# See below...
+#
+# There are other icons you can customize. See the documentation for details.
+#
+# Read more:
+# - https://zensical.org/docs/setup/logo-and-icons
+# - https://zensical.org/docs/authoring/icons-emojis/#search
+# ----------------------------------------------------------------------------
+#[project.theme.icon]
+#logo = "lucide/smile"
+#repo = "lucide/smile"
+
+# ----------------------------------------------------------------------------
+# The "extra" section contains miscellaneous settings.
+# ----------------------------------------------------------------------------
+#[[project.extra.social]]
+#icon = "fontawesome/brands/github"
+#link = "https://github.com/user/repo"
+
+[project.extra]
+generator = false
+
+[project.plugins.offline]
+enabled = false