]> granicus.if.org Git - php/commitdiff
Rework magic data once more
authorAnatol Belski <ab@php.net>
Wed, 14 Nov 2018 21:23:24 +0000 (22:23 +0100)
committerAnatol Belski <ab@php.net>
Wed, 14 Nov 2018 21:23:24 +0000 (22:23 +0100)
The change reduces the input size on patterns using posix character
classes. It is still better than reverting to the patterns from the
older version, as the upstream data uses posix classes also in the later
versions. The input reduction speeds up the pattern matching in some
cases.

This patch is functionally almost same as upstream, but might show some diff
when the input is very long. While the magic data in the newer versions is
functionally an improvement, with jit=0 it might show a performance regression.
The slowdown is negligible in the normal usage and is still acceptable for the
malicious input. If some functional regressions show up, this patch should be
reverted and the tests timing should be adapted instead.

ext/fileinfo/data_file.c
ext/fileinfo/magicdata.patch
ext/fileinfo/tests/magic
ext/fileinfo/tests/magic私はガラスを食べられます

index 53470e80f244f5f572907c748ee5bb9e424d4a0c..ac2d26a75bad957373a3a744a45e9f78190f6bdb 100644 (file)
@@ -70372,7 +70372,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x40, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x75, 0x73, 0x69, 0x6E, 0x67, 0x5B, 0x5B, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x75, 0x73, 0x69, 0x6E, 0x67, 0x5B, 0x5B, 
 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x28, 0x6E, 0x61, 0x6D, 0x65, 0x73, 
 0x70, 0x61, 0x63, 0x65, 0x20, 0x29, 0x3F, 0x73, 0x74, 0x64, 0x28, 0x3A, 0x3A, 0x29, 0x3F, 0x5B, 
 0x5B, 0x3A, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x3A, 0x5D, 0x5D, 0x2A, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 
@@ -84691,7 +84691,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x2B, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x28, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x7C, 0x6D, 0x6F, 0x64, 0x75, 
 0x6C, 0x65, 0x29, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x5B, 0x41, 
 0x2D, 0x5A, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -84734,7 +84734,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x3D, 0x26, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x65, 0x6E, 0x64, 0x28, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x5B, 0x3B, 0x23, 0x5D, 0x2E, 0x2A, 0x29, 0x3F, 0x24, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -86196,7 +86196,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x36, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x70, 0x61, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x70, 0x61, 
 0x63, 0x65, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x5B, 0x5F, 
 0x5B, 0x3A, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x3A, 0x5D, 0x5D, 0x7B, 0x31, 0x2C, 0x33, 0x30, 0x7D, 
 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x5C, 0x7B, 0x00, 0x00, 
@@ -86217,7 +86217,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x32, 0x11, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x74, 0x65, 0x6D, 
 0x70, 0x6C, 0x61, 0x74, 0x65, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 
 0x2A, 0x3C, 0x2E, 0x2A, 0x3E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 
@@ -86239,7 +86239,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x2C, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5B, 0x5B, 0x3A, 0x73, 
 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x27, 0x5B, 0x41, 0x2D, 0x5A, 0x61, 0x2D, 0x7A, 0x5F, 
 0x2F, 0x5D, 0x2B, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -86282,7 +86282,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x3D, 0x26, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x65, 0x6E, 0x64, 0x28, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x5B, 0x3B, 0x23, 0x5D, 0x2E, 0x2A, 0x29, 0x3F, 0x24, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -86303,7 +86303,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x33, 0x11, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x76, 0x69, 0x72, 
 0x74, 0x75, 0x61, 0x6C, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 
 0x2E, 0x2A, 0x5B, 0x7D, 0x3B, 0x5D, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 
@@ -86626,7 +86626,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x17, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x70, 0x72, 0x6F, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x3A, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -127648,7 +127648,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x15, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3A, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -189116,7 +189116,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x14, 0x11, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x70, 0x75, 0x62, 
 0x6C, 0x69, 0x63, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -189181,7 +189181,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0D, 0x3D, 0x53, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 
 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x5B, 0x5B, 0x3A, 0x64, 0x69, 0x67, 0x69, 0x74, 0x3A, 0x5D, 
 0x5B, 0x3A, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x3A, 0x5D, 0x3A, 0x5F, 0x5D, 0x2B, 0x5B, 0x5B, 0x3A, 
@@ -203156,7 +203156,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x3D, 0x2B, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x28, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x7C, 0x6D, 0x6F, 0x64, 0x75, 
 0x6C, 0x65, 0x29, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x5B, 0x41, 
 0x2D, 0x5A, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -203177,7 +203177,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x01, 0x00, 0x02, 0x00, 0x3D, 0x28, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x65, 0x6E, 0x64, 
 0x28, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x5B, 0x3B, 0x23, 
 0x69, 0x66, 0x5D, 0x2E, 0x2A, 0x29, 0x3F, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -204145,7 +204145,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x3D, 0x2E, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x64, 0x65, 0x66, 0x20, 0x5B, 0x61, 0x2D, 0x7A, 0x5D, 0x7C, 0x64, 
 0x65, 0x66, 0x20, 0x5B, 0x5B, 0x3A, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x3A, 0x5D, 0x5D, 0x2B, 0x3A, 
 0x3A, 0x5B, 0x61, 0x2D, 0x7A, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -204166,7 +204166,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x01, 0x00, 0x02, 0x00, 0x3D, 0x26, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x65, 0x6E, 0x64, 
 0x28, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x5B, 0x3B, 0x23, 
 0x5D, 0x2E, 0x2A, 0x29, 0x3F, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -204682,7 +204682,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x01, 0x00, 0x02, 0x00, 0x3D, 0x17, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x65, 0x78, 0x63, 
 0x65, 0x70, 0x74, 0x2E, 0x2A, 0x3A, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -204768,7 +204768,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x40, 0x0F, 0x3D, 0x2C, 0x11, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x7B, 0x30, 0x2C, 0x35, 
 0x30, 0x7D, 0x64, 0x65, 0x66, 0x20, 0x7B, 0x31, 0x2C, 0x35, 0x30, 0x7D, 0x5B, 0x5F, 0x61, 0x2D, 
 0x7A, 0x41, 0x2D, 0x5A, 0x5D, 0x7B, 0x31, 0x2C, 0x31, 0x30, 0x30, 0x7D, 0x00, 0x00, 0x00, 0x00, 
@@ -204833,7 +204833,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x33, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x64, 0x6F, 0x75, 0x62, 0x6C, 0x65, 0x28, 0x20, 0x5C, 0x2A, 0x7C, 
 0x5C, 0x2A, 0x29, 0x28, 0x2E, 0x2B, 0x29, 0x28, 0x3D, 0x2E, 0x2A, 0x29, 0x3F, 0x3B, 0x5B, 0x5B, 
 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -206746,7 +206746,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x01, 0x00, 0x00, 0x00, 0x3D, 0x12, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x5E, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 
 0x5D, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -206811,7 +206811,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x32, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x28, 0x20, 0x5C, 0x2A, 0x7C, 0x5C, 
 0x2A, 0x29, 0x28, 0x2E, 0x2B, 0x29, 0x28, 0x3D, 0x2E, 0x2A, 0x29, 0x3F, 0x3B, 0x5B, 0x5B, 0x3A, 
 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -228483,7 +228483,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x31, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x63, 0x68, 0x61, 0x72, 0x28, 0x20, 0x5C, 0x2A, 0x7C, 0x5C, 0x2A, 
 0x29, 0x28, 0x2E, 0x2B, 0x29, 0x28, 0x3D, 0x2E, 0x2A, 0x29, 0x3F, 0x3B, 0x5B, 0x5B, 0x3A, 0x73, 
 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -252262,7 +252262,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x28, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x69, 0x6E, 0x63, 0x6C, 0x75, 0x64, 0x65, 0x20, 0x28, 0x5B, 0x41, 
 0x2D, 0x5A, 0x5D, 0x2B, 0x5B, 0x61, 0x2D, 0x7A, 0x5D, 0x2A, 0x28, 0x3A, 0x3A, 0x29, 0x29, 0x2B, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -252434,7 +252434,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x31, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x20, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x20, 
 0x5B, 0x5F, 0x5B, 0x3A, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x3A, 0x5D, 0x5D, 0x2B, 0x20, 0x61, 0x73, 
 0x20, 0x5B, 0x5B, 0x3A, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x3A, 0x5D, 0x5D, 0x5B, 0x5B, 0x3A, 0x73, 
 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -253552,7 +253552,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x19, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x23, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x23, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 
 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x28, 0x69, 0x66, 0x7C, 0x69, 0x66, 0x6E, 0x29, 0x64, 0x65, 
 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -253573,7 +253573,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x01, 0x00, 0x02, 0x00, 0x3D, 0x14, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x5E, 0x23, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x65, 0x6E, 
 0x64, 0x69, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -253595,7 +253595,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x19, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x23, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x23, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 
 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x28, 0x69, 0x66, 0x7C, 0x69, 0x66, 0x6E, 0x29, 0x64, 0x65, 
 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -253616,7 +253616,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x01, 0x00, 0x02, 0x00, 0x3D, 0x14, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x5E, 0x23, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x64, 0x65, 
 0x66, 0x69, 0x6E, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -253810,7 +253810,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x2C, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 
 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5B, 0x5B, 0x3A, 0x73, 
 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x27, 0x5B, 0x41, 0x2D, 0x5A, 0x61, 0x2D, 0x7A, 0x5F, 
 0x2F, 0x5D, 0x2B, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -255186,7 +255186,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x3D, 0x10, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x29, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x29, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 
 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x5C, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -261614,7 +261614,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x40, 0x00, 0x3D, 0x1F, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x65, 0x78, 0x74, 
 0x65, 0x72, 0x6E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -263205,7 +263205,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x40, 0x00, 0x3D, 0x14, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x5E, 0x23, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x70, 0x72, 
 0x61, 0x67, 0x6D, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -263850,7 +263850,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x40, 0x00, 0x3D, 0x13, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x5E, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 
 0x5D, 0x5D, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
@@ -264689,7 +264689,7 @@ const unsigned char php_magic_database[5191992] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x12, 0x11, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x75, 0x6E, 0x69, 0x6F, 0x6E, 0x5B, 0x5B, 
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x75, 0x6E, 0x69, 0x6F, 0x6E, 0x5B, 0x5B, 
 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
