Tcl Library Source Code

Check-in [48db90b95b]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:fix bug [4adb7c36a3]
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | pooryorick
Files: files | file ages | folders
SHA3-256: 48db90b95ba1a36bde01ebf1d4cfdce15923a49d45c68205aa8b87f275e103c6
User & Date: pooryorick 2018-08-28 13:48:04.564
References
2018-08-28
13:50 Closed ticket [4adb7c36a3]: TCL fileutil::magic::mimetype not recognising Microsoft documents or mp3 plus 7 other changes artifact: 83c505ac0a user: pooryorick
Context
2021-04-30
22:33
fix bug [4adb7c36a3], fileutil::magic::mimetype not recognising Microsoft documents or mp3. check-in: dc534f06ac user: pooryorick tags: trunk
2018-08-28
17:38
If nothing else, at least indicate whether a file is text or binary check-in: 62cc52d167 user: pooryorick tags: pooryorick
14:12
Pulling changes from trunk check-in: c057f36dc1 user: hypnotoad tags: hypnotoad
13:48
fix bug [4adb7c36a3] check-in: 48db90b95b user: pooryorick tags: pooryorick
04:32
Regen docs. check-in: e6c60e96f5 user: aku tags: pooryorick
Changes
Unified Diff Ignore Whitespace Patch
Changes to modules/fumagic/cfront.tcl.
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# file to compile the magic file from magic(5) into a tcl program
package require fileutil              ; # File processing (input)
package require fileutil::magic::cgen ; # Code generator.
package require fileutil::magic::rt   ; # Runtime (typemap)
package require struct::list          ; # lrepeat.
package require struct::tree          ; #

package provide fileutil::magic::cfront 1.2.0

# ### ### ### ######### ######### #########
## Implementation

namespace eval ::fileutil::magic::cfront {
    # Configuration flag. (De)activate debugging output.
    # This is done during initialization.







|







30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# file to compile the magic file from magic(5) into a tcl program
package require fileutil              ; # File processing (input)
package require fileutil::magic::cgen ; # Code generator.
package require fileutil::magic::rt   ; # Runtime (typemap)
package require struct::list          ; # lrepeat.
package require struct::tree          ; #

package provide fileutil::magic::cfront 1.3.0

# ### ### ### ######### ######### #########
## Implementation

namespace eval ::fileutil::magic::cfront {
    # Configuration flag. (De)activate debugging output.
    # This is done during initialization.
398
399
400
401
402
403
404

405
406

407
408
409
410
411
412








413
414
415
416
417
418
419
420
421
422
	}
    }
    $tree set $node mod [dict keys $res]
}


proc ::fileutil::magic::cfront::parsetypenummod {tree node} {

    # For numeric types, $mod is an operator and $mand is a number
    set line [$tree get $node line]

    set cursor [$tree get $node cursor]
    if {[regexp -start $cursor {\A([-&|^+*/%=])} $line match mod]} {
	advance [string length $match]
	$tree set $node mod $mod
	# {to do} {parse floats?}
	$tree set $node mand [parseint $tree $node] ; # mod operand








    } else {
	$tree set $node mod {}
	$tree set $node mand {} 
    }
}


proc ::fileutil::magic::cfront::parsestringval {tree node} {
    variable floattestops
    variable inttestops







>


>





|
>
>
>
>
>
>
>
>


|







398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
	}
    }
    $tree set $node mod [dict keys $res]
}


proc ::fileutil::magic::cfront::parsetypenummod {tree node} {
    variable typemap
    # For numeric types, $mod is an operator and $mand is a number
    set line [$tree get $node line]
    set type [$tree get $node type]
    set cursor [$tree get $node cursor]
    if {[regexp -start $cursor {\A([-&|^+*/%=])} $line match mod]} {
	advance [string length $match]
	$tree set $node mod $mod
	# {to do} {parse floats?}
	set mand [parseint $tree $node] ; # mod operand
	if {[info exists typemap($type)]} {
	    lassign $typemap($type) dummy scan

	    # the modifier for a numeric type is a number of the same
	    # type
	    binary scan [binary format $scan $mand] $scan mand
	}
	$tree set $node mand $mand 
    } else {
	$tree set $node mod {}
	$tree set $node mand {}
    }
}


proc ::fileutil::magic::cfront::parsestringval {tree node} {
    variable floattestops
    variable inttestops
494
495
496
497
498
499
500

501
502
503
504
505
506
507
    variable floattestops
    variable inttestops
    variable stringtestops
    variable types_numeric_real
    variable types_numeric_all
    variable types_string
    variable types_verbatim

    set type [$tree get $node type]
    if {$type in $types_verbatim} {
	parsetestverbatim $tree $node
	return
    }
    $tree set $node compinvert 0
    set testinvert 0







>







504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
    variable floattestops
    variable inttestops
    variable stringtestops
    variable types_numeric_real
    variable types_numeric_all
    variable types_string
    variable types_verbatim
    variable typemap
    set type [$tree get $node type]
    if {$type in $types_verbatim} {
	parsetestverbatim $tree $node
	return
    }
    $tree set $node compinvert 0
    set testinvert 0
558
559
560
561
562
563
564







565
566
567
568
569
570
571
572
		}
		advance w1 char
	    } else {
		rewind 1
		break
	    }
	}







	$tree set $node val [$parsecmd $tree $node]
    } else {
	parseerror {don't know how to parse the test or this type}
    }
    switch $comp {
	= {
	    set comp ==
	}







>
>
>
>
>
>
>
|







569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
		}
		advance w1 char
	    } else {
		rewind 1
		break
	    }
	}
	set val [$parsecmd $tree $node]
	set scan [lindex $typemap([$tree get $node type]) 1]

	# get value in binary form, then back to numeric
	# this avoids problems with sign, as both values are
	# [binary scan]-converted identically
	binary scan [binary format $scan $val] $scan val
	$tree set $node val $val 
    } else {
	parseerror {don't know how to parse the test or this type}
    }
    switch $comp {
	= {
	    set comp ==
	}
Changes to modules/fumagic/cgen.tcl.
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# ### ### ### ######### ######### #########
## Requirements

package require Tcl 8.4
package require fileutil::magic::rt ; # Runtime core, for Access to the typemap
package require struct::list        ; # Our data structures.

package provide fileutil::magic::cgen 1.2.0

# ### ### ### ######### ######### #########
## Implementation

namespace eval ::fileutil::magic {
    namespace export *
}







|







25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# ### ### ### ######### ######### #########
## Requirements

package require Tcl 8.4
package require fileutil::magic::rt ; # Runtime core, for Access to the typemap
package require struct::list        ; # Our data structures.

package provide fileutil::magic::cgen 1.3.0

# ### ### ### ######### ######### #########
## Implementation

namespace eval ::fileutil::magic {
    namespace export *
}
149
150
151
152
153
154
155


156
157
158
159
160
161
162
    }
    lappend path [$tree index $node]
    $tree set $node path $path

    foreach name {type} {
	set $name [$tree get $node $name]
    }



    # Recursively creates and annotates a node for the specified
    # tests, and its sub-tests (args).


    # generate a proc call type for the type, Numeric or String
    variable ::fileutil::magic::rt::typemap







>
>







149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
    }
    lappend path [$tree index $node]
    $tree set $node path $path

    foreach name {type} {
	set $name [$tree get $node $name]
    }

    puts stderr [list frlaalm [$tree getall $node]]

    # Recursively creates and annotates a node for the specified
    # tests, and its sub-tests (args).


    # generate a proc call type for the type, Numeric or String
    variable ::fileutil::magic::rt::typemap
555
556
557
558
559
560
561




562
563
564
565
566
567
568
569
570
571
	    LessIndent

	    append result ${indent}<\n
	    LessIndent
	    append result ${indent}\}\n
	}
	T {




	    set o [GenerateOffset $tree $node]
	    set mod [$tree get $node mod]
	    append result "${indent}T $o\n"
	}
	Root {
	    foreach child [$tree children $node] {
		lappend result [treegen $tree $child]
		if {[lindex $result end] eq {}} {
		    set result [lreplace $result[set result {}] end end]
		}







>
>
>
>


|







557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
	    LessIndent

	    append result ${indent}<\n
	    LessIndent
	    append result ${indent}\}\n
	}
	T {
	    set desc [$tree get $node desc]
	    if {$desc ne {}} {
		append result "${indent}emit [list $desc]\n"
	    }
	    set o [GenerateOffset $tree $node]
	    set mod [$tree get $node mod]
	    append result "${indent}T $o [list $mod]\n"
	}
	Root {
	    foreach child [$tree children $node] {
		lappend result [treegen $tree $child]
		if {[lindex $result end] eq {}} {
		    set result [lreplace $result[set result {}] end end]
		}
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
		    # See ::fileutil::magic::rt::rtscan
		    if {$scan eq {me}} {
			set scan I
		    }

		    set val [$tree get $child val]

		    if {[string match 0* $val]} {
			set val 0o$val
		    }

		    # get value in binary form, then back to numeric
		    # this avoids problems with sign, as both values are
		    # [binary scan]-converted identically
		    binary scan [binary format $scan $val] $scan val

		    if {[info exists lastval] && $lastval != $val} {
			LessIndent
			append result "${indent}\}\n"
		    } 

		    if {![info exists lastval] || $lastval != $val} {
			append result "${indent}$val \{\n"







<
<
<
<
<
<
<
<
<







600
601
602
603
604
605
606









607
608
609
610
611
612
613
		    # See ::fileutil::magic::rt::rtscan
		    if {$scan eq {me}} {
			set scan I
		    }

		    set val [$tree get $child val]










		    if {[info exists lastval] && $lastval != $val} {
			LessIndent
			append result "${indent}\}\n"
		    } 

		    if {![info exists lastval] || $lastval != $val} {
			append result "${indent}$val \{\n"
Changes to modules/fumagic/filetypes.tcl.
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#
#####

# ### ### ### ######### ######### #########
## Requirements.

package require Tcl 8.6
package require fileutil::magic::rt 2   ; # We need the runtime core v2.

# ### ### ### ######### ######### #########
## Implementation

namespace eval ::fileutil::magic::filetype {
    namespace import ::fileutil::magic::rt::*
}







|







23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#
#####

# ### ### ### ######### ######### #########
## Requirements.

package require Tcl 8.6
package require fileutil::magic::rt 3-

# ### ### ### ######### ######### #########
## Implementation

namespace eval ::fileutil::magic::filetype {
    namespace import ::fileutil::magic::rt::*
}
1052
1053
1054
1055
1056
1057
1058

1059
1060
1061
1062
1063
1064
1065
1066
	
		<
	}
	}}
	37
		{mach-o {U 37 mach-o-cpu [O 0]
	

	T [O [I 8 ubelong 0 + 0 0]]
	
	if {[N belong [O 0] 0 0 {} {} x {}]} {
		>
			emit {\b]}
		<
	}
	}}







>
|







1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
	
		<
	}
	}}
	37
		{mach-o {U 37 mach-o-cpu [O 0]
	
	emit {\b:}
	T [O [I 8 ubelong 0 + 0 0]] {}
	
	if {[N belong [O 0] 0 0 {} {} x {}]} {
		>
			emit {\b]}
		<
	}
	}}
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
	}
	
	if {[N byte [O 2] 0 0 {} {} > 0]} {
		>
			emit {\b, split ROM}
		<
	}
	} sega-master-system-rom-header {switch [Nv byte [O 15] 0 & 240] {
		48 {
			>
				emit {Sega Master System}
				mime application/x-sms-rom
			<
		}
		64 {







|







1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
	}
	
	if {[N byte [O 2] 0 0 {} {} > 0]} {
		>
			emit {\b, split ROM}
		<
	}
	} sega-master-system-rom-header {switch [Nv byte [O 15] 0 & -16] {
		48 {
			>
				emit {Sega Master System}
				mime application/x-sms-rom
			<
		}
		64 {
1567
1568
1569
1570
1571
1572
1573
1574








































1575
1576
1577
1578
1579
1580
1581
	
	if {[N byte [O 0] 0 0 {} {} x {}]} {
		>
			emit {ROM image:}
		<
	}
	
	switch [Nv byte [O 14] 0 & 240] {








































		0 {
			>
				if {[N leshort [O 12] 0 0 {} {} x {}]} {
					>
						emit %04x
					<
				}







|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
	
	if {[N byte [O 0] 0 0 {} {} x {}]} {
		>
			emit {ROM image:}
		<
	}
	
	switch [Nv byte [O 14] 0 & -16] {
		-128 {
			>
				emit 8
			<
		}
		-112 {
			>
				emit 9
			<
		}
		-96 {
			>
				emit 10
			<
		}
		-80 {
			>
				emit 11
			<
		}
		-64 {
			>
				emit 12
			<
		}
		-48 {
			>
				emit 13
			<
		}
		-32 {
			>
				emit 14
			<
		}
		-16 {
			>
				emit 15
			<
		}
		0 {
			>
				if {[N leshort [O 12] 0 0 {} {} x {}]} {
					>
						emit %04x
					<
				}
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
			<
		}
		112 {
			>
				emit 7
			<
		}
		-128 {
			>
				emit 8
			<
		}
		-112 {
			>
				emit 9
			<
		}
		-96 {
			>
				emit 10
			<
		}
		-80 {
			>
				emit 11
			<
		}
		-64 {
			>
				emit 12
			<
		}
		-48 {
			>
				emit 13
			<
		}
		-32 {
			>
				emit 14
			<
		}
		-16 {
			>
				emit 15
			<
		}
	}
	
	if {[N byte [O 14] 0 0 & 240 != 0]} {
		>
			if {[N leshort [O 12] 0 0 {} {} x {}]} {
				>
					emit {\b%04x}
				<
			}
	







<
<
<
<
|
<
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|







1654
1655
1656
1657
1658
1659
1660




1661

1662



































1663
1664
1665
1666
1667
1668
1669
1670
			<
		}
		112 {
			>
				emit 7
			<
		}




	}

	



































	if {[N byte [O 14] 0 0 & -16 != 0]} {
		>
			if {[N leshort [O 12] 0 0 {} {} x {}]} {
				>
					emit {\b%04x}
				<
			}
	
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
	}
	} nintendo-3ds-version-code {if {[N leshort [O 0] 0 0 {} {} x {}]} {
		>
			emit {\b%u,}
		<
	}
	
	switch [Nv leshort [O 0] 0 & 64512] {
		0 {
			>
				emit 0
			<
		}
		1024 {
			>







|







1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
	}
	} nintendo-3ds-version-code {if {[N leshort [O 0] 0 0 {} {} x {}]} {
		>
			emit {\b%u,}
		<
	}
	
	switch [Nv leshort [O 0] 0 & -1024] {
		0 {
			>
				emit 0
			<
		}
		1024 {
			>
2834
2835
2836
2837
2838
2839
2840
2841















2842
2843
2844
2845
2846
2847
2848
				<
			}
	
		<
	}
	}}
	73
		{elf-mips {switch [Nv lelong [O 0] 0 & 4026531840] {















		0 {
			>
				emit MIPS-I
			<
		}
		268435456 {
			>







|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
				<
			}
	
		<
	}
	}}
	73
		{elf-mips {switch [Nv lelong [O 0] 0 & -268435456] {
		-2147483648 {
			>
				emit {MIPS64 rel2}
			<
		}
		-1879048192 {
			>
				emit {MIPS32 rel6}
			<
		}
		-1610612736 {
			>
				emit {MIPS64 rel6}
			<
		}
		0 {
			>
				emit MIPS-I
			<
		}
		268435456 {
			>
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
			<
		}
		1879048192 {
			>
				emit {MIPS32 rel2}
			<
		}
		-2147483648 {
			>
				emit {MIPS64 rel2}
			<
		}
		-1879048192 {
			>
				emit {MIPS32 rel6}
			<
		}
		-1610612736 {
			>
				emit {MIPS64 rel6}
			<
		}
	}
	} elf-sparc {switch [Nv lelong [O 0] 0 & 16776960] {
		256 {
			>
				emit {V8+ Required,}
			<
		}







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







2891
2892
2893
2894
2895
2896
2897















2898
2899
2900
2901
2902
2903
2904
			<
		}
		1879048192 {
			>
				emit {MIPS32 rel2}
			<
		}















	}
	} elf-sparc {switch [Nv lelong [O 0] 0 & 16776960] {
		256 {
			>
				emit {V8+ Required,}
			<
		}
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005





















































































3006
3007
3008
3009
3010
3011
3012
			>
				emit {core file,}
				mime application/x-coredump
			<
		}
	}
	
	if {[N byte [O 7] 0 0 {} {} == 202]} {
		>
			if {[N leshort [O 16] 0 0 {} {} == 65025]} {
				>
					emit executable,
					mime application/x-executable
				<
			}
	
		<
	}
	
	if {[N leshort [O 16] 0 0 {} {} & 65280]} {
		>
			emit processor-specific,
		<
	}
	
	if {[S clear [O 18] 0 {} {} x {}]} {
		>
		<
	}
	
	switch [Nv leshort [O 18] 0 {} {}] {





















































































		0 {
			>
				emit {no machine,}
			<
		}
		1 {
			>







|

|









|











>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
			>
				emit {core file,}
				mime application/x-coredump
			<
		}
	}
	
	if {[N byte [O 7] 0 0 {} {} == -54]} {
		>
			if {[N leshort [O 16] 0 0 {} {} == -511]} {
				>
					emit executable,
					mime application/x-executable
				<
			}
	
		<
	}
	
	if {[N leshort [O 16] 0 0 {} {} & -256]} {
		>
			emit processor-specific,
		<
	}
	
	if {[S clear [O 18] 0 {} {} x {}]} {
		>
		<
	}
	
	switch [Nv leshort [O 18] 0 {} {}] {
		-32233 {
			>
				emit {Ubicom IP2xxx (unofficial),}
			<
		}
		-31630 {
			>
				emit {OpenRISC (obsolete),}
			<
		}
		-28635 {
			>
				emit {Cygnus PowerPC (unofficial),}
			<
		}
		-28634 {
			>
				emit {Alpha (unofficial),}
			<
		}
		-28607 {
			>
				emit {Cygnus M32R (unofficial),}
			<
		}
		-28544 {
			>
				emit {Cygnus V850 (unofficial),}
			<
		}
		-23664 {
			>
				emit {IBM S/390 (obsolete),}
			<
		}
		-21561 {
			>
				emit {Old Xtensa (unofficial),}
			<
		}
		-21179 {
			>
				emit {xstormy16 (unofficial),}
			<
		}
		-17749 {
			>
				emit {Old MicroBlaze (unofficial),,}
			<
		}
		-16657 {
			>
				emit {Cygnus MN10300 (unofficial),}
			<
		}
		-8531 {
			>
				emit {Cygnus MN10200 (unofficial),}
			<
		}
		-4083 {
			>
				emit {Toshiba MeP (unofficial),}
			<
		}
		-336 {
			>
				emit {Renesas M32C (unofficial),}
			<
		}
		-326 {
			>
				emit {Vitesse IQ2000 (unofficial),}
			<
		}
		-325 {
			>
				emit {NIOS (unofficial),}
			<
		}
		-275 {
			>
				emit {Moxie (unofficial),}
			<
		}
		0 {
			>
				emit {no machine,}
			<
		}
		1 {
			>
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
			<
		}
		40 {
			>
				emit ARM,
				if {[N byte [O 4] 0 0 {} {} == 1]} {
					>
						switch [Nv lelong [O 36] 0 & 4278190080] {
							67108864 {
								>
									emit EABI4
								<
							}
							83886080 {
								>







|







3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
			<
		}
		40 {
			>
				emit ARM,
				if {[N byte [O 4] 0 0 {} {} == 1]} {
					>
						switch [Nv lelong [O 36] 0 & -16777216] {
							67108864 {
								>
									emit EABI4
								<
							}
							83886080 {
								>
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
			<
		}
		30326 {
			>
				emit {Cygnus D30V (unofficial),}
			<
		}
		-32233 {
			>
				emit {Ubicom IP2xxx (unofficial),}
			<
		}
		-31630 {
			>
				emit {OpenRISC (obsolete),}
			<
		}
		-28635 {
			>
				emit {Cygnus PowerPC (unofficial),}
			<
		}
		-28634 {
			>
				emit {Alpha (unofficial),}
			<
		}
		-28607 {
			>
				emit {Cygnus M32R (unofficial),}
			<
		}
		-28544 {
			>
				emit {Cygnus V850 (unofficial),}
			<
		}
		-23664 {
			>
				emit {IBM S/390 (obsolete),}
			<
		}
		-21561 {
			>
				emit {Old Xtensa (unofficial),}
			<
		}
		-21179 {
			>
				emit {xstormy16 (unofficial),}
			<
		}
		-17749 {
			>
				emit {Old MicroBlaze (unofficial),,}
			<
		}
		-16657 {
			>
				emit {Cygnus MN10300 (unofficial),}
			<
		}
		-8531 {
			>
				emit {Cygnus MN10200 (unofficial),}
			<
		}
		-4083 {
			>
				emit {Toshiba MeP (unofficial),}
			<
		}
		-336 {
			>
				emit {Renesas M32C (unofficial),}
			<
		}
		-326 {
			>
				emit {Vitesse IQ2000 (unofficial),}
			<
		}
		-325 {
			>
				emit {NIOS (unofficial),}
			<
		}
		-275 {
			>
				emit {Moxie (unofficial),}
			<
		}
	}
	
	if {[D [O 18]]} {
		>
			if {[N leshort [O 18] 0 0 {} {} x {}]} {
				>
					emit {*unknown arch 0x%x*}







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







4094
4095
4096
4097
4098
4099
4100





















































































4101
4102
4103
4104
4105
4106
4107
			<
		}
		30326 {
			>
				emit {Cygnus D30V (unofficial),}
			<
		}





















































































	}
	
	if {[D [O 18]]} {
		>
			if {[N leshort [O 18] 0 0 {} {} x {}]} {
				>
					emit {*unknown arch 0x%x*}
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
			}
	
		<
	}
	} partition-entry {if {[N ubyte [O 4] 0 0 {} {} > 0]} {
		>
			emit {\b; partition}
			if {[N leshort [O 64] 0 0 {} {} == 43605]} {
				>
					emit 1
				<
			}
	
			if {[N leshort [O 48] 0 0 {} {} == 43605]} {
				>
					emit 2
				<
			}
	
			if {[N leshort [O 32] 0 0 {} {} == 43605]} {
				>
					emit 3
				<
			}
	
			if {[N leshort [O 16] 0 0 {} {} == 43605]} {
				>
					emit 4
				<
			}
	
			if {[N ubyte [O 4] 0 0 {} {} x {}]} {
				>







|





|





|





|







5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
			}
	
		<
	}
	} partition-entry {if {[N ubyte [O 4] 0 0 {} {} > 0]} {
		>
			emit {\b; partition}
			if {[N leshort [O 64] 0 0 {} {} == -21931]} {
				>
					emit 1
				<
			}
	
			if {[N leshort [O 48] 0 0 {} {} == -21931]} {
				>
					emit 2
				<
			}
	
			if {[N leshort [O 32] 0 0 {} {} == -21931]} {
				>
					emit 3
				<
			}
	
			if {[N leshort [O 16] 0 0 {} {} == -21931]} {
				>
					emit 4
				<
			}
	
			if {[N ubyte [O 4] 0 0 {} {} x {}]} {
				>
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
			}
	
			mime application/x-iso9660-image
			ext iso/udf
		<
	}
	
	if {[N leshort [O 510] 0 0 {} {} == 43605]} {
		>
			emit {(DOS/MBR boot sector)}
		<
	}
	
	if {[S string [O 32808] 0 T {} > \0]} {
		>
			emit '%s'
		<
	}
	
	if {[S string [O 34816] 0 {} {} eq \000CD001\001EL\ TORITO\ SPECIFICATION]} {
		>
			emit (bootable)
		<
	}
	}}
	81
		{swf-details {if {[S string [O 0] 0 {} {} eq F]} {
		>
			if {[N byte [O 8] 0 0 & 253 == 8]} {
				>
					emit {Macromedia Flash data}
					if {[N byte [O 3] 0 0 {} {} x {}]} {
						>
							emit {\b, version %d}
						<
					}
	
					mime application/x-shockwave-flash
				<
			}
	
			if {[N byte [O 8] 0 0 & 254 == 16]} {
				>
					emit {Macromedia Flash data}
					if {[N byte [O 3] 0 0 {} {} x {}]} {
						>
							emit {\b, version %d}
						<
					}







|




















|












|







5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
			}
	
			mime application/x-iso9660-image
			ext iso/udf
		<
	}
	
	if {[N leshort [O 510] 0 0 {} {} == -21931]} {
		>
			emit {(DOS/MBR boot sector)}
		<
	}
	
	if {[S string [O 32808] 0 T {} > \0]} {
		>
			emit '%s'
		<
	}
	
	if {[S string [O 34816] 0 {} {} eq \000CD001\001EL\ TORITO\ SPECIFICATION]} {
		>
			emit (bootable)
		<
	}
	}}
	81
		{swf-details {if {[S string [O 0] 0 {} {} eq F]} {
		>
			if {[N byte [O 8] 0 0 & -3 == 8]} {
				>
					emit {Macromedia Flash data}
					if {[N byte [O 3] 0 0 {} {} x {}]} {
						>
							emit {\b, version %d}
						<
					}
	
					mime application/x-shockwave-flash
				<
			}
	
			if {[N byte [O 8] 0 0 & -2 == 16]} {
				>
					emit {Macromedia Flash data}
					if {[N byte [O 3] 0 0 {} {} x {}]} {
						>
							emit {\b, version %d}
						<
					}
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
						<
					}
	
					mime application/x-shockwave-flash
				<
			}
	
			if {[N beshort [O 8] 0 0 & 65415 == 8192]} {
				>
					emit {Macromedia Flash data}
					if {[N byte [O 3] 0 0 {} {} x {}]} {
						>
							emit {\b, version %d}
						<
					}
	
					mime application/x-shockwave-flash
				<
			}
	
			if {[N beshort [O 8] 0 0 & 65504 == 12288]} {
				>
					emit {Macromedia Flash data}
					if {[N byte [O 3] 0 0 {} {} x {}]} {
						>
							emit {\b, version %d}
						<
					}







|












|







5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
						<
					}
	
					mime application/x-shockwave-flash
				<
			}
	
			if {[N beshort [O 8] 0 0 & -121 == 8192]} {
				>
					emit {Macromedia Flash data}
					if {[N byte [O 3] 0 0 {} {} x {}]} {
						>
							emit {\b, version %d}
						<
					}
	
					mime application/x-shockwave-flash
				<
			}
	
			if {[N beshort [O 8] 0 0 & -32 == 12288]} {
				>
					emit {Macromedia Flash data}
					if {[N byte [O 3] 0 0 {} {} x {}]} {
						>
							emit {\b, version %d}
						<
					}
5714
5715
5716
5717
5718
5719
5720

5721
5722
5723
5724
5725
5726
5727
5728
	
			if {[S string [O 0] 0 {} {} x {}]} {
				>
					emit '%-.56s'
				<
			}
	

			T [O [I 56 long 0 + 0 0]]
	
		<
	}
	}}
	98
		{gpt-mbr-type {if {[N ubyte [O 450] 0 0 {} {} == 238]} {
		>







>
|







5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
	
			if {[S string [O 0] 0 {} {} x {}]} {
				>
					emit '%-.56s'
				<
			}
	
			emit {\b: }
			T [O [I 56 long 0 + 0 0]] {}
	
		<
	}
	}}
	98
		{gpt-mbr-type {if {[N ubyte [O 450] 0 0 {} {} == 238]} {
		>
6693
6694
6695
6696
6697
6698
6699

























6700
6701
6702
6703
6704
6705
6706
		>
			emit {\b, direntries=%d}
		<
	}
	
	U 111 tiff_entry [O 2]
	} tiff_entry {switch [Nv leshort [O 0] 0 {} {}] {

























		254 {
			>
				U 111 tiff_entry [O 12]
	
			<
		}
		256 {







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
		>
			emit {\b, direntries=%d}
		<
	}
	
	U 111 tiff_entry [O 2]
	} tiff_entry {switch [Nv leshort [O 0] 0 {} {}] {
		-32104 {
			>
				if {[S string [O [I 8 ulelong 0 + 0 0]] 0 {} {} x {}]} {
					>
						emit {\b, copyright=%s}
					<
				}
	
				U 111 tiff_entry [O 12]
	
			<
		}
		-30871 {
			>
				U 111 tiff_entry [O 12]
	
			<
		}
		-30683 {
			>
				emit {\b, GPS-Data}
				U 111 tiff_entry [O 12]
	
			<
		}
		254 {
			>
				U 111 tiff_entry [O 12]
	
			<
		}
		256 {
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
		}
		259 {
			>
				if {[N lelong [O 4] 0 0 {} {} == 1]} {
					>
						emit {\b, compression=}
						switch [Nv leshort [O 8] 0 {} {}] {
							1 {
								>
									emit {\bnone}
								<
							}
							2 {
								>
									emit {\bhuffman}
								<
							}
							3 {
								>
									emit {\bbi-level group 3}
								<
							}
							4 {
								>
									emit {\bbi-level group 4}
								<
							}
							5 {
								>
									emit {\bLZW}
								<
							}
							6 {
								>
									emit {\bJPEG (old)}
								<
							}
							7 {
								>
									emit {\bJPEG}
								<
							}
							8 {
								>
									emit {\bdeflate}
								<
							}
							9 {
								>
									emit {\bJBIG, ITU-T T.85}
								<
							}
							10 {
								>
									emit {\bJBIG, ITU-T T.43}
								<
							}
							32766 {
								>
									emit {\bNeXT RLE 2-bit}
								<
							}
							-32763 {
								>
									emit {\bPackBits (Macintosh RLE)}
								<
							}
							-32727 {
								>







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







6778
6779
6780
6781
6782
6783
6784























































6785
6786
6787
6788
6789
6790
6791
		}
		259 {
			>
				if {[N lelong [O 4] 0 0 {} {} == 1]} {
					>
						emit {\b, compression=}
						switch [Nv leshort [O 8] 0 {} {}] {























































							-32763 {
								>
									emit {\bPackBits (Macintosh RLE)}
								<
							}
							-32727 {
								>
6860
6861
6862
6863
6864
6865
6866























































6867
6868
6869
6870
6871
6872
6873
									emit {\bJPEG2000}
								<
							}
							-30823 {
								>
									emit {\bNikon NEF Compressed}
								<























































							}
						}
	
						if {[D [O 8]]} {
							>
								if {[N leshort [O 8] 0 0 {} {} x {}]} {
									>







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
									emit {\bJPEG2000}
								<
							}
							-30823 {
								>
									emit {\bNikon NEF Compressed}
								<
							}
							1 {
								>
									emit {\bnone}
								<
							}
							2 {
								>
									emit {\bhuffman}
								<
							}
							3 {
								>
									emit {\bbi-level group 3}
								<
							}
							4 {
								>
									emit {\bbi-level group 4}
								<
							}
							5 {
								>
									emit {\bLZW}
								<
							}
							6 {
								>
									emit {\bJPEG (old)}
								<
							}
							7 {
								>
									emit {\bJPEG}
								<
							}
							8 {
								>
									emit {\bdeflate}
								<
							}
							9 {
								>
									emit {\bJBIG, ITU-T T.85}
								<
							}
							10 {
								>
									emit {\bJBIG, ITU-T T.43}
								<
							}
							32766 {
								>
									emit {\bNeXT RLE 2-bit}
								<
							}
						}
	
						if {[D [O 8]]} {
							>
								if {[N leshort [O 8] 0 0 {} {} x {}]} {
									>
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
			>
				U 111 tiff_entry [O 12]
	
			<
		}
		532 {
			>
				U 111 tiff_entry [O 12]
	
			<
		}
		-32104 {
			>
				if {[S string [O [I 8 ulelong 0 + 0 0]] 0 {} {} x {}]} {
					>
						emit {\b, copyright=%s}
					<
				}
	
				U 111 tiff_entry [O 12]
	
			<
		}
		-30871 {
			>
				U 111 tiff_entry [O 12]
	
			<
		}
		-30683 {
			>
				emit {\b, GPS-Data}
				U 111 tiff_entry [O 12]
	
			<
		}
	}
	} png-ihdr {if {[N belong [O 0] 0 0 {} {} x {}]} {
		>







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







7183
7184
7185
7186
7187
7188
7189

























7190
7191
7192
7193
7194
7195
7196
			>
				U 111 tiff_entry [O 12]
	
			<
		}
		532 {
			>

























				U 111 tiff_entry [O 12]
	
			<
		}
	}
	} png-ihdr {if {[N belong [O 0] 0 0 {} {} x {}]} {
		>
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
			<
		}
		-31 {
			>
				if {[S string [O 4] 0 {} {} eq Exif]} {
					>
						emit {\b, Exif Standard: [}
						T [O 10]
	
						if {[S string [O 10] 0 {} {} x {}]} {
							>
								emit {\b]}
							<
						}
	







|







8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
			<
		}
		-31 {
			>
				if {[S string [O 4] 0 {} {} eq Exif]} {
					>
						emit {\b, Exif Standard: [}
						T [O 10] r
	
						if {[S string [O 10] 0 {} {} x {}]} {
							>
								emit {\b]}
							<
						}
	
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
					<
				}
	
			<
		}
	}
	
	if {[N beshort [O 0] 0 0 & 65504 == 65504]} {
		>
			U 120 jpeg_segment [O [I 2 ubeshort 0 + 0 2]]
	
		<
	}
	
	if {[N beshort [O 0] 0 0 & 65488 == 65488]} {
		>
			if {[N beshort [O 0] 0 0 & 65504 != 65504]} {
				>
					U 120 jpeg_segment [O [I 2 ubeshort 0 + 0 2]]
	
				<
			}
	
		<







|






|

|







8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
					<
				}
	
			<
		}
	}
	
	if {[N beshort [O 0] 0 0 & -32 == -32]} {
		>
			U 120 jpeg_segment [O [I 2 ubeshort 0 + 0 2]]
	
		<
	}
	
	if {[N beshort [O 0] 0 0 & -48 == -48]} {
		>
			if {[N beshort [O 0] 0 0 & -32 != -32]} {
				>
					U 120 jpeg_segment [O [I 2 ubeshort 0 + 0 2]]
	
				<
			}
	
		<
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
						emit {64-bit architecture=%d}
					<
				}
	
			<
		}
	}
	} mach-o-be {if {[N byte [O 0] 0 0 {} {} == 207]} {
		>
			emit 64-bit
		<
	}
	
	U 135 mach-o-cpu [O 4]
	







|







9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
9553
9554
						emit {64-bit architecture=%d}
					<
				}
	
			<
		}
	}
	} mach-o-be {if {[N byte [O 0] 0 0 {} {} == -49]} {
		>
			emit 64-bit
		<
	}
	
	U 135 mach-o-cpu [O 4]
	
9853
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866
9867
	
	if {[N byte [O 73] 0 0 {} {} & 64]} {
		>
			emit {\b, invisible}
		<
	}
	
	if {[N byte [O 73] 0 0 {} {} & 128]} {
		>
			emit {\b, locked}
		<
	}
	
	if {[N ubeshort [O 79] 0 0 {} {} != 0]} {
		>







|







9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866
9867
9868
9869
	
	if {[N byte [O 73] 0 0 {} {} & 64]} {
		>
			emit {\b, invisible}
		<
	}
	
	if {[N byte [O 73] 0 0 {} {} & -128]} {
		>
			emit {\b, locked}
		<
	}
	
	if {[N ubeshort [O 79] 0 0 {} {} != 0]} {
		>
9950
9951
9952
9953
9954
9955
9956
9957
9958
9959
9960
9961
9962
9963
9964
			emit {"%s"}
		<
	}
	
	if {[N ubelong [O 83] 0 0 {} {} != 0]} {
		>
			emit {\b }
			T [O 128]
	
		<
	}
	
	if {[N ubelong [O 87] 0 0 {} {} != 0]} {
		>
			if {[N ubelong [O 83] 0 0 + 128 x {}]} {







|







9952
9953
9954
9955
9956
9957
9958
9959
9960
9961
9962
9963
9964
9965
9966
			emit {"%s"}
		<
	}
	
	if {[N ubelong [O 83] 0 0 {} {} != 0]} {
		>
			emit {\b }
			T [O 128] {}
	
		<
	}
	
	if {[N ubelong [O 87] 0 0 {} {} != 0]} {
		>
			if {[N ubelong [O 83] 0 0 + 128 x {}]} {
9972
9973
9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
					emit {%u bytes}
				<
			}
	
			if {[N ubequad [O [I 83 ubeshort 0 + 0 128]] 0 0 {} {} x {}]} {
				>
					emit {resource }
					T [R [O -8]]
	
				<
			}
	
		<
	}
	} apple-type {if {[S string [O 0] 0 {} {} eq 8BIM]} {







|







9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
					emit {%u bytes}
				<
			}
	
			if {[N ubequad [O [I 83 ubeshort 0 + 0 128]] 0 0 {} {} x {}]} {
				>
					emit {resource }
					T [R [O -8]] {}
	
				<
			}
	
		<
	}
	} apple-type {if {[S string [O 0] 0 {} {} eq 8BIM]} {
10735
10736
10737
10738
10739
10740
10741
10742
10743
10744
10745
10746
10747
10748
10749
		>
			if {[N ubyte [O 10] 0 0 {} {} < 2]} {
				>
					if {[N ubyte [O 11] 0 0 {} {} < 2]} {
						>
							if {[N ubyte [O 12] 0 0 {} {} < 4]} {
								>
									if {[N lefloat [O 17] 0 0 {} {} > 0.0001]} {
										>
											emit {DIY-Thermocam raw data}
										<
									}
	
								<
							}







|







10737
10738
10739
10740
10741
10742
10743
10744
10745
10746
10747
10748
10749
10750
10751
		>
			if {[N ubyte [O 10] 0 0 {} {} < 2]} {
				>
					if {[N ubyte [O 11] 0 0 {} {} < 2]} {
						>
							if {[N ubyte [O 12] 0 0 {} {} < 4]} {
								>
									if {[N lefloat [O 17] 0 0 {} {} > 9.999999747378752e-5]} {
										>
											emit {DIY-Thermocam raw data}
										<
									}
	
								<
							}
11022
11023
11024
11025
11026
11027
11028
11029
11030
11031
11032
11033
11034
11035
11036
	
	if {[S string [O 6] 0 {} {} eq SFX\ of\ LHarc]} {
		>
			emit {\b, %s}
		<
	}
	
	if {[N leshort [O 510] 0 0 {} {} == 43605]} {
		>
			emit {\b, boot code}
		<
	}
	
	if {[S string [O 85] 0 {} {} eq UPX]} {
		>







|







11024
11025
11026
11027
11028
11029
11030
11031
11032
11033
11034
11035
11036
11037
11038
	
	if {[S string [O 6] 0 {} {} eq SFX\ of\ LHarc]} {
		>
			emit {\b, %s}
		<
	}
	
	if {[N leshort [O 510] 0 0 {} {} == -21931]} {
		>
			emit {\b, boot code}
		<
	}
	
	if {[S string [O 85] 0 {} {} eq UPX]} {
		>
11205
11206
11207
11208
11209
11210
11211

11212
11213
11214
11215
11216
11217
11218
11219
		>
			emit {\b, %d colors}
		<
	}
	
	if {[N ubelong [O [I 12 ulelong 0 + 0 0]] 0 0 {} {} == 2303741511]} {
		>

			T [R [O -4]]
	
		<
	}
	
	if {[N ubelong [O [I 12 ulelong 0 + 0 0]] 0 0 {} {} != 2303741511]} {
		>
		<







>
|







11207
11208
11209
11210
11211
11212
11213
11214
11215
11216
11217
11218
11219
11220
11221
11222
		>
			emit {\b, %d colors}
		<
	}
	
	if {[N ubelong [O [I 12 ulelong 0 + 0 0]] 0 0 {} {} == 2303741511]} {
		>
			emit {\b with}
			T [R [O -4]] {}
	
		<
	}
	
	if {[N ubelong [O [I 12 ulelong 0 + 0 0]] 0 0 {} {} != 2303741511]} {
		>
		<
11376
11377
11378
11379
11380
11381
11382
11383










11384
11385
11386
11387
11388
11389
11390
11391
11392
11393
11394
11395
11396
11397
11398
11399
11400
11401
11402
11403
11404
11405
11406
11407
11408
11409
11410
		<
	}
	}}
	199
		{pgp {switch [Nv byte [O 0] 0 {} {}] {
		48 {
			>
				switch [Nv byte [O 1] 0 & 192] {










					0 {
						>
							emit {Unused [0%x]}
						<
					}
					64 {
						>
							emit {User Attribute}
						<
					}
					-128 {
						>
							emit {Sym. Encrypted and Integrity Protected Data}
						<
					}
					-64 {
						>
							emit {Modification Detection Code}
						<
					}
				}
	
			<
		}
		103 {
			>
				emit {Reserved (old)}







|
>
>
>
>
>
>
>
>
>
>










<
<
<
<
<
<
<
<
<
<







11379
11380
11381
11382
11383
11384
11385
11386
11387
11388
11389
11390
11391
11392
11393
11394
11395
11396
11397
11398
11399
11400
11401
11402
11403
11404
11405
11406










11407
11408
11409
11410
11411
11412
11413
		<
	}
	}}
	199
		{pgp {switch [Nv byte [O 0] 0 {} {}] {
		48 {
			>
				switch [Nv byte [O 1] 0 & -64] {
					-128 {
						>
							emit {Sym. Encrypted and Integrity Protected Data}
						<
					}
					-64 {
						>
							emit {Modification Detection Code}
						<
					}
					0 {
						>
							emit {Unused [0%x]}
						<
					}
					64 {
						>
							emit {User Attribute}
						<
					}










				}
	
			<
		}
		103 {
			>
				emit {Reserved (old)}
11483
11484
11485
11486
11487
11488
11489
11490
11491
11492
11493
11494
11495
11496
11497
11498
11499
11500
11501
11502
11503
11504
11505
11506
11507
11508
11509
11510










11511
11512
11513
11514
11515
11516
11517
11518
11519
11520
11521
11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
11532
11533
11534
11535
11536
11537










11538
11539
11540
11541
11542
11543
11544
11545
11546
11547
11548
11549
11550
11551
11552
11553
11554
11555
11556
11557
11558
11559
11560
11561
11562
11563
11564










11565
11566
11567
11568
11569
11570
11571
11572
11573
11574
11575
11576
11577
11578
11579
11580
11581
11582
11583
11584
11585
11586
11587
11588
11589
11590










11591
11592
11593
11594
11595
11596
11597
		118 {
			>
				emit {Unused (old)}
			<
		}
		119 {
			>
				switch [Nv byte [O 1] 0 & 192] {
					0 {
						>
							emit Reserved
						<
					}
					64 {
						>
							emit {Public-Key Encrypted Session Key}
						<
					}
					-128 {
						>
							emit Signature
						<
					}
					-64 {
						>
							emit {Symmetric-Key Encrypted Session Key}
						<
					}










				}
	
			<
		}
		120 {
			>
				switch [Nv byte [O 1] 0 & 192] {
					0 {
						>
							emit {One-Pass Signature}
						<
					}
					64 {
						>
							emit Secret-Key
						<
					}
					-128 {
						>
							emit Public-Key
						<
					}
					-64 {
						>
							emit Secret-Subkey
						<
					}










				}
	
			<
		}
		121 {
			>
				switch [Nv byte [O 1] 0 & 192] {
					0 {
						>
							emit {Compressed Data}
						<
					}
					64 {
						>
							emit {Symmetrically Encrypted Data}
						<
					}
					-128 {
						>
							emit Marker
						<
					}
					-64 {
						>
							emit {Literal Data}
						<
					}










				}
	
			<
		}
		122 {
			>
				switch [Nv byte [O 1] 0 & 192] {
					0 {
						>
							emit Trust
						<
					}
					64 {
						>
							emit {User ID}
						<
					}
					-128 {
						>
							emit Public-Subkey
						<
					}
					-64 {
						>
							emit {Unused [z%x]}
						<










					}
				}
	
			<
		}
	}
	} crypto {switch [Nv byte [O 0] 0 {} {}] {







|
<
<
<
<
<
<
<
<
<
<










>
>
>
>
>
>
>
>
>
>






|
<
<
<
<
<
<
<
<
<
<










>
>
>
>
>
>
>
>
>
>






|
<
<
<
<
<
<
<
<
<
<










>
>
>
>
>
>
>
>
>
>






|
<
<
<
<
<
<
<
<
<
<









>
>
>
>
>
>
>
>
>
>







11486
11487
11488
11489
11490
11491
11492
11493










11494
11495
11496
11497
11498
11499
11500
11501
11502
11503
11504
11505
11506
11507
11508
11509
11510
11511
11512
11513
11514
11515
11516
11517
11518
11519
11520










11521
11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
11532
11533
11534
11535
11536
11537
11538
11539
11540
11541
11542
11543
11544
11545
11546
11547










11548
11549
11550
11551
11552
11553
11554
11555
11556
11557
11558
11559
11560
11561
11562
11563
11564
11565
11566
11567
11568
11569
11570
11571
11572
11573
11574










11575
11576
11577
11578
11579
11580
11581
11582
11583
11584
11585
11586
11587
11588
11589
11590
11591
11592
11593
11594
11595
11596
11597
11598
11599
11600
		118 {
			>
				emit {Unused (old)}
			<
		}
		119 {
			>
				switch [Nv byte [O 1] 0 & -64] {










					-128 {
						>
							emit Signature
						<
					}
					-64 {
						>
							emit {Symmetric-Key Encrypted Session Key}
						<
					}
					0 {
						>
							emit Reserved
						<
					}
					64 {
						>
							emit {Public-Key Encrypted Session Key}
						<
					}
				}
	
			<
		}
		120 {
			>
				switch [Nv byte [O 1] 0 & -64] {










					-128 {
						>
							emit Public-Key
						<
					}
					-64 {
						>
							emit Secret-Subkey
						<
					}
					0 {
						>
							emit {One-Pass Signature}
						<
					}
					64 {
						>
							emit Secret-Key
						<
					}
				}
	
			<
		}
		121 {
			>
				switch [Nv byte [O 1] 0 & -64] {










					-128 {
						>
							emit Marker
						<
					}
					-64 {
						>
							emit {Literal Data}
						<
					}
					0 {
						>
							emit {Compressed Data}
						<
					}
					64 {
						>
							emit {Symmetrically Encrypted Data}
						<
					}
				}
	
			<
		}
		122 {
			>
				switch [Nv byte [O 1] 0 & -64] {










					-128 {
						>
							emit Public-Subkey
						<
					}
					-64 {
						>
							emit {Unused [z%x]}
						<
					}
					0 {
						>
							emit Trust
						<
					}
					64 {
						>
							emit {User ID}
						<
					}
				}
	
			<
		}
	}
	} crypto {switch [Nv byte [O 0] 0 {} {}] {
12752
12753
12754
12755
12756
12757
12758
12759
12760
12761
12762
12763
12764
12765
12766
12767
12768
12769
12770
12771
12772
12773
12774
12775
12776
12777
12778
12779
12780
12781
12782
12783
12784
12785
			U 214 riff-walk [R [O [I 4 ulelong 0 + 0 4]]]
	
		<
	}
	
	if {[S string [O 0] 0 {} {} eq VP8]} {
		>
			if {[N byte [O 11] 0 0 {} {} == 157]} {
				>
					if {[N byte [O 12] 0 0 {} {} == 1]} {
						>
							if {[N byte [O 13] 0 0 {} {} == 42]} {
								>
									emit {\b, VP8 encoding}
									if {[N leshort [O 14] 0 0 & 16383 x {}]} {
										>
											emit {\b, %d}
										<
									}
	
									if {[N leshort [O 16] 0 0 & 16383 x {}]} {
										>
											emit {\bx%d, Scaling:}
										<
									}
	
									switch [Nv leshort [O 14] 0 & 49152] {
										0 {
											>
												emit {\b [none]}
											<
											>
												emit {\bx[none]}
											<







|


















|







12755
12756
12757
12758
12759
12760
12761
12762
12763
12764
12765
12766
12767
12768
12769
12770
12771
12772
12773
12774
12775
12776
12777
12778
12779
12780
12781
12782
12783
12784
12785
12786
12787
12788
			U 214 riff-walk [R [O [I 4 ulelong 0 + 0 4]]]
	
		<
	}
	
	if {[S string [O 0] 0 {} {} eq VP8]} {
		>
			if {[N byte [O 11] 0 0 {} {} == -99]} {
				>
					if {[N byte [O 12] 0 0 {} {} == 1]} {
						>
							if {[N byte [O 13] 0 0 {} {} == 42]} {
								>
									emit {\b, VP8 encoding}
									if {[N leshort [O 14] 0 0 & 16383 x {}]} {
										>
											emit {\b, %d}
										<
									}
	
									if {[N leshort [O 16] 0 0 & 16383 x {}]} {
										>
											emit {\bx%d, Scaling:}
										<
									}
	
									switch [Nv leshort [O 14] 0 & -16384] {
										0 {
											>
												emit {\b [none]}
											<
											>
												emit {\bx[none]}
											<
12806
12807
12808
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
12819
12820
12821
12822





12823
12824
12825
12826
12827
12828
12829
											<
											>
												emit {\bx[2]}
											<
										}
									}
	
									switch [Nv byte [O 15] 0 & 128] {
										0 {
											>
												emit {\b, YUV color}
											<
										}
										-128 {
											>
												emit {\b, bad color specification}
											<





										}
									}
	
									switch [Nv byte [O 15] 0 & 64] {
										0 {
											>
												emit {\b, decoders should clamp}







|
<
<
<
<
<




>
>
>
>
>







12809
12810
12811
12812
12813
12814
12815
12816





12817
12818
12819
12820
12821
12822
12823
12824
12825
12826
12827
12828
12829
12830
12831
12832
											<
											>
												emit {\bx[2]}
											<
										}
									}
	
									switch [Nv byte [O 15] 0 & -128] {





										-128 {
											>
												emit {\b, bad color specification}
											<
										}
										0 {
											>
												emit {\b, YUV color}
											<
										}
									}
	
									switch [Nv byte [O 15] 0 & 64] {
										0 {
											>
												emit {\b, decoders should clamp}
12851
12852
12853
12854
12855
12856
12857
12858
12859
12860
12861
12862
12863
12864
12865
12866
12867
12868
12869
12870
12871
12872
12873
12874
12875
12876
12877
12878
12879
12880
12881
12882
12883
	226
		{sereal {if {[N byte [O 4] 0 0 & 15 x {}]} {
		>
			emit {(version %d,}
		<
	}
	
	switch [Nv byte [O 4] 0 & 240] {
		0 {
			>
				emit uncompressed)
			<
		}
		16 {
			>
				emit {compressed with non-incremental Snappy)}
			<
		}
		32 {
			>
				emit {compressed with incremental Snappy)}
			<
		}
	}
	
	if {[N byte [O 4] 0 0 & 240 > 32]} {
		>
			emit {unknown subformat, flag: %d>>4)}
		<
	}
	}}
	235
		{pcap-be {if {[N beshort [O 4] 0 0 {} {} x {}]} {







|

















|







12854
12855
12856
12857
12858
12859
12860
12861
12862
12863
12864
12865
12866
12867
12868
12869
12870
12871
12872
12873
12874
12875
12876
12877
12878
12879
12880
12881
12882
12883
12884
12885
12886
	226
		{sereal {if {[N byte [O 4] 0 0 & 15 x {}]} {
		>
			emit {(version %d,}
		<
	}
	
	switch [Nv byte [O 4] 0 & -16] {
		0 {
			>
				emit uncompressed)
			<
		}
		16 {
			>
				emit {compressed with non-incremental Snappy)}
			<
		}
		32 {
			>
				emit {compressed with incremental Snappy)}
			<
		}
	}
	
	if {[N byte [O 4] 0 0 & -16 > 32]} {
		>
			emit {unknown subformat, flag: %d>>4)}
		<
	}
	}}
	235
		{pcap-be {if {[N beshort [O 4] 0 0 {} {} x {}]} {
13524
13525
13526
13527
13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
13538
13539
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
	
	if {[N ubelong [O 132] 0 0 {} {} x {}]} {
		>
			emit {%u bytes }
		<
	}
	
	T [O [I 128 ubelong 0 + 0 0]]
	
	if {[N ubelong [O 136] 0 0 {} {} x {}]} {
		>
			emit {\b, at 0x%x}
		<
	}
	
	if {[N ubelong [O 140] 0 0 {} {} x {}]} {
		>
			emit {%u bytes }
		<
	}
	
	T [O [I 136 ubelong 0 + 0 0]]
	
	if {[N ubelong [O 144] 0 0 {} {} != 0]} {
		>
			emit {\b, at 0x%x}
			if {[N ubelong [O 148] 0 0 {} {} != 0]} {
				>
					emit {%u bytes}







|













|







13527
13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
13538
13539
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
13553
13554
13555
	
	if {[N ubelong [O 132] 0 0 {} {} x {}]} {
		>
			emit {%u bytes }
		<
	}
	
	T [O [I 128 ubelong 0 + 0 0]] {}
	
	if {[N ubelong [O 136] 0 0 {} {} x {}]} {
		>
			emit {\b, at 0x%x}
		<
	}
	
	if {[N ubelong [O 140] 0 0 {} {} x {}]} {
		>
			emit {%u bytes }
		<
	}
	
	T [O [I 136 ubelong 0 + 0 0]] {}
	
	if {[N ubelong [O 144] 0 0 {} {} != 0]} {
		>
			emit {\b, at 0x%x}
			if {[N ubelong [O 148] 0 0 {} {} != 0]} {
				>
					emit {%u bytes}
13986
13987
13988
13989
13990
13991
13992










































































































































































































13993
13994
13995
13996
13997
13998
13999
		<
	}
	}}

}
proc analyze {} {
	switch [Nv leshort 0 0 {} {}] {










































































































































































































		257 {
			>
				if {[N ulelong 68 0 0 {} {} != 88]} {
					>
						emit {PDP-11 UNIX/RT ldp}
					<
				}







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







13989
13990
13991
13992
13993
13994
13995
13996
13997
13998
13999
14000
14001
14002
14003
14004
14005
14006
14007
14008
14009
14010
14011
14012
14013
14014
14015
14016
14017
14018
14019
14020
14021
14022
14023
14024
14025
14026
14027
14028
14029
14030
14031
14032
14033
14034
14035
14036
14037
14038
14039
14040
14041
14042
14043
14044
14045
14046
14047
14048
14049
14050
14051
14052
14053
14054
14055
14056
14057
14058
14059
14060
14061
14062
14063
14064
14065
14066
14067
14068
14069
14070
14071
14072
14073
14074
14075
14076
14077
14078
14079
14080
14081
14082
14083
14084
14085
14086
14087
14088
14089
14090
14091
14092
14093
14094
14095
14096
14097
14098
14099
14100
14101
14102
14103
14104
14105
14106
14107
14108
14109
14110
14111
14112
14113
14114
14115
14116
14117
14118
14119
14120
14121
14122
14123
14124
14125
14126
14127
14128
14129
14130
14131
14132
14133
14134
14135
14136
14137
14138
14139
14140
14141
14142
14143
14144
14145
14146
14147
14148
14149
14150
14151
14152
14153
14154
14155
14156
14157
14158
14159
14160
14161
14162
14163
14164
14165
14166
14167
14168
14169
14170
14171
14172
14173
14174
14175
14176
14177
14178
14179
14180
14181
14182
14183
14184
14185
14186
14187
14188
14189
14190
14191
14192
14193
14194
14195
14196
14197
14198
14199
14200
14201
14202
14203
14204
		<
	}
	}}

}
proc analyze {} {
	switch [Nv leshort 0 0 {} {}] {
		-13230 {
			>
				emit {RLE image data,}
				if {[N leshort 6 0 0 {} {} x {}]} {
					>
						emit {%d x}
					<
				}
	
				if {[N leshort 8 0 0 {} {} x {}]} {
					>
						emit %d
					<
				}
	
				if {[N leshort 2 0 0 {} {} > 0]} {
					>
						emit {\b, lower left corner: %d}
					<
				}
	
				if {[N leshort 4 0 0 {} {} > 0]} {
					>
						emit {\b, lower right corner: %d}
					<
				}
	
				if {[N byte 10 0 0 & 1 == 1]} {
					>
						emit {\b, clear first}
					<
				}
	
				if {[N byte 10 0 0 & 2 == 2]} {
					>
						emit {\b, no background}
					<
				}
	
				if {[N byte 10 0 0 & 4 == 4]} {
					>
						emit {\b, alpha channel}
					<
				}
	
				if {[N byte 10 0 0 & 8 == 8]} {
					>
						emit {\b, comment}
					<
				}
	
				if {[N byte 11 0 0 {} {} > 0]} {
					>
						emit {\b, %d color channels}
					<
				}
	
				if {[N byte 12 0 0 {} {} > 0]} {
					>
						emit {\b, %d bits per pixel}
					<
				}
	
				if {[N byte 13 0 0 {} {} > 0]} {
					>
						emit {\b, %d color map channels}
					<
				}
	
			<
		}
		-5536 {
			>
				emit {ARJ archive data}
				mime application/x-arj
				if {[N byte 5 0 0 {} {} x {}]} {
					>
						emit {\b, v%d,}
					<
				}
	
				if {[N byte 8 0 0 {} {} & 4]} {
					>
						emit multi-volume,
					<
				}
	
				if {[N byte 8 0 0 {} {} & 16]} {
					>
						emit slash-switched,
					<
				}
	
				if {[N byte 8 0 0 {} {} & 32]} {
					>
						emit backup,
					<
				}
	
				if {[S string 34 0 {} {} x {}]} {
					>
						emit {original name: %s,}
					<
				}
	
				switch [Nv byte 7 0 {} {}] {
					0 {
						>
							emit {os: MS-DOS}
						<
					}
					1 {
						>
							emit {os: PRIMOS}
						<
					}
					2 {
						>
							emit {os: Unix}
						<
					}
					3 {
						>
							emit {os: Amiga}
						<
					}
					4 {
						>
							emit {os: Macintosh}
						<
					}
					5 {
						>
							emit {os: OS/2}
						<
					}
					6 {
						>
							emit {os: Apple ][ GS}
						<
					}
					7 {
						>
							emit {os: Atari ST}
						<
					}
					8 {
						>
							emit {os: NeXT}
						<
					}
					9 {
						>
							emit {os: VAX/VMS}
						<
					}
				}
	
				if {[N byte 3 0 0 {} {} > 0]} {
					>
						emit %d\]
					<
				}
	
			<
		}
		-5247 {
			>
				emit {PRCS packaged project}
			<
		}
		-155 {
			>
				emit {old 16-bit-int little-endian archive}
				if {[S string 2 0 {} {} eq __.SYMDEF]} {
					>
						emit {random library}
					<
				}
	
			<
			>
				emit x.out
				if {[S string 2 0 {} {} eq __.SYMDEF]} {
					>
						emit randomized
					<
				}
	
				if {[N byte 0 0 0 {} {} x {}]} {
					>
						emit archive
					<
				}
	
			<
		}
		-147 {
			>
				emit {very old 16-bit-int little-endian archive}
			<
		}
		257 {
			>
				if {[N ulelong 68 0 0 {} {} != 88]} {
					>
						emit {PDP-11 UNIX/RT ldp}
					<
				}
14452
14453
14454
14455
14456
14457
14458
14459
14460
14461
14462
14463
14464
14465
14466
14467
14468
14469
14470
14471
14472
14473
14474
14475
14476
14477
14478
14479
14480
14481
14482
14483
14484
14485
14486
14487
14488
14489
14490
14491
14492
14493
14494
14495
14496
	
				if {[N leshort 30 0 0 {} {} & 8]} {
					>
						emit fixed-stack
					<
				}
	
				if {[N byte 28 0 0 {} {} & 128]} {
					>
						emit byte-swapped
					<
				}
	
				if {[N byte 28 0 0 {} {} & 64]} {
					>
						emit word-swapped
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit not-stripped
					<
				}
	
				if {[N leshort 30 0 0 {} {} ^ 49152]} {
					>
						emit pre-SysV
					<
				}
	
				if {[N leshort 30 0 0 {} {} & 16384]} {
					>
						emit V2.3
					<
				}
	
				if {[N leshort 30 0 0 {} {} & 32768]} {
					>
						emit V3.0
					<
				}
	
				if {[N byte 28 0 0 {} {} & 4]} {
					>







|

















|











|







14657
14658
14659
14660
14661
14662
14663
14664
14665
14666
14667
14668
14669
14670
14671
14672
14673
14674
14675
14676
14677
14678
14679
14680
14681
14682
14683
14684
14685
14686
14687
14688
14689
14690
14691
14692
14693
14694
14695
14696
14697
14698
14699
14700
14701
	
				if {[N leshort 30 0 0 {} {} & 8]} {
					>
						emit fixed-stack
					<
				}
	
				if {[N byte 28 0 0 {} {} & -128]} {
					>
						emit byte-swapped
					<
				}
	
				if {[N byte 28 0 0 {} {} & 64]} {
					>
						emit word-swapped
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit not-stripped
					<
				}
	
				if {[N leshort 30 0 0 {} {} ^ -16384]} {
					>
						emit pre-SysV
					<
				}
	
				if {[N leshort 30 0 0 {} {} & 16384]} {
					>
						emit V2.3
					<
				}
	
				if {[N leshort 30 0 0 {} {} & -32768]} {
					>
						emit V3.0
					<
				}
	
				if {[N byte 28 0 0 {} {} & 4]} {
					>
14928
14929
14930
14931
14932
14933
14934

























14935
14936





14937




14938
14939
14940
14941
14942





14943





14944


14945






























14946
14947
14948

14949



14950
14951
14952
14953
14954
14955



14956

14957



14958
14959
14960
14961



14962



14963






14964
14965
14966












14967

14968
14969
14970
14971
14972

14973



14974
14975
14976
14977
14978

14979









14980


14981





14982
14983
14984








14985






















14986



14987
14988

14989
14990

14991







14992

14993
14994
14995
14996

14997














14998

14999
15000
15001
15002
15003
15004
15005
















15006
15007
15008
15009


15010
15011



15012
15013
15014
15015










15016
15017



15018
15019
15020

15021



15022
15023
15024
15025
15026











15027














15028


15029













15030
15031
15032
15033





15034
15035
15036
15037
15038
15039
15040
15041
15042
15043
15044
15045
15046
15047
15048
15049
15050
15051
15052
15053
15054
15055
15056
15057
15058
15059
15060
15061
15062
15063
15064
15065
15066
15067
15068
15069
15070
15071
15072
15073
15074
15075
15076
15077
15078
15079
15080
15081
15082
15083
15084
15085
15086
15087




























































15088
15089
15090




15091

15092





























15093

15094
15095
15096
15097
15098
15099
15100
15101
15102
15103
15104
15105
15106
15107
15108
15109
15110
15111
15112
15113
15114
15115
15116
15117
15118
15119
15120
15121
15122
15123
15124
15125
15126
15127
15128
15129
15130
15131
15132
15133
15134
15135
15136












15137
15138






15139




































































15140
15141
15142
15143
15144
15145
15146
						}
	
					<
				}
	
			<
		}

























		-13230 {
			>





				emit {RLE image data,}




				if {[N leshort 6 0 0 {} {} x {}]} {
					>
						emit {%d x}
					<
				}





	





				if {[N leshort 8 0 0 {} {} x {}]} {


					>






























						emit %d
					<
				}

	



				if {[N leshort 2 0 0 {} {} > 0]} {
					>
						emit {\b, lower left corner: %d}
					<
				}
	



				if {[N leshort 4 0 0 {} {} > 0]} {

					>



						emit {\b, lower right corner: %d}
					<
				}
	



				if {[N byte 10 0 0 & 1 == 1]} {



					>






						emit {\b, clear first}
					<
				}












	

				if {[N byte 10 0 0 & 2 == 2]} {
					>
						emit {\b, no background}
					<
				}

	



				if {[N byte 10 0 0 & 4 == 4]} {
					>
						emit {\b, alpha channel}
					<
				}

	









				if {[N byte 10 0 0 & 8 == 8]} {


					>





						emit {\b, comment}
					<
				}








	






















				if {[N byte 11 0 0 {} {} > 0]} {



					>
						emit {\b, %d color channels}

					<
				}

	







				if {[N byte 12 0 0 {} {} > 0]} {

					>
						emit {\b, %d bits per pixel}
					<
				}

	














				if {[N byte 13 0 0 {} {} > 0]} {

					>
						emit {\b, %d color map channels}
					<
				}
	
			<
		}
















		-5536 {
			>
				emit {ARJ archive data}
				mime application/x-arj


				if {[N byte 5 0 0 {} {} x {}]} {
					>



						emit {\b, v%d,}
					<
				}
	










				if {[N byte 8 0 0 {} {} & 4]} {
					>



						emit multi-volume,
					<
				}

	



				if {[N byte 8 0 0 {} {} & 16]} {
					>
						emit slash-switched,
					<
				}











	














				if {[N byte 8 0 0 {} {} & 32]} {


					>













						emit backup,
					<
				}
	





				if {[S string 34 0 {} {} x {}]} {
					>
						emit {original name: %s,}
					<
				}
	
				switch [Nv byte 7 0 {} {}] {
					0 {
						>
							emit {os: MS-DOS}
						<
					}
					1 {
						>
							emit {os: PRIMOS}
						<
					}
					2 {
						>
							emit {os: Unix}
						<
					}
					3 {
						>
							emit {os: Amiga}
						<
					}
					4 {
						>
							emit {os: Macintosh}
						<
					}
					5 {
						>
							emit {os: OS/2}
						<
					}
					6 {
						>
							emit {os: Apple ][ GS}
						<
					}
					7 {
						>
							emit {os: Atari ST}
						<
					}
					8 {
						>
							emit {os: NeXT}
						<
					}
					9 {
						>




























































							emit {os: VAX/VMS}
						<
					}




				}

	





























				if {[N byte 3 0 0 {} {} > 0]} {

					>
						emit %d\]
					<
				}
	
			<
		}
		-5247 {
			>
				emit {PRCS packaged project}
			<
		}
		-155 {
			>
				emit {old 16-bit-int little-endian archive}
				if {[S string 2 0 {} {} eq __.SYMDEF]} {
					>
						emit {random library}
					<
				}
	
			<
			>
				emit x.out
				if {[S string 2 0 {} {} eq __.SYMDEF]} {
					>
						emit randomized
					<
				}
	
				if {[N byte 0 0 0 {} {} x {}]} {
					>
						emit archive
					<
				}
	
			<
		}
		-147 {
			>
				emit {very old 16-bit-int little-endian archive}
			<
		}












	}
	






	switch [Nv beshort 0 0 {} {}] {




































































		1 {
			>
				switch [Nv beshort 2 0 {} {}] {
					8 {
						>
							U 111 gem_info 0
	







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
>
>
>
>
>
|
>
>
>
>
|
|
|
|
|
>
>
>
>
>
|
>
>
>
>
>
|
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
|
>
|
>
>
>
|
|
|
|
|

>
>
>
|
>

>
>
>
|
|
|

>
>
>
|
>
>
>
|
>
>
>
>
>
>
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
|
>
|
|
|
|
|
>
|
>
>
>
|
|
|
|
|
>
|
>
>
>
>
>
>
>
>
>
|
>
>
|
>
>
>
>
>
|
|
|
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>
|
|
>
|
|
>
|
>
>
>
>
>
>
>
|
>
|
|
|
|
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>

|





>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|

|
<
>
>
|
|
>
>
>
|



>
>
>
>
>
>
>
>
>
>
|

>
>
>
|
|
|
>
|
>
>
>
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
|



>
>
>
>
>
|

|



|


|




|




|




|




|




|




|




|




|




>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|


>
>
>
>
|
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>

|





|

|




|






<
<
<
<
<
<
<
<
<
<
<
<
<
<
<




|


>
>
>
>
>
>
>
>
>
>
>
>
|

>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







15133
15134
15135
15136
15137
15138
15139
15140
15141
15142
15143
15144
15145
15146
15147
15148
15149
15150
15151
15152
15153
15154
15155
15156
15157
15158
15159
15160
15161
15162
15163
15164
15165
15166
15167
15168
15169
15170
15171
15172
15173
15174
15175
15176
15177
15178
15179
15180
15181
15182
15183
15184
15185
15186
15187
15188
15189
15190
15191
15192
15193
15194
15195
15196
15197
15198
15199
15200
15201
15202
15203
15204
15205
15206
15207
15208
15209
15210
15211
15212
15213
15214
15215
15216
15217
15218
15219
15220
15221
15222
15223
15224
15225
15226
15227
15228
15229
15230
15231
15232
15233
15234
15235
15236
15237
15238
15239
15240
15241
15242
15243
15244
15245
15246
15247
15248
15249
15250
15251
15252
15253
15254
15255
15256
15257
15258
15259
15260
15261
15262
15263
15264
15265
15266
15267
15268
15269
15270
15271
15272
15273
15274
15275
15276
15277
15278
15279
15280
15281
15282
15283
15284
15285
15286
15287
15288
15289
15290
15291
15292
15293
15294
15295
15296
15297
15298
15299
15300
15301
15302
15303
15304
15305
15306
15307
15308
15309
15310
15311
15312
15313
15314
15315
15316
15317
15318
15319
15320
15321
15322
15323
15324
15325
15326
15327
15328
15329
15330
15331
15332
15333
15334
15335
15336
15337
15338
15339
15340
15341
15342
15343
15344
15345
15346
15347
15348
15349
15350
15351
15352
15353
15354
15355
15356
15357
15358
15359
15360
15361
15362
15363
15364
15365
15366
15367
15368
15369
15370
15371
15372
15373
15374
15375
15376
15377
15378
15379
15380
15381
15382
15383
15384
15385
15386
15387
15388
15389
15390
15391
15392
15393
15394
15395
15396
15397
15398
15399
15400
15401
15402
15403
15404
15405
15406
15407
15408
15409
15410
15411
15412
15413
15414
15415
15416
15417
15418
15419
15420
15421

15422
15423
15424
15425
15426
15427
15428
15429
15430
15431
15432
15433
15434
15435
15436
15437
15438
15439
15440
15441
15442
15443
15444
15445
15446
15447
15448
15449
15450
15451
15452
15453
15454
15455
15456
15457
15458
15459
15460
15461
15462
15463
15464
15465
15466
15467
15468
15469
15470
15471
15472
15473
15474
15475
15476
15477
15478
15479
15480
15481
15482
15483
15484
15485
15486
15487
15488
15489
15490
15491
15492
15493
15494
15495
15496
15497
15498
15499
15500
15501
15502
15503
15504
15505
15506
15507
15508
15509
15510
15511
15512
15513
15514
15515
15516
15517
15518
15519
15520
15521
15522
15523
15524
15525
15526
15527
15528
15529
15530
15531
15532
15533
15534
15535
15536
15537
15538
15539
15540
15541
15542
15543
15544
15545
15546
15547
15548
15549
15550
15551
15552
15553
15554
15555
15556
15557
15558
15559
15560
15561
15562
15563
15564
15565
15566
15567
15568
15569
15570
15571
15572
15573
15574
15575
15576
15577
15578
15579
15580
15581
15582
15583
15584
15585
15586
15587
15588
15589
15590
15591
15592
15593
15594
15595
15596
15597
15598
15599
15600
15601
15602
15603
15604
15605
15606
15607
15608
15609
15610
15611
15612
15613
15614
15615
15616
15617
15618
15619
15620
15621
15622
15623
15624
15625
15626
15627
15628
15629
15630
15631
15632
15633
15634
15635
15636
15637
15638
15639
15640
15641
15642
15643
15644
15645
15646
15647
15648
15649
15650
15651
15652
15653
15654
15655
15656
15657
15658
15659
15660
15661
15662
15663
15664
15665
15666
15667
15668
15669
15670
15671
15672
15673
15674
15675
15676
15677
15678
15679
15680
15681
15682
15683
15684
15685
15686
15687
15688















15689
15690
15691
15692
15693
15694
15695
15696
15697
15698
15699
15700
15701
15702
15703
15704
15705
15706
15707
15708
15709
15710
15711
15712
15713
15714
15715
15716
15717
15718
15719
15720
15721
15722
15723
15724
15725
15726
15727
15728
15729
15730
15731
15732
15733
15734
15735
15736
15737
15738
15739
15740
15741
15742
15743
15744
15745
15746
15747
15748
15749
15750
15751
15752
15753
15754
15755
15756
15757
15758
15759
15760
15761
15762
15763
15764
15765
15766
15767
15768
15769
15770
15771
15772
15773
15774
15775
15776
15777
15778
15779
15780
15781
15782
15783
15784
15785
15786
15787
15788
15789
15790
15791
						}
	
					<
				}
	
			<
		}
	}
	
	switch [Nv beshort 0 0 {} {}] {
		-32768 {
			>
				if {[S string [I 2 ubeshort 0 - 0 2] 0 {} {} eq (c)CRI]} {
					>
						emit {CRI ADX ADPCM audio}
						if {[N byte 18 0 0 {} {} x {}]} {
							>
								emit v%u
							<
						}
	
						switch [Nv byte 4 0 {} {}] {
							2 {
								>
									emit {\b, pre-set prediction coefficients}
								<
							}
							3 {
								>
									emit {\b, standard ADX}
								<
							}
							4 {
								>
									emit {\b, exponential scale}
								<
							}
							5 {
								>
									emit {\b, AHX}
								<
							}
						}
	
						if {[N belong 8 0 0 {} {} x {}]} {
							>
								emit {\b, %u Hz}
							<
						}
	
						switch [Nv byte 18 0 {} {}] {
							3 {
								>
									if {[N beshort 2 0 0 {} {} > 43]} {
										>
											if {[N belong 24 0 0 {} {} != 0]} {
												>
													emit {\b, looping}
												<
											}
	
										<
									}
	
								<
							}
							4 {
								>
									if {[N beshort 2 0 0 {} {} > 55]} {
										>
											if {[N belong 36 0 0 {} {} != 0]} {
												>
													emit {\b, looping}
												<
											}
	
										<
									}
	
								<
							}
						}
	
						if {[N byte 19 0 0 & 8 == 8]} {
							>
								emit {\b, encrypted}
							<
						}
	
					<
				}
	
			<
			>
				emit {lif file}
			<
		}
		-32760 {
			>
				if {[S string 6 0 {} {} eq BS93]} {
					>
						emit {Lynx homebrew cartridge}
						if {[N beshort 2 0 0 {} {} x {}]} {
							>
								emit {\b, RAM start $%04x}
							<
						}
	
						mime application/x-atari-lynx-rom
					<
				}
	
				if {[S string 6 0 {} {} eq LYNX]} {
					>
						emit {Lynx cartridge}
						if {[N beshort 2 0 0 {} {} x {}]} {
							>
								emit {\b, RAM start $%04x}
							<
						}
	
						mime application/x-atari-lynx-rom
					<
				}
	
			<
		}
		-31486 {
			>
				emit {GPG encrypted data}
				mime {text/PGP # encoding: data}
			<
		}
		-30875 {
			>
				emit {disk quotas file}
			<
		}
		-30771 {
			>
				emit {OS9/6809 module:}
				switch [Nv byte 6 0 & 15] {
					0 {
						>
							emit non-executable
						<
					}
					1 {
						>
							emit {machine language}
						<
					}
					2 {
						>
							emit {BASIC I-code}
						<
					}
					3 {
						>
							emit {Pascal P-code}
						<
					}
					4 {
						>
							emit {C I-code}
						<
					}
					5 {
						>
							emit {COBOL I-code}
						<
					}
					6 {
						>
							emit {Fortran I-code}
						<
					}
				}
	
				switch [Nv byte 6 0 & -16] {
					-64 {
						>
							emit {system module}
						<
					}
					-48 {
						>
							emit {file manager}
						<
					}
					-32 {
						>
							emit {device driver}
						<
					}
					-16 {
						>
							emit {device descriptor}
						<
					}
					16 {
						>
							emit {program executable}
						<
					}
					32 {
						>
							emit subroutine
						<
					}
					48 {
						>
							emit multi-module
						<
					}
					64 {
						>
							emit {data module}
						<
					}
				}
	
			<
		}
		-27392 {
			>
				emit {PGP key security ring}
				mime application/x-pgp-keyring
			<
		}
		-27391 {
			>
				emit {PGP key security ring}
				mime application/x-pgp-keyring
			<
		}
		-26110 {
			>
				emit {Zebra Metafile graphic}
				switch [Nv leshort 2 0 {} {}] {
					1 {
						>
							emit {(version 1.x)}
						<
					}
					2 {
						>
							emit {(version 1.1x or 1.2x)}
						<
					}
					3 {
						>
							emit {(version 1.49)}
						<
					}
					4 {
						>
							emit {(version 1.50)}
						<
					}
				}
	
				if {[S string 4 0 {} {} x {}]} {
					>
						emit {(comment = %s)}
					<
				}
	
			<
		}
		-23040 {
			>
				emit {PGP encrypted data}
				mime {text/PGP # encoding: armored data}
			<
		}
		-21928 {
			>
				emit {floppy image data (IBM SaveDskF, old)}
			<
		}
		-21927 {
			>
				emit {floppy image data (IBM SaveDskF)}
			<
		}
		-21926 {
			>
				emit {floppy image data (IBM SaveDskF, compressed)}

			<
		}
		-21267 {
			>
				emit {Java serialization data}
				if {[N beshort 2 0 0 {} {} > 4]} {
					>
						emit {\b, version %d}
					<
				}
	
			<
		}
		-8185 {
			>
				emit {amd 29k coff archive}
			<
		}
		-7408 {
			>
				emit {Amiga Workbench}
				if {[N beshort 2 0 0 {} {} == 1]} {
					>
						switch [Nv byte 48 0 {} {}] {
							1 {
								>
									emit {disk icon}
								<
							}
							2 {
								>
									emit {drawer icon}
								<
							}
							3 {
								>
									emit {tool icon}
								<
							}
							4 {
								>
									emit {project icon}
								<
							}
							5 {
								>
									emit {garbage icon}
								<
							}
							6 {
								>
									emit {device icon}
								<
							}
							7 {
								>
									emit {kickstart icon}
								<
							}
							8 {
								>
									emit {workbench application icon}
								<
							}
						}
	
					<
				}
	
				if {[N beshort 2 0 0 {} {} > 1]} {
					>
						emit {icon, vers. %d}
					<
				}
	
			<
		}
		-1279 {
			>
				emit {QDOS object}
				if {[S pstring 2 0 {} {} x {}]} {
					>
						emit '%s'
					<
				}
	
			<
		}
		-511 {
			>
				emit {MySQL table definition file}
				if {[N byte 2 0 0 {} {} x {}]} {
					>
						emit {Version %d}
					<
				}
	
				switch [Nv byte 3 0 {} {}] {
					0 {
						>
							emit {\b, type UNKNOWN}
						<
					}
					1 {
						>
							emit {\b, type DIAM_ISAM}
						<
					}
					2 {
						>
							emit {\b, type HASH}
						<
					}
					3 {
						>
							emit {\b, type MISAM}
						<
					}
					4 {
						>
							emit {\b, type PISAM}
						<
					}
					5 {
						>
							emit {\b, type RMS_ISAM}
						<
					}
					6 {
						>
							emit {\b, type HEAP}
						<
					}
					7 {
						>
							emit {\b, type ISAM}
						<
					}
					8 {
						>
							emit {\b, type MRG_ISAM}
						<
					}
					9 {
						>
							emit {\b, type MYISAM}
						<
					}
					10 {
						>
							emit {\b, type MRG_MYISAM}
						<
					}
					11 {
						>
							emit {\b, type BERKELEY_DB}
						<
					}
					12 {
						>
							emit {\b, type INNODB}
						<
					}
					13 {
						>
							emit {\b, type GEMINI}
						<
					}
					14 {
						>
							emit {\b, type NDBCLUSTER}
						<
					}
					15 {
						>
							emit {\b, type EXAMPLE_DB}
						<
					}
					16 {
						>
							emit {\b, type CSV_DB}
						<
					}
					17 {
						>
							emit {\b, type FEDERATED_DB}
						<
					}
					18 {
						>
							emit {\b, type BLACKHOLE_DB}
						<
					}
					19 {
						>
							emit {\b, type PARTITION_DB}
						<
					}
					20 {
						>
							emit {\b, type BINLOG}
						<
					}
					21 {
						>
							emit {\b, type SOLID}
						<
					}
					22 {
						>
							emit {\b, type PBXT}
						<
					}
					23 {
						>
							emit {\b, type TABLE_FUNCTION}
						<
					}
					24 {
						>
							emit {\b, type MEMCACHE}
						<
					}
					25 {
						>
							emit {\b, type FALCON}
						<
					}
					26 {
						>
							emit {\b, type MARIA}
						<
					}
					27 {
						>
							emit {\b, type PERFORMANCE_SCHEMA}
						<
					}
					127 {
						>
							emit {\b, type DEFAULT}
						<
					}
				}
	
				if {[N ulong 51 0 0 {} {} x {}]} {
					>
						emit {\b, MySQL version %d}
					<
				}
	
			<
		}
		-508 {
			>
				emit {structured file}
			<
		}
		-155 {
			>
				emit {old 16-bit-int big-endian archive}
				if {[S string 2 0 {} {} eq __.SYMDEF]} {
					>
						emit {random library}
					<
				}
	















			<
		}
		-147 {
			>
				emit {very old 16-bit-int big-endian archive}
			<
		}
		-40 {
			>
				emit {JPEG image data}
				mime image/jpeg
				ext jpeg/jpg/jpe/jfif
				if {[S string 6 0 {} {} eq JFIF]} {
					>
						emit {\b, JFIF standard}
						if {[N byte 11 0 0 {} {} x {}]} {
							>
								emit {\b %d.}
							<
						}
	
						if {[N byte 12 0 0 {} {} x {}]} {
							>
								emit {\b%02d}
							<
						}
	
						switch [Nv byte 13 0 {} {}] {
							0 {
								>
									emit {\b, aspect ratio}
								<
							}
							1 {
								>
									emit {\b, resolution (DPI)}
								<
							}
							2 {
								>
									emit {\b, resolution (DPCM)}
								<
							}
						}
	
						if {[N beshort 14 0 0 {} {} x {}]} {
							>
								emit {\b, density %dx}
							<
						}
	
						if {[N beshort 16 0 0 {} {} x {}]} {
							>
								emit {\b%d}
							<
						}
	
						if {[N beshort 4 0 0 {} {} x {}]} {
							>
								emit {\b, segment length %d}
							<
						}
	
						if {[N byte 18 0 0 {} {} != 0]} {
							>
								emit {\b, thumbnail %dx}
								if {[N byte 19 0 0 {} {} x {}]} {
									>
										emit {\b%d}
									<
								}
	
							<
						}
	
					<
				}
	
				if {[S string 6 0 {} {} eq Exif]} {
					>
						emit {\b, Exif standard: [}
						T 12 r
	
						if {[S string 12 0 {} {} x {}]} {
							>
								emit {\b]}
							<
						}
	
					<
				}
	
				U 120 jpeg_segment [I 4 ubeshort 0 + 0 4]
	
			<
		}
		1 {
			>
				switch [Nv beshort 2 0 {} {}] {
					8 {
						>
							U 111 gem_info 0
	
16326
16327
16328
16329
16330
16331
16332
16333
16334
16335
16336
16337
16338
16339
16340
16341
16342
16343
16344
16345
16346
16347
16348
16349
16350










16351
16352
16353
16354
16355
16356
16357
16358
16359
16360
16361
16362
16363
16364
16365
16366
16367
16368
16369
16370
16371
16372
16373
16374
16375
16376
16377
				}
	
			<
		}
		2057 {
			>
				emit {Bentley/Intergraph MicroStation}
				if {[N byte 2 0 0 {} {} == 254]} {
					>
						if {[N beshort 4 0 0 {} {} == 6144]} {
							>
								emit {CIT raster CAD}
							<
						}
	
					<
				}
	
			<
		}
		2935 {
			>
				emit {ATSC A/52 aka AC-3 aka Dolby Digital stream,}
				mime audio/vnd.dolby.dd-raw
				switch [Nv byte 4 0 & 192] {










					0 {
						>
							emit {48 kHz,}
						<
					}
					64 {
						>
							emit {44.1 kHz,}
						<
					}
					-128 {
						>
							emit {32 kHz,}
						<
					}
					-64 {
						>
							emit {reserved frequency,}
						<
					}
				}
	
				switch [Nv byte 5 0 & 7] {
					0 {
						>
							emit {\b, complete main (CM)}
						<







|
















|
>
>
>
>
>
>
>
>
>
>










<
<
<
<
<
<
<
<
<
<







16971
16972
16973
16974
16975
16976
16977
16978
16979
16980
16981
16982
16983
16984
16985
16986
16987
16988
16989
16990
16991
16992
16993
16994
16995
16996
16997
16998
16999
17000
17001
17002
17003
17004
17005
17006
17007
17008
17009
17010
17011
17012
17013
17014
17015










17016
17017
17018
17019
17020
17021
17022
				}
	
			<
		}
		2057 {
			>
				emit {Bentley/Intergraph MicroStation}
				if {[N byte 2 0 0 {} {} == -2]} {
					>
						if {[N beshort 4 0 0 {} {} == 6144]} {
							>
								emit {CIT raster CAD}
							<
						}
	
					<
				}
	
			<
		}
		2935 {
			>
				emit {ATSC A/52 aka AC-3 aka Dolby Digital stream,}
				mime audio/vnd.dolby.dd-raw
				switch [Nv byte 4 0 & -64] {
					-128 {
						>
							emit {32 kHz,}
						<
					}
					-64 {
						>
							emit {reserved frequency,}
						<
					}
					0 {
						>
							emit {48 kHz,}
						<
					}
					64 {
						>
							emit {44.1 kHz,}
						<
					}










				}
	
				switch [Nv byte 5 0 & 7] {
					0 {
						>
							emit {\b, complete main (CM)}
						<
16416
16417
16418
16419
16420
16421
16422
16423












































16424
16425
16426
16427
16428
16429
16430
	
				if {[N beshort 5 0 0 & 2016 > 1824]} {
					>
						emit {\b, karaoke}
					<
				}
	
				switch [Nv byte 6 0 & 224] {












































					0 {
						>
							emit {1+1 front,}
							if {[N byte 6 0 0 & 16 == 16]} {
								>
									emit {LFE on,}
								<







|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







17061
17062
17063
17064
17065
17066
17067
17068
17069
17070
17071
17072
17073
17074
17075
17076
17077
17078
17079
17080
17081
17082
17083
17084
17085
17086
17087
17088
17089
17090
17091
17092
17093
17094
17095
17096
17097
17098
17099
17100
17101
17102
17103
17104
17105
17106
17107
17108
17109
17110
17111
17112
17113
17114
17115
17116
17117
17118
17119
	
				if {[N beshort 5 0 0 & 2016 > 1824]} {
					>
						emit {\b, karaoke}
					<
				}
	
				switch [Nv byte 6 0 & -32] {
					-128 {
						>
							emit {2 front/1 rear,}
							if {[N byte 6 0 0 & 4 == 4]} {
								>
									emit {LFE on,}
								<
							}
	
						<
					}
					-96 {
						>
							emit {3 front/1 rear,}
							if {[N byte 6 0 0 & 1 == 1]} {
								>
									emit {LFE on,}
								<
							}
	
						<
					}
					-64 {
						>
							emit {2 front/2 rear,}
							if {[N byte 6 0 0 & 4 == 4]} {
								>
									emit {LFE on,}
								<
							}
	
						<
					}
					-32 {
						>
							emit {3 front/2 rear,}
							if {[N byte 6 0 0 & 1 == 1]} {
								>
									emit {LFE on,}
								<
							}
	
						<
					}
					0 {
						>
							emit {1+1 front,}
							if {[N byte 6 0 0 & 16 == 16]} {
								>
									emit {LFE on,}
								<
16478
16479
16480
16481
16482
16483
16484
16485
16486
16487
16488
16489
16490
16491
16492
16493
16494
16495
16496
16497
16498
16499
16500
16501
16502
16503
16504
16505
16506
16507
16508
16509
16510
16511
16512
16513
16514
16515
16516
16517
16518
16519
16520
16521
16522
16523
16524
16525
16526
16527
16528
16529
16530
16531
16532
16533
16534
16535
						<
					}
					96 {
						>
							emit {3 front/0 rear,}
							if {[N byte 6 0 0 & 4 == 4]} {
								>
									emit {LFE on,}
								<
							}
	
						<
					}
					-128 {
						>
							emit {2 front/1 rear,}
							if {[N byte 6 0 0 & 4 == 4]} {
								>
									emit {LFE on,}
								<
							}
	
						<
					}
					-96 {
						>
							emit {3 front/1 rear,}
							if {[N byte 6 0 0 & 1 == 1]} {
								>
									emit {LFE on,}
								<
							}
	
						<
					}
					-64 {
						>
							emit {2 front/2 rear,}
							if {[N byte 6 0 0 & 4 == 4]} {
								>
									emit {LFE on,}
								<
							}
	
						<
					}
					-32 {
						>
							emit {3 front/2 rear,}
							if {[N byte 6 0 0 & 1 == 1]} {
								>
									emit {LFE on,}
								<
							}
	
						<
					}
				}







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







17167
17168
17169
17170
17171
17172
17173












































17174
17175
17176
17177
17178
17179
17180
						<
					}
					96 {
						>
							emit {3 front/0 rear,}
							if {[N byte 6 0 0 & 4 == 4]} {
								>












































									emit {LFE on,}
								<
							}
	
						<
					}
				}
16923
16924
16925
16926
16927
16928
16929
16930
16931
16932
16933
16934
16935
16936
16937
				}
	
			<
		}
		19196 {
			>
				emit {OS9/68K module:}
				if {[N byte 20 0 0 & 128 == 128]} {
					>
						emit re-entrant
					<
				}
	
				if {[N byte 20 0 0 & 64 == 64]} {
					>







|







17568
17569
17570
17571
17572
17573
17574
17575
17576
17577
17578
17579
17580
17581
17582
				}
	
			<
		}
		19196 {
			>
				emit {OS9/68K module:}
				if {[N byte 20 0 0 & -128 == -128]} {
					>
						emit re-entrant
					<
				}
	
				if {[N byte 20 0 0 & 64 == 64]} {
					>
17429
17430
17431
17432
17433
17434
17435
17436
17437
17438
17439
17440
17441
17442
17443
17444
17445
17446
17447
17448
17449
17450
17451
17452
17453
17454
17455
17456
17457
17458
17459
17460
17461
17462
17463
17464
17465
17466
17467
17468
17469
17470
17471
17472
17473
17474
17475
17476
17477
17478
17479
17480
17481
17482
17483
17484
17485
17486
17487
17488
17489
17490
17491
17492
17493
17494
17495
17496
17497
17498
17499
17500
17501
17502
17503
17504
17505
17506
17507
17508
17509
17510
17511
17512
17513
17514
17515
17516
17517
17518
17519
17520
17521
17522
17523
17524
17525
17526
17527
17528
17529
17530
17531
17532
17533
17534
17535
17536
17537
17538
17539
17540
17541
17542
17543
17544
17545
17546
17547
17548
17549
17550
17551
17552
17553
17554
17555
17556
17557
17558
17559
17560
17561
17562
17563
17564
17565
17566
17567
17568
17569
17570
17571
17572
17573
17574
17575
17576
17577
17578
17579
17580
17581
17582
17583
17584
17585
17586
17587
17588
17589
17590
17591
17592
17593
17594
17595
17596
17597
17598
17599
17600
17601
17602
17603
17604
17605
17606
17607
17608
17609
17610
17611
17612
17613
17614
17615
17616
17617
17618
17619
17620
17621
17622
17623
17624
17625
17626
17627
17628
17629
17630
17631
17632
17633
17634
17635
17636
17637
17638
17639
17640
17641
17642
17643
17644
17645
17646
17647
17648
17649
17650
17651
17652
17653
17654
17655
17656
17657
17658
17659
17660
17661
17662
17663
17664
17665
17666
17667
17668
17669
17670
17671
17672
17673
17674
17675
17676
17677
17678
17679
17680
17681
17682
17683
17684
17685
17686
17687
17688
17689
17690
17691
17692
17693
17694
17695
17696
17697
17698
17699
17700
17701
17702
17703
17704
17705
17706
17707
17708
17709
17710
17711
17712
17713
17714
17715
17716
17717
17718
17719
17720
17721
17722
17723
17724
17725
17726
17727
17728
17729
17730
17731
17732
17733
17734
17735
17736
17737
17738
17739
17740
17741
17742
17743
17744
17745
17746
17747
17748
17749
17750
17751
17752
17753
17754
17755
17756
17757
17758
17759
17760
17761
17762
17763
17764
17765
17766
17767
17768
17769
17770
17771
17772
17773
17774
17775
17776
17777
17778
17779
17780
17781
17782
17783
17784
17785
17786
17787
17788
17789
17790
17791
17792
17793
17794
17795
17796
17797
17798
17799
17800
17801
17802
17803
17804
17805
17806
17807
17808
17809
17810
17811
17812
17813
17814
17815
17816
17817
17818
17819
17820
17821
17822
17823
17824
17825
17826
17827
17828
17829
17830
17831
17832
17833
17834
17835
17836
17837
17838
17839
17840
17841
17842
17843
17844
17845
17846
17847
17848
17849
17850
17851
17852
17853
17854
17855
17856
17857
17858
17859
17860
17861
17862
17863
17864
17865
17866
17867
17868
17869
17870
17871
17872
17873
17874
17875
17876
17877
17878
17879
17880
17881
17882
17883
17884
17885
17886
17887
17888
17889
17890
17891
17892
17893
17894
17895
17896
17897
17898
17899
17900
17901
17902
17903
17904
17905
17906
17907
17908
17909
17910
17911
17912
17913
17914
17915
17916
17917
17918
17919
17920
17921
17922
17923
17924
17925
17926
17927
17928
17929
17930
17931
17932
17933
17934
17935
17936
17937
17938
17939
17940
17941
17942
17943
17944
17945
17946
17947
17948
17949
17950
17951
17952
17953
17954
17955
17956
17957
17958
17959
17960
17961
17962
17963
17964
17965
17966
17967
17968
17969
17970
17971
17972
17973
17974
17975
17976
17977
17978
17979
17980
17981
17982
17983
17984
17985
17986
17987
17988
17989
17990
17991
17992
17993
17994
17995
17996
17997
17998
17999
18000
18001
18002
18003
18004
18005
18006
18007
18008
18009
18010
18011
18012
18013
18014
18015
18016
18017
18018
18019
18020
18021
18022
18023
18024
18025
18026
18027
18028
18029
18030
18031
18032
18033
18034
18035
18036
18037
18038
18039
18040
18041
18042
18043
18044
18045
18046
18047
18048
18049
18050
18051
18052
18053
18054
18055
18056
18057
18058
18059
18060
18061
18062
18063
18064
18065
18066
18067
18068
18069
18070
18071
18072
18073
18074
18075
18076
18077
18078
18079
18080
18081
18082
18083
18084
18085
18086
18087
18088
18089
18090
18091
18092
18093
				}
	
			<
		}
		32639 {
			>
				emit {RDI Acoustic Doppler Current Profiler (ADCP)}
			<
		}
		-32768 {
			>
				if {[S string [I 2 ubeshort 0 - 0 2] 0 {} {} eq (c)CRI]} {
					>
						emit {CRI ADX ADPCM audio}
						if {[N byte 18 0 0 {} {} x {}]} {
							>
								emit v%u
							<
						}
	
						switch [Nv byte 4 0 {} {}] {
							2 {
								>
									emit {\b, pre-set prediction coefficients}
								<
							}
							3 {
								>
									emit {\b, standard ADX}
								<
							}
							4 {
								>
									emit {\b, exponential scale}
								<
							}
							5 {
								>
									emit {\b, AHX}
								<
							}
						}
	
						if {[N belong 8 0 0 {} {} x {}]} {
							>
								emit {\b, %u Hz}
							<
						}
	
						switch [Nv byte 18 0 {} {}] {
							3 {
								>
									if {[N beshort 2 0 0 {} {} > 43]} {
										>
											if {[N belong 24 0 0 {} {} != 0]} {
												>
													emit {\b, looping}
												<
											}
	
										<
									}
	
								<
							}
							4 {
								>
									if {[N beshort 2 0 0 {} {} > 55]} {
										>
											if {[N belong 36 0 0 {} {} != 0]} {
												>
													emit {\b, looping}
												<
											}
	
										<
									}
	
								<
							}
						}
	
						if {[N byte 19 0 0 & 8 == 8]} {
							>
								emit {\b, encrypted}
							<
						}
	
					<
				}
	
			<
			>
				emit {lif file}
			<
		}
		-32760 {
			>
				if {[S string 6 0 {} {} eq BS93]} {
					>
						emit {Lynx homebrew cartridge}
						if {[N beshort 2 0 0 {} {} x {}]} {
							>
								emit {\b, RAM start $%04x}
							<
						}
	
						mime application/x-atari-lynx-rom
					<
				}
	
				if {[S string 6 0 {} {} eq LYNX]} {
					>
						emit {Lynx cartridge}
						if {[N beshort 2 0 0 {} {} x {}]} {
							>
								emit {\b, RAM start $%04x}
							<
						}
	
						mime application/x-atari-lynx-rom
					<
				}
	
			<
		}
		-31486 {
			>
				emit {GPG encrypted data}
				mime {text/PGP # encoding: data}
			<
		}
		-30875 {
			>
				emit {disk quotas file}
			<
		}
		-30771 {
			>
				emit {OS9/6809 module:}
				switch [Nv byte 6 0 & 15] {
					0 {
						>
							emit non-executable
						<
					}
					1 {
						>
							emit {machine language}
						<
					}
					2 {
						>
							emit {BASIC I-code}
						<
					}
					3 {
						>
							emit {Pascal P-code}
						<
					}
					4 {
						>
							emit {C I-code}
						<
					}
					5 {
						>
							emit {COBOL I-code}
						<
					}
					6 {
						>
							emit {Fortran I-code}
						<
					}
				}
	
				switch [Nv byte 6 0 & 240] {
					16 {
						>
							emit {program executable}
						<
					}
					32 {
						>
							emit subroutine
						<
					}
					48 {
						>
							emit multi-module
						<
					}
					64 {
						>
							emit {data module}
						<
					}
					-64 {
						>
							emit {system module}
						<
					}
					-48 {
						>
							emit {file manager}
						<
					}
					-32 {
						>
							emit {device driver}
						<
					}
					-16 {
						>
							emit {device descriptor}
						<
					}
				}
	
			<
		}
		-27392 {
			>
				emit {PGP key security ring}
				mime application/x-pgp-keyring
			<
		}
		-27391 {
			>
				emit {PGP key security ring}
				mime application/x-pgp-keyring
			<
		}
		-26110 {
			>
				emit {Zebra Metafile graphic}
				switch [Nv leshort 2 0 {} {}] {
					1 {
						>
							emit {(version 1.x)}
						<
					}
					2 {
						>
							emit {(version 1.1x or 1.2x)}
						<
					}
					3 {
						>
							emit {(version 1.49)}
						<
					}
					4 {
						>
							emit {(version 1.50)}
						<
					}
				}
	
				if {[S string 4 0 {} {} x {}]} {
					>
						emit {(comment = %s)}
					<
				}
	
			<
		}
		-23040 {
			>
				emit {PGP encrypted data}
				mime {text/PGP # encoding: armored data}
			<
		}
		-21928 {
			>
				emit {floppy image data (IBM SaveDskF, old)}
			<
		}
		-21927 {
			>
				emit {floppy image data (IBM SaveDskF)}
			<
		}
		-21926 {
			>
				emit {floppy image data (IBM SaveDskF, compressed)}
			<
		}
		-21267 {
			>
				emit {Java serialization data}
				if {[N beshort 2 0 0 {} {} > 4]} {
					>
						emit {\b, version %d}
					<
				}
	
			<
		}
		-8185 {
			>
				emit {amd 29k coff archive}
			<
		}
		-7408 {
			>
				emit {Amiga Workbench}
				if {[N beshort 2 0 0 {} {} == 1]} {
					>
						switch [Nv byte 48 0 {} {}] {
							1 {
								>
									emit {disk icon}
								<
							}
							2 {
								>
									emit {drawer icon}
								<
							}
							3 {
								>
									emit {tool icon}
								<
							}
							4 {
								>
									emit {project icon}
								<
							}
							5 {
								>
									emit {garbage icon}
								<
							}
							6 {
								>
									emit {device icon}
								<
							}
							7 {
								>
									emit {kickstart icon}
								<
							}
							8 {
								>
									emit {workbench application icon}
								<
							}
						}
	
					<
				}
	
				if {[N beshort 2 0 0 {} {} > 1]} {
					>
						emit {icon, vers. %d}
					<
				}
	
			<
		}
		-1279 {
			>
				emit {QDOS object}
				if {[S pstring 2 0 {} {} x {}]} {
					>
						emit '%s'
					<
				}
	
			<
		}
		-511 {
			>
				emit {MySQL table definition file}
				if {[N byte 2 0 0 {} {} x {}]} {
					>
						emit {Version %d}
					<
				}
	
				switch [Nv byte 3 0 {} {}] {
					0 {
						>
							emit {\b, type UNKNOWN}
						<
					}
					1 {
						>
							emit {\b, type DIAM_ISAM}
						<
					}
					2 {
						>
							emit {\b, type HASH}
						<
					}
					3 {
						>
							emit {\b, type MISAM}
						<
					}
					4 {
						>
							emit {\b, type PISAM}
						<
					}
					5 {
						>
							emit {\b, type RMS_ISAM}
						<
					}
					6 {
						>
							emit {\b, type HEAP}
						<
					}
					7 {
						>
							emit {\b, type ISAM}
						<
					}
					8 {
						>
							emit {\b, type MRG_ISAM}
						<
					}
					9 {
						>
							emit {\b, type MYISAM}
						<
					}
					10 {
						>
							emit {\b, type MRG_MYISAM}
						<
					}
					11 {
						>
							emit {\b, type BERKELEY_DB}
						<
					}
					12 {
						>
							emit {\b, type INNODB}
						<
					}
					13 {
						>
							emit {\b, type GEMINI}
						<
					}
					14 {
						>
							emit {\b, type NDBCLUSTER}
						<
					}
					15 {
						>
							emit {\b, type EXAMPLE_DB}
						<
					}
					16 {
						>
							emit {\b, type CSV_DB}
						<
					}
					17 {
						>
							emit {\b, type FEDERATED_DB}
						<
					}
					18 {
						>
							emit {\b, type BLACKHOLE_DB}
						<
					}
					19 {
						>
							emit {\b, type PARTITION_DB}
						<
					}
					20 {
						>
							emit {\b, type BINLOG}
						<
					}
					21 {
						>
							emit {\b, type SOLID}
						<
					}
					22 {
						>
							emit {\b, type PBXT}
						<
					}
					23 {
						>
							emit {\b, type TABLE_FUNCTION}
						<
					}
					24 {
						>
							emit {\b, type MEMCACHE}
						<
					}
					25 {
						>
							emit {\b, type FALCON}
						<
					}
					26 {
						>
							emit {\b, type MARIA}
						<
					}
					27 {
						>
							emit {\b, type PERFORMANCE_SCHEMA}
						<
					}
					127 {
						>
							emit {\b, type DEFAULT}
						<
					}
				}
	
				if {[N ulong 51 0 0 {} {} x {}]} {
					>
						emit {\b, MySQL version %d}
					<
				}
	
			<
		}
		-508 {
			>
				emit {structured file}
			<
		}
		-155 {
			>
				emit {old 16-bit-int big-endian archive}
				if {[S string 2 0 {} {} eq __.SYMDEF]} {
					>
						emit {random library}
					<
				}
	
			<
		}
		-147 {
			>
				emit {very old 16-bit-int big-endian archive}
			<
		}
		-40 {
			>
				emit {JPEG image data}
				mime image/jpeg
				ext jpeg/jpg/jpe/jfif
				if {[S string 6 0 {} {} eq JFIF]} {
					>
						emit {\b, JFIF standard}
						if {[N byte 11 0 0 {} {} x {}]} {
							>
								emit {\b %d.}
							<
						}
	
						if {[N byte 12 0 0 {} {} x {}]} {
							>
								emit {\b%02d}
							<
						}
	
						switch [Nv byte 13 0 {} {}] {
							0 {
								>
									emit {\b, aspect ratio}
								<
							}
							1 {
								>
									emit {\b, resolution (DPI)}
								<
							}
							2 {
								>
									emit {\b, resolution (DPCM)}
								<
							}
						}
	
						if {[N beshort 14 0 0 {} {} x {}]} {
							>
								emit {\b, density %dx}
							<
						}
	
						if {[N beshort 16 0 0 {} {} x {}]} {
							>
								emit {\b%d}
							<
						}
	
						if {[N beshort 4 0 0 {} {} x {}]} {
							>
								emit {\b, segment length %d}
							<
						}
	
						if {[N byte 18 0 0 {} {} != 0]} {
							>
								emit {\b, thumbnail %dx}
								if {[N byte 19 0 0 {} {} x {}]} {
									>
										emit {\b%d}
									<
								}
	
							<
						}
	
					<
				}
	
				if {[S string 6 0 {} {} eq Exif]} {
					>
						emit {\b, Exif standard: [}
						T 12
	
						if {[S string 12 0 {} {} x {}]} {
							>
								emit {\b]}
							<
						}
	
					<
				}
	
				U 120 jpeg_segment [I 4 ubeshort 0 + 0 4]
	
			<
		}
	}
	
	if {[N ubyte 0 0 0 {} {} > 0]} {
		>
			if {[N ubyte 0 0 0 {} {} < 9]} {
				>
					if {[N belong 16 0 0 & 4261474544 == 12336]} {
						>
							if {[N ubyte 0 0 0 {} {} < 10]} {
								>
									if {[N ubeshort 2 0 0 {} {} x {}]} {
										>
											if {[S regex 18 0 {} {} eq \[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]]} {
												>







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<








|







18074
18075
18076
18077
18078
18079
18080


































































































































































































































































































































































































































































































































































































































































18081
18082
18083
18084
18085
18086
18087
18088
18089
18090
18091
18092
18093
18094
18095
18096
				}
	
			<
		}
		32639 {
			>
				emit {RDI Acoustic Doppler Current Profiler (ADCP)}


































































































































































































































































































































































































































































































































































































































































			<
		}
	}
	
	if {[N ubyte 0 0 0 {} {} > 0]} {
		>
			if {[N ubyte 0 0 0 {} {} < 9]} {
				>
					if {[N belong 16 0 0 & -33492752 == 12336]} {
						>
							if {[N ubyte 0 0 0 {} {} < 10]} {
								>
									if {[N ubeshort 2 0 0 {} {} x {}]} {
										>
											if {[S regex 18 0 {} {} eq \[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]]} {
												>
18306
18307
18308
18309
18310
18311
18312




















































































































































































































































































































































































































































































































































































































































































































































































































































































18313
18314
18315
18316
18317
18318
18319
				<
			}
	
		<
	}
	
	switch [Nv belong 0 0 {} {}] {




















































































































































































































































































































































































































































































































































































































































































































































































































































































		1 {
			>
				if {[N byte 4 0 0 & 31 == 7]} {
					>
						emit {JVT NAL sequence, H.264 video}
						switch [Nv byte 5 0 {} {}] {
							66 {







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







18309
18310
18311
18312
18313
18314
18315
18316
18317
18318
18319
18320
18321
18322
18323
18324
18325
18326
18327
18328
18329
18330
18331
18332
18333
18334
18335
18336
18337
18338
18339
18340
18341
18342
18343
18344
18345
18346
18347
18348
18349
18350
18351
18352
18353
18354
18355
18356
18357
18358
18359
18360
18361
18362
18363
18364
18365
18366
18367
18368
18369
18370
18371
18372
18373
18374
18375
18376
18377
18378
18379
18380
18381
18382
18383
18384
18385
18386
18387
18388
18389
18390
18391
18392
18393
18394
18395
18396
18397
18398
18399
18400
18401
18402
18403
18404
18405
18406
18407
18408
18409
18410
18411
18412
18413
18414
18415
18416
18417
18418
18419
18420
18421
18422
18423
18424
18425
18426
18427
18428
18429
18430
18431
18432
18433
18434
18435
18436
18437
18438
18439
18440
18441
18442
18443
18444
18445
18446
18447
18448
18449
18450
18451
18452
18453
18454
18455
18456
18457
18458
18459
18460
18461
18462
18463
18464
18465
18466
18467
18468
18469
18470
18471
18472
18473
18474
18475
18476
18477
18478
18479
18480
18481
18482
18483
18484
18485
18486
18487
18488
18489
18490
18491
18492
18493
18494
18495
18496
18497
18498
18499
18500
18501
18502
18503
18504
18505
18506
18507
18508
18509
18510
18511
18512
18513
18514
18515
18516
18517
18518
18519
18520
18521
18522
18523
18524
18525
18526
18527
18528
18529
18530
18531
18532
18533
18534
18535
18536
18537
18538
18539
18540
18541
18542
18543
18544
18545
18546
18547
18548
18549
18550
18551
18552
18553
18554
18555
18556
18557
18558
18559
18560
18561
18562
18563
18564
18565
18566
18567
18568
18569
18570
18571
18572
18573
18574
18575
18576
18577
18578
18579
18580
18581
18582
18583
18584
18585
18586
18587
18588
18589
18590
18591
18592
18593
18594
18595
18596
18597
18598
18599
18600
18601
18602
18603
18604
18605
18606
18607
18608
18609
18610
18611
18612
18613
18614
18615
18616
18617
18618
18619
18620
18621
18622
18623
18624
18625
18626
18627
18628
18629
18630
18631
18632
18633
18634
18635
18636
18637
18638
18639
18640
18641
18642
18643
18644
18645
18646
18647
18648
18649
18650
18651
18652
18653
18654
18655
18656
18657
18658
18659
18660
18661
18662
18663
18664
18665
18666
18667
18668
18669
18670
18671
18672
18673
18674
18675
18676
18677
18678
18679
18680
18681
18682
18683
18684
18685
18686
18687
18688
18689
18690
18691
18692
18693
18694
18695
18696
18697
18698
18699
18700
18701
18702
18703
18704
18705
18706
18707
18708
18709
18710
18711
18712
18713
18714
18715
18716
18717
18718
18719
18720
18721
18722
18723
18724
18725
18726
18727
18728
18729
18730
18731
18732
18733
18734
18735
18736
18737
18738
18739
18740
18741
18742
18743
18744
18745
18746
18747
18748
18749
18750
18751
18752
18753
18754
18755
18756
18757
18758
18759
18760
18761
18762
18763
18764
18765
18766
18767
18768
18769
18770
18771
18772
18773
18774
18775
18776
18777
18778
18779
18780
18781
18782
18783
18784
18785
18786
18787
18788
18789
18790
18791
18792
18793
18794
18795
18796
18797
18798
18799
18800
18801
18802
18803
18804
18805
18806
18807
18808
18809
18810
18811
18812
18813
18814
18815
18816
18817
18818
18819
18820
18821
18822
18823
18824
18825
18826
18827
18828
18829
18830
18831
18832
18833
18834
18835
18836
18837
18838
18839
18840
18841
18842
18843
18844
18845
18846
18847
18848
18849
18850
18851
18852
18853
18854
18855
18856
18857
18858
18859
18860
18861
18862
18863
18864
18865
18866
18867
18868
18869
18870
18871
18872
18873
18874
18875
18876
18877
18878
18879
18880
18881
18882
18883
18884
18885
18886
18887
18888
18889
18890
18891
18892
18893
18894
18895
18896
18897
18898
18899
18900
18901
18902
18903
18904
18905
18906
18907
18908
18909
18910
18911
18912
18913
18914
18915
18916
18917
18918
18919
18920
18921
18922
18923
18924
18925
18926
18927
18928
18929
18930
18931
18932
18933
18934
18935
18936
18937
18938
18939
18940
18941
18942
18943
18944
18945
18946
18947
18948
18949
18950
18951
18952
18953
18954
18955
18956
18957
18958
18959
18960
18961
18962
18963
18964
18965
18966
18967
18968
18969
18970
18971
18972
18973
18974
18975
18976
18977
18978
18979
18980
18981
18982
18983
18984
18985
18986
18987
18988
18989
18990
18991
18992
18993
18994
18995
18996
18997
18998
18999
19000
19001
19002
19003
19004
19005
19006
19007
19008
19009
19010
19011
19012
19013
19014
19015
19016
19017
19018
19019
19020
19021
19022
19023
19024
19025
19026
19027
19028
19029
19030
19031
19032
19033
19034
19035
19036
19037
19038
19039
19040
19041
19042
19043
19044
19045
19046
19047
19048
19049
19050
19051
19052
19053
19054
19055
19056
19057
19058
19059
19060
19061
19062
19063
19064
19065
19066
19067
19068
19069
19070
19071
19072
19073
19074
19075
19076
19077
19078
19079
19080
19081
19082
19083
19084
19085
19086
19087
19088
19089
19090
19091
19092
19093
19094
19095
19096
19097
19098
19099
19100
19101
19102
19103
19104
19105
19106
19107
19108
19109
19110
19111
19112
19113
19114
19115
19116
19117
19118
19119
19120
19121
19122
19123
19124
19125
19126
19127
19128
19129
19130
19131
19132
19133
19134
19135
19136
19137
19138
19139
19140
19141
19142
19143
19144
19145
19146
19147
19148
19149
19150
19151
19152
19153
19154
19155
19156
19157
19158
19159
19160
19161
19162
19163
19164
19165
19166
19167
19168
19169
19170
19171
19172
19173
19174
				<
			}
	
		<
	}
	
	switch [Nv belong 0 0 {} {}] {
		-2147479551 {
			>
				emit {AmigaOS outline tag}
			<
		}
		-2017063670 {
			>
				emit {python 2.0 byte-compiled}
			<
		}
		-1991489968 {
			>
				if {[N belong 4 0 0 {} {} == 218765834]} {
					>
					<
				}
	
				if {[N belong 12 0 0 {} {} == 0]} {
					>
						emit {Lytro Light Field Picture}
					<
				}
	
				if {[N belong 8 0 0 {} {} x {}]} {
					>
						emit {\b, version %d}
					<
				}
	
			<
		}
		-1728153892 {
			>
				if {[N ubeshort 4 0 0 {} {} < 10]} {
					>
						emit {APT cache data, version %u}
						if {[N ubeshort 6 0 0 {} {} x {}]} {
							>
								emit {\b.%u, 32 bit big-endian}
							<
						}
	
						U 15 apt-cache-32bit-be 0
	
					<
				}
	
				if {[N ubyte 4 0 0 {} {} > 9]} {
					>
						emit {APT cache data, version %u}
						if {[N ubyte 5 0 0 {} {} x {}]} {
							>
								emit {\b.%u, big-endian}
							<
						}
	
						U 15 apt-cache-be 0
	
					<
				}
	
			<
		}
		-1722938102 {
			>
				emit {python 1.5/1.6 byte-compiled}
			<
		}
		-1643377398 {
			>
				emit {python 3.3 byte-compiled}
			<
		}
		-1374734174 {
			>
				if {[N belong 12 0 0 {} {} == 1048576]} {
					>
						if {[N belong [I 8 ubelong 0 + 0 28] 0 0 {} {} == -1036804291]} {
							>
								emit {Nintendo GameCube embedded disc image:}
								U 51 nintendo-gcn-disc-common [I 8 ubelong 0 + 0 0]
	
								mime application/x-gamecube-rom
							<
						}
	
					<
				}
	
			<
		}
		-1275982582 {
			>
				emit {python 2.5 byte-compiled}
			<
		}
		-1195374706 {
			>
				emit {Linux kernel}
				if {[S string 483 0 {} {} eq Loading]} {
					>
						emit {version 1.3.79 or older}
					<
				}
	
				if {[S string 489 0 {} {} eq Loading]} {
					>
						emit {from prehistoric times}
					<
				}
	
			<
			>
				emit Linux
				if {[N belong 486 0 0 {} {} == 1162627923]} {
					>
						emit {ELKS Kernel}
					<
				}
	
				if {[N belong 486 0 0 {} {} != 1162627923]} {
					>
						emit {style boot sector}
					<
				}
	
			<
		}
		-1161903941 {
			>
				emit {IRIX N32 core dump}
				if {[N belong 4 0 0 {} {} == 1]} {
					>
						emit of
					<
				}
	
				if {[S string 16 0 {} {} > \0]} {
					>
						emit '%s'
					<
				}
	
			<
		}
		-1059131379 {
			>
				emit {GStreamer binary registry}
				if {[S string 4 0 {} {} x {}]} {
					>
						emit {\b, version %s}
					<
				}
	
			<
		}
		-1040441407 {
			>
				emit {Common Trace Format (CTF) trace data (BE)}
			<
		}
		-976170042 {
			>
				emit {DOS EPS Binary File}
				mime image/x-eps
				if {[N long 4 0 0 {} {} > 0]} {
					>
						emit {Postscript starts at byte %d}
						if {[N long 8 0 0 {} {} > 0]} {
							>
								emit {length %d}
								if {[N long 12 0 0 {} {} > 0]} {
									>
										emit {Metafile starts at byte %d}
										if {[N long 16 0 0 {} {} > 0]} {
											>
												emit {length %d}
											<
										}
	
									<
								}
	
								if {[N long 20 0 0 {} {} > 0]} {
									>
										emit {TIFF starts at byte %d}
										if {[N long 24 0 0 {} {} > 0]} {
											>
												emit {length %d}
											<
										}
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
			>
				emit {DOS EPS Binary File}
				if {[N long 4 0 0 {} {} > 0]} {
					>
						emit {Postscript starts at byte %d}
						if {[N long 8 0 0 {} {} > 0]} {
							>
								emit {length %d}
								if {[N long 12 0 0 {} {} > 0]} {
									>
										emit {Metafile starts at byte %d}
										if {[N long 16 0 0 {} {} > 0]} {
											>
												emit {length %d}
											<
										}
	
									<
								}
	
								if {[N long 20 0 0 {} {} > 0]} {
									>
										emit {TIFF starts at byte %d}
										if {[N long 24 0 0 {} {} > 0]} {
											>
												emit {length %d}
											<
										}
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
		}
		-951729837 {
			>
				emit GEOS
				switch [Nv byte 40 0 {} {}] {
					1 {
						>
							emit executable
						<
					}
					2 {
						>
							emit VMFile
						<
					}
					3 {
						>
							emit binary
						<
					}
					4 {
						>
							emit {directory label}
						<
					}
				}
	
				if {[N byte 40 0 0 {} {} < 1]} {
					>
						emit unknown
					<
				}
	
				if {[N byte 40 0 0 {} {} > 4]} {
					>
						emit unknown
					<
				}
	
				if {[S string 4 0 {} {} > \0]} {
					>
						emit {\b, name "%s"}
					<
				}
	
			<
		}
		-938869246 {
			>
				emit {Bentley/Intergraph MicroStation DGN vector CAD}
			<
		}
		-889275714 {
			>
				if {[N belong 4 0 0 {} {} > 30]} {
					>
						emit {compiled Java class data,}
						if {[N beshort 6 0 0 {} {} x {}]} {
							>
								emit {version %d.}
							<
						}
	
						if {[N beshort 4 0 0 {} {} x {}]} {
							>
								emit {\b%d}
							<
						}
	
						switch [Nv belong 4 0 {} {}] {
							46 {
								>
									emit {(Java 1.2)}
								<
							}
							47 {
								>
									emit {(Java 1.3)}
								<
							}
							48 {
								>
									emit {(Java 1.4)}
								<
							}
							49 {
								>
									emit {(Java 1.5)}
								<
							}
							50 {
								>
									emit {(Java 1.6)}
								<
							}
							51 {
								>
									emit {(Java 1.7)}
								<
							}
							52 {
								>
									emit {(Java 1.8)}
								<
							}
						}
	
						mime application/x-java-applet
					<
				}
	
			<
			>
				if {[N belong 4 0 0 {} {} == 1]} {
					>
						emit {Mach-O universal binary with 1 architecture:}
						U 37 mach-o 8
	
						mime application/x-mach-binary
					<
				}
	
				if {[N belong 4 0 0 {} {} > 1]} {
					>
						if {[N belong 4 0 0 {} {} < 20]} {
							>
								emit {Mach-O universal binary with %d architectures:}
								U 37 mach-o 8
	
								mime application/x-mach-binary
							<
						}
	
						switch [Nv belong 4 0 {} {}] {
							2 {
								>
									U 37 mach-o 28
	
								<
							}
							3 {
								>
									U 37 mach-o 48
	
								<
							}
							4 {
								>
									U 37 mach-o 68
	
								<
							}
							5 {
								>
									U 37 mach-o 88
	
								<
							}
							6 {
								>
									U 37 mach-o 108
	
								<
							}
						}
	
					<
				}
	
			<
		}
		-889270259 {
			>
				emit {JAR compressed with pack200,}
				if {[N byte 5 0 0 {} {} x {}]} {
					>
						emit {version %d.}
					<
				}
	
				if {[N byte 4 0 0 {} {} x {}]} {
					>
						emit {\b%d}
						mime application/x-java-pack200
					<
				}
	
			<
			>
				emit {JAR compressed with pack200,}
				if {[N byte 5 0 0 {} {} x {}]} {
					>
						emit {version %d.}
					<
				}
	
				if {[N byte 4 0 0 {} {} x {}]} {
					>
						emit {\b%d}
						mime application/x-java-pack200
					<
				}
	
			<
		}
		-825307442 {
			>
				emit {Java JCE KeyStore}
				mime application/x-java-jce-keystore
			<
		}
		-804389139 {
			>
				if {[N byte [R [I 8 ubelong 0 + 0 0]] 0 0 {} {} x {}]} {
					>
						if {[N byte [R [I 12 ubelong 0 + 0 0]] 0 0 {} {} x {}]} {
							>
								if {[N belong 20 0 0 {} {} > 1]} {
									>
										emit {Device Tree Blob version %d}
										if {[N belong 4 0 0 {} {} x {}]} {
											>
												emit {\b, size=%d}
											<
										}
	
										if {[N belong 20 0 0 {} {} > 1]} {
											>
												if {[N belong 28 0 0 {} {} x {}]} {
													>
														emit {\b, boot CPU=%d}
													<
												}
	
											<
										}
	
										if {[N belong 20 0 0 {} {} > 2]} {
											>
												if {[N belong 32 0 0 {} {} x {}]} {
													>
														emit {\b, string block size=%d}
													<
												}
	
											<
										}
	
										if {[N belong 20 0 0 {} {} > 16]} {
											>
												if {[N belong 36 0 0 {} {} x {}]} {
													>
														emit {\b, DT structure block size=%d}
													<
												}
	
											<
										}
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
		}
		-772666102 {
			>
				emit {python 2.6 byte-compiled}
			<
		}
		-559043264 {
			>
				emit {IRIX 64-bit core dump}
				if {[N belong 4 0 0 {} {} == 1]} {
					>
						emit of
					<
				}
	
				if {[S string 16 0 {} {} > \0]} {
					>
						emit '%s'
					<
				}
	
			<
		}
		-559043152 {
			>
				emit {IRIX core dump}
				if {[N belong 4 0 0 {} {} == 1]} {
					>
						emit of
					<
				}
	
				if {[S string 16 0 {} {} > \0]} {
					>
						emit '%s'
					<
				}
	
			<
		}
		-559039810 {
			>
				emit {IRIX Parallel Arena}
				if {[N belong 8 0 0 {} {} > 0]} {
					>
						emit {- version %d}
					<
				}
	
			<
		}
		-364936773 {
			>
				emit {Conary changeset data}
			<
		}
		-307499301 {
			>
				emit RPM
				mime application/x-rpm
				if {[N byte 4 0 0 {} {} x {}]} {
					>
						emit v%d
					<
				}
	
				if {[N byte 5 0 0 {} {} x {}]} {
					>
						emit {\b.%d}
					<
				}
	
				switch [Nv beshort 6 0 {} {}] {
					0 {
						>
							emit bin
							switch [Nv beshort 8 0 {} {}] {
								1 {
									>
										emit i386/x86_64
									<
								}
								2 {
									>
										emit Alpha/Sparc64
									<
								}
								3 {
									>
										emit Sparc
									<
								}
								4 {
									>
										emit MIPS
									<
								}
								5 {
									>
										emit PowerPC
									<
								}
								6 {
									>
										emit 68000
									<
								}
								7 {
									>
										emit SGI
									<
								}
								8 {
									>
										emit RS6000
									<
								}
								9 {
									>
										emit IA64
									<
								}
								10 {
									>
										emit Sparc64
									<
								}
								11 {
									>
										emit MIPSel
									<
								}
								12 {
									>
										emit ARM
									<
								}
								13 {
									>
										emit MiNT
									<
								}
								14 {
									>
										emit S/390
									<
								}
								15 {
									>
										emit S/390x
									<
								}
								16 {
									>
										emit PowerPC64
									<
								}
								17 {
									>
										emit SuperH
									<
								}
								18 {
									>
										emit Xtensa
									<
								}
								255 {
									>
										emit noarch
									<
								}
							}
	
						<
					}
					1 {
						>
							emit src
						<
					}
				}
	
			<
		}
		-302060034 {
			>
				emit {Sun 'jks' Java Keystore File data}
			<
		}
		-301200118 {
			>
				emit {python 3.4 byte-compiled}
			<
		}
		-249691108 {
			>
				emit {magic binary file for file(1) cmd}
				if {[N belong 4 0 0 {} {} x {}]} {
					>
						emit {(version %d) (big endian)}
					<
				}
	
			<
		}
		-86111232 {
			>
				emit {Mac OS X Code Requirement}
				if {[N belong 8 0 0 {} {} == 1]} {
					>
						emit (opExpr)
					<
				}
	
				if {[N belong 4 0 0 {} {} x {}]} {
					>
						emit {- %d bytes}
					<
				}
	
			<
		}
		-86111231 {
			>
				emit {Mac OS X Code Requirement Set}
				if {[N belong 8 0 0 {} {} > 1]} {
					>
						emit {containing %d items}
					<
				}
	
				if {[N belong 4 0 0 {} {} x {}]} {
					>
						emit {- %d bytes}
					<
				}
	
			<
		}
		-86111230 {
			>
				emit {Mac OS X Code Directory}
				if {[N belong 8 0 0 {} {} x {}]} {
					>
						emit {version %x}
					<
				}
	
				if {[N belong 12 0 0 {} {} > 0]} {
					>
						emit {flags 0x%x}
					<
				}
	
				if {[N belong 4 0 0 {} {} x {}]} {
					>
						emit {- %d bytes}
					<
				}
	
			<
		}
		-86111040 {
			>
				emit {Mac OS X Detached Code Signature (non-executable)}
				if {[N belong 4 0 0 {} {} x {}]} {
					>
						emit {- %d bytes}
					<
				}
	
			<
		}
		-86111039 {
			>
				emit {Mac OS X Detached Code Signature}
				if {[N belong 8 0 0 {} {} > 1]} {
					>
						emit {(%d elements)}
					<
				}
	
				if {[N belong 4 0 0 {} {} x {}]} {
					>
						emit {- %d bytes}
					<
				}
	
			<
		}
		-17957139 {
			>
				emit {Java KeyStore}
				mime application/x-java-keystore
			<
		}
		-12432129 {
			>
				emit {WRAptor packer (c64)}
			<
		}
		-12169394 {
			>
				emit {DOS code page font data collection}
			<
		}
		-11534511 {
			>
				emit {JPEG 2000 codestream}
			<
		}
		-65536 {
			>
				if {[N belong 24 0 0 {} {} == 0]} {
					>
						if {[N belong 28 0 0 {} {} == 0]} {
							>
								if {[N belong 32792 0 0 {} {} == 1562156707]} {
									>
										emit {Nintendo Wii SDK disc image:}
										U 51 nintendo-gcn-disc-common 32768
	
									<
								}
	
								if {[N belong 32796 0 0 {} {} == -1036804291]} {
									>
										emit {Nintendo GameCube SDK disc image:}
										U 51 nintendo-gcn-disc-common 32768
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
		}
		1 {
			>
				if {[N byte 4 0 0 & 31 == 7]} {
					>
						emit {JVT NAL sequence, H.264 video}
						switch [Nv byte 5 0 {} {}] {
							66 {
18616
18617
18618
18619
18620
18621
18622
18623
18624
18625
18626
18627
18628
18629
18630
	
				if {[N belong 88 0 0 {} {} & 8]} {
					>
						emit POSIX
					<
				}
	
				if {[N belong 84 0 0 {} {} & 2147483648]} {
					>
						emit executable
					<
				}
	
				if {[N belong 84 0 0 {} {} & 1073741824]} {
					>







|







19471
19472
19473
19474
19475
19476
19477
19478
19479
19480
19481
19482
19483
19484
19485
	
				if {[N belong 88 0 0 {} {} & 8]} {
					>
						emit POSIX
					<
				}
	
				if {[N belong 84 0 0 {} {} & -2147483648]} {
					>
						emit executable
					<
				}
	
				if {[N belong 84 0 0 {} {} & 1073741824]} {
					>
19647
19648
19649
19650
19651
19652
19653
19654
19655
19656
19657
19658
19659
19660
19661
	
				if {[N beshort 6 0 0 {} {} > 0]} {
					>
						emit {- highwater %d}
					<
				}
	
				if {[N belong 8 0 0 {} {} & 2147483648]} {
					>
						emit {save fp regs}
					<
				}
	
				if {[N belong 8 0 0 {} {} & 536870912]} {
					>







|







20502
20503
20504
20505
20506
20507
20508
20509
20510
20511
20512
20513
20514
20515
20516
	
				if {[N beshort 6 0 0 {} {} > 0]} {
					>
						emit {- highwater %d}
					<
				}
	
				if {[N belong 8 0 0 {} {} & -2147483648]} {
					>
						emit {save fp regs}
					<
				}
	
				if {[N belong 8 0 0 {} {} & 536870912]} {
					>
19676
19677
19678
19679
19680
19681
19682
19683
19684
19685
19686
19687
19688
19689
19690
				emit {HP s200 executable}
				if {[N beshort 4 0 0 {} {} > 0]} {
					>
						emit {- version %d}
					<
				}
	
				if {[N belong 8 0 0 {} {} & 2147483648]} {
					>
						emit {save fp regs}
					<
				}
	
				if {[N belong 8 0 0 {} {} & 1073741824]} {
					>







|







20531
20532
20533
20534
20535
20536
20537
20538
20539
20540
20541
20542
20543
20544
20545
				emit {HP s200 executable}
				if {[N beshort 4 0 0 {} {} > 0]} {
					>
						emit {- version %d}
					<
				}
	
				if {[N belong 8 0 0 {} {} & -2147483648]} {
					>
						emit {save fp regs}
					<
				}
	
				if {[N belong 8 0 0 {} {} & 1073741824]} {
					>
19711
19712
19713
19714
19715
19716
19717
19718
19719
19720
19721
19722
19723
19724
19725
				emit {HP s200 pure executable}
				if {[N beshort 4 0 0 {} {} > 0]} {
					>
						emit {- version %d}
					<
				}
	
				if {[N belong 8 0 0 {} {} & 2147483648]} {
					>
						emit {save fp regs}
					<
				}
	
				if {[N belong 8 0 0 {} {} & 1073741824]} {
					>







|







20566
20567
20568
20569
20570
20571
20572
20573
20574
20575
20576
20577
20578
20579
20580
				emit {HP s200 pure executable}
				if {[N beshort 4 0 0 {} {} > 0]} {
					>
						emit {- version %d}
					<
				}
	
				if {[N belong 8 0 0 {} {} & -2147483648]} {
					>
						emit {save fp regs}
					<
				}
	
				if {[N belong 8 0 0 {} {} & 1073741824]} {
					>
19746
19747
19748
19749
19750
19751
19752
19753
19754
19755
19756
19757
19758
19759
19760
				emit {HP s200 demand-load executable}
				if {[N beshort 4 0 0 {} {} > 0]} {
					>
						emit {- version %d}
					<
				}
	
				if {[N belong 8 0 0 {} {} & 2147483648]} {
					>
						emit {save fp regs}
					<
				}
	
				if {[N belong 8 0 0 {} {} & 1073741824]} {
					>







|







20601
20602
20603
20604
20605
20606
20607
20608
20609
20610
20611
20612
20613
20614
20615
				emit {HP s200 demand-load executable}
				if {[N beshort 4 0 0 {} {} > 0]} {
					>
						emit {- version %d}
					<
				}
	
				if {[N belong 8 0 0 {} {} & -2147483648]} {
					>
						emit {save fp regs}
					<
				}
	
				if {[N belong 8 0 0 {} {} & 1073741824]} {
					>
21119
21120
21121
21122
21123
21124
21125
21126
21127
21128
21129
21130
21131
21132
21133
21134
21135
21136
21137
21138
21139
21140
21141
21142
21143
21144
21145
21146
21147
21148
21149
21150
21151
21152
21153
21154
21155
21156
21157
21158
21159
21160
21161
21162
21163
21164
21165
21166
21167
21168
21169
21170
21171
21172
21173
21174
21175
21176
21177
21178
21179
21180
21181
21182
21183
21184
21185
21186
21187
21188
21189
21190
21191
21192
21193
21194
21195
21196
21197
21198
21199
21200
21201
21202
21203
21204
21205
21206
21207
21208
21209
21210
21211
21212
21213
21214
21215
21216
21217
21218
21219
21220
21221
21222
21223
21224
21225
21226
21227
21228
21229
21230
21231
21232
21233
21234
21235
21236
21237
21238
21239
21240
21241
21242
21243
21244
21245
21246
21247
21248
21249
21250
21251
21252
21253
21254
21255
21256
21257
21258
21259
21260
21261
21262
21263
21264
21265
21266
21267
21268
21269
21270
21271
21272
21273
21274
21275
21276
21277
21278
21279
21280
21281
21282
21283
21284
21285
21286
21287
21288
21289
21290
21291
21292
21293
21294
21295
21296
21297
21298
21299
21300
21301
21302
21303
21304
21305
21306
21307
21308
21309
21310
21311
21312
21313
21314
21315
21316
21317
21318
21319
21320
21321
21322
21323
21324
21325
21326
21327
21328
21329
21330
21331
21332
21333
21334
21335
21336
21337
21338
21339
21340
21341
21342
21343
21344
21345
21346
21347
21348
21349
21350
21351
21352
21353
21354
21355
21356
21357
21358
21359
21360
21361
21362
21363
21364
21365
21366
21367
21368
21369
21370
21371
21372
21373
21374
21375
21376
21377
21378
21379
21380
21381
21382
21383
21384
21385
21386
21387
21388
21389
21390
21391
21392
21393
21394
21395
21396
21397
21398
21399
21400
21401
21402
21403
21404
21405
21406
21407
21408
21409
21410
21411
21412
21413
21414
21415
21416
21417
21418
21419
21420
21421
21422
21423
21424
21425
21426
21427
21428
21429
21430
21431
21432
21433
21434
21435
21436
21437
21438
21439
21440
21441
21442
21443
21444
21445
21446
21447
21448
21449
21450
21451
21452
21453
21454
21455
21456
21457
21458
21459
21460
21461
21462
21463
21464
21465
21466
21467
21468
21469
21470
21471
21472
21473
21474
21475
21476
21477
21478
21479
21480
21481
21482
21483
21484
21485
21486
21487
21488
21489
21490
21491
21492
21493
21494
21495
21496
21497
21498
21499
21500
21501
21502
21503
21504
21505
21506
21507
21508
21509
21510
21511
21512
21513
21514
21515
21516
21517
21518
21519
21520
21521
21522
21523
21524
21525
21526
21527
21528
21529
21530
21531
21532
21533
21534
21535
21536
21537
21538
21539
21540
21541
21542
21543
21544
21545
21546
21547
21548
21549
21550
21551
21552
21553
21554
21555
21556
21557
21558
21559
21560
21561
21562
21563
21564
21565
21566
21567
21568
21569
21570
21571
21572
21573
21574
21575
21576
21577
21578
21579
21580
21581
21582
21583
21584
21585
21586
21587
21588
21589
21590
21591
21592
21593
21594
21595
21596
21597
21598
21599
21600
21601
21602
21603
21604
21605
21606
21607
21608
21609
21610
21611
21612
21613
21614
21615
21616
21617
21618
21619
21620
21621
21622
21623
21624
21625
21626
21627
21628
21629
21630
21631
21632
21633
21634
21635
21636
21637
21638
21639
21640
21641
21642
21643
21644
21645
21646
21647
21648
21649
21650
21651
21652
21653
21654
21655
21656
21657
21658
21659
21660
21661
21662
21663
21664
21665
21666
21667
21668
21669
21670
21671
21672
21673
21674
21675
21676
21677
21678
21679
21680
21681
21682
21683
21684
21685
21686
21687
21688
21689
21690
21691
21692
21693
21694
21695
21696
21697
21698
21699
21700
21701
21702
21703
21704
21705
21706
21707
21708
21709
21710
21711
21712
21713
21714
21715
21716
21717
21718
21719
21720
21721
21722
21723
21724
21725
21726
21727
21728
21729
21730
21731
21732
21733
21734
21735
21736
21737
21738
21739
21740
21741
21742
21743
21744
21745
21746
21747
21748
21749
21750
21751
21752
21753
21754
21755
21756
21757
21758
21759
21760
21761
21762
21763
21764
21765
21766
21767
21768
21769
21770
21771
21772
21773
21774
21775
21776
21777
21778
21779
21780
21781
21782
21783
21784
21785
21786
21787
21788
21789
21790
21791
21792
21793
21794
21795
21796
21797
21798
21799
21800
21801
21802
21803
21804
21805
21806
21807
21808
21809
21810
21811
21812
21813
21814
21815
21816
21817
21818
21819
21820
21821
21822
21823
21824
21825
21826
21827
21828
21829
21830
21831
21832
21833
21834
21835
21836
21837
21838
21839
21840
21841
21842
21843
21844
21845
21846
21847
21848
21849
21850
21851
21852
21853
21854
21855
21856
21857
21858
21859
21860
21861
21862
21863
21864
21865
21866
21867
21868
21869
21870
21871
21872
21873
21874
21875
21876
21877
21878
21879
21880
21881
21882
21883
21884
21885
21886
21887
21888
21889
21890
21891
21892
21893
21894
21895
21896
21897
21898
21899
21900
21901
21902
21903
21904
21905
21906
21907
21908
21909
21910
21911
21912
21913
21914
21915
21916
21917
21918
21919
21920
21921
21922
21923
21924
21925
21926
21927
21928
21929
21930
21931
21932
21933
21934
21935
21936
21937
21938
21939
21940
21941
21942
21943
21944
21945
21946
21947
21948
21949
21950
21951
21952
21953
21954
21955
21956
21957
21958
21959
21960
21961
21962
21963
21964
21965
21966
21967
21968
21969
21970
21971
21972
21973
21974
21975
21976
21977
21978
21979
21980
21981
21982
21983
21984
	
				if {[N byte 36 0 0 {} {} x {}]} {
					>
						emit {\b.%d}
					<
				}
	
			<
		}
		-2147479551 {
			>
				emit {AmigaOS outline tag}
			<
		}
		-2017063670 {
			>
				emit {python 2.0 byte-compiled}
			<
		}
		-1991489968 {
			>
				if {[N belong 4 0 0 {} {} == 218765834]} {
					>
					<
				}
	
				if {[N belong 12 0 0 {} {} == 0]} {
					>
						emit {Lytro Light Field Picture}
					<
				}
	
				if {[N belong 8 0 0 {} {} x {}]} {
					>
						emit {\b, version %d}
					<
				}
	
			<
		}
		-1728153892 {
			>
				if {[N ubeshort 4 0 0 {} {} < 10]} {
					>
						emit {APT cache data, version %u}
						if {[N ubeshort 6 0 0 {} {} x {}]} {
							>
								emit {\b.%u, 32 bit big-endian}
							<
						}
	
						U 15 apt-cache-32bit-be 0
	
					<
				}
	
				if {[N ubyte 4 0 0 {} {} > 9]} {
					>
						emit {APT cache data, version %u}
						if {[N ubyte 5 0 0 {} {} x {}]} {
							>
								emit {\b.%u, big-endian}
							<
						}
	
						U 15 apt-cache-be 0
	
					<
				}
	
			<
		}
		-1722938102 {
			>
				emit {python 1.5/1.6 byte-compiled}
			<
		}
		-1643377398 {
			>
				emit {python 3.3 byte-compiled}
			<
		}
		-1374734174 {
			>
				if {[N belong 12 0 0 {} {} == 1048576]} {
					>
						if {[N belong [I 8 ubelong 0 + 0 28] 0 0 {} {} == 3258163005]} {
							>
								emit {Nintendo GameCube embedded disc image:}
								U 51 nintendo-gcn-disc-common [I 8 ubelong 0 + 0 0]
	
								mime application/x-gamecube-rom
							<
						}
	
					<
				}
	
			<
		}
		-1275982582 {
			>
				emit {python 2.5 byte-compiled}
			<
		}
		-1195374706 {
			>
				emit {Linux kernel}
				if {[S string 483 0 {} {} eq Loading]} {
					>
						emit {version 1.3.79 or older}
					<
				}
	
				if {[S string 489 0 {} {} eq Loading]} {
					>
						emit {from prehistoric times}
					<
				}
	
			<
			>
				emit Linux
				if {[N belong 486 0 0 {} {} == 1162627923]} {
					>
						emit {ELKS Kernel}
					<
				}
	
				if {[N belong 486 0 0 {} {} != 1162627923]} {
					>
						emit {style boot sector}
					<
				}
	
			<
		}
		-1161903941 {
			>
				emit {IRIX N32 core dump}
				if {[N belong 4 0 0 {} {} == 1]} {
					>
						emit of
					<
				}
	
				if {[S string 16 0 {} {} > \0]} {
					>
						emit '%s'
					<
				}
	
			<
		}
		-1059131379 {
			>
				emit {GStreamer binary registry}
				if {[S string 4 0 {} {} x {}]} {
					>
						emit {\b, version %s}
					<
				}
	
			<
		}
		-1040441407 {
			>
				emit {Common Trace Format (CTF) trace data (BE)}
			<
		}
		-976170042 {
			>
				emit {DOS EPS Binary File}
				mime image/x-eps
				if {[N long 4 0 0 {} {} > 0]} {
					>
						emit {Postscript starts at byte %d}
						if {[N long 8 0 0 {} {} > 0]} {
							>
								emit {length %d}
								if {[N long 12 0 0 {} {} > 0]} {
									>
										emit {Metafile starts at byte %d}
										if {[N long 16 0 0 {} {} > 0]} {
											>
												emit {length %d}
											<
										}
	
									<
								}
	
								if {[N long 20 0 0 {} {} > 0]} {
									>
										emit {TIFF starts at byte %d}
										if {[N long 24 0 0 {} {} > 0]} {
											>
												emit {length %d}
											<
										}
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
			>
				emit {DOS EPS Binary File}
				if {[N long 4 0 0 {} {} > 0]} {
					>
						emit {Postscript starts at byte %d}
						if {[N long 8 0 0 {} {} > 0]} {
							>
								emit {length %d}
								if {[N long 12 0 0 {} {} > 0]} {
									>
										emit {Metafile starts at byte %d}
										if {[N long 16 0 0 {} {} > 0]} {
											>
												emit {length %d}
											<
										}
	
									<
								}
	
								if {[N long 20 0 0 {} {} > 0]} {
									>
										emit {TIFF starts at byte %d}
										if {[N long 24 0 0 {} {} > 0]} {
											>
												emit {length %d}
											<
										}
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
		}
		-951729837 {
			>
				emit GEOS
				switch [Nv byte 40 0 {} {}] {
					1 {
						>
							emit executable
						<
					}
					2 {
						>
							emit VMFile
						<
					}
					3 {
						>
							emit binary
						<
					}
					4 {
						>
							emit {directory label}
						<
					}
				}
	
				if {[N byte 40 0 0 {} {} < 1]} {
					>
						emit unknown
					<
				}
	
				if {[N byte 40 0 0 {} {} > 4]} {
					>
						emit unknown
					<
				}
	
				if {[S string 4 0 {} {} > \0]} {
					>
						emit {\b, name "%s"}
					<
				}
	
			<
		}
		-938869246 {
			>
				emit {Bentley/Intergraph MicroStation DGN vector CAD}
			<
		}
		-889275714 {
			>
				if {[N belong 4 0 0 {} {} > 30]} {
					>
						emit {compiled Java class data,}
						if {[N beshort 6 0 0 {} {} x {}]} {
							>
								emit {version %d.}
							<
						}
	
						if {[N beshort 4 0 0 {} {} x {}]} {
							>
								emit {\b%d}
							<
						}
	
						switch [Nv belong 4 0 {} {}] {
							46 {
								>
									emit {(Java 1.2)}
								<
							}
							47 {
								>
									emit {(Java 1.3)}
								<
							}
							48 {
								>
									emit {(Java 1.4)}
								<
							}
							49 {
								>
									emit {(Java 1.5)}
								<
							}
							50 {
								>
									emit {(Java 1.6)}
								<
							}
							51 {
								>
									emit {(Java 1.7)}
								<
							}
							52 {
								>
									emit {(Java 1.8)}
								<
							}
						}
	
						mime application/x-java-applet
					<
				}
	
			<
			>
				if {[N belong 4 0 0 {} {} == 1]} {
					>
						emit {Mach-O universal binary with 1 architecture:}
						U 37 mach-o 8
	
						mime application/x-mach-binary
					<
				}
	
				if {[N belong 4 0 0 {} {} > 1]} {
					>
						if {[N belong 4 0 0 {} {} < 20]} {
							>
								emit {Mach-O universal binary with %d architectures:}
								U 37 mach-o 8
	
								mime application/x-mach-binary
							<
						}
	
						switch [Nv belong 4 0 {} {}] {
							2 {
								>
									U 37 mach-o 28
	
								<
							}
							3 {
								>
									U 37 mach-o 48
	
								<
							}
							4 {
								>
									U 37 mach-o 68
	
								<
							}
							5 {
								>
									U 37 mach-o 88
	
								<
							}
							6 {
								>
									U 37 mach-o 108
	
								<
							}
						}
	
					<
				}
	
			<
		}
		-889270259 {
			>
				emit {JAR compressed with pack200,}
				if {[N byte 5 0 0 {} {} x {}]} {
					>
						emit {version %d.}
					<
				}
	
				if {[N byte 4 0 0 {} {} x {}]} {
					>
						emit {\b%d}
						mime application/x-java-pack200
					<
				}
	
			<
			>
				emit {JAR compressed with pack200,}
				if {[N byte 5 0 0 {} {} x {}]} {
					>
						emit {version %d.}
					<
				}
	
				if {[N byte 4 0 0 {} {} x {}]} {
					>
						emit {\b%d}
						mime application/x-java-pack200
					<
				}
	
			<
		}
		-825307442 {
			>
				emit {Java JCE KeyStore}
				mime application/x-java-jce-keystore
			<
		}
		-804389139 {
			>
				if {[N byte [R [I 8 ubelong 0 + 0 0]] 0 0 {} {} x {}]} {
					>
						if {[N byte [R [I 12 ubelong 0 + 0 0]] 0 0 {} {} x {}]} {
							>
								if {[N belong 20 0 0 {} {} > 1]} {
									>
										emit {Device Tree Blob version %d}
										if {[N belong 4 0 0 {} {} x {}]} {
											>
												emit {\b, size=%d}
											<
										}
	
										if {[N belong 20 0 0 {} {} > 1]} {
											>
												if {[N belong 28 0 0 {} {} x {}]} {
													>
														emit {\b, boot CPU=%d}
													<
												}
	
											<
										}
	
										if {[N belong 20 0 0 {} {} > 2]} {
											>
												if {[N belong 32 0 0 {} {} x {}]} {
													>
														emit {\b, string block size=%d}
													<
												}
	
											<
										}
	
										if {[N belong 20 0 0 {} {} > 16]} {
											>
												if {[N belong 36 0 0 {} {} x {}]} {
													>
														emit {\b, DT structure block size=%d}
													<
												}
	
											<
										}
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
		}
		-772666102 {
			>
				emit {python 2.6 byte-compiled}
			<
		}
		-559043264 {
			>
				emit {IRIX 64-bit core dump}
				if {[N belong 4 0 0 {} {} == 1]} {
					>
						emit of
					<
				}
	
				if {[S string 16 0 {} {} > \0]} {
					>
						emit '%s'
					<
				}
	
			<
		}
		-559043152 {
			>
				emit {IRIX core dump}
				if {[N belong 4 0 0 {} {} == 1]} {
					>
						emit of
					<
				}
	
				if {[S string 16 0 {} {} > \0]} {
					>
						emit '%s'
					<
				}
	
			<
		}
		-559039810 {
			>
				emit {IRIX Parallel Arena}
				if {[N belong 8 0 0 {} {} > 0]} {
					>
						emit {- version %d}
					<
				}
	
			<
		}
		-364936773 {
			>
				emit {Conary changeset data}
			<
		}
		-307499301 {
			>
				emit RPM
				mime application/x-rpm
				if {[N byte 4 0 0 {} {} x {}]} {
					>
						emit v%d
					<
				}
	
				if {[N byte 5 0 0 {} {} x {}]} {
					>
						emit {\b.%d}
					<
				}
	
				switch [Nv beshort 6 0 {} {}] {
					0 {
						>
							emit bin
							switch [Nv beshort 8 0 {} {}] {
								1 {
									>
										emit i386/x86_64
									<
								}
								2 {
									>
										emit Alpha/Sparc64
									<
								}
								3 {
									>
										emit Sparc
									<
								}
								4 {
									>
										emit MIPS
									<
								}
								5 {
									>
										emit PowerPC
									<
								}
								6 {
									>
										emit 68000
									<
								}
								7 {
									>
										emit SGI
									<
								}
								8 {
									>
										emit RS6000
									<
								}
								9 {
									>
										emit IA64
									<
								}
								10 {
									>
										emit Sparc64
									<
								}
								11 {
									>
										emit MIPSel
									<
								}
								12 {
									>
										emit ARM
									<
								}
								13 {
									>
										emit MiNT
									<
								}
								14 {
									>
										emit S/390
									<
								}
								15 {
									>
										emit S/390x
									<
								}
								16 {
									>
										emit PowerPC64
									<
								}
								17 {
									>
										emit SuperH
									<
								}
								18 {
									>
										emit Xtensa
									<
								}
								255 {
									>
										emit noarch
									<
								}
							}
	
						<
					}
					1 {
						>
							emit src
						<
					}
				}
	
			<
		}
		-302060034 {
			>
				emit {Sun 'jks' Java Keystore File data}
			<
		}
		-301200118 {
			>
				emit {python 3.4 byte-compiled}
			<
		}
		-249691108 {
			>
				emit {magic binary file for file(1) cmd}
				if {[N belong 4 0 0 {} {} x {}]} {
					>
						emit {(version %d) (big endian)}
					<
				}
	
			<
		}
		-86111232 {
			>
				emit {Mac OS X Code Requirement}
				if {[N belong 8 0 0 {} {} == 1]} {
					>
						emit (opExpr)
					<
				}
	
				if {[N belong 4 0 0 {} {} x {}]} {
					>
						emit {- %d bytes}
					<
				}
	
			<
		}
		-86111231 {
			>
				emit {Mac OS X Code Requirement Set}
				if {[N belong 8 0 0 {} {} > 1]} {
					>
						emit {containing %d items}
					<
				}
	
				if {[N belong 4 0 0 {} {} x {}]} {
					>
						emit {- %d bytes}
					<
				}
	
			<
		}
		-86111230 {
			>
				emit {Mac OS X Code Directory}
				if {[N belong 8 0 0 {} {} x {}]} {
					>
						emit {version %x}
					<
				}
	
				if {[N belong 12 0 0 {} {} > 0]} {
					>
						emit {flags 0x%x}
					<
				}
	
				if {[N belong 4 0 0 {} {} x {}]} {
					>
						emit {- %d bytes}
					<
				}
	
			<
		}
		-86111040 {
			>
				emit {Mac OS X Detached Code Signature (non-executable)}
				if {[N belong 4 0 0 {} {} x {}]} {
					>
						emit {- %d bytes}
					<
				}
	
			<
		}
		-86111039 {
			>
				emit {Mac OS X Detached Code Signature}
				if {[N belong 8 0 0 {} {} > 1]} {
					>
						emit {(%d elements)}
					<
				}
	
				if {[N belong 4 0 0 {} {} x {}]} {
					>
						emit {- %d bytes}
					<
				}
	
			<
		}
		-17957139 {
			>
				emit {Java KeyStore}
				mime application/x-java-keystore
			<
		}
		-12432129 {
			>
				emit {WRAptor packer (c64)}
			<
		}
		-12169394 {
			>
				emit {DOS code page font data collection}
			<
		}
		-11534511 {
			>
				emit {JPEG 2000 codestream}
			<
		}
		-65536 {
			>
				if {[N belong 24 0 0 {} {} == 0]} {
					>
						if {[N belong 28 0 0 {} {} == 0]} {
							>
								if {[N belong 32792 0 0 {} {} == 1562156707]} {
									>
										emit {Nintendo Wii SDK disc image:}
										U 51 nintendo-gcn-disc-common 32768
	
									<
								}
	
								if {[N belong 32796 0 0 {} {} == 3258163005]} {
									>
										emit {Nintendo GameCube SDK disc image:}
										U 51 nintendo-gcn-disc-common 32768
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
		}
	}
	
	if {[S search 0 0 {} 8192 eq (input,]} {
		>
			emit {Algol 68 source text}







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







21974
21975
21976
21977
21978
21979
21980




















































































































































































































































































































































































































































































































































































































































































































































































































































































21981
21982
21983
21984
21985
21986
21987
	
				if {[N byte 36 0 0 {} {} x {}]} {
					>
						emit {\b.%d}
					<
				}
	




















































































































































































































































































































































































































































































































































































































































































































































































































































































			<
		}
	}
	
	if {[S search 0 0 {} 8192 eq (input,]} {
		>
			emit {Algol 68 source text}
22011
22012
22013
22014
22015
22016
22017







































22018
22019
22020
22021
22022
22023
22024
		>
			emit {Algol 68 source text}
			mime text/x-Algol68
		<
	}
	
	switch [Nv short 0 0 {} {}] {







































		256 {
			>
				if {[S search 2 0 {} 9 eq \0\0]} {
					>
					<
				}
	







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







22014
22015
22016
22017
22018
22019
22020
22021
22022
22023
22024
22025
22026
22027
22028
22029
22030
22031
22032
22033
22034
22035
22036
22037
22038
22039
22040
22041
22042
22043
22044
22045
22046
22047
22048
22049
22050
22051
22052
22053
22054
22055
22056
22057
22058
22059
22060
22061
22062
22063
22064
22065
22066
		>
			emit {Algol 68 source text}
			mime text/x-Algol68
		<
	}
	
	switch [Nv short 0 0 {} {}] {
		-21846 {
			>
				emit {SoftQuad DESC or font file binary}
				if {[N short 2 0 0 {} {} > 0]} {
					>
						emit {- version %d}
					<
				}
	
			<
		}
		-16166 {
			>
				emit {Compiled PSI (v2) data}
				if {[S string 3 0 {} {} > \0]} {
					>
						emit (%s)
					<
				}
	
			<
		}
		-16162 {
			>
				emit {Compiled PSI (v1) data}
			<
		}
		-14479 {
			>
				emit {byte-swapped cpio archive}
				mime {application/x-cpio # encoding: swapped}
			<
		}
		-13563 {
			>
				emit {huf output}
				mime application/octet-stream
			<
		}
		256 {
			>
				if {[S search 2 0 {} 9 eq \0\0]} {
					>
					<
				}
	
22531
22532
22533
22534
22535
22536
22537















22538
22539
22540
22541
22542
22543
22544
				emit {"compact bitmap" format (Poskanzer)}
			<
		}
		21845 {
			>
				emit {VISX image file}
				switch [Nv byte 2 0 {} {}] {















					0 {
						>
							emit (zero)
						<
					}
					1 {
						>







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







22573
22574
22575
22576
22577
22578
22579
22580
22581
22582
22583
22584
22585
22586
22587
22588
22589
22590
22591
22592
22593
22594
22595
22596
22597
22598
22599
22600
22601
				emit {"compact bitmap" format (Poskanzer)}
			<
		}
		21845 {
			>
				emit {VISX image file}
				switch [Nv byte 2 0 {} {}] {
					-126 {
						>
							emit (graph)
						<
					}
					-125 {
						>
							emit {(adjacency graph)}
						<
					}
					-124 {
						>
							emit {(adjacency graph library)}
						<
					}
					0 {
						>
							emit (zero)
						<
					}
					1 {
						>
22641
22642
22643
22644
22645
22646
22647
22648
22649
22650
22651
22652
22653
22654
22655
22656
22657
22658
22659
22660
22661
22662
22663
22664
22665
22666
22667
22668
22669
						<
					}
					126 {
						>
							emit {(bit vector)}
						<
					}
					-126 {
						>
							emit (graph)
						<
					}
					-125 {
						>
							emit {(adjacency graph)}
						<
					}
					-124 {
						>
							emit {(adjacency graph library)}
						<
					}
				}
	
				if {[S string 2 0 {} {} eq .VISIX]} {
					>
						emit {(ascii text)}
					<
				}







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







22698
22699
22700
22701
22702
22703
22704















22705
22706
22707
22708
22709
22710
22711
						<
					}
					126 {
						>
							emit {(bit vector)}
						<
					}















				}
	
				if {[S string 2 0 {} {} eq .VISIX]} {
					>
						emit {(ascii text)}
					<
				}
22677
22678
22679
22680
22681
22682
22683
22684
22685
22686
22687
22688
22689
22690
22691
22692
22693
22694
22695
22696
22697
22698
22699
22700
22701
22702
22703
22704
22705
22706
22707
22708
22709
22710
22711
22712
22713
22714
22715
22716
22717
22718
22719
22720
22721
22722
22723
22724
22725
22726
22727
22728
22729
		}
		29127 {
			>
				emit {cpio archive}
				mime application/x-cpio
			<
		}
		-21846 {
			>
				emit {SoftQuad DESC or font file binary}
				if {[N short 2 0 0 {} {} > 0]} {
					>
						emit {- version %d}
					<
				}
	
			<
		}
		-16166 {
			>
				emit {Compiled PSI (v2) data}
				if {[S string 3 0 {} {} > \0]} {
					>
						emit (%s)
					<
				}
	
			<
		}
		-16162 {
			>
				emit {Compiled PSI (v1) data}
			<
		}
		-14479 {
			>
				emit {byte-swapped cpio archive}
				mime {application/x-cpio # encoding: swapped}
			<
		}
		-13563 {
			>
				emit {huf output}
				mime application/octet-stream
			<
		}
	}
	
	if {[S string 0 0 {} {} eq AMANDA:\ ]} {
		>
			emit AMANDA
			if {[S string 8 0 {} {} eq TAPESTART\ DATE]} {
				>







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







22719
22720
22721
22722
22723
22724
22725







































22726
22727
22728
22729
22730
22731
22732
		}
		29127 {
			>
				emit {cpio archive}
				mime application/x-cpio
			<
		}







































	}
	
	if {[S string 0 0 {} {} eq AMANDA:\ ]} {
		>
			emit AMANDA
			if {[S string 8 0 {} {} eq TAPESTART\ DATE]} {
				>
23292
23293
23294
23295
23296
23297
23298























































































































































































































































































































































































































































































23299
23300
23301
23302
23303
23304
23305
			>
				emit {DR-DOS executable (COM)}
			<
		}
	}
	
	switch [Nv lelong 0 0 {} {}] {























































































































































































































































































































































































































































































		1 {
			>
				if {[N lelong 4 0 0 {} {} == 100]} {
					>
						if {[N lelong 8 0 0 {} {} == 10000]} {
							>
								if {[N lelong 12 0 0 {} {} == 50]} {







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







23295
23296
23297
23298
23299
23300
23301
23302
23303
23304
23305
23306
23307
23308
23309
23310
23311
23312
23313
23314
23315
23316
23317
23318
23319
23320
23321
23322
23323
23324
23325
23326
23327
23328
23329
23330
23331
23332
23333
23334
23335
23336
23337
23338
23339
23340
23341
23342
23343
23344
23345
23346
23347
23348
23349
23350
23351
23352
23353
23354
23355
23356
23357
23358
23359
23360
23361
23362
23363
23364
23365
23366
23367
23368
23369
23370
23371
23372
23373
23374
23375
23376
23377
23378
23379
23380
23381
23382
23383
23384
23385
23386
23387
23388
23389
23390
23391
23392
23393
23394
23395
23396
23397
23398
23399
23400
23401
23402
23403
23404
23405
23406
23407
23408
23409
23410
23411
23412
23413
23414
23415
23416
23417
23418
23419
23420
23421
23422
23423
23424
23425
23426
23427
23428
23429
23430
23431
23432
23433
23434
23435
23436
23437
23438
23439
23440
23441
23442
23443
23444
23445
23446
23447
23448
23449
23450
23451
23452
23453
23454
23455
23456
23457
23458
23459
23460
23461
23462
23463
23464
23465
23466
23467
23468
23469
23470
23471
23472
23473
23474
23475
23476
23477
23478
23479
23480
23481
23482
23483
23484
23485
23486
23487
23488
23489
23490
23491
23492
23493
23494
23495
23496
23497
23498
23499
23500
23501
23502
23503
23504
23505
23506
23507
23508
23509
23510
23511
23512
23513
23514
23515
23516
23517
23518
23519
23520
23521
23522
23523
23524
23525
23526
23527
23528
23529
23530
23531
23532
23533
23534
23535
23536
23537
23538
23539
23540
23541
23542
23543
23544
23545
23546
23547
23548
23549
23550
23551
23552
23553
23554
23555
23556
23557
23558
23559
23560
23561
23562
23563
23564
23565
23566
23567
23568
23569
23570
23571
23572
23573
23574
23575
23576
23577
23578
23579
23580
23581
23582
23583
23584
23585
23586
23587
23588
23589
23590
23591
23592
23593
23594
23595
23596
23597
23598
23599
23600
23601
23602
23603
23604
23605
23606
23607
23608
23609
23610
23611
23612
23613
23614
23615
23616
23617
23618
23619
23620
23621
23622
23623
23624
23625
23626
23627
23628
23629
23630
23631
23632
23633
23634
23635
23636
23637
23638
23639
23640
23641
23642
23643
23644
23645
23646
23647
23648
23649
23650
23651
23652
23653
23654
23655
23656
23657
23658
23659
23660
23661
23662
23663
23664
23665
23666
23667
23668
23669
23670
23671
23672
23673
23674
23675
23676
23677
23678
23679
23680
23681
23682
23683
23684
23685
23686
23687
23688
23689
23690
23691
23692
23693
23694
23695
23696
23697
23698
23699
23700
23701
23702
23703
23704
23705
23706
23707
23708
23709
23710
23711
23712
23713
23714
23715
23716
23717
23718
23719
23720
23721
23722
23723
23724
23725
23726
23727
23728
23729
23730
23731
23732
23733
23734
23735
23736
23737
23738
23739
23740
23741
23742
23743
23744
23745
23746
23747
23748
23749
23750
23751
23752
23753
23754
23755
23756
23757
23758
23759
23760
23761
23762
23763
23764
23765
23766
23767
23768
23769
23770
23771
23772
23773
23774
23775
23776
23777
23778
23779
			>
				emit {DR-DOS executable (COM)}
			<
		}
	}
	
	switch [Nv lelong 0 0 {} {}] {
		-2147417760 {
			>
				emit {MDEC video stream,}
				if {[N leshort 16 0 0 {} {} x {}]} {
					>
						emit %dx
					<
				}
	
				if {[N leshort 18 0 0 {} {} x {}]} {
					>
						emit {\b%d}
					<
				}
	
			<
		}
		-1728153892 {
			>
				if {[N uleshort 4 0 0 {} {} < 10]} {
					>
						emit {APT cache data, version %u}
						if {[N uleshort 6 0 0 {} {} x {}]} {
							>
								emit {\b.%u, 32 bit little-endian}
							<
						}
	
						U 15 apt-cache-32bit-be 0
	
					<
				}
	
				if {[N ubyte 4 0 0 {} {} > 9]} {
					>
						emit {APT cache data, version %u}
						if {[N ubyte 5 0 0 {} {} x {}]} {
							>
								emit {\b.%u, little-endian}
							<
						}
	
						U 15 apt-cache-be 0
	
					<
				}
	
			<
		}
		-1700603645 {
			>
				emit {Keepass password database}
				switch [Nv lelong 4 0 {} {}] {
					-1253311643 {
						>
							emit {1.x KDB}
							if {[N lelong 48 0 0 {} {} > 0]} {
								>
									emit {\b, %d groups}
								<
							}
	
							if {[N lelong 52 0 0 {} {} > 0]} {
								>
									emit {\b, %d entries}
								<
							}
	
							switch [Nv lelong 8 0 & 15] {
								1 {
									>
										emit {\b, SHA-256}
									<
								}
								2 {
									>
										emit {\b, AES}
									<
								}
								4 {
									>
										emit {\b, RC4}
									<
								}
								8 {
									>
										emit {\b, Twofish}
									<
								}
							}
	
							if {[N lelong 120 0 0 {} {} > 0]} {
								>
									emit {\b, %d key transformation rounds}
								<
							}
	
						<
					}
					-1253311641 {
						>
							emit {2.x KDBX}
						<
					}
				}
	
			<
		}
		-1641380927 {
			>
				emit {Unreal Engine Package,}
				if {[N leshort 4 0 0 {} {} x {}]} {
					>
						emit {version: %i}
					<
				}
	
				if {[N lelong 12 0 0 {} {} != 0]} {
					>
						emit {\b, names: %i}
					<
				}
	
				if {[N lelong 28 0 0 {} {} != 0]} {
					>
						emit {\b, imports: %i}
					<
				}
	
				if {[N lelong 20 0 0 {} {} != 0]} {
					>
						emit {\b, exports: %i}
					<
				}
	
			<
		}
		-1456779524 {
			>
				emit {Linux Software RAID}
				if {[N lelong 4 0 0 {} {} x {}]} {
					>
						emit {version 1.1 (%d)}
					<
				}
	
				U 129 linuxraid 0
	
			<
		}
		-1324630015 {
			>
				switch [Nv lelong 4 0 {} {}] {
					0 {
						>
							emit {Nintendo GameCube disc image (GCZ format)}
							mime application/x-gamecube-rom
						<
					}
					1 {
						>
							emit {Nintendo Wii disc image (GCZ format)}
							mime application/x-wii-rom
						<
					}
				}
	
				if {[D 4]} {
					>
						emit {Nintendo GameCube/Wii disc image (GCZ format)}
					<
				}
	
			<
		}
		-1040441407 {
			>
				emit {Common Trace Format (CTF) trace data (LE)}
			<
		}
		-681629056 {
			>
				emit {Cineon image data}
				if {[N belong 200 0 0 {} {} > 0]} {
					>
						emit {\b, %d x}
					<
				}
	
				if {[N belong 204 0 0 {} {} > 0]} {
					>
						emit %d
					<
				}
	
			<
		}
		-570294007 {
			>
				emit {locale archive}
				if {[N lelong 24 0 0 {} {} x {}]} {
					>
						emit {%d strings}
					<
				}
	
			<
		}
		-332356553 {
			>
				emit {Zstandard dictionary}
				mime application/x-zstd-dictionary
				if {[N lelong 4 0 0 {} {} x {}]} {
					>
						emit {(ID %u)}
					<
				}
	
			<
		}
		-316211398 {
			>
				emit {Android sparse image}
				if {[N leshort 4 0 0 {} {} x {}]} {
					>
						emit {\b, version: %d}
					<
				}
	
				if {[N leshort 6 0 0 {} {} x {}]} {
					>
						emit {\b.%d}
					<
				}
	
				if {[N lelong 16 0 0 {} {} x {}]} {
					>
						emit {\b, Total of %d}
					<
				}
	
				if {[N lelong 12 0 0 {} {} x {}]} {
					>
						emit {\b %d-byte output blocks in}
					<
				}
	
				if {[N lelong 20 0 0 {} {} x {}]} {
					>
						emit {\b %d input chunks.}
					<
				}
	
			<
		}
		-249691108 {
			>
				emit {magic binary file for file(1) cmd}
				if {[N lelong 4 0 0 {} {} x {}]} {
					>
						emit {(version %d) (little endian)}
					<
				}
	
			<
		}
		-109248628 {
			>
				emit {SE Linux policy}
				if {[N lelong 16 0 0 {} {} x {}]} {
					>
						emit v%d
					<
				}
	
				if {[N lelong 20 0 0 {} {} == 1]} {
					>
						emit MLS
					<
				}
	
				if {[N lelong 24 0 0 {} {} x {}]} {
					>
						emit {%d symbols}
					<
				}
	
				if {[N lelong 28 0 0 {} {} x {}]} {
					>
						emit {%d ocons}
					<
				}
	
			<
			>
				emit {SE Linux policy}
				if {[N lelong 16 0 0 {} {} x {}]} {
					>
						emit v%d
					<
				}
	
				if {[N lelong 20 0 0 {} {} == 1]} {
					>
						emit MLS
					<
				}
	
				if {[N lelong 24 0 0 {} {} x {}]} {
					>
						emit {%d symbols}
					<
				}
	
				if {[N lelong 28 0 0 {} {} x {}]} {
					>
						emit {%d ocons}
					<
				}
	
			<
			>
				emit {SE Linux policy}
				if {[N lelong 16 0 0 {} {} x {}]} {
					>
						emit v%d
					<
				}
	
				if {[N lelong 20 0 0 {} {} == 1]} {
					>
						emit MLS
					<
				}
	
				if {[N lelong 24 0 0 {} {} x {}]} {
					>
						emit {%d symbols}
					<
				}
	
				if {[N lelong 28 0 0 {} {} x {}]} {
					>
						emit {%d ocons}
					<
				}
	
			<
		}
		-109248625 {
			>
				emit {SE Linux modular policy}
				if {[N lelong 4 0 0 {} {} x {}]} {
					>
						emit {version %d,}
					<
				}
	
				if {[N lelong 8 0 0 {} {} x {}]} {
					>
						emit {%d sections,}
						if {[N lelong [I 12 ulelong 0 + 0 0] 0 0 {} {} == -109248627]} {
							>
								if {[N lelong [I 12 ulelong 0 + 0 27] 0 0 {} {} x {}]} {
									>
										emit {mod version %d,}
									<
								}
	
								switch [Nv lelong [I 12 ulelong 0 + 0 31] 0 {} {}] {
									0 {
										>
											emit {Not MLS,}
										<
									}
									1 {
										>
											emit MLS,
										<
									}
								}
	
								switch [Nv lelong [I 12 ulelong 0 + 0 23] 0 {} {}] {
									1 {
										>
											emit base
										<
									}
									2 {
										>
											if {[S string [I 12 ulelong 0 + 0 47] 0 {} {} > \0]} {
												>
													emit {module name %s}
												<
											}
	
										<
									}
								}
	
							<
						}
	
					<
				}
	
			<
		}
		-47205086 {
			>
				emit {Zstandard compressed data (v0.2)}
				mime application/x-zstd
			<
		}
		-47205085 {
			>
				emit {Zstandard compressed data (v0.3)}
				mime application/x-zstd
			<
		}
		-47205084 {
			>
				emit {Zstandard compressed data (v0.4)}
				mime application/x-zstd
			<
		}
		-47205083 {
			>
				emit {Zstandard compressed data (v0.5)}
				mime application/x-zstd
			<
		}
		-47205082 {
			>
				emit {Zstandard compressed data (v0.6)}
				mime application/x-zstd
			<
		}
		-47205081 {
			>
				emit {Zstandard compressed data (v0.7)}
				mime application/x-zstd
				U 50 zstd-dictionary-id 4
	
			<
		}
		-47205080 {
			>
				emit {Zstandard compressed data (v0.8+)}
				mime application/x-zstd
				U 50 zstd-dictionary-id 4
	
			<
		}
		-21555 {
			>
				emit {MLSSA datafile,}
				if {[N leshort 4 0 0 {} {} x {}]} {
					>
						emit {algorithm %d,}
					<
				}
	
				if {[N lelong 10 0 0 {} {} x {}]} {
					>
						emit {%d samples}
					<
				}
	
			<
		}
		1 {
			>
				if {[N lelong 4 0 0 {} {} == 100]} {
					>
						if {[N lelong 8 0 0 {} {} == 10000]} {
							>
								if {[N lelong 12 0 0 {} {} == 50]} {
23669
23670
23671
23672
23673
23674
23675
23676
23677
23678
23679
23680
23681
23682
23683
	
				if {[N leshort 30 0 0 {} {} & 16384]} {
					>
						emit V2.3
					<
				}
	
				if {[N leshort 30 0 0 {} {} & 32768]} {
					>
						emit V3.0
					<
				}
	
				if {[N byte 28 0 0 {} {} & 4]} {
					>







|







24143
24144
24145
24146
24147
24148
24149
24150
24151
24152
24153
24154
24155
24156
24157
	
				if {[N leshort 30 0 0 {} {} & 16384]} {
					>
						emit V2.3
					<
				}
	
				if {[N leshort 30 0 0 {} {} & -32768]} {
					>
						emit V3.0
					<
				}
	
				if {[N byte 28 0 0 {} {} & 4]} {
					>
24985
24986
24987
24988
24989
24990
24991
24992
24993
24994
24995
24996
24997
24998
24999
25000
25001
25002
25003
25004
25005
25006
25007
25008
25009
25010
25011
25012
25013
25014
25015
25016
25017
				emit {LZ4 compressed data (v1.4+)}
				mime application/x-lz4
			<
		}
		453186358 {
			>
				emit {L	Netboot image,}
				if {[N lelong 4 0 0 & 4294967040 == 0]} {
					>
						switch [Nv lelong 4 0 & 256] {
							0 {
								>
									emit {mode 2}
								<
							}
							256 {
								>
									emit {mode 3}
								<
							}
						}
	
					<
				}
	
				if {[N lelong 4 0 0 & 4294967040 != 0]} {
					>
						emit {unknown mode}
					<
				}
	
			<
		}







|

















|







25459
25460
25461
25462
25463
25464
25465
25466
25467
25468
25469
25470
25471
25472
25473
25474
25475
25476
25477
25478
25479
25480
25481
25482
25483
25484
25485
25486
25487
25488
25489
25490
25491
				emit {LZ4 compressed data (v1.4+)}
				mime application/x-lz4
			<
		}
		453186358 {
			>
				emit {L	Netboot image,}
				if {[N lelong 4 0 0 & -256 == 0]} {
					>
						switch [Nv lelong 4 0 & 256] {
							0 {
								>
									emit {mode 2}
								<
							}
							256 {
								>
									emit {mode 3}
								<
							}
						}
	
					<
				}
	
				if {[N lelong 4 0 0 & -256 != 0]} {
					>
						emit {unknown mode}
					<
				}
	
			<
		}
25304
25305
25306
25307
25308
25309
25310
25311
25312
25313
25314
25315
25316
25317
25318
25319
25320
25321
25322
25323
25324
25325
25326
25327
25328
25329
25330
25331
25332
25333
25334
25335
25336
25337
25338
25339
25340
25341
25342
25343
25344
25345
25346
25347
25348
25349
25350
25351
25352
25353
25354
25355
25356
25357
25358
25359
25360
25361
25362
25363
25364
25365
25366
25367
25368
25369
25370
25371
25372
25373
25374
25375
25376
25377
25378
25379
25380
25381
25382
25383
25384
25385
25386
25387
25388
25389
25390
25391
25392
25393
25394
25395
25396
25397
25398
25399
25400
25401
25402
25403
25404
25405
25406
25407
25408
25409
25410
25411
25412
25413
25414
25415
25416
25417
25418
25419
25420
25421
25422
25423
25424
25425
25426
25427
25428
25429
25430
25431
25432
25433
25434
25435
25436
25437
25438
25439
25440
25441
25442
25443
25444
25445
25446
25447
25448
25449
25450
25451
25452
25453
25454
25455
25456
25457
25458
25459
25460
25461
25462
25463
25464
25465
25466
25467
25468
25469
25470
25471
25472
25473
25474
25475
25476
25477
25478
25479
25480
25481
25482
25483
25484
25485
25486
25487
25488
25489
25490
25491
25492
25493
25494
25495
25496
25497
25498
25499
25500
25501
25502
25503
25504
25505
25506
25507
25508
25509
25510
25511
25512
25513
25514
25515
25516
25517
25518
25519
25520
25521
25522
25523
25524
25525
25526
25527
25528
25529
25530
25531
25532
25533
25534
25535
25536
25537
25538
25539
25540
25541
25542
25543
25544
25545
25546
25547
25548
25549
25550
25551
25552
25553
25554
25555
25556
25557
25558
25559
25560
25561
25562
25563
25564
25565
25566
25567
25568
25569
25570
25571
25572
25573
25574
25575
25576
25577
25578
25579
25580
25581
25582
25583
25584
25585
25586
25587
25588
25589
25590
25591
25592
25593
25594
25595
25596
25597
25598
25599
25600
25601
25602
25603
25604
25605
25606
25607
25608
25609
25610
25611
25612
25613
25614
25615
25616
25617
25618
25619
25620
25621
25622
25623
25624
25625
25626
25627
25628
25629
25630
25631
25632
25633
25634
25635
25636
25637
25638
25639
25640
25641
25642
25643
25644
25645
25646
25647
25648
25649
25650
25651
25652
25653
25654
25655
25656
25657
25658
25659
25660
25661
25662
25663
25664
25665
25666
25667
25668
25669
25670
25671
25672
25673
25674
25675
25676
25677
25678
25679
25680
25681
25682
25683
25684
25685
25686
25687
25688
25689
25690
25691
25692
25693
25694
25695
25696
25697
25698
25699
25700
25701
25702
25703
25704
25705
25706
25707
25708
25709
25710
25711
25712
25713
25714
25715
25716
25717
25718
25719
25720
25721
25722
25723
25724
25725
25726
25727
25728
25729
25730
25731
25732
25733
25734
25735
25736
25737
25738
25739
25740
25741
25742
25743
25744
25745
25746
25747
25748
25749
25750
25751
25752
25753
25754
25755
25756
25757
25758
25759
25760
25761
25762
25763
25764
25765
25766
25767
25768
25769
25770
25771
25772
25773
25774
25775
25776
25777
25778
25779
25780
25781
25782
25783
25784
25785
25786
25787
25788
	
				if {[N byte 36 0 0 {} {} x {}]} {
					>
						emit {\b.%d}
					<
				}
	
			<
		}
		-2147417760 {
			>
				emit {MDEC video stream,}
				if {[N leshort 16 0 0 {} {} x {}]} {
					>
						emit %dx
					<
				}
	
				if {[N leshort 18 0 0 {} {} x {}]} {
					>
						emit {\b%d}
					<
				}
	
			<
		}
		-1728153892 {
			>
				if {[N uleshort 4 0 0 {} {} < 10]} {
					>
						emit {APT cache data, version %u}
						if {[N uleshort 6 0 0 {} {} x {}]} {
							>
								emit {\b.%u, 32 bit little-endian}
							<
						}
	
						U 15 apt-cache-32bit-be 0
	
					<
				}
	
				if {[N ubyte 4 0 0 {} {} > 9]} {
					>
						emit {APT cache data, version %u}
						if {[N ubyte 5 0 0 {} {} x {}]} {
							>
								emit {\b.%u, little-endian}
							<
						}
	
						U 15 apt-cache-be 0
	
					<
				}
	
			<
		}
		-1700603645 {
			>
				emit {Keepass password database}
				switch [Nv lelong 4 0 {} {}] {
					-1253311643 {
						>
							emit {1.x KDB}
							if {[N lelong 48 0 0 {} {} > 0]} {
								>
									emit {\b, %d groups}
								<
							}
	
							if {[N lelong 52 0 0 {} {} > 0]} {
								>
									emit {\b, %d entries}
								<
							}
	
							switch [Nv lelong 8 0 & 15] {
								1 {
									>
										emit {\b, SHA-256}
									<
								}
								2 {
									>
										emit {\b, AES}
									<
								}
								4 {
									>
										emit {\b, RC4}
									<
								}
								8 {
									>
										emit {\b, Twofish}
									<
								}
							}
	
							if {[N lelong 120 0 0 {} {} > 0]} {
								>
									emit {\b, %d key transformation rounds}
								<
							}
	
						<
					}
					-1253311641 {
						>
							emit {2.x KDBX}
						<
					}
				}
	
			<
		}
		-1641380927 {
			>
				emit {Unreal Engine Package,}
				if {[N leshort 4 0 0 {} {} x {}]} {
					>
						emit {version: %i}
					<
				}
	
				if {[N lelong 12 0 0 {} {} != 0]} {
					>
						emit {\b, names: %i}
					<
				}
	
				if {[N lelong 28 0 0 {} {} != 0]} {
					>
						emit {\b, imports: %i}
					<
				}
	
				if {[N lelong 20 0 0 {} {} != 0]} {
					>
						emit {\b, exports: %i}
					<
				}
	
			<
		}
		-1456779524 {
			>
				emit {Linux Software RAID}
				if {[N lelong 4 0 0 {} {} x {}]} {
					>
						emit {version 1.1 (%d)}
					<
				}
	
				U 129 linuxraid 0
	
			<
		}
		-1324630015 {
			>
				switch [Nv lelong 4 0 {} {}] {
					0 {
						>
							emit {Nintendo GameCube disc image (GCZ format)}
							mime application/x-gamecube-rom
						<
					}
					1 {
						>
							emit {Nintendo Wii disc image (GCZ format)}
							mime application/x-wii-rom
						<
					}
				}
	
				if {[D 4]} {
					>
						emit {Nintendo GameCube/Wii disc image (GCZ format)}
					<
				}
	
			<
		}
		-1040441407 {
			>
				emit {Common Trace Format (CTF) trace data (LE)}
			<
		}
		-681629056 {
			>
				emit {Cineon image data}
				if {[N belong 200 0 0 {} {} > 0]} {
					>
						emit {\b, %d x}
					<
				}
	
				if {[N belong 204 0 0 {} {} > 0]} {
					>
						emit %d
					<
				}
	
			<
		}
		-570294007 {
			>
				emit {locale archive}
				if {[N lelong 24 0 0 {} {} x {}]} {
					>
						emit {%d strings}
					<
				}
	
			<
		}
		-332356553 {
			>
				emit {Zstandard dictionary}
				mime application/x-zstd-dictionary
				if {[N lelong 4 0 0 {} {} x {}]} {
					>
						emit {(ID %u)}
					<
				}
	
			<
		}
		-316211398 {
			>
				emit {Android sparse image}
				if {[N leshort 4 0 0 {} {} x {}]} {
					>
						emit {\b, version: %d}
					<
				}
	
				if {[N leshort 6 0 0 {} {} x {}]} {
					>
						emit {\b.%d}
					<
				}
	
				if {[N lelong 16 0 0 {} {} x {}]} {
					>
						emit {\b, Total of %d}
					<
				}
	
				if {[N lelong 12 0 0 {} {} x {}]} {
					>
						emit {\b %d-byte output blocks in}
					<
				}
	
				if {[N lelong 20 0 0 {} {} x {}]} {
					>
						emit {\b %d input chunks.}
					<
				}
	
			<
		}
		-249691108 {
			>
				emit {magic binary file for file(1) cmd}
				if {[N lelong 4 0 0 {} {} x {}]} {
					>
						emit {(version %d) (little endian)}
					<
				}
	
			<
		}
		-109248628 {
			>
				emit {SE Linux policy}
				if {[N lelong 16 0 0 {} {} x {}]} {
					>
						emit v%d
					<
				}
	
				if {[N lelong 20 0 0 {} {} == 1]} {
					>
						emit MLS
					<
				}
	
				if {[N lelong 24 0 0 {} {} x {}]} {
					>
						emit {%d symbols}
					<
				}
	
				if {[N lelong 28 0 0 {} {} x {}]} {
					>
						emit {%d ocons}
					<
				}
	
			<
			>
				emit {SE Linux policy}
				if {[N lelong 16 0 0 {} {} x {}]} {
					>
						emit v%d
					<
				}
	
				if {[N lelong 20 0 0 {} {} == 1]} {
					>
						emit MLS
					<
				}
	
				if {[N lelong 24 0 0 {} {} x {}]} {
					>
						emit {%d symbols}
					<
				}
	
				if {[N lelong 28 0 0 {} {} x {}]} {
					>
						emit {%d ocons}
					<
				}
	
			<
			>
				emit {SE Linux policy}
				if {[N lelong 16 0 0 {} {} x {}]} {
					>
						emit v%d
					<
				}
	
				if {[N lelong 20 0 0 {} {} == 1]} {
					>
						emit MLS
					<
				}
	
				if {[N lelong 24 0 0 {} {} x {}]} {
					>
						emit {%d symbols}
					<
				}
	
				if {[N lelong 28 0 0 {} {} x {}]} {
					>
						emit {%d ocons}
					<
				}
	
			<
		}
		-109248625 {
			>
				emit {SE Linux modular policy}
				if {[N lelong 4 0 0 {} {} x {}]} {
					>
						emit {version %d,}
					<
				}
	
				if {[N lelong 8 0 0 {} {} x {}]} {
					>
						emit {%d sections,}
						if {[N lelong [I 12 ulelong 0 + 0 0] 0 0 {} {} == 4185718669]} {
							>
								if {[N lelong [I 12 ulelong 0 + 0 27] 0 0 {} {} x {}]} {
									>
										emit {mod version %d,}
									<
								}
	
								switch [Nv lelong [I 12 ulelong 0 + 0 31] 0 {} {}] {
									0 {
										>
											emit {Not MLS,}
										<
									}
									1 {
										>
											emit MLS,
										<
									}
								}
	
								switch [Nv lelong [I 12 ulelong 0 + 0 23] 0 {} {}] {
									1 {
										>
											emit base
										<
									}
									2 {
										>
											if {[S string [I 12 ulelong 0 + 0 47] 0 {} {} > \0]} {
												>
													emit {module name %s}
												<
											}
	
										<
									}
								}
	
							<
						}
	
					<
				}
	
			<
		}
		-47205086 {
			>
				emit {Zstandard compressed data (v0.2)}
				mime application/x-zstd
			<
		}
		-47205085 {
			>
				emit {Zstandard compressed data (v0.3)}
				mime application/x-zstd
			<
		}
		-47205084 {
			>
				emit {Zstandard compressed data (v0.4)}
				mime application/x-zstd
			<
		}
		-47205083 {
			>
				emit {Zstandard compressed data (v0.5)}
				mime application/x-zstd
			<
		}
		-47205082 {
			>
				emit {Zstandard compressed data (v0.6)}
				mime application/x-zstd
			<
		}
		-47205081 {
			>
				emit {Zstandard compressed data (v0.7)}
				mime application/x-zstd
				U 50 zstd-dictionary-id 4
	
			<
		}
		-47205080 {
			>
				emit {Zstandard compressed data (v0.8+)}
				mime application/x-zstd
				U 50 zstd-dictionary-id 4
	
			<
		}
		-21555 {
			>
				emit {MLSSA datafile,}
				if {[N leshort 4 0 0 {} {} x {}]} {
					>
						emit {algorithm %d,}
					<
				}
	
				if {[N lelong 10 0 0 {} {} x {}]} {
					>
						emit {%d samples}
					<
				}
	
			<
		}
	}
	
	if {[S string 0 0 {} {} eq MOVI]} {
		>
			emit {Silicon Graphics movie file}







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







25778
25779
25780
25781
25782
25783
25784























































































































































































































































































































































































































































































25785
25786
25787
25788
25789
25790
25791
	
				if {[N byte 36 0 0 {} {} x {}]} {
					>
						emit {\b.%d}
					<
				}
	























































































































































































































































































































































































































































































			<
		}
	}
	
	if {[S string 0 0 {} {} eq MOVI]} {
		>
			emit {Silicon Graphics movie file}
26613
26614
26615
26616
26617
26618
26619
26620






































































































































26621
26622
26623
26624
26625
26626
26627
26628
26629
26630
26631
26632
26633
26634
26635
26636
26637
26638
26639
					emit {\b, Samsung stereo, dual stream (patent pending)}
				<
			}
	
		<
	}
	
	switch [Nv belong 0 0 & 4294967040] {






































































































































		256 {
			>
				switch [Nv byte 3 0 {} {}] {
					-80 {
						>
							emit {MPEG sequence, v4}
							mime video/mpeg4-generic
							if {[N belong 5 0 0 {} {} == 437]} {
								>
									if {[N byte 9 0 0 {} {} & 128]} {
										>
											switch [Nv byte 10 0 & 240] {
												16 {
													>
														emit {\b, video}
													<
												}
												32 {
													>







|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>









|

|







26616
26617
26618
26619
26620
26621
26622
26623
26624
26625
26626
26627
26628
26629
26630
26631
26632
26633
26634
26635
26636
26637
26638
26639
26640
26641
26642
26643
26644
26645
26646
26647
26648
26649
26650
26651
26652
26653
26654
26655
26656
26657
26658
26659
26660
26661
26662
26663
26664
26665
26666
26667
26668
26669
26670
26671
26672
26673
26674
26675
26676
26677
26678
26679
26680
26681
26682
26683
26684
26685
26686
26687
26688
26689
26690
26691
26692
26693
26694
26695
26696
26697
26698
26699
26700
26701
26702
26703
26704
26705
26706
26707
26708
26709
26710
26711
26712
26713
26714
26715
26716
26717
26718
26719
26720
26721
26722
26723
26724
26725
26726
26727
26728
26729
26730
26731
26732
26733
26734
26735
26736
26737
26738
26739
26740
26741
26742
26743
26744
26745
26746
26747
26748
26749
26750
26751
26752
26753
26754
26755
26756
26757
26758
26759
26760
26761
26762
26763
26764
26765
26766
26767
26768
26769
26770
26771
26772
26773
26774
26775
26776
					emit {\b, Samsung stereo, dual stream (patent pending)}
				<
			}
	
		<
	}
	
	switch [Nv belong 0 0 & -256] {
		-2063526912 {
			>
				emit {cisco IOS microcode}
				if {[S string 7 0 {} {} > \0]} {
					>
						emit {for '%s'}
					<
				}
	
			<
		}
		-2063480064 {
			>
				emit {cisco IOS experimental microcode}
				if {[S string 7 0 {} {} > \0]} {
					>
						emit {for '%s'}
					<
				}
	
			<
		}
		-16907008 {
			>
				emit {MySQL ISAM index file}
				if {[N byte 3 0 0 {} {} x {}]} {
					>
						emit {Version %d}
					<
				}
	
			<
		}
		-16906752 {
			>
				emit {MySQL ISAM compressed data file}
				if {[N byte 3 0 0 {} {} x {}]} {
					>
						emit {Version %d}
					<
				}
	
			<
		}
		-16906496 {
			>
				emit {MySQL MyISAM index file}
				if {[N byte 3 0 0 {} {} x {}]} {
					>
						emit {Version %d}
					<
				}
	
				if {[N beshort 14 0 0 {} {} x {}]} {
					>
						emit {\b, %d key parts}
					<
				}
	
				if {[N beshort 16 0 0 {} {} x {}]} {
					>
						emit {\b, %d unique key parts}
					<
				}
	
				if {[N byte 18 0 0 {} {} x {}]} {
					>
						emit {\b, %d keys}
					<
				}
	
				if {[N bequad 28 0 0 {} {} x {}]} {
					>
						emit {\b, %lld records}
					<
				}
	
				if {[N bequad 36 0 0 {} {} x {}]} {
					>
						emit {\b, %lld deleted records}
					<
				}
	
			<
		}
		-16906240 {
			>
				emit {MySQL MyISAM compressed data file}
				if {[N byte 3 0 0 {} {} x {}]} {
					>
						emit {Version %d}
					<
				}
	
			<
		}
		-16905984 {
			>
				emit {MySQL Maria index file}
				if {[N byte 3 0 0 {} {} x {}]} {
					>
						emit {Version %d}
					<
				}
	
			<
		}
		-16905728 {
			>
				emit {MySQL Maria compressed data file}
				if {[N byte 3 0 0 {} {} x {}]} {
					>
						emit {Version %d}
					<
				}
	
			<
		}
		-16905216 {
			>
				if {[S string 4 0 {} {} eq MACF]} {
					>
						emit {MySQL Maria control file}
						if {[N byte 3 0 0 {} {} x {}]} {
							>
								emit {Version %d}
							<
						}
	
					<
				}
	
			<
		}
		256 {
			>
				switch [Nv byte 3 0 {} {}] {
					-80 {
						>
							emit {MPEG sequence, v4}
							mime video/mpeg4-generic
							if {[N belong 5 0 0 {} {} == 437]} {
								>
									if {[N byte 9 0 0 {} {} & -128]} {
										>
											switch [Nv byte 10 0 & -16] {
												16 {
													>
														emit {\b, video}
													<
												}
												32 {
													>
26651
26652
26653
26654
26655
26656
26657
26658
26659
26660
26661
26662
26663
26664
26665
													<
												}
											}
	
										<
									}
	
									switch [Nv byte 9 0 & 248] {
										8 {
											>
												emit {\b, video}
											<
										}
										16 {
											>







|







26788
26789
26790
26791
26792
26793
26794
26795
26796
26797
26798
26799
26800
26801
26802
													<
												}
											}
	
										<
									}
	
									switch [Nv byte 9 0 & -8] {
										8 {
											>
												emit {\b, video}
											<
										}
										16 {
											>
26678
26679
26680
26681
26682
26683
26684
26685
26686
26687
26688
26689
26690
26691
26692
26693
26694
26695
26696
26697
26698
26699
26700
26701
26702
26703
26704
26705
26706
26707
26708
26709
26710
26711
26712
26713
26714
26715
26716
26717
26718
26719
26720
26721
26722
26723
26724
26725
26726
26727
26728
26729
26730
26731
26732
26733
26734
26735
26736
26737
26738
26739
26740
26741
26742
26743
26744
26745
26746
26747
26748
26749
26750
26751
26752
26753
26754
26755
26756
26757
26758
26759
26760
26761
26762
26763
26764
26765
26766
26767
26768
26769
26770
26771
26772
26773
26774
26775
26776
26777
26778
26779
26780
26781
26782
26783
26784
26785
26786
										}
									}
	
								<
							}
	
							switch [Nv byte 4 0 {} {}] {
								1 {
									>
										emit {\b, simple @ L1}
									<
								}
								2 {
									>
										emit {\b, simple @ L2}
									<
								}
								3 {
									>
										emit {\b, simple @ L3}
									<
								}
								4 {
									>
										emit {\b, simple @ L0}
									<
								}
								17 {
									>
										emit {\b, simple scalable @ L1}
									<
								}
								18 {
									>
										emit {\b, simple scalable @ L2}
									<
								}
								33 {
									>
										emit {\b, core @ L1}
									<
								}
								34 {
									>
										emit {\b, core @ L2}
									<
								}
								50 {
									>
										emit {\b, main @ L2}
									<
								}
								51 {
									>
										emit {\b, main @ L3}
									<
								}
								53 {
									>
										emit {\b, main @ L4}
									<
								}
								66 {
									>
										emit {\b, n-bit @ L2}
									<
								}
								81 {
									>
										emit {\b, scalable texture @ L1}
									<
								}
								97 {
									>
										emit {\b, simple face animation @ L1}
									<
								}
								98 {
									>
										emit {\b, simple face animation @ L2}
									<
								}
								99 {
									>
										emit {\b, simple face basic animation @ L1}
									<
								}
								100 {
									>
										emit {\b, simple face basic animation @ L2}
									<
								}
								113 {
									>
										emit {\b, basic animation text @ L1}
									<
								}
								114 {
									>
										emit {\b, basic animation text @ L2}
									<
								}
								-127 {
									>
										emit {\b, hybrid @ L1}
									<
								}
								-126 {
									>







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







26815
26816
26817
26818
26819
26820
26821































































































26822
26823
26824
26825
26826
26827
26828
										}
									}
	
								<
							}
	
							switch [Nv byte 4 0 {} {}] {































































































								-127 {
									>
										emit {\b, hybrid @ L1}
									<
								}
								-126 {
									>
26968
26969
26970
26971
26972
26973
26974































































































26975
26976
26977
26978
26979
26980
26981
									<
								}
								-3 {
									>
										emit {\b, FGS @ L5}
									<
								}































































































							}
	
						<
					}
					-77 {
						>
							emit {MPEG sequence}







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







27010
27011
27012
27013
27014
27015
27016
27017
27018
27019
27020
27021
27022
27023
27024
27025
27026
27027
27028
27029
27030
27031
27032
27033
27034
27035
27036
27037
27038
27039
27040
27041
27042
27043
27044
27045
27046
27047
27048
27049
27050
27051
27052
27053
27054
27055
27056
27057
27058
27059
27060
27061
27062
27063
27064
27065
27066
27067
27068
27069
27070
27071
27072
27073
27074
27075
27076
27077
27078
27079
27080
27081
27082
27083
27084
27085
27086
27087
27088
27089
27090
27091
27092
27093
27094
27095
27096
27097
27098
27099
27100
27101
27102
27103
27104
27105
27106
27107
27108
27109
27110
27111
27112
27113
27114
27115
27116
27117
27118
									<
								}
								-3 {
									>
										emit {\b, FGS @ L5}
									<
								}
								1 {
									>
										emit {\b, simple @ L1}
									<
								}
								2 {
									>
										emit {\b, simple @ L2}
									<
								}
								3 {
									>
										emit {\b, simple @ L3}
									<
								}
								4 {
									>
										emit {\b, simple @ L0}
									<
								}
								17 {
									>
										emit {\b, simple scalable @ L1}
									<
								}
								18 {
									>
										emit {\b, simple scalable @ L2}
									<
								}
								33 {
									>
										emit {\b, core @ L1}
									<
								}
								34 {
									>
										emit {\b, core @ L2}
									<
								}
								50 {
									>
										emit {\b, main @ L2}
									<
								}
								51 {
									>
										emit {\b, main @ L3}
									<
								}
								53 {
									>
										emit {\b, main @ L4}
									<
								}
								66 {
									>
										emit {\b, n-bit @ L2}
									<
								}
								81 {
									>
										emit {\b, scalable texture @ L1}
									<
								}
								97 {
									>
										emit {\b, simple face animation @ L1}
									<
								}
								98 {
									>
										emit {\b, simple face animation @ L2}
									<
								}
								99 {
									>
										emit {\b, simple face basic animation @ L1}
									<
								}
								100 {
									>
										emit {\b, simple face basic animation @ L2}
									<
								}
								113 {
									>
										emit {\b, basic animation text @ L1}
									<
								}
								114 {
									>
										emit {\b, basic animation text @ L2}
									<
								}
							}
	
						<
					}
					-77 {
						>
							emit {MPEG sequence}
27013
27014
27015
27016
27017
27018
27019
27020










27021
27022
27023
27024
27025
27026
27027
27028
27029
27030
27031
27032
27033
27034
27035
27036
27037
27038
27039
27040
27041
27042
27043
27044
27045
27046
27047
											5 {
												>
													emit {\b SP}
												<
											}
										}
	
										switch [Nv byte 17 0 & 240] {










											64 {
												>
													emit {\b@HL}
												<
											}
											96 {
												>
													emit {\b@H-14}
												<
											}
											-128 {
												>
													emit {\b@ML}
												<
											}
											-96 {
												>
													emit {\b@LL}
												<
											}
										}
	
										if {[N byte 17 0 0 {} {} & 8]} {
											>
												emit {\b progressive}
											<
										}







|
>
>
>
>
>
>
>
>
>
>










<
<
<
<
<
<
<
<
<
<







27150
27151
27152
27153
27154
27155
27156
27157
27158
27159
27160
27161
27162
27163
27164
27165
27166
27167
27168
27169
27170
27171
27172
27173
27174
27175
27176
27177










27178
27179
27180
27181
27182
27183
27184
											5 {
												>
													emit {\b SP}
												<
											}
										}
	
										switch [Nv byte 17 0 & -16] {
											-128 {
												>
													emit {\b@ML}
												<
											}
											-96 {
												>
													emit {\b@LL}
												<
											}
											64 {
												>
													emit {\b@HL}
												<
											}
											96 {
												>
													emit {\b@H-14}
												<
											}










										}
	
										if {[N byte 17 0 0 {} {} & 8]} {
											>
												emit {\b progressive}
											<
										}
27116
27117
27118
27119
27120
27121
27122
27123










27124
27125
27126
27127
27128
27129
27130
27131
27132
27133
27134
27135
27136
27137
27138
27139
27140
27141
27142
27143
27144
27145
27146
27147
27148
27149
27150
															5 {
																>
																	emit {\b SP}
																<
															}
														}
	
														switch [Nv byte 145 0 & 240] {










															64 {
																>
																	emit {\b@HL}
																<
															}
															96 {
																>
																	emit {\b@H-14}
																<
															}
															-128 {
																>
																	emit {\b@ML}
																<
															}
															-96 {
																>
																	emit {\b@LL}
																<
															}
														}
	
														if {[N byte 145 0 0 {} {} & 8]} {
															>
																emit {\b progressive}
															<
														}







|
>
>
>
>
>
>
>
>
>
>










<
<
<
<
<
<
<
<
<
<







27253
27254
27255
27256
27257
27258
27259
27260
27261
27262
27263
27264
27265
27266
27267
27268
27269
27270
27271
27272
27273
27274
27275
27276
27277
27278
27279
27280










27281
27282
27283
27284
27285
27286
27287
															5 {
																>
																	emit {\b SP}
																<
															}
														}
	
														switch [Nv byte 145 0 & -16] {
															-128 {
																>
																	emit {\b@ML}
																<
															}
															-96 {
																>
																	emit {\b@LL}
																<
															}
															64 {
																>
																	emit {\b@HL}
																<
															}
															96 {
																>
																	emit {\b@H-14}
																<
															}










														}
	
														if {[N byte 145 0 0 {} {} & 8]} {
															>
																emit {\b progressive}
															<
														}
27221
27222
27223
27224
27225
27226
27227
27228










27229
27230
27231
27232
27233
27234
27235
27236
27237
27238
27239
27240
27241
27242
27243
27244
27245
27246
27247
27248
27249
27250
27251
27252
27253
27254
27255
											5 {
												>
													emit {\b SP}
												<
											}
										}
	
										switch [Nv byte 81 0 & 240] {










											64 {
												>
													emit {\b@HL}
												<
											}
											96 {
												>
													emit {\b@H-14}
												<
											}
											-128 {
												>
													emit {\b@ML}
												<
											}
											-96 {
												>
													emit {\b@LL}
												<
											}
										}
	
										if {[N byte 81 0 0 {} {} & 8]} {
											>
												emit {\b progressive}
											<
										}







|
>
>
>
>
>
>
>
>
>
>










<
<
<
<
<
<
<
<
<
<







27358
27359
27360
27361
27362
27363
27364
27365
27366
27367
27368
27369
27370
27371
27372
27373
27374
27375
27376
27377
27378
27379
27380
27381
27382
27383
27384
27385










27386
27387
27388
27389
27390
27391
27392
											5 {
												>
													emit {\b SP}
												<
											}
										}
	
										switch [Nv byte 81 0 & -16] {
											-128 {
												>
													emit {\b@ML}
												<
											}
											-96 {
												>
													emit {\b@LL}
												<
											}
											64 {
												>
													emit {\b@HL}
												<
											}
											96 {
												>
													emit {\b@H-14}
												<
											}










										}
	
										if {[N byte 81 0 0 {} {} & 8]} {
											>
												emit {\b progressive}
											<
										}
27283
27284
27285
27286
27287
27288
27289
27290
27291
27292
27293
27294
27295
27296
27297
27298
27299
27300
27301
27302
27303
27304
27305
27306
27307
27308
27309
27310
27311
27312
27313
27314
27315
27316
27317
27318
27319
27320
27321
27322
27323
27324
27325
27326
27327
27328
27329
27330
27331
27332
27333
27334
27335
27336
27337
27338
27339
27340
27341
27342
27343
27344
27345
27346
27347
27348
27349
27350
27351
27352
27353
27354
27355
27356
27357
27358
27359
27360
27361
27362
27363
27364
27365
27366
27367
27368
27369
27370
27371
27372
27373
27374
27375
27376
27377
27378
27379
27380
27381
27382
27383
27384
27385
27386
27387
27388
27389
27390
27391
27392
27393
27394
27395
								440 {
									>
										emit {\b, v1, progressive Y'CbCr 4:2:0 video}
									<
								}
							}
	
							switch [Nv belong 4 0 & 4294967040] {
								167802880 {
									>
										emit {\b, 160x120}
										if {[N byte 7 0 0 & 240 == 16]} {
											>
												emit {\b, 4:3}
											<
										}
	
									<
								}
								251699200 {
									>
										emit {\b, 240x160}
										if {[N byte 7 0 0 & 240 == 16]} {
											>
												emit {\b, 4:3}
											<
										}
	
									<
								}
								335605760 {
									>
										emit {\b, 320x240}
										if {[N byte 7 0 0 & 240 == 16]} {
											>
												emit {\b, 4:3}
											<
										}
	
									<
								}
								671211520 {
									>
										emit {\b, LD-TV 640P}
										if {[N byte 7 0 0 & 240 == 16]} {
											>
												emit {\b, 4:3}
											<
										}
	
									<
								}
								805453824 {
									>
										emit {\b, PAL Capture}
										if {[N byte 7 0 0 & 240 == 16]} {
											>
												emit {\b, 4:3}
											<
										}
	
									<
								}
								1342188800 {
									>
										emit {\b, SD-TV 1280I}
										if {[N byte 7 0 0 & 240 == 16]} {
											>
												emit {\b, 16:9}
											<
										}
	
									<
								}
								2013542400 {
									>
										emit {\b, HD-TV 1920P}
										if {[N byte 7 0 0 & 240 == 16]} {
											>
												emit {\b, 16:9}
											<
										}
	
									<
								}
							}
	
							switch [Nv beshort 4 0 & 65520] {
								5632 {
									>
										emit {\b, CIF}
										switch [Nv beshort 5 0 & 4095] {
											240 {
												>
													emit {\b NTSC}
												<
											}
											288 {
												>
													emit {\b PAL}
												<
											}
											576 {
												>
													emit {\b PAL 625}
													switch [Nv byte 7 0 & 240] {
														32 {
															>
																emit {\b, 4:3}
															<
														}
														48 {
															>







|



|










|










|










|










|










|










|









|

















|







27420
27421
27422
27423
27424
27425
27426
27427
27428
27429
27430
27431
27432
27433
27434
27435
27436
27437
27438
27439
27440
27441
27442
27443
27444
27445
27446
27447
27448
27449
27450
27451
27452
27453
27454
27455
27456
27457
27458
27459
27460
27461
27462
27463
27464
27465
27466
27467
27468
27469
27470
27471
27472
27473
27474
27475
27476
27477
27478
27479
27480
27481
27482
27483
27484
27485
27486
27487
27488
27489
27490
27491
27492
27493
27494
27495
27496
27497
27498
27499
27500
27501
27502
27503
27504
27505
27506
27507
27508
27509
27510
27511
27512
27513
27514
27515
27516
27517
27518
27519
27520
27521
27522
27523
27524
27525
27526
27527
27528
27529
27530
27531
27532
								440 {
									>
										emit {\b, v1, progressive Y'CbCr 4:2:0 video}
									<
								}
							}
	
							switch [Nv belong 4 0 & -256] {
								167802880 {
									>
										emit {\b, 160x120}
										if {[N byte 7 0 0 & -16 == 16]} {
											>
												emit {\b, 4:3}
											<
										}
	
									<
								}
								251699200 {
									>
										emit {\b, 240x160}
										if {[N byte 7 0 0 & -16 == 16]} {
											>
												emit {\b, 4:3}
											<
										}
	
									<
								}
								335605760 {
									>
										emit {\b, 320x240}
										if {[N byte 7 0 0 & -16 == 16]} {
											>
												emit {\b, 4:3}
											<
										}
	
									<
								}
								671211520 {
									>
										emit {\b, LD-TV 640P}
										if {[N byte 7 0 0 & -16 == 16]} {
											>
												emit {\b, 4:3}
											<
										}
	
									<
								}
								805453824 {
									>
										emit {\b, PAL Capture}
										if {[N byte 7 0 0 & -16 == 16]} {
											>
												emit {\b, 4:3}
											<
										}
	
									<
								}
								1342188800 {
									>
										emit {\b, SD-TV 1280I}
										if {[N byte 7 0 0 & -16 == 16]} {
											>
												emit {\b, 16:9}
											<
										}
	
									<
								}
								2013542400 {
									>
										emit {\b, HD-TV 1920P}
										if {[N byte 7 0 0 & -16 == 16]} {
											>
												emit {\b, 16:9}
											<
										}
	
									<
								}
							}
	
							switch [Nv beshort 4 0 & -16] {
								5632 {
									>
										emit {\b, CIF}
										switch [Nv beshort 5 0 & 4095] {
											240 {
												>
													emit {\b NTSC}
												<
											}
											288 {
												>
													emit {\b PAL}
												<
											}
											576 {
												>
													emit {\b PAL 625}
													switch [Nv byte 7 0 & -16] {
														32 {
															>
																emit {\b, 4:3}
															<
														}
														48 {
															>
27403
27404
27405
27406
27407
27408
27409
27410










27411
27412
27413
27414
27415
27416
27417
27418
27419
27420
27421
27422
27423
27424
27425
27426
27427
27428
27429
27430
27431
27432
27433
27434
27435
27436
27437
27438
27439
27440
27441
27442
27443
27444
27445
27446
27447
27448
27449
27450
27451
27452
27453
27454
27455
27456
27457
27458
27459
27460
27461
27462
27463
														}
													}
	
												<
											}
										}
	
										switch [Nv byte 7 0 & 240] {










											32 {
												>
													emit {\b, 4:3}
												<
											}
											48 {
												>
													emit {\b, 16:9}
												<
											}
											64 {
												>
													emit {\b, 11:5}
												<
											}
											-128 {
												>
													emit {\b, PAL 4:3}
												<
											}
											-64 {
												>
													emit {\b, NTSC 4:3}
												<
											}
										}
	
									<
								}
								7680 {
									>
										emit {\b, SVCD}
										switch [Nv beshort 5 0 & 4095] {
											480 {
												>
													emit {\b NTSC 525}
												<
											}
											576 {
												>
													emit {\b PAL 625}
												<
											}
										}
	
										switch [Nv byte 7 0 & 240] {
											32 {
												>
													emit {\b, 4:3}
												<
											}
											48 {
												>







|
>
>
>
>
>
>
>
>
>
>















<
<
<
<
<
<
<
<
<
<




















|







27540
27541
27542
27543
27544
27545
27546
27547
27548
27549
27550
27551
27552
27553
27554
27555
27556
27557
27558
27559
27560
27561
27562
27563
27564
27565
27566
27567
27568
27569
27570
27571
27572










27573
27574
27575
27576
27577
27578
27579
27580
27581
27582
27583
27584
27585
27586
27587
27588
27589
27590
27591
27592
27593
27594
27595
27596
27597
27598
27599
27600
														}
													}
	
												<
											}
										}
	
										switch [Nv byte 7 0 & -16] {
											-128 {
												>
													emit {\b, PAL 4:3}
												<
											}
											-64 {
												>
													emit {\b, NTSC 4:3}
												<
											}
											32 {
												>
													emit {\b, 4:3}
												<
											}
											48 {
												>
													emit {\b, 16:9}
												<
											}
											64 {
												>
													emit {\b, 11:5}
												<
											}










										}
	
									<
								}
								7680 {
									>
										emit {\b, SVCD}
										switch [Nv beshort 5 0 & 4095] {
											480 {
												>
													emit {\b NTSC 525}
												<
											}
											576 {
												>
													emit {\b PAL 625}
												<
											}
										}
	
										switch [Nv byte 7 0 & -16] {
											32 {
												>
													emit {\b, 4:3}
												<
											}
											48 {
												>
27485
27486
27487
27488
27489
27490
27491
27492










27493
27494
27495
27496
27497
27498
27499
27500
27501
27502
27503
27504
27505
27506
27507
27508
27509
27510
27511
27512
27513
27514
27515
27516
27517
27518
27519
27520
27521
27522
27523
27524
27525
27526
27527
27528
27529
27530
27531
27532
27533
27534
27535
27536
27537
27538
27539
27540
27541
27542
27543
27544
27545
											576 {
												>
													emit {\b PAL}
												<
											}
										}
	
										switch [Nv byte 7 0 & 240] {










											32 {
												>
													emit {\b, 4:3}
												<
											}
											48 {
												>
													emit {\b, 16:9}
												<
											}
											64 {
												>
													emit {\b, 11:5}
												<
											}
											-128 {
												>
													emit {\b, PAL 4:3}
												<
											}
											-64 {
												>
													emit {\b, NTSC 4:3}
												<
											}
										}
	
									<
								}
								11520 {
									>
										emit {\b, CCIR/ITU}
										switch [Nv beshort 5 0 & 4095] {
											480 {
												>
													emit {\b NTSC 525}
												<
											}
											576 {
												>
													emit {\b PAL 625}
												<
											}
										}
	
										switch [Nv byte 7 0 & 240] {
											32 {
												>
													emit {\b, 4:3}
												<
											}
											48 {
												>







|
>
>
>
>
>
>
>
>
>
>















<
<
<
<
<
<
<
<
<
<




















|







27622
27623
27624
27625
27626
27627
27628
27629
27630
27631
27632
27633
27634
27635
27636
27637
27638
27639
27640
27641
27642
27643
27644
27645
27646
27647
27648
27649
27650
27651
27652
27653
27654










27655
27656
27657
27658
27659
27660
27661
27662
27663
27664
27665
27666
27667
27668
27669
27670
27671
27672
27673
27674
27675
27676
27677
27678
27679
27680
27681
27682
											576 {
												>
													emit {\b PAL}
												<
											}
										}
	
										switch [Nv byte 7 0 & -16] {
											-128 {
												>
													emit {\b, PAL 4:3}
												<
											}
											-64 {
												>
													emit {\b, NTSC 4:3}
												<
											}
											32 {
												>
													emit {\b, 4:3}
												<
											}
											48 {
												>
													emit {\b, 16:9}
												<
											}
											64 {
												>
													emit {\b, 11:5}
												<
											}










										}
	
									<
								}
								11520 {
									>
										emit {\b, CCIR/ITU}
										switch [Nv beshort 5 0 & 4095] {
											480 {
												>
													emit {\b NTSC 525}
												<
											}
											576 {
												>
													emit {\b PAL 625}
												<
											}
										}
	
										switch [Nv byte 7 0 & -16] {
											32 {
												>
													emit {\b, 4:3}
												<
											}
											48 {
												>
27608
27609
27610
27611
27612
27613
27614
27615
27616
27617
27618
27619
27620
27621
27622
27623
27624
	
						<
					}
					-75 {
						>
							emit {MPEG sequence, v4}
							mime video/mpeg4-generic
							if {[N byte 4 0 0 {} {} & 128]} {
								>
									switch [Nv byte 5 0 & 240] {
										16 {
											>
												emit {\b, video (missing profile header)}
											<
										}
										32 {
											>







|

|







27745
27746
27747
27748
27749
27750
27751
27752
27753
27754
27755
27756
27757
27758
27759
27760
27761
	
						<
					}
					-75 {
						>
							emit {MPEG sequence, v4}
							mime video/mpeg4-generic
							if {[N byte 4 0 0 {} {} & -128]} {
								>
									switch [Nv byte 5 0 & -16] {
										16 {
											>
												emit {\b, video (missing profile header)}
											<
										}
										32 {
											>
27636
27637
27638
27639
27640
27641
27642
27643
27644
27645
27646
27647
27648
27649
27650
											<
										}
									}
	
								<
							}
	
							switch [Nv byte 4 0 & 248] {
								8 {
									>
										emit {\b, video (missing profile header)}
									<
								}
								16 {
									>







|







27773
27774
27775
27776
27777
27778
27779
27780
27781
27782
27783
27784
27785
27786
27787
											<
										}
									}
	
								<
							}
	
							switch [Nv byte 4 0 & -8] {
								8 {
									>
										emit {\b, video (missing profile header)}
									<
								}
								16 {
									>
27733
27734
27735
27736
27737
27738
27739
27740
27741
27742
27743
27744
27745
27746
27747
27748
27749
27750
27751
27752
27753
27754
27755
27756
27757
27758
27759
27760
27761
27762
27763
27764
27765
27766
27767
27768
27769
27770
27771
27772
27773
27774
27775
27776
27777
27778
27779
27780
27781
27782
27783
27784
27785
27786
27787
27788
27789
27790
27791
27792
27793
27794
27795
27796
27797
27798
27799
27800
27801
27802
27803
27804
27805
27806
27807
27808
27809
27810
27811
27812
27813
27814
27815
27816
27817
27818
27819
27820
27821
27822
27823
27824
27825
27826
27827
27828
27829
27830
27831
27832
27833
27834
27835
27836
27837
27838
27839
27840
27841
27842
27843
27844
27845
27846
27847
27848
27849
27850
27851
27852
27853
27854
27855
27856
27857
27858
27859
27860
27861
27862
27863
27864
27865
27866
27867
27868
27869
27870
27871
27872
27873
27874
27875
27876
27877
27878
27879
27880
27881
27882
27883
27884
27885
27886
27887
27888
27889
27890
27891
27892
27893
27894
27895



























































































































































27896
27897
27898
27899
27900
27901
27902
	
				if {[N byte 4 0 0 {} {} ^ 1]} {
					>
						emit {(DV) movie file}
					<
				}
	
				if {[N byte 3 0 0 {} {} & 128]} {
					>
						emit (PAL)
					<
				}
	
				if {[N byte 3 0 0 {} {} ^ 128]} {
					>
						emit (NTSC)
					<
				}
	
			<
		}
		-2063526912 {
			>
				emit {cisco IOS microcode}
				if {[S string 7 0 {} {} > \0]} {
					>
						emit {for '%s'}
					<
				}
	
			<
		}
		-2063480064 {
			>
				emit {cisco IOS experimental microcode}
				if {[S string 7 0 {} {} > \0]} {
					>
						emit {for '%s'}
					<
				}
	
			<
		}
		-16907008 {
			>
				emit {MySQL ISAM index file}
				if {[N byte 3 0 0 {} {} x {}]} {
					>
						emit {Version %d}
					<
				}
	
			<
		}
		-16906752 {
			>
				emit {MySQL ISAM compressed data file}
				if {[N byte 3 0 0 {} {} x {}]} {
					>
						emit {Version %d}
					<
				}
	
			<
		}
		-16906496 {
			>
				emit {MySQL MyISAM index file}
				if {[N byte 3 0 0 {} {} x {}]} {
					>
						emit {Version %d}
					<
				}
	
				if {[N beshort 14 0 0 {} {} x {}]} {
					>
						emit {\b, %d key parts}
					<
				}
	
				if {[N beshort 16 0 0 {} {} x {}]} {
					>
						emit {\b, %d unique key parts}
					<
				}
	
				if {[N byte 18 0 0 {} {} x {}]} {
					>
						emit {\b, %d keys}
					<
				}
	
				if {[N bequad 28 0 0 {} {} x {}]} {
					>
						emit {\b, %lld records}
					<
				}
	
				if {[N bequad 36 0 0 {} {} x {}]} {
					>
						emit {\b, %lld deleted records}
					<
				}
	
			<
		}
		-16906240 {
			>
				emit {MySQL MyISAM compressed data file}
				if {[N byte 3 0 0 {} {} x {}]} {
					>
						emit {Version %d}
					<
				}
	
			<
		}
		-16905984 {
			>
				emit {MySQL Maria index file}
				if {[N byte 3 0 0 {} {} x {}]} {
					>
						emit {Version %d}
					<
				}
	
			<
		}
		-16905728 {
			>
				emit {MySQL Maria compressed data file}
				if {[N byte 3 0 0 {} {} x {}]} {
					>
						emit {Version %d}
					<
				}
	
			<
		}
		-16905216 {
			>
				if {[S string 4 0 {} {} eq MACF]} {
					>
						emit {MySQL Maria control file}
						if {[N byte 3 0 0 {} {} x {}]} {
							>
								emit {Version %d}
							<
						}
	
					<
				}
	
			<
		}
	}
	
	switch [Nv beshort 0 0 & 65534] {
		-30 {
			>
				emit {MPEG ADTS, layer III,  v2.5}
				mime audio/mpeg
				switch [Nv byte 2 0 & 240] {



























































































































































					16 {
						>
							emit {\b,   8 kbps}
						<
					}
					32 {
						>







|





|







<
<
<
<
<
<
<
|

<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|




|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







27870
27871
27872
27873
27874
27875
27876
27877
27878
27879
27880
27881
27882
27883
27884
27885
27886
27887
27888
27889
27890







27891
27892































































































































27893
27894
27895
27896
27897
27898
27899
27900
27901
27902
27903
27904
27905
27906
27907
27908
27909
27910
27911
27912
27913
27914
27915
27916
27917
27918
27919
27920
27921
27922
27923
27924
27925
27926
27927
27928
27929
27930
27931
27932
27933
27934
27935
27936
27937
27938
27939
27940
27941
27942
27943
27944
27945
27946
27947
27948
27949
27950
27951
27952
27953
27954
27955
27956
27957
27958
27959
27960
27961
27962
27963
27964
27965
27966
27967
27968
27969
27970
27971
27972
27973
27974
27975
27976
27977
27978
27979
27980
27981
27982
27983
27984
27985
27986
27987
27988
27989
27990
27991
27992
27993
27994
27995
27996
27997
27998
27999
28000
28001
28002
28003
28004
28005
28006
28007
28008
28009
28010
28011
28012
28013
28014
28015
28016
28017
28018
28019
28020
28021
28022
28023
28024
28025
28026
28027
28028
28029
28030
28031
28032
28033
28034
28035
28036
28037
28038
28039
28040
28041
28042
28043
28044
28045
28046
28047
28048
28049
28050
28051
28052
28053
28054
28055
28056
28057
28058
28059
28060
	
				if {[N byte 4 0 0 {} {} ^ 1]} {
					>
						emit {(DV) movie file}
					<
				}
	
				if {[N byte 3 0 0 {} {} & -128]} {
					>
						emit (PAL)
					<
				}
	
				if {[N byte 3 0 0 {} {} ^ -128]} {
					>
						emit (NTSC)
					<
				}
	
			<
		}







	}
	































































































































	switch [Nv beshort 0 0 & -2] {
		-30 {
			>
				emit {MPEG ADTS, layer III,  v2.5}
				mime audio/mpeg
				switch [Nv byte 2 0 & -16] {
					-128 {
						>
							emit {\b,  64 kbps}
						<
					}
					-112 {
						>
							emit {\b,  80 kbps}
						<
					}
					-96 {
						>
							emit {\b,  96 kbps}
						<
					}
					-80 {
						>
							emit {\b, 112 kbps}
						<
					}
					-64 {
						>
							emit {\b, 128 kbps}
						<
					}
					-48 {
						>
							emit {\b, 144 kbps}
						<
					}
					-32 {
						>
							emit {\b, 160 kbps}
						<
					}
					16 {
						>
							emit {\b,   8 kbps}
						<
					}
					32 {
						>
							emit {\b,  16 kbps}
						<
					}
					48 {
						>
							emit {\b,  24 kbps}
						<
					}
					64 {
						>
							emit {\b,  32 kbps}
						<
					}
					80 {
						>
							emit {\b,  40 kbps}
						<
					}
					96 {
						>
							emit {\b,  48 kbps}
						<
					}
					112 {
						>
							emit {\b,  56 kbps}
						<
					}
				}
	
				switch [Nv byte 2 0 & 12] {
					0 {
						>
							emit {\b, 11.025 kHz}
						<
					}
					4 {
						>
							emit {\b, 12 kHz}
						<
					}
					8 {
						>
							emit {\b, 8 kHz}
						<
					}
				}
	
				switch [Nv byte 3 0 & -64] {
					-128 {
						>
							emit {\b, 2x Monaural}
						<
					}
					-64 {
						>
							emit {\b, Monaural}
						<
					}
					0 {
						>
							emit {\b, Stereo}
						<
					}
					64 {
						>
							emit {\b, JntStereo}
						<
					}
				}
	
			<
		}
		-14 {
			>
				emit {MPEG ADTS, layer III, v2}
				mime audio/mpeg
				switch [Nv byte 2 0 & -16] {
					-128 {
						>
							emit {\b,  64 kbps}
						<
					}
					-112 {
						>
							emit {\b,  80 kbps}
						<
					}
					-96 {
						>
							emit {\b,  96 kbps}
						<
					}
					-80 {
						>
							emit {\b, 112 kbps}
						<
					}
					-64 {
						>
							emit {\b, 128 kbps}
						<
					}
					-48 {
						>
							emit {\b, 144 kbps}
						<
					}
					-32 {
						>
							emit {\b, 160 kbps}
						<
					}
					16 {
						>
							emit {\b,   8 kbps}
						<
					}
					32 {
						>
27924
27925
27926
27927
27928
27929
27930


















































27931
27932
27933
27934
27935
27936
27937
						<
					}
					112 {
						>
							emit {\b,  56 kbps}
						<
					}


















































					-128 {
						>
							emit {\b,  64 kbps}
						<
					}
					-112 {
						>







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







28082
28083
28084
28085
28086
28087
28088
28089
28090
28091
28092
28093
28094
28095
28096
28097
28098
28099
28100
28101
28102
28103
28104
28105
28106
28107
28108
28109
28110
28111
28112
28113
28114
28115
28116
28117
28118
28119
28120
28121
28122
28123
28124
28125
28126
28127
28128
28129
28130
28131
28132
28133
28134
28135
28136
28137
28138
28139
28140
28141
28142
28143
28144
28145
						<
					}
					112 {
						>
							emit {\b,  56 kbps}
						<
					}
				}
	
				switch [Nv byte 2 0 & 12] {
					0 {
						>
							emit {\b, 22.05 kHz}
						<
					}
					4 {
						>
							emit {\b, 24 kHz}
						<
					}
					8 {
						>
							emit {\b, 16 kHz}
						<
					}
				}
	
				switch [Nv byte 3 0 & -64] {
					-128 {
						>
							emit {\b, 2x Monaural}
						<
					}
					-64 {
						>
							emit {\b, Monaural}
						<
					}
					0 {
						>
							emit {\b, Stereo}
						<
					}
					64 {
						>
							emit {\b, JntStereo}
						<
					}
				}
	
			<
		}
		-12 {
			>
				emit {MPEG ADTS, layer II, v2}
				mime audio/mpeg
				switch [Nv byte 2 0 & -16] {
					-128 {
						>
							emit {\b,  64 kbps}
						<
					}
					-112 {
						>
27959
27960
27961
27962
27963
27964
27965
27966
27967
27968
27969
27970
27971
27972
27973
27974
27975
27976
27977
27978
27979
27980
27981
27982
27983
27984
27985
27986
27987
27988
27989
27990
27991
27992
27993
27994
27995
27996
27997
27998
27999
28000
28001
28002
28003
28004
28005
28006
28007
28008
28009
28010
28011
28012
28013
28014
28015
28016
28017
28018
28019
28020
28021
28022
						<
					}
					-32 {
						>
							emit {\b, 160 kbps}
						<
					}
				}
	
				switch [Nv byte 2 0 & 12] {
					0 {
						>
							emit {\b, 11.025 kHz}
						<
					}
					4 {
						>
							emit {\b, 12 kHz}
						<
					}
					8 {
						>
							emit {\b, 8 kHz}
						<
					}
				}
	
				switch [Nv byte 3 0 & 192] {
					0 {
						>
							emit {\b, Stereo}
						<
					}
					64 {
						>
							emit {\b, JntStereo}
						<
					}
					-128 {
						>
							emit {\b, 2x Monaural}
						<
					}
					-64 {
						>
							emit {\b, Monaural}
						<
					}
				}
	
			<
		}
		-14 {
			>
				emit {MPEG ADTS, layer III, v2}
				mime audio/mpeg
				switch [Nv byte 2 0 & 240] {
					16 {
						>
							emit {\b,   8 kbps}
						<
					}
					32 {
						>







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







28167
28168
28169
28170
28171
28172
28173


















































28174
28175
28176
28177
28178
28179
28180
						<
					}
					-32 {
						>
							emit {\b, 160 kbps}
						<
					}


















































					16 {
						>
							emit {\b,   8 kbps}
						<
					}
					32 {
						>
28044
28045
28046
28047
28048
28049
28050
28051
28052
28053
28054
28055
28056
28057
28058
28059
28060
28061
28062
28063
28064
28065
28066
28067
28068
28069
28070
28071
28072
28073
28074
28075
28076
28077
28078
28079
28080
28081
28082
28083
28084
28085
28086
28087
28088
28089
28090
28091
28092
28093
28094
28095
28096
28097
28098
28099
28100
28101
28102
28103
28104
28105
28106
28107
28108
28109
28110
28111
28112
28113
28114
28115
28116
28117
28118
28119
28120
28121
28122
28123
28124
28125
28126
28127
28128
28129
28130
28131
28132
28133
28134
28135
28136
28137
28138
28139
28140
28141
28142
28143
28144
28145
28146
28147
28148
28149
28150
28151
28152
28153
28154
28155
28156
28157
28158
28159
28160
28161
28162
28163
28164
28165
28166
28167
28168
28169
28170
28171
28172
28173
28174
28175
28176
28177
28178
28179
28180
28181
28182
28183
28184
28185
28186
28187
28188
28189
28190
28191
28192
28193
28194
28195
28196
28197
28198
28199
28200
28201
28202
28203
28204
28205
28206
28207
28208
28209
28210
28211
28212
28213
28214
28215
28216
28217
28218
28219
28220
28221
28222
28223
28224
28225
28226
28227
28228
28229
28230
28231
28232
28233
28234
28235
28236
28237
28238
28239
28240
28241
28242
28243
28244
28245
28246
28247
28248
28249
28250
28251
28252
28253
28254
28255



































28256
28257
28258
28259
28260
28261
28262
						<
					}
					112 {
						>
							emit {\b,  56 kbps}
						<
					}
					-128 {
						>
							emit {\b,  64 kbps}
						<
					}
					-112 {
						>
							emit {\b,  80 kbps}
						<
					}
					-96 {
						>
							emit {\b,  96 kbps}
						<
					}
					-80 {
						>
							emit {\b, 112 kbps}
						<
					}
					-64 {
						>
							emit {\b, 128 kbps}
						<
					}
					-48 {
						>
							emit {\b, 144 kbps}
						<
					}
					-32 {
						>
							emit {\b, 160 kbps}
						<
					}
				}
	
				switch [Nv byte 2 0 & 12] {
					0 {
						>
							emit {\b, 22.05 kHz}
						<
					}
					4 {
						>
							emit {\b, 24 kHz}
						<
					}
					8 {
						>
							emit {\b, 16 kHz}
						<
					}
				}
	
				switch [Nv byte 3 0 & 192] {
					0 {
						>
							emit {\b, Stereo}
						<
					}
					64 {
						>
							emit {\b, JntStereo}
						<
					}
					-128 {
						>
							emit {\b, 2x Monaural}
						<
					}
					-64 {
						>
							emit {\b, Monaural}
						<
					}
				}
	
			<
		}
		-12 {
			>
				emit {MPEG ADTS, layer II, v2}
				mime audio/mpeg
				switch [Nv byte 2 0 & 240] {
					16 {
						>
							emit {\b,   8 kbps}
						<
					}
					32 {
						>
							emit {\b,  16 kbps}
						<
					}
					48 {
						>
							emit {\b,  24 kbps}
						<
					}
					64 {
						>
							emit {\b,  32 kbps}
						<
					}
					80 {
						>
							emit {\b,  40 kbps}
						<
					}
					96 {
						>
							emit {\b,  48 kbps}
						<
					}
					112 {
						>
							emit {\b,  56 kbps}
						<
					}
					-128 {
						>
							emit {\b,  64 kbps}
						<
					}
					-112 {
						>
							emit {\b,  80 kbps}
						<
					}
					-96 {
						>
							emit {\b,  96 kbps}
						<
					}
					-80 {
						>
							emit {\b, 112 kbps}
						<
					}
					-64 {
						>
							emit {\b, 128 kbps}
						<
					}
					-48 {
						>
							emit {\b, 144 kbps}
						<
					}
					-32 {
						>
							emit {\b, 160 kbps}
						<
					}
				}
	
				switch [Nv byte 2 0 & 12] {
					0 {
						>
							emit {\b, 22.05 kHz}
						<
					}
					4 {
						>
							emit {\b, 24 kHz}
						<
					}
					8 {
						>
							emit {\b, 16 kHz}
						<
					}
				}
	
				switch [Nv byte 3 0 & 192] {
					0 {
						>
							emit {\b, Stereo}
						<
					}
					64 {
						>
							emit {\b, JntStereo}
						<
					}
					-128 {
						>
							emit {\b, 2x Monaural}
						<
					}
					-64 {
						>
							emit {\b, Monaural}
						<
					}
				}
	
			<
		}
		-10 {
			>
				emit {MPEG ADTS, layer I, v2}
				mime audio/mpeg
				switch [Nv byte 2 0 & 240] {



































					16 {
						>
							emit {\b,  32 kbps}
						<
					}
					32 {
						>







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<




















|
<
<
<
<
<
<
<
<
<
<










<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<


<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<








<
<
<
<
<
<
<
<
<
<








|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







28202
28203
28204
28205
28206
28207
28208



































28209
28210
28211
28212
28213
28214
28215
28216
28217
28218
28219
28220
28221
28222
28223
28224
28225
28226
28227
28228
28229










28230
28231
28232
28233
28234
28235
28236
28237
28238
28239


















































































28240
28241


















28242
28243
28244
28245
28246
28247
28248
28249










28250
28251
28252
28253
28254
28255
28256
28257
28258
28259
28260
28261
28262
28263
28264
28265
28266
28267
28268
28269
28270
28271
28272
28273
28274
28275
28276
28277
28278
28279
28280
28281
28282
28283
28284
28285
28286
28287
28288
28289
28290
28291
28292
28293
28294
28295
28296
28297
28298
28299
28300
						<
					}
					112 {
						>
							emit {\b,  56 kbps}
						<
					}



































				}
	
				switch [Nv byte 2 0 & 12] {
					0 {
						>
							emit {\b, 22.05 kHz}
						<
					}
					4 {
						>
							emit {\b, 24 kHz}
						<
					}
					8 {
						>
							emit {\b, 16 kHz}
						<
					}
				}
	
				switch [Nv byte 3 0 & -64] {










					-128 {
						>
							emit {\b, 2x Monaural}
						<
					}
					-64 {
						>
							emit {\b, Monaural}
						<
					}


















































































					0 {
						>


















							emit {\b, Stereo}
						<
					}
					64 {
						>
							emit {\b, JntStereo}
						<
					}










				}
	
			<
		}
		-10 {
			>
				emit {MPEG ADTS, layer I, v2}
				mime audio/mpeg
				switch [Nv byte 2 0 & -16] {
					-128 {
						>
							emit {\b, 128 kbps}
						<
					}
					-112 {
						>
							emit {\b, 144 kbps}
						<
					}
					-96 {
						>
							emit {\b, 160 kbps}
						<
					}
					-80 {
						>
							emit {\b, 176 kbps}
						<
					}
					-64 {
						>
							emit {\b, 192 kbps}
						<
					}
					-48 {
						>
							emit {\b, 224 kbps}
						<
					}
					-32 {
						>
							emit {\b, 256 kbps}
						<
					}
					16 {
						>
							emit {\b,  32 kbps}
						<
					}
					32 {
						>
28284
28285
28286
28287
28288
28289
28290
28291
28292
28293
28294
28295
28296
28297
28298
28299
28300
28301
28302
28303
28304
28305
28306
28307
28308
28309
28310
28311
28312
28313
28314
28315
28316
28317
28318
28319
28320
28321
28322
28323
28324
28325
28326
28327
28328
28329
28330
28331
28332
28333
28334
28335
28336
28337
28338
28339
28340
28341
28342
28343
28344
28345
28346
28347
28348
28349
28350
28351
28352
28353
28354
28355
28356
28357
28358
28359
28360
28361
28362
28363
28364
28365
28366




28367

28368

28369
28370




28371
28372
28373










































28374
28375
28376
28377
28378
28379
28380
						<
					}
					112 {
						>
							emit {\b, 112 kbps}
						<
					}
					-128 {
						>
							emit {\b, 128 kbps}
						<
					}
					-112 {
						>
							emit {\b, 144 kbps}
						<
					}
					-96 {
						>
							emit {\b, 160 kbps}
						<
					}
					-80 {
						>
							emit {\b, 176 kbps}
						<
					}
					-64 {
						>
							emit {\b, 192 kbps}
						<
					}
					-48 {
						>
							emit {\b, 224 kbps}
						<
					}
					-32 {
						>
							emit {\b, 256 kbps}
						<
					}
				}
	
				switch [Nv byte 2 0 & 12] {
					0 {
						>
							emit {\b, 22.05 kHz}
						<
					}
					4 {
						>
							emit {\b, 24 kHz}
						<
					}
					8 {
						>
							emit {\b, 16 kHz}
						<
					}
				}
	
				switch [Nv byte 3 0 & 192] {
					0 {
						>
							emit {\b, Stereo}
						<
					}
					64 {
						>
							emit {\b, JntStereo}
						<
					}
					-128 {
						>
							emit {\b, 2x Monaural}
						<
					}
					-64 {
						>
							emit {\b, Monaural}
						<
					}




				}

	

			<
		}




		-6 {
			>
				switch [Nv byte 2 0 & 240] {










































					16 {
						>
							emit {MPEG ADTS, layer III, v1,  32 kbps}
							mime audio/mpeg
						<
					}
					32 {







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<




















|
<
<
<
<
<
<
<
<
<
<










>
>
>
>
|
>
|
>
|
|
>
>
>
>


|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







28322
28323
28324
28325
28326
28327
28328



































28329
28330
28331
28332
28333
28334
28335
28336
28337
28338
28339
28340
28341
28342
28343
28344
28345
28346
28347
28348
28349










28350
28351
28352
28353
28354
28355
28356
28357
28358
28359
28360
28361
28362
28363
28364
28365
28366
28367
28368
28369
28370
28371
28372
28373
28374
28375
28376
28377
28378
28379
28380
28381
28382
28383
28384
28385
28386
28387
28388
28389
28390
28391
28392
28393
28394
28395
28396
28397
28398
28399
28400
28401
28402
28403
28404
28405
28406
28407
28408
28409
28410
28411
28412
28413
28414
28415
28416
28417
28418
28419
28420
28421
28422
28423
28424
28425
						<
					}
					112 {
						>
							emit {\b, 112 kbps}
						<
					}



































				}
	
				switch [Nv byte 2 0 & 12] {
					0 {
						>
							emit {\b, 22.05 kHz}
						<
					}
					4 {
						>
							emit {\b, 24 kHz}
						<
					}
					8 {
						>
							emit {\b, 16 kHz}
						<
					}
				}
	
				switch [Nv byte 3 0 & -64] {










					-128 {
						>
							emit {\b, 2x Monaural}
						<
					}
					-64 {
						>
							emit {\b, Monaural}
						<
					}
					0 {
						>
							emit {\b, Stereo}
						<
					}
					64 {
						>
							emit {\b, JntStereo}
						<
					}
				}
	
			<
		}
		-6 {
			>
				switch [Nv byte 2 0 & -16] {
					-128 {
						>
							emit {MPEG ADTS, layer III, v1, 112 kbps}
							mime audio/mpeg
						<
					}
					-112 {
						>
							emit {MPEG ADTS, layer III, v1, 128 kbps}
							mime audio/mpeg
						<
					}
					-96 {
						>
							emit {MPEG ADTS, layer III, v1, 160 kbps}
							mime audio/mpeg
						<
					}
					-80 {
						>
							emit {MPEG ADTS, layer III, v1, 192 kbps}
							mime audio/mpeg
						<
					}
					-64 {
						>
							emit {MPEG ADTS, layer III, v1, 224 kbps}
							mime audio/mpeg
						<
					}
					-48 {
						>
							emit {MPEG ADTS, layer III, v1, 256 kbps}
							mime audio/mpeg
						<
					}
					-32 {
						>
							emit {MPEG ADTS, layer III, v1, 320 kbps}
							mime audio/mpeg
						<
					}
					16 {
						>
							emit {MPEG ADTS, layer III, v1,  32 kbps}
							mime audio/mpeg
						<
					}
					32 {
28409
28410
28411
28412
28413
28414
28415
28416
28417
28418
28419
28420
28421
28422
28423
28424
28425
28426
28427
28428
28429
28430
28431
28432
28433
28434
28435
28436
28437
28438
28439
28440
28441
28442
28443
28444
28445
28446
28447
28448
28449
28450
28451
28452
28453
28454
28455
28456
28457
28458
28459
28460
28461
28462
28463
28464
28465
28466
28467
28468
28469
28470
28471
28472
28473
28474
28475
28476
28477
28478










28479
28480
28481
28482
28483
28484
28485
28486
28487
28488
28489
28490
28491
28492
28493
28494
28495
28496
28497
28498
28499
28500
28501
28502
28503
28504
28505
28506
28507



































28508
28509
28510
28511
28512
28513
28514
					}
					112 {
						>
							emit {MPEG ADTS, layer III, v1,  96 kbps}
							mime audio/mpeg
						<
					}
					-128 {
						>
							emit {MPEG ADTS, layer III, v1, 112 kbps}
							mime audio/mpeg
						<
					}
					-112 {
						>
							emit {MPEG ADTS, layer III, v1, 128 kbps}
							mime audio/mpeg
						<
					}
					-96 {
						>
							emit {MPEG ADTS, layer III, v1, 160 kbps}
							mime audio/mpeg
						<
					}
					-80 {
						>
							emit {MPEG ADTS, layer III, v1, 192 kbps}
							mime audio/mpeg
						<
					}
					-64 {
						>
							emit {MPEG ADTS, layer III, v1, 224 kbps}
							mime audio/mpeg
						<
					}
					-48 {
						>
							emit {MPEG ADTS, layer III, v1, 256 kbps}
							mime audio/mpeg
						<
					}
					-32 {
						>
							emit {MPEG ADTS, layer III, v1, 320 kbps}
							mime audio/mpeg
						<
					}
				}
	
				switch [Nv byte 2 0 & 12] {
					0 {
						>
							emit {\b, 44.1 kHz}
						<
					}
					4 {
						>
							emit {\b, 48 kHz}
						<
					}
					8 {
						>
							emit {\b, 32 kHz}
						<
					}
				}
	
				switch [Nv byte 3 0 & 192] {










					0 {
						>
							emit {\b, Stereo}
						<
					}
					64 {
						>
							emit {\b, JntStereo}
						<
					}
					-128 {
						>
							emit {\b, 2x Monaural}
						<
					}
					-64 {
						>
							emit {\b, Monaural}
						<
					}
				}
	
			<
		}
		-4 {
			>
				emit {MPEG ADTS, layer II, v1}
				mime audio/mpeg
				switch [Nv byte 2 0 & 240] {



































					16 {
						>
							emit {\b,  32 kbps}
						<
					}
					32 {
						>







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<




















|
>
>
>
>
>
>
>
>
>
>










<
<
<
<
<
<
<
<
<
<








|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







28454
28455
28456
28457
28458
28459
28460










































28461
28462
28463
28464
28465
28466
28467
28468
28469
28470
28471
28472
28473
28474
28475
28476
28477
28478
28479
28480
28481
28482
28483
28484
28485
28486
28487
28488
28489
28490
28491
28492
28493
28494
28495
28496
28497
28498
28499
28500
28501










28502
28503
28504
28505
28506
28507
28508
28509
28510
28511
28512
28513
28514
28515
28516
28517
28518
28519
28520
28521
28522
28523
28524
28525
28526
28527
28528
28529
28530
28531
28532
28533
28534
28535
28536
28537
28538
28539
28540
28541
28542
28543
28544
28545
28546
28547
28548
28549
28550
28551
28552
					}
					112 {
						>
							emit {MPEG ADTS, layer III, v1,  96 kbps}
							mime audio/mpeg
						<
					}










































				}
	
				switch [Nv byte 2 0 & 12] {
					0 {
						>
							emit {\b, 44.1 kHz}
						<
					}
					4 {
						>
							emit {\b, 48 kHz}
						<
					}
					8 {
						>
							emit {\b, 32 kHz}
						<
					}
				}
	
				switch [Nv byte 3 0 & -64] {
					-128 {
						>
							emit {\b, 2x Monaural}
						<
					}
					-64 {
						>
							emit {\b, Monaural}
						<
					}
					0 {
						>
							emit {\b, Stereo}
						<
					}
					64 {
						>
							emit {\b, JntStereo}
						<
					}










				}
	
			<
		}
		-4 {
			>
				emit {MPEG ADTS, layer II, v1}
				mime audio/mpeg
				switch [Nv byte 2 0 & -16] {
					-128 {
						>
							emit {\b, 128 kbps}
						<
					}
					-112 {
						>
							emit {\b, 160 kbps}
						<
					}
					-96 {
						>
							emit {\b, 192 kbps}
						<
					}
					-80 {
						>
							emit {\b, 224 kbps}
						<
					}
					-64 {
						>
							emit {\b, 256 kbps}
						<
					}
					-48 {
						>
							emit {\b, 320 kbps}
						<
					}
					-32 {
						>
							emit {\b, 384 kbps}
						<
					}
					16 {
						>
							emit {\b,  32 kbps}
						<
					}
					32 {
						>
28536
28537
28538
28539
28540
28541
28542
28543
28544
28545
28546
28547
28548
28549
28550
28551
28552
28553
28554
28555
28556
28557
28558
28559
28560
28561
28562
28563
28564
28565
28566
28567
28568
28569
28570
28571
28572
28573
28574
28575
28576
28577
28578
28579
28580
28581
28582
28583
28584
28585
28586
28587
28588
28589
28590
28591
28592
28593
28594
28595
28596
28597
28598










28599
28600
28601
28602
28603
28604
28605
28606
28607
28608
28609
28610
28611
28612
28613
28614
28615
28616
28617
28618
28619
28620
28621
28622
28623
28624
28625
28626
28627
28628
28629
28630
28631
28632
28633
28634
28635
						<
					}
					112 {
						>
							emit {\b, 112 kbps}
						<
					}
					-128 {
						>
							emit {\b, 128 kbps}
						<
					}
					-112 {
						>
							emit {\b, 160 kbps}
						<
					}
					-96 {
						>
							emit {\b, 192 kbps}
						<
					}
					-80 {
						>
							emit {\b, 224 kbps}
						<
					}
					-64 {
						>
							emit {\b, 256 kbps}
						<
					}
					-48 {
						>
							emit {\b, 320 kbps}
						<
					}
					-32 {
						>
							emit {\b, 384 kbps}
						<
					}
				}
	
				switch [Nv byte 2 0 & 12] {
					0 {
						>
							emit {\b, 44.1 kHz}
						<
					}
					4 {
						>
							emit {\b, 48 kHz}
						<
					}
					8 {
						>
							emit {\b, 32 kHz}
						<
					}
				}
	
				switch [Nv byte 3 0 & 192] {










					0 {
						>
							emit {\b, Stereo}
						<
					}
					64 {
						>
							emit {\b, JntStereo}
						<
					}
					-128 {
						>
							emit {\b, 2x Monaural}
						<
					}
					-64 {
						>
							emit {\b, Monaural}
						<
					}
				}
	
			<
		}
	}
	
	if {[S string 0 0 {} {} eq ADIF]} {
		>
			emit {MPEG ADIF, AAC}
			if {[N byte 4 0 0 {} {} & 128]} {
				>
					if {[N byte 13 0 0 {} {} & 16]} {
						>
							emit {\b, VBR}
						<
					}
	







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<




















|
>
>
>
>
>
>
>
>
>
>










<
<
<
<
<
<
<
<
<
<









|







28574
28575
28576
28577
28578
28579
28580



































28581
28582
28583
28584
28585
28586
28587
28588
28589
28590
28591
28592
28593
28594
28595
28596
28597
28598
28599
28600
28601
28602
28603
28604
28605
28606
28607
28608
28609
28610
28611
28612
28613
28614
28615
28616
28617
28618
28619
28620
28621










28622
28623
28624
28625
28626
28627
28628
28629
28630
28631
28632
28633
28634
28635
28636
28637
28638
						<
					}
					112 {
						>
							emit {\b, 112 kbps}
						<
					}



































				}
	
				switch [Nv byte 2 0 & 12] {
					0 {
						>
							emit {\b, 44.1 kHz}
						<
					}
					4 {
						>
							emit {\b, 48 kHz}
						<
					}
					8 {
						>
							emit {\b, 32 kHz}
						<
					}
				}
	
				switch [Nv byte 3 0 & -64] {
					-128 {
						>
							emit {\b, 2x Monaural}
						<
					}
					-64 {
						>
							emit {\b, Monaural}
						<
					}
					0 {
						>
							emit {\b, Stereo}
						<
					}
					64 {
						>
							emit {\b, JntStereo}
						<
					}










				}
	
			<
		}
	}
	
	if {[S string 0 0 {} {} eq ADIF]} {
		>
			emit {MPEG ADIF, AAC}
			if {[N byte 4 0 0 {} {} & -128]} {
				>
					if {[N byte 13 0 0 {} {} & 16]} {
						>
							emit {\b, VBR}
						<
					}
	
28665
28666
28667
28668
28669
28670
28671
28672
28673
28674
28675
28676
28677
28678
28679
28680
28681
28682
28683
28684
28685
28686
28687
28688
28689
28690
28691
28692
28693
28694
28695
28696
28697
28698
28699
28700
	
					if {[N byte 16 0 0 {} {} & 16]} {
						>
							emit {\b, 8 or more streams}
						<
					}
	
					if {[N byte 4 0 0 {} {} & 128]} {
						>
							emit {\b, Copyrighted}
						<
					}
	
					if {[N byte 13 0 0 {} {} & 64]} {
						>
							emit {\b, Original Source}
						<
					}
	
					if {[N byte 13 0 0 {} {} & 32]} {
						>
							emit {\b, Home Flag}
						<
					}
	
				<
			}
	
			if {[N byte 4 0 0 {} {} ^ 128]} {
				>
					if {[N byte 4 0 0 {} {} & 16]} {
						>
							emit {\b, VBR}
						<
					}
	







|




















|







28668
28669
28670
28671
28672
28673
28674
28675
28676
28677
28678
28679
28680
28681
28682
28683
28684
28685
28686
28687
28688
28689
28690
28691
28692
28693
28694
28695
28696
28697
28698
28699
28700
28701
28702
28703
	
					if {[N byte 16 0 0 {} {} & 16]} {
						>
							emit {\b, 8 or more streams}
						<
					}
	
					if {[N byte 4 0 0 {} {} & -128]} {
						>
							emit {\b, Copyrighted}
						<
					}
	
					if {[N byte 13 0 0 {} {} & 64]} {
						>
							emit {\b, Original Source}
						<
					}
	
					if {[N byte 13 0 0 {} {} & 32]} {
						>
							emit {\b, Home Flag}
						<
					}
	
				<
			}
	
			if {[N byte 4 0 0 {} {} ^ -128]} {
				>
					if {[N byte 4 0 0 {} {} & 16]} {
						>
							emit {\b, VBR}
						<
					}
	
28749
28750
28751
28752
28753
28754
28755
28756
28757
28758
28759
28760
28761
28762
28763
28764
28765
28766
28767
28768
28769
28770
28771
28772
28773
28774
28775
28776
28777





28778
28779
28780
28781
28782
28783
28784
28785
28786
28787
28788
28789
28790
28791
28792
28793
28794
28795
28796
28797
28798
28799
				<
			}
	
			mime audio/x-hx-aac-adif
		<
	}
	
	if {[N beshort 0 0 0 & 65526 == 65520]} {
		>
			emit {MPEG ADTS, AAC}
			if {[N byte 1 0 0 {} {} & 8]} {
				>
					emit {\b, v2}
				<
			}
	
			if {[N byte 1 0 0 {} {} ^ 8]} {
				>
					emit {\b, v4}
					if {[N byte 2 0 0 {} {} & 192]} {
						>
							emit {\b LTP}
						<
					}
	
				<
			}
	
			switch [Nv byte 2 0 & 192] {





				0 {
					>
						emit {\b Main}
					<
				}
				64 {
					>
						emit {\b LC}
					<
				}
				-128 {
					>
						emit {\b SSR}
					<
				}
			}
	
			switch [Nv byte 2 0 & 60] {
				0 {
					>
						emit {\b, 96 kHz}
					<







|











|








|
>
>
>
>
>










<
<
<
<
<







28752
28753
28754
28755
28756
28757
28758
28759
28760
28761
28762
28763
28764
28765
28766
28767
28768
28769
28770
28771
28772
28773
28774
28775
28776
28777
28778
28779
28780
28781
28782
28783
28784
28785
28786
28787
28788
28789
28790
28791
28792
28793
28794
28795





28796
28797
28798
28799
28800
28801
28802
				<
			}
	
			mime audio/x-hx-aac-adif
		<
	}
	
	if {[N beshort 0 0 0 & -10 == -16]} {
		>
			emit {MPEG ADTS, AAC}
			if {[N byte 1 0 0 {} {} & 8]} {
				>
					emit {\b, v2}
				<
			}
	
			if {[N byte 1 0 0 {} {} ^ 8]} {
				>
					emit {\b, v4}
					if {[N byte 2 0 0 {} {} & -64]} {
						>
							emit {\b LTP}
						<
					}
	
				<
			}
	
			switch [Nv byte 2 0 & -64] {
				-128 {
					>
						emit {\b SSR}
					<
				}
				0 {
					>
						emit {\b Main}
					<
				}
				64 {
					>
						emit {\b LC}
					<
				}





			}
	
			switch [Nv byte 2 0 & 60] {
				0 {
					>
						emit {\b, 96 kHz}
					<
28894
28895
28896
28897
28898
28899
28900
28901
28902
28903
28904
28905
28906
28907
28908
28909
28910
28911
				<
			}
	
			mime audio/x-hx-aac-adts
		<
	}
	
	if {[N beshort 0 0 0 & 65504 == 22240]} {
		>
			emit {MPEG-4 LOAS}
			if {[N byte 3 0 0 & 224 == 64]} {
				>
					switch [Nv byte 4 0 & 60] {
						4 {
							>
								emit {\b, single stream}
							<
						}







|


|







28897
28898
28899
28900
28901
28902
28903
28904
28905
28906
28907
28908
28909
28910
28911
28912
28913
28914
				<
			}
	
			mime audio/x-hx-aac-adts
		<
	}
	
	if {[N beshort 0 0 0 & -32 == 22240]} {
		>
			emit {MPEG-4 LOAS}
			if {[N byte 3 0 0 & -32 == 64]} {
				>
					switch [Nv byte 4 0 & 60] {
						4 {
							>
								emit {\b, single stream}
							<
						}
28932
28933
28934
28935
28936
28937
28938
28939
28940
28941
28942
28943
28944
28945
28946
							emit {\b, 8 or more streams}
						<
					}
	
				<
			}
	
			if {[N byte 3 0 0 & 192 == 0]} {
				>
					switch [Nv byte 4 0 & 120] {
						8 {
							>
								emit {\b, single stream}
							<
						}







|







28935
28936
28937
28938
28939
28940
28941
28942
28943
28944
28945
28946
28947
28948
28949
							emit {\b, 8 or more streams}
						<
					}
	
				<
			}
	
			if {[N byte 3 0 0 & -64 == 0]} {
				>
					switch [Nv byte 4 0 & 120] {
						8 {
							>
								emit {\b, single stream}
							<
						}
29042
29043
29044
29045
29046
29047
29048
29049
29050
29051
29052
29053
29054
29055
29056
					<
				}
	
			<
		}
	}
	
	if {[N belong 0 0 0 & 4284481296 == 1195376656]} {
		>
			if {[N byte 188 0 0 {} {} == 71]} {
				>
					emit {MPEG transport stream data}
				<
			}
	







|







29045
29046
29047
29048
29049
29050
29051
29052
29053
29054
29055
29056
29057
29058
29059
					<
				}
	
			<
		}
	}
	
	if {[N belong 0 0 0 & -10486000 == 1195376656]} {
		>
			if {[N byte 188 0 0 {} {} == 71]} {
				>
					emit {MPEG transport stream data}
				<
			}
	
29429
29430
29431
29432
29433
29434
29435
29436
29437
29438
29439
29440
29441
29442
29443
29444
29445
29446
29447
29448
29449
29450
29451
29452
29453
29454
29455
29456
29457
29458
29459
29460
29461
29462
29463
29464
29465
29466
29467
29468
29469
29470
29471
29472
29473
29474
29475
29476
29477
29478
29479
29480
29481
29482
29483
29484
29485
29486
29487
29488
	if {[S string 0 0 {} {} eq Interplay\040MVE\040File\032]} {
		>
			emit {Interplay MVE Movie}
		<
	}
	
	switch [Nv bequad 0 0 {} {}] {
		11259375 {
			>
				emit {Erlang DETS file}
			<
		}
		2566813404 {
			>
				if {[N ubeshort 8 0 0 {} {} < 10]} {
					>
						emit {APT cache data, version %u}
						if {[N beshort 10 0 0 {} {} x {}]} {
							>
								emit {\b.%u, 64 bit big-endian}
							<
						}
	
						U 15 apt-cache-64bit-be 0
	
					<
				}
	
			<
		}
		65677417116533018 {
			>
				emit {UCL compressed data}
			<
		}
		1315192064904724480 {
			>
				emit {Nintendo 64 ROM image (wordswapped)}
				mime application/x-n64-rom
			<
		}
		3999266915158593280 {
			>
				emit {Nintendo 64 ROM image (V64)}
				mime application/x-n64-rom
			<
		}
		4616813591155179520 {
			>
				emit {Nintendo 64 ROM image (32-bit byteswapped)}
				mime application/x-n64-rom
			<
		}
		-9207870847048482801 {
			>
				emit {Nintendo 64 ROM image}
				mime application/x-n64-rom
				if {[S string 32 0 {} {} > \0]} {
					>
						emit {\b: "%.20s"}







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







29432
29433
29434
29435
29436
29437
29438














































29439
29440
29441
29442
29443
29444
29445
	if {[S string 0 0 {} {} eq Interplay\040MVE\040File\032]} {
		>
			emit {Interplay MVE Movie}
		<
	}
	
	switch [Nv bequad 0 0 {} {}] {














































		-9207870847048482801 {
			>
				emit {Nintendo 64 ROM image}
				mime application/x-n64-rom
				if {[S string 32 0 {} {} > \0]} {
					>
						emit {\b: "%.20s"}
29545
29546
29547
29548
29549
29550
29551
29552
29553
29554
29555
29556
29557
29558
29559
					<
				}
	
			<
		}
		-5199405631432697327 {
			>
				if {[N bequad 8 0 0 {} {} == 11983515692459535757]} {
					>
						emit {Windows Television DVR Media}
					<
				}
	
			<
		}







|







29502
29503
29504
29505
29506
29507
29508
29509
29510
29511
29512
29513
29514
29515
29516
					<
				}
	
			<
		}
		-5199405631432697327 {
			>
				if {[N bequad 8 0 0 {} {} == -6463228381250015859]} {
					>
						emit {Windows Television DVR Media}
					<
				}
	
			<
		}
29596
29597
29598
29599
29600
29601
29602














































29603
29604
29605
29606
29607
29608
29609
				if {[N byte [R 7] 0 0 {} {} x {}]} {
					>
						emit {version %d (big-endian)}
					<
				}
	
			<














































		}
	}
	
	if {[S string 0 0 {} {} eq FILM]} {
		>
			emit {Sega FILM/CPK Multimedia,}
			if {[N belong 32 0 0 {} {} x {}]} {







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







29553
29554
29555
29556
29557
29558
29559
29560
29561
29562
29563
29564
29565
29566
29567
29568
29569
29570
29571
29572
29573
29574
29575
29576
29577
29578
29579
29580
29581
29582
29583
29584
29585
29586
29587
29588
29589
29590
29591
29592
29593
29594
29595
29596
29597
29598
29599
29600
29601
29602
29603
29604
29605
29606
29607
29608
29609
29610
29611
29612
				if {[N byte [R 7] 0 0 {} {} x {}]} {
					>
						emit {version %d (big-endian)}
					<
				}
	
			<
		}
		11259375 {
			>
				emit {Erlang DETS file}
			<
		}
		2566813404 {
			>
				if {[N ubeshort 8 0 0 {} {} < 10]} {
					>
						emit {APT cache data, version %u}
						if {[N beshort 10 0 0 {} {} x {}]} {
							>
								emit {\b.%u, 64 bit big-endian}
							<
						}
	
						U 15 apt-cache-64bit-be 0
	
					<
				}
	
			<
		}
		65677417116533018 {
			>
				emit {UCL compressed data}
			<
		}
		1315192064904724480 {
			>
				emit {Nintendo 64 ROM image (wordswapped)}
				mime application/x-n64-rom
			<
		}
		3999266915158593280 {
			>
				emit {Nintendo 64 ROM image (V64)}
				mime application/x-n64-rom
			<
		}
		4616813591155179520 {
			>
				emit {Nintendo 64 ROM image (32-bit byteswapped)}
				mime application/x-n64-rom
			<
		}
	}
	
	if {[S string 0 0 {} {} eq FILM]} {
		>
			emit {Sega FILM/CPK Multimedia,}
			if {[N belong 32 0 0 {} {} x {}]} {
29760
29761
29762
29763
29764
29765
29766































29767
29768
29769
29770
29771
29772
29773
				<
			}
	
		<
	}
	
	switch [Nv long 0 0 {} {}] {































		262 {
			>
				emit {68k Blit mpx/mux executable}
			<
		}
		268 {
			>







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







29763
29764
29765
29766
29767
29768
29769
29770
29771
29772
29773
29774
29775
29776
29777
29778
29779
29780
29781
29782
29783
29784
29785
29786
29787
29788
29789
29790
29791
29792
29793
29794
29795
29796
29797
29798
29799
29800
29801
29802
29803
29804
29805
29806
29807
				<
			}
	
		<
	}
	
	switch [Nv long 0 0 {} {}] {
		-1042103351 {
			>
				emit {SPSS Portable File}
				if {[S string 40 0 {} {} x {}]} {
					>
						emit %s
					<
				}
	
			<
		}
		-762612112 {
			>
				emit {CLISP memory image data, other endian}
			<
		}
		-97271666 {
			>
				emit {SunPC 4.0 Hard Disk}
			<
		}
		-1 {
			>
				if {[N belong [R 0] 0 0 {} {} == -1432791706]} {
					>
						emit {Xilinx RAW bitstream (.BIN)}
					<
				}
	
			<
		}
		262 {
			>
				emit {68k Blit mpx/mux executable}
			<
		}
		268 {
			>
30156
30157
30158
30159
30160
30161
30162
30163
30164
30165
30166
30167
30168
30169
30170
30171
30172
30173
30174
30175
30176
30177
30178
30179
30180
30181
30182
30183
30184
30185
30186
30187
30188
30189
30190
30191
30192
30193
30194
30195
30196
30197
30198
30199
30200
				}
	
			<
		}
		1886817234 {
			>
				emit {CLISP memory image data}
			<
		}
		-1042103351 {
			>
				emit {SPSS Portable File}
				if {[S string 40 0 {} {} x {}]} {
					>
						emit %s
					<
				}
	
			<
		}
		-762612112 {
			>
				emit {CLISP memory image data, other endian}
			<
		}
		-97271666 {
			>
				emit {SunPC 4.0 Hard Disk}
			<
		}
		-1 {
			>
				if {[N belong [R 0] 0 0 {} {} == 2862175590]} {
					>
						emit {Xilinx RAW bitstream (.BIN)}
					<
				}
	
			<
		}
	}
	
	if {[S search 0 0 t 1 eq FiLeStArTfIlEsTaRt]} {
		>
			emit {binscii (apple ][) text}







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







30190
30191
30192
30193
30194
30195
30196































30197
30198
30199
30200
30201
30202
30203
				}
	
			<
		}
		1886817234 {
			>
				emit {CLISP memory image data}































			<
		}
	}
	
	if {[S search 0 0 t 1 eq FiLeStArTfIlEsTaRt]} {
		>
			emit {binscii (apple ][) text}
30308
30309
30310
30311
30312
30313
30314
30315
30316
30317
30318
30319
30320
30321
30322
	
		<
	}
	
	if {[S string 0 0 {} {} eq package0]} {
		>
			emit {Newton package, NOS 1.x,}
			if {[N belong 12 0 0 {} {} & 2147483648]} {
				>
					emit AutoRemove,
				<
			}
	
			if {[N belong 12 0 0 {} {} & 1073741824]} {
				>







|







30311
30312
30313
30314
30315
30316
30317
30318
30319
30320
30321
30322
30323
30324
30325
	
		<
	}
	
	if {[S string 0 0 {} {} eq package0]} {
		>
			emit {Newton package, NOS 1.x,}
			if {[N belong 12 0 0 {} {} & -2147483648]} {
				>
					emit AutoRemove,
				<
			}
	
			if {[N belong 12 0 0 {} {} & 1073741824]} {
				>
30350
30351
30352
30353
30354
30355
30356
30357
30358
30359
30360
30361
30362
30363
30364
	
		<
	}
	
	if {[S string 0 0 {} {} eq package1]} {
		>
			emit {Newton package, NOS 2.x,}
			if {[N belong 12 0 0 {} {} & 2147483648]} {
				>
					emit AutoRemove,
				<
			}
	
			if {[N belong 12 0 0 {} {} & 1073741824]} {
				>







|







30353
30354
30355
30356
30357
30358
30359
30360
30361
30362
30363
30364
30365
30366
30367
	
		<
	}
	
	if {[S string 0 0 {} {} eq package1]} {
		>
			emit {Newton package, NOS 2.x,}
			if {[N belong 12 0 0 {} {} & -2147483648]} {
				>
					emit AutoRemove,
				<
			}
	
			if {[N belong 12 0 0 {} {} & 1073741824]} {
				>
30405
30406
30407
30408
30409
30410
30411
30412
30413
30414
30415
30416
30417
30418
30419
				9 {
					>
						emit {NOS 2.x,}
					<
				}
			}
	
			if {[N belong 12 0 0 {} {} & 2147483648]} {
				>
					emit AutoRemove,
				<
			}
	
			if {[N belong 12 0 0 {} {} & 1073741824]} {
				>







|







30408
30409
30410
30411
30412
30413
30414
30415
30416
30417
30418
30419
30420
30421
30422
				9 {
					>
						emit {NOS 2.x,}
					<
				}
			}
	
			if {[N belong 12 0 0 {} {} & -2147483648]} {
				>
					emit AutoRemove,
				<
			}
	
			if {[N belong 12 0 0 {} {} & 1073741824]} {
				>
30507
30508
30509
30510
30511
30512
30513
30514
30515
30516
30517
30518
30519
30520
30521
					emit {Applesoft BASIC program data, first line number %d}
				<
			}
	
		<
	}
	
	switch [Nv belong 0 0 & 4278255615] {
		1442840576 {
			>
				if {[S regex 1 0 s {} eq ^\[0-9\]]} {
					>
						emit {ps database}
						if {[S string 1 0 {} {} > \0]} {
							>







|







30510
30511
30512
30513
30514
30515
30516
30517
30518
30519
30520
30521
30522
30523
30524
					emit {Applesoft BASIC program data, first line number %d}
				<
			}
	
		<
	}
	
	switch [Nv belong 0 0 & -16711681] {
		1442840576 {
			>
				if {[S regex 1 0 s {} eq ^\[0-9\]]} {
					>
						emit {ps database}
						if {[S string 1 0 {} {} > \0]} {
							>
30560
30561
30562
30563
30564
30565
30566
30567















30568
30569
30570
30571
30572
30573
30574
	
				<
			}
	
			if {[S string 6 0 {} {} eq 00]} {
				>
					emit {\b}
					switch [Nv byte 8 0 & 240] {















						0 {
							>
								emit {\b}
								switch [Nv byte 8 0 & 15] {
									0 {
										>
											emit {\b, root type: null}







|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







30563
30564
30565
30566
30567
30568
30569
30570
30571
30572
30573
30574
30575
30576
30577
30578
30579
30580
30581
30582
30583
30584
30585
30586
30587
30588
30589
30590
30591
30592
	
				<
			}
	
			if {[S string 6 0 {} {} eq 00]} {
				>
					emit {\b}
					switch [Nv byte 8 0 & -16] {
						-128 {
							>
								emit {\b, root type: uid (CORRUPT)}
							<
						}
						-96 {
							>
								emit {\b, root type: array}
							<
						}
						-48 {
							>
								emit {\b, root type: dictionary}
							<
						}
						0 {
							>
								emit {\b}
								switch [Nv byte 8 0 & 15] {
									0 {
										>
											emit {\b, root type: null}
30614
30615
30616
30617
30618
30619
30620
30621
30622
30623
30624
30625
30626
30627
30628
30629
30630
30631
30632
30633
30634
30635
30636
30637
30638
30639
30640
30641
30642
30643
30644
30645
30646
30647
30648
30649
30650
30651
30652
30653
30654
30655
30656
30657
30658
30659
30660
30661
30662
30663
							<
						}
						96 {
							>
								emit {\b, root type: unicode string}
							<
						}
						-128 {
							>
								emit {\b, root type: uid (CORRUPT)}
							<
						}
						-96 {
							>
								emit {\b, root type: array}
							<
						}
						-48 {
							>
								emit {\b, root type: dictionary}
							<
						}
					}
	
				<
			}
	
		<
	}
	
	if {[S string 2 0 {} {} eq typedstream]} {
		>
			emit {NeXT/Apple typedstream data, big endian}
			if {[N byte 0 0 0 {} {} x {}]} {
				>
					emit {\b, version %d}
				<
			}
	
			if {[N byte 0 0 0 {} {} < 5]} {
				>
					emit {\b}
					if {[N byte 13 0 0 {} {} == 129]} {
						>
							emit {\b}
							if {[N ubeshort 14 0 0 {} {} x {}]} {
								>
									emit {\b, system %d}
								<
							}







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<




















|







30632
30633
30634
30635
30636
30637
30638















30639
30640
30641
30642
30643
30644
30645
30646
30647
30648
30649
30650
30651
30652
30653
30654
30655
30656
30657
30658
30659
30660
30661
30662
30663
30664
30665
30666
							<
						}
						96 {
							>
								emit {\b, root type: unicode string}
							<
						}















					}
	
				<
			}
	
		<
	}
	
	if {[S string 2 0 {} {} eq typedstream]} {
		>
			emit {NeXT/Apple typedstream data, big endian}
			if {[N byte 0 0 0 {} {} x {}]} {
				>
					emit {\b, version %d}
				<
			}
	
			if {[N byte 0 0 0 {} {} < 5]} {
				>
					emit {\b}
					if {[N byte 13 0 0 {} {} == -127]} {
						>
							emit {\b}
							if {[N ubeshort 14 0 0 {} {} x {}]} {
								>
									emit {\b, system %d}
								<
							}
30679
30680
30681
30682
30683
30684
30685
30686
30687
30688
30689
30690
30691
30692
30693
					emit {\b, version %d}
				<
			}
	
			if {[N byte 0 0 0 {} {} < 5]} {
				>
					emit {\b}
					if {[N byte 13 0 0 {} {} == 129]} {
						>
							emit {\b}
							if {[N uleshort 14 0 0 {} {} x {}]} {
								>
									emit {\b, system %d}
								<
							}







|







30682
30683
30684
30685
30686
30687
30688
30689
30690
30691
30692
30693
30694
30695
30696
					emit {\b, version %d}
				<
			}
	
			if {[N byte 0 0 0 {} {} < 5]} {
				>
					emit {\b}
					if {[N byte 13 0 0 {} {} == -127]} {
						>
							emit {\b}
							if {[N uleshort 14 0 0 {} {} x {}]} {
								>
									emit {\b, system %d}
								<
							}
30808
30809
30810
30811
30812
30813
30814
30815
30816
30817
30818
30819
30820
30821
30822
							emit {iTunes cover art}
							if {[S string 493 0 {} {} eq PNG]} {
								>
									emit (PNG)
								<
							}
	
							if {[N beshort 492 0 0 {} {} == 65496]} {
								>
									emit (JPEG)
								<
							}
	
						<
					}







|







30811
30812
30813
30814
30815
30816
30817
30818
30819
30820
30821
30822
30823
30824
30825
							emit {iTunes cover art}
							if {[S string 493 0 {} {} eq PNG]} {
								>
									emit (PNG)
								<
							}
	
							if {[N beshort 492 0 0 {} {} == -40]} {
								>
									emit (JPEG)
								<
							}
	
						<
					}
30878
30879
30880
30881
30882
30883
30884
30885
30886
30887
30888
30889
30890
30891
30892
30893
30894
30895
30896
30897
30898
30899
30900
30901
30902
30903
30904
30905
30906
30907
30908
30909
				<
			}
	
		<
	}
	
	switch [Nv lequad 0 0 {} {}] {
		2566813404 {
			>
				if {[N uleshort 8 0 0 {} {} < 10]} {
					>
						emit {APT cache data, version %u}
						if {[N leshort 10 0 0 {} {} x {}]} {
							>
								emit {\b.%u, 64 bit little-endian}
							<
						}
	
						U 15 apt-cache-64bit-be 0
	
					<
				}
	
			<
		}
		-9121646941414855425 {
			>
				emit {LLVM indexed profile data,}
				if {[N byte [R 0] 0 0 {} {} x {}]} {
					>
						emit {version %d}
					<







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







30881
30882
30883
30884
30885
30886
30887


















30888
30889
30890
30891
30892
30893
30894
				<
			}
	
		<
	}
	
	switch [Nv lequad 0 0 {} {}] {


















		-9121646941414855425 {
			>
				emit {LLVM indexed profile data,}
				if {[N byte [R 0] 0 0 {} {} x {}]} {
					>
						emit {version %d}
					<
30979
30980
30981
30982
30983
30984
30985


















30986
30987
30988
30989
30990
30991
30992
		}
		-41534659755609471 {
			>
				emit {LLVM raw profile data,}
				if {[N byte [R 0] 0 0 {} {} x {}]} {
					>
						emit {version %d}


















					<
				}
	
			<
		}
	}
	







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







30964
30965
30966
30967
30968
30969
30970
30971
30972
30973
30974
30975
30976
30977
30978
30979
30980
30981
30982
30983
30984
30985
30986
30987
30988
30989
30990
30991
30992
30993
30994
30995
		}
		-41534659755609471 {
			>
				emit {LLVM raw profile data,}
				if {[N byte [R 0] 0 0 {} {} x {}]} {
					>
						emit {version %d}
					<
				}
	
			<
		}
		2566813404 {
			>
				if {[N uleshort 8 0 0 {} {} < 10]} {
					>
						emit {APT cache data, version %u}
						if {[N leshort 10 0 0 {} {} x {}]} {
							>
								emit {\b.%u, 64 bit little-endian}
							<
						}
	
						U 15 apt-cache-64bit-be 0
	
					<
				}
	
			<
		}
	}
	
31189
31190
31191
31192
31193
31194
31195
31196
31197
31198
31199
31200
31201
31202
31203
					emit {%d symbol entries}
				<
			}
	
		<
	}
	
	switch [Nv lelong 0 0 & 2155937791] {
		538 {
			>
				emit {ARC archive data, uncompressed}
				mime application/x-arc
			<
		}
		794 {







|







31192
31193
31194
31195
31196
31197
31198
31199
31200
31201
31202
31203
31204
31205
31206
					emit {%d symbol entries}
				<
			}
	
		<
	}
	
	switch [Nv lelong 0 0 & -2139029505] {
		538 {
			>
				emit {ARC archive data, uncompressed}
				mime application/x-arc
			<
		}
		794 {
31372
31373
31374
31375
31376
31377
31378
31379
31380
31381
31382
31383
31384
31385
31386
	
	if {[S string 0 0 {} {} eq XhDr]} {
		>
			emit {X1 archive data}
		<
	}
	
	if {[N belong 0 0 0 & 4294959104 == 1996431360]} {
		>
			emit {CDC Codec archive data}
		<
	}
	
	if {[S string 0 0 {} {} eq \xad6\"]} {
		>







|







31375
31376
31377
31378
31379
31380
31381
31382
31383
31384
31385
31386
31387
31388
31389
	
	if {[S string 0 0 {} {} eq XhDr]} {
		>
			emit {X1 archive data}
		<
	}
	
	if {[N belong 0 0 0 & -8192 == 1996431360]} {
		>
			emit {CDC Codec archive data}
		<
	}
	
	if {[S string 0 0 {} {} eq \xad6\"]} {
		>
32036
32037
32038
32039
32040
32041
32042
32043
32044
32045
32046
32047
32048
32049
32050
	
	if {[S string 0 0 {} {} eq @\xc3\xa2\1\0]} {
		>
			emit {Pack Magic archive data}
		<
	}
	
	if {[N belong 0 0 0 & 4278190079 == 436421733]} {
		>
			emit {BTS archive data}
		<
	}
	
	if {[S string 0 0 {} {} eq Ora\ ]} {
		>







|







32039
32040
32041
32042
32043
32044
32045
32046
32047
32048
32049
32050
32051
32052
32053
	
	if {[S string 0 0 {} {} eq @\xc3\xa2\1\0]} {
		>
			emit {Pack Magic archive data}
		<
	}
	
	if {[N belong 0 0 0 & -16777217 == 436421733]} {
		>
			emit {BTS archive data}
		<
	}
	
	if {[S string 0 0 {} {} eq Ora\ ]} {
		>
32132
32133
32134
32135
32136
32137
32138
32139
32140
32141
32142
32143
32144
32145
32146
	
	if {[S string 0 0 {} {} eq UB]} {
		>
			emit {HIT archive data}
		<
	}
	
	if {[N belong 0 0 0 & 4294963200 == 1396846592]} {
		>
			emit {SBX archive data}
		<
	}
	
	if {[S string 0 0 {} {} eq NSK]} {
		>







|







32135
32136
32137
32138
32139
32140
32141
32142
32143
32144
32145
32146
32147
32148
32149
	
	if {[S string 0 0 {} {} eq UB]} {
		>
			emit {HIT archive data}
		<
	}
	
	if {[N belong 0 0 0 & -4096 == 1396846592]} {
		>
			emit {SBX archive data}
		<
	}
	
	if {[S string 0 0 {} {} eq NSK]} {
		>
32258
32259
32260
32261
32262
32263
32264
32265
32266
32267
32268
32269
32270
32271
32272
32273
32274
32275
32276
32277
32278
	
	if {[S string 0 0 {} {} eq FIZ]} {
		>
			emit {FIZ archive data}
		<
	}
	
	if {[N belong 0 0 0 & 4294963440 == 1297285120]} {
		>
			emit {MSXiE archive data}
		<
	}
	
	switch [Nv belong 0 0 & 4294967280] {
		0 {
			>
				if {[N beshort 4 0 0 {} {} == 2569]} {
					>
						if {[S string 6 0 {} {} eq OSMHeader]} {
							>
								emit {OpenStreetMap Protocolbuffer Binary Format}







|





|







32261
32262
32263
32264
32265
32266
32267
32268
32269
32270
32271
32272
32273
32274
32275
32276
32277
32278
32279
32280
32281
	
	if {[S string 0 0 {} {} eq FIZ]} {
		>
			emit {FIZ archive data}
		<
	}
	
	if {[N belong 0 0 0 & -3856 == 1297285120]} {
		>
			emit {MSXiE archive data}
		<
	}
	
	switch [Nv belong 0 0 & -16] {
		0 {
			>
				if {[N beshort 4 0 0 {} {} == 2569]} {
					>
						if {[S string 6 0 {} {} eq OSMHeader]} {
							>
								emit {OpenStreetMap Protocolbuffer Binary Format}
32620
32621
32622
32623
32624
32625
32626
32627
32628
32629
32630
32631
32632
32633
32634
			emit {PAQ archive data}
		<
	}
	
	if {[S string 0 0 {} {} eq PAQ]} {
		>
			emit {PAQ archive data}
			if {[N byte 3 0 0 & 240 == 48]} {
				>
					if {[N byte 3 0 0 {} {} x {}]} {
						>
							emit (v%c)
						<
					}
	







|







32623
32624
32625
32626
32627
32628
32629
32630
32631
32632
32633
32634
32635
32636
32637
			emit {PAQ archive data}
		<
	}
	
	if {[S string 0 0 {} {} eq PAQ]} {
		>
			emit {PAQ archive data}
			if {[N byte 3 0 0 & -16 == 48]} {
				>
					if {[N byte 3 0 0 {} {} x {}]} {
						>
							emit (v%c)
						<
					}
	
32647
32648
32649
32650
32651
32652
32653





32654
32655
32656
32657
32658
32659
32660
	if {[S string 0 0 {} {} eq JARCS]} {
		>
			emit {JAR (ARJ Software, Inc.) archive data}
		<
	}
	
	switch [Nv leshort 2 0 {} {}] {





		14336 {
			>
				emit {BS image,}
				if {[N leshort 6 0 0 {} {} x {}]} {
					>
						emit {Version %d,}
					<







>
>
>
>
>







32650
32651
32652
32653
32654
32655
32656
32657
32658
32659
32660
32661
32662
32663
32664
32665
32666
32667
32668
	if {[S string 0 0 {} {} eq JARCS]} {
		>
			emit {JAR (ARJ Software, Inc.) archive data}
		<
	}
	
	switch [Nv leshort 2 0 {} {}] {
		-5536 {
			>
				emit {ARJ archive data}
			<
		}
		14336 {
			>
				emit {BS image,}
				if {[N leshort 6 0 0 {} {} x {}]} {
					>
						emit {Version %d,}
					<
32670
32671
32672
32673
32674
32675
32676
32677
32678
32679
32680
32681
32682
32683
32684
32685
32686
32687
32688
32689
32690
32691
					>
						emit {(Decompresses to %d words)}
					<
				}
	
			<
		}
		-5536 {
			>
				emit {ARJ archive data}
			<
		}
	}
	
	if {[N belong 0 0 0 & 4294902012 == 1212219392]} {
		>
			emit {HA archive data}
			if {[N leshort 2 0 0 {} {} == 1]} {
				>
					emit {1 file,}
				<
			}







<
<
<
<
|
|
<
|







32678
32679
32680
32681
32682
32683
32684




32685
32686

32687
32688
32689
32690
32691
32692
32693
32694
					>
						emit {(Decompresses to %d words)}
					<
				}
	
			<
		}




	}
	

	if {[N belong 0 0 0 & -65284 == 1212219392]} {
		>
			emit {HA archive data}
			if {[N leshort 2 0 0 {} {} == 1]} {
				>
					emit {1 file,}
				<
			}
33387
33388
33389
33390
33391
33392
33393
33394
33395
33396
33397
33398
33399
33400
33401
33402
33403
33404
33405
33406
33407
33408
	
						<
					}
	
				<
			}
	
			if {[N leshort [I 26 uleshort 0 + 0 30] 0 0 {} {} == 51966]} {
				>
					emit {Java archive data (JAR)}
					mime application/java-archive
				<
			}
	
			if {[N leshort [I 26 uleshort 0 + 0 30] 0 0 {} {} != 51966]} {
				>
					if {[S string 26 0 {} {} ne \x8\0\0\0mimetype]} {
						>
							if {[S string 30 0 {} {} eq Payload/]} {
								>
									if {[S search 38 0 {} 64 eq .app/]} {
										>







|






|







33390
33391
33392
33393
33394
33395
33396
33397
33398
33399
33400
33401
33402
33403
33404
33405
33406
33407
33408
33409
33410
33411
	
						<
					}
	
				<
			}
	
			if {[N leshort [I 26 uleshort 0 + 0 30] 0 0 {} {} == -13570]} {
				>
					emit {Java archive data (JAR)}
					mime application/java-archive
				<
			}
	
			if {[N leshort [I 26 uleshort 0 + 0 30] 0 0 {} {} != -13570]} {
				>
					if {[S string 26 0 {} {} ne \x8\0\0\0mimetype]} {
						>
							if {[S string 30 0 {} {} eq Payload/]} {
								>
									if {[S search 38 0 {} 64 eq .app/]} {
										>
33416
33417
33418
33419
33420
33421
33422
33423
33424
33425
33426
33427
33428
33429
33430
	
						<
					}
	
				<
			}
	
			if {[N leshort [I 26 uleshort 0 + 0 30] 0 0 {} {} != 51966]} {
				>
					if {[S string 26 0 {} {} ne \x8\0\0\0mimetype]} {
						>
							emit {Zip archive data}
							if {[N beshort 4 0 0 {} {} x {}]} {
								>
									emit {\b, at least}







|







33419
33420
33421
33422
33423
33424
33425
33426
33427
33428
33429
33430
33431
33432
33433
	
						<
					}
	
				<
			}
	
			if {[N leshort [I 26 uleshort 0 + 0 30] 0 0 {} {} != -13570]} {
				>
					if {[S string 26 0 {} {} ne \x8\0\0\0mimetype]} {
						>
							emit {Zip archive data}
							if {[N beshort 4 0 0 {} {} x {}]} {
								>
									emit {\b, at least}
33469
33470
33471
33472
33473
33474
33475
33476
33477
33478
33479
33480
33481
33482
33483
					emit {\b, size %d}
				<
			}
	
		<
	}
	
	if {[N lelong 20 0 0 {} {} == 4257523676]} {
		>
			emit {Zoo archive data}
			if {[N byte 4 0 0 {} {} > 48]} {
				>
					emit {\b, v%c.}
					if {[N byte 6 0 0 {} {} > 47]} {
						>







|







33472
33473
33474
33475
33476
33477
33478
33479
33480
33481
33482
33483
33484
33485
33486
					emit {\b, size %d}
				<
			}
	
		<
	}
	
	if {[N lelong 20 0 0 {} {} == -37443620]} {
		>
			emit {Zoo archive data}
			if {[N byte 4 0 0 {} {} > 48]} {
				>
					emit {\b, v%c.}
					if {[N byte 6 0 0 {} {} > 47]} {
						>
33502
33503
33504
33505
33506
33507
33508
33509
33510
33511
33512
33513
33514
33515
33516
							emit {\b.%d+}
						<
					}
	
				<
			}
	
			if {[N lelong 42 0 0 {} {} == 4257523676]} {
				>
					emit {\b,}
					if {[N byte 70 0 0 {} {} > 0]} {
						>
							emit {extract: v%d}
							if {[N byte 71 0 0 {} {} x {}]} {
								>







|







33505
33506
33507
33508
33509
33510
33511
33512
33513
33514
33515
33516
33517
33518
33519
							emit {\b.%d+}
						<
					}
	
				<
			}
	
			if {[N lelong 42 0 0 {} {} == -37443620]} {
				>
					emit {\b,}
					if {[N byte 70 0 0 {} {} > 0]} {
						>
							emit {extract: v%d}
							if {[N byte 71 0 0 {} {} x {}]} {
								>
33779
33780
33781
33782
33783
33784
33785
33786
33787
33788
33789
33790
33791
33792
33793
	
			if {[N leshort 5 0 0 {} {} & 16384]} {
				>
					emit {\b, locked}
				<
			}
	
			if {[N leshort 5 0 0 {} {} & 32768]} {
				>
					emit {\b, solid}
				<
			}
	
		<
	}







|







33782
33783
33784
33785
33786
33787
33788
33789
33790
33791
33792
33793
33794
33795
33796
	
			if {[N leshort 5 0 0 {} {} & 16384]} {
				>
					emit {\b, locked}
				<
			}
	
			if {[N leshort 5 0 0 {} {} & -32768]} {
				>
					emit {\b, solid}
				<
			}
	
		<
	}
34079
34080
34081
34082
34083
34084
34085

34086
34087
34088
34089
34090
34091
34092
34093
					}
	
				<
			}
	
			if {[S search 3592 0 {} 7776 eq \x55\xAA]} {
				>

					T [R -512]
	
				<
			}
	
		<
	}
	







>
|







34082
34083
34084
34085
34086
34087
34088
34089
34090
34091
34092
34093
34094
34095
34096
34097
					}
	
				<
			}
	
			if {[S search 3592 0 {} 7776 eq \x55\xAA]} {
				>
					emit {\b; contains}
					T [R -512] {}
	
				<
			}
	
		<
	}
	
34416
34417
34418
34419
34420
34421
34422
34423
34424
34425
34426
34427
34428
34429
34430
	
			if {[N beshort 12 0 0 & 32767 x {}]} {
				>
					emit {at 1/%d}
				<
			}
	
			if {[N beshort 12 0 0 & 32768 > 0]} {
				>
					emit SMPTE
				<
			}
	
			mime audio/midi
		<







|







34420
34421
34422
34423
34424
34425
34426
34427
34428
34429
34430
34431
34432
34433
34434
	
			if {[N beshort 12 0 0 & 32767 x {}]} {
				>
					emit {at 1/%d}
				<
			}
	
			if {[N beshort 12 0 0 & -32768 > 0]} {
				>
					emit SMPTE
				<
			}
	
			mime audio/midi
		<
34467
34468
34469
34470
34471
34472
34473
34474
34475
34476
34477
34478
34479
34480
34481
			mime audio/x-unknown
		<
	}
	
	if {[S string 0 0 {} {} eq EMOD]} {
		>
			emit {Extended MOD sound data,}
			if {[N byte 4 0 0 & 240 x {}]} {
				>
					emit {version %d}
				<
			}
	
			if {[N byte 4 0 0 & 15 x {}]} {
				>







|







34471
34472
34473
34474
34475
34476
34477
34478
34479
34480
34481
34482
34483
34484
34485
			mime audio/x-unknown
		<
	}
	
	if {[S string 0 0 {} {} eq EMOD]} {
		>
			emit {Extended MOD sound data,}
			if {[N byte 4 0 0 & -16 x {}]} {
				>
					emit {version %d}
				<
			}
	
			if {[N byte 4 0 0 & 15 x {}]} {
				>
34970
34971
34972
34973
34974
34975
34976
34977
34978
34979
34980
34981
34982
34983
34984
					emit {\b.%d}
				<
			}
	
			if {[N byte 4 0 0 {} {} x {}]} {
				>
					emit {\b.%d}
					if {[N byte 5 0 0 {} {} & 128]} {
						>
							emit {\b, unsynchronized frames}
						<
					}
	
					if {[N byte 5 0 0 {} {} & 64]} {
						>







|







34974
34975
34976
34977
34978
34979
34980
34981
34982
34983
34984
34985
34986
34987
34988
					emit {\b.%d}
				<
			}
	
			if {[N byte 4 0 0 {} {} x {}]} {
				>
					emit {\b.%d}
					if {[N byte 5 0 0 {} {} & -128]} {
						>
							emit {\b, unsynchronized frames}
						<
					}
	
					if {[N byte 5 0 0 {} {} & 64]} {
						>
34997
34998
34999
35000
35001
35002
35003

35004
35005
35006
35007
35008
35009
35010
35011
							emit {\b, footer present}
						<
					}
	
				<
			}
	

			T [I 6 ubeid3 0 + 0 10]
	
		<
	}
	
	if {[S string 0 0 {} {} eq NESM\x1a]} {
		>
			emit {NES Sound File}







>
|







35001
35002
35003
35004
35005
35006
35007
35008
35009
35010
35011
35012
35013
35014
35015
35016
							emit {\b, footer present}
						<
					}
	
				<
			}
	
			emit {\b, contains:}
			T [I 6 ubeid3 0 + 0 10] {}
	
		<
	}
	
	if {[S string 0 0 {} {} eq NESM\x1a]} {
		>
			emit {NES Sound File}
35249
35250
35251
35252
35253
35254
35255
35256
35257
35258
35259
35260
35261
35262
35263
35264





35265
35266
35267
35268
35269
35270
35271
		<
	}
	
	if {[S string 0 0 {} {} eq LM8953]} {
		>
			emit {Yamaha TX Wave}
			switch [Nv byte 22 0 {} {}] {
				73 {
					>
						emit looped
					<
				}
				-55 {
					>
						emit non-looped
					<





				}
			}
	
			switch [Nv byte 23 0 {} {}] {
				1 {
					>
						emit 33kHz







<
<
<
<
<




>
>
>
>
>







35254
35255
35256
35257
35258
35259
35260





35261
35262
35263
35264
35265
35266
35267
35268
35269
35270
35271
35272
35273
35274
35275
35276
		<
	}
	
	if {[S string 0 0 {} {} eq LM8953]} {
		>
			emit {Yamaha TX Wave}
			switch [Nv byte 22 0 {} {}] {





				-55 {
					>
						emit non-looped
					<
				}
				73 {
					>
						emit looped
					<
				}
			}
	
			switch [Nv byte 23 0 {} {}] {
				1 {
					>
						emit 33kHz
36163
36164
36165
36166
36167
36168
36169
36170
36171
36172
36173
36174
36175
36176
36177
36178
36179
36180
36181
36182
36183
36184
36185





36186
36187
36188
36189
36190
36191
36192
36193
36194
36195
36196
36197
36198
36199
36200
36201
36202
36203
36204
36205
36206
36207
36208
36209
36210
36211
36212
36213
36214
36215
36216
36217
36218
36219
36220
36221
36222
36223
36224
36225
36226
36227
36228
36229
36230
36231
36232
36233
36234
36235
			emit {sc68 Atari ST music}
		<
	}
	
	if {[S string 0 0 {} {} eq MP+]} {
		>
			emit {Musepack audio (MP+)}
			if {[N byte 3 0 0 {} {} == 255]} {
				>
					emit {\b, SV pre8}
				<
			}
	
			switch [Nv byte 3 0 & 15] {
				6 {
					>
						emit {\b, SV 6}
					<
				}
				7 {
					>
						emit {\b, SV 7}
						switch [Nv byte 3 0 & 240] {





							0 {
								>
									emit {\b.0}
								<
							}
							16 {
								>
									emit {\b.1}
								<
							}
							-16 {
								>
									emit {\b.15}
								<
							}
						}
	
						switch [Nv byte 10 0 & 240] {
							0 {
								>
									emit {\b, no profile}
								<
							}
							16 {
								>
									emit {\b, profile 'Unstable/Experimental'}
								<
							}
							80 {
								>
									emit {\b, quality 0}
								<
							}
							96 {
								>
									emit {\b, quality 1}
								<
							}
							112 {
								>
									emit {\b, quality 2 (Telephone)}
								<
							}
							-128 {
								>
									emit {\b, quality 3 (Thumb)}
								<
							}
							-112 {
								>







|














|
>
>
>
>
>










<
<
<
<
|
|
<
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







36168
36169
36170
36171
36172
36173
36174
36175
36176
36177
36178
36179
36180
36181
36182
36183
36184
36185
36186
36187
36188
36189
36190
36191
36192
36193
36194
36195
36196
36197
36198
36199
36200
36201
36202
36203
36204
36205




36206
36207

36208

























36209
36210
36211
36212
36213
36214
36215
			emit {sc68 Atari ST music}
		<
	}
	
	if {[S string 0 0 {} {} eq MP+]} {
		>
			emit {Musepack audio (MP+)}
			if {[N byte 3 0 0 {} {} == -1]} {
				>
					emit {\b, SV pre8}
				<
			}
	
			switch [Nv byte 3 0 & 15] {
				6 {
					>
						emit {\b, SV 6}
					<
				}
				7 {
					>
						emit {\b, SV 7}
						switch [Nv byte 3 0 & -16] {
							-16 {
								>
									emit {\b.15}
								<
							}
							0 {
								>
									emit {\b.0}
								<
							}
							16 {
								>
									emit {\b.1}
								<
							}




						}
	

						switch [Nv byte 10 0 & -16] {

























							-128 {
								>
									emit {\b, quality 3 (Thumb)}
								<
							}
							-112 {
								>
36261
36262
36263
36264
36265
36266
36267

























36268
36269
36270
36271
36272
36273
36274
									emit {\b, quality 9}
								<
							}
							-16 {
								>
									emit {\b, quality 10}
								<

























							}
						}
	
						switch [Nv byte 27 0 {} {}] {
							0 {
								>
									emit {\b, Buschmann 1.7.0-9, Klemm 0.90-1.05}







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







36241
36242
36243
36244
36245
36246
36247
36248
36249
36250
36251
36252
36253
36254
36255
36256
36257
36258
36259
36260
36261
36262
36263
36264
36265
36266
36267
36268
36269
36270
36271
36272
36273
36274
36275
36276
36277
36278
36279
									emit {\b, quality 9}
								<
							}
							-16 {
								>
									emit {\b, quality 10}
								<
							}
							0 {
								>
									emit {\b, no profile}
								<
							}
							16 {
								>
									emit {\b, profile 'Unstable/Experimental'}
								<
							}
							80 {
								>
									emit {\b, quality 0}
								<
							}
							96 {
								>
									emit {\b, quality 1}
								<
							}
							112 {
								>
									emit {\b, quality 2 (Telephone)}
								<
							}
						}
	
						switch [Nv byte 27 0 {} {}] {
							0 {
								>
									emit {\b, Buschmann 1.7.0-9, Klemm 0.90-1.05}
36673
36674
36675
36676
36677
36678
36679
36680
36681
36682
36683
36684
36685
36686
36687
			}
	
		<
	}
	
	if {[S string 0 0 {} {} eq ZBOT]} {
		>
			if {[N byte 4 0 0 {} {} == 197]} {
				>
					emit {GVOX Encore music, version < 5.0}
				<
			}
	
		<
	}







|







36678
36679
36680
36681
36682
36683
36684
36685
36686
36687
36688
36689
36690
36691
36692
			}
	
		<
	}
	
	if {[S string 0 0 {} {} eq ZBOT]} {
		>
			if {[N byte 4 0 0 {} {} == -59]} {
				>
					emit {GVOX Encore music, version < 5.0}
				<
			}
	
		<
	}
36745
36746
36747
36748
36749
36750
36751

36752
36753
36754
36755
36756
36757
36758
36759
								>
									emit {\b, at offset 0x%x}
									if {[N ulelong [I 16 uleshort 0 + 0 4] 0 0 {} {} > 0]} {
										>
											emit {%d Bytes}
											if {[S string [I [R -8] ulelong 0 + 0 0] 0 {} {} eq RIFF]} {
												>

													T [R -4]
	
												<
											}
	
										<
									}
	







>
|







36750
36751
36752
36753
36754
36755
36756
36757
36758
36759
36760
36761
36762
36763
36764
36765
								>
									emit {\b, at offset 0x%x}
									if {[N ulelong [I 16 uleshort 0 + 0 4] 0 0 {} {} > 0]} {
										>
											emit {%d Bytes}
											if {[S string [I [R -8] ulelong 0 + 0 0] 0 {} {} eq RIFF]} {
												>
													emit {\b}
													T [R -4] {}
	
												<
											}
	
										<
									}
	
36769
36770
36771
36772
36773
36774
36775
36776
36777
36778
36779
36780
36781
36782
36783
			}
	
		<
	}
	
	if {[S string 0 0 {} {} eq GDM]} {
		>
			if {[N byte 3 0 0 {} {} == 254]} {
				>
					emit {General Digital Music.}
				<
			}
	
			if {[S string 4 0 {} {} > \0]} {
				>







|







36775
36776
36777
36778
36779
36780
36781
36782
36783
36784
36785
36786
36787
36788
36789
			}
	
		<
	}
	
	if {[S string 0 0 {} {} eq GDM]} {
		>
			if {[N byte 3 0 0 {} {} == -2]} {
				>
					emit {General Digital Music.}
				<
			}
	
			if {[S string 4 0 {} {} > \0]} {
				>
36983
36984
36985
36986
36987
36988
36989
36990
36991
36992
36993
36994
36995
36996
36997
			if {[N byte 45 0 0 {} {} == 10]} {
				>
				<
			}
	
			if {[N byte 46 0 0 {} {} == 26]} {
				>
					if {[N byte 3 0 0 {} {} == 254]} {
						>
							emit {Farandole Tracker Song}
							if {[N byte 49 0 0 / 16 x {}]} {
								>
									emit {Version %d.}
								<
							}







|







36989
36990
36991
36992
36993
36994
36995
36996
36997
36998
36999
37000
37001
37002
37003
			if {[N byte 45 0 0 {} {} == 10]} {
				>
				<
			}
	
			if {[N byte 46 0 0 {} {} == 26]} {
				>
					if {[N byte 3 0 0 {} {} == -2]} {
						>
							emit {Farandole Tracker Song}
							if {[N byte 49 0 0 / 16 x {}]} {
								>
									emit {Version %d.}
								<
							}
37204
37205
37206
37207
37208
37209
37210
37211
37212
37213
37214
37215
37216
37217
37218
37219
37220
37221
37222
37223
37224
37225
37226
37227
37228
37229
37230
37231
37232
37233
37234
37235
37236
37237
37238
37239
37240
37241
37242
37243
37244
37245
37246
37247
37248
37249
37250
37251
37252
37253
37254
37255
37256
37257
37258
37259
37260
37261
37262
37263
37264
37265
37266
37267
37268
37269
37270
37271
37272
37273
37274
37275
37276
37277
37278
37279
37280
37281
37282
37283
37284
37285
37286
37287
37288
37289
37290
37291
37292
37293
37294
37295
37296
37297
37298
37299
37300
37301
37302
37303
37304
37305
37306
37307
37308
37309
37310
37311
37312
37313
37314
37315
37316
37317
37318
37319
37320
37321
37322
37323
37324
37325
37326
37327
37328
37329
37330
37331
37332
37333
37334
37335
37336
37337
37338
37339
37340
37341
37342
37343
37344
37345
37346
37347
37348
37349
37350
37351
37352
37353
37354
37355
37356
37357
37358
37359
37360
37361
37362
37363
37364
37365
37366
37367
37368
37369
37370
37371
37372
37373
37374
37375
37376
37377
37378
37379
37380
37381
37382
37383
37384
37385
37386
37387
37388
37389
37390
37391
37392
37393
37394
37395
37396
37397
37398
37399
37400
37401
37402
37403
37404
37405
37406
37407
37408
37409
37410
37411
37412
37413
37414
37415
37416
37417
37418
37419
37420
37421
37422
37423
37424
37425
37426
37427
37428
37429
37430
37431
37432
37433
37434
37435
37436
37437
37438
37439
37440
37441
37442
37443
37444
37445
37446
37447
37448
37449
37450
37451
37452
37453
	if {[S string 0 0 {} {} eq BEETLE\000]} {
		>
			emit {Beetle VM object file}
		<
	}
	
	switch [Nv byte 0 0 {} {}] {
		0 {
			>
				if {[N ubyte 1 0 0 {} {} > 0]} {
					>
						if {[N ubyte 1 0 0 {} {} < 64]} {
							>
								if {[N ubelong 2 0 0 {} {} > 520093696]} {
									>
										if {[N byte 74 0 0 {} {} == 0]} {
											>
												if {[N byte 82 0 0 {} {} == 0]} {
													>
														switch [Nv ubeshort 122 0 {} {}] {
															0 {
																>
																	U 136 mac-bin 0
	
																<
															}
															33153 {
																>
																	U 136 mac-bin 0
	
																<
															}
														}
	
													<
												}
	
												if {[N ubeshort 122 0 0 {} {} == 33409]} {
													>
														U 136 mac-bin 0
	
													<
												}
	
											<
										}
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
			>
				if {[S string 12 0 {} {} eq \x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x40\x00]} {
					>
						emit {Soundtrakker 128 ST2 music,}
						if {[S string 1 0 {} {} x {}]} {
							>
								emit {name: %s}
							<
						}
	
					<
				}
	
			<
		}
		4 {
			>
				if {[N beshort 10 0 0 {} {} == 4064]} {
					>
						if {[N belong 12 0 0 {} {} == 4044423150]} {
							>
								if {[N beshort 520 0 0 {} {} == 256]} {
									>
										if {[N byte 522 0 0 {} {} == 15]} {
											>
												if {[N bequad 524 0 0 {} {} == 18773704704]} {
													>
														if {[N byte 91 0 0 {} {} == 2]} {
															>
																if {[N belong 84 0 0 {} {} x {}]} {
																	>
																		emit {Nintendo amiibo NFC dump - amiibo ID: %08X-}
																	<
																}
	
																if {[N belong 88 0 0 {} {} x {}]} {
																	>
																		emit {\b%08X}
																	<
																}
	
															<
														}
	
													<
												}
	
											<
										}
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
		}
		32 {
			>
				if {[N leshort 1 0 0 {} {} == 7]} {
					>
						if {[N byte 118 0 0 {} {} == 32]} {
							>
								if {[N leshort 119 0 0 {} {} == 117]} {
									>
										emit {TomTom activity file, v7}
										if {[N leldate 8 0 0 {} {} x {}]} {
											>
												emit (%s,
											<
										}
	
										if {[N byte 3 0 0 {} {} x {}]} {
											>
												emit {device firmware %d.}
											<
										}
	
										if {[N byte 4 0 0 {} {} x {}]} {
											>
												emit {\b%d.}
											<
										}
	
										if {[N byte 5 0 0 {} {} x {}]} {
											>
												emit {\b%d,}
											<
										}
	
										if {[N leshort 6 0 0 {} {} x {}]} {
											>
												emit {product ID %04d)}
											<
										}
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
		}
		38 {
			>
				if {[S regex 16 0 s {} eq ^\[0-78\]\[0-9.\]\{4\}]} {
					>
						emit {Sendmail frozen configuration}
						if {[S string 16 0 {} {} > \0]} {
							>
								emit {- version %s}
							<
						}
	
						ext fc
					<
				}
	
			<
		}
		97 {
			>
				if {[S search [R 1] 0 b 5 eq \x64]} {
					>
						if {[S search [R 1] 0 b 8 eq \x5f\x81\x44]} {
							>
								if {[S search [R 64] 0 b 64 eq \x5f\x81\x49\x01\x03\x5f\x81\x3d\x01]} {
									>
										if {[N byte [R 0] 0 0 {} {} x {}]} {
											>
												emit {TAP 3.%d Batch (TD.57, Transferred Account)}
											<
										}
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
			>
				if {[S search [R 1] 0 b 8 eq \x5f\x29\x01\x02\x5f\x25\x01]} {
					>
						if {[N byte [R 0] 0 0 {} {} x {}]} {
							>
								emit {NRT 2.%d (TD.35, Near Real Time Roaming Data Exchange)}
							<
						}
	
					<
				}
	
			<
		}
		98 {
			>
				if {[S search 2 0 b 8 eq \x5f\x81\x44]} {
					>
						if {[S search [R 64] 0 b 64 eq \x5f\x81\x49\x01\x03\x5f\x81\x3d\x01]} {
							>
								if {[N byte [R 0] 0 0 {} {} x {}]} {
									>
										emit {TAP 3.%d Notification (TD.57, Transferred Account)}
									<
								}
	
							<
						}
	
					<
				}
	
			<
		}
		-128 {
			>
				if {[N uleshort 1 0 0 {} {} < 1022]} {
					>
						if {[N uleshort 1 0 0 {} {} > 0]} {
							>
								if {[N ubyte 3 0 0 {} {} > 0]} {







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







37210
37211
37212
37213
37214
37215
37216












































































































































































































































37217
37218
37219
37220
37221
37222
37223
	if {[S string 0 0 {} {} eq BEETLE\000]} {
		>
			emit {Beetle VM object file}
		<
	}
	
	switch [Nv byte 0 0 {} {}] {












































































































































































































































		-128 {
			>
				if {[N uleshort 1 0 0 {} {} < 1022]} {
					>
						if {[N uleshort 1 0 0 {} {} > 0]} {
							>
								if {[N ubyte 3 0 0 {} {} > 0]} {
37790
37791
37792
37793
37794
37795
37796












































































































































































































































37797
37798
37799
37800
37801
37802
37803
		-1 {
			>
				if {[N uleshort 3 0 0 {} {} == 10]} {
					>
						if {[N uleshort 1 0 0 {} {} > 32768]} {
							>
								emit {MSX-BASIC program}












































































































































































































































							<
						}
	
					<
				}
	
			<







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







37560
37561
37562
37563
37564
37565
37566
37567
37568
37569
37570
37571
37572
37573
37574
37575
37576
37577
37578
37579
37580
37581
37582
37583
37584
37585
37586
37587
37588
37589
37590
37591
37592
37593
37594
37595
37596
37597
37598
37599
37600
37601
37602
37603
37604
37605
37606
37607
37608
37609
37610
37611
37612
37613
37614
37615
37616
37617
37618
37619
37620
37621
37622
37623
37624
37625
37626
37627
37628
37629
37630
37631
37632
37633
37634
37635
37636
37637
37638
37639
37640
37641
37642
37643
37644
37645
37646
37647
37648
37649
37650
37651
37652
37653
37654
37655
37656
37657
37658
37659
37660
37661
37662
37663
37664
37665
37666
37667
37668
37669
37670
37671
37672
37673
37674
37675
37676
37677
37678
37679
37680
37681
37682
37683
37684
37685
37686
37687
37688
37689
37690
37691
37692
37693
37694
37695
37696
37697
37698
37699
37700
37701
37702
37703
37704
37705
37706
37707
37708
37709
37710
37711
37712
37713
37714
37715
37716
37717
37718
37719
37720
37721
37722
37723
37724
37725
37726
37727
37728
37729
37730
37731
37732
37733
37734
37735
37736
37737
37738
37739
37740
37741
37742
37743
37744
37745
37746
37747
37748
37749
37750
37751
37752
37753
37754
37755
37756
37757
37758
37759
37760
37761
37762
37763
37764
37765
37766
37767
37768
37769
37770
37771
37772
37773
37774
37775
37776
37777
37778
37779
37780
37781
37782
37783
37784
37785
37786
37787
37788
37789
37790
37791
37792
37793
37794
37795
37796
37797
37798
37799
37800
37801
37802
37803
37804
37805
37806
37807
37808
37809
		-1 {
			>
				if {[N uleshort 3 0 0 {} {} == 10]} {
					>
						if {[N uleshort 1 0 0 {} {} > 32768]} {
							>
								emit {MSX-BASIC program}
							<
						}
	
					<
				}
	
			<
		}
		0 {
			>
				if {[N ubyte 1 0 0 {} {} > 0]} {
					>
						if {[N ubyte 1 0 0 {} {} < 64]} {
							>
								if {[N ubelong 2 0 0 {} {} > 520093696]} {
									>
										if {[N byte 74 0 0 {} {} == 0]} {
											>
												if {[N byte 82 0 0 {} {} == 0]} {
													>
														switch [Nv ubeshort 122 0 {} {}] {
															0 {
																>
																	U 136 mac-bin 0
	
																<
															}
															33153 {
																>
																	U 136 mac-bin 0
	
																<
															}
														}
	
													<
												}
	
												if {[N ubeshort 122 0 0 {} {} == 33409]} {
													>
														U 136 mac-bin 0
	
													<
												}
	
											<
										}
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
			>
				if {[S string 12 0 {} {} eq \x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x40\x00]} {
					>
						emit {Soundtrakker 128 ST2 music,}
						if {[S string 1 0 {} {} x {}]} {
							>
								emit {name: %s}
							<
						}
	
					<
				}
	
			<
		}
		4 {
			>
				if {[N beshort 10 0 0 {} {} == 4064]} {
					>
						if {[N belong 12 0 0 {} {} == -250544146]} {
							>
								if {[N beshort 520 0 0 {} {} == 256]} {
									>
										if {[N byte 522 0 0 {} {} == 15]} {
											>
												if {[N bequad 524 0 0 {} {} == 18773704704]} {
													>
														if {[N byte 91 0 0 {} {} == 2]} {
															>
																if {[N belong 84 0 0 {} {} x {}]} {
																	>
																		emit {Nintendo amiibo NFC dump - amiibo ID: %08X-}
																	<
																}
	
																if {[N belong 88 0 0 {} {} x {}]} {
																	>
																		emit {\b%08X}
																	<
																}
	
															<
														}
	
													<
												}
	
											<
										}
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
		}
		32 {
			>
				if {[N leshort 1 0 0 {} {} == 7]} {
					>
						if {[N byte 118 0 0 {} {} == 32]} {
							>
								if {[N leshort 119 0 0 {} {} == 117]} {
									>
										emit {TomTom activity file, v7}
										if {[N leldate 8 0 0 {} {} x {}]} {
											>
												emit (%s,
											<
										}
	
										if {[N byte 3 0 0 {} {} x {}]} {
											>
												emit {device firmware %d.}
											<
										}
	
										if {[N byte 4 0 0 {} {} x {}]} {
											>
												emit {\b%d.}
											<
										}
	
										if {[N byte 5 0 0 {} {} x {}]} {
											>
												emit {\b%d,}
											<
										}
	
										if {[N leshort 6 0 0 {} {} x {}]} {
											>
												emit {product ID %04d)}
											<
										}
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
		}
		38 {
			>
				if {[S regex 16 0 s {} eq ^\[0-78\]\[0-9.\]\{4\}]} {
					>
						emit {Sendmail frozen configuration}
						if {[S string 16 0 {} {} > \0]} {
							>
								emit {- version %s}
							<
						}
	
						ext fc
					<
				}
	
			<
		}
		97 {
			>
				if {[S search [R 1] 0 b 5 eq \x64]} {
					>
						if {[S search [R 1] 0 b 8 eq \x5f\x81\x44]} {
							>
								if {[S search [R 64] 0 b 64 eq \x5f\x81\x49\x01\x03\x5f\x81\x3d\x01]} {
									>
										if {[N byte [R 0] 0 0 {} {} x {}]} {
											>
												emit {TAP 3.%d Batch (TD.57, Transferred Account)}
											<
										}
	
									<
								}
	
							<
						}
	
					<
				}
	
			<
			>
				if {[S search [R 1] 0 b 8 eq \x5f\x29\x01\x02\x5f\x25\x01]} {
					>
						if {[N byte [R 0] 0 0 {} {} x {}]} {
							>
								emit {NRT 2.%d (TD.35, Near Real Time Roaming Data Exchange)}
							<
						}
	
					<
				}
	
			<
		}
		98 {
			>
				if {[S search 2 0 b 8 eq \x5f\x81\x44]} {
					>
						if {[S search [R 64] 0 b 64 eq \x5f\x81\x49\x01\x03\x5f\x81\x3d\x01]} {
							>
								if {[N byte [R 0] 0 0 {} {} x {}]} {
									>
										emit {TAP 3.%d Notification (TD.57, Transferred Account)}
									<
								}
	
							<
						}
	
					<
				}
	
			<
38521
38522
38523
38524
38525
38526
38527
38528
38529
38530
38531
38532
38533
38534
38535
38536
38537
38538
38539
38540
38541
38542
38543
38544
38545
38546
38547
38548
38549
38550
38551
38552
38553
38554
38555
38556
38557
38558
38559
38560
38561
38562
38563
38564
38565
38566
38567
38568
38569
38570
38571
38572
38573
38574






















































































38575
38576
38577
38578
38579
38580
38581
		<
	}
	
	switch [Nv belong 0 0 & 16777215] {
		65799 {
			>
				emit {a.out SunOS mc68010}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		65800 {
			>
				emit {a.out SunOS mc68010 pure}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		65803 {
			>
				emit {a.out SunOS mc68010 demand paged}
				if {[N byte 0 0 0 {} {} & 128]} {






















































































					>
						if {[N belong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	







|





|
















|





|
















|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







38527
38528
38529
38530
38531
38532
38533
38534
38535
38536
38537
38538
38539
38540
38541
38542
38543
38544
38545
38546
38547
38548
38549
38550
38551
38552
38553
38554
38555
38556
38557
38558
38559
38560
38561
38562
38563
38564
38565
38566
38567
38568
38569
38570
38571
38572
38573
38574
38575
38576
38577
38578
38579
38580
38581
38582
38583
38584
38585
38586
38587
38588
38589
38590
38591
38592
38593
38594
38595
38596
38597
38598
38599
38600
38601
38602
38603
38604
38605
38606
38607
38608
38609
38610
38611
38612
38613
38614
38615
38616
38617
38618
38619
38620
38621
38622
38623
38624
38625
38626
38627
38628
38629
38630
38631
38632
38633
38634
38635
38636
38637
38638
38639
38640
38641
38642
38643
38644
38645
38646
38647
38648
38649
38650
38651
38652
38653
38654
38655
38656
38657
38658
38659
38660
38661
38662
38663
38664
38665
38666
38667
38668
38669
38670
38671
38672
38673
		<
	}
	
	switch [Nv belong 0 0 & 16777215] {
		65799 {
			>
				emit {a.out SunOS mc68010}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		65800 {
			>
				emit {a.out SunOS mc68010 pure}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		65803 {
			>
				emit {a.out SunOS mc68010 demand paged}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						if {[N belong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	
						if {[N belong 20 0 0 {} {} == 4096]} {
							>
								emit {dynamically linked executable}
							<
						}
	
						if {[N belong 20 0 0 {} {} > 4096]} {
							>
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		131335 {
			>
				emit {a.out SunOS mc68020}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		131336 {
			>
				emit {a.out SunOS mc68020 pure}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		131339 {
			>
				emit {a.out SunOS mc68020 demand paged}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						if {[N belong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	
38590
38591
38592
38593
38594
38595
38596
38597


















































38598
38599
38600
38601
38602
38603
38604
38605
38606
38607
38608
38609
38610
38611
38612
38613
38614
38615
38616
38617
38618
38619
38620
38621
38622
38623
38624
38625
38626
38627
38628
38629
38630
38631



38632
38633
38634

38635
38636
38637
38638
38639
38640
38641
38642
38643
38644
38645
38646
38647
38648
38649
38650
38651
38652
38653
38654
38655
38656
38657
38658
38659
38660
38661
38662
38663
38664
38665
38666
38667
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {


















































					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		131335 {
			>
				emit {a.out SunOS mc68020}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	



			<
		}
		131336 {

			>
				emit {a.out SunOS mc68020 pure}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		131339 {
			>
				emit {a.out SunOS mc68020 demand paged}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						if {[N belong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	







|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>













|

|
|





|











>
>
>
|
|
|
>

|
|





|













|

|
|







38682
38683
38684
38685
38686
38687
38688
38689
38690
38691
38692
38693
38694
38695
38696
38697
38698
38699
38700
38701
38702
38703
38704
38705
38706
38707
38708
38709
38710
38711
38712
38713
38714
38715
38716
38717
38718
38719
38720
38721
38722
38723
38724
38725
38726
38727
38728
38729
38730
38731
38732
38733
38734
38735
38736
38737
38738
38739
38740
38741
38742
38743
38744
38745
38746
38747
38748
38749
38750
38751
38752
38753
38754
38755
38756
38757
38758
38759
38760
38761
38762
38763
38764
38765
38766
38767
38768
38769
38770
38771
38772
38773
38774
38775
38776
38777
38778
38779
38780
38781
38782
38783
38784
38785
38786
38787
38788
38789
38790
38791
38792
38793
38794
38795
38796
38797
38798
38799
38800
38801
38802
38803
38804
38805
38806
38807
38808
38809
38810
38811
38812
38813
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		196871 {
			>
				emit SPARC
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
				if {[N belong 36 0 0 {} {} == -1274019839]} {
					>
						emit {(uses shared libs)}
					<
				}
	
			<
			>
				emit {a.out SunOS SPARC}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		196872 {
			>
				emit {SPARC pure}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
				if {[N belong 36 0 0 {} {} == -1274019839]} {
					>
						emit {(uses shared libs)}
					<
				}
	
			<
			>
				emit {a.out SunOS SPARC pure}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		196875 {
			>
				emit {SPARC demand paged}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						if {[N belong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	
38676
38677
38678
38679
38680
38681
38682
38683
38684
38685
38686
38687
38688
38689
38690
38691
38692
38693
38694
38695
38696
38697
38698
38699
38700
38701
38702
38703
38704
38705
38706
38707
38708
38709
38710
38711
38712
38713
38714
38715
38716
38717
38718
38719
38720
38721
38722
38723
38724
38725
38726
38727
38728
38729
38730
38731
38732
38733
38734
38735
38736
38737
38738
38739
38740
38741
38742
38743
38744
38745
38746
38747
38748
38749
38750
38751
38752
38753
38754
38755
38756
38757
38758
38759
38760
38761
38762
38763
38764
38765
38766
38767
38768
38769
38770
38771
38772
38773
38774
38775
38776
38777
38778
38779
38780
38781
38782
38783
38784
38785
38786
38787
38788
38789
38790
38791
38792
38793
38794
38795
38796
38797
38798
38799
38800
38801
38802
38803
38804
38805
38806
38807
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		196871 {
			>
				emit SPARC
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
				if {[N belong 36 0 0 {} {} == 3020947457]} {
					>
						emit {(uses shared libs)}
					<
				}
	
			<
			>
				emit {a.out SunOS SPARC}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		196872 {
			>
				emit {SPARC pure}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
				if {[N belong 36 0 0 {} {} == 3020947457]} {
					>
						emit {(uses shared libs)}
					<
				}
	
			<
			>
				emit {a.out SunOS SPARC pure}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		196875 {
			>
				emit {SPARC demand paged}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						if {[N belong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	







|











<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







38822
38823
38824
38825
38826
38827
38828
38829
38830
38831
38832
38833
38834
38835
38836
38837
38838
38839
38840























38841
38842
38843
38844
38845
38846
38847
38848


















































38849
38850























38851
38852
38853
38854
38855
38856
38857
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	























				if {[N belong 36 0 0 {} {} == -1274019839]} {
					>
						emit {(uses shared libs)}
					<
				}
	
			<
			>


















































				emit {a.out SunOS SPARC demand paged}
				if {[N byte 0 0 0 {} {} & -128]} {























					>
						if {[N belong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	
38816
38817
38818
38819
38820
38821
38822
38823
38824
38825
38826
38827
38828
38829
38830
38831
38832
38833
38834
38835
38836
38837
38838
38839
38840
38841
38842
38843
38844
38845
38846
38847
38848
38849
38850
38851
38852
38853
38854
38855
38856
38857
38858
38859
38860
38861
38862
38863
38864
38865
38866
38867
38868
38869
38870
38871
38872
38873
38874
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
				if {[N belong 36 0 0 {} {} == 3020947457]} {
					>
						emit {(uses shared libs)}
					<
				}
	
			<
			>
				emit {a.out SunOS SPARC demand paged}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						if {[N belong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	
						if {[N belong 20 0 0 {} {} == 4096]} {
							>
								emit {dynamically linked executable}
							<
						}
	
						if {[N belong 20 0 0 {} {} > 4096]} {
							>
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>







|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







38866
38867
38868
38869
38870
38871
38872
38873












































38874
38875
38876
38877
38878
38879
38880
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {












































					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
39415
39416
39417
39418
39419
39420
39421





39422
39423
39424
39425
39426
39427
39428
			mime image/vnd.dwg
		<
	}
	
	if {[S string 0 0 {} {} eq KF]} {
		>
			switch [Nv belong 2 0 {} {}] {





				83886087 {
					>
						emit {Kompas drawing 7.0}
					<
				}
				83886089 {
					>







>
>
>
>
>







39421
39422
39423
39424
39425
39426
39427
39428
39429
39430
39431
39432
39433
39434
39435
39436
39437
39438
39439
			mime image/vnd.dwg
		<
	}
	
	if {[S string 0 0 {} {} eq KF]} {
		>
			switch [Nv belong 2 0 {} {}] {
				-201293819 {
					>
						emit {Kompas drawing 5.9R01.003}
					<
				}
				83886087 {
					>
						emit {Kompas drawing 7.0}
					<
				}
				83886089 {
					>
39528
39529
39530
39531
39532
39533
39534
39535
39536
39537
39538
39539
39540
39541
39542
39543
39544
39545
39546
					<
				}
				1543540741 {
					>
						emit {Kompas drawing 5.11R03}
					<
				}
				-201293819 {
					>
						emit {Kompas drawing 5.9R01.003}
					<
				}
			}
	
		<
	}
	
	if {[S string 0 0 {} {} eq MegaCad23\0]} {
		>







<
<
<
<
<







39539
39540
39541
39542
39543
39544
39545





39546
39547
39548
39549
39550
39551
39552
					<
				}
				1543540741 {
					>
						emit {Kompas drawing 5.11R03}
					<
				}





			}
	
		<
	}
	
	if {[S string 0 0 {} {} eq MegaCad23\0]} {
		>
40322
40323
40324
40325
40326
40327
40328
40329
40330
40331
40332
40333
40334
40335
40336
			emit {Message Sequence Chart (subchart)}
		<
	}
	
	if {[S string 0 0 {} {} eq \037\235]} {
		>
			emit {compress'd data}
			if {[N byte 2 0 0 & 128 > 0]} {
				>
					emit {block compressed}
				<
			}
	
			if {[N byte 2 0 0 & 31 x {}]} {
				>







|







40328
40329
40330
40331
40332
40333
40334
40335
40336
40337
40338
40339
40340
40341
40342
			emit {Message Sequence Chart (subchart)}
		<
	}
	
	if {[S string 0 0 {} {} eq \037\235]} {
		>
			emit {compress'd data}
			if {[N byte 2 0 0 & -128 > 0]} {
				>
					emit {block compressed}
				<
			}
	
			if {[N byte 2 0 0 & 31 x {}]} {
				>
40585
40586
40587
40588
40589
40590
40591
40592
40593
40594
40595
40596
40597
40598
40599
	}
	
	if {[S string 0 0 {} {} eq \x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a]} {
		>
			emit {lzop compressed data}
			if {[N beshort 9 0 0 {} {} < 2368]} {
				>
					if {[N byte 9 0 0 & 240 == 0]} {
						>
							emit {- version 0.}
						<
					}
	
					if {[N beshort 9 0 0 & 4095 x {}]} {
						>







|







40591
40592
40593
40594
40595
40596
40597
40598
40599
40600
40601
40602
40603
40604
40605
	}
	
	if {[S string 0 0 {} {} eq \x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a]} {
		>
			emit {lzop compressed data}
			if {[N beshort 9 0 0 {} {} < 2368]} {
				>
					if {[N byte 9 0 0 & -16 == 0]} {
						>
							emit {- version 0.}
						<
					}
	
					if {[N beshort 9 0 0 & 4095 x {}]} {
						>
40673
40674
40675
40676
40677
40678
40679
40680
40681
40682
40683
40684
40685
40686
40687
					}
	
				<
			}
	
			if {[N beshort 9 0 0 {} {} > 2361]} {
				>
					switch [Nv byte 9 0 & 240] {
						0 {
							>
								emit {- version 0.}
							<
						}
						16 {
							>







|







40679
40680
40681
40682
40683
40684
40685
40686
40687
40688
40689
40690
40691
40692
40693
					}
	
				<
			}
	
			if {[N beshort 9 0 0 {} {} > 2361]} {
				>
					switch [Nv byte 9 0 & -16] {
						0 {
							>
								emit {- version 0.}
							<
						}
						16 {
							>
40852
40853
40854
40855
40856
40857
40858
40859
40860
40861
40862
40863
40864
40865
40866
40867
40868
40869
40870
40871
40872
40873
40874
40875
40876
40877
40878
40879
40880
40881
40882
40883
40884
40885
40886
40887
40888
40889
40890
	
	if {[N lelong 0 0 0 & 16777215 == 93]} {
		>
			switch [Nv leshort 12 0 {} {}] {
				0 {
					>
						emit {LZMA compressed data,}
						if {[N lequad 5 0 0 {} {} == 18446744073709551615]} {
							>
								emit streamed
							<
						}
	
						if {[N lequad 5 0 0 {} {} != 18446744073709551615]} {
							>
								emit {non-streamed, size %lld}
							<
						}
	
					<
				}
				255 {
					>
						emit {LZMA compressed data,}
						mime application/x-lzma
						if {[N lequad 5 0 0 {} {} == 18446744073709551615]} {
							>
								emit streamed
							<
						}
	
						if {[N lequad 5 0 0 {} {} != 18446744073709551615]} {
							>
								emit {non-streamed, size %lld}
							<
						}
	
					<
				}







|





|











|





|







40858
40859
40860
40861
40862
40863
40864
40865
40866
40867
40868
40869
40870
40871
40872
40873
40874
40875
40876
40877
40878
40879
40880
40881
40882
40883
40884
40885
40886
40887
40888
40889
40890
40891
40892
40893
40894
40895
40896
	
	if {[N lelong 0 0 0 & 16777215 == 93]} {
		>
			switch [Nv leshort 12 0 {} {}] {
				0 {
					>
						emit {LZMA compressed data,}
						if {[N lequad 5 0 0 {} {} == -1]} {
							>
								emit streamed
							<
						}
	
						if {[N lequad 5 0 0 {} {} != -1]} {
							>
								emit {non-streamed, size %lld}
							<
						}
	
					<
				}
				255 {
					>
						emit {LZMA compressed data,}
						mime application/x-lzma
						if {[N lequad 5 0 0 {} {} == -1]} {
							>
								emit streamed
							<
						}
	
						if {[N lequad 5 0 0 {} {} != -1]} {
							>
								emit {non-streamed, size %lld}
							<
						}
	
					<
				}
40916
40917
40918
40919
40920
40921
40922
40923
40924
40925
40926
40927
40928
40929
40930
40931
40932
					mime application/x-lrzip
				<
			}
	
		<
	}
	
	if {[N lelong 0 0 0 & 4294967280 == 407710288]} {
		>
			T [I 4 ulelong 0 + 0 8]
	
		<
	}
	
	if {[S string 2 0 {} {} eq -afx-]} {
		>
			emit {AFX compressed file data}







|

|







40922
40923
40924
40925
40926
40927
40928
40929
40930
40931
40932
40933
40934
40935
40936
40937
40938
					mime application/x-lrzip
				<
			}
	
		<
	}
	
	if {[N lelong 0 0 0 & -16 == 407710288]} {
		>
			T [I 4 ulelong 0 + 0 8] {}
	
		<
	}
	
	if {[S string 2 0 {} {} eq -afx-]} {
		>
			emit {AFX compressed file data}
40979
40980
40981
40982
40983
40984
40985
40986
40987
40988
40989
40990
40991
40992
40993
	
	if {[S string 0 0 b {} x {}]} {
		>
			if {[N beshort 0 0 0 % 31 == 0]} {
				>
					if {[N byte 0 0 0 & 15 == 8]} {
						>
							if {[N byte 0 0 0 & 128 == 0]} {
								>
									emit {zlib compressed data}
									mime application/zlib
								<
							}
	
						<







|







40985
40986
40987
40988
40989
40990
40991
40992
40993
40994
40995
40996
40997
40998
40999
	
	if {[S string 0 0 b {} x {}]} {
		>
			if {[N beshort 0 0 0 % 31 == 0]} {
				>
					if {[N byte 0 0 0 & 15 == 8]} {
						>
							if {[N byte 0 0 0 & -128 == 0]} {
								>
									emit {zlib compressed data}
									mime application/zlib
								<
							}
	
						<
41162
41163
41164
41165
41166
41167
41168
41169
41170
41171
41172
41173
41174
41175
41176
41177
41178
41179
41180
41181
41182
41183
41184
41185
41186
41187
41188
41189
41190
41191
41192
41193
41194
41195
41196
41197
41198
41199
41200
41201
41202
41203
41204
41205
41206
41207
41208
41209
41210
41211
41212
41213
41214
41215
41216
41217
41218
41219
41220
41221
41222
41223
41224
41225
41226
41227
41228
				<
			}
	
			mime application/x-nes-rom
		<
	}
	
	if {[N bequad 260 0 0 {} {} == 14910686532989681675]} {
		>
			emit {Game Boy ROM image}
			if {[N byte 323 0 0 & 128 == 128]} {
				>
					if {[S string 308 0 {} {} > \0]} {
						>
							emit {\b: "%.15s"}
						<
					}
	
				<
			}
	
			if {[N byte 323 0 0 & 128 != 128]} {
				>
					if {[S string 308 0 {} {} > \0]} {
						>
							emit {\b: "%.16s"}
						<
					}
	
				<
			}
	
			if {[N byte 332 0 0 {} {} x {}]} {
				>
					emit (Rev.%02u)
				<
			}
	
			if {[N byte 331 0 0 {} {} == 51]} {
				>
					if {[N byte 326 0 0 {} {} == 3]} {
						>
							if {[N byte 323 0 0 & 128 == 128]} {
								>
									emit {[SGB+CGB]}
								<
							}
	
							if {[N byte 323 0 0 & 128 != 128]} {
								>
									emit {[SGB]}
								<
							}
	
						<
					}
	
					if {[N byte 326 0 0 {} {} != 3]} {
						>
							switch [Nv byte 323 0 & 192] {
								-128 {
									>
										emit {[CGB]}
									<
								}
								-64 {
									>







|


|










|




















|





|










|







41168
41169
41170
41171
41172
41173
41174
41175
41176
41177
41178
41179
41180
41181
41182
41183
41184
41185
41186
41187
41188
41189
41190
41191
41192
41193
41194
41195
41196
41197
41198
41199
41200
41201
41202
41203
41204
41205
41206
41207
41208
41209
41210
41211
41212
41213
41214
41215
41216
41217
41218
41219
41220
41221
41222
41223
41224
41225
41226
41227
41228
41229
41230
41231
41232
41233
41234
				<
			}
	
			mime application/x-nes-rom
		<
	}
	
	if {[N bequad 260 0 0 {} {} == -3536057540719869941]} {
		>
			emit {Game Boy ROM image}
			if {[N byte 323 0 0 & -128 == -128]} {
				>
					if {[S string 308 0 {} {} > \0]} {
						>
							emit {\b: "%.15s"}
						<
					}
	
				<
			}
	
			if {[N byte 323 0 0 & -128 != -128]} {
				>
					if {[S string 308 0 {} {} > \0]} {
						>
							emit {\b: "%.16s"}
						<
					}
	
				<
			}
	
			if {[N byte 332 0 0 {} {} x {}]} {
				>
					emit (Rev.%02u)
				<
			}
	
			if {[N byte 331 0 0 {} {} == 51]} {
				>
					if {[N byte 326 0 0 {} {} == 3]} {
						>
							if {[N byte 323 0 0 & -128 == -128]} {
								>
									emit {[SGB+CGB]}
								<
							}
	
							if {[N byte 323 0 0 & -128 != -128]} {
								>
									emit {[SGB]}
								<
							}
	
						<
					}
	
					if {[N byte 326 0 0 {} {} != 3]} {
						>
							switch [Nv byte 323 0 & -64] {
								-128 {
									>
										emit {[CGB]}
									<
								}
								-64 {
									>
41239
41240
41241
41242
41243
41244
41245




















41246
41247
41248
41249
41250
41251
41252
	
			if {[N byte 331 0 0 {} {} != 51]} {
				>
				<
			}
	
			switch [Nv byte 327 0 {} {}] {




















				0 {
					>
						emit {[ROM ONLY]}
					<
				}
				1 {
					>







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







41245
41246
41247
41248
41249
41250
41251
41252
41253
41254
41255
41256
41257
41258
41259
41260
41261
41262
41263
41264
41265
41266
41267
41268
41269
41270
41271
41272
41273
41274
41275
41276
41277
41278
	
			if {[N byte 331 0 0 {} {} != 51]} {
				>
				<
			}
	
			switch [Nv byte 327 0 {} {}] {
				-4 {
					>
						emit {[Pocket Camera]}
					<
				}
				-3 {
					>
						emit {[Bandai TAMA5]}
					<
				}
				-2 {
					>
						emit {[Hudson HuC-3]}
					<
				}
				-1 {
					>
						emit {[Hudson HuC-1]}
					<
				}
				0 {
					>
						emit {[ROM ONLY]}
					<
				}
				1 {
					>
41349
41350
41351
41352
41353
41354
41355
41356
41357
41358
41359
41360
41361
41362
41363
41364
41365
41366
41367
41368
41369
41370
41371
41372
41373
41374
41375
41376
41377
41378
41379
41380
41381
41382
					<
				}
				30 {
					>
						emit {[MBC5+RUMBLE+SRAM+BATT]}
					<
				}
				-4 {
					>
						emit {[Pocket Camera]}
					<
				}
				-3 {
					>
						emit {[Bandai TAMA5]}
					<
				}
				-2 {
					>
						emit {[Hudson HuC-3]}
					<
				}
				-1 {
					>
						emit {[Hudson HuC-1]}
					<
				}
			}
	
			switch [Nv byte 328 0 {} {}] {
				0 {
					>
						emit {\b, ROM: 256Kbit}
					<







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







41375
41376
41377
41378
41379
41380
41381




















41382
41383
41384
41385
41386
41387
41388
					<
				}
				30 {
					>
						emit {[MBC5+RUMBLE+SRAM+BATT]}
					<
				}




















			}
	
			switch [Nv byte 328 0 {} {}] {
				0 {
					>
						emit {\b, ROM: 256Kbit}
					<
41572
41573
41574
41575
41576
41577
41578
41579
41580
41581
41582
41583
41584
41585
41586
41587
41588
41589
41590
41591
41592
41593
41594
41595
41596
41597
41598
41599
41600
			}
	
		<
	}
	
	if {[S string 640 0 {} {} eq EAGN]} {
		>
			if {[N beshort 8 0 0 {} {} == 43707]} {
				>
					emit {Sega Mega Drive / Genesis ROM image (SMD format):}
					U 51 sega-genesis-smd-header 0
	
					mime application/x-genesis-rom
				<
			}
	
		<
	}
	
	if {[S string 640 0 {} {} eq EAMG]} {
		>
			if {[N beshort 8 0 0 {} {} == 43707]} {
				>
					emit {Sega Mega Drive / Genesis ROM image (SMD format):}
					U 51 sega-genesis-smd-header 0
	
					mime application/x-genesis-rom
				<
			}







|













|







41578
41579
41580
41581
41582
41583
41584
41585
41586
41587
41588
41589
41590
41591
41592
41593
41594
41595
41596
41597
41598
41599
41600
41601
41602
41603
41604
41605
41606
			}
	
		<
	}
	
	if {[S string 640 0 {} {} eq EAGN]} {
		>
			if {[N beshort 8 0 0 {} {} == -21829]} {
				>
					emit {Sega Mega Drive / Genesis ROM image (SMD format):}
					U 51 sega-genesis-smd-header 0
	
					mime application/x-genesis-rom
				<
			}
	
		<
	}
	
	if {[S string 640 0 {} {} eq EAMG]} {
		>
			if {[N beshort 8 0 0 {} {} == -21829]} {
				>
					emit {Sega Mega Drive / Genesis ROM image (SMD format):}
					U 51 sega-genesis-smd-header 0
	
					mime application/x-genesis-rom
				<
			}
41711
41712
41713
41714
41715
41716
41717






41718
41719
41720
41721
41722
41723
41724
			}
	
			mime application/x-gba-rom
		<
	}
	
	switch [Nv bequad 192 0 {} {}] {






		2666041169113948705 {
			>
				emit {Nintendo DS ROM image}
				mime application/x-nintendo-ds-rom
				if {[S string 0 0 {} {} > \0]} {
					>
						emit {\b: "%.12s"}







>
>
>
>
>
>







41717
41718
41719
41720
41721
41722
41723
41724
41725
41726
41727
41728
41729
41730
41731
41732
41733
41734
41735
41736
			}
	
			mime application/x-gba-rom
		<
	}
	
	switch [Nv bequad 192 0 {} {}] {
		-4008115836254384158 {
			>
				emit {Nintendo DS Slot-2 ROM image (PassMe)}
				mime application/x-nintendo-ds-rom
			<
		}
		2666041169113948705 {
			>
				emit {Nintendo DS ROM image}
				mime application/x-nintendo-ds-rom
				if {[S string 0 0 {} {} > \0]} {
					>
						emit {\b: "%.12s"}
41762
41763
41764
41765
41766
41767
41768
41769
41770
41771
41772
41773
41774
41775
41776
41777
41778
41779
41780
41781
41782
							>
								emit (multiboot)
							<
						}
	
						if {[N lequad 16384 0 0 {} {} != 0]} {
							>
								if {[N lequad 16384 0 0 {} {} == 16717325532512902911]} {
									>
										emit (decrypted)
									<
								}
	
								if {[N lequad 16384 0 0 {} {} != 16717325532512902911]} {
									>
										if {[N lequad 4096 0 0 {} {} == 0]} {
											>
												emit (encrypted)
											<
										}
	







|





|







41774
41775
41776
41777
41778
41779
41780
41781
41782
41783
41784
41785
41786
41787
41788
41789
41790
41791
41792
41793
41794
							>
								emit (multiboot)
							<
						}
	
						if {[N lequad 16384 0 0 {} {} != 0]} {
							>
								if {[N lequad 16384 0 0 {} {} == -1729418541196648705]} {
									>
										emit (decrypted)
									<
								}
	
								if {[N lequad 16384 0 0 {} {} != -1729418541196648705]} {
									>
										if {[N lequad 4096 0 0 {} {} == 0]} {
											>
												emit (encrypted)
											<
										}
	
41793
41794
41795
41796
41797
41798
41799
41800
41801
41802
41803
41804
41805
41806
41807
41808
41809
41810
41811
41812
						}
	
					<
				}
	
			<
		}
		-4008115836254384158 {
			>
				emit {Nintendo DS Slot-2 ROM image (PassMe)}
				mime application/x-nintendo-ds-rom
			<
		}
	}
	
	if {[S string 10 0 {} {} eq BY\ SNK\ CORPORATION]} {
		>
			emit {Neo Geo Pocket}
			if {[N byte 35 0 0 {} {} == 16]} {
				>







<
<
<
<
<
<







41805
41806
41807
41808
41809
41810
41811






41812
41813
41814
41815
41816
41817
41818
						}
	
					<
				}
	
			<
		}






	}
	
	if {[S string 10 0 {} {} eq BY\ SNK\ CORPORATION]} {
		>
			emit {Neo Geo Pocket}
			if {[N byte 35 0 0 {} {} == 16]} {
				>
41822
41823
41824
41825
41826
41827
41828
41829
41830
41831
41832
41833
41834
41835
41836
	
			if {[S string 36 0 {} {} > \0]} {
				>
					emit {\b: "%.12s"}
				<
			}
	
			if {[N byte 31 0 0 {} {} == 255]} {
				>
					emit {(debug mode enabled)}
				<
			}
	
			mime application/x-neo-geo-pocket-rom
		<







|







41828
41829
41830
41831
41832
41833
41834
41835
41836
41837
41838
41839
41840
41841
41842
	
			if {[S string 36 0 {} {} > \0]} {
				>
					emit {\b: "%.12s"}
				<
			}
	
			if {[N byte 31 0 0 {} {} == -1]} {
				>
					emit {(debug mode enabled)}
				<
			}
	
			mime application/x-neo-geo-pocket-rom
		<
42319
42320
42321
42322
42323
42324
42325
42326
42327
42328
42329
42330
42331
42332
42333
								>
									emit SyncSound
								<
							}
	
							if {[N lelong 4 0 0 {} {} > 3]} {
								>
									if {[N byte 23 0 0 {} {} & 128]} {
										>
											emit NoCPUShutdown
										<
									}
	
								<
							}







|







42325
42326
42327
42328
42329
42330
42331
42332
42333
42334
42335
42336
42337
42338
42339
								>
									emit SyncSound
								<
							}
	
							if {[N lelong 4 0 0 {} {} > 3]} {
								>
									if {[N byte 23 0 0 {} {} & -128]} {
										>
											emit NoCPUShutdown
										<
									}
	
								<
							}
42477
42478
42479
42480
42481
42482
42483
42484
42485
42486
42487
42488
42489
42490
42491
					emit {"%s"}
				<
			}
	
		<
	}
	
	if {[N belong 28 0 0 {} {} == 3258163005]} {
		>
			emit {Nintendo GameCube disc image:}
			U 51 nintendo-gcn-disc-common 0
	
			mime application/x-gamecube-rom
		<
	}







|







42483
42484
42485
42486
42487
42488
42489
42490
42491
42492
42493
42494
42495
42496
42497
					emit {"%s"}
				<
			}
	
		<
	}
	
	if {[N belong 28 0 0 {} {} == -1036804291]} {
		>
			emit {Nintendo GameCube disc image:}
			U 51 nintendo-gcn-disc-common 0
	
			mime application/x-gamecube-rom
		<
	}
42547
42548
42549
42550
42551
42552
42553
42554
42555
42556
42557
42558
42559
42560
42561
	
	if {[S string 0 0 {} {} eq CISO]} {
		>
			if {[N lelong 4 0 0 {} {} == 2097152]} {
				>
					if {[N byte 8 0 0 {} {} == 1]} {
						>
							if {[N belong 32796 0 0 {} {} == 3258163005]} {
								>
									emit {Nintendo GameCube disc image (CISO format):}
									U 51 nintendo-gcn-disc-common 32768
	
									mime application/x-wii-rom
								<
							}







|







42553
42554
42555
42556
42557
42558
42559
42560
42561
42562
42563
42564
42565
42566
42567
	
	if {[S string 0 0 {} {} eq CISO]} {
		>
			if {[N lelong 4 0 0 {} {} == 2097152]} {
				>
					if {[N byte 8 0 0 {} {} == 1]} {
						>
							if {[N belong 32796 0 0 {} {} == -1036804291]} {
								>
									emit {Nintendo GameCube disc image (CISO format):}
									U 51 nintendo-gcn-disc-common 32768
	
									mime application/x-wii-rom
								<
							}
42579
42580
42581
42582
42583
42584
42585
42586
42587
42588
42589
42590
42591
42592
42593
	}
	
	if {[S string 0 0 {} {} eq WII\001DISC]} {
		>
			switch [Nv belong 8 0 {} {}] {
				1 {
					>
						if {[N belong 84 0 0 {} {} == 3258163005]} {
							>
								emit {Nintendo GameCube disc image (WDFv1 format):}
								U 51 nintendo-gcn-disc-common 56
	
								mime application/x-gamecube-rom
							<
						}







|







42585
42586
42587
42588
42589
42590
42591
42592
42593
42594
42595
42596
42597
42598
42599
	}
	
	if {[S string 0 0 {} {} eq WII\001DISC]} {
		>
			switch [Nv belong 8 0 {} {}] {
				1 {
					>
						if {[N belong 84 0 0 {} {} == -1036804291]} {
							>
								emit {Nintendo GameCube disc image (WDFv1 format):}
								U 51 nintendo-gcn-disc-common 56
	
								mime application/x-gamecube-rom
							<
						}
42601
42602
42603
42604
42605
42606
42607
42608
42609
42610
42611
42612
42613
42614
42615
							<
						}
	
					<
				}
				2 {
					>
						if {[N belong [I 12 ubelong 0 + 0 28] 0 0 {} {} == 3258163005]} {
							>
								emit {Nintendo GameCube disc image (WDFv2 format):}
								U 51 nintendo-gcn-disc-common [I 12 ubelong 0 + 0 0]
	
								mime application/x-gamecube-rom
							<
						}







|







42607
42608
42609
42610
42611
42612
42613
42614
42615
42616
42617
42618
42619
42620
42621
							<
						}
	
					<
				}
				2 {
					>
						if {[N belong [I 12 ubelong 0 + 0 28] 0 0 {} {} == -1036804291]} {
							>
								emit {Nintendo GameCube disc image (WDFv2 format):}
								U 51 nintendo-gcn-disc-common [I 12 ubelong 0 + 0 0]
	
								mime application/x-gamecube-rom
							<
						}
44524
44525
44526
44527
44528
44529
44530
44531
44532
44533
44534
44535
44536
44537
44538
				emit {new-fs dump file (ufs2, little endian),}
				U 68 ufs2-dump-be 0
	
			<
		}
	}
	
	if {[N leshort 18 0 0 {} {} == 60011]} {
		>
			emit {old-fs dump file (16-bit, assuming PDP-11 endianness),}
			if {[N medate 2 0 0 {} {} x {}]} {
				>
					emit {Previous dump %s,}
				<
			}







|







44530
44531
44532
44533
44534
44535
44536
44537
44538
44539
44540
44541
44542
44543
44544
				emit {new-fs dump file (ufs2, little endian),}
				U 68 ufs2-dump-be 0
	
			<
		}
	}
	
	if {[N leshort 18 0 0 {} {} == -5525]} {
		>
			emit {old-fs dump file (16-bit, assuming PDP-11 endianness),}
			if {[N medate 2 0 0 {} {} x {}]} {
				>
					emit {Previous dump %s,}
				<
			}
44594
44595
44596
44597
44598
44599
44600





44601
44602
44603
44604
44605
44606
44607
		>
			if {[N byte 1 0 0 {} {} != 4]} {
				>
					if {[N ubeshort 2 0 0 {} {} > 0]} {
						>
							emit {Dyalog APL}
							switch [Nv byte 1 0 {} {}] {





								0 {
									>
										emit aplcore
									<
								}
								1 {
									>







>
>
>
>
>







44600
44601
44602
44603
44604
44605
44606
44607
44608
44609
44610
44611
44612
44613
44614
44615
44616
44617
44618
		>
			if {[N byte 1 0 0 {} {} != 4]} {
				>
					if {[N ubeshort 2 0 0 {} {} > 0]} {
						>
							emit {Dyalog APL}
							switch [Nv byte 1 0 {} {}] {
								-128 {
									>
										emit DDB
									<
								}
								0 {
									>
										emit aplcore
									<
								}
								1 {
									>
44638
44639
44640
44641
44642
44643
44644
44645





44646
44647
44648
44649
44650
44651
44652
44653
44654
44655
44656
44657
44658
44659
44660
44661
44662
											4 {
												>
													emit unicode
												<
											}
										}
	
										switch [Nv byte 7 0 & 136] {





											0 {
												>
													emit big-endian
												<
											}
											-128 {
												>
													emit little-endian
												<
											}
										}
	
									<
								}
								6 {
									>
										emit {external variable shared}







|
>
>
>
>
>





<
<
<
<
<







44649
44650
44651
44652
44653
44654
44655
44656
44657
44658
44659
44660
44661
44662
44663
44664
44665
44666





44667
44668
44669
44670
44671
44672
44673
											4 {
												>
													emit unicode
												<
											}
										}
	
										switch [Nv byte 7 0 & -120] {
											-128 {
												>
													emit little-endian
												<
											}
											0 {
												>
													emit big-endian
												<
											}





										}
	
									<
								}
								6 {
									>
										emit {external variable shared}
44753
44754
44755
44756
44757
44758
44759
44760
44761
44762
44763
44764
44765
44766
44767
44768
44769
44770
44771
									<
								}
								25 {
									>
										emit {external workspace}
									<
								}
								-128 {
									>
										emit DDB
									<
								}
							}
	
							if {[N byte 2 0 0 {} {} x {}]} {
								>
									emit {version %d}
								<
							}







<
<
<
<
<







44764
44765
44766
44767
44768
44769
44770





44771
44772
44773
44774
44775
44776
44777
									<
								}
								25 {
									>
										emit {external workspace}
									<
								}





							}
	
							if {[N byte 2 0 0 {} {} x {}]} {
								>
									emit {version %d}
								<
							}
44889
44890
44891
44892
44893
44894
44895










44896
44897
44898
44899
44900
44901
44902
						U 73 elf-le 0
	
					<
				}
			}
	
			switch [Nv byte 7 0 {} {}] {










				0 {
					>
						emit (SYSV)
					<
				}
				1 {
					>







>
>
>
>
>
>
>
>
>
>







44895
44896
44897
44898
44899
44900
44901
44902
44903
44904
44905
44906
44907
44908
44909
44910
44911
44912
44913
44914
44915
44916
44917
44918
						U 73 elf-le 0
	
					<
				}
			}
	
			switch [Nv byte 7 0 {} {}] {
				-54 {
					>
						emit {(Cafe OS)}
					<
				}
				-1 {
					>
						emit (embedded)
					<
				}
				0 {
					>
						emit (SYSV)
					<
				}
				1 {
					>
44984
44985
44986
44987
44988
44989
44990
44991
44992
44993
44994
44995
44996
44997
44998
44999
45000
45001
45002
45003
45004
45005
45006
45007
					<
				}
				97 {
					>
						emit (ARM)
					<
				}
				-54 {
					>
						emit {(Cafe OS)}
					<
				}
				-1 {
					>
						emit (embedded)
					<
				}
			}
	
			strength *2
		<
	}
	
	if {[S string 0 0 {} {} eq \0177BEAM!]} {







<
<
<
<
<
<
<
<
<
<







45000
45001
45002
45003
45004
45005
45006










45007
45008
45009
45010
45011
45012
45013
					<
				}
				97 {
					>
						emit (ARM)
					<
				}










			}
	
			strength *2
		<
	}
	
	if {[S string 0 0 {} {} eq \0177BEAM!]} {
45065
45066
45067
45068
45069
45070
45071
45072
45073
45074
45075
45076
45077
45078
45079
	
	if {[S string 0 0 {} {} eq \366\366\366\366]} {
		>
			emit {PC formatted floppy with no filesystem}
		<
	}
	
	if {[N beshort 508 0 0 {} {} == 55998]} {
		>
			if {[N long 504 0 0 {} {} > 0]} {
				>
					emit {Sun disk label}
					if {[S string 0 0 {} {} x {}]} {
						>
							emit '%s







|







45071
45072
45073
45074
45075
45076
45077
45078
45079
45080
45081
45082
45083
45084
45085
	
	if {[S string 0 0 {} {} eq \366\366\366\366]} {
		>
			emit {PC formatted floppy with no filesystem}
		<
	}
	
	if {[N beshort 508 0 0 {} {} == -9538]} {
		>
			if {[N long 504 0 0 {} {} > 0]} {
				>
					emit {Sun disk label}
					if {[S string 0 0 {} {} x {}]} {
						>
							emit '%s
45234
45235
45236
45237
45238
45239
45240

45241
45242
45243
45244
45245
45246
45247
45248
45249
45250
45251
45252
45253
45254
45255
45256
45257
45258
45259
45260
45261
45262
45263
45264
									}
	
								<
							}
	
							if {[S search 535 0 {} 17 eq \x55\xAA]} {
								>

									T [R -512]
	
								<
							}
	
						<
					}
	
				<
			}
	
		<
	}
	
	if {[S string 0 0 {} {} eq DOSEMU\0]} {
		>
			if {[N leshort 638 0 0 {} {} == 43605]} {
				>
					if {[N ubyte 19 0 0 {} {} == 128]} {
						>
							if {[N ubyte [I 19 ubyte 0 - 0 1] 0 0 {} {} == 0]} {
								>
									emit {DOS Emulator image}
									if {[N ulelong 7 0 0 {} {} > 0]} {







>
|















|







45240
45241
45242
45243
45244
45245
45246
45247
45248
45249
45250
45251
45252
45253
45254
45255
45256
45257
45258
45259
45260
45261
45262
45263
45264
45265
45266
45267
45268
45269
45270
45271
									}
	
								<
							}
	
							if {[S search 535 0 {} 17 eq \x55\xAA]} {
								>
									emit {\b; contains}
									T [R -512] {}
	
								<
							}
	
						<
					}
	
				<
			}
	
		<
	}
	
	if {[S string 0 0 {} {} eq DOSEMU\0]} {
		>
			if {[N leshort 638 0 0 {} {} == -21931]} {
				>
					if {[N ubyte 19 0 0 {} {} == 128]} {
						>
							if {[N ubyte [I 19 ubyte 0 - 0 1] 0 0 {} {} == 0]} {
								>
									emit {DOS Emulator image}
									if {[N ulelong 7 0 0 {} {} > 0]} {
45275
45276
45277
45278
45279
45280
45281

45282
45283
45284
45285
45286
45287
45288
45289
45290
45291
45292
45293
45294
45295
45296
45297
45298
45299
45300

45301
45302
45303
45304
45305
45306
45307
45308
	
									if {[N ulelong 15 0 0 {} {} > 0]} {
										>
											emit {\b, %d cylinders}
										<
									}
	

									T 128
	
								<
							}
	
						<
					}
	
				<
			}
	
		<
	}
	
	if {[S string 0 0 {} {} eq PNCIHISK\0]} {
		>
			emit {Norton Utilities disc image data}
			if {[S search 509 0 {} 1026 eq \x55\xAA\xeb]} {
				>

					T [R -1]
	
				<
			}
	
		<
	}
	







>
|


















>
|







45282
45283
45284
45285
45286
45287
45288
45289
45290
45291
45292
45293
45294
45295
45296
45297
45298
45299
45300
45301
45302
45303
45304
45305
45306
45307
45308
45309
45310
45311
45312
45313
45314
45315
45316
45317
	
									if {[N ulelong 15 0 0 {} {} > 0]} {
										>
											emit {\b, %d cylinders}
										<
									}
	
									emit {\b; contains}
									T 128 {}
	
								<
							}
	
						<
					}
	
				<
			}
	
		<
	}
	
	if {[S string 0 0 {} {} eq PNCIHISK\0]} {
		>
			emit {Norton Utilities disc image data}
			if {[S search 509 0 {} 1026 eq \x55\xAA\xeb]} {
				>
					emit {\b; contains}
					T [R -1] {}
	
				<
			}
	
		<
	}
	
45321
45322
45323
45324
45325
45326
45327
45328
45329
45330
45331
45332
45333
45334
45335
							emit {DOS/MBR boot sector}
						<
					}
	
				<
			}
	
			if {[N leshort 510 0 0 {} {} == 43605]} {
				>
					emit {DOS/MBR boot sector}
				<
			}
	
			strength +65
		<







|







45330
45331
45332
45333
45334
45335
45336
45337
45338
45339
45340
45341
45342
45343
45344
							emit {DOS/MBR boot sector}
						<
					}
	
				<
			}
	
			if {[N leshort 510 0 0 {} {} == -21931]} {
				>
					emit {DOS/MBR boot sector}
				<
			}
	
			strength +65
		<
46178
46179
46180
46181
46182
46183
46184
46185
46186
46187
46188
46189
46190
46191
46192
						}
	
					<
				}
	
				if {[S string 3 0 {} {} ne IHISK]} {
					>
						if {[N belong 0 0 0 {} {} != 3099592590]} {
							>
								if {[S string 514 0 {} {} ne HdrS]} {
									>
										if {[S string 422 0 {} {} ne Be\ Boot\ Loader]} {
											>
												if {[N ubelong 0 0 0 & 4244635648 == 3909091328]} {
													>







|







46187
46188
46189
46190
46191
46192
46193
46194
46195
46196
46197
46198
46199
46200
46201
						}
	
					<
				}
	
				if {[S string 3 0 {} {} ne IHISK]} {
					>
						if {[N belong 0 0 0 {} {} != -1195374706]} {
							>
								if {[S string 514 0 {} {} ne HdrS]} {
									>
										if {[S string 422 0 {} {} ne Be\ Boot\ Loader]} {
											>
												if {[N ubelong 0 0 0 & 4244635648 == 3909091328]} {
													>
48355
48356
48357
48358
48359
48360
48361
48362
48363
48364
48365
48366
48367
48368
48369
	
							<
						}
	
					<
				}
	
				if {[N lelong 512 0 0 {} {} == 2186691927]} {
					>
						emit {\b, BSD disklabel}
					<
				}
	
			<
			>







|







48364
48365
48366
48367
48368
48369
48370
48371
48372
48373
48374
48375
48376
48377
48378
	
							<
						}
	
					<
				}
	
				if {[N lelong 512 0 0 {} {} == -2108275369]} {
					>
						emit {\b, BSD disklabel}
					<
				}
	
			<
			>
49626
49627
49628
49629
49630
49631
49632

49633
49634
49635
49636
49637
49638
49639
49640
																					>
																						emit {\b, checksum 0x%x}
																					<
																				}
	
																				if {[N ulelong 600 0 0 & 37008 == 37008]} {
																					>

																						T [R -92]
	
																					<
																				}
	
																			<
																		}
	







>
|







49635
49636
49637
49638
49639
49640
49641
49642
49643
49644
49645
49646
49647
49648
49649
49650
																					>
																						emit {\b, checksum 0x%x}
																					<
																				}
	
																				if {[N ulelong 600 0 0 & 37008 == 37008]} {
																					>
																						emit {\b; contains}
																						T [R -92] {}
	
																					<
																				}
	
																			<
																		}
	
50842
50843
50844
50845
50846
50847
50848
50849
50850
50851
50852
50853
50854
50855
50856
					<
				}
	
			<
		}
	}
	
	if {[N leshort 1080 0 0 {} {} == 61267]} {
		>
			emit Linux
			if {[N lelong 1100 0 0 {} {} x {}]} {
				>
					emit {rev %d}
				<
			}







|







50852
50853
50854
50855
50856
50857
50858
50859
50860
50861
50862
50863
50864
50865
50866
					<
				}
	
			<
		}
	}
	
	if {[N leshort 1080 0 0 {} {} == -4269]} {
		>
			emit Linux
			if {[N lelong 1100 0 0 {} {} x {}]} {
				>
					emit {rev %d}
				<
			}
50984
50985
50986
50987
50988
50989
50990
50991
50992
50993
50994
50995
50996
50997
50998
					emit {(huge files)}
				<
			}
	
		<
	}
	
	if {[N lelong 1024 0 0 {} {} == 4076150800]} {
		>
			emit {F2FS filesystem}
			if {[N belong 1132 0 0 {} {} x {}]} {
				>
					emit {\b, UUID=%08x}
				<
			}







|







50994
50995
50996
50997
50998
50999
51000
51001
51002
51003
51004
51005
51006
51007
51008
					emit {(huge files)}
				<
			}
	
		<
	}
	
	if {[N lelong 1024 0 0 {} {} == -218816496]} {
		>
			emit {F2FS filesystem}
			if {[N belong 1132 0 0 {} {} x {}]} {
				>
					emit {\b, UUID=%08x}
				<
			}
51143
51144
51145
51146
51147
51148
51149
51150
51151
51152
51153
51154
51155
51156
51157
51158
51159
51160
51161
51162
51163
51164
51165
51166
51167
51168
51169
51170
51171
51172
51173
51174
51175
51176
51177
51178
51179
51180
51181
51182
51183
51184
51185
51186
51187
51188
51189
51190
51191
51192
51193
51194
51195
51196
51197
51198
51199
51200
51201
51202
51203
51204
51205
	
		<
	}
	
	if {[S string 19 0 {} {} eq \320\002\360\003\0\011\0\1\0]} {
		>
			emit {DOS floppy 360k}
			if {[N leshort 510 0 0 {} {} == 43605]} {
				>
					emit {\b, DOS/MBR hard disk boot sector}
				<
			}
	
		<
	}
	
	if {[S string 19 0 {} {} eq \240\005\371\003\0\011\0\2\0]} {
		>
			emit {DOS floppy 720k}
			if {[N leshort 510 0 0 {} {} == 43605]} {
				>
					emit {\b, DOS/MBR hard disk boot sector}
				<
			}
	
		<
	}
	
	if {[S string 19 0 {} {} eq \100\013\360\011\0\022\0\2\0]} {
		>
			emit {DOS floppy 1440k}
			if {[N leshort 510 0 0 {} {} == 43605]} {
				>
					emit {\b, DOS/MBR hard disk boot sector}
				<
			}
	
		<
	}
	
	if {[S string 19 0 {} {} eq \240\005\371\005\0\011\0\2\0]} {
		>
			emit {DOS floppy 720k, IBM}
			if {[N leshort 510 0 0 {} {} == 43605]} {
				>
					emit {\b, DOS/MBR hard disk boot sector}
				<
			}
	
		<
	}
	
	if {[S string 19 0 {} {} eq \100\013\371\005\0\011\0\2\0]} {
		>
			emit {DOS floppy 1440k, mkdosfs}
			if {[N leshort 510 0 0 {} {} == 43605]} {
				>
					emit {\b, DOS/MBR hard disk boot sector}
				<
			}
	
		<
	}







|











|











|











|











|







51153
51154
51155
51156
51157
51158
51159
51160
51161
51162
51163
51164
51165
51166
51167
51168
51169
51170
51171
51172
51173
51174
51175
51176
51177
51178
51179
51180
51181
51182
51183
51184
51185
51186
51187
51188
51189
51190
51191
51192
51193
51194
51195
51196
51197
51198
51199
51200
51201
51202
51203
51204
51205
51206
51207
51208
51209
51210
51211
51212
51213
51214
51215
	
		<
	}
	
	if {[S string 19 0 {} {} eq \320\002\360\003\0\011\0\1\0]} {
		>
			emit {DOS floppy 360k}
			if {[N leshort 510 0 0 {} {} == -21931]} {
				>
					emit {\b, DOS/MBR hard disk boot sector}
				<
			}
	
		<
	}
	
	if {[S string 19 0 {} {} eq \240\005\371\003\0\011\0\2\0]} {
		>
			emit {DOS floppy 720k}
			if {[N leshort 510 0 0 {} {} == -21931]} {
				>
					emit {\b, DOS/MBR hard disk boot sector}
				<
			}
	
		<
	}
	
	if {[S string 19 0 {} {} eq \100\013\360\011\0\022\0\2\0]} {
		>
			emit {DOS floppy 1440k}
			if {[N leshort 510 0 0 {} {} == -21931]} {
				>
					emit {\b, DOS/MBR hard disk boot sector}
				<
			}
	
		<
	}
	
	if {[S string 19 0 {} {} eq \240\005\371\005\0\011\0\2\0]} {
		>
			emit {DOS floppy 720k, IBM}
			if {[N leshort 510 0 0 {} {} == -21931]} {
				>
					emit {\b, DOS/MBR hard disk boot sector}
				<
			}
	
		<
	}
	
	if {[S string 19 0 {} {} eq \100\013\371\005\0\011\0\2\0]} {
		>
			emit {DOS floppy 1440k, mkdosfs}
			if {[N leshort 510 0 0 {} {} == -21931]} {
				>
					emit {\b, DOS/MBR hard disk boot sector}
				<
			}
	
		<
	}
53271
53272
53273
53274
53275
53276
53277
53278
53279
53280
53281
53282
53283
53284
53285
53286
53287
53288
53289
53290
53291
53292
53293
53294
53295
53296
53297
53298
53299
53300
53301
53302
53303
53304
53305
53306
53307
53308
53309
53310
53311





53312
53313
53314
53315
53316
53317
53318
53319
53320
53321
53322
53323
53324
53325
53326
53327
53328
53329
53330
53331
53332
53333
53334
53335
53336
53337
53338
53339
53340
53341
53342
53343
53344
53345
53346
53347
53348
53349
53350
53351
53352
53353
53354
53355
53356
53357
53358
53359
53360
53361
53362
53363
53364





53365
53366
53367
53368
53369
53370
53371
53372
53373
53374
53375
53376
53377
53378
53379
53380
53381
53382
53383
53384
53385
53386
53387
53388
53389
53390
53391
53392
53393
53394
53395
53396
53397
53398
53399
53400
53401
53402
53403
53404
53405
53406
53407
53408
53409
53410
53411
53412
53413
53414
53415
53416
53417





53418
53419
53420
53421
53422
53423
53424
53425
53426
53427
53428
53429
53430
53431
53432
53433
53434
53435
53436
53437
53438
53439
53440
53441
53442
53443
53444
53445
53446
53447
53448
53449
53450
53451
53452
53453
53454
53455
53456
53457
53458
53459
53460
53461
53462
53463
53464
53465
53466
53467
53468
53469
53470





53471
53472
53473
53474
53475
53476
53477
	
	switch [Nv lelong 0 0 & 67108863] {
		8782028 {
			>
				emit {FreeBSD/i386 compact demand paged}
				if {[N lelong 20 0 0 {} {} < 4096]} {
					>
						if {[N byte 3 0 0 & 192 & 128]} {
							>
								emit {shared library}
							<
						}
	
						switch [Nv byte 3 0 & 192] {
							0 {
								>
									emit object
								<
							}
							64 {
								>
									emit {PIC object}
								<
							}
						}
	
					<
				}
	
				if {[N lelong 20 0 0 {} {} > 4095]} {
					>
						switch [Nv byte 3 0 & 128] {
							0 {
								>
									emit executable
								<
							}
							-128 {
								>
									emit {dynamically linked executable}
								<





							}
						}
	
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		8782087 {
			>
				emit FreeBSD/i386
				if {[N lelong 20 0 0 {} {} < 4096]} {
					>
						if {[N byte 3 0 0 & 192 & 128]} {
							>
								emit {shared library}
							<
						}
	
						switch [Nv byte 3 0 & 192] {
							0 {
								>
									emit object
								<
							}
							64 {
								>
									emit {PIC object}
								<
							}
						}
	
					<
				}
	
				if {[N lelong 20 0 0 {} {} > 4095]} {
					>
						switch [Nv byte 3 0 & 128] {
							0 {
								>
									emit executable
								<
							}
							-128 {
								>
									emit {dynamically linked executable}
								<





							}
						}
	
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		8782088 {
			>
				emit {FreeBSD/i386 pure}
				if {[N lelong 20 0 0 {} {} < 4096]} {
					>
						if {[N byte 3 0 0 & 192 & 128]} {
							>
								emit {shared library}
							<
						}
	
						switch [Nv byte 3 0 & 192] {
							0 {
								>
									emit object
								<
							}
							64 {
								>
									emit {PIC object}
								<
							}
						}
	
					<
				}
	
				if {[N lelong 20 0 0 {} {} > 4095]} {
					>
						switch [Nv byte 3 0 & 128] {
							0 {
								>
									emit executable
								<
							}
							-128 {
								>
									emit {dynamically linked executable}
								<





							}
						}
	
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		8782091 {
			>
				emit {FreeBSD/i386 demand paged}
				if {[N lelong 20 0 0 {} {} < 4096]} {
					>
						if {[N byte 3 0 0 & 192 & 128]} {
							>
								emit {shared library}
							<
						}
	
						switch [Nv byte 3 0 & 192] {
							0 {
								>
									emit object
								<
							}
							64 {
								>
									emit {PIC object}
								<
							}
						}
	
					<
				}
	
				if {[N lelong 20 0 0 {} {} > 4095]} {
					>
						switch [Nv byte 3 0 & 128] {
							0 {
								>
									emit executable
								<
							}
							-128 {
								>
									emit {dynamically linked executable}
								<





							}
						}
	
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {







|





|

















|
<
<
<
<
<




>
>
>
>
>



















|





|

















|
<
<
<
<
<




>
>
>
>
>



















|





|

















|
<
<
<
<
<




>
>
>
>
>



















|





|

















|
<
<
<
<
<




>
>
>
>
>







53281
53282
53283
53284
53285
53286
53287
53288
53289
53290
53291
53292
53293
53294
53295
53296
53297
53298
53299
53300
53301
53302
53303
53304
53305
53306
53307
53308
53309
53310
53311
53312





53313
53314
53315
53316
53317
53318
53319
53320
53321
53322
53323
53324
53325
53326
53327
53328
53329
53330
53331
53332
53333
53334
53335
53336
53337
53338
53339
53340
53341
53342
53343
53344
53345
53346
53347
53348
53349
53350
53351
53352
53353
53354
53355
53356
53357
53358
53359
53360
53361
53362
53363
53364
53365





53366
53367
53368
53369
53370
53371
53372
53373
53374
53375
53376
53377
53378
53379
53380
53381
53382
53383
53384
53385
53386
53387
53388
53389
53390
53391
53392
53393
53394
53395
53396
53397
53398
53399
53400
53401
53402
53403
53404
53405
53406
53407
53408
53409
53410
53411
53412
53413
53414
53415
53416
53417
53418





53419
53420
53421
53422
53423
53424
53425
53426
53427
53428
53429
53430
53431
53432
53433
53434
53435
53436
53437
53438
53439
53440
53441
53442
53443
53444
53445
53446
53447
53448
53449
53450
53451
53452
53453
53454
53455
53456
53457
53458
53459
53460
53461
53462
53463
53464
53465
53466
53467
53468
53469
53470
53471





53472
53473
53474
53475
53476
53477
53478
53479
53480
53481
53482
53483
53484
53485
53486
53487
	
	switch [Nv lelong 0 0 & 67108863] {
		8782028 {
			>
				emit {FreeBSD/i386 compact demand paged}
				if {[N lelong 20 0 0 {} {} < 4096]} {
					>
						if {[N byte 3 0 0 & -64 & -128]} {
							>
								emit {shared library}
							<
						}
	
						switch [Nv byte 3 0 & -64] {
							0 {
								>
									emit object
								<
							}
							64 {
								>
									emit {PIC object}
								<
							}
						}
	
					<
				}
	
				if {[N lelong 20 0 0 {} {} > 4095]} {
					>
						switch [Nv byte 3 0 & -128] {





							-128 {
								>
									emit {dynamically linked executable}
								<
							}
							0 {
								>
									emit executable
								<
							}
						}
	
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		8782087 {
			>
				emit FreeBSD/i386
				if {[N lelong 20 0 0 {} {} < 4096]} {
					>
						if {[N byte 3 0 0 & -64 & -128]} {
							>
								emit {shared library}
							<
						}
	
						switch [Nv byte 3 0 & -64] {
							0 {
								>
									emit object
								<
							}
							64 {
								>
									emit {PIC object}
								<
							}
						}
	
					<
				}
	
				if {[N lelong 20 0 0 {} {} > 4095]} {
					>
						switch [Nv byte 3 0 & -128] {





							-128 {
								>
									emit {dynamically linked executable}
								<
							}
							0 {
								>
									emit executable
								<
							}
						}
	
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		8782088 {
			>
				emit {FreeBSD/i386 pure}
				if {[N lelong 20 0 0 {} {} < 4096]} {
					>
						if {[N byte 3 0 0 & -64 & -128]} {
							>
								emit {shared library}
							<
						}
	
						switch [Nv byte 3 0 & -64] {
							0 {
								>
									emit object
								<
							}
							64 {
								>
									emit {PIC object}
								<
							}
						}
	
					<
				}
	
				if {[N lelong 20 0 0 {} {} > 4095]} {
					>
						switch [Nv byte 3 0 & -128] {





							-128 {
								>
									emit {dynamically linked executable}
								<
							}
							0 {
								>
									emit executable
								<
							}
						}
	
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		8782091 {
			>
				emit {FreeBSD/i386 demand paged}
				if {[N lelong 20 0 0 {} {} < 4096]} {
					>
						if {[N byte 3 0 0 & -64 & -128]} {
							>
								emit {shared library}
							<
						}
	
						switch [Nv byte 3 0 & -64] {
							0 {
								>
									emit object
								<
							}
							64 {
								>
									emit {PIC object}
								<
							}
						}
	
					<
				}
	
				if {[N lelong 20 0 0 {} {} > 4095]} {
					>
						switch [Nv byte 3 0 & -128] {





							-128 {
								>
									emit {dynamically linked executable}
								<
							}
							0 {
								>
									emit executable
								<
							}
						}
	
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
55507
55508
55509
55510
55511
55512
55513
55514
55515
55516
55517
55518
55519
55520
55521
55522
55523
55524
55525
55526
55527
55528
55529
55530
55531
55532
55533
					emit {(sector size unknown)}
				<
			}
	
		<
	}
	
	if {[N lequad 8 0 0 {} {} == 12370772899469655308]} {
		>
			emit {Vulkan trace file, little-endian}
			if {[N leshort 0 0 0 {} {} x {}]} {
				>
					emit {\b, version %d}
				<
			}
	
		<
	}
	
	if {[N bequad 8 0 0 {} {} == 12370772899469655308]} {
		>
			emit {Vulkan trace file, big-endian}
			if {[N beshort 0 0 0 {} {} x {}]} {
				>
					emit {\b, version %d}
				<
			}







|











|







55517
55518
55519
55520
55521
55522
55523
55524
55525
55526
55527
55528
55529
55530
55531
55532
55533
55534
55535
55536
55537
55538
55539
55540
55541
55542
55543
					emit {(sector size unknown)}
				<
			}
	
		<
	}
	
	if {[N lequad 8 0 0 {} {} == -6075971174239896308]} {
		>
			emit {Vulkan trace file, little-endian}
			if {[N leshort 0 0 0 {} {} x {}]} {
				>
					emit {\b, version %d}
				<
			}
	
		<
	}
	
	if {[N bequad 8 0 0 {} {} == -6075971174239896308]} {
		>
			emit {Vulkan trace file, big-endian}
			if {[N beshort 0 0 0 {} {} x {}]} {
				>
					emit {\b, version %d}
				<
			}
58216
58217
58218
58219
58220
58221
58222
58223
58224
58225
58226
58227
58228
58229
58230
58231





58232
58233
58234
58235
58236
58237
58238
58239
58240
58241
58242
58243
58244
58245
58246
58247
58248
58249
58250





58251
58252
58253
58254
58255
58256
58257
		<
	}
	
	if {[S string 0 0 {} {} eq pM85]} {
		>
			emit {Atari ST STAD bitmap image data (hor)}
			switch [Nv byte 5 0 {} {}] {
				0 {
					>
						emit {(white background)}
					<
				}
				-1 {
					>
						emit {(black background)}
					<





				}
			}
	
		<
	}
	
	if {[S string 0 0 {} {} eq pM86]} {
		>
			emit {Atari ST STAD bitmap image data (vert)}
			switch [Nv byte 5 0 {} {}] {
				0 {
					>
						emit {(white background)}
					<
				}
				-1 {
					>
						emit {(black background)}
					<





				}
			}
	
		<
	}
	
	if {[N ubelong 0 0 0 & 4294508032 == 167772160]} {







<
<
<
<
<




>
>
>
>
>










<
<
<
<
<




>
>
>
>
>







58226
58227
58228
58229
58230
58231
58232





58233
58234
58235
58236
58237
58238
58239
58240
58241
58242
58243
58244
58245
58246
58247
58248
58249
58250
58251





58252
58253
58254
58255
58256
58257
58258
58259
58260
58261
58262
58263
58264
58265
58266
58267
		<
	}
	
	if {[S string 0 0 {} {} eq pM85]} {
		>
			emit {Atari ST STAD bitmap image data (hor)}
			switch [Nv byte 5 0 {} {}] {





				-1 {
					>
						emit {(black background)}
					<
				}
				0 {
					>
						emit {(white background)}
					<
				}
			}
	
		<
	}
	
	if {[S string 0 0 {} {} eq pM86]} {
		>
			emit {Atari ST STAD bitmap image data (vert)}
			switch [Nv byte 5 0 {} {}] {





				-1 {
					>
						emit {(black background)}
					<
				}
				0 {
					>
						emit {(white background)}
					<
				}
			}
	
		<
	}
	
	if {[N ubelong 0 0 0 & 4294508032 == 167772160]} {
59355
59356
59357
59358
59359
59360
59361
59362
59363
59364
59365
59366
59367
59368
59369
			emit {JPEG-XR Image}
			if {[N byte 98 0 0 & 8 == 8]} {
				>
					emit {\b, hard tiling}
				<
			}
	
			if {[N byte 99 0 0 & 128 == 128]} {
				>
					emit {\b, tiling present}
				<
			}
	
			if {[N byte 99 0 0 & 64 == 64]} {
				>







|







59365
59366
59367
59368
59369
59370
59371
59372
59373
59374
59375
59376
59377
59378
59379
			emit {JPEG-XR Image}
			if {[N byte 98 0 0 & 8 == 8]} {
				>
					emit {\b, hard tiling}
				<
			}
	
			if {[N byte 99 0 0 & -128 == -128]} {
				>
					emit {\b, tiling present}
				<
			}
	
			if {[N byte 99 0 0 & 64 == 64]} {
				>
59416
59417
59418
59419
59420
59421
59422
59423

















59424
59425
59426
59427
59428
59429
59430
59431
59432
59433
59434
59435
59436
59437
59438
59439
59440
59441
59442
59443
59444
59445
59446
59447
59448
59449
59450
59451
59452
59453
59454
59455
59456
59457
59458
59459
59460
59461
59462
				56 {
					>
						emit {\bLB}
					<
				}
			}
	
			switch [Nv byte 100 0 & 128] {

















				0 {
					>
						emit {\b, long header}
						if {[N belong 102 0 0 + 1 x {}]} {
							>
								emit {\b, %x}
							<
						}
	
						if {[N belong 106 0 0 + 1 x {}]} {
							>
								emit {\bx%x}
							<
						}
	
					<
				}
				-128 {
					>
						emit {\b, short header}
						if {[N beshort 102 0 0 + 1 x {}]} {
							>
								emit {\b, %d}
							<
						}
	
						if {[N beshort 104 0 0 + 1 x {}]} {
							>
								emit {\bx%d}
							<
						}
	
					<
				}
			}
	
			if {[N beshort 101 0 0 & 15 x {}]} {
				>
					emit {\b, bitdepth=}







|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>















<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







59426
59427
59428
59429
59430
59431
59432
59433
59434
59435
59436
59437
59438
59439
59440
59441
59442
59443
59444
59445
59446
59447
59448
59449
59450
59451
59452
59453
59454
59455
59456
59457
59458
59459
59460
59461
59462
59463
59464
59465

















59466
59467
59468
59469
59470
59471
59472
				56 {
					>
						emit {\bLB}
					<
				}
			}
	
			switch [Nv byte 100 0 & -128] {
				-128 {
					>
						emit {\b, short header}
						if {[N beshort 102 0 0 + 1 x {}]} {
							>
								emit {\b, %d}
							<
						}
	
						if {[N beshort 104 0 0 + 1 x {}]} {
							>
								emit {\bx%d}
							<
						}
	
					<
				}
				0 {
					>
						emit {\b, long header}
						if {[N belong 102 0 0 + 1 x {}]} {
							>
								emit {\b, %x}
							<
						}
	
						if {[N belong 106 0 0 + 1 x {}]} {
							>
								emit {\bx%x}
							<
						}
	

















					<
				}
			}
	
			if {[N beshort 101 0 0 & 15 x {}]} {
				>
					emit {\b, bitdepth=}
60050
60051
60052
60053
60054
60055
60056
60057
60058
60059
60060
60061
60062
60063
60064
	
	if {[S string 13 0 {} {} eq DrawFile]} {
		>
			emit {IslandDraw document}
		<
	}
	
	if {[N leshort 0 0 0 & 65532 == 38400]} {
		>
			emit {little endian ispell}
			switch [Nv byte 0 0 {} {}] {
				0 {
					>
						emit {hash file (?),}
					<







|







60060
60061
60062
60063
60064
60065
60066
60067
60068
60069
60070
60071
60072
60073
60074
	
	if {[S string 13 0 {} {} eq DrawFile]} {
		>
			emit {IslandDraw document}
		<
	}
	
	if {[N leshort 0 0 0 & -4 == -27136]} {
		>
			emit {little endian ispell}
			switch [Nv byte 0 0 {} {}] {
				0 {
					>
						emit {hash file (?),}
					<
60168
60169
60170
60171
60172
60173
60174
60175
60176
60177
60178
60179
60180
60181
60182
					emit {and %d string characters}
				<
			}
	
		<
	}
	
	if {[N beshort 0 0 0 & 65532 == 38400]} {
		>
			emit {big endian ispell}
			switch [Nv byte 1 0 {} {}] {
				0 {
					>
						emit {hash file (?),}
					<







|







60178
60179
60180
60181
60182
60183
60184
60185
60186
60187
60188
60189
60190
60191
60192
					emit {and %d string characters}
				<
			}
	
		<
	}
	
	if {[N beshort 0 0 0 & -4 == -27136]} {
		>
			emit {big endian ispell}
			switch [Nv byte 1 0 {} {}] {
				0 {
					>
						emit {hash file (?),}
					<
60463
60464
60465
60466
60467
60468
60469
60470
60471
60472
60473
60474
60475
60476
60477
					mime video/mj2
				<
			}
	
		<
	}
	
	if {[N beshort 45 0 0 {} {} == 65362]} {
		>
		<
	}
	
	if {[S string 0 0 {} {} eq \x49\x49\xbc]} {
		>
			if {[N byte 3 0 0 {} {} == 1]} {







|







60473
60474
60475
60476
60477
60478
60479
60480
60481
60482
60483
60484
60485
60486
60487
					mime video/mj2
				<
			}
	
		<
	}
	
	if {[N beshort 45 0 0 {} {} == -174]} {
		>
		<
	}
	
	if {[S string 0 0 {} {} eq \x49\x49\xbc]} {
		>
			if {[N byte 3 0 0 {} {} == 1]} {
60924
60925
60926
60927
60928
60929
60930
60931
60932
60933
60934
60935
60936
60937
60938
			emit {Linux/ia64 swap file}
		<
	}
	
	if {[S string 514 0 {} {} eq HdrS]} {
		>
			emit {Linux kernel}
			if {[N leshort 510 0 0 {} {} == 43605]} {
				>
					emit {x86 boot executable}
					if {[N leshort 518 0 0 {} {} > 511]} {
						>
							switch [Nv byte 529 0 {} {}] {
								0 {
									>







|







60934
60935
60936
60937
60938
60939
60940
60941
60942
60943
60944
60945
60946
60947
60948
			emit {Linux/ia64 swap file}
		<
	}
	
	if {[S string 514 0 {} {} eq HdrS]} {
		>
			emit {Linux kernel}
			if {[N leshort 510 0 0 {} {} == -21931]} {
				>
					emit {x86 boot executable}
					if {[N leshort 518 0 0 {} {} > 511]} {
						>
							switch [Nv byte 529 0 {} {}] {
								0 {
									>
61043
61044
61045
61046
61047
61048
61049
61050
61051
61052
61053
61054
61055
61056
61057
61058
61059
61060
61061
61062
61063





61064
61065
61066
61067
61068
61069
61070
	if {[S string 0 0 {} {} eq \xb8\xc0\x07\x8e\xd8\xb8\x00\x90]} {
		>
			emit Linux
			if {[N leshort 497 0 0 {} {} == 0]} {
				>
					emit {x86 boot sector}
					switch [Nv belong 514 0 {} {}] {
						142 {
							>
								emit {of a kernel from the dawn of time!}
							<
						}
						-1869686604 {
							>
								emit {version 0.99-1.1.42}
							<
						}
						-1869686600 {
							>
								emit {for memtest86}
							<





						}
					}
	
				<
			}
	
			if {[N leshort 497 0 0 {} {} != 0]} {







<
<
<
<
<









>
>
>
>
>







61053
61054
61055
61056
61057
61058
61059





61060
61061
61062
61063
61064
61065
61066
61067
61068
61069
61070
61071
61072
61073
61074
61075
61076
61077
61078
61079
61080
	if {[S string 0 0 {} {} eq \xb8\xc0\x07\x8e\xd8\xb8\x00\x90]} {
		>
			emit Linux
			if {[N leshort 497 0 0 {} {} == 0]} {
				>
					emit {x86 boot sector}
					switch [Nv belong 514 0 {} {}] {





						-1869686604 {
							>
								emit {version 0.99-1.1.42}
							<
						}
						-1869686600 {
							>
								emit {for memtest86}
							<
						}
						142 {
							>
								emit {of a kernel from the dawn of time!}
							<
						}
					}
	
				<
			}
	
			if {[N leshort 497 0 0 {} {} != 0]} {
61122
61123
61124
61125
61126
61127
61128





61129
61130
61131
61132
61133
61134
61135
					if {[N leshort 506 0 0 {} {} > 0]} {
						>
							emit vga=%d
						<
					}
	
					switch [Nv belong 514 0 {} {}] {





						364020173 {
							>
								if {[N belong 2702 0 0 {} {} == 1437227610]} {
									>
										emit {version 1.1.46-1.2.13,1.3.0}
									<
								}







>
>
>
>
>







61132
61133
61134
61135
61136
61137
61138
61139
61140
61141
61142
61143
61144
61145
61146
61147
61148
61149
61150
					if {[N leshort 506 0 0 {} {} > 0]} {
						>
							emit vga=%d
						<
					}
	
					switch [Nv belong 514 0 {} {}] {
						-1869686655 {
							>
								emit {version 1.1.43-1.1.45}
							<
						}
						364020173 {
							>
								if {[N belong 2702 0 0 {} {} == 1437227610]} {
									>
										emit {version 1.1.46-1.2.13,1.3.0}
									<
								}
61162
61163
61164
61165
61166
61167
61168
61169
61170
61171
61172
61173
61174
61175
61176
61177
61178
61179
61180
									>
										emit {version 1.3.46-1.3.72}
									<
								}
	
							<
						}
						-1869686655 {
							>
								emit {version 1.1.43-1.1.45}
							<
						}
					}
	
					if {[S string 514 0 {} {} eq HdrS]} {
						>
							if {[N leshort 518 0 0 {} {} > 511]} {
								>
									switch [Nv byte 529 0 {} {}] {







<
<
<
<
<







61177
61178
61179
61180
61181
61182
61183





61184
61185
61186
61187
61188
61189
61190
									>
										emit {version 1.3.46-1.3.72}
									<
								}
	
							<
						}





					}
	
					if {[S string 514 0 {} {} eq HdrS]} {
						>
							if {[N leshort 518 0 0 {} {} > 511]} {
								>
									switch [Nv byte 529 0 {} {}] {
61275
61276
61277
61278
61279
61280
61281
61282
61283
61284
61285
61286
61287
61288
61289
61290
61291
61292
61293
61294
61295
61296
61297
61298
61299
61300
61301
61302
61303
61304
61305
61306
	
	if {[N belong 36 0 0 {} {} == 24061976]} {
		>
			emit {Linux kernel ARM boot executable zImage (big-endian)}
		<
	}
	
	if {[N lelong 0 0 0 & 4278190335 == 3271557353]} {
		>
			emit {Linux-Dev86 executable, headerless}
			if {[S string 5 0 {} {} eq .]} {
				>
					if {[S string 4 0 {} {} > \0]} {
						>
							emit {\b, libc version %s}
						<
					}
	
				<
			}
	
		<
	}
	
	if {[N lelong 0 0 0 & 4278255615 == 67109633]} {
		>
			emit {Linux-8086 executable}
			if {[N byte 2 0 0 & 1 != 0]} {
				>
					emit {\b, unmapped zero page}
				<
			}







|
















|







61285
61286
61287
61288
61289
61290
61291
61292
61293
61294
61295
61296
61297
61298
61299
61300
61301
61302
61303
61304
61305
61306
61307
61308
61309
61310
61311
61312
61313
61314
61315
61316
	
	if {[N belong 36 0 0 {} {} == 24061976]} {
		>
			emit {Linux kernel ARM boot executable zImage (big-endian)}
		<
	}
	
	if {[N lelong 0 0 0 & -16776961 == -1023409943]} {
		>
			emit {Linux-Dev86 executable, headerless}
			if {[S string 5 0 {} {} eq .]} {
				>
					if {[S string 4 0 {} {} > \0]} {
						>
							emit {\b, libc version %s}
						<
					}
	
				<
			}
	
		<
	}
	
	if {[N lelong 0 0 0 & -16711681 == 67109633]} {
		>
			emit {Linux-8086 executable}
			if {[N byte 2 0 0 & 1 != 0]} {
				>
					emit {\b, unmapped zero page}
				<
			}
61342
61343
61344
61345
61346
61347
61348
61349
61350
61351
61352
61353
61354
61355
61356
	
			if {[N byte 2 0 0 & 64 != 0]} {
				>
					emit {\b, A_PURE}
				<
			}
	
			if {[N byte 2 0 0 & 128 != 0]} {
				>
					emit {\b, A_TOVLY}
				<
			}
	
			if {[N long 28 0 0 {} {} != 0]} {
				>







|







61352
61353
61354
61355
61356
61357
61358
61359
61360
61361
61362
61363
61364
61365
61366
	
			if {[N byte 2 0 0 & 64 != 0]} {
				>
					emit {\b, A_PURE}
				<
			}
	
			if {[N byte 2 0 0 & -128 != 0]} {
				>
					emit {\b, A_TOVLY}
				<
			}
	
			if {[N long 28 0 0 {} {} != 0]} {
				>
61931
61932
61933
61934
61935
61936
61937
61938
61939
61940
61941
61942
61943
61944
61945
	
				<
			}
	
		<
	}
	
	if {[N lelong 4096 0 0 {} {} == 2838187772]} {
		>
			emit {Linux Software RAID}
			if {[N lelong 4100 0 0 {} {} x {}]} {
				>
					emit {version 1.2 (%d)}
				<
			}







|







61941
61942
61943
61944
61945
61946
61947
61948
61949
61950
61951
61952
61953
61954
61955
	
				<
			}
	
		<
	}
	
	if {[N lelong 4096 0 0 {} {} == -1456779524]} {
		>
			emit {Linux Software RAID}
			if {[N lelong 4100 0 0 {} {} x {}]} {
				>
					emit {version 1.2 (%d)}
				<
			}
62251
62252
62253
62254
62255
62256
62257
62258
62259
62260
62261
62262
62263
62264
62265
62266
62267
62268








62269
62270
62271
62272
62273
62274
62275
62276
62277
62278
62279
62280
62281
62282
62283
62284
62285
62286
62287
62288
62289
62290
62291
62292
62293
		>
			emit {M4 macro processor script text}
			mime text/x-m4
			strength {+ 15}
		<
	}
	
	if {[N lelong 0 0 0 & 4294967294 == 4277009102]} {
		>
			emit Mach-O
			U 135 mach-o-be 0
	
			mime application/x-mach-binary
			strength +1
		<
	}
	
	switch [Nv belong 0 0 & 4294967294] {








		931071618 {
			>
				emit {SQLite Write-Ahead Log,}
				ext sqlite-wal/db-wal
				if {[N belong 4 0 0 {} {} x {}]} {
					>
						emit {version %d}
					<
				}
	
			<
		}
		-17958194 {
			>
				emit Mach-O
				mime application/x-mach-binary
				U 135 mach-o-be 0
	
			<
		}
	}
	
	if {[S string 11 0 {} {} eq must\ be\ converted\ with\ BinHex]} {
		>
			emit {BinHex binary text}







|









|
>
>
>
>
>
>
>
>










<
<
<
<
<
<
<
<







62261
62262
62263
62264
62265
62266
62267
62268
62269
62270
62271
62272
62273
62274
62275
62276
62277
62278
62279
62280
62281
62282
62283
62284
62285
62286
62287
62288
62289
62290
62291
62292
62293
62294
62295
62296








62297
62298
62299
62300
62301
62302
62303
		>
			emit {M4 macro processor script text}
			mime text/x-m4
			strength {+ 15}
		<
	}
	
	if {[N lelong 0 0 0 & -2 == -17958194]} {
		>
			emit Mach-O
			U 135 mach-o-be 0
	
			mime application/x-mach-binary
			strength +1
		<
	}
	
	switch [Nv belong 0 0 & -2] {
		-17958194 {
			>
				emit Mach-O
				mime application/x-mach-binary
				U 135 mach-o-be 0
	
			<
		}
		931071618 {
			>
				emit {SQLite Write-Ahead Log,}
				ext sqlite-wal/db-wal
				if {[N belong 4 0 0 {} {} x {}]} {
					>
						emit {version %d}
					<
				}
	








			<
		}
	}
	
	if {[S string 11 0 {} {} eq must\ be\ converted\ with\ BinHex]} {
		>
			emit {BinHex binary text}
62426
62427
62428
62429
62430
62431
62432















































62433
62434
62435
62436
62437
62438
62439
62440
62441
62442
62443
62444
62445
62446
62447
62448
62449
62450
62451
62452
62453
				<
			}
	
		<
	}
	
	switch [Nv beshort 1024 0 {} {}] {















































		16964 {
			>
				if {[N ubeshort 1038 0 0 {} {} == 3]} {
					>
						if {[N ubyte 1060 0 0 {} {} < 28]} {
							>
								emit {Macintosh HFS data}
								if {[N beshort 0 0 0 {} {} == 19531]} {
									>
										emit (bootable)
									<
								}
	
								if {[N beshort 1034 0 0 {} {} & 32768]} {
									>
										emit (locked)
									<
								}
	
								if {[N beshort 1034 0 0 {} {} ^ 256]} {
									>







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>













|







62436
62437
62438
62439
62440
62441
62442
62443
62444
62445
62446
62447
62448
62449
62450
62451
62452
62453
62454
62455
62456
62457
62458
62459
62460
62461
62462
62463
62464
62465
62466
62467
62468
62469
62470
62471
62472
62473
62474
62475
62476
62477
62478
62479
62480
62481
62482
62483
62484
62485
62486
62487
62488
62489
62490
62491
62492
62493
62494
62495
62496
62497
62498
62499
62500
62501
62502
62503
62504
62505
62506
62507
62508
62509
62510
				<
			}
	
		<
	}
	
	switch [Nv beshort 1024 0 {} {}] {
		-11561 {
			>
				emit {Macintosh MFS data}
				if {[N beshort 0 0 0 {} {} == 19531]} {
					>
						emit (bootable)
					<
				}
	
				if {[N beshort 1034 0 0 {} {} & -32768]} {
					>
						emit (locked)
					<
				}
	
				if {[N beldate 1026 0 0 - 2082844800 x {}]} {
					>
						emit {created: %s,}
					<
				}
	
				if {[N beldate 1030 0 0 - 2082844800 > 0]} {
					>
						emit {last backup: %s,}
					<
				}
	
				if {[N belong 1044 0 0 {} {} x {}]} {
					>
						emit {block size: %d,}
					<
				}
	
				if {[N beshort 1042 0 0 {} {} x {}]} {
					>
						emit {number of blocks: %d,}
					<
				}
	
				if {[S pstring 1060 0 {} {} x {}]} {
					>
						emit {volume name: %s}
					<
				}
	
			<
		}
		16964 {
			>
				if {[N ubeshort 1038 0 0 {} {} == 3]} {
					>
						if {[N ubyte 1060 0 0 {} {} < 28]} {
							>
								emit {Macintosh HFS data}
								if {[N beshort 0 0 0 {} {} == 19531]} {
									>
										emit (bootable)
									<
								}
	
								if {[N beshort 1034 0 0 {} {} & -32768]} {
									>
										emit (locked)
									<
								}
	
								if {[N beshort 1034 0 0 {} {} ^ 256]} {
									>
62548
62549
62550
62551
62552
62553
62554
62555
62556
62557
62558
62559
62560
62561
62562
62563
62564
62565
62566
62567
62568
62569
62570
62571
62572
62573
62574
	
				if {[N beldate [R 14] 0 0 - 2082844800 x {}]} {
					>
						emit {created: %s,}
					<
				}
	
				if {[N bedate [R 18] 0 0 - 2082844800 x {}]} {
					>
						emit {last modified: %s,}
					<
				}
	
				if {[N bedate [R 22] 0 0 - 2082844800 > 0]} {
					>
						emit {last backup: %s,}
					<
				}
	
				if {[N bedate [R 26] 0 0 - 2082844800 > 0]} {
					>
						emit {last checked: %s,}
					<
				}
	
				if {[N belong [R 38] 0 0 {} {} x {}]} {
					>







|





|





|







62605
62606
62607
62608
62609
62610
62611
62612
62613
62614
62615
62616
62617
62618
62619
62620
62621
62622
62623
62624
62625
62626
62627
62628
62629
62630
62631
	
				if {[N beldate [R 14] 0 0 - 2082844800 x {}]} {
					>
						emit {created: %s,}
					<
				}
	
				if {[N bedate [R 18] 0 0 - -20352 x {}]} {
					>
						emit {last modified: %s,}
					<
				}
	
				if {[N bedate [R 22] 0 0 - -20352 > 0]} {
					>
						emit {last backup: %s,}
					<
				}
	
				if {[N bedate [R 26] 0 0 - -20352 > 0]} {
					>
						emit {last checked: %s,}
					<
				}
	
				if {[N belong [R 38] 0 0 {} {} x {}]} {
					>
62584
62585
62586
62587
62588
62589
62590
62591
62592
62593
62594
62595
62596
62597
62598
62599
62600
62601
62602
62603
62604
62605
62606
62607
62608
62609
62610
62611
62612
62613
62614
62615
62616
62617
62618
62619
62620
62621
62622
62623
62624
62625
62626
62627
62628
62629
62630
62631
62632
62633
62634
62635
62636
62637
62638
62639
62640
62641
62642
62643
62644
	
				if {[N belong [R 46] 0 0 {} {} x {}]} {
					>
						emit {free blocks: %d}
					<
				}
	
			<
		}
		-11561 {
			>
				emit {Macintosh MFS data}
				if {[N beshort 0 0 0 {} {} == 19531]} {
					>
						emit (bootable)
					<
				}
	
				if {[N beshort 1034 0 0 {} {} & 32768]} {
					>
						emit (locked)
					<
				}
	
				if {[N beldate 1026 0 0 - 2082844800 x {}]} {
					>
						emit {created: %s,}
					<
				}
	
				if {[N beldate 1030 0 0 - 2082844800 > 0]} {
					>
						emit {last backup: %s,}
					<
				}
	
				if {[N belong 1044 0 0 {} {} x {}]} {
					>
						emit {block size: %d,}
					<
				}
	
				if {[N beshort 1042 0 0 {} {} x {}]} {
					>
						emit {number of blocks: %d,}
					<
				}
	
				if {[S pstring 1060 0 {} {} x {}]} {
					>
						emit {volume name: %s}
					<
				}
	
			<
		}
	}
	
	if {[S string 0 0 {} {} eq BOMStore]} {
		>
			emit {Mac OS X bill of materials (BOM) file}







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







62641
62642
62643
62644
62645
62646
62647















































62648
62649
62650
62651
62652
62653
62654
	
				if {[N belong [R 46] 0 0 {} {} x {}]} {
					>
						emit {free blocks: %d}
					<
				}
	















































			<
		}
	}
	
	if {[S string 0 0 {} {} eq BOMStore]} {
		>
			emit {Mac OS X bill of materials (BOM) file}
64142
64143
64144
64145
64146
64147
64148










64149
64150
64151
64152
64153
64154
64155
										<
									}
	
								<
							}
	
							switch [Nv leshort [I 60 ulelong 0 + 0 4] 0 {} {}] {










								332 {
									>
										emit {Intel 80386}
									<
								}
								358 {
									>







>
>
>
>
>
>
>
>
>
>







64152
64153
64154
64155
64156
64157
64158
64159
64160
64161
64162
64163
64164
64165
64166
64167
64168
64169
64170
64171
64172
64173
64174
64175
										<
									}
	
								<
							}
	
							switch [Nv leshort [I 60 ulelong 0 + 0 4] 0 {} {}] {
								-31132 {
									>
										emit x86-64
									<
								}
								-16146 {
									>
										emit MSIL
									<
								}
								332 {
									>
										emit {Intel 80386}
									<
								}
								358 {
									>
64227
64228
64229
64230
64231
64232
64233
64234
64235
64236
64237
64238
64239
64240
64241
64242
64243
64244
64245
64246
64247
64248
64249
64250
									<
								}
								3772 {
									>
										emit {EFI byte code}
									<
								}
								-31132 {
									>
										emit x86-64
									<
								}
								-16146 {
									>
										emit MSIL
									<
								}
							}
	
							if {[D [I 60 ulelong 0 + 0 4]]} {
								>
									emit {Unknown processor type}
									if {[N leshort [R 0] 0 0 {} {} x {}]} {
										>







<
<
<
<
<
<
<
<
<
<







64247
64248
64249
64250
64251
64252
64253










64254
64255
64256
64257
64258
64259
64260
									<
								}
								3772 {
									>
										emit {EFI byte code}
									<
								}










							}
	
							if {[D [I 60 ulelong 0 + 0 4]]} {
								>
									emit {Unknown processor type}
									if {[N leshort [R 0] 0 0 {} {} x {}]} {
										>
64423
64424
64425
64426
64427
64428
64429





64430
64431
64432
64433
64434
64435
64436
						<
					}
	
					if {[S string [I 60 ulelong 0 + 0 0] 0 {} {} eq NE]} {
						>
							emit {\b, NE}
							switch [Nv byte [I 60 ulelong 0 + 0 54] 0 {} {}] {





								1 {
									>
										emit {for OS/2 1.x}
									<
								}
								2 {
									>







>
>
>
>
>







64433
64434
64435
64436
64437
64438
64439
64440
64441
64442
64443
64444
64445
64446
64447
64448
64449
64450
64451
						<
					}
	
					if {[S string [I 60 ulelong 0 + 0 0] 0 {} {} eq NE]} {
						>
							emit {\b, NE}
							switch [Nv byte [I 60 ulelong 0 + 0 54] 0 {} {}] {
								-127 {
									>
										emit {for MS-DOS, Phar Lap DOS extender}
									<
								}
								1 {
									>
										emit {for OS/2 1.x}
									<
								}
								2 {
									>
64448
64449
64450
64451
64452
64453
64454
64455
64456
64457
64458
64459
64460
64461
64462
64463
64464
64465
64466
64467
64468
64469
64470
64471
64472
64473
64474
64475
64476
64477
64478
64479
64480
									<
								}
								5 {
									>
										emit {for Borland Operating System Services}
									<
								}
								-127 {
									>
										emit {for MS-DOS, Phar Lap DOS extender}
									<
								}
							}
	
							if {[D [I 60 ulelong 0 + 0 54]]} {
								>
									if {[N byte [I 60 ulelong 0 + 0 54] 0 0 {} {} x {}]} {
										>
											emit {(unknown OS %x)}
										<
									}
	
								<
							}
	
							switch [Nv leshort [I 60 ulelong 0 + 0 12] 0 & 32771] {
								-32767 {
									>
										emit (driver)
									<
								}
								-32766 {
									>







<
<
<
<
<













|







64463
64464
64465
64466
64467
64468
64469





64470
64471
64472
64473
64474
64475
64476
64477
64478
64479
64480
64481
64482
64483
64484
64485
64486
64487
64488
64489
64490
									<
								}
								5 {
									>
										emit {for Borland Operating System Services}
									<
								}





							}
	
							if {[D [I 60 ulelong 0 + 0 54]]} {
								>
									if {[N byte [I 60 ulelong 0 + 0 54] 0 0 {} {} x {}]} {
										>
											emit {(unknown OS %x)}
										<
									}
	
								<
							}
	
							switch [Nv leshort [I 60 ulelong 0 + 0 12] 0 & -32765] {
								-32767 {
									>
										emit (driver)
									<
								}
								-32766 {
									>
65184
65185
65186
65187
65188
65189
65190
65191
65192
65193
65194
65195
65196
65197
65198
	
			<
		}
		184 {
			>
				if {[S string 0 0 {} {} ne \xb8\xc0\x07\x8e]} {
					>
						if {[N lelong 1 0 0 & 4294967294 == 567102718]} {
							>
								emit {COM executable (32-bit COMBOOT}
								switch [Nv lelong 1 0 {} {}] {
									567102718 {
										>
											emit {\b, relocatable)}
										<







|







65194
65195
65196
65197
65198
65199
65200
65201
65202
65203
65204
65205
65206
65207
65208
	
			<
		}
		184 {
			>
				if {[S string 0 0 {} {} ne \xb8\xc0\x07\x8e]} {
					>
						if {[N lelong 1 0 0 & -2 == 567102718]} {
							>
								emit {COM executable (32-bit COMBOOT}
								switch [Nv lelong 1 0 {} {}] {
									567102718 {
										>
											emit {\b, relocatable)}
										<
65353
65354
65355
65356
65357
65358
65359
65360
65361
65362
65363
65364
65365
65366
65367
		>
			emit {COM executable for DOS}
		<
	}
	
	if {[S string 7 0 {} {} eq \xcd\x21]} {
		>
			if {[N byte 0 0 0 {} {} != 184]} {
				>
					emit {COM executable for DOS}
				<
			}
	
		<
	}







|







65363
65364
65365
65366
65367
65368
65369
65370
65371
65372
65373
65374
65375
65376
65377
		>
			emit {COM executable for DOS}
		<
	}
	
	if {[S string 7 0 {} {} eq \xcd\x21]} {
		>
			if {[N byte 0 0 0 {} {} != -72]} {
				>
					emit {COM executable for DOS}
				<
			}
	
		<
	}
66334
66335
66336
66337
66338
66339
66340
66341
66342
66343
66344
66345
66346
66347
66348
66349
66350
66351
66352
66353
66354
	
		<
	}
	
	if {[S string 0 0 b {} eq ISc(]} {
		>
			emit {InstallShield Cabinet archive data}
			if {[N byte 5 0 0 & 240 == 96]} {
				>
					emit {version 6,}
				<
			}
	
			if {[N byte 5 0 0 & 240 != 96]} {
				>
					emit {version 4/5,}
				<
			}
	
			if {[N lelong [I 12 ulelong 0 + 0 40] 0 0 {} {} x {}]} {
				>







|





|







66344
66345
66346
66347
66348
66349
66350
66351
66352
66353
66354
66355
66356
66357
66358
66359
66360
66361
66362
66363
66364
	
		<
	}
	
	if {[S string 0 0 b {} eq ISc(]} {
		>
			emit {InstallShield Cabinet archive data}
			if {[N byte 5 0 0 & -16 == 96]} {
				>
					emit {version 6,}
				<
			}
	
			if {[N byte 5 0 0 & -16 != 96]} {
				>
					emit {version 4/5,}
				<
			}
	
			if {[N lelong [I 12 ulelong 0 + 0 40] 0 0 {} {} x {}]} {
				>
66627
66628
66629
66630
66631
66632
66633

66634
66635
66636
66637
66638
66639
66640
66641
	
													if {[S string 5 0 {} {} x {}]} {
														>
															emit {file %s}
														<
													}
	

													T 128
	
												<
											}
	
										<
									}
	







>
|







66637
66638
66639
66640
66641
66642
66643
66644
66645
66646
66647
66648
66649
66650
66651
66652
	
													if {[S string 5 0 {} {} x {}]} {
														>
															emit {file %s}
														<
													}
	
													emit {\b; }
													T 128 {}
	
												<
											}
	
										<
									}
	
66951
66952
66953
66954
66955
66956
66957
66958
66959
66960
66961
66962
66963
66964
66965
	
		<
	}
	
	if {[S string 0 0 b {} eq KSSX]} {
		>
			emit {KSS music file v1.20}
			if {[N byte 14 0 0 & 239 == 0]} {
				>
					switch [Nv byte 15 0 & 64] {
						0 {
							>
								emit {\b, 60Hz}
							<
						}







|







66962
66963
66964
66965
66966
66967
66968
66969
66970
66971
66972
66973
66974
66975
66976
	
		<
	}
	
	if {[S string 0 0 b {} eq KSSX]} {
		>
			emit {KSS music file v1.20}
			if {[N byte 14 0 0 & -17 == 0]} {
				>
					switch [Nv byte 15 0 & 64] {
						0 {
							>
								emit {\b, 60Hz}
							<
						}
68239
68240
68241
68242
68243
68244
68245
68246
68247
68248
68249
68250
68251
68252
68253
68254
68255
68256
68257
68258
68259
		<
	}
	
	switch [Nv belong 0 0 & 67108863] {
		8782087 {
			>
				emit {a.out NetBSD/i386}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	







|





|







68250
68251
68252
68253
68254
68255
68256
68257
68258
68259
68260
68261
68262
68263
68264
68265
68266
68267
68268
68269
68270
		<
	}
	
	switch [Nv belong 0 0 & 67108863] {
		8782087 {
			>
				emit {a.out NetBSD/i386}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	
68279
68280
68281
68282
68283
68284
68285
68286
68287
68288
68289
68290
68291
68292
68293
68294
68295
68296
68297
68298
68299
68300
68301
68302
68303
68304
68305
68306
68307
68308
68309
68310
68311
68312
68313
68314
68315
68316
				}
	
			<
		}
		8782088 {
			>
				emit {a.out NetBSD/i386 pure}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		8782091 {
			>
				emit {a.out NetBSD/i386 demand paged}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						if {[N lelong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	







|





|
















|







68290
68291
68292
68293
68294
68295
68296
68297
68298
68299
68300
68301
68302
68303
68304
68305
68306
68307
68308
68309
68310
68311
68312
68313
68314
68315
68316
68317
68318
68319
68320
68321
68322
68323
68324
68325
68326
68327
				}
	
			<
		}
		8782088 {
			>
				emit {a.out NetBSD/i386 pure}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		8782091 {
			>
				emit {a.out NetBSD/i386 demand paged}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						if {[N lelong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	
68325
68326
68327
68328
68329
68330
68331
68332
68333
68334
68335
68336
68337
68338
68339
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>







|







68336
68337
68338
68339
68340
68341
68342
68343
68344
68345
68346
68347
68348
68349
68350
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
68359
68360
68361
68362
68363
68364
68365
68366
68367
68368
68369
68370
68371
68372
68373
68374
68375
68376
68377
68378
68379
				}
	
			<
		}
		8847623 {
			>
				emit {a.out NetBSD/m68k}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	







|





|







68370
68371
68372
68373
68374
68375
68376
68377
68378
68379
68380
68381
68382
68383
68384
68385
68386
68387
68388
68389
68390
				}
	
			<
		}
		8847623 {
			>
				emit {a.out NetBSD/m68k}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	
68399
68400
68401
68402
68403
68404
68405
68406
68407
68408
68409
68410
68411
68412
68413
68414
68415
68416
68417
68418
68419
68420
68421
68422
68423
68424
68425
68426
68427
68428
68429
68430
68431
68432
68433
68434
68435
68436
				}
	
			<
		}
		8847624 {
			>
				emit {a.out NetBSD/m68k pure}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		8847627 {
			>
				emit {a.out NetBSD/m68k demand paged}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						if {[N belong 20 0 0 {} {} < 8192]} {
							>
								emit {shared library}
							<
						}
	







|





|
















|







68410
68411
68412
68413
68414
68415
68416
68417
68418
68419
68420
68421
68422
68423
68424
68425
68426
68427
68428
68429
68430
68431
68432
68433
68434
68435
68436
68437
68438
68439
68440
68441
68442
68443
68444
68445
68446
68447
				}
	
			<
		}
		8847624 {
			>
				emit {a.out NetBSD/m68k pure}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		8847627 {
			>
				emit {a.out NetBSD/m68k demand paged}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						if {[N belong 20 0 0 {} {} < 8192]} {
							>
								emit {shared library}
							<
						}
	
68445
68446
68447
68448
68449
68450
68451
68452
68453
68454
68455
68456
68457
68458
68459
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>







|







68456
68457
68458
68459
68460
68461
68462
68463
68464
68465
68466
68467
68468
68469
68470
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
68479
68480
68481
68482
68483
68484
68485
68486
68487
68488
68489
68490
68491
68492
68493
68494
68495
68496
68497
68498
68499
				}
	
			<
		}
		8913159 {
			>
				emit {a.out NetBSD/m68k4k}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	







|





|







68490
68491
68492
68493
68494
68495
68496
68497
68498
68499
68500
68501
68502
68503
68504
68505
68506
68507
68508
68509
68510
				}
	
			<
		}
		8913159 {
			>
				emit {a.out NetBSD/m68k4k}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	
68519
68520
68521
68522
68523
68524
68525
68526
68527
68528
68529
68530
68531
68532
68533
68534
68535
68536
68537
68538
68539
68540
68541
68542
68543
68544
68545
68546
68547
68548
68549
68550
68551
68552
68553
68554
68555
68556
				}
	
			<
		}
		8913160 {
			>
				emit {a.out NetBSD/m68k4k pure}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		8913163 {
			>
				emit {a.out NetBSD/m68k4k demand paged}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						if {[N belong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	







|





|
















|







68530
68531
68532
68533
68534
68535
68536
68537
68538
68539
68540
68541
68542
68543
68544
68545
68546
68547
68548
68549
68550
68551
68552
68553
68554
68555
68556
68557
68558
68559
68560
68561
68562
68563
68564
68565
68566
68567
				}
	
			<
		}
		8913160 {
			>
				emit {a.out NetBSD/m68k4k pure}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		8913163 {
			>
				emit {a.out NetBSD/m68k4k demand paged}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						if {[N belong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	
68565
68566
68567
68568
68569
68570
68571
68572
68573
68574
68575
68576
68577
68578
68579
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>







|







68576
68577
68578
68579
68580
68581
68582
68583
68584
68585
68586
68587
68588
68589
68590
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
68599
68600
68601
68602
68603
68604
68605
68606
68607
68608
68609
68610
68611
68612
68613
68614
68615
68616
68617
68618
68619
				}
	
			<
		}
		8978695 {
			>
				emit {a.out NetBSD/ns32532}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	







|





|







68610
68611
68612
68613
68614
68615
68616
68617
68618
68619
68620
68621
68622
68623
68624
68625
68626
68627
68628
68629
68630
				}
	
			<
		}
		8978695 {
			>
				emit {a.out NetBSD/ns32532}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	
68639
68640
68641
68642
68643
68644
68645
68646
68647
68648
68649
68650
68651
68652
68653
68654
68655
68656
68657
68658
68659
68660
68661
68662
68663
68664
68665
68666
68667
68668
68669
68670
68671
68672
68673
68674
68675
68676
				}
	
			<
		}
		8978696 {
			>
				emit {a.out NetBSD/ns32532 pure}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		8978699 {
			>
				emit {a.out NetBSD/ns32532 demand paged}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						if {[N lelong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	







|





|
















|







68650
68651
68652
68653
68654
68655
68656
68657
68658
68659
68660
68661
68662
68663
68664
68665
68666
68667
68668
68669
68670
68671
68672
68673
68674
68675
68676
68677
68678
68679
68680
68681
68682
68683
68684
68685
68686
68687
				}
	
			<
		}
		8978696 {
			>
				emit {a.out NetBSD/ns32532 pure}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		8978699 {
			>
				emit {a.out NetBSD/ns32532 demand paged}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						if {[N lelong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	
68685
68686
68687
68688
68689
68690
68691
68692
68693
68694
68695
68696
68697
68698
68699
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>







|







68696
68697
68698
68699
68700
68701
68702
68703
68704
68705
68706
68707
68708
68709
68710
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
68719
68720
68721
68722
68723
68724
68725
68726
68727
68728
68729
68730
68731
68732
68733
68734
68735
68736
68737
68738
68739
				}
	
			<
		}
		9044231 {
			>
				emit {a.out NetBSD/SPARC}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	







|





|







68730
68731
68732
68733
68734
68735
68736
68737
68738
68739
68740
68741
68742
68743
68744
68745
68746
68747
68748
68749
68750
				}
	
			<
		}
		9044231 {
			>
				emit {a.out NetBSD/SPARC}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	
68759
68760
68761
68762
68763
68764
68765
68766
68767
68768
68769
68770
68771
68772
68773
68774
68775
68776
68777
68778
68779
68780
68781
68782
68783
68784
68785
68786
68787
68788
68789
68790
68791
68792
68793
68794
68795
68796
				}
	
			<
		}
		9044232 {
			>
				emit {a.out NetBSD/SPARC pure}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		9044235 {
			>
				emit {a.out NetBSD/SPARC demand paged}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						if {[N belong 20 0 0 {} {} < 8192]} {
							>
								emit {shared library}
							<
						}
	







|





|
















|







68770
68771
68772
68773
68774
68775
68776
68777
68778
68779
68780
68781
68782
68783
68784
68785
68786
68787
68788
68789
68790
68791
68792
68793
68794
68795
68796
68797
68798
68799
68800
68801
68802
68803
68804
68805
68806
68807
				}
	
			<
		}
		9044232 {
			>
				emit {a.out NetBSD/SPARC pure}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		9044235 {
			>
				emit {a.out NetBSD/SPARC demand paged}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						if {[N belong 20 0 0 {} {} < 8192]} {
							>
								emit {shared library}
							<
						}
	
68805
68806
68807
68808
68809
68810
68811
68812
68813
68814
68815
68816
68817
68818
68819
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>







|







68816
68817
68818
68819
68820
68821
68822
68823
68824
68825
68826
68827
68828
68829
68830
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
68839
68840
68841
68842
68843
68844
68845
68846
68847
68848
68849
68850
68851
68852
68853
68854
68855
68856
68857
68858
68859
				}
	
			<
		}
		9109767 {
			>
				emit {a.out NetBSD/pmax}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	







|





|







68850
68851
68852
68853
68854
68855
68856
68857
68858
68859
68860
68861
68862
68863
68864
68865
68866
68867
68868
68869
68870
				}
	
			<
		}
		9109767 {
			>
				emit {a.out NetBSD/pmax}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	
68879
68880
68881
68882
68883
68884
68885
68886
68887
68888
68889
68890
68891
68892
68893
68894
68895
68896
68897
68898
68899
68900
68901
68902
68903
68904
68905
68906
68907
68908
68909
68910
68911
68912
68913
68914
68915
68916
				}
	
			<
		}
		9109768 {
			>
				emit {a.out NetBSD/pmax pure}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		9109771 {
			>
				emit {a.out NetBSD/pmax demand paged}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						if {[N lelong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	







|





|
















|







68890
68891
68892
68893
68894
68895
68896
68897
68898
68899
68900
68901
68902
68903
68904
68905
68906
68907
68908
68909
68910
68911
68912
68913
68914
68915
68916
68917
68918
68919
68920
68921
68922
68923
68924
68925
68926
68927
				}
	
			<
		}
		9109768 {
			>
				emit {a.out NetBSD/pmax pure}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		9109771 {
			>
				emit {a.out NetBSD/pmax demand paged}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						if {[N lelong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	
68925
68926
68927
68928
68929
68930
68931
68932
68933
68934
68935
68936
68937
68938
68939
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>







|







68936
68937
68938
68939
68940
68941
68942
68943
68944
68945
68946
68947
68948
68949
68950
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
68959
68960
68961
68962
68963
68964
68965
68966
68967
68968
68969
68970
68971
68972
68973
68974
68975
68976
68977
68978
68979
				}
	
			<
		}
		9175303 {
			>
				emit {a.out NetBSD/vax 1k}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	







|





|







68970
68971
68972
68973
68974
68975
68976
68977
68978
68979
68980
68981
68982
68983
68984
68985
68986
68987
68988
68989
68990
				}
	
			<
		}
		9175303 {
			>
				emit {a.out NetBSD/vax 1k}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	
68999
69000
69001
69002
69003
69004
69005
69006
69007
69008
69009
69010
69011
69012
69013
69014
69015
69016
69017
69018
69019
69020
69021
69022
69023
69024
69025
69026
69027
69028
69029
69030
69031
69032
69033
69034
69035
69036
				}
	
			<
		}
		9175304 {
			>
				emit {a.out NetBSD/vax 1k pure}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		9175307 {
			>
				emit {a.out NetBSD/vax 1k demand paged}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						if {[N lelong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	







|





|
















|







69010
69011
69012
69013
69014
69015
69016
69017
69018
69019
69020
69021
69022
69023
69024
69025
69026
69027
69028
69029
69030
69031
69032
69033
69034
69035
69036
69037
69038
69039
69040
69041
69042
69043
69044
69045
69046
69047
				}
	
			<
		}
		9175304 {
			>
				emit {a.out NetBSD/vax 1k pure}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		9175307 {
			>
				emit {a.out NetBSD/vax 1k demand paged}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						if {[N lelong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	
69045
69046
69047
69048
69049
69050
69051
69052
69053
69054
69055
69056
69057
69058
69059
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>







|







69056
69057
69058
69059
69060
69061
69062
69063
69064
69065
69066
69067
69068
69069
69070
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
69096
69097
69098
69099
69100
69101
69102
69103
69104
69105
69106
69107
69108
69109
69110
69111
69112
69113
69114
69115
69116
				}
	
			<
		}
		9306375 {
			>
				emit {a.out NetBSD/mips}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	







|





|







69107
69108
69109
69110
69111
69112
69113
69114
69115
69116
69117
69118
69119
69120
69121
69122
69123
69124
69125
69126
69127
				}
	
			<
		}
		9306375 {
			>
				emit {a.out NetBSD/mips}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	
69136
69137
69138
69139
69140
69141
69142
69143
69144
69145
69146
69147
69148
69149
69150
69151
69152
69153
69154
69155
69156
69157
69158
69159
69160
69161
69162
69163
69164
69165
69166
69167
69168
69169
69170
69171
69172
69173
				}
	
			<
		}
		9306376 {
			>
				emit {a.out NetBSD/mips pure}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		9306379 {
			>
				emit {a.out NetBSD/mips demand paged}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						if {[N belong 20 0 0 {} {} < 8192]} {
							>
								emit {shared library}
							<
						}
	







|





|
















|







69147
69148
69149
69150
69151
69152
69153
69154
69155
69156
69157
69158
69159
69160
69161
69162
69163
69164
69165
69166
69167
69168
69169
69170
69171
69172
69173
69174
69175
69176
69177
69178
69179
69180
69181
69182
69183
69184
				}
	
			<
		}
		9306376 {
			>
				emit {a.out NetBSD/mips pure}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		9306379 {
			>
				emit {a.out NetBSD/mips demand paged}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						if {[N belong 20 0 0 {} {} < 8192]} {
							>
								emit {shared library}
							<
						}
	
69182
69183
69184
69185
69186
69187
69188
69189
69190
69191
69192
69193
69194
69195
69196
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>







|







69193
69194
69195
69196
69197
69198
69199
69200
69201
69202
69203
69204
69205
69206
69207
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N belong 16 0 0 {} {} > 0]} {
					>
69216
69217
69218
69219
69220
69221
69222
69223
69224
69225
69226
69227
69228
69229
69230
69231
69232
69233
69234
69235
69236
				}
	
			<
		}
		9371911 {
			>
				emit {a.out NetBSD/arm32}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	







|





|







69227
69228
69229
69230
69231
69232
69233
69234
69235
69236
69237
69238
69239
69240
69241
69242
69243
69244
69245
69246
69247
				}
	
			<
		}
		9371911 {
			>
				emit {a.out NetBSD/arm32}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	
69256
69257
69258
69259
69260
69261
69262
69263
69264
69265
69266
69267
69268
69269
69270
69271
69272
69273
69274
69275
69276
69277
69278
69279
69280
69281
69282
69283
69284
69285
69286
69287
69288
69289
69290
69291
69292
69293
				}
	
			<
		}
		9371912 {
			>
				emit {a.out NetBSD/arm32 pure}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		9371915 {
			>
				emit {a.out NetBSD/arm32 demand paged}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						if {[N lelong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	







|





|
















|







69267
69268
69269
69270
69271
69272
69273
69274
69275
69276
69277
69278
69279
69280
69281
69282
69283
69284
69285
69286
69287
69288
69289
69290
69291
69292
69293
69294
69295
69296
69297
69298
69299
69300
69301
69302
69303
69304
				}
	
			<
		}
		9371912 {
			>
				emit {a.out NetBSD/arm32 pure}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		9371915 {
			>
				emit {a.out NetBSD/arm32 demand paged}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						if {[N lelong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	
69302
69303
69304
69305
69306
69307
69308
69309
69310
69311
69312
69313
69314
69315
69316
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>







|







69313
69314
69315
69316
69317
69318
69319
69320
69321
69322
69323
69324
69325
69326
69327
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
69347
69348
69349
69350
69351
69352
69353
69354
69355
69356
69357
69358
69359
69360
69361
69362
69363
69364
69365
69366
69367
				}
	
			<
		}
		9830663 {
			>
				emit {a.out NetBSD/vax 4k}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	







|





|







69358
69359
69360
69361
69362
69363
69364
69365
69366
69367
69368
69369
69370
69371
69372
69373
69374
69375
69376
69377
69378
				}
	
			<
		}
		9830663 {
			>
				emit {a.out NetBSD/vax 4k}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						if {[N byte 0 0 0 {} {} & 64]} {
							>
								emit {position independent}
							<
						}
	
69387
69388
69389
69390
69391
69392
69393
69394
69395
69396
69397
69398
69399
69400
69401
69402
69403
69404
69405
69406
69407
69408
69409
69410
69411
69412
69413
69414
69415
69416
69417
69418
69419
69420
69421
69422
69423
69424
				}
	
			<
		}
		9830664 {
			>
				emit {a.out NetBSD/vax 4k pure}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		9830667 {
			>
				emit {a.out NetBSD/vax 4k demand paged}
				if {[N byte 0 0 0 {} {} & 128]} {
					>
						if {[N lelong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	







|





|
















|







69398
69399
69400
69401
69402
69403
69404
69405
69406
69407
69408
69409
69410
69411
69412
69413
69414
69415
69416
69417
69418
69419
69420
69421
69422
69423
69424
69425
69426
69427
69428
69429
69430
69431
69432
69433
69434
69435
				}
	
			<
		}
		9830664 {
			>
				emit {a.out NetBSD/vax 4k pure}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						emit {dynamically linked executable}
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
						emit {not stripped}
					<
				}
	
			<
		}
		9830667 {
			>
				emit {a.out NetBSD/vax 4k demand paged}
				if {[N byte 0 0 0 {} {} & -128]} {
					>
						if {[N lelong 20 0 0 {} {} < 4096]} {
							>
								emit {shared library}
							<
						}
	
69433
69434
69435
69436
69437
69438
69439
69440
69441
69442
69443
69444
69445
69446
69447
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ 128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>







|







69444
69445
69446
69447
69448
69449
69450
69451
69452
69453
69454
69455
69456
69457
69458
								emit {dynamically linked executable}
							<
						}
	
					<
				}
	
				if {[N byte 0 0 0 {} {} ^ -128]} {
					>
						emit executable
					<
				}
	
				if {[N lelong 16 0 0 {} {} > 0]} {
					>
69642
69643
69644
69645
69646
69647
69648
69649
69650
69651
69652
69653
69654
69655
69656
				34340864 {
					>
						emit {\b, hp200/hp300 HP-UX}
					<
				}
			}
	
			switch [Nv belong 0 0 & 4227858432] {
				67108864 {
					>
						emit {\b, CPU}
					<
				}
				134217728 {
					>







|







69653
69654
69655
69656
69657
69658
69659
69660
69661
69662
69663
69664
69665
69666
69667
				34340864 {
					>
						emit {\b, hp200/hp300 HP-UX}
					<
				}
			}
	
			switch [Nv belong 0 0 & -67108864] {
				67108864 {
					>
						emit {\b, CPU}
					<
				}
				134217728 {
					>
70086
70087
70088
70089
70090
70091
70092
70093
70094
70095
70096
70097
70098
70099





70100
70101
70102
70103
70104
70105
70106
										<
									}
	
								<
							}
						}
	
						if {[N leshort 16 0 0 {} {} & 65280]} {
							>
								emit processor-specific,
							<
						}
	
						switch [Nv leshort 18 0 {} {}] {





							0 {
								>
									emit {no machine,}
								<
							}
							1 {
								>







|






>
>
>
>
>







70097
70098
70099
70100
70101
70102
70103
70104
70105
70106
70107
70108
70109
70110
70111
70112
70113
70114
70115
70116
70117
70118
70119
70120
70121
70122
										<
									}
	
								<
							}
						}
	
						if {[N leshort 16 0 0 {} {} & -256]} {
							>
								emit processor-specific,
							<
						}
	
						switch [Nv leshort 18 0 {} {}] {
							-28634 {
								>
									emit Alpha,
								<
							}
							0 {
								>
									emit {no machine,}
								<
							}
							1 {
								>
70178
70179
70180
70181
70182
70183
70184
70185
70186
70187
70188
70189
70190
70191
70192
70193
70194
70195
70196
								<
							}
							20 {
								>
									emit PowerPC,
								<
							}
							-28634 {
								>
									emit Alpha,
								<
							}
						}
	
						switch [Nv lelong 20 0 {} {}] {
							0 {
								>
									emit {invalid version}
								<







<
<
<
<
<







70194
70195
70196
70197
70198
70199
70200





70201
70202
70203
70204
70205
70206
70207
								<
							}
							20 {
								>
									emit PowerPC,
								<
							}





						}
	
						switch [Nv lelong 20 0 {} {}] {
							0 {
								>
									emit {invalid version}
								<
70249
70250
70251
70252
70253
70254
70255
70256
70257
70258
70259
70260
70261
70262





70263
70264
70265
70266
70267
70268
70269
										<
									}
	
								<
							}
						}
	
						if {[N beshort 16 0 0 {} {} & 65280]} {
							>
								emit processor-specific,
							<
						}
	
						switch [Nv beshort 18 0 {} {}] {





							0 {
								>
									emit {no machine,}
								<
							}
							1 {
								>







|






>
>
>
>
>







70260
70261
70262
70263
70264
70265
70266
70267
70268
70269
70270
70271
70272
70273
70274
70275
70276
70277
70278
70279
70280
70281
70282
70283
70284
70285
										<
									}
	
								<
							}
						}
	
						if {[N beshort 16 0 0 {} {} & -256]} {
							>
								emit processor-specific,
							<
						}
	
						switch [Nv beshort 18 0 {} {}] {
							-28634 {
								>
									emit Alpha,
								<
							}
							0 {
								>
									emit {no machine,}
								<
							}
							1 {
								>
70361
70362
70363
70364
70365
70366
70367
70368
70369
70370
70371
70372
70373
70374
70375
70376
70377
70378
70379
								<
							}
							36 {
								>
									emit {cisco 12000,}
								<
							}
							-28634 {
								>
									emit Alpha,
								<
							}
						}
	
						switch [Nv belong 20 0 {} {}] {
							0 {
								>
									emit {invalid version}
								<







<
<
<
<
<







70377
70378
70379
70380
70381
70382
70383





70384
70385
70386
70387
70388
70389
70390
								<
							}
							36 {
								>
									emit {cisco 12000,}
								<
							}





						}
	
						switch [Nv belong 20 0 {} {}] {
							0 {
								>
									emit {invalid version}
								<
70960
70961
70962
70963
70964
70965
70966
70967
70968
70969
70970
70971
70972
70973
70974
			}
	
		<
	}
	
	if {[S string 60 0 {} {} eq libr]} {
		>
			if {[N beshort 32 0 0 & 65470 == 0]} {
				>
					if {[S string 0 0 {} {} > \0]} {
						>
							emit {Palm OS dynamic library data "%s"}
						<
					}
	







|







70971
70972
70973
70974
70975
70976
70977
70978
70979
70980
70981
70982
70983
70984
70985
			}
	
		<
	}
	
	if {[S string 60 0 {} {} eq libr]} {
		>
			if {[N beshort 32 0 0 & -66 == 0]} {
				>
					if {[S string 0 0 {} {} > \0]} {
						>
							emit {Palm OS dynamic library data "%s"}
						<
					}
	
71001
71002
71003
71004
71005
71006
71007
71008
71009
71010
71011
71012
71013
71014
71015
	
		<
	}
	
	if {[N beshort 0 0 0 & 4095 == 2766]} {
		>
			emit PARIX
			switch [Nv byte 0 0 & 240] {
				-128 {
					>
						emit T800
					<
				}
				-112 {
					>







|







71012
71013
71014
71015
71016
71017
71018
71019
71020
71021
71022
71023
71024
71025
71026
	
		<
	}
	
	if {[N beshort 0 0 0 & 4095 == 2766]} {
		>
			emit PARIX
			switch [Nv byte 0 0 & -16] {
				-128 {
					>
						emit T800
					<
				}
				-112 {
					>
71789
71790
71791
71792
71793
71794
71795





71796
71797
71798
71799
71800
71801
71802
	
					if {[S clear 20 0 {} {} x {}]} {
						>
						<
					}
	
					switch [Nv byte 20 0 {} {}] {





						0 {
							>
								emit bitmap,
							<
						}
						1 {
							>







>
>
>
>
>







71800
71801
71802
71803
71804
71805
71806
71807
71808
71809
71810
71811
71812
71813
71814
71815
71816
71817
71818
	
					if {[S clear 20 0 {} {} x {}]} {
						>
						<
					}
	
					switch [Nv byte 20 0 {} {}] {
						-1 {
							>
								emit {unknown format,}
							<
						}
						0 {
							>
								emit bitmap,
							<
						}
						1 {
							>
71889
71890
71891
71892
71893
71894
71895
71896
71897
71898
71899
71900
71901
71902
71903
71904
71905
71906
71907
							<
						}
						20 {
							>
								emit {RGB color 16,}
							<
						}
						-1 {
							>
								emit {unknown format,}
							<
						}
					}
	
					if {[D 20]} {
						>
							emit format
							if {[N byte 20 0 0 {} {} x {}]} {
								>







<
<
<
<
<







71905
71906
71907
71908
71909
71910
71911





71912
71913
71914
71915
71916
71917
71918
							<
						}
						20 {
							>
								emit {RGB color 16,}
							<
						}





					}
	
					if {[D 20]} {
						>
							emit format
							if {[N byte 20 0 0 {} {} x {}]} {
								>
72031
72032
72033
72034
72035
72036
72037
72038
72039
72040
72041
72042
72043
72044
72045
			}
	
			if {[S string 12 0 {} {} eq \x03\xf9]} {
				>
				<
			}
	
			if {[N byte 142 0 0 {} {} == 210]} {
				>
					emit .
				<
			}
	
		<
	}







|







72042
72043
72044
72045
72046
72047
72048
72049
72050
72051
72052
72053
72054
72055
72056
			}
	
			if {[S string 12 0 {} {} eq \x03\xf9]} {
				>
				<
			}
	
			if {[N byte 142 0 0 {} {} == -46]} {
				>
					emit .
				<
			}
	
		<
	}
72108
72109
72110
72111
72112
72113
72114
72115
72116
72117
72118
72119
72120
72121
72122
			}
	
			if {[S string 13 0 {} {} eq \x07\xf9]} {
				>
				<
			}
	
			if {[N byte 271 0 0 {} {} == 210]} {
				>
					emit .
				<
			}
	
		<
	}







|







72119
72120
72121
72122
72123
72124
72125
72126
72127
72128
72129
72130
72131
72132
72133
			}
	
			if {[S string 13 0 {} {} eq \x07\xf9]} {
				>
				<
			}
	
			if {[N byte 271 0 0 {} {} == -46]} {
				>
					emit .
				<
			}
	
		<
	}
72185
72186
72187
72188
72189
72190
72191
72192
72193
72194
72195
72196
72197
72198
72199
			}
	
			if {[S string 13 0 {} {} eq \x0b\xf9]} {
				>
				<
			}
	
			if {[N byte 399 0 0 {} {} == 210]} {
				>
					emit .
				<
			}
	
		<
	}







|







72196
72197
72198
72199
72200
72201
72202
72203
72204
72205
72206
72207
72208
72209
72210
			}
	
			if {[S string 13 0 {} {} eq \x0b\xf9]} {
				>
				<
			}
	
			if {[N byte 399 0 0 {} {} == -46]} {
				>
					emit .
				<
			}
	
		<
	}
72262
72263
72264
72265
72266
72267
72268
72269
72270
72271
72272
72273
72274
72275
72276
			}
	
			if {[S string 13 0 {} {} eq \x0f\xf9]} {
				>
				<
			}
	
			if {[N byte 527 0 0 {} {} == 210]} {
				>
					emit .
				<
			}
	
		<
	}







|







72273
72274
72275
72276
72277
72278
72279
72280
72281
72282
72283
72284
72285
72286
72287
			}
	
			if {[S string 13 0 {} {} eq \x0f\xf9]} {
				>
				<
			}
	
			if {[N byte 527 0 0 {} {} == -46]} {
				>
					emit .
				<
			}
	
		<
	}
72339
72340
72341
72342
72343
72344
72345
72346
72347
72348
72349
72350
72351
72352
72353
			}
	
			if {[S string 13 0 {} {} eq \x1f\xf9]} {
				>
				<
			}
	
			if {[N byte 1039 0 0 {} {} == 210]} {
				>
					emit .
				<
			}
	
		<
	}







|







72350
72351
72352
72353
72354
72355
72356
72357
72358
72359
72360
72361
72362
72363
72364
			}
	
			if {[S string 13 0 {} {} eq \x1f\xf9]} {
				>
				<
			}
	
			if {[N byte 1039 0 0 {} {} == -46]} {
				>
					emit .
				<
			}
	
		<
	}
74914
74915
74916
74917
74918
74919
74920
74921
74922
74923
74924
74925
74926
74927
74928
					emit (V.%1.1s)
				<
			}
	
		<
	}
	
	if {[N belong 3 0 0 {} {} == 2219836710]} {
		>
			emit {PCP archive}
			if {[N byte 7 0 0 {} {} x {}]} {
				>
					emit (V.%d)
				<
			}







|







74925
74926
74927
74928
74929
74930
74931
74932
74933
74934
74935
74936
74937
74938
74939
					emit (V.%1.1s)
				<
			}
	
		<
	}
	
	if {[N belong 3 0 0 {} {} == -2075130586]} {
		>
			emit {PCP archive}
			if {[N byte 7 0 0 {} {} x {}]} {
				>
					emit (V.%d)
				<
			}
75743
75744
75745
75746
75747
75748
75749
75750
75751
75752
75753
75754
75755
75756
75757
	
		<
	}
	
	if {[S string 0 0 {} {} eq :)\n]} {
		>
			emit {Smile binary data}
			if {[N byte 3 0 0 & 240 x {}]} {
				>
					emit {version %d:}
				<
			}
	
			switch [Nv byte 3 0 & 4] {
				0 {







|







75754
75755
75756
75757
75758
75759
75760
75761
75762
75763
75764
75765
75766
75767
75768
	
		<
	}
	
	if {[S string 0 0 {} {} eq :)\n]} {
		>
			emit {Smile binary data}
			if {[N byte 3 0 0 & -16 x {}]} {
				>
					emit {version %d:}
				<
			}
	
			switch [Nv byte 3 0 & 4] {
				0 {
76757
76758
76759
76760
76761
76762
76763

76764
76765
76766
76767
76768
76769
76770
76771
	}
	
	if {[S string 0 0 {} {} eq PSDB\0]} {
		>
			emit {Panasonic channel list DataBase}
			if {[S string 126 0 {} {} eq SQLite\ format\ 3]} {
				>

					T [R -15]
	
				<
			}
	
			ext db/bin
		<
	}







>
|







76768
76769
76770
76771
76772
76773
76774
76775
76776
76777
76778
76779
76780
76781
76782
76783
	}
	
	if {[S string 0 0 {} {} eq PSDB\0]} {
		>
			emit {Panasonic channel list DataBase}
			if {[S string 126 0 {} {} eq SQLite\ format\ 3]} {
				>
					emit {\b; contains}
					T [R -15] {}
	
				<
			}
	
			ext db/bin
		<
	}
78201
78202
78203
78204
78205
78206
78207
78208
78209
78210
78211
78212
78213
78214
78215
				87 {
					>
						emit {Acoustic tech. lab.}
					<
				}
			}
	
			switch [Nv belong 1 0 & 4294967040] {
				29696 {
					>
						emit {Ta Horng}
					<
				}
				29952 {
					>







|







78213
78214
78215
78216
78217
78218
78219
78220
78221
78222
78223
78224
78225
78226
78227
				87 {
					>
						emit {Acoustic tech. lab.}
					<
				}
			}
	
			switch [Nv belong 1 0 & -256] {
				29696 {
					>
						emit {Ta Horng}
					<
				}
				29952 {
					>
80221
80222
80223
80224
80225
80226
80227










80228
80229
80230
80231
80232
80233
80234
80235
80236
80237
80238
80239
80240
80241
80242
80243
80244
80245
80246
80247
80248
80249
80250
80251
80252
80253
80254
			if {[S string 17 0 {} {} > /0]} {
				>
					emit {name: '%s',}
				<
			}
	
			switch [Nv byte 48 0 {} {}] {










				115 {
					>
						emit {device: TI-83+,}
					<
				}
				116 {
					>
						emit {device: TI-73,}
					<
				}
				-120 {
					>
						emit {device: TI-92+,}
					<
				}
				-104 {
					>
						emit {device: TI-89,}
					<
				}
			}
	
			switch [Nv byte 49 0 {} {}] {
				35 {
					>
						emit {type: OS upgrade,}
					<







>
>
>
>
>
>
>
>
>
>










<
<
<
<
<
<
<
<
<
<







80233
80234
80235
80236
80237
80238
80239
80240
80241
80242
80243
80244
80245
80246
80247
80248
80249
80250
80251
80252
80253
80254
80255
80256
80257
80258
80259










80260
80261
80262
80263
80264
80265
80266
			if {[S string 17 0 {} {} > /0]} {
				>
					emit {name: '%s',}
				<
			}
	
			switch [Nv byte 48 0 {} {}] {
				-120 {
					>
						emit {device: TI-92+,}
					<
				}
				-104 {
					>
						emit {device: TI-89,}
					<
				}
				115 {
					>
						emit {device: TI-83+,}
					<
				}
				116 {
					>
						emit {device: TI-73,}
					<
				}










			}
	
			switch [Nv byte 49 0 {} {}] {
				35 {
					>
						emit {type: OS upgrade,}
					<
82015
82016
82017
82018
82019
82020
82021
82022
82023
82024
82025
82026
82027
82028
82029
82030
82031
82032
82033
82034
82035
82036
82037
82038
82039
82040





82041
82042
82043
82044
82045
82046
82047
		<
	}
	
	if {[S string 0 0 {} {} eq \xCF\xAD\x12\xFE]} {
		>
			emit {MS Outlook Express DBX file}
			switch [Nv byte 4 0 {} {}] {
				48 {
					>
						emit {\b, offline database}
					<
				}
				-59 {
					>
						emit {\b, message database}
					<
				}
				-58 {
					>
						emit {\b, folder database}
					<
				}
				-57 {
					>
						emit {\b, account information}
					<





				}
			}
	
		<
	}
	
	if {[S string 0 0 {} {} eq PAGE]} {







<
<
<
<
<














>
>
>
>
>







82027
82028
82029
82030
82031
82032
82033





82034
82035
82036
82037
82038
82039
82040
82041
82042
82043
82044
82045
82046
82047
82048
82049
82050
82051
82052
82053
82054
82055
82056
82057
82058
82059
		<
	}
	
	if {[S string 0 0 {} {} eq \xCF\xAD\x12\xFE]} {
		>
			emit {MS Outlook Express DBX file}
			switch [Nv byte 4 0 {} {}] {





				-59 {
					>
						emit {\b, message database}
					<
				}
				-58 {
					>
						emit {\b, folder database}
					<
				}
				-57 {
					>
						emit {\b, account information}
					<
				}
				48 {
					>
						emit {\b, offline database}
					<
				}
			}
	
		<
	}
	
	if {[S string 0 0 {} {} eq PAGE]} {
82597
82598
82599
82600
82601
82602
82603
82604
82605
82606
82607
82608
82609
82610
82611
	
				<
			}
	
		<
	}
	
	if {[N leshort 0 0 0 & 65278 == 0]} {
		>
			if {[N ulelong 4 0 0 & 4244635136 == 0]} {
				>
					if {[N ulelong 68 0 0 {} {} > 87]} {
						>
							if {[N ubelong [I 68 ulelong 0 - 0 1] 0 0 & 4292920601 == 4194328]} {
								>







|







82609
82610
82611
82612
82613
82614
82615
82616
82617
82618
82619
82620
82621
82622
82623
	
				<
			}
	
		<
	}
	
	if {[N leshort 0 0 0 & -258 == 0]} {
		>
			if {[N ulelong 4 0 0 & 4244635136 == 0]} {
				>
					if {[N ulelong 68 0 0 {} {} > 87]} {
						>
							if {[N ubelong [I 68 ulelong 0 - 0 1] 0 0 & 4292920601 == 4194328]} {
								>
84447
84448
84449
84450
84451
84452
84453
84454





84455
84456
84457
84458
84459
84460
84461
84462
84463
84464
84465
84466
84467
84468
84469
84470
84471
	
			if {[N byte 5 0 0 {} {} x {}]} {
				>
					emit {version %d,}
				<
			}
	
			switch [Nv leshort 6 0 & 32768] {





				0 {
					>
						emit 6502,
					<
				}
				-32768 {
					>
						emit 65816,
					<
				}
			}
	
			switch [Nv leshort 6 0 & 8192] {
				0 {
					>
						emit {16 bit,}
					<







|
>
>
>
>
>





<
<
<
<
<







84459
84460
84461
84462
84463
84464
84465
84466
84467
84468
84469
84470
84471
84472
84473
84474
84475
84476





84477
84478
84479
84480
84481
84482
84483
	
			if {[N byte 5 0 0 {} {} x {}]} {
				>
					emit {version %d,}
				<
			}
	
			switch [Nv leshort 6 0 & -32768] {
				-32768 {
					>
						emit 65816,
					<
				}
				0 {
					>
						emit 6502,
					<
				}





			}
	
			switch [Nv leshort 6 0 & 8192] {
				0 {
					>
						emit {16 bit,}
					<
Changes to modules/fumagic/filetypes.test.
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82


test fumagic.filetype-1.5 {test elf executable} {
    set f [makeElfFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeElfFile
    list $res $msg
} {0 {{ELF 32-bit LSB executable, {*unknown arch 0x0*} (SYSV)} {application x-executable} {}}}


test fumagic.filetype-1.6 {test simple text} {
    set f [makeTextFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeTextFile
    list $res $msg







|







68
69
70
71
72
73
74
75
76
77
78
79
80
81
82


test fumagic.filetype-1.5 {test elf executable} {
    set f [makeElfFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeElfFile
    list $res $msg
} {0 {{ELF 32-bit LSB executable {*unknown arch 0x0*} SYSV} {application x-executable} {}}}


test fumagic.filetype-1.6 {test simple text} {
    set f [makeTextFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeTextFile
    list $res $msg
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192


test fumagic.filetype-1.12.0 {test binary graphic jpeg} {
    set f [makeJpegFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeJpegFile
    list $res $msg
} {0 {{{JPEG image data, JFIF standard 1.02, resolution (DPI), density 300x316, segment length 16}} {image jpeg} {jpeg jpg jpe jfif}}}


#the result should actually be 128x112, but current magic files indicate "byte" instead of "ubyte"
test fumagic.filetype-1.12.1 {test binary graphic jpeg} {
    set f [makeJpeg2File]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeJpeg2File
    list $res $msg
} {0 {{{JPEG image data, JFIF standard 1.02, resolution (DPI), density 300x316, segment length 16, thumbnail -128x112}} {image jpeg} {jpeg jpg jpe jfif}}}


test fumagic.filetype-1.13 {test binary graphic gif} {
    set f [makeGifFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeGifFile
    list $res $msg
} {0 {{{GIF image data, version 89a,} {43 x} 64} {image gif} {}}}


test fumagic.filetype-1.14 {test binary graphic png} {
    set f [makePngFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removePngFile
    list $res $msg
} {0 {{{PNG image data, 0 x} 0, 0-bit} {image png} {}}}


#{To do} {implement a "wild guess" mode}
#test fumagic.filetype-1.14.1 {test binary graphic png} {
#    set f [makePngFile]
#    set res [catch {fileutil::magic::filetype $f} msg]
#    removePngFile
#    list $res $msg
#} {0 {PNG image data, CORRUPTED, PNG image data, CORRUPTED}}


test fumagic.filetype-1.15 {test binary graphic tiff} {
    set f [makeTiffFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeTiffFile
    list $res $msg
} {0 {{{TIFF image data, big-endian, direntries=0}} {image tiff} {}}}


test fumagic.filetype-1.16 {test binary pdf} {
    set f [makePdfFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removePdfFile
    list $res $msg
} {0 {{{PDF document, version 1.2}} {application pdf} {}}}


test fumagic.filetype-1.17 {test text ps} {
    set f [makePSFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removePSFile
    list $res $msg







|








|







|







|
















|







|







128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192


test fumagic.filetype-1.12.0 {test binary graphic jpeg} {
    set f [makeJpegFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeJpegFile
    list $res $msg
} {0 {{{JPEG image data} {JFIF standard 1.02} {resolution DPI} {density 300x316} {segment length 16}} {image jpeg} {jpeg jpg jpe jfif}}}


#the result should actually be 128x112, but current magic files indicate "byte" instead of "ubyte"
test fumagic.filetype-1.12.1 {test binary graphic jpeg} {
    set f [makeJpeg2File]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeJpeg2File
    list $res $msg
} {0 {{{JPEG image data} {JFIF standard 1.02} {resolution DPI} {density 300x316} {segment length 16} {thumbnail -128x112}} {image jpeg} {jpeg jpg jpe jfif}}}


test fumagic.filetype-1.13 {test binary graphic gif} {
    set f [makeGifFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeGifFile
    list $res $msg
} {0 {{{GIF image data} {version 89a} {43 x} 64} {image gif} {}}}


test fumagic.filetype-1.14 {test binary graphic png} {
    set f [makePngFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removePngFile
    list $res $msg
} {0 {{{PNG image data} {0 x} 0 0-bit} {image png} {}}}


#{To do} {implement a "wild guess" mode}
#test fumagic.filetype-1.14.1 {test binary graphic png} {
#    set f [makePngFile]
#    set res [catch {fileutil::magic::filetype $f} msg]
#    removePngFile
#    list $res $msg
#} {0 {PNG image data, CORRUPTED, PNG image data, CORRUPTED}}


test fumagic.filetype-1.15 {test binary graphic tiff} {
    set f [makeTiffFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeTiffFile
    list $res $msg
} {0 {{{TIFF image data} big-endian direntries=0} {image tiff} {}}}


test fumagic.filetype-1.16 {test binary pdf} {
    set f [makePdfFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removePdfFile
    list $res $msg
} {0 {{{PDF document} {version 1.2}} {application pdf} {}}}


test fumagic.filetype-1.17 {test text ps} {
    set f [makePSFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removePSFile
    list $res $msg
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242


test fumagic.filetype-1.20 {test binary compressed bzip} {
    set f [makeBzipFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeBzipFile
    list $res $msg
} {0 {{{bzip2 compressed data, block size = 900k}} {application x-bzip2} {}}}


test fumagic.filetype-1.21 {test binary compressed gzip} {
    set f [makeGzipFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeGzipFile
    list $res $msg
} {0 {{{gzip compressed data, reserved method, ASCII, original size 16878367}} {application x-gzip} {}}}


test fumagic.filetype-1.22 {test pstring} {
    set f [makeWsdlFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeWsdlFile
    list $res $msg
} {0 {{{PHP WSDL cache,} {version 0x03, created 7, uri: "hello", source: "some source", target_ns: "and a target"}} {} {}}}
 

test fumagic.filetype-1.23 {regular expressions} {
    set f [makeCSourceFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeCSourceFile
    list $res $msg
} {0 {{{C source text}} {text x-c} {}}}








|







|







|
|
|







210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242


test fumagic.filetype-1.20 {test binary compressed bzip} {
    set f [makeBzipFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeBzipFile
    list $res $msg
} {0 {{{bzip2 compressed data} {block size = 900k}} {application x-bzip2} {}}}


test fumagic.filetype-1.21 {test binary compressed gzip} {
    set f [makeGzipFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeGzipFile
    list $res $msg
} {0 {{{gzip compressed data} {reserved method} ASCII {original size 0}} {application x-gzip} {}}}


test fumagic.filetype-1.22 {test pstring} {
    set f [makeWsdlFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeWsdlFile
    list $res $msg
} {0 {{{PHP WSDL cache} {version 0x03} {created 7} uri hello source {some source} target_ns {and a target}} {} {}}}

 
test fumagic.filetype-1.23 {regular expressions} {
    set f [makeCSourceFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removeCSourceFile
    list $res $msg
} {0 {{{C source text}} {text x-c} {}}}

253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
test fumagic.filetype-1.25 {
    tests negative relative offsets
} {
    set f [makePdf2File]
    set res [catch {fileutil::magic::filetype $f} msg]
    removePdf2File
    list $res $msg
} {0 {{{PDF document, version 1.3}} {application pdf} {}}}


test fumagic.filetype-1.25.1 {
    matches and strengths
} {
    set f [makePdf2File]








|







253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
test fumagic.filetype-1.25 {
    tests negative relative offsets
} {
    set f [makePdf2File]
    set res [catch {fileutil::magic::filetype $f} msg]
    removePdf2File
    list $res $msg
} {0 {{{PDF document} {version 1.3}} {application pdf} {}}}


test fumagic.filetype-1.25.1 {
    matches and strengths
} {
    set f [makePdf2File]

290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331










332
333
334

    removePdf2File
    return $matches
} [list \
    5.0  [
	list [
	    list [
		list {tar archive (V7), type} '\0' \
		    {%PDF-1.3, mode 5 , uid ndobj, gid  xref, size 870 00000 n, seconds  xref, linkname  xref, comment: }
	] {application x-tar} tar]
] \
    66.0 {{{{PDF document, version 1.3}} {application pdf} {}} {{{PDF document, version 1.3}} {application pdf} {}}}]


test fumagic.filetype-1.26 {
    Tests comparisons against the empty string when a file is malformed or
    missing data at specified offsets.
} {
    set f [makePeFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removePeFile
    list $res $msg
} {0 {{{MS-DOS executable}} {application x-dosexec} {}}}


test fumagic.filetype-1.27 {
    Tests indirect offsets, as well as the "default" test type. 
} {
    set f [makePe2File]
    set res [catch {fileutil::magic::filetype $f} msg]
    removePe2File
    list $res $msg
} {0 {{{PE32 executable} {Unknown PE signature} 0x10ba (GUI) {Intel 80386, for MS Windows}} {application x-dosexec} {}}}

if 0 {
	to do

	ebml and webm both have a belong at 440786851

		make sure this is handled correctly
}












testsuiteCleanup
return







|
|


|




















|









>
>
>
>
>
>
>
>
>
>



290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344

    removePdf2File
    return $matches
} [list \
    5.0  [
	list [
	    list [
		list {tar archive V7} type {} \
		    %PDF-1.3 {mode 5} {uid ndobj} {gid xref} {size 870 00000 n} {seconds xref} {linkname xref} comment
	] {application x-tar} tar]
] \
    66.0 {{{{PDF document} {version 1.3}} {application pdf} {}} {{{PDF document} {version 1.3}} {application pdf} {}}}]


test fumagic.filetype-1.26 {
    Tests comparisons against the empty string when a file is malformed or
    missing data at specified offsets.
} {
    set f [makePeFile]
    set res [catch {fileutil::magic::filetype $f} msg]
    removePeFile
    list $res $msg
} {0 {{{MS-DOS executable}} {application x-dosexec} {}}}


test fumagic.filetype-1.27 {
    Tests indirect offsets, as well as the "default" test type. 
} {
    set f [makePe2File]
    set res [catch {fileutil::magic::filetype $f} msg]
    removePe2File
    list $res $msg
} {0 {{{PE32 executable} {Unknown PE signature} 0x10ba GUI {Intel 80386} {for MS Windows}} {application x-dosexec} {}}}

if 0 {
	to do

	ebml and webm both have a belong at 440786851

		make sure this is handled correctly
}

test fumagic.filetype-1.28 {
    Tests the "indirect" type and typed interpretation of values to be AND'ed with
    a numeric value.
} {
    set f [makeMp3File]
    set res [catch {fileutil::magic::filetype $f} msg]
    removePeFile
    list $res $msg
} {0 {{{Audio file with ID3 version 2.3.0} contains {MPEG ADTS} {layer III} v1 {128 kbps} {44.1 kHz} JntStereo} {audio mpeg} {}}}


testsuiteCleanup
return
Changes to modules/fumagic/fumagic.testsupport.
36
37
38
39
40
41
42



43
44
45
46
47
48
49
	Bin    "\u0000" \
	Elf    [cat "\x7F" "ELF" "\x01\x01\x01\x00\x00" "\x00\x00\x00\x00\x00\x00\x00" "\x02\x00"] \
	Bzip   "BZh91AY&SY\x01\x01\x01\x00\x00" \
	Gzip   "\x1f\x8b\x01\x01\x01\x00\x00" \
	Jpeg   [cat "\xFF\xD8\xFF\xE0\x00\x10JFIF" "\x00\x01\x02\x01\x01\x2c\x01\x3c"] \
	Jpeg2   [cat "\xFF\xD8\xFF\xE0\x00\x10JFIF" "\x00\x01\x02\x01\x01\x2c\x01\x3c\x80\x70"] \
	Gif    "GIF89a\x2b\x00\x40\x00\xf7\xff\x00" \



	Png    "\x89PNG\x0D\x0A\x1A\x0A\x00\x00\x00\x0DIHDR" \
	PngMalformed "\x89PNG\x00\x01\x02\x01\x01\x2c" \
	Tiff   "MM\x00\*\x00\x01\x02\x01\x01\x2c" \
	Pdf    "%PDF-1.2 \x00\x01\x02\x01\x01\x2c" \
	Pdf2   {%PDF-1.3 %âãÏÓ
25 0 obj <<  /Linearized 1  /O 29  /H [ 1948 443 ]  /L 64573  /E 41907  /N 3  /T 63955  >>  endobj                                                           xref 25 67  0000000016 00000 n
0000001687 00000 n







>
>
>







36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
	Bin    "\u0000" \
	Elf    [cat "\x7F" "ELF" "\x01\x01\x01\x00\x00" "\x00\x00\x00\x00\x00\x00\x00" "\x02\x00"] \
	Bzip   "BZh91AY&SY\x01\x01\x01\x00\x00" \
	Gzip   "\x1f\x8b\x01\x01\x01\x00\x00" \
	Jpeg   [cat "\xFF\xD8\xFF\xE0\x00\x10JFIF" "\x00\x01\x02\x01\x01\x2c\x01\x3c"] \
	Jpeg2   [cat "\xFF\xD8\xFF\xE0\x00\x10JFIF" "\x00\x01\x02\x01\x01\x2c\x01\x3c\x80\x70"] \
	Gif    "GIF89a\x2b\x00\x40\x00\xf7\xff\x00" \
	Mp3    [binary format Hu* [join [string trim {
		    4944 3303 0000 0000 0000 fffb 9240
		}] {}]] \
	Png    "\x89PNG\x0D\x0A\x1A\x0A\x00\x00\x00\x0DIHDR" \
	PngMalformed "\x89PNG\x00\x01\x02\x01\x01\x2c" \
	Tiff   "MM\x00\*\x00\x01\x02\x01\x01\x2c" \
	Pdf    "%PDF-1.2 \x00\x01\x02\x01\x01\x2c" \
	Pdf2   {%PDF-1.3 %âãÏÓ
25 0 obj <<  /Linearized 1  /O 29  /H [ 1948 443 ]  /L 64573  /E 41907  /N 3  /T 63955  >>  endobj                                                           xref 25 67  0000000016 00000 n
0000001687 00000 n
Changes to modules/fumagic/pkgIndex.tcl.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if {![package vsatisfies [package provide Tcl] 8.6]} {return}

# Recognizers
package ifneeded fileutil::magic::filetype 2.0 [list source [file join $dir filetypes.tcl]]

# Runtime
package ifneeded fileutil::magic::rt 2.0 [list source [file join $dir rtcore.tcl]]

# Compiler packages
package ifneeded fileutil::magic::cgen   1.2.0 [list source [file join $dir cgen.tcl]]
package ifneeded fileutil::magic::cfront 1.2.0 [list source [file join $dir cfront.tcl]]









|


|
|



1
2
3
4
5
6
7
8
9
10
11
12
13
14
if {![package vsatisfies [package provide Tcl] 8.6]} {return}

# Recognizers
package ifneeded fileutil::magic::filetype 2.0 [list source [file join $dir filetypes.tcl]]

# Runtime
package ifneeded fileutil::magic::rt 3.0 [list source [file join $dir rtcore.tcl]]

# Compiler packages
package ifneeded fileutil::magic::cgen   1.3.0 [list source [file join $dir cgen.tcl]]
package ifneeded fileutil::magic::cfront 1.3.0 [list source [file join $dir cfront.tcl]]



Changes to modules/fumagic/rtcore.tcl.
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141

142
143
144
145
146

147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164

















165
166
167
168
169
170
171
    variable regexdefaultlen 4096

    # [*] The vast majority of magic strings are in the first 4k of the file.

    # Export APIs (full public, recognizer public)
    namespace export file_start result
    namespace export emit ext mime new offset strength \
	D Nv N O S Nvx Nx Sx L R I U < >
}




# ### ### ### ######### ######### #########
## Public API, general use.


proc ::fileutil::magic::rt::> {} {
    upvar #1 cursors cursors depth depth found found \
	level level lfound lfound offsets offsets strengths strengths \
	typematch typematch useful useful

    incr level
    incr depth
    set cursors($level) $cursors([expr {$level-1}])
    set strengths($level) 0
    set useful($level) 0

    set found 0
    dict set lfound $level 0
    return
}


proc ::fileutil::magic::rt::< {} {
    upvar #1 class class ext ext found found level level mime mime \
	result result strengths strengths typematch typematch useful useful

    if {$level == 1 && [llength $result]} {
	set leveln $level
	set weight 0
	while {$leveln >= 0} {
	    set weight [
		expr {$weight + $useful($leveln) + $strengths($leveln) + $typematch($leveln)}]
	    incr leveln -1
	}


















	yield [list $weight $result $mime $ext]
	set result {}
    }

    # $useful holds weight of the match at each level, Each weight is
    # basically length of the match.







|











|
|
>


|


>


















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
    variable regexdefaultlen 4096

    # [*] The vast majority of magic strings are in the first 4k of the file.

    # Export APIs (full public, recognizer public)
    namespace export file_start result
    namespace export emit ext mime new offset strength \
	D Nv N O S Nvx Nx Sx L R T I U < >
}




# ### ### ### ######### ######### #########
## Public API, general use.


proc ::fileutil::magic::rt::> {} {
    upvar #1 cursors cursors depth depth found found \
	level level lfound lfound strengths strengths \
	typematch typematch useful useful virtual virtual
    set prevlevel $level
    incr level
    incr depth
    set cursors($level) $cursors($prevlevel)
    set strengths($level) 0
    set useful($level) 0
    set virtual($level) $virtual($prevlevel)
    set found 0
    dict set lfound $level 0
    return
}


proc ::fileutil::magic::rt::< {} {
    upvar #1 class class ext ext found found level level mime mime \
	result result strengths strengths typematch typematch useful useful

    if {$level == 1 && [llength $result]} {
	set leveln $level
	set weight 0
	while {$leveln >= 0} {
	    set weight [
		expr {$weight + $useful($leveln) + $strengths($leveln) + $typematch($leveln)}]
	    incr leveln -1
	}

	foreach item $result[set result {}] {
	    set item [lmap {-> x ->} [regexp -all -inline \
		{(.+?)([[:punct:]][[:space:]]+|[:,+]*$)} $item[set item {}]] {

		regsub {"(.*)"} $x {\1} x
		regsub {'(.*)'} $x {\1} x
		regsub {\((.*)\)} $x {\1} x
		regsub {\{(.*)\}} $x {\1} x
		regsub {<(.*)>} $x {\1} x
		regsub {\[(.*)\]} $x {\1} x
		regsub {[[:space:]][[:space:]]+} $x { } x

		string trim $x
	    }]
	    lappend result {*}$item
	}

	yield [list $weight $result $mime $ext]
	set result {}
    }

    # $useful holds weight of the match at each level, Each weight is
    # basically length of the match.
262
263
264
265
266
267
268
269
270

271
272
273
274
275
276
277
278
279
    set mime {}
    set result {}	; # The accumulated recognition result that is
			; # in progress.

    array unset cursors	; # the offset just after the last matching bytes,
			; # per nesting level.

    set offsetstart 0	; # the offset for the offset.  Used to process
			; # "indirect" entries.


    array unset strengths ; #strengths at each level
    set strengths(0) 0
    set typematch(0) 0

    yield [info coroutine]
    if {[string length $strbuf] == 0} {
	yield [list 0 empty {} {}]
    } else {







|
|
>

<







281
282
283
284
285
286
287
288
289
290
291

292
293
294
295
296
297
298
    set mime {}
    set result {}	; # The accumulated recognition result that is
			; # in progress.

    array unset cursors	; # the offset just after the last matching bytes,
			; # per nesting level.

    array unset strengths ; #strengths at each level

    set virtual(0) 0	; # the virtual start of the file at each level


    set strengths(0) 0
    set typematch(0) 0

    yield [info coroutine]
    if {[string length $strbuf] == 0} {
	yield [list 0 empty {} {}]
    } else {
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
    upvar #1 found found
    expr {!$found}
}

proc ::fileutil::magic::rt::I {offset it ioi ioo iir io} {
    # Handling of base locations specified indirectly through the
    # contents of the inspected file.
    upvar #1 level level offsets offsets
    set offsets($level) $offset
    variable typemap
    foreach {size scan} $typemap($it) break

    set offset [Fetch $offset $size $scan]

    if {[catch {expr {$offset + 0}}]} {
	return [expr {-1 * 2 ** 128}]







|
<







385
386
387
388
389
390
391
392

393
394
395
396
397
398
399
    upvar #1 found found
    expr {!$found}
}

proc ::fileutil::magic::rt::I {offset it ioi ioo iir io} {
    # Handling of base locations specified indirectly through the
    # contents of the inspected file.
    upvar #1 level level

    variable typemap
    foreach {size scan} $typemap($it) break

    set offset [Fetch $offset $size $scan]

    if {[catch {expr {$offset + 0}}]} {
	return [expr {-1 * 2 ** 128}]
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
	set useful($level) 0
	# anything matches - don't care
	if {$testinvert} {
	    return 0
	} else {
	    return 1
	}
    }

    if {[string match $scan *me]} {
	set data [me4 $data]
	set scan I 
    }

    switch $scan {
	default {
	    # get value in binary form, then back to numeric
	    # this avoids problems with sign, as both values are
	    # [binary scan]-converted identically (see [treegen1])
	    binary scan [binary format $scan $val] $scan val
	}
    }

    if {$compinvert && $extracted ne {}} {
	set extracted [expr -$extracted]
    }

    # perform comparison







<
<
<
<
<
<
<
<
<
<
<
<
<
<







460
461
462
463
464
465
466














467
468
469
470
471
472
473
	set useful($level) 0
	# anything matches - don't care
	if {$testinvert} {
	    return 0
	} else {
	    return 1
	}














    }

    if {$compinvert && $extracted ne {}} {
	set extracted [expr -$extracted]
    }

    # perform comparison
768
769
770
771
772
773
774
775



776

777
778

779
780
781
782
783
784
785
786
787
788

789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804

805
806
807

808
809
810
811
812
813
814
815
816
    # use the extracted value here, not val, because in the case of
    # inequalities the extra information has weight
    set useful($level) [string length $string]
    return $res
}


proc ::fileutil::magic::rt::T {val op string mod} {



    upvar #1 offsetstart offsetstart

    set saved $offsetstart
    >

    {*}$tests
    <
    set offsetstart $saved
}


proc ::fileutil::magic::rt::U {file name offset} {
    upvar #1 level level named named offsets offsets
    set offsets($level) $offset
    set script [use $named $file $name]

    >
    ::try $script
    <
}



# ### ### ### ######### ######### #########
## Internal. Retrieval of the data used in comparisons.


# fetch and cache a numeric value from the file
proc ::fileutil::magic::rt::Fetch {where what scan} {
    upvar #1 cache cache chan chan cursors cursors extracted extracted \
	level level offsets offsets strbuf strbuf


    set offsets($level) $where 

    # Avoid [seek] errors

    if {$where < 0} {
	set where 0
    }
    # {to do} id3 length
    if {[info exists cache($where,$what,$scan)]} {
	lassign $cache($where,$what,$scan) extracted cursor
    } else {
	::seek $chan $where
	set data [::read $chan $what]







|
>
>
>
|
>
|

>
|

<





<

>

|












|

>


<
>

|







772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789

790
791
792
793
794

795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815

816
817
818
819
820
821
822
823
824
825
    # use the extracted value here, not val, because in the case of
    # inequalities the extra information has weight
    set useful($level) [string length $string]
    return $res
}


proc ::fileutil::magic::rt::T {offset mod} {
    upvar #1 cursors cursors level level offsets offsets tests tests \
	virtual virtual
    if {{r} in $mod} {
	set offset [expr {$cursors($level) + $offset}]
    }
    set newvirtual [expr {$virtual($level) + $offset}]
    >
	set virtual($level) $newvirtual
	{*}$tests
    <

}


proc ::fileutil::magic::rt::U {file name offset} {
    upvar #1 level level named named offsets offsets

    set script [use $named $file $name]
    set offsets($level) $offset
    >
	::try $script
    <
}



# ### ### ### ######### ######### #########
## Internal. Retrieval of the data used in comparisons.


# fetch and cache a numeric value from the file
proc ::fileutil::magic::rt::Fetch {where what scan} {
    upvar #1 cache cache chan chan cursors cursors extracted extracted \
	level level offsets offsets strbuf strbuf virtual virtual

    set where [expr {$virtual($level) + $where}]
    set offsets($level) $where 


    # A negative offset means that an attempt to extract an indirect offset failed
    if {$where < 0} {
	return {}
    }
    # {to do} id3 length
    if {[info exists cache($where,$what,$scan)]} {
	lassign $cache($where,$what,$scan) extracted cursor
    } else {
	::seek $chan $where
	set data [::read $chan $what]
825
826
827
828
829
830
831
832

833
834
835

836
837
838

839








840
841
842
843


844








845
846
847
848
849
850
851
    }
    set cursors($level) $cursor 
    return $extracted
}


proc ::fileutil::magic::rt::GetString {offset len} {
    upvar #1 chan chan level level strbuf strbuf offsets offsets

    # We have the first 1k of the file cached

    set offsets($level) $offset

    set end [expr {$offset + $len - 1}]
    if {$end < [string length $strbuf]} {
        # in the string cache, copy the requested part.

        set string [::string range $strbuf $offset $end]








    } else {
	# an unusual one, move to the offset and read directly from
	# the file.
	::seek $chan $offset


	set string [::read $chan $len]








    }
    return $string
}


proc ::fileutil::magic::rt::me4 data {
	binary scan $data a4 chars







|
>



>



>
|
>
>
>
>
>
>
>
>




>
>
|
>
>
>
>
>
>
>
>







834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
    }
    set cursors($level) $cursor 
    return $extracted
}


proc ::fileutil::magic::rt::GetString {offset len} {
    upvar #1 chan chan level level strbuf strbuf offsets offsets \
	virtual virtual
    # We have the first 1k of the file cached

    set offsets($level) $offset
    set offset [expr {$virtual($level) + $offset}]
    set end [expr {$offset + $len - 1}]
    if {$end < [string length $strbuf]} {
        # in the string cache, copy the requested part.
	try {
	    set string [::string range $strbuf $offset $end]
	} on error {tres topts} {
	    lassign [dict get $topts -errorcode] TCL VALUE INDEX
	    if {$TCL eq {TCL} && $VALUE eq {VALUE} && $INDEX eq {INDEX}} {
		set string {}
	    } else {
		return -options $topts $tres
	    }
	}
    } else {
	# an unusual one, move to the offset and read directly from
	# the file.
	::seek $chan $offset
	try {
	    # maybe offset is out of bounds
	    set string [::read $chan $len]
	} on error {tres topts} {
	    lassign [dict get $topts -errorcode] TCL VALUE INDEX
	    if {$TCL eq {TCL} && $VALUE eq {VALUE} && $INDEX eq {INDEX}} {
		set string {}
	    } else {
		return -options $topts $tres
	    }
	}
    }
    return $string
}


proc ::fileutil::magic::rt::me4 data {
	binary scan $data a4 chars
970
971
972
973
974
975
976
977
978
979
::fileutil::magic::rt::Init



# ### ### ### ######### ######### #########
## Ready for use.

package provide fileutil::magic::rt 2.0

# EOF







|


1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
::fileutil::magic::rt::Init



# ### ### ### ######### ######### #########
## Ready for use.

package provide fileutil::magic::rt 3.0

# EOF