diff --git a/bin/httpsrv b/bin/httpsrv index 12b1a95..859eb5e 100755 Binary files a/bin/httpsrv and b/bin/httpsrv differ diff --git a/lib/mime.h b/lib/mime.h index 42d8826..2e5cd76 100644 --- a/lib/mime.h +++ b/lib/mime.h @@ -26,26 +26,6069 @@ int getMime(char** mime, char* filename) { *mime = "text/plain"; return 0; } - } else { - if (!strcmp(dot, ".html")) { - *mime = "text/html"; - } else if (!strcmp(dot, ".css")) { - *mime = "text/css"; - } else if (!strcmp(dot, ".js")) { - *mime = "text/javascript"; - } else if (!strcmp(dot, ".woff2")) { - *mime = "font/woff2"; - return 1; - } else if (!strcmp(dot, ".ico")) { - *mime = "image/vnd.microsoft.icon"; - return 1; - } else if (!strcmp(dot, ".png")) { - *mime = "image/png"; - return 1; - } else if (!strcmp(dot, ".json")) { + } else { if (0) {} + else if (!strcmp(dot, ".js")) { + *mime = "application/javascript"; + } + else if (!strcmp(dot, ".mjs")) { + *mime = "application/javascript"; + } + else if (!strcmp(dot, ".json")) { *mime = "application/json"; + } + else if (!strcmp(dot, ".webmanifest")) { + *mime = "application/manifest+json"; + return 1; + } + else if (!strcmp(dot, ".doc")) { + *mime = "application/msword"; + return 1; + } + else if (!strcmp(dot, ".dot")) { + *mime = "application/msword"; + return 1; + } + else if (!strcmp(dot, ".wiz")) { + *mime = "application/msword"; + return 1; + } + else if (!strcmp(dot, ".bin")) { + *mime = "application/octet-stream"; + return 1; + } + else if (!strcmp(dot, ".a")) { + *mime = "text/vnd.a"; + } + else if (!strcmp(dot, ".dll")) { + *mime = "application/x-msdownload"; + return 1; + } + else if (!strcmp(dot, ".exe")) { + *mime = "application/x-msdownload"; + return 1; + } + else if (!strcmp(dot, ".o")) { + *mime = "application/octet-stream"; + return 1; + } + else if (!strcmp(dot, ".obj")) { + *mime = "application/x-tgif"; + return 1; + } + else if (!strcmp(dot, ".so")) { + *mime = "application/octet-stream"; + return 1; + } + else if (!strcmp(dot, ".oda")) { + *mime = "application/oda"; + return 1; + } + else if (!strcmp(dot, ".pdf")) { + *mime = "application/pdf"; + return 1; + } + else if (!strcmp(dot, ".p7c")) { + *mime = "application/pkcs7-mime"; + return 1; + } + else if (!strcmp(dot, ".ps")) { + *mime = "application/postscript"; + return 1; + } + else if (!strcmp(dot, ".ai")) { + *mime = "application/postscript"; + return 1; + } + else if (!strcmp(dot, ".eps")) { + *mime = "application/postscript"; + return 1; + } + else if (!strcmp(dot, ".m3u")) { + *mime = "audio/x-mpegurl"; + return 1; + } + else if (!strcmp(dot, ".m3u8")) { + *mime = "application/vnd.apple.mpegurl"; + return 1; + } + else if (!strcmp(dot, ".xls")) { + *mime = "application/vnd.ms-excel"; + return 1; + } + else if (!strcmp(dot, ".xlb")) { + *mime = "application/vnd.ms-excel"; + return 1; + } + else if (!strcmp(dot, ".ppt")) { + *mime = "application/vnd.ms-powerpoint"; + return 1; + } + else if (!strcmp(dot, ".pot")) { + *mime = "application/vnd.ms-powerpoint"; + return 1; + } + else if (!strcmp(dot, ".ppa")) { + *mime = "application/vnd.ms-powerpoint"; + return 1; + } + else if (!strcmp(dot, ".pps")) { + *mime = "application/vnd.ms-powerpoint"; + return 1; + } + else if (!strcmp(dot, ".pwz")) { + *mime = "application/vnd.ms-powerpoint"; + return 1; + } + else if (!strcmp(dot, ".wasm")) { + *mime = "application/wasm"; + return 1; + } + else if (!strcmp(dot, ".bcpio")) { + *mime = "application/x-bcpio"; + return 1; + } + else if (!strcmp(dot, ".cpio")) { + *mime = "application/x-cpio"; + return 1; + } + else if (!strcmp(dot, ".csh")) { + *mime = "application/x-csh"; + return 1; + } + else if (!strcmp(dot, ".dvi")) { + *mime = "application/x-dvi"; + return 1; + } + else if (!strcmp(dot, ".gtar")) { + *mime = "application/x-gtar"; + return 1; + } + else if (!strcmp(dot, ".hdf")) { + *mime = "application/x-hdf"; + return 1; + } + else if (!strcmp(dot, ".h5")) { + *mime = "application/mipc"; + return 1; + } + else if (!strcmp(dot, ".latex")) { + *mime = "application/x-latex"; + return 1; + } + else if (!strcmp(dot, ".mif")) { + *mime = "application/vnd.mif"; + return 1; + } + else if (!strcmp(dot, ".cdf")) { + *mime = "application/x-netcdf"; + return 1; + } + else if (!strcmp(dot, ".nc")) { + *mime = "application/x-netcdf"; + return 1; + } + else if (!strcmp(dot, ".p12")) { + *mime = "application/x-pkcs12"; + return 1; + } + else if (!strcmp(dot, ".pfx")) { + *mime = "application/x-pkcs12"; + return 1; + } + else if (!strcmp(dot, ".ram")) { + *mime = "audio/x-pn-realaudio"; + return 1; + } + else if (!strcmp(dot, ".pyc")) { + *mime = "application/x-python-code"; + return 1; + } + else if (!strcmp(dot, ".pyo")) { + *mime = "model/vnd.pytha.pyox"; + return 1; + } + else if (!strcmp(dot, ".sh")) { + *mime = "application/x-sh"; + } + else if (!strcmp(dot, ".shar")) { + *mime = "application/x-shar"; + } + else if (!strcmp(dot, ".swf")) { + *mime = "application/x-shockwave-flash"; + } + else if (!strcmp(dot, ".sv4cpio")) { + *mime = "application/x-sv4cpio"; + return 1; + } + else if (!strcmp(dot, ".sv4crc")) { + *mime = "application/x-sv4crc"; + return 1; + } + else if (!strcmp(dot, ".tar")) { + *mime = "application/x-tar"; + return 1; + } + else if (!strcmp(dot, ".tcl")) { + *mime = "application/x-tcl"; + return 1; + } + else if (!strcmp(dot, ".tex")) { + *mime = "application/x-tex"; + return 1; + } + else if (!strcmp(dot, ".texi")) { + *mime = "application/x-texinfo"; + return 1; + } + else if (!strcmp(dot, ".texinfo")) { + *mime = "application/x-texinfo"; + return 1; + } + else if (!strcmp(dot, ".roff")) { + *mime = "text/troff"; + } + else if (!strcmp(dot, ".t")) { + *mime = "text/troff"; + } + else if (!strcmp(dot, ".tr")) { + *mime = "text/troff"; + } + else if (!strcmp(dot, ".man")) { + *mime = "text/troff"; + } + else if (!strcmp(dot, ".me")) { + *mime = "text/troff"; + } + else if (!strcmp(dot, ".ms")) { + *mime = "text/troff"; + } + else if (!strcmp(dot, ".ustar")) { + *mime = "application/x-ustar"; + return 1; + } + else if (!strcmp(dot, ".src")) { + *mime = "application/x-wais-source"; + return 1; + } + else if (!strcmp(dot, ".xsl")) { + *mime = "application/xml"; + } + else if (!strcmp(dot, ".rdf")) { + *mime = "application/rdf+xml"; + return 1; + } + else if (!strcmp(dot, ".wsdl")) { + *mime = "application/wsdl+xml"; + return 1; + } + else if (!strcmp(dot, ".xpdl")) { + *mime = "application/xml"; + } + else if (!strcmp(dot, ".zip")) { + *mime = "application/zip"; + return 1; + } + else if (!strcmp(dot, ".3gp")) { + *mime = "video/3gpp"; + return 1; + } + else if (!strcmp(dot, ".3gpp")) { + *mime = "video/3gpp"; + return 1; + } + else if (!strcmp(dot, ".3g2")) { + *mime = "video/3gpp2"; + return 1; + } + else if (!strcmp(dot, ".3gpp2")) { + *mime = "video/3gpp2"; + return 1; + } + else if (!strcmp(dot, ".aac")) { + *mime = "audio/x-aac"; + return 1; + } + else if (!strcmp(dot, ".adts")) { + *mime = "audio/aac"; + return 1; + } + else if (!strcmp(dot, ".loas")) { + *mime = "audio/usac"; + return 1; + } + else if (!strcmp(dot, ".ass")) { + *mime = "audio/aac"; + return 1; + } + else if (!strcmp(dot, ".au")) { + *mime = "audio/basic"; + return 1; + } + else if (!strcmp(dot, ".snd")) { + *mime = "audio/basic"; + return 1; + } + else if (!strcmp(dot, ".mp3")) { + *mime = "audio/mpeg"; + return 1; + } + else if (!strcmp(dot, ".mp2")) { + *mime = "audio/mpeg"; + return 1; + } + else if (!strcmp(dot, ".opus")) { + *mime = "audio/ogg"; + return 1; + } + else if (!strcmp(dot, ".aif")) { + *mime = "audio/x-aiff"; + return 1; + } + else if (!strcmp(dot, ".aifc")) { + *mime = "audio/x-aiff"; + return 1; + } + else if (!strcmp(dot, ".aiff")) { + *mime = "audio/x-aiff"; + return 1; + } + else if (!strcmp(dot, ".ra")) { + *mime = "audio/x-pn-realaudio"; + return 1; + } + else if (!strcmp(dot, ".wav")) { + *mime = "audio/x-wav"; + return 1; + } + else if (!strcmp(dot, ".bmp")) { + *mime = "image/bmp"; + return 1; + } + else if (!strcmp(dot, ".gif")) { + *mime = "image/gif"; + return 1; + } + else if (!strcmp(dot, ".ief")) { + *mime = "image/ief"; + return 1; + } + else if (!strcmp(dot, ".jpg")) { + *mime = "image/jpeg"; + return 1; + } + else if (!strcmp(dot, ".jpe")) { + *mime = "image/jpeg"; + return 1; + } + else if (!strcmp(dot, ".jpeg")) { + *mime = "image/jpeg"; + return 1; + } + else if (!strcmp(dot, ".heic")) { + *mime = "image/heic"; + return 1; + } + else if (!strcmp(dot, ".heif")) { + *mime = "image/heif"; + return 1; + } + else if (!strcmp(dot, ".png")) { + *mime = "image/png"; + return 1; + } + else if (!strcmp(dot, ".svg")) { + *mime = "image/svg+xml"; + return 1; + } + else if (!strcmp(dot, ".tiff")) { + *mime = "image/tiff"; + return 1; + } + else if (!strcmp(dot, ".tif")) { + *mime = "image/tiff"; + return 1; + } + else if (!strcmp(dot, ".ico")) { + *mime = "image/x-icon"; + return 1; + } + else if (!strcmp(dot, ".ras")) { + *mime = "image/x-cmu-raster"; + return 1; + } + else if (!strcmp(dot, ".pnm")) { + *mime = "image/x-portable-anymap"; + return 1; + } + else if (!strcmp(dot, ".pbm")) { + *mime = "image/x-portable-bitmap"; + return 1; + } + else if (!strcmp(dot, ".pgm")) { + *mime = "image/x-portable-graymap"; + return 1; + } + else if (!strcmp(dot, ".ppm")) { + *mime = "image/x-portable-pixmap"; + return 1; + } + else if (!strcmp(dot, ".rgb")) { + *mime = "image/x-rgb"; + return 1; + } + else if (!strcmp(dot, ".xbm")) { + *mime = "image/x-xbitmap"; + return 1; + } + else if (!strcmp(dot, ".xpm")) { + *mime = "image/x-xpixmap"; + return 1; + } + else if (!strcmp(dot, ".xwd")) { + *mime = "image/x-xwindowdump"; + return 1; + } + else if (!strcmp(dot, ".eml")) { + *mime = "message/rfc822"; + return 1; + } + else if (!strcmp(dot, ".mht")) { + *mime = "message/rfc822"; + return 1; + } + else if (!strcmp(dot, ".mhtml")) { + *mime = "message/rfc822"; + return 1; + } + else if (!strcmp(dot, ".nws")) { + *mime = "message/rfc822"; + return 1; + } + else if (!strcmp(dot, ".css")) { + *mime = "text/css"; + } + else if (!strcmp(dot, ".csv")) { + *mime = "text/csv"; + } + else if (!strcmp(dot, ".html")) { + *mime = "text/html"; + } + else if (!strcmp(dot, ".htm")) { + *mime = "text/html"; + } + else if (!strcmp(dot, ".txt")) { + *mime = "text/plain"; + } + else if (!strcmp(dot, ".bat")) { + *mime = "application/x-msdownload"; + return 1; + } + else if (!strcmp(dot, ".c")) { + *mime = "text/x-c"; + } + else if (!strcmp(dot, ".h")) { + *mime = "text/x-c"; + } + else if (!strcmp(dot, ".ksh")) { + *mime = "text/plain"; + } + else if (!strcmp(dot, ".pl")) { + *mime = "application/x-perl"; + return 1; + } + else if (!strcmp(dot, ".rtx")) { + *mime = "text/richtext"; + } + else if (!strcmp(dot, ".tsv")) { + *mime = "text/tab-separated-values"; + } + else if (!strcmp(dot, ".py")) { + *mime = "text/x-python"; + } + else if (!strcmp(dot, ".etx")) { + *mime = "text/x-setext"; + } + else if (!strcmp(dot, ".sgm")) { + *mime = "text/sgml"; + } + else if (!strcmp(dot, ".sgml")) { + *mime = "text/sgml"; + } + else if (!strcmp(dot, ".vcf")) { + *mime = "text/x-vcard"; + } + else if (!strcmp(dot, ".xml")) { + *mime = "application/xml"; + } + else if (!strcmp(dot, ".mp4")) { + *mime = "video/mp4"; + return 1; + } + else if (!strcmp(dot, ".mpeg")) { + *mime = "video/mpeg"; + return 1; + } + else if (!strcmp(dot, ".m1v")) { + *mime = "video/mpeg"; + return 1; + } + else if (!strcmp(dot, ".mpa")) { + *mime = "video/mpeg"; + return 1; + } + else if (!strcmp(dot, ".mpe")) { + *mime = "video/mpeg"; + return 1; + } + else if (!strcmp(dot, ".mpg")) { + *mime = "video/mpeg"; + return 1; + } + else if (!strcmp(dot, ".mov")) { + *mime = "video/quicktime"; + return 1; + } + else if (!strcmp(dot, ".qt")) { + *mime = "video/quicktime"; + return 1; + } + else if (!strcmp(dot, ".webm")) { + *mime = "video/webm"; + return 1; + } + else if (!strcmp(dot, ".avi")) { + *mime = "video/x-msvideo"; + return 1; + } + else if (!strcmp(dot, ".movie")) { + *mime = "video/x-sgi-movie"; + return 1; + } + else if (!strcmp(dot, ".a2l")) { + *mime = "application/A2L"; + return 1; + } + else if (!strcmp(dot, ".aml")) { + *mime = "application/AML"; + return 1; + } + else if (!strcmp(dot, ".ez")) { + *mime = "application/andrew-inset"; + return 1; + } + else if (!strcmp(dot, ".atf")) { + *mime = "application/ATF"; + return 1; + } + else if (!strcmp(dot, ".atfx")) { + *mime = "application/ATFX"; + return 1; + } + else if (!strcmp(dot, ".atxml")) { + *mime = "application/ATXML"; + return 1; + } + else if (!strcmp(dot, ".atom")) { + *mime = "application/atom+xml"; + return 1; + } + else if (!strcmp(dot, ".atomcat")) { + *mime = "application/atomcat+xml"; + return 1; + } + else if (!strcmp(dot, ".atomdeleted")) { + *mime = "application/atomdeleted+xml"; + return 1; + } + else if (!strcmp(dot, ".atomsvc")) { + *mime = "application/atomsvc+xml"; + return 1; + } + else if (!strcmp(dot, ".dwd")) { + *mime = "application/atsc-dwd+xml"; + return 1; + } + else if (!strcmp(dot, ".held")) { + *mime = "application/atsc-held+xml"; + return 1; + } + else if (!strcmp(dot, ".rsat")) { + *mime = "application/atsc-rsat+xml"; + return 1; + } + else if (!strcmp(dot, ".apxml")) { + *mime = "application/auth-policy+xml"; + return 1; + } + else if (!strcmp(dot, ".xdd")) { + *mime = "application/bacnet-xdd+zip"; + return 1; + } + else if (!strcmp(dot, ".xcs")) { + *mime = "application/calendar+xml"; + return 1; + } + else if (!strcmp(dot, ".cbor")) { + *mime = "application/cbor"; + return 1; + } + else if (!strcmp(dot, ".c3ex")) { + *mime = "application/cccex"; + return 1; + } + else if (!strcmp(dot, ".ccmp")) { + *mime = "application/ccmp+xml"; + return 1; + } + else if (!strcmp(dot, ".ccxml")) { + *mime = "application/ccxml+xml"; + return 1; + } + else if (!strcmp(dot, ".cdfx")) { + *mime = "application/CDFX+XML"; + return 1; + } + else if (!strcmp(dot, ".cdmia")) { + *mime = "application/cdmi-capability"; + return 1; + } + else if (!strcmp(dot, ".cdmic")) { + *mime = "application/cdmi-container"; + return 1; + } + else if (!strcmp(dot, ".cdmid")) { + *mime = "application/cdmi-domain"; + return 1; + } + else if (!strcmp(dot, ".cdmio")) { + *mime = "application/cdmi-object"; + return 1; + } + else if (!strcmp(dot, ".cdmiq")) { + *mime = "application/cdmi-queue"; + return 1; + } + else if (!strcmp(dot, ".cea")) { + *mime = "application/CEA"; + return 1; + } + else if (!strcmp(dot, ".cellml")) { + *mime = "application/cellml+xml"; + return 1; + } + else if (!strcmp(dot, ".cml")) { + *mime = "chemical/x-cml"; + return 1; + } + else if (!strcmp(dot, ".1clr")) { + *mime = "application/clr"; + return 1; + } + else if (!strcmp(dot, ".clue")) { + *mime = "application/clue_info+xml"; + return 1; + } + else if (!strcmp(dot, ".cmsc")) { + *mime = "application/cms"; + return 1; + } + else if (!strcmp(dot, ".cpl")) { + *mime = "application/cpl+xml"; + return 1; + } + else if (!strcmp(dot, ".csrattrs")) { + *mime = "application/csrattrs"; + return 1; + } + else if (!strcmp(dot, ".mpd")) { + *mime = "application/dash+xml"; + return 1; + } + else if (!strcmp(dot, ".mpdd")) { + *mime = "application/dashdelta"; + return 1; + } + else if (!strcmp(dot, ".davmount")) { + *mime = "application/davmount+xml"; + return 1; + } + else if (!strcmp(dot, ".dcd")) { + *mime = "application/DCD"; + return 1; + } + else if (!strcmp(dot, ".dcm")) { + *mime = "application/dicom"; + return 1; + } + else if (!strcmp(dot, ".dii")) { + *mime = "application/DII"; + return 1; + } + else if (!strcmp(dot, ".dit")) { + *mime = "application/DIT"; + return 1; + } + else if (!strcmp(dot, ".xmls")) { + *mime = "application/dskpp+xml"; + return 1; + } + else if (!strcmp(dot, ".dssc")) { + *mime = "application/dssc+der"; + return 1; + } + else if (!strcmp(dot, ".xdssc")) { + *mime = "application/dssc+xml"; + return 1; + } + else if (!strcmp(dot, ".dvc")) { + *mime = "application/dvcs"; + return 1; + } + else if (!strcmp(dot, ".es")) { + *mime = "application/ecmascript"; + return 1; + } + else if (!strcmp(dot, ".efi")) { + *mime = "application/efi"; + return 1; + } + else if (!strcmp(dot, ".emma")) { + *mime = "application/emma+xml"; + return 1; + } + else if (!strcmp(dot, ".emotionml")) { + *mime = "application/emotionml+xml"; + return 1; + } + else if (!strcmp(dot, ".epub")) { + *mime = "application/epub+zip"; + return 1; + } + else if (!strcmp(dot, ".exi")) { + *mime = "application/exi"; + return 1; + } + else if (!strcmp(dot, ".finf")) { + *mime = "application/fastinfoset"; + return 1; + } + else if (!strcmp(dot, ".fdt")) { + *mime = "application/fdt+xml"; + return 1; + } + else if (!strcmp(dot, ".pfr")) { + *mime = "application/font-tdpfr"; + return 1; + } + else if (!strcmp(dot, ".geojson")) { + *mime = "application/geo+json"; + return 1; + } + else if (!strcmp(dot, ".gpkg")) { + *mime = "application/geopackage+sqlite3"; + return 1; + } + else if (!strcmp(dot, ".glbin")) { + *mime = "application/gltf-buffer"; + return 1; + } + else if (!strcmp(dot, ".glbuf")) { + *mime = "application/gltf-buffer"; + return 1; + } + else if (!strcmp(dot, ".gml")) { + *mime = "application/gml+xml"; + return 1; + } + else if (!strcmp(dot, ".gz")) { + *mime = "application/gzip"; + return 1; + } + else if (!strcmp(dot, ".tgz")) { + *mime = "application/gzip"; + return 1; + } + else if (!strcmp(dot, ".stk")) { + *mime = "application/hyperstudio"; + return 1; + } + else if (!strcmp(dot, ".ink")) { + *mime = "application/inkml+xml"; + return 1; + } + else if (!strcmp(dot, ".inkml")) { + *mime = "application/inkml+xml"; + return 1; + } + else if (!strcmp(dot, ".ipfix")) { + *mime = "application/ipfix"; + return 1; + } + else if (!strcmp(dot, ".its")) { + *mime = "application/its+xml"; + return 1; + } + else if (!strcmp(dot, ".jrd")) { + *mime = "application/jrd+json"; + return 1; + } + else if (!strcmp(dot, ".json-patch")) { + *mime = "application/json-patch+json"; + } + else if (!strcmp(dot, ".jsonld")) { + *mime = "application/ld+json"; + return 1; + } + else if (!strcmp(dot, ".lgr")) { + *mime = "application/lgr+xml"; + return 1; + } + else if (!strcmp(dot, ".wlnk")) { + *mime = "application/link-format"; + return 1; + } + else if (!strcmp(dot, ".lostxml")) { + *mime = "application/lost+xml"; + return 1; + } + else if (!strcmp(dot, ".lostsyncxml")) { + *mime = "application/lostsync+xml"; + return 1; + } + else if (!strcmp(dot, ".lpf")) { + *mime = "application/lpf+zip"; + return 1; + } + else if (!strcmp(dot, ".lxf")) { + *mime = "application/LXF"; + return 1; + } + else if (!strcmp(dot, ".hqx")) { + *mime = "application/mac-binhex40"; + return 1; + } + else if (!strcmp(dot, ".mads")) { + *mime = "application/mads+xml"; + return 1; + } + else if (!strcmp(dot, ".mrc")) { + *mime = "application/marc"; + return 1; + } + else if (!strcmp(dot, ".mrcx")) { + *mime = "application/marcxml+xml"; + return 1; + } + else if (!strcmp(dot, ".nb")) { + *mime = "application/mathematica"; + return 1; + } + else if (!strcmp(dot, ".ma")) { + *mime = "application/mathematica"; + return 1; + } + else if (!strcmp(dot, ".mb")) { + *mime = "application/mathematica"; + return 1; + } + else if (!strcmp(dot, ".mml")) { + *mime = "application/mathml+xml"; + return 1; + } + else if (!strcmp(dot, ".mbox")) { + *mime = "application/mbox"; + return 1; + } + else if (!strcmp(dot, ".meta4")) { + *mime = "application/metalink4+xml"; + return 1; + } + else if (!strcmp(dot, ".mets")) { + *mime = "application/mets+xml"; + return 1; + } + else if (!strcmp(dot, ".mf4")) { + *mime = "application/MF4"; + return 1; + } + else if (!strcmp(dot, ".maei")) { + *mime = "application/mmt-aei+xml"; + return 1; + } + else if (!strcmp(dot, ".musd")) { + *mime = "application/mmt-usd+xml"; + return 1; + } + else if (!strcmp(dot, ".mods")) { + *mime = "application/mods+xml"; + return 1; + } + else if (!strcmp(dot, ".m21")) { + *mime = "application/mp21"; + return 1; + } + else if (!strcmp(dot, ".mp21")) { + *mime = "application/mp21"; + return 1; + } + else if (!strcmp(dot, ".mxf")) { + *mime = "application/mxf"; + return 1; + } + else if (!strcmp(dot, ".nq")) { + *mime = "application/n-quads"; + return 1; + } + else if (!strcmp(dot, ".nt")) { + *mime = "application/n-triples"; + return 1; + } + else if (!strcmp(dot, ".orq")) { + *mime = "application/ocsp-request"; + return 1; + } + else if (!strcmp(dot, ".ors")) { + *mime = "application/ocsp-response"; + return 1; + } + else if (!strcmp(dot, ".lha")) { + *mime = "application/x-lzh-compressed"; + return 1; + } + else if (!strcmp(dot, ".lzh")) { + *mime = "application/x-lzh-compressed"; + return 1; + } + else if (!strcmp(dot, ".class")) { + *mime = "application/java-vm"; + return 1; + } + else if (!strcmp(dot, ".img")) { + *mime = "application/octet-stream"; + return 1; + } + else if (!strcmp(dot, ".iso")) { + *mime = "application/x-iso9660-image"; + return 1; + } + else if (!strcmp(dot, ".odx")) { + *mime = "application/ODX"; + return 1; + } + else if (!strcmp(dot, ".opf")) { + *mime = "application/oebps-package+xml"; + return 1; + } + else if (!strcmp(dot, ".ogx")) { + *mime = "application/ogg"; + return 1; + } + else if (!strcmp(dot, ".oxps")) { + *mime = "application/oxps"; + return 1; + } + else if (!strcmp(dot, ".relo")) { + *mime = "application/p2p-overlay+xml"; + return 1; + } + else if (!strcmp(dot, ".pdx")) { + *mime = "application/PDX"; + return 1; + } + else if (!strcmp(dot, ".pem")) { + *mime = "application/pem-certificate-chain"; + return 1; + } + else if (!strcmp(dot, ".pgp")) { + *mime = "application/pgp-encrypted"; + return 1; + } + else if (!strcmp(dot, ".sig")) { + *mime = "application/pgp-signature"; + return 1; + } + else if (!strcmp(dot, ".p10")) { + *mime = "application/pkcs10"; + return 1; + } + else if (!strcmp(dot, ".p7m")) { + *mime = "application/pkcs7-mime"; + return 1; + } + else if (!strcmp(dot, ".p7s")) { + *mime = "application/pkcs7-signature"; + return 1; + } + else if (!strcmp(dot, ".p8")) { + *mime = "application/pkcs8"; + return 1; + } + else if (!strcmp(dot, ".p8e")) { + *mime = "application/pkcs8-encrypted"; + return 1; + } + else if (!strcmp(dot, ".cer")) { + *mime = "application/pkix-cert"; + return 1; + } + else if (!strcmp(dot, ".crl")) { + *mime = "application/pkix-crl"; + return 1; + } + else if (!strcmp(dot, ".pkipath")) { + *mime = "application/pkix-pkipath"; + return 1; + } + else if (!strcmp(dot, ".pki")) { + *mime = "application/pkixcmp"; + return 1; + } + else if (!strcmp(dot, ".pls")) { + *mime = "application/pls+xml"; + return 1; + } + else if (!strcmp(dot, ".provx")) { + *mime = "application/provenance+xml"; + return 1; + } + else if (!strcmp(dot, ".cw")) { + *mime = "application/prs.cww"; + return 1; + } + else if (!strcmp(dot, ".cww")) { + *mime = "application/prs.cww"; + return 1; + } + else if (!strcmp(dot, ".hpub")) { + *mime = "application/prs.hpub+zip"; + return 1; + } + else if (!strcmp(dot, ".rnd")) { + *mime = "application/prs.nprend"; + return 1; + } + else if (!strcmp(dot, ".rct")) { + *mime = "application/prs.nprend"; + return 1; + } + else if (!strcmp(dot, ".rdf-crypt")) { + *mime = "application/prs.rdf-xml-crypt"; + return 1; + } + else if (!strcmp(dot, ".xsf")) { + *mime = "application/prs.xsf+xml"; + return 1; + } + else if (!strcmp(dot, ".pskcxml")) { + *mime = "application/pskc+xml"; + return 1; + } + else if (!strcmp(dot, ".rapd")) { + *mime = "application/route-apd+xml"; + return 1; + } + else if (!strcmp(dot, ".sls")) { + *mime = "application/route-s-tsid+xml"; + return 1; + } + else if (!strcmp(dot, ".rusd")) { + *mime = "application/route-usd+xml"; + return 1; + } + else if (!strcmp(dot, ".rif")) { + *mime = "application/reginfo+xml"; + return 1; + } + else if (!strcmp(dot, ".rnc")) { + *mime = "application/relax-ng-compact-syntax"; + return 1; + } + else if (!strcmp(dot, ".rld")) { + *mime = "application/resource-lists-diff+xml"; + return 1; + } + else if (!strcmp(dot, ".rl")) { + *mime = "application/resource-lists+xml"; + return 1; + } + else if (!strcmp(dot, ".rfcxml")) { + *mime = "application/rfc+xml"; + return 1; + } + else if (!strcmp(dot, ".rs")) { + *mime = "application/rls-services+xml"; + return 1; + } + else if (!strcmp(dot, ".gbr")) { + *mime = "application/rpki-ghostbusters"; + return 1; + } + else if (!strcmp(dot, ".mft")) { + *mime = "application/rpki-manifest"; + return 1; + } + else if (!strcmp(dot, ".roa")) { + *mime = "application/rpki-roa"; + return 1; + } + else if (!strcmp(dot, ".rtf")) { + *mime = "application/rtf"; + return 1; + } + else if (!strcmp(dot, ".sarif-external-properties")) { + *mime = "application/sarif-external-properties+json"; + return 1; + } + else if (!strcmp(dot, ".sarif-external-properties.json")) { + *mime = "application/sarif-external-properties+json"; + return 1; + } + else if (!strcmp(dot, ".sarif")) { + *mime = "application/sarif+json"; + return 1; + } + else if (!strcmp(dot, ".sarif.json")) { + *mime = "application/sarif+json"; + return 1; + } + else if (!strcmp(dot, ".scim")) { + *mime = "application/scim+json"; + return 1; + } + else if (!strcmp(dot, ".scq")) { + *mime = "application/scvp-cv-request"; + return 1; + } + else if (!strcmp(dot, ".scs")) { + *mime = "application/scvp-cv-response"; + return 1; + } + else if (!strcmp(dot, ".spq")) { + *mime = "application/scvp-vp-request"; + return 1; + } + else if (!strcmp(dot, ".spp")) { + *mime = "application/scvp-vp-response"; + return 1; + } + else if (!strcmp(dot, ".sdp")) { + *mime = "application/sdp"; + return 1; + } + else if (!strcmp(dot, ".senml-etchc")) { + *mime = "application/senml-etch+cbor"; + return 1; + } + else if (!strcmp(dot, ".senml-etchj")) { + *mime = "application/senml-etch+json"; + return 1; + } + else if (!strcmp(dot, ".senmlc")) { + *mime = "application/senml+cbor"; + return 1; + } + else if (!strcmp(dot, ".senml")) { + *mime = "application/senml+json"; + return 1; + } + else if (!strcmp(dot, ".senmlx")) { + *mime = "application/senml+xml"; + return 1; + } + else if (!strcmp(dot, ".senmle")) { + *mime = "application/senml-exi"; + return 1; + } + else if (!strcmp(dot, ".sensmlc")) { + *mime = "application/sensml+cbor"; + return 1; + } + else if (!strcmp(dot, ".sensml")) { + *mime = "application/sensml+json"; + return 1; + } + else if (!strcmp(dot, ".sensmlx")) { + *mime = "application/sensml+xml"; + return 1; + } + else if (!strcmp(dot, ".sensmle")) { + *mime = "application/sensml-exi"; + return 1; + } + else if (!strcmp(dot, ".soc")) { + *mime = "application/sgml-open-catalog"; + return 1; + } + else if (!strcmp(dot, ".shf")) { + *mime = "application/shf+xml"; + return 1; + } + else if (!strcmp(dot, ".siv")) { + *mime = "application/sieve"; + return 1; + } + else if (!strcmp(dot, ".sieve")) { + *mime = "application/sieve"; + return 1; + } + else if (!strcmp(dot, ".cl")) { + *mime = "application/simple-filter+xml"; + return 1; + } + else if (!strcmp(dot, ".smil")) { + *mime = "application/smil+xml"; + return 1; + } + else if (!strcmp(dot, ".smi")) { + *mime = "application/smil+xml"; + return 1; + } + else if (!strcmp(dot, ".sml")) { + *mime = "application/smil+xml"; + return 1; + } + else if (!strcmp(dot, ".rq")) { + *mime = "application/sparql-query"; + return 1; + } + else if (!strcmp(dot, ".srx")) { + *mime = "application/sparql-results+xml"; + return 1; + } + else if (!strcmp(dot, ".sql")) { + *mime = "application/x-sql"; + return 1; + } + else if (!strcmp(dot, ".gram")) { + *mime = "application/srgs"; + return 1; + } + else if (!strcmp(dot, ".grxml")) { + *mime = "application/srgs+xml"; + return 1; + } + else if (!strcmp(dot, ".sru")) { + *mime = "application/sru+xml"; + return 1; + } + else if (!strcmp(dot, ".ssml")) { + *mime = "application/ssml+xml"; + return 1; + } + else if (!strcmp(dot, ".stix")) { + *mime = "application/stix+json"; + return 1; + } + else if (!strcmp(dot, ".swidtag")) { + *mime = "application/swid+xml"; + return 1; + } + else if (!strcmp(dot, ".tau")) { + *mime = "application/tamp-apex-update"; + return 1; + } + else if (!strcmp(dot, ".auc")) { + *mime = "application/tamp-apex-update-confirm"; + return 1; + } + else if (!strcmp(dot, ".tcu")) { + *mime = "application/tamp-community-update"; + return 1; + } + else if (!strcmp(dot, ".cuc")) { + *mime = "application/tamp-community-update-confirm"; + return 1; + } + else if (!strcmp(dot, ".jsontd")) { + *mime = "application/td+json"; + return 1; + } + else if (!strcmp(dot, ".ter")) { + *mime = "application/tamp-error"; + return 1; + } + else if (!strcmp(dot, ".tsa")) { + *mime = "application/tamp-sequence-adjust"; + return 1; + } + else if (!strcmp(dot, ".sac")) { + *mime = "application/tamp-sequence-adjust-confirm"; + return 1; + } + else if (!strcmp(dot, ".tur")) { + *mime = "application/tamp-update"; + return 1; + } + else if (!strcmp(dot, ".tuc")) { + *mime = "application/tamp-update-confirm"; + return 1; + } + else if (!strcmp(dot, ".tei")) { + *mime = "application/tei+xml"; + return 1; + } + else if (!strcmp(dot, ".teiCorpus")) { + *mime = "application/tei+xml"; + return 1; + } + else if (!strcmp(dot, ".odd")) { + *mime = "application/tei+xml"; + return 1; + } + else if (!strcmp(dot, ".tfi")) { + *mime = "application/thraud+xml"; + return 1; + } + else if (!strcmp(dot, ".tsq")) { + *mime = "application/timestamp-query"; + return 1; + } + else if (!strcmp(dot, ".tsr")) { + *mime = "application/timestamp-reply"; + return 1; + } + else if (!strcmp(dot, ".tsd")) { + *mime = "application/timestamped-data"; + return 1; + } + else if (!strcmp(dot, ".trig")) { + *mime = "application/trig"; + return 1; + } + else if (!strcmp(dot, ".ttml")) { + *mime = "application/ttml+xml"; + return 1; + } + else if (!strcmp(dot, ".gsheet")) { + *mime = "application/urc-grpsheet+xml"; + return 1; + } + else if (!strcmp(dot, ".rsheet")) { + *mime = "application/urc-ressheet+xml"; + return 1; + } + else if (!strcmp(dot, ".td")) { + *mime = "application/urc-targetdesc+xml"; + return 1; + } + else if (!strcmp(dot, ".uis")) { + *mime = "application/urc-uisocketdesc+xml"; + return 1; + } + else if (!strcmp(dot, ".1km")) { + *mime = "application/vnd.1000minds.decision-model+xml"; + return 1; + } + else if (!strcmp(dot, ".plb")) { + *mime = "application/vnd.3gpp.pic-bw-large"; + return 1; + } + else if (!strcmp(dot, ".psb")) { + *mime = "application/vnd.3gpp.pic-bw-small"; + return 1; + } + else if (!strcmp(dot, ".pvb")) { + *mime = "application/vnd.3gpp.pic-bw-var"; + return 1; + } + else if (!strcmp(dot, ".sms")) { + *mime = "application/vnd.3gpp2.sms"; + return 1; + } + else if (!strcmp(dot, ".tcap")) { + *mime = "application/vnd.3gpp2.tcap"; + return 1; + } + else if (!strcmp(dot, ".imgcal")) { + *mime = "application/vnd.3lightssoftware.imagescal"; + return 1; + } + else if (!strcmp(dot, ".pwn")) { + *mime = "application/vnd.3m.post-it-notes"; + return 1; + } + else if (!strcmp(dot, ".aso")) { + *mime = "application/vnd.accpac.simply.aso"; + return 1; + } + else if (!strcmp(dot, ".imp")) { + *mime = "application/vnd.accpac.simply.imp"; + return 1; + } + else if (!strcmp(dot, ".acu")) { + *mime = "application/vnd.acucobol"; + return 1; + } + else if (!strcmp(dot, ".atc")) { + *mime = "application/vnd.acucorp"; + return 1; + } + else if (!strcmp(dot, ".acutc")) { + *mime = "application/vnd.acucorp"; + return 1; + } + else if (!strcmp(dot, ".fcdt")) { + *mime = "application/vnd.adobe.formscentral.fcdt"; + return 1; + } + else if (!strcmp(dot, ".fxp")) { + *mime = "application/vnd.adobe.fxp"; + return 1; + } + else if (!strcmp(dot, ".fxpl")) { + *mime = "application/vnd.adobe.fxp"; + return 1; + } + else if (!strcmp(dot, ".xdp")) { + *mime = "application/vnd.adobe.xdp+xml"; + return 1; + } + else if (!strcmp(dot, ".xfdf")) { + *mime = "application/vnd.adobe.xfdf"; + return 1; + } + else if (!strcmp(dot, ".list3820")) { + *mime = "application/vnd.ibm.modcap"; + return 1; + } + else if (!strcmp(dot, ".listafp")) { + *mime = "application/vnd.ibm.modcap"; + return 1; + } + else if (!strcmp(dot, ".afp")) { + *mime = "application/vnd.ibm.modcap"; + return 1; + } + else if (!strcmp(dot, ".pseg3820")) { + *mime = "application/vnd.afpc.modca"; + return 1; + } + else if (!strcmp(dot, ".ovl")) { + *mime = "application/vnd.afpc.modca-overlay"; + return 1; + } + else if (!strcmp(dot, ".psg")) { + *mime = "application/vnd.afpc.modca-pagesegment"; + return 1; + } + else if (!strcmp(dot, ".ahead")) { + *mime = "application/vnd.ahead.space"; + return 1; + } + else if (!strcmp(dot, ".azf")) { + *mime = "application/vnd.airzip.filesecure.azf"; + return 1; + } + else if (!strcmp(dot, ".azs")) { + *mime = "application/vnd.airzip.filesecure.azs"; + return 1; + } + else if (!strcmp(dot, ".azw3")) { + *mime = "application/vnd.amazon.mobi8-ebook"; + return 1; + } + else if (!strcmp(dot, ".acc")) { + *mime = "application/vnd.americandynamics.acc"; + return 1; + } + else if (!strcmp(dot, ".ami")) { + *mime = "application/vnd.amiga.ami"; + return 1; + } + else if (!strcmp(dot, ".ota")) { + *mime = "application/vnd.android.ota"; + return 1; + } + else if (!strcmp(dot, ".apkg")) { + *mime = "application/vnd.anki"; + return 1; + } + else if (!strcmp(dot, ".cii")) { + *mime = "application/vnd.anser-web-certificate-issue-initiation"; + return 1; + } + else if (!strcmp(dot, ".fti")) { + *mime = "application/vnd.anser-web-funds-transfer-initiation"; + return 1; + } + else if (!strcmp(dot, ".dist")) { + *mime = "application/octet-stream"; + return 1; + } + else if (!strcmp(dot, ".distz")) { + *mime = "application/octet-stream"; + return 1; + } + else if (!strcmp(dot, ".pkg")) { + *mime = "application/octet-stream"; + return 1; + } + else if (!strcmp(dot, ".mpkg")) { + *mime = "application/vnd.apple.installer+xml"; + return 1; + } + else if (!strcmp(dot, ".keynote")) { + *mime = "application/vnd.apple.keynote"; + return 1; + } + else if (!strcmp(dot, ".numbers")) { + *mime = "application/vnd.apple.numbers"; + return 1; + } + else if (!strcmp(dot, ".pages")) { + *mime = "application/vnd.apple.pages"; + return 1; + } + else if (!strcmp(dot, ".swi")) { + *mime = "application/vnd.aristanetworks.swi"; + return 1; + } + else if (!strcmp(dot, ".artisan")) { + *mime = "application/vnd.artisan+json"; + return 1; + } + else if (!strcmp(dot, ".iota")) { + *mime = "application/vnd.astraea-software.iota"; + return 1; + } + else if (!strcmp(dot, ".aep")) { + *mime = "application/vnd.audiograph"; + return 1; + } + else if (!strcmp(dot, ".package")) { + *mime = "application/vnd.autopackage"; + return 1; + } + else if (!strcmp(dot, ".bmml")) { + *mime = "application/vnd.balsamiq.bmml+xml"; + return 1; + } + else if (!strcmp(dot, ".ac2")) { + *mime = "application/vnd.banana-accounting"; + return 1; + } + else if (!strcmp(dot, ".bmpr")) { + *mime = "application/vnd.balsamiq.bmpr"; + return 1; + } + else if (!strcmp(dot, ".mpm")) { + *mime = "application/vnd.blueice.multipass"; + return 1; + } + else if (!strcmp(dot, ".ep")) { + *mime = "application/vnd.bluetooth.ep.oob"; + return 1; + } + else if (!strcmp(dot, ".le")) { + *mime = "application/vnd.bluetooth.le.oob"; + return 1; + } + else if (!strcmp(dot, ".bmi")) { + *mime = "application/vnd.bmi"; + return 1; + } + else if (!strcmp(dot, ".rep")) { + *mime = "application/vnd.businessobjects"; + return 1; + } + else if (!strcmp(dot, ".tlclient")) { + *mime = "application/vnd.cendio.thinlinc.clientconf"; + return 1; + } + else if (!strcmp(dot, ".cdxml")) { + *mime = "application/vnd.chemdraw+xml"; + return 1; + } + else if (!strcmp(dot, ".pgn")) { + *mime = "application/x-chess-pgn"; + return 1; + } + else if (!strcmp(dot, ".mmd")) { + *mime = "application/vnd.chipnuts.karaoke-mmd"; + return 1; + } + else if (!strcmp(dot, ".cdy")) { + *mime = "application/vnd.cinderella"; + return 1; + } + else if (!strcmp(dot, ".csl")) { + *mime = "application/vnd.citationstyles.style+xml"; + return 1; + } + else if (!strcmp(dot, ".cla")) { + *mime = "application/vnd.claymore"; + return 1; + } + else if (!strcmp(dot, ".rp9")) { + *mime = "application/vnd.cloanto.rp9"; + return 1; + } + else if (!strcmp(dot, ".c4g")) { + *mime = "application/vnd.clonk.c4group"; + return 1; + } + else if (!strcmp(dot, ".c4d")) { + *mime = "application/vnd.clonk.c4group"; + return 1; + } + else if (!strcmp(dot, ".c4f")) { + *mime = "application/vnd.clonk.c4group"; + return 1; + } + else if (!strcmp(dot, ".c4p")) { + *mime = "application/vnd.clonk.c4group"; + return 1; + } + else if (!strcmp(dot, ".c4u")) { + *mime = "application/vnd.clonk.c4group"; + return 1; + } + else if (!strcmp(dot, ".c11amc")) { + *mime = "application/vnd.cluetrust.cartomobile-config"; + return 1; + } + else if (!strcmp(dot, ".c11amz")) { + *mime = "application/vnd.cluetrust.cartomobile-config-pkg"; + return 1; + } + else if (!strcmp(dot, ".coffee")) { + *mime = "application/vnd.coffeescript"; + return 1; + } + else if (!strcmp(dot, ".xodt")) { + *mime = "application/vnd.collabio.xodocuments.document"; + return 1; + } + else if (!strcmp(dot, ".xott")) { + *mime = "application/vnd.collabio.xodocuments.document-template"; + return 1; + } + else if (!strcmp(dot, ".xodp")) { + *mime = "application/vnd.collabio.xodocuments.presentation"; + return 1; + } + else if (!strcmp(dot, ".xotp")) { + *mime = "application/vnd.collabio.xodocuments.presentation-template"; + return 1; + } + else if (!strcmp(dot, ".xods")) { + *mime = "application/vnd.collabio.xodocuments.spreadsheet"; + return 1; + } + else if (!strcmp(dot, ".xots")) { + *mime = "application/vnd.collabio.xodocuments.spreadsheet-template"; + return 1; + } + else if (!strcmp(dot, ".cbr")) { + *mime = "application/x-cbr"; + return 1; + } + else if (!strcmp(dot, ".cbz")) { + *mime = "application/x-cbr"; + return 1; + } + else if (!strcmp(dot, ".ica")) { + *mime = "application/vnd.commerce-battelle"; + return 1; + } + else if (!strcmp(dot, ".icf")) { + *mime = "application/vnd.commerce-battelle"; + return 1; + } + else if (!strcmp(dot, ".icd")) { + *mime = "application/vnd.commerce-battelle"; + return 1; + } + else if (!strcmp(dot, ".ic0")) { + *mime = "application/vnd.commerce-battelle"; + return 1; + } + else if (!strcmp(dot, ".ic1")) { + *mime = "application/vnd.commerce-battelle"; + return 1; + } + else if (!strcmp(dot, ".ic2")) { + *mime = "application/vnd.commerce-battelle"; + return 1; + } + else if (!strcmp(dot, ".ic3")) { + *mime = "application/vnd.commerce-battelle"; + return 1; + } + else if (!strcmp(dot, ".ic4")) { + *mime = "application/vnd.commerce-battelle"; + return 1; + } + else if (!strcmp(dot, ".ic5")) { + *mime = "application/vnd.commerce-battelle"; + return 1; + } + else if (!strcmp(dot, ".ic6")) { + *mime = "application/vnd.commerce-battelle"; + return 1; + } + else if (!strcmp(dot, ".ic7")) { + *mime = "application/vnd.commerce-battelle"; + return 1; + } + else if (!strcmp(dot, ".ic8")) { + *mime = "application/vnd.commerce-battelle"; + return 1; + } + else if (!strcmp(dot, ".csp")) { + *mime = "application/vnd.commonspace"; + return 1; + } + else if (!strcmp(dot, ".cst")) { + *mime = "application/x-director"; + return 1; + } + else if (!strcmp(dot, ".cdbcmsg")) { + *mime = "application/vnd.contact.cmsg"; + return 1; + } + else if (!strcmp(dot, ".ign")) { + *mime = "application/vnd.coreos.ignition+json"; + return 1; + } + else if (!strcmp(dot, ".ignition")) { + *mime = "application/vnd.coreos.ignition+json"; + return 1; + } + else if (!strcmp(dot, ".cmc")) { + *mime = "application/vnd.cosmocaller"; + return 1; + } + else if (!strcmp(dot, ".clkx")) { + *mime = "application/vnd.crick.clicker"; + return 1; + } + else if (!strcmp(dot, ".clkk")) { + *mime = "application/vnd.crick.clicker.keyboard"; + return 1; + } + else if (!strcmp(dot, ".clkp")) { + *mime = "application/vnd.crick.clicker.palette"; + return 1; + } + else if (!strcmp(dot, ".clkt")) { + *mime = "application/vnd.crick.clicker.template"; + return 1; + } + else if (!strcmp(dot, ".clkw")) { + *mime = "application/vnd.crick.clicker.wordbank"; + return 1; + } + else if (!strcmp(dot, ".wbs")) { + *mime = "application/vnd.criticaltools.wbs+xml"; + return 1; + } + else if (!strcmp(dot, ".ssvc")) { + *mime = "application/vnd.crypto-shade-file"; + return 1; + } + else if (!strcmp(dot, ".c9r")) { + *mime = "application/vnd.cryptomator.encrypted"; + return 1; + } + else if (!strcmp(dot, ".c9s")) { + *mime = "application/vnd.cryptomator.encrypted"; + return 1; + } + else if (!strcmp(dot, ".cryptomator")) { + *mime = "application/vnd.cryptomator.vault"; + return 1; + } + else if (!strcmp(dot, ".pml")) { + *mime = "application/vnd.ctc-posml"; + return 1; + } + else if (!strcmp(dot, ".ppd")) { + *mime = "application/vnd.cups-ppd"; + return 1; + } + else if (!strcmp(dot, ".curl")) { + *mime = "text/vnd.curl"; + } + else if (!strcmp(dot, ".dart")) { + *mime = "application/vnd.dart"; + return 1; + } + else if (!strcmp(dot, ".rdz")) { + *mime = "application/vnd.data-vision.rdz"; + return 1; + } + else if (!strcmp(dot, ".dbf")) { + *mime = "application/vnd.dbf"; + return 1; + } + else if (!strcmp(dot, ".deb")) { + *mime = "application/x-debian-package"; + return 1; + } + else if (!strcmp(dot, ".udeb")) { + *mime = "application/x-debian-package"; + return 1; + } + else if (!strcmp(dot, ".uvf")) { + *mime = "application/vnd.dece.data"; + return 1; + } + else if (!strcmp(dot, ".uvvf")) { + *mime = "application/vnd.dece.data"; + return 1; + } + else if (!strcmp(dot, ".uvd")) { + *mime = "application/vnd.dece.data"; + return 1; + } + else if (!strcmp(dot, ".uvvd")) { + *mime = "application/vnd.dece.data"; + return 1; + } + else if (!strcmp(dot, ".uvt")) { + *mime = "application/vnd.dece.ttml+xml"; + return 1; + } + else if (!strcmp(dot, ".uvvt")) { + *mime = "application/vnd.dece.ttml+xml"; + return 1; + } + else if (!strcmp(dot, ".uvx")) { + *mime = "application/vnd.dece.unspecified"; + return 1; + } + else if (!strcmp(dot, ".uvvx")) { + *mime = "application/vnd.dece.unspecified"; + return 1; + } + else if (!strcmp(dot, ".uvz")) { + *mime = "application/vnd.dece.zip"; + return 1; + } + else if (!strcmp(dot, ".uvvz")) { + *mime = "application/vnd.dece.zip"; + return 1; + } + else if (!strcmp(dot, ".fe_launch")) { + *mime = "application/vnd.denovo.fcselayout-link"; + return 1; + } + else if (!strcmp(dot, ".dsm")) { + *mime = "application/vnd.desmume.movie"; + return 1; + } + else if (!strcmp(dot, ".dna")) { + *mime = "application/vnd.dna"; + return 1; + } + else if (!strcmp(dot, ".docjson")) { + *mime = "application/vnd.document+json"; + return 1; + } + else if (!strcmp(dot, ".scld")) { + *mime = "application/vnd.doremir.scorecloud-binary-document"; + return 1; + } + else if (!strcmp(dot, ".dpg")) { + *mime = "application/vnd.dpgraph"; + return 1; + } + else if (!strcmp(dot, ".mwc")) { + *mime = "application/vnd.dpgraph"; + return 1; + } + else if (!strcmp(dot, ".dpgraph")) { + *mime = "application/vnd.dpgraph"; + return 1; + } + else if (!strcmp(dot, ".dfac")) { + *mime = "application/vnd.dreamfactory"; + return 1; + } + else if (!strcmp(dot, ".fla")) { + *mime = "application/vnd.dtg.local.flash"; + return 1; + } + else if (!strcmp(dot, ".ait")) { + *mime = "application/vnd.dvb.ait"; + return 1; + } + else if (!strcmp(dot, ".svc")) { + *mime = "application/vnd.dvb.service"; + return 1; + } + else if (!strcmp(dot, ".geo")) { + *mime = "application/vnd.dynageo"; + return 1; + } + else if (!strcmp(dot, ".dzr")) { + *mime = "application/vnd.dzr"; + return 1; + } + else if (!strcmp(dot, ".mag")) { + *mime = "application/vnd.ecowin.chart"; + return 1; + } + else if (!strcmp(dot, ".nml")) { + *mime = "application/vnd.enliven"; + return 1; + } + else if (!strcmp(dot, ".esf")) { + *mime = "application/vnd.epson.esf"; + return 1; + } + else if (!strcmp(dot, ".msf")) { + *mime = "application/vnd.epson.msf"; + return 1; + } + else if (!strcmp(dot, ".qam")) { + *mime = "application/vnd.epson.quickanime"; + return 1; + } + else if (!strcmp(dot, ".slt")) { + *mime = "application/vnd.epson.salt"; + return 1; + } + else if (!strcmp(dot, ".ssf")) { + *mime = "application/vnd.epson.ssf"; + return 1; + } + else if (!strcmp(dot, ".qcall")) { + *mime = "application/vnd.ericsson.quickcall"; + return 1; + } + else if (!strcmp(dot, ".qca")) { + *mime = "application/vnd.ericsson.quickcall"; + return 1; + } + else if (!strcmp(dot, ".espass")) { + *mime = "application/vnd.espass-espass+zip"; + return 1; + } + else if (!strcmp(dot, ".es3")) { + *mime = "application/vnd.eszigno3+xml"; + return 1; + } + else if (!strcmp(dot, ".et3")) { + *mime = "application/vnd.eszigno3+xml"; + return 1; + } + else if (!strcmp(dot, ".asice")) { + *mime = "application/vnd.etsi.asic-e+zip"; + return 1; + } + else if (!strcmp(dot, ".sce")) { + *mime = "application/vnd.etsi.asic-e+zip"; + return 1; + } + else if (!strcmp(dot, ".asics")) { + *mime = "application/vnd.etsi.asic-s+zip"; + return 1; + } + else if (!strcmp(dot, ".tst")) { + *mime = "application/vnd.etsi.timestamp-token"; + return 1; + } + else if (!strcmp(dot, ".mpw")) { + *mime = "application/vnd.exstream-empower+zip"; + return 1; + } + else if (!strcmp(dot, ".pub")) { + *mime = "application/x-mspublisher"; + return 1; + } + else if (!strcmp(dot, ".ecigprofile")) { + *mime = "application/vnd.evolv.ecig.profile"; + return 1; + } + else if (!strcmp(dot, ".ecig")) { + *mime = "application/vnd.evolv.ecig.settings"; + return 1; + } + else if (!strcmp(dot, ".ecigtheme")) { + *mime = "application/vnd.evolv.ecig.theme"; + return 1; + } + else if (!strcmp(dot, ".ez2")) { + *mime = "application/vnd.ezpix-album"; + return 1; + } + else if (!strcmp(dot, ".ez3")) { + *mime = "application/vnd.ezpix-package"; + return 1; + } + else if (!strcmp(dot, ".dim")) { + *mime = "application/vnd.fastcopy-disk-image"; + return 1; + } + else if (!strcmp(dot, ".fdf")) { + *mime = "application/vnd.fdf"; + return 1; + } + else if (!strcmp(dot, ".msd")) { + *mime = "application/vnd.fdsn.mseed"; + return 1; + } + else if (!strcmp(dot, ".mseed")) { + *mime = "application/vnd.fdsn.mseed"; + return 1; + } + else if (!strcmp(dot, ".seed")) { + *mime = "application/vnd.fdsn.seed"; + return 1; + } + else if (!strcmp(dot, ".dataless")) { + *mime = "application/vnd.fdsn.seed"; + return 1; + } + else if (!strcmp(dot, ".flb")) { + *mime = "application/vnd.ficlab.flb+zip"; + return 1; + } + else if (!strcmp(dot, ".zfc")) { + *mime = "application/vnd.filmit.zfc"; + return 1; + } + else if (!strcmp(dot, ".gph")) { + *mime = "application/vnd.flographit"; + return 1; + } + else if (!strcmp(dot, ".ftc")) { + *mime = "application/vnd.fluxtime.clip"; + return 1; + } + else if (!strcmp(dot, ".sfd")) { + *mime = "application/vnd.font-fontforge-sfd"; + return 1; + } + else if (!strcmp(dot, ".fm")) { + *mime = "application/vnd.framemaker"; + return 1; + } + else if (!strcmp(dot, ".fnc")) { + *mime = "application/vnd.frogans.fnc"; + return 1; + } + else if (!strcmp(dot, ".ltf")) { + *mime = "application/vnd.frogans.ltf"; + return 1; + } + else if (!strcmp(dot, ".fsc")) { + *mime = "application/vnd.fsc.weblaunch"; + return 1; + } + else if (!strcmp(dot, ".oas")) { + *mime = "application/vnd.fujitsu.oasys"; + return 1; + } + else if (!strcmp(dot, ".oa2")) { + *mime = "application/vnd.fujitsu.oasys2"; + return 1; + } + else if (!strcmp(dot, ".oa3")) { + *mime = "application/vnd.fujitsu.oasys3"; + return 1; + } + else if (!strcmp(dot, ".fg5")) { + *mime = "application/vnd.fujitsu.oasysgp"; + return 1; + } + else if (!strcmp(dot, ".bh2")) { + *mime = "application/vnd.fujitsu.oasysprs"; + return 1; + } + else if (!strcmp(dot, ".ddd")) { + *mime = "application/vnd.fujixerox.ddd"; + return 1; + } + else if (!strcmp(dot, ".xdw")) { + *mime = "application/vnd.fujixerox.docuworks"; + return 1; + } + else if (!strcmp(dot, ".xbd")) { + *mime = "application/vnd.fujixerox.docuworks.binder"; + return 1; + } + else if (!strcmp(dot, ".xct")) { + *mime = "application/vnd.fujixerox.docuworks.container"; + return 1; + } + else if (!strcmp(dot, ".fzs")) { + *mime = "application/vnd.fuzzysheet"; + return 1; + } + else if (!strcmp(dot, ".txd")) { + *mime = "application/vnd.genomatix.tuxedo"; + return 1; + } + else if (!strcmp(dot, ".g3")) { + *mime = "image/g3fax"; + return 1; + } + else if (!strcmp(dot, ".g³")) { + *mime = "application/vnd.geocube+xml"; + return 1; + } + else if (!strcmp(dot, ".ggb")) { + *mime = "application/vnd.geogebra.file"; + return 1; + } + else if (!strcmp(dot, ".ggs")) { + *mime = "application/vnd.geogebra.slides"; + return 1; + } + else if (!strcmp(dot, ".ggt")) { + *mime = "application/vnd.geogebra.tool"; + return 1; + } + else if (!strcmp(dot, ".gex")) { + *mime = "application/vnd.geometry-explorer"; + return 1; + } + else if (!strcmp(dot, ".gre")) { + *mime = "application/vnd.geometry-explorer"; + return 1; + } + else if (!strcmp(dot, ".gxt")) { + *mime = "application/vnd.geonext"; + return 1; + } + else if (!strcmp(dot, ".g2w")) { + *mime = "application/vnd.geoplan"; + return 1; + } + else if (!strcmp(dot, ".g3w")) { + *mime = "application/vnd.geospace"; + return 1; + } + else if (!strcmp(dot, ".gmx")) { + *mime = "application/vnd.gmx"; + return 1; + } + else if (!strcmp(dot, ".kml")) { + *mime = "application/vnd.google-earth.kml+xml"; + return 1; + } + else if (!strcmp(dot, ".kmz")) { + *mime = "application/vnd.google-earth.kmz"; + return 1; + } + else if (!strcmp(dot, ".gqf")) { + *mime = "application/vnd.grafeq"; + return 1; + } + else if (!strcmp(dot, ".gqs")) { + *mime = "application/vnd.grafeq"; + return 1; + } + else if (!strcmp(dot, ".gac")) { + *mime = "application/vnd.groove-account"; + return 1; + } + else if (!strcmp(dot, ".ghf")) { + *mime = "application/vnd.groove-help"; + return 1; + } + else if (!strcmp(dot, ".gim")) { + *mime = "application/vnd.groove-identity-message"; + return 1; + } + else if (!strcmp(dot, ".grv")) { + *mime = "application/vnd.groove-injector"; + return 1; + } + else if (!strcmp(dot, ".gtm")) { + *mime = "application/vnd.groove-tool-message"; + return 1; + } + else if (!strcmp(dot, ".tpl")) { + *mime = "application/vnd.groove-tool-template"; + return 1; + } + else if (!strcmp(dot, ".vcg")) { + *mime = "application/vnd.groove-vcard"; + return 1; + } + else if (!strcmp(dot, ".hal")) { + *mime = "application/vnd.hal+xml"; + return 1; + } + else if (!strcmp(dot, ".zmm")) { + *mime = "application/vnd.handheld-entertainment+xml"; + return 1; + } + else if (!strcmp(dot, ".hbci")) { + *mime = "application/vnd.hbci"; + return 1; + } + else if (!strcmp(dot, ".hbc")) { + *mime = "application/vnd.hbci"; + return 1; + } + else if (!strcmp(dot, ".kom")) { + *mime = "application/vnd.hbci"; + return 1; + } + else if (!strcmp(dot, ".upa")) { + *mime = "application/vnd.hbci"; + return 1; + } + else if (!strcmp(dot, ".pkd")) { + *mime = "application/vnd.hbci"; + return 1; + } + else if (!strcmp(dot, ".bpd")) { + *mime = "application/vnd.hbci"; + return 1; + } + else if (!strcmp(dot, ".hdt")) { + *mime = "application/vnd.hdt"; + return 1; + } + else if (!strcmp(dot, ".les")) { + *mime = "application/vnd.hhe.lesson-player"; + return 1; + } + else if (!strcmp(dot, ".hpgl")) { + *mime = "application/vnd.hp-hpgl"; + return 1; + } + else if (!strcmp(dot, ".hpi")) { + *mime = "application/vnd.hp-hpid"; + return 1; + } + else if (!strcmp(dot, ".hpid")) { + *mime = "application/vnd.hp-hpid"; + return 1; + } + else if (!strcmp(dot, ".hps")) { + *mime = "application/vnd.hp-hps"; + return 1; + } + else if (!strcmp(dot, ".jlt")) { + *mime = "application/vnd.hp-jlyt"; + return 1; + } + else if (!strcmp(dot, ".pcl")) { + *mime = "application/vnd.hp-pcl"; + return 1; + } + else if (!strcmp(dot, ".sfd-hdstx")) { + *mime = "application/vnd.hydrostatix.sof-data"; + return 1; + } + else if (!strcmp(dot, ".x3d")) { + *mime = "model/x3d+xml"; + return 1; + } + else if (!strcmp(dot, ".emm")) { + *mime = "application/vnd.ibm.electronic-media"; + return 1; + } + else if (!strcmp(dot, ".mpy")) { + *mime = "application/vnd.ibm.minipay"; + return 1; + } + else if (!strcmp(dot, ".irm")) { + *mime = "application/vnd.ibm.rights-management"; + return 1; + } + else if (!strcmp(dot, ".sc")) { + *mime = "application/vnd.ibm.secure-container"; + return 1; + } + else if (!strcmp(dot, ".icc")) { + *mime = "application/vnd.iccprofile"; + return 1; + } + else if (!strcmp(dot, ".icm")) { + *mime = "application/vnd.iccprofile"; + return 1; + } + else if (!strcmp(dot, ".1905.1")) { + *mime = "application/vnd.ieee.1905"; + return 1; + } + else if (!strcmp(dot, ".igl")) { + *mime = "application/vnd.igloader"; + return 1; + } + else if (!strcmp(dot, ".imf")) { + *mime = "application/vnd.imagemeter.folder+zip"; + return 1; + } + else if (!strcmp(dot, ".imi")) { + *mime = "application/vnd.imagemeter.image+zip"; + return 1; + } + else if (!strcmp(dot, ".ivp")) { + *mime = "application/vnd.immervision-ivp"; + return 1; + } + else if (!strcmp(dot, ".ivu")) { + *mime = "application/vnd.immervision-ivu"; + return 1; + } + else if (!strcmp(dot, ".imscc")) { + *mime = "application/vnd.ims.imsccv1p1"; + return 1; + } + else if (!strcmp(dot, ".igm")) { + *mime = "application/vnd.insors.igm"; + return 1; + } + else if (!strcmp(dot, ".xpw")) { + *mime = "application/vnd.intercon.formnet"; + return 1; + } + else if (!strcmp(dot, ".xpx")) { + *mime = "application/vnd.intercon.formnet"; + return 1; + } + else if (!strcmp(dot, ".i2g")) { + *mime = "application/vnd.intergeo"; + return 1; + } + else if (!strcmp(dot, ".qbo")) { + *mime = "application/vnd.intu.qbo"; + return 1; + } + else if (!strcmp(dot, ".qfx")) { + *mime = "application/vnd.intu.qfx"; + return 1; + } + else if (!strcmp(dot, ".rcprofile")) { + *mime = "application/vnd.ipunplugged.rcprofile"; + return 1; + } + else if (!strcmp(dot, ".irp")) { + *mime = "application/vnd.irepository.package+xml"; + return 1; + } + else if (!strcmp(dot, ".xpr")) { + *mime = "application/vnd.is-xpr"; + return 1; + } + else if (!strcmp(dot, ".fcs")) { + *mime = "application/vnd.isac.fcs"; + return 1; + } + else if (!strcmp(dot, ".jam")) { + *mime = "application/vnd.jam"; + return 1; + } + else if (!strcmp(dot, ".rms")) { + *mime = "application/vnd.jcp.javame.midlet-rms"; + return 1; + } + else if (!strcmp(dot, ".jisp")) { + *mime = "application/vnd.jisp"; + return 1; + } + else if (!strcmp(dot, ".joda")) { + *mime = "application/vnd.joost.joda-archive"; + return 1; + } + else if (!strcmp(dot, ".ktz")) { + *mime = "application/vnd.kahootz"; + return 1; + } + else if (!strcmp(dot, ".ktr")) { + *mime = "application/vnd.kahootz"; + return 1; + } + else if (!strcmp(dot, ".karbon")) { + *mime = "application/vnd.kde.karbon"; + return 1; + } + else if (!strcmp(dot, ".chrt")) { + *mime = "application/vnd.kde.kchart"; + return 1; + } + else if (!strcmp(dot, ".kfo")) { + *mime = "application/vnd.kde.kformula"; + return 1; + } + else if (!strcmp(dot, ".flw")) { + *mime = "application/vnd.kde.kivio"; + return 1; + } + else if (!strcmp(dot, ".kon")) { + *mime = "application/vnd.kde.kontour"; + return 1; + } + else if (!strcmp(dot, ".kpr")) { + *mime = "application/vnd.kde.kpresenter"; + return 1; + } + else if (!strcmp(dot, ".kpt")) { + *mime = "application/vnd.kde.kpresenter"; + return 1; + } + else if (!strcmp(dot, ".ksp")) { + *mime = "application/vnd.kde.kspread"; + return 1; + } + else if (!strcmp(dot, ".kwd")) { + *mime = "application/vnd.kde.kword"; + return 1; + } + else if (!strcmp(dot, ".kwt")) { + *mime = "application/vnd.kde.kword"; + return 1; + } + else if (!strcmp(dot, ".htke")) { + *mime = "application/vnd.kenameaapp"; + return 1; + } + else if (!strcmp(dot, ".kia")) { + *mime = "application/vnd.kidspiration"; + return 1; + } + else if (!strcmp(dot, ".kne")) { + *mime = "application/vnd.kinar"; + return 1; + } + else if (!strcmp(dot, ".knp")) { + *mime = "application/vnd.kinar"; + return 1; + } + else if (!strcmp(dot, ".sdf")) { + *mime = "application/vnd.Kinar"; + return 1; + } + else if (!strcmp(dot, ".skp")) { + *mime = "application/vnd.koan"; + return 1; + } + else if (!strcmp(dot, ".skd")) { + *mime = "application/vnd.koan"; + return 1; + } + else if (!strcmp(dot, ".skm")) { + *mime = "application/vnd.koan"; + return 1; + } + else if (!strcmp(dot, ".skt")) { + *mime = "application/vnd.koan"; + return 1; + } + else if (!strcmp(dot, ".sse")) { + *mime = "application/vnd.kodak-descriptor"; + return 1; + } + else if (!strcmp(dot, ".las")) { + *mime = "application/vnd.las"; + return 1; + } + else if (!strcmp(dot, ".lasjson")) { + *mime = "application/vnd.las.las+json"; + return 1; + } + else if (!strcmp(dot, ".lasxml")) { + *mime = "application/vnd.las.las+xml"; + return 1; + } + else if (!strcmp(dot, ".lbd")) { + *mime = "application/vnd.llamagraphics.life-balance.desktop"; + return 1; + } + else if (!strcmp(dot, ".lbe")) { + *mime = "application/vnd.llamagraphics.life-balance.exchange+xml"; + return 1; + } + else if (!strcmp(dot, ".lcs")) { + *mime = "application/vnd.logipipe.circuit+zip"; + return 1; + } + else if (!strcmp(dot, ".lca")) { + *mime = "application/vnd.logipipe.circuit+zip"; + return 1; + } + else if (!strcmp(dot, ".loom")) { + *mime = "application/vnd.loom"; + return 1; + } + else if (!strcmp(dot, ".123")) { + *mime = "application/vnd.lotus-1-2-3"; + return 1; + } + else if (!strcmp(dot, ".wk4")) { + *mime = "application/vnd.lotus-1-2-3"; + return 1; + } + else if (!strcmp(dot, ".wk3")) { + *mime = "application/vnd.lotus-1-2-3"; + return 1; + } + else if (!strcmp(dot, ".wk1")) { + *mime = "application/vnd.lotus-1-2-3"; + return 1; + } + else if (!strcmp(dot, ".apr")) { + *mime = "application/vnd.lotus-approach"; + return 1; + } + else if (!strcmp(dot, ".vew")) { + *mime = "application/vnd.lotus-approach"; + return 1; + } + else if (!strcmp(dot, ".prz")) { + *mime = "application/vnd.lotus-freelance"; + return 1; + } + else if (!strcmp(dot, ".pre")) { + *mime = "application/vnd.lotus-freelance"; + return 1; + } + else if (!strcmp(dot, ".nsf")) { + *mime = "application/vnd.lotus-notes"; + return 1; + } + else if (!strcmp(dot, ".ntf")) { + *mime = "application/vnd.nitf"; + return 1; + } + else if (!strcmp(dot, ".ndl")) { + *mime = "application/vnd.lotus-notes"; + return 1; + } + else if (!strcmp(dot, ".ns4")) { + *mime = "application/vnd.lotus-notes"; + return 1; + } + else if (!strcmp(dot, ".ns3")) { + *mime = "application/vnd.lotus-notes"; + return 1; + } + else if (!strcmp(dot, ".ns2")) { + *mime = "application/vnd.lotus-notes"; + return 1; + } + else if (!strcmp(dot, ".nsh")) { + *mime = "application/vnd.lotus-notes"; + return 1; + } + else if (!strcmp(dot, ".nsg")) { + *mime = "application/vnd.lotus-notes"; + return 1; + } + else if (!strcmp(dot, ".or3")) { + *mime = "application/vnd.lotus-organizer"; + return 1; + } + else if (!strcmp(dot, ".or2")) { + *mime = "application/vnd.lotus-organizer"; + return 1; + } + else if (!strcmp(dot, ".org")) { + *mime = "application/vnd.lotus-organizer"; + return 1; + } + else if (!strcmp(dot, ".scm")) { + *mime = "application/vnd.lotus-screencam"; + return 1; + } + else if (!strcmp(dot, ".lwp")) { + *mime = "application/vnd.lotus-wordpro"; + return 1; + } + else if (!strcmp(dot, ".sam")) { + *mime = "application/vnd.lotus-wordpro"; + return 1; + } + else if (!strcmp(dot, ".portpkg")) { + *mime = "application/vnd.macports.portpkg"; + return 1; + } + else if (!strcmp(dot, ".mvt")) { + *mime = "application/vnd.mapbox-vector-tile"; + return 1; + } + else if (!strcmp(dot, ".mdc")) { + *mime = "application/vnd.marlin.drm.mdcf"; + return 1; + } + else if (!strcmp(dot, ".mmdb")) { + *mime = "application/vnd.maxmind.maxmind-db"; + return 1; + } + else if (!strcmp(dot, ".mcd")) { + *mime = "application/vnd.mcd"; + return 1; + } + else if (!strcmp(dot, ".mc1")) { + *mime = "application/vnd.medcalcdata"; + return 1; + } + else if (!strcmp(dot, ".cdkey")) { + *mime = "application/vnd.mediastation.cdkey"; + return 1; + } + else if (!strcmp(dot, ".mwf")) { + *mime = "application/vnd.mfer"; + return 1; + } + else if (!strcmp(dot, ".mfm")) { + *mime = "application/vnd.mfmp"; + return 1; + } + else if (!strcmp(dot, ".flo")) { + *mime = "application/vnd.micrografx.flo"; + return 1; + } + else if (!strcmp(dot, ".igx")) { + *mime = "application/vnd.micrografx.igx"; + return 1; + } + else if (!strcmp(dot, ".daf")) { + *mime = "application/vnd.mobius.daf"; + return 1; + } + else if (!strcmp(dot, ".dis")) { + *mime = "application/vnd.mobius.dis"; + return 1; + } + else if (!strcmp(dot, ".mbk")) { + *mime = "application/vnd.mobius.mbk"; + return 1; + } + else if (!strcmp(dot, ".mqy")) { + *mime = "application/vnd.mobius.mqy"; + return 1; + } + else if (!strcmp(dot, ".msl")) { + *mime = "application/vnd.mobius.msl"; + return 1; + } + else if (!strcmp(dot, ".plc")) { + *mime = "application/vnd.mobius.plc"; + return 1; + } + else if (!strcmp(dot, ".txf")) { + *mime = "application/vnd.mobius.txf"; + return 1; + } + else if (!strcmp(dot, ".mpn")) { + *mime = "application/vnd.mophun.application"; + return 1; + } + else if (!strcmp(dot, ".mpc")) { + *mime = "application/vnd.mophun.certificate"; + return 1; + } + else if (!strcmp(dot, ".xul")) { + *mime = "application/vnd.mozilla.xul+xml"; + return 1; + } + else if (!strcmp(dot, ".3mf")) { + *mime = "application/vnd.ms-3mfdocument"; + return 1; + } + else if (!strcmp(dot, ".cil")) { + *mime = "application/vnd.ms-artgalry"; + return 1; + } + else if (!strcmp(dot, ".asf")) { + *mime = "video/x-ms-asf"; + return 1; + } + else if (!strcmp(dot, ".cab")) { + *mime = "application/vnd.ms-cab-compressed"; + return 1; + } + else if (!strcmp(dot, ".xlm")) { + *mime = "application/vnd.ms-excel"; + return 1; + } + else if (!strcmp(dot, ".xla")) { + *mime = "application/vnd.ms-excel"; + return 1; + } + else if (!strcmp(dot, ".xlc")) { + *mime = "application/vnd.ms-excel"; + return 1; + } + else if (!strcmp(dot, ".xlt")) { + *mime = "application/vnd.ms-excel"; + return 1; + } + else if (!strcmp(dot, ".xlw")) { + *mime = "application/vnd.ms-excel"; + return 1; + } + else if (!strcmp(dot, ".xltm")) { + *mime = "application/vnd.ms-excel.template.macroenabled.12"; + return 1; + } + else if (!strcmp(dot, ".xlam")) { + *mime = "application/vnd.ms-excel.addin.macroenabled.12"; + return 1; + } + else if (!strcmp(dot, ".xlsb")) { + *mime = "application/vnd.ms-excel.sheet.binary.macroenabled.12"; + return 1; + } + else if (!strcmp(dot, ".xlsm")) { + *mime = "application/vnd.ms-excel.sheet.macroenabled.12"; + return 1; + } + else if (!strcmp(dot, ".eot")) { + *mime = "application/vnd.ms-fontobject"; + return 1; + } + else if (!strcmp(dot, ".chm")) { + *mime = "application/vnd.ms-htmlhelp"; + return 1; + } + else if (!strcmp(dot, ".ims")) { + *mime = "application/vnd.ms-ims"; + return 1; + } + else if (!strcmp(dot, ".lrm")) { + *mime = "application/vnd.ms-lrm"; + return 1; + } + else if (!strcmp(dot, ".thmx")) { + *mime = "application/vnd.ms-officetheme"; + return 1; + } + else if (!strcmp(dot, ".ppam")) { + *mime = "application/vnd.ms-powerpoint.addin.macroenabled.12"; + return 1; + } + else if (!strcmp(dot, ".pptm")) { + *mime = "application/vnd.ms-powerpoint.presentation.macroenabled.12"; + return 1; + } + else if (!strcmp(dot, ".sldm")) { + *mime = "application/vnd.ms-powerpoint.slide.macroenabled.12"; + return 1; + } + else if (!strcmp(dot, ".ppsm")) { + *mime = "application/vnd.ms-powerpoint.slideshow.macroenabled.12"; + return 1; + } + else if (!strcmp(dot, ".potm")) { + *mime = "application/vnd.ms-powerpoint.template.macroenabled.12"; + return 1; + } + else if (!strcmp(dot, ".mpp")) { + *mime = "application/vnd.ms-project"; + return 1; + } + else if (!strcmp(dot, ".mpt")) { + *mime = "application/vnd.ms-project"; + return 1; + } + else if (!strcmp(dot, ".tnef")) { + *mime = "application/vnd.ms-tnef"; + return 1; + } + else if (!strcmp(dot, ".tnf")) { + *mime = "application/vnd.ms-tnef"; + return 1; + } + else if (!strcmp(dot, ".docm")) { + *mime = "application/vnd.ms-word.document.macroenabled.12"; + return 1; + } + else if (!strcmp(dot, ".dotm")) { + *mime = "application/vnd.ms-word.template.macroenabled.12"; + return 1; + } + else if (!strcmp(dot, ".wcm")) { + *mime = "application/vnd.ms-works"; + return 1; + } + else if (!strcmp(dot, ".wdb")) { + *mime = "application/vnd.ms-works"; + return 1; + } + else if (!strcmp(dot, ".wks")) { + *mime = "application/vnd.ms-works"; + return 1; + } + else if (!strcmp(dot, ".wps")) { + *mime = "application/vnd.ms-works"; + return 1; + } + else if (!strcmp(dot, ".wpl")) { + *mime = "application/vnd.ms-wpl"; + return 1; + } + else if (!strcmp(dot, ".xps")) { + *mime = "application/vnd.ms-xpsdocument"; + return 1; + } + else if (!strcmp(dot, ".msa")) { + *mime = "application/vnd.msa-disk-image"; + return 1; + } + else if (!strcmp(dot, ".mseq")) { + *mime = "application/vnd.mseq"; + return 1; + } + else if (!strcmp(dot, ".crtr")) { + *mime = "application/vnd.multiad.creator"; + return 1; + } + else if (!strcmp(dot, ".cif")) { + *mime = "chemical/x-cif"; + return 1; + } + else if (!strcmp(dot, ".mus")) { + *mime = "application/vnd.musician"; + return 1; + } + else if (!strcmp(dot, ".msty")) { + *mime = "application/vnd.muvee.style"; + return 1; + } + else if (!strcmp(dot, ".taglet")) { + *mime = "application/vnd.mynfc"; + return 1; + } + else if (!strcmp(dot, ".nebul")) { + *mime = "application/vnd.nebumind.line"; + return 1; + } + else if (!strcmp(dot, ".line")) { + *mime = "application/vnd.nebumind.line"; + return 1; + } + else if (!strcmp(dot, ".entity")) { + *mime = "application/vnd.nervana"; + return 1; + } + else if (!strcmp(dot, ".request")) { + *mime = "application/vnd.nervana"; + return 1; + } + else if (!strcmp(dot, ".bkm")) { + *mime = "application/vnd.nervana"; + return 1; + } + else if (!strcmp(dot, ".kcm")) { + *mime = "application/vnd.nervana"; + return 1; + } + else if (!strcmp(dot, ".nimn")) { + *mime = "application/vnd.nimn"; + return 1; + } + else if (!strcmp(dot, ".nitf")) { + *mime = "application/vnd.nitf"; + return 1; + } + else if (!strcmp(dot, ".nlu")) { + *mime = "application/vnd.neurolanguage.nlu"; + return 1; + } + else if (!strcmp(dot, ".nds")) { + *mime = "application/vnd.nintendo.nitro.rom"; + return 1; + } + else if (!strcmp(dot, ".sfc")) { + *mime = "application/vnd.nintendo.snes.rom"; + return 1; + } + else if (!strcmp(dot, ".smc")) { + *mime = "application/vnd.nintendo.snes.rom"; + return 1; + } + else if (!strcmp(dot, ".nnd")) { + *mime = "application/vnd.noblenet-directory"; + return 1; + } + else if (!strcmp(dot, ".nns")) { + *mime = "application/vnd.noblenet-sealer"; + return 1; + } + else if (!strcmp(dot, ".nnw")) { + *mime = "application/vnd.noblenet-web"; + return 1; + } + else if (!strcmp(dot, ".ac")) { + *mime = "application/pkix-attr-cert"; + return 1; + } + else if (!strcmp(dot, ".ngdat")) { + *mime = "application/vnd.nokia.n-gage.data"; + return 1; + } + else if (!strcmp(dot, ".n-gage")) { + *mime = "application/vnd.nokia.n-gage.symbian.install"; + return 1; + } + else if (!strcmp(dot, ".rpst")) { + *mime = "application/vnd.nokia.radio-preset"; + return 1; + } + else if (!strcmp(dot, ".rpss")) { + *mime = "application/vnd.nokia.radio-presets"; + return 1; + } + else if (!strcmp(dot, ".edm")) { + *mime = "application/vnd.novadigm.edm"; + return 1; + } + else if (!strcmp(dot, ".edx")) { + *mime = "application/vnd.novadigm.edx"; + return 1; + } + else if (!strcmp(dot, ".ext")) { + *mime = "application/vnd.novadigm.ext"; + return 1; + } + else if (!strcmp(dot, ".odc")) { + *mime = "application/vnd.oasis.opendocument.chart"; + return 1; + } + else if (!strcmp(dot, ".otc")) { + *mime = "application/vnd.oasis.opendocument.chart-template"; + return 1; + } + else if (!strcmp(dot, ".odb")) { + *mime = "application/vnd.oasis.opendocument.database"; + return 1; + } + else if (!strcmp(dot, ".odf")) { + *mime = "application/vnd.oasis.opendocument.formula"; + return 1; + } + else if (!strcmp(dot, ".odg")) { + *mime = "application/vnd.oasis.opendocument.graphics"; + return 1; + } + else if (!strcmp(dot, ".otg")) { + *mime = "application/vnd.oasis.opendocument.graphics-template"; + return 1; + } + else if (!strcmp(dot, ".odi")) { + *mime = "application/vnd.oasis.opendocument.image"; + return 1; + } + else if (!strcmp(dot, ".oti")) { + *mime = "application/vnd.oasis.opendocument.image-template"; + return 1; + } + else if (!strcmp(dot, ".odp")) { + *mime = "application/vnd.oasis.opendocument.presentation"; + return 1; + } + else if (!strcmp(dot, ".otp")) { + *mime = "application/vnd.oasis.opendocument.presentation-template"; + return 1; + } + else if (!strcmp(dot, ".ods")) { + *mime = "application/vnd.oasis.opendocument.spreadsheet"; + return 1; + } + else if (!strcmp(dot, ".ots")) { + *mime = "application/vnd.oasis.opendocument.spreadsheet-template"; + return 1; + } + else if (!strcmp(dot, ".odt")) { + *mime = "application/vnd.oasis.opendocument.text"; + } + else if (!strcmp(dot, ".odm")) { + *mime = "application/vnd.oasis.opendocument.text-master"; + } + else if (!strcmp(dot, ".ott")) { + *mime = "application/vnd.oasis.opendocument.text-template"; + } + else if (!strcmp(dot, ".oth")) { + *mime = "application/vnd.oasis.opendocument.text-web"; + } + else if (!strcmp(dot, ".xo")) { + *mime = "application/vnd.olpc-sugar"; + return 1; + } + else if (!strcmp(dot, ".dd2")) { + *mime = "application/vnd.oma.dd2+xml"; + return 1; + } + else if (!strcmp(dot, ".tam")) { + *mime = "application/vnd.onepager"; + return 1; + } + else if (!strcmp(dot, ".tamp")) { + *mime = "application/vnd.onepagertamp"; + return 1; + } + else if (!strcmp(dot, ".tamx")) { + *mime = "application/vnd.onepagertamx"; + return 1; + } + else if (!strcmp(dot, ".tat")) { + *mime = "application/vnd.onepagertat"; + return 1; + } + else if (!strcmp(dot, ".tatp")) { + *mime = "application/vnd.onepagertatp"; + return 1; + } + else if (!strcmp(dot, ".tatx")) { + *mime = "application/vnd.onepagertatx"; + return 1; + } + else if (!strcmp(dot, ".obgx")) { + *mime = "application/vnd.openblox.game+xml"; + return 1; + } + else if (!strcmp(dot, ".obg")) { + *mime = "application/vnd.openblox.game-binary"; + return 1; + } + else if (!strcmp(dot, ".oeb")) { + *mime = "application/vnd.openeye.oeb"; + return 1; + } + else if (!strcmp(dot, ".oxt")) { + *mime = "application/vnd.openofficeorg.extension"; + return 1; + } + else if (!strcmp(dot, ".osm")) { + *mime = "application/vnd.openstreetmap.data+xml"; + return 1; + } + else if (!strcmp(dot, ".pptx")) { + *mime = "application/vnd.openxmlformats-officedocument.presentationml.presentation"; + return 1; + } + else if (!strcmp(dot, ".sldx")) { + *mime = "application/vnd.openxmlformats-officedocument.presentationml.slide"; + return 1; + } + else if (!strcmp(dot, ".ppsx")) { + *mime = "application/vnd.openxmlformats-officedocument.presentationml.slideshow"; + return 1; + } + else if (!strcmp(dot, ".potx")) { + *mime = "application/vnd.openxmlformats-officedocument.presentationml.template"; + return 1; + } + else if (!strcmp(dot, ".xlsx")) { + *mime = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + return 1; + } + else if (!strcmp(dot, ".xltx")) { + *mime = "application/vnd.openxmlformats-officedocument.spreadsheetml.template"; + return 1; + } + else if (!strcmp(dot, ".docx")) { + *mime = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; + return 1; + } + else if (!strcmp(dot, ".dotx")) { + *mime = "application/vnd.openxmlformats-officedocument.wordprocessingml.template"; + return 1; + } + else if (!strcmp(dot, ".ndc")) { + *mime = "application/vnd.osa.netdeploy"; + return 1; + } + else if (!strcmp(dot, ".mgp")) { + *mime = "application/vnd.osgeo.mapguide.package"; + return 1; + } + else if (!strcmp(dot, ".dp")) { + *mime = "application/vnd.osgi.dp"; + return 1; + } + else if (!strcmp(dot, ".esa")) { + *mime = "application/vnd.osgi.subsystem"; + return 1; + } + else if (!strcmp(dot, ".oxlicg")) { + *mime = "application/vnd.oxli.countgraph"; + return 1; + } + else if (!strcmp(dot, ".prc")) { + *mime = "application/x-mobipocket-ebook"; + return 1; + } + else if (!strcmp(dot, ".pdb")) { + *mime = "application/vnd.palm"; + return 1; + } + else if (!strcmp(dot, ".pqa")) { + *mime = "application/vnd.palm"; + return 1; + } + else if (!strcmp(dot, ".oprc")) { + *mime = "application/vnd.palm"; + return 1; + } + else if (!strcmp(dot, ".plp")) { + *mime = "application/vnd.panoply"; + return 1; + } + else if (!strcmp(dot, ".dive")) { + *mime = "application/vnd.patentdive"; + return 1; + } + else if (!strcmp(dot, ".paw")) { + *mime = "application/vnd.pawaafile"; + return 1; + } + else if (!strcmp(dot, ".str")) { + *mime = "application/vnd.pg.format"; + return 1; + } + else if (!strcmp(dot, ".ei6")) { + *mime = "application/vnd.pg.osasli"; + return 1; + } + else if (!strcmp(dot, ".pil")) { + *mime = "application/vnd.piaccess.application-licence"; + return 1; + } + else if (!strcmp(dot, ".efif")) { + *mime = "application/vnd.picsel"; + return 1; + } + else if (!strcmp(dot, ".wg")) { + *mime = "application/vnd.pmi.widget"; + return 1; + } + else if (!strcmp(dot, ".plf")) { + *mime = "application/vnd.pocketlearn"; + return 1; + } + else if (!strcmp(dot, ".pbd")) { + *mime = "application/vnd.powerbuilder6"; + return 1; + } + else if (!strcmp(dot, ".preminet")) { + *mime = "application/vnd.preminet"; + return 1; + } + else if (!strcmp(dot, ".box")) { + *mime = "application/vnd.previewsystems.box"; + return 1; + } + else if (!strcmp(dot, ".vbox")) { + *mime = "application/vnd.previewsystems.box"; + return 1; + } + else if (!strcmp(dot, ".mgz")) { + *mime = "application/vnd.proteus.magazine"; + return 1; + } + else if (!strcmp(dot, ".psfs")) { + *mime = "application/vnd.psfs"; + return 1; + } + else if (!strcmp(dot, ".qps")) { + *mime = "application/vnd.publishare-delta-tree"; + return 1; + } + else if (!strcmp(dot, ".ptid")) { + *mime = "application/vnd.pvi.ptid1"; + return 1; + } + else if (!strcmp(dot, ".bar")) { + *mime = "application/vnd.qualcomm.brew-app-res"; + return 1; + } + else if (!strcmp(dot, ".qxd")) { + *mime = "application/vnd.quark.quarkxpress"; + return 1; + } + else if (!strcmp(dot, ".qxt")) { + *mime = "application/vnd.quark.quarkxpress"; + return 1; + } + else if (!strcmp(dot, ".qwd")) { + *mime = "application/vnd.quark.quarkxpress"; + return 1; + } + else if (!strcmp(dot, ".qwt")) { + *mime = "application/vnd.quark.quarkxpress"; + return 1; + } + else if (!strcmp(dot, ".qxl")) { + *mime = "application/vnd.quark.quarkxpress"; + return 1; + } + else if (!strcmp(dot, ".qxb")) { + *mime = "application/vnd.quark.quarkxpress"; + return 1; + } + else if (!strcmp(dot, ".quox")) { + *mime = "application/vnd.quobject-quoxdocument"; + return 1; + } + else if (!strcmp(dot, ".quiz")) { + *mime = "application/vnd.quobject-quoxdocument"; + return 1; + } + else if (!strcmp(dot, ".tree")) { + *mime = "application/vnd.rainstor.data"; + return 1; + } + else if (!strcmp(dot, ".rar")) { + *mime = "application/x-rar-compressed"; + return 1; + } + else if (!strcmp(dot, ".bed")) { + *mime = "application/vnd.realvnc.bed"; + return 1; + } + else if (!strcmp(dot, ".mxl")) { + *mime = "application/vnd.recordare.musicxml"; + return 1; + } + else if (!strcmp(dot, ".cryptonote")) { + *mime = "application/vnd.rig.cryptonote"; + return 1; + } + else if (!strcmp(dot, ".link66")) { + *mime = "application/vnd.route66.link66+xml"; + return 1; + } + else if (!strcmp(dot, ".st")) { + *mime = "application/vnd.sailingtracker.track"; + return 1; + } + else if (!strcmp(dot, ".SAR")) { + *mime = "application/vnd.sar"; + return 1; + } + else if (!strcmp(dot, ".scd")) { + *mime = "application/x-msschedule"; + return 1; + } + else if (!strcmp(dot, ".sla")) { + *mime = "application/vnd.scribus"; + return 1; + } + else if (!strcmp(dot, ".slaz")) { + *mime = "application/vnd.scribus"; + return 1; + } + else if (!strcmp(dot, ".s3df")) { + *mime = "application/vnd.sealed.3df"; + return 1; + } + else if (!strcmp(dot, ".scsf")) { + *mime = "application/vnd.sealed.csf"; + return 1; + } + else if (!strcmp(dot, ".sdoc")) { + *mime = "application/vnd.sealed.doc"; + return 1; + } + else if (!strcmp(dot, ".sdo")) { + *mime = "application/vnd.sealed.doc"; + return 1; + } + else if (!strcmp(dot, ".s1w")) { + *mime = "application/vnd.sealed.doc"; + return 1; + } + else if (!strcmp(dot, ".seml")) { + *mime = "application/vnd.sealed.eml"; + return 1; + } + else if (!strcmp(dot, ".sem")) { + *mime = "application/vnd.sealed.eml"; + return 1; + } + else if (!strcmp(dot, ".smht")) { + *mime = "application/vnd.sealed.mht"; + return 1; + } + else if (!strcmp(dot, ".smh")) { + *mime = "application/vnd.sealed.mht"; + return 1; + } + else if (!strcmp(dot, ".sppt")) { + *mime = "application/vnd.sealed.ppt"; + return 1; + } + else if (!strcmp(dot, ".s1p")) { + *mime = "application/vnd.sealed.ppt"; + return 1; + } + else if (!strcmp(dot, ".stif")) { + *mime = "application/vnd.sealed.tiff"; + return 1; + } + else if (!strcmp(dot, ".sxls")) { + *mime = "application/vnd.sealed.xls"; + return 1; + } + else if (!strcmp(dot, ".sxl")) { + *mime = "application/vnd.sealed.xls"; + return 1; + } + else if (!strcmp(dot, ".s1e")) { + *mime = "application/vnd.sealed.xls"; + return 1; + } + else if (!strcmp(dot, ".stml")) { + *mime = "application/vnd.sealedmedia.softseal.html"; + return 1; + } + else if (!strcmp(dot, ".s1h")) { + *mime = "application/vnd.sealedmedia.softseal.html"; + return 1; + } + else if (!strcmp(dot, ".spdf")) { + *mime = "application/vnd.sealedmedia.softseal.pdf"; + return 1; + } + else if (!strcmp(dot, ".spd")) { + *mime = "application/vnd.sealedmedia.softseal.pdf"; + return 1; + } + else if (!strcmp(dot, ".s1a")) { + *mime = "application/vnd.sealedmedia.softseal.pdf"; + return 1; + } + else if (!strcmp(dot, ".see")) { + *mime = "application/vnd.seemail"; + return 1; + } + else if (!strcmp(dot, ".sema")) { + *mime = "application/vnd.sema"; + return 1; + } + else if (!strcmp(dot, ".semd")) { + *mime = "application/vnd.semd"; + return 1; + } + else if (!strcmp(dot, ".semf")) { + *mime = "application/vnd.semf"; + return 1; + } + else if (!strcmp(dot, ".ssv")) { + *mime = "application/vnd.shade-save-file"; + return 1; + } + else if (!strcmp(dot, ".ifm")) { + *mime = "application/vnd.shana.informed.formdata"; + return 1; + } + else if (!strcmp(dot, ".itp")) { + *mime = "application/vnd.shana.informed.formtemplate"; + return 1; + } + else if (!strcmp(dot, ".iif")) { + *mime = "application/vnd.shana.informed.interchange"; + return 1; + } + else if (!strcmp(dot, ".ipk")) { + *mime = "application/vnd.shana.informed.package"; + return 1; + } + else if (!strcmp(dot, ".shp")) { + *mime = "application/vnd.shp"; + return 1; + } + else if (!strcmp(dot, ".shx")) { + *mime = "application/vnd.shx"; + return 1; + } + else if (!strcmp(dot, ".sr")) { + *mime = "application/vnd.sigrok.session"; + return 1; + } + else if (!strcmp(dot, ".twd")) { + *mime = "application/vnd.simtech-mindmapper"; + return 1; + } + else if (!strcmp(dot, ".twds")) { + *mime = "application/vnd.simtech-mindmapper"; + return 1; + } + else if (!strcmp(dot, ".mmf")) { + *mime = "application/vnd.smaf"; + return 1; + } + else if (!strcmp(dot, ".notebook")) { + *mime = "application/vnd.smart.notebook"; + return 1; + } + else if (!strcmp(dot, ".teacher")) { + *mime = "application/vnd.smart.teacher"; + return 1; + } + else if (!strcmp(dot, ".ptrom")) { + *mime = "application/vnd.snesdev-page-table"; + return 1; + } + else if (!strcmp(dot, ".pt")) { + *mime = "application/vnd.snesdev-page-table"; + return 1; + } + else if (!strcmp(dot, ".fo")) { + *mime = "application/vnd.software602.filler.form+xml"; + return 1; + } + else if (!strcmp(dot, ".zfo")) { + *mime = "application/vnd.software602.filler.form-xml-zip"; + return 1; + } + else if (!strcmp(dot, ".sdkm")) { + *mime = "application/vnd.solent.sdkm+xml"; + return 1; + } + else if (!strcmp(dot, ".sdkd")) { + *mime = "application/vnd.solent.sdkm+xml"; + return 1; + } + else if (!strcmp(dot, ".dxp")) { + *mime = "application/vnd.spotfire.dxp"; + return 1; + } + else if (!strcmp(dot, ".sfs")) { + *mime = "application/vnd.spotfire.sfs"; + return 1; + } + else if (!strcmp(dot, ".sqlite")) { + *mime = "application/vnd.sqlite3"; + return 1; + } + else if (!strcmp(dot, ".sqlite3")) { + *mime = "application/vnd.sqlite3"; + return 1; + } + else if (!strcmp(dot, ".smzip")) { + *mime = "application/vnd.stepmania.package"; + return 1; + } + else if (!strcmp(dot, ".sm")) { + *mime = "application/vnd.stepmania.stepchart"; + return 1; + } + else if (!strcmp(dot, ".wadl")) { + *mime = "application/vnd.sun.wadl+xml"; + return 1; + } + else if (!strcmp(dot, ".sus")) { + *mime = "application/vnd.sus-calendar"; + return 1; + } + else if (!strcmp(dot, ".susp")) { + *mime = "application/vnd.sus-calendar"; + return 1; + } + else if (!strcmp(dot, ".scl")) { + *mime = "application/vnd.sycle+xml"; + return 1; + } + else if (!strcmp(dot, ".xsm")) { + *mime = "application/vnd.syncml+xml"; + return 1; + } + else if (!strcmp(dot, ".bdm")) { + *mime = "application/vnd.syncml.dm+wbxml"; + return 1; + } + else if (!strcmp(dot, ".xdm")) { + *mime = "application/vnd.syncml.dm+xml"; + return 1; + } + else if (!strcmp(dot, ".ddf")) { + *mime = "application/vnd.syncml.dmddf+xml"; + return 1; + } + else if (!strcmp(dot, ".tao")) { + *mime = "application/vnd.tao.intent-module-archive"; + return 1; + } + else if (!strcmp(dot, ".pcap")) { + *mime = "application/vnd.tcpdump.pcap"; + return 1; + } + else if (!strcmp(dot, ".cap")) { + *mime = "application/vnd.tcpdump.pcap"; + return 1; + } + else if (!strcmp(dot, ".dmp")) { + *mime = "application/vnd.tcpdump.pcap"; + return 1; + } + else if (!strcmp(dot, ".qvd")) { + *mime = "application/vnd.theqvd"; + return 1; + } + else if (!strcmp(dot, ".ppttc")) { + *mime = "application/vnd.think-cell.ppttc+json"; + return 1; + } + else if (!strcmp(dot, ".vfr")) { + *mime = "application/vnd.tml"; + return 1; + } + else if (!strcmp(dot, ".viaframe")) { + *mime = "application/vnd.tml"; + return 1; + } + else if (!strcmp(dot, ".tmo")) { + *mime = "application/vnd.tmobile-livetv"; + return 1; + } + else if (!strcmp(dot, ".tpt")) { + *mime = "application/vnd.trid.tpt"; + return 1; + } + else if (!strcmp(dot, ".mxs")) { + *mime = "application/vnd.triscape.mxs"; + return 1; + } + else if (!strcmp(dot, ".tra")) { + *mime = "application/vnd.trueapp"; + return 1; + } + else if (!strcmp(dot, ".ufdl")) { + *mime = "application/vnd.ufdl"; + return 1; + } + else if (!strcmp(dot, ".ufd")) { + *mime = "application/vnd.ufdl"; + return 1; + } + else if (!strcmp(dot, ".frm")) { + *mime = "application/vnd.ufdl"; + return 1; + } + else if (!strcmp(dot, ".utz")) { + *mime = "application/vnd.uiq.theme"; + return 1; + } + else if (!strcmp(dot, ".umj")) { + *mime = "application/vnd.umajin"; + return 1; + } + else if (!strcmp(dot, ".unityweb")) { + *mime = "application/vnd.unity"; + return 1; + } + else if (!strcmp(dot, ".uoml")) { + *mime = "application/vnd.uoml+xml"; + return 1; + } + else if (!strcmp(dot, ".uo")) { + *mime = "application/vnd.uoml+xml"; + return 1; + } + else if (!strcmp(dot, ".urim")) { + *mime = "application/vnd.uri-map"; + return 1; + } + else if (!strcmp(dot, ".urimap")) { + *mime = "application/vnd.uri-map"; + return 1; + } + else if (!strcmp(dot, ".vmt")) { + *mime = "application/vnd.valve.source.material"; + return 1; + } + else if (!strcmp(dot, ".vcx")) { + *mime = "application/vnd.vcx"; + return 1; + } + else if (!strcmp(dot, ".mxi")) { + *mime = "application/vnd.vd-study"; + return 1; + } + else if (!strcmp(dot, ".study-inter")) { + *mime = "application/vnd.vd-study"; + return 1; + } + else if (!strcmp(dot, ".model-inter")) { + *mime = "application/vnd.vd-study"; + return 1; + } + else if (!strcmp(dot, ".vwx")) { + *mime = "application/vnd.vectorworks"; + return 1; + } + else if (!strcmp(dot, ".istc")) { + *mime = "application/vnd.veryant.thin"; + return 1; + } + else if (!strcmp(dot, ".isws")) { + *mime = "application/vnd.veryant.thin"; + return 1; + } + else if (!strcmp(dot, ".VES")) { + *mime = "application/vnd.ves.encrypted"; + return 1; + } + else if (!strcmp(dot, ".vsc")) { + *mime = "application/vnd.vidsoft.vidconference"; + return 1; + } + else if (!strcmp(dot, ".vsd")) { + *mime = "application/vnd.visio"; + return 1; + } + else if (!strcmp(dot, ".vst")) { + *mime = "application/vnd.visio"; + return 1; + } + else if (!strcmp(dot, ".vsw")) { + *mime = "application/vnd.visio"; + return 1; + } + else if (!strcmp(dot, ".vss")) { + *mime = "application/vnd.visio"; + return 1; + } + else if (!strcmp(dot, ".vis")) { + *mime = "application/vnd.visionary"; + return 1; + } + else if (!strcmp(dot, ".vsf")) { + *mime = "application/vnd.vsf"; + return 1; + } + else if (!strcmp(dot, ".sic")) { + *mime = "application/vnd.wap.sic"; + return 1; + } + else if (!strcmp(dot, ".slc")) { + *mime = "application/vnd.wap.slc"; + return 1; + } + else if (!strcmp(dot, ".wbxml")) { + *mime = "application/vnd.wap.wbxml"; + return 1; + } + else if (!strcmp(dot, ".wmlc")) { + *mime = "application/vnd.wap.wmlc"; + return 1; + } + else if (!strcmp(dot, ".wmlsc")) { + *mime = "application/vnd.wap.wmlscriptc"; + return 1; + } + else if (!strcmp(dot, ".wtb")) { + *mime = "application/vnd.webturbo"; + return 1; + } + else if (!strcmp(dot, ".p2p")) { + *mime = "application/vnd.wfa.p2p"; + return 1; + } + else if (!strcmp(dot, ".wsc")) { + *mime = "application/vnd.wfa.wsc"; + return 1; + } + else if (!strcmp(dot, ".wmc")) { + *mime = "application/vnd.wmc"; + return 1; + } + else if (!strcmp(dot, ".m")) { + *mime = "application/vnd.wolfram.mathematica.package"; + return 1; + } + else if (!strcmp(dot, ".nbp")) { + *mime = "application/vnd.wolfram.player"; + return 1; + } + else if (!strcmp(dot, ".wpd")) { + *mime = "application/vnd.wordperfect"; + return 1; + } + else if (!strcmp(dot, ".wqd")) { + *mime = "application/vnd.wqd"; + return 1; + } + else if (!strcmp(dot, ".stf")) { + *mime = "application/vnd.wt.stf"; + return 1; + } + else if (!strcmp(dot, ".wv")) { + *mime = "application/vnd.wv.csp+wbxml"; + return 1; + } + else if (!strcmp(dot, ".xar")) { + *mime = "application/vnd.xara"; + return 1; + } + else if (!strcmp(dot, ".xfdl")) { + *mime = "application/vnd.xfdl"; + return 1; + } + else if (!strcmp(dot, ".xfd")) { + *mime = "application/vnd.xfdl"; + return 1; + } + else if (!strcmp(dot, ".cpkg")) { + *mime = "application/vnd.xmpie.cpkg"; + return 1; + } + else if (!strcmp(dot, ".dpkg")) { + *mime = "application/vnd.xmpie.dpkg"; + return 1; + } + else if (!strcmp(dot, ".ppkg")) { + *mime = "application/vnd.xmpie.ppkg"; + return 1; + } + else if (!strcmp(dot, ".xlim")) { + *mime = "application/vnd.xmpie.xlim"; + return 1; + } + else if (!strcmp(dot, ".hvd")) { + *mime = "application/vnd.yamaha.hv-dic"; + return 1; + } + else if (!strcmp(dot, ".hvs")) { + *mime = "application/vnd.yamaha.hv-script"; + return 1; + } + else if (!strcmp(dot, ".hvp")) { + *mime = "application/vnd.yamaha.hv-voice"; + return 1; + } + else if (!strcmp(dot, ".osf")) { + *mime = "application/vnd.yamaha.openscoreformat"; + return 1; + } + else if (!strcmp(dot, ".saf")) { + *mime = "application/vnd.yamaha.smaf-audio"; + return 1; + } + else if (!strcmp(dot, ".spf")) { + *mime = "application/vnd.yamaha.smaf-phrase"; + return 1; + } + else if (!strcmp(dot, ".yme")) { + *mime = "application/vnd.yaoweme"; + return 1; + } + else if (!strcmp(dot, ".cmp")) { + *mime = "application/vnd.yellowriver-custom-menu"; + return 1; + } + else if (!strcmp(dot, ".zir")) { + *mime = "application/vnd.zul"; + return 1; + } + else if (!strcmp(dot, ".zirz")) { + *mime = "application/vnd.zul"; + return 1; + } + else if (!strcmp(dot, ".zaz")) { + *mime = "application/vnd.zzazz.deck+xml"; + return 1; + } + else if (!strcmp(dot, ".vxml")) { + *mime = "application/voicexml+xml"; + return 1; + } + else if (!strcmp(dot, ".vcj")) { + *mime = "application/voucher-cms+json"; + return 1; + } + else if (!strcmp(dot, ".wif")) { + *mime = "application/watcherinfo+xml"; + return 1; + } + else if (!strcmp(dot, ".wgt")) { + *mime = "application/widget"; + return 1; + } + else if (!strcmp(dot, ".wspolicy")) { + *mime = "application/wspolicy+xml"; + return 1; + } + else if (!strcmp(dot, ".xav")) { + *mime = "application/xcap-att+xml"; + return 1; + } + else if (!strcmp(dot, ".xca")) { + *mime = "application/xcap-caps+xml"; + return 1; + } + else if (!strcmp(dot, ".xdf")) { + *mime = "application/xcap-diff+xml"; + return 1; + } + else if (!strcmp(dot, ".xel")) { + *mime = "application/xcap-el+xml"; + return 1; + } + else if (!strcmp(dot, ".xer")) { + *mime = "application/patch-ops-error+xml"; + return 1; + } + else if (!strcmp(dot, ".xns")) { + *mime = "application/xcap-ns+xml"; + return 1; + } + else if (!strcmp(dot, ".xhtml")) { + *mime = "application/xhtml+xml"; + } + else if (!strcmp(dot, ".xhtm")) { + *mime = "application/xhtml+xml"; + } + else if (!strcmp(dot, ".xht")) { + *mime = "application/xhtml+xml"; + } + else if (!strcmp(dot, ".xlf")) { + *mime = "application/x-xliff+xml"; + return 1; + } + else if (!strcmp(dot, ".dtd")) { + *mime = "application/xml-dtd"; + } + else if (!strcmp(dot, ".xop")) { + *mime = "application/xop+xml"; + return 1; + } + else if (!strcmp(dot, ".xslt")) { + *mime = "application/xslt+xml"; + return 1; + } + else if (!strcmp(dot, ".mxml")) { + *mime = "application/xv+xml"; + return 1; + } + else if (!strcmp(dot, ".xhvml")) { + *mime = "application/xv+xml"; + return 1; + } + else if (!strcmp(dot, ".xvml")) { + *mime = "application/xv+xml"; + return 1; + } + else if (!strcmp(dot, ".xvm")) { + *mime = "application/xv+xml"; + return 1; + } + else if (!strcmp(dot, ".yang")) { + *mime = "application/yang"; + return 1; + } + else if (!strcmp(dot, ".yin")) { + *mime = "application/yin+xml"; + return 1; + } + else if (!strcmp(dot, ".zst")) { + *mime = "application/zstd"; + return 1; + } + else if (!strcmp(dot, ".726")) { + *mime = "audio/32kadpcm"; + return 1; + } + else if (!strcmp(dot, ".ac3")) { + *mime = "audio/ac3"; + return 1; + } + else if (!strcmp(dot, ".amr")) { + *mime = "audio/AMR"; + return 1; + } + else if (!strcmp(dot, ".awb")) { + *mime = "audio/AMR-WB"; + return 1; + } + else if (!strcmp(dot, ".acn")) { + *mime = "audio/asc"; + return 1; + } + else if (!strcmp(dot, ".aal")) { + *mime = "audio/ATRAC-ADVANCED-LOSSLESS"; + return 1; + } + else if (!strcmp(dot, ".atx")) { + *mime = "application/vnd.antix.game-component"; + return 1; + } + else if (!strcmp(dot, ".at3")) { + *mime = "audio/ATRAC3"; + return 1; + } + else if (!strcmp(dot, ".aa3")) { + *mime = "audio/ATRAC3"; + return 1; + } + else if (!strcmp(dot, ".omg")) { + *mime = "audio/ATRAC3"; + return 1; + } + else if (!strcmp(dot, ".dls")) { + *mime = "audio/dls"; + return 1; + } + else if (!strcmp(dot, ".evc")) { + *mime = "audio/EVRC"; + return 1; + } + else if (!strcmp(dot, ".evb")) { + *mime = "audio/EVRCB"; + return 1; + } + else if (!strcmp(dot, ".enw")) { + *mime = "audio/EVRCNW"; + return 1; + } + else if (!strcmp(dot, ".evw")) { + *mime = "audio/EVRCWB"; + return 1; + } + else if (!strcmp(dot, ".lbc")) { + *mime = "audio/iLBC"; + return 1; + } + else if (!strcmp(dot, ".l16")) { + *mime = "audio/L16"; + return 1; + } + else if (!strcmp(dot, ".mhas")) { + *mime = "audio/mhas"; + return 1; + } + else if (!strcmp(dot, ".mxmf")) { + *mime = "audio/mobile-xmf"; + return 1; + } + else if (!strcmp(dot, ".m4a")) { + *mime = "audio/mp4"; + return 1; + } + else if (!strcmp(dot, ".mpga")) { + *mime = "audio/mpeg"; + return 1; + } + else if (!strcmp(dot, ".mp1")) { + *mime = "audio/mpeg"; + return 1; + } + else if (!strcmp(dot, ".oga")) { + *mime = "audio/ogg"; + return 1; + } + else if (!strcmp(dot, ".ogg")) { + *mime = "audio/ogg"; + return 1; + } + else if (!strcmp(dot, ".spx")) { + *mime = "audio/ogg"; + return 1; + } + else if (!strcmp(dot, ".sid")) { + *mime = "image/x-mrsid-image"; + return 1; + } + else if (!strcmp(dot, ".psid")) { + *mime = "audio/prs.sid"; + return 1; + } + else if (!strcmp(dot, ".qcp")) { + *mime = "audio/QCELP"; + return 1; + } + else if (!strcmp(dot, ".smv")) { + *mime = "video/x-smv"; + return 1; + } + else if (!strcmp(dot, ".sofa")) { + *mime = "audio/sofa"; + return 1; + } + else if (!strcmp(dot, ".xhe")) { + *mime = "audio/usac"; + return 1; + } + else if (!strcmp(dot, ".koz")) { + *mime = "audio/vnd.audiokoz"; + return 1; + } + else if (!strcmp(dot, ".uva")) { + *mime = "audio/vnd.dece.audio"; + return 1; + } + else if (!strcmp(dot, ".uvva")) { + *mime = "audio/vnd.dece.audio"; + return 1; + } + else if (!strcmp(dot, ".eol")) { + *mime = "audio/vnd.digital-winds"; + return 1; + } + else if (!strcmp(dot, ".mlp")) { + *mime = "application/vnd.dolby.mlp"; + return 1; + } + else if (!strcmp(dot, ".dts")) { + *mime = "audio/vnd.dts"; + return 1; + } + else if (!strcmp(dot, ".dtshd")) { + *mime = "audio/vnd.dts.hd"; + return 1; + } + else if (!strcmp(dot, ".plj")) { + *mime = "audio/vnd.everad.plj"; + return 1; + } + else if (!strcmp(dot, ".lvp")) { + *mime = "audio/vnd.lucent.voice"; + return 1; + } + else if (!strcmp(dot, ".pya")) { + *mime = "audio/vnd.ms-playready.media.pya"; + return 1; + } + else if (!strcmp(dot, ".vbk")) { + *mime = "audio/vnd.nortel.vbk"; + return 1; + } + else if (!strcmp(dot, ".ecelp4800")) { + *mime = "audio/vnd.nuera.ecelp4800"; + return 1; + } + else if (!strcmp(dot, ".ecelp7470")) { + *mime = "audio/vnd.nuera.ecelp7470"; + return 1; + } + else if (!strcmp(dot, ".ecelp9600")) { + *mime = "audio/vnd.nuera.ecelp9600"; + return 1; + } + else if (!strcmp(dot, ".multitrack")) { + *mime = "audio/vnd.presonus.multitrack"; + return 1; + } + else if (!strcmp(dot, ".rip")) { + *mime = "audio/vnd.rip"; + return 1; + } + else if (!strcmp(dot, ".smp3")) { + *mime = "audio/vnd.sealedmedia.softseal.mpeg"; + return 1; + } + else if (!strcmp(dot, ".smp")) { + *mime = "audio/vnd.sealedmedia.softseal.mpeg"; + return 1; + } + else if (!strcmp(dot, ".s1m")) { + *mime = "audio/vnd.sealedmedia.softseal.mpeg"; + return 1; + } + else if (!strcmp(dot, ".ttc")) { + *mime = "font/collection"; + return 1; + } + else if (!strcmp(dot, ".otf")) { + *mime = "font/otf"; + return 1; + } + else if (!strcmp(dot, ".ttf")) { + *mime = "font/ttf"; + return 1; + } + else if (!strcmp(dot, ".woff")) { + *mime = "font/woff"; + return 1; + } + else if (!strcmp(dot, ".woff2")) { + *mime = "font/woff2"; + return 1; + } + else if (!strcmp(dot, ".exr")) { + *mime = "image/aces"; + return 1; + } + else if (!strcmp(dot, ".avci")) { + *mime = "image/avci"; + return 1; + } + else if (!strcmp(dot, ".avcs")) { + *mime = "image/avcs"; + return 1; + } + else if (!strcmp(dot, ".avif")) { + *mime = "image/avif"; + return 1; + } + else if (!strcmp(dot, ".hif")) { + *mime = "image/avif"; + return 1; + } + else if (!strcmp(dot, ".dib")) { + *mime = "image/bmp"; + return 1; + } + else if (!strcmp(dot, ".cgm")) { + *mime = "image/cgm"; + return 1; + } + else if (!strcmp(dot, ".drle")) { + *mime = "image/dicom-rle"; + return 1; + } + else if (!strcmp(dot, ".emf")) { + *mime = "application/x-msmetafile"; + return 1; + } + else if (!strcmp(dot, ".fits")) { + *mime = "image/fits"; + return 1; + } + else if (!strcmp(dot, ".fit")) { + *mime = "image/fits"; + return 1; + } + else if (!strcmp(dot, ".fts")) { + *mime = "image/fits"; + return 1; + } + else if (!strcmp(dot, ".heics")) { + *mime = "image/heic-sequence"; + return 1; + } + else if (!strcmp(dot, ".heifs")) { + *mime = "image/heif-sequence"; + return 1; + } + else if (!strcmp(dot, ".hej2")) { + *mime = "image/hej2k"; + return 1; + } + else if (!strcmp(dot, ".hsj2")) { + *mime = "image/hsj2"; + return 1; + } + else if (!strcmp(dot, ".jls")) { + *mime = "image/jls"; + return 1; + } + else if (!strcmp(dot, ".jp2")) { + *mime = "image/jp2"; + return 1; + } + else if (!strcmp(dot, ".jpg2")) { + *mime = "image/jp2"; + return 1; + } + else if (!strcmp(dot, ".jph")) { + *mime = "image/jph"; + return 1; + } + else if (!strcmp(dot, ".jhc")) { + *mime = "image/jphc"; + return 1; + } + else if (!strcmp(dot, ".jfif")) { + *mime = "image/jpeg"; + return 1; + } + else if (!strcmp(dot, ".jpm")) { + *mime = "video/jpm"; + return 1; + } + else if (!strcmp(dot, ".jpgm")) { + *mime = "video/jpm"; + return 1; + } + else if (!strcmp(dot, ".jpx")) { + *mime = "image/jpx"; + return 1; + } + else if (!strcmp(dot, ".jpf")) { + *mime = "image/jpx"; + return 1; + } + else if (!strcmp(dot, ".jxl")) { + *mime = "image/jxl"; + return 1; + } + else if (!strcmp(dot, ".jxr")) { + *mime = "image/jxr"; + return 1; + } + else if (!strcmp(dot, ".jxra")) { + *mime = "image/jxrA"; + return 1; + } + else if (!strcmp(dot, ".jxrs")) { + *mime = "image/jxrS"; + return 1; + } + else if (!strcmp(dot, ".jxs")) { + *mime = "image/jxs"; + return 1; + } + else if (!strcmp(dot, ".jxsc")) { + *mime = "image/jxsc"; + return 1; + } + else if (!strcmp(dot, ".jxsi")) { + *mime = "image/jxsi"; + return 1; + } + else if (!strcmp(dot, ".jxss")) { + *mime = "image/jxss"; + return 1; + } + else if (!strcmp(dot, ".ktx")) { + *mime = "image/ktx"; + return 1; + } + else if (!strcmp(dot, ".ktx2")) { + *mime = "image/ktx2"; + return 1; + } + else if (!strcmp(dot, ".btif")) { + *mime = "image/prs.btif"; + return 1; + } + else if (!strcmp(dot, ".btf")) { + *mime = "image/prs.btif"; + return 1; + } + else if (!strcmp(dot, ".pti")) { + *mime = "image/prs.pti"; + return 1; + } + else if (!strcmp(dot, ".svgz")) { + *mime = "image/svg+xml"; + return 1; + } + else if (!strcmp(dot, ".t38")) { + *mime = "image/t38"; + return 1; + } + else if (!strcmp(dot, ".tfx")) { + *mime = "image/tiff-fx"; + return 1; + } + else if (!strcmp(dot, ".psd")) { + *mime = "image/vnd.adobe.photoshop"; + return 1; + } + else if (!strcmp(dot, ".azv")) { + *mime = "image/vnd.airzip.accelerator.azv"; + return 1; + } + else if (!strcmp(dot, ".uvi")) { + *mime = "image/vnd.dece.graphic"; + return 1; + } + else if (!strcmp(dot, ".uvvi")) { + *mime = "image/vnd.dece.graphic"; + return 1; + } + else if (!strcmp(dot, ".uvg")) { + *mime = "image/vnd.dece.graphic"; + return 1; + } + else if (!strcmp(dot, ".uvvg")) { + *mime = "image/vnd.dece.graphic"; + return 1; + } + else if (!strcmp(dot, ".djvu")) { + *mime = "image/vnd.djvu"; + return 1; + } + else if (!strcmp(dot, ".djv")) { + *mime = "image/vnd.djvu"; + return 1; + } + else if (!strcmp(dot, ".dwg")) { + *mime = "image/vnd.dwg"; + return 1; + } + else if (!strcmp(dot, ".dxf")) { + *mime = "image/vnd.dxf"; + return 1; + } + else if (!strcmp(dot, ".fbs")) { + *mime = "image/vnd.fastbidsheet"; + return 1; + } + else if (!strcmp(dot, ".fpx")) { + *mime = "image/vnd.fpx"; + return 1; + } + else if (!strcmp(dot, ".fst")) { + *mime = "image/vnd.fst"; + return 1; + } + else if (!strcmp(dot, ".mmr")) { + *mime = "image/vnd.fujixerox.edmics-mmr"; + return 1; + } + else if (!strcmp(dot, ".rlc")) { + *mime = "image/vnd.fujixerox.edmics-rlc"; + return 1; + } + else if (!strcmp(dot, ".pgb")) { + *mime = "image/vnd.globalgraphics.pgb"; + return 1; + } + else if (!strcmp(dot, ".apng")) { + *mime = "image/vnd.mozilla.apng"; + return 1; + } + else if (!strcmp(dot, ".mdi")) { + *mime = "image/vnd.ms-modi"; + return 1; + } + else if (!strcmp(dot, ".b16")) { + *mime = "image/vnd.pco.b16"; + return 1; + } + else if (!strcmp(dot, ".hdr")) { + *mime = "image/vnd.radiance"; + return 1; + } + else if (!strcmp(dot, ".rgbe")) { + *mime = "image/vnd.radiance"; + return 1; + } + else if (!strcmp(dot, ".xyze")) { + *mime = "image/vnd.radiance"; + return 1; + } + else if (!strcmp(dot, ".spng")) { + *mime = "image/vnd.sealed.png"; + return 1; + } + else if (!strcmp(dot, ".spn")) { + *mime = "image/vnd.sealed.png"; + return 1; + } + else if (!strcmp(dot, ".s1n")) { + *mime = "image/vnd.sealed.png"; + return 1; + } + else if (!strcmp(dot, ".sgif")) { + *mime = "image/vnd.sealedmedia.softseal.gif"; + return 1; + } + else if (!strcmp(dot, ".sgi")) { + *mime = "image/sgi"; + return 1; + } + else if (!strcmp(dot, ".s1g")) { + *mime = "image/vnd.sealedmedia.softseal.gif"; + return 1; + } + else if (!strcmp(dot, ".sjpg")) { + *mime = "image/vnd.sealedmedia.softseal.jpg"; + return 1; + } + else if (!strcmp(dot, ".sjp")) { + *mime = "image/vnd.sealedmedia.softseal.jpg"; + return 1; + } + else if (!strcmp(dot, ".s1j")) { + *mime = "image/vnd.sealedmedia.softseal.jpg"; + return 1; + } + else if (!strcmp(dot, ".tap")) { + *mime = "image/vnd.tencent.tap"; + return 1; + } + else if (!strcmp(dot, ".vtf")) { + *mime = "image/vnd.valve.source.texture"; + } + else if (!strcmp(dot, ".wbmp")) { + *mime = "image/vnd.wap.wbmp"; + return 1; + } + else if (!strcmp(dot, ".xif")) { + *mime = "image/vnd.xiff"; + return 1; + } + else if (!strcmp(dot, ".pcx")) { + *mime = "image/x-pcx"; + return 1; + } + else if (!strcmp(dot, ".wmf")) { + *mime = "application/x-msmetafile"; + return 1; + } + else if (!strcmp(dot, ".u8msg")) { + *mime = "message/global"; + return 1; + } + else if (!strcmp(dot, ".u8dsn")) { + *mime = "message/global-delivery-status"; + return 1; + } + else if (!strcmp(dot, ".u8mdn")) { + *mime = "message/global-disposition-notification"; + return 1; + } + else if (!strcmp(dot, ".u8hdr")) { + *mime = "message/global-headers"; + return 1; + } + else if (!strcmp(dot, ".mail")) { + *mime = "message/rfc822"; + return 1; + } + else if (!strcmp(dot, ".art")) { + *mime = "message/rfc822"; + return 1; + } + else if (!strcmp(dot, ".glb")) { + *mime = "model/gltf-binary"; + return 1; + } + else if (!strcmp(dot, ".gltf")) { + *mime = "model/gltf+json"; + return 1; + } + else if (!strcmp(dot, ".igs")) { + *mime = "model/iges"; + return 1; + } + else if (!strcmp(dot, ".iges")) { + *mime = "model/iges"; + return 1; + } + else if (!strcmp(dot, ".msh")) { + *mime = "model/mesh"; + return 1; + } + else if (!strcmp(dot, ".mesh")) { + *mime = "model/mesh"; + return 1; + } + else if (!strcmp(dot, ".silo")) { + *mime = "model/mesh"; + return 1; + } + else if (!strcmp(dot, ".mtl")) { + *mime = "model/mtl"; + return 1; + } + else if (!strcmp(dot, ".stl")) { + *mime = "application/vnd.ms-pki.stl"; + return 1; + } + else if (!strcmp(dot, ".dae")) { + *mime = "model/vnd.collada+xml"; + return 1; + } + else if (!strcmp(dot, ".dwf")) { + *mime = "model/vnd.dwf"; + return 1; + } + else if (!strcmp(dot, ".gdl")) { + *mime = "model/vnd.gdl"; + return 1; + } + else if (!strcmp(dot, ".gsm")) { + *mime = "model/vnd.gdl"; + return 1; + } + else if (!strcmp(dot, ".win")) { + *mime = "model/vnd.gdl"; + return 1; + } + else if (!strcmp(dot, ".dor")) { + *mime = "model/vnd.gdl"; + return 1; + } + else if (!strcmp(dot, ".lmp")) { + *mime = "model/vnd.gdl"; + return 1; + } + else if (!strcmp(dot, ".rsm")) { + *mime = "model/vnd.gdl"; + return 1; + } + else if (!strcmp(dot, ".msm")) { + *mime = "model/vnd.gdl"; + return 1; + } + else if (!strcmp(dot, ".ism")) { + *mime = "model/vnd.gdl"; + return 1; + } + else if (!strcmp(dot, ".gtw")) { + *mime = "model/vnd.gtw"; + return 1; + } + else if (!strcmp(dot, ".moml")) { + *mime = "model/vnd.moml+xml"; + return 1; + } + else if (!strcmp(dot, ".mts")) { + *mime = "model/vnd.mts"; + return 1; + } + else if (!strcmp(dot, ".ogex")) { + *mime = "model/vnd.opengex"; + return 1; + } + else if (!strcmp(dot, ".x_b")) { + *mime = "model/vnd.parasolid.transmit.binary"; + return 1; + } + else if (!strcmp(dot, ".xmt_bin")) { + *mime = "model/vnd.parasolid.transmit.binary"; + return 1; + } + else if (!strcmp(dot, ".x_t")) { + *mime = "model/vnd.parasolid.transmit.text"; + } + else if (!strcmp(dot, ".xmt_txt")) { + *mime = "model/vnd.parasolid.transmit.text"; + } + else if (!strcmp(dot, ".pyox")) { + *mime = "model/vnd.pytha.pyox"; + return 1; + } + else if (!strcmp(dot, ".vds")) { + *mime = "model/vnd.sap.vds"; + return 1; + } + else if (!strcmp(dot, ".usdz")) { + *mime = "model/vnd.usdz+zip"; + return 1; + } + else if (!strcmp(dot, ".bsp")) { + *mime = "model/vnd.valve.source.compiled-map"; + return 1; + } + else if (!strcmp(dot, ".vtu")) { + *mime = "model/vnd.vtu"; + return 1; + } + else if (!strcmp(dot, ".wrl")) { + *mime = "model/vrml"; + return 1; + } + else if (!strcmp(dot, ".vrml")) { + *mime = "model/vrml"; + return 1; + } + else if (!strcmp(dot, ".x3db")) { + *mime = "model/x3d+binary"; + return 1; + } + else if (!strcmp(dot, ".x3dv")) { + *mime = "model/x3d+vrml"; + return 1; + } + else if (!strcmp(dot, ".x3dvz")) { + *mime = "model/x3d+vrml"; + return 1; + } + else if (!strcmp(dot, ".bmed")) { + *mime = "multipart/vnd.bint.med-plus"; + return 1; + } + else if (!strcmp(dot, ".vpm")) { + *mime = "multipart/voice-message"; + return 1; + } + else if (!strcmp(dot, ".appcache")) { + *mime = "text/cache-manifest"; + } + else if (!strcmp(dot, ".manifest")) { + *mime = "text/cache-manifest"; + } + else if (!strcmp(dot, ".ics")) { + *mime = "text/calendar"; + } + else if (!strcmp(dot, ".ifb")) { + *mime = "text/calendar"; + } + else if (!strcmp(dot, ".CQL")) { + *mime = "text/cql"; + } + else if (!strcmp(dot, ".csvs")) { + *mime = "text/csv-schema"; + } + else if (!strcmp(dot, ".soa")) { + *mime = "text/dns"; + } + else if (!strcmp(dot, ".zone")) { + *mime = "text/dns"; + } + else if (!strcmp(dot, ".gff3")) { + *mime = "text/gff3"; + } + else if (!strcmp(dot, ".cnd")) { + *mime = "text/jcr-cnd"; + } + else if (!strcmp(dot, ".markdown")) { + *mime = "text/markdown"; + } + else if (!strcmp(dot, ".md")) { + *mime = "text/markdown"; + } + else if (!strcmp(dot, ".miz")) { + *mime = "text/mizar"; + } + else if (!strcmp(dot, ".n3")) { + *mime = "text/n3"; + } + else if (!strcmp(dot, ".asc")) { + *mime = "application/pgp-signature"; + return 1; + } + else if (!strcmp(dot, ".text")) { + *mime = "text/plain"; + } + else if (!strcmp(dot, ".pm")) { + *mime = "text/plain"; + } + else if (!strcmp(dot, ".el")) { + *mime = "text/plain"; + } + else if (!strcmp(dot, ".cc")) { + *mime = "text/x-c"; + } + else if (!strcmp(dot, ".hh")) { + *mime = "text/x-c"; + } + else if (!strcmp(dot, ".cxx")) { + *mime = "text/x-c"; + } + else if (!strcmp(dot, ".hxx")) { + *mime = "text/plain"; + } + else if (!strcmp(dot, ".f90")) { + *mime = "text/x-fortran"; + } + else if (!strcmp(dot, ".conf")) { + *mime = "text/plain"; + } + else if (!strcmp(dot, ".log")) { + *mime = "text/plain"; + } + else if (!strcmp(dot, ".provn")) { + *mime = "text/provenance-notation"; + } + else if (!strcmp(dot, ".rst")) { + *mime = "text/prs.fallenstein.rst"; + } + else if (!strcmp(dot, ".tag")) { + *mime = "text/prs.lines.tag"; + } + else if (!strcmp(dot, ".dsc")) { + *mime = "text/prs.lines.tag"; + } + else if (!strcmp(dot, ".shaclc")) { + *mime = "text/shaclc"; + } + else if (!strcmp(dot, ".shc")) { + *mime = "text/shaclc"; + } + else if (!strcmp(dot, ".spdx")) { + *mime = "text/spdx"; + } + else if (!strcmp(dot, ".ttl")) { + *mime = "text/turtle"; + } + else if (!strcmp(dot, ".uris")) { + *mime = "text/uri-list"; + } + else if (!strcmp(dot, ".uri")) { + *mime = "text/uri-list"; + } + else if (!strcmp(dot, ".vcard")) { + *mime = "text/vcard"; + } + else if (!strcmp(dot, ".abc")) { + *mime = "text/vnd.abc"; + } + else if (!strcmp(dot, ".ascii")) { + *mime = "text/vnd.ascii-art"; + } + else if (!strcmp(dot, ".copyright")) { + *mime = "text/vnd.debian.copyright"; + } + else if (!strcmp(dot, ".dms")) { + *mime = "application/octet-stream"; + return 1; + } + else if (!strcmp(dot, ".sub")) { + *mime = "text/vnd.dvb.subtitle"; + } + else if (!strcmp(dot, ".jtd")) { + *mime = "text/vnd.esmertec.theme-descriptor"; + } + else if (!strcmp(dot, ".flt")) { + *mime = "text/vnd.ficlab.flt"; + } + else if (!strcmp(dot, ".fly")) { + *mime = "text/vnd.fly"; + } + else if (!strcmp(dot, ".flx")) { + *mime = "text/vnd.fmi.flexstor"; + } + else if (!strcmp(dot, ".gv")) { + *mime = "text/vnd.graphviz"; + } + else if (!strcmp(dot, ".hans")) { + *mime = "text/vnd.hans"; + } + else if (!strcmp(dot, ".hgl")) { + *mime = "text/vnd.hgl"; + } + else if (!strcmp(dot, ".3dml")) { + *mime = "text/vnd.in3d.3dml"; + } + else if (!strcmp(dot, ".3dm")) { + *mime = "text/vnd.in3d.3dml"; + } + else if (!strcmp(dot, ".spot")) { + *mime = "text/vnd.in3d.spot"; + } + else if (!strcmp(dot, ".spo")) { + *mime = "text/vnd.in3d.spot"; + } + else if (!strcmp(dot, ".mpf")) { + *mime = "text/vnd.ms-mediapackage"; + } + else if (!strcmp(dot, ".ccc")) { + *mime = "text/vnd.net2phone.commcenter.command"; + } + else if (!strcmp(dot, ".mc2")) { + *mime = "text/vnd.senx.warpscript"; + } + else if (!strcmp(dot, ".uric")) { + *mime = "text/vnd.si.uricatalogue"; + } + else if (!strcmp(dot, ".jad")) { + *mime = "text/vnd.sun.j2me.app-descriptor"; + } + else if (!strcmp(dot, ".sos")) { + *mime = "text/vnd.sosi"; + } + else if (!strcmp(dot, ".ts")) { + *mime = "text/vnd.trolltech.linguist"; + } + else if (!strcmp(dot, ".si")) { + *mime = "text/vnd.wap.si"; + } + else if (!strcmp(dot, ".sl")) { + *mime = "text/vnd.wap.sl"; + } + else if (!strcmp(dot, ".wml")) { + *mime = "text/vnd.wap.wml"; + } + else if (!strcmp(dot, ".wmls")) { + *mime = "text/vnd.wap.wmlscript"; + } + else if (!strcmp(dot, ".vtt")) { + *mime = "text/vtt"; + } + else if (!strcmp(dot, ".xsd")) { + *mime = "text/xml"; + } + else if (!strcmp(dot, ".rng")) { + *mime = "text/xml"; + } + else if (!strcmp(dot, ".ent")) { + *mime = "text/xml-external-parsed-entity"; + } + else if (!strcmp(dot, ".m4s")) { + *mime = "video/iso.segment"; + return 1; + } + else if (!strcmp(dot, ".mj2")) { + *mime = "video/mj2"; + return 1; + } + else if (!strcmp(dot, ".mjp2")) { + *mime = "video/mj2"; + return 1; + } + else if (!strcmp(dot, ".mpg4")) { + *mime = "video/mp4"; + return 1; + } + else if (!strcmp(dot, ".m4v")) { + *mime = "video/x-m4v"; + return 1; + } + else if (!strcmp(dot, ".m2v")) { + *mime = "video/mpeg"; + return 1; + } + else if (!strcmp(dot, ".ogv")) { + *mime = "video/ogg"; + return 1; + } + else if (!strcmp(dot, ".uvh")) { + *mime = "video/vnd.dece.hd"; + return 1; + } + else if (!strcmp(dot, ".uvvh")) { + *mime = "video/vnd.dece.hd"; + return 1; + } + else if (!strcmp(dot, ".uvm")) { + *mime = "video/vnd.dece.mobile"; + return 1; + } + else if (!strcmp(dot, ".uvvm")) { + *mime = "video/vnd.dece.mobile"; + return 1; + } + else if (!strcmp(dot, ".uvu")) { + *mime = "video/vnd.uvvu.mp4"; + return 1; + } + else if (!strcmp(dot, ".uvvu")) { + *mime = "video/vnd.uvvu.mp4"; + return 1; + } + else if (!strcmp(dot, ".uvp")) { + *mime = "video/vnd.dece.pd"; + return 1; + } + else if (!strcmp(dot, ".uvvp")) { + *mime = "video/vnd.dece.pd"; + return 1; + } + else if (!strcmp(dot, ".uvs")) { + *mime = "video/vnd.dece.sd"; + return 1; + } + else if (!strcmp(dot, ".uvvs")) { + *mime = "video/vnd.dece.sd"; + return 1; + } + else if (!strcmp(dot, ".uvv")) { + *mime = "video/vnd.dece.video"; + return 1; + } + else if (!strcmp(dot, ".uvvv")) { + *mime = "video/vnd.dece.video"; + return 1; + } + else if (!strcmp(dot, ".dvb")) { + *mime = "video/vnd.dvb.file"; + return 1; + } + else if (!strcmp(dot, ".fvt")) { + *mime = "video/vnd.fvt"; + return 1; + } + else if (!strcmp(dot, ".mxu")) { + *mime = "video/vnd.mpegurl"; + return 1; + } + else if (!strcmp(dot, ".m4u")) { + *mime = "video/vnd.mpegurl"; + return 1; + } + else if (!strcmp(dot, ".pyv")) { + *mime = "video/vnd.ms-playready.media.pyv"; + return 1; + } + else if (!strcmp(dot, ".nim")) { + *mime = "video/vnd.nokia.interleaved-multimedia"; + return 1; + } + else if (!strcmp(dot, ".bik")) { + *mime = "video/vnd.radgamettools.bink"; + return 1; + } + else if (!strcmp(dot, ".bk2")) { + *mime = "video/vnd.radgamettools.bink"; + return 1; + } + else if (!strcmp(dot, ".smk")) { + *mime = "video/vnd.radgamettools.smacker"; + return 1; + } + else if (!strcmp(dot, ".smpg")) { + *mime = "video/vnd.sealed.mpeg1"; + return 1; + } + else if (!strcmp(dot, ".s11")) { + *mime = "video/vnd.sealed.mpeg1"; + return 1; + } + else if (!strcmp(dot, ".s14")) { + *mime = "video/vnd.sealed.mpeg4"; + return 1; + } + else if (!strcmp(dot, ".sswf")) { + *mime = "video/vnd.sealed.swf"; + return 1; + } + else if (!strcmp(dot, ".ssw")) { + *mime = "video/vnd.sealed.swf"; + return 1; + } + else if (!strcmp(dot, ".smov")) { + *mime = "video/vnd.sealedmedia.softseal.mov"; + return 1; + } + else if (!strcmp(dot, ".smo")) { + *mime = "video/vnd.sealedmedia.softseal.mov"; + return 1; + } + else if (!strcmp(dot, ".s1q")) { + *mime = "video/vnd.sealedmedia.softseal.mov"; + return 1; + } + else if (!strcmp(dot, ".yt")) { + *mime = "video/vnd.youtube.yt"; + return 1; + } + else if (!strcmp(dot, ".viv")) { + *mime = "video/vnd.vivo"; + return 1; + } + else if (!strcmp(dot, ".cpt")) { + *mime = "application/mac-compactpro"; + return 1; + } + else if (!strcmp(dot, ".metalink")) { + *mime = "application/metalink+xml"; + return 1; + } + else if (!strcmp(dot, ".owx")) { + *mime = "application/owl+xml"; + return 1; + } + else if (!strcmp(dot, ".rss")) { + *mime = "application/rss+xml"; + return 1; + } + else if (!strcmp(dot, ".apk")) { + *mime = "application/vnd.android.package-archive"; + return 1; + } + else if (!strcmp(dot, ".dd")) { + *mime = "application/vnd.oma.dd+xml"; + return 1; + } + else if (!strcmp(dot, ".dcf")) { + *mime = "application/vnd.oma.drm.content"; + return 1; + } + else if (!strcmp(dot, ".o4a")) { + *mime = "application/vnd.oma.drm.dcf"; + return 1; + } + else if (!strcmp(dot, ".o4v")) { + *mime = "application/vnd.oma.drm.dcf"; + return 1; + } + else if (!strcmp(dot, ".dm")) { + *mime = "application/vnd.oma.drm.message"; + return 1; + } + else if (!strcmp(dot, ".drc")) { + *mime = "application/vnd.oma.drm.rights+wbxml"; + return 1; + } + else if (!strcmp(dot, ".dr")) { + *mime = "application/vnd.oma.drm.rights+xml"; + return 1; + } + else if (!strcmp(dot, ".sxc")) { + *mime = "application/vnd.sun.xml.calc"; + return 1; + } + else if (!strcmp(dot, ".stc")) { + *mime = "application/vnd.sun.xml.calc.template"; + return 1; + } + else if (!strcmp(dot, ".sxd")) { + *mime = "application/vnd.sun.xml.draw"; + return 1; + } + else if (!strcmp(dot, ".std")) { + *mime = "application/vnd.sun.xml.draw.template"; + return 1; + } + else if (!strcmp(dot, ".sxi")) { + *mime = "application/vnd.sun.xml.impress"; + return 1; + } + else if (!strcmp(dot, ".sti")) { + *mime = "application/vnd.sun.xml.impress.template"; + return 1; + } + else if (!strcmp(dot, ".sxm")) { + *mime = "application/vnd.sun.xml.math"; + return 1; + } + else if (!strcmp(dot, ".sxw")) { + *mime = "application/vnd.sun.xml.writer"; + return 1; + } + else if (!strcmp(dot, ".sxg")) { + *mime = "application/vnd.sun.xml.writer.global"; + return 1; + } + else if (!strcmp(dot, ".stw")) { + *mime = "application/vnd.sun.xml.writer.template"; + return 1; + } + else if (!strcmp(dot, ".sis")) { + *mime = "application/vnd.symbian.install"; + return 1; + } + else if (!strcmp(dot, ".mms")) { + *mime = "application/vnd.wap.mms-message"; + return 1; + } + else if (!strcmp(dot, ".anx")) { + *mime = "application/x-annodex"; + return 1; + } + else if (!strcmp(dot, ".torrent")) { + *mime = "application/x-bittorrent"; + return 1; + } + else if (!strcmp(dot, ".bz2")) { + *mime = "application/x-bzip2"; + return 1; + } + else if (!strcmp(dot, ".vcd")) { + *mime = "application/x-cdlink"; + return 1; + } + else if (!strcmp(dot, ".crx")) { + *mime = "application/x-chrome-extension"; + return 1; + } + else if (!strcmp(dot, ".dcr")) { + *mime = "application/x-director"; + return 1; + } + else if (!strcmp(dot, ".dir")) { + *mime = "application/x-director"; + return 1; + } + else if (!strcmp(dot, ".dxr")) { + *mime = "application/x-director"; + return 1; + } + else if (!strcmp(dot, ".spl")) { + *mime = "application/x-futuresplash"; + return 1; + } + else if (!strcmp(dot, ".jar")) { + *mime = "application/java-archive"; + return 1; + } + else if (!strcmp(dot, ".jnlp")) { + *mime = "application/x-java-jnlp-file"; + return 1; + } + else if (!strcmp(dot, ".pack")) { + *mime = "application/x-java-pack200"; + return 1; + } + else if (!strcmp(dot, ".kil")) { + *mime = "application/x-killustrator"; + return 1; + } + else if (!strcmp(dot, ".rpm")) { + *mime = "application/x-rpm"; + return 1; + } + else if (!strcmp(dot, ".sit")) { + *mime = "application/x-stuffit"; + return 1; + } + else if (!strcmp(dot, ".1")) { + *mime = "application/x-troff-man"; + return 1; + } + else if (!strcmp(dot, ".2")) { + *mime = "application/x-troff-man"; + return 1; + } + else if (!strcmp(dot, ".3")) { + *mime = "application/x-troff-man"; + return 1; + } + else if (!strcmp(dot, ".4")) { + *mime = "application/x-troff-man"; + return 1; + } + else if (!strcmp(dot, ".5")) { + *mime = "application/x-troff-man"; + return 1; + } + else if (!strcmp(dot, ".6")) { + *mime = "application/x-troff-man"; + return 1; + } + else if (!strcmp(dot, ".7")) { + *mime = "application/x-troff-man"; + return 1; + } + else if (!strcmp(dot, ".8")) { + *mime = "application/x-troff-man"; + return 1; + } + else if (!strcmp(dot, ".xpi")) { + *mime = "application/x-xpinstall"; + return 1; + } + else if (!strcmp(dot, ".xspf")) { + *mime = "application/xspf+xml"; + return 1; + } + else if (!strcmp(dot, ".xz")) { + *mime = "application/x-xz"; + return 1; + } + else if (!strcmp(dot, ".mid")) { + *mime = "audio/midi"; + return 1; + } + else if (!strcmp(dot, ".midi")) { + *mime = "audio/midi"; + return 1; + } + else if (!strcmp(dot, ".kar")) { + *mime = "audio/midi"; + return 1; + } + else if (!strcmp(dot, ".axa")) { + *mime = "audio/x-annodex"; + return 1; + } + else if (!strcmp(dot, ".flac")) { + *mime = "audio/x-flac"; + return 1; + } + else if (!strcmp(dot, ".mka")) { + *mime = "audio/x-matroska"; + return 1; + } + else if (!strcmp(dot, ".mod")) { + *mime = "audio/x-mod"; + return 1; + } + else if (!strcmp(dot, ".ult")) { + *mime = "audio/x-mod"; + return 1; + } + else if (!strcmp(dot, ".uni")) { + *mime = "audio/x-mod"; + return 1; + } + else if (!strcmp(dot, ".m15")) { + *mime = "audio/x-mod"; + return 1; + } + else if (!strcmp(dot, ".mtm")) { + *mime = "audio/x-mod"; + return 1; + } + else if (!strcmp(dot, ".669")) { + *mime = "audio/x-mod"; + return 1; + } + else if (!strcmp(dot, ".med")) { + *mime = "audio/x-mod"; + return 1; + } + else if (!strcmp(dot, ".wax")) { + *mime = "audio/x-ms-wax"; + return 1; + } + else if (!strcmp(dot, ".wma")) { + *mime = "audio/x-ms-wma"; + return 1; + } + else if (!strcmp(dot, ".rm")) { + *mime = "application/vnd.rn-realmedia"; + return 1; + } + else if (!strcmp(dot, ".s3m")) { + *mime = "audio/s3m"; + return 1; + } + else if (!strcmp(dot, ".stm")) { + *mime = "audio/x-stm"; + return 1; + } + else if (!strcmp(dot, ".xyz")) { + *mime = "chemical/x-xyz"; + return 1; + } + else if (!strcmp(dot, ".webp")) { + *mime = "image/webp"; + return 1; + } + else if (!strcmp(dot, ".tga")) { + *mime = "image/x-tga"; + return 1; + } + else if (!strcmp(dot, ".sandboxed")) { + *mime = "text/html-sandboxed"; + } + else if (!strcmp(dot, ".pod")) { + *mime = "text/x-pod"; + } + else if (!strcmp(dot, ".axv")) { + *mime = "video/x-annodex"; + return 1; + } + else if (!strcmp(dot, ".flv")) { + *mime = "video/x-flv"; + return 1; + } + else if (!strcmp(dot, ".fxm")) { + *mime = "video/x-javafx"; + return 1; + } + else if (!strcmp(dot, ".mkv")) { + *mime = "video/x-matroska"; + return 1; + } + else if (!strcmp(dot, ".mk3d")) { + *mime = "video/x-matroska"; + return 1; + } + else if (!strcmp(dot, ".asx")) { + *mime = "video/x-ms-asf"; + return 1; + } + else if (!strcmp(dot, ".wm")) { + *mime = "video/x-ms-wm"; + return 1; + } + else if (!strcmp(dot, ".wmv")) { + *mime = "video/x-ms-wmv"; + return 1; + } + else if (!strcmp(dot, ".wmx")) { + *mime = "video/x-ms-wmx"; + return 1; + } + else if (!strcmp(dot, ".wvx")) { + *mime = "video/x-ms-wvx"; + return 1; + } + else if (!strcmp(dot, ".ice")) { + *mime = "x-conference/x-cooltalk"; + return 1; + } + else if (!strcmp(dot, ".sisx")) { + *mime = "application/vnd.symbian.install"; + return 1; + } + else if (!strcmp(dot, ".aw")) { + *mime = "application/applixware"; + return 1; + } + else if (!strcmp(dot, ".cu")) { + *mime = "application/cu-seeme"; + return 1; + } + else if (!strcmp(dot, ".dbk")) { + *mime = "application/docbook+xml"; + return 1; + } + else if (!strcmp(dot, ".ecma")) { + *mime = "application/ecmascript"; + return 1; + } + else if (!strcmp(dot, ".gpx")) { + *mime = "application/gpx+xml"; + return 1; + } + else if (!strcmp(dot, ".gxf")) { + *mime = "application/gxf"; + return 1; + } + else if (!strcmp(dot, ".ser")) { + *mime = "application/java-serialized-object"; + return 1; + } + else if (!strcmp(dot, ".jsonml")) { + *mime = "application/jsonml+json"; + } + else if (!strcmp(dot, ".mathml")) { + *mime = "application/mathml+xml"; + return 1; + } + else if (!strcmp(dot, ".mscml")) { + *mime = "application/mediaservercontrol+xml"; + return 1; + } + else if (!strcmp(dot, ".mp4s")) { + *mime = "application/mp4"; + return 1; + } + else if (!strcmp(dot, ".lrf")) { + *mime = "application/octet-stream"; + return 1; + } + else if (!strcmp(dot, ".mar")) { + *mime = "application/octet-stream"; + return 1; + } + else if (!strcmp(dot, ".bpk")) { + *mime = "application/octet-stream"; + return 1; + } + else if (!strcmp(dot, ".dump")) { + *mime = "application/octet-stream"; + return 1; + } + else if (!strcmp(dot, ".elc")) { + *mime = "application/octet-stream"; + return 1; + } + else if (!strcmp(dot, ".deploy")) { + *mime = "application/octet-stream"; + return 1; + } + else if (!strcmp(dot, ".omdoc")) { + *mime = "application/omdoc+xml"; + return 1; + } + else if (!strcmp(dot, ".onetoc")) { + *mime = "application/onenote"; + return 1; + } + else if (!strcmp(dot, ".onetoc2")) { + *mime = "application/onenote"; + return 1; + } + else if (!strcmp(dot, ".onetmp")) { + *mime = "application/onenote"; + return 1; + } + else if (!strcmp(dot, ".onepkg")) { + *mime = "application/onenote"; + return 1; + } + else if (!strcmp(dot, ".prf")) { + *mime = "application/pics-rules"; + return 1; + } + else if (!strcmp(dot, ".rsd")) { + *mime = "application/rsd+xml"; + return 1; + } + else if (!strcmp(dot, ".sbml")) { + *mime = "application/sbml+xml"; + return 1; + } + else if (!strcmp(dot, ".setpay")) { + *mime = "application/set-payment-initiation"; + return 1; + } + else if (!strcmp(dot, ".setreg")) { + *mime = "application/set-registration-initiation"; + return 1; + } + else if (!strcmp(dot, ".ssdl")) { + *mime = "application/ssdl+xml"; + return 1; + } + else if (!strcmp(dot, ".teicorpus")) { + *mime = "application/tei+xml"; + return 1; + } + else if (!strcmp(dot, ".air")) { + *mime = "application/vnd.adobe.air-application-installer-package+zip"; + return 1; + } + else if (!strcmp(dot, ".azw")) { + *mime = "application/vnd.amazon.ebook"; + return 1; + } + else if (!strcmp(dot, ".car")) { + *mime = "application/vnd.curl.car"; + return 1; + } + else if (!strcmp(dot, ".pcurl")) { + *mime = "application/vnd.curl.pcurl"; + return 1; + } + else if (!strcmp(dot, ".kpxx")) { + *mime = "application/vnd.ds-keypoint"; + return 1; + } + else if (!strcmp(dot, ".frame")) { + *mime = "application/vnd.framemaker"; + return 1; + } + else if (!strcmp(dot, ".maker")) { + *mime = "application/vnd.framemaker"; + return 1; + } + else if (!strcmp(dot, ".book")) { + *mime = "application/vnd.framemaker"; + return 1; + } + else if (!strcmp(dot, ".pclxl")) { + *mime = "application/vnd.hp-pclxl"; + return 1; + } + else if (!strcmp(dot, ".cat")) { + *mime = "application/vnd.ms-pki.seccat"; + return 1; + } + else if (!strcmp(dot, ".odft")) { + *mime = "application/vnd.oasis.opendocument.formula-template"; + return 1; + } + else if (!strcmp(dot, ".musicxml")) { + *mime = "application/vnd.recordare.musicxml+xml"; + return 1; + } + else if (!strcmp(dot, ".cod")) { + *mime = "application/vnd.rim.cod"; + return 1; + } + else if (!strcmp(dot, ".rmvb")) { + *mime = "application/vnd.rn-realmedia-vbr"; + return 1; + } + else if (!strcmp(dot, ".sdc")) { + *mime = "application/vnd.stardivision.calc"; + return 1; + } + else if (!strcmp(dot, ".sda")) { + *mime = "application/vnd.stardivision.draw"; + return 1; + } + else if (!strcmp(dot, ".sdd")) { + *mime = "application/vnd.stardivision.impress"; + return 1; + } + else if (!strcmp(dot, ".smf")) { + *mime = "application/vnd.stardivision.math"; + return 1; + } + else if (!strcmp(dot, ".sdw")) { + *mime = "application/vnd.stardivision.writer"; + return 1; + } + else if (!strcmp(dot, ".vor")) { + *mime = "application/vnd.stardivision.writer"; + return 1; + } + else if (!strcmp(dot, ".sgl")) { + *mime = "application/vnd.stardivision.writer-global"; + return 1; + } + else if (!strcmp(dot, ".svd")) { + *mime = "application/vnd.svd"; + return 1; + } + else if (!strcmp(dot, ".osfpvg")) { + *mime = "application/vnd.yamaha.openscoreformat.osfpvg+xml"; + return 1; + } + else if (!strcmp(dot, ".hlp")) { + *mime = "application/winhlp"; + return 1; + } + else if (!strcmp(dot, ".7z")) { + *mime = "application/x-7z-compressed"; + return 1; + } + else if (!strcmp(dot, ".abw")) { + *mime = "application/x-abiword"; + return 1; + } + else if (!strcmp(dot, ".ace")) { + *mime = "application/x-ace-compressed"; + return 1; + } + else if (!strcmp(dot, ".dmg")) { + *mime = "application/x-apple-diskimage"; + return 1; + } + else if (!strcmp(dot, ".aab")) { + *mime = "application/x-authorware-bin"; + return 1; + } + else if (!strcmp(dot, ".x32")) { + *mime = "application/x-authorware-bin"; + return 1; + } + else if (!strcmp(dot, ".u32")) { + *mime = "application/x-authorware-bin"; + return 1; + } + else if (!strcmp(dot, ".vox")) { + *mime = "application/x-authorware-bin"; + return 1; + } + else if (!strcmp(dot, ".aam")) { + *mime = "application/x-authorware-map"; + return 1; + } + else if (!strcmp(dot, ".aas")) { + *mime = "application/x-authorware-seg"; + return 1; + } + else if (!strcmp(dot, ".blb")) { + *mime = "application/x-blorb"; + return 1; + } + else if (!strcmp(dot, ".blorb")) { + *mime = "application/x-blorb"; + return 1; + } + else if (!strcmp(dot, ".bz")) { + *mime = "application/x-bzip"; + return 1; + } + else if (!strcmp(dot, ".boz")) { + *mime = "application/x-bzip2"; + return 1; + } + else if (!strcmp(dot, ".cba")) { + *mime = "application/x-cbr"; + return 1; + } + else if (!strcmp(dot, ".cbt")) { + *mime = "application/x-cbr"; + return 1; + } + else if (!strcmp(dot, ".cb7")) { + *mime = "application/x-cbr"; + return 1; + } + else if (!strcmp(dot, ".cfs")) { + *mime = "application/x-cfs-compressed"; + return 1; + } + else if (!strcmp(dot, ".chat")) { + *mime = "application/x-chat"; + return 1; + } + else if (!strcmp(dot, ".nsc")) { + *mime = "application/x-conference"; + return 1; + } + else if (!strcmp(dot, ".dgc")) { + *mime = "application/x-dgc-compressed"; + return 1; + } + else if (!strcmp(dot, ".cct")) { + *mime = "application/x-director"; + return 1; + } + else if (!strcmp(dot, ".cxt")) { + *mime = "application/x-director"; + return 1; + } + else if (!strcmp(dot, ".w3d")) { + *mime = "application/x-director"; + return 1; + } + else if (!strcmp(dot, ".fgd")) { + *mime = "application/x-director"; + return 1; + } + else if (!strcmp(dot, ".swa")) { + *mime = "application/x-director"; + return 1; + } + else if (!strcmp(dot, ".wad")) { + *mime = "application/x-doom"; + return 1; + } + else if (!strcmp(dot, ".ncx")) { + *mime = "application/x-dtbncx+xml"; + return 1; + } + else if (!strcmp(dot, ".dtb")) { + *mime = "application/x-dtbook+xml"; + return 1; + } + else if (!strcmp(dot, ".res")) { + *mime = "application/x-dtbresource+xml"; + return 1; + } + else if (!strcmp(dot, ".evy")) { + *mime = "application/x-envoy"; + return 1; + } + else if (!strcmp(dot, ".eva")) { + *mime = "application/x-eva"; + return 1; + } + else if (!strcmp(dot, ".bdf")) { + *mime = "application/x-font-bdf"; + return 1; + } + else if (!strcmp(dot, ".gsf")) { + *mime = "application/x-font-ghostscript"; + return 1; + } + else if (!strcmp(dot, ".psf")) { + *mime = "application/x-font-linux-psf"; + return 1; + } + else if (!strcmp(dot, ".pcf")) { + *mime = "application/x-font-pcf"; + return 1; + } + else if (!strcmp(dot, ".snf")) { + *mime = "application/x-font-snf"; + return 1; + } + else if (!strcmp(dot, ".pfa")) { + *mime = "application/x-font-type1"; + return 1; + } + else if (!strcmp(dot, ".pfb")) { + *mime = "application/x-font-type1"; + return 1; + } + else if (!strcmp(dot, ".pfm")) { + *mime = "application/x-font-type1"; + return 1; + } + else if (!strcmp(dot, ".afm")) { + *mime = "application/x-font-type1"; + return 1; + } + else if (!strcmp(dot, ".arc")) { + *mime = "application/x-freearc"; + return 1; + } + else if (!strcmp(dot, ".gca")) { + *mime = "application/x-gca-compressed"; + return 1; + } + else if (!strcmp(dot, ".ulx")) { + *mime = "application/x-glulx"; + return 1; + } + else if (!strcmp(dot, ".gnumeric")) { + *mime = "application/x-gnumeric"; + return 1; + } + else if (!strcmp(dot, ".gramps")) { + *mime = "application/x-gramps-xml"; + return 1; + } + else if (!strcmp(dot, ".install")) { + *mime = "application/x-install-instructions"; + return 1; + } + else if (!strcmp(dot, ".mie")) { + *mime = "application/x-mie"; + return 1; + } + else if (!strcmp(dot, ".mobi")) { + *mime = "application/x-mobipocket-ebook"; + return 1; + } + else if (!strcmp(dot, ".application")) { + *mime = "application/x-ms-application"; + return 1; + } + else if (!strcmp(dot, ".lnk")) { + *mime = "application/x-ms-shortcut"; + return 1; + } + else if (!strcmp(dot, ".wmd")) { + *mime = "application/x-ms-wmd"; + return 1; + } + else if (!strcmp(dot, ".wmz")) { + *mime = "application/x-msmetafile"; + return 1; + } + else if (!strcmp(dot, ".xbap")) { + *mime = "application/x-ms-xbap"; + return 1; + } + else if (!strcmp(dot, ".mdb")) { + *mime = "application/x-msaccess"; + return 1; + } + else if (!strcmp(dot, ".obd")) { + *mime = "application/x-msbinder"; + return 1; + } + else if (!strcmp(dot, ".crd")) { + *mime = "application/x-mscardfile"; + return 1; + } + else if (!strcmp(dot, ".clp")) { + *mime = "application/x-msclip"; + return 1; + } + else if (!strcmp(dot, ".com")) { + *mime = "application/x-msdownload"; + return 1; + } + else if (!strcmp(dot, ".msi")) { + *mime = "application/x-msdownload"; + return 1; + } + else if (!strcmp(dot, ".mvb")) { + *mime = "application/x-msmediaview"; + return 1; + } + else if (!strcmp(dot, ".m13")) { + *mime = "application/x-msmediaview"; + return 1; + } + else if (!strcmp(dot, ".m14")) { + *mime = "application/x-msmediaview"; + return 1; + } + else if (!strcmp(dot, ".emz")) { + *mime = "application/x-msmetafile"; + return 1; + } + else if (!strcmp(dot, ".mny")) { + *mime = "application/x-msmoney"; + return 1; + } + else if (!strcmp(dot, ".trm")) { + *mime = "application/x-msterminal"; + return 1; + } + else if (!strcmp(dot, ".wri")) { + *mime = "application/x-mswrite"; + return 1; + } + else if (!strcmp(dot, ".nzb")) { + *mime = "application/x-nzb"; + return 1; + } + else if (!strcmp(dot, ".p7b")) { + *mime = "application/x-pkcs7-certificates"; + return 1; + } + else if (!strcmp(dot, ".spc")) { + *mime = "application/x-pkcs7-certificates"; + return 1; + } + else if (!strcmp(dot, ".p7r")) { + *mime = "application/x-pkcs7-certreqresp"; + return 1; + } + else if (!strcmp(dot, ".ris")) { + *mime = "application/x-research-info-systems"; + return 1; + } + else if (!strcmp(dot, ".xap")) { + *mime = "application/x-silverlight-app"; + return 1; + } + else if (!strcmp(dot, ".sitx")) { + *mime = "application/x-stuffitx"; + return 1; + } + else if (!strcmp(dot, ".srt")) { + *mime = "application/x-subrip"; + return 1; + } + else if (!strcmp(dot, ".t3")) { + *mime = "application/x-t3vm-image"; + return 1; + } + else if (!strcmp(dot, ".gam")) { + *mime = "application/x-tads"; + return 1; + } + else if (!strcmp(dot, ".tfm")) { + *mime = "application/x-tex-tfm"; + return 1; + } + else if (!strcmp(dot, ".der")) { + *mime = "application/x-x509-ca-cert"; + return 1; + } + else if (!strcmp(dot, ".crt")) { + *mime = "application/x-x509-ca-cert"; + return 1; + } + else if (!strcmp(dot, ".fig")) { + *mime = "application/x-xfig"; + return 1; + } + else if (!strcmp(dot, ".z1")) { + *mime = "application/x-zmachine"; + return 1; + } + else if (!strcmp(dot, ".z2")) { + *mime = "application/x-zmachine"; + return 1; + } + else if (!strcmp(dot, ".z3")) { + *mime = "application/x-zmachine"; + return 1; + } + else if (!strcmp(dot, ".z4")) { + *mime = "application/x-zmachine"; + return 1; + } + else if (!strcmp(dot, ".z5")) { + *mime = "application/x-zmachine"; + return 1; + } + else if (!strcmp(dot, ".z6")) { + *mime = "application/x-zmachine"; + return 1; + } + else if (!strcmp(dot, ".z7")) { + *mime = "application/x-zmachine"; + return 1; + } + else if (!strcmp(dot, ".z8")) { + *mime = "application/x-zmachine"; + return 1; + } + else if (!strcmp(dot, ".xaml")) { + *mime = "application/xaml+xml"; + return 1; + } + else if (!strcmp(dot, ".xenc")) { + *mime = "application/xenc+xml"; + return 1; + } + else if (!strcmp(dot, ".xpl")) { + *mime = "application/xproc+xml"; + return 1; + } + else if (!strcmp(dot, ".adp")) { + *mime = "audio/adpcm"; + return 1; + } + else if (!strcmp(dot, ".rmi")) { + *mime = "audio/midi"; + return 1; + } + else if (!strcmp(dot, ".mp4a")) { + *mime = "audio/mp4"; + return 1; + } + else if (!strcmp(dot, ".mp2a")) { + *mime = "audio/mpeg"; + return 1; + } + else if (!strcmp(dot, ".m2a")) { + *mime = "audio/mpeg"; + return 1; + } + else if (!strcmp(dot, ".m3a")) { + *mime = "audio/mpeg"; + return 1; + } + else if (!strcmp(dot, ".sil")) { + *mime = "audio/silk"; + return 1; + } + else if (!strcmp(dot, ".dra")) { + *mime = "audio/vnd.dra"; + return 1; + } + else if (!strcmp(dot, ".weba")) { + *mime = "audio/webm"; + return 1; + } + else if (!strcmp(dot, ".caf")) { + *mime = "audio/x-caf"; + return 1; + } + else if (!strcmp(dot, ".rmp")) { + *mime = "audio/x-pn-realaudio-plugin"; + return 1; + } + else if (!strcmp(dot, ".xm")) { + *mime = "audio/xm"; + return 1; + } + else if (!strcmp(dot, ".cdx")) { + *mime = "chemical/x-cdx"; + return 1; + } + else if (!strcmp(dot, ".cmdf")) { + *mime = "chemical/x-cmdf"; + return 1; + } + else if (!strcmp(dot, ".csml")) { + *mime = "chemical/x-csml"; + return 1; + } + else if (!strcmp(dot, ".wdp")) { + *mime = "image/vnd.ms-photo"; + return 1; + } + else if (!strcmp(dot, ".npx")) { + *mime = "image/vnd.net-fpx"; + return 1; + } + else if (!strcmp(dot, ".3ds")) { + *mime = "image/x-3ds"; + return 1; + } + else if (!strcmp(dot, ".cmx")) { + *mime = "image/x-cmx"; + return 1; + } + else if (!strcmp(dot, ".fh")) { + *mime = "image/x-freehand"; + return 1; + } + else if (!strcmp(dot, ".fhc")) { + *mime = "image/x-freehand"; + return 1; + } + else if (!strcmp(dot, ".fh4")) { + *mime = "image/x-freehand"; + return 1; + } + else if (!strcmp(dot, ".fh5")) { + *mime = "image/x-freehand"; + return 1; + } + else if (!strcmp(dot, ".fh7")) { + *mime = "image/x-freehand"; + return 1; + } + else if (!strcmp(dot, ".pic")) { + *mime = "image/x-pict"; + return 1; + } + else if (!strcmp(dot, ".pct")) { + *mime = "image/x-pict"; + return 1; + } + else if (!strcmp(dot, ".mime")) { + *mime = "message/rfc822"; + return 1; + } + else if (!strcmp(dot, ".x3dbz")) { + *mime = "model/x3d+binary"; + return 1; + } + else if (!strcmp(dot, ".x3dz")) { + *mime = "model/x3d+xml"; + return 1; + } + else if (!strcmp(dot, ".def")) { + *mime = "text/plain"; + } + else if (!strcmp(dot, ".list")) { + *mime = "text/plain"; + } + else if (!strcmp(dot, ".in")) { + *mime = "text/plain"; + } + else if (!strcmp(dot, ".urls")) { + *mime = "text/uri-list"; + } + else if (!strcmp(dot, ".dcurl")) { + *mime = "text/vnd.curl.dcurl"; + } + else if (!strcmp(dot, ".mcurl")) { + *mime = "text/vnd.curl.mcurl"; + } + else if (!strcmp(dot, ".scurl")) { + *mime = "text/vnd.curl.scurl"; + } + else if (!strcmp(dot, ".s")) { + *mime = "text/x-asm"; + } + else if (!strcmp(dot, ".asm")) { + *mime = "text/x-asm"; + } + else if (!strcmp(dot, ".cpp")) { + *mime = "text/x-c"; + } + else if (!strcmp(dot, ".dic")) { + *mime = "text/x-c"; + } + else if (!strcmp(dot, ".f")) { + *mime = "text/x-fortran"; + } + else if (!strcmp(dot, ".for")) { + *mime = "text/x-fortran"; + } + else if (!strcmp(dot, ".f77")) { + *mime = "text/x-fortran"; + } + else if (!strcmp(dot, ".java")) { + *mime = "text/x-java-source"; + } + else if (!strcmp(dot, ".nfo")) { + *mime = "text/x-nfo"; + } + else if (!strcmp(dot, ".opml")) { + *mime = "text/x-opml"; + } + else if (!strcmp(dot, ".p")) { + *mime = "text/x-pascal"; + } + else if (!strcmp(dot, ".pas")) { + *mime = "text/x-pascal"; + } + else if (!strcmp(dot, ".sfv")) { + *mime = "text/x-sfv"; + } + else if (!strcmp(dot, ".uu")) { + *mime = "text/x-uuencode"; + } + else if (!strcmp(dot, ".vcs")) { + *mime = "text/x-vcalendar"; + } + else if (!strcmp(dot, ".h261")) { + *mime = "video/h261"; + return 1; + } + else if (!strcmp(dot, ".h263")) { + *mime = "video/h263"; + return 1; + } + else if (!strcmp(dot, ".h264")) { + *mime = "video/h264"; + return 1; + } + else if (!strcmp(dot, ".jpgv")) { + *mime = "video/jpeg"; + return 1; + } + else if (!strcmp(dot, ".mp4v")) { + *mime = "video/mp4"; + return 1; + } + else if (!strcmp(dot, ".f4v")) { + *mime = "video/x-f4v"; + return 1; + } + else if (!strcmp(dot, ".fli")) { + *mime = "video/x-fli"; + return 1; + } + else if (!strcmp(dot, ".mks")) { + *mime = "video/x-matroska"; + return 1; + } + else if (!strcmp(dot, ".mng")) { + *mime = "video/x-mng"; + return 1; + } + else if (!strcmp(dot, ".vob")) { + *mime = "video/x-ms-vob"; + return 1; + } + else if (!strcmp(dot, "example")) { + *mime = "text/example"; } else { - warn("mimetype for %s not found\n", filename); + warn("mimetype for %s not found\n", filename); *mime = "text/plain"; } if (hasTriedIndex == 1) { diff --git a/scripts/genMime.py b/scripts/genMime.py new file mode 100644 index 0000000..95b9a5a --- /dev/null +++ b/scripts/genMime.py @@ -0,0 +1,71 @@ +CUSTOM_TYPES = { + "example": "text/example" +} + +import mimetypes +mimetypes.init() + +types = mimetypes.types_map + +for k,v in CUSTOM_TYPES.items(): + types[k] = v + +genString = "if (0) {} " + +for k,v in types.items(): + if "text" in v or "application/json" in v or "application/x-sh" in v or "application/xhtml+xml" in v or "application/xml" in v or "application/javascript" in v: + genString += f""" + else if (!strcmp(dot, "{k}")) {{ + *mime = "{v}"; + }}""" + else: + genString += f""" + else if (!strcmp(dot, "{k}")) {{ + *mime = "{v}"; + return 1; + }}""" + +fullText = f"""#pragma once +#include +#ifdef NO_GC +#include +#define malloc(n) GC_malloc(n) +#else +#include +#endif + +#include "log.h" + +int hasTriedIndex; + +int getMime(char** mime, char* filename) {{ + char* dot = strrchr(filename, '.'); + + if (!dot || dot == filename) {{ + if (!hasTriedIndex) {{ + hasTriedIndex++; + strcat(filename, "/index.html"); + info("trying to upgrade directory to index.html"); + return getMime(mime, filename); + }} else {{ + warn("file extension does not exist or is the same as request's path.\\n"); + hasTriedIndex = 1; + *mime = "text/plain"; + return 0; + }} + }} else {{ {genString} else {{ + warn("mimetype for %s not found\\n", filename); + *mime = "text/plain"; + }} + if (hasTriedIndex == 1) {{ + hasTriedIndex = 2; + }} else {{ + hasTriedIndex = 0; + }} + }} + return 0; +}} +""" + +with open("lib/mime.h", "w") as f: + f.write(fullText)