index 18df20e10fac127672dab1daf1c1037acb4626e9..42db6c27c415a25e677f57042de465fc457043f1 100644 (file)
-diff --git a/magic/Magdir/rpm b/magic/Magdir/rpm
-index 9a795f8..31db083 100644
---- a/magic/Magdir/rpm
-+++ b/magic/Magdir/rpm
-@@ -29,6 +29,7 @@
- >>8   beshort         17              SuperH
- >>8   beshort         18              Xtensa
- >>8   beshort         255             noarch
-+>>10  string          x               %s
+diff -u a/magic/Magdir/c-lang b/magic/Magdir/c-lang
+--- a/magic/Magdir/c-lang      2017-08-14 09:40:38.000000000 +0200
++++ b/magic/Magdir/c-lang      2018-11-10 13:06:33.171398452 +0100
+@@ -13,61 +13,61 @@
+ # C
+ # Check for class if include is found, otherwise class is beaten by include becouse of lowered strength
+ 0     regex   \^#include                      C
+->0    regex   \^class[[:space:]]+
++>0    regex/4096      \^class[[:space:]]+
+ >>&0  regex   \\{[\.\*]\\}(;)?$                       \b++
+ >&0   clear   x                               source text
+ !:strength + 13
+ !:mime        text/x-c
+-0     regex   \^#[[:space:]]*pragma   C source text
++0     regex/4096      \^#[[:space:]]*pragma   C source text
+ !:mime        text/x-c
+-0     regex   \^#[[:space:]]*(if\|ifn)def
+->&0   regex   \^#[[:space:]]*endif$   C source text
++0     regex/4096      \^#[[:space:]]*(if\|ifn)def
++>&0   regex/4096      \^#[[:space:]]*endif$   C source text
+ !:mime        text/x-c
+-0     regex   \^#[[:space:]]*(if\|ifn)def
+->&0   regex   \^#[[:space:]]*define   C source text
++0     regex/4096      \^#[[:space:]]*(if\|ifn)def
++>&0   regex/4096      \^#[[:space:]]*define   C source text
+ !:mime        text/x-c
+-0     regex   \^[[:space:]]*char(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                   C source text
++0     regex/4096      \^[[:space:]]*char(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                   C source text
+ !:mime        text/x-c
+-0     regex   \^[[:space:]]*double(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                 C source text
++0     regex/4096      \^[[:space:]]*double(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                 C source text
+ !:mime        text/x-c
+-0     regex   \^[[:space:]]*extern[[:space:]]+                C source text
++0     regex/4096      \^[[:space:]]*extern[[:space:]]+                C source text
+ !:mime        text/x-c
+-0     regex   \^[[:space:]]*float(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                  C source text
++0     regex/4096      \^[[:space:]]*float(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                  C source text
+ !:mime        text/x-c
+-0     regex   \^struct[[:space:]]+            C source text
++0     regex/4096      \^struct[[:space:]]+            C source text
+ !:mime        text/x-c
+-0     regex   \^union[[:space:]]+             C source text
++0     regex/4096      \^union[[:space:]]+             C source text
+ !:mime        text/x-c
+ 0     search/8192     main(
+->&0 regex     \\)[[:space:]]*\\{              C source text
++>&0 regex/4096        \\)[[:space:]]*\\{              C source text
+ !:mime        text/x-c
  
- #delta RPM    Daniel Novotny (dnovotny@redhat.com)
- 0     string          drpm            Delta RPM
-diff --git a/magic/Magdir/securitycerts b/magic/Magdir/securitycerts
-index 8785dd8..1c340be 100644
---- a/magic/Magdir/securitycerts
-+++ b/magic/Magdir/securitycerts
-@@ -4,3 +4,5 @@
- 0     search/1                -----BEGIN\ CERTIFICATE------   RFC1421 Security Certificate text
- 0     search/1                -----BEGIN\ NEW\ CERTIFICATE    RFC1421 Security Certificate Signing Request text
- 0     belong  0xedfeedfe      Sun 'jks' Java Keystore File data
-+
-+0     string \0volume_key     volume_key escrow packet
-From fb1604080767501fde17eb601382e84f1c1ddca3 Mon Sep 17 00:00:00 2001
-From: Christos Zoulas <christos@zoulas.com>
-Date: Mon, 16 Jul 2018 12:30:41 +0000
-Subject: [PATCH] remember to put a space between the version and the number,
- plus more version parsing (Kamil Dudka)
-
-Upstream-commit: 1a7f58c9f253e3b902bfb7a77afd8375b0b428b7
-Signed-off-by: Kamil Dudka <kdudka@redhat.com>
----
- magic/Magdir/fsav | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/magic/Magdir/fsav b/magic/Magdir/fsav
-index 5714798..5d72ab9 100644
---- a/magic/Magdir/fsav
-+++ b/magic/Magdir/fsav
+ # C++
+ # The strength of these rules is increased so they beat the C rules above
+-0     regex   \^namespace[[:space:]]+[_[:alpha:]]{1,30}[[:space:]]*\\{        C++ source text
++0     regex/4096      \^namespace[[:space:]]+[_[:alpha:]]{1,30}[[:space:]]*\\{        C++ source text
+ !:strength + 30
+ !:mime        text/x-c++
+ # using namespace [namespace] or using std::[lib]
+-0     regex   \^using[[:space:]]+(namespace\ )?std(::)?[[:alpha:]]*[[:space:]]*;              C++ source text
++0     regex/4096      \^using[[:space:]]+(namespace\ )?std(::)?[[:alpha:]]*[[:space:]]*;              C++ source text
+ !:strength + 30
+ !:mime        text/x-c++
+-0     regex   \^[[:space:]]*template[[:space:]]*<.*>[[:space:]]*$     C++ source text
++0     regex/4096      \^[[:space:]]*template[[:space:]]*<.*>[[:space:]]*$     C++ source text
+ !:strength + 30
+ !:mime        text/x-c++
+-0     regex   \^[[:space:]]*virtual[[:space:]]+.*[};][[:space:]]*$            C++ source text
++0     regex/4096      \^[[:space:]]*virtual[[:space:]]+.*[};][[:space:]]*$            C++ source text
+ !:strength + 30
+ !:mime        text/x-c++
+ # But class alone is reduced to avoid beating php (Jens Schleusener)
+-0     regex   \^[[:space:]]*class[[:space:]]+[[:digit:][:alpha:]:_]+[[:space:]]*\\{(.*[\n]*)*\\}(;)?$         C++ source text
++0     regex/4096      \^[[:space:]]*class[[:space:]]+[[:digit:][:alpha:]:_]+[[:space:]]*\\{(.*[\n]*)*\\}(;)?$         C++ source text
+ !:strength + 13
+ !:mime        text/x-c++
+-0     regex   \^[[:space:]]*public:           C++ source text
++0     regex/4096      \^[[:space:]]*public:           C++ source text
+ !:strength + 30
+ !:mime        text/x-c++
+-0     regex   \^[[:space:]]*private:          C++ source text
++0     regex/4096      \^[[:space:]]*private:          C++ source text
+ !:strength + 30
+ !:mime        text/x-c++
+-0     regex   \^[[:space:]]*protected:                C++ source text
++0     regex/4096      \^[[:space:]]*protected:                C++ source text
+ !:strength + 30
+ !:mime        text/x-c++
+diff -u a/magic/Magdir/elf b/magic/Magdir/elf
+--- a/magic/Magdir/elf 2018-03-11 01:46:42.000000000 +0100
++++ b/magic/Magdir/elf 2018-11-10 12:27:29.858619326 +0100
+@@ -48,9 +48,8 @@
+ !:mime        application/x-object
+ >16   leshort         2               executable,
+ !:mime        application/x-executable
+->16   leshort         3               ${x?pie executable:shared object}
+-
+-!:mime        application/x-${x?pie-executable:sharedlib}
++>16   leshort         3               shared object,
++!:mime        application/x-sharedlib
+ >16   leshort         4               core file
+ !:mime        application/x-coredump
+ # Core file detection is not reliable.
+diff -u a/magic/Magdir/fsav b/magic/Magdir/fsav
+--- a/magic/Magdir/fsav        2017-03-17 22:35:28.000000000 +0100
++++ b/magic/Magdir/fsav        2018-11-10 12:27:29.858619326 +0100
 @@ -48,13 +48,15 @@
  >11   string          >\0             Clam AntiVirus database %-.23s
  >>34  string          :
@@ -54,27 +120,10 @@ index 5714798..5d72ab9 100644
  >512  string          \037\213        \b, gzipped
  >769  string          ustar\0         \b, tarred
  
--- 
-2.14.4
-
-From f0e846528e1c839ab44895a1f13d167a4ad8def3 Mon Sep 17 00:00:00 2001
-From: Marek Cermak <macermak@redhat.com>
-Date: Wed, 20 Dec 2017 16:18:46 +0100
-Subject: [PATCH] Resolves: #1515180 - image/gif classifed as
- application/octet-stream
-
-https://bugzilla.redhat.com/show_bug.cgi?id=1515180
-
-Signed-off-by: Marek Cermak <macermak@redhat.com>
----
- magic/Magdir/images | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/magic/Magdir/images b/magic/Magdir/images
-index 69e8e90f..76f7e7da 100644
---- a/magic/Magdir/images
-+++ b/magic/Magdir/images
-@@ -468,7 +468,9 @@
+diff -u a/magic/Magdir/images b/magic/Magdir/images
+--- a/magic/Magdir/images      2018-03-11 01:46:42.000000000 +0100
++++ b/magic/Magdir/images      2018-11-10 12:27:29.858619326 +0100
+@@ -464,7 +464,9 @@
  !:mime        image/x-unknown
  
  # GIF
@@ -84,58 +133,10 @@ index 69e8e90f..76f7e7da 100644
  !:mime        image/gif
  !:apple       8BIMGIFf
  >4    string          7a              \b, version 8%s,
--- 
-2.13.6
-
-From 719116b196fd873f5a463dfdb0fd6258cee51591 Mon Sep 17 00:00:00 2001
-From: Kamil Dudka <kdudka@redhat.com>
-Date: Tue, 22 May 2018 18:18:06 +0200
-Subject: [PATCH] Revert "add a conditional in description"
-
-Upstream-commit: 6876ebadcdf27224b3ffa9dfa4343127aa97c9b2
-
-... and partially revert upstream commit
-7dbecfe406a6bb2de1fe7ec2fe413dcd8871ac74
-
-Signed-off-by: Kamil Dudka <kdudka@redhat.com>
----
- magic/Magdir/elf | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/magic/Magdir/elf b/magic/Magdir/elf
-index 7fd5de1..dba5a73 100644
---- a/magic/Magdir/elf
-+++ b/magic/Magdir/elf
-@@ -48,9 +48,8 @@
- !:mime        application/x-object
- >16   leshort         2               executable,
- !:mime        application/x-executable
-->16   leshort         3               ${x?pie executable:shared object}
--
--!:mime        application/x-${x?pie-executable:sharedlib}
-+>16   leshort         3               shared object,
-+!:mime        application/x-sharedlib
- >16   leshort         4               core file
- !:mime        application/x-coredump
- # Core file detection is not reliable.
--- 
-2.14.3
-
-From ed6062995ae60d6772f2dabc39e03cbf28ee7343 Mon Sep 17 00:00:00 2001
-From: Christos Zoulas <christos@zoulas.com>
-Date: Mon, 16 Jul 2018 12:32:08 +0000
-Subject: [PATCH] more info for ppc swapspace (Kamil Dudka)
-
-Upstream-commit: 65f9c7053548df8945df600c07123c9151531ee6
-Signed-off-by: Kamil Dudka <kdudka@redhat.com>
----
- magic/Magdir/linux | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/magic/Magdir/linux b/magic/Magdir/linux
-index 0630a8a..11e9237 100644
---- a/magic/Magdir/linux
-+++ b/magic/Magdir/linux
+Only in b/magic/Magdir/: images.orig
+diff -u a/magic/Magdir/linux b/magic/Magdir/linux
+--- a/magic/Magdir/linux       2017-03-17 22:35:28.000000000 +0100
++++ b/magic/Magdir/linux       2018-11-10 12:27:29.862619309 +0100
 @@ -94,6 +94,16 @@
  # From Daniel Novotny <dnovotny@redhat.com>
  # swap file for PowerPC
@@ -153,6 +154,97 @@ index 0630a8a..11e9237 100644
  16374 string          SWAPSPACE2      Linux/ia64 swap file
  #
  # Linux kernel boot images, from Albert Cahalan <acahalan@cs.uml.edu>
--- 
-2.14.4
-
+diff -u a/magic/Magdir/python b/magic/Magdir/python
+--- a/magic/Magdir/python      2017-08-14 09:40:38.000000000 +0200
++++ b/magic/Magdir/python      2018-11-10 13:06:36.799268528 +0100
+@@ -63,7 +63,7 @@
+ !:mime text/x-python
+ # import module [as abrev]
+-0     regex   \^import\ [_[:alpha:]]+\ as\ [[:alpha:]][[:space:]]*$ Python script text executable
++0     regex/4096      \^import\ [_[:alpha:]]+\ as\ [[:alpha:]][[:space:]]*$ Python script text executable
+ !:mime text/x-python
+ # comments
+@@ -79,7 +79,7 @@
+ # except: or finally:
+ # block
+ 0     search/4096     try:
+->&0   regex   \^[[:space:]]*except.*:$        Python script text executable
++>&0   regex/4096      \^[[:space:]]*except.*:$        Python script text executable
+ !:strength + 15
+ !:mime text/x-python
+ >&0   search/4096     finally:        Python script text executable
+@@ -91,7 +91,7 @@
+ !:mime text/x-python
+ # def name(*args, **kwargs):
+-0     regex    \^[[:space:]]{0,50}def\ {1,50}[_a-zA-Z]{1,100}
++0     regex/4096       \^[[:space:]]{0,50}def\ {1,50}[_a-zA-Z]{1,100}
+ >&0   regex    \\(([[:alpha:]*_,\ ]){0,255}\\):$ Python script text executable
+ !:strength + 15
+ !:mime text/x-python
+diff -u a/magic/Magdir/rpm b/magic/Magdir/rpm
+--- a/magic/Magdir/rpm 2013-01-11 17:45:23.000000000 +0100
++++ b/magic/Magdir/rpm 2018-11-10 12:27:29.858619326 +0100
+@@ -29,6 +29,7 @@
+ >>8   beshort         17              SuperH
+ >>8   beshort         18              Xtensa
+ >>8   beshort         255             noarch
++>>10  string          x               %s
+ #delta RPM    Daniel Novotny (dnovotny@redhat.com)
+ 0     string          drpm            Delta RPM
+diff -u a/magic/Magdir/ruby b/magic/Magdir/ruby
+--- a/magic/Magdir/ruby        2017-08-14 15:39:18.000000000 +0200
++++ b/magic/Magdir/ruby        2018-11-10 13:06:28.703557761 +0100
+@@ -22,30 +22,30 @@
+ # What looks like ruby, but does not have a shebang
+ # (modules and such)
+ # From: Lubomir Rintel <lkundrak@v3.sk>
+-0     regex           \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'
++0     regex/4096              \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'
+ >0    regex           def\ [a-z]|\ do$
+->>&0  regex           \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
++>>&0  regex/4096              \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
+ !:strength + 30
+ !:mime        text/x-ruby
+-0     regex           \^[[:space:]]*(class|module)[[:space:]][A-Z]
++0     regex/4096              \^[[:space:]]*(class|module)[[:space:]][A-Z]
+ >0    regex           (modul|includ)e\ [A-Z]|def\ [a-z]
+->>&0  regex           \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
++>>&0  regex/4096              \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
+ !:strength + 30
+ !:mime        text/x-ruby
+ # Classes with no modules or defs, beats simple ASCII
+-0     regex           \^[[:space:]]*(class|module)[[:space:]][A-Z]
+->&0   regex   \^[[:space:]]*end([[:space:]]+[;#if].*)?$               Ruby script text
++0     regex/4096              \^[[:space:]]*(class|module)[[:space:]][A-Z]
++>&0   regex/4096      \^[[:space:]]*end([[:space:]]+[;#if].*)?$               Ruby script text
+ !:strength + 10
+ !:mime        text/x-ruby
+ # Looks for function definition to balance python magic
+ # def name (args)
+ # end
+-0     regex           \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
+->&0   regex           \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
++0     regex/4096              \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
++>&0   regex/4096              \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
+ !:strength + 10
+ !:mime        text/x-ruby
+-0     regex           \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'   Ruby script text
++0     regex/4096              \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'   Ruby script text
+ !:mime        text/x-ruby
+-0 regex       \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+      Ruby script text
++0 regex/4096  \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+      Ruby script text
+ !:mime        text/x-ruby
+diff -u a/magic/Magdir/securitycerts b/magic/Magdir/securitycerts
+--- a/magic/Magdir/securitycerts       2009-09-19 18:28:12.000000000 +0200
++++ b/magic/Magdir/securitycerts       2018-11-10 12:27:29.858619326 +0100
+@@ -4,3 +4,5 @@
+ 0     search/1                -----BEGIN\ CERTIFICATE------   RFC1421 Security Certificate text
+ 0     search/1                -----BEGIN\ NEW\ CERTIFICATE    RFC1421 Security Certificate Signing Request text
+ 0     belong  0xedfeedfe      Sun 'jks' Java Keystore File data
++
++0     string \0volume_key     volume_key escrow packet
index c66cc84c87fe70b4dfbcdbf443fabaecbf366838..e2e92726a433cb62600a74e4b0d97dbd42c26c3e 100644 (file)
 # C
 # Check for class if include is found, otherwise class is beaten by include becouse of lowered strength
 0      regex   \^#include                      C
->0     regex   \^class[[:space:]]+
+>0     regex/4096      \^class[[:space:]]+
 >>&0   regex   \\{[\.\*]\\}(;)?$                       \b++
 >&0    clear   x                               source text
 !:strength + 13
 !:mime text/x-c
-0      regex   \^#[[:space:]]*pragma   C source text
+0      regex/4096      \^#[[:space:]]*pragma   C source text
 !:mime text/x-c
-0      regex   \^#[[:space:]]*(if\|ifn)def
->&0    regex   \^#[[:space:]]*endif$   C source text
+0      regex/4096      \^#[[:space:]]*(if\|ifn)def
+>&0    regex/4096      \^#[[:space:]]*endif$   C source text
 !:mime text/x-c
-0      regex   \^#[[:space:]]*(if\|ifn)def
->&0    regex   \^#[[:space:]]*define   C source text
+0      regex/4096      \^#[[:space:]]*(if\|ifn)def
+>&0    regex/4096      \^#[[:space:]]*define   C source text
 !:mime text/x-c
-0      regex   \^[[:space:]]*char(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                   C source text
+0      regex/4096      \^[[:space:]]*char(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                   C source text
 !:mime text/x-c
-0      regex   \^[[:space:]]*double(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                 C source text
+0      regex/4096      \^[[:space:]]*double(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                 C source text
 !:mime text/x-c
-0      regex   \^[[:space:]]*extern[[:space:]]+                C source text
+0      regex/4096      \^[[:space:]]*extern[[:space:]]+                C source text
 !:mime text/x-c
-0      regex   \^[[:space:]]*float(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                  C source text
+0      regex/4096      \^[[:space:]]*float(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                  C source text
 !:mime text/x-c
-0      regex   \^struct[[:space:]]+            C source text
+0      regex/4096      \^struct[[:space:]]+            C source text
 !:mime text/x-c
-0      regex   \^union[[:space:]]+             C source text
+0      regex/4096      \^union[[:space:]]+             C source text
 !:mime text/x-c
 0      search/8192     main(
->&0 regex      \\)[[:space:]]*\\{              C source text
+>&0 regex/4096 \\)[[:space:]]*\\{              C source text
 !:mime text/x-c
 
 # C++
 # The strength of these rules is increased so they beat the C rules above
-0      regex   \^namespace[[:space:]]+[_[:alpha:]]{1,30}[[:space:]]*\\{        C++ source text
+0      regex/4096      \^namespace[[:space:]]+[_[:alpha:]]{1,30}[[:space:]]*\\{        C++ source text
 !:strength + 30
 !:mime text/x-c++
 # using namespace [namespace] or using std::[lib]
-0      regex   \^using[[:space:]]+(namespace\ )?std(::)?[[:alpha:]]*[[:space:]]*;              C++ source text
+0      regex/4096      \^using[[:space:]]+(namespace\ )?std(::)?[[:alpha:]]*[[:space:]]*;              C++ source text
 !:strength + 30
 !:mime text/x-c++
-0      regex   \^[[:space:]]*template[[:space:]]*<.*>[[:space:]]*$     C++ source text
+0      regex/4096      \^[[:space:]]*template[[:space:]]*<.*>[[:space:]]*$     C++ source text
 !:strength + 30
 !:mime text/x-c++
-0      regex   \^[[:space:]]*virtual[[:space:]]+.*[};][[:space:]]*$            C++ source text
+0      regex/4096      \^[[:space:]]*virtual[[:space:]]+.*[};][[:space:]]*$            C++ source text
 !:strength + 30
 !:mime text/x-c++
 # But class alone is reduced to avoid beating php (Jens Schleusener)
-0      regex   \^[[:space:]]*class[[:space:]]+[[:digit:][:alpha:]:_]+[[:space:]]*\\{(.*[\n]*)*\\}(;)?$         C++ source text
+0      regex/4096      \^[[:space:]]*class[[:space:]]+[[:digit:][:alpha:]:_]+[[:space:]]*\\{(.*[\n]*)*\\}(;)?$         C++ source text
 !:strength + 13
 !:mime text/x-c++
-0      regex   \^[[:space:]]*public:           C++ source text
+0      regex/4096      \^[[:space:]]*public:           C++ source text
 !:strength + 30
 !:mime text/x-c++
-0      regex   \^[[:space:]]*private:          C++ source text
+0      regex/4096      \^[[:space:]]*private:          C++ source text
 !:strength + 30
 !:mime text/x-c++
-0      regex   \^[[:space:]]*protected:                C++ source text
+0      regex/4096      \^[[:space:]]*protected:                C++ source text
 !:strength + 30
 !:mime text/x-c++
 
 >20    lelong x                %dx
 >24    lelong x                \b%d
 
-#------------------------------------------------------------------------------
-# $File: images,v 1.131 2018/02/16 15:44:28 christos Exp $
-# images:  file(1) magic for image formats (see also "iff", and "c-lang" for
-# XPM bitmaps)
-#
-# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
-# additions by janl@ifi.uio.no as well as others. Jan also suggested
-# merging several one- and two-line files into here.
-#
-# little magic: PCX (first byte is 0x0a)
-
-# Targa - matches `povray', `ppmtotga' and `xv' outputs
-# by Philippe De Muyter <phdm@macqel.be>
-# URL: http://justsolve.archiveteam.org/wiki/TGA
-# Reference: http://www.dca.fee.unicamp.br/~martino/disciplinas/ea978/tgaffs.pdf
-# Update: Joerg Jenderek
-# at 2, byte ImgType must be 1, 2, 3, 9, 10 or 11
-#      ,32 or 33 (both not observed)
-# at 1, byte CoMapType must be 1 if ImgType is 1 or 9, 0 otherwise
-#      or theoretically 2-128 reserved for use by Truevision or 128-255 may be used for developer applications
-# at 3, leshort Index is 0 for povray, ppmtotga and xv outputs
-# `xv' recognizes only a subset of the following (RGB with pixelsize = 24)
-# `tgatoppm' recognizes a superset (Index may be anything)
-#
-# test of Color Map Type 0~no 1~color map
-# and Image Type 1 2 3 9 10 11 32 33
-# and Color Map Entry Size 0 15 16 24 32
-0      ubequad&0x00FeC400000000C0      0
-# skip more garbage like *.iso by looking for positive image type
->2     ubyte                   >0
-# skip some compiled terminfo like xterm+tmux by looking for image type less equal 33
->>2    ubyte                   <34
-# skip arches.3200 , Finder.Root , Slp.1 by looking for low pixel depth 1 8 15 16 24 32
->>>16  ubyte                   1
->>>>0          use             tga-image
->>>16  ubyte                   8
->>>>0          use             tga-image
->>>16  ubyte                   15
->>>>0          use             tga-image
->>>16  ubyte                   16
->>>>0          use             tga-image
->>>16  ubyte                   24
->>>>0          use             tga-image
->>>16  ubyte                   32
->>>>0          use             tga-image
-#      display tga bitmap image information
-0      name                            tga-image
->2     ubyte           <34             Targa image data
-!:mime image/x-tga
-!:apple        ????TPIC
-# normal extension .tga but some Truevision products used others:
-# tpic (Apple),icb (Image Capture Board),vda (Video Display Adapter),vst (NuVista),win (UNSURE about that)
-!:ext  tga/tpic/icb/vda/vst
-# image type 1 2 3 9 10 11 32 33
->2     ubyte&0xF7      1               - Map
->2     ubyte&0xF7      2               - RGB
-# alpha channel
->>17   ubyte&0x0F      >0              \bA
->2     ubyte&0xF7      3               - Mono
-# type not found, but by http://www.fileformat.info/format/tga/corion.htm
-# Compressed color-mapped data, using Huffman, Delta, and runlength encoding
->2     ubyte           32              - Color
-# Compressed color-mapped data, using Huffman, Delta, and RLE. 4-pass quadtree- type process
->2     ubyte           33              - Color
-# Color Map Type 0~no 1~color map
->1     ubyte           1               (
-# first color map entry, 0 normal
->>3    uleshort        >0              \b%d-
-# color map length 0 2 1dh 3bh d9h 100h
->>5    uleshort        x               \b%d)
-# 8~run length encoding bit
->2     ubyte&0x08      8               - RLE
-# gimp can create big pictures!
->12    uleshort        >0              %d x
->12    uleshort        =0              65536 x
-# image height. 0 interpreted as 65536
->14    uleshort        >0              %d
->14    uleshort        =0              65536
-# Image Pixel depth 1 8 15 16 24 32
->16    ubyte           x               x %d
-# X origin of image. 0 normal
->8     uleshort        >0              +%d
-# Y origin of image. 0 normal; positive for top
->10    uleshort        >0              +%d
-# Image descriptor: bits 3-0 give the alpha channel depth, bits 5-4 give direction
->17    ubyte&0x0F      >0              - %d-bit alpha
-# bits 5-4 give direction. normal bottom left
->17    ubyte           &0x20           - top
-#>17   ubyte           ^0x20           - bottom
->17    ubyte           &0x10           - right
-#>17   ubyte           ^0x10           - left
-# some info say other bits 6-7 should be zero
-# but data storage interleave by http://www.fileformat.info/format/tga/corion.htm
-# 00 - no interleave;01 - even/odd interleave; 10 - four way interleave; 11 - reserved
-#>17   ubyte&0xC0      0x00            - no interleave
->17    ubyte&0xC0      0x40            - interleave
->17    ubyte&0xC0      0x80            - four way interleave
->17    ubyte&0xC0      0xC0            - reserved
-# positive length implies identification field
->0     ubyte           >0
->>18   string          x               "%s"
-# last 18 bytes of newer tga file footer signature
->18    search/4261301/s        TRUEVISION-XFILE.\0
-# extension area offset if not 0
->>&-8          ulelong                 >0
-# length of the extension area. normal 495 for version 2.0
->>>(&-4.l)     uleshort                0x01EF
-# AuthorName[41]
->>>>&0         string                  >\0             - author "%-.40s"
-# Comment[324]=4 * 80 null terminated
->>>>&41                string                  >\0             - comment "%-.80s"
-# date
->>>>&365       ubequad&0xffffFFFFffff0000      !0
-# Day
->>>>>&-6               uleshort                x               %d
-# Month
->>>>>&-8               uleshort                x               \b-%d
-# Year
->>>>>&-4               uleshort                x               \b-%d
-# time
->>>>&371       ubequad&0xffffFFFFffff0000      !0
-# hour
->>>>>&-8               uleshort                x               %d
-# minutes
->>>>>&-6               uleshort                x               \b:%.2d
-# second
->>>>>&-4               uleshort                x               \b:%.2d
-# JobName[41]
->>>>&377               string                  >\0             - job "%-.40s"
-# JobHour Jobminute Jobsecond
->>>>&418       ubequad&0xffffFFFFffff0000      !0
->>>>>&-8               uleshort                x               %d
->>>>>&-6               uleshort                x               \b:%.2d
->>>>>&-4               uleshort                x               \b:%.2d
-# SoftwareId[41]
->>>>&424               string                  >\0             - %-.40s
-# SoftwareVersionNumber
->>>>&424       ubyte                           >0
->>>>>&40               uleshort/100            x               %d
->>>>>&40               uleshort%100            x               \b.%d
-# VersionLetter
->>>>>&42               ubyte                   >0x20           \b%c
-# KeyColor
->>>>&468               ulelong                 >0              - keycolor 0x%8.8x
-# Denominator of Pixel ratio. 0~no pixel aspect
->>>>&474       uleshort                        >0
-# Numerator
->>>>>&-4               uleshort                >0              - aspect %d
->>>>>&-2               uleshort                x               \b/%d
-# Denominator of Gamma ratio. 0~no Gamma value
->>>>&478       uleshort                        >0
-# Numerator
->>>>>&-4               uleshort                >0              - gamma %d
->>>>>&-2               uleshort                x               \b/%d
-# ColorOffset
-#>>>>&480      ulelong                 x               - col offset 0x%8.8x
-# StampOffset
-#>>>>&484      ulelong                 x               - stamp offset 0x%8.8x
-# ScanOffset
-#>>>>&488      ulelong                 x               - scan offset 0x%8.8x
-# AttributesType
-#>>>>&492      ubyte                   x               - Attributes 0x%x
-## EndOfTGA
-
-# PBMPLUS images
-# The next byte following the magic is always whitespace.
-# strength is changed to try these patterns before "x86 boot sector"
-0      name            netpbm
->3     regex/s         =[0-9]{1,50}\ [0-9]{1,50}       Netpbm image data
->>&0   regex           =[0-9]{1,50}                    \b, size = %s x
->>>&0  regex           =[0-9]{1,50}                    \b %s
-
-0      search/1        P1
->0     regex/4         P1[\040\t\f\r\n]
->>0    use             netpbm
->>>0   string          x       \b, bitmap
-!:strength + 45
-!:mime image/x-portable-bitmap
-
-0      search/1        P2
->0     regex/4         P2[\040\t\f\r\n]
->>0    use             netpbm
->>>0   string          x       \b, greymap
-!:strength + 45
-!:mime image/x-portable-greymap
-
-0      search/1        P3
->0     regex/4         P3[\040\t\f\r\n]
->>0    use             netpbm
->>>0   string          x       \b, pixmap
-!:strength + 45
-!:mime image/x-portable-pixmap
-
-0      string          P4
->0     regex/4         P4[\040\t\f\r\n]
->>0    use             netpbm
->>>0   string          x       \b, rawbits, bitmap
-!:strength + 45
-!:mime image/x-portable-bitmap
-
-0      string          P5
->0     regex/4         P5[\040\t\f\r\n]
->>0    use             netpbm
->>>0   string          x       \b, rawbits, greymap
-!:strength + 45
-!:mime image/x-portable-greymap
-
-0      string          P6
->0     regex/4         P6[\040\t\f\r\n]
->>0    use             netpbm
->>>0   string          x       \b, rawbits, pixmap
-!:strength + 45
-!:mime image/x-portable-pixmap
-
-0      string          P7              Netpbm PAM image file
-!:mime image/x-portable-pixmap
-
-# From: bryanh@giraffe-data.com (Bryan Henderson)
-0      string          \117\072        Solitaire Image Recorder format
->4     string          \013            MGI Type 11
->4     string          \021            MGI Type 17
-0      string          .MDA            MicroDesign data
->21    byte            48              version 2
->21    byte            51              version 3
-0      string          .MDP            MicroDesign page data
->21    byte            48              version 2
->21    byte            51              version 3
-
-# NIFF (Navy Interchange File Format, a modification of TIFF) images
-# [GRR:  this *must* go before TIFF]
-0      string          IIN1            NIFF image data
-!:mime image/x-niff
-
-# Canon RAW version 1 (CRW) files are a type of Canon Image File Format
-# (CIFF) file. These are apparently all little-endian.
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://www.sno.phy.queensu.ca/~phil/exiftool/canon_raw.html
-0      string          II\x1a\0\0\0HEAPCCDR    Canon CIFF raw image data
-!:mime image/x-canon-crw
->16    leshort         x       \b, version %d.
->14    leshort         x       \b%d
-
-# Canon RAW version 2 (CR2) files are a kind of TIFF with an extra magic
-# number. Put this above the TIFF test to make sure we detect them.
-# These are apparently all little-endian.
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://libopenraw.freedesktop.org/wiki/Canon_CR2
-0      string          II\x2a\0\x10\0\0\0CR    Canon CR2 raw image data
-!:mime image/x-canon-cr2
->10    byte            x       \b, version %d.
->11    byte            x       \b%d
-
-# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com)
-# The second word of TIFF files is the TIFF version number, 42, which has
-# never changed.  The TIFF specification recommends testing for it.
-0      string          MM\x00\x2a      TIFF image data, big-endian
-!:mime image/tiff
->(4.L) use             \^tiff_ifd
-0      string          II\x2a\x00      TIFF image data, little-endian
-!:mime image/tiff
->(4.l) use             tiff_ifd
-
-0      name            tiff_ifd
->0     leshort         x               \b, direntries=%d
->2     use             tiff_entry
-
-0      name            tiff_entry
-# NewSubFileType
->0     leshort         0xfe
->>12   use             tiff_entry
->0     leshort         0x100
->>4    lelong          1
->>>12  use             tiff_entry
->>>8   leshort         x               \b, width=%d
->0     leshort         0x101
->>4    lelong          1
->>>8   leshort         x               \b, height=%d
->>>12  use             tiff_entry
->0     leshort         0x102
->>8    leshort         x               \b, bps=%d
->>12   use             tiff_entry
->0     leshort         0x103
->>4    lelong          1               \b, compression=
->>>8   leshort         1               \bnone
->>>8   leshort         2               \bhuffman
->>>8   leshort         3               \bbi-level group 3
->>>8   leshort         4               \bbi-level group 4
->>>8   leshort         5               \bLZW
->>>8   leshort         6               \bJPEG (old)
->>>8   leshort         7               \bJPEG
->>>8   leshort         8               \bdeflate
->>>8   leshort         9               \bJBIG, ITU-T T.85
->>>8   leshort         0xa             \bJBIG, ITU-T T.43
->>>8   leshort         0x7ffe          \bNeXT RLE 2-bit
->>>8   leshort         0x8005          \bPackBits (Macintosh RLE)
->>>8   leshort         0x8029          \bThunderscan RLE
->>>8   leshort         0x807f          \bRasterPadding (CT or MP)
->>>8   leshort         0x8080          \bRLE (Line Work)
->>>8   leshort         0x8081          \bRLE (High-Res Cont-Tone)
->>>8   leshort         0x8082          \bRLE (Binary Line Work)
->>>8   leshort         0x80b2          \bDeflate (PKZIP)
->>>8   leshort         0x80b3          \bKodak DCS
->>>8   leshort         0x8765          \bJBIG
->>>8   leshort         0x8798          \bJPEG2000
->>>8   leshort         0x8799          \bNikon NEF Compressed
->>>8   default         x
->>>>8  leshort         x               \b(unknown 0x%x)
->>>12  use             tiff_entry
->0     leshort         0x106           \b, PhotometricIntepretation=
->>8    clear           x
->>8    leshort         0               \bWhiteIsZero
->>8    leshort         1               \bBlackIsZero
->>8    leshort         2               \bRGB
->>8    leshort         3               \bRGB Palette
->>8    leshort         4               \bTransparency Mask
->>8    leshort         5               \bCMYK
->>8    leshort         6               \bYCbCr
->>8    leshort         8               \bCIELab
->>8    default         x
->>>8   leshort         x               \b(unknown=0x%x)
->>12   use             tiff_entry
-# FillOrder
->0     leshort         0x10a
->>4    lelong          1
->>>12  use             tiff_entry
-# DocumentName
->0     leshort         0x10d
->>(8.l)        string          x               \b, name=%s
->>>12  use             tiff_entry
-# ImageDescription
->0     leshort         0x10e
->>(8.l)        string          x               \b, description=%s
->>>12  use             tiff_entry
-# Make
->0     leshort         0x10f
->>(8.l)        string          x               \b, manufacturer=%s
->>>12  use             tiff_entry
-# Model
->0     leshort         0x110
->>(8.l)        string          x               \b, model=%s
->>>12  use             tiff_entry
-# StripOffsets
->0     leshort         0x111
->>12   use             tiff_entry
-# Orientation
->0     leshort         0x112           \b, orientation=
->>8    leshort         1               \bupper-left
->>8    leshort         3               \blower-right
->>8    leshort         6               \bupper-right
->>8    leshort         8               \blower-left
->>8    leshort         9               \bundefined
->>8    default         x
->>>8   leshort         x               \b[*%d*]
->>12   use             tiff_entry
-# XResolution
->0     leshort         0x11a
->>8    lelong          x               \b, xresolution=%d
->>12   use             tiff_entry
-# YResolution
->0     leshort         0x11b
->>8    lelong          x               \b, yresolution=%d
->>12   use             tiff_entry
-# ResolutionUnit
->0     leshort         0x128
->>8    leshort         x               \b, resolutionunit=%d
->>12   use             tiff_entry
-# Software
->0     leshort         0x131
->>(8.l)        string          x               \b, software=%s
->>12   use             tiff_entry
-# Datetime
->0     leshort         0x132
->>(8.l)        string          x               \b, datetime=%s
->>12   use             tiff_entry
-# HostComputer
->0     leshort         0x13c
->>(8.l)        string          x               \b, hostcomputer=%s
->>12   use             tiff_entry
-# WhitePoint
->0     leshort         0x13e
->>12   use             tiff_entry
-# PrimaryChromaticities
->0     leshort         0x13f
->>12   use             tiff_entry
-# YCbCrCoefficients
->0     leshort         0x211
->>12   use             tiff_entry
-# YCbCrPositioning
->0     leshort         0x213
->>12   use             tiff_entry
-# ReferenceBlackWhite
->0     leshort         0x214
->>12   use             tiff_entry
-# Copyright
->0     leshort         0x8298
->>(8.l)        string          x               \b, copyright=%s
->>12   use             tiff_entry
-# ExifOffset
->0     leshort         0x8769
->>12   use             tiff_entry
-# GPS IFD
->0     leshort         0x8825          \b, GPS-Data
->>12   use             tiff_entry
-
-#>0    leshort         x               \b, unknown=0x%x
-#>>12  use             tiff_entry
-
-0      string          MM\x00\x2b      Big TIFF image data, big-endian
-!:mime image/tiff
-0      string          II\x2b\x00      Big TIFF image data, little-endian
-!:mime image/tiff
-
-# PNG [Portable Network Graphics, or "PNG's Not GIF"] images
-# (Greg Roelofs, newt@uchicago.edu)
-# (Albert Cahalan, acahalan@cs.uml.edu)
-#
-# 137 P N G \r \n ^Z \n [4-byte length] I H D R [HEAD data] [HEAD crc] ...
-#
-
-# IHDR parser
-0      name            png-ihdr
->0     belong          x               \b, %d x
->4     belong          x               %d,
->8     byte            x               %d-bit
->9     byte            0               grayscale,
->9     byte            2               \b/color RGB,
->9     byte            3               colormap,
->9     byte            4               gray+alpha,
->9     byte            6               \b/color RGBA,
-#>10   byte            0               deflate/32K,
->12    byte            0               non-interlaced
->12    byte            1               interlaced
-
-# Standard PNG image.
-0      string          \x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0DIHDR     PNG image data
-!:mime image/png
-!:strength +10
->16    use             png-ihdr
-
-# Apple CgBI PNG image.
-0      string          \x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x04CgBI
->24    string          \x00\x00\x00\x0DIHDR    PNG image data (CgBI)
-!:mime image/png
-!:strength +10
->>32   use             png-ihdr
-
-# possible GIF replacements; none yet released!
-# (Greg Roelofs, newt@uchicago.edu)
-#
-# GRR 950115:  this was mine ("Zip GIF"):
-0      string          GIF94z          ZIF image (GIF+deflate alpha)
-!:mime image/x-unknown
-#
-# GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
-#
-0      string          FGF95a          FGF image (GIF+deflate beta)
-!:mime image/x-unknown
-#
-# GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
-# (best; not yet implemented):
-#
-0      string          PBF             PBF image (deflate compression)
-!:mime image/x-unknown
-
-# GIF
-0      string          GIF8            GIF image data
-!:mime image/gif
-!:apple        8BIMGIFf
->4     string          7a              \b, version 8%s,
->4     string          9a              \b, version 8%s,
->6     leshort         >0              %d x
->8     leshort         >0              %d
-#>10   byte            &0x80           color mapped,
-#>10   byte&0x07       =0x00           2 colors
-#>10   byte&0x07       =0x01           4 colors
-#>10   byte&0x07       =0x02           8 colors
-#>10   byte&0x07       =0x03           16 colors
-#>10   byte&0x07       =0x04           32 colors
-#>10   byte&0x07       =0x05           64 colors
-#>10   byte&0x07       =0x06           128 colors
-#>10   byte&0x07       =0x07           256 colors
-
-# ITC (CMU WM) raster files.  It is essentially a byte-reversed Sun raster,
-# 1 plane, no encoding.
-0      string          \361\0\100\273  CMU window manager raster image data
->4     lelong          >0              %d x
->8     lelong          >0              %d,
->12    lelong          >0              %d-bit
-
-# Magick Image File Format
-0      string          id=ImageMagick  MIFF image data
-
-# Artisan
-0      long            1123028772      Artisan image data
->4     long            1               \b, rectangular 24-bit
->4     long            2               \b, rectangular 8-bit with colormap
->4     long            3               \b, rectangular 32-bit (24-bit with matte)
-
-# FIG (Facility for Interactive Generation of figures), an object-based format
-0      search/1        #FIG            FIG image text
->5     string          x               \b, version %.3s
-
-# PHIGS
-0      string          ARF_BEGARF              PHIGS clear text archive
-0      string          @(#)SunPHIGS            SunPHIGS
-# version number follows, in the form m.n
->40    string          SunBin                  binary
->32    string          archive                 archive
-
-# GKS (Graphics Kernel System)
-0      string          GKSM            GKS Metafile
->24    string          SunGKS          \b, SunGKS
-
-# CGM image files
-0      string          BEGMF           clear text Computer Graphics Metafile
-
-# MGR bitmaps  (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
-0      string  yz      MGR bitmap, modern format, 8-bit aligned
-0      string  zz      MGR bitmap, old format, 1-bit deep, 16-bit aligned
-0      string  xz      MGR bitmap, old format, 1-bit deep, 32-bit aligned
-0      string  yx      MGR bitmap, modern format, squeezed
-
-# Fuzzy Bitmap (FBM) images
-0      string          %bitmap\0       FBM image data
->30    long            0x31            \b, mono
->30    long            0x33            \b, color
-
-# facsimile data
-1      string          PC\ Research,\ Inc      group 3 fax data
->29    byte            0               \b, normal resolution (204x98 DPI)
->29    byte            1               \b, fine resolution (204x196 DPI)
-# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at>
-0      string          Sfff            structured fax file
-
-# From: Joerg Jenderek <joerg.jen.der.ek@gmx.net>
-# most files with the extension .EPA and some with .BMP
-0      string          \x11\x06        Award BIOS Logo, 136 x 84
-!:mime image/x-award-bioslogo
-0      string          \x11\x09        Award BIOS Logo, 136 x 126
-!:mime image/x-award-bioslogo
-#0     string          \x07\x1f        BIOS Logo corrupted?
-# http://www.blackfiveservices.co.uk/awbmtools.shtml
-# http://biosgfx.narod.ru/v3/
-# http://biosgfx.narod.ru/abr-2/
-0      string          AWBM
->4     leshort         <1981           Award BIOS bitmap
-!:mime image/x-award-bmp
-# image width is a multiple of 4
->>4    leshort&0x0003  0
->>>4           leshort x               \b, %d
->>>6           leshort x               x %d
->>4    leshort&0x0003  >0              \b,
->>>4   leshort&0x0003  =1
->>>>4          leshort x               %d+3
->>>4   leshort&0x0003  =2
->>>>4          leshort x               %d+2
->>>4   leshort&0x0003  =3
->>>>4          leshort x               %d+1
->>>6           leshort x               x %d
-# at offset 8 starts imagedata followed by "RGB " marker
-
-# PC bitmaps (OS/2, Windows BMP files)  (Greg Roelofs, newt@uchicago.edu)
-# http://en.wikipedia.org/wiki/BMP_file_format#DIB_header_.\
-# 28bitmap_information_header.29
-0      string          BM
->14    leshort         12              PC bitmap, OS/2 1.x format
-!:mime image/x-ms-bmp
->>18   leshort         x               \b, %d x
->>20   leshort         x               %d
->14    leshort         64              PC bitmap, OS/2 2.x format
-!:mime image/x-ms-bmp
->>18   leshort         x               \b, %d x
->>20   leshort         x               %d
->14    leshort         40              PC bitmap, Windows 3.x format
-!:mime image/x-ms-bmp
->>18   lelong          x               \b, %d x
->>22   lelong          x               %d x
->>28   leshort         x               %d
->14    leshort         124             PC bitmap, Windows 98/2000 and newer format
-!:mime image/x-ms-bmp
->>18   lelong          x               \b, %d x
->>22   lelong          x               %d x
->>28   leshort         x               %d
->14    leshort         108             PC bitmap, Windows 95/NT4 and newer format
-!:mime image/x-ms-bmp
->>18   lelong          x               \b, %d x
->>22   lelong          x               %d x
->>28   leshort         x               %d
->14    leshort         128             PC bitmap, Windows NT/2000 format
-!:mime image/x-ms-bmp
->>18   lelong          x               \b, %d x
->>22   lelong          x               %d x
->>28   leshort         x               %d
-# Too simple - MPi
-#0     string          IC              PC icon data
-#0     string          PI              PC pointer image data
-#0     string          CI              PC color icon data
-#0     string          CP              PC color pointer image data
-# Conflicts with other entries [BABYL]
-#0     string          BA              PC bitmap array data
-
-# XPM icons (Greg Roelofs, newt@uchicago.edu)
-0      search/1        /*\ XPM\ */     X pixmap image text
-!:mime image/x-xpmi
-
-# Utah Raster Toolkit RLE images (janl@ifi.uio.no)
-0      leshort         0xcc52          RLE image data,
->6     leshort         x               %d x
->8     leshort         x               %d
->2     leshort         >0              \b, lower left corner: %d
->4     leshort         >0              \b, lower right corner: %d
->10    byte&0x1        =0x1            \b, clear first
->10    byte&0x2        =0x2            \b, no background
->10    byte&0x4        =0x4            \b, alpha channel
->10    byte&0x8        =0x8            \b, comment
->11    byte            >0              \b, %d color channels
->12    byte            >0              \b, %d bits per pixel
->13    byte            >0              \b, %d color map channels
-
-# image file format (Robert Potter, potter@cs.rochester.edu)
-0      string          Imagefile\ version-     iff image data
-# this adds the whole header (inc. version number), informative but longish
->10    string          >\0             %s
-
-# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
-0      belong          0x59a66a95      Sun raster image data
->4     belong          >0              \b, %d x
->8     belong          >0              %d,
->12    belong          >0              %d-bit,
-#>16   belong          >0              %d bytes long,
->20    belong          0               old format,
-#>20   belong          1               standard,
->20    belong          2               compressed,
->20    belong          3               RGB,
->20    belong          4               TIFF,
->20    belong          5               IFF,
->20    belong          0xffff          reserved for testing,
->24    belong          0               no colormap
->24    belong          1               RGB colormap
->24    belong          2               raw colormap
-#>28   belong          >0              colormap is %d bytes long
-
-# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
-#
-# See
-#      http://reality.sgi.com/grafica/sgiimage.html
-#
-0      beshort         474             SGI image data
-#>2    byte            0               \b, verbatim
->2     byte            1               \b, RLE
-#>3    byte            1               \b, normal precision
->3     byte            2               \b, high precision
->4     beshort         x               \b, %d-D
->6     beshort         x               \b, %d x
->8     beshort         x               %d
->10    beshort         x               \b, %d channel
->10    beshort         !1              \bs
->80    string          >0              \b, "%s"
-
-0      string          IT01            FIT image data
->4     belong          x               \b, %d x
->8     belong          x               %d x
->12    belong          x               %d
-#
-0      string          IT02            FIT image data
->4     belong          x               \b, %d x
->8     belong          x               %d x
->12    belong          x               %d
-#
-2048   string          PCD_IPI         Kodak Photo CD image pack file
->0xe02 byte&0x03       0x00            , landscape mode
->0xe02 byte&0x03       0x01            , portrait mode
->0xe02 byte&0x03       0x02            , landscape mode
->0xe02 byte&0x03       0x03            , portrait mode
-0      string          PCD_OPA         Kodak Photo CD overview pack file
-
-# FITS format.  Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
-# FITS is the Flexible Image Transport System, the de facto standard for
-# data and image transfer, storage, etc., for the astronomical community.
-# (FITS floating point formats are big-endian.)
-0      string  SIMPLE\ \ =     FITS image data
->109   string  8               \b, 8-bit, character or unsigned binary integer
->108   string  16              \b, 16-bit, two's complement binary integer
->107   string  \ 32            \b, 32-bit, two's complement binary integer
->107   string  -32             \b, 32-bit, floating point, single precision
->107   string  -64             \b, 64-bit, floating point, double precision
-
-# other images
-0      string  This\ is\ a\ BitMap\ file       Lisp Machine bit-array-file
-
-# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
-# stuff.
-#
-0      beshort         0x1010          PEX Binary Archive
-
-# DICOM medical imaging data
-# URL:         https://en.wikipedia.org/wiki/DICOM#Data_format
-# Note:                "dcm" is the official file name extension
-#              XnView mention also "dc3" and "acr" as file name extension
-128    string  DICM                    DICOM medical imaging data
-!:mime application/dicom
-!:ext dcm/dicom/dic
-
-# XWD - X Window Dump file.
-#   As described in /usr/X11R6/include/X11/XWDFile.h
-#   used by the xwd program.
-#   Bradford Castalia, idaeim, 1/01
-#   updated by Adam Buchbinder, 2/09
-# The following assumes version 7 of the format; the first long is the length
-# of the header, which is at least 25 4-byte longs, and the one at offset 8
-# is a constant which is always either 1 or 2. Offset 12 is the pixmap depth,
-# which is a maximum of 32.
-0      belong  >100
->8     belong  <3
->>12   belong  <33
->>>4   belong  7                       XWD X Window Dump image data
-!:mime image/x-xwindowdump
->>>>100        string  >\0                     \b, "%s"
->>>>16 belong  x                       \b, %dx
->>>>20 belong  x                       \b%dx
->>>>12 belong  x                       \b%d
-
-# PDS - Planetary Data System
-#   These files use Parameter Value Language in the header section.
-#   Unfortunately, there is no certain magic, but the following
-#   strings have been found to be most likely.
-0      string  NJPL1I00                PDS (JPL) image data
-2      string  NJPL1I                  PDS (JPL) image data
-0      string  CCSD3ZF                 PDS (CCSD) image data
-2      string  CCSD3Z                  PDS (CCSD) image data
-0      string  PDS_                    PDS image data
-0      string  LBLSIZE=                PDS (VICAR) image data
-
-# pM8x: ATARI STAD compressed bitmap format
-#
-# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001
-# p M 8 5/6 xx yy zz data...
-# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed.
-# bytes either run horizontally (pM85) or vertically (pM86). yy is the
-# most frequent byte, xx and zz are runlength escape codes, where xx is
-# used for runs of yy.
-#
-0      string  pM85            Atari ST STAD bitmap image data (hor)
->5     byte    0x00            (white background)
->5     byte    0xFF            (black background)
-0      string  pM86            Atari ST STAD bitmap image data (vert)
->5     byte    0x00            (white background)
->5     byte    0xFF            (black background)
-
-# From: Alex Myczko <alex@aiei.ch>
-# http://www.atarimax.com/jindroush.atari.org/afmtatr.html
-0      leshort 0x0296          Atari ATR image
-
-# XXX:
-# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other
-# magic.
-# SGI RICE image file <mpruett@sgi.com>
-#0     beshort 0x5249          RICE image
-#>2    beshort x               v%d
-#>4    beshort x               (%d x
-#>6    beshort x               %d)
-#>8    beshort 0               8 bit
-#>8    beshort 1               10 bit
-#>8    beshort 2               12 bit
-#>8    beshort 3               13 bit
-#>10   beshort 0               4:2:2
-#>10   beshort 1               4:2:2:4
-#>10   beshort 2               4:4:4
-#>10   beshort 3               4:4:4:4
-#>12   beshort 1               RGB
-#>12   beshort 2               CCIR601
-#>12   beshort 3               RP175
-#>12   beshort 4               YUV
-
-# PCX image files
-# From: Dan Fandrich <dan@coneharvesters.com>
-# updated by Joerg Jenderek at Feb 2013 by http://de.wikipedia.org/wiki/PCX
-# http://web.archive.org/web/20100206055706/http://www.qzx.com/pc-gpe/pcx.txt
-# GRR: original test was still too general as it catches xbase examples T5.DBT,T6.DBT with 0xa000000
-# test for bytes 0x0a,version byte (0,2,3,4,5),compression byte flag(0,1), bit depth (>0) of PCX or T5.DBT,T6.DBT
-0      ubelong&0xffF8fe00      0x0a000000
-# for PCX bit depth > 0
->3     ubyte           >0
-# test for valid versions
->>1    ubyte           <6
->>>1   ubyte           !1      PCX
-!:mime image/x-pcx
-#!:mime        image/pcx
->>>>1  ubyte           0       ver. 2.5 image data
->>>>1  ubyte           2       ver. 2.8 image data, with palette
->>>>1  ubyte           3       ver. 2.8 image data, without palette
->>>>1  ubyte           4       for Windows image data
->>>>1  ubyte           5       ver. 3.0 image data
->>>>4  uleshort        x       bounding box [%d,
->>>>6  uleshort        x       %d] -
->>>>8  uleshort        x       [%d,
->>>>10 uleshort        x       %d],
->>>>65 ubyte           >1      %d planes each of
->>>>3  ubyte           x       %d-bit
->>>>68 byte            1       colour,
->>>>68 byte            2       grayscale,
-# this should not happen
->>>>68 default         x       image,
->>>>12 leshort         >0      %d x
->>>>>14        uleshort        x       %d dpi,
->>>>2  byte            0       uncompressed
->>>>2  byte            1       RLE compressed
-
-# Adobe Photoshop
-# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
-0      string          8BPS Adobe Photoshop Image
-!:mime image/vnd.adobe.photoshop
->4   beshort 2 (PSB)
->18  belong  x \b, %d x
->14  belong  x %d,
->24  beshort 0 bitmap
->24  beshort 1 grayscale
->>12 beshort 2 with alpha
->24  beshort 2 indexed
->24  beshort 3 RGB
->>12 beshort 4 \bA
->24  beshort 4 CMYK
->>12 beshort 5 \bA
->24  beshort 7 multichannel
->24  beshort 8 duotone
->24  beshort 9 lab
->12  beshort > 1
->>12  beshort x \b, %dx
->12  beshort 1 \b,
->22  beshort x %d-bit channel
->12  beshort > 1 \bs
-
-# XV thumbnail indicator (ThMO)
-0      string          P7\ 332         XV thumbnail image data
-
-# NITF is defined by United States MIL-STD-2500A
-0      string  NITF    National Imagery Transmission Format
->25    string  >\0     dated %.14s
-
-# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff)
-# Format variations from: Bernd Nuernberger <bernd.nuernberger@web.de>
-# Update: Joerg Jenderek
-# See http://fileformats.archiveteam.org/wiki/GEM_Raster
-# For variations, also see:
-#    http://www.seasip.info/Gem/ff_img.html (Ventura)
-#    http://www.atari-wiki.com/?title=IMG_file (XIMG, STTT)
-#    http://www.fileformat.info/format/gemraster/spec/index.htm (XIMG, STTT)
-#    http://sylvana.net/1stguide/1STGUIDE.ENG (TIMG)
-0       beshort     0x0001
-# header_size
->2      beshort     0x0008
->>0     use gem_info
->2      beshort     0x0009
->>0     use gem_info
-# no example for NOSIG
->2      beshort     24
->>0     use gem_info
-# no example for HYPERPAINT
->2      beshort     25
->>0     use gem_info
-16      string      XIMG\0
->0      use gem_info
-# no example
-16      string      STTT\0\x10
->0      use gem_info
-# no example or description
-16      string      TIMG\0
->0      use gem_info
-
-0   name        gem_info
-# version is 2 for some XIMG and 1 for all others
->0     beshort         <0x0003         GEM
-# http://www.snowstone.org.uk/riscos/mimeman/mimemap.txt
-!:mime image/x-gem
-# header_size 24 25 27 59 779 words for colored bitmaps
->>2    beshort         >9
->>>16  string          STTT\0\x10      STTT
->>>16  string          TIMG\0          TIMG
-# HYPERPAINT or NOSIG variant
->>>16  string          \0\x80
->>>>2  beshort         =24             NOSIG
->>>>2  beshort         !24             HYPERPAINT
-# NOSIG or XIMG variant
->>>16  default         x
->>>>16 string          !XIMG\0         NOSIG
->>16   string          =XIMG\0         XIMG Image data
-!:ext  img/ximg
-# to avoid Warning: Current entry does not yet have a description for adding a EXTENSION type
->>16   string          !XIMG\0         Image data
-!:ext  img
-# header_size is 9 for Ventura files and 8 for other GEM Paint files
->>2    beshort         9               (Ventura)
-#>>2   beshort         8               (Paint)
->>12   beshort         x               %d x
->>14   beshort         x               %d,
-# 1 4 8
->>4    beshort         x               %d planes,
-# in tenths of a millimetre
->>8    beshort         x               %d x
->>10   beshort         x               %d pixelsize
-# pattern_size 1-8. 2 for GEM Paint
->>6    beshort         !2              \b, pattern size %d
-
-# GEM Metafile (Wolfram Kleff)
-0      lelong          0x0018FFFF      GEM Metafile data
->4     leshort         x               version %d
-
-#
-# SMJPEG. A custom Motion JPEG format used by Loki Entertainment
-# Software Torbjorn Andersson <d91tan@Update.UU.SE>.
-#
-0      string  \0\nSMJPEG      SMJPEG
->8     belong  x               %d.x data
-# According to the specification you could find any number of _TXT
-# headers here, but I can't think of any way of handling that. None of
-# the SMJPEG files I tried it on used this feature. Even if such a
-# file is encountered the output should still be reasonable.
->16    string  _SND            \b,
->>24   beshort >0              %d Hz
->>26   byte    8               8-bit
->>26   byte    16              16-bit
->>28   string  NONE            uncompressed
-# >>28 string  APCM            ADPCM compressed
->>27   byte    1               mono
->>28   byte    2               stereo
-# Help! Isn't there any way to avoid writing this part twice?
->>32   string  _VID            \b,
-# >>>48        string  JFIF            JPEG
->>>40  belong  >0              %d frames
->>>44  beshort >0              (%d x
->>>46  beshort >0              %d)
->16    string  _VID            \b,
-# >>32 string  JFIF            JPEG
->>24   belong  >0              %d frames
->>28   beshort >0              (%d x
->>30   beshort >0              %d)
-
-0      string  Paint\ Shop\ Pro\ Image\ File   Paint Shop Pro Image File
-
-# "thumbnail file" (icon)
-# descended from "xv", but in use by other applications as well (Wolfram Kleff)
-0       string          P7\ 332         XV "thumbnail file" (icon) data
-
-# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?)
-0       string          KiSS            KISS/GS
->4      byte            16              color
->>5     byte            x               %d bit
->>8     leshort         x               %d colors
->>10    leshort         x               %d groups
->4      byte            32              cell
->>5     byte            x               %d bit
->>8     leshort         x               %d x
->>10    leshort         x               %d
->>12    leshort         x               +%d
->>14    leshort         x               +%d
-
-# Webshots (www.webshots.com), by John Harrison
-0       string          C\253\221g\230\0\0\0 Webshots Desktop .wbz file
-
-# Hercules DASD image files
-# From Jan Jaeger <jj@septa.nl>
-0       string  CKD_P370        Hercules CKD DASD image file
->8      long    x               \b, %d heads per cylinder
->12     long    x               \b, track size %d bytes
->16     byte    x               \b, device type 33%2.2X
-
-0       string  CKD_C370        Hercules compressed CKD DASD image file
->8      long    x               \b, %d heads per cylinder
->12     long    x               \b, track size %d bytes
->16     byte    x               \b, device type 33%2.2X
-
-0       string  CKD_S370        Hercules CKD DASD shadow file
->8      long    x               \b, %d heads per cylinder
->12     long    x               \b, track size %d bytes
->16     byte    x               \b, device type 33%2.2X
-
-# Squeak images and programs - etoffi@softhome.net
-0      string          \146\031\0\0    Squeak image data
-0      search/1        'From\040Squeak Squeak program text
-
-# partimage: file(1) magic for PartImage files (experimental, incomplete)
-# Author: Hans-Joachim Baader <hjb@pro-linux.de>
-0              string  PaRtImAgE-VoLuMe        PartImage
->0x0020                string  0.6.1           file version %s
->>0x0060       lelong  >-1             volume %d
-#>>0x0064 8 byte identifier
-#>>0x007c reserved
->>0x0200       string  >\0             type %s
->>0x1400       string  >\0             device %s,
->>0x1600       string  >\0             original filename %s,
-# Some fields omitted
->>0x2744       lelong  0               not compressed
->>0x2744       lelong  1               gzip compressed
->>0x2744       lelong  2               bzip2 compressed
->>0x2744       lelong  >2              compressed with unknown algorithm
->0x0020                string  >0.6.1          file version %s
->0x0020                string  <0.6.1          file version %s
-
-# DCX is multi-page PCX, using a simple header of up to 1024
-# offsets for the respective PCX components.
-# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
-0      lelong  987654321       DCX multi-page PCX image data
-
-# Simon Walton <simonw@matteworld.com>
-# Kodak Cineon format for scanned negatives
-# http://www.kodak.com/US/en/motion/support/dlad/
-0      lelong  0xd75f2a80      Cineon image data
->200   belong  >0              \b, %d x
->204   belong  >0              %d
-
-
-# Bio-Rad .PIC is an image format used by microscope control systems
-# and related image processing software used by biologists.
-# From: Vebjorn Ljosa <vebjorn@ljosa.com>
-# BOOL values are two-byte integers; use them to rule out false positives.
-# http://web.archive.org/web/20050317223257/www.cs.ubc.ca/spider/ladic/text/biorad.txt
-# Samples: http://www.loci.wisc.edu/software/sample-data
-14     leshort <2
->62    leshort <2
->>54   leshort 12345           Bio-Rad .PIC Image File
->>>0   leshort >0              %d x
->>>2   leshort >0              %d,
->>>4   leshort =1              1 image in file
->>>4   leshort >1              %d images in file
-
-# From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
-# The description of *.mrw format can be found at
-# http://www.dalibor.cz/minolta/raw_file_format.htm
-0      string  \000MRM                 Minolta Dimage camera raw image data
-
-# Summary: DjVu image / document
-# Extension: .djvu
-# Reference: http://djvu.org/docs/DjVu3Spec.djvu
-# Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
-# Modified by (1): Abel Cheung <abelcheung@gmail.com>
-0      string  AT&TFORM
->12    string  DJVM            DjVu multiple page document
-!:mime image/vnd.djvu
->12    string  DJVU            DjVu image or single page document
-!:mime image/vnd.djvu
->12    string  DJVI            DjVu shared document
-!:mime image/vnd.djvu
->12    string  THUM            DjVu page thumbnails
-!:mime image/vnd.djvu
-
-# Originally by Marc Espie
-# Modified by Robert Minsk <robertminsk at yahoo.com>
-# http://www.openexr.com/openexrfilelayout.pdf
-0      lelong          20000630        OpenEXR image data,
-!:mime image/x-exr
->4     lelong&0x000000ff x             version %d,
->4     lelong          ^0x00000200     storage: scanline
->4     lelong          &0x00000200     storage: tiled
->8     search/0x1000   compression\0   \b, compression:
->>&16  byte            0               none
->>&16  byte            1               rle
->>&16  byte            2               zips
->>&16  byte            3               zip
->>&16  byte            4               piz
->>&16  byte            5               pxr24
->>&16  byte            6               b44
->>&16  byte            7               b44a
->>&16  byte            8               dwaa
->>&16  byte            9               dwab
->>&16  byte            >9              unknown
->8      search/0x1000  dataWindow\0    \b, dataWindow:
->>&10  lelong          x               (%d
->>&14  lelong          x               %d)-
->>&18  lelong          x               \b(%d
->>&22  lelong          x               %d)
->8     search/0x1000   displayWindow\0 \b, displayWindow:
->>&10  lelong          x               (%d
->>&14  lelong          x               %d)-
->>&18  lelong          x               \b(%d
->>&22  lelong          x               %d)
->8     search/0x1000   lineOrder\0      \b, lineOrder:
->>&14  byte            0               increasing y
->>&14  byte            1               decreasing y
->>&14  byte            2               random y
->>&14  byte            >2              unknown
-
-# SMPTE Digital Picture Exchange Format, SMPTE DPX
-#
-# ANSI/SMPTE 268M-1994, SMPTE Standard for File Format for Digital
-# Moving-Picture Exchange (DPX), v1.0, 18 February 1994
-# Robert Minsk <robertminsk at yahoo.com>
-# Modified by Harry Mallon <hjmallon at gmail.com>
-0      string          SDPX    DPX image data, big-endian,
-!:mime image/x-dpx
->0     use             dpx_info
-0      string          XPDS    DPX image data, little-endian,
-!:mime image/x-dpx
->0     use             \^dpx_info
-
-0      name            dpx_info
->768   beshort         <4
->>772  belong          x       %dx
->>776  belong          x       \b%d,
->768   beshort         >3
->>776  belong          x       %dx
->>772  belong          x       \b%d,
->768   beshort         0       left to right/top to bottom
->768   beshort         1       right to left/top to bottom
->768   beshort         2       left to right/bottom to top
->768   beshort         3       right to left/bottom to top
->768   beshort         4       top to bottom/left to right
->768   beshort         5       top to bottom/right to left
->768   beshort         6       bottom to top/left to right
->768   beshort         7       bottom to top/right to left
-
-# From: Tom Hilinski <tom.hilinski@comcast.net>
-# http://www.unidata.ucar.edu/packages/netcdf/
-0      string  CDF\001                 NetCDF Data Format data
-
-#-----------------------------------------------------------------------
-# Hierarchical Data Format, used to facilitate scientific data exchange
-# specifications at http://hdf.ncsa.uiuc.edu/
-0      belong  0x0e031301      Hierarchical Data Format (version 4) data
-!:mime application/x-hdf
-0      string  \211HDF\r\n\032\n       Hierarchical Data Format (version 5) data
-!:mime application/x-hdf
-512    string  \211HDF\r\n\032\n       Hierarchical Data Format (version 5) with 512 bytes user block
-!:mime application/x-hdf
-1024   string  \211HDF\r\n\032\n       Hierarchical Data Format (version 5) with 1k user block
-!:mime application/x-hdf
-2048   string  \211HDF\r\n\032\n       Hierarchical Data Format (version 5) with 2k user block
-!:mime application/x-hdf
-4096   string  \211HDF\r\n\032\n       Hierarchical Data Format (version 5) with 4k user block
-!:mime application/x-hdf
-
-
-# From: Tobias Burnus <burnus@net-b.de>
-# Xara (for a while: Corel Xara) is a graphic package, see
-# http://www.xara.com/ for Windows and as GPL application for Linux
-0      string  XARA\243\243    Xara graphics file
-
-# http://www.cartesianinc.com/Tech/
-0      string  CPC\262         Cartesian Perceptual Compression image
-!:mime image/x-cpi
-
-# From Albert Cahalan <acahalan@gmail.com>
-# puredigital used it for the CVS disposable camcorder
-#8       lelong  4       ZBM bitmap image data
-#>4      leshort x       %u x
-#>6      leshort x       %u
-
-# From Albert Cahalan <acahalan@gmail.com>
-# uncompressed 5:6:5 HighColor image for OLPC XO firmware icons
-0       string C565     OLPC firmware icon image data
->4      leshort x       %u x
->6      leshort x       %u
-
-# Applied Images - Image files from Cytovision
-# Gustavo Junior Alves <gjalves@gjalves.com.br>
-0      string  \xce\xda\xde\xfa        Cytovision Metaphases file
-0      string  \xed\xad\xef\xac        Cytovision Karyotype file
-0      string  \x0b\x00\x03\x00        Cytovision FISH Probe file
-0      string  \xed\xfe\xda\xbe        Cytovision FLEX file
-0      string  \xed\xab\xed\xfe        Cytovision FLEX file
-0      string  \xad\xfd\xea\xad        Cytovision RATS file
-
-# Wavelet Scalar Quantization format used in gray-scale fingerprint images
-# From Tano M Fotang <mfotang@quanteq.com>
-0      string  \xff\xa0\xff\xa8\x00    Wavelet Scalar Quantization image data
-
-# Type:                PCO B16 image files
-# URL:         http://www.pco.de/fileadmin/user_upload/db/download/MA_CWDCOPIE_0412b.pdf
-# From:                Florian Philipp <florian.philipp@binarywings.net>
-# Extension:   .b16
-# Description: Pixel image format produced by PCO Camware, typically used
-#              together with PCO cameras.
-# Note:                Different versions exist for e.g. 8 bit and 16 bit images.
-#              Documentation is incomplete.
-0      string/b        PCO-    PCO B16 image data
->12    lelong          x       \b, %dx
->16    lelong          x       \b%d
->20    lelong          0       \b, short header
->20    lelong          -1      \b, extended header
->>24   lelong          0       \b, grayscale
->>>36  lelong          0       linear LUT
->>>36  lelong          1       logarithmic LUT
->>>28  lelong          x       [%d
->>>32  lelong          x       \b,%d]
->>24   lelong          1       \b, color
->>>64  lelong          0       linear LUT
->>>64  lelong          1       logarithmic LUT
->>>40  lelong          x       r[%d
->>>44  lelong          x       \b,%d]
->>>48  lelong          x       g[%d
->>>52  lelong          x       \b,%d]
->>>56  lelong          x       b[%d
->>>60  lelong          x       \b,%d]
-
-# Polar Monitor Bitmap (.pmb) used as logo for Polar Electro watches
-# From: Markus Heidelberg <markus.heidelberg at web.de>
-0      string/t        [BitmapInfo2]   Polar Monitor Bitmap text
-!:mime image/x-polar-monitor-bitmap
-
-# From: Rick Richardson <rickrich@gmail.com>
-# updated by: Joerg Jenderek
-# URL: http://techmods.net/nuvi/
-0      string  GARMIN\ BITMAP\ 01      Garmin Bitmap file
-# extension is also used for
-# Sony SRF raw image (image/x-sony-srf)
-# SRF map
-# Terragen Surface Map (http://www.planetside.co.uk/terragen)
-# FileLocator Pro search criteria file (http://www.mythicsoft.com/filelocatorpro)
-!:ext srf
-#!:mime        image/x-garmin-srf
-# version 1.00,2.00,2.10,2.40,2.50
->0x2f  string          >0              \b, version %4.4s
-# width (2880,2881,3240)
->0x55  uleshort        >0              \b, %dx
-# height (80,90)
->>0x53 uleshort        x               \b%d
-
-# Type:        Ulead Photo Explorer5 (.pe5)
-# URL: http://www.jisyo.com/cgibin/view.cgi?EXT=pe5 (Japanese)
-# From:        Simon Horman <horms@debian.org>
-0      string  IIO2H                   Ulead Photo Explorer5
-
-# Type:        X11 cursor
-# URL: http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup
-# From:        Mathias Brodala <info@noctus.net>
-0      string  Xcur                    X11 cursor
-
-# Type:        Olympus ORF raw images.
-# URL: http://libopenraw.freedesktop.org/wiki/Olympus_ORF
-# From:        Adam Buchbinder <adam.buchbinder@gmail.com>
-0      string          MMOR            Olympus ORF raw image data, big-endian
-!:mime image/x-olympus-orf
-0      string          IIRO            Olympus ORF raw image data, little-endian
-!:mime image/x-olympus-orf
-0      string          IIRS            Olympus ORF raw image data, little-endian
-!:mime image/x-olympus-orf
-
-# Type: files used in modern AVCHD camcoders to store clip information
-# Extension: .cpi
-# From: Alexander Danilov <alexander.a.danilov@gmail.com>
-0      string  HDMV0100        AVCHD Clip Information
-
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://local.wasp.uwa.edu.au/~pbourke/dataformats/pic/
-# Radiance HDR; usually has .pic or .hdr extension.
-0      string  #?RADIANCE\n    Radiance HDR image data
-#!mime image/vnd.radiance
-
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://www.mpi-inf.mpg.de/resources/pfstools/pfs_format_spec.pdf
-# Used by the pfstools packages. The regex matches for the image size could
-# probably use some work. The MIME type is made up; if there's one in
-# actual common use, it should replace the one below.
-0      string  PFS1\x0a        PFS HDR image data
-#!mime image/x-pfs
->1     regex   [0-9]*\                 \b, %s
->>1    regex   \ [0-9]{4}              \bx%s
-
-# Type: Foveon X3F
-# URL:  http://www.photofo.com/downloads/x3f-raw-format.pdf
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# Note that the MIME type isn't defined anywhere that I can find; if
-# there's a canonical type for this format, it should replace this one.
-0      string  FOVb    Foveon X3F raw image data
-!:mime image/x-x3f
->6     leshort x       \b, version %d.
->4     leshort x       \b%d
->28    lelong  x       \b, %dx
->32    lelong  x       \b%d
-
-# Paint.NET file
-# From Adam Buchbinder <adam.buchbinder@gmail.com>
-0      string  PDN3    Paint.NET image data
-!:mime image/x-paintnet
-
-# Not really an image.
-# From: "Tano M. Fotang" <mfotang@quanteq.com>
-0      string  \x46\x4d\x52\x00        ISO/IEC 19794-2 Format Minutiae Record (FMR)
-
-# doc: http://www.shikino.co.jp/eng/products/images/FLOWER.jpg.zip
-# example: http://www.shikino.co.jp/eng/products/images/FLOWER.wdp.zip
-90     bequad          0x574D50484F544F00      JPEG-XR Image
->98    byte&0x08       =0x08                   \b, hard tiling
->99    byte&0x80       =0x80                   \b, tiling present
->99    byte&0x40       =0x40                   \b, codestream present
->99    byte&0x38       x                       \b, spatial xform=
->99    byte&0x38       0x00                    \bTL
->99    byte&0x38       0x08                    \bBL
->99    byte&0x38       0x10                    \bTR
->99    byte&0x38       0x18                    \bBR
->99    byte&0x38       0x20                    \bBT
->99    byte&0x38       0x28                    \bRB
->99    byte&0x38       0x30                    \bLT
->99    byte&0x38       0x38                    \bLB
->100   byte&0x80       =0x80                   \b, short header
->>102  beshort+1       x                       \b, %d
->>104  beshort+1       x                       \bx%d
->100   byte&0x80       =0x00                   \b, long header
->>102  belong+1        x                       \b, %x
->>106  belong+1        x                       \bx%x
->101   beshort&0xf     x                       \b, bitdepth=
->>101  beshort&0xf     0x0                     \b1-WHITE=1
->>101  beshort&0xf     0x1                     \b8
->>101  beshort&0xf     0x2                     \b16
->>101  beshort&0xf     0x3                     \b16-SIGNED
->>101  beshort&0xf     0x4                     \b16-FLOAT
->>101  beshort&0xf     0x5                     \b(reserved 5)
->>101  beshort&0xf     0x6                     \b32-SIGNED
->>101  beshort&0xf     0x7                     \b32-FLOAT
->>101  beshort&0xf     0x8                     \b5
->>101  beshort&0xf     0x9                     \b10
->>101  beshort&0xf     0xa                     \b5-6-5
->>101  beshort&0xf     0xb                     \b(reserved %d)
->>101  beshort&0xf     0xc                     \b(reserved %d)
->>101  beshort&0xf     0xd                     \b(reserved %d)
->>101  beshort&0xf     0xe                     \b(reserved %d)
->>101  beshort&0xf     0xf                     \b1-BLACK=1
->101   beshort&0xf0    x                       \b, colorfmt=
->>101  beshort&0xf0    0x00                    \bYONLY
->>101  beshort&0xf0    0x10                    \bYUV240
->>101  beshort&0xf0    0x20                    \bYWV422
->>101  beshort&0xf0    0x30                    \bYWV444
->>101  beshort&0xf0    0x40                    \bCMYK
->>101  beshort&0xf0    0x50                    \bCMYKDIRECT
->>101  beshort&0xf0    0x60                    \bNCOMPONENT
->>101  beshort&0xf0    0x70                    \bRGB
->>101  beshort&0xf0    0x80                    \bRGBE
->>101  beshort&0xf0    >0x80                   \b(reserved 0x%x)
-
-# From: Johan van der Knijff <johan.vanderknijff@kb.nl>
-#
-# BPG (Better Portable Graphics) format
-# http://bellard.org/bpg/
-# http://fileformats.archiveteam.org/wiki/BPG
-#
-0      string  \x42\x50\x47\xFB        BPG (Better Portable Graphics)
-!:mime  image/bpg
-
-# From: Joerg Jenderek
-# URL: https://en.wikipedia.org/wiki/Apple_Icon_Image_format
-0      string          icns            Mac OS X icon
-!:mime image/x-icns
-!:apple        ????icns
-!:ext icns
->4     ubelong         >0
-# file size
->>4    ubelong         x               \b, %d bytes
-# icon type
->>8    string          x               \b, "%4.4s" type
-
-# TIM images
-0              lelong          0x00000010      TIM image,
->4             lelong          0x8             4-Bit,
->4             lelong          0x9             8-Bit,
->4             lelong          0x2             15-Bit,
->4             lelong          0x3             24-Bit,
->4             lelong          &8
->>(8.l+12)     leshort         x               Pixel at (%d,
->>(8.l+14)     leshort         x               \b%d)
->>(8.l+16)     leshort         x               Size=%dx
->>(8.l+18)     leshort         x               \b%d,
->>4            lelong          0x8             16 CLUT Entries at
->>4            lelong          0x9             256 CLUT Entries at
->>12           leshort         x               (%d,
->>14           leshort         x               \b%d)
->4             lelong          ^8
->>12           leshort         x               Pixel at (%d,
->>14           leshort         x               \b%d)
->>16           leshort         x               Size=%dx
->>18           leshort         x               \b%d
-
-# MDEC streams
-0              lelong          0x80010160      MDEC video stream,
->16            leshort         x               %dx
->18            leshort         x               \b%d
-#>8            lelong          x               %d frames
-#>4            leshort         x               secCount=%d;
-#>6            leshort         x               nSectors=%d;
-#>12           lelong          x               frameSize=%d;
-
-# BS encoded bitstreams
-2              leshort         0x3800          BS image,
->6             leshort         x               Version %d,
->4             leshort         x               Quantization %d,
->0             leshort         x               (Decompresses to %d words)
-
-# Type: farbfeld image.
-# Url: http://tools.suckless.org/farbfeld/
-# From: Ian D. Scott <ian@iandouglasscott.com>
-#
-0              string          farbfeld        farbfeld image data,
->8             ubelong         x               %dx
->12            ubelong         x               \b%d
-
-# Type: Sega PVR image.
-# From: David Korth <gerbilsoft@gerbilsoft.com>
-# References:
-# - http://fabiensanglard.net/Mykaruga/tools/segaPVRFormat.txt
-# - https://github.com/yazgoo/pvrx2png
-# - https://github.com/nickworonekin/puyotools
-
-# Sega PVR header.
-0      name    sega-pvr-image-header
->0x0C  leshort x       %d x
->0x0E  leshort x       %d
-# Image format.
->0x08  byte    0       \b, ARGB1555
->0x08  byte    1       \b, RGB565
->0x08  byte    2       \b, ARGB4444
->0x08  byte    3       \b, YUV442
->0x08  byte    4       \b, Bump
->0x08  byte    5       \b, 4bpp
->0x08  byte    6       \b, 8bpp
-# Image data type.
->0x09  byte    0x01    \b, square twiddled
->0x09  byte    0x02    \b, square twiddled & mipmap
->0x09  byte    0x03    \b, VQ
->0x09  byte    0x04    \b, VQ & mipmap
->0x09  byte    0x05    \b, 8-bit CLUT twiddled
->0x09  byte    0x06    \b, 4-bit CLUT twiddled
->0x09  byte    0x07    \b, 8-bit direct twiddled
->0x09  byte    0x08    \b, 4-bit direct twiddled
->0x09  byte    0x09    \b, rectangle
->0x09  byte    0x0B    \b, rectangular stride
->0x09  byte    0x0D    \b, rectangular twiddled
->0x09  byte    0x10    \b, small VQ
->0x09  byte    0x11    \b, small VQ & mipmap
->0x09  byte    0x12    \b, square twiddled & mipmap
-
-# Sega PVR (Xbox) image header.
-# Contains an embedded DirectDraw surface instead of PVR data.
-0      name    sega-pvr-xbox-dds-header
->16    lelong  x       %d x
->12    lelong  x       %d,
->84    string  x       %.4s
-
-# Sega PVR image.
-0      string  PVRT
->0x10  string  DDS\040\174\000\000\000 Sega PVR (Xbox) image:
->>0x20 use     sega-pvr-xbox-dds-header
->0x10  belong  !0x44445320             Sega PVR image:
->>0    use     sega-pvr-image-header
-
-# Sega PVR image with GBIX.
-0      string  GBIX
->0x10  string  PVRT
->>0x10 string  DDS\040\174\000\000\000 Sega PVR (Xbox) image:
->>>0x20        use     sega-pvr-xbox-dds-header
->>0x10 belong  !0x44445320             Sega PVR image:
->>>0x10        use     sega-pvr-image-header
->>0x08 lelong  x       \b, global index = %u
-
-# Sega GVR header.
-0      name    sega-gvr-image-header
->0x0C  beshort x       %d x
->0x0E  beshort x       %d
-# Image data format.
->0x0B  byte    0       \b, I4
->0x0B  byte    1       \b, I8
->0x0B  byte    2       \b, IA4
->0x0B  byte    3       \b, IA8
->0x0B  byte    4       \b, RGB565
->0x0B  byte    5       \b, RGB5A3
->0x0B  byte    6       \b, ARGB8888
->0x0B  byte    8       \b, CI4
->0x0B  byte    9       \b, CI8
->0x0B  byte    14      \b, DXT1
-
-# Sega GVR image.
-0      string  GVRT    Sega GVR image:
->0x10  use     sega-gvr-image-header
-
-# Sega GVR image with GBIX.
-0      string  GBIX
->0x10  string  GVRT    Sega GVR image:
->>0x10 use     sega-gvr-image-header
->>0x08 belong  x       \b, global index = %u
-
-# Light Field Picture
-# Documentation: http://optics.miloush.net/lytro/TheFileFormat.aspx
-# Typical file extensions: .lfp .lfr .lfx
-
-0      belong  0x894C4650
->4     belong  0x0D0A1A0A
->12    belong  0x00000000      Lytro Light Field Picture
->8     belong  x               \b, version %d
-
-# Type: Vision Research Phantom CINE Format
-# URL: https://www.phantomhighspeed.com/
-# URL2: http://phantomhighspeed.force.com/vriknowledge/servlet/fileField?id=0BEU0000000Cfyk
-# From: Harry Mallon <hjmallon at gmail.com>
-#
-# This has a short "CI" code but the 44 is the size of the struct which is
-# stable
-0      string  CI
->2     leshort 44              Vision Research CINE Video,
->>4    leshort 0               Grayscale,
->>4    leshort 1               JPEG Compressed,
->>4    leshort 2               RAW,
->>6    leshort x               version %d,
->>20   lelong  x               %d frames,
->>48   lelong  x               %dx
->>52   lelong  x               \b%d
-
-# Type: ARRI Raw Image
-# Info: SMPTE RDD30:2014
-# From: Harry Mallon <hjmallon at gmail.com>
-0      string ARRI             ARRI ARI image data,
->4     lelong 0x78563412       little-endian,
->4     lelong 0x12345678       big-endian,
->12    lelong x                version %d,
->20    lelong x                %dx
->24    lelong x                \b%d
-
 #------------------------------------------------------------------------------
 # $File: inform,v 1.5 2009/09/19 16:28:09 christos Exp $
 # inform:  file(1) magic for Inform interactive fiction language
 !:mime text/x-python
 
 # import module [as abrev]
-0      regex   \^import\ [_[:alpha:]]+\ as\ [[:alpha:]][[:space:]]*$ Python script text executable
+0      regex/4096      \^import\ [_[:alpha:]]+\ as\ [[:alpha:]][[:space:]]*$ Python script text executable
 !:mime text/x-python
 
 # comments
 # except: or finally:
 # block
 0      search/4096     try:
->&0    regex   \^[[:space:]]*except.*:$        Python script text executable
+>&0    regex/4096      \^[[:space:]]*except.*:$        Python script text executable
 !:strength + 15
 !:mime text/x-python
 >&0    search/4096     finally:        Python script text executable
 !:mime text/x-python
 
 # def name(*args, **kwargs):
-0      regex    \^[[:space:]]{0,50}def\ {1,50}[_a-zA-Z]{1,100}
+0      regex/4096       \^[[:space:]]{0,50}def\ {1,50}[_a-zA-Z]{1,100}
 >&0    regex    \\(([[:alpha:]*_,\ ]){0,255}\\):$ Python script text executable
 !:strength + 15
 !:mime text/x-python
 # What looks like ruby, but does not have a shebang
 # (modules and such)
 # From: Lubomir Rintel <lkundrak@v3.sk>
-0      regex           \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'
+0      regex/4096              \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'
 >0     regex           def\ [a-z]|\ do$
->>&0   regex           \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
+>>&0   regex/4096              \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
 !:strength + 30
 !:mime text/x-ruby
-0      regex           \^[[:space:]]*(class|module)[[:space:]][A-Z]
+0      regex/4096              \^[[:space:]]*(class|module)[[:space:]][A-Z]
 >0     regex           (modul|includ)e\ [A-Z]|def\ [a-z]
->>&0   regex           \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
+>>&0   regex/4096              \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
 !:strength + 30
 !:mime text/x-ruby
 # Classes with no modules or defs, beats simple ASCII
-0      regex           \^[[:space:]]*(class|module)[[:space:]][A-Z]
->&0    regex   \^[[:space:]]*end([[:space:]]+[;#if].*)?$               Ruby script text
+0      regex/4096              \^[[:space:]]*(class|module)[[:space:]][A-Z]
+>&0    regex/4096      \^[[:space:]]*end([[:space:]]+[;#if].*)?$               Ruby script text
 !:strength + 10
 !:mime text/x-ruby
 # Looks for function definition to balance python magic
 # def name (args)
 # end
-0      regex           \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
->&0    regex           \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
+0      regex/4096              \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
+>&0    regex/4096              \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
 !:strength + 10
 !:mime text/x-ruby
 
-0      regex           \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'   Ruby script text
+0      regex/4096              \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'   Ruby script text
 !:mime text/x-ruby
-0 regex        \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+      Ruby script text
+0 regex/4096   \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+      Ruby script text
 !:mime text/x-ruby
 
 #------------------------------------------------------------------------------
index c66cc84c87fe70b4dfbcdbf443fabaecbf366838..e2e92726a433cb62600a74e4b0d97dbd42c26c3e 100644 (file)
 # C
 # Check for class if include is found, otherwise class is beaten by include becouse of lowered strength
 0      regex   \^#include                      C
->0     regex   \^class[[:space:]]+
+>0     regex/4096      \^class[[:space:]]+
 >>&0   regex   \\{[\.\*]\\}(;)?$                       \b++
 >&0    clear   x                               source text
 !:strength + 13
 !:mime text/x-c
-0      regex   \^#[[:space:]]*pragma   C source text
+0      regex/4096      \^#[[:space:]]*pragma   C source text
 !:mime text/x-c
-0      regex   \^#[[:space:]]*(if\|ifn)def
->&0    regex   \^#[[:space:]]*endif$   C source text
+0      regex/4096      \^#[[:space:]]*(if\|ifn)def
+>&0    regex/4096      \^#[[:space:]]*endif$   C source text
 !:mime text/x-c
-0      regex   \^#[[:space:]]*(if\|ifn)def
->&0    regex   \^#[[:space:]]*define   C source text
+0      regex/4096      \^#[[:space:]]*(if\|ifn)def
+>&0    regex/4096      \^#[[:space:]]*define   C source text
 !:mime text/x-c
-0      regex   \^[[:space:]]*char(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                   C source text
+0      regex/4096      \^[[:space:]]*char(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                   C source text
 !:mime text/x-c
-0      regex   \^[[:space:]]*double(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                 C source text
+0      regex/4096      \^[[:space:]]*double(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                 C source text
 !:mime text/x-c
-0      regex   \^[[:space:]]*extern[[:space:]]+                C source text
+0      regex/4096      \^[[:space:]]*extern[[:space:]]+                C source text
 !:mime text/x-c
-0      regex   \^[[:space:]]*float(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                  C source text
+0      regex/4096      \^[[:space:]]*float(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$                  C source text
 !:mime text/x-c
-0      regex   \^struct[[:space:]]+            C source text
+0      regex/4096      \^struct[[:space:]]+            C source text
 !:mime text/x-c
-0      regex   \^union[[:space:]]+             C source text
+0      regex/4096      \^union[[:space:]]+             C source text
 !:mime text/x-c
 0      search/8192     main(
->&0 regex      \\)[[:space:]]*\\{              C source text
+>&0 regex/4096 \\)[[:space:]]*\\{              C source text
 !:mime text/x-c
 
 # C++
 # The strength of these rules is increased so they beat the C rules above
-0      regex   \^namespace[[:space:]]+[_[:alpha:]]{1,30}[[:space:]]*\\{        C++ source text
+0      regex/4096      \^namespace[[:space:]]+[_[:alpha:]]{1,30}[[:space:]]*\\{        C++ source text
 !:strength + 30
 !:mime text/x-c++
 # using namespace [namespace] or using std::[lib]
-0      regex   \^using[[:space:]]+(namespace\ )?std(::)?[[:alpha:]]*[[:space:]]*;              C++ source text
+0      regex/4096      \^using[[:space:]]+(namespace\ )?std(::)?[[:alpha:]]*[[:space:]]*;              C++ source text
 !:strength + 30
 !:mime text/x-c++
-0      regex   \^[[:space:]]*template[[:space:]]*<.*>[[:space:]]*$     C++ source text
+0      regex/4096      \^[[:space:]]*template[[:space:]]*<.*>[[:space:]]*$     C++ source text
 !:strength + 30
 !:mime text/x-c++
-0      regex   \^[[:space:]]*virtual[[:space:]]+.*[};][[:space:]]*$            C++ source text
+0      regex/4096      \^[[:space:]]*virtual[[:space:]]+.*[};][[:space:]]*$            C++ source text
 !:strength + 30
 !:mime text/x-c++
 # But class alone is reduced to avoid beating php (Jens Schleusener)
-0      regex   \^[[:space:]]*class[[:space:]]+[[:digit:][:alpha:]:_]+[[:space:]]*\\{(.*[\n]*)*\\}(;)?$         C++ source text
+0      regex/4096      \^[[:space:]]*class[[:space:]]+[[:digit:][:alpha:]:_]+[[:space:]]*\\{(.*[\n]*)*\\}(;)?$         C++ source text
 !:strength + 13
 !:mime text/x-c++
-0      regex   \^[[:space:]]*public:           C++ source text
+0      regex/4096      \^[[:space:]]*public:           C++ source text
 !:strength + 30
 !:mime text/x-c++
-0      regex   \^[[:space:]]*private:          C++ source text
+0      regex/4096      \^[[:space:]]*private:          C++ source text
 !:strength + 30
 !:mime text/x-c++
-0      regex   \^[[:space:]]*protected:                C++ source text
+0      regex/4096      \^[[:space:]]*protected:                C++ source text
 !:strength + 30
 !:mime text/x-c++
 
 >20    lelong x                %dx
 >24    lelong x                \b%d
 
-#------------------------------------------------------------------------------
-# $File: images,v 1.131 2018/02/16 15:44:28 christos Exp $
-# images:  file(1) magic for image formats (see also "iff", and "c-lang" for
-# XPM bitmaps)
-#
-# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
-# additions by janl@ifi.uio.no as well as others. Jan also suggested
-# merging several one- and two-line files into here.
-#
-# little magic: PCX (first byte is 0x0a)
-
-# Targa - matches `povray', `ppmtotga' and `xv' outputs
-# by Philippe De Muyter <phdm@macqel.be>
-# URL: http://justsolve.archiveteam.org/wiki/TGA
-# Reference: http://www.dca.fee.unicamp.br/~martino/disciplinas/ea978/tgaffs.pdf
-# Update: Joerg Jenderek
-# at 2, byte ImgType must be 1, 2, 3, 9, 10 or 11
-#      ,32 or 33 (both not observed)
-# at 1, byte CoMapType must be 1 if ImgType is 1 or 9, 0 otherwise
-#      or theoretically 2-128 reserved for use by Truevision or 128-255 may be used for developer applications
-# at 3, leshort Index is 0 for povray, ppmtotga and xv outputs
-# `xv' recognizes only a subset of the following (RGB with pixelsize = 24)
-# `tgatoppm' recognizes a superset (Index may be anything)
-#
-# test of Color Map Type 0~no 1~color map
-# and Image Type 1 2 3 9 10 11 32 33
-# and Color Map Entry Size 0 15 16 24 32
-0      ubequad&0x00FeC400000000C0      0
-# skip more garbage like *.iso by looking for positive image type
->2     ubyte                   >0
-# skip some compiled terminfo like xterm+tmux by looking for image type less equal 33
->>2    ubyte                   <34
-# skip arches.3200 , Finder.Root , Slp.1 by looking for low pixel depth 1 8 15 16 24 32
->>>16  ubyte                   1
->>>>0          use             tga-image
->>>16  ubyte                   8
->>>>0          use             tga-image
->>>16  ubyte                   15
->>>>0          use             tga-image
->>>16  ubyte                   16
->>>>0          use             tga-image
->>>16  ubyte                   24
->>>>0          use             tga-image
->>>16  ubyte                   32
->>>>0          use             tga-image
-#      display tga bitmap image information
-0      name                            tga-image
->2     ubyte           <34             Targa image data
-!:mime image/x-tga
-!:apple        ????TPIC
-# normal extension .tga but some Truevision products used others:
-# tpic (Apple),icb (Image Capture Board),vda (Video Display Adapter),vst (NuVista),win (UNSURE about that)
-!:ext  tga/tpic/icb/vda/vst
-# image type 1 2 3 9 10 11 32 33
->2     ubyte&0xF7      1               - Map
->2     ubyte&0xF7      2               - RGB
-# alpha channel
->>17   ubyte&0x0F      >0              \bA
->2     ubyte&0xF7      3               - Mono
-# type not found, but by http://www.fileformat.info/format/tga/corion.htm
-# Compressed color-mapped data, using Huffman, Delta, and runlength encoding
->2     ubyte           32              - Color
-# Compressed color-mapped data, using Huffman, Delta, and RLE. 4-pass quadtree- type process
->2     ubyte           33              - Color
-# Color Map Type 0~no 1~color map
->1     ubyte           1               (
-# first color map entry, 0 normal
->>3    uleshort        >0              \b%d-
-# color map length 0 2 1dh 3bh d9h 100h
->>5    uleshort        x               \b%d)
-# 8~run length encoding bit
->2     ubyte&0x08      8               - RLE
-# gimp can create big pictures!
->12    uleshort        >0              %d x
->12    uleshort        =0              65536 x
-# image height. 0 interpreted as 65536
->14    uleshort        >0              %d
->14    uleshort        =0              65536
-# Image Pixel depth 1 8 15 16 24 32
->16    ubyte           x               x %d
-# X origin of image. 0 normal
->8     uleshort        >0              +%d
-# Y origin of image. 0 normal; positive for top
->10    uleshort        >0              +%d
-# Image descriptor: bits 3-0 give the alpha channel depth, bits 5-4 give direction
->17    ubyte&0x0F      >0              - %d-bit alpha
-# bits 5-4 give direction. normal bottom left
->17    ubyte           &0x20           - top
-#>17   ubyte           ^0x20           - bottom
->17    ubyte           &0x10           - right
-#>17   ubyte           ^0x10           - left
-# some info say other bits 6-7 should be zero
-# but data storage interleave by http://www.fileformat.info/format/tga/corion.htm
-# 00 - no interleave;01 - even/odd interleave; 10 - four way interleave; 11 - reserved
-#>17   ubyte&0xC0      0x00            - no interleave
->17    ubyte&0xC0      0x40            - interleave
->17    ubyte&0xC0      0x80            - four way interleave
->17    ubyte&0xC0      0xC0            - reserved
-# positive length implies identification field
->0     ubyte           >0
->>18   string          x               "%s"
-# last 18 bytes of newer tga file footer signature
->18    search/4261301/s        TRUEVISION-XFILE.\0
-# extension area offset if not 0
->>&-8          ulelong                 >0
-# length of the extension area. normal 495 for version 2.0
->>>(&-4.l)     uleshort                0x01EF
-# AuthorName[41]
->>>>&0         string                  >\0             - author "%-.40s"
-# Comment[324]=4 * 80 null terminated
->>>>&41                string                  >\0             - comment "%-.80s"
-# date
->>>>&365       ubequad&0xffffFFFFffff0000      !0
-# Day
->>>>>&-6               uleshort                x               %d
-# Month
->>>>>&-8               uleshort                x               \b-%d
-# Year
->>>>>&-4               uleshort                x               \b-%d
-# time
->>>>&371       ubequad&0xffffFFFFffff0000      !0
-# hour
->>>>>&-8               uleshort                x               %d
-# minutes
->>>>>&-6               uleshort                x               \b:%.2d
-# second
->>>>>&-4               uleshort                x               \b:%.2d
-# JobName[41]
->>>>&377               string                  >\0             - job "%-.40s"
-# JobHour Jobminute Jobsecond
->>>>&418       ubequad&0xffffFFFFffff0000      !0
->>>>>&-8               uleshort                x               %d
->>>>>&-6               uleshort                x               \b:%.2d
->>>>>&-4               uleshort                x               \b:%.2d
-# SoftwareId[41]
->>>>&424               string                  >\0             - %-.40s
-# SoftwareVersionNumber
->>>>&424       ubyte                           >0
->>>>>&40               uleshort/100            x               %d
->>>>>&40               uleshort%100            x               \b.%d
-# VersionLetter
->>>>>&42               ubyte                   >0x20           \b%c
-# KeyColor
->>>>&468               ulelong                 >0              - keycolor 0x%8.8x
-# Denominator of Pixel ratio. 0~no pixel aspect
->>>>&474       uleshort                        >0
-# Numerator
->>>>>&-4               uleshort                >0              - aspect %d
->>>>>&-2               uleshort                x               \b/%d
-# Denominator of Gamma ratio. 0~no Gamma value
->>>>&478       uleshort                        >0
-# Numerator
->>>>>&-4               uleshort                >0              - gamma %d
->>>>>&-2               uleshort                x               \b/%d
-# ColorOffset
-#>>>>&480      ulelong                 x               - col offset 0x%8.8x
-# StampOffset
-#>>>>&484      ulelong                 x               - stamp offset 0x%8.8x
-# ScanOffset
-#>>>>&488      ulelong                 x               - scan offset 0x%8.8x
-# AttributesType
-#>>>>&492      ubyte                   x               - Attributes 0x%x
-## EndOfTGA
-
-# PBMPLUS images
-# The next byte following the magic is always whitespace.
-# strength is changed to try these patterns before "x86 boot sector"
-0      name            netpbm
->3     regex/s         =[0-9]{1,50}\ [0-9]{1,50}       Netpbm image data
->>&0   regex           =[0-9]{1,50}                    \b, size = %s x
->>>&0  regex           =[0-9]{1,50}                    \b %s
-
-0      search/1        P1
->0     regex/4         P1[\040\t\f\r\n]
->>0    use             netpbm
->>>0   string          x       \b, bitmap
-!:strength + 45
-!:mime image/x-portable-bitmap
-
-0      search/1        P2
->0     regex/4         P2[\040\t\f\r\n]
->>0    use             netpbm
->>>0   string          x       \b, greymap
-!:strength + 45
-!:mime image/x-portable-greymap
-
-0      search/1        P3
->0     regex/4         P3[\040\t\f\r\n]
->>0    use             netpbm
->>>0   string          x       \b, pixmap
-!:strength + 45
-!:mime image/x-portable-pixmap
-
-0      string          P4
->0     regex/4         P4[\040\t\f\r\n]
->>0    use             netpbm
->>>0   string          x       \b, rawbits, bitmap
-!:strength + 45
-!:mime image/x-portable-bitmap
-
-0      string          P5
->0     regex/4         P5[\040\t\f\r\n]
->>0    use             netpbm
->>>0   string          x       \b, rawbits, greymap
-!:strength + 45
-!:mime image/x-portable-greymap
-
-0      string          P6
->0     regex/4         P6[\040\t\f\r\n]
->>0    use             netpbm
->>>0   string          x       \b, rawbits, pixmap
-!:strength + 45
-!:mime image/x-portable-pixmap
-
-0      string          P7              Netpbm PAM image file
-!:mime image/x-portable-pixmap
-
-# From: bryanh@giraffe-data.com (Bryan Henderson)
-0      string          \117\072        Solitaire Image Recorder format
->4     string          \013            MGI Type 11
->4     string          \021            MGI Type 17
-0      string          .MDA            MicroDesign data
->21    byte            48              version 2
->21    byte            51              version 3
-0      string          .MDP            MicroDesign page data
->21    byte            48              version 2
->21    byte            51              version 3
-
-# NIFF (Navy Interchange File Format, a modification of TIFF) images
-# [GRR:  this *must* go before TIFF]
-0      string          IIN1            NIFF image data
-!:mime image/x-niff
-
-# Canon RAW version 1 (CRW) files are a type of Canon Image File Format
-# (CIFF) file. These are apparently all little-endian.
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://www.sno.phy.queensu.ca/~phil/exiftool/canon_raw.html
-0      string          II\x1a\0\0\0HEAPCCDR    Canon CIFF raw image data
-!:mime image/x-canon-crw
->16    leshort         x       \b, version %d.
->14    leshort         x       \b%d
-
-# Canon RAW version 2 (CR2) files are a kind of TIFF with an extra magic
-# number. Put this above the TIFF test to make sure we detect them.
-# These are apparently all little-endian.
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://libopenraw.freedesktop.org/wiki/Canon_CR2
-0      string          II\x2a\0\x10\0\0\0CR    Canon CR2 raw image data
-!:mime image/x-canon-cr2
->10    byte            x       \b, version %d.
->11    byte            x       \b%d
-
-# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com)
-# The second word of TIFF files is the TIFF version number, 42, which has
-# never changed.  The TIFF specification recommends testing for it.
-0      string          MM\x00\x2a      TIFF image data, big-endian
-!:mime image/tiff
->(4.L) use             \^tiff_ifd
-0      string          II\x2a\x00      TIFF image data, little-endian
-!:mime image/tiff
->(4.l) use             tiff_ifd
-
-0      name            tiff_ifd
->0     leshort         x               \b, direntries=%d
->2     use             tiff_entry
-
-0      name            tiff_entry
-# NewSubFileType
->0     leshort         0xfe
->>12   use             tiff_entry
->0     leshort         0x100
->>4    lelong          1
->>>12  use             tiff_entry
->>>8   leshort         x               \b, width=%d
->0     leshort         0x101
->>4    lelong          1
->>>8   leshort         x               \b, height=%d
->>>12  use             tiff_entry
->0     leshort         0x102
->>8    leshort         x               \b, bps=%d
->>12   use             tiff_entry
->0     leshort         0x103
->>4    lelong          1               \b, compression=
->>>8   leshort         1               \bnone
->>>8   leshort         2               \bhuffman
->>>8   leshort         3               \bbi-level group 3
->>>8   leshort         4               \bbi-level group 4
->>>8   leshort         5               \bLZW
->>>8   leshort         6               \bJPEG (old)
->>>8   leshort         7               \bJPEG
->>>8   leshort         8               \bdeflate
->>>8   leshort         9               \bJBIG, ITU-T T.85
->>>8   leshort         0xa             \bJBIG, ITU-T T.43
->>>8   leshort         0x7ffe          \bNeXT RLE 2-bit
->>>8   leshort         0x8005          \bPackBits (Macintosh RLE)
->>>8   leshort         0x8029          \bThunderscan RLE
->>>8   leshort         0x807f          \bRasterPadding (CT or MP)
->>>8   leshort         0x8080          \bRLE (Line Work)
->>>8   leshort         0x8081          \bRLE (High-Res Cont-Tone)
->>>8   leshort         0x8082          \bRLE (Binary Line Work)
->>>8   leshort         0x80b2          \bDeflate (PKZIP)
->>>8   leshort         0x80b3          \bKodak DCS
->>>8   leshort         0x8765          \bJBIG
->>>8   leshort         0x8798          \bJPEG2000
->>>8   leshort         0x8799          \bNikon NEF Compressed
->>>8   default         x
->>>>8  leshort         x               \b(unknown 0x%x)
->>>12  use             tiff_entry
->0     leshort         0x106           \b, PhotometricIntepretation=
->>8    clear           x
->>8    leshort         0               \bWhiteIsZero
->>8    leshort         1               \bBlackIsZero
->>8    leshort         2               \bRGB
->>8    leshort         3               \bRGB Palette
->>8    leshort         4               \bTransparency Mask
->>8    leshort         5               \bCMYK
->>8    leshort         6               \bYCbCr
->>8    leshort         8               \bCIELab
->>8    default         x
->>>8   leshort         x               \b(unknown=0x%x)
->>12   use             tiff_entry
-# FillOrder
->0     leshort         0x10a
->>4    lelong          1
->>>12  use             tiff_entry
-# DocumentName
->0     leshort         0x10d
->>(8.l)        string          x               \b, name=%s
->>>12  use             tiff_entry
-# ImageDescription
->0     leshort         0x10e
->>(8.l)        string          x               \b, description=%s
->>>12  use             tiff_entry
-# Make
->0     leshort         0x10f
->>(8.l)        string          x               \b, manufacturer=%s
->>>12  use             tiff_entry
-# Model
->0     leshort         0x110
->>(8.l)        string          x               \b, model=%s
->>>12  use             tiff_entry
-# StripOffsets
->0     leshort         0x111
->>12   use             tiff_entry
-# Orientation
->0     leshort         0x112           \b, orientation=
->>8    leshort         1               \bupper-left
->>8    leshort         3               \blower-right
->>8    leshort         6               \bupper-right
->>8    leshort         8               \blower-left
->>8    leshort         9               \bundefined
->>8    default         x
->>>8   leshort         x               \b[*%d*]
->>12   use             tiff_entry
-# XResolution
->0     leshort         0x11a
->>8    lelong          x               \b, xresolution=%d
->>12   use             tiff_entry
-# YResolution
->0     leshort         0x11b
->>8    lelong          x               \b, yresolution=%d
->>12   use             tiff_entry
-# ResolutionUnit
->0     leshort         0x128
->>8    leshort         x               \b, resolutionunit=%d
->>12   use             tiff_entry
-# Software
->0     leshort         0x131
->>(8.l)        string          x               \b, software=%s
->>12   use             tiff_entry
-# Datetime
->0     leshort         0x132
->>(8.l)        string          x               \b, datetime=%s
->>12   use             tiff_entry
-# HostComputer
->0     leshort         0x13c
->>(8.l)        string          x               \b, hostcomputer=%s
->>12   use             tiff_entry
-# WhitePoint
->0     leshort         0x13e
->>12   use             tiff_entry
-# PrimaryChromaticities
->0     leshort         0x13f
->>12   use             tiff_entry
-# YCbCrCoefficients
->0     leshort         0x211
->>12   use             tiff_entry
-# YCbCrPositioning
->0     leshort         0x213
->>12   use             tiff_entry
-# ReferenceBlackWhite
->0     leshort         0x214
->>12   use             tiff_entry
-# Copyright
->0     leshort         0x8298
->>(8.l)        string          x               \b, copyright=%s
->>12   use             tiff_entry
-# ExifOffset
->0     leshort         0x8769
->>12   use             tiff_entry
-# GPS IFD
->0     leshort         0x8825          \b, GPS-Data
->>12   use             tiff_entry
-
-#>0    leshort         x               \b, unknown=0x%x
-#>>12  use             tiff_entry
-
-0      string          MM\x00\x2b      Big TIFF image data, big-endian
-!:mime image/tiff
-0      string          II\x2b\x00      Big TIFF image data, little-endian
-!:mime image/tiff
-
-# PNG [Portable Network Graphics, or "PNG's Not GIF"] images
-# (Greg Roelofs, newt@uchicago.edu)
-# (Albert Cahalan, acahalan@cs.uml.edu)
-#
-# 137 P N G \r \n ^Z \n [4-byte length] I H D R [HEAD data] [HEAD crc] ...
-#
-
-# IHDR parser
-0      name            png-ihdr
->0     belong          x               \b, %d x
->4     belong          x               %d,
->8     byte            x               %d-bit
->9     byte            0               grayscale,
->9     byte            2               \b/color RGB,
->9     byte            3               colormap,
->9     byte            4               gray+alpha,
->9     byte            6               \b/color RGBA,
-#>10   byte            0               deflate/32K,
->12    byte            0               non-interlaced
->12    byte            1               interlaced
-
-# Standard PNG image.
-0      string          \x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0DIHDR     PNG image data
-!:mime image/png
-!:strength +10
->16    use             png-ihdr
-
-# Apple CgBI PNG image.
-0      string          \x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x04CgBI
->24    string          \x00\x00\x00\x0DIHDR    PNG image data (CgBI)
-!:mime image/png
-!:strength +10
->>32   use             png-ihdr
-
-# possible GIF replacements; none yet released!
-# (Greg Roelofs, newt@uchicago.edu)
-#
-# GRR 950115:  this was mine ("Zip GIF"):
-0      string          GIF94z          ZIF image (GIF+deflate alpha)
-!:mime image/x-unknown
-#
-# GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
-#
-0      string          FGF95a          FGF image (GIF+deflate beta)
-!:mime image/x-unknown
-#
-# GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
-# (best; not yet implemented):
-#
-0      string          PBF             PBF image (deflate compression)
-!:mime image/x-unknown
-
-# GIF
-0      string          GIF8            GIF image data
-!:mime image/gif
-!:apple        8BIMGIFf
->4     string          7a              \b, version 8%s,
->4     string          9a              \b, version 8%s,
->6     leshort         >0              %d x
->8     leshort         >0              %d
-#>10   byte            &0x80           color mapped,
-#>10   byte&0x07       =0x00           2 colors
-#>10   byte&0x07       =0x01           4 colors
-#>10   byte&0x07       =0x02           8 colors
-#>10   byte&0x07       =0x03           16 colors
-#>10   byte&0x07       =0x04           32 colors
-#>10   byte&0x07       =0x05           64 colors
-#>10   byte&0x07       =0x06           128 colors
-#>10   byte&0x07       =0x07           256 colors
-
-# ITC (CMU WM) raster files.  It is essentially a byte-reversed Sun raster,
-# 1 plane, no encoding.
-0      string          \361\0\100\273  CMU window manager raster image data
->4     lelong          >0              %d x
->8     lelong          >0              %d,
->12    lelong          >0              %d-bit
-
-# Magick Image File Format
-0      string          id=ImageMagick  MIFF image data
-
-# Artisan
-0      long            1123028772      Artisan image data
->4     long            1               \b, rectangular 24-bit
->4     long            2               \b, rectangular 8-bit with colormap
->4     long            3               \b, rectangular 32-bit (24-bit with matte)
-
-# FIG (Facility for Interactive Generation of figures), an object-based format
-0      search/1        #FIG            FIG image text
->5     string          x               \b, version %.3s
-
-# PHIGS
-0      string          ARF_BEGARF              PHIGS clear text archive
-0      string          @(#)SunPHIGS            SunPHIGS
-# version number follows, in the form m.n
->40    string          SunBin                  binary
->32    string          archive                 archive
-
-# GKS (Graphics Kernel System)
-0      string          GKSM            GKS Metafile
->24    string          SunGKS          \b, SunGKS
-
-# CGM image files
-0      string          BEGMF           clear text Computer Graphics Metafile
-
-# MGR bitmaps  (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
-0      string  yz      MGR bitmap, modern format, 8-bit aligned
-0      string  zz      MGR bitmap, old format, 1-bit deep, 16-bit aligned
-0      string  xz      MGR bitmap, old format, 1-bit deep, 32-bit aligned
-0      string  yx      MGR bitmap, modern format, squeezed
-
-# Fuzzy Bitmap (FBM) images
-0      string          %bitmap\0       FBM image data
->30    long            0x31            \b, mono
->30    long            0x33            \b, color
-
-# facsimile data
-1      string          PC\ Research,\ Inc      group 3 fax data
->29    byte            0               \b, normal resolution (204x98 DPI)
->29    byte            1               \b, fine resolution (204x196 DPI)
-# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at>
-0      string          Sfff            structured fax file
-
-# From: Joerg Jenderek <joerg.jen.der.ek@gmx.net>
-# most files with the extension .EPA and some with .BMP
-0      string          \x11\x06        Award BIOS Logo, 136 x 84
-!:mime image/x-award-bioslogo
-0      string          \x11\x09        Award BIOS Logo, 136 x 126
-!:mime image/x-award-bioslogo
-#0     string          \x07\x1f        BIOS Logo corrupted?
-# http://www.blackfiveservices.co.uk/awbmtools.shtml
-# http://biosgfx.narod.ru/v3/
-# http://biosgfx.narod.ru/abr-2/
-0      string          AWBM
->4     leshort         <1981           Award BIOS bitmap
-!:mime image/x-award-bmp
-# image width is a multiple of 4
->>4    leshort&0x0003  0
->>>4           leshort x               \b, %d
->>>6           leshort x               x %d
->>4    leshort&0x0003  >0              \b,
->>>4   leshort&0x0003  =1
->>>>4          leshort x               %d+3
->>>4   leshort&0x0003  =2
->>>>4          leshort x               %d+2
->>>4   leshort&0x0003  =3
->>>>4          leshort x               %d+1
->>>6           leshort x               x %d
-# at offset 8 starts imagedata followed by "RGB " marker
-
-# PC bitmaps (OS/2, Windows BMP files)  (Greg Roelofs, newt@uchicago.edu)
-# http://en.wikipedia.org/wiki/BMP_file_format#DIB_header_.\
-# 28bitmap_information_header.29
-0      string          BM
->14    leshort         12              PC bitmap, OS/2 1.x format
-!:mime image/x-ms-bmp
->>18   leshort         x               \b, %d x
->>20   leshort         x               %d
->14    leshort         64              PC bitmap, OS/2 2.x format
-!:mime image/x-ms-bmp
->>18   leshort         x               \b, %d x
->>20   leshort         x               %d
->14    leshort         40              PC bitmap, Windows 3.x format
-!:mime image/x-ms-bmp
->>18   lelong          x               \b, %d x
->>22   lelong          x               %d x
->>28   leshort         x               %d
->14    leshort         124             PC bitmap, Windows 98/2000 and newer format
-!:mime image/x-ms-bmp
->>18   lelong          x               \b, %d x
->>22   lelong          x               %d x
->>28   leshort         x               %d
->14    leshort         108             PC bitmap, Windows 95/NT4 and newer format
-!:mime image/x-ms-bmp
->>18   lelong          x               \b, %d x
->>22   lelong          x               %d x
->>28   leshort         x               %d
->14    leshort         128             PC bitmap, Windows NT/2000 format
-!:mime image/x-ms-bmp
->>18   lelong          x               \b, %d x
->>22   lelong          x               %d x
->>28   leshort         x               %d
-# Too simple - MPi
-#0     string          IC              PC icon data
-#0     string          PI              PC pointer image data
-#0     string          CI              PC color icon data
-#0     string          CP              PC color pointer image data
-# Conflicts with other entries [BABYL]
-#0     string          BA              PC bitmap array data
-
-# XPM icons (Greg Roelofs, newt@uchicago.edu)
-0      search/1        /*\ XPM\ */     X pixmap image text
-!:mime image/x-xpmi
-
-# Utah Raster Toolkit RLE images (janl@ifi.uio.no)
-0      leshort         0xcc52          RLE image data,
->6     leshort         x               %d x
->8     leshort         x               %d
->2     leshort         >0              \b, lower left corner: %d
->4     leshort         >0              \b, lower right corner: %d
->10    byte&0x1        =0x1            \b, clear first
->10    byte&0x2        =0x2            \b, no background
->10    byte&0x4        =0x4            \b, alpha channel
->10    byte&0x8        =0x8            \b, comment
->11    byte            >0              \b, %d color channels
->12    byte            >0              \b, %d bits per pixel
->13    byte            >0              \b, %d color map channels
-
-# image file format (Robert Potter, potter@cs.rochester.edu)
-0      string          Imagefile\ version-     iff image data
-# this adds the whole header (inc. version number), informative but longish
->10    string          >\0             %s
-
-# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
-0      belong          0x59a66a95      Sun raster image data
->4     belong          >0              \b, %d x
->8     belong          >0              %d,
->12    belong          >0              %d-bit,
-#>16   belong          >0              %d bytes long,
->20    belong          0               old format,
-#>20   belong          1               standard,
->20    belong          2               compressed,
->20    belong          3               RGB,
->20    belong          4               TIFF,
->20    belong          5               IFF,
->20    belong          0xffff          reserved for testing,
->24    belong          0               no colormap
->24    belong          1               RGB colormap
->24    belong          2               raw colormap
-#>28   belong          >0              colormap is %d bytes long
-
-# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
-#
-# See
-#      http://reality.sgi.com/grafica/sgiimage.html
-#
-0      beshort         474             SGI image data
-#>2    byte            0               \b, verbatim
->2     byte            1               \b, RLE
-#>3    byte            1               \b, normal precision
->3     byte            2               \b, high precision
->4     beshort         x               \b, %d-D
->6     beshort         x               \b, %d x
->8     beshort         x               %d
->10    beshort         x               \b, %d channel
->10    beshort         !1              \bs
->80    string          >0              \b, "%s"
-
-0      string          IT01            FIT image data
->4     belong          x               \b, %d x
->8     belong          x               %d x
->12    belong          x               %d
-#
-0      string          IT02            FIT image data
->4     belong          x               \b, %d x
->8     belong          x               %d x
->12    belong          x               %d
-#
-2048   string          PCD_IPI         Kodak Photo CD image pack file
->0xe02 byte&0x03       0x00            , landscape mode
->0xe02 byte&0x03       0x01            , portrait mode
->0xe02 byte&0x03       0x02            , landscape mode
->0xe02 byte&0x03       0x03            , portrait mode
-0      string          PCD_OPA         Kodak Photo CD overview pack file
-
-# FITS format.  Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
-# FITS is the Flexible Image Transport System, the de facto standard for
-# data and image transfer, storage, etc., for the astronomical community.
-# (FITS floating point formats are big-endian.)
-0      string  SIMPLE\ \ =     FITS image data
->109   string  8               \b, 8-bit, character or unsigned binary integer
->108   string  16              \b, 16-bit, two's complement binary integer
->107   string  \ 32            \b, 32-bit, two's complement binary integer
->107   string  -32             \b, 32-bit, floating point, single precision
->107   string  -64             \b, 64-bit, floating point, double precision
-
-# other images
-0      string  This\ is\ a\ BitMap\ file       Lisp Machine bit-array-file
-
-# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
-# stuff.
-#
-0      beshort         0x1010          PEX Binary Archive
-
-# DICOM medical imaging data
-# URL:         https://en.wikipedia.org/wiki/DICOM#Data_format
-# Note:                "dcm" is the official file name extension
-#              XnView mention also "dc3" and "acr" as file name extension
-128    string  DICM                    DICOM medical imaging data
-!:mime application/dicom
-!:ext dcm/dicom/dic
-
-# XWD - X Window Dump file.
-#   As described in /usr/X11R6/include/X11/XWDFile.h
-#   used by the xwd program.
-#   Bradford Castalia, idaeim, 1/01
-#   updated by Adam Buchbinder, 2/09
-# The following assumes version 7 of the format; the first long is the length
-# of the header, which is at least 25 4-byte longs, and the one at offset 8
-# is a constant which is always either 1 or 2. Offset 12 is the pixmap depth,
-# which is a maximum of 32.
-0      belong  >100
->8     belong  <3
->>12   belong  <33
->>>4   belong  7                       XWD X Window Dump image data
-!:mime image/x-xwindowdump
->>>>100        string  >\0                     \b, "%s"
->>>>16 belong  x                       \b, %dx
->>>>20 belong  x                       \b%dx
->>>>12 belong  x                       \b%d
-
-# PDS - Planetary Data System
-#   These files use Parameter Value Language in the header section.
-#   Unfortunately, there is no certain magic, but the following
-#   strings have been found to be most likely.
-0      string  NJPL1I00                PDS (JPL) image data
-2      string  NJPL1I                  PDS (JPL) image data
-0      string  CCSD3ZF                 PDS (CCSD) image data
-2      string  CCSD3Z                  PDS (CCSD) image data
-0      string  PDS_                    PDS image data
-0      string  LBLSIZE=                PDS (VICAR) image data
-
-# pM8x: ATARI STAD compressed bitmap format
-#
-# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001
-# p M 8 5/6 xx yy zz data...
-# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed.
-# bytes either run horizontally (pM85) or vertically (pM86). yy is the
-# most frequent byte, xx and zz are runlength escape codes, where xx is
-# used for runs of yy.
-#
-0      string  pM85            Atari ST STAD bitmap image data (hor)
->5     byte    0x00            (white background)
->5     byte    0xFF            (black background)
-0      string  pM86            Atari ST STAD bitmap image data (vert)
->5     byte    0x00            (white background)
->5     byte    0xFF            (black background)
-
-# From: Alex Myczko <alex@aiei.ch>
-# http://www.atarimax.com/jindroush.atari.org/afmtatr.html
-0      leshort 0x0296          Atari ATR image
-
-# XXX:
-# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other
-# magic.
-# SGI RICE image file <mpruett@sgi.com>
-#0     beshort 0x5249          RICE image
-#>2    beshort x               v%d
-#>4    beshort x               (%d x
-#>6    beshort x               %d)
-#>8    beshort 0               8 bit
-#>8    beshort 1               10 bit
-#>8    beshort 2               12 bit
-#>8    beshort 3               13 bit
-#>10   beshort 0               4:2:2
-#>10   beshort 1               4:2:2:4
-#>10   beshort 2               4:4:4
-#>10   beshort 3               4:4:4:4
-#>12   beshort 1               RGB
-#>12   beshort 2               CCIR601
-#>12   beshort 3               RP175
-#>12   beshort 4               YUV
-
-# PCX image files
-# From: Dan Fandrich <dan@coneharvesters.com>
-# updated by Joerg Jenderek at Feb 2013 by http://de.wikipedia.org/wiki/PCX
-# http://web.archive.org/web/20100206055706/http://www.qzx.com/pc-gpe/pcx.txt
-# GRR: original test was still too general as it catches xbase examples T5.DBT,T6.DBT with 0xa000000
-# test for bytes 0x0a,version byte (0,2,3,4,5),compression byte flag(0,1), bit depth (>0) of PCX or T5.DBT,T6.DBT
-0      ubelong&0xffF8fe00      0x0a000000
-# for PCX bit depth > 0
->3     ubyte           >0
-# test for valid versions
->>1    ubyte           <6
->>>1   ubyte           !1      PCX
-!:mime image/x-pcx
-#!:mime        image/pcx
->>>>1  ubyte           0       ver. 2.5 image data
->>>>1  ubyte           2       ver. 2.8 image data, with palette
->>>>1  ubyte           3       ver. 2.8 image data, without palette
->>>>1  ubyte           4       for Windows image data
->>>>1  ubyte           5       ver. 3.0 image data
->>>>4  uleshort        x       bounding box [%d,
->>>>6  uleshort        x       %d] -
->>>>8  uleshort        x       [%d,
->>>>10 uleshort        x       %d],
->>>>65 ubyte           >1      %d planes each of
->>>>3  ubyte           x       %d-bit
->>>>68 byte            1       colour,
->>>>68 byte            2       grayscale,
-# this should not happen
->>>>68 default         x       image,
->>>>12 leshort         >0      %d x
->>>>>14        uleshort        x       %d dpi,
->>>>2  byte            0       uncompressed
->>>>2  byte            1       RLE compressed
-
-# Adobe Photoshop
-# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
-0      string          8BPS Adobe Photoshop Image
-!:mime image/vnd.adobe.photoshop
->4   beshort 2 (PSB)
->18  belong  x \b, %d x
->14  belong  x %d,
->24  beshort 0 bitmap
->24  beshort 1 grayscale
->>12 beshort 2 with alpha
->24  beshort 2 indexed
->24  beshort 3 RGB
->>12 beshort 4 \bA
->24  beshort 4 CMYK
->>12 beshort 5 \bA
->24  beshort 7 multichannel
->24  beshort 8 duotone
->24  beshort 9 lab
->12  beshort > 1
->>12  beshort x \b, %dx
->12  beshort 1 \b,
->22  beshort x %d-bit channel
->12  beshort > 1 \bs
-
-# XV thumbnail indicator (ThMO)
-0      string          P7\ 332         XV thumbnail image data
-
-# NITF is defined by United States MIL-STD-2500A
-0      string  NITF    National Imagery Transmission Format
->25    string  >\0     dated %.14s
-
-# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff)
-# Format variations from: Bernd Nuernberger <bernd.nuernberger@web.de>
-# Update: Joerg Jenderek
-# See http://fileformats.archiveteam.org/wiki/GEM_Raster
-# For variations, also see:
-#    http://www.seasip.info/Gem/ff_img.html (Ventura)
-#    http://www.atari-wiki.com/?title=IMG_file (XIMG, STTT)
-#    http://www.fileformat.info/format/gemraster/spec/index.htm (XIMG, STTT)
-#    http://sylvana.net/1stguide/1STGUIDE.ENG (TIMG)
-0       beshort     0x0001
-# header_size
->2      beshort     0x0008
->>0     use gem_info
->2      beshort     0x0009
->>0     use gem_info
-# no example for NOSIG
->2      beshort     24
->>0     use gem_info
-# no example for HYPERPAINT
->2      beshort     25
->>0     use gem_info
-16      string      XIMG\0
->0      use gem_info
-# no example
-16      string      STTT\0\x10
->0      use gem_info
-# no example or description
-16      string      TIMG\0
->0      use gem_info
-
-0   name        gem_info
-# version is 2 for some XIMG and 1 for all others
->0     beshort         <0x0003         GEM
-# http://www.snowstone.org.uk/riscos/mimeman/mimemap.txt
-!:mime image/x-gem
-# header_size 24 25 27 59 779 words for colored bitmaps
->>2    beshort         >9
->>>16  string          STTT\0\x10      STTT
->>>16  string          TIMG\0          TIMG
-# HYPERPAINT or NOSIG variant
->>>16  string          \0\x80
->>>>2  beshort         =24             NOSIG
->>>>2  beshort         !24             HYPERPAINT
-# NOSIG or XIMG variant
->>>16  default         x
->>>>16 string          !XIMG\0         NOSIG
->>16   string          =XIMG\0         XIMG Image data
-!:ext  img/ximg
-# to avoid Warning: Current entry does not yet have a description for adding a EXTENSION type
->>16   string          !XIMG\0         Image data
-!:ext  img
-# header_size is 9 for Ventura files and 8 for other GEM Paint files
->>2    beshort         9               (Ventura)
-#>>2   beshort         8               (Paint)
->>12   beshort         x               %d x
->>14   beshort         x               %d,
-# 1 4 8
->>4    beshort         x               %d planes,
-# in tenths of a millimetre
->>8    beshort         x               %d x
->>10   beshort         x               %d pixelsize
-# pattern_size 1-8. 2 for GEM Paint
->>6    beshort         !2              \b, pattern size %d
-
-# GEM Metafile (Wolfram Kleff)
-0      lelong          0x0018FFFF      GEM Metafile data
->4     leshort         x               version %d
-
-#
-# SMJPEG. A custom Motion JPEG format used by Loki Entertainment
-# Software Torbjorn Andersson <d91tan@Update.UU.SE>.
-#
-0      string  \0\nSMJPEG      SMJPEG
->8     belong  x               %d.x data
-# According to the specification you could find any number of _TXT
-# headers here, but I can't think of any way of handling that. None of
-# the SMJPEG files I tried it on used this feature. Even if such a
-# file is encountered the output should still be reasonable.
->16    string  _SND            \b,
->>24   beshort >0              %d Hz
->>26   byte    8               8-bit
->>26   byte    16              16-bit
->>28   string  NONE            uncompressed
-# >>28 string  APCM            ADPCM compressed
->>27   byte    1               mono
->>28   byte    2               stereo
-# Help! Isn't there any way to avoid writing this part twice?
->>32   string  _VID            \b,
-# >>>48        string  JFIF            JPEG
->>>40  belong  >0              %d frames
->>>44  beshort >0              (%d x
->>>46  beshort >0              %d)
->16    string  _VID            \b,
-# >>32 string  JFIF            JPEG
->>24   belong  >0              %d frames
->>28   beshort >0              (%d x
->>30   beshort >0              %d)
-
-0      string  Paint\ Shop\ Pro\ Image\ File   Paint Shop Pro Image File
-
-# "thumbnail file" (icon)
-# descended from "xv", but in use by other applications as well (Wolfram Kleff)
-0       string          P7\ 332         XV "thumbnail file" (icon) data
-
-# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?)
-0       string          KiSS            KISS/GS
->4      byte            16              color
->>5     byte            x               %d bit
->>8     leshort         x               %d colors
->>10    leshort         x               %d groups
->4      byte            32              cell
->>5     byte            x               %d bit
->>8     leshort         x               %d x
->>10    leshort         x               %d
->>12    leshort         x               +%d
->>14    leshort         x               +%d
-
-# Webshots (www.webshots.com), by John Harrison
-0       string          C\253\221g\230\0\0\0 Webshots Desktop .wbz file
-
-# Hercules DASD image files
-# From Jan Jaeger <jj@septa.nl>
-0       string  CKD_P370        Hercules CKD DASD image file
->8      long    x               \b, %d heads per cylinder
->12     long    x               \b, track size %d bytes
->16     byte    x               \b, device type 33%2.2X
-
-0       string  CKD_C370        Hercules compressed CKD DASD image file
->8      long    x               \b, %d heads per cylinder
->12     long    x               \b, track size %d bytes
->16     byte    x               \b, device type 33%2.2X
-
-0       string  CKD_S370        Hercules CKD DASD shadow file
->8      long    x               \b, %d heads per cylinder
->12     long    x               \b, track size %d bytes
->16     byte    x               \b, device type 33%2.2X
-
-# Squeak images and programs - etoffi@softhome.net
-0      string          \146\031\0\0    Squeak image data
-0      search/1        'From\040Squeak Squeak program text
-
-# partimage: file(1) magic for PartImage files (experimental, incomplete)
-# Author: Hans-Joachim Baader <hjb@pro-linux.de>
-0              string  PaRtImAgE-VoLuMe        PartImage
->0x0020                string  0.6.1           file version %s
->>0x0060       lelong  >-1             volume %d
-#>>0x0064 8 byte identifier
-#>>0x007c reserved
->>0x0200       string  >\0             type %s
->>0x1400       string  >\0             device %s,
->>0x1600       string  >\0             original filename %s,
-# Some fields omitted
->>0x2744       lelong  0               not compressed
->>0x2744       lelong  1               gzip compressed
->>0x2744       lelong  2               bzip2 compressed
->>0x2744       lelong  >2              compressed with unknown algorithm
->0x0020                string  >0.6.1          file version %s
->0x0020                string  <0.6.1          file version %s
-
-# DCX is multi-page PCX, using a simple header of up to 1024
-# offsets for the respective PCX components.
-# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
-0      lelong  987654321       DCX multi-page PCX image data
-
-# Simon Walton <simonw@matteworld.com>
-# Kodak Cineon format for scanned negatives
-# http://www.kodak.com/US/en/motion/support/dlad/
-0      lelong  0xd75f2a80      Cineon image data
->200   belong  >0              \b, %d x
->204   belong  >0              %d
-
-
-# Bio-Rad .PIC is an image format used by microscope control systems
-# and related image processing software used by biologists.
-# From: Vebjorn Ljosa <vebjorn@ljosa.com>
-# BOOL values are two-byte integers; use them to rule out false positives.
-# http://web.archive.org/web/20050317223257/www.cs.ubc.ca/spider/ladic/text/biorad.txt
-# Samples: http://www.loci.wisc.edu/software/sample-data
-14     leshort <2
->62    leshort <2
->>54   leshort 12345           Bio-Rad .PIC Image File
->>>0   leshort >0              %d x
->>>2   leshort >0              %d,
->>>4   leshort =1              1 image in file
->>>4   leshort >1              %d images in file
-
-# From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
-# The description of *.mrw format can be found at
-# http://www.dalibor.cz/minolta/raw_file_format.htm
-0      string  \000MRM                 Minolta Dimage camera raw image data
-
-# Summary: DjVu image / document
-# Extension: .djvu
-# Reference: http://djvu.org/docs/DjVu3Spec.djvu
-# Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
-# Modified by (1): Abel Cheung <abelcheung@gmail.com>
-0      string  AT&TFORM
->12    string  DJVM            DjVu multiple page document
-!:mime image/vnd.djvu
->12    string  DJVU            DjVu image or single page document
-!:mime image/vnd.djvu
->12    string  DJVI            DjVu shared document
-!:mime image/vnd.djvu
->12    string  THUM            DjVu page thumbnails
-!:mime image/vnd.djvu
-
-# Originally by Marc Espie
-# Modified by Robert Minsk <robertminsk at yahoo.com>
-# http://www.openexr.com/openexrfilelayout.pdf
-0      lelong          20000630        OpenEXR image data,
-!:mime image/x-exr
->4     lelong&0x000000ff x             version %d,
->4     lelong          ^0x00000200     storage: scanline
->4     lelong          &0x00000200     storage: tiled
->8     search/0x1000   compression\0   \b, compression:
->>&16  byte            0               none
->>&16  byte            1               rle
->>&16  byte            2               zips
->>&16  byte            3               zip
->>&16  byte            4               piz
->>&16  byte            5               pxr24
->>&16  byte            6               b44
->>&16  byte            7               b44a
->>&16  byte            8               dwaa
->>&16  byte            9               dwab
->>&16  byte            >9              unknown
->8      search/0x1000  dataWindow\0    \b, dataWindow:
->>&10  lelong          x               (%d
->>&14  lelong          x               %d)-
->>&18  lelong          x               \b(%d
->>&22  lelong          x               %d)
->8     search/0x1000   displayWindow\0 \b, displayWindow:
->>&10  lelong          x               (%d
->>&14  lelong          x               %d)-
->>&18  lelong          x               \b(%d
->>&22  lelong          x               %d)
->8     search/0x1000   lineOrder\0      \b, lineOrder:
->>&14  byte            0               increasing y
->>&14  byte            1               decreasing y
->>&14  byte            2               random y
->>&14  byte            >2              unknown
-
-# SMPTE Digital Picture Exchange Format, SMPTE DPX
-#
-# ANSI/SMPTE 268M-1994, SMPTE Standard for File Format for Digital
-# Moving-Picture Exchange (DPX), v1.0, 18 February 1994
-# Robert Minsk <robertminsk at yahoo.com>
-# Modified by Harry Mallon <hjmallon at gmail.com>
-0      string          SDPX    DPX image data, big-endian,
-!:mime image/x-dpx
->0     use             dpx_info
-0      string          XPDS    DPX image data, little-endian,
-!:mime image/x-dpx
->0     use             \^dpx_info
-
-0      name            dpx_info
->768   beshort         <4
->>772  belong          x       %dx
->>776  belong          x       \b%d,
->768   beshort         >3
->>776  belong          x       %dx
->>772  belong          x       \b%d,
->768   beshort         0       left to right/top to bottom
->768   beshort         1       right to left/top to bottom
->768   beshort         2       left to right/bottom to top
->768   beshort         3       right to left/bottom to top
->768   beshort         4       top to bottom/left to right
->768   beshort         5       top to bottom/right to left
->768   beshort         6       bottom to top/left to right
->768   beshort         7       bottom to top/right to left
-
-# From: Tom Hilinski <tom.hilinski@comcast.net>
-# http://www.unidata.ucar.edu/packages/netcdf/
-0      string  CDF\001                 NetCDF Data Format data
-
-#-----------------------------------------------------------------------
-# Hierarchical Data Format, used to facilitate scientific data exchange
-# specifications at http://hdf.ncsa.uiuc.edu/
-0      belong  0x0e031301      Hierarchical Data Format (version 4) data
-!:mime application/x-hdf
-0      string  \211HDF\r\n\032\n       Hierarchical Data Format (version 5) data
-!:mime application/x-hdf
-512    string  \211HDF\r\n\032\n       Hierarchical Data Format (version 5) with 512 bytes user block
-!:mime application/x-hdf
-1024   string  \211HDF\r\n\032\n       Hierarchical Data Format (version 5) with 1k user block
-!:mime application/x-hdf
-2048   string  \211HDF\r\n\032\n       Hierarchical Data Format (version 5) with 2k user block
-!:mime application/x-hdf
-4096   string  \211HDF\r\n\032\n       Hierarchical Data Format (version 5) with 4k user block
-!:mime application/x-hdf
-
-
-# From: Tobias Burnus <burnus@net-b.de>
-# Xara (for a while: Corel Xara) is a graphic package, see
-# http://www.xara.com/ for Windows and as GPL application for Linux
-0      string  XARA\243\243    Xara graphics file
-
-# http://www.cartesianinc.com/Tech/
-0      string  CPC\262         Cartesian Perceptual Compression image
-!:mime image/x-cpi
-
-# From Albert Cahalan <acahalan@gmail.com>
-# puredigital used it for the CVS disposable camcorder
-#8       lelong  4       ZBM bitmap image data
-#>4      leshort x       %u x
-#>6      leshort x       %u
-
-# From Albert Cahalan <acahalan@gmail.com>
-# uncompressed 5:6:5 HighColor image for OLPC XO firmware icons
-0       string C565     OLPC firmware icon image data
->4      leshort x       %u x
->6      leshort x       %u
-
-# Applied Images - Image files from Cytovision
-# Gustavo Junior Alves <gjalves@gjalves.com.br>
-0      string  \xce\xda\xde\xfa        Cytovision Metaphases file
-0      string  \xed\xad\xef\xac        Cytovision Karyotype file
-0      string  \x0b\x00\x03\x00        Cytovision FISH Probe file
-0      string  \xed\xfe\xda\xbe        Cytovision FLEX file
-0      string  \xed\xab\xed\xfe        Cytovision FLEX file
-0      string  \xad\xfd\xea\xad        Cytovision RATS file
-
-# Wavelet Scalar Quantization format used in gray-scale fingerprint images
-# From Tano M Fotang <mfotang@quanteq.com>
-0      string  \xff\xa0\xff\xa8\x00    Wavelet Scalar Quantization image data
-
-# Type:                PCO B16 image files
-# URL:         http://www.pco.de/fileadmin/user_upload/db/download/MA_CWDCOPIE_0412b.pdf
-# From:                Florian Philipp <florian.philipp@binarywings.net>
-# Extension:   .b16
-# Description: Pixel image format produced by PCO Camware, typically used
-#              together with PCO cameras.
-# Note:                Different versions exist for e.g. 8 bit and 16 bit images.
-#              Documentation is incomplete.
-0      string/b        PCO-    PCO B16 image data
->12    lelong          x       \b, %dx
->16    lelong          x       \b%d
->20    lelong          0       \b, short header
->20    lelong          -1      \b, extended header
->>24   lelong          0       \b, grayscale
->>>36  lelong          0       linear LUT
->>>36  lelong          1       logarithmic LUT
->>>28  lelong          x       [%d
->>>32  lelong          x       \b,%d]
->>24   lelong          1       \b, color
->>>64  lelong          0       linear LUT
->>>64  lelong          1       logarithmic LUT
->>>40  lelong          x       r[%d
->>>44  lelong          x       \b,%d]
->>>48  lelong          x       g[%d
->>>52  lelong          x       \b,%d]
->>>56  lelong          x       b[%d
->>>60  lelong          x       \b,%d]
-
-# Polar Monitor Bitmap (.pmb) used as logo for Polar Electro watches
-# From: Markus Heidelberg <markus.heidelberg at web.de>
-0      string/t        [BitmapInfo2]   Polar Monitor Bitmap text
-!:mime image/x-polar-monitor-bitmap
-
-# From: Rick Richardson <rickrich@gmail.com>
-# updated by: Joerg Jenderek
-# URL: http://techmods.net/nuvi/
-0      string  GARMIN\ BITMAP\ 01      Garmin Bitmap file
-# extension is also used for
-# Sony SRF raw image (image/x-sony-srf)
-# SRF map
-# Terragen Surface Map (http://www.planetside.co.uk/terragen)
-# FileLocator Pro search criteria file (http://www.mythicsoft.com/filelocatorpro)
-!:ext srf
-#!:mime        image/x-garmin-srf
-# version 1.00,2.00,2.10,2.40,2.50
->0x2f  string          >0              \b, version %4.4s
-# width (2880,2881,3240)
->0x55  uleshort        >0              \b, %dx
-# height (80,90)
->>0x53 uleshort        x               \b%d
-
-# Type:        Ulead Photo Explorer5 (.pe5)
-# URL: http://www.jisyo.com/cgibin/view.cgi?EXT=pe5 (Japanese)
-# From:        Simon Horman <horms@debian.org>
-0      string  IIO2H                   Ulead Photo Explorer5
-
-# Type:        X11 cursor
-# URL: http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup
-# From:        Mathias Brodala <info@noctus.net>
-0      string  Xcur                    X11 cursor
-
-# Type:        Olympus ORF raw images.
-# URL: http://libopenraw.freedesktop.org/wiki/Olympus_ORF
-# From:        Adam Buchbinder <adam.buchbinder@gmail.com>
-0      string          MMOR            Olympus ORF raw image data, big-endian
-!:mime image/x-olympus-orf
-0      string          IIRO            Olympus ORF raw image data, little-endian
-!:mime image/x-olympus-orf
-0      string          IIRS            Olympus ORF raw image data, little-endian
-!:mime image/x-olympus-orf
-
-# Type: files used in modern AVCHD camcoders to store clip information
-# Extension: .cpi
-# From: Alexander Danilov <alexander.a.danilov@gmail.com>
-0      string  HDMV0100        AVCHD Clip Information
-
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://local.wasp.uwa.edu.au/~pbourke/dataformats/pic/
-# Radiance HDR; usually has .pic or .hdr extension.
-0      string  #?RADIANCE\n    Radiance HDR image data
-#!mime image/vnd.radiance
-
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://www.mpi-inf.mpg.de/resources/pfstools/pfs_format_spec.pdf
-# Used by the pfstools packages. The regex matches for the image size could
-# probably use some work. The MIME type is made up; if there's one in
-# actual common use, it should replace the one below.
-0      string  PFS1\x0a        PFS HDR image data
-#!mime image/x-pfs
->1     regex   [0-9]*\                 \b, %s
->>1    regex   \ [0-9]{4}              \bx%s
-
-# Type: Foveon X3F
-# URL:  http://www.photofo.com/downloads/x3f-raw-format.pdf
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# Note that the MIME type isn't defined anywhere that I can find; if
-# there's a canonical type for this format, it should replace this one.
-0      string  FOVb    Foveon X3F raw image data
-!:mime image/x-x3f
->6     leshort x       \b, version %d.
->4     leshort x       \b%d
->28    lelong  x       \b, %dx
->32    lelong  x       \b%d
-
-# Paint.NET file
-# From Adam Buchbinder <adam.buchbinder@gmail.com>
-0      string  PDN3    Paint.NET image data
-!:mime image/x-paintnet
-
-# Not really an image.
-# From: "Tano M. Fotang" <mfotang@quanteq.com>
-0      string  \x46\x4d\x52\x00        ISO/IEC 19794-2 Format Minutiae Record (FMR)
-
-# doc: http://www.shikino.co.jp/eng/products/images/FLOWER.jpg.zip
-# example: http://www.shikino.co.jp/eng/products/images/FLOWER.wdp.zip
-90     bequad          0x574D50484F544F00      JPEG-XR Image
->98    byte&0x08       =0x08                   \b, hard tiling
->99    byte&0x80       =0x80                   \b, tiling present
->99    byte&0x40       =0x40                   \b, codestream present
->99    byte&0x38       x                       \b, spatial xform=
->99    byte&0x38       0x00                    \bTL
->99    byte&0x38       0x08                    \bBL
->99    byte&0x38       0x10                    \bTR
->99    byte&0x38       0x18                    \bBR
->99    byte&0x38       0x20                    \bBT
->99    byte&0x38       0x28                    \bRB
->99    byte&0x38       0x30                    \bLT
->99    byte&0x38       0x38                    \bLB
->100   byte&0x80       =0x80                   \b, short header
->>102  beshort+1       x                       \b, %d
->>104  beshort+1       x                       \bx%d
->100   byte&0x80       =0x00                   \b, long header
->>102  belong+1        x                       \b, %x
->>106  belong+1        x                       \bx%x
->101   beshort&0xf     x                       \b, bitdepth=
->>101  beshort&0xf     0x0                     \b1-WHITE=1
->>101  beshort&0xf     0x1                     \b8
->>101  beshort&0xf     0x2                     \b16
->>101  beshort&0xf     0x3                     \b16-SIGNED
->>101  beshort&0xf     0x4                     \b16-FLOAT
->>101  beshort&0xf     0x5                     \b(reserved 5)
->>101  beshort&0xf     0x6                     \b32-SIGNED
->>101  beshort&0xf     0x7                     \b32-FLOAT
->>101  beshort&0xf     0x8                     \b5
->>101  beshort&0xf     0x9                     \b10
->>101  beshort&0xf     0xa                     \b5-6-5
->>101  beshort&0xf     0xb                     \b(reserved %d)
->>101  beshort&0xf     0xc                     \b(reserved %d)
->>101  beshort&0xf     0xd                     \b(reserved %d)
->>101  beshort&0xf     0xe                     \b(reserved %d)
->>101  beshort&0xf     0xf                     \b1-BLACK=1
->101   beshort&0xf0    x                       \b, colorfmt=
->>101  beshort&0xf0    0x00                    \bYONLY
->>101  beshort&0xf0    0x10                    \bYUV240
->>101  beshort&0xf0    0x20                    \bYWV422
->>101  beshort&0xf0    0x30                    \bYWV444
->>101  beshort&0xf0    0x40                    \bCMYK
->>101  beshort&0xf0    0x50                    \bCMYKDIRECT
->>101  beshort&0xf0    0x60                    \bNCOMPONENT
->>101  beshort&0xf0    0x70                    \bRGB
->>101  beshort&0xf0    0x80                    \bRGBE
->>101  beshort&0xf0    >0x80                   \b(reserved 0x%x)
-
-# From: Johan van der Knijff <johan.vanderknijff@kb.nl>
-#
-# BPG (Better Portable Graphics) format
-# http://bellard.org/bpg/
-# http://fileformats.archiveteam.org/wiki/BPG
-#
-0      string  \x42\x50\x47\xFB        BPG (Better Portable Graphics)
-!:mime  image/bpg
-
-# From: Joerg Jenderek
-# URL: https://en.wikipedia.org/wiki/Apple_Icon_Image_format
-0      string          icns            Mac OS X icon
-!:mime image/x-icns
-!:apple        ????icns
-!:ext icns
->4     ubelong         >0
-# file size
->>4    ubelong         x               \b, %d bytes
-# icon type
->>8    string          x               \b, "%4.4s" type
-
-# TIM images
-0              lelong          0x00000010      TIM image,
->4             lelong          0x8             4-Bit,
->4             lelong          0x9             8-Bit,
->4             lelong          0x2             15-Bit,
->4             lelong          0x3             24-Bit,
->4             lelong          &8
->>(8.l+12)     leshort         x               Pixel at (%d,
->>(8.l+14)     leshort         x               \b%d)
->>(8.l+16)     leshort         x               Size=%dx
->>(8.l+18)     leshort         x               \b%d,
->>4            lelong          0x8             16 CLUT Entries at
->>4            lelong          0x9             256 CLUT Entries at
->>12           leshort         x               (%d,
->>14           leshort         x               \b%d)
->4             lelong          ^8
->>12           leshort         x               Pixel at (%d,
->>14           leshort         x               \b%d)
->>16           leshort         x               Size=%dx
->>18           leshort         x               \b%d
-
-# MDEC streams
-0              lelong          0x80010160      MDEC video stream,
->16            leshort         x               %dx
->18            leshort         x               \b%d
-#>8            lelong          x               %d frames
-#>4            leshort         x               secCount=%d;
-#>6            leshort         x               nSectors=%d;
-#>12           lelong          x               frameSize=%d;
-
-# BS encoded bitstreams
-2              leshort         0x3800          BS image,
->6             leshort         x               Version %d,
->4             leshort         x               Quantization %d,
->0             leshort         x               (Decompresses to %d words)
-
-# Type: farbfeld image.
-# Url: http://tools.suckless.org/farbfeld/
-# From: Ian D. Scott <ian@iandouglasscott.com>
-#
-0              string          farbfeld        farbfeld image data,
->8             ubelong         x               %dx
->12            ubelong         x               \b%d
-
-# Type: Sega PVR image.
-# From: David Korth <gerbilsoft@gerbilsoft.com>
-# References:
-# - http://fabiensanglard.net/Mykaruga/tools/segaPVRFormat.txt
-# - https://github.com/yazgoo/pvrx2png
-# - https://github.com/nickworonekin/puyotools
-
-# Sega PVR header.
-0      name    sega-pvr-image-header
->0x0C  leshort x       %d x
->0x0E  leshort x       %d
-# Image format.
->0x08  byte    0       \b, ARGB1555
->0x08  byte    1       \b, RGB565
->0x08  byte    2       \b, ARGB4444
->0x08  byte    3       \b, YUV442
->0x08  byte    4       \b, Bump
->0x08  byte    5       \b, 4bpp
->0x08  byte    6       \b, 8bpp
-# Image data type.
->0x09  byte    0x01    \b, square twiddled
->0x09  byte    0x02    \b, square twiddled & mipmap
->0x09  byte    0x03    \b, VQ
->0x09  byte    0x04    \b, VQ & mipmap
->0x09  byte    0x05    \b, 8-bit CLUT twiddled
->0x09  byte    0x06    \b, 4-bit CLUT twiddled
->0x09  byte    0x07    \b, 8-bit direct twiddled
->0x09  byte    0x08    \b, 4-bit direct twiddled
->0x09  byte    0x09    \b, rectangle
->0x09  byte    0x0B    \b, rectangular stride
->0x09  byte    0x0D    \b, rectangular twiddled
->0x09  byte    0x10    \b, small VQ
->0x09  byte    0x11    \b, small VQ & mipmap
->0x09  byte    0x12    \b, square twiddled & mipmap
-
-# Sega PVR (Xbox) image header.
-# Contains an embedded DirectDraw surface instead of PVR data.
-0      name    sega-pvr-xbox-dds-header
->16    lelong  x       %d x
->12    lelong  x       %d,
->84    string  x       %.4s
-
-# Sega PVR image.
-0      string  PVRT
->0x10  string  DDS\040\174\000\000\000 Sega PVR (Xbox) image:
->>0x20 use     sega-pvr-xbox-dds-header
->0x10  belong  !0x44445320             Sega PVR image:
->>0    use     sega-pvr-image-header
-
-# Sega PVR image with GBIX.
-0      string  GBIX
->0x10  string  PVRT
->>0x10 string  DDS\040\174\000\000\000 Sega PVR (Xbox) image:
->>>0x20        use     sega-pvr-xbox-dds-header
->>0x10 belong  !0x44445320             Sega PVR image:
->>>0x10        use     sega-pvr-image-header
->>0x08 lelong  x       \b, global index = %u
-
-# Sega GVR header.
-0      name    sega-gvr-image-header
->0x0C  beshort x       %d x
->0x0E  beshort x       %d
-# Image data format.
->0x0B  byte    0       \b, I4
->0x0B  byte    1       \b, I8
->0x0B  byte    2       \b, IA4
->0x0B  byte    3       \b, IA8
->0x0B  byte    4       \b, RGB565
->0x0B  byte    5       \b, RGB5A3
->0x0B  byte    6       \b, ARGB8888
->0x0B  byte    8       \b, CI4
->0x0B  byte    9       \b, CI8
->0x0B  byte    14      \b, DXT1
-
-# Sega GVR image.
-0      string  GVRT    Sega GVR image:
->0x10  use     sega-gvr-image-header
-
-# Sega GVR image with GBIX.
-0      string  GBIX
->0x10  string  GVRT    Sega GVR image:
->>0x10 use     sega-gvr-image-header
->>0x08 belong  x       \b, global index = %u
-
-# Light Field Picture
-# Documentation: http://optics.miloush.net/lytro/TheFileFormat.aspx
-# Typical file extensions: .lfp .lfr .lfx
-
-0      belong  0x894C4650
->4     belong  0x0D0A1A0A
->12    belong  0x00000000      Lytro Light Field Picture
->8     belong  x               \b, version %d
-
-# Type: Vision Research Phantom CINE Format
-# URL: https://www.phantomhighspeed.com/
-# URL2: http://phantomhighspeed.force.com/vriknowledge/servlet/fileField?id=0BEU0000000Cfyk
-# From: Harry Mallon <hjmallon at gmail.com>
-#
-# This has a short "CI" code but the 44 is the size of the struct which is
-# stable
-0      string  CI
->2     leshort 44              Vision Research CINE Video,
->>4    leshort 0               Grayscale,
->>4    leshort 1               JPEG Compressed,
->>4    leshort 2               RAW,
->>6    leshort x               version %d,
->>20   lelong  x               %d frames,
->>48   lelong  x               %dx
->>52   lelong  x               \b%d
-
-# Type: ARRI Raw Image
-# Info: SMPTE RDD30:2014
-# From: Harry Mallon <hjmallon at gmail.com>
-0      string ARRI             ARRI ARI image data,
->4     lelong 0x78563412       little-endian,
->4     lelong 0x12345678       big-endian,
->12    lelong x                version %d,
->20    lelong x                %dx
->24    lelong x                \b%d
-
 #------------------------------------------------------------------------------
 # $File: inform,v 1.5 2009/09/19 16:28:09 christos Exp $
 # inform:  file(1) magic for Inform interactive fiction language
 !:mime text/x-python
 
 # import module [as abrev]
-0      regex   \^import\ [_[:alpha:]]+\ as\ [[:alpha:]][[:space:]]*$ Python script text executable
+0      regex/4096      \^import\ [_[:alpha:]]+\ as\ [[:alpha:]][[:space:]]*$ Python script text executable
 !:mime text/x-python
 
 # comments
 # except: or finally:
 # block
 0      search/4096     try:
->&0    regex   \^[[:space:]]*except.*:$        Python script text executable
+>&0    regex/4096      \^[[:space:]]*except.*:$        Python script text executable
 !:strength + 15
 !:mime text/x-python
 >&0    search/4096     finally:        Python script text executable
 !:mime text/x-python
 
 # def name(*args, **kwargs):
-0      regex    \^[[:space:]]{0,50}def\ {1,50}[_a-zA-Z]{1,100}
+0      regex/4096       \^[[:space:]]{0,50}def\ {1,50}[_a-zA-Z]{1,100}
 >&0    regex    \\(([[:alpha:]*_,\ ]){0,255}\\):$ Python script text executable
 !:strength + 15
 !:mime text/x-python
 # What looks like ruby, but does not have a shebang
 # (modules and such)
 # From: Lubomir Rintel <lkundrak@v3.sk>
-0      regex           \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'
+0      regex/4096              \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'
 >0     regex           def\ [a-z]|\ do$
->>&0   regex           \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
+>>&0   regex/4096              \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
 !:strength + 30
 !:mime text/x-ruby
-0      regex           \^[[:space:]]*(class|module)[[:space:]][A-Z]
+0      regex/4096              \^[[:space:]]*(class|module)[[:space:]][A-Z]
 >0     regex           (modul|includ)e\ [A-Z]|def\ [a-z]
->>&0   regex           \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
+>>&0   regex/4096              \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
 !:strength + 30
 !:mime text/x-ruby
 # Classes with no modules or defs, beats simple ASCII
-0      regex           \^[[:space:]]*(class|module)[[:space:]][A-Z]
->&0    regex   \^[[:space:]]*end([[:space:]]+[;#if].*)?$               Ruby script text
+0      regex/4096              \^[[:space:]]*(class|module)[[:space:]][A-Z]
+>&0    regex/4096      \^[[:space:]]*end([[:space:]]+[;#if].*)?$               Ruby script text
 !:strength + 10
 !:mime text/x-ruby
 # Looks for function definition to balance python magic
 # def name (args)
 # end
-0      regex           \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
->&0    regex           \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
+0      regex/4096              \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
+>&0    regex/4096              \^[[:space:]]*end([[:space:]]+[;#].*)?$         Ruby script text
 !:strength + 10
 !:mime text/x-ruby
 
-0      regex           \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'   Ruby script text
+0      regex/4096              \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'   Ruby script text
 !:mime text/x-ruby
-0 regex        \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+      Ruby script text
+0 regex/4096   \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+      Ruby script text
 !:mime text/x-ruby
 
 #------------------------------------------------------------------------------