diff --git a/TODO.md b/TODO.md
new file mode 100644
index 0000000000000000000000000000000000000000..7d14bddea530e5b1f353e340271ff68fdf2c478d
--- /dev/null
+++ b/TODO.md
@@ -0,0 +1,16 @@
+GOOD HABITS
+
+1. If you collect an iterator which you don't index in, you don't need to collect it
+2. avoid temporary hashmaps
+3. rewrite POST request stuff TICK
+4. Client struct
+5. Mime-Display new implemented
+6. Remove unwraps
+7. Reusable allocations
+
+TODO:
+
+1. Uri structs everywhere
+2. Cookie From String fix
+
+API design 3. No decisions for the caller
diff --git a/core/http/Cargo.lock b/core/http/Cargo.lock
index 8490fd521eb6130a70b9e2685fce94d0f1f20e2f..9ac579ce5b0b0c6c677b0c6c07e6ae4d37b1b648 100644
--- a/core/http/Cargo.lock
+++ b/core/http/Cargo.lock
@@ -2,6 +2,723 @@
 # It is not intended for manual editing.
 version = 3
 
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bytes"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+
+[[package]]
+name = "cc"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "core-foundation"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+
+[[package]]
+name = "errno"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "fastrand"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "hermit-abi"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+
 [[package]]
 name = "http"
 version = "0.1.0"
+dependencies = [
+ "phf",
+ "tokio",
+ "tokio-native-tls",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi 0.3.2",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.144"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+[[package]]
+name = "lock_api"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "native-tls"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+dependencies = [
+ "hermit-abi 0.2.6",
+ "libc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+
+[[package]]
+name = "openssl"
+version = "0.10.55"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
+dependencies = [
+ "bitflags",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.15",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.90"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.2.16",
+ "smallvec",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "phf"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c"
+dependencies = [
+ "phf_macros",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92aacdc5f16768709a569e913f7451034034178b05bdc8acda226659a3dccc66"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.56"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "rustix"
+version = "0.37.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+dependencies = [
+ "bitflags",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "security-framework"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8"
+dependencies = [
+ "bitflags",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+
+[[package]]
+name = "smallvec"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+
+[[package]]
+name = "socket2"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "fastrand",
+ "redox_syscall 0.3.5",
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio"
+version = "1.28.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
+dependencies = [
+ "autocfg",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "parking_lot",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.15",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.0",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.0",
+ "windows_aarch64_msvc 0.48.0",
+ "windows_i686_gnu 0.48.0",
+ "windows_i686_msvc 0.48.0",
+ "windows_x86_64_gnu 0.48.0",
+ "windows_x86_64_gnullvm 0.48.0",
+ "windows_x86_64_msvc 0.48.0",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
diff --git a/core/http/Cargo.toml b/core/http/Cargo.toml
index 8b1c9f1c5082ea71b3492a9a296e7c81d0b1ef4a..5d24dbd889e2de9c7013b930d543cecd6cbf3aed 100644
--- a/core/http/Cargo.toml
+++ b/core/http/Cargo.toml
@@ -3,6 +3,13 @@ name = "http"
 version = "0.1.0"
 edition = "2021"
 
+[features]
+secure = []
+
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
+
 [dependencies]
+tokio = { version = "1.28.2", features = ["full"] }
+phf = { version = "0.11", features = ["macros"] }
+tokio-native-tls = "0.3.0"
diff --git a/core/http/src/certificates/certificate.crt b/core/http/src/certificates/certificate.crt
new file mode 100644
index 0000000000000000000000000000000000000000..fa80d206d65b43e8247e5d4872ceb457ccf929bd
--- /dev/null
+++ b/core/http/src/certificates/certificate.crt
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIE+zCCAuOgAwIBAgIUduzhfNiMYBDh6wuv3MjdxK2C6bYwDQYJKoZIhvcNAQEL
+BQAwDTELMAkGA1UEBhMCREUwHhcNMjMwNzE5MTEyNzE3WhcNMjQwNzE4MTEyNzE3
+WjANMQswCQYDVQQGEwJERTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AKKTQ3sMq9yYNST56n9NbNkycJ1QQORl6DtqqFB3iVRrNOzs0o1RAqXtVCWIiyJ2
+cvC/nPz9V+QRM9ZwovYGt7I2IGm3Wu15wWJH71QakPTElsoM+twVHUU+E8yNaDpY
+vibP+6MIz7O1DD/uSqA5779n0/eZuC6Li1LYiaJNLHst9sqo1f5UccG66HdanT6+
+oCbvUyS8tiVnepM0rTku7k/7XVkKVa71VAojoVfNhSpF/tWQJC5PD8Sp9X5E31QK
+BMjMckdS/ev4qruPGBOF10eilt+nJAxUpbJ87UamG/VxI3DDNchZ+ssckgDRcd44
+Td3Z2SsOAcHebCtrgOL4hFZQ+DsBMIDCWuj/BcKmN+RsnE40X7I01qBjbUABU/kp
+cfJxd3YtkBysQ8VuMz00/jLzpUcTvbVjXq9ktCGBFbAUd+qqxNNA0Tqxw8TlE5pY
+is2DzVpZvtuDscZAevMFRmi0aYN/RPGhcggeAUDAE4pHDgUdyZx8DKPZeDrPHRg+
+q+ESDB1UI23D4xkg97dhMFCClUute5YItVv21uGlK8HVa9BpXNgEmqOWEbrAyaFk
+AKIsdibdo7G7DZxbC0NSP4MFrBxsdRl4MrCWKcipoWJ78LDQ5MXWtPEPotBQ+wsB
+zK56WUFkMKwyRXA8/tcS3DZ+GNugavMaSewJ2zgjgkLjAgMBAAGjUzBRMB0GA1Ud
+DgQWBBQpS4RUpA6uFkfMDlfH1AG8e8JyejAfBgNVHSMEGDAWgBQpS4RUpA6uFkfM
+DlfH1AG8e8JyejAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQAW
+9EW7neVsyntMqUWYHfg7hALxd800gF8t3jpBXOkg1j4Dg+XewsJsix8k96+zA0RF
+wXR2iyQGSaGE5wENdArbg0KJsTcm5R754jyPmOdUUxoC8e96+vJAcHRHPCZLb+7q
+meD/hqT22221bM517PUBYHzLvTEtUzRDOZkoG90QKBxyi934TWmr3hXVqp5YqLvu
+V50AOTy0p38q4oFCdocyq2LpLst8IrLZphAV5uAdNzk94hjxfACRSWdQjWefUEJl
+Qb/W5EdOIAZhXK+mMPskLxQcsqET70jWlVneuCocF11JzE5ouzefzUK9X/ofcaHI
+C0Vfien5Haq6xHEw1Lyq47dVcd0ztqVDaolA7TzTnVzTwLT7REyvOOlb1eaq6ZoC
+QpIiyLiJjytK1bof/H0HoJqHFEJtaPhL6no7HjhDMusKTXTOrWjG68Kwa6NgMzAa
+XjUluyXPlIGs/M4qFZYlwWEo9lK5txNFiAfvu5DnrqMK4jvlpDpktCcIBAxBaN+2
+c5X8prRGN+u6w0CgYrwV5+tzHaTho6FWQvA+XnuWlmFR2UJjkYXD5IQNDkbejWL4
+6XWC6X2fEGXfTKR4f6mkXOyg2YtaBLI6cxgxqYVhjMpiRu00ncRKohZjqDXVtOll
+u1HYrp5q7wYq/m9NVuZv8XYviTGSO/1oUR4n1Dng6g==
+-----END CERTIFICATE-----
diff --git a/core/http/src/certificates/identity.pfx b/core/http/src/certificates/identity.pfx
new file mode 100644
index 0000000000000000000000000000000000000000..23327800204e7b757f67586e636994a03c8fc84e
Binary files /dev/null and b/core/http/src/certificates/identity.pfx differ
diff --git a/core/http/src/certificates/private.key b/core/http/src/certificates/private.key
new file mode 100644
index 0000000000000000000000000000000000000000..2bcad348215a092c9291515d576cd36a7fe68d50
--- /dev/null
+++ b/core/http/src/certificates/private.key
@@ -0,0 +1,54 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIIJnDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIMWz28Wi/jXECAggA
+MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECE+qsELeDfrPBIIJSHsoycMsEN+R
+sTC7Si5KPfZWkYCaQTAmTPYnV6StHLmj8XNzCIUBxZAvhuWYUnCKHjT9lkJM8jEj
+t22Ga3zSj/wdrGCPsJJuqc32grHMUXkZafAFXAQ8z3oVi3D4Kzed/ReUJJsDNnmP
+dVi6vD1tDT/9mKI6Ootj370xDjXxPL6AEMvkjC7C/u0fwqSNUGiDn1X3h1G5z1+e
+KCgRmmZnSydWbdpb6zBI6WKfvwqJafOpD2WJLuM/cmVPJir4zX2rruisyA2GHsMM
+oAKIxii+mGETIr+Z+fyT2j7pZUKONdu6o34h2yRr//LIWV0fhQGPgtkVvx/ka6TH
+8iZjKoCg5C0bNpPxILkflFcueAru9eo0IBUPku5mmaowxoTnv7JSSrdaFy98W/e/
+fHrtHh6Xg3sW/0Ny5AQpQX62WlyumbSLllKLMDtSUXryFBUh1Ftv5zQ5ixQURyP7
+TMhDh7Jg3SSgz8BDg7LTh+KcW+F3UGtnqSFZxu99ExbHMfQZL5OJgINaJzHrOM29
+YASzjHMf/nXHXA24nSCOHVhE3cXaLW3UZFhk4KUyFworF5uv+bP1bB10Fgvbl4gH
+/KsEdPSf2AqFlEOhIZ6fACuykqch68VF2KWRl81Jgof95xaXnSJmoh3msobqds5C
+sgV/PXsuHaSpOkFLThl6akv0P+HqVesXSEyfXxzYkoW/YGUp7mLQ32rsHuKwor6S
+EDnftpirO+HIx+oUXlpeObAgoxN4L4JDorOMiw2+kCljhkS/G9+0vOg9wk/T9BXD
+yYRKMao7Y8xA6nfcd6LMGUk1DcCR3NU+o+O+7uO9onaw0hGszQM9PFy5qeaNvLh3
+J4bOU94eK978kqRFHXmnSZIss5zCoDgmuhejxxcDQwo1tTLLMI+my4q2ccBv4dvQ
+Zrf9B7A+q0ou0T81WjA8mrGuYg42GvalFrjuC54uuAmCfI64hF4eu3x8Cccnjbe2
+V6RdbFSQfENuF547Rvee1VTQ9bCTSkENIuDHLWcEhcBeGSrunJtHJB3yHoaBjApw
+k/B9XPmpHVyvq/7DCFkqu+tmEvLhXRQOLBdi7BpXVhf1KF2/qFR4jbvc/JD52uPK
+xpVpxFyXtd52VpOWyoWsImlWNAkA6H9LDnDlBM3Y8j0KCYz14y5SXX0FmOIXn92F
+VTw+4BPC/nCa3LMPV/8eZvokZuxaBIInunNUXXRXOtjaTgW7UTBgcfvpZB1xXd8j
+iokwSswD5i6FI2ggIU8thG2UR9dMxkAvDbKTLgh73l83DizFOlNA38AR8TdC/v8x
+lxUaZAiA5pR2YLnU0gh0kbJQfOjFwN2X0fwHJNmCpigKrFHqqvkdprUC5FpYGQ1u
+N+SIicJ8ry4gPqnDsm85mq7oNMrLp2p6RcC8YkmpM5DSbFFKvJ9KXaYRPlrMmUTb
+rC8yWz6+mvpN5/YILwmxxpc8dw6plFI+mqBDTuY5ccxDYQkpFLFpZ+v30Qbo2ZN1
+dqZpsE+Ngxc0vGZhEJPNU+c+/KGG+V9cQUFJO9RvxfvY8cJkFO51zaKUdqVPHhcx
+oUtB0q+oNGxFW7O59k0bGsaMT9ULgoZeLsZFp7kytbX06ueMUfsLJXFifWfbFHvD
+iWivm4qOQM4H6h9nBPIvRRpOCKNtJVW9KCYVT9tm8w5e0WJyGrUQK44gM+HfWS6p
+lB7+6f1XdrPh7s0SgVXTUT8M5urD76P/pYT1ra+zovLIAHVe7cm8k0UfCFt2jRM2
+RSv8yRcQnUfu+Jlu0QAe6SjNT6Wosst1+Cqato25FADlhnUvyyBjklUlS8Dh1owL
+Mlb+Jj34SEdEbHhtGZ0C1m2PUubXGHaBKofLKFgSEFDpQYMj0+AI2PK5ZjKBmdYK
+XnBE+DvebW2f55aZeL2e9kPRn7TqDwc8B8CNfNACcfR/91JTFYyLx15nYZWAZzv1
+pWfB5vJppKGqdLxbQz8CDbH7sgR60zjOIBVPnxs5qI1iM/MlPVirUEUg2xalF8/B
+VhduuuTM2nDCB7V6jAMKIJsCTLaZLqwQOQpW4aLmKUGFvajF2P0FCTeDDedmOBwV
+Rbzf8fhKdG0aAW16WOMFAT2ItJZg5aNvKJe15C4JjVxpcgTlCzTb0Q74a2znVKTt
+e3xpe5fyUu+4bM/t1HKgJZNCHeEYotcvZbrHWLrmlLz0v+zvt8/ENSckuMIObqgo
+CLidWOzhlTL462qPtj2kqTtzINnKtXNlGHoSNTdZxo4ASJBD8rQiTBTMZBbVBclW
+xL7rKvL8C2+tYCkHwW2iJwl32WTiIwyRsfdyxG0ot+tozCOLvf+pPPy/7hG57RA0
+Yfw5j9jbbT/vxcUBrjN91wSzsEbYWlodZMuS8sXbmtWCzG+wXdF8X6nmc2g/J/1b
+gA5h6oI9zFdwkGrH48oNtmXLlP3MXgRyugV5saAT7mQn+EEXmbKO0qysRsAd4Cqs
+13YWDFYoTanm3+aDz2gXbHIzLBIInT1iEBp5K6IAS56gMglyQN7vqbEd1+88A/C5
+i7WzV6XeghRIpW7H1L5Da2/4liESrHmsKEsu3M60ST0Hub3PdjHd4sAjuFjYW8J3
+yQkheTkbYbe/hc+0TAdVN7nhYFGbEyrTpo2RvcRi9QUJ3M8IjfaWpPNuuj3oysJ7
+78I41KEix1eETDGdmNzA57SR9OctxGCUrtaqPsFP7GK0oXQGnpJSV74E09MM2a8k
+CUZXu4SbsmRxmaXUf1MbGXqS7ShBrDBci/cIxOWOoUl+UiOIht8yGNYwyeArOCWJ
+vb+LNyNK7CxHaeyYVdZy58szWzH1H3Np/fa0qEHQrTseHAbwjC+beI5hlXxx/AgR
+cl8Y/Em8LdmODC5RL9JuMUghxzmgTR8Y9YakkwoRV46Hjp41Ayi2zBz6qKbwlR3p
+o39WoAT2GguxIQvCCYK7G7x3AS8vo4Q6zi9C20oWAxTN1ovn1gOknR54Y0ZqZ5EG
+DO5admR943ieM6p4byLqkfCy8A/k4k4RWcjVovMs4dAkl+U/KCKAZDnuvosCL4tm
+bhop6nLzxBmxaevSbWjWZ/bCBMLitfaic4y5TiyWscoZP0uxfS25wy19ATPaBi9j
+EerRGtfjcCkvghGFylCLZb8MQrVTAEugjNtrViqC4c7UUC+/j9IijmuUEE4IIVsN
++C+hItN7Lj2S0FM6dEa+1g==
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/core/http/src/handlers/handler.rs b/core/http/src/handlers/handler.rs
new file mode 100644
index 0000000000000000000000000000000000000000..38315a1cea3bf365d89699c3315bb5686edcc2f7
--- /dev/null
+++ b/core/http/src/handlers/handler.rs
@@ -0,0 +1,209 @@
+use std::{io, path::PathBuf};
+
+use tokio::io::{AsyncBufReadExt, AsyncReadExt, BufReader, AsyncWrite, AsyncRead};
+
+use crate::{handling::{
+    file_handlers::NamedFile,
+    methods::Method,
+    request::Request,
+    response::{Outcome, Response, ResponseBody, Status},
+    routes::{Body, Data},
+}, utils::urlencoded::UrlEncodeData};
+use crate::setup::MountPoint;
+
+/// The Maximal size of the Body of an HTTP-Message in bytes
+static MAX_HTTP_MESSAGE_SIZE: u16 = 4196;
+
+/// Function which handles a TCP Connection according to http-Standards by taking in a
+/// [tokio::net::TcpStream] and a [`Vec<MountPoint<'_>>`]. 
+///
+/// Firstly validates the headers and body, Aborts with error messages if it finds faults.
+///
+/// Secondly matches the request with a route in the mountpoint Vector and executes its handler
+/// function. If it fails, checks for another, if nothing is found writes back a
+/// [Status::NotFound]. If the handler function could respond it uses the [Response] of the handler
+///
+/// # Panics
+/// No Panics
+pub async fn handle_connection<T: AsyncRead + AsyncWrite + std::marker::Unpin>(mut stream: T, mountpoints: Vec<MountPoint<'_>>) {
+    let mut buf_reader = BufReader::new(&mut stream);
+    let mut http_request: Vec<String> = Vec::with_capacity(10);
+    loop {
+        let mut buffer = String::new();
+        if buf_reader.read_line(&mut buffer).await.is_err() {
+            eprintln!("\x1b[31mAborting due to invalid UTF-8 in request header\x1b[0m");
+            return;
+        }
+        if buffer == "\r\n" {
+            break;
+        }
+        http_request.push(buffer);
+    }
+
+    let request_status_line = if let Some(status_line) = http_request.get(0).cloned() {
+        status_line
+    } else {
+        eprintln!("\x1b[31mAborting due to missing headers\x1b[0m");
+        return;
+    };
+
+    let mut request = Request {
+        uri: if let Some(uri) = &request_status_line.split(' ').nth(1) {
+            if let Ok(uri) = UrlEncodeData::from_encoded(uri) {
+                uri
+            } else {
+                eprintln!("\x1b[31mAborting due to invalid uri\x1b[0m");
+                return;
+            }
+        } else {
+            eprintln!("\x1b[31mAborting due to invalid status line\x1b[0m");
+            return;
+        },
+        cookies: Request::extract_cookies_from_vec(&mut http_request),
+        headers: http_request,
+        mime_type: None,
+        method: if let Some(method) = request_status_line.split(' ').next() {
+            if let Ok(ok) = method.parse() {
+                ok
+            } else {
+                eprintln!("\x1b[31mAborting due to invalid request method\x1b[0m");
+                return;
+            }
+        } else {
+            eprintln!("\x1b[31mAborting due to invalid status line\x1b[0m");
+            return;
+        },
+    };
+
+    let mut data = Data {
+        is_complete: false,
+        buffer: vec![],
+    };
+    if request.can_have_body() {
+        let length = if let Some(len) = request
+            .headers
+            .iter()
+            .filter(|header| header.starts_with("Content-Length: "))
+            .map(|header| {
+                let header = header.strip_prefix("Content-Length: ").unwrap();
+                header.trim().parse::<usize>()
+            })
+            .next()
+        {
+            if let Ok(size) = len {
+                size
+            } else {
+                eprintln!(
+                    "\x1b[31m`{}` must have a `Content-Length` header\x1b[0m",
+                    request.method
+                );
+                if let Err(e) = len_not_defined(stream, Status::LengthRequired).await {
+                    error_occured_when_writing(e)
+                };
+                return;
+            }
+        } else {
+            if request.mandatory_body() {
+                eprintln!(
+                    "\x1b[31m`{}` must have a `Content-Length` header\x1b[0m",
+                    request.method
+                );
+                if let Err(e) = len_not_defined(stream, Status::LengthRequired).await {
+                    error_occured_when_writing(e)
+                };
+                return;
+            }
+            0
+        };
+        if length != 0 {
+            request.mime_from_headers();
+            let mut buffer = vec![0u8; MAX_HTTP_MESSAGE_SIZE.into()];
+            let read = buf_reader.read(&mut buffer).await.unwrap();
+            if read != length {
+                if let Err(e) = len_not_defined(stream, Status::LengthRequired).await {
+                    error_occured_when_writing(e)
+                };
+                return;
+            }
+            data.is_complete = true;
+            data.buffer = buffer;
+        }
+    }
+
+    let mut handled_response: Option<Outcome<Response, Status, Data>> = None;
+    for mountpoint in mountpoints {
+        if request.uri.raw_string().is_none() {
+            return;
+        }
+        if !request.uri.raw_string().unwrap().starts_with(mountpoint.mountpoint) {
+            continue;
+        }
+        let mounted_request_uri = request.uri.raw_string().unwrap().strip_prefix(mountpoint.mountpoint).unwrap();
+        for route in mountpoint.routes {
+            if (route.method != request.method)
+                && ((route.method != Method::Get) && (request.method == Method::Head))
+            {
+                continue;
+            }
+            if !route.compare_uri(mounted_request_uri) {
+                continue;
+            }
+            handled_response = Some((route.handler)(
+                Request {
+                    uri: UrlEncodeData::from_raw(mounted_request_uri),
+                    ..request.clone()
+                },
+                data.clone(),
+            ));
+
+            if let Some(Outcome::Forward(_)) = handled_response {
+                continue;
+            }
+            break;
+        }
+    }
+
+    let response = match handled_response {
+        Some(val) => match val {
+            Outcome::Success(success) => success,
+            Outcome::Failure(error) => failure_handler(error),
+            Outcome::Forward(_) => failure_handler(Status::NotFound),
+        },
+        None => failure_handler(Status::NotFound),
+    };
+
+    if let Err(e) = response.write(stream, Some(request)).await {
+        eprintln!("\x1b[31mError {e} occured when trying to write answer to TCP-Stream for Client, aborting\x1b[0m");
+    }
+}
+
+/// Dumb function that renders a 404 page from any status given. but still writes that status code.
+fn failure_handler(status: Status) -> Response {
+    let page_404 = NamedFile::open(PathBuf::from("404.html")).unwrap();
+    Response {
+        cookies: None,
+        headers: vec![],
+        status: Some(status),
+        body: Box::new(Body::new(page_404.get_data(), page_404.get_mime())),
+    }
+}
+
+/// Handler for len_not_defined errors. writes back directly
+async fn len_not_defined<T: AsyncRead + AsyncWrite + std::marker::Unpin>(stream: T, status: Status) -> io::Result<()> {
+    let page_411 = NamedFile::open(PathBuf::from("411.html")).unwrap();
+    Response {
+        cookies: None,
+        headers: vec![],
+        status: Some(status),
+        body: Box::new(Body::new(page_411.get_data(), page_411.get_mime())),
+    }
+    .write(stream, None)
+    .await?;
+    Ok(())
+}
+
+/// takes in an io error and writes it back in the server console to the user if writing failed
+fn error_occured_when_writing(e: io::Error) {
+    eprintln!("\x1b[31mError {e} occured when trying to write answer to TCP-Stream for Client, aborting\x1b[0m");
+}
+
diff --git a/core/http/src/handlers/mod.rs b/core/http/src/handlers/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..062ae9d9be8041d0d83a1134f1bd0b3bafbb4b41
--- /dev/null
+++ b/core/http/src/handlers/mod.rs
@@ -0,0 +1 @@
+pub mod handler;
diff --git a/core/http/src/handling/file_handlers.rs b/core/http/src/handling/file_handlers.rs
new file mode 100644
index 0000000000000000000000000000000000000000..2d4d39bbcb0e9085e0ec33f1a487c1e3ebdd5d72
--- /dev/null
+++ b/core/http/src/handling/file_handlers.rs
@@ -0,0 +1,77 @@
+use std::{fs, path::PathBuf};
+
+use crate::{
+    handling::response::{ResponseBody, Status},
+    utils::mime::Mime,
+};
+
+#[derive(Debug)]
+/// Struct to handle files on the server side.
+/// Validates paths ignores actions like `..`
+pub struct NamedFile {
+    /// The length of the file in bytes, format: [usize]
+    pub content_len: usize,
+    /// The Mime Type of the file as a [Mime]
+    pub content_type: Mime,
+    /// The content of the file as a [`Vec<u8>`]
+    pub content: Vec<u8>,
+}
+
+impl ResponseBody for NamedFile {
+    fn get_data(&self) -> Vec<u8> {
+        self.content.clone()
+    }
+
+    fn get_mime(&self) -> Mime {
+        self.content_type
+    }
+
+    fn get_len(&self) -> usize {
+        self.content_len
+    }
+}
+
+impl NamedFile {
+    /// Reads in a file as a [NamedFile]. Ignores seqences like `..`
+    ///
+    /// # Panics
+    ///
+    /// Panics if a [PathBuf] can't be convertet to a [str]
+    ///
+    /// # Errors
+    ///
+    /// Can give a [Status::NotFound] if it can't find the file
+    ///
+    /// This function will return an error if .
+    pub fn open(path: PathBuf) -> Result<NamedFile, Status> {
+        let path = proove_path(path);
+        let data = fs::read(&path);
+        let data = match data {
+            Ok(dat) => dat,
+            Err(_) => {
+                return Err(Status::NotFound);
+            }
+        };
+        Ok(NamedFile {
+            content_len: data.len(),
+            content_type: Mime::from_filename(path.to_str().unwrap()),
+            content: data,
+        })
+    }
+}
+
+/// Validates a path so that seqences like `//` and `..` are omitted
+///
+/// # Panics
+///
+/// Panics if it can't convert a [PathBuf] to a [str]
+fn proove_path(path: PathBuf) -> PathBuf {
+    PathBuf::from(
+        path.to_str()
+            .unwrap()
+            .split('/')
+            .filter(|&val| val != ".." && !val.is_empty())
+            .collect::<Vec<&str>>()
+            .join("/"),
+    )
+}
diff --git a/core/http/src/handling/methods.rs b/core/http/src/handling/methods.rs
new file mode 100644
index 0000000000000000000000000000000000000000..a13e498af505b385f6fc122f9af042f44a531d66
--- /dev/null
+++ b/core/http/src/handling/methods.rs
@@ -0,0 +1,50 @@
+use std::{fmt::Display, str::FromStr};
+
+#[derive(PartialEq, Eq, Clone, Debug, Copy, PartialOrd, Ord)]
+/// All HTTP Methods
+pub enum Method {
+    Get,
+    Head,
+    Post,
+    Put,
+    Delete,
+    Connect,
+    Options,
+    Trace,
+    Patch,
+}
+
+impl Display for Method {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        match self {
+            Self::Get => write!(f, "GET"),
+            Self::Head => write!(f, "HEAD"),
+            Self::Post => write!(f, "POST"),
+            Self::Put => write!(f, "PUT"),
+            Self::Delete => write!(f, "DELETE"),
+            Self::Connect => write!(f, "CONNECT"),
+            Self::Options => write!(f, "OPTIONS"),
+            Self::Trace => write!(f, "TRACE"),
+            Self::Patch => write!(f, "PATCH"),
+        }
+    }
+}
+
+impl FromStr for Method {
+    type Err = &'static str;
+
+    fn from_str(s: &str) -> Result<Self, Self::Err> {
+        match s {
+            "GET" => Ok(Self::Get),
+            "HEAD" => Ok(Self::Head),
+            "POST" => Ok(Self::Post),
+            "PUT" => Ok(Self::Put),
+            "DELETE" => Ok(Self::Delete),
+            "CONNECT" => Ok(Self::Connect),
+            "OPTIONS" => Ok(Self::Options),
+            "TRACE" => Ok(Self::Trace),
+            "PATCH" => Ok(Self::Patch),
+            _ => Err("Not a Method"),
+        }
+    }
+}
diff --git a/core/http/src/handling/mod.rs b/core/http/src/handling/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..20cf31e7b362da8f020dd48a8df4047c13c1d093
--- /dev/null
+++ b/core/http/src/handling/mod.rs
@@ -0,0 +1,5 @@
+pub mod file_handlers;
+pub mod methods;
+pub mod request;
+pub mod response;
+pub mod routes;
diff --git a/core/http/src/handling/request/cookies.rs b/core/http/src/handling/request/cookies.rs
new file mode 100644
index 0000000000000000000000000000000000000000..7f75fc1d81f79fab5dd439c7a7429f8d356c7a90
--- /dev/null
+++ b/core/http/src/handling/request/cookies.rs
@@ -0,0 +1,95 @@
+use std::collections::HashMap;
+
+use super::Request;
+
+impl Request {
+    /// Extracts the cookies from a Vector and gives back an optional HashMap of Strings
+    ///
+    /// Returns none if there are no cookies or there is a problem with the cookies, for example
+    /// missing a value.
+    ///
+    /// Removes the `Cookie: ` Header from the Vector of headers
+    ///
+    /// # Examples
+    /// ```
+    /// use http::handling::request::Request;
+    ///
+    ///
+    /// let mut request_vec = vec![
+    ///     "GET / HTTP/1.1".to_string(),
+    ///     "Accept: sdf".to_string(),
+    ///     "Cookie: io=23; f=as".to_string(),
+    ///     "Format: gzip".to_string(),
+    /// ];
+    /// let right_finished_vec = vec![
+    ///     "GET / HTTP/1.1".to_string(),
+    ///     "Accept: sdf".to_string(),
+    ///     "Format: gzip".to_string(),
+    /// ];
+    ///
+    /// let mut wrong = vec!["GET / HTTP/1.1".to_string()];
+    ///
+    /// assert_eq!(None, Request::extract_cookies_from_vec(&mut wrong));
+    /// let cookies = Request::extract_cookies_from_vec(&mut request_vec);
+    /// assert_eq!(right_finished_vec, request_vec);
+    /// assert_eq!("23", cookies.clone().unwrap().get("io").unwrap());
+    /// assert_eq!("as", cookies.unwrap().get("f").unwrap());
+    /// ```
+    ///
+    /// # Panics
+    /// No Panics
+    pub fn extract_cookies_from_vec(headers: &mut Vec<String>) -> Option<HashMap<String, String>> {
+        let mut cookies: HashMap<String, String> = HashMap::new();
+        let mut cookies_string = if let Some(index) = headers
+            .iter()
+            .position(|header| header.starts_with("Cookie: "))
+        {
+            headers.remove(index)
+        } else {
+            return None;
+        };
+        cookies_string = cookies_string
+            .strip_prefix("Cookie: ")
+            .unwrap()
+            .trim()
+            .trim_matches('"')
+            .to_string();
+        for cookie in cookies_string.split(';') {
+            let Some((name, cookie)) = cookie.split_once('=') else {
+                return None;
+            };
+            cookies
+                .entry(name.trim().to_string())
+                .or_insert(cookie.trim().to_string());
+        }
+        Some(cookies)
+    }
+}
+
+#[cfg(test)]
+mod test {
+    use crate::handling::request::Request;
+
+    #[test]
+    fn test_cookies() {
+        let mut request_vec = vec![
+            "GET / HTTP/1.1".to_string(),
+            "Accept: sdf".to_string(),
+            "Cookie: io=23; f=as".to_string(),
+            "Format: gzip".to_string(),
+        ];
+        let right_finished_vec = vec![
+            "GET / HTTP/1.1".to_string(),
+            "Accept: sdf".to_string(),
+            "Format: gzip".to_string(),
+        ];
+
+        let mut wrong = vec!["GET / HTTP/1.1".to_string()];
+
+        assert_eq!(None, Request::extract_cookies_from_vec(&mut wrong));
+        let cookies = Request::extract_cookies_from_vec(&mut request_vec);
+        assert_eq!(right_finished_vec, request_vec);
+        assert_eq!("23", cookies.clone().unwrap().get("io").unwrap());
+        assert_eq!("as", cookies.unwrap().get("f").unwrap());
+    }
+}
diff --git a/core/http/src/handling/request/datatypes.rs b/core/http/src/handling/request/datatypes.rs
new file mode 100644
index 0000000000000000000000000000000000000000..44f1cf3e1fe0083f84da94b337f167a14fece4bf
--- /dev/null
+++ b/core/http/src/handling/request/datatypes.rs
@@ -0,0 +1,70 @@
+use std::{collections::HashMap, error::Error, fmt::Display};
+
+use crate::{
+    handling::methods::Method,
+    utils::{mime::Mime, urlencoded::UrlEncodeData},
+};
+
+type HeaderMap = Vec<String>;
+
+/// A struct to handle Requests
+///
+#[derive(Clone)]
+pub struct Request {
+    /// The requested Uri
+    pub uri: UrlEncodeData,
+    /// All headers of the request that haven't been parsed
+    pub headers: HeaderMap,
+    /// The methods Request represented with the [Method]
+    pub method: Method,
+    /// An optional HashMap representation of all Cookies of the request
+    pub cookies: Option<HashMap<String, String>>,
+    /// If the has a body it represents the [Mime]-type of the body
+    pub mime_type: Option<(Mime, String)>,
+    // pub connection: ConnectionMeta,
+}
+
+// struct ConnectionMeta {
+//     remote: Option<SocketAddr>,
+//     // certificates
+// }
+
+#[derive(Clone, Debug, Copy, PartialEq, Eq, PartialOrd, Ord)]
+/// Media Types in which a Route can be requested to ansewr, optional for routes
+pub enum MediaType {
+    /// Json Data
+    Json,
+    /// Plain Text
+    Plain,
+    /// HTML Text
+    Html,
+}
+
+#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
+pub enum ParseErrors {
+    NoData,
+    BadData,
+}
+
+#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
+/// Errors that Occur when a Form can't be parsed
+pub struct ParseFormError {
+    pub error: ParseErrors,
+}
+
+impl Display for ParseFormError {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        write!(f, "{}", self.error)
+    }
+}
+
+impl Display for ParseErrors {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        match self {
+            ParseErrors::NoData => write!(f, "No Data at key"),
+            ParseErrors::BadData => write!(f, "Bad Data at key"),
+        }
+    }
+}
+
+impl Error for ParseFormError {}
diff --git a/core/http/src/handling/request/form_utils.rs b/core/http/src/handling/request/form_utils.rs
new file mode 100644
index 0000000000000000000000000000000000000000..cc8999d7cc5eef4d0fa667c9c93d0dff0442572c
--- /dev/null
+++ b/core/http/src/handling/request/form_utils.rs
@@ -0,0 +1,354 @@
+use std::collections::HashMap;
+
+use crate::{
+    handling::routes::Data,
+    utils::{mime::Mime, urlencoded::DeCodable},
+};
+
+use super::{datatypes::ParseErrors, ParseFormError, Request};
+static TWO_NEWLINES: u8 = 3;
+
+impl Request {
+    /// # Gets data from a get_form as a HashMap
+    ///
+    /// # Errors
+    /// Gives back a [ParseFormError], top level, if there is lacking data
+    ///
+    /// If everything is fine on the top level it gives back a HashMap of keys and Results, that
+    /// indicate wether the key exists with the [ParseFormError] with an error of
+    /// [ParseErrors::NoData] or wether the key is corrupt with the [ParseErrors::BadData]-Variant
+    ///
+    /// # Examples
+    /// ```
+    /// use http::handling::{request::{Request, ParseFormError, ParseErrors}, methods::Method};
+    /// use http::utils::urlencoded::UrlEncodeData;
+    ///
+    ///
+    /// let request = Request {
+    ///     uri: UrlEncodeData::from_encoded("/form?name=Name&age=Age").unwrap(),
+    ///     headers: vec![],
+    ///     method: Method::Get,
+    ///     cookies: None,
+    ///     mime_type: None,
+    /// };
+    /// let right = request.get_get_form_keys(&["name", "age"]).unwrap();
+    /// assert_eq!(&"Name", right.get("name").unwrap().as_ref().unwrap());
+    /// assert_eq!(&"Age", right.get("age").unwrap().as_ref().unwrap());
+    ///
+    /// let wrong_request = Request {
+    ///     uri: UrlEncodeData::from_encoded("/form").unwrap(),
+    ///     ..request.clone()
+    /// };
+    /// assert_eq!(
+    ///     Err(ParseFormError {
+    ///         error: ParseErrors::NoData
+    ///     }),
+    ///     wrong_request.get_get_form_keys(&["name", "age"])
+    /// );
+    ///
+    /// let bad_data = Request {
+    ///     uri: UrlEncodeData::from_encoded("/form?age=").unwrap(),
+    ///     ..request.clone()
+    /// };
+    /// let wrong = bad_data.get_get_form_keys(&["name", "age"]).unwrap();
+    /// assert_eq!(
+    ///     &Err(ParseFormError {
+    ///         error: ParseErrors::NoData
+    ///     }),
+    ///     wrong.get("name").unwrap()
+    /// );
+    /// assert_eq!(&Ok(""), wrong.get("age").unwrap());
+    /// ```
+    ///
+    /// # Panics
+    /// No Panics
+    pub fn get_get_form_keys<'a>(
+        &'a self,
+        keys: &'a [&str],
+    ) -> Result<HashMap<&str, Result<&str, ParseFormError>>, ParseFormError> {
+        let Some(uri) = self.uri.raw_string() else {
+            return Err(ParseFormError { error: ParseErrors::BadData  });
+        };
+        let data = if let Some(val) = uri.split_once('?') {
+            val
+        } else {
+            return Err(ParseFormError {
+                error: ParseErrors::NoData,
+            });
+        };
+        let data = data
+            .1
+            .split('&')
+            .map(|kvp| kvp.split_once('='))
+            .collect::<Vec<Option<(&str, &str)>>>();
+
+        let mut values: HashMap<&str, &str> = HashMap::new();
+        for kvp in data {
+            let kvp = if let Some(kvp) = kvp {
+                kvp
+            } else {
+                continue;
+            };
+            values.insert(kvp.0, kvp.1);
+        }
+        let mut response = HashMap::new();
+        for key in keys {
+            let entry = if let Some(val) = values.get(key) {
+                Ok(*val)
+            } else {
+                Err(ParseFormError {
+                    error: ParseErrors::NoData,
+                })
+            };
+            response.insert(*key, entry);
+        }
+        Ok(response)
+    }
+    pub fn get_post_data<'a>(
+        &'a self,
+        keys: &[&'a str],
+        data: &Data,
+    ) -> Result<HashMap<String, Result<Vec<u8>, ParseFormError>>, ParseFormError> {
+        let data = data.buffer.as_slice();
+        let mut keymap: HashMap<String, Result<Vec<u8>, ParseFormError>> =
+            HashMap::with_capacity(keys.len());
+
+        for key in keys {
+            keymap.entry(key.to_string()).or_insert(Err(ParseFormError {
+                error: ParseErrors::NoData,
+            }));
+        }
+        let Some(ref mime_type) = self.mime_type else {
+            return Err(ParseFormError { error: ParseErrors::BadData });
+        };
+
+        match mime_type.0 {
+            Mime::ApplicationXWwwFormUrlencoded => {
+                let Ok(data) = String::from_utf8(data.to_vec()) else {
+                    return Err(ParseFormError { error: ParseErrors::BadData });
+                };
+                for kvp in data.split('&') {
+                    let Some(kvp) = kvp.split_once('=') else {
+                        return Err(ParseFormError { error: ParseErrors::BadData });
+                    };
+                    let Ok(key) = kvp.0.decode() else {
+                        return Err(ParseFormError { error: ParseErrors::BadData });
+                    };
+                    let Ok(key) = String::from_utf8(key) else {
+                        return Err(ParseFormError { error: ParseErrors::BadData });
+                    };
+                    let Ok(value) = kvp.1.trim_end_matches('\0').decode() else {
+                        return Err(ParseFormError { error: ParseErrors::BadData });
+                    };
+                    let Some(thing) = keymap.get_mut(&key) else {
+                        continue;
+                    };
+                    *thing = Ok(value);
+                }
+            }
+            Mime::MultipartFormData => {
+                let Some(mut boundary) = mime_type.1.split(';').find(|element| element.trim().starts_with("boundary=")) else {
+                    return Err(ParseFormError { error: ParseErrors::BadData });
+                };
+                boundary = boundary
+                    .trim()
+                    .strip_prefix("boundary=")
+                    .unwrap()
+                    .trim_matches('"');
+                let mut temp_bound = "--".to_string();
+                temp_bound.push_str(boundary);
+                let end_boundary: Vec<u8> = format!("{temp_bound}--\r").into();
+                temp_bound.push('\r');
+                let boundary = temp_bound.as_bytes();
+                Self::get_multipart_data(data, boundary, &end_boundary, &mut keymap);
+            }
+            _ => {
+                return Err(ParseFormError {
+                    error: ParseErrors::BadData,
+                })
+            }
+        };
+        Ok(keymap)
+    }
+    fn get_multipart_data(
+        data: &[u8],
+        boundary: &[u8],
+        end_boundary: &[u8],
+        map: &mut HashMap<String, Result<Vec<u8>, ParseFormError>>,
+    ) {
+        let mut current_part: Vec<&[u8]> = vec![];
+        let mut current_key: Option<String> = None;
+        let mut ignore_line = 0;
+        for part in data.split(|byte| byte == &b'\n') {
+            if part == [b'\r'] {
+                if current_key.is_some() {
+                    if ignore_line >= TWO_NEWLINES {
+                        current_part.push(&[b'\n']);
+                        continue;
+                    }
+                    ignore_line += 1;
+                }
+                continue;
+            }
+            if part == end_boundary {
+                if let Some(key) = &current_key {
+                    let mut part = current_part.join(&b'\n');
+                    if part.ends_with(&[b'\r']) {
+                        part.pop();
+                    }
+                    map.insert(key.to_string(), Ok(part));
+                }
+                break;
+            }
+            if part == boundary {
+                if let Some(key) = &current_key {
+                    let mut part = current_part.join(&b'\n');
+                    if part.ends_with(&[b'\r']) {
+                        part.pop();
+                    }
+                    map.insert(key.to_string(), Ok(part));
+                }
+                current_part = vec![];
+                current_key = None;
+                ignore_line = 0;
+                continue;
+            }
+            if part.starts_with(b"Content-Disposition: form-data; name=") {
+                let headers = part
+                    .split(|byte| byte == &b';')
+                    .filter(|header| !header.is_empty())
+                    .collect::<Vec<_>>();
+                if headers.len() < 2 {
+                    continue;
+                }
+                let name = headers[1].split(|byte| byte == &b'=').collect::<Vec<_>>();
+                if name.len() != 2 {
+                    continue;
+                }
+                let mkey = String::from_utf8_lossy(name[1])
+                    .as_ref()
+                    .trim_end()
+                    .trim_matches('"')
+                    .to_owned();
+
+                if map.contains_key::<str>(&mkey) {
+                    current_key = Some(mkey.to_owned());
+                }
+                continue;
+            } else if current_key.is_some() {
+                current_part.push(part);
+            }
+        }
+    }
+}
+#[cfg(test)]
+mod test {
+    use crate::{
+        handling::{
+            methods::Method,
+            request::{datatypes::ParseErrors, ParseFormError},
+            routes::Data,
+        },
+        utils::{
+            mime::Mime::{ApplicationXWwwFormUrlencoded, MultipartFormData},
+            urlencoded::UrlEncodeData,
+        },
+    };
+
+    use super::Request;
+    #[test]
+    fn try_get_test() {
+        let request = Request {
+            uri: UrlEncodeData::from_encoded("/form?name=Name&age=Age").unwrap(),
+            headers: vec![],
+            method: Method::Get,
+            cookies: None,
+            mime_type: None,
+        };
+        let right = request.get_get_form_keys(&["name", "age"]).unwrap();
+        assert_eq!(&"Name", right.get("name").unwrap().as_ref().unwrap());
+        assert_eq!(&"Age", right.get("age").unwrap().as_ref().unwrap());
+
+        let wrong_request = Request {
+            uri: UrlEncodeData::from_encoded("/form").unwrap(),
+            ..request.clone()
+        };
+        assert_eq!(
+            Err(ParseFormError {
+                error: ParseErrors::NoData
+            }),
+            wrong_request.get_get_form_keys(&["name", "age"])
+        );
+
+        let bad_data = Request {
+            uri: UrlEncodeData::from_encoded("/form?age=").unwrap(),
+            ..request.clone()
+        };
+        let wrong = bad_data.get_get_form_keys(&["name", "age"]).unwrap();
+        assert_eq!(
+            &Err(ParseFormError {
+                error: ParseErrors::NoData
+            }),
+            wrong.get("name").unwrap()
+        );
+        assert_eq!(&Ok(""), wrong.get("age").unwrap());
+    }
+
+    #[test]
+    fn try_post_text() {
+        let req = Request {
+            uri: UrlEncodeData::from_encoded("").unwrap(),
+            headers: vec!["Content-Type: application/x-www-form-urlencoded".to_string()],
+            method: Method::Post,
+            cookies: None,
+            mime_type: Some((ApplicationXWwwFormUrlencoded, "".into())),
+        };
+        let data = Data {
+            buffer: b"message=23&message1=24".to_vec(),
+            is_complete: true,
+        };
+        let map = req.get_post_data(&["message", "message1"], &data).unwrap();
+        assert_eq!(
+            &b"23".to_vec(),
+            map.get("message").unwrap().as_ref().unwrap()
+        );
+        assert_eq!(
+            &b"24".to_vec(),
+            map.get("message1").unwrap().as_ref().unwrap()
+        );
+        let req = Request {
+            uri: UrlEncodeData::from_encoded("").unwrap(),
+            headers: vec!["Content-Type: multipart/form-data; boundary=\"boundary\"".to_string()],
+            method: Method::Post,
+            cookies: None,
+            mime_type: Some((
+                MultipartFormData,
+                "charset=UTF-8; boundary=\"boundary\"".into(),
+            )),
+        };
+        let data = Data {
+            buffer: b"--boundary\r
+Content-Disposition: form-data; name=\"field1\"\r
+\r
+value1\r
+--boundary\r
+Content-Disposition: form-data; name=\"field2\"; filename=\"example.txt\"\r
+\r
+va\nlue2\r
+--boundary--\r
+"
+            .to_vec(),
+            is_complete: true,
+        };
+        let map = req.get_post_data(&["field1", "field2"], &data).unwrap();
+
+        assert_eq!(
+            &b"value1".to_vec(),
+            map.get("field1").unwrap().as_ref().unwrap()
+        );
+        assert_eq!(
+            &b"va\nlue2".to_vec(),
+            map.get("field2").unwrap().as_ref().unwrap()
+        );
+    }
+}
diff --git a/core/http/src/handling/request/mod.rs b/core/http/src/handling/request/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..f04c57a22bd63d4b9e2e832578740bc9992206de
--- /dev/null
+++ b/core/http/src/handling/request/mod.rs
@@ -0,0 +1,6 @@
+mod cookies;
+mod datatypes;
+mod form_utils;
+mod request_impl;
+mod request_mime;
+pub use datatypes::{MediaType, ParseErrors, ParseFormError, Request};
diff --git a/core/http/src/handling/request/request_impl.rs b/core/http/src/handling/request/request_impl.rs
new file mode 100644
index 0000000000000000000000000000000000000000..01d6e4498bf964b9f244db91a318882d228f8328
--- /dev/null
+++ b/core/http/src/handling/request/request_impl.rs
@@ -0,0 +1,17 @@
+use crate::handling::methods::Method;
+
+use super::Request;
+
+impl Request {
+    /// Checks if the request can have a body
+    pub fn can_have_body(&self) -> bool {
+        matches!(
+            self.method,
+            Method::Post | Method::Put | Method::Patch | Method::Delete
+        )
+    }
+    /// Checks if a body is mandatory for the Request
+    pub fn mandatory_body(&self) -> bool {
+        matches!(self.method, Method::Post | Method::Put | Method::Patch)
+    }
+}
diff --git a/core/http/src/handling/request/request_mime.rs b/core/http/src/handling/request/request_mime.rs
new file mode 100644
index 0000000000000000000000000000000000000000..75ad1e547677443479764d6b94013aacd57156ec
--- /dev/null
+++ b/core/http/src/handling/request/request_mime.rs
@@ -0,0 +1,108 @@
+use super::datatypes::Request;
+
+impl Request {
+    /// Sets the `mime_type` of this [`Request`] from the headers.
+    ///
+    /// The mime_type can remain none if there isn't a `Content-Type: ` header
+    ///
+    /// # Example
+    /// ```
+    /// use http::{
+    ///     handling::{methods::Method, request::Request},
+    ///     utils::{mime::Mime, urlencoded::UrlEncodeData},
+    /// };
+    ///
+    /// let mut request = Request {
+    ///     uri: UrlEncodeData::from_encoded("thing").unwrap(),
+    ///     headers: vec![
+    ///         "GET / 23".to_string(),
+    ///         "SDF:LKJSD:F".to_string(),
+    ///         "Content-Type: text/plain; charset=UTF-8".to_string(),
+    ///         "SDF".to_string(),
+    ///     ],
+    ///     method: Method::Get,
+    ///     cookies: None,
+    ///     mime_type: None,
+    /// };
+    /// let mut wrong = Request {
+    ///     uri: UrlEncodeData::from_encoded("thing").unwrap(),
+    ///     headers: vec![
+    ///         "GET / 23".to_string(),
+    ///         "SDF:LKJSD:F".to_string(),
+    ///         "SDF".to_string(),
+    ///     ],
+    ///     method: Method::Get,
+    ///     cookies: None,
+    ///     mime_type: None,
+    /// };
+    /// request.mime_from_headers();
+    /// wrong.mime_from_headers();
+    /// assert_eq!(None, wrong.mime_type);
+    /// assert_eq!((Mime::TextPlain, " charset=UTF-8".to_string()), request.mime_type.unwrap());
+    /// ```
+    /// # Panics
+    /// No Panics
+    pub fn mime_from_headers(&mut self) {
+        let Some(content_type_header) = self.headers
+            .iter()
+            .find(|header| header.starts_with("Content-Type: ")) else {
+            return;
+        };
+        let content_type_string: &str = content_type_header
+            .strip_prefix("Content-Type: ")
+            .unwrap()
+            .trim();
+
+        self.mime_type = if let Some(content_type) = content_type_string.split_once(';') {
+            let Ok(mime) = content_type.0.trim().parse() else {
+                return;
+            };
+            Some((mime, content_type.1.to_owned()))
+        } else {
+            let Ok(mime) = content_type_string.parse() else {
+                    return;
+                };
+            Some((mime, "".to_owned()))
+        };
+    }
+}
+
+#[cfg(test)]
+mod test {
+    use crate::{
+        handling::{methods::Method, request::Request},
+        utils::{mime::Mime, urlencoded::UrlEncodeData},
+    };
+
+    #[test]
+    pub fn test_mime_parse_from_header_vec() {
+        let mut request = Request {
+            uri: UrlEncodeData::from_raw("thing"),
+            headers: vec![
+                "GET / 23".to_string(),
+                "SDF:LKJSD:F".to_string(),
+                "Content-Type: text/plain".to_string(),
+                "SDF".to_string(),
+            ],
+            method: Method::Get,
+            cookies: None,
+            mime_type: None,
+        };
+
+        let mut wrong = Request {
+            uri: UrlEncodeData::from_raw("thing"),
+            headers: vec![
+                "GET / 23".to_string(),
+                "SDF:LKJSD:F".to_string(),
+                "SDF".to_string(),
+            ],
+            method: Method::Get,
+            cookies: None,
+            mime_type: None,
+        };
+        request.mime_from_headers();
+        wrong.mime_from_headers();
+        assert_eq!(None, wrong.mime_type);
+        assert_eq!((Mime::TextPlain, "".to_owned()), request.mime_type.unwrap());
+    }
+}
diff --git a/core/http/src/handling/response/build_and_write.rs b/core/http/src/handling/response/build_and_write.rs
new file mode 100644
index 0000000000000000000000000000000000000000..a8cdb09f24704d24a7a026a0c9ccf60b20257a04
--- /dev/null
+++ b/core/http/src/handling/response/build_and_write.rs
@@ -0,0 +1,40 @@
+use std::io::Result;
+
+use tokio::io::{AsyncWriteExt, AsyncRead, AsyncWrite};
+
+use crate::handling::{methods::Method, request::Request, response::Status};
+
+use super::Response;
+
+impl Response {
+    /// Builds a [`Vec<u8>`] valid http response from a [Response] and consumes it. Optionally
+    /// takes in a request for things like [Method::Head]
+    pub fn build(self, request: Option<Request>) -> Vec<u8> {
+        let compiled_headers = format!(
+            "HTTP/1.1 {}\r\nContent-Length: {}\r\nContent-Type: {}\r\n",
+            self.status.unwrap_or(Status::Ok),
+            self.body.get_len(),
+            self.body.get_mime()
+        ) + &self.headers.join("\r\n")
+            + "\r\n";
+        let is_head = if let Some(req) = request {
+            req.method == Method::Head
+        } else {
+            false
+        };
+        let compiled_body = if is_head {
+            vec![]
+        } else {
+            self.body.get_data()
+        };
+        let mut compiled_out: Vec<u8> = compiled_headers.into();
+        compiled_out.extend_from_slice(&compiled_body);
+        compiled_out
+    }
+    /// Builds and writes The http-Response, consumes the  [tokio::net::TcpStream] [Request] and [Response]
+    pub async fn write<T: AsyncRead + AsyncWrite + std::marker::Unpin>(self, mut stream: T, request: Option<Request>) -> Result<()> {
+        let resp = self.build(request);
+        stream.write_all(&resp).await?;
+        Ok(())
+    }
+}
diff --git a/core/http/src/handling/response/cookie_management/cookie.rs b/core/http/src/handling/response/cookie_management/cookie.rs
new file mode 100644
index 0000000000000000000000000000000000000000..6175266c4539d5465d00c13596074dcab72ad4d0
--- /dev/null
+++ b/core/http/src/handling/response/cookie_management/cookie.rs
@@ -0,0 +1,273 @@
+use std::{collections::HashMap, str::FromStr, time::Duration};
+
+use crate::{
+    handling::response::{cookie_management::error_types::CookieError, CookieBuilder},
+    utils::{url_utils::Uri, urlencoded::DeCodable},
+};
+
+macro_rules! update_map {
+    ($map:expr, $key:expr) => {
+        *$map.get_mut($key).unwrap() = true;
+    };
+}
+
+use super::error_types::{ParseCookieError, ParseSameSiteError, SameSiteError};
+
+/// Structure representing a Cookie
+/// # Creating a Cookie:
+/// ```
+/// use http::handling::response::Cookie;
+/// use http::handling::response::CookieBuilder;
+///
+/// let cookie = CookieBuilder::build("name", "value").finish();
+/// ```
+#[derive(PartialEq, Eq, PartialOrd, Ord, Debug)]
+pub struct Cookie {
+    /// Storage for the cookie string. Only used if this structure was derived
+    /// from a string that was subsequently parsed.
+    pub(crate) cookie_string: Option<String>,
+    pub(crate) name: String,
+    pub(crate) value: String,
+    /// Whether this cookie was marked Secure.
+    pub(crate) secure: bool,
+    /// Whether this cookie was marked HttpOnly.
+    pub(crate) http_only: bool,
+    pub(crate) partitioned: bool,
+    // expires: Option<Tm>,
+    pub(crate) max_age: Option<Duration>,
+    /// The draft `SameSite` attribute.
+    pub(crate) same_site: Option<SameSite>,
+    /// The cookie's domain, if any.
+    pub(crate) domain: Option<String>,
+    /// The cookie's path domain, if any.
+    pub(crate) path: Option<Uri>,
+    pub(crate) expires: Option<String>,
+}
+
+#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
+/// SameSite Paremeters
+pub enum SameSite {
+    /// Requires Secure
+    None,
+    Lax,
+    Strict,
+}
+
+impl std::fmt::Display for SameSite {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        match self {
+            Self::None => write!(f, "SameSite=None"),
+            Self::Lax => write!(f, "SameSite=Lax"),
+            Self::Strict => write!(f, "SameSite=Strict"),
+        }
+    }
+}
+
+impl FromStr for SameSite {
+    type Err = ParseSameSiteError;
+
+    fn from_str(s: &str) -> Result<Self, Self::Err> {
+        match s {
+            "None" => Ok(SameSite::None),
+            "Lax" => Ok(SameSite::Lax),
+            "Strict" => Ok(SameSite::Strict),
+            _ => Err(Self::Err {
+                inner: SameSiteError::NotAValidVariant,
+            }),
+        }
+    }
+}
+
+impl std::fmt::Display for Cookie {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        let mut appendix = String::from("");
+        if self.secure {
+            appendix += "; Secure";
+        }
+        if self.http_only {
+            appendix += "; HttpOnly";
+        }
+        if self.partitioned {
+            appendix += "; Partitioned";
+        }
+        if let Some(max_age) = &self.max_age {
+            appendix += &format!("; Max-Age={}", max_age.as_secs());
+        }
+        if let Some(domain) = &self.domain {
+            appendix += &format!("; Domain={}", domain);
+        }
+        if let Some(path) = &self.path {
+            appendix += &format!("; Path={}", path);
+        }
+        if let Some(same_site) = &self.same_site {
+            appendix += &format!("; {}", same_site);
+            if !self.secure && *same_site == SameSite::None {
+                appendix += "; Secure";
+            }
+        }
+        if let Some(expires) = &self.expires {
+            appendix += &format!("; Expires={}", expires)
+        }
+        write!(f, "Set-Cookie: {}={}{}", self.name, self.value, appendix)
+    }
+}
+
+impl FromStr for Cookie {
+    type Err = ParseCookieError;
+    fn from_str(s: &str) -> Result<Self, Self::Err> {
+        let mut map = HashMap::with_capacity(8);
+        map.insert("Partitioned", false);
+        map.insert("HttpOnly", false);
+        map.insert("Secure", false);
+        map.insert("SameSite", false);
+        map.insert("Max-Age", false);
+        map.insert("Domain", false);
+        map.insert("Path", false);
+        map.insert("Expires", false);
+        let mut final_result = CookieBuilder::build("", "");
+        let mut first = true;
+        let stripped = s.strip_prefix("Set-Cookie: ").ok_or(Self::Err {
+            inner: CookieError::NoSetCookieHeader,
+        })?;
+        for part in stripped.split(';') {
+            let trimmed_part = part.trim();
+            if first {
+                let Some(name_val) = part.split_once('=') else {
+                    return Err(Self::Err { inner: CookieError::MissingEqual  });
+                };
+                unsafe {
+                    final_result = CookieBuilder::build(
+                        &String::from_utf8_unchecked(if let Ok(name) = name_val.0.decode() {
+                            name
+                        } else {
+                            name_val.0.into()
+                        }),
+                        &String::from_utf8_unchecked(if let Ok(value) = name_val.1.decode() {
+                            value
+                        } else {
+                            name_val.1.into()
+                        }),
+                    );
+                }
+                first = false;
+                continue;
+            }
+            if !map.get("Max-Age").unwrap() && trimmed_part.starts_with("Max-Age=") {
+                final_result = final_result.max_age(Duration::from_secs(
+                    trimmed_part
+                        .strip_prefix("Max-Age=")
+                        .unwrap()
+                        .parse()
+                        .map_err(|_| Self::Err {
+                            inner: CookieError::InvalidMaxAge,
+                        })?,
+                ));
+                update_map!(map, "Max-Age");
+                continue;
+            }
+            if !map.get("Expires").unwrap() && trimmed_part.starts_with("Expires=") {
+                final_result = final_result.expires(trimmed_part.strip_prefix("Expires=").unwrap());
+                update_map!(map, "Expires");
+                continue;
+            }
+            if !map.get("HttpOnly").unwrap() && trimmed_part == "HttpOnly" {
+                final_result = final_result.http_only(true);
+                update_map!(map, "HttpOnly");
+                continue;
+            }
+            if !map.get("SameSite").unwrap() && trimmed_part.starts_with("SameSite=") {
+                final_result = final_result.same_site(
+                    trimmed_part
+                        .strip_prefix("SameSite=")
+                        .unwrap()
+                        .parse::<SameSite>()
+                        .map_err(|err| Self::Err {
+                            inner: CookieError::InvilidSameSite(err.inner),
+                        })?,
+                );
+                update_map!(map, "SameSite");
+                continue;
+            }
+            if !map.get("Path").unwrap() && trimmed_part.starts_with("Path=") {
+                final_result = final_result.path(
+                    trimmed_part
+                        .strip_prefix("Path=")
+                        .unwrap()
+                        .parse::<Uri>()
+                        .map_err(|err| Self::Err {
+                            inner: CookieError::PathError(err.error),
+                        })?,
+                );
+                update_map!(map, "Path");
+                continue;
+            }
+            if !map.get("Domain").unwrap() && trimmed_part.starts_with("Domain=") {
+                final_result = final_result.domain(trimmed_part.strip_prefix("Domain=").unwrap());
+                update_map!(map, "Domain");
+                continue;
+            }
+            if !map.get("Secure").unwrap() && trimmed_part == "Secure" {
+                final_result = final_result.secure(true);
+                update_map!(map, "Secure");
+                continue;
+            }
+
+            if !map.get("Partitioned").unwrap() && trimmed_part == "Partitioned" {
+                final_result = final_result.partitioned(true);
+                update_map!(map, "Partitioned");
+                continue;
+            }
+        }
+        Ok(final_result.finish())
+    }
+}
+
+#[cfg(test)]
+mod test {
+    use std::time::Duration;
+
+    use crate::handling::response::{Cookie, CookieBuilder};
+
+    use super::SameSite;
+
+    #[test]
+    fn test_cookie_to_string() {
+        let test_cookie1 = CookieBuilder::build("a", "cookie").finish().to_string();
+        let test_cookie1_res = "Set-Cookie: a=cookie";
+        let test_cookie2 = CookieBuilder::build("a", "secure_cookie")
+            .secure(true)
+            .finish()
+            .to_string();
+        let test_cookie2_res = "Set-Cookie: a=secure_cookie; Secure";
+        let test_cookie3 = CookieBuilder::build("ab", "ss")
+            .max_age(Duration::from_secs(24))
+            .domain("codecraft.com")
+            .path("/".parse().unwrap())
+            .same_site(SameSite::None)
+            .http_only(true)
+            .partitioned(true)
+            .expires("Monday")
+            .finish();
+        let test_cookie3_res = "Set-Cookie: ab=ss; Secure; HttpOnly; Partitioned; \
+            Max-Age=24; Domain=codecraft.com; Path=/; SameSite=None; Expires=Monday";
+
+        assert_eq!(test_cookie1_res, test_cookie1);
+        assert_eq!(test_cookie2_res, test_cookie2);
+        assert_eq!(test_cookie3_res, test_cookie3.to_string());
+    }
+    #[test]
+    fn cookie_from_string() {
+        let test_cookie3_res = "Set-Cookie: ab=ss; HttpOnly; Partitioned; \
+            Max-Age=24; Domain=codecraft.com; Path=/; SameSite=None; Secure; Expires=Monday";
+        let test_cookie3 = CookieBuilder::build("ab", "ss")
+            .max_age(Duration::from_secs(24))
+            .domain("codecraft.com")
+            .path("/".parse().unwrap())
+            .same_site(SameSite::None)
+            .http_only(true)
+            .partitioned(true)
+            .expires("Monday")
+            .finish();
+        assert_eq!(test_cookie3, test_cookie3_res.parse::<Cookie>().unwrap());
+    }
+}
diff --git a/core/http/src/handling/response/cookie_management/cookie_builder.rs b/core/http/src/handling/response/cookie_management/cookie_builder.rs
new file mode 100644
index 0000000000000000000000000000000000000000..269925787f17fcbef64e9760f0795e1f935464e9
--- /dev/null
+++ b/core/http/src/handling/response/cookie_management/cookie_builder.rs
@@ -0,0 +1,87 @@
+use std::time::Duration;
+
+use crate::utils::{url_utils::Uri, urlencoded::EnCodable};
+
+use super::{Cookie, SameSite};
+
+/// Builder wrapper for a Cookie
+///
+/// # Example
+/// ```
+/// use http::handling::response::Cookie;
+/// use http::handling::response::CookieBuilder;
+///
+/// let cookie = CookieBuilder::build("name", "value").path("/".parse().unwrap()).finish();
+/// ```
+#[derive(Debug)]
+pub struct CookieBuilder {
+    /// Cookie under the hood
+    inner: Cookie,
+}
+
+impl CookieBuilder {
+    /// Builds a basic CookieBuilder from a name and a value
+    pub fn build(name: &str, value: &str) -> Self {
+        CookieBuilder {
+            inner: Cookie {
+                cookie_string: None,
+                name: name.encode(),
+                value: value.encode(),
+                max_age: None,
+                domain: None,
+                path: None,
+                secure: false,
+                http_only: false,
+                same_site: None,
+                expires: None,
+                partitioned: false,
+            },
+        }
+    }
+    pub fn finish(self) -> Cookie {
+        self.inner
+    }
+    pub fn max_age(mut self, duration: Duration) -> Self {
+        self.inner.max_age = Some(duration);
+        self
+    }
+    pub fn domain(mut self, domain: &str) -> Self {
+        self.inner.domain = Some(domain.encode());
+        self
+    }
+    pub fn path(mut self, path: Uri) -> Self {
+        self.inner.path = Some(path);
+        self
+    }
+    pub fn secure(mut self, secure: bool) -> Self {
+        self.inner.secure = secure;
+        self
+    }
+    pub fn http_only(mut self, http_only: bool) -> Self {
+        self.inner.http_only = http_only;
+        self
+    }
+    pub fn same_site(mut self, same_site: SameSite) -> Self {
+        if same_site == SameSite::None {
+            self.inner.secure = true;
+        }
+        self.inner.same_site = Some(same_site);
+        self
+    }
+    pub fn expires(mut self, expire: &str) -> Self {
+        self.inner.expires = Some(expire.encode());
+        self
+    }
+    pub fn partitioned(mut self, partitioned: bool) -> Self {
+        self.inner.partitioned = partitioned;
+        self
+    }
+    pub fn name(mut self, name: &str) -> Self {
+        self.inner.name = name.encode();
+        self
+    }
+    pub fn value(mut self, value: &str) -> Self {
+        self.inner.value = value.encode();
+        self
+    }
+}
diff --git a/core/http/src/handling/response/cookie_management/error_types.rs b/core/http/src/handling/response/cookie_management/error_types.rs
new file mode 100644
index 0000000000000000000000000000000000000000..12277c05d92924bdb73f558b1df5ff7a498b8e34
--- /dev/null
+++ b/core/http/src/handling/response/cookie_management/error_types.rs
@@ -0,0 +1,43 @@
+use std::error::Error;
+
+use crate::utils::url_utils::UriError;
+
+#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
+pub enum SameSiteError {
+    NotAValidVariant,
+}
+
+#[derive(Debug)]
+pub struct ParseSameSiteError {
+    pub inner: SameSiteError,
+}
+
+impl Error for ParseSameSiteError {}
+
+impl std::fmt::Display for ParseSameSiteError {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        write!(f, "{:?}", self)
+    }
+}
+impl Error for ParseCookieError {}
+
+#[derive(Debug)]
+pub struct ParseCookieError {
+    pub inner: CookieError,
+}
+
+#[derive(Debug, PartialEq, PartialOrd, Eq, Ord)]
+pub enum CookieError {
+    MissingEqual,
+    InvalidAttribute,
+    InvalidMaxAge,
+    NoSetCookieHeader,
+    InvilidSameSite(SameSiteError),
+    PathError(UriError),
+}
+
+impl std::fmt::Display for ParseCookieError {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        write!(f, "ParseCookieError {{ error: {:?} }}", self.inner)
+    }
+}
diff --git a/core/http/src/handling/response/cookie_management/mod.rs b/core/http/src/handling/response/cookie_management/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..5681658fbc6aa339cde0466a7f96bc56af7a22a2
--- /dev/null
+++ b/core/http/src/handling/response/cookie_management/mod.rs
@@ -0,0 +1,11 @@
+mod cookie;
+mod cookie_builder;
+mod error_types;
+
+pub use cookie::Cookie;
+pub use cookie::SameSite;
+pub use cookie_builder::CookieBuilder;
+pub use error_types::CookieError;
+pub use error_types::ParseCookieError;
+pub use error_types::ParseSameSiteError;
+pub use error_types::SameSiteError;
diff --git a/core/http/src/handling/response/datatypes.rs b/core/http/src/handling/response/datatypes.rs
new file mode 100644
index 0000000000000000000000000000000000000000..b8657ee781f15c8e97d5b544431a8a93f9dec0a2
--- /dev/null
+++ b/core/http/src/handling/response/datatypes.rs
@@ -0,0 +1,40 @@
+use super::{Cookie, ResponseBody, Status};
+
+type HeaderMap = Vec<String>;
+
+#[derive(Debug)]
+/// Enum for the result of a Handling Function, where...
+///
+/// [Outcome::Success] represents that the route
+/// was successful and the Answer is contained in \[S\].
+/// [Outcome::Failure] represents that it was unsuccessful and nobody else is going to be
+/// successful. \[E\] represnts the Error Code.
+/// [Outcome::Forward] represents that some requirements weren't met for a route to be working with
+/// the request so the next one that matches should cover that \[F\] represents the maybe processed
+/// data of the request.
+///
+/// # Example
+/// ```
+/// use http::handling::{response::{Outcome, Response, Status}, routes::Data, request::Request};
+/// fn handler(request: Request, _data: Data) -> Outcome<Response, Status, Data> {
+///     todo!()
+/// }
+/// ```
+pub enum Outcome<S, E, F> {
+    Success(S),
+    Failure(E),
+    Forward(F),
+}
+
+/// Response is a wrapper for http responses.
+#[derive(Debug)]
+pub struct Response {
+    /// the [`Vec<String>`] of headers unrelated to `Content-Type` and `Content-Length`
+    pub headers: HeaderMap,
+    /// Optional Cookie in the response
+    pub cookies: Option<Cookie>,
+    /// Status code of the response
+    pub status: Option<Status>,
+    /// Response body and `Content-Type` and `Content-Length` headers.
+    pub body: Box<dyn ResponseBody>,
+}
diff --git a/core/http/src/handling/response/mod.rs b/core/http/src/handling/response/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..9233b38f814a27a9825c6e6b48a7c70807ef333b
--- /dev/null
+++ b/core/http/src/handling/response/mod.rs
@@ -0,0 +1,13 @@
+mod build_and_write;
+mod cookie_management;
+mod datatypes;
+mod status;
+mod traits;
+
+pub use cookie_management::Cookie;
+pub use cookie_management::CookieBuilder;
+pub use cookie_management::SameSite;
+pub use datatypes::Outcome;
+pub use datatypes::Response;
+pub use status::Status;
+pub use traits::ResponseBody;
diff --git a/core/http/src/handling/response/status.rs b/core/http/src/handling/response/status.rs
new file mode 100644
index 0000000000000000000000000000000000000000..dfc56a555b706b1d2aa8559fc54f73341dbeeccd
--- /dev/null
+++ b/core/http/src/handling/response/status.rs
@@ -0,0 +1,160 @@
+use std::fmt::Display;
+
+#[derive(Debug)]
+/// Enum With every http status for complete documentation [here](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status)
+pub enum Status {
+    Continue,
+    SwitchingProtocols,
+    /// WebDAV
+    Processing,
+    /// Experimental
+    EarlyHints,
+    Ok,
+    Created,
+    Accepted,
+    NonAuthorativeIfnormation,
+    NoContent,
+    ResetContent,
+    PartialContent,
+    /// WebDAV
+    MultiStatus,
+    /// WebDAV
+    AlreadyReported,
+    HttpDataEncodingImUsed,
+    MultipleChoices,
+    MovedPermanently,
+    Found,
+    SeeOther,
+    NotModfiied,
+    /// Deprecated
+    UseProxy,
+    /// Deprecated
+    Unused,
+    TemporaryRedirect,
+    PermanentRedirect,
+    BadRequest,
+    Unauthorized,
+    /// Experimental
+    PaymentRequired,
+    Forbidden,
+    NotFound,
+    MethodNotAllowed,
+    NotAcceptable,
+    ProxyAuthenticationRequired,
+    RequestTimeout,
+    Conflict,
+    Gone,
+    LengthRequired,
+    PreconditionFailed,
+    PayloadTooLarge,
+    UriTooLong,
+    UnsupportedMediaType,
+    RangeNotSatisfiable,
+    ExpectationFailed,
+    ImATeapot,
+    MisdirectedRequest,
+    /// WebDAV
+    UnprocessableContent,
+    /// WebDAV
+    Locked,
+    /// WebDAV
+    FailedDependency,
+    /// Experimental
+    TooEarly,
+    UpgradeRequred,
+    PreconditionRequired,
+    TooManyRequests,
+    RequestHeaderFieldsTooLarge,
+    UnavailableForLegalReasons,
+    InternalServerError,
+    NotImplemented,
+    BadGetaway,
+    ServiceUnavailable,
+    GetawayTimeout,
+    HttpVersionNotSupported,
+    VariantAlsoNegotiates,
+    /// WebDAV
+    InsufficientStorage,
+    /// WebDAV
+    LoopDetected,
+    NotExtended,
+    NetworkAuthenticationRequired,
+}
+
+impl Display for Status {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        match self {
+            Status::Continue => write!(f, "100 Continue"),
+            Status::SwitchingProtocols => write!(f, "101 Switching Protocols"),
+            Status::Processing => write!(f, "102 Processing"),
+            Status::EarlyHints => write!(f, "103 Early Hints"),
+            Status::Ok => write!(f, "200 OK"),
+            Status::Created => write!(f, "201 Created"),
+            Status::Accepted => write!(f, "202 Accepted"),
+            Status::NonAuthorativeIfnormation => write!(f, "203 Non-Authorative Information"),
+            Status::NoContent => write!(f, "204 No Content"),
+            Status::ResetContent => write!(f, "205 Reset Content"),
+            Status::PartialContent => write!(f, "206 Partial Content"),
+            Status::MultiStatus => write!(f, "207 Mutli-Status"),
+            Status::AlreadyReported => write!(f, "208 Already Reported"),
+            Status::HttpDataEncodingImUsed => write!(f, "226 IM Used"),
+            Status::MultipleChoices => write!(f, "300 Multiple Choices"),
+            Status::MovedPermanently => write!(f, "301 Moved Permanently"),
+            Status::Found => write!(f, "302 Found"),
+            Status::SeeOther => write!(f, "303 See Other"),
+            Status::NotModfiied => write!(f, "304 Not Modified"),
+            Status::TemporaryRedirect => write!(f, "307 Temporary Redirect"),
+            Status::PermanentRedirect => write!(f, "308 Permanent Redirect"),
+            Status::UseProxy => write!(f, "305 Use Proxy"),
+            Status::Unused => write!(f, "306 unused"),
+            Status::BadRequest => write!(f, "400 Bad Request"),
+            Status::Unauthorized => write!(f, "401 Unauthorized"),
+            Status::PaymentRequired => write!(f, "402 Payment Required"),
+            Status::Forbidden => write!(f, "403 Forbidden"),
+            Status::NotFound => write!(f, "404 Not Found"),
+            Status::MethodNotAllowed => write!(f, "405 Method Not Allowed"),
+            Status::NotAcceptable => write!(f, "406 Not Acceptable"),
+            Status::ProxyAuthenticationRequired => {
+                write!(f, "407 Proxy Athentication Required")
+            }
+            Status::RequestTimeout => write!(f, "408 Request Timout"),
+            Status::Conflict => write!(f, "409 Conflict"),
+            Status::Gone => write!(f, "410 Gone"),
+            Status::LengthRequired => write!(f, "411 Length Required"),
+            Status::PreconditionFailed => write!(f, "412 Precondition Failed"),
+            Status::PayloadTooLarge => write!(f, "413 Payload Too Large"),
+            Status::UriTooLong => write!(f, "414 URI Too Long"),
+            Status::UnsupportedMediaType => write!(f, "415 Unsupported Media Type"),
+            Status::RangeNotSatisfiable => write!(f, "416 Range Not Satisfiable"),
+            Status::ExpectationFailed => write!(f, "417 Expectation Failed"),
+            Status::ImATeapot => write!(f, "418 I'm a Teapot"),
+            Status::MisdirectedRequest => write!(f, "421 Misdirected Request"),
+            Status::UnprocessableContent => write!(f, "422 Unprocessable Content"),
+            Status::Locked => write!(f, "423 Locked"),
+            Status::FailedDependency => write!(f, "424 Failed Dependency"),
+            Status::TooEarly => write!(f, "425 Too Early"),
+            Status::UpgradeRequred => write!(f, "426 Upgrade Required"),
+            Status::PreconditionRequired => write!(f, "428 Precondition Required"),
+            Status::TooManyRequests => write!(f, "429 Too Many Requests"),
+            Status::RequestHeaderFieldsTooLarge => {
+                write!(f, "431 Request Header Fields Too Large")
+            }
+            Status::UnavailableForLegalReasons => {
+                write!(f, "451 Unavailable For Legal Reasons")
+            }
+            Status::InternalServerError => write!(f, "500 Internal Server Error"),
+            Status::NotImplemented => write!(f, "501 Not Implmenented"),
+            Status::BadGetaway => write!(f, "502 Bad Getaway"),
+            Status::ServiceUnavailable => write!(f, "503 Service Unavailable"),
+            Status::GetawayTimeout => write!(f, "504 Getaway Timeout"),
+            Status::HttpVersionNotSupported => write!(f, "505 HTTP Version Not Supported"),
+            Status::VariantAlsoNegotiates => write!(f, "506 Variant Also Negotiates"),
+            Status::InsufficientStorage => write!(f, "507 Insufficient Storage"),
+            Status::LoopDetected => write!(f, "508 Loop Detected"),
+            Status::NotExtended => write!(f, "510 Not Extendend"),
+            Status::NetworkAuthenticationRequired => {
+                write!(f, "511 Network Authentication Required")
+            }
+        }
+    }
+}
diff --git a/core/http/src/handling/response/traits.rs b/core/http/src/handling/response/traits.rs
new file mode 100644
index 0000000000000000000000000000000000000000..d3179a285f973d5ed80871c25478f852fbd78046
--- /dev/null
+++ b/core/http/src/handling/response/traits.rs
@@ -0,0 +1,73 @@
+use std::fmt::Debug;
+
+use crate::{handling::routes::Body, utils::mime::Mime};
+
+/// Trait for using datatypes as response bodies
+pub trait ResponseBody: Send + Debug {
+    /// Get a cloned version of the data as a [`Vec<u8>`]
+    /// # Ecamples
+    /// ```
+    /// use http::handling::response::ResponseBody;
+    /// let data = "DATA";
+    /// assert_eq!(b"DATA".to_vec(), data.get_data());
+    /// ```
+    fn get_data(&self) -> Vec<u8>;
+    /// get the miem type of the data as a [Mime]
+    /// # Examples
+    /// ```
+    /// use http::handling::response::ResponseBody;
+    /// use http::utils::mime::Mime;
+    /// let data = "DATA";
+    /// assert_eq!(Mime::TextPlain, data.get_mime());
+    /// ```
+    fn get_mime(&self) -> Mime;
+    /// get the length in bytes of the data as a [usize]
+    /// # Examples
+    /// ```
+    /// use http::handling::response::ResponseBody;
+    /// let data = "DATA";
+    /// assert_eq!(4, data.get_len());
+    /// ```
+    fn get_len(&self) -> usize;
+}
+
+impl ResponseBody for Body {
+    fn get_data(&self) -> Vec<u8> {
+        self.body()
+    }
+    fn get_mime(&self) -> Mime {
+        self.mime_type()
+    }
+
+    fn get_len(&self) -> usize {
+        self.get_data().len()
+    }
+}
+
+impl ResponseBody for &str {
+    fn get_data(&self) -> Vec<u8> {
+        self.as_bytes().to_vec()
+    }
+
+    fn get_mime(&self) -> Mime {
+        Mime::TextPlain
+    }
+
+    fn get_len(&self) -> usize {
+        self.len()
+    }
+}
+
+impl ResponseBody for String {
+    fn get_data(&self) -> Vec<u8> {
+        self.as_bytes().to_vec()
+    }
+
+    fn get_mime(&self) -> Mime {
+        Mime::TextPlain
+    }
+
+    fn get_len(&self) -> usize {
+        self.len()
+    }
+}
diff --git a/core/http/src/handling/routes.rs b/core/http/src/handling/routes.rs
new file mode 100644
index 0000000000000000000000000000000000000000..02a81a3ac8bfab8712c48018e8589abbcef9b8e6
--- /dev/null
+++ b/core/http/src/handling/routes.rs
@@ -0,0 +1,160 @@
+use crate::{
+    handling::{
+        methods::Method,
+        request::{MediaType, Request},
+        response::{Outcome, Response, Status},
+    },
+    utils::mime::Mime,
+};
+
+/// A RouteBuilder struct
+pub struct RoutBuilder {
+    /// An optional name of the route
+    name: Option<&'static str>,
+    /// The [Method] via which the route is accesable
+    method: Method,
+    /// The path of the route, allows special cases:
+    /// # Examples
+    /// ```
+    /// "/home"; // Only /home
+    /// "/<home>/something";
+    /// // Variable content the users provides this acts for /<anything>/something
+    /// "/<home..>";
+    /// // All Information after this sequence is irrelvent
+    /// // Matches: /a, /a/b/c ...
+    /// ```
+    path: &'static str,
+    /// The Handler function for this route, which gets called when the request need the route.
+    /// Inputs to the function are an [Request] and the [Data] which represents the body of the
+    /// [Request]. The Outcome is expected to be an [Outcome], which is a [Response], A [Status] if
+    /// something went wrong and a [Status] page is need or a [Outcome::Forward] of the requests
+    /// [Data] for the next [Route] to take care of.
+    handler: fn(Request, Data) -> Outcome<Response, Status, Data>,
+    /// The Specific answer format of the [Route] as a [MediaType]. Optional
+    format: Option<MediaType>,
+    /// The Optional Rank of the Route, dependent on its specificness. so the rank of a uri `"/home"` would be
+    /// ranked high, whereas a uri of `"/<anything..>"` would be ranked the lowest
+    /// If not given generated based on parematers.
+    rank: Option<isize>,
+}
+
+/// A struct to define Routes on the Server
+#[derive(Clone, Copy)]
+pub struct Route<'a> {
+    /// An optional name of the route
+    pub name: Option<&'static str>,
+    /// The [Method] via which the route is accesable
+    pub method: Method,
+    /// The Uri of the route, allows special cases:
+    /// # Examples
+    /// ```
+    /// "/home"; // Only /home
+    /// "/<home>/something";
+    /// // Variable content the users provides this acts for /<anything>/something
+    /// "/<home..>";
+    /// // All Information after this sequence is irrelvent
+    /// // Matches: /a, /a/b/c ...
+    /// ```
+    pub uri: Uri<'a>,
+    /// The Handler function for this route, which gets called when the request need the route.
+    /// Inputs to the function are an [Request] and the [Data] which represents the body of the
+    /// [Request]. The Outcome is expected to be an [Outcome], which is a [Response], A [Status] if
+    /// something went wrong and a [Status] page is need or a [Outcome::Forward] of the requests
+    /// [Data] for the next [Route] to take care of.
+    pub handler: fn(Request, Data) -> Outcome<Response, Status, Data>,
+    /// The Rank of the Route, dependent on its specificness. so the rank of a uri `"/home"` would be
+    /// ranked high, whereas a uri of `"/<anything..>"` would be ranked the lowest
+    pub rank: isize,
+    /// The Specific answer format of the [Route] as a [MediaType]. Optional
+    pub format: Option<MediaType>,
+}
+
+impl Route<'_> {
+    /// generates a Route from a Routebuilder
+    //TODO: ranking
+    pub fn from(routeinfo: RoutBuilder) -> Self {
+        let rank = routeinfo.rank.unwrap_or(0);
+        Route {
+            name: routeinfo.name,
+            method: routeinfo.method,
+            uri: routeinfo.path,
+            handler: routeinfo.handler,
+            rank,
+            format: routeinfo.format,
+        }
+    }
+    /// Matches a [Request] Uri with a [Route] Uri. Respecting special cases like `?` and `<a..>`
+    pub fn compare_uri(&self, uri: Uri) -> bool {
+        let mut iter_comp_str = uri.split('/');
+        for true_str in self.uri.split('/') {
+            let comp_str = if let Some(str) = iter_comp_str.next() {
+                str
+            } else {
+                return false;
+            };
+            if (true_str.starts_with('<') && true_str.ends_with("..>"))
+                || (comp_str.starts_with(true_str) && comp_str.contains('?'))
+            {
+                return true;
+            }
+            if true_str.starts_with('<') && true_str.ends_with('>') {
+                continue;
+            }
+            if true_str != comp_str {
+                return false;
+            }
+        }
+        true
+    }
+}
+
+/// Alias for using a &'a str for Uri
+pub type Uri<'a> = &'a str;
+
+#[derive(Debug, Clone)]
+/// A basic Body type for respones
+pub struct Body {
+    /// The Response body
+    body: Vec<u8>,
+    /// The Mime Type
+    mime_type: Mime,
+}
+
+impl Body {
+    /// New body of a Response
+    pub fn new(body: Vec<u8>, mime_type: Mime) -> Self {
+        Self { body, mime_type }
+    }
+    /// Sets the `mime_type` of the Body
+    pub fn set_mime_type(&mut self, mime_type: Mime) {
+        self.mime_type = mime_type;
+    }
+    /// Reassigns the body
+    pub fn set_body(&mut self, body: Vec<u8>) {
+        self.body = body;
+    }
+    /// mime_type of the body
+    pub fn mime_type(&self) -> Mime {
+        self.mime_type
+    }
+    /// cloned body as [`Vec<u8>`]
+    pub fn body(&self) -> Vec<u8> {
+        self.body.clone()
+    }
+}
+
+#[derive(Debug, Clone)]
+/// Data of the Body of a [Request]
+pub struct Data {
+    /// The Data
+    pub buffer: Vec<u8>,
+    /// For Split Data if it is complete
+    pub is_complete: bool,
+}
+
+impl Data {
+    /// Checks if the buffer.oen() is -0
+    pub fn is_empty(&self) -> bool {
+        self.buffer.len() == 0
+    }
+}
diff --git a/core/http/src/lib.rs b/core/http/src/lib.rs
index 7d12d9af8195bf5e19d10c7b592b359ccd014149..1d6353a848ca924e164ae17aa09e4861f6d30cdc 100644
--- a/core/http/src/lib.rs
+++ b/core/http/src/lib.rs
@@ -1,14 +1,10 @@
-pub fn add(left: usize, right: usize) -> usize {
-    left + right
-}
+pub mod handlers;
+pub mod handling;
+mod setup;
+
+pub mod utils;
 
 #[cfg(test)]
-mod tests {
-    use super::*;
+mod tests {}
 
-    #[test]
-    fn it_works() {
-        let result = add(2, 2);
-        assert_eq!(result, 4);
-    }
-}
+pub use setup::build;
diff --git a/core/http/src/setup.rs b/core/http/src/setup.rs
new file mode 100644
index 0000000000000000000000000000000000000000..9802f0edd3498c8a6ac71a53b5ba66ac29642afc
--- /dev/null
+++ b/core/http/src/setup.rs
@@ -0,0 +1,238 @@
+use std::thread::available_parallelism;
+
+use tokio::{
+    net::TcpListener,
+    select,
+    signal::unix::{signal, SignalKind, Signal},
+};
+
+#[cfg(feature = "secure")]
+use tokio_native_tls::{native_tls::{Identity, self}, TlsAcceptor};
+
+use crate::{
+    handlers::handler::handle_connection,
+    handling::routes::{Route, Uri},
+};
+#[cfg(feature = "secure")]
+use crate::handling::response::{Response, Status};
+
+
+#[derive(Clone)]
+/// Represnts a [MountPoint] that can be mounted in the config
+pub struct MountPoint<'a> {
+    /// The prefix of the [MountPoint]
+    pub mountpoint: Uri<'a>,
+    /// All Routes mounted on the [MountPoint]. The Routes are all prefixed by the mountpoints
+    /// mountpoint
+    pub routes: Vec<Route<'a>>,
+}
+
+/// A server configuration that is run
+pub struct Config {
+    /// Contains an Optional [`Vec<MountPoint>`]. which contains all [MountPoint]s on the Server.
+    /// Which contain all the [Route]s
+    mountpoints: Option<Vec<MountPoint<'static>>>,
+    /// Contains a [tokio::net::TcpListener] that is bound for the server
+    address: TcpListener,
+    #[cfg(feature = "secure")]
+    to_secure_redirect: TcpListener,
+    #[cfg(feature = "secure")]
+    tls_acceptor: TlsAcceptor,
+}
+
+impl<'a> Config {
+    /// Utility that checks if the given mointpoint is already taken. takes in the uri of the to be
+    /// mounted mountpoint
+    fn check_mountpoint_taken(&self, to_insert: Uri) -> bool {
+        if let Some(to_check) = &self.mountpoints {
+            for i in to_check.iter() {
+                if i.mountpoint == to_insert {
+                    return true; // Found a duplicate &str
+                }
+            }
+        };
+        false
+    }
+    /// mounts a [MountPoint] on the [Config] takes in a blank [MountPoint] and the [Route]s to be
+    /// mounted, mounts them and inserts the new [MountPoint]. Also sorts by rank.
+    pub fn mount(mut self, mountpoint: Uri<'static>, mut routes: Vec<Route<'static>>) -> Self {
+        if self.check_mountpoint_taken(mountpoint) {
+            eprintln!("\x1b[31mTrying to reassign a mountpoint, mountpoint `{mountpoint}` already taken.\x1b[0m");
+            return self;
+        }
+        routes.sort_by(|a, b| a.rank.cmp(&b.rank));
+        let mut mount_message = format!("  >> \x1b[35m{}\x1b[0m\n", mountpoint);
+        for (index, route) in routes.iter().enumerate() {
+            let indent_sign = match index {
+                i if i == routes.len() - 1 => "└─",
+                _ => "├─",
+            };
+
+            mount_message += &format!(
+            "     \x1b[35m{indent_sign}\x1b[0m \x1b[36m(\x1b[0m{}\x1b[36m)\x1b[0m \x1b[32m{}\x1b[0m \x1b[34;4m{}\x1b[24m{}\x1b[0m\n",
+                route.name.unwrap_or(""),
+                route.method,
+                mountpoint,
+                route.uri
+            )
+        }
+
+        println!("{mount_message}");
+        let mut temp_mountpoints = None;
+        std::mem::swap(&mut self.mountpoints, &mut temp_mountpoints);
+
+        if let Some(mut mountpoints) = temp_mountpoints {
+            mountpoints.push(MountPoint { mountpoint, routes });
+            self.mountpoints = Some(mountpoints);
+        } else {
+            self.mountpoints = Some(vec![MountPoint { mountpoint, routes }]);
+        }
+        self
+    }
+    /// # Launches/Starts the webserver
+    /// Launches a Webserver Configuration
+    ///
+    /// Is Async
+    ///
+    /// Is Blocking -> Can be interrupted with ^C
+    ///
+    /// # Panics
+    /// Panics if there are no Mountpoints in the Confiuration to lauch, as well as when the there
+    /// is no interrupt signal
+    pub async fn launch(self) {
+        {
+            #[cfg(feature = "secure")] {
+                println!(
+                    "Server launched from https://{} and http://{}",
+                    self.address.local_addr().unwrap(), self.to_secure_redirect.local_addr().unwrap()
+                );
+            }
+            #[cfg(not(feature = "secure"))] {
+                println!("Server launched from http://{}", self.address.local_addr().unwrap())
+            }
+        }
+        let mut sigint = signal(SignalKind::interrupt()).unwrap();
+        let location_string = format!("Location: https://{}", self.address.local_addr().unwrap());
+        loop {
+            if !self.selector(&mut sigint, &location_string).await {
+                break;
+            }
+        }
+    }
+    #[cfg(feature = "secure")]
+    async fn selector(&self, sigint: &mut Signal, location_string: &str) -> bool{
+        select! {
+            _ = sigint.recv() => {
+                println!("Shutting down...");
+                return false;
+            }
+            Ok((socket, _)) = self.address.accept() => {
+                let mountpoints = self.mountpoints.clone().unwrap();
+                let Ok(socket) = self.tls_acceptor.accept(socket).await else { 
+                    eprintln!("\x1b[31mClient used http, not https\x1b[0m");
+                    return true;
+                };
+                tokio::spawn(async move { handle_connection(socket, mountpoints).await; });
+            }
+            Ok((socket, _)) = self.to_secure_redirect.accept() => {
+                let redirect_response = Response {
+                    headers: vec![location_string.to_string()],
+                    cookies: None,
+                    status: Some(Status::MovedPermanently),
+                    body: Box::new(""),
+                };
+                tokio::spawn(async move { let _ = redirect_response.write(socket, None).await; });
+            }
+        }
+        true
+    }
+    #[cfg(not(feature = "secure"))]
+    async fn selector(&self, sigint: &mut Signal, _location_string: &str) -> bool {
+        select! {
+            _ = sigint.recv() => {
+                println!("Shutting down...");
+                return false;
+            }
+            Ok((socket, _)) = self.address.accept() => {
+                let mountpoints = self.mountpoints.clone().unwrap();
+                tokio::spawn(async move { handle_connection(socket, mountpoints).await; });
+            }
+        }
+        true
+    }
+
+}
+
+/// # Creates a Webserver Config which can be launched with the launch function
+/// Takes the IP and Port as an argument
+///
+/// Prints out the configuration test
+///
+/// Is async
+///
+/// # Example
+/// ```
+/// async fn example() {
+///     let _ = http::build("127.0.0.1:8080", "127.0.0.1:8443");
+/// }
+/// ```
+/// # Panics
+/// Panics if the IP is not bindable, or other forms of system errors or it's not a valid
+/// IP-Address
+#[cfg(feature = "secure")]
+pub async fn build(ip: &str, ip_http: &str) -> Config {
+    let Ok(listener) = TcpListener::bind(ip).await  else {
+        panic!("\x1b[31mCould't bind Listener to address\x1b[0m");
+    };
+    let ip_vec = ip.splitn(2, ':').collect::<Vec<&str>>();
+    if ip_vec.len() != 2 {
+        panic!("Invalid IP Address");
+    }
+    let Ok(listener_http) = TcpListener::bind(ip_http).await  else {
+        panic!("\x1b[31mCould't bind Listener to address\x1b[0m");
+    };
+    let identity = Identity::from_pkcs12(include_bytes!("certificates/identity.pfx"), "1234").unwrap();
+
+    let port = ip_vec[1];
+    let ip = ip_vec[0];
+    let workers = available_parallelism().unwrap().get();
+    println!(
+"\x1b[34mâš™ Configuration\x1b[0m
+  >> \x1b[34mIp\x1b[0m: {ip}
+  >> \x1b[34mPort\x1b[0m: {port}
+  >> \x1b[34mWorkers\x1b[0m: {workers}
+\x1b[32m Security\x1b[0m
+  >> \x1b[32mHttp to Https Redirect: http://{ip_http} -> https://{ip}:{port}\x1b[0m
+\x1b[35m🛪 Mountpoints\x1b[0m"
+    );
+    Config {
+        mountpoints: None,
+        address: listener,
+        to_secure_redirect: listener_http,
+        tls_acceptor: native_tls::TlsAcceptor::builder(identity).build().unwrap().into()
+    }
+}
+#[cfg(not(feature = "secure"))]
+pub async fn build(ip: &str) -> Config {
+    let Ok(listener) = TcpListener::bind(ip).await  else {
+        panic!("\x1b[31mCould't bind Listener to address\x1b[0m");
+    };
+    let ip_vec = ip.splitn(2, ':').collect::<Vec<&str>>();
+    if ip_vec.len() != 2 {
+        panic!("Invalid IP Address");
+    }
+    let port = ip_vec[1];
+    let ip = ip_vec[0];
+    let workers = available_parallelism().unwrap().get();
+    println!(
+"\x1b[34mâš™ Configuration\x1b[0m
+  >> \x1b[34mIp\x1b[0m: {ip}
+  >> \x1b[34mPort\x1b[0m: {port}
+  >> \x1b[34mWorkers\x1b[0m: {workers}
+\x1b[35m🛪 Mountpoints\x1b[0m"
+    );
+    Config {
+        mountpoints: None,
+        address: listener,
+    }
+}
diff --git a/core/http/src/utils/mime/map.rs b/core/http/src/utils/mime/map.rs
new file mode 100644
index 0000000000000000000000000000000000000000..7cb4db211a5df5f5c02bb13c1118e79397996b04
--- /dev/null
+++ b/core/http/src/utils/mime/map.rs
@@ -0,0 +1,2023 @@
+use super::mime_enum::Mime;
+
+/// Map with the string version of the Mime types and the values being corresponding [Mime]s
+pub static MIME_MAP: phf::Map<&'static str, Mime> = phf::phf_map! {
+    "application/1d-interleaved-parityfec" => Mime::Application1dInterleavedParityfec,
+    "application/3gpdash-qoe-report+xml" => Mime::Application3gpdashQoeReportXml,
+    "application/3gppHal+json" => Mime::Application3gpphalJson,
+    "application/3gppHalForms+json" => Mime::Application3gpphalformsJson,
+    "application/3gpp-ims+xml" => Mime::Application3gppImsXml,
+    "application/A2L" => Mime::ApplicationA2l,
+    "application/ace+cbor" => Mime::ApplicationAceCbor,
+    "application/ace+json" => Mime::ApplicationAceJson,
+    "application/activemessage" => Mime::ApplicationActivemessage,
+    "application/activity+json" => Mime::ApplicationActivityJson,
+    "application/aif+cbor" => Mime::ApplicationAifCbor,
+    "application/aif+json" => Mime::ApplicationAifJson,
+    "application/alto-cdni+json" => Mime::ApplicationAltoCdniJson,
+    "application/alto-cdnifilter+json" => Mime::ApplicationAltoCdnifilterJson,
+    "application/alto-costmap+json" => Mime::ApplicationAltoCostmapJson,
+    "application/alto-costmapfilter+json" => Mime::ApplicationAltoCostmapfilterJson,
+    "application/alto-directory+json" => Mime::ApplicationAltoDirectoryJson,
+    "application/alto-endpointprop+json" => Mime::ApplicationAltoEndpointpropJson,
+    "application/alto-endpointpropparams+json" => Mime::ApplicationAltoEndpointpropparamsJson,
+    "application/alto-endpointcost+json" => Mime::ApplicationAltoEndpointcostJson,
+    "application/alto-endpointcostparams+json" => Mime::ApplicationAltoEndpointcostparamsJson,
+    "application/alto-error+json" => Mime::ApplicationAltoErrorJson,
+    "application/alto-networkmapfilter+json" => Mime::ApplicationAltoNetworkmapfilterJson,
+    "application/alto-networkmap+json" => Mime::ApplicationAltoNetworkmapJson,
+    "application/alto-propmap+json" => Mime::ApplicationAltoPropmapJson,
+    "application/alto-propmapparams+json" => Mime::ApplicationAltoPropmapparamsJson,
+    "application/alto-updatestreamcontrol+json" => Mime::ApplicationAltoUpdatestreamcontrolJson,
+    "application/alto-updatestreamparams+json" => Mime::ApplicationAltoUpdatestreamparamsJson,
+    "application/AML" => Mime::ApplicationAml,
+    "application/andrew-inset" => Mime::ApplicationAndrewInset,
+    "application/applefile" => Mime::ApplicationApplefile,
+    "application/at+jwt" => Mime::ApplicationAtJwt,
+    "application/ATF" => Mime::ApplicationAtf,
+    "application/ATFX" => Mime::ApplicationAtfx,
+    "application/atom+xml" => Mime::ApplicationAtomXml,
+    "application/atomcat+xml" => Mime::ApplicationAtomcatXml,
+    "application/atomdeleted+xml" => Mime::ApplicationAtomdeletedXml,
+    "application/atomicmail" => Mime::ApplicationAtomicmail,
+    "application/atomsvc+xml" => Mime::ApplicationAtomsvcXml,
+    "application/atsc-dwd+xml" => Mime::ApplicationAtscDwdXml,
+    "application/atsc-dynamic-event-message" => Mime::ApplicationAtscDynamicEventMessage,
+    "application/atsc-held+xml" => Mime::ApplicationAtscHeldXml,
+    "application/atsc-rdt+json" => Mime::ApplicationAtscRdtJson,
+    "application/atsc-rsat+xml" => Mime::ApplicationAtscRsatXml,
+    "application/ATXML" => Mime::ApplicationAtxml,
+    "application/auth-policy+xml" => Mime::ApplicationAuthPolicyXml,
+    "application/automationml-aml+xml" => Mime::ApplicationAutomationmlAmlXml,
+    "application/automationml-amlx+zip" => Mime::ApplicationAutomationmlAmlxZip,
+    "application/bacnet-xdd+zip" => Mime::ApplicationBacnetXddZip,
+    "application/batch-SMTP" => Mime::ApplicationBatchSmtp,
+    "application/beep+xml" => Mime::ApplicationBeepXml,
+    "application/calendar+json" => Mime::ApplicationCalendarJson,
+    "application/calendar+xml" => Mime::ApplicationCalendarXml,
+    "application/call-completion" => Mime::ApplicationCallCompletion,
+    "application/CALS-1840" => Mime::ApplicationCals1840,
+    "application/captive+json" => Mime::ApplicationCaptiveJson,
+    "application/cbor" => Mime::ApplicationCbor,
+    "application/cbor-seq" => Mime::ApplicationCborSeq,
+    "application/cccex" => Mime::ApplicationCccex,
+    "application/ccmp+xml" => Mime::ApplicationCcmpXml,
+    "application/ccxml+xml" => Mime::ApplicationCcxmlXml,
+    "application/cda+xml" => Mime::ApplicationCdaXml,
+    "application/CDFX+XML" => Mime::ApplicationCdfxXml,
+    "application/cdmi-capability" => Mime::ApplicationCdmiCapability,
+    "application/cdmi-container" => Mime::ApplicationCdmiContainer,
+    "application/cdmi-domain" => Mime::ApplicationCdmiDomain,
+    "application/cdmi-object" => Mime::ApplicationCdmiObject,
+    "application/cdmi-queue" => Mime::ApplicationCdmiQueue,
+    "application/cdni" => Mime::ApplicationCdni,
+    "application/CEA" => Mime::ApplicationCea,
+    "application/cea-2018+xml" => Mime::ApplicationCea2018Xml,
+    "application/cellml+xml" => Mime::ApplicationCellmlXml,
+    "application/cfw" => Mime::ApplicationCfw,
+    "application/city+json" => Mime::ApplicationCityJson,
+    "application/clr" => Mime::ApplicationClr,
+    "application/clue_info+xml" => Mime::ApplicationClueInfoXml,
+    "application/clue+xml" => Mime::ApplicationClueXml,
+    "application/cms" => Mime::ApplicationCms,
+    "application/cnrp+xml" => Mime::ApplicationCnrpXml,
+    "application/coap-group+json" => Mime::ApplicationCoapGroupJson,
+    "application/coap-payload" => Mime::ApplicationCoapPayload,
+    "application/commonground" => Mime::ApplicationCommonground,
+    "application/concise-problem-details+cbor" => Mime::ApplicationConciseProblemDetailsCbor,
+    "application/conference-info+xml" => Mime::ApplicationConferenceInfoXml,
+    "application/cpl+xml" => Mime::ApplicationCplXml,
+    "application/cose" => Mime::ApplicationCose,
+    "application/cose-key" => Mime::ApplicationCoseKey,
+    "application/cose-key-set" => Mime::ApplicationCoseKeySet,
+    "application/cose-x509" => Mime::ApplicationCoseX509,
+    "application/csrattrs" => Mime::ApplicationCsrattrs,
+    "application/csta+xml" => Mime::ApplicationCstaXml,
+    "application/CSTAdata+xml" => Mime::ApplicationCstadataXml,
+    "application/csvm+json" => Mime::ApplicationCsvmJson,
+    "application/cwl" => Mime::ApplicationCwl,
+    "application/cwl+json" => Mime::ApplicationCwlJson,
+    "application/cwt" => Mime::ApplicationCwt,
+    "application/cybercash" => Mime::ApplicationCybercash,
+    "application/dash+xml" => Mime::ApplicationDashXml,
+    "application/dash-patch+xml" => Mime::ApplicationDashPatchXml,
+    "application/dashdelta" => Mime::ApplicationDashdelta,
+    "application/davmount+xml" => Mime::ApplicationDavmountXml,
+    "application/dca-rft" => Mime::ApplicationDcaRft,
+    "application/DCD" => Mime::ApplicationDcd,
+    "application/dec-dx" => Mime::ApplicationDecDx,
+    "application/dialog-info+xml" => Mime::ApplicationDialogInfoXml,
+    "application/dicom" => Mime::ApplicationDicom,
+    "application/dicom+json" => Mime::ApplicationDicomJson,
+    "application/dicom+xml" => Mime::ApplicationDicomXml,
+    "application/DII" => Mime::ApplicationDii,
+    "application/DIT" => Mime::ApplicationDit,
+    "application/dns" => Mime::ApplicationDns,
+    "application/dns+json" => Mime::ApplicationDnsJson,
+    "application/dns-message" => Mime::ApplicationDnsMessage,
+    "application/dots+cbor" => Mime::ApplicationDotsCbor,
+    "application/dpop+jwt" => Mime::ApplicationDpopJwt,
+    "application/dskpp+xml" => Mime::ApplicationDskppXml,
+    "application/dssc+der" => Mime::ApplicationDsscDer,
+    "application/dssc+xml" => Mime::ApplicationDsscXml,
+    "application/dvcs" => Mime::ApplicationDvcs,
+    "application/EDI-consent" => Mime::ApplicationEdiConsent,
+    "application/EDIFACT" => Mime::ApplicationEdifact,
+    "application/EDI-X12" => Mime::ApplicationEdiX12,
+    "application/efi" => Mime::ApplicationEfi,
+    "application/elm+json" => Mime::ApplicationElmJson,
+    "application/elm+xml" => Mime::ApplicationElmXml,
+    "application/EmergencyCallData.cap+xml" => Mime::ApplicationEmergencycalldataCapXml,
+    "application/EmergencyCallData.Comment+xml" => Mime::ApplicationEmergencycalldataCommentXml,
+    "application/EmergencyCallData.Control+xml" => Mime::ApplicationEmergencycalldataControlXml,
+    "application/EmergencyCallData.DeviceInfo+xml" => Mime::ApplicationEmergencycalldataDeviceinfoXml,
+    "application/EmergencyCallData.eCall.MSD" => Mime::ApplicationEmergencycalldataEcallMsd,
+    "application/EmergencyCallData.LegacyESN+json" => Mime::ApplicationEmergencycalldataLegacyesnJson,
+    "application/EmergencyCallData.ProviderInfo+xml" => Mime::ApplicationEmergencycalldataProviderinfoXml,
+    "application/EmergencyCallData.ServiceInfo+xml" => Mime::ApplicationEmergencycalldataServiceinfoXml,
+    "application/EmergencyCallData.SubscriberInfo+xml" => Mime::ApplicationEmergencycalldataSubscriberinfoXml,
+    "application/EmergencyCallData.VEDS+xml" => Mime::ApplicationEmergencycalldataVedsXml,
+    "application/emma+xml" => Mime::ApplicationEmmaXml,
+    "application/emotionml+xml" => Mime::ApplicationEmotionmlXml,
+    "application/encaprtp" => Mime::ApplicationEncaprtp,
+    "application/epp+xml" => Mime::ApplicationEppXml,
+    "application/epub+zip" => Mime::ApplicationEpubZip,
+    "application/eshop" => Mime::ApplicationEshop,
+    "application/example" => Mime::ApplicationExample,
+    "application/exi" => Mime::ApplicationExi,
+    "application/expect-ct-report+json" => Mime::ApplicationExpectCtReportJson,
+    "application/express" => Mime::ApplicationExpress,
+    "application/fastinfoset" => Mime::ApplicationFastinfoset,
+    "application/fastsoap" => Mime::ApplicationFastsoap,
+    "application/fdf" => Mime::ApplicationFdf,
+    "application/fdt+xml" => Mime::ApplicationFdtXml,
+    "application/fhir+json" => Mime::ApplicationFhirJson,
+    "application/fhir+xml" => Mime::ApplicationFhirXml,
+    "application/fits" => Mime::ApplicationFits,
+    "application/flexfec" => Mime::ApplicationFlexfec,
+    "application/font-tdpfr" => Mime::ApplicationFontTdpfr,
+    "application/framework-attributes+xml" => Mime::ApplicationFrameworkAttributesXml,
+    "application/geo+json" => Mime::ApplicationGeoJson,
+    "application/geo+json-seq" => Mime::ApplicationGeoJsonSeq,
+    "application/geopackage+sqlite3" => Mime::ApplicationGeopackageSqlite3,
+    "application/geoxacml+xml" => Mime::ApplicationGeoxacmlXml,
+    "application/gltf-buffer" => Mime::ApplicationGltfBuffer,
+    "application/gml+xml" => Mime::ApplicationGmlXml,
+    "application/gzip" => Mime::ApplicationGzip,
+    "application/H224" => Mime::ApplicationH224,
+    "application/held+xml" => Mime::ApplicationHeldXml,
+    "application/hl7v2+xml" => Mime::ApplicationHl7v2Xml,
+    "application/http" => Mime::ApplicationHttp,
+    "application/hyperstudio" => Mime::ApplicationHyperstudio,
+    "application/ibe-key-request+xml" => Mime::ApplicationIbeKeyRequestXml,
+    "application/ibe-pkg-reply+xml" => Mime::ApplicationIbePkgReplyXml,
+    "application/ibe-pp-data" => Mime::ApplicationIbePpData,
+    "application/iges" => Mime::ApplicationIges,
+    "application/im-iscomposing+xml" => Mime::ApplicationImIscomposingXml,
+    "application/index" => Mime::ApplicationIndex,
+    "application/index.cmd" => Mime::ApplicationIndexCmd,
+    "application/index.obj" => Mime::ApplicationIndexObj,
+    "application/index.response" => Mime::ApplicationIndexResponse,
+    "application/index.vnd" => Mime::ApplicationIndexVnd,
+    "application/inkml+xml" => Mime::ApplicationInkmlXml,
+    "application/IOTP" => Mime::ApplicationIotp,
+    "application/ipfix" => Mime::ApplicationIpfix,
+    "application/ipp" => Mime::ApplicationIpp,
+    "application/ISUP" => Mime::ApplicationIsup,
+    "application/its+xml" => Mime::ApplicationItsXml,
+    "application/java-archive" => Mime::ApplicationJavaArchive,
+    "application/jf2feed+json" => Mime::ApplicationJf2feedJson,
+    "application/jose" => Mime::ApplicationJose,
+    "application/jose+json" => Mime::ApplicationJoseJson,
+    "application/jrd+json" => Mime::ApplicationJrdJson,
+    "application/jscalendar+json" => Mime::ApplicationJscalendarJson,
+    "application/json" => Mime::ApplicationJson,
+    "application/json-patch+json" => Mime::ApplicationJsonPatchJson,
+    "application/json-seq" => Mime::ApplicationJsonSeq,
+    "application/jwk+json" => Mime::ApplicationJwkJson,
+    "application/jwk-set+json" => Mime::ApplicationJwkSetJson,
+    "application/jwt" => Mime::ApplicationJwt,
+    "application/kpml-request+xml" => Mime::ApplicationKpmlRequestXml,
+    "application/kpml-response+xml" => Mime::ApplicationKpmlResponseXml,
+    "application/ld+json" => Mime::ApplicationLdJson,
+    "application/lgr+xml" => Mime::ApplicationLgrXml,
+    "application/link-format" => Mime::ApplicationLinkFormat,
+    "application/linkset" => Mime::ApplicationLinkset,
+    "application/linkset+json" => Mime::ApplicationLinksetJson,
+    "application/load-control+xml" => Mime::ApplicationLoadControlXml,
+    "application/logout+jwt" => Mime::ApplicationLogoutJwt,
+    "application/lost+xml" => Mime::ApplicationLostXml,
+    "application/lostsync+xml" => Mime::ApplicationLostsyncXml,
+    "application/lpf+zip" => Mime::ApplicationLpfZip,
+    "application/LXF" => Mime::ApplicationLxf,
+    "application/mac-binhex40" => Mime::ApplicationMacBinhex40,
+    "application/macwriteii" => Mime::ApplicationMacwriteii,
+    "application/mads+xml" => Mime::ApplicationMadsXml,
+    "application/manifest+json" => Mime::ApplicationManifestJson,
+    "application/marc" => Mime::ApplicationMarc,
+    "application/marcxml+xml" => Mime::ApplicationMarcxmlXml,
+    "application/mathematica" => Mime::ApplicationMathematica,
+    "application/mathml+xml" => Mime::ApplicationMathmlXml,
+    "application/mathml-content+xml" => Mime::ApplicationMathmlContentXml,
+    "application/mathml-presentation+xml" => Mime::ApplicationMathmlPresentationXml,
+    "application/mbms-associated-procedure-description+xml" => Mime::ApplicationMbmsAssociatedProcedureDescriptionXml,
+    "application/mbms-deregister+xml" => Mime::ApplicationMbmsDeregisterXml,
+    "application/mbms-envelope+xml" => Mime::ApplicationMbmsEnvelopeXml,
+    "application/mbms-msk-response+xml" => Mime::ApplicationMbmsMskResponseXml,
+    "application/mbms-msk+xml" => Mime::ApplicationMbmsMskXml,
+    "application/mbms-protection-description+xml" => Mime::ApplicationMbmsProtectionDescriptionXml,
+    "application/mbms-reception-report+xml" => Mime::ApplicationMbmsReceptionReportXml,
+    "application/mbms-register-response+xml" => Mime::ApplicationMbmsRegisterResponseXml,
+    "application/mbms-register+xml" => Mime::ApplicationMbmsRegisterXml,
+    "application/mbms-schedule+xml" => Mime::ApplicationMbmsScheduleXml,
+    "application/mbms-user-service-description+xml" => Mime::ApplicationMbmsUserServiceDescriptionXml,
+    "application/mbox" => Mime::ApplicationMbox,
+    "application/media_control+xml" => Mime::ApplicationMediaControlXml,
+    "application/media-policy-dataset+xml" => Mime::ApplicationMediaPolicyDatasetXml,
+    "application/mediaservercontrol+xml" => Mime::ApplicationMediaservercontrolXml,
+    "application/merge-patch+json" => Mime::ApplicationMergePatchJson,
+    "application/metalink4+xml" => Mime::ApplicationMetalink4Xml,
+    "application/mets+xml" => Mime::ApplicationMetsXml,
+    "application/MF4" => Mime::ApplicationMf4,
+    "application/mikey" => Mime::ApplicationMikey,
+    "application/mipc" => Mime::ApplicationMipc,
+    "application/missing-blocks+cbor-seq" => Mime::ApplicationMissingBlocksCborSeq,
+    "application/mmt-aei+xml" => Mime::ApplicationMmtAeiXml,
+    "application/mmt-usd+xml" => Mime::ApplicationMmtUsdXml,
+    "application/mods+xml" => Mime::ApplicationModsXml,
+    "application/moss-keys" => Mime::ApplicationMossKeys,
+    "application/moss-signature" => Mime::ApplicationMossSignature,
+    "application/mosskey-data" => Mime::ApplicationMosskeyData,
+    "application/mosskey-request" => Mime::ApplicationMosskeyRequest,
+    "application/mp21" => Mime::ApplicationMp21,
+    "application/mp4" => Mime::ApplicationMp4,
+    "application/mpeg4-generic" => Mime::ApplicationMpeg4Generic,
+    "application/mpeg4-iod" => Mime::ApplicationMpeg4Iod,
+    "application/mpeg4-iod-xmt" => Mime::ApplicationMpeg4IodXmt,
+    "application/mrb-consumer+xml" => Mime::ApplicationMrbConsumerXml,
+    "application/mrb-publish+xml" => Mime::ApplicationMrbPublishXml,
+    "application/msc-ivr+xml" => Mime::ApplicationMscIvrXml,
+    "application/msc-mixer+xml" => Mime::ApplicationMscMixerXml,
+    "application/msword" => Mime::ApplicationMsword,
+    "application/mud+json" => Mime::ApplicationMudJson,
+    "application/multipart-core" => Mime::ApplicationMultipartCore,
+    "application/mxf" => Mime::ApplicationMxf,
+    "application/n-quads" => Mime::ApplicationNQuads,
+    "application/n-triples" => Mime::ApplicationNTriples,
+    "application/nasdata" => Mime::ApplicationNasdata,
+    "application/news-checkgroups" => Mime::ApplicationNewsCheckgroups,
+    "application/news-groupinfo" => Mime::ApplicationNewsGroupinfo,
+    "application/news-transmission" => Mime::ApplicationNewsTransmission,
+    "application/nlsml+xml" => Mime::ApplicationNlsmlXml,
+    "application/node" => Mime::ApplicationNode,
+    "application/nss" => Mime::ApplicationNss,
+    "application/oauth-authz-req+jwt" => Mime::ApplicationOauthAuthzReqJwt,
+    "application/oblivious-dns-message" => Mime::ApplicationObliviousDnsMessage,
+    "application/ocsp-request" => Mime::ApplicationOcspRequest,
+    "application/ocsp-response" => Mime::ApplicationOcspResponse,
+    "application/octet-stream" => Mime::ApplicationOctetStream,
+    "application/ODA" => Mime::ApplicationOda,
+    "application/odm+xml" => Mime::ApplicationOdmXml,
+    "application/ODX" => Mime::ApplicationOdx,
+    "application/oebps-package+xml" => Mime::ApplicationOebpsPackageXml,
+    "application/ogg" => Mime::ApplicationOgg,
+    "application/ohttp-keys" => Mime::ApplicationOhttpKeys,
+    "application/opc-nodeset+xml" => Mime::ApplicationOpcNodesetXml,
+    "application/oscore" => Mime::ApplicationOscore,
+    "application/oxps" => Mime::ApplicationOxps,
+    "application/p21" => Mime::ApplicationP21,
+    "application/p21+zip" => Mime::ApplicationP21Zip,
+    "application/p2p-overlay+xml" => Mime::ApplicationP2pOverlayXml,
+    "application/parityfec" => Mime::ApplicationParityfec,
+    "application/passport" => Mime::ApplicationPassport,
+    "application/patch-ops-error+xml" => Mime::ApplicationPatchOpsErrorXml,
+    "application/pdf" => Mime::ApplicationPdf,
+    "application/PDX" => Mime::ApplicationPdx,
+    "application/pem-certificate-chain" => Mime::ApplicationPemCertificateChain,
+    "application/pgp-encrypted" => Mime::ApplicationPgpEncrypted,
+    "application/pgp-keys" => Mime::ApplicationPgpKeys,
+    "application/pgp-signature" => Mime::ApplicationPgpSignature,
+    "application/pidf-diff+xml" => Mime::ApplicationPidfDiffXml,
+    "application/pidf+xml" => Mime::ApplicationPidfXml,
+    "application/pkcs10" => Mime::ApplicationPkcs10,
+    "application/pkcs7-mime" => Mime::ApplicationPkcs7Mime,
+    "application/pkcs7-signature" => Mime::ApplicationPkcs7Signature,
+    "application/pkcs8" => Mime::ApplicationPkcs8,
+    "application/pkcs8-encrypted" => Mime::ApplicationPkcs8Encrypted,
+    "application/pkcs12" => Mime::ApplicationPkcs12,
+    "application/pkix-attr-cert" => Mime::ApplicationPkixAttrCert,
+    "application/pkix-cert" => Mime::ApplicationPkixCert,
+    "application/pkix-crl" => Mime::ApplicationPkixCrl,
+    "application/pkix-pkipath" => Mime::ApplicationPkixPkipath,
+    "application/pkixcmp" => Mime::ApplicationPkixcmp,
+    "application/pls+xml" => Mime::ApplicationPlsXml,
+    "application/poc-settings+xml" => Mime::ApplicationPocSettingsXml,
+    "application/postscript" => Mime::ApplicationPostscript,
+    "application/ppsp-tracker+json" => Mime::ApplicationPpspTrackerJson,
+    "application/problem+json" => Mime::ApplicationProblemJson,
+    "application/problem+xml" => Mime::ApplicationProblemXml,
+    "application/provenance+xml" => Mime::ApplicationProvenanceXml,
+    "application/prs.alvestrand.titrax-sheet" => Mime::ApplicationPrsAlvestrandTitraxSheet,
+    "application/prs.cww" => Mime::ApplicationPrsCww,
+    "application/prs.cyn" => Mime::ApplicationPrsCyn,
+    "application/prs.hpub+zip" => Mime::ApplicationPrsHpubZip,
+    "application/prs.implied-document+xml" => Mime::ApplicationPrsImpliedDocumentXml,
+    "application/prs.implied-executable" => Mime::ApplicationPrsImpliedExecutable,
+    "application/prs.implied-structure" => Mime::ApplicationPrsImpliedStructure,
+    "application/prs.nprend" => Mime::ApplicationPrsNprend,
+    "application/prs.plucker" => Mime::ApplicationPrsPlucker,
+    "application/prs.rdf-xml-crypt" => Mime::ApplicationPrsRdfXmlCrypt,
+    "application/prs.xsf+xml" => Mime::ApplicationPrsXsfXml,
+    "application/pskc+xml" => Mime::ApplicationPskcXml,
+    "application/pvd+json" => Mime::ApplicationPvdJson,
+    "application/rdf+xml" => Mime::ApplicationRdfXml,
+    "application/route-apd+xml" => Mime::ApplicationRouteApdXml,
+    "application/route-s-tsid+xml" => Mime::ApplicationRouteSTsidXml,
+    "application/route-usd+xml" => Mime::ApplicationRouteUsdXml,
+    "application/QSIG" => Mime::ApplicationQsig,
+    "application/raptorfec" => Mime::ApplicationRaptorfec,
+    "application/rdap+json" => Mime::ApplicationRdapJson,
+    "application/reginfo+xml" => Mime::ApplicationReginfoXml,
+    "application/relax-ng-compact-syntax" => Mime::ApplicationRelaxNgCompactSyntax,
+    "application/reputon+json" => Mime::ApplicationReputonJson,
+    "application/resource-lists-diff+xml" => Mime::ApplicationResourceListsDiffXml,
+    "application/resource-lists+xml" => Mime::ApplicationResourceListsXml,
+    "application/rfc+xml" => Mime::ApplicationRfcXml,
+    "application/riscos" => Mime::ApplicationRiscos,
+    "application/rlmi+xml" => Mime::ApplicationRlmiXml,
+    "application/rls-services+xml" => Mime::ApplicationRlsServicesXml,
+    "application/rpki-checklist" => Mime::ApplicationRpkiChecklist,
+    "application/rpki-ghostbusters" => Mime::ApplicationRpkiGhostbusters,
+    "application/rpki-manifest" => Mime::ApplicationRpkiManifest,
+    "application/rpki-publication" => Mime::ApplicationRpkiPublication,
+    "application/rpki-roa" => Mime::ApplicationRpkiRoa,
+    "application/rpki-updown" => Mime::ApplicationRpkiUpdown,
+    "application/rtf" => Mime::ApplicationRtf,
+    "application/rtploopback" => Mime::ApplicationRtploopback,
+    "application/rtx" => Mime::ApplicationRtx,
+    "application/samlassertion+xml" => Mime::ApplicationSamlassertionXml,
+    "application/samlmetadata+xml" => Mime::ApplicationSamlmetadataXml,
+    "application/sarif-external-properties+json" => Mime::ApplicationSarifExternalPropertiesJson,
+    "application/sarif+json" => Mime::ApplicationSarifJson,
+    "application/sbe" => Mime::ApplicationSbe,
+    "application/sbml+xml" => Mime::ApplicationSbmlXml,
+    "application/scaip+xml" => Mime::ApplicationScaipXml,
+    "application/scim+json" => Mime::ApplicationScimJson,
+    "application/scvp-cv-request" => Mime::ApplicationScvpCvRequest,
+    "application/scvp-cv-response" => Mime::ApplicationScvpCvResponse,
+    "application/scvp-vp-request" => Mime::ApplicationScvpVpRequest,
+    "application/scvp-vp-response" => Mime::ApplicationScvpVpResponse,
+    "application/sdp" => Mime::ApplicationSdp,
+    "application/secevent+jwt" => Mime::ApplicationSeceventJwt,
+    "application/senml-etch+cbor" => Mime::ApplicationSenmlEtchCbor,
+    "application/senml-etch+json" => Mime::ApplicationSenmlEtchJson,
+    "application/senml-exi" => Mime::ApplicationSenmlExi,
+    "application/senml+cbor" => Mime::ApplicationSenmlCbor,
+    "application/senml+json" => Mime::ApplicationSenmlJson,
+    "application/senml+xml" => Mime::ApplicationSenmlXml,
+    "application/sensml-exi" => Mime::ApplicationSensmlExi,
+    "application/sensml+cbor" => Mime::ApplicationSensmlCbor,
+    "application/sensml+json" => Mime::ApplicationSensmlJson,
+    "application/sensml+xml" => Mime::ApplicationSensmlXml,
+    "application/sep-exi" => Mime::ApplicationSepExi,
+    "application/sep+xml" => Mime::ApplicationSepXml,
+    "application/session-info" => Mime::ApplicationSessionInfo,
+    "application/set-payment" => Mime::ApplicationSetPayment,
+    "application/set-payment-initiation" => Mime::ApplicationSetPaymentInitiation,
+    "application/set-registration" => Mime::ApplicationSetRegistration,
+    "application/set-registration-initiation" => Mime::ApplicationSetRegistrationInitiation,
+    "application/SGML" => Mime::ApplicationSgml,
+    "application/sgml-open-catalog" => Mime::ApplicationSgmlOpenCatalog,
+    "application/shf+xml" => Mime::ApplicationShfXml,
+    "application/sieve" => Mime::ApplicationSieve,
+    "application/simple-filter+xml" => Mime::ApplicationSimpleFilterXml,
+    "application/simple-message-summary" => Mime::ApplicationSimpleMessageSummary,
+    "application/simpleSymbolContainer" => Mime::ApplicationSimplesymbolcontainer,
+    "application/sipc" => Mime::ApplicationSipc,
+    "application/slate" => Mime::ApplicationSlate,
+    "application/smil+xml" => Mime::ApplicationSmilXml,
+    "application/smpte336m" => Mime::ApplicationSmpte336m,
+    "application/soap+fastinfoset" => Mime::ApplicationSoapFastinfoset,
+    "application/soap+xml" => Mime::ApplicationSoapXml,
+    "application/sparql-query" => Mime::ApplicationSparqlQuery,
+    "application/spdx+json" => Mime::ApplicationSpdxJson,
+    "application/sparql-results+xml" => Mime::ApplicationSparqlResultsXml,
+    "application/spirits-event+xml" => Mime::ApplicationSpiritsEventXml,
+    "application/sql" => Mime::ApplicationSql,
+    "application/srgs" => Mime::ApplicationSrgs,
+    "application/srgs+xml" => Mime::ApplicationSrgsXml,
+    "application/sru+xml" => Mime::ApplicationSruXml,
+    "application/ssml+xml" => Mime::ApplicationSsmlXml,
+    "application/stix+json" => Mime::ApplicationStixJson,
+    "application/swid+cbor" => Mime::ApplicationSwidCbor,
+    "application/swid+xml" => Mime::ApplicationSwidXml,
+    "application/tamp-apex-update" => Mime::ApplicationTampApexUpdate,
+    "application/tamp-apex-update-confirm" => Mime::ApplicationTampApexUpdateConfirm,
+    "application/tamp-community-update" => Mime::ApplicationTampCommunityUpdate,
+    "application/tamp-community-update-confirm" => Mime::ApplicationTampCommunityUpdateConfirm,
+    "application/tamp-error" => Mime::ApplicationTampError,
+    "application/tamp-sequence-adjust" => Mime::ApplicationTampSequenceAdjust,
+    "application/tamp-sequence-adjust-confirm" => Mime::ApplicationTampSequenceAdjustConfirm,
+    "application/tamp-status-query" => Mime::ApplicationTampStatusQuery,
+    "application/tamp-status-response" => Mime::ApplicationTampStatusResponse,
+    "application/tamp-update" => Mime::ApplicationTampUpdate,
+    "application/tamp-update-confirm" => Mime::ApplicationTampUpdateConfirm,
+    "application/taxii+json" => Mime::ApplicationTaxiiJson,
+    "application/td+json" => Mime::ApplicationTdJson,
+    "application/tei+xml" => Mime::ApplicationTeiXml,
+    "application/TETRA_ISI" => Mime::ApplicationTetraIsi,
+    "application/thraud+xml" => Mime::ApplicationThraudXml,
+    "application/timestamp-query" => Mime::ApplicationTimestampQuery,
+    "application/timestamp-reply" => Mime::ApplicationTimestampReply,
+    "application/timestamped-data" => Mime::ApplicationTimestampedData,
+    "application/tlsrpt+gzip" => Mime::ApplicationTlsrptGzip,
+    "application/tlsrpt+json" => Mime::ApplicationTlsrptJson,
+    "application/tm+json" => Mime::ApplicationTmJson,
+    "application/tnauthlist" => Mime::ApplicationTnauthlist,
+    "application/token-introspection+jwt" => Mime::ApplicationTokenIntrospectionJwt,
+    "application/trickle-ice-sdpfrag" => Mime::ApplicationTrickleIceSdpfrag,
+    "application/trig" => Mime::ApplicationTrig,
+    "application/ttml+xml" => Mime::ApplicationTtmlXml,
+    "application/tve-trigger" => Mime::ApplicationTveTrigger,
+    "application/tzif" => Mime::ApplicationTzif,
+    "application/tzif-leap" => Mime::ApplicationTzifLeap,
+    "application/ulpfec" => Mime::ApplicationUlpfec,
+    "application/urc-grpsheet+xml" => Mime::ApplicationUrcGrpsheetXml,
+    "application/urc-ressheet+xml" => Mime::ApplicationUrcRessheetXml,
+    "application/urc-targetdesc+xml" => Mime::ApplicationUrcTargetdescXml,
+    "application/urc-uisocketdesc+xml" => Mime::ApplicationUrcUisocketdescXml,
+    "application/vcard+json" => Mime::ApplicationVcardJson,
+    "application/vcard+xml" => Mime::ApplicationVcardXml,
+    "application/vemmi" => Mime::ApplicationVemmi,
+    "application/vnd.1000minds.decision-model+xml" => Mime::ApplicationVnd1000mindsDecisionModelXml,
+    "application/vnd.1ob" => Mime::ApplicationVnd1ob,
+    "application/vnd.3gpp.5gnas" => Mime::ApplicationVnd3gpp5gnas,
+    "application/vnd.3gpp.access-transfer-events+xml" => Mime::ApplicationVnd3gppAccessTransferEventsXml,
+    "application/vnd.3gpp.bsf+xml" => Mime::ApplicationVnd3gppBsfXml,
+    "application/vnd.3gpp.crs+xml" => Mime::ApplicationVnd3gppCrsXml,
+    "application/vnd.3gpp.current-location-discovery+xml" => Mime::ApplicationVnd3gppCurrentLocationDiscoveryXml,
+    "application/vnd.3gpp.GMOP+xml" => Mime::ApplicationVnd3gppGmopXml,
+    "application/vnd.3gpp.gtpc" => Mime::ApplicationVnd3gppGtpc,
+    "application/vnd.3gpp.interworking-data" => Mime::ApplicationVnd3gppInterworkingData,
+    "application/vnd.3gpp.lpp" => Mime::ApplicationVnd3gppLpp,
+    "application/vnd.3gpp.mc-signalling-ear" => Mime::ApplicationVnd3gppMcSignallingEar,
+    "application/vnd.3gpp.mcdata-affiliation-command+xml" => Mime::ApplicationVnd3gppMcdataAffiliationCommandXml,
+    "application/vnd.3gpp.mcdata-info+xml" => Mime::ApplicationVnd3gppMcdataInfoXml,
+    "application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml" => Mime::ApplicationVnd3gppMcdataMsgstoreCtrlRequestXml,
+    "application/vnd.3gpp.mcdata-payload" => Mime::ApplicationVnd3gppMcdataPayload,
+    "application/vnd.3gpp.mcdata-regroup+xml" => Mime::ApplicationVnd3gppMcdataRegroupXml,
+    "application/vnd.3gpp.mcdata-service-config+xml" => Mime::ApplicationVnd3gppMcdataServiceConfigXml,
+    "application/vnd.3gpp.mcdata-signalling" => Mime::ApplicationVnd3gppMcdataSignalling,
+    "application/vnd.3gpp.mcdata-ue-config+xml" => Mime::ApplicationVnd3gppMcdataUeConfigXml,
+    "application/vnd.3gpp.mcdata-user-profile+xml" => Mime::ApplicationVnd3gppMcdataUserProfileXml,
+    "application/vnd.3gpp.mcptt-affiliation-command+xml" => Mime::ApplicationVnd3gppMcpttAffiliationCommandXml,
+    "application/vnd.3gpp.mcptt-floor-request+xml" => Mime::ApplicationVnd3gppMcpttFloorRequestXml,
+    "application/vnd.3gpp.mcptt-info+xml" => Mime::ApplicationVnd3gppMcpttInfoXml,
+    "application/vnd.3gpp.mcptt-location-info+xml" => Mime::ApplicationVnd3gppMcpttLocationInfoXml,
+    "application/vnd.3gpp.mcptt-mbms-usage-info+xml" => Mime::ApplicationVnd3gppMcpttMbmsUsageInfoXml,
+    "application/vnd.3gpp.mcptt-regroup+xml" => Mime::ApplicationVnd3gppMcpttRegroupXml,
+    "application/vnd.3gpp.mcptt-service-config+xml" => Mime::ApplicationVnd3gppMcpttServiceConfigXml,
+    "application/vnd.3gpp.mcptt-signed+xml" => Mime::ApplicationVnd3gppMcpttSignedXml,
+    "application/vnd.3gpp.mcptt-ue-config+xml" => Mime::ApplicationVnd3gppMcpttUeConfigXml,
+    "application/vnd.3gpp.mcptt-ue-init-config+xml" => Mime::ApplicationVnd3gppMcpttUeInitConfigXml,
+    "application/vnd.3gpp.mcptt-user-profile+xml" => Mime::ApplicationVnd3gppMcpttUserProfileXml,
+    "application/vnd.3gpp.mcvideo-affiliation-command+xml" => Mime::ApplicationVnd3gppMcvideoAffiliationCommandXml,
+    "application/vnd.3gpp.mcvideo-info+xml" => Mime::ApplicationVnd3gppMcvideoInfoXml,
+    "application/vnd.3gpp.mcvideo-location-info+xml" => Mime::ApplicationVnd3gppMcvideoLocationInfoXml,
+    "application/vnd.3gpp.mcvideo-mbms-usage-info+xml" => Mime::ApplicationVnd3gppMcvideoMbmsUsageInfoXml,
+    "application/vnd.3gpp.mcvideo-regroup+xml" => Mime::ApplicationVnd3gppMcvideoRegroupXml,
+    "application/vnd.3gpp.mcvideo-service-config+xml" => Mime::ApplicationVnd3gppMcvideoServiceConfigXml,
+    "application/vnd.3gpp.mcvideo-transmission-request+xml" => Mime::ApplicationVnd3gppMcvideoTransmissionRequestXml,
+    "application/vnd.3gpp.mcvideo-ue-config+xml" => Mime::ApplicationVnd3gppMcvideoUeConfigXml,
+    "application/vnd.3gpp.mcvideo-user-profile+xml" => Mime::ApplicationVnd3gppMcvideoUserProfileXml,
+    "application/vnd.3gpp.mid-call+xml" => Mime::ApplicationVnd3gppMidCallXml,
+    "application/vnd.3gpp.ngap" => Mime::ApplicationVnd3gppNgap,
+    "application/vnd.3gpp.pfcp" => Mime::ApplicationVnd3gppPfcp,
+    "application/vnd.3gpp.pic-bw-large" => Mime::ApplicationVnd3gppPicBwLarge,
+    "application/vnd.3gpp.pic-bw-small" => Mime::ApplicationVnd3gppPicBwSmall,
+    "application/vnd.3gpp.pic-bw-var" => Mime::ApplicationVnd3gppPicBwVar,
+    "application/vnd.3gpp-prose-pc3a+xml" => Mime::ApplicationVnd3gppProsePc3aXml,
+    "application/vnd.3gpp-prose-pc3ach+xml" => Mime::ApplicationVnd3gppProsePc3achXml,
+    "application/vnd.3gpp-prose-pc3ch+xml" => Mime::ApplicationVnd3gppProsePc3chXml,
+    "application/vnd.3gpp-prose-pc8+xml" => Mime::ApplicationVnd3gppProsePc8Xml,
+    "application/vnd.3gpp-prose+xml" => Mime::ApplicationVnd3gppProseXml,
+    "application/vnd.3gpp.s1ap" => Mime::ApplicationVnd3gppS1ap,
+    "application/vnd.3gpp.seal-group-doc+xml" => Mime::ApplicationVnd3gppSealGroupDocXml,
+    "application/vnd.3gpp.seal-info+xml" => Mime::ApplicationVnd3gppSealInfoXml,
+    "application/vnd.3gpp.seal-location-info+xml" => Mime::ApplicationVnd3gppSealLocationInfoXml,
+    "application/vnd.3gpp.seal-mbms-usage-info+xml" => Mime::ApplicationVnd3gppSealMbmsUsageInfoXml,
+    "application/vnd.3gpp.seal-network-QoS-management-info+xml" => Mime::ApplicationVnd3gppSealNetworkQosManagementInfoXml,
+    "application/vnd.3gpp.seal-ue-config-info+xml" => Mime::ApplicationVnd3gppSealUeConfigInfoXml,
+    "application/vnd.3gpp.seal-unicast-info+xml" => Mime::ApplicationVnd3gppSealUnicastInfoXml,
+    "application/vnd.3gpp.seal-user-profile-info+xml" => Mime::ApplicationVnd3gppSealUserProfileInfoXml,
+    "application/vnd.3gpp.sms" => Mime::ApplicationVnd3gppSms,
+    "application/vnd.3gpp.sms+xml" => Mime::ApplicationVnd3gppSmsXml,
+    "application/vnd.3gpp.srvcc-ext+xml" => Mime::ApplicationVnd3gppSrvccExtXml,
+    "application/vnd.3gpp.SRVCC-info+xml" => Mime::ApplicationVnd3gppSrvccInfoXml,
+    "application/vnd.3gpp.state-and-event-info+xml" => Mime::ApplicationVnd3gppStateAndEventInfoXml,
+    "application/vnd.3gpp.ussd+xml" => Mime::ApplicationVnd3gppUssdXml,
+    "application/vnd.3gpp.vae-info+xml" => Mime::ApplicationVnd3gppVaeInfoXml,
+    "application/vnd.3gpp-v2x-local-service-information" => Mime::ApplicationVnd3gppV2xLocalServiceInformation,
+    "application/vnd.3gpp2.bcmcsinfo+xml" => Mime::ApplicationVnd3gpp2BcmcsinfoXml,
+    "application/vnd.3gpp2.sms" => Mime::ApplicationVnd3gpp2Sms,
+    "application/vnd.3gpp2.tcap" => Mime::ApplicationVnd3gpp2Tcap,
+    "application/vnd.3gpp.v2x" => Mime::ApplicationVnd3gppV2x,
+    "application/vnd.3lightssoftware.imagescal" => Mime::ApplicationVnd3lightssoftwareImagescal,
+    "application/vnd.3M.Post-it-Notes" => Mime::ApplicationVnd3mPostItNotes,
+    "application/vnd.accpac.simply.aso" => Mime::ApplicationVndAccpacSimplyAso,
+    "application/vnd.accpac.simply.imp" => Mime::ApplicationVndAccpacSimplyImp,
+    "application/vnd.acm.addressxfer+json" => Mime::ApplicationVndAcmAddressxferJson,
+    "application/vnd.acucobol" => Mime::ApplicationVndAcucobol,
+    "application/vnd.acucorp" => Mime::ApplicationVndAcucorp,
+    "application/vnd.adobe.flash.movie" => Mime::ApplicationVndAdobeFlashMovie,
+    "application/vnd.adobe.formscentral.fcdt" => Mime::ApplicationVndAdobeFormscentralFcdt,
+    "application/vnd.adobe.fxp" => Mime::ApplicationVndAdobeFxp,
+    "application/vnd.adobe.partial-upload" => Mime::ApplicationVndAdobePartialUpload,
+    "application/vnd.adobe.xdp+xml" => Mime::ApplicationVndAdobeXdpXml,
+    "application/vnd.aether.imp" => Mime::ApplicationVndAetherImp,
+    "application/vnd.afpc.afplinedata" => Mime::ApplicationVndAfpcAfplinedata,
+    "application/vnd.afpc.afplinedata-pagedef" => Mime::ApplicationVndAfpcAfplinedataPagedef,
+    "application/vnd.afpc.cmoca-cmresource" => Mime::ApplicationVndAfpcCmocaCmresource,
+    "application/vnd.afpc.foca-charset" => Mime::ApplicationVndAfpcFocaCharset,
+    "application/vnd.afpc.foca-codedfont" => Mime::ApplicationVndAfpcFocaCodedfont,
+    "application/vnd.afpc.foca-codepage" => Mime::ApplicationVndAfpcFocaCodepage,
+    "application/vnd.afpc.modca" => Mime::ApplicationVndAfpcModca,
+    "application/vnd.afpc.modca-cmtable" => Mime::ApplicationVndAfpcModcaCmtable,
+    "application/vnd.afpc.modca-formdef" => Mime::ApplicationVndAfpcModcaFormdef,
+    "application/vnd.afpc.modca-mediummap" => Mime::ApplicationVndAfpcModcaMediummap,
+    "application/vnd.afpc.modca-objectcontainer" => Mime::ApplicationVndAfpcModcaObjectcontainer,
+    "application/vnd.afpc.modca-overlay" => Mime::ApplicationVndAfpcModcaOverlay,
+    "application/vnd.afpc.modca-pagesegment" => Mime::ApplicationVndAfpcModcaPagesegment,
+    "application/vnd.age" => Mime::ApplicationVndAge,
+    "application/vnd.ah-barcode" => Mime::ApplicationVndAhBarcode,
+    "application/vnd.ahead.space" => Mime::ApplicationVndAheadSpace,
+    "application/vnd.airzip.filesecure.azf" => Mime::ApplicationVndAirzipFilesecureAzf,
+    "application/vnd.airzip.filesecure.azs" => Mime::ApplicationVndAirzipFilesecureAzs,
+    "application/vnd.amadeus+json" => Mime::ApplicationVndAmadeusJson,
+    "application/vnd.amazon.mobi8-ebook" => Mime::ApplicationVndAmazonMobi8Ebook,
+    "application/vnd.americandynamics.acc" => Mime::ApplicationVndAmericandynamicsAcc,
+    "application/vnd.amiga.ami" => Mime::ApplicationVndAmigaAmi,
+    "application/vnd.amundsen.maze+xml" => Mime::ApplicationVndAmundsenMazeXml,
+    "application/vnd.android.ota" => Mime::ApplicationVndAndroidOta,
+    "application/vnd.anki" => Mime::ApplicationVndAnki,
+    "application/vnd.anser-web-certificate-issue-initiation" => Mime::ApplicationVndAnserWebCertificateIssueInitiation,
+    "application/vnd.antix.game-component" => Mime::ApplicationVndAntixGameComponent,
+    "application/vnd.apache.arrow.file" => Mime::ApplicationVndApacheArrowFile,
+    "application/vnd.apache.arrow.stream" => Mime::ApplicationVndApacheArrowStream,
+    "application/vnd.apache.thrift.binary" => Mime::ApplicationVndApacheThriftBinary,
+    "application/vnd.apache.thrift.compact" => Mime::ApplicationVndApacheThriftCompact,
+    "application/vnd.apache.thrift.json" => Mime::ApplicationVndApacheThriftJson,
+    "application/vnd.apexlang" => Mime::ApplicationVndApexlang,
+    "application/vnd.api+json" => Mime::ApplicationVndApiJson,
+    "application/vnd.aplextor.warrp+json" => Mime::ApplicationVndAplextorWarrpJson,
+    "application/vnd.apothekende.reservation+json" => Mime::ApplicationVndApothekendeReservationJson,
+    "application/vnd.apple.installer+xml" => Mime::ApplicationVndAppleInstallerXml,
+    "application/vnd.apple.keynote" => Mime::ApplicationVndAppleKeynote,
+    "application/vnd.apple.mpegurl" => Mime::ApplicationVndAppleMpegurl,
+    "application/vnd.apple.numbers" => Mime::ApplicationVndAppleNumbers,
+    "application/vnd.apple.pages" => Mime::ApplicationVndApplePages,
+    "application/vnd.aristanetworks.swi" => Mime::ApplicationVndAristanetworksSwi,
+    "application/vnd.artisan+json" => Mime::ApplicationVndArtisanJson,
+    "application/vnd.artsquare" => Mime::ApplicationVndArtsquare,
+    "application/vnd.astraea-software.iota" => Mime::ApplicationVndAstraeaSoftwareIota,
+    "application/vnd.audiograph" => Mime::ApplicationVndAudiograph,
+    "application/vnd.autopackage" => Mime::ApplicationVndAutopackage,
+    "application/vnd.avalon+json" => Mime::ApplicationVndAvalonJson,
+    "application/vnd.avistar+xml" => Mime::ApplicationVndAvistarXml,
+    "application/vnd.balsamiq.bmml+xml" => Mime::ApplicationVndBalsamiqBmmlXml,
+    "application/vnd.banana-accounting" => Mime::ApplicationVndBananaAccounting,
+    "application/vnd.bbf.usp.error" => Mime::ApplicationVndBbfUspError,
+    "application/vnd.bbf.usp.msg" => Mime::ApplicationVndBbfUspMsg,
+    "application/vnd.bbf.usp.msg+json" => Mime::ApplicationVndBbfUspMsgJson,
+    "application/vnd.balsamiq.bmpr" => Mime::ApplicationVndBalsamiqBmpr,
+    "application/vnd.bekitzur-stech+json" => Mime::ApplicationVndBekitzurStechJson,
+    "application/vnd.belightsoft.lhzd+zip" => Mime::ApplicationVndBelightsoftLhzdZip,
+    "application/vnd.belightsoft.lhzl+zip" => Mime::ApplicationVndBelightsoftLhzlZip,
+    "application/vnd.bint.med-content" => Mime::ApplicationVndBintMedContent,
+    "application/vnd.biopax.rdf+xml" => Mime::ApplicationVndBiopaxRdfXml,
+    "application/vnd.blink-idb-value-wrapper" => Mime::ApplicationVndBlinkIdbValueWrapper,
+    "application/vnd.blueice.multipass" => Mime::ApplicationVndBlueiceMultipass,
+    "application/vnd.bluetooth.ep.oob" => Mime::ApplicationVndBluetoothEpOob,
+    "application/vnd.bluetooth.le.oob" => Mime::ApplicationVndBluetoothLeOob,
+    "application/vnd.bmi" => Mime::ApplicationVndBmi,
+    "application/vnd.bpf" => Mime::ApplicationVndBpf,
+    "application/vnd.bpf3" => Mime::ApplicationVndBpf3,
+    "application/vnd.businessobjects" => Mime::ApplicationVndBusinessobjects,
+    "application/vnd.byu.uapi+json" => Mime::ApplicationVndByuUapiJson,
+    "application/vnd.cab-jscript" => Mime::ApplicationVndCabJscript,
+    "application/vnd.canon-cpdl" => Mime::ApplicationVndCanonCpdl,
+    "application/vnd.canon-lips" => Mime::ApplicationVndCanonLips,
+    "application/vnd.capasystems-pg+json" => Mime::ApplicationVndCapasystemsPgJson,
+    "application/vnd.cendio.thinlinc.clientconf" => Mime::ApplicationVndCendioThinlincClientconf,
+    "application/vnd.century-systems.tcp_stream" => Mime::ApplicationVndCenturySystemsTcpStream,
+    "application/vnd.chemdraw+xml" => Mime::ApplicationVndChemdrawXml,
+    "application/vnd.chess-pgn" => Mime::ApplicationVndChessPgn,
+    "application/vnd.chipnuts.karaoke-mmd" => Mime::ApplicationVndChipnutsKaraokeMmd,
+    "application/vnd.ciedi" => Mime::ApplicationVndCiedi,
+    "application/vnd.cinderella" => Mime::ApplicationVndCinderella,
+    "application/vnd.cirpack.isdn-ext" => Mime::ApplicationVndCirpackIsdnExt,
+    "application/vnd.citationstyles.style+xml" => Mime::ApplicationVndCitationstylesStyleXml,
+    "application/vnd.claymore" => Mime::ApplicationVndClaymore,
+    "application/vnd.cloanto.rp9" => Mime::ApplicationVndCloantoRp9,
+    "application/vnd.clonk.c4group" => Mime::ApplicationVndClonkC4group,
+    "application/vnd.cluetrust.cartomobile-config" => Mime::ApplicationVndCluetrustCartomobileConfig,
+    "application/vnd.cluetrust.cartomobile-config-pkg" => Mime::ApplicationVndCluetrustCartomobileConfigPkg,
+    "application/vnd.cncf.helm.chart.content.v1.tar+gzip" => Mime::ApplicationVndCncfHelmChartContentV1TarGzip,
+    "application/vnd.cncf.helm.chart.provenance.v1.prov" => Mime::ApplicationVndCncfHelmChartProvenanceV1Prov,
+    "application/vnd.cncf.helm.config.v1+json" => Mime::ApplicationVndCncfHelmConfigV1Json,
+    "application/vnd.coffeescript" => Mime::ApplicationVndCoffeescript,
+    "application/vnd.collabio.xodocuments.document" => Mime::ApplicationVndCollabioXodocumentsDocument,
+    "application/vnd.collabio.xodocuments.document-template" => Mime::ApplicationVndCollabioXodocumentsDocumentTemplate,
+    "application/vnd.collabio.xodocuments.presentation" => Mime::ApplicationVndCollabioXodocumentsPresentation,
+    "application/vnd.collabio.xodocuments.presentation-template" => Mime::ApplicationVndCollabioXodocumentsPresentationTemplate,
+    "application/vnd.collabio.xodocuments.spreadsheet" => Mime::ApplicationVndCollabioXodocumentsSpreadsheet,
+    "application/vnd.collabio.xodocuments.spreadsheet-template" => Mime::ApplicationVndCollabioXodocumentsSpreadsheetTemplate,
+    "application/vnd.collection.doc+json" => Mime::ApplicationVndCollectionDocJson,
+    "application/vnd.collection+json" => Mime::ApplicationVndCollectionJson,
+    "application/vnd.collection.next+json" => Mime::ApplicationVndCollectionNextJson,
+    "application/vnd.comicbook-rar" => Mime::ApplicationVndComicbookRar,
+    "application/vnd.comicbook+zip" => Mime::ApplicationVndComicbookZip,
+    "application/vnd.commerce-battelle" => Mime::ApplicationVndCommerceBattelle,
+    "application/vnd.commonspace" => Mime::ApplicationVndCommonspace,
+    "application/vnd.coreos.ignition+json" => Mime::ApplicationVndCoreosIgnitionJson,
+    "application/vnd.cosmocaller" => Mime::ApplicationVndCosmocaller,
+    "application/vnd.contact.cmsg" => Mime::ApplicationVndContactCmsg,
+    "application/vnd.crick.clicker" => Mime::ApplicationVndCrickClicker,
+    "application/vnd.crick.clicker.keyboard" => Mime::ApplicationVndCrickClickerKeyboard,
+    "application/vnd.crick.clicker.palette" => Mime::ApplicationVndCrickClickerPalette,
+    "application/vnd.crick.clicker.template" => Mime::ApplicationVndCrickClickerTemplate,
+    "application/vnd.crick.clicker.wordbank" => Mime::ApplicationVndCrickClickerWordbank,
+    "application/vnd.criticaltools.wbs+xml" => Mime::ApplicationVndCriticaltoolsWbsXml,
+    "application/vnd.cryptii.pipe+json" => Mime::ApplicationVndCryptiiPipeJson,
+    "application/vnd.crypto-shade-file" => Mime::ApplicationVndCryptoShadeFile,
+    "application/vnd.cryptomator.encrypted" => Mime::ApplicationVndCryptomatorEncrypted,
+    "application/vnd.cryptomator.vault" => Mime::ApplicationVndCryptomatorVault,
+    "application/vnd.ctc-posml" => Mime::ApplicationVndCtcPosml,
+    "application/vnd.ctct.ws+xml" => Mime::ApplicationVndCtctWsXml,
+    "application/vnd.cups-pdf" => Mime::ApplicationVndCupsPdf,
+    "application/vnd.cups-postscript" => Mime::ApplicationVndCupsPostscript,
+    "application/vnd.cups-ppd" => Mime::ApplicationVndCupsPpd,
+    "application/vnd.cups-raster" => Mime::ApplicationVndCupsRaster,
+    "application/vnd.cups-raw" => Mime::ApplicationVndCupsRaw,
+    "application/vnd.curl" => Mime::ApplicationVndCurl,
+    "application/vnd.cyan.dean.root+xml" => Mime::ApplicationVndCyanDeanRootXml,
+    "application/vnd.cybank" => Mime::ApplicationVndCybank,
+    "application/vnd.cyclonedx+json" => Mime::ApplicationVndCyclonedxJson,
+    "application/vnd.cyclonedx+xml" => Mime::ApplicationVndCyclonedxXml,
+    "application/vnd.d2l.coursepackage1p0+zip" => Mime::ApplicationVndD2lCoursepackage1p0Zip,
+    "application/vnd.d3m-dataset" => Mime::ApplicationVndD3mDataset,
+    "application/vnd.d3m-problem" => Mime::ApplicationVndD3mProblem,
+    "application/vnd.dart" => Mime::ApplicationVndDart,
+    "application/vnd.data-vision.rdz" => Mime::ApplicationVndDataVisionRdz,
+    "application/vnd.datalog" => Mime::ApplicationVndDatalog,
+    "application/vnd.datapackage+json" => Mime::ApplicationVndDatapackageJson,
+    "application/vnd.dataresource+json" => Mime::ApplicationVndDataresourceJson,
+    "application/vnd.dbf" => Mime::ApplicationVndDbf,
+    "application/vnd.debian.binary-package" => Mime::ApplicationVndDebianBinaryPackage,
+    "application/vnd.dece.data" => Mime::ApplicationVndDeceData,
+    "application/vnd.dece.ttml+xml" => Mime::ApplicationVndDeceTtmlXml,
+    "application/vnd.dece.unspecified" => Mime::ApplicationVndDeceUnspecified,
+    "application/vnd.dece.zip" => Mime::ApplicationVndDeceZip,
+    "application/vnd.denovo.fcselayout-link" => Mime::ApplicationVndDenovoFcselayoutLink,
+    "application/vnd.desmume.movie" => Mime::ApplicationVndDesmumeMovie,
+    "application/vnd.dir-bi.plate-dl-nosuffix" => Mime::ApplicationVndDirBiPlateDlNosuffix,
+    "application/vnd.dm.delegation+xml" => Mime::ApplicationVndDmDelegationXml,
+    "application/vnd.dna" => Mime::ApplicationVndDna,
+    "application/vnd.document+json" => Mime::ApplicationVndDocumentJson,
+    "application/vnd.dolby.mobile.1" => Mime::ApplicationVndDolbyMobile1,
+    "application/vnd.dolby.mobile.2" => Mime::ApplicationVndDolbyMobile2,
+    "application/vnd.doremir.scorecloud-binary-document" => Mime::ApplicationVndDoremirScorecloudBinaryDocument,
+    "application/vnd.dpgraph" => Mime::ApplicationVndDpgraph,
+    "application/vnd.dreamfactory" => Mime::ApplicationVndDreamfactory,
+    "application/vnd.drive+json" => Mime::ApplicationVndDriveJson,
+    "application/vnd.dtg.local" => Mime::ApplicationVndDtgLocal,
+    "application/vnd.dtg.local.flash" => Mime::ApplicationVndDtgLocalFlash,
+    "application/vnd.dtg.local.html" => Mime::ApplicationVndDtgLocalHtml,
+    "application/vnd.dvb.ait" => Mime::ApplicationVndDvbAit,
+    "application/vnd.dvb.dvbisl+xml" => Mime::ApplicationVndDvbDvbislXml,
+    "application/vnd.dvb.dvbj" => Mime::ApplicationVndDvbDvbj,
+    "application/vnd.dvb.esgcontainer" => Mime::ApplicationVndDvbEsgcontainer,
+    "application/vnd.dvb.ipdcdftnotifaccess" => Mime::ApplicationVndDvbIpdcdftnotifaccess,
+    "application/vnd.dvb.ipdcesgaccess" => Mime::ApplicationVndDvbIpdcesgaccess,
+    "application/vnd.dvb.ipdcesgaccess2" => Mime::ApplicationVndDvbIpdcesgaccess2,
+    "application/vnd.dvb.ipdcesgpdd" => Mime::ApplicationVndDvbIpdcesgpdd,
+    "application/vnd.dvb.ipdcroaming" => Mime::ApplicationVndDvbIpdcroaming,
+    "application/vnd.dvb.iptv.alfec-base" => Mime::ApplicationVndDvbIptvAlfecBase,
+    "application/vnd.dvb.iptv.alfec-enhancement" => Mime::ApplicationVndDvbIptvAlfecEnhancement,
+    "application/vnd.dvb.notif-aggregate-root+xml" => Mime::ApplicationVndDvbNotifAggregateRootXml,
+    "application/vnd.dvb.notif-container+xml" => Mime::ApplicationVndDvbNotifContainerXml,
+    "application/vnd.dvb.notif-generic+xml" => Mime::ApplicationVndDvbNotifGenericXml,
+    "application/vnd.dvb.notif-ia-msglist+xml" => Mime::ApplicationVndDvbNotifIaMsglistXml,
+    "application/vnd.dvb.notif-ia-registration-request+xml" => Mime::ApplicationVndDvbNotifIaRegistrationRequestXml,
+    "application/vnd.dvb.notif-ia-registration-response+xml" => Mime::ApplicationVndDvbNotifIaRegistrationResponseXml,
+    "application/vnd.dvb.notif-init+xml" => Mime::ApplicationVndDvbNotifInitXml,
+    "application/vnd.dvb.pfr" => Mime::ApplicationVndDvbPfr,
+    "application/vnd.dvb.service" => Mime::ApplicationVndDvbService,
+    "application/vnd.dxr" => Mime::ApplicationVndDxr,
+    "application/vnd.dynageo" => Mime::ApplicationVndDynageo,
+    "application/vnd.dzr" => Mime::ApplicationVndDzr,
+    "application/vnd.easykaraoke.cdgdownload" => Mime::ApplicationVndEasykaraokeCdgdownload,
+    "application/vnd.ecip.rlp" => Mime::ApplicationVndEcipRlp,
+    "application/vnd.ecdis-update" => Mime::ApplicationVndEcdisUpdate,
+    "application/vnd.eclipse.ditto+json" => Mime::ApplicationVndEclipseDittoJson,
+    "application/vnd.ecowin.chart" => Mime::ApplicationVndEcowinChart,
+    "application/vnd.ecowin.filerequest" => Mime::ApplicationVndEcowinFilerequest,
+    "application/vnd.ecowin.fileupdate" => Mime::ApplicationVndEcowinFileupdate,
+    "application/vnd.ecowin.series" => Mime::ApplicationVndEcowinSeries,
+    "application/vnd.ecowin.seriesrequest" => Mime::ApplicationVndEcowinSeriesrequest,
+    "application/vnd.ecowin.seriesupdate" => Mime::ApplicationVndEcowinSeriesupdate,
+    "application/vnd.efi.img" => Mime::ApplicationVndEfiImg,
+    "application/vnd.efi.iso" => Mime::ApplicationVndEfiIso,
+    "application/vnd.eln+zip" => Mime::ApplicationVndElnZip,
+    "application/vnd.emclient.accessrequest+xml" => Mime::ApplicationVndEmclientAccessrequestXml,
+    "application/vnd.enliven" => Mime::ApplicationVndEnliven,
+    "application/vnd.enphase.envoy" => Mime::ApplicationVndEnphaseEnvoy,
+    "application/vnd.eprints.data+xml" => Mime::ApplicationVndEprintsDataXml,
+    "application/vnd.epson.esf" => Mime::ApplicationVndEpsonEsf,
+    "application/vnd.epson.msf" => Mime::ApplicationVndEpsonMsf,
+    "application/vnd.epson.quickanime" => Mime::ApplicationVndEpsonQuickanime,
+    "application/vnd.epson.salt" => Mime::ApplicationVndEpsonSalt,
+    "application/vnd.epson.ssf" => Mime::ApplicationVndEpsonSsf,
+    "application/vnd.ericsson.quickcall" => Mime::ApplicationVndEricssonQuickcall,
+    "application/vnd.espass-espass+zip" => Mime::ApplicationVndEspassEspassZip,
+    "application/vnd.eszigno3+xml" => Mime::ApplicationVndEszigno3Xml,
+    "application/vnd.etsi.aoc+xml" => Mime::ApplicationVndEtsiAocXml,
+    "application/vnd.etsi.asic-s+zip" => Mime::ApplicationVndEtsiAsicSZip,
+    "application/vnd.etsi.asic-e+zip" => Mime::ApplicationVndEtsiAsicEZip,
+    "application/vnd.etsi.cug+xml" => Mime::ApplicationVndEtsiCugXml,
+    "application/vnd.etsi.iptvcommand+xml" => Mime::ApplicationVndEtsiIptvcommandXml,
+    "application/vnd.etsi.iptvdiscovery+xml" => Mime::ApplicationVndEtsiIptvdiscoveryXml,
+    "application/vnd.etsi.iptvprofile+xml" => Mime::ApplicationVndEtsiIptvprofileXml,
+    "application/vnd.etsi.iptvsad-bc+xml" => Mime::ApplicationVndEtsiIptvsadBcXml,
+    "application/vnd.etsi.iptvsad-cod+xml" => Mime::ApplicationVndEtsiIptvsadCodXml,
+    "application/vnd.etsi.iptvsad-npvr+xml" => Mime::ApplicationVndEtsiIptvsadNpvrXml,
+    "application/vnd.etsi.iptvservice+xml" => Mime::ApplicationVndEtsiIptvserviceXml,
+    "application/vnd.etsi.iptvsync+xml" => Mime::ApplicationVndEtsiIptvsyncXml,
+    "application/vnd.etsi.iptvueprofile+xml" => Mime::ApplicationVndEtsiIptvueprofileXml,
+    "application/vnd.etsi.mcid+xml" => Mime::ApplicationVndEtsiMcidXml,
+    "application/vnd.etsi.mheg5" => Mime::ApplicationVndEtsiMheg5,
+    "application/vnd.etsi.overload-control-policy-dataset+xml" => Mime::ApplicationVndEtsiOverloadControlPolicyDatasetXml,
+    "application/vnd.etsi.pstn+xml" => Mime::ApplicationVndEtsiPstnXml,
+    "application/vnd.etsi.sci+xml" => Mime::ApplicationVndEtsiSciXml,
+    "application/vnd.etsi.simservs+xml" => Mime::ApplicationVndEtsiSimservsXml,
+    "application/vnd.etsi.timestamp-token" => Mime::ApplicationVndEtsiTimestampToken,
+    "application/vnd.etsi.tsl+xml" => Mime::ApplicationVndEtsiTslXml,
+    "application/vnd.etsi.tsl.der" => Mime::ApplicationVndEtsiTslDer,
+    "application/vnd.eu.kasparian.car+json" => Mime::ApplicationVndEuKasparianCarJson,
+    "application/vnd.eudora.data" => Mime::ApplicationVndEudoraData,
+    "application/vnd.evolv.ecig.profile" => Mime::ApplicationVndEvolvEcigProfile,
+    "application/vnd.evolv.ecig.settings" => Mime::ApplicationVndEvolvEcigSettings,
+    "application/vnd.evolv.ecig.theme" => Mime::ApplicationVndEvolvEcigTheme,
+    "application/vnd.exstream-empower+zip" => Mime::ApplicationVndExstreamEmpowerZip,
+    "application/vnd.exstream-package" => Mime::ApplicationVndExstreamPackage,
+    "application/vnd.ezpix-album" => Mime::ApplicationVndEzpixAlbum,
+    "application/vnd.ezpix-package" => Mime::ApplicationVndEzpixPackage,
+    "application/vnd.f-secure.mobile" => Mime::ApplicationVndFSecureMobile,
+    "application/vnd.fastcopy-disk-image" => Mime::ApplicationVndFastcopyDiskImage,
+    "application/vnd.familysearch.gedcom+zip" => Mime::ApplicationVndFamilysearchGedcomZip,
+    "application/vnd.fdsn.mseed" => Mime::ApplicationVndFdsnMseed,
+    "application/vnd.fdsn.seed" => Mime::ApplicationVndFdsnSeed,
+    "application/vnd.ffsns" => Mime::ApplicationVndFfsns,
+    "application/vnd.ficlab.flb+zip" => Mime::ApplicationVndFiclabFlbZip,
+    "application/vnd.filmit.zfc" => Mime::ApplicationVndFilmitZfc,
+    "application/vnd.fints" => Mime::ApplicationVndFints,
+    "application/vnd.firemonkeys.cloudcell" => Mime::ApplicationVndFiremonkeysCloudcell,
+    "application/vnd.FloGraphIt" => Mime::ApplicationVndFlographit,
+    "application/vnd.fluxtime.clip" => Mime::ApplicationVndFluxtimeClip,
+    "application/vnd.font-fontforge-sfd" => Mime::ApplicationVndFontFontforgeSfd,
+    "application/vnd.framemaker" => Mime::ApplicationVndFramemaker,
+    "application/vnd.fsc.weblaunch" => Mime::ApplicationVndFscWeblaunch,
+    "application/vnd.fujifilm.fb.docuworks" => Mime::ApplicationVndFujifilmFbDocuworks,
+    "application/vnd.fujifilm.fb.docuworks.binder" => Mime::ApplicationVndFujifilmFbDocuworksBinder,
+    "application/vnd.fujifilm.fb.docuworks.container" => Mime::ApplicationVndFujifilmFbDocuworksContainer,
+    "application/vnd.fujifilm.fb.jfi+xml" => Mime::ApplicationVndFujifilmFbJfiXml,
+    "application/vnd.fujitsu.oasys" => Mime::ApplicationVndFujitsuOasys,
+    "application/vnd.fujitsu.oasys2" => Mime::ApplicationVndFujitsuOasys2,
+    "application/vnd.fujitsu.oasys3" => Mime::ApplicationVndFujitsuOasys3,
+    "application/vnd.fujitsu.oasysgp" => Mime::ApplicationVndFujitsuOasysgp,
+    "application/vnd.fujitsu.oasysprs" => Mime::ApplicationVndFujitsuOasysprs,
+    "application/vnd.fujixerox.ART4" => Mime::ApplicationVndFujixeroxArt4,
+    "application/vnd.fujixerox.ART-EX" => Mime::ApplicationVndFujixeroxArtEx,
+    "application/vnd.fujixerox.ddd" => Mime::ApplicationVndFujixeroxDdd,
+    "application/vnd.fujixerox.docuworks" => Mime::ApplicationVndFujixeroxDocuworks,
+    "application/vnd.fujixerox.docuworks.binder" => Mime::ApplicationVndFujixeroxDocuworksBinder,
+    "application/vnd.fujixerox.docuworks.container" => Mime::ApplicationVndFujixeroxDocuworksContainer,
+    "application/vnd.fujixerox.HBPL" => Mime::ApplicationVndFujixeroxHbpl,
+    "application/vnd.fut-misnet" => Mime::ApplicationVndFutMisnet,
+    "application/vnd.futoin+cbor" => Mime::ApplicationVndFutoinCbor,
+    "application/vnd.futoin+json" => Mime::ApplicationVndFutoinJson,
+    "application/vnd.fuzzysheet" => Mime::ApplicationVndFuzzysheet,
+    "application/vnd.genomatix.tuxedo" => Mime::ApplicationVndGenomatixTuxedo,
+    "application/vnd.genozip" => Mime::ApplicationVndGenozip,
+    "application/vnd.gentics.grd+json" => Mime::ApplicationVndGenticsGrdJson,
+    "application/vnd.gentoo.catmetadata+xml" => Mime::ApplicationVndGentooCatmetadataXml,
+    "application/vnd.gentoo.ebuild" => Mime::ApplicationVndGentooEbuild,
+    "application/vnd.gentoo.eclass" => Mime::ApplicationVndGentooEclass,
+    "application/vnd.gentoo.gpkg" => Mime::ApplicationVndGentooGpkg,
+    "application/vnd.gentoo.manifest" => Mime::ApplicationVndGentooManifest,
+    "application/vnd.gentoo.xpak" => Mime::ApplicationVndGentooXpak,
+    "application/vnd.gentoo.pkgmetadata+xml" => Mime::ApplicationVndGentooPkgmetadataXml,
+    "application/vnd.geogebra.file" => Mime::ApplicationVndGeogebraFile,
+    "application/vnd.geogebra.slides" => Mime::ApplicationVndGeogebraSlides,
+    "application/vnd.geogebra.tool" => Mime::ApplicationVndGeogebraTool,
+    "application/vnd.geometry-explorer" => Mime::ApplicationVndGeometryExplorer,
+    "application/vnd.geonext" => Mime::ApplicationVndGeonext,
+    "application/vnd.geoplan" => Mime::ApplicationVndGeoplan,
+    "application/vnd.geospace" => Mime::ApplicationVndGeospace,
+    "application/vnd.gerber" => Mime::ApplicationVndGerber,
+    "application/vnd.globalplatform.card-content-mgt" => Mime::ApplicationVndGlobalplatformCardContentMgt,
+    "application/vnd.globalplatform.card-content-mgt-response" => Mime::ApplicationVndGlobalplatformCardContentMgtResponse,
+    "application/vnd.gnu.taler.exchange+json" => Mime::ApplicationVndGnuTalerExchangeJson,
+    "application/vnd.gnu.taler.merchant+json" => Mime::ApplicationVndGnuTalerMerchantJson,
+    "application/vnd.google-earth.kml+xml" => Mime::ApplicationVndGoogleEarthKmlXml,
+    "application/vnd.google-earth.kmz" => Mime::ApplicationVndGoogleEarthKmz,
+    "application/vnd.gov.sk.e-form+xml" => Mime::ApplicationVndGovSkEFormXml,
+    "application/vnd.gov.sk.e-form+zip" => Mime::ApplicationVndGovSkEFormZip,
+    "application/vnd.gov.sk.xmldatacontainer+xml" => Mime::ApplicationVndGovSkXmldatacontainerXml,
+    "application/vnd.gpxsee.map+xml" => Mime::ApplicationVndGpxseeMapXml,
+    "application/vnd.grafeq" => Mime::ApplicationVndGrafeq,
+    "application/vnd.gridmp" => Mime::ApplicationVndGridmp,
+    "application/vnd.groove-account" => Mime::ApplicationVndGrooveAccount,
+    "application/vnd.groove-help" => Mime::ApplicationVndGrooveHelp,
+    "application/vnd.groove-identity-message" => Mime::ApplicationVndGrooveIdentityMessage,
+    "application/vnd.groove-injector" => Mime::ApplicationVndGrooveInjector,
+    "application/vnd.groove-tool-message" => Mime::ApplicationVndGrooveToolMessage,
+    "application/vnd.groove-tool-template" => Mime::ApplicationVndGrooveToolTemplate,
+    "application/vnd.groove-vcard" => Mime::ApplicationVndGrooveVcard,
+    "application/vnd.hal+json" => Mime::ApplicationVndHalJson,
+    "application/vnd.hal+xml" => Mime::ApplicationVndHalXml,
+    "application/vnd.HandHeld-Entertainment+xml" => Mime::ApplicationVndHandheldEntertainmentXml,
+    "application/vnd.hbci" => Mime::ApplicationVndHbci,
+    "application/vnd.hc+json" => Mime::ApplicationVndHcJson,
+    "application/vnd.hcl-bireports" => Mime::ApplicationVndHclBireports,
+    "application/vnd.hdt" => Mime::ApplicationVndHdt,
+    "application/vnd.heroku+json" => Mime::ApplicationVndHerokuJson,
+    "application/vnd.hhe.lesson-player" => Mime::ApplicationVndHheLessonPlayer,
+    "application/vnd.hp-HPGL" => Mime::ApplicationVndHpHpgl,
+    "application/vnd.hp-hpid" => Mime::ApplicationVndHpHpid,
+    "application/vnd.hp-hps" => Mime::ApplicationVndHpHps,
+    "application/vnd.hp-jlyt" => Mime::ApplicationVndHpJlyt,
+    "application/vnd.hp-PCL" => Mime::ApplicationVndHpPcl,
+    "application/vnd.hp-PCLXL" => Mime::ApplicationVndHpPclxl,
+    "application/vnd.hsl" => Mime::ApplicationVndHsl,
+    "application/vnd.httphone" => Mime::ApplicationVndHttphone,
+    "application/vnd.hydrostatix.sof-data" => Mime::ApplicationVndHydrostatixSofData,
+    "application/vnd.hyper-item+json" => Mime::ApplicationVndHyperItemJson,
+    "application/vnd.hyper+json" => Mime::ApplicationVndHyperJson,
+    "application/vnd.hyperdrive+json" => Mime::ApplicationVndHyperdriveJson,
+    "application/vnd.hzn-3d-crossword" => Mime::ApplicationVndHzn3dCrossword,
+    "application/vnd.ibm.electronic-media" => Mime::ApplicationVndIbmElectronicMedia,
+    "application/vnd.ibm.MiniPay" => Mime::ApplicationVndIbmMinipay,
+    "application/vnd.ibm.rights-management" => Mime::ApplicationVndIbmRightsManagement,
+    "application/vnd.ibm.secure-container" => Mime::ApplicationVndIbmSecureContainer,
+    "application/vnd.iccprofile" => Mime::ApplicationVndIccprofile,
+    "application/vnd.ieee.1905" => Mime::ApplicationVndIeee1905,
+    "application/vnd.igloader" => Mime::ApplicationVndIgloader,
+    "application/vnd.imagemeter.folder+zip" => Mime::ApplicationVndImagemeterFolderZip,
+    "application/vnd.imagemeter.image+zip" => Mime::ApplicationVndImagemeterImageZip,
+    "application/vnd.immervision-ivp" => Mime::ApplicationVndImmervisionIvp,
+    "application/vnd.immervision-ivu" => Mime::ApplicationVndImmervisionIvu,
+    "application/vnd.ims.imsccv1p1" => Mime::ApplicationVndImsImsccv1p1,
+    "application/vnd.ims.imsccv1p2" => Mime::ApplicationVndImsImsccv1p2,
+    "application/vnd.ims.imsccv1p3" => Mime::ApplicationVndImsImsccv1p3,
+    "application/vnd.ims.lis.v2.result+json" => Mime::ApplicationVndImsLisV2ResultJson,
+    "application/vnd.ims.lti.v2.toolconsumerprofile+json" => Mime::ApplicationVndImsLtiV2ToolconsumerprofileJson,
+    "application/vnd.ims.lti.v2.toolproxy.id+json" => Mime::ApplicationVndImsLtiV2ToolproxyIdJson,
+    "application/vnd.ims.lti.v2.toolproxy+json" => Mime::ApplicationVndImsLtiV2ToolproxyJson,
+    "application/vnd.ims.lti.v2.toolsettings+json" => Mime::ApplicationVndImsLtiV2ToolsettingsJson,
+    "application/vnd.ims.lti.v2.toolsettings.simple+json" => Mime::ApplicationVndImsLtiV2ToolsettingsSimpleJson,
+    "application/vnd.informedcontrol.rms+xml" => Mime::ApplicationVndInformedcontrolRmsXml,
+    "application/vnd.infotech.project" => Mime::ApplicationVndInfotechProject,
+    "application/vnd.infotech.project+xml" => Mime::ApplicationVndInfotechProjectXml,
+    "application/vnd.innopath.wamp.notification" => Mime::ApplicationVndInnopathWampNotification,
+    "application/vnd.insors.igm" => Mime::ApplicationVndInsorsIgm,
+    "application/vnd.intercon.formnet" => Mime::ApplicationVndInterconFormnet,
+    "application/vnd.intergeo" => Mime::ApplicationVndIntergeo,
+    "application/vnd.intertrust.digibox" => Mime::ApplicationVndIntertrustDigibox,
+    "application/vnd.intertrust.nncp" => Mime::ApplicationVndIntertrustNncp,
+    "application/vnd.intu.qbo" => Mime::ApplicationVndIntuQbo,
+    "application/vnd.intu.qfx" => Mime::ApplicationVndIntuQfx,
+    "application/vnd.ipfs.ipns-record" => Mime::ApplicationVndIpfsIpnsRecord,
+    "application/vnd.ipld.car" => Mime::ApplicationVndIpldCar,
+    "application/vnd.ipld.dag-cbor" => Mime::ApplicationVndIpldDagCbor,
+    "application/vnd.ipld.dag-json" => Mime::ApplicationVndIpldDagJson,
+    "application/vnd.ipld.raw" => Mime::ApplicationVndIpldRaw,
+    "application/vnd.iptc.g2.catalogitem+xml" => Mime::ApplicationVndIptcG2CatalogitemXml,
+    "application/vnd.iptc.g2.conceptitem+xml" => Mime::ApplicationVndIptcG2ConceptitemXml,
+    "application/vnd.iptc.g2.knowledgeitem+xml" => Mime::ApplicationVndIptcG2KnowledgeitemXml,
+    "application/vnd.iptc.g2.newsitem+xml" => Mime::ApplicationVndIptcG2NewsitemXml,
+    "application/vnd.iptc.g2.newsmessage+xml" => Mime::ApplicationVndIptcG2NewsmessageXml,
+    "application/vnd.iptc.g2.packageitem+xml" => Mime::ApplicationVndIptcG2PackageitemXml,
+    "application/vnd.iptc.g2.planningitem+xml" => Mime::ApplicationVndIptcG2PlanningitemXml,
+    "application/vnd.ipunplugged.rcprofile" => Mime::ApplicationVndIpunpluggedRcprofile,
+    "application/vnd.irepository.package+xml" => Mime::ApplicationVndIrepositoryPackageXml,
+    "application/vnd.is-xpr" => Mime::ApplicationVndIsXpr,
+    "application/vnd.isac.fcs" => Mime::ApplicationVndIsacFcs,
+    "application/vnd.jam" => Mime::ApplicationVndJam,
+    "application/vnd.iso11783-10+zip" => Mime::ApplicationVndIso1178310Zip,
+    "application/vnd.japannet-directory-service" => Mime::ApplicationVndJapannetDirectoryService,
+    "application/vnd.japannet-jpnstore-wakeup" => Mime::ApplicationVndJapannetJpnstoreWakeup,
+    "application/vnd.japannet-payment-wakeup" => Mime::ApplicationVndJapannetPaymentWakeup,
+    "application/vnd.japannet-registration" => Mime::ApplicationVndJapannetRegistration,
+    "application/vnd.japannet-registration-wakeup" => Mime::ApplicationVndJapannetRegistrationWakeup,
+    "application/vnd.japannet-setstore-wakeup" => Mime::ApplicationVndJapannetSetstoreWakeup,
+    "application/vnd.japannet-verification" => Mime::ApplicationVndJapannetVerification,
+    "application/vnd.japannet-verification-wakeup" => Mime::ApplicationVndJapannetVerificationWakeup,
+    "application/vnd.jcp.javame.midlet-rms" => Mime::ApplicationVndJcpJavameMidletRms,
+    "application/vnd.jisp" => Mime::ApplicationVndJisp,
+    "application/vnd.joost.joda-archive" => Mime::ApplicationVndJoostJodaArchive,
+    "application/vnd.jsk.isdn-ngn" => Mime::ApplicationVndJskIsdnNgn,
+    "application/vnd.kahootz" => Mime::ApplicationVndKahootz,
+    "application/vnd.kde.karbon" => Mime::ApplicationVndKdeKarbon,
+    "application/vnd.kde.kchart" => Mime::ApplicationVndKdeKchart,
+    "application/vnd.kde.kformula" => Mime::ApplicationVndKdeKformula,
+    "application/vnd.kde.kivio" => Mime::ApplicationVndKdeKivio,
+    "application/vnd.kde.kontour" => Mime::ApplicationVndKdeKontour,
+    "application/vnd.kde.kpresenter" => Mime::ApplicationVndKdeKpresenter,
+    "application/vnd.kde.kspread" => Mime::ApplicationVndKdeKspread,
+    "application/vnd.kde.kword" => Mime::ApplicationVndKdeKword,
+    "application/vnd.kenameaapp" => Mime::ApplicationVndKenameaapp,
+    "application/vnd.kidspiration" => Mime::ApplicationVndKidspiration,
+    "application/vnd.Kinar" => Mime::ApplicationVndKinar,
+    "application/vnd.koan" => Mime::ApplicationVndKoan,
+    "application/vnd.kodak-descriptor" => Mime::ApplicationVndKodakDescriptor,
+    "application/vnd.las" => Mime::ApplicationVndLas,
+    "application/vnd.las.las+json" => Mime::ApplicationVndLasLasJson,
+    "application/vnd.las.las+xml" => Mime::ApplicationVndLasLasXml,
+    "application/vnd.laszip" => Mime::ApplicationVndLaszip,
+    "application/vnd.leap+json" => Mime::ApplicationVndLeapJson,
+    "application/vnd.liberty-request+xml" => Mime::ApplicationVndLibertyRequestXml,
+    "application/vnd.llamagraphics.life-balance.desktop" => Mime::ApplicationVndLlamagraphicsLifeBalanceDesktop,
+    "application/vnd.llamagraphics.life-balance.exchange+xml" => Mime::ApplicationVndLlamagraphicsLifeBalanceExchangeXml,
+    "application/vnd.logipipe.circuit+zip" => Mime::ApplicationVndLogipipeCircuitZip,
+    "application/vnd.loom" => Mime::ApplicationVndLoom,
+    "application/vnd.lotus-1-2-3" => Mime::ApplicationVndLotus123,
+    "application/vnd.lotus-approach" => Mime::ApplicationVndLotusApproach,
+    "application/vnd.lotus-freelance" => Mime::ApplicationVndLotusFreelance,
+    "application/vnd.lotus-notes" => Mime::ApplicationVndLotusNotes,
+    "application/vnd.lotus-organizer" => Mime::ApplicationVndLotusOrganizer,
+    "application/vnd.lotus-screencam" => Mime::ApplicationVndLotusScreencam,
+    "application/vnd.lotus-wordpro" => Mime::ApplicationVndLotusWordpro,
+    "application/vnd.macports.portpkg" => Mime::ApplicationVndMacportsPortpkg,
+    "application/vnd.mapbox-vector-tile" => Mime::ApplicationVndMapboxVectorTile,
+    "application/vnd.marlin.drm.actiontoken+xml" => Mime::ApplicationVndMarlinDrmActiontokenXml,
+    "application/vnd.marlin.drm.conftoken+xml" => Mime::ApplicationVndMarlinDrmConftokenXml,
+    "application/vnd.marlin.drm.license+xml" => Mime::ApplicationVndMarlinDrmLicenseXml,
+    "application/vnd.marlin.drm.mdcf" => Mime::ApplicationVndMarlinDrmMdcf,
+    "application/vnd.mason+json" => Mime::ApplicationVndMasonJson,
+    "application/vnd.maxar.archive.3tz+zip" => Mime::ApplicationVndMaxarArchive3tzZip,
+    "application/vnd.maxmind.maxmind-db" => Mime::ApplicationVndMaxmindMaxmindDb,
+    "application/vnd.mcd" => Mime::ApplicationVndMcd,
+    "application/vnd.mdl" => Mime::ApplicationVndMdl,
+    "application/vnd.mdl-mbsdf" => Mime::ApplicationVndMdlMbsdf,
+    "application/vnd.medcalcdata" => Mime::ApplicationVndMedcalcdata,
+    "application/vnd.mediastation.cdkey" => Mime::ApplicationVndMediastationCdkey,
+    "application/vnd.medicalholodeck.recordxr" => Mime::ApplicationVndMedicalholodeckRecordxr,
+    "application/vnd.meridian-slingshot" => Mime::ApplicationVndMeridianSlingshot,
+    "application/vnd.MFER" => Mime::ApplicationVndMfer,
+    "application/vnd.mfmp" => Mime::ApplicationVndMfmp,
+    "application/vnd.micro+json" => Mime::ApplicationVndMicroJson,
+    "application/vnd.micrografx.flo" => Mime::ApplicationVndMicrografxFlo,
+    "application/vnd.micrografx.igx" => Mime::ApplicationVndMicrografxIgx,
+    "application/vnd.microsoft.portable-executable" => Mime::ApplicationVndMicrosoftPortableExecutable,
+    "application/vnd.microsoft.windows.thumbnail-cache" => Mime::ApplicationVndMicrosoftWindowsThumbnailCache,
+    "application/vnd.miele+json" => Mime::ApplicationVndMieleJson,
+    "application/vnd.mif" => Mime::ApplicationVndMif,
+    "application/vnd.minisoft-hp3000-save" => Mime::ApplicationVndMinisoftHp3000Save,
+    "application/vnd.mitsubishi.misty-guard.trustweb" => Mime::ApplicationVndMitsubishiMistyGuardTrustweb,
+    "application/vnd.Mobius.DAF" => Mime::ApplicationVndMobiusDaf,
+    "application/vnd.Mobius.DIS" => Mime::ApplicationVndMobiusDis,
+    "application/vnd.Mobius.MBK" => Mime::ApplicationVndMobiusMbk,
+    "application/vnd.Mobius.MQY" => Mime::ApplicationVndMobiusMqy,
+    "application/vnd.Mobius.MSL" => Mime::ApplicationVndMobiusMsl,
+    "application/vnd.Mobius.PLC" => Mime::ApplicationVndMobiusPlc,
+    "application/vnd.Mobius.TXF" => Mime::ApplicationVndMobiusTxf,
+    "application/vnd.modl" => Mime::ApplicationVndModl,
+    "application/vnd.mophun.application" => Mime::ApplicationVndMophunApplication,
+    "application/vnd.mophun.certificate" => Mime::ApplicationVndMophunCertificate,
+    "application/vnd.motorola.flexsuite" => Mime::ApplicationVndMotorolaFlexsuite,
+    "application/vnd.motorola.flexsuite.adsi" => Mime::ApplicationVndMotorolaFlexsuiteAdsi,
+    "application/vnd.motorola.flexsuite.fis" => Mime::ApplicationVndMotorolaFlexsuiteFis,
+    "application/vnd.motorola.flexsuite.gotap" => Mime::ApplicationVndMotorolaFlexsuiteGotap,
+    "application/vnd.motorola.flexsuite.kmr" => Mime::ApplicationVndMotorolaFlexsuiteKmr,
+    "application/vnd.motorola.flexsuite.ttc" => Mime::ApplicationVndMotorolaFlexsuiteTtc,
+    "application/vnd.motorola.flexsuite.wem" => Mime::ApplicationVndMotorolaFlexsuiteWem,
+    "application/vnd.motorola.iprm" => Mime::ApplicationVndMotorolaIprm,
+    "application/vnd.mozilla.xul+xml" => Mime::ApplicationVndMozillaXulXml,
+    "application/vnd.ms-artgalry" => Mime::ApplicationVndMsArtgalry,
+    "application/vnd.ms-asf" => Mime::ApplicationVndMsAsf,
+    "application/vnd.ms-cab-compressed" => Mime::ApplicationVndMsCabCompressed,
+    "application/vnd.ms-3mfdocument" => Mime::ApplicationVndMs3mfdocument,
+    "application/vnd.ms-excel" => Mime::ApplicationVndMsExcel,
+    "application/vnd.ms-excel.addin.macroEnabled.12" => Mime::ApplicationVndMsExcelAddinMacroenabled12,
+    "application/vnd.ms-excel.sheet.binary.macroEnabled.12" => Mime::ApplicationVndMsExcelSheetBinaryMacroenabled12,
+    "application/vnd.ms-excel.sheet.macroEnabled.12" => Mime::ApplicationVndMsExcelSheetMacroenabled12,
+    "application/vnd.ms-excel.template.macroEnabled.12" => Mime::ApplicationVndMsExcelTemplateMacroenabled12,
+    "application/vnd.ms-fontobject" => Mime::ApplicationVndMsFontobject,
+    "application/vnd.ms-htmlhelp" => Mime::ApplicationVndMsHtmlhelp,
+    "application/vnd.ms-ims" => Mime::ApplicationVndMsIms,
+    "application/vnd.ms-lrm" => Mime::ApplicationVndMsLrm,
+    "application/vnd.ms-office.activeX+xml" => Mime::ApplicationVndMsOfficeActivexXml,
+    "application/vnd.ms-officetheme" => Mime::ApplicationVndMsOfficetheme,
+    "application/vnd.ms-playready.initiator+xml" => Mime::ApplicationVndMsPlayreadyInitiatorXml,
+    "application/vnd.ms-powerpoint" => Mime::ApplicationVndMsPowerpoint,
+    "application/vnd.ms-powerpoint.addin.macroEnabled.12" => Mime::ApplicationVndMsPowerpointAddinMacroenabled12,
+    "application/vnd.ms-powerpoint.presentation.macroEnabled.12" => Mime::ApplicationVndMsPowerpointPresentationMacroenabled12,
+    "application/vnd.ms-powerpoint.slide.macroEnabled.12" => Mime::ApplicationVndMsPowerpointSlideMacroenabled12,
+    "application/vnd.ms-powerpoint.slideshow.macroEnabled.12" => Mime::ApplicationVndMsPowerpointSlideshowMacroenabled12,
+    "application/vnd.ms-powerpoint.template.macroEnabled.12" => Mime::ApplicationVndMsPowerpointTemplateMacroenabled12,
+    "application/vnd.ms-PrintDeviceCapabilities+xml" => Mime::ApplicationVndMsPrintdevicecapabilitiesXml,
+    "application/vnd.ms-PrintSchemaTicket+xml" => Mime::ApplicationVndMsPrintschematicketXml,
+    "application/vnd.ms-project" => Mime::ApplicationVndMsProject,
+    "application/vnd.ms-tnef" => Mime::ApplicationVndMsTnef,
+    "application/vnd.ms-windows.devicepairing" => Mime::ApplicationVndMsWindowsDevicepairing,
+    "application/vnd.ms-windows.nwprinting.oob" => Mime::ApplicationVndMsWindowsNwprintingOob,
+    "application/vnd.ms-windows.printerpairing" => Mime::ApplicationVndMsWindowsPrinterpairing,
+    "application/vnd.ms-windows.wsd.oob" => Mime::ApplicationVndMsWindowsWsdOob,
+    "application/vnd.ms-wmdrm.lic-chlg-req" => Mime::ApplicationVndMsWmdrmLicChlgReq,
+    "application/vnd.ms-wmdrm.lic-resp" => Mime::ApplicationVndMsWmdrmLicResp,
+    "application/vnd.ms-wmdrm.meter-chlg-req" => Mime::ApplicationVndMsWmdrmMeterChlgReq,
+    "application/vnd.ms-wmdrm.meter-resp" => Mime::ApplicationVndMsWmdrmMeterResp,
+    "application/vnd.ms-word.document.macroEnabled.12" => Mime::ApplicationVndMsWordDocumentMacroenabled12,
+    "application/vnd.ms-word.template.macroEnabled.12" => Mime::ApplicationVndMsWordTemplateMacroenabled12,
+    "application/vnd.ms-works" => Mime::ApplicationVndMsWorks,
+    "application/vnd.ms-wpl" => Mime::ApplicationVndMsWpl,
+    "application/vnd.ms-xpsdocument" => Mime::ApplicationVndMsXpsdocument,
+    "application/vnd.msa-disk-image" => Mime::ApplicationVndMsaDiskImage,
+    "application/vnd.mseq" => Mime::ApplicationVndMseq,
+    "application/vnd.msign" => Mime::ApplicationVndMsign,
+    "application/vnd.multiad.creator" => Mime::ApplicationVndMultiadCreator,
+    "application/vnd.multiad.creator.cif" => Mime::ApplicationVndMultiadCreatorCif,
+    "application/vnd.musician" => Mime::ApplicationVndMusician,
+    "application/vnd.music-niff" => Mime::ApplicationVndMusicNiff,
+    "application/vnd.muvee.style" => Mime::ApplicationVndMuveeStyle,
+    "application/vnd.mynfc" => Mime::ApplicationVndMynfc,
+    "application/vnd.nacamar.ybrid+json" => Mime::ApplicationVndNacamarYbridJson,
+    "application/vnd.ncd.control" => Mime::ApplicationVndNcdControl,
+    "application/vnd.ncd.reference" => Mime::ApplicationVndNcdReference,
+    "application/vnd.nearst.inv+json" => Mime::ApplicationVndNearstInvJson,
+    "application/vnd.nebumind.line" => Mime::ApplicationVndNebumindLine,
+    "application/vnd.nervana" => Mime::ApplicationVndNervana,
+    "application/vnd.netfpx" => Mime::ApplicationVndNetfpx,
+    "application/vnd.neurolanguage.nlu" => Mime::ApplicationVndNeurolanguageNlu,
+    "application/vnd.nimn" => Mime::ApplicationVndNimn,
+    "application/vnd.nintendo.snes.rom" => Mime::ApplicationVndNintendoSnesRom,
+    "application/vnd.nintendo.nitro.rom" => Mime::ApplicationVndNintendoNitroRom,
+    "application/vnd.nitf" => Mime::ApplicationVndNitf,
+    "application/vnd.noblenet-directory" => Mime::ApplicationVndNoblenetDirectory,
+    "application/vnd.noblenet-sealer" => Mime::ApplicationVndNoblenetSealer,
+    "application/vnd.noblenet-web" => Mime::ApplicationVndNoblenetWeb,
+    "application/vnd.nokia.catalogs" => Mime::ApplicationVndNokiaCatalogs,
+    "application/vnd.nokia.conml+wbxml" => Mime::ApplicationVndNokiaConmlWbxml,
+    "application/vnd.nokia.conml+xml" => Mime::ApplicationVndNokiaConmlXml,
+    "application/vnd.nokia.iptv.config+xml" => Mime::ApplicationVndNokiaIptvConfigXml,
+    "application/vnd.nokia.iSDS-radio-presets" => Mime::ApplicationVndNokiaIsdsRadioPresets,
+    "application/vnd.nokia.landmark+wbxml" => Mime::ApplicationVndNokiaLandmarkWbxml,
+    "application/vnd.nokia.landmark+xml" => Mime::ApplicationVndNokiaLandmarkXml,
+    "application/vnd.nokia.landmarkcollection+xml" => Mime::ApplicationVndNokiaLandmarkcollectionXml,
+    "application/vnd.nokia.ncd" => Mime::ApplicationVndNokiaNcd,
+    "application/vnd.nokia.n-gage.ac+xml" => Mime::ApplicationVndNokiaNGageAcXml,
+    "application/vnd.nokia.n-gage.data" => Mime::ApplicationVndNokiaNGageData,
+    "application/vnd.nokia.pcd+wbxml" => Mime::ApplicationVndNokiaPcdWbxml,
+    "application/vnd.nokia.pcd+xml" => Mime::ApplicationVndNokiaPcdXml,
+    "application/vnd.nokia.radio-preset" => Mime::ApplicationVndNokiaRadioPreset,
+    "application/vnd.nokia.radio-presets" => Mime::ApplicationVndNokiaRadioPresets,
+    "application/vnd.novadigm.EDM" => Mime::ApplicationVndNovadigmEdm,
+    "application/vnd.novadigm.EDX" => Mime::ApplicationVndNovadigmEdx,
+    "application/vnd.novadigm.EXT" => Mime::ApplicationVndNovadigmExt,
+    "application/vnd.ntt-local.content-share" => Mime::ApplicationVndNttLocalContentShare,
+    "application/vnd.ntt-local.file-transfer" => Mime::ApplicationVndNttLocalFileTransfer,
+    "application/vnd.ntt-local.ogw_remote-access" => Mime::ApplicationVndNttLocalOgwRemoteAccess,
+    "application/vnd.ntt-local.sip-ta_remote" => Mime::ApplicationVndNttLocalSipTaRemote,
+    "application/vnd.ntt-local.sip-ta_tcp_stream" => Mime::ApplicationVndNttLocalSipTaTcpStream,
+    "application/vnd.oasis.opendocument.base" => Mime::ApplicationVndOasisOpendocumentBase,
+    "application/vnd.oasis.opendocument.chart" => Mime::ApplicationVndOasisOpendocumentChart,
+    "application/vnd.oasis.opendocument.chart-template" => Mime::ApplicationVndOasisOpendocumentChartTemplate,
+    "application/vnd.oasis.opendocument.formula" => Mime::ApplicationVndOasisOpendocumentFormula,
+    "application/vnd.oasis.opendocument.formula-template" => Mime::ApplicationVndOasisOpendocumentFormulaTemplate,
+    "application/vnd.oasis.opendocument.graphics" => Mime::ApplicationVndOasisOpendocumentGraphics,
+    "application/vnd.oasis.opendocument.graphics-template" => Mime::ApplicationVndOasisOpendocumentGraphicsTemplate,
+    "application/vnd.oasis.opendocument.image" => Mime::ApplicationVndOasisOpendocumentImage,
+    "application/vnd.oasis.opendocument.image-template" => Mime::ApplicationVndOasisOpendocumentImageTemplate,
+    "application/vnd.oasis.opendocument.presentation" => Mime::ApplicationVndOasisOpendocumentPresentation,
+    "application/vnd.oasis.opendocument.presentation-template" => Mime::ApplicationVndOasisOpendocumentPresentationTemplate,
+    "application/vnd.oasis.opendocument.spreadsheet" => Mime::ApplicationVndOasisOpendocumentSpreadsheet,
+    "application/vnd.oasis.opendocument.spreadsheet-template" => Mime::ApplicationVndOasisOpendocumentSpreadsheetTemplate,
+    "application/vnd.oasis.opendocument.text" => Mime::ApplicationVndOasisOpendocumentText,
+    "application/vnd.oasis.opendocument.text-master" => Mime::ApplicationVndOasisOpendocumentTextMaster,
+    "application/vnd.oasis.opendocument.text-master-template" => Mime::ApplicationVndOasisOpendocumentTextMasterTemplate,
+    "application/vnd.oasis.opendocument.text-template" => Mime::ApplicationVndOasisOpendocumentTextTemplate,
+    "application/vnd.oasis.opendocument.text-web" => Mime::ApplicationVndOasisOpendocumentTextWeb,
+    "application/vnd.obn" => Mime::ApplicationVndObn,
+    "application/vnd.ocf+cbor" => Mime::ApplicationVndOcfCbor,
+    "application/vnd.oci.image.manifest.v1+json" => Mime::ApplicationVndOciImageManifestV1Json,
+    "application/vnd.oftn.l10n+json" => Mime::ApplicationVndOftnL10nJson,
+    "application/vnd.oipf.contentaccessdownload+xml" => Mime::ApplicationVndOipfContentaccessdownloadXml,
+    "application/vnd.oipf.contentaccessstreaming+xml" => Mime::ApplicationVndOipfContentaccessstreamingXml,
+    "application/vnd.oipf.cspg-hexbinary" => Mime::ApplicationVndOipfCspgHexbinary,
+    "application/vnd.oipf.dae.svg+xml" => Mime::ApplicationVndOipfDaeSvgXml,
+    "application/vnd.oipf.dae.xhtml+xml" => Mime::ApplicationVndOipfDaeXhtmlXml,
+    "application/vnd.oipf.mippvcontrolmessage+xml" => Mime::ApplicationVndOipfMippvcontrolmessageXml,
+    "application/vnd.oipf.pae.gem" => Mime::ApplicationVndOipfPaeGem,
+    "application/vnd.oipf.spdiscovery+xml" => Mime::ApplicationVndOipfSpdiscoveryXml,
+    "application/vnd.oipf.spdlist+xml" => Mime::ApplicationVndOipfSpdlistXml,
+    "application/vnd.oipf.ueprofile+xml" => Mime::ApplicationVndOipfUeprofileXml,
+    "application/vnd.oipf.userprofile+xml" => Mime::ApplicationVndOipfUserprofileXml,
+    "application/vnd.olpc-sugar" => Mime::ApplicationVndOlpcSugar,
+    "application/vnd.oma.bcast.associated-procedure-parameter+xml" => Mime::ApplicationVndOmaBcastAssociatedProcedureParameterXml,
+    "application/vnd.oma.bcast.drm-trigger+xml" => Mime::ApplicationVndOmaBcastDrmTriggerXml,
+    "application/vnd.oma.bcast.imd+xml" => Mime::ApplicationVndOmaBcastImdXml,
+    "application/vnd.oma.bcast.ltkm" => Mime::ApplicationVndOmaBcastLtkm,
+    "application/vnd.oma.bcast.notification+xml" => Mime::ApplicationVndOmaBcastNotificationXml,
+    "application/vnd.oma.bcast.provisioningtrigger" => Mime::ApplicationVndOmaBcastProvisioningtrigger,
+    "application/vnd.oma.bcast.sgboot" => Mime::ApplicationVndOmaBcastSgboot,
+    "application/vnd.oma.bcast.sgdd+xml" => Mime::ApplicationVndOmaBcastSgddXml,
+    "application/vnd.oma.bcast.sgdu" => Mime::ApplicationVndOmaBcastSgdu,
+    "application/vnd.oma.bcast.simple-symbol-container" => Mime::ApplicationVndOmaBcastSimpleSymbolContainer,
+    "application/vnd.oma.bcast.smartcard-trigger+xml" => Mime::ApplicationVndOmaBcastSmartcardTriggerXml,
+    "application/vnd.oma.bcast.sprov+xml" => Mime::ApplicationVndOmaBcastSprovXml,
+    "application/vnd.oma.bcast.stkm" => Mime::ApplicationVndOmaBcastStkm,
+    "application/vnd.oma.cab-address-book+xml" => Mime::ApplicationVndOmaCabAddressBookXml,
+    "application/vnd.oma.cab-feature-handler+xml" => Mime::ApplicationVndOmaCabFeatureHandlerXml,
+    "application/vnd.oma.cab-pcc+xml" => Mime::ApplicationVndOmaCabPccXml,
+    "application/vnd.oma.cab-subs-invite+xml" => Mime::ApplicationVndOmaCabSubsInviteXml,
+    "application/vnd.oma.cab-user-prefs+xml" => Mime::ApplicationVndOmaCabUserPrefsXml,
+    "application/vnd.oma.dcd" => Mime::ApplicationVndOmaDcd,
+    "application/vnd.oma.dcdc" => Mime::ApplicationVndOmaDcdc,
+    "application/vnd.oma.dd2+xml" => Mime::ApplicationVndOmaDd2Xml,
+    "application/vnd.oma.drm.risd+xml" => Mime::ApplicationVndOmaDrmRisdXml,
+    "application/vnd.oma.group-usage-list+xml" => Mime::ApplicationVndOmaGroupUsageListXml,
+    "application/vnd.oma.lwm2m+cbor" => Mime::ApplicationVndOmaLwm2mCbor,
+    "application/vnd.oma.lwm2m+json" => Mime::ApplicationVndOmaLwm2mJson,
+    "application/vnd.oma.lwm2m+tlv" => Mime::ApplicationVndOmaLwm2mTlv,
+    "application/vnd.oma.pal+xml" => Mime::ApplicationVndOmaPalXml,
+    "application/vnd.oma.poc.detailed-progress-report+xml" => Mime::ApplicationVndOmaPocDetailedProgressReportXml,
+    "application/vnd.oma.poc.final-report+xml" => Mime::ApplicationVndOmaPocFinalReportXml,
+    "application/vnd.oma.poc.groups+xml" => Mime::ApplicationVndOmaPocGroupsXml,
+    "application/vnd.oma.poc.invocation-descriptor+xml" => Mime::ApplicationVndOmaPocInvocationDescriptorXml,
+    "application/vnd.oma.poc.optimized-progress-report+xml" => Mime::ApplicationVndOmaPocOptimizedProgressReportXml,
+    "application/vnd.oma.push" => Mime::ApplicationVndOmaPush,
+    "application/vnd.oma.scidm.messages+xml" => Mime::ApplicationVndOmaScidmMessagesXml,
+    "application/vnd.oma.xcap-directory+xml" => Mime::ApplicationVndOmaXcapDirectoryXml,
+    "application/vnd.omads-email+xml" => Mime::ApplicationVndOmadsEmailXml,
+    "application/vnd.omads-file+xml" => Mime::ApplicationVndOmadsFileXml,
+    "application/vnd.omads-folder+xml" => Mime::ApplicationVndOmadsFolderXml,
+    "application/vnd.omaloc-supl-init" => Mime::ApplicationVndOmalocSuplInit,
+    "application/vnd.oma-scws-config" => Mime::ApplicationVndOmaScwsConfig,
+    "application/vnd.oma-scws-http-request" => Mime::ApplicationVndOmaScwsHttpRequest,
+    "application/vnd.oma-scws-http-response" => Mime::ApplicationVndOmaScwsHttpResponse,
+    "application/vnd.onepager" => Mime::ApplicationVndOnepager,
+    "application/vnd.onepagertamp" => Mime::ApplicationVndOnepagertamp,
+    "application/vnd.onepagertamx" => Mime::ApplicationVndOnepagertamx,
+    "application/vnd.onepagertat" => Mime::ApplicationVndOnepagertat,
+    "application/vnd.onepagertatp" => Mime::ApplicationVndOnepagertatp,
+    "application/vnd.onepagertatx" => Mime::ApplicationVndOnepagertatx,
+    "application/vnd.onvif.metadata" => Mime::ApplicationVndOnvifMetadata,
+    "application/vnd.openblox.game-binary" => Mime::ApplicationVndOpenbloxGameBinary,
+    "application/vnd.openblox.game+xml" => Mime::ApplicationVndOpenbloxGameXml,
+    "application/vnd.openeye.oeb" => Mime::ApplicationVndOpeneyeOeb,
+    "application/vnd.openstreetmap.data+xml" => Mime::ApplicationVndOpenstreetmapDataXml,
+    "application/vnd.opentimestamps.ots" => Mime::ApplicationVndOpentimestampsOts,
+    "application/vnd.openxmlformats-officedocument.custom-properties+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentCustomPropertiesXml,
+    "application/vnd.openxmlformats-officedocument.customXmlProperties+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentCustomxmlpropertiesXml,
+    "application/vnd.openxmlformats-officedocument.drawing+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentDrawingXml,
+    "application/vnd.openxmlformats-officedocument.drawingml.chart+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentDrawingmlChartXml,
+    "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentDrawingmlChartshapesXml,
+    "application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentDrawingmlDiagramcolorsXml,
+    "application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentDrawingmlDiagramdataXml,
+    "application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentDrawingmlDiagramlayoutXml,
+    "application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentDrawingmlDiagramstyleXml,
+    "application/vnd.openxmlformats-officedocument.extended-properties+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentExtendedPropertiesXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlCommentauthorsXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.comments+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlCommentsXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlHandoutmasterXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlNotesmasterXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlNotesslideXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.presentation" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlPresentation,
+    "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlPresentationMainXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.presProps+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlPrespropsXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.slide" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlide,
+    "application/vnd.openxmlformats-officedocument.presentationml.slide+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlideXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlidelayoutXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlidemasterXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.slideshow" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlideshow,
+    "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlideshowMainXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlideupdateinfoXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlTablestylesXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.tags+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlTagsXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.template" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlTemplate,
+    "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlTemplateMainXml,
+    "application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlViewpropsXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlCalcchainXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlChartsheetXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlCommentsXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlConnectionsXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlDialogsheetXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlExternallinkXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlPivotcachedefinitionXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlPivotcacherecordsXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlPivottableXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlQuerytableXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlRevisionheadersXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlRevisionlogXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSharedstringsXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheet,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheetMainXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheetmetadataXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlStylesXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlTableXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlTablesinglecellsXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.template" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlTemplate,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlTemplateMainXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlUsernamesXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlVolatiledependenciesXml,
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlWorksheetXml,
+    "application/vnd.openxmlformats-officedocument.theme+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentThemeXml,
+    "application/vnd.openxmlformats-officedocument.themeOverride+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentThemeoverrideXml,
+    "application/vnd.openxmlformats-officedocument.vmlDrawing" => Mime::ApplicationVndOpenxmlformatsOfficedocumentVmldrawing,
+    "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlCommentsXml,
+    "application/vnd.openxmlformats-officedocument.wordprocessingml.document" => Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlDocument,
+    "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlDocumentGlossaryXml,
+    "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlDocumentMainXml,
+    "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlEndnotesXml,
+    "application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlFonttableXml,
+    "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlFooterXml,
+    "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlFootnotesXml,
+    "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlNumberingXml,
+    "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlSettingsXml,
+    "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlStylesXml,
+    "application/vnd.openxmlformats-officedocument.wordprocessingml.template" => Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlTemplate,
+    "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlTemplateMainXml,
+    "application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml" => Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlWebsettingsXml,
+    "application/vnd.openxmlformats-package.core-properties+xml" => Mime::ApplicationVndOpenxmlformatsPackageCorePropertiesXml,
+    "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml" => Mime::ApplicationVndOpenxmlformatsPackageDigitalSignatureXmlsignatureXml,
+    "application/vnd.openxmlformats-package.relationships+xml" => Mime::ApplicationVndOpenxmlformatsPackageRelationshipsXml,
+    "application/vnd.oracle.resource+json" => Mime::ApplicationVndOracleResourceJson,
+    "application/vnd.orange.indata" => Mime::ApplicationVndOrangeIndata,
+    "application/vnd.osa.netdeploy" => Mime::ApplicationVndOsaNetdeploy,
+    "application/vnd.osgeo.mapguide.package" => Mime::ApplicationVndOsgeoMapguidePackage,
+    "application/vnd.osgi.bundle" => Mime::ApplicationVndOsgiBundle,
+    "application/vnd.osgi.dp" => Mime::ApplicationVndOsgiDp,
+    "application/vnd.osgi.subsystem" => Mime::ApplicationVndOsgiSubsystem,
+    "application/vnd.otps.ct-kip+xml" => Mime::ApplicationVndOtpsCtKipXml,
+    "application/vnd.oxli.countgraph" => Mime::ApplicationVndOxliCountgraph,
+    "application/vnd.pagerduty+json" => Mime::ApplicationVndPagerdutyJson,
+    "application/vnd.palm" => Mime::ApplicationVndPalm,
+    "application/vnd.panoply" => Mime::ApplicationVndPanoply,
+    "application/vnd.paos.xml" => Mime::ApplicationVndPaosXml,
+    "application/vnd.patentdive" => Mime::ApplicationVndPatentdive,
+    "application/vnd.patientecommsdoc" => Mime::ApplicationVndPatientecommsdoc,
+    "application/vnd.pawaafile" => Mime::ApplicationVndPawaafile,
+    "application/vnd.pcos" => Mime::ApplicationVndPcos,
+    "application/vnd.pg.format" => Mime::ApplicationVndPgFormat,
+    "application/vnd.pg.osasli" => Mime::ApplicationVndPgOsasli,
+    "application/vnd.piaccess.application-licence" => Mime::ApplicationVndPiaccessApplicationLicence,
+    "application/vnd.picsel" => Mime::ApplicationVndPicsel,
+    "application/vnd.pmi.widget" => Mime::ApplicationVndPmiWidget,
+    "application/vnd.poc.group-advertisement+xml" => Mime::ApplicationVndPocGroupAdvertisementXml,
+    "application/vnd.pocketlearn" => Mime::ApplicationVndPocketlearn,
+    "application/vnd.powerbuilder6" => Mime::ApplicationVndPowerbuilder6,
+    "application/vnd.powerbuilder6-s" => Mime::ApplicationVndPowerbuilder6S,
+    "application/vnd.powerbuilder7" => Mime::ApplicationVndPowerbuilder7,
+    "application/vnd.powerbuilder75" => Mime::ApplicationVndPowerbuilder75,
+    "application/vnd.powerbuilder75-s" => Mime::ApplicationVndPowerbuilder75S,
+    "application/vnd.powerbuilder7-s" => Mime::ApplicationVndPowerbuilder7S,
+    "application/vnd.preminet" => Mime::ApplicationVndPreminet,
+    "application/vnd.previewsystems.box" => Mime::ApplicationVndPreviewsystemsBox,
+    "application/vnd.proteus.magazine" => Mime::ApplicationVndProteusMagazine,
+    "application/vnd.psfs" => Mime::ApplicationVndPsfs,
+    "application/vnd.pt.mundusmundi" => Mime::ApplicationVndPtMundusmundi,
+    "application/vnd.publishare-delta-tree" => Mime::ApplicationVndPublishareDeltaTree,
+    "application/vnd.pvi.ptid1" => Mime::ApplicationVndPviPtid1,
+    "application/vnd.pwg-multiplexed" => Mime::ApplicationVndPwgMultiplexed,
+    "application/vnd.pwg-xhtml-print+xml" => Mime::ApplicationVndPwgXhtmlPrintXml,
+    "application/vnd.qualcomm.brew-app-res" => Mime::ApplicationVndQualcommBrewAppRes,
+    "application/vnd.quarantainenet" => Mime::ApplicationVndQuarantainenet,
+    "application/vnd.Quark.QuarkXPress" => Mime::ApplicationVndQuarkQuarkxpress,
+    "application/vnd.quobject-quoxdocument" => Mime::ApplicationVndQuobjectQuoxdocument,
+    "application/vnd.radisys.moml+xml" => Mime::ApplicationVndRadisysMomlXml,
+    "application/vnd.radisys.msml-audit-conf+xml" => Mime::ApplicationVndRadisysMsmlAuditConfXml,
+    "application/vnd.radisys.msml-audit-conn+xml" => Mime::ApplicationVndRadisysMsmlAuditConnXml,
+    "application/vnd.radisys.msml-audit-dialog+xml" => Mime::ApplicationVndRadisysMsmlAuditDialogXml,
+    "application/vnd.radisys.msml-audit-stream+xml" => Mime::ApplicationVndRadisysMsmlAuditStreamXml,
+    "application/vnd.radisys.msml-audit+xml" => Mime::ApplicationVndRadisysMsmlAuditXml,
+    "application/vnd.radisys.msml-conf+xml" => Mime::ApplicationVndRadisysMsmlConfXml,
+    "application/vnd.radisys.msml-dialog-base+xml" => Mime::ApplicationVndRadisysMsmlDialogBaseXml,
+    "application/vnd.radisys.msml-dialog-fax-detect+xml" => Mime::ApplicationVndRadisysMsmlDialogFaxDetectXml,
+    "application/vnd.radisys.msml-dialog-fax-sendrecv+xml" => Mime::ApplicationVndRadisysMsmlDialogFaxSendrecvXml,
+    "application/vnd.radisys.msml-dialog-group+xml" => Mime::ApplicationVndRadisysMsmlDialogGroupXml,
+    "application/vnd.radisys.msml-dialog-speech+xml" => Mime::ApplicationVndRadisysMsmlDialogSpeechXml,
+    "application/vnd.radisys.msml-dialog-transform+xml" => Mime::ApplicationVndRadisysMsmlDialogTransformXml,
+    "application/vnd.radisys.msml-dialog+xml" => Mime::ApplicationVndRadisysMsmlDialogXml,
+    "application/vnd.radisys.msml+xml" => Mime::ApplicationVndRadisysMsmlXml,
+    "application/vnd.rainstor.data" => Mime::ApplicationVndRainstorData,
+    "application/vnd.rapid" => Mime::ApplicationVndRapid,
+    "application/vnd.rar" => Mime::ApplicationVndRar,
+    "application/vnd.realvnc.bed" => Mime::ApplicationVndRealvncBed,
+    "application/vnd.recordare.musicxml" => Mime::ApplicationVndRecordareMusicxml,
+    "application/vnd.recordare.musicxml+xml" => Mime::ApplicationVndRecordareMusicxmlXml,
+    "application/vnd.RenLearn.rlprint" => Mime::ApplicationVndRenlearnRlprint,
+    "application/vnd.resilient.logic" => Mime::ApplicationVndResilientLogic,
+    "application/vnd.restful+json" => Mime::ApplicationVndRestfulJson,
+    "application/vnd.rig.cryptonote" => Mime::ApplicationVndRigCryptonote,
+    "application/vnd.route66.link66+xml" => Mime::ApplicationVndRoute66Link66Xml,
+    "application/vnd.rs-274x" => Mime::ApplicationVndRs274x,
+    "application/vnd.ruckus.download" => Mime::ApplicationVndRuckusDownload,
+    "application/vnd.s3sms" => Mime::ApplicationVndS3sms,
+    "application/vnd.sailingtracker.track" => Mime::ApplicationVndSailingtrackerTrack,
+    "application/vnd.sar" => Mime::ApplicationVndSar,
+    "application/vnd.sbm.cid" => Mime::ApplicationVndSbmCid,
+    "application/vnd.sbm.mid2" => Mime::ApplicationVndSbmMid2,
+    "application/vnd.scribus" => Mime::ApplicationVndScribus,
+    "application/vnd.sealed.3df" => Mime::ApplicationVndSealed3df,
+    "application/vnd.sealed.csf" => Mime::ApplicationVndSealedCsf,
+    "application/vnd.sealed.doc" => Mime::ApplicationVndSealedDoc,
+    "application/vnd.sealed.eml" => Mime::ApplicationVndSealedEml,
+    "application/vnd.sealed.mht" => Mime::ApplicationVndSealedMht,
+    "application/vnd.sealed.net" => Mime::ApplicationVndSealedNet,
+    "application/vnd.sealed.ppt" => Mime::ApplicationVndSealedPpt,
+    "application/vnd.sealed.tiff" => Mime::ApplicationVndSealedTiff,
+    "application/vnd.sealed.xls" => Mime::ApplicationVndSealedXls,
+    "application/vnd.sealedmedia.softseal.html" => Mime::ApplicationVndSealedmediaSoftsealHtml,
+    "application/vnd.sealedmedia.softseal.pdf" => Mime::ApplicationVndSealedmediaSoftsealPdf,
+    "application/vnd.seemail" => Mime::ApplicationVndSeemail,
+    "application/vnd.seis+json" => Mime::ApplicationVndSeisJson,
+    "application/vnd.sema" => Mime::ApplicationVndSema,
+    "application/vnd.semd" => Mime::ApplicationVndSemd,
+    "application/vnd.semf" => Mime::ApplicationVndSemf,
+    "application/vnd.shade-save-file" => Mime::ApplicationVndShadeSaveFile,
+    "application/vnd.shana.informed.formdata" => Mime::ApplicationVndShanaInformedFormdata,
+    "application/vnd.shana.informed.formtemplate" => Mime::ApplicationVndShanaInformedFormtemplate,
+    "application/vnd.shana.informed.interchange" => Mime::ApplicationVndShanaInformedInterchange,
+    "application/vnd.shana.informed.package" => Mime::ApplicationVndShanaInformedPackage,
+    "application/vnd.shootproof+json" => Mime::ApplicationVndShootproofJson,
+    "application/vnd.shopkick+json" => Mime::ApplicationVndShopkickJson,
+    "application/vnd.shp" => Mime::ApplicationVndShp,
+    "application/vnd.shx" => Mime::ApplicationVndShx,
+    "application/vnd.sigrok.session" => Mime::ApplicationVndSigrokSession,
+    "application/vnd.SimTech-MindMapper" => Mime::ApplicationVndSimtechMindmapper,
+    "application/vnd.siren+json" => Mime::ApplicationVndSirenJson,
+    "application/vnd.smaf" => Mime::ApplicationVndSmaf,
+    "application/vnd.smart.notebook" => Mime::ApplicationVndSmartNotebook,
+    "application/vnd.smart.teacher" => Mime::ApplicationVndSmartTeacher,
+    "application/vnd.smintio.portals.archive" => Mime::ApplicationVndSmintioPortalsArchive,
+    "application/vnd.snesdev-page-table" => Mime::ApplicationVndSnesdevPageTable,
+    "application/vnd.software602.filler.form+xml" => Mime::ApplicationVndSoftware602FillerFormXml,
+    "application/vnd.software602.filler.form-xml-zip" => Mime::ApplicationVndSoftware602FillerFormXmlZip,
+    "application/vnd.solent.sdkm+xml" => Mime::ApplicationVndSolentSdkmXml,
+    "application/vnd.spotfire.dxp" => Mime::ApplicationVndSpotfireDxp,
+    "application/vnd.spotfire.sfs" => Mime::ApplicationVndSpotfireSfs,
+    "application/vnd.sqlite3" => Mime::ApplicationVndSqlite3,
+    "application/vnd.sss-cod" => Mime::ApplicationVndSssCod,
+    "application/vnd.sss-dtf" => Mime::ApplicationVndSssDtf,
+    "application/vnd.sss-ntf" => Mime::ApplicationVndSssNtf,
+    "application/vnd.stepmania.package" => Mime::ApplicationVndStepmaniaPackage,
+    "application/vnd.stepmania.stepchart" => Mime::ApplicationVndStepmaniaStepchart,
+    "application/vnd.street-stream" => Mime::ApplicationVndStreetStream,
+    "application/vnd.sun.wadl+xml" => Mime::ApplicationVndSunWadlXml,
+    "application/vnd.sus-calendar" => Mime::ApplicationVndSusCalendar,
+    "application/vnd.svd" => Mime::ApplicationVndSvd,
+    "application/vnd.swiftview-ics" => Mime::ApplicationVndSwiftviewIcs,
+    "application/vnd.sybyl.mol2" => Mime::ApplicationVndSybylMol2,
+    "application/vnd.sycle+xml" => Mime::ApplicationVndSycleXml,
+    "application/vnd.syft+json" => Mime::ApplicationVndSyftJson,
+    "application/vnd.syncml.dm.notification" => Mime::ApplicationVndSyncmlDmNotification,
+    "application/vnd.syncml.dmddf+xml" => Mime::ApplicationVndSyncmlDmddfXml,
+    "application/vnd.syncml.dmtnds+wbxml" => Mime::ApplicationVndSyncmlDmtndsWbxml,
+    "application/vnd.syncml.dmtnds+xml" => Mime::ApplicationVndSyncmlDmtndsXml,
+    "application/vnd.syncml.dmddf+wbxml" => Mime::ApplicationVndSyncmlDmddfWbxml,
+    "application/vnd.syncml.dm+wbxml" => Mime::ApplicationVndSyncmlDmWbxml,
+    "application/vnd.syncml.dm+xml" => Mime::ApplicationVndSyncmlDmXml,
+    "application/vnd.syncml.ds.notification" => Mime::ApplicationVndSyncmlDsNotification,
+    "application/vnd.syncml+xml" => Mime::ApplicationVndSyncmlXml,
+    "application/vnd.tableschema+json" => Mime::ApplicationVndTableschemaJson,
+    "application/vnd.tao.intent-module-archive" => Mime::ApplicationVndTaoIntentModuleArchive,
+    "application/vnd.tcpdump.pcap" => Mime::ApplicationVndTcpdumpPcap,
+    "application/vnd.think-cell.ppttc+json" => Mime::ApplicationVndThinkCellPpttcJson,
+    "application/vnd.tml" => Mime::ApplicationVndTml,
+    "application/vnd.tmd.mediaflex.api+xml" => Mime::ApplicationVndTmdMediaflexApiXml,
+    "application/vnd.tmobile-livetv" => Mime::ApplicationVndTmobileLivetv,
+    "application/vnd.tri.onesource" => Mime::ApplicationVndTriOnesource,
+    "application/vnd.trid.tpt" => Mime::ApplicationVndTridTpt,
+    "application/vnd.triscape.mxs" => Mime::ApplicationVndTriscapeMxs,
+    "application/vnd.trueapp" => Mime::ApplicationVndTrueapp,
+    "application/vnd.truedoc" => Mime::ApplicationVndTruedoc,
+    "application/vnd.ubisoft.webplayer" => Mime::ApplicationVndUbisoftWebplayer,
+    "application/vnd.ufdl" => Mime::ApplicationVndUfdl,
+    "application/vnd.uiq.theme" => Mime::ApplicationVndUiqTheme,
+    "application/vnd.umajin" => Mime::ApplicationVndUmajin,
+    "application/vnd.unity" => Mime::ApplicationVndUnity,
+    "application/vnd.uoml+xml" => Mime::ApplicationVndUomlXml,
+    "application/vnd.uplanet.alert" => Mime::ApplicationVndUplanetAlert,
+    "application/vnd.uplanet.alert-wbxml" => Mime::ApplicationVndUplanetAlertWbxml,
+    "application/vnd.uplanet.bearer-choice" => Mime::ApplicationVndUplanetBearerChoice,
+    "application/vnd.uplanet.bearer-choice-wbxml" => Mime::ApplicationVndUplanetBearerChoiceWbxml,
+    "application/vnd.uplanet.cacheop" => Mime::ApplicationVndUplanetCacheop,
+    "application/vnd.uplanet.cacheop-wbxml" => Mime::ApplicationVndUplanetCacheopWbxml,
+    "application/vnd.uplanet.channel" => Mime::ApplicationVndUplanetChannel,
+    "application/vnd.uplanet.channel-wbxml" => Mime::ApplicationVndUplanetChannelWbxml,
+    "application/vnd.uplanet.list" => Mime::ApplicationVndUplanetList,
+    "application/vnd.uplanet.listcmd" => Mime::ApplicationVndUplanetListcmd,
+    "application/vnd.uplanet.listcmd-wbxml" => Mime::ApplicationVndUplanetListcmdWbxml,
+    "application/vnd.uplanet.list-wbxml" => Mime::ApplicationVndUplanetListWbxml,
+    "application/vnd.uri-map" => Mime::ApplicationVndUriMap,
+    "application/vnd.uplanet.signal" => Mime::ApplicationVndUplanetSignal,
+    "application/vnd.valve.source.material" => Mime::ApplicationVndValveSourceMaterial,
+    "application/vnd.vcx" => Mime::ApplicationVndVcx,
+    "application/vnd.vd-study" => Mime::ApplicationVndVdStudy,
+    "application/vnd.vectorworks" => Mime::ApplicationVndVectorworks,
+    "application/vnd.vel+json" => Mime::ApplicationVndVelJson,
+    "application/vnd.verimatrix.vcas" => Mime::ApplicationVndVerimatrixVcas,
+    "application/vnd.veritone.aion+json" => Mime::ApplicationVndVeritoneAionJson,
+    "application/vnd.veryant.thin" => Mime::ApplicationVndVeryantThin,
+    "application/vnd.ves.encrypted" => Mime::ApplicationVndVesEncrypted,
+    "application/vnd.vidsoft.vidconference" => Mime::ApplicationVndVidsoftVidconference,
+    "application/vnd.visio" => Mime::ApplicationVndVisio,
+    "application/vnd.visionary" => Mime::ApplicationVndVisionary,
+    "application/vnd.vividence.scriptfile" => Mime::ApplicationVndVividenceScriptfile,
+    "application/vnd.vsf" => Mime::ApplicationVndVsf,
+    "application/vnd.wap.sic" => Mime::ApplicationVndWapSic,
+    "application/vnd.wap.slc" => Mime::ApplicationVndWapSlc,
+    "application/vnd.wap.wbxml" => Mime::ApplicationVndWapWbxml,
+    "application/vnd.wap.wmlc" => Mime::ApplicationVndWapWmlc,
+    "application/vnd.wap.wmlscriptc" => Mime::ApplicationVndWapWmlscriptc,
+    "application/vnd.wasmflow.wafl" => Mime::ApplicationVndWasmflowWafl,
+    "application/vnd.webturbo" => Mime::ApplicationVndWebturbo,
+    "application/vnd.wfa.dpp" => Mime::ApplicationVndWfaDpp,
+    "application/vnd.wfa.p2p" => Mime::ApplicationVndWfaP2p,
+    "application/vnd.wfa.wsc" => Mime::ApplicationVndWfaWsc,
+    "application/vnd.windows.devicepairing" => Mime::ApplicationVndWindowsDevicepairing,
+    "application/vnd.wmc" => Mime::ApplicationVndWmc,
+    "application/vnd.wmf.bootstrap" => Mime::ApplicationVndWmfBootstrap,
+    "application/vnd.wolfram.mathematica" => Mime::ApplicationVndWolframMathematica,
+    "application/vnd.wolfram.mathematica.package" => Mime::ApplicationVndWolframMathematicaPackage,
+    "application/vnd.wolfram.player" => Mime::ApplicationVndWolframPlayer,
+    "application/vnd.wordlift" => Mime::ApplicationVndWordlift,
+    "application/vnd.wordperfect" => Mime::ApplicationVndWordperfect,
+    "application/vnd.wqd" => Mime::ApplicationVndWqd,
+    "application/vnd.wrq-hp3000-labelled" => Mime::ApplicationVndWrqHp3000Labelled,
+    "application/vnd.wt.stf" => Mime::ApplicationVndWtStf,
+    "application/vnd.wv.csp+xml" => Mime::ApplicationVndWvCspXml,
+    "application/vnd.wv.csp+wbxml" => Mime::ApplicationVndWvCspWbxml,
+    "application/vnd.wv.ssp+xml" => Mime::ApplicationVndWvSspXml,
+    "application/vnd.xacml+json" => Mime::ApplicationVndXacmlJson,
+    "application/vnd.xara" => Mime::ApplicationVndXara,
+    "application/vnd.xfdl" => Mime::ApplicationVndXfdl,
+    "application/vnd.xfdl.webform" => Mime::ApplicationVndXfdlWebform,
+    "application/vnd.xmi+xml" => Mime::ApplicationVndXmiXml,
+    "application/vnd.xmpie.cpkg" => Mime::ApplicationVndXmpieCpkg,
+    "application/vnd.xmpie.dpkg" => Mime::ApplicationVndXmpieDpkg,
+    "application/vnd.xmpie.plan" => Mime::ApplicationVndXmpiePlan,
+    "application/vnd.xmpie.ppkg" => Mime::ApplicationVndXmpiePpkg,
+    "application/vnd.xmpie.xlim" => Mime::ApplicationVndXmpieXlim,
+    "application/vnd.yamaha.hv-dic" => Mime::ApplicationVndYamahaHvDic,
+    "application/vnd.yamaha.hv-script" => Mime::ApplicationVndYamahaHvScript,
+    "application/vnd.yamaha.hv-voice" => Mime::ApplicationVndYamahaHvVoice,
+    "application/vnd.yamaha.openscoreformat.osfpvg+xml" => Mime::ApplicationVndYamahaOpenscoreformatOsfpvgXml,
+    "application/vnd.yamaha.openscoreformat" => Mime::ApplicationVndYamahaOpenscoreformat,
+    "application/vnd.yamaha.remote-setup" => Mime::ApplicationVndYamahaRemoteSetup,
+    "application/vnd.yamaha.smaf-audio" => Mime::ApplicationVndYamahaSmafAudio,
+    "application/vnd.yamaha.smaf-phrase" => Mime::ApplicationVndYamahaSmafPhrase,
+    "application/vnd.yamaha.through-ngn" => Mime::ApplicationVndYamahaThroughNgn,
+    "application/vnd.yamaha.tunnel-udpencap" => Mime::ApplicationVndYamahaTunnelUdpencap,
+    "application/vnd.yaoweme" => Mime::ApplicationVndYaoweme,
+    "application/vnd.yellowriver-custom-menu" => Mime::ApplicationVndYellowriverCustomMenu,
+    "application/vnd.zul" => Mime::ApplicationVndZul,
+    "application/vnd.zzazz.deck+xml" => Mime::ApplicationVndZzazzDeckXml,
+    "application/voicexml+xml" => Mime::ApplicationVoicexmlXml,
+    "application/voucher-cms+json" => Mime::ApplicationVoucherCmsJson,
+    "application/vq-rtcpxr" => Mime::ApplicationVqRtcpxr,
+    "application/wasm" => Mime::ApplicationWasm,
+    "application/watcherinfo+xml" => Mime::ApplicationWatcherinfoXml,
+    "application/webpush-options+json" => Mime::ApplicationWebpushOptionsJson,
+    "application/whoispp-query" => Mime::ApplicationWhoisppQuery,
+    "application/whoispp-response" => Mime::ApplicationWhoisppResponse,
+    "application/widget" => Mime::ApplicationWidget,
+    "application/wita" => Mime::ApplicationWita,
+    "application/wordperfect5.1" => Mime::ApplicationWordperfect51,
+    "application/wsdl+xml" => Mime::ApplicationWsdlXml,
+    "application/wspolicy+xml" => Mime::ApplicationWspolicyXml,
+    "application/x-pki-message" => Mime::ApplicationXPkiMessage,
+    "application/x-www-form-urlencoded" => Mime::ApplicationXWwwFormUrlencoded,
+    "application/x-x509-ca-cert" => Mime::ApplicationXX509CaCert,
+    "application/x-x509-ca-ra-cert" => Mime::ApplicationXX509CaRaCert,
+    "application/x-x509-next-ca-cert" => Mime::ApplicationXX509NextCaCert,
+    "application/x400-bp" => Mime::ApplicationX400Bp,
+    "application/xacml+xml" => Mime::ApplicationXacmlXml,
+    "application/xcap-att+xml" => Mime::ApplicationXcapAttXml,
+    "application/xcap-caps+xml" => Mime::ApplicationXcapCapsXml,
+    "application/xcap-diff+xml" => Mime::ApplicationXcapDiffXml,
+    "application/xcap-el+xml" => Mime::ApplicationXcapElXml,
+    "application/xcap-error+xml" => Mime::ApplicationXcapErrorXml,
+    "application/xcap-ns+xml" => Mime::ApplicationXcapNsXml,
+    "application/xcon-conference-info-diff+xml" => Mime::ApplicationXconConferenceInfoDiffXml,
+    "application/xcon-conference-info+xml" => Mime::ApplicationXconConferenceInfoXml,
+    "application/xenc+xml" => Mime::ApplicationXencXml,
+    "application/xfdf" => Mime::ApplicationXfdf,
+    "application/xhtml+xml" => Mime::ApplicationXhtmlXml,
+    "application/xliff+xml" => Mime::ApplicationXliffXml,
+    "application/xml" => Mime::ApplicationXml,
+    "application/xml-dtd" => Mime::ApplicationXmlDtd,
+    "application/xml-external-parsed-entity" => Mime::ApplicationXmlExternalParsedEntity,
+    "application/xml-patch+xml" => Mime::ApplicationXmlPatchXml,
+    "application/xmpp+xml" => Mime::ApplicationXmppXml,
+    "application/xop+xml" => Mime::ApplicationXopXml,
+    "application/xslt+xml" => Mime::ApplicationXsltXml,
+    "application/xv+xml" => Mime::ApplicationXvXml,
+    "application/yang" => Mime::ApplicationYang,
+    "application/yang-data+cbor" => Mime::ApplicationYangDataCbor,
+    "application/yang-data+json" => Mime::ApplicationYangDataJson,
+    "application/yang-data+xml" => Mime::ApplicationYangDataXml,
+    "application/yang-patch+json" => Mime::ApplicationYangPatchJson,
+    "application/yang-patch+xml" => Mime::ApplicationYangPatchXml,
+    "application/yin+xml" => Mime::ApplicationYinXml,
+    "application/zip" => Mime::ApplicationZip,
+    "application/zlib" => Mime::ApplicationZlib,
+    "application/zstd" => Mime::ApplicationZstd,
+    "audio/1d-interleaved-parityfec" => Mime::Audio1dInterleavedParityfec,
+    "audio/32kadpcm" => Mime::Audio32kadpcm,
+    "audio/3gpp" => Mime::Audio3gpp,
+    "audio/3gpp2" => Mime::Audio3gpp2,
+    "audio/aac" => Mime::AudioAac,
+    "audio/ac3" => Mime::AudioAc3,
+    "audio/AMR" => Mime::AudioAmr,
+    "audio/AMR-WB" => Mime::AudioAmrWb,
+    "audio/amr-wb+" => Mime::AudioAmrWbPlus,
+    "audio/aptx" => Mime::AudioAptx,
+    "audio/asc" => Mime::AudioAsc,
+    "audio/ATRAC-ADVANCED-LOSSLESS" => Mime::AudioAtracAdvancedLossless,
+    "audio/ATRAC-X" => Mime::AudioAtracX,
+    "audio/ATRAC3" => Mime::AudioAtrac3,
+    "audio/basic" => Mime::AudioBasic,
+    "audio/BV16" => Mime::AudioBv16,
+    "audio/BV32" => Mime::AudioBv32,
+    "audio/clearmode" => Mime::AudioClearmode,
+    "audio/CN" => Mime::AudioCn,
+    "audio/DAT12" => Mime::AudioDat12,
+    "audio/dls" => Mime::AudioDls,
+    "audio/dsr-es201108" => Mime::AudioDsrEs201108,
+    "audio/dsr-es202050" => Mime::AudioDsrEs202050,
+    "audio/dsr-es202211" => Mime::AudioDsrEs202211,
+    "audio/dsr-es202212" => Mime::AudioDsrEs202212,
+    "audio/DV" => Mime::AudioDv,
+    "audio/DVI4" => Mime::AudioDvi4,
+    "audio/eac3" => Mime::AudioEac3,
+    "audio/encaprtp" => Mime::AudioEncaprtp,
+    "audio/EVRC" => Mime::AudioEvrc,
+    "audio/EVRC-QCP" => Mime::AudioEvrcQcp,
+    "audio/EVRC0" => Mime::AudioEvrc0,
+    "audio/EVRC1" => Mime::AudioEvrc1,
+    "audio/EVRCB" => Mime::AudioEvrcb,
+    "audio/EVRCB0" => Mime::AudioEvrcb0,
+    "audio/EVRCB1" => Mime::AudioEvrcb1,
+    "audio/EVRCNW" => Mime::AudioEvrcnw,
+    "audio/EVRCNW0" => Mime::AudioEvrcnw0,
+    "audio/EVRCNW1" => Mime::AudioEvrcnw1,
+    "audio/EVRCWB" => Mime::AudioEvrcwb,
+    "audio/EVRCWB0" => Mime::AudioEvrcwb0,
+    "audio/EVRCWB1" => Mime::AudioEvrcwb1,
+    "audio/EVS" => Mime::AudioEvs,
+    "audio/example" => Mime::AudioExample,
+    "audio/flexfec" => Mime::AudioFlexfec,
+    "audio/fwdred" => Mime::AudioFwdred,
+    "audio/G711-0" => Mime::AudioG7110,
+    "audio/G719" => Mime::AudioG719,
+    "audio/G7221" => Mime::AudioG7221,
+    "audio/G722" => Mime::AudioG722,
+    "audio/G723" => Mime::AudioG723,
+    "audio/G726-16" => Mime::AudioG72616,
+    "audio/G726-24" => Mime::AudioG72624,
+    "audio/G726-32" => Mime::AudioG72632,
+    "audio/G726-40" => Mime::AudioG72640,
+    "audio/G728" => Mime::AudioG728,
+    "audio/G729" => Mime::AudioG729,
+    "audio/G7291" => Mime::AudioG7291,
+    "audio/G729D" => Mime::AudioG729d,
+    "audio/G729E" => Mime::AudioG729e,
+    "audio/GSM" => Mime::AudioGsm,
+    "audio/GSM-EFR" => Mime::AudioGsmEfr,
+    "audio/GSM-HR-08" => Mime::AudioGsmHr08,
+    "audio/iLBC" => Mime::AudioIlbc,
+    "audio/ip-mr_v2.5" => Mime::AudioIpMrV25 ,
+    "audio/L8" => Mime::AudioL8,
+    "audio/L16" => Mime::AudioL16,
+    "audio/L20" => Mime::AudioL20,
+    "audio/L24" => Mime::AudioL24,
+    "audio/LPC" => Mime::AudioLpc,
+    "audio/MELP" => Mime::AudioMelp,
+    "audio/MELP600" => Mime::AudioMelp600,
+    "audio/MELP1200" => Mime::AudioMelp1200,
+    "audio/MELP2400" => Mime::AudioMelp2400,
+    "audio/mhas" => Mime::AudioMhas,
+    "audio/mobile-xmf" => Mime::AudioMobileXmf,
+    "audio/MPA" => Mime::AudioMpa,
+    "audio/mp4" => Mime::AudioMp4,
+    "audio/MP4A-LATM" => Mime::AudioMp4aLatm,
+    "audio/mpa-robust" => Mime::AudioMpaRobust,
+    "audio/mpeg" => Mime::AudioMpeg,
+    "audio/mpeg4-generic" => Mime::AudioMpeg4Generic,
+    "audio/ogg" => Mime::AudioOgg,
+    "audio/opus" => Mime::AudioOpus,
+    "audio/parityfec" => Mime::AudioParityfec,
+    "audio/PCMA" => Mime::AudioPcma,
+    "audio/PCMA-WB" => Mime::AudioPcmaWb,
+    "audio/PCMU" => Mime::AudioPcmu,
+    "audio/PCMU-WB" => Mime::AudioPcmuWb,
+    "audio/prs.sid" => Mime::AudioPrsSid,
+    "audio/QCELP" => Mime::AudioQcelp,
+    "audio/raptorfec" => Mime::AudioRaptorfec,
+    "audio/RED" => Mime::AudioRed,
+    "audio/rtp-enc-aescm128" => Mime::AudioRtpEncAescm128,
+    "audio/rtploopback" => Mime::AudioRtploopback,
+    "audio/rtp-midi" => Mime::AudioRtpMidi,
+    "audio/rtx" => Mime::AudioRtx,
+    "audio/scip" => Mime::AudioScip,
+    "audio/SMV" => Mime::AudioSmv,
+    "audio/SMV0" => Mime::AudioSmv0,
+    "audio/SMV-QCP" => Mime::AudioSmvQcp,
+    "audio/sofa" => Mime::AudioSofa,
+    "audio/sp-midi" => Mime::AudioSpMidi,
+    "audio/speex" => Mime::AudioSpeex,
+    "audio/t140c" => Mime::AudioT140c,
+    "audio/t38" => Mime::AudioT38,
+    "audio/telephone-event" => Mime::AudioTelephoneEvent,
+    "audio/tone" => Mime::AudioTone,
+    "audio/TETRA_ACELP" => Mime::AudioTetraAcelp,
+    "audio/TETRA_ACELP_BB" => Mime::AudioTetraAcelpBb ,
+    "audio/TSVCIS" => Mime::AudioTsvcis,
+    "audio/UEMCLIP" => Mime::AudioUemclip,
+    "audio/ulpfec" => Mime::AudioUlpfec,
+    "audio/usac" => Mime::AudioUsac,
+    "audio/VDVI" => Mime::AudioVdvi,
+    "audio/VMR-WB" => Mime::AudioVmrWb,
+    "audio/vnd.3gpp.iufp" => Mime::AudioVnd3gppIufp,
+    "audio/vnd.4SB" => Mime::AudioVnd4sb,
+    "audio/vnd.audiokoz" => Mime::AudioVndAudiokoz,
+    "audio/vnd.CELP" => Mime::AudioVndCelp,
+    "audio/vnd.cisco.nse" => Mime::AudioVndCiscoNse,
+    "audio/vnd.cmles.radio-events" => Mime::AudioVndCmlesRadioEvents,
+    "audio/vnd.cns.anp1" => Mime::AudioVndCnsAnp1,
+    "audio/vnd.cns.inf1" => Mime::AudioVndCnsInf1,
+    "audio/vnd.dece.audio" => Mime::AudioVndDeceAudio,
+    "audio/vnd.digital-winds" => Mime::AudioVndDigitalWinds,
+    "audio/vnd.dlna.adts" => Mime::AudioVndDlnaAdts,
+    "audio/vnd.dolby.heaac.1" => Mime::AudioVndDolbyHeaac1,
+    "audio/vnd.dolby.heaac.2" => Mime::AudioVndDolbyHeaac2,
+    "audio/vnd.dolby.mlp" => Mime::AudioVndDolbyMlp,
+    "audio/vnd.dolby.mps" => Mime::AudioVndDolbyMps,
+    "audio/vnd.dolby.pl2" => Mime::AudioVndDolbyPl2,
+    "audio/vnd.dolby.pl2x" => Mime::AudioVndDolbyPl2x,
+    "audio/vnd.dolby.pl2z" => Mime::AudioVndDolbyPl2z,
+    "audio/vnd.dolby.pulse.1" => Mime::AudioVndDolbyPulse1,
+    "audio/vnd.dra" => Mime::AudioVndDra,
+    "audio/vnd.dts" => Mime::AudioVndDts,
+    "audio/vnd.dts.hd" => Mime::AudioVndDtsHd,
+    "audio/vnd.dts.uhd" => Mime::AudioVndDtsUhd,
+    "audio/vnd.dvb.file" => Mime::AudioVndDvbFile,
+    "audio/vnd.everad.plj" => Mime::AudioVndEveradPlj,
+    "audio/vnd.hns.audio" => Mime::AudioVndHnsAudio,
+    "audio/vnd.lucent.voice" => Mime::AudioVndLucentVoice,
+    "audio/vnd.ms-playready.media.pya" => Mime::AudioVndMsPlayreadyMediaPya,
+    "audio/vnd.nokia.mobile-xmf" => Mime::AudioVndNokiaMobileXmf,
+    "audio/vnd.nortel.vbk" => Mime::AudioVndNortelVbk,
+    "audio/vnd.nuera.ecelp4800" => Mime::AudioVndNueraEcelp4800,
+    "audio/vnd.nuera.ecelp7470" => Mime::AudioVndNueraEcelp7470,
+    "audio/vnd.nuera.ecelp9600" => Mime::AudioVndNueraEcelp9600,
+    "audio/vnd.octel.sbc" => Mime::AudioVndOctelSbc,
+    "audio/vnd.presonus.multitrack" => Mime::AudioVndPresonusMultitrack,
+    "audio/vnd.rhetorex.32kadpcm" => Mime::AudioVndRhetorex32kadpcm,
+    "audio/vnd.rip" => Mime::AudioVndRip,
+    "audio/vnd.sealedmedia.softseal.mpeg" => Mime::AudioVndSealedmediaSoftsealMpeg,
+    "audio/vnd.vmx.cvsd" => Mime::AudioVndVmxCvsd,
+    "audio/vorbis" => Mime::AudioVorbis,
+    "audio/vorbis-config" => Mime::AudioVorbisConfig,
+    "font/collection" => Mime::FontCollection,
+    "font/otf" => Mime::FontOtf,
+    "font/sfnt" => Mime::FontSfnt,
+    "font/ttf" => Mime::FontTtf,
+    "font/woff" => Mime::FontWoff,
+    "font/woff2" => Mime::FontWoff2,
+    "image/aces" => Mime::ImageAces,
+    "image/apng" => Mime::ImageApng,
+    "image/avci" => Mime::ImageAvci,
+    "image/avcs" => Mime::ImageAvcs,
+    "image/avif" => Mime::ImageAvif,
+    "image/bmp" => Mime::ImageBmp,
+    "image/cgm" => Mime::ImageCgm,
+    "image/dicom-rle" => Mime::ImageDicomRle,
+    "image/dpx" => Mime::ImageDpx,
+    "image/emf" => Mime::ImageEmf,
+    "image/example" => Mime::ImageExample,
+    "image/fits" => Mime::ImageFits,
+    "image/g3fax" => Mime::ImageG3fax,
+    "image/heic" => Mime::ImageHeic,
+    "image/heic-sequence" => Mime::ImageHeicSequence,
+    "image/heif" => Mime::ImageHeif,
+    "image/heif-sequence" => Mime::ImageHeifSequence,
+    "image/hej2k" => Mime::ImageHej2k,
+    "image/hsj2" => Mime::ImageHsj2,
+    "image/jls" => Mime::ImageJls,
+    "image/jp2" => Mime::ImageJp2,
+    "image/jpeg" => Mime::ImageJpeg,
+    "image/jph" => Mime::ImageJph,
+    "image/jphc" => Mime::ImageJphc,
+    "image/jpm" => Mime::ImageJpm,
+    "image/jpx" => Mime::ImageJpx,
+    "image/jxr" => Mime::ImageJxr,
+    "image/jxrA" => Mime::ImageJxra,
+    "image/jxrS" => Mime::ImageJxrs,
+    "image/jxs" => Mime::ImageJxs,
+    "image/jxsc" => Mime::ImageJxsc,
+    "image/jxsi" => Mime::ImageJxsi,
+    "image/jxss" => Mime::ImageJxss,
+    "image/ktx" => Mime::ImageKtx,
+    "image/ktx2" => Mime::ImageKtx2,
+    "image/naplps" => Mime::ImageNaplps,
+    "image/png" => Mime::ImagePng,
+    "image/prs.btif" => Mime::ImagePrsBtif,
+    "image/prs.pti" => Mime::ImagePrsPti,
+    "image/pwg-raster" => Mime::ImagePwgRaster,
+    "image/svg+xml" => Mime::ImageSvgXml,
+    "image/t38" => Mime::ImageT38,
+    "image/tiff" => Mime::ImageTiff,
+    "image/tiff-fx" => Mime::ImageTiffFx,
+    "image/vnd.adobe.photoshop" => Mime::ImageVndAdobePhotoshop,
+    "image/vnd.airzip.accelerator.azv" => Mime::ImageVndAirzipAcceleratorAzv,
+    "image/vnd.cns.inf2" => Mime::ImageVndCnsInf2,
+    "image/vnd.dece.graphic" => Mime::ImageVndDeceGraphic,
+    "image/vnd.djvu" => Mime::ImageVndDjvu,
+    "image/vnd.dwg" => Mime::ImageVndDwg,
+    "image/vnd.dxf" => Mime::ImageVndDxf,
+    "image/vnd.dvb.subtitle" => Mime::ImageVndDvbSubtitle,
+    "image/vnd.fastbidsheet" => Mime::ImageVndFastbidsheet,
+    "image/vnd.fpx" => Mime::ImageVndFpx,
+    "image/vnd.fst" => Mime::ImageVndFst,
+    "image/vnd.fujixerox.edmics-mmr" => Mime::ImageVndFujixeroxEdmicsMmr,
+    "image/vnd.fujixerox.edmics-rlc" => Mime::ImageVndFujixeroxEdmicsRlc,
+    "image/vnd.globalgraphics.pgb" => Mime::ImageVndGlobalgraphicsPgb,
+    "image/vnd.microsoft.icon" => Mime::ImageVndMicrosoftIcon,
+    "image/vnd.mix" => Mime::ImageVndMix,
+    "image/vnd.ms-modi" => Mime::ImageVndMsModi,
+    "image/vnd.mozilla.apng" => Mime::ImageVndMozillaApng,
+    "image/vnd.net-fpx" => Mime::ImageVndNetFpx,
+    "image/vnd.pco.b16" => Mime::ImageVndPcoB16,
+    "image/vnd.radiance" => Mime::ImageVndRadiance,
+    "image/vnd.sealed.png" => Mime::ImageVndSealedPng,
+    "image/vnd.sealedmedia.softseal.gif" => Mime::ImageVndSealedmediaSoftsealGif,
+    "image/vnd.sealedmedia.softseal.jpg" => Mime::ImageVndSealedmediaSoftsealJpg,
+    "image/vnd.svf" => Mime::ImageVndSvf,
+    "image/vnd.tencent.tap" => Mime::ImageVndTencentTap,
+    "image/vnd.valve.source.texture" => Mime::ImageVndValveSourceTexture,
+    "image/vnd.wap.wbmp" => Mime::ImageVndWapWbmp,
+    "image/vnd.xiff" => Mime::ImageVndXiff,
+    "image/vnd.zbrush.pcx" => Mime::ImageVndZbrushPcx,
+    "image/webp" => Mime::ImageWebp,
+    "image/wmf" => Mime::ImageWmf,
+    "message/bhttp" => Mime::MessageBhttp,
+    "message/CPIM" => Mime::MessageCpim,
+    "message/delivery-status" => Mime::MessageDeliveryStatus,
+    "message/disposition-notification" => Mime::MessageDispositionNotification,
+    "message/example" => Mime::MessageExample,
+    "message/feedback-report" => Mime::MessageFeedbackReport,
+    "message/global" => Mime::MessageGlobal,
+    "message/global-delivery-status" => Mime::MessageGlobalDeliveryStatus,
+    "message/global-disposition-notification" => Mime::MessageGlobalDispositionNotification,
+    "message/global-headers" => Mime::MessageGlobalHeaders,
+    "message/http" => Mime::MessageHttp,
+    "message/imdn+xml" => Mime::MessageImdnXml,
+    "message/mls" => Mime::MessageMls,
+    "message/ohttp-req" => Mime::MessageOhttpReq,
+    "message/ohttp-res" => Mime::MessageOhttpRes,
+    "message/sip" => Mime::MessageSip,
+    "message/sipfrag" => Mime::MessageSipfrag,
+    "message/tracking-status" => Mime::MessageTrackingStatus,
+    "message/vnd.wfa.wsc" => Mime::MessageVndWfaWsc,
+    "model/3mf" => Mime::Model3mf,
+    "model/e57" => Mime::ModelE57,
+    "model/example" => Mime::ModelExample,
+    "model/gltf-binary" => Mime::ModelGltfBinary,
+    "model/gltf+json" => Mime::ModelGltfJson,
+    "model/JT" => Mime::ModelJt,
+    "model/iges" => Mime::ModelIges,
+    "model/mtl" => Mime::ModelMtl,
+    "model/obj" => Mime::ModelObj,
+    "model/prc" => Mime::ModelPrc,
+    "model/step" => Mime::ModelStep,
+    "model/step+xml" => Mime::ModelStepXml,
+    "model/step+zip" => Mime::ModelStepZip,
+    "model/step-xml+zip" => Mime::ModelStepXmlZip,
+    "model/stl" => Mime::ModelStl,
+    "model/u3d" => Mime::ModelU3d,
+    "model/vnd.bary" => Mime::ModelVndBary,
+    "model/vnd.cld" => Mime::ModelVndCld,
+    "model/vnd.collada+xml" => Mime::ModelVndColladaXml,
+    "model/vnd.dwf" => Mime::ModelVndDwf,
+    "model/vnd.flatland.3dml" => Mime::ModelVndFlatland3dml,
+    "model/vnd.gdl" => Mime::ModelVndGdl,
+    "model/vnd.gs-gdl" => Mime::ModelVndGsGdl,
+    "model/vnd.gtw" => Mime::ModelVndGtw,
+    "model/vnd.moml+xml" => Mime::ModelVndMomlXml,
+    "model/vnd.mts" => Mime::ModelVndMts,
+    "model/vnd.opengex" => Mime::ModelVndOpengex,
+    "model/vnd.parasolid.transmit.binary" => Mime::ModelVndParasolidTransmitBinary,
+    "model/vnd.parasolid.transmit.text" => Mime::ModelVndParasolidTransmitText,
+    "model/vnd.pytha.pyox" => Mime::ModelVndPythaPyox,
+    "model/vnd.rosette.annotated-data-model" => Mime::ModelVndRosetteAnnotatedDataModel,
+    "model/vnd.sap.vds" => Mime::ModelVndSapVds,
+    "model/vnd.usda" => Mime::ModelVndUsda,
+    "model/vnd.usdz+zip" => Mime::ModelVndUsdzZip,
+    "model/vnd.valve.source.compiled-map" => Mime::ModelVndValveSourceCompiledMap,
+    "model/vnd.vtu" => Mime::ModelVndVtu,
+    "model/x3d-vrml" => Mime::ModelX3dVrml,
+    "model/x3d+fastinfoset" => Mime::ModelX3dFastinfoset,
+    "model/x3d+xml" => Mime::ModelX3dXml,
+    "multipart/appledouble" => Mime::MultipartAppledouble,
+    "multipart/byteranges" => Mime::MultipartByteranges,
+    "multipart/encrypted" => Mime::MultipartEncrypted,
+    "multipart/example" => Mime::MultipartExample,
+    "multipart/form-data" => Mime::MultipartFormData,
+    "multipart/header-set" => Mime::MultipartHeaderSet,
+    "multipart/multilingual" => Mime::MultipartMultilingual,
+    "multipart/related" => Mime::MultipartRelated,
+    "multipart/report" => Mime::MultipartReport,
+    "multipart/signed" => Mime::MultipartSigned,
+    "multipart/vnd.bint.med-plus" => Mime::MultipartVndBintMedPlus,
+    "multipart/voice-message" => Mime::MultipartVoiceMessage,
+    "multipart/x-mixed-replace" => Mime::MultipartXMixedReplace,
+    "text/1d-interleaved-parityfec" => Mime::Text1dInterleavedParityfec,
+    "text/cache-manifest" => Mime::TextCacheManifest,
+    "text/calendar" => Mime::TextCalendar,
+    "text/cql" => Mime::TextCql,
+    "text/cql-expression" => Mime::TextCqlExpression,
+    "text/cql-identifier" => Mime::TextCqlIdentifier,
+    "text/css" => Mime::TextCss,
+    "text/csv" => Mime::TextCsv,
+    "text/csv-schema" => Mime::TextCsvSchema,
+    "text/dns" => Mime::TextDns,
+    "text/encaprtp" => Mime::TextEncaprtp,
+    "text/example" => Mime::TextExample,
+    "text/fhirpath" => Mime::TextFhirpath,
+    "text/flexfec" => Mime::TextFlexfec,
+    "text/fwdred" => Mime::TextFwdred,
+    "text/gff3" => Mime::TextGff3,
+    "text/grammar-ref-list" => Mime::TextGrammarRefList,
+    "text/hl7v2" => Mime::TextHl7v2,
+    "text/html" => Mime::TextHtml,
+    "text/javascript" => Mime::TextJavascript,
+    "text/jcr-cnd" => Mime::TextJcrCnd,
+    "text/markdown" => Mime::TextMarkdown,
+    "text/mizar" => Mime::TextMizar,
+    "text/n3" => Mime::TextN3,
+    "text/parameters" => Mime::TextParameters,
+    "text/parityfec" => Mime::TextParityfec,
+    "text/plain" => Mime::TextPlain,
+    "text/provenance-notation" => Mime::TextProvenanceNotation,
+    "text/prs.fallenstein.rst" => Mime::TextPrsFallensteinRst,
+    "text/prs.lines.tag" => Mime::TextPrsLinesTag,
+    "text/prs.prop.logic" => Mime::TextPrsPropLogic,
+    "text/raptorfec" => Mime::TextRaptorfec,
+    "text/RED" => Mime::TextRed,
+    "text/rfc822-headers" => Mime::TextRfc822Headers,
+    "text/rtf" => Mime::TextRtf,
+    "text/rtp-enc-aescm128" => Mime::TextRtpEncAescm128,
+    "text/rtploopback" => Mime::TextRtploopback,
+    "text/rtx" => Mime::TextRtx,
+    "text/SGML" => Mime::TextSgml,
+    "text/shaclc" => Mime::TextShaclc,
+    "text/shex" => Mime::TextShex,
+    "text/spdx" => Mime::TextSpdx,
+    "text/strings" => Mime::TextStrings,
+    "text/t140" => Mime::TextT140,
+    "text/tab-separated-values" => Mime::TextTabSeparatedValues,
+    "text/troff" => Mime::TextTroff,
+    "text/turtle" => Mime::TextTurtle,
+    "text/ulpfec" => Mime::TextUlpfec,
+    "text/uri-list" => Mime::TextUriList,
+    "text/vcard" => Mime::TextVcard,
+    "text/vnd.a" => Mime::TextVndA,
+    "text/vnd.abc" => Mime::TextVndAbc,
+    "text/vnd.ascii-art" => Mime::TextVndAsciiArt,
+    "text/vnd.curl" => Mime::TextVndCurl,
+    "text/vnd.debian.copyright" => Mime::TextVndDebianCopyright,
+    "text/vnd.DMClientScript" => Mime::TextVndDmclientscript,
+    "text/vnd.dvb.subtitle" => Mime::TextVndDvbSubtitle,
+    "text/vnd.esmertec.theme-descriptor" => Mime::TextVndEsmertecThemeDescriptor,
+    "text/vnd.exchangeable" => Mime::TextVndExchangeable,
+    "text/vnd.familysearch.gedcom" => Mime::TextVndFamilysearchGedcom,
+    "text/vnd.ficlab.flt" => Mime::TextVndFiclabFlt,
+    "text/vnd.fly" => Mime::TextVndFly,
+    "text/vnd.fmi.flexstor" => Mime::TextVndFmiFlexstor,
+    "text/vnd.gml" => Mime::TextVndGml,
+    "text/vnd.graphviz" => Mime::TextVndGraphviz,
+    "text/vnd.hans" => Mime::TextVndHans,
+    "text/vnd.hgl" => Mime::TextVndHgl,
+    "text/vnd.in3d.3dml" => Mime::TextVndIn3d3dml,
+    "text/vnd.in3d.spot" => Mime::TextVndIn3dSpot,
+    "text/vnd.IPTC.NewsML" => Mime::TextVndIptcNewsml,
+    "text/vnd.IPTC.NITF" => Mime::TextVndIptcNitf,
+    "text/vnd.latex-z" => Mime::TextVndLatexZ,
+    "text/vnd.motorola.reflex" => Mime::TextVndMotorolaReflex,
+    "text/vnd.ms-mediapackage" => Mime::TextVndMsMediapackage,
+    "text/vnd.net2phone.commcenter.command" => Mime::TextVndNet2phoneCommcenterCommand,
+    "text/vnd.radisys.msml-basic-layout" => Mime::TextVndRadisysMsmlBasicLayout,
+    "text/vnd.senx.warpscript" => Mime::TextVndSenxWarpscript,
+    "text/vnd.sun.j2me.app-descriptor" => Mime::TextVndSunJ2meAppDescriptor,
+    "text/vnd.sosi" => Mime::TextVndSosi,
+    "text/vnd.trolltech.linguist" => Mime::TextVndTrolltechLinguist,
+    "text/vnd.wap.si" => Mime::TextVndWapSi,
+    "text/vnd.wap.sl" => Mime::TextVndWapSl,
+    "text/vnd.wap.wml" => Mime::TextVndWapWml,
+    "text/vnd.wap.wmlscript" => Mime::TextVndWapWmlscript,
+    "text/vtt" => Mime::TextVtt,
+    "text/wgsl" => Mime::TextWgsl,
+    "text/xml" => Mime::TextXml,
+    "text/xml-external-parsed-entity" => Mime::TextXmlExternalParsedEntity,
+    "video/1d-interleaved-parityfec" => Mime::Video1dInterleavedParityfec,
+    "video/3gpp" => Mime::Video3gpp,
+    "video/3gpp2" => Mime::Video3gpp2,
+    "video/3gpp-tt" => Mime::Video3gppTt,
+    "video/AV1" => Mime::VideoAv1,
+    "video/BMPEG" => Mime::VideoBmpeg,
+    "video/BT656" => Mime::VideoBt656,
+    "video/CelB" => Mime::VideoCelb,
+    "video/DV" => Mime::VideoDv,
+    "video/encaprtp" => Mime::VideoEncaprtp,
+    "video/example" => Mime::VideoExample,
+    "video/FFV1" => Mime::VideoFfv1,
+    "video/flexfec" => Mime::VideoFlexfec,
+    "video/H261" => Mime::VideoH261,
+    "video/H263" => Mime::VideoH263,
+    "video/H263-1998" => Mime::VideoH2631998,
+    "video/H263-2000" => Mime::VideoH2632000,
+    "video/H264" => Mime::VideoH264,
+    "video/H264-RCDO" => Mime::VideoH264Rcdo,
+    "video/H264-SVC" => Mime::VideoH264Svc,
+    "video/H265" => Mime::VideoH265,
+    "video/H266" => Mime::VideoH266,
+    "video/iso.segment" => Mime::VideoIsoSegment,
+    "video/JPEG" => Mime::VideoJpeg,
+    "video/jpeg2000" => Mime::VideoJpeg2000,
+    "video/jxsv" => Mime::VideoJxsv,
+    "video/mj2" => Mime::VideoMj2,
+    "video/MP1S" => Mime::VideoMp1s,
+    "video/MP2P" => Mime::VideoMp2p,
+    "video/MP2T" => Mime::VideoMp2t,
+    "video/mp4" => Mime::VideoMp4,
+    "video/MP4V-ES" => Mime::VideoMp4vEs,
+    "video/MPV" => Mime::VideoMpv,
+    "video/mpeg4-generic" => Mime::VideoMpeg4Generic,
+    "video/nv" => Mime::VideoNv,
+    "video/ogg" => Mime::VideoOgg,
+    "video/parityfec" => Mime::VideoParityfec,
+    "video/pointer" => Mime::VideoPointer,
+    "video/quicktime" => Mime::VideoQuicktime,
+    "video/raptorfec" => Mime::VideoRaptorfec,
+    "video/raw" => Mime::VideoRaw,
+    "video/rtp-enc-aescm128" => Mime::VideoRtpEncAescm128,
+    "video/rtploopback" => Mime::VideoRtploopback,
+    "video/rtx" => Mime::VideoRtx,
+    "video/scip" => Mime::VideoScip,
+    "video/smpte291" => Mime::VideoSmpte291,
+    "video/SMPTE292M" => Mime::VideoSmpte292m,
+    "video/ulpfec" => Mime::VideoUlpfec,
+    "video/vc1" => Mime::VideoVc1,
+    "video/vc2" => Mime::VideoVc2,
+    "video/vnd.CCTV" => Mime::VideoVndCctv,
+    "video/vnd.dece.hd" => Mime::VideoVndDeceHd,
+    "video/vnd.dece.mobile" => Mime::VideoVndDeceMobile,
+    "video/vnd.dece.mp4" => Mime::VideoVndDeceMp4,
+    "video/vnd.dece.pd" => Mime::VideoVndDecePd,
+    "video/vnd.dece.sd" => Mime::VideoVndDeceSd,
+    "video/vnd.dece.video" => Mime::VideoVndDeceVideo,
+    "video/vnd.directv.mpeg" => Mime::VideoVndDirectvMpeg,
+    "video/vnd.directv.mpeg-tts" => Mime::VideoVndDirectvMpegTts,
+    "video/vnd.dlna.mpeg-tts" => Mime::VideoVndDlnaMpegTts,
+    "video/vnd.dvb.file" => Mime::VideoVndDvbFile,
+    "video/vnd.fvt" => Mime::VideoVndFvt,
+    "video/vnd.hns.video" => Mime::VideoVndHnsVideo,
+    "video/vnd.iptvforum.1dparityfec-1010" => Mime::VideoVndIptvforum1dparityfec1010,
+    "video/vnd.iptvforum.1dparityfec-2005" => Mime::VideoVndIptvforum1dparityfec2005,
+    "video/vnd.iptvforum.2dparityfec-1010" => Mime::VideoVndIptvforum2dparityfec1010,
+    "video/vnd.iptvforum.2dparityfec-2005" => Mime::VideoVndIptvforum2dparityfec2005,
+    "video/vnd.iptvforum.ttsavc" => Mime::VideoVndIptvforumTtsavc,
+    "video/vnd.iptvforum.ttsmpeg2" => Mime::VideoVndIptvforumTtsmpeg2,
+    "video/vnd.motorola.video" => Mime::VideoVndMotorolaVideo,
+    "video/vnd.motorola.videop" => Mime::VideoVndMotorolaVideop,
+    "video/vnd.mpegurl" => Mime::VideoVndMpegurl,
+    "video/vnd.ms-playready.media.pyv" => Mime::VideoVndMsPlayreadyMediaPyv,
+    "video/vnd.nokia.interleaved-multimedia" => Mime::VideoVndNokiaInterleavedMultimedia,
+    "video/vnd.nokia.mp4vr" => Mime::VideoVndNokiaMp4vr,
+    "video/vnd.nokia.videovoip" => Mime::VideoVndNokiaVideovoip,
+    "video/vnd.objectvideo" => Mime::VideoVndObjectvideo,
+    "video/vnd.radgamettools.bink" => Mime::VideoVndRadgamettoolsBink,
+    "video/vnd.radgamettools.smacker" => Mime::VideoVndRadgamettoolsSmacker,
+    "video/vnd.sealed.mpeg1" => Mime::VideoVndSealedMpeg1,
+    "video/vnd.sealed.mpeg4" => Mime::VideoVndSealedMpeg4,
+    "video/vnd.sealed.swf" => Mime::VideoVndSealedSwf,
+    "video/vnd.sealedmedia.softseal.mov" => Mime::VideoVndSealedmediaSoftsealMov,
+    "video/vnd.uvvu.mp4" => Mime::VideoVndUvvuMp4,
+    "video/vnd.youtube.yt" => Mime::VideoVndYoutubeYt,
+    "video/vnd.vivo" => Mime::VideoVndVivo,
+    "video/VP8" => Mime::VideoVp8,
+    "video/VP9" => Mime::VideoVp9,
+};
diff --git a/core/http/src/utils/mime/mime_enum.rs b/core/http/src/utils/mime/mime_enum.rs
new file mode 100644
index 0000000000000000000000000000000000000000..1ad81818e94d55b3d09dde93cf38f8aa4b3e6941
--- /dev/null
+++ b/core/http/src/utils/mime/mime_enum.rs
@@ -0,0 +1,4103 @@
+use super::map::MIME_MAP;
+
+#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)]
+/// An Enum of all Mime types
+pub enum Mime {
+    Application1dInterleavedParityfec,
+    Application3gpdashQoeReportXml,
+    Application3gpphalJson,
+    Application3gpphalformsJson,
+    Application3gppImsXml,
+    ApplicationA2l,
+    ApplicationAceCbor,
+    ApplicationAceJson,
+    ApplicationActivemessage,
+    ApplicationActivityJson,
+    ApplicationAifCbor,
+    ApplicationAifJson,
+    ApplicationAltoCdniJson,
+    ApplicationAltoCdnifilterJson,
+    ApplicationAltoCostmapJson,
+    ApplicationAltoCostmapfilterJson,
+    ApplicationAltoDirectoryJson,
+    ApplicationAltoEndpointpropJson,
+    ApplicationAltoEndpointpropparamsJson,
+    ApplicationAltoEndpointcostJson,
+    ApplicationAltoEndpointcostparamsJson,
+    ApplicationAltoErrorJson,
+    ApplicationAltoNetworkmapfilterJson,
+    ApplicationAltoNetworkmapJson,
+    ApplicationAltoPropmapJson,
+    ApplicationAltoPropmapparamsJson,
+    ApplicationAltoUpdatestreamcontrolJson,
+    ApplicationAltoUpdatestreamparamsJson,
+    ApplicationAml,
+    ApplicationAndrewInset,
+    ApplicationApplefile,
+    ApplicationAtJwt,
+    ApplicationAtf,
+    ApplicationAtfx,
+    ApplicationAtomXml,
+    ApplicationAtomcatXml,
+    ApplicationAtomdeletedXml,
+    ApplicationAtomicmail,
+    ApplicationAtomsvcXml,
+    ApplicationAtscDwdXml,
+    ApplicationAtscDynamicEventMessage,
+    ApplicationAtscHeldXml,
+    ApplicationAtscRdtJson,
+    ApplicationAtscRsatXml,
+    ApplicationAtxml,
+    ApplicationAuthPolicyXml,
+    ApplicationAutomationmlAmlXml,
+    ApplicationAutomationmlAmlxZip,
+    ApplicationBacnetXddZip,
+    ApplicationBatchSmtp,
+    ApplicationBeepXml,
+    ApplicationCalendarJson,
+    ApplicationCalendarXml,
+    ApplicationCallCompletion,
+    ApplicationCals1840,
+    ApplicationCaptiveJson,
+    ApplicationCbor,
+    ApplicationCborSeq,
+    ApplicationCccex,
+    ApplicationCcmpXml,
+    ApplicationCcxmlXml,
+    ApplicationCdaXml,
+    ApplicationCdfxXml,
+    ApplicationCdmiCapability,
+    ApplicationCdmiContainer,
+    ApplicationCdmiDomain,
+    ApplicationCdmiObject,
+    ApplicationCdmiQueue,
+    ApplicationCdni,
+    ApplicationCea,
+    ApplicationCea2018Xml,
+    ApplicationCellmlXml,
+    ApplicationCfw,
+    ApplicationCityJson,
+    ApplicationClr,
+    ApplicationClueInfoXml,
+    ApplicationClueXml,
+    ApplicationCms,
+    ApplicationCnrpXml,
+    ApplicationCoapGroupJson,
+    ApplicationCoapPayload,
+    ApplicationCommonground,
+    ApplicationConciseProblemDetailsCbor,
+    ApplicationConferenceInfoXml,
+    ApplicationCplXml,
+    ApplicationCose,
+    ApplicationCoseKey,
+    ApplicationCoseKeySet,
+    ApplicationCoseX509,
+    ApplicationCsrattrs,
+    ApplicationCstaXml,
+    ApplicationCstadataXml,
+    ApplicationCsvmJson,
+    ApplicationCwl,
+    ApplicationCwlJson,
+    ApplicationCwt,
+    ApplicationCybercash,
+    ApplicationDashXml,
+    ApplicationDashPatchXml,
+    ApplicationDashdelta,
+    ApplicationDavmountXml,
+    ApplicationDcaRft,
+    ApplicationDcd,
+    ApplicationDecDx,
+    ApplicationDialogInfoXml,
+    ApplicationDicom,
+    ApplicationDicomJson,
+    ApplicationDicomXml,
+    ApplicationDii,
+    ApplicationDit,
+    ApplicationDns,
+    ApplicationDnsJson,
+    ApplicationDnsMessage,
+    ApplicationDotsCbor,
+    ApplicationDpopJwt,
+    ApplicationDskppXml,
+    ApplicationDsscDer,
+    ApplicationDsscXml,
+    ApplicationDvcs,
+    ApplicationEdiConsent,
+    ApplicationEdifact,
+    ApplicationEdiX12,
+    ApplicationEfi,
+    ApplicationElmJson,
+    ApplicationElmXml,
+    ApplicationEmergencycalldataCapXml,
+    ApplicationEmergencycalldataCommentXml,
+    ApplicationEmergencycalldataControlXml,
+    ApplicationEmergencycalldataDeviceinfoXml,
+    ApplicationEmergencycalldataEcallMsd,
+    ApplicationEmergencycalldataLegacyesnJson,
+    ApplicationEmergencycalldataProviderinfoXml,
+    ApplicationEmergencycalldataServiceinfoXml,
+    ApplicationEmergencycalldataSubscriberinfoXml,
+    ApplicationEmergencycalldataVedsXml,
+    ApplicationEmmaXml,
+    ApplicationEmotionmlXml,
+    ApplicationEncaprtp,
+    ApplicationEppXml,
+    ApplicationEpubZip,
+    ApplicationEshop,
+    ApplicationExample,
+    ApplicationExi,
+    ApplicationExpectCtReportJson,
+    ApplicationExpress,
+    ApplicationFastinfoset,
+    ApplicationFastsoap,
+    ApplicationFdf,
+    ApplicationFdtXml,
+    ApplicationFhirJson,
+    ApplicationFhirXml,
+    ApplicationFits,
+    ApplicationFlexfec,
+    ApplicationFontTdpfr,
+    ApplicationFrameworkAttributesXml,
+    ApplicationGeoJson,
+    ApplicationGeoJsonSeq,
+    ApplicationGeopackageSqlite3,
+    ApplicationGeoxacmlXml,
+    ApplicationGltfBuffer,
+    ApplicationGmlXml,
+    ApplicationGzip,
+    ApplicationH224,
+    ApplicationHeldXml,
+    ApplicationHl7v2Xml,
+    ApplicationHttp,
+    ApplicationHyperstudio,
+    ApplicationIbeKeyRequestXml,
+    ApplicationIbePkgReplyXml,
+    ApplicationIbePpData,
+    ApplicationIges,
+    ApplicationImIscomposingXml,
+    ApplicationIndex,
+    ApplicationIndexCmd,
+    ApplicationIndexObj,
+    ApplicationIndexResponse,
+    ApplicationIndexVnd,
+    ApplicationInkmlXml,
+    ApplicationIotp,
+    ApplicationIpfix,
+    ApplicationIpp,
+    ApplicationIsup,
+    ApplicationItsXml,
+    ApplicationJavaArchive,
+    ApplicationJf2feedJson,
+    ApplicationJose,
+    ApplicationJoseJson,
+    ApplicationJrdJson,
+    ApplicationJscalendarJson,
+    ApplicationJson,
+    ApplicationJsonPatchJson,
+    ApplicationJsonSeq,
+    ApplicationJwkJson,
+    ApplicationJwkSetJson,
+    ApplicationJwt,
+    ApplicationKpmlRequestXml,
+    ApplicationKpmlResponseXml,
+    ApplicationLdJson,
+    ApplicationLgrXml,
+    ApplicationLinkFormat,
+    ApplicationLinkset,
+    ApplicationLinksetJson,
+    ApplicationLoadControlXml,
+    ApplicationLogoutJwt,
+    ApplicationLostXml,
+    ApplicationLostsyncXml,
+    ApplicationLpfZip,
+    ApplicationLxf,
+    ApplicationMacBinhex40,
+    ApplicationMacwriteii,
+    ApplicationMadsXml,
+    ApplicationManifestJson,
+    ApplicationMarc,
+    ApplicationMarcxmlXml,
+    ApplicationMathematica,
+    ApplicationMathmlXml,
+    ApplicationMathmlContentXml,
+    ApplicationMathmlPresentationXml,
+    ApplicationMbmsAssociatedProcedureDescriptionXml,
+    ApplicationMbmsDeregisterXml,
+    ApplicationMbmsEnvelopeXml,
+    ApplicationMbmsMskResponseXml,
+    ApplicationMbmsMskXml,
+    ApplicationMbmsProtectionDescriptionXml,
+    ApplicationMbmsReceptionReportXml,
+    ApplicationMbmsRegisterResponseXml,
+    ApplicationMbmsRegisterXml,
+    ApplicationMbmsScheduleXml,
+    ApplicationMbmsUserServiceDescriptionXml,
+    ApplicationMbox,
+    ApplicationMediaControlXml,
+    ApplicationMediaPolicyDatasetXml,
+    ApplicationMediaservercontrolXml,
+    ApplicationMergePatchJson,
+    ApplicationMetalink4Xml,
+    ApplicationMetsXml,
+    ApplicationMf4,
+    ApplicationMikey,
+    ApplicationMipc,
+    ApplicationMissingBlocksCborSeq,
+    ApplicationMmtAeiXml,
+    ApplicationMmtUsdXml,
+    ApplicationModsXml,
+    ApplicationMossKeys,
+    ApplicationMossSignature,
+    ApplicationMosskeyData,
+    ApplicationMosskeyRequest,
+    ApplicationMp21,
+    ApplicationMp4,
+    ApplicationMpeg4Generic,
+    ApplicationMpeg4Iod,
+    ApplicationMpeg4IodXmt,
+    ApplicationMrbConsumerXml,
+    ApplicationMrbPublishXml,
+    ApplicationMscIvrXml,
+    ApplicationMscMixerXml,
+    ApplicationMsword,
+    ApplicationMudJson,
+    ApplicationMultipartCore,
+    ApplicationMxf,
+    ApplicationNQuads,
+    ApplicationNTriples,
+    ApplicationNasdata,
+    ApplicationNewsCheckgroups,
+    ApplicationNewsGroupinfo,
+    ApplicationNewsTransmission,
+    ApplicationNlsmlXml,
+    ApplicationNode,
+    ApplicationNss,
+    ApplicationOauthAuthzReqJwt,
+    ApplicationObliviousDnsMessage,
+    ApplicationOcspRequest,
+    ApplicationOcspResponse,
+    ApplicationOctetStream,
+    ApplicationOda,
+    ApplicationOdmXml,
+    ApplicationOdx,
+    ApplicationOebpsPackageXml,
+    ApplicationOgg,
+    ApplicationOhttpKeys,
+    ApplicationOpcNodesetXml,
+    ApplicationOscore,
+    ApplicationOxps,
+    ApplicationP21,
+    ApplicationP21Zip,
+    ApplicationP2pOverlayXml,
+    ApplicationParityfec,
+    ApplicationPassport,
+    ApplicationPatchOpsErrorXml,
+    ApplicationPdf,
+    ApplicationPdx,
+    ApplicationPemCertificateChain,
+    ApplicationPgpEncrypted,
+    ApplicationPgpKeys,
+    ApplicationPgpSignature,
+    ApplicationPidfDiffXml,
+    ApplicationPidfXml,
+    ApplicationPkcs10,
+    ApplicationPkcs7Mime,
+    ApplicationPkcs7Signature,
+    ApplicationPkcs8,
+    ApplicationPkcs8Encrypted,
+    ApplicationPkcs12,
+    ApplicationPkixAttrCert,
+    ApplicationPkixCert,
+    ApplicationPkixCrl,
+    ApplicationPkixPkipath,
+    ApplicationPkixcmp,
+    ApplicationPlsXml,
+    ApplicationPocSettingsXml,
+    ApplicationPostscript,
+    ApplicationPpspTrackerJson,
+    ApplicationProblemJson,
+    ApplicationProblemXml,
+    ApplicationProvenanceXml,
+    ApplicationPrsAlvestrandTitraxSheet,
+    ApplicationPrsCww,
+    ApplicationPrsCyn,
+    ApplicationPrsHpubZip,
+    ApplicationPrsImpliedDocumentXml,
+    ApplicationPrsImpliedExecutable,
+    ApplicationPrsImpliedStructure,
+    ApplicationPrsNprend,
+    ApplicationPrsPlucker,
+    ApplicationPrsRdfXmlCrypt,
+    ApplicationPrsXsfXml,
+    ApplicationPskcXml,
+    ApplicationPvdJson,
+    ApplicationRdfXml,
+    ApplicationRouteApdXml,
+    ApplicationRouteSTsidXml,
+    ApplicationRouteUsdXml,
+    ApplicationQsig,
+    ApplicationRaptorfec,
+    ApplicationRdapJson,
+    ApplicationReginfoXml,
+    ApplicationRelaxNgCompactSyntax,
+    ApplicationReputonJson,
+    ApplicationResourceListsDiffXml,
+    ApplicationResourceListsXml,
+    ApplicationRfcXml,
+    ApplicationRiscos,
+    ApplicationRlmiXml,
+    ApplicationRlsServicesXml,
+    ApplicationRpkiChecklist,
+    ApplicationRpkiGhostbusters,
+    ApplicationRpkiManifest,
+    ApplicationRpkiPublication,
+    ApplicationRpkiRoa,
+    ApplicationRpkiUpdown,
+    ApplicationRtf,
+    ApplicationRtploopback,
+    ApplicationRtx,
+    ApplicationSamlassertionXml,
+    ApplicationSamlmetadataXml,
+    ApplicationSarifExternalPropertiesJson,
+    ApplicationSarifJson,
+    ApplicationSbe,
+    ApplicationSbmlXml,
+    ApplicationScaipXml,
+    ApplicationScimJson,
+    ApplicationScvpCvRequest,
+    ApplicationScvpCvResponse,
+    ApplicationScvpVpRequest,
+    ApplicationScvpVpResponse,
+    ApplicationSdp,
+    ApplicationSeceventJwt,
+    ApplicationSenmlEtchCbor,
+    ApplicationSenmlEtchJson,
+    ApplicationSenmlExi,
+    ApplicationSenmlCbor,
+    ApplicationSenmlJson,
+    ApplicationSenmlXml,
+    ApplicationSensmlExi,
+    ApplicationSensmlCbor,
+    ApplicationSensmlJson,
+    ApplicationSensmlXml,
+    ApplicationSepExi,
+    ApplicationSepXml,
+    ApplicationSessionInfo,
+    ApplicationSetPayment,
+    ApplicationSetPaymentInitiation,
+    ApplicationSetRegistration,
+    ApplicationSetRegistrationInitiation,
+    ApplicationSgml,
+    ApplicationSgmlOpenCatalog,
+    ApplicationShfXml,
+    ApplicationSieve,
+    ApplicationSimpleFilterXml,
+    ApplicationSimpleMessageSummary,
+    ApplicationSimplesymbolcontainer,
+    ApplicationSipc,
+    ApplicationSlate,
+    ApplicationSmilXml,
+    ApplicationSmpte336m,
+    ApplicationSoapFastinfoset,
+    ApplicationSoapXml,
+    ApplicationSparqlQuery,
+    ApplicationSpdxJson,
+    ApplicationSparqlResultsXml,
+    ApplicationSpiritsEventXml,
+    ApplicationSql,
+    ApplicationSrgs,
+    ApplicationSrgsXml,
+    ApplicationSruXml,
+    ApplicationSsmlXml,
+    ApplicationStixJson,
+    ApplicationSwidCbor,
+    ApplicationSwidXml,
+    ApplicationTampApexUpdate,
+    ApplicationTampApexUpdateConfirm,
+    ApplicationTampCommunityUpdate,
+    ApplicationTampCommunityUpdateConfirm,
+    ApplicationTampError,
+    ApplicationTampSequenceAdjust,
+    ApplicationTampSequenceAdjustConfirm,
+    ApplicationTampStatusQuery,
+    ApplicationTampStatusResponse,
+    ApplicationTampUpdate,
+    ApplicationTampUpdateConfirm,
+    ApplicationTaxiiJson,
+    ApplicationTdJson,
+    ApplicationTeiXml,
+    ApplicationTetraIsi,
+    ApplicationThraudXml,
+    ApplicationTimestampQuery,
+    ApplicationTimestampReply,
+    ApplicationTimestampedData,
+    ApplicationTlsrptGzip,
+    ApplicationTlsrptJson,
+    ApplicationTmJson,
+    ApplicationTnauthlist,
+    ApplicationTokenIntrospectionJwt,
+    ApplicationTrickleIceSdpfrag,
+    ApplicationTrig,
+    ApplicationTtmlXml,
+    ApplicationTveTrigger,
+    ApplicationTzif,
+    ApplicationTzifLeap,
+    ApplicationUlpfec,
+    ApplicationUrcGrpsheetXml,
+    ApplicationUrcRessheetXml,
+    ApplicationUrcTargetdescXml,
+    ApplicationUrcUisocketdescXml,
+    ApplicationVcardJson,
+    ApplicationVcardXml,
+    ApplicationVemmi,
+    ApplicationVnd1000mindsDecisionModelXml,
+    ApplicationVnd1ob,
+    ApplicationVnd3gpp5gnas,
+    ApplicationVnd3gppAccessTransferEventsXml,
+    ApplicationVnd3gppBsfXml,
+    ApplicationVnd3gppCrsXml,
+    ApplicationVnd3gppCurrentLocationDiscoveryXml,
+    ApplicationVnd3gppGmopXml,
+    ApplicationVnd3gppGtpc,
+    ApplicationVnd3gppInterworkingData,
+    ApplicationVnd3gppLpp,
+    ApplicationVnd3gppMcSignallingEar,
+    ApplicationVnd3gppMcdataAffiliationCommandXml,
+    ApplicationVnd3gppMcdataInfoXml,
+    ApplicationVnd3gppMcdataMsgstoreCtrlRequestXml,
+    ApplicationVnd3gppMcdataPayload,
+    ApplicationVnd3gppMcdataRegroupXml,
+    ApplicationVnd3gppMcdataServiceConfigXml,
+    ApplicationVnd3gppMcdataSignalling,
+    ApplicationVnd3gppMcdataUeConfigXml,
+    ApplicationVnd3gppMcdataUserProfileXml,
+    ApplicationVnd3gppMcpttAffiliationCommandXml,
+    ApplicationVnd3gppMcpttFloorRequestXml,
+    ApplicationVnd3gppMcpttInfoXml,
+    ApplicationVnd3gppMcpttLocationInfoXml,
+    ApplicationVnd3gppMcpttMbmsUsageInfoXml,
+    ApplicationVnd3gppMcpttRegroupXml,
+    ApplicationVnd3gppMcpttServiceConfigXml,
+    ApplicationVnd3gppMcpttSignedXml,
+    ApplicationVnd3gppMcpttUeConfigXml,
+    ApplicationVnd3gppMcpttUeInitConfigXml,
+    ApplicationVnd3gppMcpttUserProfileXml,
+    ApplicationVnd3gppMcvideoAffiliationCommandXml,
+    ApplicationVnd3gppMcvideoInfoXml,
+    ApplicationVnd3gppMcvideoLocationInfoXml,
+    ApplicationVnd3gppMcvideoMbmsUsageInfoXml,
+    ApplicationVnd3gppMcvideoRegroupXml,
+    ApplicationVnd3gppMcvideoServiceConfigXml,
+    ApplicationVnd3gppMcvideoTransmissionRequestXml,
+    ApplicationVnd3gppMcvideoUeConfigXml,
+    ApplicationVnd3gppMcvideoUserProfileXml,
+    ApplicationVnd3gppMidCallXml,
+    ApplicationVnd3gppNgap,
+    ApplicationVnd3gppPfcp,
+    ApplicationVnd3gppPicBwLarge,
+    ApplicationVnd3gppPicBwSmall,
+    ApplicationVnd3gppPicBwVar,
+    ApplicationVnd3gppProsePc3aXml,
+    ApplicationVnd3gppProsePc3achXml,
+    ApplicationVnd3gppProsePc3chXml,
+    ApplicationVnd3gppProsePc8Xml,
+    ApplicationVnd3gppProseXml,
+    ApplicationVnd3gppS1ap,
+    ApplicationVnd3gppSealGroupDocXml,
+    ApplicationVnd3gppSealInfoXml,
+    ApplicationVnd3gppSealLocationInfoXml,
+    ApplicationVnd3gppSealMbmsUsageInfoXml,
+    ApplicationVnd3gppSealNetworkQosManagementInfoXml,
+    ApplicationVnd3gppSealUeConfigInfoXml,
+    ApplicationVnd3gppSealUnicastInfoXml,
+    ApplicationVnd3gppSealUserProfileInfoXml,
+    ApplicationVnd3gppSms,
+    ApplicationVnd3gppSmsXml,
+    ApplicationVnd3gppSrvccExtXml,
+    ApplicationVnd3gppSrvccInfoXml,
+    ApplicationVnd3gppStateAndEventInfoXml,
+    ApplicationVnd3gppUssdXml,
+    ApplicationVnd3gppVaeInfoXml,
+    ApplicationVnd3gppV2xLocalServiceInformation,
+    ApplicationVnd3gpp2BcmcsinfoXml,
+    ApplicationVnd3gpp2Sms,
+    ApplicationVnd3gpp2Tcap,
+    ApplicationVnd3gppV2x,
+    ApplicationVnd3lightssoftwareImagescal,
+    ApplicationVnd3mPostItNotes,
+    ApplicationVndAccpacSimplyAso,
+    ApplicationVndAccpacSimplyImp,
+    ApplicationVndAcmAddressxferJson,
+    ApplicationVndAcucobol,
+    ApplicationVndAcucorp,
+    ApplicationVndAdobeFlashMovie,
+    ApplicationVndAdobeFormscentralFcdt,
+    ApplicationVndAdobeFxp,
+    ApplicationVndAdobePartialUpload,
+    ApplicationVndAdobeXdpXml,
+    ApplicationVndAetherImp,
+    ApplicationVndAfpcAfplinedata,
+    ApplicationVndAfpcAfplinedataPagedef,
+    ApplicationVndAfpcCmocaCmresource,
+    ApplicationVndAfpcFocaCharset,
+    ApplicationVndAfpcFocaCodedfont,
+    ApplicationVndAfpcFocaCodepage,
+    ApplicationVndAfpcModca,
+    ApplicationVndAfpcModcaCmtable,
+    ApplicationVndAfpcModcaFormdef,
+    ApplicationVndAfpcModcaMediummap,
+    ApplicationVndAfpcModcaObjectcontainer,
+    ApplicationVndAfpcModcaOverlay,
+    ApplicationVndAfpcModcaPagesegment,
+    ApplicationVndAge,
+    ApplicationVndAhBarcode,
+    ApplicationVndAheadSpace,
+    ApplicationVndAirzipFilesecureAzf,
+    ApplicationVndAirzipFilesecureAzs,
+    ApplicationVndAmadeusJson,
+    ApplicationVndAmazonMobi8Ebook,
+    ApplicationVndAmericandynamicsAcc,
+    ApplicationVndAmigaAmi,
+    ApplicationVndAmundsenMazeXml,
+    ApplicationVndAndroidOta,
+    ApplicationVndAnki,
+    ApplicationVndAnserWebCertificateIssueInitiation,
+    ApplicationVndAntixGameComponent,
+    ApplicationVndApacheArrowFile,
+    ApplicationVndApacheArrowStream,
+    ApplicationVndApacheThriftBinary,
+    ApplicationVndApacheThriftCompact,
+    ApplicationVndApacheThriftJson,
+    ApplicationVndApexlang,
+    ApplicationVndApiJson,
+    ApplicationVndAplextorWarrpJson,
+    ApplicationVndApothekendeReservationJson,
+    ApplicationVndAppleInstallerXml,
+    ApplicationVndAppleKeynote,
+    ApplicationVndAppleMpegurl,
+    ApplicationVndAppleNumbers,
+    ApplicationVndApplePages,
+    ApplicationVndAristanetworksSwi,
+    ApplicationVndArtisanJson,
+    ApplicationVndArtsquare,
+    ApplicationVndAstraeaSoftwareIota,
+    ApplicationVndAudiograph,
+    ApplicationVndAutopackage,
+    ApplicationVndAvalonJson,
+    ApplicationVndAvistarXml,
+    ApplicationVndBalsamiqBmmlXml,
+    ApplicationVndBananaAccounting,
+    ApplicationVndBbfUspError,
+    ApplicationVndBbfUspMsg,
+    ApplicationVndBbfUspMsgJson,
+    ApplicationVndBalsamiqBmpr,
+    ApplicationVndBekitzurStechJson,
+    ApplicationVndBelightsoftLhzdZip,
+    ApplicationVndBelightsoftLhzlZip,
+    ApplicationVndBintMedContent,
+    ApplicationVndBiopaxRdfXml,
+    ApplicationVndBlinkIdbValueWrapper,
+    ApplicationVndBlueiceMultipass,
+    ApplicationVndBluetoothEpOob,
+    ApplicationVndBluetoothLeOob,
+    ApplicationVndBmi,
+    ApplicationVndBpf,
+    ApplicationVndBpf3,
+    ApplicationVndBusinessobjects,
+    ApplicationVndByuUapiJson,
+    ApplicationVndCabJscript,
+    ApplicationVndCanonCpdl,
+    ApplicationVndCanonLips,
+    ApplicationVndCapasystemsPgJson,
+    ApplicationVndCendioThinlincClientconf,
+    ApplicationVndCenturySystemsTcpStream,
+    ApplicationVndChemdrawXml,
+    ApplicationVndChessPgn,
+    ApplicationVndChipnutsKaraokeMmd,
+    ApplicationVndCiedi,
+    ApplicationVndCinderella,
+    ApplicationVndCirpackIsdnExt,
+    ApplicationVndCitationstylesStyleXml,
+    ApplicationVndClaymore,
+    ApplicationVndCloantoRp9,
+    ApplicationVndClonkC4group,
+    ApplicationVndCluetrustCartomobileConfig,
+    ApplicationVndCluetrustCartomobileConfigPkg,
+    ApplicationVndCncfHelmChartContentV1TarGzip,
+    ApplicationVndCncfHelmChartProvenanceV1Prov,
+    ApplicationVndCncfHelmConfigV1Json,
+    ApplicationVndCoffeescript,
+    ApplicationVndCollabioXodocumentsDocument,
+    ApplicationVndCollabioXodocumentsDocumentTemplate,
+    ApplicationVndCollabioXodocumentsPresentation,
+    ApplicationVndCollabioXodocumentsPresentationTemplate,
+    ApplicationVndCollabioXodocumentsSpreadsheet,
+    ApplicationVndCollabioXodocumentsSpreadsheetTemplate,
+    ApplicationVndCollectionDocJson,
+    ApplicationVndCollectionJson,
+    ApplicationVndCollectionNextJson,
+    ApplicationVndComicbookRar,
+    ApplicationVndComicbookZip,
+    ApplicationVndCommerceBattelle,
+    ApplicationVndCommonspace,
+    ApplicationVndCoreosIgnitionJson,
+    ApplicationVndCosmocaller,
+    ApplicationVndContactCmsg,
+    ApplicationVndCrickClicker,
+    ApplicationVndCrickClickerKeyboard,
+    ApplicationVndCrickClickerPalette,
+    ApplicationVndCrickClickerTemplate,
+    ApplicationVndCrickClickerWordbank,
+    ApplicationVndCriticaltoolsWbsXml,
+    ApplicationVndCryptiiPipeJson,
+    ApplicationVndCryptoShadeFile,
+    ApplicationVndCryptomatorEncrypted,
+    ApplicationVndCryptomatorVault,
+    ApplicationVndCtcPosml,
+    ApplicationVndCtctWsXml,
+    ApplicationVndCupsPdf,
+    ApplicationVndCupsPostscript,
+    ApplicationVndCupsPpd,
+    ApplicationVndCupsRaster,
+    ApplicationVndCupsRaw,
+    ApplicationVndCurl,
+    ApplicationVndCyanDeanRootXml,
+    ApplicationVndCybank,
+    ApplicationVndCyclonedxJson,
+    ApplicationVndCyclonedxXml,
+    ApplicationVndD2lCoursepackage1p0Zip,
+    ApplicationVndD3mDataset,
+    ApplicationVndD3mProblem,
+    ApplicationVndDart,
+    ApplicationVndDataVisionRdz,
+    ApplicationVndDatalog,
+    ApplicationVndDatapackageJson,
+    ApplicationVndDataresourceJson,
+    ApplicationVndDbf,
+    ApplicationVndDebianBinaryPackage,
+    ApplicationVndDeceData,
+    ApplicationVndDeceTtmlXml,
+    ApplicationVndDeceUnspecified,
+    ApplicationVndDeceZip,
+    ApplicationVndDenovoFcselayoutLink,
+    ApplicationVndDesmumeMovie,
+    ApplicationVndDirBiPlateDlNosuffix,
+    ApplicationVndDmDelegationXml,
+    ApplicationVndDna,
+    ApplicationVndDocumentJson,
+    ApplicationVndDolbyMobile1,
+    ApplicationVndDolbyMobile2,
+    ApplicationVndDoremirScorecloudBinaryDocument,
+    ApplicationVndDpgraph,
+    ApplicationVndDreamfactory,
+    ApplicationVndDriveJson,
+    ApplicationVndDtgLocal,
+    ApplicationVndDtgLocalFlash,
+    ApplicationVndDtgLocalHtml,
+    ApplicationVndDvbAit,
+    ApplicationVndDvbDvbislXml,
+    ApplicationVndDvbDvbj,
+    ApplicationVndDvbEsgcontainer,
+    ApplicationVndDvbIpdcdftnotifaccess,
+    ApplicationVndDvbIpdcesgaccess,
+    ApplicationVndDvbIpdcesgaccess2,
+    ApplicationVndDvbIpdcesgpdd,
+    ApplicationVndDvbIpdcroaming,
+    ApplicationVndDvbIptvAlfecBase,
+    ApplicationVndDvbIptvAlfecEnhancement,
+    ApplicationVndDvbNotifAggregateRootXml,
+    ApplicationVndDvbNotifContainerXml,
+    ApplicationVndDvbNotifGenericXml,
+    ApplicationVndDvbNotifIaMsglistXml,
+    ApplicationVndDvbNotifIaRegistrationRequestXml,
+    ApplicationVndDvbNotifIaRegistrationResponseXml,
+    ApplicationVndDvbNotifInitXml,
+    ApplicationVndDvbPfr,
+    ApplicationVndDvbService,
+    ApplicationVndDxr,
+    ApplicationVndDynageo,
+    ApplicationVndDzr,
+    ApplicationVndEasykaraokeCdgdownload,
+    ApplicationVndEcipRlp,
+    ApplicationVndEcdisUpdate,
+    ApplicationVndEclipseDittoJson,
+    ApplicationVndEcowinChart,
+    ApplicationVndEcowinFilerequest,
+    ApplicationVndEcowinFileupdate,
+    ApplicationVndEcowinSeries,
+    ApplicationVndEcowinSeriesrequest,
+    ApplicationVndEcowinSeriesupdate,
+    ApplicationVndEfiImg,
+    ApplicationVndEfiIso,
+    ApplicationVndElnZip,
+    ApplicationVndEmclientAccessrequestXml,
+    ApplicationVndEnliven,
+    ApplicationVndEnphaseEnvoy,
+    ApplicationVndEprintsDataXml,
+    ApplicationVndEpsonEsf,
+    ApplicationVndEpsonMsf,
+    ApplicationVndEpsonQuickanime,
+    ApplicationVndEpsonSalt,
+    ApplicationVndEpsonSsf,
+    ApplicationVndEricssonQuickcall,
+    ApplicationVndEspassEspassZip,
+    ApplicationVndEszigno3Xml,
+    ApplicationVndEtsiAocXml,
+    ApplicationVndEtsiAsicSZip,
+    ApplicationVndEtsiAsicEZip,
+    ApplicationVndEtsiCugXml,
+    ApplicationVndEtsiIptvcommandXml,
+    ApplicationVndEtsiIptvdiscoveryXml,
+    ApplicationVndEtsiIptvprofileXml,
+    ApplicationVndEtsiIptvsadBcXml,
+    ApplicationVndEtsiIptvsadCodXml,
+    ApplicationVndEtsiIptvsadNpvrXml,
+    ApplicationVndEtsiIptvserviceXml,
+    ApplicationVndEtsiIptvsyncXml,
+    ApplicationVndEtsiIptvueprofileXml,
+    ApplicationVndEtsiMcidXml,
+    ApplicationVndEtsiMheg5,
+    ApplicationVndEtsiOverloadControlPolicyDatasetXml,
+    ApplicationVndEtsiPstnXml,
+    ApplicationVndEtsiSciXml,
+    ApplicationVndEtsiSimservsXml,
+    ApplicationVndEtsiTimestampToken,
+    ApplicationVndEtsiTslXml,
+    ApplicationVndEtsiTslDer,
+    ApplicationVndEuKasparianCarJson,
+    ApplicationVndEudoraData,
+    ApplicationVndEvolvEcigProfile,
+    ApplicationVndEvolvEcigSettings,
+    ApplicationVndEvolvEcigTheme,
+    ApplicationVndExstreamEmpowerZip,
+    ApplicationVndExstreamPackage,
+    ApplicationVndEzpixAlbum,
+    ApplicationVndEzpixPackage,
+    ApplicationVndFSecureMobile,
+    ApplicationVndFastcopyDiskImage,
+    ApplicationVndFamilysearchGedcomZip,
+    ApplicationVndFdsnMseed,
+    ApplicationVndFdsnSeed,
+    ApplicationVndFfsns,
+    ApplicationVndFiclabFlbZip,
+    ApplicationVndFilmitZfc,
+    ApplicationVndFints,
+    ApplicationVndFiremonkeysCloudcell,
+    ApplicationVndFlographit,
+    ApplicationVndFluxtimeClip,
+    ApplicationVndFontFontforgeSfd,
+    ApplicationVndFramemaker,
+    ApplicationVndFscWeblaunch,
+    ApplicationVndFujifilmFbDocuworks,
+    ApplicationVndFujifilmFbDocuworksBinder,
+    ApplicationVndFujifilmFbDocuworksContainer,
+    ApplicationVndFujifilmFbJfiXml,
+    ApplicationVndFujitsuOasys,
+    ApplicationVndFujitsuOasys2,
+    ApplicationVndFujitsuOasys3,
+    ApplicationVndFujitsuOasysgp,
+    ApplicationVndFujitsuOasysprs,
+    ApplicationVndFujixeroxArt4,
+    ApplicationVndFujixeroxArtEx,
+    ApplicationVndFujixeroxDdd,
+    ApplicationVndFujixeroxDocuworks,
+    ApplicationVndFujixeroxDocuworksBinder,
+    ApplicationVndFujixeroxDocuworksContainer,
+    ApplicationVndFujixeroxHbpl,
+    ApplicationVndFutMisnet,
+    ApplicationVndFutoinCbor,
+    ApplicationVndFutoinJson,
+    ApplicationVndFuzzysheet,
+    ApplicationVndGenomatixTuxedo,
+    ApplicationVndGenozip,
+    ApplicationVndGenticsGrdJson,
+    ApplicationVndGentooCatmetadataXml,
+    ApplicationVndGentooEbuild,
+    ApplicationVndGentooEclass,
+    ApplicationVndGentooGpkg,
+    ApplicationVndGentooManifest,
+    ApplicationVndGentooXpak,
+    ApplicationVndGentooPkgmetadataXml,
+    ApplicationVndGeogebraFile,
+    ApplicationVndGeogebraSlides,
+    ApplicationVndGeogebraTool,
+    ApplicationVndGeometryExplorer,
+    ApplicationVndGeonext,
+    ApplicationVndGeoplan,
+    ApplicationVndGeospace,
+    ApplicationVndGerber,
+    ApplicationVndGlobalplatformCardContentMgt,
+    ApplicationVndGlobalplatformCardContentMgtResponse,
+    ApplicationVndGnuTalerExchangeJson,
+    ApplicationVndGnuTalerMerchantJson,
+    ApplicationVndGoogleEarthKmlXml,
+    ApplicationVndGoogleEarthKmz,
+    ApplicationVndGovSkEFormXml,
+    ApplicationVndGovSkEFormZip,
+    ApplicationVndGovSkXmldatacontainerXml,
+    ApplicationVndGpxseeMapXml,
+    ApplicationVndGrafeq,
+    ApplicationVndGridmp,
+    ApplicationVndGrooveAccount,
+    ApplicationVndGrooveHelp,
+    ApplicationVndGrooveIdentityMessage,
+    ApplicationVndGrooveInjector,
+    ApplicationVndGrooveToolMessage,
+    ApplicationVndGrooveToolTemplate,
+    ApplicationVndGrooveVcard,
+    ApplicationVndHalJson,
+    ApplicationVndHalXml,
+    ApplicationVndHandheldEntertainmentXml,
+    ApplicationVndHbci,
+    ApplicationVndHcJson,
+    ApplicationVndHclBireports,
+    ApplicationVndHdt,
+    ApplicationVndHerokuJson,
+    ApplicationVndHheLessonPlayer,
+    ApplicationVndHpHpgl,
+    ApplicationVndHpHpid,
+    ApplicationVndHpHps,
+    ApplicationVndHpJlyt,
+    ApplicationVndHpPcl,
+    ApplicationVndHpPclxl,
+    ApplicationVndHsl,
+    ApplicationVndHttphone,
+    ApplicationVndHydrostatixSofData,
+    ApplicationVndHyperItemJson,
+    ApplicationVndHyperJson,
+    ApplicationVndHyperdriveJson,
+    ApplicationVndHzn3dCrossword,
+    ApplicationVndIbmElectronicMedia,
+    ApplicationVndIbmMinipay,
+    ApplicationVndIbmRightsManagement,
+    ApplicationVndIbmSecureContainer,
+    ApplicationVndIccprofile,
+    ApplicationVndIeee1905,
+    ApplicationVndIgloader,
+    ApplicationVndImagemeterFolderZip,
+    ApplicationVndImagemeterImageZip,
+    ApplicationVndImmervisionIvp,
+    ApplicationVndImmervisionIvu,
+    ApplicationVndImsImsccv1p1,
+    ApplicationVndImsImsccv1p2,
+    ApplicationVndImsImsccv1p3,
+    ApplicationVndImsLisV2ResultJson,
+    ApplicationVndImsLtiV2ToolconsumerprofileJson,
+    ApplicationVndImsLtiV2ToolproxyIdJson,
+    ApplicationVndImsLtiV2ToolproxyJson,
+    ApplicationVndImsLtiV2ToolsettingsJson,
+    ApplicationVndImsLtiV2ToolsettingsSimpleJson,
+    ApplicationVndInformedcontrolRmsXml,
+    ApplicationVndInfotechProject,
+    ApplicationVndInfotechProjectXml,
+    ApplicationVndInnopathWampNotification,
+    ApplicationVndInsorsIgm,
+    ApplicationVndInterconFormnet,
+    ApplicationVndIntergeo,
+    ApplicationVndIntertrustDigibox,
+    ApplicationVndIntertrustNncp,
+    ApplicationVndIntuQbo,
+    ApplicationVndIntuQfx,
+    ApplicationVndIpfsIpnsRecord,
+    ApplicationVndIpldCar,
+    ApplicationVndIpldDagCbor,
+    ApplicationVndIpldDagJson,
+    ApplicationVndIpldRaw,
+    ApplicationVndIptcG2CatalogitemXml,
+    ApplicationVndIptcG2ConceptitemXml,
+    ApplicationVndIptcG2KnowledgeitemXml,
+    ApplicationVndIptcG2NewsitemXml,
+    ApplicationVndIptcG2NewsmessageXml,
+    ApplicationVndIptcG2PackageitemXml,
+    ApplicationVndIptcG2PlanningitemXml,
+    ApplicationVndIpunpluggedRcprofile,
+    ApplicationVndIrepositoryPackageXml,
+    ApplicationVndIsXpr,
+    ApplicationVndIsacFcs,
+    ApplicationVndJam,
+    ApplicationVndIso1178310Zip,
+    ApplicationVndJapannetDirectoryService,
+    ApplicationVndJapannetJpnstoreWakeup,
+    ApplicationVndJapannetPaymentWakeup,
+    ApplicationVndJapannetRegistration,
+    ApplicationVndJapannetRegistrationWakeup,
+    ApplicationVndJapannetSetstoreWakeup,
+    ApplicationVndJapannetVerification,
+    ApplicationVndJapannetVerificationWakeup,
+    ApplicationVndJcpJavameMidletRms,
+    ApplicationVndJisp,
+    ApplicationVndJoostJodaArchive,
+    ApplicationVndJskIsdnNgn,
+    ApplicationVndKahootz,
+    ApplicationVndKdeKarbon,
+    ApplicationVndKdeKchart,
+    ApplicationVndKdeKformula,
+    ApplicationVndKdeKivio,
+    ApplicationVndKdeKontour,
+    ApplicationVndKdeKpresenter,
+    ApplicationVndKdeKspread,
+    ApplicationVndKdeKword,
+    ApplicationVndKenameaapp,
+    ApplicationVndKidspiration,
+    ApplicationVndKinar,
+    ApplicationVndKoan,
+    ApplicationVndKodakDescriptor,
+    ApplicationVndLas,
+    ApplicationVndLasLasJson,
+    ApplicationVndLasLasXml,
+    ApplicationVndLaszip,
+    ApplicationVndLeapJson,
+    ApplicationVndLibertyRequestXml,
+    ApplicationVndLlamagraphicsLifeBalanceDesktop,
+    ApplicationVndLlamagraphicsLifeBalanceExchangeXml,
+    ApplicationVndLogipipeCircuitZip,
+    ApplicationVndLoom,
+    ApplicationVndLotus123,
+    ApplicationVndLotusApproach,
+    ApplicationVndLotusFreelance,
+    ApplicationVndLotusNotes,
+    ApplicationVndLotusOrganizer,
+    ApplicationVndLotusScreencam,
+    ApplicationVndLotusWordpro,
+    ApplicationVndMacportsPortpkg,
+    ApplicationVndMapboxVectorTile,
+    ApplicationVndMarlinDrmActiontokenXml,
+    ApplicationVndMarlinDrmConftokenXml,
+    ApplicationVndMarlinDrmLicenseXml,
+    ApplicationVndMarlinDrmMdcf,
+    ApplicationVndMasonJson,
+    ApplicationVndMaxarArchive3tzZip,
+    ApplicationVndMaxmindMaxmindDb,
+    ApplicationVndMcd,
+    ApplicationVndMdl,
+    ApplicationVndMdlMbsdf,
+    ApplicationVndMedcalcdata,
+    ApplicationVndMediastationCdkey,
+    ApplicationVndMedicalholodeckRecordxr,
+    ApplicationVndMeridianSlingshot,
+    ApplicationVndMfer,
+    ApplicationVndMfmp,
+    ApplicationVndMicroJson,
+    ApplicationVndMicrografxFlo,
+    ApplicationVndMicrografxIgx,
+    ApplicationVndMicrosoftPortableExecutable,
+    ApplicationVndMicrosoftWindowsThumbnailCache,
+    ApplicationVndMieleJson,
+    ApplicationVndMif,
+    ApplicationVndMinisoftHp3000Save,
+    ApplicationVndMitsubishiMistyGuardTrustweb,
+    ApplicationVndMobiusDaf,
+    ApplicationVndMobiusDis,
+    ApplicationVndMobiusMbk,
+    ApplicationVndMobiusMqy,
+    ApplicationVndMobiusMsl,
+    ApplicationVndMobiusPlc,
+    ApplicationVndMobiusTxf,
+    ApplicationVndModl,
+    ApplicationVndMophunApplication,
+    ApplicationVndMophunCertificate,
+    ApplicationVndMotorolaFlexsuite,
+    ApplicationVndMotorolaFlexsuiteAdsi,
+    ApplicationVndMotorolaFlexsuiteFis,
+    ApplicationVndMotorolaFlexsuiteGotap,
+    ApplicationVndMotorolaFlexsuiteKmr,
+    ApplicationVndMotorolaFlexsuiteTtc,
+    ApplicationVndMotorolaFlexsuiteWem,
+    ApplicationVndMotorolaIprm,
+    ApplicationVndMozillaXulXml,
+    ApplicationVndMsArtgalry,
+    ApplicationVndMsAsf,
+    ApplicationVndMsCabCompressed,
+    ApplicationVndMs3mfdocument,
+    ApplicationVndMsExcel,
+    ApplicationVndMsExcelAddinMacroenabled12,
+    ApplicationVndMsExcelSheetBinaryMacroenabled12,
+    ApplicationVndMsExcelSheetMacroenabled12,
+    ApplicationVndMsExcelTemplateMacroenabled12,
+    ApplicationVndMsFontobject,
+    ApplicationVndMsHtmlhelp,
+    ApplicationVndMsIms,
+    ApplicationVndMsLrm,
+    ApplicationVndMsOfficeActivexXml,
+    ApplicationVndMsOfficetheme,
+    ApplicationVndMsPlayreadyInitiatorXml,
+    ApplicationVndMsPowerpoint,
+    ApplicationVndMsPowerpointAddinMacroenabled12,
+    ApplicationVndMsPowerpointPresentationMacroenabled12,
+    ApplicationVndMsPowerpointSlideMacroenabled12,
+    ApplicationVndMsPowerpointSlideshowMacroenabled12,
+    ApplicationVndMsPowerpointTemplateMacroenabled12,
+    ApplicationVndMsPrintdevicecapabilitiesXml,
+    ApplicationVndMsPrintschematicketXml,
+    ApplicationVndMsProject,
+    ApplicationVndMsTnef,
+    ApplicationVndMsWindowsDevicepairing,
+    ApplicationVndMsWindowsNwprintingOob,
+    ApplicationVndMsWindowsPrinterpairing,
+    ApplicationVndMsWindowsWsdOob,
+    ApplicationVndMsWmdrmLicChlgReq,
+    ApplicationVndMsWmdrmLicResp,
+    ApplicationVndMsWmdrmMeterChlgReq,
+    ApplicationVndMsWmdrmMeterResp,
+    ApplicationVndMsWordDocumentMacroenabled12,
+    ApplicationVndMsWordTemplateMacroenabled12,
+    ApplicationVndMsWorks,
+    ApplicationVndMsWpl,
+    ApplicationVndMsXpsdocument,
+    ApplicationVndMsaDiskImage,
+    ApplicationVndMseq,
+    ApplicationVndMsign,
+    ApplicationVndMultiadCreator,
+    ApplicationVndMultiadCreatorCif,
+    ApplicationVndMusician,
+    ApplicationVndMusicNiff,
+    ApplicationVndMuveeStyle,
+    ApplicationVndMynfc,
+    ApplicationVndNacamarYbridJson,
+    ApplicationVndNcdControl,
+    ApplicationVndNcdReference,
+    ApplicationVndNearstInvJson,
+    ApplicationVndNebumindLine,
+    ApplicationVndNervana,
+    ApplicationVndNetfpx,
+    ApplicationVndNeurolanguageNlu,
+    ApplicationVndNimn,
+    ApplicationVndNintendoSnesRom,
+    ApplicationVndNintendoNitroRom,
+    ApplicationVndNitf,
+    ApplicationVndNoblenetDirectory,
+    ApplicationVndNoblenetSealer,
+    ApplicationVndNoblenetWeb,
+    ApplicationVndNokiaCatalogs,
+    ApplicationVndNokiaConmlWbxml,
+    ApplicationVndNokiaConmlXml,
+    ApplicationVndNokiaIptvConfigXml,
+    ApplicationVndNokiaIsdsRadioPresets,
+    ApplicationVndNokiaLandmarkWbxml,
+    ApplicationVndNokiaLandmarkXml,
+    ApplicationVndNokiaLandmarkcollectionXml,
+    ApplicationVndNokiaNcd,
+    ApplicationVndNokiaNGageAcXml,
+    ApplicationVndNokiaNGageData,
+    ApplicationVndNokiaPcdWbxml,
+    ApplicationVndNokiaPcdXml,
+    ApplicationVndNokiaRadioPreset,
+    ApplicationVndNokiaRadioPresets,
+    ApplicationVndNovadigmEdm,
+    ApplicationVndNovadigmEdx,
+    ApplicationVndNovadigmExt,
+    ApplicationVndNttLocalContentShare,
+    ApplicationVndNttLocalFileTransfer,
+    ApplicationVndNttLocalOgwRemoteAccess,
+    ApplicationVndNttLocalSipTaRemote,
+    ApplicationVndNttLocalSipTaTcpStream,
+    ApplicationVndOasisOpendocumentBase,
+    ApplicationVndOasisOpendocumentChart,
+    ApplicationVndOasisOpendocumentChartTemplate,
+    ApplicationVndOasisOpendocumentFormula,
+    ApplicationVndOasisOpendocumentFormulaTemplate,
+    ApplicationVndOasisOpendocumentGraphics,
+    ApplicationVndOasisOpendocumentGraphicsTemplate,
+    ApplicationVndOasisOpendocumentImage,
+    ApplicationVndOasisOpendocumentImageTemplate,
+    ApplicationVndOasisOpendocumentPresentation,
+    ApplicationVndOasisOpendocumentPresentationTemplate,
+    ApplicationVndOasisOpendocumentSpreadsheet,
+    ApplicationVndOasisOpendocumentSpreadsheetTemplate,
+    ApplicationVndOasisOpendocumentText,
+    ApplicationVndOasisOpendocumentTextMaster,
+    ApplicationVndOasisOpendocumentTextMasterTemplate,
+    ApplicationVndOasisOpendocumentTextTemplate,
+    ApplicationVndOasisOpendocumentTextWeb,
+    ApplicationVndObn,
+    ApplicationVndOcfCbor,
+    ApplicationVndOciImageManifestV1Json,
+    ApplicationVndOftnL10nJson,
+    ApplicationVndOipfContentaccessdownloadXml,
+    ApplicationVndOipfContentaccessstreamingXml,
+    ApplicationVndOipfCspgHexbinary,
+    ApplicationVndOipfDaeSvgXml,
+    ApplicationVndOipfDaeXhtmlXml,
+    ApplicationVndOipfMippvcontrolmessageXml,
+    ApplicationVndOipfPaeGem,
+    ApplicationVndOipfSpdiscoveryXml,
+    ApplicationVndOipfSpdlistXml,
+    ApplicationVndOipfUeprofileXml,
+    ApplicationVndOipfUserprofileXml,
+    ApplicationVndOlpcSugar,
+    ApplicationVndOmaBcastAssociatedProcedureParameterXml,
+    ApplicationVndOmaBcastDrmTriggerXml,
+    ApplicationVndOmaBcastImdXml,
+    ApplicationVndOmaBcastLtkm,
+    ApplicationVndOmaBcastNotificationXml,
+    ApplicationVndOmaBcastProvisioningtrigger,
+    ApplicationVndOmaBcastSgboot,
+    ApplicationVndOmaBcastSgddXml,
+    ApplicationVndOmaBcastSgdu,
+    ApplicationVndOmaBcastSimpleSymbolContainer,
+    ApplicationVndOmaBcastSmartcardTriggerXml,
+    ApplicationVndOmaBcastSprovXml,
+    ApplicationVndOmaBcastStkm,
+    ApplicationVndOmaCabAddressBookXml,
+    ApplicationVndOmaCabFeatureHandlerXml,
+    ApplicationVndOmaCabPccXml,
+    ApplicationVndOmaCabSubsInviteXml,
+    ApplicationVndOmaCabUserPrefsXml,
+    ApplicationVndOmaDcd,
+    ApplicationVndOmaDcdc,
+    ApplicationVndOmaDd2Xml,
+    ApplicationVndOmaDrmRisdXml,
+    ApplicationVndOmaGroupUsageListXml,
+    ApplicationVndOmaLwm2mCbor,
+    ApplicationVndOmaLwm2mJson,
+    ApplicationVndOmaLwm2mTlv,
+    ApplicationVndOmaPalXml,
+    ApplicationVndOmaPocDetailedProgressReportXml,
+    ApplicationVndOmaPocFinalReportXml,
+    ApplicationVndOmaPocGroupsXml,
+    ApplicationVndOmaPocInvocationDescriptorXml,
+    ApplicationVndOmaPocOptimizedProgressReportXml,
+    ApplicationVndOmaPush,
+    ApplicationVndOmaScidmMessagesXml,
+    ApplicationVndOmaXcapDirectoryXml,
+    ApplicationVndOmadsEmailXml,
+    ApplicationVndOmadsFileXml,
+    ApplicationVndOmadsFolderXml,
+    ApplicationVndOmalocSuplInit,
+    ApplicationVndOmaScwsConfig,
+    ApplicationVndOmaScwsHttpRequest,
+    ApplicationVndOmaScwsHttpResponse,
+    ApplicationVndOnepager,
+    ApplicationVndOnepagertamp,
+    ApplicationVndOnepagertamx,
+    ApplicationVndOnepagertat,
+    ApplicationVndOnepagertatp,
+    ApplicationVndOnepagertatx,
+    ApplicationVndOnvifMetadata,
+    ApplicationVndOpenbloxGameBinary,
+    ApplicationVndOpenbloxGameXml,
+    ApplicationVndOpeneyeOeb,
+    ApplicationVndOpenstreetmapDataXml,
+    ApplicationVndOpentimestampsOts,
+    ApplicationVndOpenxmlformatsOfficedocumentCustomPropertiesXml,
+    ApplicationVndOpenxmlformatsOfficedocumentCustomxmlpropertiesXml,
+    ApplicationVndOpenxmlformatsOfficedocumentDrawingXml,
+    ApplicationVndOpenxmlformatsOfficedocumentDrawingmlChartXml,
+    ApplicationVndOpenxmlformatsOfficedocumentDrawingmlChartshapesXml,
+    ApplicationVndOpenxmlformatsOfficedocumentDrawingmlDiagramcolorsXml,
+    ApplicationVndOpenxmlformatsOfficedocumentDrawingmlDiagramdataXml,
+    ApplicationVndOpenxmlformatsOfficedocumentDrawingmlDiagramlayoutXml,
+    ApplicationVndOpenxmlformatsOfficedocumentDrawingmlDiagramstyleXml,
+    ApplicationVndOpenxmlformatsOfficedocumentExtendedPropertiesXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlCommentauthorsXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlCommentsXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlHandoutmasterXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlNotesmasterXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlNotesslideXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlPresentation,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlPresentationMainXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlPrespropsXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlide,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlideXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlidelayoutXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlidemasterXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlideshow,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlideshowMainXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlideupdateinfoXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlTablestylesXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlTagsXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlTemplate,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlTemplateMainXml,
+    ApplicationVndOpenxmlformatsOfficedocumentPresentationmlViewpropsXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlCalcchainXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlChartsheetXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlCommentsXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlConnectionsXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlDialogsheetXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlExternallinkXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlPivotcachedefinitionXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlPivotcacherecordsXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlPivottableXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlQuerytableXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlRevisionheadersXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlRevisionlogXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSharedstringsXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheet,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheetMainXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheetmetadataXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlStylesXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlTableXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlTablesinglecellsXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlTemplate,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlTemplateMainXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlUsernamesXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlVolatiledependenciesXml,
+    ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlWorksheetXml,
+    ApplicationVndOpenxmlformatsOfficedocumentThemeXml,
+    ApplicationVndOpenxmlformatsOfficedocumentThemeoverrideXml,
+    ApplicationVndOpenxmlformatsOfficedocumentVmldrawing,
+    ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlCommentsXml,
+    ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlDocument,
+    ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlDocumentGlossaryXml,
+    ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlDocumentMainXml,
+    ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlEndnotesXml,
+    ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlFonttableXml,
+    ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlFooterXml,
+    ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlFootnotesXml,
+    ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlNumberingXml,
+    ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlSettingsXml,
+    ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlStylesXml,
+    ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlTemplate,
+    ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlTemplateMainXml,
+    ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlWebsettingsXml,
+    ApplicationVndOpenxmlformatsPackageCorePropertiesXml,
+    ApplicationVndOpenxmlformatsPackageDigitalSignatureXmlsignatureXml,
+    ApplicationVndOpenxmlformatsPackageRelationshipsXml,
+    ApplicationVndOracleResourceJson,
+    ApplicationVndOrangeIndata,
+    ApplicationVndOsaNetdeploy,
+    ApplicationVndOsgeoMapguidePackage,
+    ApplicationVndOsgiBundle,
+    ApplicationVndOsgiDp,
+    ApplicationVndOsgiSubsystem,
+    ApplicationVndOtpsCtKipXml,
+    ApplicationVndOxliCountgraph,
+    ApplicationVndPagerdutyJson,
+    ApplicationVndPalm,
+    ApplicationVndPanoply,
+    ApplicationVndPaosXml,
+    ApplicationVndPatentdive,
+    ApplicationVndPatientecommsdoc,
+    ApplicationVndPawaafile,
+    ApplicationVndPcos,
+    ApplicationVndPgFormat,
+    ApplicationVndPgOsasli,
+    ApplicationVndPiaccessApplicationLicence,
+    ApplicationVndPicsel,
+    ApplicationVndPmiWidget,
+    ApplicationVndPocGroupAdvertisementXml,
+    ApplicationVndPocketlearn,
+    ApplicationVndPowerbuilder6,
+    ApplicationVndPowerbuilder6S,
+    ApplicationVndPowerbuilder7,
+    ApplicationVndPowerbuilder75,
+    ApplicationVndPowerbuilder75S,
+    ApplicationVndPowerbuilder7S,
+    ApplicationVndPreminet,
+    ApplicationVndPreviewsystemsBox,
+    ApplicationVndProteusMagazine,
+    ApplicationVndPsfs,
+    ApplicationVndPtMundusmundi,
+    ApplicationVndPublishareDeltaTree,
+    ApplicationVndPviPtid1,
+    ApplicationVndPwgMultiplexed,
+    ApplicationVndPwgXhtmlPrintXml,
+    ApplicationVndQualcommBrewAppRes,
+    ApplicationVndQuarantainenet,
+    ApplicationVndQuarkQuarkxpress,
+    ApplicationVndQuobjectQuoxdocument,
+    ApplicationVndRadisysMomlXml,
+    ApplicationVndRadisysMsmlAuditConfXml,
+    ApplicationVndRadisysMsmlAuditConnXml,
+    ApplicationVndRadisysMsmlAuditDialogXml,
+    ApplicationVndRadisysMsmlAuditStreamXml,
+    ApplicationVndRadisysMsmlAuditXml,
+    ApplicationVndRadisysMsmlConfXml,
+    ApplicationVndRadisysMsmlDialogBaseXml,
+    ApplicationVndRadisysMsmlDialogFaxDetectXml,
+    ApplicationVndRadisysMsmlDialogFaxSendrecvXml,
+    ApplicationVndRadisysMsmlDialogGroupXml,
+    ApplicationVndRadisysMsmlDialogSpeechXml,
+    ApplicationVndRadisysMsmlDialogTransformXml,
+    ApplicationVndRadisysMsmlDialogXml,
+    ApplicationVndRadisysMsmlXml,
+    ApplicationVndRainstorData,
+    ApplicationVndRapid,
+    ApplicationVndRar,
+    ApplicationVndRealvncBed,
+    ApplicationVndRecordareMusicxml,
+    ApplicationVndRecordareMusicxmlXml,
+    ApplicationVndRenlearnRlprint,
+    ApplicationVndResilientLogic,
+    ApplicationVndRestfulJson,
+    ApplicationVndRigCryptonote,
+    ApplicationVndRoute66Link66Xml,
+    ApplicationVndRs274x,
+    ApplicationVndRuckusDownload,
+    ApplicationVndS3sms,
+    ApplicationVndSailingtrackerTrack,
+    ApplicationVndSar,
+    ApplicationVndSbmCid,
+    ApplicationVndSbmMid2,
+    ApplicationVndScribus,
+    ApplicationVndSealed3df,
+    ApplicationVndSealedCsf,
+    ApplicationVndSealedDoc,
+    ApplicationVndSealedEml,
+    ApplicationVndSealedMht,
+    ApplicationVndSealedNet,
+    ApplicationVndSealedPpt,
+    ApplicationVndSealedTiff,
+    ApplicationVndSealedXls,
+    ApplicationVndSealedmediaSoftsealHtml,
+    ApplicationVndSealedmediaSoftsealPdf,
+    ApplicationVndSeemail,
+    ApplicationVndSeisJson,
+    ApplicationVndSema,
+    ApplicationVndSemd,
+    ApplicationVndSemf,
+    ApplicationVndShadeSaveFile,
+    ApplicationVndShanaInformedFormdata,
+    ApplicationVndShanaInformedFormtemplate,
+    ApplicationVndShanaInformedInterchange,
+    ApplicationVndShanaInformedPackage,
+    ApplicationVndShootproofJson,
+    ApplicationVndShopkickJson,
+    ApplicationVndShp,
+    ApplicationVndShx,
+    ApplicationVndSigrokSession,
+    ApplicationVndSimtechMindmapper,
+    ApplicationVndSirenJson,
+    ApplicationVndSmaf,
+    ApplicationVndSmartNotebook,
+    ApplicationVndSmartTeacher,
+    ApplicationVndSmintioPortalsArchive,
+    ApplicationVndSnesdevPageTable,
+    ApplicationVndSoftware602FillerFormXml,
+    ApplicationVndSoftware602FillerFormXmlZip,
+    ApplicationVndSolentSdkmXml,
+    ApplicationVndSpotfireDxp,
+    ApplicationVndSpotfireSfs,
+    ApplicationVndSqlite3,
+    ApplicationVndSssCod,
+    ApplicationVndSssDtf,
+    ApplicationVndSssNtf,
+    ApplicationVndStepmaniaPackage,
+    ApplicationVndStepmaniaStepchart,
+    ApplicationVndStreetStream,
+    ApplicationVndSunWadlXml,
+    ApplicationVndSusCalendar,
+    ApplicationVndSvd,
+    ApplicationVndSwiftviewIcs,
+    ApplicationVndSybylMol2,
+    ApplicationVndSycleXml,
+    ApplicationVndSyftJson,
+    ApplicationVndSyncmlDmNotification,
+    ApplicationVndSyncmlDmddfXml,
+    ApplicationVndSyncmlDmtndsWbxml,
+    ApplicationVndSyncmlDmtndsXml,
+    ApplicationVndSyncmlDmddfWbxml,
+    ApplicationVndSyncmlDmWbxml,
+    ApplicationVndSyncmlDmXml,
+    ApplicationVndSyncmlDsNotification,
+    ApplicationVndSyncmlXml,
+    ApplicationVndTableschemaJson,
+    ApplicationVndTaoIntentModuleArchive,
+    ApplicationVndTcpdumpPcap,
+    ApplicationVndThinkCellPpttcJson,
+    ApplicationVndTml,
+    ApplicationVndTmdMediaflexApiXml,
+    ApplicationVndTmobileLivetv,
+    ApplicationVndTriOnesource,
+    ApplicationVndTridTpt,
+    ApplicationVndTriscapeMxs,
+    ApplicationVndTrueapp,
+    ApplicationVndTruedoc,
+    ApplicationVndUbisoftWebplayer,
+    ApplicationVndUfdl,
+    ApplicationVndUiqTheme,
+    ApplicationVndUmajin,
+    ApplicationVndUnity,
+    ApplicationVndUomlXml,
+    ApplicationVndUplanetAlert,
+    ApplicationVndUplanetAlertWbxml,
+    ApplicationVndUplanetBearerChoice,
+    ApplicationVndUplanetBearerChoiceWbxml,
+    ApplicationVndUplanetCacheop,
+    ApplicationVndUplanetCacheopWbxml,
+    ApplicationVndUplanetChannel,
+    ApplicationVndUplanetChannelWbxml,
+    ApplicationVndUplanetList,
+    ApplicationVndUplanetListcmd,
+    ApplicationVndUplanetListcmdWbxml,
+    ApplicationVndUplanetListWbxml,
+    ApplicationVndUriMap,
+    ApplicationVndUplanetSignal,
+    ApplicationVndValveSourceMaterial,
+    ApplicationVndVcx,
+    ApplicationVndVdStudy,
+    ApplicationVndVectorworks,
+    ApplicationVndVelJson,
+    ApplicationVndVerimatrixVcas,
+    ApplicationVndVeritoneAionJson,
+    ApplicationVndVeryantThin,
+    ApplicationVndVesEncrypted,
+    ApplicationVndVidsoftVidconference,
+    ApplicationVndVisio,
+    ApplicationVndVisionary,
+    ApplicationVndVividenceScriptfile,
+    ApplicationVndVsf,
+    ApplicationVndWapSic,
+    ApplicationVndWapSlc,
+    ApplicationVndWapWbxml,
+    ApplicationVndWapWmlc,
+    ApplicationVndWapWmlscriptc,
+    ApplicationVndWasmflowWafl,
+    ApplicationVndWebturbo,
+    ApplicationVndWfaDpp,
+    ApplicationVndWfaP2p,
+    ApplicationVndWfaWsc,
+    ApplicationVndWindowsDevicepairing,
+    ApplicationVndWmc,
+    ApplicationVndWmfBootstrap,
+    ApplicationVndWolframMathematica,
+    ApplicationVndWolframMathematicaPackage,
+    ApplicationVndWolframPlayer,
+    ApplicationVndWordlift,
+    ApplicationVndWordperfect,
+    ApplicationVndWqd,
+    ApplicationVndWrqHp3000Labelled,
+    ApplicationVndWtStf,
+    ApplicationVndWvCspXml,
+    ApplicationVndWvCspWbxml,
+    ApplicationVndWvSspXml,
+    ApplicationVndXacmlJson,
+    ApplicationVndXara,
+    ApplicationVndXfdl,
+    ApplicationVndXfdlWebform,
+    ApplicationVndXmiXml,
+    ApplicationVndXmpieCpkg,
+    ApplicationVndXmpieDpkg,
+    ApplicationVndXmpiePlan,
+    ApplicationVndXmpiePpkg,
+    ApplicationVndXmpieXlim,
+    ApplicationVndYamahaHvDic,
+    ApplicationVndYamahaHvScript,
+    ApplicationVndYamahaHvVoice,
+    ApplicationVndYamahaOpenscoreformatOsfpvgXml,
+    ApplicationVndYamahaOpenscoreformat,
+    ApplicationVndYamahaRemoteSetup,
+    ApplicationVndYamahaSmafAudio,
+    ApplicationVndYamahaSmafPhrase,
+    ApplicationVndYamahaThroughNgn,
+    ApplicationVndYamahaTunnelUdpencap,
+    ApplicationVndYaoweme,
+    ApplicationVndYellowriverCustomMenu,
+    ApplicationVndZul,
+    ApplicationVndZzazzDeckXml,
+    ApplicationVoicexmlXml,
+    ApplicationVoucherCmsJson,
+    ApplicationVqRtcpxr,
+    ApplicationWasm,
+    ApplicationWatcherinfoXml,
+    ApplicationWebpushOptionsJson,
+    ApplicationWhoisppQuery,
+    ApplicationWhoisppResponse,
+    ApplicationWidget,
+    ApplicationWita,
+    ApplicationWordperfect51,
+    ApplicationWsdlXml,
+    ApplicationWspolicyXml,
+    ApplicationXPkiMessage,
+    ApplicationXWwwFormUrlencoded,
+    ApplicationXX509CaCert,
+    ApplicationXX509CaRaCert,
+    ApplicationXX509NextCaCert,
+    ApplicationX400Bp,
+    ApplicationXacmlXml,
+    ApplicationXcapAttXml,
+    ApplicationXcapCapsXml,
+    ApplicationXcapDiffXml,
+    ApplicationXcapElXml,
+    ApplicationXcapErrorXml,
+    ApplicationXcapNsXml,
+    ApplicationXconConferenceInfoDiffXml,
+    ApplicationXconConferenceInfoXml,
+    ApplicationXencXml,
+    ApplicationXfdf,
+    ApplicationXhtmlXml,
+    ApplicationXliffXml,
+    ApplicationXml,
+    ApplicationXmlDtd,
+    ApplicationXmlExternalParsedEntity,
+    ApplicationXmlPatchXml,
+    ApplicationXmppXml,
+    ApplicationXopXml,
+    ApplicationXsltXml,
+    ApplicationXvXml,
+    ApplicationYang,
+    ApplicationYangDataCbor,
+    ApplicationYangDataJson,
+    ApplicationYangDataXml,
+    ApplicationYangPatchJson,
+    ApplicationYangPatchXml,
+    ApplicationYinXml,
+    ApplicationZip,
+    ApplicationZlib,
+    ApplicationZstd,
+    Audio1dInterleavedParityfec,
+    Audio32kadpcm,
+    Audio3gpp,
+    Audio3gpp2,
+    AudioAac,
+    AudioAc3,
+    AudioAmr,
+    AudioAmrWbPlus,
+    AudioAmrWb,
+    AudioAptx,
+    AudioAsc,
+    AudioAtracAdvancedLossless,
+    AudioAtracX,
+    AudioAtrac3,
+    AudioBasic,
+    AudioBv16,
+    AudioBv32,
+    AudioClearmode,
+    AudioCn,
+    AudioDat12,
+    AudioDls,
+    AudioDsrEs201108,
+    AudioDsrEs202050,
+    AudioDsrEs202211,
+    AudioDsrEs202212,
+    AudioDv,
+    AudioDvi4,
+    AudioEac3,
+    AudioEncaprtp,
+    AudioEvrc,
+    AudioEvrcQcp,
+    AudioEvrc0,
+    AudioEvrc1,
+    AudioEvrcb,
+    AudioEvrcb0,
+    AudioEvrcb1,
+    AudioEvrcnw,
+    AudioEvrcnw0,
+    AudioEvrcnw1,
+    AudioEvrcwb,
+    AudioEvrcwb0,
+    AudioEvrcwb1,
+    AudioEvs,
+    AudioExample,
+    AudioFlexfec,
+    AudioFwdred,
+    AudioG7110,
+    AudioG719,
+    AudioG7221,
+    AudioG722,
+    AudioG723,
+    AudioG72616,
+    AudioG72624,
+    AudioG72632,
+    AudioG72640,
+    AudioG728,
+    AudioG729,
+    AudioG7291,
+    AudioG729d,
+    AudioG729e,
+    AudioGsm,
+    AudioGsmEfr,
+    AudioGsmHr08,
+    AudioIlbc,
+    AudioIpMrV25,
+    AudioL8,
+    AudioL16,
+    AudioL20,
+    AudioL24,
+    AudioLpc,
+    AudioMelp,
+    AudioMelp600,
+    AudioMelp1200,
+    AudioMelp2400,
+    AudioMhas,
+    AudioMobileXmf,
+    AudioMpa,
+    AudioMp4,
+    AudioMp4aLatm,
+    AudioMpaRobust,
+    AudioMpeg,
+    AudioMpeg4Generic,
+    AudioOgg,
+    AudioOpus,
+    AudioParityfec,
+    AudioPcma,
+    AudioPcmaWb,
+    AudioPcmu,
+    AudioPcmuWb,
+    AudioPrsSid,
+    AudioQcelp,
+    AudioRaptorfec,
+    AudioRed,
+    AudioRtpEncAescm128,
+    AudioRtploopback,
+    AudioRtpMidi,
+    AudioRtx,
+    AudioScip,
+    AudioSmv,
+    AudioSmv0,
+    AudioSmvQcp,
+    AudioSofa,
+    AudioSpMidi,
+    AudioSpeex,
+    AudioT140c,
+    AudioT38,
+    AudioTelephoneEvent,
+    AudioTetraAcelp,
+    AudioTetraAcelpBb,
+    AudioTone,
+    AudioTsvcis,
+    AudioUemclip,
+    AudioUlpfec,
+    AudioUsac,
+    AudioVdvi,
+    AudioVmrWb,
+    AudioVnd3gppIufp,
+    AudioVnd4sb,
+    AudioVndAudiokoz,
+    AudioVndCelp,
+    AudioVndCiscoNse,
+    AudioVndCmlesRadioEvents,
+    AudioVndCnsAnp1,
+    AudioVndCnsInf1,
+    AudioVndDeceAudio,
+    AudioVndDigitalWinds,
+    AudioVndDlnaAdts,
+    AudioVndDolbyHeaac1,
+    AudioVndDolbyHeaac2,
+    AudioVndDolbyMlp,
+    AudioVndDolbyMps,
+    AudioVndDolbyPl2,
+    AudioVndDolbyPl2x,
+    AudioVndDolbyPl2z,
+    AudioVndDolbyPulse1,
+    AudioVndDra,
+    AudioVndDts,
+    AudioVndDtsHd,
+    AudioVndDtsUhd,
+    AudioVndDvbFile,
+    AudioVndEveradPlj,
+    AudioVndHnsAudio,
+    AudioVndLucentVoice,
+    AudioVndMsPlayreadyMediaPya,
+    AudioVndNokiaMobileXmf,
+    AudioVndNortelVbk,
+    AudioVndNueraEcelp4800,
+    AudioVndNueraEcelp7470,
+    AudioVndNueraEcelp9600,
+    AudioVndOctelSbc,
+    AudioVndPresonusMultitrack,
+    AudioVndRhetorex32kadpcm,
+    AudioVndRip,
+    AudioVndSealedmediaSoftsealMpeg,
+    AudioVndVmxCvsd,
+    AudioVorbis,
+    AudioVorbisConfig,
+    FontCollection,
+    FontOtf,
+    FontSfnt,
+    FontTtf,
+    FontWoff,
+    FontWoff2,
+    ImageAces,
+    ImageApng,
+    ImageAvci,
+    ImageAvcs,
+    ImageAvif,
+    ImageBmp,
+    ImageCgm,
+    ImageDicomRle,
+    ImageDpx,
+    ImageEmf,
+    ImageExample,
+    ImageFits,
+    ImageG3fax,
+    ImageHeic,
+    ImageHeicSequence,
+    ImageHeif,
+    ImageHeifSequence,
+    ImageHej2k,
+    ImageHsj2,
+    ImageJls,
+    ImageJp2,
+    ImageJpeg,
+    ImageJph,
+    ImageJphc,
+    ImageJpm,
+    ImageJpx,
+    ImageJxr,
+    ImageJxra,
+    ImageJxrs,
+    ImageJxs,
+    ImageJxsc,
+    ImageJxsi,
+    ImageJxss,
+    ImageKtx,
+    ImageKtx2,
+    ImageNaplps,
+    ImagePng,
+    ImagePrsBtif,
+    ImagePrsPti,
+    ImagePwgRaster,
+    ImageSvgXml,
+    ImageT38,
+    ImageTiff,
+    ImageTiffFx,
+    ImageVndAdobePhotoshop,
+    ImageVndAirzipAcceleratorAzv,
+    ImageVndCnsInf2,
+    ImageVndDeceGraphic,
+    ImageVndDjvu,
+    ImageVndDwg,
+    ImageVndDxf,
+    ImageVndDvbSubtitle,
+    ImageVndFastbidsheet,
+    ImageVndFpx,
+    ImageVndFst,
+    ImageVndFujixeroxEdmicsMmr,
+    ImageVndFujixeroxEdmicsRlc,
+    ImageVndGlobalgraphicsPgb,
+    ImageVndMicrosoftIcon,
+    ImageVndMix,
+    ImageVndMsModi,
+    ImageVndMozillaApng,
+    ImageVndNetFpx,
+    ImageVndPcoB16,
+    ImageVndRadiance,
+    ImageVndSealedPng,
+    ImageVndSealedmediaSoftsealGif,
+    ImageVndSealedmediaSoftsealJpg,
+    ImageVndSvf,
+    ImageVndTencentTap,
+    ImageVndValveSourceTexture,
+    ImageVndWapWbmp,
+    ImageVndXiff,
+    ImageVndZbrushPcx,
+    ImageWebp,
+    ImageWmf,
+    MessageBhttp,
+    MessageCpim,
+    MessageDeliveryStatus,
+    MessageDispositionNotification,
+    MessageExample,
+    MessageFeedbackReport,
+    MessageGlobal,
+    MessageGlobalDeliveryStatus,
+    MessageGlobalDispositionNotification,
+    MessageGlobalHeaders,
+    MessageHttp,
+    MessageImdnXml,
+    MessageMls,
+    MessageOhttpReq,
+    MessageOhttpRes,
+    MessageSip,
+    MessageSipfrag,
+    MessageTrackingStatus,
+    MessageVndWfaWsc,
+    Model3mf,
+    ModelE57,
+    ModelExample,
+    ModelGltfBinary,
+    ModelGltfJson,
+    ModelJt,
+    ModelIges,
+    ModelMtl,
+    ModelObj,
+    ModelPrc,
+    ModelStep,
+    ModelStepXml,
+    ModelStepZip,
+    ModelStepXmlZip,
+    ModelStl,
+    ModelU3d,
+    ModelVndBary,
+    ModelVndCld,
+    ModelVndColladaXml,
+    ModelVndDwf,
+    ModelVndFlatland3dml,
+    ModelVndGdl,
+    ModelVndGsGdl,
+    ModelVndGtw,
+    ModelVndMomlXml,
+    ModelVndMts,
+    ModelVndOpengex,
+    ModelVndParasolidTransmitBinary,
+    ModelVndParasolidTransmitText,
+    ModelVndPythaPyox,
+    ModelVndRosetteAnnotatedDataModel,
+    ModelVndSapVds,
+    ModelVndUsda,
+    ModelVndUsdzZip,
+    ModelVndValveSourceCompiledMap,
+    ModelVndVtu,
+    ModelX3dVrml,
+    ModelX3dFastinfoset,
+    ModelX3dXml,
+    MultipartAppledouble,
+    MultipartByteranges,
+    MultipartEncrypted,
+    MultipartExample,
+    MultipartFormData,
+    MultipartHeaderSet,
+    MultipartMultilingual,
+    MultipartRelated,
+    MultipartReport,
+    MultipartSigned,
+    MultipartVndBintMedPlus,
+    MultipartVoiceMessage,
+    MultipartXMixedReplace,
+    Text1dInterleavedParityfec,
+    TextCacheManifest,
+    TextCalendar,
+    TextCql,
+    TextCqlExpression,
+    TextCqlIdentifier,
+    TextCss,
+    TextCsv,
+    TextCsvSchema,
+    TextDns,
+    TextEncaprtp,
+    TextExample,
+    TextFhirpath,
+    TextFlexfec,
+    TextFwdred,
+    TextGff3,
+    TextGrammarRefList,
+    TextHl7v2,
+    TextHtml,
+    TextJavascript,
+    TextJcrCnd,
+    TextMarkdown,
+    TextMizar,
+    TextN3,
+    TextParameters,
+    TextParityfec,
+    TextPlain,
+    TextProvenanceNotation,
+    TextPrsFallensteinRst,
+    TextPrsLinesTag,
+    TextPrsPropLogic,
+    TextRaptorfec,
+    TextRed,
+    TextRfc822Headers,
+    TextRtf,
+    TextRtpEncAescm128,
+    TextRtploopback,
+    TextRtx,
+    TextSgml,
+    TextShaclc,
+    TextShex,
+    TextSpdx,
+    TextStrings,
+    TextT140,
+    TextTabSeparatedValues,
+    TextTroff,
+    TextTurtle,
+    TextUlpfec,
+    TextUriList,
+    TextVcard,
+    TextVndA,
+    TextVndAbc,
+    TextVndAsciiArt,
+    TextVndCurl,
+    TextVndDebianCopyright,
+    TextVndDmclientscript,
+    TextVndDvbSubtitle,
+    TextVndEsmertecThemeDescriptor,
+    TextVndExchangeable,
+    TextVndFamilysearchGedcom,
+    TextVndFiclabFlt,
+    TextVndFly,
+    TextVndFmiFlexstor,
+    TextVndGml,
+    TextVndGraphviz,
+    TextVndHans,
+    TextVndHgl,
+    TextVndIn3d3dml,
+    TextVndIn3dSpot,
+    TextVndIptcNewsml,
+    TextVndIptcNitf,
+    TextVndLatexZ,
+    TextVndMotorolaReflex,
+    TextVndMsMediapackage,
+    TextVndNet2phoneCommcenterCommand,
+    TextVndRadisysMsmlBasicLayout,
+    TextVndSenxWarpscript,
+    TextVndSunJ2meAppDescriptor,
+    TextVndSosi,
+    TextVndTrolltechLinguist,
+    TextVndWapSi,
+    TextVndWapSl,
+    TextVndWapWml,
+    TextVndWapWmlscript,
+    TextVtt,
+    TextWgsl,
+    TextXml,
+    TextXmlExternalParsedEntity,
+    Video1dInterleavedParityfec,
+    Video3gpp,
+    Video3gpp2,
+    Video3gppTt,
+    VideoAv1,
+    VideoBmpeg,
+    VideoBt656,
+    VideoCelb,
+    VideoDv,
+    VideoEncaprtp,
+    VideoExample,
+    VideoFfv1,
+    VideoFlexfec,
+    VideoH261,
+    VideoH263,
+    VideoH2631998,
+    VideoH2632000,
+    VideoH264,
+    VideoH264Rcdo,
+    VideoH264Svc,
+    VideoH265,
+    VideoH266,
+    VideoIsoSegment,
+    VideoJpeg,
+    VideoJpeg2000,
+    VideoJxsv,
+    VideoMj2,
+    VideoMp1s,
+    VideoMp2p,
+    VideoMp2t,
+    VideoMp4,
+    VideoMp4vEs,
+    VideoMpv,
+    VideoMpeg4Generic,
+    VideoNv,
+    VideoOgg,
+    VideoParityfec,
+    VideoPointer,
+    VideoQuicktime,
+    VideoRaptorfec,
+    VideoRaw,
+    VideoRtpEncAescm128,
+    VideoRtploopback,
+    VideoRtx,
+    VideoScip,
+    VideoSmpte291,
+    VideoSmpte292m,
+    VideoUlpfec,
+    VideoVc1,
+    VideoVc2,
+    VideoVndCctv,
+    VideoVndDeceHd,
+    VideoVndDeceMobile,
+    VideoVndDeceMp4,
+    VideoVndDecePd,
+    VideoVndDeceSd,
+    VideoVndDeceVideo,
+    VideoVndDirectvMpeg,
+    VideoVndDirectvMpegTts,
+    VideoVndDlnaMpegTts,
+    VideoVndDvbFile,
+    VideoVndFvt,
+    VideoVndHnsVideo,
+    VideoVndIptvforum1dparityfec1010,
+    VideoVndIptvforum1dparityfec2005,
+    VideoVndIptvforum2dparityfec1010,
+    VideoVndIptvforum2dparityfec2005,
+    VideoVndIptvforumTtsavc,
+    VideoVndIptvforumTtsmpeg2,
+    VideoVndMotorolaVideo,
+    VideoVndMotorolaVideop,
+    VideoVndMpegurl,
+    VideoVndMsPlayreadyMediaPyv,
+    VideoVndNokiaInterleavedMultimedia,
+    VideoVndNokiaMp4vr,
+    VideoVndNokiaVideovoip,
+    VideoVndObjectvideo,
+    VideoVndRadgamettoolsBink,
+    VideoVndRadgamettoolsSmacker,
+    VideoVndSealedMpeg1,
+    VideoVndSealedMpeg4,
+    VideoVndSealedSwf,
+    VideoVndSealedmediaSoftsealMov,
+    VideoVndUvvuMp4,
+    VideoVndYoutubeYt,
+    VideoVndVivo,
+    VideoVp8,
+    VideoVp9,
+}
+
+impl std::fmt::Display for Mime {
+    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
+        match self {
+			Mime::Application1dInterleavedParityfec => write!(f, "application/1d-interleaved-parityfec"),
+			Mime::Application3gpdashQoeReportXml => write!(f, "application/3gpdash-qoe-report+xml"),
+			Mime::Application3gpphalJson => write!(f, "application/3gppHal+json"),
+			Mime::Application3gpphalformsJson => write!(f, "application/3gppHalForms+json"),
+			Mime::Application3gppImsXml => write!(f, "application/3gpp-ims+xml"),
+			Mime::ApplicationA2l => write!(f, "application/A2L"),
+			Mime::ApplicationAceCbor => write!(f, "application/ace+cbor"),
+			Mime::ApplicationAceJson => write!(f, "application/ace+json"),
+			Mime::ApplicationActivemessage => write!(f, "application/activemessage"),
+			Mime::ApplicationActivityJson => write!(f, "application/activity+json"),
+			Mime::ApplicationAifCbor => write!(f, "application/aif+cbor"),
+			Mime::ApplicationAifJson => write!(f, "application/aif+json"),
+			Mime::ApplicationAltoCdniJson => write!(f, "application/alto-cdni+json"),
+			Mime::ApplicationAltoCdnifilterJson => write!(f, "application/alto-cdnifilter+json"),
+			Mime::ApplicationAltoCostmapJson => write!(f, "application/alto-costmap+json"),
+			Mime::ApplicationAltoCostmapfilterJson => write!(f, "application/alto-costmapfilter+json"),
+			Mime::ApplicationAltoDirectoryJson => write!(f, "application/alto-directory+json"),
+			Mime::ApplicationAltoEndpointpropJson => write!(f, "application/alto-endpointprop+json"),
+			Mime::ApplicationAltoEndpointpropparamsJson => write!(f, "application/alto-endpointpropparams+json"),
+			Mime::ApplicationAltoEndpointcostJson => write!(f, "application/alto-endpointcost+json"),
+			Mime::ApplicationAltoEndpointcostparamsJson => write!(f, "application/alto-endpointcostparams+json"),
+			Mime::ApplicationAltoErrorJson => write!(f, "application/alto-error+json"),
+			Mime::ApplicationAltoNetworkmapfilterJson => write!(f, "application/alto-networkmapfilter+json"),
+			Mime::ApplicationAltoNetworkmapJson => write!(f, "application/alto-networkmap+json"),
+			Mime::ApplicationAltoPropmapJson => write!(f, "application/alto-propmap+json"),
+			Mime::ApplicationAltoPropmapparamsJson => write!(f, "application/alto-propmapparams+json"),
+			Mime::ApplicationAltoUpdatestreamcontrolJson => write!(f, "application/alto-updatestreamcontrol+json"),
+			Mime::ApplicationAltoUpdatestreamparamsJson => write!(f, "application/alto-updatestreamparams+json"),
+			Mime::ApplicationAml => write!(f, "application/AML"),
+			Mime::ApplicationAndrewInset => write!(f, "application/andrew-inset"),
+			Mime::ApplicationApplefile => write!(f, "application/applefile"),
+			Mime::ApplicationAtJwt => write!(f, "application/at+jwt"),
+			Mime::ApplicationAtf => write!(f, "application/ATF"),
+			Mime::ApplicationAtfx => write!(f, "application/ATFX"),
+			Mime::ApplicationAtomXml => write!(f, "application/atom+xml"),
+			Mime::ApplicationAtomcatXml => write!(f, "application/atomcat+xml"),
+			Mime::ApplicationAtomdeletedXml => write!(f, "application/atomdeleted+xml"),
+			Mime::ApplicationAtomicmail => write!(f, "application/atomicmail"),
+			Mime::ApplicationAtomsvcXml => write!(f, "application/atomsvc+xml"),
+			Mime::ApplicationAtscDwdXml => write!(f, "application/atsc-dwd+xml"),
+			Mime::ApplicationAtscDynamicEventMessage => write!(f, "application/atsc-dynamic-event-message"),
+			Mime::ApplicationAtscHeldXml => write!(f, "application/atsc-held+xml"),
+			Mime::ApplicationAtscRdtJson => write!(f, "application/atsc-rdt+json"),
+			Mime::ApplicationAtscRsatXml => write!(f, "application/atsc-rsat+xml"),
+			Mime::ApplicationAtxml => write!(f, "application/ATXML"),
+			Mime::ApplicationAuthPolicyXml => write!(f, "application/auth-policy+xml"),
+			Mime::ApplicationAutomationmlAmlXml => write!(f, "application/automationml-aml+xml"),
+			Mime::ApplicationAutomationmlAmlxZip => write!(f, "application/automationml-amlx+zip"),
+			Mime::ApplicationBacnetXddZip => write!(f, "application/bacnet-xdd+zip"),
+			Mime::ApplicationBatchSmtp => write!(f, "application/batch-SMTP"),
+			Mime::ApplicationBeepXml => write!(f, "application/beep+xml"),
+			Mime::ApplicationCalendarJson => write!(f, "application/calendar+json"),
+			Mime::ApplicationCalendarXml => write!(f, "application/calendar+xml"),
+			Mime::ApplicationCallCompletion => write!(f, "application/call-completion"),
+			Mime::ApplicationCals1840 => write!(f, "application/CALS-1840"),
+			Mime::ApplicationCaptiveJson => write!(f, "application/captive+json"),
+			Mime::ApplicationCbor => write!(f, "application/cbor"),
+			Mime::ApplicationCborSeq => write!(f, "application/cbor-seq"),
+			Mime::ApplicationCccex => write!(f, "application/cccex"),
+			Mime::ApplicationCcmpXml => write!(f, "application/ccmp+xml"),
+			Mime::ApplicationCcxmlXml => write!(f, "application/ccxml+xml"),
+			Mime::ApplicationCdaXml => write!(f, "application/cda+xml"),
+			Mime::ApplicationCdfxXml => write!(f, "application/CDFX+XML"),
+			Mime::ApplicationCdmiCapability => write!(f, "application/cdmi-capability"),
+			Mime::ApplicationCdmiContainer => write!(f, "application/cdmi-container"),
+			Mime::ApplicationCdmiDomain => write!(f, "application/cdmi-domain"),
+			Mime::ApplicationCdmiObject => write!(f, "application/cdmi-object"),
+			Mime::ApplicationCdmiQueue => write!(f, "application/cdmi-queue"),
+			Mime::ApplicationCdni => write!(f, "application/cdni"),
+			Mime::ApplicationCea => write!(f, "application/CEA"),
+			Mime::ApplicationCea2018Xml => write!(f, "application/cea-2018+xml"),
+			Mime::ApplicationCellmlXml => write!(f, "application/cellml+xml"),
+			Mime::ApplicationCfw => write!(f, "application/cfw"),
+			Mime::ApplicationCityJson => write!(f, "application/city+json"),
+			Mime::ApplicationClr => write!(f, "application/clr"),
+			Mime::ApplicationClueInfoXml => write!(f, "application/clue_info+xml"),
+			Mime::ApplicationClueXml => write!(f, "application/clue+xml"),
+			Mime::ApplicationCms => write!(f, "application/cms"),
+			Mime::ApplicationCnrpXml => write!(f, "application/cnrp+xml"),
+			Mime::ApplicationCoapGroupJson => write!(f, "application/coap-group+json"),
+			Mime::ApplicationCoapPayload => write!(f, "application/coap-payload"),
+			Mime::ApplicationCommonground => write!(f, "application/commonground"),
+			Mime::ApplicationConciseProblemDetailsCbor => write!(f, "application/concise-problem-details+cbor"),
+			Mime::ApplicationConferenceInfoXml => write!(f, "application/conference-info+xml"),
+			Mime::ApplicationCplXml => write!(f, "application/cpl+xml"),
+			Mime::ApplicationCose => write!(f, "application/cose"),
+			Mime::ApplicationCoseKey => write!(f, "application/cose-key"),
+			Mime::ApplicationCoseKeySet => write!(f, "application/cose-key-set"),
+			Mime::ApplicationCoseX509 => write!(f, "application/cose-x509"),
+			Mime::ApplicationCsrattrs => write!(f, "application/csrattrs"),
+			Mime::ApplicationCstaXml => write!(f, "application/csta+xml"),
+			Mime::ApplicationCstadataXml => write!(f, "application/CSTAdata+xml"),
+			Mime::ApplicationCsvmJson => write!(f, "application/csvm+json"),
+			Mime::ApplicationCwl => write!(f, "application/cwl"),
+			Mime::ApplicationCwlJson => write!(f, "application/cwl+json"),
+			Mime::ApplicationCwt => write!(f, "application/cwt"),
+			Mime::ApplicationCybercash => write!(f, "application/cybercash"),
+			Mime::ApplicationDashXml => write!(f, "application/dash+xml"),
+			Mime::ApplicationDashPatchXml => write!(f, "application/dash-patch+xml"),
+			Mime::ApplicationDashdelta => write!(f, "application/dashdelta"),
+			Mime::ApplicationDavmountXml => write!(f, "application/davmount+xml"),
+			Mime::ApplicationDcaRft => write!(f, "application/dca-rft"),
+			Mime::ApplicationDcd => write!(f, "application/DCD"),
+			Mime::ApplicationDecDx => write!(f, "application/dec-dx"),
+			Mime::ApplicationDialogInfoXml => write!(f, "application/dialog-info+xml"),
+			Mime::ApplicationDicom => write!(f, "application/dicom"),
+			Mime::ApplicationDicomJson => write!(f, "application/dicom+json"),
+			Mime::ApplicationDicomXml => write!(f, "application/dicom+xml"),
+			Mime::ApplicationDii => write!(f, "application/DII"),
+			Mime::ApplicationDit => write!(f, "application/DIT"),
+			Mime::ApplicationDns => write!(f, "application/dns"),
+			Mime::ApplicationDnsJson => write!(f, "application/dns+json"),
+			Mime::ApplicationDnsMessage => write!(f, "application/dns-message"),
+			Mime::ApplicationDotsCbor => write!(f, "application/dots+cbor"),
+			Mime::ApplicationDpopJwt => write!(f, "application/dpop+jwt"),
+			Mime::ApplicationDskppXml => write!(f, "application/dskpp+xml"),
+			Mime::ApplicationDsscDer => write!(f, "application/dssc+der"),
+			Mime::ApplicationDsscXml => write!(f, "application/dssc+xml"),
+			Mime::ApplicationDvcs => write!(f, "application/dvcs"),
+			Mime::ApplicationEdiConsent => write!(f, "application/EDI-consent"),
+			Mime::ApplicationEdifact => write!(f, "application/EDIFACT"),
+			Mime::ApplicationEdiX12 => write!(f, "application/EDI-X12"),
+			Mime::ApplicationEfi => write!(f, "application/efi"),
+			Mime::ApplicationElmJson => write!(f, "application/elm+json"),
+			Mime::ApplicationElmXml => write!(f, "application/elm+xml"),
+			Mime::ApplicationEmergencycalldataCapXml => write!(f, "application/EmergencyCallData.cap+xml"),
+			Mime::ApplicationEmergencycalldataCommentXml => write!(f, "application/EmergencyCallData.Comment+xml"),
+			Mime::ApplicationEmergencycalldataControlXml => write!(f, "application/EmergencyCallData.Control+xml"),
+			Mime::ApplicationEmergencycalldataDeviceinfoXml => write!(f, "application/EmergencyCallData.DeviceInfo+xml"),
+			Mime::ApplicationEmergencycalldataEcallMsd => write!(f, "application/EmergencyCallData.eCall.MSD"),
+			Mime::ApplicationEmergencycalldataLegacyesnJson => write!(f, "application/EmergencyCallData.LegacyESN+json"),
+			Mime::ApplicationEmergencycalldataProviderinfoXml => write!(f, "application/EmergencyCallData.ProviderInfo+xml"),
+			Mime::ApplicationEmergencycalldataServiceinfoXml => write!(f, "application/EmergencyCallData.ServiceInfo+xml"),
+			Mime::ApplicationEmergencycalldataSubscriberinfoXml => write!(f, "application/EmergencyCallData.SubscriberInfo+xml"),
+			Mime::ApplicationEmergencycalldataVedsXml => write!(f, "application/EmergencyCallData.VEDS+xml"),
+			Mime::ApplicationEmmaXml => write!(f, "application/emma+xml"),
+			Mime::ApplicationEmotionmlXml => write!(f, "application/emotionml+xml"),
+			Mime::ApplicationEncaprtp => write!(f, "application/encaprtp"),
+			Mime::ApplicationEppXml => write!(f, "application/epp+xml"),
+			Mime::ApplicationEpubZip => write!(f, "application/epub+zip"),
+			Mime::ApplicationEshop => write!(f, "application/eshop"),
+			Mime::ApplicationExample => write!(f, "application/example"),
+			Mime::ApplicationExi => write!(f, "application/exi"),
+			Mime::ApplicationExpectCtReportJson => write!(f, "application/expect-ct-report+json"),
+			Mime::ApplicationExpress => write!(f, "application/express"),
+			Mime::ApplicationFastinfoset => write!(f, "application/fastinfoset"),
+			Mime::ApplicationFastsoap => write!(f, "application/fastsoap"),
+			Mime::ApplicationFdf => write!(f, "application/fdf"),
+			Mime::ApplicationFdtXml => write!(f, "application/fdt+xml"),
+			Mime::ApplicationFhirJson => write!(f, "application/fhir+json"),
+			Mime::ApplicationFhirXml => write!(f, "application/fhir+xml"),
+			Mime::ApplicationFits => write!(f, "application/fits"),
+			Mime::ApplicationFlexfec => write!(f, "application/flexfec"),
+			Mime::ApplicationFontTdpfr => write!(f, "application/font-tdpfr"),
+			Mime::ApplicationFrameworkAttributesXml => write!(f, "application/framework-attributes+xml"),
+			Mime::ApplicationGeoJson => write!(f, "application/geo+json"),
+			Mime::ApplicationGeoJsonSeq => write!(f, "application/geo+json-seq"),
+			Mime::ApplicationGeopackageSqlite3 => write!(f, "application/geopackage+sqlite3"),
+			Mime::ApplicationGeoxacmlXml => write!(f, "application/geoxacml+xml"),
+			Mime::ApplicationGltfBuffer => write!(f, "application/gltf-buffer"),
+			Mime::ApplicationGmlXml => write!(f, "application/gml+xml"),
+			Mime::ApplicationGzip => write!(f, "application/gzip"),
+			Mime::ApplicationH224 => write!(f, "application/H224"),
+			Mime::ApplicationHeldXml => write!(f, "application/held+xml"),
+			Mime::ApplicationHl7v2Xml => write!(f, "application/hl7v2+xml"),
+			Mime::ApplicationHttp => write!(f, "application/http"),
+			Mime::ApplicationHyperstudio => write!(f, "application/hyperstudio"),
+			Mime::ApplicationIbeKeyRequestXml => write!(f, "application/ibe-key-request+xml"),
+			Mime::ApplicationIbePkgReplyXml => write!(f, "application/ibe-pkg-reply+xml"),
+			Mime::ApplicationIbePpData => write!(f, "application/ibe-pp-data"),
+			Mime::ApplicationIges => write!(f, "application/iges"),
+			Mime::ApplicationImIscomposingXml => write!(f, "application/im-iscomposing+xml"),
+			Mime::ApplicationIndex => write!(f, "application/index"),
+			Mime::ApplicationIndexCmd => write!(f, "application/index.cmd"),
+			Mime::ApplicationIndexObj => write!(f, "application/index.obj"),
+			Mime::ApplicationIndexResponse => write!(f, "application/index.response"),
+			Mime::ApplicationIndexVnd => write!(f, "application/index.vnd"),
+			Mime::ApplicationInkmlXml => write!(f, "application/inkml+xml"),
+			Mime::ApplicationIotp => write!(f, "application/IOTP"),
+			Mime::ApplicationIpfix => write!(f, "application/ipfix"),
+			Mime::ApplicationIpp => write!(f, "application/ipp"),
+			Mime::ApplicationIsup => write!(f, "application/ISUP"),
+			Mime::ApplicationItsXml => write!(f, "application/its+xml"),
+			Mime::ApplicationJavaArchive => write!(f, "application/java-archive"),
+			Mime::ApplicationJf2feedJson => write!(f, "application/jf2feed+json"),
+			Mime::ApplicationJose => write!(f, "application/jose"),
+			Mime::ApplicationJoseJson => write!(f, "application/jose+json"),
+			Mime::ApplicationJrdJson => write!(f, "application/jrd+json"),
+			Mime::ApplicationJscalendarJson => write!(f, "application/jscalendar+json"),
+			Mime::ApplicationJson => write!(f, "application/json"),
+			Mime::ApplicationJsonPatchJson => write!(f, "application/json-patch+json"),
+			Mime::ApplicationJsonSeq => write!(f, "application/json-seq"),
+			Mime::ApplicationJwkJson => write!(f, "application/jwk+json"),
+			Mime::ApplicationJwkSetJson => write!(f, "application/jwk-set+json"),
+			Mime::ApplicationJwt => write!(f, "application/jwt"),
+			Mime::ApplicationKpmlRequestXml => write!(f, "application/kpml-request+xml"),
+			Mime::ApplicationKpmlResponseXml => write!(f, "application/kpml-response+xml"),
+			Mime::ApplicationLdJson => write!(f, "application/ld+json"),
+			Mime::ApplicationLgrXml => write!(f, "application/lgr+xml"),
+			Mime::ApplicationLinkFormat => write!(f, "application/link-format"),
+			Mime::ApplicationLinkset => write!(f, "application/linkset"),
+			Mime::ApplicationLinksetJson => write!(f, "application/linkset+json"),
+			Mime::ApplicationLoadControlXml => write!(f, "application/load-control+xml"),
+			Mime::ApplicationLogoutJwt => write!(f, "application/logout+jwt"),
+			Mime::ApplicationLostXml => write!(f, "application/lost+xml"),
+			Mime::ApplicationLostsyncXml => write!(f, "application/lostsync+xml"),
+			Mime::ApplicationLpfZip => write!(f, "application/lpf+zip"),
+			Mime::ApplicationLxf => write!(f, "application/LXF"),
+			Mime::ApplicationMacBinhex40 => write!(f, "application/mac-binhex40"),
+			Mime::ApplicationMacwriteii => write!(f, "application/macwriteii"),
+			Mime::ApplicationMadsXml => write!(f, "application/mads+xml"),
+			Mime::ApplicationManifestJson => write!(f, "application/manifest+json"),
+			Mime::ApplicationMarc => write!(f, "application/marc"),
+			Mime::ApplicationMarcxmlXml => write!(f, "application/marcxml+xml"),
+			Mime::ApplicationMathematica => write!(f, "application/mathematica"),
+			Mime::ApplicationMathmlXml => write!(f, "application/mathml+xml"),
+			Mime::ApplicationMathmlContentXml => write!(f, "application/mathml-content+xml"),
+			Mime::ApplicationMathmlPresentationXml => write!(f, "application/mathml-presentation+xml"),
+			Mime::ApplicationMbmsAssociatedProcedureDescriptionXml => write!(f, "application/mbms-associated-procedure-description+xml"),
+			Mime::ApplicationMbmsDeregisterXml => write!(f, "application/mbms-deregister+xml"),
+			Mime::ApplicationMbmsEnvelopeXml => write!(f, "application/mbms-envelope+xml"),
+			Mime::ApplicationMbmsMskResponseXml => write!(f, "application/mbms-msk-response+xml"),
+			Mime::ApplicationMbmsMskXml => write!(f, "application/mbms-msk+xml"),
+			Mime::ApplicationMbmsProtectionDescriptionXml => write!(f, "application/mbms-protection-description+xml"),
+			Mime::ApplicationMbmsReceptionReportXml => write!(f, "application/mbms-reception-report+xml"),
+			Mime::ApplicationMbmsRegisterResponseXml => write!(f, "application/mbms-register-response+xml"),
+			Mime::ApplicationMbmsRegisterXml => write!(f, "application/mbms-register+xml"),
+			Mime::ApplicationMbmsScheduleXml => write!(f, "application/mbms-schedule+xml"),
+			Mime::ApplicationMbmsUserServiceDescriptionXml => write!(f, "application/mbms-user-service-description+xml"),
+			Mime::ApplicationMbox => write!(f, "application/mbox"),
+			Mime::ApplicationMediaControlXml => write!(f, "application/media_control+xml"),
+			Mime::ApplicationMediaPolicyDatasetXml => write!(f, "application/media-policy-dataset+xml"),
+			Mime::ApplicationMediaservercontrolXml => write!(f, "application/mediaservercontrol+xml"),
+			Mime::ApplicationMergePatchJson => write!(f, "application/merge-patch+json"),
+			Mime::ApplicationMetalink4Xml => write!(f, "application/metalink4+xml"),
+			Mime::ApplicationMetsXml => write!(f, "application/mets+xml"),
+			Mime::ApplicationMf4 => write!(f, "application/MF4"),
+			Mime::ApplicationMikey => write!(f, "application/mikey"),
+			Mime::ApplicationMipc => write!(f, "application/mipc"),
+			Mime::ApplicationMissingBlocksCborSeq => write!(f, "application/missing-blocks+cbor-seq"),
+			Mime::ApplicationMmtAeiXml => write!(f, "application/mmt-aei+xml"),
+			Mime::ApplicationMmtUsdXml => write!(f, "application/mmt-usd+xml"),
+			Mime::ApplicationModsXml => write!(f, "application/mods+xml"),
+			Mime::ApplicationMossKeys => write!(f, "application/moss-keys"),
+			Mime::ApplicationMossSignature => write!(f, "application/moss-signature"),
+			Mime::ApplicationMosskeyData => write!(f, "application/mosskey-data"),
+			Mime::ApplicationMosskeyRequest => write!(f, "application/mosskey-request"),
+			Mime::ApplicationMp21 => write!(f, "application/mp21"),
+			Mime::ApplicationMp4 => write!(f, "application/mp4"),
+			Mime::ApplicationMpeg4Generic => write!(f, "application/mpeg4-generic"),
+			Mime::ApplicationMpeg4Iod => write!(f, "application/mpeg4-iod"),
+			Mime::ApplicationMpeg4IodXmt => write!(f, "application/mpeg4-iod-xmt"),
+			Mime::ApplicationMrbConsumerXml => write!(f, "application/mrb-consumer+xml"),
+			Mime::ApplicationMrbPublishXml => write!(f, "application/mrb-publish+xml"),
+			Mime::ApplicationMscIvrXml => write!(f, "application/msc-ivr+xml"),
+			Mime::ApplicationMscMixerXml => write!(f, "application/msc-mixer+xml"),
+			Mime::ApplicationMsword => write!(f, "application/msword"),
+			Mime::ApplicationMudJson => write!(f, "application/mud+json"),
+			Mime::ApplicationMultipartCore => write!(f, "application/multipart-core"),
+			Mime::ApplicationMxf => write!(f, "application/mxf"),
+			Mime::ApplicationNQuads => write!(f, "application/n-quads"),
+			Mime::ApplicationNTriples => write!(f, "application/n-triples"),
+			Mime::ApplicationNasdata => write!(f, "application/nasdata"),
+			Mime::ApplicationNewsCheckgroups => write!(f, "application/news-checkgroups"),
+			Mime::ApplicationNewsGroupinfo => write!(f, "application/news-groupinfo"),
+			Mime::ApplicationNewsTransmission => write!(f, "application/news-transmission"),
+			Mime::ApplicationNlsmlXml => write!(f, "application/nlsml+xml"),
+			Mime::ApplicationNode => write!(f, "application/node"),
+			Mime::ApplicationNss => write!(f, "application/nss"),
+			Mime::ApplicationOauthAuthzReqJwt => write!(f, "application/oauth-authz-req+jwt"),
+			Mime::ApplicationObliviousDnsMessage => write!(f, "application/oblivious-dns-message"),
+			Mime::ApplicationOcspRequest => write!(f, "application/ocsp-request"),
+			Mime::ApplicationOcspResponse => write!(f, "application/ocsp-response"),
+			Mime::ApplicationOctetStream => write!(f, "application/octet-stream"),
+			Mime::ApplicationOda => write!(f, "application/ODA"),
+			Mime::ApplicationOdmXml => write!(f, "application/odm+xml"),
+			Mime::ApplicationOdx => write!(f, "application/ODX"),
+			Mime::ApplicationOebpsPackageXml => write!(f, "application/oebps-package+xml"),
+			Mime::ApplicationOgg => write!(f, "application/ogg"),
+			Mime::ApplicationOhttpKeys => write!(f, "application/ohttp-keys"),
+			Mime::ApplicationOpcNodesetXml => write!(f, "application/opc-nodeset+xml"),
+			Mime::ApplicationOscore => write!(f, "application/oscore"),
+			Mime::ApplicationOxps => write!(f, "application/oxps"),
+			Mime::ApplicationP21 => write!(f, "application/p21"),
+			Mime::ApplicationP21Zip => write!(f, "application/p21+zip"),
+			Mime::ApplicationP2pOverlayXml => write!(f, "application/p2p-overlay+xml"),
+			Mime::ApplicationParityfec => write!(f, "application/parityfec"),
+			Mime::ApplicationPassport => write!(f, "application/passport"),
+			Mime::ApplicationPatchOpsErrorXml => write!(f, "application/patch-ops-error+xml"),
+			Mime::ApplicationPdf => write!(f, "application/pdf"),
+			Mime::ApplicationPdx => write!(f, "application/PDX"),
+			Mime::ApplicationPemCertificateChain => write!(f, "application/pem-certificate-chain"),
+			Mime::ApplicationPgpEncrypted => write!(f, "application/pgp-encrypted"),
+			Mime::ApplicationPgpKeys => write!(f, "application/pgp-keys"),
+			Mime::ApplicationPgpSignature => write!(f, "application/pgp-signature"),
+			Mime::ApplicationPidfDiffXml => write!(f, "application/pidf-diff+xml"),
+			Mime::ApplicationPidfXml => write!(f, "application/pidf+xml"),
+			Mime::ApplicationPkcs10 => write!(f, "application/pkcs10"),
+			Mime::ApplicationPkcs7Mime => write!(f, "application/pkcs7-mime"),
+			Mime::ApplicationPkcs7Signature => write!(f, "application/pkcs7-signature"),
+			Mime::ApplicationPkcs8 => write!(f, "application/pkcs8"),
+			Mime::ApplicationPkcs8Encrypted => write!(f, "application/pkcs8-encrypted"),
+			Mime::ApplicationPkcs12 => write!(f, "application/pkcs12"),
+			Mime::ApplicationPkixAttrCert => write!(f, "application/pkix-attr-cert"),
+			Mime::ApplicationPkixCert => write!(f, "application/pkix-cert"),
+			Mime::ApplicationPkixCrl => write!(f, "application/pkix-crl"),
+			Mime::ApplicationPkixPkipath => write!(f, "application/pkix-pkipath"),
+			Mime::ApplicationPkixcmp => write!(f, "application/pkixcmp"),
+			Mime::ApplicationPlsXml => write!(f, "application/pls+xml"),
+			Mime::ApplicationPocSettingsXml => write!(f, "application/poc-settings+xml"),
+			Mime::ApplicationPostscript => write!(f, "application/postscript"),
+			Mime::ApplicationPpspTrackerJson => write!(f, "application/ppsp-tracker+json"),
+			Mime::ApplicationProblemJson => write!(f, "application/problem+json"),
+			Mime::ApplicationProblemXml => write!(f, "application/problem+xml"),
+			Mime::ApplicationProvenanceXml => write!(f, "application/provenance+xml"),
+			Mime::ApplicationPrsAlvestrandTitraxSheet => write!(f, "application/prs.alvestrand.titrax-sheet"),
+			Mime::ApplicationPrsCww => write!(f, "application/prs.cww"),
+			Mime::ApplicationPrsCyn => write!(f, "application/prs.cyn"),
+			Mime::ApplicationPrsHpubZip => write!(f, "application/prs.hpub+zip"),
+			Mime::ApplicationPrsImpliedDocumentXml => write!(f, "application/prs.implied-document+xml"),
+			Mime::ApplicationPrsImpliedExecutable => write!(f, "application/prs.implied-executable"),
+			Mime::ApplicationPrsImpliedStructure => write!(f, "application/prs.implied-structure"),
+			Mime::ApplicationPrsNprend => write!(f, "application/prs.nprend"),
+			Mime::ApplicationPrsPlucker => write!(f, "application/prs.plucker"),
+			Mime::ApplicationPrsRdfXmlCrypt => write!(f, "application/prs.rdf-xml-crypt"),
+			Mime::ApplicationPrsXsfXml => write!(f, "application/prs.xsf+xml"),
+			Mime::ApplicationPskcXml => write!(f, "application/pskc+xml"),
+			Mime::ApplicationPvdJson => write!(f, "application/pvd+json"),
+			Mime::ApplicationRdfXml => write!(f, "application/rdf+xml"),
+			Mime::ApplicationRouteApdXml => write!(f, "application/route-apd+xml"),
+			Mime::ApplicationRouteSTsidXml => write!(f, "application/route-s-tsid+xml"),
+			Mime::ApplicationRouteUsdXml => write!(f, "application/route-usd+xml"),
+			Mime::ApplicationQsig => write!(f, "application/QSIG"),
+			Mime::ApplicationRaptorfec => write!(f, "application/raptorfec"),
+			Mime::ApplicationRdapJson => write!(f, "application/rdap+json"),
+			Mime::ApplicationReginfoXml => write!(f, "application/reginfo+xml"),
+			Mime::ApplicationRelaxNgCompactSyntax => write!(f, "application/relax-ng-compact-syntax"),
+			Mime::ApplicationReputonJson => write!(f, "application/reputon+json"),
+			Mime::ApplicationResourceListsDiffXml => write!(f, "application/resource-lists-diff+xml"),
+			Mime::ApplicationResourceListsXml => write!(f, "application/resource-lists+xml"),
+			Mime::ApplicationRfcXml => write!(f, "application/rfc+xml"),
+			Mime::ApplicationRiscos => write!(f, "application/riscos"),
+			Mime::ApplicationRlmiXml => write!(f, "application/rlmi+xml"),
+			Mime::ApplicationRlsServicesXml => write!(f, "application/rls-services+xml"),
+			Mime::ApplicationRpkiChecklist => write!(f, "application/rpki-checklist"),
+			Mime::ApplicationRpkiGhostbusters => write!(f, "application/rpki-ghostbusters"),
+			Mime::ApplicationRpkiManifest => write!(f, "application/rpki-manifest"),
+			Mime::ApplicationRpkiPublication => write!(f, "application/rpki-publication"),
+			Mime::ApplicationRpkiRoa => write!(f, "application/rpki-roa"),
+			Mime::ApplicationRpkiUpdown => write!(f, "application/rpki-updown"),
+			Mime::ApplicationRtf => write!(f, "application/rtf"),
+			Mime::ApplicationRtploopback => write!(f, "application/rtploopback"),
+			Mime::ApplicationRtx => write!(f, "application/rtx"),
+			Mime::ApplicationSamlassertionXml => write!(f, "application/samlassertion+xml"),
+			Mime::ApplicationSamlmetadataXml => write!(f, "application/samlmetadata+xml"),
+			Mime::ApplicationSarifExternalPropertiesJson => write!(f, "application/sarif-external-properties+json"),
+			Mime::ApplicationSarifJson => write!(f, "application/sarif+json"),
+			Mime::ApplicationSbe => write!(f, "application/sbe"),
+			Mime::ApplicationSbmlXml => write!(f, "application/sbml+xml"),
+			Mime::ApplicationScaipXml => write!(f, "application/scaip+xml"),
+			Mime::ApplicationScimJson => write!(f, "application/scim+json"),
+			Mime::ApplicationScvpCvRequest => write!(f, "application/scvp-cv-request"),
+			Mime::ApplicationScvpCvResponse => write!(f, "application/scvp-cv-response"),
+			Mime::ApplicationScvpVpRequest => write!(f, "application/scvp-vp-request"),
+			Mime::ApplicationScvpVpResponse => write!(f, "application/scvp-vp-response"),
+			Mime::ApplicationSdp => write!(f, "application/sdp"),
+			Mime::ApplicationSeceventJwt => write!(f, "application/secevent+jwt"),
+			Mime::ApplicationSenmlEtchCbor => write!(f, "application/senml-etch+cbor"),
+			Mime::ApplicationSenmlEtchJson => write!(f, "application/senml-etch+json"),
+			Mime::ApplicationSenmlExi => write!(f, "application/senml-exi"),
+			Mime::ApplicationSenmlCbor => write!(f, "application/senml+cbor"),
+			Mime::ApplicationSenmlJson => write!(f, "application/senml+json"),
+			Mime::ApplicationSenmlXml => write!(f, "application/senml+xml"),
+			Mime::ApplicationSensmlExi => write!(f, "application/sensml-exi"),
+			Mime::ApplicationSensmlCbor => write!(f, "application/sensml+cbor"),
+			Mime::ApplicationSensmlJson => write!(f, "application/sensml+json"),
+			Mime::ApplicationSensmlXml => write!(f, "application/sensml+xml"),
+			Mime::ApplicationSepExi => write!(f, "application/sep-exi"),
+			Mime::ApplicationSepXml => write!(f, "application/sep+xml"),
+			Mime::ApplicationSessionInfo => write!(f, "application/session-info"),
+			Mime::ApplicationSetPayment => write!(f, "application/set-payment"),
+			Mime::ApplicationSetPaymentInitiation => write!(f, "application/set-payment-initiation"),
+			Mime::ApplicationSetRegistration => write!(f, "application/set-registration"),
+			Mime::ApplicationSetRegistrationInitiation => write!(f, "application/set-registration-initiation"),
+			Mime::ApplicationSgml => write!(f, "application/SGML"),
+			Mime::ApplicationSgmlOpenCatalog => write!(f, "application/sgml-open-catalog"),
+			Mime::ApplicationShfXml => write!(f, "application/shf+xml"),
+			Mime::ApplicationSieve => write!(f, "application/sieve"),
+			Mime::ApplicationSimpleFilterXml => write!(f, "application/simple-filter+xml"),
+			Mime::ApplicationSimpleMessageSummary => write!(f, "application/simple-message-summary"),
+			Mime::ApplicationSimplesymbolcontainer => write!(f, "application/simpleSymbolContainer"),
+			Mime::ApplicationSipc => write!(f, "application/sipc"),
+			Mime::ApplicationSlate => write!(f, "application/slate"),
+			Mime::ApplicationSmilXml => write!(f, "application/smil+xml"),
+			Mime::ApplicationSmpte336m => write!(f, "application/smpte336m"),
+			Mime::ApplicationSoapFastinfoset => write!(f, "application/soap+fastinfoset"),
+			Mime::ApplicationSoapXml => write!(f, "application/soap+xml"),
+			Mime::ApplicationSparqlQuery => write!(f, "application/sparql-query"),
+			Mime::ApplicationSpdxJson => write!(f, "application/spdx+json"),
+			Mime::ApplicationSparqlResultsXml => write!(f, "application/sparql-results+xml"),
+			Mime::ApplicationSpiritsEventXml => write!(f, "application/spirits-event+xml"),
+			Mime::ApplicationSql => write!(f, "application/sql"),
+			Mime::ApplicationSrgs => write!(f, "application/srgs"),
+			Mime::ApplicationSrgsXml => write!(f, "application/srgs+xml"),
+			Mime::ApplicationSruXml => write!(f, "application/sru+xml"),
+			Mime::ApplicationSsmlXml => write!(f, "application/ssml+xml"),
+			Mime::ApplicationStixJson => write!(f, "application/stix+json"),
+			Mime::ApplicationSwidCbor => write!(f, "application/swid+cbor"),
+			Mime::ApplicationSwidXml => write!(f, "application/swid+xml"),
+			Mime::ApplicationTampApexUpdate => write!(f, "application/tamp-apex-update"),
+			Mime::ApplicationTampApexUpdateConfirm => write!(f, "application/tamp-apex-update-confirm"),
+			Mime::ApplicationTampCommunityUpdate => write!(f, "application/tamp-community-update"),
+			Mime::ApplicationTampCommunityUpdateConfirm => write!(f, "application/tamp-community-update-confirm"),
+			Mime::ApplicationTampError => write!(f, "application/tamp-error"),
+			Mime::ApplicationTampSequenceAdjust => write!(f, "application/tamp-sequence-adjust"),
+			Mime::ApplicationTampSequenceAdjustConfirm => write!(f, "application/tamp-sequence-adjust-confirm"),
+			Mime::ApplicationTampStatusQuery => write!(f, "application/tamp-status-query"),
+			Mime::ApplicationTampStatusResponse => write!(f, "application/tamp-status-response"),
+			Mime::ApplicationTampUpdate => write!(f, "application/tamp-update"),
+			Mime::ApplicationTampUpdateConfirm => write!(f, "application/tamp-update-confirm"),
+			Mime::ApplicationTaxiiJson => write!(f, "application/taxii+json"),
+			Mime::ApplicationTdJson => write!(f, "application/td+json"),
+			Mime::ApplicationTeiXml => write!(f, "application/tei+xml"),
+			Mime::ApplicationTetraIsi => write!(f, "application/TETRA_ISI"),
+			Mime::ApplicationThraudXml => write!(f, "application/thraud+xml"),
+			Mime::ApplicationTimestampQuery => write!(f, "application/timestamp-query"),
+			Mime::ApplicationTimestampReply => write!(f, "application/timestamp-reply"),
+			Mime::ApplicationTimestampedData => write!(f, "application/timestamped-data"),
+			Mime::ApplicationTlsrptGzip => write!(f, "application/tlsrpt+gzip"),
+			Mime::ApplicationTlsrptJson => write!(f, "application/tlsrpt+json"),
+			Mime::ApplicationTmJson => write!(f, "application/tm+json"),
+			Mime::ApplicationTnauthlist => write!(f, "application/tnauthlist"),
+			Mime::ApplicationTokenIntrospectionJwt => write!(f, "application/token-introspection+jwt"),
+			Mime::ApplicationTrickleIceSdpfrag => write!(f, "application/trickle-ice-sdpfrag"),
+			Mime::ApplicationTrig => write!(f, "application/trig"),
+			Mime::ApplicationTtmlXml => write!(f, "application/ttml+xml"),
+			Mime::ApplicationTveTrigger => write!(f, "application/tve-trigger"),
+			Mime::ApplicationTzif => write!(f, "application/tzif"),
+			Mime::ApplicationTzifLeap => write!(f, "application/tzif-leap"),
+			Mime::ApplicationUlpfec => write!(f, "application/ulpfec"),
+			Mime::ApplicationUrcGrpsheetXml => write!(f, "application/urc-grpsheet+xml"),
+			Mime::ApplicationUrcRessheetXml => write!(f, "application/urc-ressheet+xml"),
+			Mime::ApplicationUrcTargetdescXml => write!(f, "application/urc-targetdesc+xml"),
+			Mime::ApplicationUrcUisocketdescXml => write!(f, "application/urc-uisocketdesc+xml"),
+			Mime::ApplicationVcardJson => write!(f, "application/vcard+json"),
+			Mime::ApplicationVcardXml => write!(f, "application/vcard+xml"),
+			Mime::ApplicationVemmi => write!(f, "application/vemmi"),
+			Mime::ApplicationVnd1000mindsDecisionModelXml => write!(f, "application/vnd.1000minds.decision-model+xml"),
+			Mime::ApplicationVnd1ob => write!(f, "application/vnd.1ob"),
+			Mime::ApplicationVnd3gpp5gnas => write!(f, "application/vnd.3gpp.5gnas"),
+			Mime::ApplicationVnd3gppAccessTransferEventsXml => write!(f, "application/vnd.3gpp.access-transfer-events+xml"),
+			Mime::ApplicationVnd3gppBsfXml => write!(f, "application/vnd.3gpp.bsf+xml"),
+			Mime::ApplicationVnd3gppCrsXml => write!(f, "application/vnd.3gpp.crs+xml"),
+			Mime::ApplicationVnd3gppCurrentLocationDiscoveryXml => write!(f, "application/vnd.3gpp.current-location-discovery+xml"),
+			Mime::ApplicationVnd3gppGmopXml => write!(f, "application/vnd.3gpp.GMOP+xml"),
+			Mime::ApplicationVnd3gppGtpc => write!(f, "application/vnd.3gpp.gtpc"),
+			Mime::ApplicationVnd3gppInterworkingData => write!(f, "application/vnd.3gpp.interworking-data"),
+			Mime::ApplicationVnd3gppLpp => write!(f, "application/vnd.3gpp.lpp"),
+			Mime::ApplicationVnd3gppMcSignallingEar => write!(f, "application/vnd.3gpp.mc-signalling-ear"),
+			Mime::ApplicationVnd3gppMcdataAffiliationCommandXml => write!(f, "application/vnd.3gpp.mcdata-affiliation-command+xml"),
+			Mime::ApplicationVnd3gppMcdataInfoXml => write!(f, "application/vnd.3gpp.mcdata-info+xml"),
+			Mime::ApplicationVnd3gppMcdataMsgstoreCtrlRequestXml => write!(f, "application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml"),
+			Mime::ApplicationVnd3gppMcdataPayload => write!(f, "application/vnd.3gpp.mcdata-payload"),
+			Mime::ApplicationVnd3gppMcdataRegroupXml => write!(f, "application/vnd.3gpp.mcdata-regroup+xml"),
+			Mime::ApplicationVnd3gppMcdataServiceConfigXml => write!(f, "application/vnd.3gpp.mcdata-service-config+xml"),
+			Mime::ApplicationVnd3gppMcdataSignalling => write!(f, "application/vnd.3gpp.mcdata-signalling"),
+			Mime::ApplicationVnd3gppMcdataUeConfigXml => write!(f, "application/vnd.3gpp.mcdata-ue-config+xml"),
+			Mime::ApplicationVnd3gppMcdataUserProfileXml => write!(f, "application/vnd.3gpp.mcdata-user-profile+xml"),
+			Mime::ApplicationVnd3gppMcpttAffiliationCommandXml => write!(f, "application/vnd.3gpp.mcptt-affiliation-command+xml"),
+			Mime::ApplicationVnd3gppMcpttFloorRequestXml => write!(f, "application/vnd.3gpp.mcptt-floor-request+xml"),
+			Mime::ApplicationVnd3gppMcpttInfoXml => write!(f, "application/vnd.3gpp.mcptt-info+xml"),
+			Mime::ApplicationVnd3gppMcpttLocationInfoXml => write!(f, "application/vnd.3gpp.mcptt-location-info+xml"),
+			Mime::ApplicationVnd3gppMcpttMbmsUsageInfoXml => write!(f, "application/vnd.3gpp.mcptt-mbms-usage-info+xml"),
+			Mime::ApplicationVnd3gppMcpttRegroupXml => write!(f, "application/vnd.3gpp.mcptt-regroup+xml"),
+			Mime::ApplicationVnd3gppMcpttServiceConfigXml => write!(f, "application/vnd.3gpp.mcptt-service-config+xml"),
+			Mime::ApplicationVnd3gppMcpttSignedXml => write!(f, "application/vnd.3gpp.mcptt-signed+xml"),
+			Mime::ApplicationVnd3gppMcpttUeConfigXml => write!(f, "application/vnd.3gpp.mcptt-ue-config+xml"),
+			Mime::ApplicationVnd3gppMcpttUeInitConfigXml => write!(f, "application/vnd.3gpp.mcptt-ue-init-config+xml"),
+			Mime::ApplicationVnd3gppMcpttUserProfileXml => write!(f, "application/vnd.3gpp.mcptt-user-profile+xml"),
+			Mime::ApplicationVnd3gppMcvideoAffiliationCommandXml => write!(f, "application/vnd.3gpp.mcvideo-affiliation-command+xml"),
+			Mime::ApplicationVnd3gppMcvideoInfoXml => write!(f, "application/vnd.3gpp.mcvideo-info+xml"),
+			Mime::ApplicationVnd3gppMcvideoLocationInfoXml => write!(f, "application/vnd.3gpp.mcvideo-location-info+xml"),
+			Mime::ApplicationVnd3gppMcvideoMbmsUsageInfoXml => write!(f, "application/vnd.3gpp.mcvideo-mbms-usage-info+xml"),
+			Mime::ApplicationVnd3gppMcvideoRegroupXml => write!(f, "application/vnd.3gpp.mcvideo-regroup+xml"),
+			Mime::ApplicationVnd3gppMcvideoServiceConfigXml => write!(f, "application/vnd.3gpp.mcvideo-service-config+xml"),
+			Mime::ApplicationVnd3gppMcvideoTransmissionRequestXml => write!(f, "application/vnd.3gpp.mcvideo-transmission-request+xml"),
+			Mime::ApplicationVnd3gppMcvideoUeConfigXml => write!(f, "application/vnd.3gpp.mcvideo-ue-config+xml"),
+			Mime::ApplicationVnd3gppMcvideoUserProfileXml => write!(f, "application/vnd.3gpp.mcvideo-user-profile+xml"),
+			Mime::ApplicationVnd3gppMidCallXml => write!(f, "application/vnd.3gpp.mid-call+xml"),
+			Mime::ApplicationVnd3gppNgap => write!(f, "application/vnd.3gpp.ngap"),
+			Mime::ApplicationVnd3gppPfcp => write!(f, "application/vnd.3gpp.pfcp"),
+			Mime::ApplicationVnd3gppPicBwLarge => write!(f, "application/vnd.3gpp.pic-bw-large"),
+			Mime::ApplicationVnd3gppPicBwSmall => write!(f, "application/vnd.3gpp.pic-bw-small"),
+			Mime::ApplicationVnd3gppPicBwVar => write!(f, "application/vnd.3gpp.pic-bw-var"),
+			Mime::ApplicationVnd3gppProsePc3aXml => write!(f, "application/vnd.3gpp-prose-pc3a+xml"),
+			Mime::ApplicationVnd3gppProsePc3achXml => write!(f, "application/vnd.3gpp-prose-pc3ach+xml"),
+			Mime::ApplicationVnd3gppProsePc3chXml => write!(f, "application/vnd.3gpp-prose-pc3ch+xml"),
+			Mime::ApplicationVnd3gppProsePc8Xml => write!(f, "application/vnd.3gpp-prose-pc8+xml"),
+			Mime::ApplicationVnd3gppProseXml => write!(f, "application/vnd.3gpp-prose+xml"),
+			Mime::ApplicationVnd3gppS1ap => write!(f, "application/vnd.3gpp.s1ap"),
+			Mime::ApplicationVnd3gppSealGroupDocXml => write!(f, "application/vnd.3gpp.seal-group-doc+xml"),
+			Mime::ApplicationVnd3gppSealInfoXml => write!(f, "application/vnd.3gpp.seal-info+xml"),
+			Mime::ApplicationVnd3gppSealLocationInfoXml => write!(f, "application/vnd.3gpp.seal-location-info+xml"),
+			Mime::ApplicationVnd3gppSealMbmsUsageInfoXml => write!(f, "application/vnd.3gpp.seal-mbms-usage-info+xml"),
+			Mime::ApplicationVnd3gppSealNetworkQosManagementInfoXml => write!(f, "application/vnd.3gpp.seal-network-QoS-management-info+xml"),
+			Mime::ApplicationVnd3gppSealUeConfigInfoXml => write!(f, "application/vnd.3gpp.seal-ue-config-info+xml"),
+			Mime::ApplicationVnd3gppSealUnicastInfoXml => write!(f, "application/vnd.3gpp.seal-unicast-info+xml"),
+			Mime::ApplicationVnd3gppSealUserProfileInfoXml => write!(f, "application/vnd.3gpp.seal-user-profile-info+xml"),
+			Mime::ApplicationVnd3gppSms => write!(f, "application/vnd.3gpp.sms"),
+			Mime::ApplicationVnd3gppSmsXml => write!(f, "application/vnd.3gpp.sms+xml"),
+			Mime::ApplicationVnd3gppSrvccExtXml => write!(f, "application/vnd.3gpp.srvcc-ext+xml"),
+			Mime::ApplicationVnd3gppSrvccInfoXml => write!(f, "application/vnd.3gpp.SRVCC-info+xml"),
+			Mime::ApplicationVnd3gppStateAndEventInfoXml => write!(f, "application/vnd.3gpp.state-and-event-info+xml"),
+			Mime::ApplicationVnd3gppUssdXml => write!(f, "application/vnd.3gpp.ussd+xml"),
+			Mime::ApplicationVnd3gppVaeInfoXml => write!(f, "application/vnd.3gpp.vae-info+xml"),
+			Mime::ApplicationVnd3gppV2xLocalServiceInformation => write!(f, "application/vnd.3gpp-v2x-local-service-information"),
+			Mime::ApplicationVnd3gpp2BcmcsinfoXml => write!(f, "application/vnd.3gpp2.bcmcsinfo+xml"),
+			Mime::ApplicationVnd3gpp2Sms => write!(f, "application/vnd.3gpp2.sms"),
+			Mime::ApplicationVnd3gpp2Tcap => write!(f, "application/vnd.3gpp2.tcap"),
+			Mime::ApplicationVnd3gppV2x => write!(f, "application/vnd.3gpp.v2x"),
+			Mime::ApplicationVnd3lightssoftwareImagescal => write!(f, "application/vnd.3lightssoftware.imagescal"),
+			Mime::ApplicationVnd3mPostItNotes => write!(f, "application/vnd.3M.Post-it-Notes"),
+			Mime::ApplicationVndAccpacSimplyAso => write!(f, "application/vnd.accpac.simply.aso"),
+			Mime::ApplicationVndAccpacSimplyImp => write!(f, "application/vnd.accpac.simply.imp"),
+			Mime::ApplicationVndAcmAddressxferJson => write!(f, "application/vnd.acm.addressxfer+json"),
+			Mime::ApplicationVndAcucobol => write!(f, "application/vnd.acucobol"),
+			Mime::ApplicationVndAcucorp => write!(f, "application/vnd.acucorp"),
+			Mime::ApplicationVndAdobeFlashMovie => write!(f, "application/vnd.adobe.flash.movie"),
+			Mime::ApplicationVndAdobeFormscentralFcdt => write!(f, "application/vnd.adobe.formscentral.fcdt"),
+			Mime::ApplicationVndAdobeFxp => write!(f, "application/vnd.adobe.fxp"),
+			Mime::ApplicationVndAdobePartialUpload => write!(f, "application/vnd.adobe.partial-upload"),
+			Mime::ApplicationVndAdobeXdpXml => write!(f, "application/vnd.adobe.xdp+xml"),
+			Mime::ApplicationVndAetherImp => write!(f, "application/vnd.aether.imp"),
+			Mime::ApplicationVndAfpcAfplinedata => write!(f, "application/vnd.afpc.afplinedata"),
+			Mime::ApplicationVndAfpcAfplinedataPagedef => write!(f, "application/vnd.afpc.afplinedata-pagedef"),
+			Mime::ApplicationVndAfpcCmocaCmresource => write!(f, "application/vnd.afpc.cmoca-cmresource"),
+			Mime::ApplicationVndAfpcFocaCharset => write!(f, "application/vnd.afpc.foca-charset"),
+			Mime::ApplicationVndAfpcFocaCodedfont => write!(f, "application/vnd.afpc.foca-codedfont"),
+			Mime::ApplicationVndAfpcFocaCodepage => write!(f, "application/vnd.afpc.foca-codepage"),
+			Mime::ApplicationVndAfpcModca => write!(f, "application/vnd.afpc.modca"),
+			Mime::ApplicationVndAfpcModcaCmtable => write!(f, "application/vnd.afpc.modca-cmtable"),
+			Mime::ApplicationVndAfpcModcaFormdef => write!(f, "application/vnd.afpc.modca-formdef"),
+			Mime::ApplicationVndAfpcModcaMediummap => write!(f, "application/vnd.afpc.modca-mediummap"),
+			Mime::ApplicationVndAfpcModcaObjectcontainer => write!(f, "application/vnd.afpc.modca-objectcontainer"),
+			Mime::ApplicationVndAfpcModcaOverlay => write!(f, "application/vnd.afpc.modca-overlay"),
+			Mime::ApplicationVndAfpcModcaPagesegment => write!(f, "application/vnd.afpc.modca-pagesegment"),
+			Mime::ApplicationVndAge => write!(f, "application/vnd.age"),
+			Mime::ApplicationVndAhBarcode => write!(f, "application/vnd.ah-barcode"),
+			Mime::ApplicationVndAheadSpace => write!(f, "application/vnd.ahead.space"),
+			Mime::ApplicationVndAirzipFilesecureAzf => write!(f, "application/vnd.airzip.filesecure.azf"),
+			Mime::ApplicationVndAirzipFilesecureAzs => write!(f, "application/vnd.airzip.filesecure.azs"),
+			Mime::ApplicationVndAmadeusJson => write!(f, "application/vnd.amadeus+json"),
+			Mime::ApplicationVndAmazonMobi8Ebook => write!(f, "application/vnd.amazon.mobi8-ebook"),
+			Mime::ApplicationVndAmericandynamicsAcc => write!(f, "application/vnd.americandynamics.acc"),
+			Mime::ApplicationVndAmigaAmi => write!(f, "application/vnd.amiga.ami"),
+			Mime::ApplicationVndAmundsenMazeXml => write!(f, "application/vnd.amundsen.maze+xml"),
+			Mime::ApplicationVndAndroidOta => write!(f, "application/vnd.android.ota"),
+			Mime::ApplicationVndAnki => write!(f, "application/vnd.anki"),
+			Mime::ApplicationVndAnserWebCertificateIssueInitiation => write!(f, "application/vnd.anser-web-certificate-issue-initiation"),
+			Mime::ApplicationVndAntixGameComponent => write!(f, "application/vnd.antix.game-component"),
+			Mime::ApplicationVndApacheArrowFile => write!(f, "application/vnd.apache.arrow.file"),
+			Mime::ApplicationVndApacheArrowStream => write!(f, "application/vnd.apache.arrow.stream"),
+			Mime::ApplicationVndApacheThriftBinary => write!(f, "application/vnd.apache.thrift.binary"),
+			Mime::ApplicationVndApacheThriftCompact => write!(f, "application/vnd.apache.thrift.compact"),
+			Mime::ApplicationVndApacheThriftJson => write!(f, "application/vnd.apache.thrift.json"),
+			Mime::ApplicationVndApexlang => write!(f, "application/vnd.apexlang"),
+			Mime::ApplicationVndApiJson => write!(f, "application/vnd.api+json"),
+			Mime::ApplicationVndAplextorWarrpJson => write!(f, "application/vnd.aplextor.warrp+json"),
+			Mime::ApplicationVndApothekendeReservationJson => write!(f, "application/vnd.apothekende.reservation+json"),
+			Mime::ApplicationVndAppleInstallerXml => write!(f, "application/vnd.apple.installer+xml"),
+			Mime::ApplicationVndAppleKeynote => write!(f, "application/vnd.apple.keynote"),
+			Mime::ApplicationVndAppleMpegurl => write!(f, "application/vnd.apple.mpegurl"),
+			Mime::ApplicationVndAppleNumbers => write!(f, "application/vnd.apple.numbers"),
+			Mime::ApplicationVndApplePages => write!(f, "application/vnd.apple.pages"),
+			Mime::ApplicationVndAristanetworksSwi => write!(f, "application/vnd.aristanetworks.swi"),
+			Mime::ApplicationVndArtisanJson => write!(f, "application/vnd.artisan+json"),
+			Mime::ApplicationVndArtsquare => write!(f, "application/vnd.artsquare"),
+			Mime::ApplicationVndAstraeaSoftwareIota => write!(f, "application/vnd.astraea-software.iota"),
+			Mime::ApplicationVndAudiograph => write!(f, "application/vnd.audiograph"),
+			Mime::ApplicationVndAutopackage => write!(f, "application/vnd.autopackage"),
+			Mime::ApplicationVndAvalonJson => write!(f, "application/vnd.avalon+json"),
+			Mime::ApplicationVndAvistarXml => write!(f, "application/vnd.avistar+xml"),
+			Mime::ApplicationVndBalsamiqBmmlXml => write!(f, "application/vnd.balsamiq.bmml+xml"),
+			Mime::ApplicationVndBananaAccounting => write!(f, "application/vnd.banana-accounting"),
+			Mime::ApplicationVndBbfUspError => write!(f, "application/vnd.bbf.usp.error"),
+			Mime::ApplicationVndBbfUspMsg => write!(f, "application/vnd.bbf.usp.msg"),
+			Mime::ApplicationVndBbfUspMsgJson => write!(f, "application/vnd.bbf.usp.msg+json"),
+			Mime::ApplicationVndBalsamiqBmpr => write!(f, "application/vnd.balsamiq.bmpr"),
+			Mime::ApplicationVndBekitzurStechJson => write!(f, "application/vnd.bekitzur-stech+json"),
+			Mime::ApplicationVndBelightsoftLhzdZip => write!(f, "application/vnd.belightsoft.lhzd+zip"),
+			Mime::ApplicationVndBelightsoftLhzlZip => write!(f, "application/vnd.belightsoft.lhzl+zip"),
+			Mime::ApplicationVndBintMedContent => write!(f, "application/vnd.bint.med-content"),
+			Mime::ApplicationVndBiopaxRdfXml => write!(f, "application/vnd.biopax.rdf+xml"),
+			Mime::ApplicationVndBlinkIdbValueWrapper => write!(f, "application/vnd.blink-idb-value-wrapper"),
+			Mime::ApplicationVndBlueiceMultipass => write!(f, "application/vnd.blueice.multipass"),
+			Mime::ApplicationVndBluetoothEpOob => write!(f, "application/vnd.bluetooth.ep.oob"),
+			Mime::ApplicationVndBluetoothLeOob => write!(f, "application/vnd.bluetooth.le.oob"),
+			Mime::ApplicationVndBmi => write!(f, "application/vnd.bmi"),
+			Mime::ApplicationVndBpf => write!(f, "application/vnd.bpf"),
+			Mime::ApplicationVndBpf3 => write!(f, "application/vnd.bpf3"),
+			Mime::ApplicationVndBusinessobjects => write!(f, "application/vnd.businessobjects"),
+			Mime::ApplicationVndByuUapiJson => write!(f, "application/vnd.byu.uapi+json"),
+			Mime::ApplicationVndCabJscript => write!(f, "application/vnd.cab-jscript"),
+			Mime::ApplicationVndCanonCpdl => write!(f, "application/vnd.canon-cpdl"),
+			Mime::ApplicationVndCanonLips => write!(f, "application/vnd.canon-lips"),
+			Mime::ApplicationVndCapasystemsPgJson => write!(f, "application/vnd.capasystems-pg+json"),
+			Mime::ApplicationVndCendioThinlincClientconf => write!(f, "application/vnd.cendio.thinlinc.clientconf"),
+			Mime::ApplicationVndCenturySystemsTcpStream => write!(f, "application/vnd.century-systems.tcp_stream"),
+			Mime::ApplicationVndChemdrawXml => write!(f, "application/vnd.chemdraw+xml"),
+			Mime::ApplicationVndChessPgn => write!(f, "application/vnd.chess-pgn"),
+			Mime::ApplicationVndChipnutsKaraokeMmd => write!(f, "application/vnd.chipnuts.karaoke-mmd"),
+			Mime::ApplicationVndCiedi => write!(f, "application/vnd.ciedi"),
+			Mime::ApplicationVndCinderella => write!(f, "application/vnd.cinderella"),
+			Mime::ApplicationVndCirpackIsdnExt => write!(f, "application/vnd.cirpack.isdn-ext"),
+			Mime::ApplicationVndCitationstylesStyleXml => write!(f, "application/vnd.citationstyles.style+xml"),
+			Mime::ApplicationVndClaymore => write!(f, "application/vnd.claymore"),
+			Mime::ApplicationVndCloantoRp9 => write!(f, "application/vnd.cloanto.rp9"),
+			Mime::ApplicationVndClonkC4group => write!(f, "application/vnd.clonk.c4group"),
+			Mime::ApplicationVndCluetrustCartomobileConfig => write!(f, "application/vnd.cluetrust.cartomobile-config"),
+			Mime::ApplicationVndCluetrustCartomobileConfigPkg => write!(f, "application/vnd.cluetrust.cartomobile-config-pkg"),
+			Mime::ApplicationVndCncfHelmChartContentV1TarGzip => write!(f, "application/vnd.cncf.helm.chart.content.v1.tar+gzip"),
+			Mime::ApplicationVndCncfHelmChartProvenanceV1Prov => write!(f, "application/vnd.cncf.helm.chart.provenance.v1.prov"),
+			Mime::ApplicationVndCncfHelmConfigV1Json => write!(f, "application/vnd.cncf.helm.config.v1+json"),
+			Mime::ApplicationVndCoffeescript => write!(f, "application/vnd.coffeescript"),
+			Mime::ApplicationVndCollabioXodocumentsDocument => write!(f, "application/vnd.collabio.xodocuments.document"),
+			Mime::ApplicationVndCollabioXodocumentsDocumentTemplate => write!(f, "application/vnd.collabio.xodocuments.document-template"),
+			Mime::ApplicationVndCollabioXodocumentsPresentation => write!(f, "application/vnd.collabio.xodocuments.presentation"),
+			Mime::ApplicationVndCollabioXodocumentsPresentationTemplate => write!(f, "application/vnd.collabio.xodocuments.presentation-template"),
+			Mime::ApplicationVndCollabioXodocumentsSpreadsheet => write!(f, "application/vnd.collabio.xodocuments.spreadsheet"),
+			Mime::ApplicationVndCollabioXodocumentsSpreadsheetTemplate => write!(f, "application/vnd.collabio.xodocuments.spreadsheet-template"),
+			Mime::ApplicationVndCollectionDocJson => write!(f, "application/vnd.collection.doc+json"),
+			Mime::ApplicationVndCollectionJson => write!(f, "application/vnd.collection+json"),
+			Mime::ApplicationVndCollectionNextJson => write!(f, "application/vnd.collection.next+json"),
+			Mime::ApplicationVndComicbookRar => write!(f, "application/vnd.comicbook-rar"),
+			Mime::ApplicationVndComicbookZip => write!(f, "application/vnd.comicbook+zip"),
+			Mime::ApplicationVndCommerceBattelle => write!(f, "application/vnd.commerce-battelle"),
+			Mime::ApplicationVndCommonspace => write!(f, "application/vnd.commonspace"),
+			Mime::ApplicationVndCoreosIgnitionJson => write!(f, "application/vnd.coreos.ignition+json"),
+			Mime::ApplicationVndCosmocaller => write!(f, "application/vnd.cosmocaller"),
+			Mime::ApplicationVndContactCmsg => write!(f, "application/vnd.contact.cmsg"),
+			Mime::ApplicationVndCrickClicker => write!(f, "application/vnd.crick.clicker"),
+			Mime::ApplicationVndCrickClickerKeyboard => write!(f, "application/vnd.crick.clicker.keyboard"),
+			Mime::ApplicationVndCrickClickerPalette => write!(f, "application/vnd.crick.clicker.palette"),
+			Mime::ApplicationVndCrickClickerTemplate => write!(f, "application/vnd.crick.clicker.template"),
+			Mime::ApplicationVndCrickClickerWordbank => write!(f, "application/vnd.crick.clicker.wordbank"),
+			Mime::ApplicationVndCriticaltoolsWbsXml => write!(f, "application/vnd.criticaltools.wbs+xml"),
+			Mime::ApplicationVndCryptiiPipeJson => write!(f, "application/vnd.cryptii.pipe+json"),
+			Mime::ApplicationVndCryptoShadeFile => write!(f, "application/vnd.crypto-shade-file"),
+			Mime::ApplicationVndCryptomatorEncrypted => write!(f, "application/vnd.cryptomator.encrypted"),
+			Mime::ApplicationVndCryptomatorVault => write!(f, "application/vnd.cryptomator.vault"),
+			Mime::ApplicationVndCtcPosml => write!(f, "application/vnd.ctc-posml"),
+			Mime::ApplicationVndCtctWsXml => write!(f, "application/vnd.ctct.ws+xml"),
+			Mime::ApplicationVndCupsPdf => write!(f, "application/vnd.cups-pdf"),
+			Mime::ApplicationVndCupsPostscript => write!(f, "application/vnd.cups-postscript"),
+			Mime::ApplicationVndCupsPpd => write!(f, "application/vnd.cups-ppd"),
+			Mime::ApplicationVndCupsRaster => write!(f, "application/vnd.cups-raster"),
+			Mime::ApplicationVndCupsRaw => write!(f, "application/vnd.cups-raw"),
+			Mime::ApplicationVndCurl => write!(f, "application/vnd.curl"),
+			Mime::ApplicationVndCyanDeanRootXml => write!(f, "application/vnd.cyan.dean.root+xml"),
+			Mime::ApplicationVndCybank => write!(f, "application/vnd.cybank"),
+			Mime::ApplicationVndCyclonedxJson => write!(f, "application/vnd.cyclonedx+json"),
+			Mime::ApplicationVndCyclonedxXml => write!(f, "application/vnd.cyclonedx+xml"),
+			Mime::ApplicationVndD2lCoursepackage1p0Zip => write!(f, "application/vnd.d2l.coursepackage1p0+zip"),
+			Mime::ApplicationVndD3mDataset => write!(f, "application/vnd.d3m-dataset"),
+			Mime::ApplicationVndD3mProblem => write!(f, "application/vnd.d3m-problem"),
+			Mime::ApplicationVndDart => write!(f, "application/vnd.dart"),
+			Mime::ApplicationVndDataVisionRdz => write!(f, "application/vnd.data-vision.rdz"),
+			Mime::ApplicationVndDatalog => write!(f, "application/vnd.datalog"),
+			Mime::ApplicationVndDatapackageJson => write!(f, "application/vnd.datapackage+json"),
+			Mime::ApplicationVndDataresourceJson => write!(f, "application/vnd.dataresource+json"),
+			Mime::ApplicationVndDbf => write!(f, "application/vnd.dbf"),
+			Mime::ApplicationVndDebianBinaryPackage => write!(f, "application/vnd.debian.binary-package"),
+			Mime::ApplicationVndDeceData => write!(f, "application/vnd.dece.data"),
+			Mime::ApplicationVndDeceTtmlXml => write!(f, "application/vnd.dece.ttml+xml"),
+			Mime::ApplicationVndDeceUnspecified => write!(f, "application/vnd.dece.unspecified"),
+			Mime::ApplicationVndDeceZip => write!(f, "application/vnd.dece.zip"),
+			Mime::ApplicationVndDenovoFcselayoutLink => write!(f, "application/vnd.denovo.fcselayout-link"),
+			Mime::ApplicationVndDesmumeMovie => write!(f, "application/vnd.desmume.movie"),
+			Mime::ApplicationVndDirBiPlateDlNosuffix => write!(f, "application/vnd.dir-bi.plate-dl-nosuffix"),
+			Mime::ApplicationVndDmDelegationXml => write!(f, "application/vnd.dm.delegation+xml"),
+			Mime::ApplicationVndDna => write!(f, "application/vnd.dna"),
+			Mime::ApplicationVndDocumentJson => write!(f, "application/vnd.document+json"),
+			Mime::ApplicationVndDolbyMobile1 => write!(f, "application/vnd.dolby.mobile.1"),
+			Mime::ApplicationVndDolbyMobile2 => write!(f, "application/vnd.dolby.mobile.2"),
+			Mime::ApplicationVndDoremirScorecloudBinaryDocument => write!(f, "application/vnd.doremir.scorecloud-binary-document"),
+			Mime::ApplicationVndDpgraph => write!(f, "application/vnd.dpgraph"),
+			Mime::ApplicationVndDreamfactory => write!(f, "application/vnd.dreamfactory"),
+			Mime::ApplicationVndDriveJson => write!(f, "application/vnd.drive+json"),
+			Mime::ApplicationVndDtgLocal => write!(f, "application/vnd.dtg.local"),
+			Mime::ApplicationVndDtgLocalFlash => write!(f, "application/vnd.dtg.local.flash"),
+			Mime::ApplicationVndDtgLocalHtml => write!(f, "application/vnd.dtg.local.html"),
+			Mime::ApplicationVndDvbAit => write!(f, "application/vnd.dvb.ait"),
+			Mime::ApplicationVndDvbDvbislXml => write!(f, "application/vnd.dvb.dvbisl+xml"),
+			Mime::ApplicationVndDvbDvbj => write!(f, "application/vnd.dvb.dvbj"),
+			Mime::ApplicationVndDvbEsgcontainer => write!(f, "application/vnd.dvb.esgcontainer"),
+			Mime::ApplicationVndDvbIpdcdftnotifaccess => write!(f, "application/vnd.dvb.ipdcdftnotifaccess"),
+			Mime::ApplicationVndDvbIpdcesgaccess => write!(f, "application/vnd.dvb.ipdcesgaccess"),
+			Mime::ApplicationVndDvbIpdcesgaccess2 => write!(f, "application/vnd.dvb.ipdcesgaccess2"),
+			Mime::ApplicationVndDvbIpdcesgpdd => write!(f, "application/vnd.dvb.ipdcesgpdd"),
+			Mime::ApplicationVndDvbIpdcroaming => write!(f, "application/vnd.dvb.ipdcroaming"),
+			Mime::ApplicationVndDvbIptvAlfecBase => write!(f, "application/vnd.dvb.iptv.alfec-base"),
+			Mime::ApplicationVndDvbIptvAlfecEnhancement => write!(f, "application/vnd.dvb.iptv.alfec-enhancement"),
+			Mime::ApplicationVndDvbNotifAggregateRootXml => write!(f, "application/vnd.dvb.notif-aggregate-root+xml"),
+			Mime::ApplicationVndDvbNotifContainerXml => write!(f, "application/vnd.dvb.notif-container+xml"),
+			Mime::ApplicationVndDvbNotifGenericXml => write!(f, "application/vnd.dvb.notif-generic+xml"),
+			Mime::ApplicationVndDvbNotifIaMsglistXml => write!(f, "application/vnd.dvb.notif-ia-msglist+xml"),
+			Mime::ApplicationVndDvbNotifIaRegistrationRequestXml => write!(f, "application/vnd.dvb.notif-ia-registration-request+xml"),
+			Mime::ApplicationVndDvbNotifIaRegistrationResponseXml => write!(f, "application/vnd.dvb.notif-ia-registration-response+xml"),
+			Mime::ApplicationVndDvbNotifInitXml => write!(f, "application/vnd.dvb.notif-init+xml"),
+			Mime::ApplicationVndDvbPfr => write!(f, "application/vnd.dvb.pfr"),
+			Mime::ApplicationVndDvbService => write!(f, "application/vnd.dvb.service"),
+			Mime::ApplicationVndDxr => write!(f, "application/vnd.dxr"),
+			Mime::ApplicationVndDynageo => write!(f, "application/vnd.dynageo"),
+			Mime::ApplicationVndDzr => write!(f, "application/vnd.dzr"),
+			Mime::ApplicationVndEasykaraokeCdgdownload => write!(f, "application/vnd.easykaraoke.cdgdownload"),
+			Mime::ApplicationVndEcipRlp => write!(f, "application/vnd.ecip.rlp"),
+			Mime::ApplicationVndEcdisUpdate => write!(f, "application/vnd.ecdis-update"),
+			Mime::ApplicationVndEclipseDittoJson => write!(f, "application/vnd.eclipse.ditto+json"),
+			Mime::ApplicationVndEcowinChart => write!(f, "application/vnd.ecowin.chart"),
+			Mime::ApplicationVndEcowinFilerequest => write!(f, "application/vnd.ecowin.filerequest"),
+			Mime::ApplicationVndEcowinFileupdate => write!(f, "application/vnd.ecowin.fileupdate"),
+			Mime::ApplicationVndEcowinSeries => write!(f, "application/vnd.ecowin.series"),
+			Mime::ApplicationVndEcowinSeriesrequest => write!(f, "application/vnd.ecowin.seriesrequest"),
+			Mime::ApplicationVndEcowinSeriesupdate => write!(f, "application/vnd.ecowin.seriesupdate"),
+			Mime::ApplicationVndEfiImg => write!(f, "application/vnd.efi.img"),
+			Mime::ApplicationVndEfiIso => write!(f, "application/vnd.efi.iso"),
+			Mime::ApplicationVndElnZip => write!(f, "application/vnd.eln+zip"),
+			Mime::ApplicationVndEmclientAccessrequestXml => write!(f, "application/vnd.emclient.accessrequest+xml"),
+			Mime::ApplicationVndEnliven => write!(f, "application/vnd.enliven"),
+			Mime::ApplicationVndEnphaseEnvoy => write!(f, "application/vnd.enphase.envoy"),
+			Mime::ApplicationVndEprintsDataXml => write!(f, "application/vnd.eprints.data+xml"),
+			Mime::ApplicationVndEpsonEsf => write!(f, "application/vnd.epson.esf"),
+			Mime::ApplicationVndEpsonMsf => write!(f, "application/vnd.epson.msf"),
+			Mime::ApplicationVndEpsonQuickanime => write!(f, "application/vnd.epson.quickanime"),
+			Mime::ApplicationVndEpsonSalt => write!(f, "application/vnd.epson.salt"),
+			Mime::ApplicationVndEpsonSsf => write!(f, "application/vnd.epson.ssf"),
+			Mime::ApplicationVndEricssonQuickcall => write!(f, "application/vnd.ericsson.quickcall"),
+			Mime::ApplicationVndEspassEspassZip => write!(f, "application/vnd.espass-espass+zip"),
+			Mime::ApplicationVndEszigno3Xml => write!(f, "application/vnd.eszigno3+xml"),
+			Mime::ApplicationVndEtsiAocXml => write!(f, "application/vnd.etsi.aoc+xml"),
+			Mime::ApplicationVndEtsiAsicSZip => write!(f, "application/vnd.etsi.asic-s+zip"),
+			Mime::ApplicationVndEtsiAsicEZip => write!(f, "application/vnd.etsi.asic-e+zip"),
+			Mime::ApplicationVndEtsiCugXml => write!(f, "application/vnd.etsi.cug+xml"),
+			Mime::ApplicationVndEtsiIptvcommandXml => write!(f, "application/vnd.etsi.iptvcommand+xml"),
+			Mime::ApplicationVndEtsiIptvdiscoveryXml => write!(f, "application/vnd.etsi.iptvdiscovery+xml"),
+			Mime::ApplicationVndEtsiIptvprofileXml => write!(f, "application/vnd.etsi.iptvprofile+xml"),
+			Mime::ApplicationVndEtsiIptvsadBcXml => write!(f, "application/vnd.etsi.iptvsad-bc+xml"),
+			Mime::ApplicationVndEtsiIptvsadCodXml => write!(f, "application/vnd.etsi.iptvsad-cod+xml"),
+			Mime::ApplicationVndEtsiIptvsadNpvrXml => write!(f, "application/vnd.etsi.iptvsad-npvr+xml"),
+			Mime::ApplicationVndEtsiIptvserviceXml => write!(f, "application/vnd.etsi.iptvservice+xml"),
+			Mime::ApplicationVndEtsiIptvsyncXml => write!(f, "application/vnd.etsi.iptvsync+xml"),
+			Mime::ApplicationVndEtsiIptvueprofileXml => write!(f, "application/vnd.etsi.iptvueprofile+xml"),
+			Mime::ApplicationVndEtsiMcidXml => write!(f, "application/vnd.etsi.mcid+xml"),
+			Mime::ApplicationVndEtsiMheg5 => write!(f, "application/vnd.etsi.mheg5"),
+			Mime::ApplicationVndEtsiOverloadControlPolicyDatasetXml => write!(f, "application/vnd.etsi.overload-control-policy-dataset+xml"),
+			Mime::ApplicationVndEtsiPstnXml => write!(f, "application/vnd.etsi.pstn+xml"),
+			Mime::ApplicationVndEtsiSciXml => write!(f, "application/vnd.etsi.sci+xml"),
+			Mime::ApplicationVndEtsiSimservsXml => write!(f, "application/vnd.etsi.simservs+xml"),
+			Mime::ApplicationVndEtsiTimestampToken => write!(f, "application/vnd.etsi.timestamp-token"),
+			Mime::ApplicationVndEtsiTslXml => write!(f, "application/vnd.etsi.tsl+xml"),
+			Mime::ApplicationVndEtsiTslDer => write!(f, "application/vnd.etsi.tsl.der"),
+			Mime::ApplicationVndEuKasparianCarJson => write!(f, "application/vnd.eu.kasparian.car+json"),
+			Mime::ApplicationVndEudoraData => write!(f, "application/vnd.eudora.data"),
+			Mime::ApplicationVndEvolvEcigProfile => write!(f, "application/vnd.evolv.ecig.profile"),
+			Mime::ApplicationVndEvolvEcigSettings => write!(f, "application/vnd.evolv.ecig.settings"),
+			Mime::ApplicationVndEvolvEcigTheme => write!(f, "application/vnd.evolv.ecig.theme"),
+			Mime::ApplicationVndExstreamEmpowerZip => write!(f, "application/vnd.exstream-empower+zip"),
+			Mime::ApplicationVndExstreamPackage => write!(f, "application/vnd.exstream-package"),
+			Mime::ApplicationVndEzpixAlbum => write!(f, "application/vnd.ezpix-album"),
+			Mime::ApplicationVndEzpixPackage => write!(f, "application/vnd.ezpix-package"),
+			Mime::ApplicationVndFSecureMobile => write!(f, "application/vnd.f-secure.mobile"),
+			Mime::ApplicationVndFastcopyDiskImage => write!(f, "application/vnd.fastcopy-disk-image"),
+			Mime::ApplicationVndFamilysearchGedcomZip => write!(f, "application/vnd.familysearch.gedcom+zip"),
+			Mime::ApplicationVndFdsnMseed => write!(f, "application/vnd.fdsn.mseed"),
+			Mime::ApplicationVndFdsnSeed => write!(f, "application/vnd.fdsn.seed"),
+			Mime::ApplicationVndFfsns => write!(f, "application/vnd.ffsns"),
+			Mime::ApplicationVndFiclabFlbZip => write!(f, "application/vnd.ficlab.flb+zip"),
+			Mime::ApplicationVndFilmitZfc => write!(f, "application/vnd.filmit.zfc"),
+			Mime::ApplicationVndFints => write!(f, "application/vnd.fints"),
+			Mime::ApplicationVndFiremonkeysCloudcell => write!(f, "application/vnd.firemonkeys.cloudcell"),
+			Mime::ApplicationVndFlographit => write!(f, "application/vnd.FloGraphIt"),
+			Mime::ApplicationVndFluxtimeClip => write!(f, "application/vnd.fluxtime.clip"),
+			Mime::ApplicationVndFontFontforgeSfd => write!(f, "application/vnd.font-fontforge-sfd"),
+			Mime::ApplicationVndFramemaker => write!(f, "application/vnd.framemaker"),
+			Mime::ApplicationVndFscWeblaunch => write!(f, "application/vnd.fsc.weblaunch"),
+			Mime::ApplicationVndFujifilmFbDocuworks => write!(f, "application/vnd.fujifilm.fb.docuworks"),
+			Mime::ApplicationVndFujifilmFbDocuworksBinder => write!(f, "application/vnd.fujifilm.fb.docuworks.binder"),
+			Mime::ApplicationVndFujifilmFbDocuworksContainer => write!(f, "application/vnd.fujifilm.fb.docuworks.container"),
+			Mime::ApplicationVndFujifilmFbJfiXml => write!(f, "application/vnd.fujifilm.fb.jfi+xml"),
+			Mime::ApplicationVndFujitsuOasys => write!(f, "application/vnd.fujitsu.oasys"),
+			Mime::ApplicationVndFujitsuOasys2 => write!(f, "application/vnd.fujitsu.oasys2"),
+			Mime::ApplicationVndFujitsuOasys3 => write!(f, "application/vnd.fujitsu.oasys3"),
+			Mime::ApplicationVndFujitsuOasysgp => write!(f, "application/vnd.fujitsu.oasysgp"),
+			Mime::ApplicationVndFujitsuOasysprs => write!(f, "application/vnd.fujitsu.oasysprs"),
+			Mime::ApplicationVndFujixeroxArt4 => write!(f, "application/vnd.fujixerox.ART4"),
+			Mime::ApplicationVndFujixeroxArtEx => write!(f, "application/vnd.fujixerox.ART-EX"),
+			Mime::ApplicationVndFujixeroxDdd => write!(f, "application/vnd.fujixerox.ddd"),
+			Mime::ApplicationVndFujixeroxDocuworks => write!(f, "application/vnd.fujixerox.docuworks"),
+			Mime::ApplicationVndFujixeroxDocuworksBinder => write!(f, "application/vnd.fujixerox.docuworks.binder"),
+			Mime::ApplicationVndFujixeroxDocuworksContainer => write!(f, "application/vnd.fujixerox.docuworks.container"),
+			Mime::ApplicationVndFujixeroxHbpl => write!(f, "application/vnd.fujixerox.HBPL"),
+			Mime::ApplicationVndFutMisnet => write!(f, "application/vnd.fut-misnet"),
+			Mime::ApplicationVndFutoinCbor => write!(f, "application/vnd.futoin+cbor"),
+			Mime::ApplicationVndFutoinJson => write!(f, "application/vnd.futoin+json"),
+			Mime::ApplicationVndFuzzysheet => write!(f, "application/vnd.fuzzysheet"),
+			Mime::ApplicationVndGenomatixTuxedo => write!(f, "application/vnd.genomatix.tuxedo"),
+			Mime::ApplicationVndGenozip => write!(f, "application/vnd.genozip"),
+			Mime::ApplicationVndGenticsGrdJson => write!(f, "application/vnd.gentics.grd+json"),
+			Mime::ApplicationVndGentooCatmetadataXml => write!(f, "application/vnd.gentoo.catmetadata+xml"),
+			Mime::ApplicationVndGentooEbuild => write!(f, "application/vnd.gentoo.ebuild"),
+			Mime::ApplicationVndGentooEclass => write!(f, "application/vnd.gentoo.eclass"),
+			Mime::ApplicationVndGentooGpkg => write!(f, "application/vnd.gentoo.gpkg"),
+			Mime::ApplicationVndGentooManifest => write!(f, "application/vnd.gentoo.manifest"),
+			Mime::ApplicationVndGentooXpak => write!(f, "application/vnd.gentoo.xpak"),
+			Mime::ApplicationVndGentooPkgmetadataXml => write!(f, "application/vnd.gentoo.pkgmetadata+xml"),
+			Mime::ApplicationVndGeogebraFile => write!(f, "application/vnd.geogebra.file"),
+			Mime::ApplicationVndGeogebraSlides => write!(f, "application/vnd.geogebra.slides"),
+			Mime::ApplicationVndGeogebraTool => write!(f, "application/vnd.geogebra.tool"),
+			Mime::ApplicationVndGeometryExplorer => write!(f, "application/vnd.geometry-explorer"),
+			Mime::ApplicationVndGeonext => write!(f, "application/vnd.geonext"),
+			Mime::ApplicationVndGeoplan => write!(f, "application/vnd.geoplan"),
+			Mime::ApplicationVndGeospace => write!(f, "application/vnd.geospace"),
+			Mime::ApplicationVndGerber => write!(f, "application/vnd.gerber"),
+			Mime::ApplicationVndGlobalplatformCardContentMgt => write!(f, "application/vnd.globalplatform.card-content-mgt"),
+			Mime::ApplicationVndGlobalplatformCardContentMgtResponse => write!(f, "application/vnd.globalplatform.card-content-mgt-response"),
+			Mime::ApplicationVndGnuTalerExchangeJson => write!(f, "application/vnd.gnu.taler.exchange+json"),
+			Mime::ApplicationVndGnuTalerMerchantJson => write!(f, "application/vnd.gnu.taler.merchant+json"),
+			Mime::ApplicationVndGoogleEarthKmlXml => write!(f, "application/vnd.google-earth.kml+xml"),
+			Mime::ApplicationVndGoogleEarthKmz => write!(f, "application/vnd.google-earth.kmz"),
+			Mime::ApplicationVndGovSkEFormXml => write!(f, "application/vnd.gov.sk.e-form+xml"),
+			Mime::ApplicationVndGovSkEFormZip => write!(f, "application/vnd.gov.sk.e-form+zip"),
+			Mime::ApplicationVndGovSkXmldatacontainerXml => write!(f, "application/vnd.gov.sk.xmldatacontainer+xml"),
+			Mime::ApplicationVndGpxseeMapXml => write!(f, "application/vnd.gpxsee.map+xml"),
+			Mime::ApplicationVndGrafeq => write!(f, "application/vnd.grafeq"),
+			Mime::ApplicationVndGridmp => write!(f, "application/vnd.gridmp"),
+			Mime::ApplicationVndGrooveAccount => write!(f, "application/vnd.groove-account"),
+			Mime::ApplicationVndGrooveHelp => write!(f, "application/vnd.groove-help"),
+			Mime::ApplicationVndGrooveIdentityMessage => write!(f, "application/vnd.groove-identity-message"),
+			Mime::ApplicationVndGrooveInjector => write!(f, "application/vnd.groove-injector"),
+			Mime::ApplicationVndGrooveToolMessage => write!(f, "application/vnd.groove-tool-message"),
+			Mime::ApplicationVndGrooveToolTemplate => write!(f, "application/vnd.groove-tool-template"),
+			Mime::ApplicationVndGrooveVcard => write!(f, "application/vnd.groove-vcard"),
+			Mime::ApplicationVndHalJson => write!(f, "application/vnd.hal+json"),
+			Mime::ApplicationVndHalXml => write!(f, "application/vnd.hal+xml"),
+			Mime::ApplicationVndHandheldEntertainmentXml => write!(f, "application/vnd.HandHeld-Entertainment+xml"),
+			Mime::ApplicationVndHbci => write!(f, "application/vnd.hbci"),
+			Mime::ApplicationVndHcJson => write!(f, "application/vnd.hc+json"),
+			Mime::ApplicationVndHclBireports => write!(f, "application/vnd.hcl-bireports"),
+			Mime::ApplicationVndHdt => write!(f, "application/vnd.hdt"),
+			Mime::ApplicationVndHerokuJson => write!(f, "application/vnd.heroku+json"),
+			Mime::ApplicationVndHheLessonPlayer => write!(f, "application/vnd.hhe.lesson-player"),
+			Mime::ApplicationVndHpHpgl => write!(f, "application/vnd.hp-HPGL"),
+			Mime::ApplicationVndHpHpid => write!(f, "application/vnd.hp-hpid"),
+			Mime::ApplicationVndHpHps => write!(f, "application/vnd.hp-hps"),
+			Mime::ApplicationVndHpJlyt => write!(f, "application/vnd.hp-jlyt"),
+			Mime::ApplicationVndHpPcl => write!(f, "application/vnd.hp-PCL"),
+			Mime::ApplicationVndHpPclxl => write!(f, "application/vnd.hp-PCLXL"),
+			Mime::ApplicationVndHsl => write!(f, "application/vnd.hsl"),
+			Mime::ApplicationVndHttphone => write!(f, "application/vnd.httphone"),
+			Mime::ApplicationVndHydrostatixSofData => write!(f, "application/vnd.hydrostatix.sof-data"),
+			Mime::ApplicationVndHyperItemJson => write!(f, "application/vnd.hyper-item+json"),
+			Mime::ApplicationVndHyperJson => write!(f, "application/vnd.hyper+json"),
+			Mime::ApplicationVndHyperdriveJson => write!(f, "application/vnd.hyperdrive+json"),
+			Mime::ApplicationVndHzn3dCrossword => write!(f, "application/vnd.hzn-3d-crossword"),
+			Mime::ApplicationVndIbmElectronicMedia => write!(f, "application/vnd.ibm.electronic-media"),
+			Mime::ApplicationVndIbmMinipay => write!(f, "application/vnd.ibm.MiniPay"),
+			Mime::ApplicationVndIbmRightsManagement => write!(f, "application/vnd.ibm.rights-management"),
+			Mime::ApplicationVndIbmSecureContainer => write!(f, "application/vnd.ibm.secure-container"),
+			Mime::ApplicationVndIccprofile => write!(f, "application/vnd.iccprofile"),
+			Mime::ApplicationVndIeee1905 => write!(f, "application/vnd.ieee.1905"),
+			Mime::ApplicationVndIgloader => write!(f, "application/vnd.igloader"),
+			Mime::ApplicationVndImagemeterFolderZip => write!(f, "application/vnd.imagemeter.folder+zip"),
+			Mime::ApplicationVndImagemeterImageZip => write!(f, "application/vnd.imagemeter.image+zip"),
+			Mime::ApplicationVndImmervisionIvp => write!(f, "application/vnd.immervision-ivp"),
+			Mime::ApplicationVndImmervisionIvu => write!(f, "application/vnd.immervision-ivu"),
+			Mime::ApplicationVndImsImsccv1p1 => write!(f, "application/vnd.ims.imsccv1p1"),
+			Mime::ApplicationVndImsImsccv1p2 => write!(f, "application/vnd.ims.imsccv1p2"),
+			Mime::ApplicationVndImsImsccv1p3 => write!(f, "application/vnd.ims.imsccv1p3"),
+			Mime::ApplicationVndImsLisV2ResultJson => write!(f, "application/vnd.ims.lis.v2.result+json"),
+			Mime::ApplicationVndImsLtiV2ToolconsumerprofileJson => write!(f, "application/vnd.ims.lti.v2.toolconsumerprofile+json"),
+			Mime::ApplicationVndImsLtiV2ToolproxyIdJson => write!(f, "application/vnd.ims.lti.v2.toolproxy.id+json"),
+			Mime::ApplicationVndImsLtiV2ToolproxyJson => write!(f, "application/vnd.ims.lti.v2.toolproxy+json"),
+			Mime::ApplicationVndImsLtiV2ToolsettingsJson => write!(f, "application/vnd.ims.lti.v2.toolsettings+json"),
+			Mime::ApplicationVndImsLtiV2ToolsettingsSimpleJson => write!(f, "application/vnd.ims.lti.v2.toolsettings.simple+json"),
+			Mime::ApplicationVndInformedcontrolRmsXml => write!(f, "application/vnd.informedcontrol.rms+xml"),
+			Mime::ApplicationVndInfotechProject => write!(f, "application/vnd.infotech.project"),
+			Mime::ApplicationVndInfotechProjectXml => write!(f, "application/vnd.infotech.project+xml"),
+			Mime::ApplicationVndInnopathWampNotification => write!(f, "application/vnd.innopath.wamp.notification"),
+			Mime::ApplicationVndInsorsIgm => write!(f, "application/vnd.insors.igm"),
+			Mime::ApplicationVndInterconFormnet => write!(f, "application/vnd.intercon.formnet"),
+			Mime::ApplicationVndIntergeo => write!(f, "application/vnd.intergeo"),
+			Mime::ApplicationVndIntertrustDigibox => write!(f, "application/vnd.intertrust.digibox"),
+			Mime::ApplicationVndIntertrustNncp => write!(f, "application/vnd.intertrust.nncp"),
+			Mime::ApplicationVndIntuQbo => write!(f, "application/vnd.intu.qbo"),
+			Mime::ApplicationVndIntuQfx => write!(f, "application/vnd.intu.qfx"),
+			Mime::ApplicationVndIpfsIpnsRecord => write!(f, "application/vnd.ipfs.ipns-record"),
+			Mime::ApplicationVndIpldCar => write!(f, "application/vnd.ipld.car"),
+			Mime::ApplicationVndIpldDagCbor => write!(f, "application/vnd.ipld.dag-cbor"),
+			Mime::ApplicationVndIpldDagJson => write!(f, "application/vnd.ipld.dag-json"),
+			Mime::ApplicationVndIpldRaw => write!(f, "application/vnd.ipld.raw"),
+			Mime::ApplicationVndIptcG2CatalogitemXml => write!(f, "application/vnd.iptc.g2.catalogitem+xml"),
+			Mime::ApplicationVndIptcG2ConceptitemXml => write!(f, "application/vnd.iptc.g2.conceptitem+xml"),
+			Mime::ApplicationVndIptcG2KnowledgeitemXml => write!(f, "application/vnd.iptc.g2.knowledgeitem+xml"),
+			Mime::ApplicationVndIptcG2NewsitemXml => write!(f, "application/vnd.iptc.g2.newsitem+xml"),
+			Mime::ApplicationVndIptcG2NewsmessageXml => write!(f, "application/vnd.iptc.g2.newsmessage+xml"),
+			Mime::ApplicationVndIptcG2PackageitemXml => write!(f, "application/vnd.iptc.g2.packageitem+xml"),
+			Mime::ApplicationVndIptcG2PlanningitemXml => write!(f, "application/vnd.iptc.g2.planningitem+xml"),
+			Mime::ApplicationVndIpunpluggedRcprofile => write!(f, "application/vnd.ipunplugged.rcprofile"),
+			Mime::ApplicationVndIrepositoryPackageXml => write!(f, "application/vnd.irepository.package+xml"),
+			Mime::ApplicationVndIsXpr => write!(f, "application/vnd.is-xpr"),
+			Mime::ApplicationVndIsacFcs => write!(f, "application/vnd.isac.fcs"),
+			Mime::ApplicationVndJam => write!(f, "application/vnd.jam"),
+			Mime::ApplicationVndIso1178310Zip => write!(f, "application/vnd.iso11783-10+zip"),
+			Mime::ApplicationVndJapannetDirectoryService => write!(f, "application/vnd.japannet-directory-service"),
+			Mime::ApplicationVndJapannetJpnstoreWakeup => write!(f, "application/vnd.japannet-jpnstore-wakeup"),
+			Mime::ApplicationVndJapannetPaymentWakeup => write!(f, "application/vnd.japannet-payment-wakeup"),
+			Mime::ApplicationVndJapannetRegistration => write!(f, "application/vnd.japannet-registration"),
+			Mime::ApplicationVndJapannetRegistrationWakeup => write!(f, "application/vnd.japannet-registration-wakeup"),
+			Mime::ApplicationVndJapannetSetstoreWakeup => write!(f, "application/vnd.japannet-setstore-wakeup"),
+			Mime::ApplicationVndJapannetVerification => write!(f, "application/vnd.japannet-verification"),
+			Mime::ApplicationVndJapannetVerificationWakeup => write!(f, "application/vnd.japannet-verification-wakeup"),
+			Mime::ApplicationVndJcpJavameMidletRms => write!(f, "application/vnd.jcp.javame.midlet-rms"),
+			Mime::ApplicationVndJisp => write!(f, "application/vnd.jisp"),
+			Mime::ApplicationVndJoostJodaArchive => write!(f, "application/vnd.joost.joda-archive"),
+			Mime::ApplicationVndJskIsdnNgn => write!(f, "application/vnd.jsk.isdn-ngn"),
+			Mime::ApplicationVndKahootz => write!(f, "application/vnd.kahootz"),
+			Mime::ApplicationVndKdeKarbon => write!(f, "application/vnd.kde.karbon"),
+			Mime::ApplicationVndKdeKchart => write!(f, "application/vnd.kde.kchart"),
+			Mime::ApplicationVndKdeKformula => write!(f, "application/vnd.kde.kformula"),
+			Mime::ApplicationVndKdeKivio => write!(f, "application/vnd.kde.kivio"),
+			Mime::ApplicationVndKdeKontour => write!(f, "application/vnd.kde.kontour"),
+			Mime::ApplicationVndKdeKpresenter => write!(f, "application/vnd.kde.kpresenter"),
+			Mime::ApplicationVndKdeKspread => write!(f, "application/vnd.kde.kspread"),
+			Mime::ApplicationVndKdeKword => write!(f, "application/vnd.kde.kword"),
+			Mime::ApplicationVndKenameaapp => write!(f, "application/vnd.kenameaapp"),
+			Mime::ApplicationVndKidspiration => write!(f, "application/vnd.kidspiration"),
+			Mime::ApplicationVndKinar => write!(f, "application/vnd.Kinar"),
+			Mime::ApplicationVndKoan => write!(f, "application/vnd.koan"),
+			Mime::ApplicationVndKodakDescriptor => write!(f, "application/vnd.kodak-descriptor"),
+			Mime::ApplicationVndLas => write!(f, "application/vnd.las"),
+			Mime::ApplicationVndLasLasJson => write!(f, "application/vnd.las.las+json"),
+			Mime::ApplicationVndLasLasXml => write!(f, "application/vnd.las.las+xml"),
+			Mime::ApplicationVndLaszip => write!(f, "application/vnd.laszip"),
+			Mime::ApplicationVndLeapJson => write!(f, "application/vnd.leap+json"),
+			Mime::ApplicationVndLibertyRequestXml => write!(f, "application/vnd.liberty-request+xml"),
+			Mime::ApplicationVndLlamagraphicsLifeBalanceDesktop => write!(f, "application/vnd.llamagraphics.life-balance.desktop"),
+			Mime::ApplicationVndLlamagraphicsLifeBalanceExchangeXml => write!(f, "application/vnd.llamagraphics.life-balance.exchange+xml"),
+			Mime::ApplicationVndLogipipeCircuitZip => write!(f, "application/vnd.logipipe.circuit+zip"),
+			Mime::ApplicationVndLoom => write!(f, "application/vnd.loom"),
+			Mime::ApplicationVndLotus123 => write!(f, "application/vnd.lotus-1-2-3"),
+			Mime::ApplicationVndLotusApproach => write!(f, "application/vnd.lotus-approach"),
+			Mime::ApplicationVndLotusFreelance => write!(f, "application/vnd.lotus-freelance"),
+			Mime::ApplicationVndLotusNotes => write!(f, "application/vnd.lotus-notes"),
+			Mime::ApplicationVndLotusOrganizer => write!(f, "application/vnd.lotus-organizer"),
+			Mime::ApplicationVndLotusScreencam => write!(f, "application/vnd.lotus-screencam"),
+			Mime::ApplicationVndLotusWordpro => write!(f, "application/vnd.lotus-wordpro"),
+			Mime::ApplicationVndMacportsPortpkg => write!(f, "application/vnd.macports.portpkg"),
+			Mime::ApplicationVndMapboxVectorTile => write!(f, "application/vnd.mapbox-vector-tile"),
+			Mime::ApplicationVndMarlinDrmActiontokenXml => write!(f, "application/vnd.marlin.drm.actiontoken+xml"),
+			Mime::ApplicationVndMarlinDrmConftokenXml => write!(f, "application/vnd.marlin.drm.conftoken+xml"),
+			Mime::ApplicationVndMarlinDrmLicenseXml => write!(f, "application/vnd.marlin.drm.license+xml"),
+			Mime::ApplicationVndMarlinDrmMdcf => write!(f, "application/vnd.marlin.drm.mdcf"),
+			Mime::ApplicationVndMasonJson => write!(f, "application/vnd.mason+json"),
+			Mime::ApplicationVndMaxarArchive3tzZip => write!(f, "application/vnd.maxar.archive.3tz+zip"),
+			Mime::ApplicationVndMaxmindMaxmindDb => write!(f, "application/vnd.maxmind.maxmind-db"),
+			Mime::ApplicationVndMcd => write!(f, "application/vnd.mcd"),
+			Mime::ApplicationVndMdl => write!(f, "application/vnd.mdl"),
+			Mime::ApplicationVndMdlMbsdf => write!(f, "application/vnd.mdl-mbsdf"),
+			Mime::ApplicationVndMedcalcdata => write!(f, "application/vnd.medcalcdata"),
+			Mime::ApplicationVndMediastationCdkey => write!(f, "application/vnd.mediastation.cdkey"),
+			Mime::ApplicationVndMedicalholodeckRecordxr => write!(f, "application/vnd.medicalholodeck.recordxr"),
+			Mime::ApplicationVndMeridianSlingshot => write!(f, "application/vnd.meridian-slingshot"),
+			Mime::ApplicationVndMfer => write!(f, "application/vnd.MFER"),
+			Mime::ApplicationVndMfmp => write!(f, "application/vnd.mfmp"),
+			Mime::ApplicationVndMicroJson => write!(f, "application/vnd.micro+json"),
+			Mime::ApplicationVndMicrografxFlo => write!(f, "application/vnd.micrografx.flo"),
+			Mime::ApplicationVndMicrografxIgx => write!(f, "application/vnd.micrografx.igx"),
+			Mime::ApplicationVndMicrosoftPortableExecutable => write!(f, "application/vnd.microsoft.portable-executable"),
+			Mime::ApplicationVndMicrosoftWindowsThumbnailCache => write!(f, "application/vnd.microsoft.windows.thumbnail-cache"),
+			Mime::ApplicationVndMieleJson => write!(f, "application/vnd.miele+json"),
+			Mime::ApplicationVndMif => write!(f, "application/vnd.mif"),
+			Mime::ApplicationVndMinisoftHp3000Save => write!(f, "application/vnd.minisoft-hp3000-save"),
+			Mime::ApplicationVndMitsubishiMistyGuardTrustweb => write!(f, "application/vnd.mitsubishi.misty-guard.trustweb"),
+			Mime::ApplicationVndMobiusDaf => write!(f, "application/vnd.Mobius.DAF"),
+			Mime::ApplicationVndMobiusDis => write!(f, "application/vnd.Mobius.DIS"),
+			Mime::ApplicationVndMobiusMbk => write!(f, "application/vnd.Mobius.MBK"),
+			Mime::ApplicationVndMobiusMqy => write!(f, "application/vnd.Mobius.MQY"),
+			Mime::ApplicationVndMobiusMsl => write!(f, "application/vnd.Mobius.MSL"),
+			Mime::ApplicationVndMobiusPlc => write!(f, "application/vnd.Mobius.PLC"),
+			Mime::ApplicationVndMobiusTxf => write!(f, "application/vnd.Mobius.TXF"),
+			Mime::ApplicationVndModl => write!(f, "application/vnd.modl"),
+			Mime::ApplicationVndMophunApplication => write!(f, "application/vnd.mophun.application"),
+			Mime::ApplicationVndMophunCertificate => write!(f, "application/vnd.mophun.certificate"),
+			Mime::ApplicationVndMotorolaFlexsuite => write!(f, "application/vnd.motorola.flexsuite"),
+			Mime::ApplicationVndMotorolaFlexsuiteAdsi => write!(f, "application/vnd.motorola.flexsuite.adsi"),
+			Mime::ApplicationVndMotorolaFlexsuiteFis => write!(f, "application/vnd.motorola.flexsuite.fis"),
+			Mime::ApplicationVndMotorolaFlexsuiteGotap => write!(f, "application/vnd.motorola.flexsuite.gotap"),
+			Mime::ApplicationVndMotorolaFlexsuiteKmr => write!(f, "application/vnd.motorola.flexsuite.kmr"),
+			Mime::ApplicationVndMotorolaFlexsuiteTtc => write!(f, "application/vnd.motorola.flexsuite.ttc"),
+			Mime::ApplicationVndMotorolaFlexsuiteWem => write!(f, "application/vnd.motorola.flexsuite.wem"),
+			Mime::ApplicationVndMotorolaIprm => write!(f, "application/vnd.motorola.iprm"),
+			Mime::ApplicationVndMozillaXulXml => write!(f, "application/vnd.mozilla.xul+xml"),
+			Mime::ApplicationVndMsArtgalry => write!(f, "application/vnd.ms-artgalry"),
+			Mime::ApplicationVndMsAsf => write!(f, "application/vnd.ms-asf"),
+			Mime::ApplicationVndMsCabCompressed => write!(f, "application/vnd.ms-cab-compressed"),
+			Mime::ApplicationVndMs3mfdocument => write!(f, "application/vnd.ms-3mfdocument"),
+			Mime::ApplicationVndMsExcel => write!(f, "application/vnd.ms-excel"),
+			Mime::ApplicationVndMsExcelAddinMacroenabled12 => write!(f, "application/vnd.ms-excel.addin.macroEnabled.12"),
+			Mime::ApplicationVndMsExcelSheetBinaryMacroenabled12 => write!(f, "application/vnd.ms-excel.sheet.binary.macroEnabled.12"),
+			Mime::ApplicationVndMsExcelSheetMacroenabled12 => write!(f, "application/vnd.ms-excel.sheet.macroEnabled.12"),
+			Mime::ApplicationVndMsExcelTemplateMacroenabled12 => write!(f, "application/vnd.ms-excel.template.macroEnabled.12"),
+			Mime::ApplicationVndMsFontobject => write!(f, "application/vnd.ms-fontobject"),
+			Mime::ApplicationVndMsHtmlhelp => write!(f, "application/vnd.ms-htmlhelp"),
+			Mime::ApplicationVndMsIms => write!(f, "application/vnd.ms-ims"),
+			Mime::ApplicationVndMsLrm => write!(f, "application/vnd.ms-lrm"),
+			Mime::ApplicationVndMsOfficeActivexXml => write!(f, "application/vnd.ms-office.activeX+xml"),
+			Mime::ApplicationVndMsOfficetheme => write!(f, "application/vnd.ms-officetheme"),
+			Mime::ApplicationVndMsPlayreadyInitiatorXml => write!(f, "application/vnd.ms-playready.initiator+xml"),
+			Mime::ApplicationVndMsPowerpoint => write!(f, "application/vnd.ms-powerpoint"),
+			Mime::ApplicationVndMsPowerpointAddinMacroenabled12 => write!(f, "application/vnd.ms-powerpoint.addin.macroEnabled.12"),
+			Mime::ApplicationVndMsPowerpointPresentationMacroenabled12 => write!(f, "application/vnd.ms-powerpoint.presentation.macroEnabled.12"),
+			Mime::ApplicationVndMsPowerpointSlideMacroenabled12 => write!(f, "application/vnd.ms-powerpoint.slide.macroEnabled.12"),
+			Mime::ApplicationVndMsPowerpointSlideshowMacroenabled12 => write!(f, "application/vnd.ms-powerpoint.slideshow.macroEnabled.12"),
+			Mime::ApplicationVndMsPowerpointTemplateMacroenabled12 => write!(f, "application/vnd.ms-powerpoint.template.macroEnabled.12"),
+			Mime::ApplicationVndMsPrintdevicecapabilitiesXml => write!(f, "application/vnd.ms-PrintDeviceCapabilities+xml"),
+			Mime::ApplicationVndMsPrintschematicketXml => write!(f, "application/vnd.ms-PrintSchemaTicket+xml"),
+			Mime::ApplicationVndMsProject => write!(f, "application/vnd.ms-project"),
+			Mime::ApplicationVndMsTnef => write!(f, "application/vnd.ms-tnef"),
+			Mime::ApplicationVndMsWindowsDevicepairing => write!(f, "application/vnd.ms-windows.devicepairing"),
+			Mime::ApplicationVndMsWindowsNwprintingOob => write!(f, "application/vnd.ms-windows.nwprinting.oob"),
+			Mime::ApplicationVndMsWindowsPrinterpairing => write!(f, "application/vnd.ms-windows.printerpairing"),
+			Mime::ApplicationVndMsWindowsWsdOob => write!(f, "application/vnd.ms-windows.wsd.oob"),
+			Mime::ApplicationVndMsWmdrmLicChlgReq => write!(f, "application/vnd.ms-wmdrm.lic-chlg-req"),
+			Mime::ApplicationVndMsWmdrmLicResp => write!(f, "application/vnd.ms-wmdrm.lic-resp"),
+			Mime::ApplicationVndMsWmdrmMeterChlgReq => write!(f, "application/vnd.ms-wmdrm.meter-chlg-req"),
+			Mime::ApplicationVndMsWmdrmMeterResp => write!(f, "application/vnd.ms-wmdrm.meter-resp"),
+			Mime::ApplicationVndMsWordDocumentMacroenabled12 => write!(f, "application/vnd.ms-word.document.macroEnabled.12"),
+			Mime::ApplicationVndMsWordTemplateMacroenabled12 => write!(f, "application/vnd.ms-word.template.macroEnabled.12"),
+			Mime::ApplicationVndMsWorks => write!(f, "application/vnd.ms-works"),
+			Mime::ApplicationVndMsWpl => write!(f, "application/vnd.ms-wpl"),
+			Mime::ApplicationVndMsXpsdocument => write!(f, "application/vnd.ms-xpsdocument"),
+			Mime::ApplicationVndMsaDiskImage => write!(f, "application/vnd.msa-disk-image"),
+			Mime::ApplicationVndMseq => write!(f, "application/vnd.mseq"),
+			Mime::ApplicationVndMsign => write!(f, "application/vnd.msign"),
+			Mime::ApplicationVndMultiadCreator => write!(f, "application/vnd.multiad.creator"),
+			Mime::ApplicationVndMultiadCreatorCif => write!(f, "application/vnd.multiad.creator.cif"),
+			Mime::ApplicationVndMusician => write!(f, "application/vnd.musician"),
+			Mime::ApplicationVndMusicNiff => write!(f, "application/vnd.music-niff"),
+			Mime::ApplicationVndMuveeStyle => write!(f, "application/vnd.muvee.style"),
+			Mime::ApplicationVndMynfc => write!(f, "application/vnd.mynfc"),
+			Mime::ApplicationVndNacamarYbridJson => write!(f, "application/vnd.nacamar.ybrid+json"),
+			Mime::ApplicationVndNcdControl => write!(f, "application/vnd.ncd.control"),
+			Mime::ApplicationVndNcdReference => write!(f, "application/vnd.ncd.reference"),
+			Mime::ApplicationVndNearstInvJson => write!(f, "application/vnd.nearst.inv+json"),
+			Mime::ApplicationVndNebumindLine => write!(f, "application/vnd.nebumind.line"),
+			Mime::ApplicationVndNervana => write!(f, "application/vnd.nervana"),
+			Mime::ApplicationVndNetfpx => write!(f, "application/vnd.netfpx"),
+			Mime::ApplicationVndNeurolanguageNlu => write!(f, "application/vnd.neurolanguage.nlu"),
+			Mime::ApplicationVndNimn => write!(f, "application/vnd.nimn"),
+			Mime::ApplicationVndNintendoSnesRom => write!(f, "application/vnd.nintendo.snes.rom"),
+			Mime::ApplicationVndNintendoNitroRom => write!(f, "application/vnd.nintendo.nitro.rom"),
+			Mime::ApplicationVndNitf => write!(f, "application/vnd.nitf"),
+			Mime::ApplicationVndNoblenetDirectory => write!(f, "application/vnd.noblenet-directory"),
+			Mime::ApplicationVndNoblenetSealer => write!(f, "application/vnd.noblenet-sealer"),
+			Mime::ApplicationVndNoblenetWeb => write!(f, "application/vnd.noblenet-web"),
+			Mime::ApplicationVndNokiaCatalogs => write!(f, "application/vnd.nokia.catalogs"),
+			Mime::ApplicationVndNokiaConmlWbxml => write!(f, "application/vnd.nokia.conml+wbxml"),
+			Mime::ApplicationVndNokiaConmlXml => write!(f, "application/vnd.nokia.conml+xml"),
+			Mime::ApplicationVndNokiaIptvConfigXml => write!(f, "application/vnd.nokia.iptv.config+xml"),
+			Mime::ApplicationVndNokiaIsdsRadioPresets => write!(f, "application/vnd.nokia.iSDS-radio-presets"),
+			Mime::ApplicationVndNokiaLandmarkWbxml => write!(f, "application/vnd.nokia.landmark+wbxml"),
+			Mime::ApplicationVndNokiaLandmarkXml => write!(f, "application/vnd.nokia.landmark+xml"),
+			Mime::ApplicationVndNokiaLandmarkcollectionXml => write!(f, "application/vnd.nokia.landmarkcollection+xml"),
+			Mime::ApplicationVndNokiaNcd => write!(f, "application/vnd.nokia.ncd"),
+			Mime::ApplicationVndNokiaNGageAcXml => write!(f, "application/vnd.nokia.n-gage.ac+xml"),
+			Mime::ApplicationVndNokiaNGageData => write!(f, "application/vnd.nokia.n-gage.data"),
+			Mime::ApplicationVndNokiaPcdWbxml => write!(f, "application/vnd.nokia.pcd+wbxml"),
+			Mime::ApplicationVndNokiaPcdXml => write!(f, "application/vnd.nokia.pcd+xml"),
+			Mime::ApplicationVndNokiaRadioPreset => write!(f, "application/vnd.nokia.radio-preset"),
+			Mime::ApplicationVndNokiaRadioPresets => write!(f, "application/vnd.nokia.radio-presets"),
+			Mime::ApplicationVndNovadigmEdm => write!(f, "application/vnd.novadigm.EDM"),
+			Mime::ApplicationVndNovadigmEdx => write!(f, "application/vnd.novadigm.EDX"),
+			Mime::ApplicationVndNovadigmExt => write!(f, "application/vnd.novadigm.EXT"),
+			Mime::ApplicationVndNttLocalContentShare => write!(f, "application/vnd.ntt-local.content-share"),
+			Mime::ApplicationVndNttLocalFileTransfer => write!(f, "application/vnd.ntt-local.file-transfer"),
+			Mime::ApplicationVndNttLocalOgwRemoteAccess => write!(f, "application/vnd.ntt-local.ogw_remote-access"),
+			Mime::ApplicationVndNttLocalSipTaRemote => write!(f, "application/vnd.ntt-local.sip-ta_remote"),
+			Mime::ApplicationVndNttLocalSipTaTcpStream => write!(f, "application/vnd.ntt-local.sip-ta_tcp_stream"),
+			Mime::ApplicationVndOasisOpendocumentBase => write!(f, "application/vnd.oasis.opendocument.base"),
+			Mime::ApplicationVndOasisOpendocumentChart => write!(f, "application/vnd.oasis.opendocument.chart"),
+			Mime::ApplicationVndOasisOpendocumentChartTemplate => write!(f, "application/vnd.oasis.opendocument.chart-template"),
+			Mime::ApplicationVndOasisOpendocumentFormula => write!(f, "application/vnd.oasis.opendocument.formula"),
+			Mime::ApplicationVndOasisOpendocumentFormulaTemplate => write!(f, "application/vnd.oasis.opendocument.formula-template"),
+			Mime::ApplicationVndOasisOpendocumentGraphics => write!(f, "application/vnd.oasis.opendocument.graphics"),
+			Mime::ApplicationVndOasisOpendocumentGraphicsTemplate => write!(f, "application/vnd.oasis.opendocument.graphics-template"),
+			Mime::ApplicationVndOasisOpendocumentImage => write!(f, "application/vnd.oasis.opendocument.image"),
+			Mime::ApplicationVndOasisOpendocumentImageTemplate => write!(f, "application/vnd.oasis.opendocument.image-template"),
+			Mime::ApplicationVndOasisOpendocumentPresentation => write!(f, "application/vnd.oasis.opendocument.presentation"),
+			Mime::ApplicationVndOasisOpendocumentPresentationTemplate => write!(f, "application/vnd.oasis.opendocument.presentation-template"),
+			Mime::ApplicationVndOasisOpendocumentSpreadsheet => write!(f, "application/vnd.oasis.opendocument.spreadsheet"),
+			Mime::ApplicationVndOasisOpendocumentSpreadsheetTemplate => write!(f, "application/vnd.oasis.opendocument.spreadsheet-template"),
+			Mime::ApplicationVndOasisOpendocumentText => write!(f, "application/vnd.oasis.opendocument.text"),
+			Mime::ApplicationVndOasisOpendocumentTextMaster => write!(f, "application/vnd.oasis.opendocument.text-master"),
+			Mime::ApplicationVndOasisOpendocumentTextMasterTemplate => write!(f, "application/vnd.oasis.opendocument.text-master-template"),
+			Mime::ApplicationVndOasisOpendocumentTextTemplate => write!(f, "application/vnd.oasis.opendocument.text-template"),
+			Mime::ApplicationVndOasisOpendocumentTextWeb => write!(f, "application/vnd.oasis.opendocument.text-web"),
+			Mime::ApplicationVndObn => write!(f, "application/vnd.obn"),
+			Mime::ApplicationVndOcfCbor => write!(f, "application/vnd.ocf+cbor"),
+			Mime::ApplicationVndOciImageManifestV1Json => write!(f, "application/vnd.oci.image.manifest.v1+json"),
+			Mime::ApplicationVndOftnL10nJson => write!(f, "application/vnd.oftn.l10n+json"),
+			Mime::ApplicationVndOipfContentaccessdownloadXml => write!(f, "application/vnd.oipf.contentaccessdownload+xml"),
+			Mime::ApplicationVndOipfContentaccessstreamingXml => write!(f, "application/vnd.oipf.contentaccessstreaming+xml"),
+			Mime::ApplicationVndOipfCspgHexbinary => write!(f, "application/vnd.oipf.cspg-hexbinary"),
+			Mime::ApplicationVndOipfDaeSvgXml => write!(f, "application/vnd.oipf.dae.svg+xml"),
+			Mime::ApplicationVndOipfDaeXhtmlXml => write!(f, "application/vnd.oipf.dae.xhtml+xml"),
+			Mime::ApplicationVndOipfMippvcontrolmessageXml => write!(f, "application/vnd.oipf.mippvcontrolmessage+xml"),
+			Mime::ApplicationVndOipfPaeGem => write!(f, "application/vnd.oipf.pae.gem"),
+			Mime::ApplicationVndOipfSpdiscoveryXml => write!(f, "application/vnd.oipf.spdiscovery+xml"),
+			Mime::ApplicationVndOipfSpdlistXml => write!(f, "application/vnd.oipf.spdlist+xml"),
+			Mime::ApplicationVndOipfUeprofileXml => write!(f, "application/vnd.oipf.ueprofile+xml"),
+			Mime::ApplicationVndOipfUserprofileXml => write!(f, "application/vnd.oipf.userprofile+xml"),
+			Mime::ApplicationVndOlpcSugar => write!(f, "application/vnd.olpc-sugar"),
+			Mime::ApplicationVndOmaBcastAssociatedProcedureParameterXml => write!(f, "application/vnd.oma.bcast.associated-procedure-parameter+xml"),
+			Mime::ApplicationVndOmaBcastDrmTriggerXml => write!(f, "application/vnd.oma.bcast.drm-trigger+xml"),
+			Mime::ApplicationVndOmaBcastImdXml => write!(f, "application/vnd.oma.bcast.imd+xml"),
+			Mime::ApplicationVndOmaBcastLtkm => write!(f, "application/vnd.oma.bcast.ltkm"),
+			Mime::ApplicationVndOmaBcastNotificationXml => write!(f, "application/vnd.oma.bcast.notification+xml"),
+			Mime::ApplicationVndOmaBcastProvisioningtrigger => write!(f, "application/vnd.oma.bcast.provisioningtrigger"),
+			Mime::ApplicationVndOmaBcastSgboot => write!(f, "application/vnd.oma.bcast.sgboot"),
+			Mime::ApplicationVndOmaBcastSgddXml => write!(f, "application/vnd.oma.bcast.sgdd+xml"),
+			Mime::ApplicationVndOmaBcastSgdu => write!(f, "application/vnd.oma.bcast.sgdu"),
+			Mime::ApplicationVndOmaBcastSimpleSymbolContainer => write!(f, "application/vnd.oma.bcast.simple-symbol-container"),
+			Mime::ApplicationVndOmaBcastSmartcardTriggerXml => write!(f, "application/vnd.oma.bcast.smartcard-trigger+xml"),
+			Mime::ApplicationVndOmaBcastSprovXml => write!(f, "application/vnd.oma.bcast.sprov+xml"),
+			Mime::ApplicationVndOmaBcastStkm => write!(f, "application/vnd.oma.bcast.stkm"),
+			Mime::ApplicationVndOmaCabAddressBookXml => write!(f, "application/vnd.oma.cab-address-book+xml"),
+			Mime::ApplicationVndOmaCabFeatureHandlerXml => write!(f, "application/vnd.oma.cab-feature-handler+xml"),
+			Mime::ApplicationVndOmaCabPccXml => write!(f, "application/vnd.oma.cab-pcc+xml"),
+			Mime::ApplicationVndOmaCabSubsInviteXml => write!(f, "application/vnd.oma.cab-subs-invite+xml"),
+			Mime::ApplicationVndOmaCabUserPrefsXml => write!(f, "application/vnd.oma.cab-user-prefs+xml"),
+			Mime::ApplicationVndOmaDcd => write!(f, "application/vnd.oma.dcd"),
+			Mime::ApplicationVndOmaDcdc => write!(f, "application/vnd.oma.dcdc"),
+			Mime::ApplicationVndOmaDd2Xml => write!(f, "application/vnd.oma.dd2+xml"),
+			Mime::ApplicationVndOmaDrmRisdXml => write!(f, "application/vnd.oma.drm.risd+xml"),
+			Mime::ApplicationVndOmaGroupUsageListXml => write!(f, "application/vnd.oma.group-usage-list+xml"),
+			Mime::ApplicationVndOmaLwm2mCbor => write!(f, "application/vnd.oma.lwm2m+cbor"),
+			Mime::ApplicationVndOmaLwm2mJson => write!(f, "application/vnd.oma.lwm2m+json"),
+			Mime::ApplicationVndOmaLwm2mTlv => write!(f, "application/vnd.oma.lwm2m+tlv"),
+			Mime::ApplicationVndOmaPalXml => write!(f, "application/vnd.oma.pal+xml"),
+			Mime::ApplicationVndOmaPocDetailedProgressReportXml => write!(f, "application/vnd.oma.poc.detailed-progress-report+xml"),
+			Mime::ApplicationVndOmaPocFinalReportXml => write!(f, "application/vnd.oma.poc.final-report+xml"),
+			Mime::ApplicationVndOmaPocGroupsXml => write!(f, "application/vnd.oma.poc.groups+xml"),
+			Mime::ApplicationVndOmaPocInvocationDescriptorXml => write!(f, "application/vnd.oma.poc.invocation-descriptor+xml"),
+			Mime::ApplicationVndOmaPocOptimizedProgressReportXml => write!(f, "application/vnd.oma.poc.optimized-progress-report+xml"),
+			Mime::ApplicationVndOmaPush => write!(f, "application/vnd.oma.push"),
+			Mime::ApplicationVndOmaScidmMessagesXml => write!(f, "application/vnd.oma.scidm.messages+xml"),
+			Mime::ApplicationVndOmaXcapDirectoryXml => write!(f, "application/vnd.oma.xcap-directory+xml"),
+			Mime::ApplicationVndOmadsEmailXml => write!(f, "application/vnd.omads-email+xml"),
+			Mime::ApplicationVndOmadsFileXml => write!(f, "application/vnd.omads-file+xml"),
+			Mime::ApplicationVndOmadsFolderXml => write!(f, "application/vnd.omads-folder+xml"),
+			Mime::ApplicationVndOmalocSuplInit => write!(f, "application/vnd.omaloc-supl-init"),
+			Mime::ApplicationVndOmaScwsConfig => write!(f, "application/vnd.oma-scws-config"),
+			Mime::ApplicationVndOmaScwsHttpRequest => write!(f, "application/vnd.oma-scws-http-request"),
+			Mime::ApplicationVndOmaScwsHttpResponse => write!(f, "application/vnd.oma-scws-http-response"),
+			Mime::ApplicationVndOnepager => write!(f, "application/vnd.onepager"),
+			Mime::ApplicationVndOnepagertamp => write!(f, "application/vnd.onepagertamp"),
+			Mime::ApplicationVndOnepagertamx => write!(f, "application/vnd.onepagertamx"),
+			Mime::ApplicationVndOnepagertat => write!(f, "application/vnd.onepagertat"),
+			Mime::ApplicationVndOnepagertatp => write!(f, "application/vnd.onepagertatp"),
+			Mime::ApplicationVndOnepagertatx => write!(f, "application/vnd.onepagertatx"),
+			Mime::ApplicationVndOnvifMetadata => write!(f, "application/vnd.onvif.metadata"),
+			Mime::ApplicationVndOpenbloxGameBinary => write!(f, "application/vnd.openblox.game-binary"),
+			Mime::ApplicationVndOpenbloxGameXml => write!(f, "application/vnd.openblox.game+xml"),
+			Mime::ApplicationVndOpeneyeOeb => write!(f, "application/vnd.openeye.oeb"),
+			Mime::ApplicationVndOpenstreetmapDataXml => write!(f, "application/vnd.openstreetmap.data+xml"),
+			Mime::ApplicationVndOpentimestampsOts => write!(f, "application/vnd.opentimestamps.ots"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentCustomPropertiesXml => write!(f, "application/vnd.openxmlformats-officedocument.custom-properties+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentCustomxmlpropertiesXml => write!(f, "application/vnd.openxmlformats-officedocument.customXmlProperties+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentDrawingXml => write!(f, "application/vnd.openxmlformats-officedocument.drawing+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentDrawingmlChartXml => write!(f, "application/vnd.openxmlformats-officedocument.drawingml.chart+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentDrawingmlChartshapesXml => write!(f, "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentDrawingmlDiagramcolorsXml => write!(f, "application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentDrawingmlDiagramdataXml => write!(f, "application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentDrawingmlDiagramlayoutXml => write!(f, "application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentDrawingmlDiagramstyleXml => write!(f, "application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentExtendedPropertiesXml => write!(f, "application/vnd.openxmlformats-officedocument.extended-properties+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlCommentauthorsXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlCommentsXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.comments+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlHandoutmasterXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlNotesmasterXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlNotesslideXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlPresentation => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.presentation"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlPresentationMainXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlPrespropsXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.presProps+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlide => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.slide"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlideXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.slide+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlidelayoutXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlidemasterXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlideshow => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.slideshow"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlideshowMainXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlSlideupdateinfoXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlTablestylesXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlTagsXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.tags+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlTemplate => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.template"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlTemplateMainXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentPresentationmlViewpropsXml => write!(f, "application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlCalcchainXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlChartsheetXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlCommentsXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlConnectionsXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlDialogsheetXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlExternallinkXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlPivotcachedefinitionXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlPivotcacherecordsXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlPivottableXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlQuerytableXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlRevisionheadersXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlRevisionlogXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSharedstringsXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheet => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheetMainXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheetmetadataXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlStylesXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlTableXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlTablesinglecellsXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlTemplate => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.template"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlTemplateMainXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlUsernamesXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlVolatiledependenciesXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlWorksheetXml => write!(f, "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentThemeXml => write!(f, "application/vnd.openxmlformats-officedocument.theme+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentThemeoverrideXml => write!(f, "application/vnd.openxmlformats-officedocument.themeOverride+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentVmldrawing => write!(f, "application/vnd.openxmlformats-officedocument.vmlDrawing"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlCommentsXml => write!(f, "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlDocument => write!(f, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlDocumentGlossaryXml => write!(f, "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlDocumentMainXml => write!(f, "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlEndnotesXml => write!(f, "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlFonttableXml => write!(f, "application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlFooterXml => write!(f, "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlFootnotesXml => write!(f, "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlNumberingXml => write!(f, "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlSettingsXml => write!(f, "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlStylesXml => write!(f, "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlTemplate => write!(f, "application/vnd.openxmlformats-officedocument.wordprocessingml.template"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlTemplateMainXml => write!(f, "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml"),
+			Mime::ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlWebsettingsXml => write!(f, "application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml"),
+			Mime::ApplicationVndOpenxmlformatsPackageCorePropertiesXml => write!(f, "application/vnd.openxmlformats-package.core-properties+xml"),
+			Mime::ApplicationVndOpenxmlformatsPackageDigitalSignatureXmlsignatureXml => write!(f, "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml"),
+			Mime::ApplicationVndOpenxmlformatsPackageRelationshipsXml => write!(f, "application/vnd.openxmlformats-package.relationships+xml"),
+			Mime::ApplicationVndOracleResourceJson => write!(f, "application/vnd.oracle.resource+json"),
+			Mime::ApplicationVndOrangeIndata => write!(f, "application/vnd.orange.indata"),
+			Mime::ApplicationVndOsaNetdeploy => write!(f, "application/vnd.osa.netdeploy"),
+			Mime::ApplicationVndOsgeoMapguidePackage => write!(f, "application/vnd.osgeo.mapguide.package"),
+			Mime::ApplicationVndOsgiBundle => write!(f, "application/vnd.osgi.bundle"),
+			Mime::ApplicationVndOsgiDp => write!(f, "application/vnd.osgi.dp"),
+			Mime::ApplicationVndOsgiSubsystem => write!(f, "application/vnd.osgi.subsystem"),
+			Mime::ApplicationVndOtpsCtKipXml => write!(f, "application/vnd.otps.ct-kip+xml"),
+			Mime::ApplicationVndOxliCountgraph => write!(f, "application/vnd.oxli.countgraph"),
+			Mime::ApplicationVndPagerdutyJson => write!(f, "application/vnd.pagerduty+json"),
+			Mime::ApplicationVndPalm => write!(f, "application/vnd.palm"),
+			Mime::ApplicationVndPanoply => write!(f, "application/vnd.panoply"),
+			Mime::ApplicationVndPaosXml => write!(f, "application/vnd.paos.xml"),
+			Mime::ApplicationVndPatentdive => write!(f, "application/vnd.patentdive"),
+			Mime::ApplicationVndPatientecommsdoc => write!(f, "application/vnd.patientecommsdoc"),
+			Mime::ApplicationVndPawaafile => write!(f, "application/vnd.pawaafile"),
+			Mime::ApplicationVndPcos => write!(f, "application/vnd.pcos"),
+			Mime::ApplicationVndPgFormat => write!(f, "application/vnd.pg.format"),
+			Mime::ApplicationVndPgOsasli => write!(f, "application/vnd.pg.osasli"),
+			Mime::ApplicationVndPiaccessApplicationLicence => write!(f, "application/vnd.piaccess.application-licence"),
+			Mime::ApplicationVndPicsel => write!(f, "application/vnd.picsel"),
+			Mime::ApplicationVndPmiWidget => write!(f, "application/vnd.pmi.widget"),
+			Mime::ApplicationVndPocGroupAdvertisementXml => write!(f, "application/vnd.poc.group-advertisement+xml"),
+			Mime::ApplicationVndPocketlearn => write!(f, "application/vnd.pocketlearn"),
+			Mime::ApplicationVndPowerbuilder6 => write!(f, "application/vnd.powerbuilder6"),
+			Mime::ApplicationVndPowerbuilder6S => write!(f, "application/vnd.powerbuilder6-s"),
+			Mime::ApplicationVndPowerbuilder7 => write!(f, "application/vnd.powerbuilder7"),
+			Mime::ApplicationVndPowerbuilder75 => write!(f, "application/vnd.powerbuilder75"),
+			Mime::ApplicationVndPowerbuilder75S => write!(f, "application/vnd.powerbuilder75-s"),
+			Mime::ApplicationVndPowerbuilder7S => write!(f, "application/vnd.powerbuilder7-s"),
+			Mime::ApplicationVndPreminet => write!(f, "application/vnd.preminet"),
+			Mime::ApplicationVndPreviewsystemsBox => write!(f, "application/vnd.previewsystems.box"),
+			Mime::ApplicationVndProteusMagazine => write!(f, "application/vnd.proteus.magazine"),
+			Mime::ApplicationVndPsfs => write!(f, "application/vnd.psfs"),
+			Mime::ApplicationVndPtMundusmundi => write!(f, "application/vnd.pt.mundusmundi"),
+			Mime::ApplicationVndPublishareDeltaTree => write!(f, "application/vnd.publishare-delta-tree"),
+			Mime::ApplicationVndPviPtid1 => write!(f, "application/vnd.pvi.ptid1"),
+			Mime::ApplicationVndPwgMultiplexed => write!(f, "application/vnd.pwg-multiplexed"),
+			Mime::ApplicationVndPwgXhtmlPrintXml => write!(f, "application/vnd.pwg-xhtml-print+xml"),
+			Mime::ApplicationVndQualcommBrewAppRes => write!(f, "application/vnd.qualcomm.brew-app-res"),
+			Mime::ApplicationVndQuarantainenet => write!(f, "application/vnd.quarantainenet"),
+			Mime::ApplicationVndQuarkQuarkxpress => write!(f, "application/vnd.Quark.QuarkXPress"),
+			Mime::ApplicationVndQuobjectQuoxdocument => write!(f, "application/vnd.quobject-quoxdocument"),
+			Mime::ApplicationVndRadisysMomlXml => write!(f, "application/vnd.radisys.moml+xml"),
+			Mime::ApplicationVndRadisysMsmlAuditConfXml => write!(f, "application/vnd.radisys.msml-audit-conf+xml"),
+			Mime::ApplicationVndRadisysMsmlAuditConnXml => write!(f, "application/vnd.radisys.msml-audit-conn+xml"),
+			Mime::ApplicationVndRadisysMsmlAuditDialogXml => write!(f, "application/vnd.radisys.msml-audit-dialog+xml"),
+			Mime::ApplicationVndRadisysMsmlAuditStreamXml => write!(f, "application/vnd.radisys.msml-audit-stream+xml"),
+			Mime::ApplicationVndRadisysMsmlAuditXml => write!(f, "application/vnd.radisys.msml-audit+xml"),
+			Mime::ApplicationVndRadisysMsmlConfXml => write!(f, "application/vnd.radisys.msml-conf+xml"),
+			Mime::ApplicationVndRadisysMsmlDialogBaseXml => write!(f, "application/vnd.radisys.msml-dialog-base+xml"),
+			Mime::ApplicationVndRadisysMsmlDialogFaxDetectXml => write!(f, "application/vnd.radisys.msml-dialog-fax-detect+xml"),
+			Mime::ApplicationVndRadisysMsmlDialogFaxSendrecvXml => write!(f, "application/vnd.radisys.msml-dialog-fax-sendrecv+xml"),
+			Mime::ApplicationVndRadisysMsmlDialogGroupXml => write!(f, "application/vnd.radisys.msml-dialog-group+xml"),
+			Mime::ApplicationVndRadisysMsmlDialogSpeechXml => write!(f, "application/vnd.radisys.msml-dialog-speech+xml"),
+			Mime::ApplicationVndRadisysMsmlDialogTransformXml => write!(f, "application/vnd.radisys.msml-dialog-transform+xml"),
+			Mime::ApplicationVndRadisysMsmlDialogXml => write!(f, "application/vnd.radisys.msml-dialog+xml"),
+			Mime::ApplicationVndRadisysMsmlXml => write!(f, "application/vnd.radisys.msml+xml"),
+			Mime::ApplicationVndRainstorData => write!(f, "application/vnd.rainstor.data"),
+			Mime::ApplicationVndRapid => write!(f, "application/vnd.rapid"),
+			Mime::ApplicationVndRar => write!(f, "application/vnd.rar"),
+			Mime::ApplicationVndRealvncBed => write!(f, "application/vnd.realvnc.bed"),
+			Mime::ApplicationVndRecordareMusicxml => write!(f, "application/vnd.recordare.musicxml"),
+			Mime::ApplicationVndRecordareMusicxmlXml => write!(f, "application/vnd.recordare.musicxml+xml"),
+			Mime::ApplicationVndRenlearnRlprint => write!(f, "application/vnd.RenLearn.rlprint"),
+			Mime::ApplicationVndResilientLogic => write!(f, "application/vnd.resilient.logic"),
+			Mime::ApplicationVndRestfulJson => write!(f, "application/vnd.restful+json"),
+			Mime::ApplicationVndRigCryptonote => write!(f, "application/vnd.rig.cryptonote"),
+			Mime::ApplicationVndRoute66Link66Xml => write!(f, "application/vnd.route66.link66+xml"),
+			Mime::ApplicationVndRs274x => write!(f, "application/vnd.rs-274x"),
+			Mime::ApplicationVndRuckusDownload => write!(f, "application/vnd.ruckus.download"),
+			Mime::ApplicationVndS3sms => write!(f, "application/vnd.s3sms"),
+			Mime::ApplicationVndSailingtrackerTrack => write!(f, "application/vnd.sailingtracker.track"),
+			Mime::ApplicationVndSar => write!(f, "application/vnd.sar"),
+			Mime::ApplicationVndSbmCid => write!(f, "application/vnd.sbm.cid"),
+			Mime::ApplicationVndSbmMid2 => write!(f, "application/vnd.sbm.mid2"),
+			Mime::ApplicationVndScribus => write!(f, "application/vnd.scribus"),
+			Mime::ApplicationVndSealed3df => write!(f, "application/vnd.sealed.3df"),
+			Mime::ApplicationVndSealedCsf => write!(f, "application/vnd.sealed.csf"),
+			Mime::ApplicationVndSealedDoc => write!(f, "application/vnd.sealed.doc"),
+			Mime::ApplicationVndSealedEml => write!(f, "application/vnd.sealed.eml"),
+			Mime::ApplicationVndSealedMht => write!(f, "application/vnd.sealed.mht"),
+			Mime::ApplicationVndSealedNet => write!(f, "application/vnd.sealed.net"),
+			Mime::ApplicationVndSealedPpt => write!(f, "application/vnd.sealed.ppt"),
+			Mime::ApplicationVndSealedTiff => write!(f, "application/vnd.sealed.tiff"),
+			Mime::ApplicationVndSealedXls => write!(f, "application/vnd.sealed.xls"),
+			Mime::ApplicationVndSealedmediaSoftsealHtml => write!(f, "application/vnd.sealedmedia.softseal.html"),
+			Mime::ApplicationVndSealedmediaSoftsealPdf => write!(f, "application/vnd.sealedmedia.softseal.pdf"),
+			Mime::ApplicationVndSeemail => write!(f, "application/vnd.seemail"),
+			Mime::ApplicationVndSeisJson => write!(f, "application/vnd.seis+json"),
+			Mime::ApplicationVndSema => write!(f, "application/vnd.sema"),
+			Mime::ApplicationVndSemd => write!(f, "application/vnd.semd"),
+			Mime::ApplicationVndSemf => write!(f, "application/vnd.semf"),
+			Mime::ApplicationVndShadeSaveFile => write!(f, "application/vnd.shade-save-file"),
+			Mime::ApplicationVndShanaInformedFormdata => write!(f, "application/vnd.shana.informed.formdata"),
+			Mime::ApplicationVndShanaInformedFormtemplate => write!(f, "application/vnd.shana.informed.formtemplate"),
+			Mime::ApplicationVndShanaInformedInterchange => write!(f, "application/vnd.shana.informed.interchange"),
+			Mime::ApplicationVndShanaInformedPackage => write!(f, "application/vnd.shana.informed.package"),
+			Mime::ApplicationVndShootproofJson => write!(f, "application/vnd.shootproof+json"),
+			Mime::ApplicationVndShopkickJson => write!(f, "application/vnd.shopkick+json"),
+			Mime::ApplicationVndShp => write!(f, "application/vnd.shp"),
+			Mime::ApplicationVndShx => write!(f, "application/vnd.shx"),
+			Mime::ApplicationVndSigrokSession => write!(f, "application/vnd.sigrok.session"),
+			Mime::ApplicationVndSimtechMindmapper => write!(f, "application/vnd.SimTech-MindMapper"),
+			Mime::ApplicationVndSirenJson => write!(f, "application/vnd.siren+json"),
+			Mime::ApplicationVndSmaf => write!(f, "application/vnd.smaf"),
+			Mime::ApplicationVndSmartNotebook => write!(f, "application/vnd.smart.notebook"),
+			Mime::ApplicationVndSmartTeacher => write!(f, "application/vnd.smart.teacher"),
+			Mime::ApplicationVndSmintioPortalsArchive => write!(f, "application/vnd.smintio.portals.archive"),
+			Mime::ApplicationVndSnesdevPageTable => write!(f, "application/vnd.snesdev-page-table"),
+			Mime::ApplicationVndSoftware602FillerFormXml => write!(f, "application/vnd.software602.filler.form+xml"),
+			Mime::ApplicationVndSoftware602FillerFormXmlZip => write!(f, "application/vnd.software602.filler.form-xml-zip"),
+			Mime::ApplicationVndSolentSdkmXml => write!(f, "application/vnd.solent.sdkm+xml"),
+			Mime::ApplicationVndSpotfireDxp => write!(f, "application/vnd.spotfire.dxp"),
+			Mime::ApplicationVndSpotfireSfs => write!(f, "application/vnd.spotfire.sfs"),
+			Mime::ApplicationVndSqlite3 => write!(f, "application/vnd.sqlite3"),
+			Mime::ApplicationVndSssCod => write!(f, "application/vnd.sss-cod"),
+			Mime::ApplicationVndSssDtf => write!(f, "application/vnd.sss-dtf"),
+			Mime::ApplicationVndSssNtf => write!(f, "application/vnd.sss-ntf"),
+			Mime::ApplicationVndStepmaniaPackage => write!(f, "application/vnd.stepmania.package"),
+			Mime::ApplicationVndStepmaniaStepchart => write!(f, "application/vnd.stepmania.stepchart"),
+			Mime::ApplicationVndStreetStream => write!(f, "application/vnd.street-stream"),
+			Mime::ApplicationVndSunWadlXml => write!(f, "application/vnd.sun.wadl+xml"),
+			Mime::ApplicationVndSusCalendar => write!(f, "application/vnd.sus-calendar"),
+			Mime::ApplicationVndSvd => write!(f, "application/vnd.svd"),
+			Mime::ApplicationVndSwiftviewIcs => write!(f, "application/vnd.swiftview-ics"),
+			Mime::ApplicationVndSybylMol2 => write!(f, "application/vnd.sybyl.mol2"),
+			Mime::ApplicationVndSycleXml => write!(f, "application/vnd.sycle+xml"),
+			Mime::ApplicationVndSyftJson => write!(f, "application/vnd.syft+json"),
+			Mime::ApplicationVndSyncmlDmNotification => write!(f, "application/vnd.syncml.dm.notification"),
+			Mime::ApplicationVndSyncmlDmddfXml => write!(f, "application/vnd.syncml.dmddf+xml"),
+			Mime::ApplicationVndSyncmlDmtndsWbxml => write!(f, "application/vnd.syncml.dmtnds+wbxml"),
+			Mime::ApplicationVndSyncmlDmtndsXml => write!(f, "application/vnd.syncml.dmtnds+xml"),
+			Mime::ApplicationVndSyncmlDmddfWbxml => write!(f, "application/vnd.syncml.dmddf+wbxml"),
+			Mime::ApplicationVndSyncmlDmWbxml => write!(f, "application/vnd.syncml.dm+wbxml"),
+			Mime::ApplicationVndSyncmlDmXml => write!(f, "application/vnd.syncml.dm+xml"),
+			Mime::ApplicationVndSyncmlDsNotification => write!(f, "application/vnd.syncml.ds.notification"),
+			Mime::ApplicationVndSyncmlXml => write!(f, "application/vnd.syncml+xml"),
+			Mime::ApplicationVndTableschemaJson => write!(f, "application/vnd.tableschema+json"),
+			Mime::ApplicationVndTaoIntentModuleArchive => write!(f, "application/vnd.tao.intent-module-archive"),
+			Mime::ApplicationVndTcpdumpPcap => write!(f, "application/vnd.tcpdump.pcap"),
+			Mime::ApplicationVndThinkCellPpttcJson => write!(f, "application/vnd.think-cell.ppttc+json"),
+			Mime::ApplicationVndTml => write!(f, "application/vnd.tml"),
+			Mime::ApplicationVndTmdMediaflexApiXml => write!(f, "application/vnd.tmd.mediaflex.api+xml"),
+			Mime::ApplicationVndTmobileLivetv => write!(f, "application/vnd.tmobile-livetv"),
+			Mime::ApplicationVndTriOnesource => write!(f, "application/vnd.tri.onesource"),
+			Mime::ApplicationVndTridTpt => write!(f, "application/vnd.trid.tpt"),
+			Mime::ApplicationVndTriscapeMxs => write!(f, "application/vnd.triscape.mxs"),
+			Mime::ApplicationVndTrueapp => write!(f, "application/vnd.trueapp"),
+			Mime::ApplicationVndTruedoc => write!(f, "application/vnd.truedoc"),
+			Mime::ApplicationVndUbisoftWebplayer => write!(f, "application/vnd.ubisoft.webplayer"),
+			Mime::ApplicationVndUfdl => write!(f, "application/vnd.ufdl"),
+			Mime::ApplicationVndUiqTheme => write!(f, "application/vnd.uiq.theme"),
+			Mime::ApplicationVndUmajin => write!(f, "application/vnd.umajin"),
+			Mime::ApplicationVndUnity => write!(f, "application/vnd.unity"),
+			Mime::ApplicationVndUomlXml => write!(f, "application/vnd.uoml+xml"),
+			Mime::ApplicationVndUplanetAlert => write!(f, "application/vnd.uplanet.alert"),
+			Mime::ApplicationVndUplanetAlertWbxml => write!(f, "application/vnd.uplanet.alert-wbxml"),
+			Mime::ApplicationVndUplanetBearerChoice => write!(f, "application/vnd.uplanet.bearer-choice"),
+			Mime::ApplicationVndUplanetBearerChoiceWbxml => write!(f, "application/vnd.uplanet.bearer-choice-wbxml"),
+			Mime::ApplicationVndUplanetCacheop => write!(f, "application/vnd.uplanet.cacheop"),
+			Mime::ApplicationVndUplanetCacheopWbxml => write!(f, "application/vnd.uplanet.cacheop-wbxml"),
+			Mime::ApplicationVndUplanetChannel => write!(f, "application/vnd.uplanet.channel"),
+			Mime::ApplicationVndUplanetChannelWbxml => write!(f, "application/vnd.uplanet.channel-wbxml"),
+			Mime::ApplicationVndUplanetList => write!(f, "application/vnd.uplanet.list"),
+			Mime::ApplicationVndUplanetListcmd => write!(f, "application/vnd.uplanet.listcmd"),
+			Mime::ApplicationVndUplanetListcmdWbxml => write!(f, "application/vnd.uplanet.listcmd-wbxml"),
+			Mime::ApplicationVndUplanetListWbxml => write!(f, "application/vnd.uplanet.list-wbxml"),
+			Mime::ApplicationVndUriMap => write!(f, "application/vnd.uri-map"),
+			Mime::ApplicationVndUplanetSignal => write!(f, "application/vnd.uplanet.signal"),
+			Mime::ApplicationVndValveSourceMaterial => write!(f, "application/vnd.valve.source.material"),
+			Mime::ApplicationVndVcx => write!(f, "application/vnd.vcx"),
+			Mime::ApplicationVndVdStudy => write!(f, "application/vnd.vd-study"),
+			Mime::ApplicationVndVectorworks => write!(f, "application/vnd.vectorworks"),
+			Mime::ApplicationVndVelJson => write!(f, "application/vnd.vel+json"),
+			Mime::ApplicationVndVerimatrixVcas => write!(f, "application/vnd.verimatrix.vcas"),
+			Mime::ApplicationVndVeritoneAionJson => write!(f, "application/vnd.veritone.aion+json"),
+			Mime::ApplicationVndVeryantThin => write!(f, "application/vnd.veryant.thin"),
+			Mime::ApplicationVndVesEncrypted => write!(f, "application/vnd.ves.encrypted"),
+			Mime::ApplicationVndVidsoftVidconference => write!(f, "application/vnd.vidsoft.vidconference"),
+			Mime::ApplicationVndVisio => write!(f, "application/vnd.visio"),
+			Mime::ApplicationVndVisionary => write!(f, "application/vnd.visionary"),
+			Mime::ApplicationVndVividenceScriptfile => write!(f, "application/vnd.vividence.scriptfile"),
+			Mime::ApplicationVndVsf => write!(f, "application/vnd.vsf"),
+			Mime::ApplicationVndWapSic => write!(f, "application/vnd.wap.sic"),
+			Mime::ApplicationVndWapSlc => write!(f, "application/vnd.wap.slc"),
+			Mime::ApplicationVndWapWbxml => write!(f, "application/vnd.wap.wbxml"),
+			Mime::ApplicationVndWapWmlc => write!(f, "application/vnd.wap.wmlc"),
+			Mime::ApplicationVndWapWmlscriptc => write!(f, "application/vnd.wap.wmlscriptc"),
+			Mime::ApplicationVndWasmflowWafl => write!(f, "application/vnd.wasmflow.wafl"),
+			Mime::ApplicationVndWebturbo => write!(f, "application/vnd.webturbo"),
+			Mime::ApplicationVndWfaDpp => write!(f, "application/vnd.wfa.dpp"),
+			Mime::ApplicationVndWfaP2p => write!(f, "application/vnd.wfa.p2p"),
+			Mime::ApplicationVndWfaWsc => write!(f, "application/vnd.wfa.wsc"),
+			Mime::ApplicationVndWindowsDevicepairing => write!(f, "application/vnd.windows.devicepairing"),
+			Mime::ApplicationVndWmc => write!(f, "application/vnd.wmc"),
+			Mime::ApplicationVndWmfBootstrap => write!(f, "application/vnd.wmf.bootstrap"),
+			Mime::ApplicationVndWolframMathematica => write!(f, "application/vnd.wolfram.mathematica"),
+			Mime::ApplicationVndWolframMathematicaPackage => write!(f, "application/vnd.wolfram.mathematica.package"),
+			Mime::ApplicationVndWolframPlayer => write!(f, "application/vnd.wolfram.player"),
+			Mime::ApplicationVndWordlift => write!(f, "application/vnd.wordlift"),
+			Mime::ApplicationVndWordperfect => write!(f, "application/vnd.wordperfect"),
+			Mime::ApplicationVndWqd => write!(f, "application/vnd.wqd"),
+			Mime::ApplicationVndWrqHp3000Labelled => write!(f, "application/vnd.wrq-hp3000-labelled"),
+			Mime::ApplicationVndWtStf => write!(f, "application/vnd.wt.stf"),
+			Mime::ApplicationVndWvCspXml => write!(f, "application/vnd.wv.csp+xml"),
+			Mime::ApplicationVndWvCspWbxml => write!(f, "application/vnd.wv.csp+wbxml"),
+			Mime::ApplicationVndWvSspXml => write!(f, "application/vnd.wv.ssp+xml"),
+			Mime::ApplicationVndXacmlJson => write!(f, "application/vnd.xacml+json"),
+			Mime::ApplicationVndXara => write!(f, "application/vnd.xara"),
+			Mime::ApplicationVndXfdl => write!(f, "application/vnd.xfdl"),
+			Mime::ApplicationVndXfdlWebform => write!(f, "application/vnd.xfdl.webform"),
+			Mime::ApplicationVndXmiXml => write!(f, "application/vnd.xmi+xml"),
+			Mime::ApplicationVndXmpieCpkg => write!(f, "application/vnd.xmpie.cpkg"),
+			Mime::ApplicationVndXmpieDpkg => write!(f, "application/vnd.xmpie.dpkg"),
+			Mime::ApplicationVndXmpiePlan => write!(f, "application/vnd.xmpie.plan"),
+			Mime::ApplicationVndXmpiePpkg => write!(f, "application/vnd.xmpie.ppkg"),
+			Mime::ApplicationVndXmpieXlim => write!(f, "application/vnd.xmpie.xlim"),
+			Mime::ApplicationVndYamahaHvDic => write!(f, "application/vnd.yamaha.hv-dic"),
+			Mime::ApplicationVndYamahaHvScript => write!(f, "application/vnd.yamaha.hv-script"),
+			Mime::ApplicationVndYamahaHvVoice => write!(f, "application/vnd.yamaha.hv-voice"),
+			Mime::ApplicationVndYamahaOpenscoreformatOsfpvgXml => write!(f, "application/vnd.yamaha.openscoreformat.osfpvg+xml"),
+			Mime::ApplicationVndYamahaOpenscoreformat => write!(f, "application/vnd.yamaha.openscoreformat"),
+			Mime::ApplicationVndYamahaRemoteSetup => write!(f, "application/vnd.yamaha.remote-setup"),
+			Mime::ApplicationVndYamahaSmafAudio => write!(f, "application/vnd.yamaha.smaf-audio"),
+			Mime::ApplicationVndYamahaSmafPhrase => write!(f, "application/vnd.yamaha.smaf-phrase"),
+			Mime::ApplicationVndYamahaThroughNgn => write!(f, "application/vnd.yamaha.through-ngn"),
+			Mime::ApplicationVndYamahaTunnelUdpencap => write!(f, "application/vnd.yamaha.tunnel-udpencap"),
+			Mime::ApplicationVndYaoweme => write!(f, "application/vnd.yaoweme"),
+			Mime::ApplicationVndYellowriverCustomMenu => write!(f, "application/vnd.yellowriver-custom-menu"),
+			Mime::ApplicationVndZul => write!(f, "application/vnd.zul"),
+			Mime::ApplicationVndZzazzDeckXml => write!(f, "application/vnd.zzazz.deck+xml"),
+			Mime::ApplicationVoicexmlXml => write!(f, "application/voicexml+xml"),
+			Mime::ApplicationVoucherCmsJson => write!(f, "application/voucher-cms+json"),
+			Mime::ApplicationVqRtcpxr => write!(f, "application/vq-rtcpxr"),
+			Mime::ApplicationWasm => write!(f, "application/wasm"),
+			Mime::ApplicationWatcherinfoXml => write!(f, "application/watcherinfo+xml"),
+			Mime::ApplicationWebpushOptionsJson => write!(f, "application/webpush-options+json"),
+			Mime::ApplicationWhoisppQuery => write!(f, "application/whoispp-query"),
+			Mime::ApplicationWhoisppResponse => write!(f, "application/whoispp-response"),
+			Mime::ApplicationWidget => write!(f, "application/widget"),
+			Mime::ApplicationWita => write!(f, "application/wita"),
+			Mime::ApplicationWordperfect51 => write!(f, "application/wordperfect5.1"),
+			Mime::ApplicationWsdlXml => write!(f, "application/wsdl+xml"),
+			Mime::ApplicationWspolicyXml => write!(f, "application/wspolicy+xml"),
+			Mime::ApplicationXPkiMessage => write!(f, "application/x-pki-message"),
+			Mime::ApplicationXWwwFormUrlencoded => write!(f, "application/x-www-form-urlencoded"),
+			Mime::ApplicationXX509CaCert => write!(f, "application/x-x509-ca-cert"),
+			Mime::ApplicationXX509CaRaCert => write!(f, "application/x-x509-ca-ra-cert"),
+			Mime::ApplicationXX509NextCaCert => write!(f, "application/x-x509-next-ca-cert"),
+			Mime::ApplicationX400Bp => write!(f, "application/x400-bp"),
+			Mime::ApplicationXacmlXml => write!(f, "application/xacml+xml"),
+			Mime::ApplicationXcapAttXml => write!(f, "application/xcap-att+xml"),
+			Mime::ApplicationXcapCapsXml => write!(f, "application/xcap-caps+xml"),
+			Mime::ApplicationXcapDiffXml => write!(f, "application/xcap-diff+xml"),
+			Mime::ApplicationXcapElXml => write!(f, "application/xcap-el+xml"),
+			Mime::ApplicationXcapErrorXml => write!(f, "application/xcap-error+xml"),
+			Mime::ApplicationXcapNsXml => write!(f, "application/xcap-ns+xml"),
+			Mime::ApplicationXconConferenceInfoDiffXml => write!(f, "application/xcon-conference-info-diff+xml"),
+			Mime::ApplicationXconConferenceInfoXml => write!(f, "application/xcon-conference-info+xml"),
+			Mime::ApplicationXencXml => write!(f, "application/xenc+xml"),
+			Mime::ApplicationXfdf => write!(f, "application/xfdf"),
+			Mime::ApplicationXhtmlXml => write!(f, "application/xhtml+xml"),
+			Mime::ApplicationXliffXml => write!(f, "application/xliff+xml"),
+			Mime::ApplicationXml => write!(f, "application/xml"),
+			Mime::ApplicationXmlDtd => write!(f, "application/xml-dtd"),
+			Mime::ApplicationXmlExternalParsedEntity => write!(f, "application/xml-external-parsed-entity"),
+			Mime::ApplicationXmlPatchXml => write!(f, "application/xml-patch+xml"),
+			Mime::ApplicationXmppXml => write!(f, "application/xmpp+xml"),
+			Mime::ApplicationXopXml => write!(f, "application/xop+xml"),
+			Mime::ApplicationXsltXml => write!(f, "application/xslt+xml"),
+			Mime::ApplicationXvXml => write!(f, "application/xv+xml"),
+			Mime::ApplicationYang => write!(f, "application/yang"),
+			Mime::ApplicationYangDataCbor => write!(f, "application/yang-data+cbor"),
+			Mime::ApplicationYangDataJson => write!(f, "application/yang-data+json"),
+			Mime::ApplicationYangDataXml => write!(f, "application/yang-data+xml"),
+			Mime::ApplicationYangPatchJson => write!(f, "application/yang-patch+json"),
+			Mime::ApplicationYangPatchXml => write!(f, "application/yang-patch+xml"),
+			Mime::ApplicationYinXml => write!(f, "application/yin+xml"),
+			Mime::ApplicationZip => write!(f, "application/zip"),
+			Mime::ApplicationZlib => write!(f, "application/zlib"),
+			Mime::ApplicationZstd => write!(f, "application/zstd"),
+			Mime::Audio1dInterleavedParityfec => write!(f, "audio/1d-interleaved-parityfec"),
+			Mime::Audio32kadpcm => write!(f, "audio/32kadpcm"),
+			Mime::Audio3gpp => write!(f, "audio/3gpp"),
+			Mime::Audio3gpp2 => write!(f, "audio/3gpp2"),
+			Mime::AudioAac => write!(f, "audio/aac"),
+			Mime::AudioAc3 => write!(f, "audio/ac3"),
+			Mime::AudioAmr => write!(f, "audio/AMR"),
+			Mime::AudioAmrWb => write!(f, "audio/AMR-WB"),
+			Mime::AudioAmrWbPlus => write!(f, "audio/amr-wb+"),
+			Mime::AudioAptx => write!(f, "audio/aptx"),
+			Mime::AudioAsc => write!(f, "audio/asc"),
+			Mime::AudioAtracAdvancedLossless => write!(f, "audio/ATRAC-ADVANCED-LOSSLESS"),
+			Mime::AudioAtracX => write!(f, "audio/ATRAC-X"),
+			Mime::AudioAtrac3 => write!(f, "audio/ATRAC3"),
+			Mime::AudioBasic => write!(f, "audio/basic"),
+			Mime::AudioBv16 => write!(f, "audio/BV16"),
+			Mime::AudioBv32 => write!(f, "audio/BV32"),
+			Mime::AudioClearmode => write!(f, "audio/clearmode"),
+			Mime::AudioCn => write!(f, "audio/CN"),
+			Mime::AudioDat12 => write!(f, "audio/DAT12"),
+			Mime::AudioDls => write!(f, "audio/dls"),
+			Mime::AudioDsrEs201108 => write!(f, "audio/dsr-es201108"),
+			Mime::AudioDsrEs202050 => write!(f, "audio/dsr-es202050"),
+			Mime::AudioDsrEs202211 => write!(f, "audio/dsr-es202211"),
+			Mime::AudioDsrEs202212 => write!(f, "audio/dsr-es202212"),
+			Mime::AudioDv => write!(f, "audio/DV"),
+			Mime::AudioDvi4 => write!(f, "audio/DVI4"),
+			Mime::AudioEac3 => write!(f, "audio/eac3"),
+			Mime::AudioEncaprtp => write!(f, "audio/encaprtp"),
+			Mime::AudioEvrc => write!(f, "audio/EVRC"),
+			Mime::AudioEvrcQcp => write!(f, "audio/EVRC-QCP"),
+			Mime::AudioEvrc0 => write!(f, "audio/EVRC0"),
+			Mime::AudioEvrc1 => write!(f, "audio/EVRC1"),
+			Mime::AudioEvrcb => write!(f, "audio/EVRCB"),
+			Mime::AudioEvrcb0 => write!(f, "audio/EVRCB0"),
+			Mime::AudioEvrcb1 => write!(f, "audio/EVRCB1"),
+			Mime::AudioEvrcnw => write!(f, "audio/EVRCNW"),
+			Mime::AudioEvrcnw0 => write!(f, "audio/EVRCNW0"),
+			Mime::AudioEvrcnw1 => write!(f, "audio/EVRCNW1"),
+			Mime::AudioEvrcwb => write!(f, "audio/EVRCWB"),
+			Mime::AudioEvrcwb0 => write!(f, "audio/EVRCWB0"),
+			Mime::AudioEvrcwb1 => write!(f, "audio/EVRCWB1"),
+			Mime::AudioEvs => write!(f, "audio/EVS"),
+			Mime::AudioExample => write!(f, "audio/example"),
+			Mime::AudioFlexfec => write!(f, "audio/flexfec"),
+			Mime::AudioFwdred => write!(f, "audio/fwdred"),
+			Mime::AudioG7110 => write!(f, "audio/G711-0"),
+			Mime::AudioG719 => write!(f, "audio/G719"),
+			Mime::AudioG7221 => write!(f, "audio/G7221"),
+			Mime::AudioG722 => write!(f, "audio/G722"),
+			Mime::AudioG723 => write!(f, "audio/G723"),
+			Mime::AudioG72616 => write!(f, "audio/G726-16"),
+			Mime::AudioG72624 => write!(f, "audio/G726-24"),
+			Mime::AudioG72632 => write!(f, "audio/G726-32"),
+			Mime::AudioG72640 => write!(f, "audio/G726-40"),
+			Mime::AudioG728 => write!(f, "audio/G728"),
+			Mime::AudioG729 => write!(f, "audio/G729"),
+			Mime::AudioG7291 => write!(f, "audio/G7291"),
+			Mime::AudioG729d => write!(f, "audio/G729D"),
+			Mime::AudioG729e => write!(f, "audio/G729E"),
+			Mime::AudioGsm => write!(f, "audio/GSM"),
+			Mime::AudioGsmEfr => write!(f, "audio/GSM-EFR"),
+			Mime::AudioGsmHr08 => write!(f, "audio/GSM-HR-08"),
+			Mime::AudioIlbc => write!(f, "audio/iLBC"),
+			Mime::AudioIpMrV25 => write!(f, "audio/ip-mr_v2.5"),
+			Mime::AudioL8 => write!(f, "audio/L8"),
+			Mime::AudioL16 => write!(f, "audio/L16"),
+			Mime::AudioL20 => write!(f, "audio/L20"),
+			Mime::AudioL24 => write!(f, "audio/L24"),
+			Mime::AudioLpc => write!(f, "audio/LPC"),
+			Mime::AudioMelp => write!(f, "audio/MELP"),
+			Mime::AudioMelp600 => write!(f, "audio/MELP600"),
+			Mime::AudioMelp1200 => write!(f, "audio/MELP1200"),
+			Mime::AudioMelp2400 => write!(f, "audio/MELP2400"),
+			Mime::AudioMhas => write!(f, "audio/mhas"),
+			Mime::AudioMobileXmf => write!(f, "audio/mobile-xmf"),
+			Mime::AudioMpa => write!(f, "audio/MPA"),
+			Mime::AudioMp4 => write!(f, "audio/mp4"),
+			Mime::AudioMp4aLatm => write!(f, "audio/MP4A-LATM"),
+			Mime::AudioMpaRobust => write!(f, "audio/mpa-robust"),
+			Mime::AudioMpeg => write!(f, "audio/mpeg"),
+			Mime::AudioMpeg4Generic => write!(f, "audio/mpeg4-generic"),
+			Mime::AudioOgg => write!(f, "audio/ogg"),
+			Mime::AudioOpus => write!(f, "audio/opus"),
+			Mime::AudioParityfec => write!(f, "audio/parityfec"),
+			Mime::AudioPcma => write!(f, "audio/PCMA"),
+			Mime::AudioPcmaWb => write!(f, "audio/PCMA-WB"),
+			Mime::AudioPcmu => write!(f, "audio/PCMU"),
+			Mime::AudioPcmuWb => write!(f, "audio/PCMU-WB"),
+			Mime::AudioPrsSid => write!(f, "audio/prs.sid"),
+			Mime::AudioQcelp => write!(f, "audio/QCELP"),
+			Mime::AudioRaptorfec => write!(f, "audio/raptorfec"),
+			Mime::AudioRed => write!(f, "audio/RED"),
+			Mime::AudioRtpEncAescm128 => write!(f, "audio/rtp-enc-aescm128"),
+			Mime::AudioRtploopback => write!(f, "audio/rtploopback"),
+			Mime::AudioRtpMidi => write!(f, "audio/rtp-midi"),
+			Mime::AudioRtx => write!(f, "audio/rtx"),
+			Mime::AudioScip => write!(f, "audio/scip"),
+			Mime::AudioSmv => write!(f, "audio/SMV"),
+			Mime::AudioSmv0 => write!(f, "audio/SMV0"),
+			Mime::AudioSmvQcp => write!(f, "audio/SMV-QCP"),
+			Mime::AudioSofa => write!(f, "audio/sofa"),
+			Mime::AudioSpMidi => write!(f, "audio/sp-midi"),
+			Mime::AudioSpeex => write!(f, "audio/speex"),
+			Mime::AudioT140c => write!(f, "audio/t140c"),
+			Mime::AudioT38 => write!(f, "audio/t38"),
+			Mime::AudioTelephoneEvent => write!(f, "audio/telephone-event"),
+			Mime::AudioTetraAcelp => write!(f, "audio/TETRA_ACELP"),
+			Mime::AudioTetraAcelpBb => write!(f, "audio/TETRA_ACELP_BB"),
+			Mime::AudioTone => write!(f, "audio/tone"),
+			Mime::AudioTsvcis => write!(f, "audio/TSVCIS"),
+			Mime::AudioUemclip => write!(f, "audio/UEMCLIP"),
+			Mime::AudioUlpfec => write!(f, "audio/ulpfec"),
+			Mime::AudioUsac => write!(f, "audio/usac"),
+			Mime::AudioVdvi => write!(f, "audio/VDVI"),
+			Mime::AudioVmrWb => write!(f, "audio/VMR-WB"),
+			Mime::AudioVnd3gppIufp => write!(f, "audio/vnd.3gpp.iufp"),
+			Mime::AudioVnd4sb => write!(f, "audio/vnd.4SB"),
+			Mime::AudioVndAudiokoz => write!(f, "audio/vnd.audiokoz"),
+			Mime::AudioVndCelp => write!(f, "audio/vnd.CELP"),
+			Mime::AudioVndCiscoNse => write!(f, "audio/vnd.cisco.nse"),
+			Mime::AudioVndCmlesRadioEvents => write!(f, "audio/vnd.cmles.radio-events"),
+			Mime::AudioVndCnsAnp1 => write!(f, "audio/vnd.cns.anp1"),
+			Mime::AudioVndCnsInf1 => write!(f, "audio/vnd.cns.inf1"),
+			Mime::AudioVndDeceAudio => write!(f, "audio/vnd.dece.audio"),
+			Mime::AudioVndDigitalWinds => write!(f, "audio/vnd.digital-winds"),
+			Mime::AudioVndDlnaAdts => write!(f, "audio/vnd.dlna.adts"),
+			Mime::AudioVndDolbyHeaac1 => write!(f, "audio/vnd.dolby.heaac.1"),
+			Mime::AudioVndDolbyHeaac2 => write!(f, "audio/vnd.dolby.heaac.2"),
+			Mime::AudioVndDolbyMlp => write!(f, "audio/vnd.dolby.mlp"),
+			Mime::AudioVndDolbyMps => write!(f, "audio/vnd.dolby.mps"),
+			Mime::AudioVndDolbyPl2 => write!(f, "audio/vnd.dolby.pl2"),
+			Mime::AudioVndDolbyPl2x => write!(f, "audio/vnd.dolby.pl2x"),
+			Mime::AudioVndDolbyPl2z => write!(f, "audio/vnd.dolby.pl2z"),
+			Mime::AudioVndDolbyPulse1 => write!(f, "audio/vnd.dolby.pulse.1"),
+			Mime::AudioVndDra => write!(f, "audio/vnd.dra"),
+			Mime::AudioVndDts => write!(f, "audio/vnd.dts"),
+			Mime::AudioVndDtsHd => write!(f, "audio/vnd.dts.hd"),
+			Mime::AudioVndDtsUhd => write!(f, "audio/vnd.dts.uhd"),
+			Mime::AudioVndDvbFile => write!(f, "audio/vnd.dvb.file"),
+			Mime::AudioVndEveradPlj => write!(f, "audio/vnd.everad.plj"),
+			Mime::AudioVndHnsAudio => write!(f, "audio/vnd.hns.audio"),
+			Mime::AudioVndLucentVoice => write!(f, "audio/vnd.lucent.voice"),
+			Mime::AudioVndMsPlayreadyMediaPya => write!(f, "audio/vnd.ms-playready.media.pya"),
+			Mime::AudioVndNokiaMobileXmf => write!(f, "audio/vnd.nokia.mobile-xmf"),
+			Mime::AudioVndNortelVbk => write!(f, "audio/vnd.nortel.vbk"),
+			Mime::AudioVndNueraEcelp4800 => write!(f, "audio/vnd.nuera.ecelp4800"),
+			Mime::AudioVndNueraEcelp7470 => write!(f, "audio/vnd.nuera.ecelp7470"),
+			Mime::AudioVndNueraEcelp9600 => write!(f, "audio/vnd.nuera.ecelp9600"),
+			Mime::AudioVndOctelSbc => write!(f, "audio/vnd.octel.sbc"),
+			Mime::AudioVndPresonusMultitrack => write!(f, "audio/vnd.presonus.multitrack"),
+			Mime::AudioVndRhetorex32kadpcm => write!(f, "audio/vnd.rhetorex.32kadpcm"),
+			Mime::AudioVndRip => write!(f, "audio/vnd.rip"),
+			Mime::AudioVndSealedmediaSoftsealMpeg => write!(f, "audio/vnd.sealedmedia.softseal.mpeg"),
+			Mime::AudioVndVmxCvsd => write!(f, "audio/vnd.vmx.cvsd"),
+			Mime::AudioVorbis => write!(f, "audio/vorbis"),
+			Mime::AudioVorbisConfig => write!(f, "audio/vorbis-config"),
+			Mime::FontCollection => write!(f, "font/collection"),
+			Mime::FontOtf => write!(f, "font/otf"),
+			Mime::FontSfnt => write!(f, "font/sfnt"),
+			Mime::FontTtf => write!(f, "font/ttf"),
+			Mime::FontWoff => write!(f, "font/woff"),
+			Mime::FontWoff2 => write!(f, "font/woff2"),
+			Mime::ImageAces => write!(f, "image/aces"),
+			Mime::ImageApng => write!(f, "image/apng"),
+			Mime::ImageAvci => write!(f, "image/avci"),
+			Mime::ImageAvcs => write!(f, "image/avcs"),
+			Mime::ImageAvif => write!(f, "image/avif"),
+			Mime::ImageBmp => write!(f, "image/bmp"),
+			Mime::ImageCgm => write!(f, "image/cgm"),
+			Mime::ImageDicomRle => write!(f, "image/dicom-rle"),
+			Mime::ImageDpx => write!(f, "image/dpx"),
+			Mime::ImageEmf => write!(f, "image/emf"),
+			Mime::ImageExample => write!(f, "image/example"),
+			Mime::ImageFits => write!(f, "image/fits"),
+			Mime::ImageG3fax => write!(f, "image/g3fax"),
+			Mime::ImageHeic => write!(f, "image/heic"),
+			Mime::ImageHeicSequence => write!(f, "image/heic-sequence"),
+			Mime::ImageHeif => write!(f, "image/heif"),
+			Mime::ImageHeifSequence => write!(f, "image/heif-sequence"),
+			Mime::ImageHej2k => write!(f, "image/hej2k"),
+			Mime::ImageHsj2 => write!(f, "image/hsj2"),
+			Mime::ImageJls => write!(f, "image/jls"),
+			Mime::ImageJp2 => write!(f, "image/jp2"),
+            Mime::ImageJpeg => write!(f, "image/jpeg"),
+			Mime::ImageJph => write!(f, "image/jph"),
+			Mime::ImageJphc => write!(f, "image/jphc"),
+			Mime::ImageJpm => write!(f, "image/jpm"),
+			Mime::ImageJpx => write!(f, "image/jpx"),
+			Mime::ImageJxr => write!(f, "image/jxr"),
+			Mime::ImageJxra => write!(f, "image/jxrA"),
+			Mime::ImageJxrs => write!(f, "image/jxrS"),
+			Mime::ImageJxs => write!(f, "image/jxs"),
+			Mime::ImageJxsc => write!(f, "image/jxsc"),
+			Mime::ImageJxsi => write!(f, "image/jxsi"),
+			Mime::ImageJxss => write!(f, "image/jxss"),
+			Mime::ImageKtx => write!(f, "image/ktx"),
+			Mime::ImageKtx2 => write!(f, "image/ktx2"),
+			Mime::ImageNaplps => write!(f, "image/naplps"),
+			Mime::ImagePng => write!(f, "image/png"),
+			Mime::ImagePrsBtif => write!(f, "image/prs.btif"),
+			Mime::ImagePrsPti => write!(f, "image/prs.pti"),
+			Mime::ImagePwgRaster => write!(f, "image/pwg-raster"),
+			Mime::ImageSvgXml => write!(f, "image/svg+xml"),
+			Mime::ImageT38 => write!(f, "image/t38"),
+			Mime::ImageTiff => write!(f, "image/tiff"),
+			Mime::ImageTiffFx => write!(f, "image/tiff-fx"),
+			Mime::ImageVndAdobePhotoshop => write!(f, "image/vnd.adobe.photoshop"),
+			Mime::ImageVndAirzipAcceleratorAzv => write!(f, "image/vnd.airzip.accelerator.azv"),
+			Mime::ImageVndCnsInf2 => write!(f, "image/vnd.cns.inf2"),
+			Mime::ImageVndDeceGraphic => write!(f, "image/vnd.dece.graphic"),
+			Mime::ImageVndDjvu => write!(f, "image/vnd.djvu"),
+			Mime::ImageVndDwg => write!(f, "image/vnd.dwg"),
+			Mime::ImageVndDxf => write!(f, "image/vnd.dxf"),
+			Mime::ImageVndDvbSubtitle => write!(f, "image/vnd.dvb.subtitle"),
+			Mime::ImageVndFastbidsheet => write!(f, "image/vnd.fastbidsheet"),
+			Mime::ImageVndFpx => write!(f, "image/vnd.fpx"),
+			Mime::ImageVndFst => write!(f, "image/vnd.fst"),
+			Mime::ImageVndFujixeroxEdmicsMmr => write!(f, "image/vnd.fujixerox.edmics-mmr"),
+			Mime::ImageVndFujixeroxEdmicsRlc => write!(f, "image/vnd.fujixerox.edmics-rlc"),
+			Mime::ImageVndGlobalgraphicsPgb => write!(f, "image/vnd.globalgraphics.pgb"),
+			Mime::ImageVndMicrosoftIcon => write!(f, "image/vnd.microsoft.icon"),
+			Mime::ImageVndMix => write!(f, "image/vnd.mix"),
+			Mime::ImageVndMsModi => write!(f, "image/vnd.ms-modi"),
+			Mime::ImageVndMozillaApng => write!(f, "image/vnd.mozilla.apng"),
+			Mime::ImageVndNetFpx => write!(f, "image/vnd.net-fpx"),
+			Mime::ImageVndPcoB16 => write!(f, "image/vnd.pco.b16"),
+			Mime::ImageVndRadiance => write!(f, "image/vnd.radiance"),
+			Mime::ImageVndSealedPng => write!(f, "image/vnd.sealed.png"),
+			Mime::ImageVndSealedmediaSoftsealGif => write!(f, "image/vnd.sealedmedia.softseal.gif"),
+			Mime::ImageVndSealedmediaSoftsealJpg => write!(f, "image/vnd.sealedmedia.softseal.jpg"),
+			Mime::ImageVndSvf => write!(f, "image/vnd.svf"),
+			Mime::ImageVndTencentTap => write!(f, "image/vnd.tencent.tap"),
+			Mime::ImageVndValveSourceTexture => write!(f, "image/vnd.valve.source.texture"),
+			Mime::ImageVndWapWbmp => write!(f, "image/vnd.wap.wbmp"),
+			Mime::ImageVndXiff => write!(f, "image/vnd.xiff"),
+			Mime::ImageVndZbrushPcx => write!(f, "image/vnd.zbrush.pcx"),
+			Mime::ImageWebp => write!(f, "image/webp"),
+			Mime::ImageWmf => write!(f, "image/wmf"),
+			Mime::MessageBhttp => write!(f, "message/bhttp"),
+			Mime::MessageCpim => write!(f, "message/CPIM"),
+			Mime::MessageDeliveryStatus => write!(f, "message/delivery-status"),
+			Mime::MessageDispositionNotification => write!(f, "message/disposition-notification"),
+			Mime::MessageExample => write!(f, "message/example"),
+			Mime::MessageFeedbackReport => write!(f, "message/feedback-report"),
+			Mime::MessageGlobal => write!(f, "message/global"),
+			Mime::MessageGlobalDeliveryStatus => write!(f, "message/global-delivery-status"),
+			Mime::MessageGlobalDispositionNotification => write!(f, "message/global-disposition-notification"),
+			Mime::MessageGlobalHeaders => write!(f, "message/global-headers"),
+			Mime::MessageHttp => write!(f, "message/http"),
+			Mime::MessageImdnXml => write!(f, "message/imdn+xml"),
+			Mime::MessageMls => write!(f, "message/mls"),
+			Mime::MessageOhttpReq => write!(f, "message/ohttp-req"),
+			Mime::MessageOhttpRes => write!(f, "message/ohttp-res"),
+			Mime::MessageSip => write!(f, "message/sip"),
+			Mime::MessageSipfrag => write!(f, "message/sipfrag"),
+			Mime::MessageTrackingStatus => write!(f, "message/tracking-status"),
+			Mime::MessageVndWfaWsc => write!(f, "message/vnd.wfa.wsc"),
+			Mime::Model3mf => write!(f, "model/3mf"),
+			Mime::ModelE57 => write!(f, "model/e57"),
+			Mime::ModelExample => write!(f, "model/example"),
+			Mime::ModelGltfBinary => write!(f, "model/gltf-binary"),
+			Mime::ModelGltfJson => write!(f, "model/gltf+json"),
+			Mime::ModelJt => write!(f, "model/JT"),
+			Mime::ModelIges => write!(f, "model/iges"),
+			Mime::ModelMtl => write!(f, "model/mtl"),
+			Mime::ModelObj => write!(f, "model/obj"),
+			Mime::ModelPrc => write!(f, "model/prc"),
+			Mime::ModelStep => write!(f, "model/step"),
+			Mime::ModelStepXml => write!(f, "model/step+xml"),
+			Mime::ModelStepZip => write!(f, "model/step+zip"),
+			Mime::ModelStepXmlZip => write!(f, "model/step-xml+zip"),
+			Mime::ModelStl => write!(f, "model/stl"),
+			Mime::ModelU3d => write!(f, "model/u3d"),
+			Mime::ModelVndBary => write!(f, "model/vnd.bary"),
+			Mime::ModelVndCld => write!(f, "model/vnd.cld"),
+			Mime::ModelVndColladaXml => write!(f, "model/vnd.collada+xml"),
+			Mime::ModelVndDwf => write!(f, "model/vnd.dwf"),
+			Mime::ModelVndFlatland3dml => write!(f, "model/vnd.flatland.3dml"),
+			Mime::ModelVndGdl => write!(f, "model/vnd.gdl"),
+			Mime::ModelVndGsGdl => write!(f, "model/vnd.gs-gdl"),
+			Mime::ModelVndGtw => write!(f, "model/vnd.gtw"),
+			Mime::ModelVndMomlXml => write!(f, "model/vnd.moml+xml"),
+			Mime::ModelVndMts => write!(f, "model/vnd.mts"),
+			Mime::ModelVndOpengex => write!(f, "model/vnd.opengex"),
+			Mime::ModelVndParasolidTransmitBinary => write!(f, "model/vnd.parasolid.transmit.binary"),
+			Mime::ModelVndParasolidTransmitText => write!(f, "model/vnd.parasolid.transmit.text"),
+			Mime::ModelVndPythaPyox => write!(f, "model/vnd.pytha.pyox"),
+			Mime::ModelVndRosetteAnnotatedDataModel => write!(f, "model/vnd.rosette.annotated-data-model"),
+			Mime::ModelVndSapVds => write!(f, "model/vnd.sap.vds"),
+			Mime::ModelVndUsda => write!(f, "model/vnd.usda"),
+			Mime::ModelVndUsdzZip => write!(f, "model/vnd.usdz+zip"),
+			Mime::ModelVndValveSourceCompiledMap => write!(f, "model/vnd.valve.source.compiled-map"),
+			Mime::ModelVndVtu => write!(f, "model/vnd.vtu"),
+			Mime::ModelX3dVrml => write!(f, "model/x3d-vrml"),
+			Mime::ModelX3dFastinfoset => write!(f, "model/x3d+fastinfoset"),
+			Mime::ModelX3dXml => write!(f, "model/x3d+xml"),
+			Mime::MultipartAppledouble => write!(f, "multipart/appledouble"),
+			Mime::MultipartByteranges => write!(f, "multipart/byteranges"),
+			Mime::MultipartEncrypted => write!(f, "multipart/encrypted"),
+			Mime::MultipartExample => write!(f, "multipart/example"),
+			Mime::MultipartFormData => write!(f, "multipart/form-data"),
+			Mime::MultipartHeaderSet => write!(f, "multipart/header-set"),
+			Mime::MultipartMultilingual => write!(f, "multipart/multilingual"),
+			Mime::MultipartRelated => write!(f, "multipart/related"),
+			Mime::MultipartReport => write!(f, "multipart/report"),
+			Mime::MultipartSigned => write!(f, "multipart/signed"),
+			Mime::MultipartVndBintMedPlus => write!(f, "multipart/vnd.bint.med-plus"),
+			Mime::MultipartVoiceMessage => write!(f, "multipart/voice-message"),
+			Mime::MultipartXMixedReplace => write!(f, "multipart/x-mixed-replace"),
+			Mime::Text1dInterleavedParityfec => write!(f, "text/1d-interleaved-parityfec"),
+			Mime::TextCacheManifest => write!(f, "text/cache-manifest"),
+			Mime::TextCalendar => write!(f, "text/calendar"),
+			Mime::TextCql => write!(f, "text/cql"),
+			Mime::TextCqlExpression => write!(f, "text/cql-expression"),
+			Mime::TextCqlIdentifier => write!(f, "text/cql-identifier"),
+			Mime::TextCss => write!(f, "text/css"),
+			Mime::TextCsv => write!(f, "text/csv"),
+			Mime::TextCsvSchema => write!(f, "text/csv-schema"),
+			Mime::TextDns => write!(f, "text/dns"),
+			Mime::TextEncaprtp => write!(f, "text/encaprtp"),
+			Mime::TextExample => write!(f, "text/example"),
+			Mime::TextFhirpath => write!(f, "text/fhirpath"),
+			Mime::TextFlexfec => write!(f, "text/flexfec"),
+			Mime::TextFwdred => write!(f, "text/fwdred"),
+			Mime::TextGff3 => write!(f, "text/gff3"),
+			Mime::TextGrammarRefList => write!(f, "text/grammar-ref-list"),
+			Mime::TextHl7v2 => write!(f, "text/hl7v2"),
+			Mime::TextHtml => write!(f, "text/html"),
+			Mime::TextJavascript => write!(f, "text/javascript"),
+			Mime::TextJcrCnd => write!(f, "text/jcr-cnd"),
+			Mime::TextMarkdown => write!(f, "text/markdown"),
+			Mime::TextMizar => write!(f, "text/mizar"),
+			Mime::TextN3 => write!(f, "text/n3"),
+			Mime::TextParameters => write!(f, "text/parameters"),
+			Mime::TextParityfec => write!(f, "text/parityfec"),
+            Mime::TextPlain => write!(f, "text/plain"),
+			Mime::TextProvenanceNotation => write!(f, "text/provenance-notation"),
+			Mime::TextPrsFallensteinRst => write!(f, "text/prs.fallenstein.rst"),
+			Mime::TextPrsLinesTag => write!(f, "text/prs.lines.tag"),
+			Mime::TextPrsPropLogic => write!(f, "text/prs.prop.logic"),
+			Mime::TextRaptorfec => write!(f, "text/raptorfec"),
+			Mime::TextRed => write!(f, "text/RED"),
+			Mime::TextRfc822Headers => write!(f, "text/rfc822-headers"),
+			Mime::TextRtf => write!(f, "text/rtf"),
+			Mime::TextRtpEncAescm128 => write!(f, "text/rtp-enc-aescm128"),
+			Mime::TextRtploopback => write!(f, "text/rtploopback"),
+			Mime::TextRtx => write!(f, "text/rtx"),
+			Mime::TextSgml => write!(f, "text/SGML"),
+			Mime::TextShaclc => write!(f, "text/shaclc"),
+			Mime::TextShex => write!(f, "text/shex"),
+			Mime::TextSpdx => write!(f, "text/spdx"),
+			Mime::TextStrings => write!(f, "text/strings"),
+			Mime::TextT140 => write!(f, "text/t140"),
+			Mime::TextTabSeparatedValues => write!(f, "text/tab-separated-values"),
+			Mime::TextTroff => write!(f, "text/troff"),
+			Mime::TextTurtle => write!(f, "text/turtle"),
+			Mime::TextUlpfec => write!(f, "text/ulpfec"),
+			Mime::TextUriList => write!(f, "text/uri-list"),
+			Mime::TextVcard => write!(f, "text/vcard"),
+			Mime::TextVndA => write!(f, "text/vnd.a"),
+			Mime::TextVndAbc => write!(f, "text/vnd.abc"),
+			Mime::TextVndAsciiArt => write!(f, "text/vnd.ascii-art"),
+			Mime::TextVndCurl => write!(f, "text/vnd.curl"),
+			Mime::TextVndDebianCopyright => write!(f, "text/vnd.debian.copyright"),
+			Mime::TextVndDmclientscript => write!(f, "text/vnd.DMClientScript"),
+			Mime::TextVndDvbSubtitle => write!(f, "text/vnd.dvb.subtitle"),
+			Mime::TextVndEsmertecThemeDescriptor => write!(f, "text/vnd.esmertec.theme-descriptor"),
+			Mime::TextVndExchangeable => write!(f, "text/vnd.exchangeable"),
+			Mime::TextVndFamilysearchGedcom => write!(f, "text/vnd.familysearch.gedcom"),
+			Mime::TextVndFiclabFlt => write!(f, "text/vnd.ficlab.flt"),
+			Mime::TextVndFly => write!(f, "text/vnd.fly"),
+			Mime::TextVndFmiFlexstor => write!(f, "text/vnd.fmi.flexstor"),
+			Mime::TextVndGml => write!(f, "text/vnd.gml"),
+			Mime::TextVndGraphviz => write!(f, "text/vnd.graphviz"),
+			Mime::TextVndHans => write!(f, "text/vnd.hans"),
+			Mime::TextVndHgl => write!(f, "text/vnd.hgl"),
+			Mime::TextVndIn3d3dml => write!(f, "text/vnd.in3d.3dml"),
+			Mime::TextVndIn3dSpot => write!(f, "text/vnd.in3d.spot"),
+			Mime::TextVndIptcNewsml => write!(f, "text/vnd.IPTC.NewsML"),
+			Mime::TextVndIptcNitf => write!(f, "text/vnd.IPTC.NITF"),
+			Mime::TextVndLatexZ => write!(f, "text/vnd.latex-z"),
+			Mime::TextVndMotorolaReflex => write!(f, "text/vnd.motorola.reflex"),
+			Mime::TextVndMsMediapackage => write!(f, "text/vnd.ms-mediapackage"),
+			Mime::TextVndNet2phoneCommcenterCommand => write!(f, "text/vnd.net2phone.commcenter.command"),
+			Mime::TextVndRadisysMsmlBasicLayout => write!(f, "text/vnd.radisys.msml-basic-layout"),
+			Mime::TextVndSenxWarpscript => write!(f, "text/vnd.senx.warpscript"),
+			Mime::TextVndSunJ2meAppDescriptor => write!(f, "text/vnd.sun.j2me.app-descriptor"),
+			Mime::TextVndSosi => write!(f, "text/vnd.sosi"),
+			Mime::TextVndTrolltechLinguist => write!(f, "text/vnd.trolltech.linguist"),
+			Mime::TextVndWapSi => write!(f, "text/vnd.wap.si"),
+			Mime::TextVndWapSl => write!(f, "text/vnd.wap.sl"),
+			Mime::TextVndWapWml => write!(f, "text/vnd.wap.wml"),
+			Mime::TextVndWapWmlscript => write!(f, "text/vnd.wap.wmlscript"),
+			Mime::TextVtt => write!(f, "text/vtt"),
+			Mime::TextWgsl => write!(f, "text/wgsl"),
+			Mime::TextXml => write!(f, "text/xml"),
+			Mime::TextXmlExternalParsedEntity => write!(f, "text/xml-external-parsed-entity"),
+			Mime::Video1dInterleavedParityfec => write!(f, "video/1d-interleaved-parityfec"),
+			Mime::Video3gpp => write!(f, "video/3gpp"),
+			Mime::Video3gpp2 => write!(f, "video/3gpp2"),
+			Mime::Video3gppTt => write!(f, "video/3gpp-tt"),
+			Mime::VideoAv1 => write!(f, "video/AV1"),
+			Mime::VideoBmpeg => write!(f, "video/BMPEG"),
+			Mime::VideoBt656 => write!(f, "video/BT656"),
+			Mime::VideoCelb => write!(f, "video/CelB"),
+			Mime::VideoDv => write!(f, "video/DV"),
+			Mime::VideoEncaprtp => write!(f, "video/encaprtp"),
+			Mime::VideoExample => write!(f, "video/example"),
+			Mime::VideoFfv1 => write!(f, "video/FFV1"),
+			Mime::VideoFlexfec => write!(f, "video/flexfec"),
+			Mime::VideoH261 => write!(f, "video/H261"),
+			Mime::VideoH263 => write!(f, "video/H263"),
+			Mime::VideoH2631998 => write!(f, "video/H263-1998"),
+			Mime::VideoH2632000 => write!(f, "video/H263-2000"),
+			Mime::VideoH264 => write!(f, "video/H264"),
+			Mime::VideoH264Rcdo => write!(f, "video/H264-RCDO"),
+			Mime::VideoH264Svc => write!(f, "video/H264-SVC"),
+			Mime::VideoH265 => write!(f, "video/H265"),
+			Mime::VideoH266 => write!(f, "video/H266"),
+			Mime::VideoIsoSegment => write!(f, "video/iso.segment"),
+			Mime::VideoJpeg => write!(f, "video/JPEG"),
+			Mime::VideoJpeg2000 => write!(f, "video/jpeg2000"),
+			Mime::VideoJxsv => write!(f, "video/jxsv"),
+			Mime::VideoMj2 => write!(f, "video/mj2"),
+			Mime::VideoMp1s => write!(f, "video/MP1S"),
+			Mime::VideoMp2p => write!(f, "video/MP2P"),
+			Mime::VideoMp2t => write!(f, "video/MP2T"),
+			Mime::VideoMp4 => write!(f, "video/mp4"),
+			Mime::VideoMp4vEs => write!(f, "video/MP4V-ES"),
+			Mime::VideoMpv => write!(f, "video/MPV"),
+			Mime::VideoMpeg4Generic => write!(f, "video/mpeg4-generic"),
+			Mime::VideoNv => write!(f, "video/nv"),
+			Mime::VideoOgg => write!(f, "video/ogg"),
+			Mime::VideoParityfec => write!(f, "video/parityfec"),
+			Mime::VideoPointer => write!(f, "video/pointer"),
+			Mime::VideoQuicktime => write!(f, "video/quicktime"),
+			Mime::VideoRaptorfec => write!(f, "video/raptorfec"),
+			Mime::VideoRaw => write!(f, "video/raw"),
+			Mime::VideoRtpEncAescm128 => write!(f, "video/rtp-enc-aescm128"),
+			Mime::VideoRtploopback => write!(f, "video/rtploopback"),
+			Mime::VideoRtx => write!(f, "video/rtx"),
+			Mime::VideoScip => write!(f, "video/scip"),
+			Mime::VideoSmpte291 => write!(f, "video/smpte291"),
+			Mime::VideoSmpte292m => write!(f, "video/SMPTE292M"),
+			Mime::VideoUlpfec => write!(f, "video/ulpfec"),
+			Mime::VideoVc1 => write!(f, "video/vc1"),
+			Mime::VideoVc2 => write!(f, "video/vc2"),
+			Mime::VideoVndCctv => write!(f, "video/vnd.CCTV"),
+			Mime::VideoVndDeceHd => write!(f, "video/vnd.dece.hd"),
+			Mime::VideoVndDeceMobile => write!(f, "video/vnd.dece.mobile"),
+			Mime::VideoVndDeceMp4 => write!(f, "video/vnd.dece.mp4"),
+			Mime::VideoVndDecePd => write!(f, "video/vnd.dece.pd"),
+			Mime::VideoVndDeceSd => write!(f, "video/vnd.dece.sd"),
+			Mime::VideoVndDeceVideo => write!(f, "video/vnd.dece.video"),
+			Mime::VideoVndDirectvMpeg => write!(f, "video/vnd.directv.mpeg"),
+			Mime::VideoVndDirectvMpegTts => write!(f, "video/vnd.directv.mpeg-tts"),
+			Mime::VideoVndDlnaMpegTts => write!(f, "video/vnd.dlna.mpeg-tts"),
+			Mime::VideoVndDvbFile => write!(f, "video/vnd.dvb.file"),
+			Mime::VideoVndFvt => write!(f, "video/vnd.fvt"),
+			Mime::VideoVndHnsVideo => write!(f, "video/vnd.hns.video"),
+			Mime::VideoVndIptvforum1dparityfec1010 => write!(f, "video/vnd.iptvforum.1dparityfec-1010"),
+			Mime::VideoVndIptvforum1dparityfec2005 => write!(f, "video/vnd.iptvforum.1dparityfec-2005"),
+			Mime::VideoVndIptvforum2dparityfec1010 => write!(f, "video/vnd.iptvforum.2dparityfec-1010"),
+			Mime::VideoVndIptvforum2dparityfec2005 => write!(f, "video/vnd.iptvforum.2dparityfec-2005"),
+			Mime::VideoVndIptvforumTtsavc => write!(f, "video/vnd.iptvforum.ttsavc"),
+			Mime::VideoVndIptvforumTtsmpeg2 => write!(f, "video/vnd.iptvforum.ttsmpeg2"),
+			Mime::VideoVndMotorolaVideo => write!(f, "video/vnd.motorola.video"),
+			Mime::VideoVndMotorolaVideop => write!(f, "video/vnd.motorola.videop"),
+			Mime::VideoVndMpegurl => write!(f, "video/vnd.mpegurl"),
+			Mime::VideoVndMsPlayreadyMediaPyv => write!(f, "video/vnd.ms-playready.media.pyv"),
+			Mime::VideoVndNokiaInterleavedMultimedia => write!(f, "video/vnd.nokia.interleaved-multimedia"),
+			Mime::VideoVndNokiaMp4vr => write!(f, "video/vnd.nokia.mp4vr"),
+			Mime::VideoVndNokiaVideovoip => write!(f, "video/vnd.nokia.videovoip"),
+			Mime::VideoVndObjectvideo => write!(f, "video/vnd.objectvideo"),
+			Mime::VideoVndRadgamettoolsBink => write!(f, "video/vnd.radgamettools.bink"),
+			Mime::VideoVndRadgamettoolsSmacker => write!(f, "video/vnd.radgamettools.smacker"),
+			Mime::VideoVndSealedMpeg1 => write!(f, "video/vnd.sealed.mpeg1"),
+			Mime::VideoVndSealedMpeg4 => write!(f, "video/vnd.sealed.mpeg4"),
+			Mime::VideoVndSealedSwf => write!(f, "video/vnd.sealed.swf"),
+			Mime::VideoVndSealedmediaSoftsealMov => write!(f, "video/vnd.sealedmedia.softseal.mov"),
+			Mime::VideoVndUvvuMp4 => write!(f, "video/vnd.uvvu.mp4"),
+			Mime::VideoVndYoutubeYt => write!(f, "video/vnd.youtube.yt"),
+			Mime::VideoVndVivo => write!(f, "video/vnd.vivo"),
+			Mime::VideoVp8 => write!(f, "video/VP8"),
+			Mime::VideoVp9 => write!(f, "video/VP9"),
+		}
+    }
+}
+
+#[derive(Debug)]
+pub struct ParseMimeError(i32);
+
+impl std::fmt::Display for ParseMimeError {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        write!(f, "{:?}", self)
+    }
+}
+impl std::error::Error for ParseMimeError {}
+
+impl std::str::FromStr for Mime {
+    type Err = ParseMimeError;
+
+    fn from_str(s: &str) -> Result<Self, Self::Err> {
+        let s = if let Some(str) = s.split_once(';') {
+            str.0
+        } else {
+            s
+        };
+        match MIME_MAP.get(s).copied() {
+            Some(mimetype) => Ok(mimetype),
+            None => Err(ParseMimeError(1)),
+        }
+    }
+}
+
+impl Mime {
+    /// Gets the mime type from filename, defaults to [Mime::TextPlain]
+    pub fn from_filename(filename: &str) -> Self {
+        match filename.split('.').last() {
+            Some(v) => match v {
+                "png" => Mime::ImagePng,
+                "jpg" => Mime::ImageJpeg,
+                "json" => Mime::ApplicationJson,
+                "html" => Mime::TextHtml,
+                "css" => Mime::TextCss,
+                "svg" => Mime::ImageSvgXml,
+                &_ => Mime::TextPlain,
+            },
+            None => Mime::TextPlain,
+        }
+    }
+}
+
+#[cfg(test)]
+mod test {
+    use crate::utils::mime::mime_enum::Mime;
+
+    #[test]
+    fn get_mime_test() {
+        assert_eq!("text/plain".parse::<Mime>().unwrap(), Mime::TextPlain)
+    }
+}
diff --git a/core/http/src/utils/mime/mod.rs b/core/http/src/utils/mime/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..4421654339e44e341cb5eed28443f0770a4ea7a8
--- /dev/null
+++ b/core/http/src/utils/mime/mod.rs
@@ -0,0 +1,5 @@
+mod map;
+mod mime_enum;
+pub use map::MIME_MAP;
+pub use mime_enum::Mime;
+pub use mime_enum::ParseMimeError;
diff --git a/core/http/src/utils/mod.rs b/core/http/src/utils/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..6f54242fa58e4f066dad1846c4b4bc586b002a32
--- /dev/null
+++ b/core/http/src/utils/mod.rs
@@ -0,0 +1,3 @@
+pub mod mime;
+pub mod url_utils;
+pub mod urlencoded;
diff --git a/core/http/src/utils/url_utils/datatypes.rs b/core/http/src/utils/url_utils/datatypes.rs
new file mode 100644
index 0000000000000000000000000000000000000000..6e360807ec57cfb988d5e4f2664873f72791b807
--- /dev/null
+++ b/core/http/src/utils/url_utils/datatypes.rs
@@ -0,0 +1,38 @@
+use std::error;
+
+use crate::utils::urlencoded::UrlEncodeData;
+
+#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone)]
+pub struct Uri {
+    pub(super) parts: Vec<UrlEncodeData>,
+}
+
+#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
+pub struct RawUri {
+    pub(super) raw_string: String,
+    pub(super) infinte_end: bool,
+    pub(super) parts: Vec<RawUriElement>,
+}
+
+#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
+pub enum RawUriElement {
+    Variable,
+    Name(UrlEncodeData),
+}
+
+#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
+pub enum UriError {
+    InvalidUriEncoding,
+}
+
+#[derive(Debug)]
+pub struct ParseUriError {
+    pub error: UriError,
+}
+impl std::fmt::Display for ParseUriError {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        write!(f, "{:?}", self)
+    }
+}
+
+impl error::Error for ParseUriError {}
diff --git a/core/http/src/utils/url_utils/mod.rs b/core/http/src/utils/url_utils/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..7a6061d096e735d42bc4f1a5508377758798e101
--- /dev/null
+++ b/core/http/src/utils/url_utils/mod.rs
@@ -0,0 +1,7 @@
+mod datatypes;
+mod uri;
+pub use datatypes::ParseUriError;
+pub use datatypes::RawUri;
+pub use datatypes::RawUriElement;
+pub use datatypes::Uri;
+pub use datatypes::UriError;
diff --git a/core/http/src/utils/url_utils/uri.rs b/core/http/src/utils/url_utils/uri.rs
new file mode 100644
index 0000000000000000000000000000000000000000..6b8146be14f1297f202e4fc59bcaa93928a5fbd5
--- /dev/null
+++ b/core/http/src/utils/url_utils/uri.rs
@@ -0,0 +1,180 @@
+use std::str::FromStr;
+
+use crate::utils::{url_utils::datatypes::RawUriElement, urlencoded::UrlEncodeData};
+
+use super::datatypes::{ParseUriError, RawUri, Uri, UriError};
+
+impl Uri {
+    pub fn new(parts: Vec<&str>) -> Self {
+        Self {
+            parts: parts.into_iter().map(UrlEncodeData::from_raw).collect(),
+        }
+    }
+}
+
+impl RawUri {
+    pub fn new(parts: Vec<&str>) -> Self {
+        let mut result = Self {
+            infinte_end: false,
+            parts: Vec::with_capacity(parts.len()),
+            raw_string: "/".to_owned() + &parts.join("/"),
+        };
+        for part in parts {
+            if part.starts_with('<') && part.ends_with("..>") {
+                result.infinte_end = true;
+                break;
+            }
+            if part.starts_with('<') && part.ends_with('>') {
+                result.parts.push(RawUriElement::Variable);
+                continue;
+            }
+            result
+                .parts
+                .push(RawUriElement::Name(UrlEncodeData::from_raw(part)))
+        }
+        result
+    }
+    pub fn compare_uri(self, uri: Uri) -> bool {
+        let mut iter_comp = uri.parts.iter();
+        let mut counter = 0;
+        for element in self.parts.iter() {
+            counter += 1;
+            let Some(compare_element) = iter_comp.next() else {
+                return false;
+            };
+
+            if *element == RawUriElement::Variable {
+                continue;
+            }
+            if let RawUriElement::Name(name) = element {
+                if name.encoded() != compare_element.encoded() {
+                    return false;
+                }
+            } else {
+                return false;
+            }
+        }
+        if counter > self.parts.len() && !self.infinte_end {
+            return false;
+        }
+        true
+    }
+}
+
+impl std::fmt::Display for RawUri {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        write!(f, "{}", self.raw_string)
+    }
+}
+
+impl std::fmt::Display for Uri {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        let url = self
+            .parts
+            .iter()
+            .map(|part| part.encoded())
+            .collect::<Vec<_>>();
+        write!(f, "/{}", url.join("/"))
+    }
+}
+
+impl FromStr for Uri {
+    type Err = ParseUriError;
+    fn from_str(s: &str) -> Result<Self, Self::Err> {
+        let split = s.split('/');
+        let mut result = Vec::new();
+        for sub in split {
+            if sub.is_empty() {
+                continue;
+            }
+            result.push(if let Ok(coded) = UrlEncodeData::from_encoded(sub) {
+                coded
+            } else {
+                UrlEncodeData::from_raw(sub)
+            });
+        }
+        Ok(Self { parts: result })
+    }
+}
+
+impl FromStr for RawUri {
+    type Err = UriError;
+
+    fn from_str(s: &str) -> Result<Self, Self::Err> {
+        let parts = s.split('/').collect::<Vec<&str>>();
+        let mut result = Self {
+            infinte_end: false,
+            parts: Vec::new(),
+            raw_string: parts.join("/"),
+        };
+        for part in parts {
+            if part.is_empty() {
+                continue;
+            }
+            if part.starts_with('<') && part.ends_with("..>") {
+                result.infinte_end = true;
+                break;
+            }
+            if part.starts_with('<') && part.ends_with('>') {
+                result.parts.push(RawUriElement::Variable);
+                continue;
+            }
+            result
+                .parts
+                .push(RawUriElement::Name(UrlEncodeData::from_raw(part)))
+        }
+        Ok(result)
+    }
+}
+
+#[cfg(test)]
+mod test {
+    use crate::utils::{
+        url_utils::{
+            datatypes::{RawUri, RawUriElement},
+            Uri,
+        },
+        urlencoded::UrlEncodeData,
+    };
+
+    #[test]
+    fn uri_to_string() {
+        assert_eq!("/a/%20", Uri::new(vec!["a", " "]).to_string());
+    }
+
+    #[test]
+    fn uri_from_string() {
+        assert_eq!(Uri::new(vec!["a", " "]), "/a/%20".parse().unwrap())
+    }
+
+    #[test]
+    fn raw_uri_from_string() {
+        assert_eq!(
+            RawUri {
+                raw_string: "/<name>/a/<f..>".to_owned(),
+                infinte_end: true,
+                parts: vec![
+                    RawUriElement::Variable,
+                    RawUriElement::Name(UrlEncodeData::from_raw("a")),
+                ]
+            },
+            "/<name>/a/<f..>".parse().unwrap()
+        );
+    }
+
+    #[test]
+    fn raw_uri_to_string() {
+        assert_eq!(
+            "/<name>/a/<f..>",
+            RawUri {
+                raw_string: "/<name>/a/<f..>".to_owned(),
+                infinte_end: true,
+                parts: vec![
+                    RawUriElement::Variable,
+                    RawUriElement::Name(UrlEncodeData::from_raw("a")),
+                ]
+            }
+            .to_string()
+        )
+    }
+}
diff --git a/core/http/src/utils/urlencoded/datatypes.rs b/core/http/src/utils/urlencoded/datatypes.rs
new file mode 100644
index 0000000000000000000000000000000000000000..32079556861b204ba03c414b1fe1c0832faa2029
--- /dev/null
+++ b/core/http/src/utils/urlencoded/datatypes.rs
@@ -0,0 +1,74 @@
+use crate::utils::urlencoded::endecode::EnCodable;
+
+use super::endecode::DeCodable;
+
+#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Debug)]
+/// A way to store UrlEncoded data
+pub struct UrlEncodeData {
+    /// Encoded string
+    pub(crate) encoded: String,
+    /// raw data, unencoded
+    pub(crate) raw: Vec<u8>,
+    /// raw string if it exists
+    pub(crate) raw_string: Option<String>,
+}
+
+#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
+pub enum UrlEncodeError {
+    NonHexAfterPercent,
+}
+
+#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
+pub struct ParseUrlEncodeError {
+    pub inner: UrlEncodeError,
+}
+
+impl std::fmt::Display for ParseUrlEncodeError {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        write!(f, "{:?}", self)
+    }
+}
+
+impl std::error::Error for ParseUrlEncodeError {}
+
+impl UrlEncodeData {
+    /// Generates a [UrlEncodeData] from any raw data that can be a slice of [u8]
+    pub fn from_raw<T: AsRef<[u8]>>(raw: T) -> Self {
+        Self {
+            raw: raw.as_ref().to_owned(),
+            encoded: raw.encode(),
+            raw_string: String::from_utf8(raw.as_ref().into()).ok(),
+        }
+    }
+    /// Generates a [UrlEncodeData] from a correctly encoded string
+    ///
+    /// # Errors
+    ///
+    /// errors if the encoded data is wrongly encoded -> %<invalid_character>
+    pub fn from_encoded(encoded: &str) -> super::UriParseResult<Self> {
+        Ok(Self {
+            encoded: encoded.to_owned(),
+            raw: encoded.decode()?,
+            raw_string: String::from_utf8(encoded.decode()?).ok(),
+        })
+    }
+
+    /// Gets a reference to the encoded data
+    pub fn encoded(&self) -> &str {
+        self.encoded.as_ref()
+    }
+    /// Get a reference to the raw [u8] slice
+    pub fn raw(&self) -> &[u8] {
+        self.raw.as_ref()
+    }
+    /// Gets an Optional string slice to the raw data
+    pub fn raw_string(&self) -> Option<&str> {
+        self.raw_string.as_deref()
+    }
+}
+
+impl std::fmt::Display for UrlEncodeData {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        write!(f, "{}", self.encoded)
+    }
+}
diff --git a/core/http/src/utils/urlencoded/endecode.rs b/core/http/src/utils/urlencoded/endecode.rs
new file mode 100644
index 0000000000000000000000000000000000000000..8a77253972bde4185914391294ab4670c35f4e75
--- /dev/null
+++ b/core/http/src/utils/urlencoded/endecode.rs
@@ -0,0 +1,112 @@
+use super::{datatypes::ParseUrlEncodeError, UriParseResult};
+
+/// Base of the HexaDecimal Number system
+static BASE16_HEXA_DECIMAL: u8 = 0x10;
+/// Highest possible Value per digit
+static BASE16_HEXA_DECIMAL_POSSIBLE_VALUE_PER_DIGIT: u8 = 0xF;
+/// Bits of a hexa decimal number
+static BASE16_HEXA_DECIMAL_DIGIT_BITS: u8 = 4;
+
+pub trait EnCodable {
+    /// Encodes the give data into a Percent Encoded [String]
+    fn encode(&self) -> String;
+}
+
+pub trait DeCodable {
+    /// Decodes the given data into a [`Vec<u8>`]
+    ///
+    /// # Errors
+    /// Errors if the encoding isn't right
+    fn decode(&self) -> UriParseResult<Vec<u8>>;
+}
+
+impl<T: AsRef<[u8]>> EnCodable for T {
+    fn encode(&self) -> String {
+        self.as_ref().encode()
+    }
+}
+
+impl EnCodable for [u8] {
+    fn encode(self: &[u8]) -> String {
+        let mut result = String::with_capacity(self.len());
+        let result_vec = unsafe { result.as_mut_vec() };
+        self.iter().for_each(|byte| {
+            if !matches!(byte, b'0'..=b'9' | b'A'..=b'Z' | b'a'..=b'z' | b'-' | b'_' | b'.' | b'~')
+            {
+                result_vec.push(b'%');
+                result_vec.push(hex_to_digit(byte >> BASE16_HEXA_DECIMAL_DIGIT_BITS));
+                result_vec.push(hex_to_digit(
+                    byte & BASE16_HEXA_DECIMAL_POSSIBLE_VALUE_PER_DIGIT,
+                ));
+            } else {
+                result_vec.push(*byte)
+            }
+        });
+        result
+    }
+}
+impl DeCodable for &str {
+    fn decode(&self) -> UriParseResult<Vec<u8>> {
+        let mut first = true;
+        let mut result = Vec::with_capacity(self.len());
+
+        for i in self.split('%') {
+            if first {
+                first = false;
+                result.extend_from_slice(i.as_bytes());
+                continue;
+            }
+            let Ok(char) = u8::from_str_radix(i[0..=1].as_ref(), BASE16_HEXA_DECIMAL.into()) else {
+                    return Err(ParseUrlEncodeError { inner: super::datatypes::UrlEncodeError::NonHexAfterPercent });
+            };
+            result.push(char);
+            result.extend_from_slice(i[2..].as_bytes());
+        }
+        Ok(result)
+    }
+}
+
+/// converts a [u8] digit into the ascii code of its counterpart. The digit shouldn't be bigger
+/// than [BASE16_HEXA_DECIMAL_POSSIBLE_VALUE_PER_DIGIT]
+fn hex_to_digit(digit: u8) -> u8 {
+    match digit {
+        0..=9 => b'0' + digit,
+        10..=255 => b'A' + digit - 10,
+    }
+}
+
+#[cfg(test)]
+mod test {
+    use crate::utils::urlencoded::endecode::DeCodable;
+    use crate::utils::urlencoded::endecode::EnCodable;
+
+    #[test]
+    fn urlencoded_test() {
+        assert_eq!(
+            "Darius%20is%20the%20biggest%20genius%2FGenie%2FHuman%20extraordin%C3%A4ire",
+            b"Darius is the biggest genius/Genie/Human extraordin\xC3\xA4ire".encode()
+        );
+    }
+    #[test]
+    fn urldecoded_test() {
+        assert_eq!(
+            "Darius is the biggest genius/Genie/Human extraordinäire",
+            String::from_utf8(
+                "Darius%20is%20the%20biggest%20genius%2FGenie%2FHuman%20extraordin%C3%A4ire"
+                    .decode()
+                    .unwrap()
+            )
+            .unwrap()
+        );
+        assert_eq!(
+            Err(crate::utils::urlencoded::datatypes::ParseUrlEncodeError {
+                inner: crate::utils::urlencoded::datatypes::UrlEncodeError::NonHexAfterPercent
+            }),
+            "Darius%2iis%20the%20biggest%20genius%2FGenie%2FHuman%20extraordin%C3%A4ire".decode()
+        );
+        assert_eq!(
+            "hi?asdf=sadf%%&jkl=s",
+            String::from_utf8("hi?asdf=sadf%25%25&jkl=s".decode().unwrap()).unwrap()
+        )
+    }
+}
diff --git a/core/http/src/utils/urlencoded/mod.rs b/core/http/src/utils/urlencoded/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..bf5f2929e3402acbbe07cce909947008a7d15a96
--- /dev/null
+++ b/core/http/src/utils/urlencoded/mod.rs
@@ -0,0 +1,7 @@
+mod datatypes;
+mod endecode;
+use std::result;
+
+type UriParseResult<T> = result::Result<T, datatypes::ParseUrlEncodeError>;
+pub use datatypes::UrlEncodeData;
+pub use endecode::{DeCodable, EnCodable};
diff --git a/examples/1.rs b/examples/1.rs
new file mode 100644
index 0000000000000000000000000000000000000000..8d6483429f19c02d5d2559d6d4821bd1f30cd112
--- /dev/null
+++ b/examples/1.rs
@@ -0,0 +1,113 @@
+
+use std::{collections::HashMap, path::PathBuf};
+
+use http::handling::{
+    file_handlers::NamedFile,
+    methods::Method,
+    request::{Request, ParseFormError},
+    response::{Outcome, Response, Status},
+    routes::{Data, Route},
+};
+
+fn hashmap_to_string(map: &HashMap<&str, Result<&str, ParseFormError>>) -> String {
+    let mut result = String::new();
+    for (key, value) in map {
+        result.push_str(key);
+        result.push('=');
+        result.push_str(value.as_ref().unwrap());
+        result.push(';');
+    }
+    result.pop(); // Remove the trailing semicolon if desired
+    result
+}
+
+fn handle_static_hi(request: Request<>, data: Data) -> Outcome<Response, Status, Data> {
+    let keys = if let Ok(keys) = request.get_get_form_keys(&["asdf", "jkl"]) {
+        keys
+    } else {
+        return Outcome::Forward(data);
+    };
+    let response = hashmap_to_string(&keys);
+    Outcome::Success(Response {
+        headers: vec![],
+        cookies: None,
+        status: Some(Status::Ok),
+        body: Box::new(response),
+    })
+    // Outcome::Forward(data)
+}
+
+fn handler(request: Request<>, _data: Data) -> Outcome<Response, Status, Data> {
+    let response = fileserver(request.uri.raw_string().unwrap().strip_prefix("static/").unwrap());
+    let response = match response {
+        Ok(dat) => Response {
+            headers: vec![],
+            cookies: None,
+            status: Some(Status::Ok),
+            body: Box::new(dat),
+        },
+        Err(_) => return Outcome::Failure(Status::NotFound),
+    };
+    Outcome::Success(response)
+}
+
+fn fileserver(path: &str) -> Result<NamedFile, Status> {
+    NamedFile::open(PathBuf::from("static/".to_string() + path))
+}
+
+fn post_hi_handler(request: Request, data: Data) -> Outcome<Response, Status, Data> {
+    if data.is_empty() {
+        return Outcome::Forward(data);
+    }
+    let dat = if let Ok(val) = request.get_post_data(&["message"], &data) {
+        post_hi(String::from_utf8_lossy(val.get("message").unwrap().as_ref().unwrap()).to_string())
+    } else {
+        return Outcome::Failure(Status::BadRequest);
+    };
+    Outcome::Success(Response {
+        headers: vec![],
+        cookies: None,
+        status: Some(Status::Ok),
+        body: Box::new(dat),
+    })
+}
+
+fn post_hi(msg: String) -> String {
+    msg
+}
+
+#[tokio::main]
+async fn main() {
+    let fileserver = Route {
+        format: None,
+        handler,
+        name: Some("file_server"),
+        uri: "static/<path..>",
+        method: Method::Get,
+        rank: 1,
+    };
+
+    let post_test = Route {
+        format: None,
+        handler: post_hi_handler,
+        name: Some("post_test"),
+        uri: "post",
+        method: Method::Post,
+        rank: 0,
+    };
+
+    let static_hi = Route {
+        format: None,
+        handler: handle_static_hi,
+        name: Some("Handle_Static_hi"),
+        uri: "static/hi",
+        method: Method::Get,
+        rank: 0,
+    };
+    http::build("127.0.0.1:8080", "127.0.0.1:8443")
+        .await
+        .mount("/", vec![fileserver, post_test, static_hi])
+        .mount("/post/", vec![post_test])
+        .launch()
+        .await;
+}
diff --git a/generatersenum.py b/generatersenum.py
new file mode 100644
index 0000000000000000000000000000000000000000..2c686bd3723dfe71e8fd961c918f3da077a628d3
--- /dev/null
+++ b/generatersenum.py
@@ -0,0 +1,73 @@
+import csv
+
+
+def generate_rust_enum(csv_file):
+    rust_enum = "use phf::phf_map;\n\nenum Mime {\n"
+
+    with open(csv_file, "r") as file:
+        csv_data = csv.reader(file)
+        next(csv_data)  # Skip the header row
+
+        for row in csv_data:
+            if row[1] == "":
+                continue
+            if "DEPRECATED" in row[0]:
+                continue
+            name = format_enum_member(row[0:2])
+            rust_enum += f"\t{name},\n"
+
+    rust_enum += "}\n\n"
+    rust_enum += "impl std::fmt::Display for Mime {\n"
+    rust_enum += "\tfn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {\n"
+    rust_enum += "\t\tmatch self {\n"
+
+    with open(csv_file, "r") as file:
+        csv_data = csv.reader(file)
+        next(csv_data)  # Skip the header row
+        for row in csv_data:
+            if row[1] == "":
+                continue
+            if "DEPRECATED" in row[0]:
+                continue
+            name = format_enum_member(row[0:2])
+            rust_enum += f'\t\t\tMime::{name} => write!(f, "{row[1]}"),\n'
+
+    rust_enum += "\t\t}\n\t}\n}\n\n"
+
+    rust_enum += "static MimeMap: phf::Map<&'static str, Mime> = phf_map! {\n"
+    with open(csv_file, "r") as file:
+        csv_data = csv.reader(file)
+        next(csv_data)
+        for row in csv_data:
+            if row[1] == "":
+                continue
+            if "DEPRECATED" in row[0]:
+                continue
+            key = row[1]
+            value = format_enum_member(row[0:2])
+            rust_enum += f'\t"{key}" => Mime::{value},\n'
+    rust_enum += "};"
+
+    return rust_enum
+
+
+def format_enum_member(name):
+    prefix = "".join(name[1].split("/")[0:-1])
+    name = name[0].split("-")
+    words = []
+    parts = []
+    for part in name:
+        parts += part.split("+")
+    for part in parts:
+        words += part.split(".")
+
+    formatted_name = "".join(word.capitalize() for word in words)
+    if not formatted_name.startswith(prefix.capitalize()):
+        formatted_name = prefix.capitalize() + formatted_name
+    return formatted_name
+
+
+# Usage example
+csv_file = "mimes.csv"
+rust_enum_code = generate_rust_enum(csv_file)
+print(rust_enum_code)
diff --git a/site/404.html b/site/404.html
new file mode 100644
index 0000000000000000000000000000000000000000..b5a9b4aacc5cc6a062e6c97e8b959a9148ff2f8f
--- /dev/null
+++ b/site/404.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <title>404</title>
+  </head>
+  <body>
+    <h1>404</h1>
+    <p>Hi from Rust</p>
+    <form action="/post/post" method="post" enctype="multipart/form-data">
+      <label for="message">Enter your message:</label>
+      <input type="text" id="message" name="message" />
+      <button type="submit">Send</button>
+    </form>
+    <form action="/static/hi" method="get">
+      <label for="jump">Enter asdf</label>
+      <input type="text" id="jump" name="asdf" />
+      <label for="jkl">Enter jkl;</label>
+      <input type="text" id="jkl" name="jkl" />
+      <button type="submit">Send</button>
+    </form>
+  </body>
+</html>
diff --git a/site/411.html b/site/411.html
new file mode 100644
index 0000000000000000000000000000000000000000..802df869502c653815ec84b8fbc2c90854bf871f
--- /dev/null
+++ b/site/411.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+
+<html>
+  <head>
+    <meta charset="utf-8" />
+    <title>411</title>
+  </head>
+  <h1>411</h1>
+</html>
diff --git a/site/Cargo.lock b/site/Cargo.lock
index d1bf5078f09d5e69784d6dfd70bfab679737d362..8373d437f28e393a378f4a04ae77f127649ecccc 100644
--- a/site/Cargo.lock
+++ b/site/Cargo.lock
@@ -2,6 +2,727 @@
 # It is not intended for manual editing.
 version = 3
 
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bytes"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+
+[[package]]
+name = "cc"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "core-foundation"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+
+[[package]]
+name = "errno"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "fastrand"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "hermit-abi"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+
+[[package]]
+name = "http"
+version = "0.1.0"
+dependencies = [
+ "phf",
+ "tokio",
+ "tokio-native-tls",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi 0.3.2",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.144"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+[[package]]
+name = "lock_api"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+
+[[package]]
+name = "mio"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eebffdb73fe72e917997fad08bdbf31ac50b0fa91cec93e69a0662e4264d454c"
+dependencies = [
+ "libc",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "native-tls"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+dependencies = [
+ "hermit-abi 0.2.6",
+ "libc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+
+[[package]]
+name = "openssl"
+version = "0.10.55"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
+dependencies = [
+ "bitflags",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.18",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.90"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.2.16",
+ "smallvec",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "phf"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c"
+dependencies = [
+ "phf_macros",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92aacdc5f16768709a569e913f7451034034178b05bdc8acda226659a3dccc66"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.59"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "rustix"
+version = "0.37.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+dependencies = [
+ "bitflags",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "security-framework"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8"
+dependencies = [
+ "bitflags",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+
 [[package]]
 name = "site"
 version = "0.1.0"
+dependencies = [
+ "http",
+ "tokio",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+
+[[package]]
+name = "socket2"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "fastrand",
+ "redox_syscall 0.3.5",
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio"
+version = "1.28.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
+dependencies = [
+ "autocfg",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "parking_lot",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.18",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.0",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.0",
+ "windows_aarch64_msvc 0.48.0",
+ "windows_i686_gnu 0.48.0",
+ "windows_i686_msvc 0.48.0",
+ "windows_x86_64_gnu 0.48.0",
+ "windows_x86_64_gnullvm 0.48.0",
+ "windows_x86_64_msvc 0.48.0",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
diff --git a/site/Cargo.toml b/site/Cargo.toml
index e6a315340d89f3e8aa591389c7be8147b0c83995..1d8b4005c671ad045ca83a15315ba430f0a5f99f 100644
--- a/site/Cargo.toml
+++ b/site/Cargo.toml
@@ -5,4 +5,7 @@ edition = "2021"
 
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
+
 [dependencies]
+http = { path = "../core/http", features = ["secure"]}
+tokio = { version = "1.28.2", features = ["full"] }
diff --git a/site/assets/favicon.svg b/site/assets/favicon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b4d91476b910e4581810b8fc8924869a7a8f381f
--- /dev/null
+++ b/site/assets/favicon.svg
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
+
+<svg
+   fill="#000000"
+   height="800px"
+   width="800px"
+   version="1.1"
+   id="Capa_1"
+   viewBox="0 0 511 511"
+   xml:space="preserve"
+   sodipodi:docname="favicon.svg"
+   inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg"><defs
+   id="defs290" /><sodipodi:namedview
+   id="namedview288"
+   pagecolor="#505050"
+   bordercolor="#eeeeee"
+   borderopacity="1"
+   inkscape:showpageshadow="0"
+   inkscape:pageopacity="0"
+   inkscape:pagecheckerboard="0"
+   inkscape:deskcolor="#505050"
+   showgrid="false"
+   inkscape:zoom="1.51125"
+   inkscape:cx="390.73615"
+   inkscape:cy="400"
+   inkscape:window-width="5120"
+   inkscape:window-height="1387"
+   inkscape:window-x="0"
+   inkscape:window-y="28"
+   inkscape:window-maximized="1"
+   inkscape:current-layer="Capa_1" />
+<g
+   id="g285"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1">
+	<path
+   d="M487.5,128.106H479v-24.5c0-2.905-1.678-5.549-4.307-6.786C405.088,64.066,325.408,63.6,255.5,95.371   C185.592,63.6,105.912,64.067,36.307,96.82C33.678,98.057,32,100.701,32,103.606v24.5h-8.5c-12.958,0-23.5,10.542-23.5,23.5v264   c0,12.958,10.542,23.5,23.5,23.5h464c12.958,0,23.5-10.542,23.5-23.5v-264C511,138.648,500.458,128.106,487.5,128.106z    M263,239.583c0-0.009,0-0.019,0-0.028V108.416c64.137-28.707,136.861-28.707,201,0v27.161c0,0.01-0.001,0.02-0.001,0.029   s0.001,0.02,0.001,0.029v244.438c-32.237-13.461-66.371-20.193-100.5-20.193c-34.129,0-68.264,6.732-100.5,20.193V239.583z    M215,96.391c11.187,3.204,22.217,7.198,33,12.025v117.177l-12.34-8.227c-2.52-1.68-5.801-1.68-8.32,0L215,225.593V96.391z    M47,135.626c0-0.007,0.001-0.013,0.001-0.02S47,135.594,47,135.587v-27.171c48.563-21.736,102.046-26.999,153-15.82v32.856   c-26.767-5.505-54.078-6.777-81.328-3.75c-4.117,0.457-7.083,4.165-6.626,8.282c0.458,4.116,4.162,7.085,8.282,6.626   c26.708-2.967,53.479-1.562,79.671,4.165v48.686c-15.912-3.265-32.14-5.067-48.377-5.323c-4.145-0.078-7.552,3.239-7.618,7.38   c-0.065,4.142,3.239,7.552,7.38,7.618c16.331,0.258,32.654,2.164,48.614,5.647v16.66c-43.389-8.909-88.39-6.644-130.748,6.665   c-3.952,1.241-6.148,5.451-4.907,9.403c1.007,3.204,3.964,5.254,7.153,5.254c0.745,0,1.502-0.112,2.25-0.347   c40.908-12.852,84.428-14.773,126.252-5.638v2.825c0,2.766,1.522,5.308,3.961,6.612c2.438,1.306,5.398,1.162,7.699-0.372   l19.84-13.227l16.5,11v136.454c-32.237-13.461-66.371-20.193-100.5-20.193c-34.129,0-68.264,6.732-100.5,20.193V135.626z    M224,424.106H23.5c-4.687,0-8.5-3.813-8.5-8.5v-264c0-4.687,3.813-8.5,8.5-8.5H32v248.5v8c0,4.142,3.358,7.5,7.5,7.5H224V424.106z    M57.29,392.106c58.099-22.934,122.32-22.935,180.42,0H57.29z M272,424.106h-33v-17h33V424.106z M453.71,392.106H273.29   C331.389,369.172,395.61,369.172,453.71,392.106z M496,415.606c0,4.687-3.813,8.5-8.5,8.5H287v-17h184.5c4.142,0,7.5-3.358,7.5-7.5   v-8v-248.5h8.5c4.687,0,8.5,3.813,8.5,8.5V415.606z"
+   id="path243"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M309.96,317.749c-8.302,1.74-16.615,3.911-24.708,6.454c-3.952,1.242-6.148,5.452-4.907,9.403   c1.007,3.204,3.964,5.254,7.153,5.254c0.745,0,1.502-0.112,2.25-0.347c7.628-2.396,15.464-4.443,23.288-6.083   c4.054-0.85,6.652-4.825,5.802-8.879C317.989,319.497,314.011,316.9,309.96,317.749z"
+   id="path245"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M439.502,338.859c3.189,0,6.147-2.051,7.153-5.254c1.241-3.952-0.956-8.162-4.907-9.403   c-32.073-10.076-65.329-13.842-98.844-11.188c-4.129,0.326-7.211,3.938-6.885,8.068s3.935,7.213,8.068,6.885   c31.59-2.499,62.935,1.048,93.165,10.546C438,338.748,438.757,338.859,439.502,338.859z"
+   id="path247"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M287.498,306.767c0.745,0,1.502-0.112,2.25-0.347c48.249-15.159,99.256-15.159,147.504,0   c3.952,1.24,8.162-0.956,9.403-4.907c1.241-3.952-0.956-8.162-4.907-9.403c-51.191-16.083-105.306-16.083-156.496,0   c-3.952,1.241-6.149,5.451-4.907,9.403C281.352,304.716,284.309,306.767,287.498,306.767z"
+   id="path249"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M287.498,274.859c0.745,0,1.502-0.112,2.25-0.347c27.681-8.697,56.409-12.412,85.399-11.037   c4.147,0.192,7.651-2.999,7.847-7.137c0.196-4.138-2.999-7.65-7.137-7.847c-30.753-1.456-61.236,2.483-90.605,11.71   c-3.952,1.242-6.149,5.452-4.907,9.403C281.352,272.81,284.309,274.859,287.498,274.859z"
+   id="path251"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M441.748,260.202c-10.76-3.38-21.846-6.086-32.952-8.043c-4.08-0.719-7.968,2.006-8.688,6.085   c-0.719,4.079,2.005,7.969,6.085,8.688c10.467,1.844,20.917,4.395,31.058,7.581c0.749,0.235,1.505,0.347,2.25,0.347   c3.189,0,6.147-2.051,7.153-5.254C447.896,265.653,445.7,261.443,441.748,260.202z"
+   id="path253"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M287.498,242.767c0.745,0,1.502-0.112,2.25-0.347c48.249-15.159,99.256-15.159,147.504,0   c3.952,1.24,8.162-0.956,9.403-4.907c1.241-3.952-0.956-8.162-4.907-9.403c-51.191-16.083-105.306-16.083-156.496,0   c-3.952,1.241-6.149,5.451-4.907,9.403C281.352,240.716,284.309,242.767,287.498,242.767z"
+   id="path255"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M334.678,185.702c-16.732,1.858-33.362,5.36-49.426,10.407c-3.952,1.241-6.148,5.451-4.907,9.403   c1.007,3.204,3.964,5.254,7.153,5.254c0.745,0,1.502-0.112,2.25-0.347c15.141-4.757,30.815-8.057,46.585-9.809   c4.117-0.457,7.083-4.165,6.626-8.282S338.79,185.244,334.678,185.702z"
+   id="path257"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M367.386,199.137c23.725,0.375,47.231,4.17,69.866,11.283c0.748,0.234,1.505,0.347,2.25,0.347   c3.189,0,6.146-2.051,7.153-5.254c1.241-3.952-0.956-8.162-4.907-9.403c-24.015-7.545-48.955-11.572-74.125-11.97   c-4.125-0.078-7.552,3.239-7.618,7.38S363.244,199.072,367.386,199.137z"
+   id="path259"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M390.671,168.704c4.116,0.46,7.825-2.509,8.282-6.626c0.458-4.117-2.509-7.825-6.626-8.282   c-36.252-4.027-72.278-0.526-107.075,10.406c-3.952,1.242-6.148,5.452-4.907,9.403c1.007,3.204,3.964,5.254,7.153,5.254   c0.745,0,1.502-0.112,2.25-0.347C322.545,168.208,356.5,164.909,390.671,168.704z"
+   id="path261"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M441.748,164.202c-5.418-1.702-10.96-3.246-16.472-4.588c-4.03-0.98-8.082,1.488-9.062,5.512   c-0.98,4.024,1.488,8.082,5.512,9.062c5.196,1.265,10.419,2.72,15.526,4.324c0.748,0.235,1.505,0.347,2.25,0.347   c3.189,0,6.147-2.051,7.153-5.254C447.896,169.653,445.7,165.443,441.748,164.202z"
+   id="path263"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M287.498,146.767c0.745,0,1.502-0.112,2.25-0.347c5.103-1.604,10.325-3.058,15.521-4.324   c4.024-0.98,6.492-5.037,5.512-9.062s-5.038-6.492-9.062-5.512c-5.513,1.342-11.053,2.886-16.468,4.587   c-3.951,1.242-6.148,5.452-4.907,9.403C281.352,144.716,284.309,146.767,287.498,146.767z"
+   id="path265"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M336.329,136.611c34.172-3.796,68.126-0.496,100.923,9.809c0.748,0.234,1.505,0.347,2.25,0.347   c3.189,0,6.146-2.051,7.153-5.254c1.241-3.952-0.956-8.162-4.907-9.403c-34.797-10.933-70.824-14.435-107.076-10.406   c-4.117,0.457-7.083,4.165-6.626,8.282C328.504,134.102,332.21,137.07,336.329,136.611z"
+   id="path267"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M93.96,317.749c-8.302,1.74-16.615,3.911-24.708,6.454c-3.952,1.242-6.148,5.452-4.907,9.403   c1.007,3.204,3.964,5.254,7.153,5.254c0.745,0,1.502-0.112,2.25-0.347c7.628-2.396,15.464-4.443,23.288-6.083   c4.054-0.85,6.652-4.825,5.802-8.879S98.011,316.9,93.96,317.749z"
+   id="path269"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M223.502,338.859c3.189,0,6.147-2.051,7.153-5.254c1.241-3.952-0.956-8.162-4.907-9.403   c-32.073-10.076-65.331-13.842-98.844-11.188c-4.129,0.326-7.211,3.938-6.885,8.068s3.934,7.213,8.068,6.885   c31.591-2.499,62.935,1.048,93.165,10.546C222,338.748,222.757,338.859,223.502,338.859z"
+   id="path271"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M71.498,306.767c0.745,0,1.502-0.112,2.25-0.347c48.249-15.159,99.256-15.159,147.504,0   c3.952,1.24,8.162-0.956,9.403-4.907c1.241-3.952-0.956-8.162-4.907-9.403c-51.191-16.083-105.307-16.083-156.496,0   c-3.952,1.241-6.149,5.451-4.907,9.403C65.352,304.716,68.309,306.767,71.498,306.767z"
+   id="path273"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M71.498,274.859c0.745,0,1.502-0.112,2.25-0.347c27.681-8.697,56.411-12.412,85.399-11.037   c4.158,0.192,7.65-2.999,7.847-7.137c0.196-4.138-2.999-7.65-7.137-7.847c-30.756-1.456-61.236,2.483-90.605,11.71   c-3.952,1.242-6.149,5.452-4.907,9.403C65.352,272.81,68.309,274.859,71.498,274.859z"
+   id="path275"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M190.194,266.932c10.467,1.844,20.917,4.395,31.058,7.581c0.749,0.235,1.505,0.347,2.25,0.347   c3.189,0,6.147-2.051,7.153-5.254c1.241-3.952-0.956-8.162-4.907-9.403c-10.76-3.38-21.846-6.086-32.952-8.043   c-4.079-0.719-7.969,2.006-8.688,6.085C183.39,262.323,186.114,266.213,190.194,266.932z"
+   id="path277"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M118.678,185.702c-16.732,1.858-33.362,5.36-49.426,10.407c-3.952,1.241-6.148,5.451-4.907,9.403   c1.007,3.204,3.964,5.254,7.153,5.254c0.745,0,1.502-0.112,2.25-0.347c15.141-4.757,30.815-8.057,46.585-9.809   c4.117-0.457,7.083-4.165,6.626-8.282C126.503,188.212,122.788,185.244,118.678,185.702z"
+   id="path279"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M64.345,173.605c1.007,3.204,3.964,5.254,7.153,5.254c0.745,0,1.502-0.112,2.25-0.347   c32.797-10.305,66.752-13.604,100.923-9.809c4.116,0.46,7.825-2.509,8.282-6.626c0.458-4.117-2.509-7.825-6.626-8.282   c-36.253-4.027-72.278-0.526-107.075,10.406C65.3,165.444,63.104,169.654,64.345,173.605z"
+   id="path281"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+	<path
+   d="M71.498,146.767c0.745,0,1.502-0.112,2.25-0.347c5.103-1.604,10.325-3.058,15.521-4.324   c4.024-0.98,6.492-5.037,5.512-9.062s-5.038-6.492-9.062-5.512c-5.513,1.342-11.053,2.886-16.468,4.587   c-3.951,1.242-6.148,5.452-4.907,9.403C65.352,144.716,68.309,146.767,71.498,146.767z"
+   id="path283"
+   style="stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
+</g>
+</svg>
diff --git a/site/src/main.rs b/site/src/main.rs
index e7a11a969c037e00a796aafeff6258501ec15e9a..3520b3bd3c4dd083cea7c153cd36180312dff64f 100644
--- a/site/src/main.rs
+++ b/site/src/main.rs
@@ -1,3 +1,75 @@
-fn main() {
-    println!("Hello, world!");
+use http::handling::{methods::Method, routes::{Route, Data}, request::Request, response::{Response, Outcome, Status}, file_handlers::NamedFile};
+
+fn static_files_handler(request: Request<>, _data: Data) -> Outcome<Response, Status, Data> {
+    let response = static_files(request.uri.raw_string().unwrap());
+    let response = match response {
+        Ok(dat) => Response {
+            headers: vec![],
+            cookies: None,
+            status: Some(Status::Ok),
+            body: Box::new(dat),
+        },
+        Err(_) => return Outcome::Failure(Status::NotFound),
+    };
+    Outcome::Success(response)
+}
+
+fn static_files(path: &str) -> Result<NamedFile, Status> {
+    NamedFile::open(("static/".to_string() + path).into())
+}
+
+fn index_handler(_request: Request, _data: Data) -> Outcome<Response, Status, Data> {
+    Outcome::Success(Response { headers: vec![], cookies: None, status: None, body: Box::new(index()) })
+}
+
+fn index() -> NamedFile {
+    NamedFile::open("templates/index.html".into()).unwrap()
+}
+
+fn favicon_handler(_request: Request, _data: Data) -> Outcome<Response, Status, Data> {
+    let response = Response {
+        headers: vec![],
+        cookies: None, 
+        status: None,
+        body: Box::new(NamedFile::open("/assets/favicon.svg".into()).unwrap())
+    };
+    Outcome::Success(response)
+}
+
+#[tokio::main]
+async fn main() {
+    let index_route = Route {
+        format: None,
+        handler: index_handler,
+        name: Some("index"),
+        uri: "",
+        method: Method::Get,
+        rank: 0,
+    };
+
+    let static_route = Route { 
+        format: None,
+        handler: static_files_handler,
+        name: Some("static files"),
+        uri: "",
+        method: Method::Get,
+        rank: 0
+    };
+
+    let favicon = Route {
+        format: None, 
+        handler: favicon_handler,
+        name: Some("favicon"),
+        uri: "favicon.ico",
+        method: Method::Get,
+        rank: 0
+    };
+
+    // http::build("127.0.0.1:8000")
+    http::build("127.0.0.1:8443", "127.0.0.1:8080")
+        .await
+        .mount("/", vec![index_route, favicon])
+        .mount("/static", vec![static_route])
+        .launch()
+        .await;
 }
diff --git a/site/static/style.css b/site/static/style.css
new file mode 100644
index 0000000000000000000000000000000000000000..27589ec6d20134a278d02f57fe10c5f40ea056e5
--- /dev/null
+++ b/site/static/style.css
@@ -0,0 +1,16 @@
+body {
+  background-color: #212121;
+  color: #ffffff;
+  font-family:
+    system-ui,
+    -apple-system,
+    BlinkMacSystemFont,
+    "Segoe UI",
+    Roboto,
+    Oxygen,
+    Ubuntu,
+    Cantarell,
+    "Open Sans",
+    "Helvetica Neue",
+    sans-serif;
+}
diff --git a/site/static/table.html b/site/static/table.html
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/site/templates/index.html b/site/templates/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..7dc2842858c99981c04ebbb86641ad3a0f15d7e6
--- /dev/null
+++ b/site/templates/index.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <title>LMS - The Library Management System</title>
+    <link rel="stylesheet" href="/static/style.css" />
+  </head>
+  <body>
+    <header>
+      <nav>
+        <div>LOGO</div>
+        <div>
+          <div>Dashboard</div>
+          <div>Books</div>
+          <div>Magazines</div>
+          <div>Newspapers</div>
+        </div>
+      </nav>
+    </header>
+  </body>
+</html>
diff --git a/small.csv b/small.csv
new file mode 100644
index 0000000000000000000000000000000000000000..aa3809cbacfbe48e7c7ad0d29099295f648890c0
--- /dev/null
+++ b/small.csv
@@ -0,0 +1,20 @@
+Name, format, asdf
+vnd.motorola.video,video/vnd.motorola.video,[Tom_McGinty]
+vnd.motorola.videop,video/vnd.motorola.videop,[Tom_McGinty]
+vnd.mpegurl,video/vnd.mpegurl,[Heiko_Recktenwald]
+vnd.ms-playready.media.pyv,video/vnd.ms-playready.media.pyv,[Steve_DiAcetis]
+vnd.nokia.interleaved-multimedia,video/vnd.nokia.interleaved-multimedia,[Petteri_Kangaslampi]
+vnd.nokia.mp4vr,video/vnd.nokia.mp4vr,[Miska_M._Hannuksela]
+vnd.nokia.videovoip,video/vnd.nokia.videovoip,[Nokia]
+vnd.objectvideo,video/vnd.objectvideo,[John_Clark]
+vnd.radgamettools.bink,video/vnd.radgamettools.bink,[Henrik_Andersson]
+vnd.radgamettools.smacker,video/vnd.radgamettools.smacker,[Henrik_Andersson]
+vnd.sealed.mpeg1,video/vnd.sealed.mpeg1,[David_Petersen]
+vnd.sealed.mpeg4,video/vnd.sealed.mpeg4,[David_Petersen]
+vnd.sealed.swf,video/vnd.sealed.swf,[David_Petersen]
+vnd.sealedmedia.softseal.mov,video/vnd.sealedmedia.softseal.mov,[David_Petersen]
+vnd.uvvu.mp4,video/vnd.uvvu.mp4,[Michael_A_Dolan]
+vnd.youtube.yt,video/vnd.youtube.yt,[Google]
+vnd.vivo,video/vnd.vivo,[John_Wolfe]
+VP8,video/VP8,[RFC7741]
+VP9,video/VP9,[RFC-ietf-payload-vp9-16]
diff --git a/tree.txt b/tree.txt
new file mode 100644
index 0000000000000000000000000000000000000000..05d432b7e346d3f283399b681f39d6cb0463c3fd
--- /dev/null
+++ b/tree.txt
@@ -0,0 +1,44 @@
+.
+├── core
+│   ├── codegen
+│   │   ├── Cargo.lock
+│   │   ├── Cargo.toml
+│   │   ├── src
+│   │   │   └── lib.rs
+│   ├── html
+│   │   ├── Cargo.lock
+│   │   ├── Cargo.toml
+│   │   └── src
+│   │       └── lib.rs
+│   └── http
+│       ├── Cargo.lock
+│       ├── Cargo.toml
+│       └── src
+│           ├── handlers
+│           │   ├── file_handlers.rs
+│           │   ├── handlers.rs
+│           │   └── mod.rs
+│           ├── lib.rs
+│           ├── routing
+│           │   ├── methods.rs
+│           │   ├── mod.rs
+│           │   └── routes.rs
+│           ├── setup.rs
+│           ├── threading.rs
+│           └── utils
+│               └── mod.rs
+├── README.md
+├── site
+│   ├── 404.html
+│   ├── Cargo.lock
+│   ├── Cargo.toml
+│   ├── hello.css
+│   ├── img.jpg
+│   ├── src
+│   │   └── main.rs
+│   ├── static
+│   │   └── hello.html
+│   └── target
+│       └── CACHEDIR.TAG
+└── tree.txt
+