AMC13
Firmwares for the different applications of the AMC13 uTCA board made at Boston University
Main Page
Design Unit List
Files
File List
All
Classes
Variables
src
common
AMC_if
EthernetCRCD64.vhd
1
--------------------------------------------------------------------------------
2
-- Copyright (C) 1999-2008 Easics NV.
3
-- This source
file
may be used
and
distributed without restriction
4
-- provided that this copyright statement
is
not
removed from the
file
5
--
and
that any derivative work contains the original copyright notice
6
--
and
the associated disclaimer.
7
--
8
-- THIS SOURCE
FILE
IS
PROVIDED "AS IS"
AND
WITHOUT ANY EXPRESS
9
--
OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
10
-- WARRANTIES
OF
MERCHANTIBILITY
AND
FITNESS
FOR
A PARTICULAR PURPOSE.
11
--
12
-- Purpose : synthesizable CRC
function
13
-- * polynomial: (
0
1
2
4
5
7
8
10
11
12
16
22
23
26
32
)
14
-- * data width:
8
15
--
16
-- Info : tools@easics.be
17
-- http://www.easics.com
18
--------------------------------------------------------------------------------
19
----------------------------------------------------------------------------------
20
-- Company:
21
-- Engineer:
22
--
23
-- Create Date:
13
:
20
:
34
12/01/2011
24
-- Design Name:
25
-- Module Name: EthernetCRC - Behavioral
26
-- Project Name:
27
-- Target Devices:
28
-- Tool versions:
29
-- !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER
30
-- This module
is
provided only as an example, no correctness
or
any usefullness
is
implied.
31
--
Use
of
it
is
at users' own risk.
32
-- Do
not
remove this disclaimer.
33
-- !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER
34
-- Description: Ethernet CRC calculation, derived from PCK_CRC32_D8 generated using easics.com tools
35
--
36
-- Dependencies:
37
--
38
-- Revision:
39
-- Revision
0
.
01
-
File
Created
40
-- Additional Comments:
41
--
42
----------------------------------------------------------------------------------
43
library
IEEE
;
44
use
IEEE.STD_LOGIC_1164.
ALL
;
45
46
-- Uncomment the following
library
declaration
if
using
47
-- arithmetic functions
with
Signed
or
Unsigned
values
48
--use IEEE.NUMERIC_STD.
ALL
;
49
50
-- Uncomment the following
library
declaration
if
instantiating
51
-- any Xilinx primitives
in
this code.
52
--library UNISIM;
53
--use UNISIM.VComponents.
all
;
54
55
entity
EthernetCRCD64
is
56
Port
(
clk
:
in
STD_LOGIC
;
57
init
:
in
STD_LOGIC
;
58
init_crc
:
in
STD_LOGIC_VECTOR
(
31
downto
0
)
;
59
ce
:
in
STD_LOGIC
;
60
trailer
:
in
STD_LOGIC
;
61
d
:
in
STD_LOGIC_VECTOR
(
63
downto
0
)
;
62
crc
:
out
STD_LOGIC_VECTOR
(
31
downto
0
)
;
63
bad_crc
:
out
STD_LOGIC
64
)
;
65
end
EthernetCRCD64
;
66
67
architecture
Behavioral
of
EthernetCRCD64
is
68
constant
crc_R
:
std_logic_vector
(
31
downto
0
)
:=
x
"c704dd7b"
;
69
signal
c
:
std_logic_vector
(
31
downto
0
)
:=
(
others
=
>
'
0
'
)
;
70
signal
di
:
std_logic_vector
(
63
downto
0
)
:=
(
others
=
>
'
0
'
)
;
71
begin
72
process
(c,d)
73
begin
74
for
i
in
0
to
31
loop
75
crc
(
i
)
<=
not
c
(
31-
i
)
;
76
end
loop
;
77
for
i
in
0
to
63
loop
78
di
(
i
)
<=
d
(
63-
i
)
;
79
end
loop
;
80
end
process
;
81
bad_crc
<=
'
0
'
when
c
=
crc_R
else
'
1
'
;
82
process
(clk)
83
begin
84
if
(
clk
'
event
and
clk
=
'
1
'
)
then
85
if
(
init
=
'
1
'
)
then
86
c
<=
init_crc
;
87
elsif
(
ce
=
'
1
'
)
then
88
if
(
trailer
=
'
0
'
)
then
89
c
(
0
)
<=
di
(
63
)
xor
di
(
61
)
xor
di
(
60
)
xor
di
(
58
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
53
)
xor
di
(
50
)
xor
di
(
48
)
xor
di
(
47
)
xor
90
di
(
45
)
xor
di
(
44
)
xor
di
(
37
)
xor
di
(
34
)
xor
di
(
32
)
xor
91
di
(
31
)
xor
di
(
30
)
xor
di
(
29
)
xor
di
(
28
)
xor
di
(
26
)
xor
di
(
25
)
xor
di
(
24
)
xor
di
(
16
)
xor
di
(
12
)
xor
di
(
10
)
xor
di
(
9
)
xor
di
(
6
)
xor
di
(
0
)
xor
c
(
0
)
xor
c
(
2
)
xor
c
(
5
)
xor
c
(
12
)
xor
c
(
13
)
xor
c
(
15
)
xor
c
(
16
)
xor
c
(
18
)
xor
c
(
21
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
26
)
xor
c
(
28
)
xor
c
(
29
)
xor
c
(
31
)
;
92
c
(
1
)
<=
di
(
63
)
xor
di
(
62
)
xor
di
(
60
)
xor
di
(
59
)
xor
di
(
58
)
xor
di
(
56
)
xor
di
(
53
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
49
)
xor
93
di
(
47
)
xor
di
(
46
)
xor
di
(
44
)
xor
di
(
38
)
xor
di
(
37
)
xor
di
(
35
)
xor
di
(
34
)
xor
di
(
33
)
xor
94
di
(
28
)
xor
di
(
27
)
xor
di
(
24
)
xor
di
(
17
)
xor
di
(
16
)
xor
di
(
13
)
xor
di
(
12
)
xor
di
(
11
)
xor
di
(
9
)
xor
di
(
7
)
xor
di
(
6
)
xor
di
(
1
)
xor
di
(
0
)
xor
c
(
1
)
xor
c
(
2
)
xor
c
(
3
)
xor
c
(
5
)
xor
c
(
6
)
xor
c
(
12
)
xor
c
(
14
)
xor
c
(
15
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
21
)
xor
c
(
24
)
xor
c
(
26
)
xor
c
(
27
)
xor
c
(
28
)
xor
c
(
30
)
xor
c
(
31
)
;
95
c
(
2
)
<=
di
(
59
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
55
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
44
)
xor
di
(
39
)
xor
di
(
38
)
xor
96
di
(
37
)
xor
di
(
36
)
xor
di
(
35
)
xor
di
(
32
)
xor
97
di
(
31
)
xor
di
(
30
)
xor
di
(
26
)
xor
di
(
24
)
xor
di
(
18
)
xor
di
(
17
)
xor
di
(
16
)
xor
di
(
14
)
xor
di
(
13
)
xor
di
(
9
)
xor
di
(
8
)
xor
di
(
7
)
xor
di
(
6
)
xor
di
(
2
)
xor
di
(
1
)
xor
di
(
0
)
xor
c
(
0
)
xor
c
(
3
)
xor
c
(
4
)
xor
c
(
5
)
xor
c
(
6
)
xor
c
(
7
)
xor
c
(
12
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
23
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
27
)
;
98
c
(
3
)
<=
di
(
60
)
xor
di
(
59
)
xor
di
(
58
)
xor
di
(
56
)
xor
di
(
54
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
45
)
xor
di
(
40
)
xor
di
(
39
)
xor
99
di
(
38
)
xor
di
(
37
)
xor
di
(
36
)
xor
di
(
33
)
xor
di
(
32
)
xor
100
di
(
31
)
xor
di
(
27
)
xor
di
(
25
)
xor
di
(
19
)
xor
di
(
18
)
xor
di
(
17
)
xor
di
(
15
)
xor
di
(
14
)
xor
di
(
10
)
xor
di
(
9
)
xor
di
(
8
)
xor
di
(
7
)
xor
di
(
3
)
xor
di
(
2
)
xor
di
(
1
)
xor
c
(
0
)
xor
c
(
1
)
xor
c
(
4
)
xor
c
(
5
)
xor
c
(
6
)
xor
c
(
7
)
xor
c
(
8
)
xor
c
(
13
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
22
)
xor
c
(
24
)
xor
c
(
26
)
xor
c
(
27
)
xor
c
(
28
)
;
101
c
(
4
)
<=
di
(
63
)
xor
di
(
59
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
50
)
xor
di
(
48
)
xor
di
(
47
)
xor
di
(
46
)
xor
di
(
45
)
xor
di
(
44
)
xor
102
di
(
41
)
xor
di
(
40
)
xor
di
(
39
)
xor
di
(
38
)
xor
di
(
33
)
xor
103
di
(
31
)
xor
di
(
30
)
xor
di
(
29
)
xor
di
(
25
)
xor
di
(
24
)
xor
di
(
20
)
xor
di
(
19
)
xor
di
(
18
)
xor
di
(
15
)
xor
di
(
12
)
xor
di
(
11
)
xor
di
(
8
)
xor
di
(
6
)
xor
di
(
4
)
xor
di
(
3
)
xor
di
(
2
)
xor
di
(
0
)
xor
c
(
1
)
xor
c
(
6
)
xor
c
(
7
)
xor
c
(
8
)
xor
c
(
9
)
xor
c
(
12
)
xor
c
(
13
)
xor
c
(
14
)
xor
c
(
15
)
xor
c
(
16
)
xor
c
(
18
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
27
)
xor
c
(
31
)
;
104
c
(
5
)
<=
di
(
63
)
xor
di
(
61
)
xor
di
(
59
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
53
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
49
)
xor
di
(
46
)
xor
105
di
(
44
)
xor
di
(
42
)
xor
di
(
41
)
xor
di
(
40
)
xor
di
(
39
)
xor
di
(
37
)
xor
106
di
(
29
)
xor
di
(
28
)
xor
di
(
24
)
xor
di
(
21
)
xor
di
(
20
)
xor
di
(
19
)
xor
di
(
13
)
xor
di
(
10
)
xor
di
(
7
)
xor
di
(
6
)
xor
di
(
5
)
xor
di
(
4
)
xor
di
(
3
)
xor
di
(
1
)
xor
di
(
0
)
xor
c
(
5
)
xor
c
(
7
)
xor
c
(
8
)
xor
c
(
9
)
xor
c
(
10
)
xor
c
(
12
)
xor
c
(
14
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
21
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
27
)
xor
c
(
29
)
xor
c
(
31
)
;
107
c
(
6
)
<=
di
(
62
)
xor
di
(
60
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
47
)
xor
di
(
45
)
xor
108
di
(
43
)
xor
di
(
42
)
xor
di
(
41
)
xor
di
(
40
)
xor
di
(
38
)
xor
109
di
(
30
)
xor
di
(
29
)
xor
di
(
25
)
xor
di
(
22
)
xor
di
(
21
)
xor
di
(
20
)
xor
di
(
14
)
xor
di
(
11
)
xor
di
(
8
)
xor
di
(
7
)
xor
di
(
6
)
xor
di
(
5
)
xor
di
(
4
)
xor
di
(
2
)
xor
di
(
1
)
xor
c
(
6
)
xor
c
(
8
)
xor
c
(
9
)
xor
c
(
10
)
xor
c
(
11
)
xor
c
(
13
)
xor
c
(
15
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
28
)
xor
c
(
30
)
;
110
c
(
7
)
<=
di
(
60
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
54
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
47
)
xor
di
(
46
)
xor
111
di
(
45
)
xor
di
(
43
)
xor
di
(
42
)
xor
di
(
41
)
xor
di
(
39
)
xor
di
(
37
)
xor
di
(
34
)
xor
di
(
32
)
xor
112
di
(
29
)
xor
di
(
28
)
xor
di
(
25
)
xor
di
(
24
)
xor
di
(
23
)
xor
di
(
22
)
xor
di
(
21
)
xor
di
(
16
)
xor
di
(
15
)
xor
di
(
10
)
xor
di
(
8
)
xor
di
(
7
)
xor
di
(
5
)
xor
di
(
3
)
xor
di
(
2
)
xor
di
(
0
)
xor
c
(
0
)
xor
c
(
2
)
xor
c
(
5
)
xor
c
(
7
)
xor
c
(
9
)
xor
c
(
10
)
xor
c
(
11
)
xor
c
(
13
)
xor
c
(
14
)
xor
c
(
15
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
22
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
28
)
;
113
c
(
8
)
<=
di
(
63
)
xor
di
(
60
)
xor
di
(
59
)
xor
di
(
57
)
xor
di
(
54
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
46
)
xor
di
(
45
)
xor
114
di
(
43
)
xor
di
(
42
)
xor
di
(
40
)
xor
di
(
38
)
xor
di
(
37
)
xor
di
(
35
)
xor
di
(
34
)
xor
di
(
33
)
xor
di
(
32
)
xor
115
di
(
31
)
xor
di
(
28
)
xor
di
(
23
)
xor
di
(
22
)
xor
di
(
17
)
xor
di
(
12
)
xor
di
(
11
)
xor
di
(
10
)
xor
di
(
8
)
xor
di
(
4
)
xor
di
(
3
)
xor
di
(
1
)
xor
di
(
0
)
xor
c
(
0
)
xor
c
(
1
)
xor
c
(
2
)
xor
c
(
3
)
xor
c
(
5
)
xor
c
(
6
)
xor
c
(
8
)
xor
c
(
10
)
xor
c
(
11
)
xor
c
(
13
)
xor
c
(
14
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
22
)
xor
c
(
25
)
xor
c
(
27
)
xor
c
(
28
)
xor
c
(
31
)
;
116
c
(
9
)
<=
di
(
61
)
xor
di
(
60
)
xor
di
(
58
)
xor
di
(
55
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
47
)
xor
di
(
46
)
xor
di
(
44
)
xor
117
di
(
43
)
xor
di
(
41
)
xor
di
(
39
)
xor
di
(
38
)
xor
di
(
36
)
xor
di
(
35
)
xor
di
(
34
)
xor
di
(
33
)
xor
di
(
32
)
xor
118
di
(
29
)
xor
di
(
24
)
xor
di
(
23
)
xor
di
(
18
)
xor
di
(
13
)
xor
di
(
12
)
xor
di
(
11
)
xor
di
(
9
)
xor
di
(
5
)
xor
di
(
4
)
xor
di
(
2
)
xor
di
(
1
)
xor
c
(
0
)
xor
c
(
1
)
xor
c
(
2
)
xor
c
(
3
)
xor
c
(
4
)
xor
c
(
6
)
xor
c
(
7
)
xor
c
(
9
)
xor
c
(
11
)
xor
c
(
12
)
xor
c
(
14
)
xor
c
(
15
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
23
)
xor
c
(
26
)
xor
c
(
28
)
xor
c
(
29
)
;
119
c
(
10
)
<=
di
(
63
)
xor
di
(
62
)
xor
di
(
60
)
xor
di
(
59
)
xor
di
(
58
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
52
)
xor
di
(
50
)
xor
di
(
42
)
xor
120
di
(
40
)
xor
di
(
39
)
xor
di
(
36
)
xor
di
(
35
)
xor
di
(
33
)
xor
di
(
32
)
xor
121
di
(
31
)
xor
di
(
29
)
xor
di
(
28
)
xor
di
(
26
)
xor
di
(
19
)
xor
di
(
16
)
xor
di
(
14
)
xor
di
(
13
)
xor
di
(
9
)
xor
di
(
5
)
xor
di
(
3
)
xor
di
(
2
)
xor
di
(
0
)
xor
c
(
0
)
xor
c
(
1
)
xor
c
(
3
)
xor
c
(
4
)
xor
c
(
7
)
xor
c
(
8
)
xor
c
(
10
)
xor
c
(
18
)
xor
c
(
20
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
26
)
xor
c
(
27
)
xor
c
(
28
)
xor
c
(
30
)
xor
c
(
31
)
;
122
c
(
11
)
<=
di
(
59
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
48
)
xor
di
(
47
)
xor
123
di
(
45
)
xor
di
(
44
)
xor
di
(
43
)
xor
di
(
41
)
xor
di
(
40
)
xor
di
(
36
)
xor
di
(
33
)
xor
124
di
(
31
)
xor
di
(
28
)
xor
di
(
27
)
xor
di
(
26
)
xor
di
(
25
)
xor
di
(
24
)
xor
di
(
20
)
xor
di
(
17
)
xor
di
(
16
)
xor
di
(
15
)
xor
di
(
14
)
xor
di
(
12
)
xor
di
(
9
)
xor
di
(
4
)
xor
di
(
3
)
xor
di
(
1
)
xor
di
(
0
)
xor
c
(
1
)
xor
c
(
4
)
xor
c
(
8
)
xor
c
(
9
)
xor
c
(
11
)
xor
c
(
12
)
xor
c
(
13
)
xor
c
(
15
)
xor
c
(
16
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
27
)
;
125
c
(
12
)
<=
di
(
63
)
xor
di
(
61
)
xor
di
(
59
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
54
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
50
)
xor
126
di
(
49
)
xor
di
(
47
)
xor
di
(
46
)
xor
di
(
42
)
xor
di
(
41
)
xor
127
di
(
31
)
xor
di
(
30
)
xor
di
(
27
)
xor
di
(
24
)
xor
di
(
21
)
xor
di
(
18
)
xor
di
(
17
)
xor
di
(
15
)
xor
di
(
13
)
xor
di
(
12
)
xor
di
(
9
)
xor
di
(
6
)
xor
di
(
5
)
xor
di
(
4
)
xor
di
(
2
)
xor
di
(
1
)
xor
di
(
0
)
xor
c
(
9
)
xor
c
(
10
)
xor
c
(
14
)
xor
c
(
15
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
22
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
27
)
xor
c
(
29
)
xor
c
(
31
)
;
128
c
(
13
)
<=
di
(
62
)
xor
di
(
60
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
50
)
xor
129
di
(
48
)
xor
di
(
47
)
xor
di
(
43
)
xor
di
(
42
)
xor
di
(
32
)
xor
130
di
(
31
)
xor
di
(
28
)
xor
di
(
25
)
xor
di
(
22
)
xor
di
(
19
)
xor
di
(
18
)
xor
di
(
16
)
xor
di
(
14
)
xor
di
(
13
)
xor
di
(
10
)
xor
di
(
7
)
xor
di
(
6
)
xor
di
(
5
)
xor
di
(
3
)
xor
di
(
2
)
xor
di
(
1
)
xor
c
(
0
)
xor
c
(
10
)
xor
c
(
11
)
xor
c
(
15
)
xor
c
(
16
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
28
)
xor
c
(
30
)
;
131
c
(
14
)
<=
di
(
63
)
xor
di
(
61
)
xor
di
(
59
)
xor
di
(
58
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
51
)
xor
132
di
(
49
)
xor
di
(
48
)
xor
di
(
44
)
xor
di
(
43
)
xor
di
(
33
)
xor
di
(
32
)
xor
133
di
(
29
)
xor
di
(
26
)
xor
di
(
23
)
xor
di
(
20
)
xor
di
(
19
)
xor
di
(
17
)
xor
di
(
15
)
xor
di
(
14
)
xor
di
(
11
)
xor
di
(
8
)
xor
di
(
7
)
xor
di
(
6
)
xor
di
(
4
)
xor
di
(
3
)
xor
di
(
2
)
xor
c
(
0
)
xor
c
(
1
)
xor
c
(
11
)
xor
c
(
12
)
xor
c
(
16
)
xor
c
(
17
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
26
)
xor
c
(
27
)
xor
c
(
29
)
xor
c
(
31
)
;
134
c
(
15
)
<=
di
(
62
)
xor
di
(
60
)
xor
di
(
59
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
50
)
xor
135
di
(
49
)
xor
di
(
45
)
xor
di
(
44
)
xor
di
(
34
)
xor
di
(
33
)
xor
136
di
(
30
)
xor
di
(
27
)
xor
di
(
24
)
xor
di
(
21
)
xor
di
(
20
)
xor
di
(
18
)
xor
di
(
16
)
xor
di
(
15
)
xor
di
(
12
)
xor
di
(
9
)
xor
di
(
8
)
xor
di
(
7
)
xor
di
(
5
)
xor
di
(
4
)
xor
di
(
3
)
xor
c
(
1
)
xor
c
(
2
)
xor
c
(
12
)
xor
c
(
13
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
27
)
xor
c
(
28
)
xor
c
(
30
)
;
137
c
(
16
)
<=
di
(
57
)
xor
di
(
56
)
xor
di
(
51
)
xor
di
(
48
)
xor
di
(
47
)
xor
di
(
46
)
xor
di
(
44
)
xor
di
(
37
)
xor
di
(
35
)
xor
di
(
32
)
xor
138
di
(
30
)
xor
di
(
29
)
xor
di
(
26
)
xor
di
(
24
)
xor
di
(
22
)
xor
di
(
21
)
xor
di
(
19
)
xor
di
(
17
)
xor
di
(
13
)
xor
di
(
12
)
xor
di
(
8
)
xor
di
(
5
)
xor
di
(
4
)
xor
di
(
0
)
xor
c
(
0
)
xor
c
(
3
)
xor
c
(
5
)
xor
c
(
12
)
xor
c
(
14
)
xor
c
(
15
)
xor
c
(
16
)
xor
c
(
19
)
xor
c
(
24
)
xor
c
(
25
)
;
139
c
(
17
)
<=
di
(
58
)
xor
di
(
57
)
xor
di
(
52
)
xor
di
(
49
)
xor
di
(
48
)
xor
di
(
47
)
xor
di
(
45
)
xor
di
(
38
)
xor
di
(
36
)
xor
di
(
33
)
xor
140
di
(
31
)
xor
di
(
30
)
xor
di
(
27
)
xor
di
(
25
)
xor
di
(
23
)
xor
di
(
22
)
xor
di
(
20
)
xor
di
(
18
)
xor
di
(
14
)
xor
di
(
13
)
xor
di
(
9
)
xor
di
(
6
)
xor
di
(
5
)
xor
di
(
1
)
xor
c
(
1
)
xor
c
(
4
)
xor
c
(
6
)
xor
c
(
13
)
xor
c
(
15
)
xor
c
(
16
)
xor
c
(
17
)
xor
c
(
20
)
xor
c
(
25
)
xor
c
(
26
)
;
141
c
(
18
)
<=
di
(
59
)
xor
di
(
58
)
xor
di
(
53
)
xor
di
(
50
)
xor
di
(
49
)
xor
di
(
48
)
xor
di
(
46
)
xor
di
(
39
)
xor
di
(
37
)
xor
di
(
34
)
xor
142
di
(
32
)
xor
143
di
(
31
)
xor
di
(
28
)
xor
di
(
26
)
xor
di
(
24
)
xor
di
(
23
)
xor
di
(
21
)
xor
di
(
19
)
xor
di
(
15
)
xor
di
(
14
)
xor
di
(
10
)
xor
di
(
7
)
xor
di
(
6
)
xor
di
(
2
)
xor
c
(
0
)
xor
c
(
2
)
xor
c
(
5
)
xor
c
(
7
)
xor
c
(
14
)
xor
c
(
16
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
21
)
xor
c
(
26
)
xor
c
(
27
)
;
144
c
(
19
)
<=
di
(
60
)
xor
di
(
59
)
xor
di
(
54
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
49
)
xor
di
(
47
)
xor
di
(
40
)
xor
di
(
38
)
xor
di
(
35
)
xor
145
di
(
33
)
xor
di
(
32
)
xor
146
di
(
29
)
xor
di
(
27
)
xor
di
(
25
)
xor
di
(
24
)
xor
di
(
22
)
xor
di
(
20
)
xor
di
(
16
)
xor
di
(
15
)
xor
di
(
11
)
xor
di
(
8
)
xor
di
(
7
)
xor
di
(
3
)
xor
c
(
0
)
xor
c
(
1
)
xor
c
(
3
)
xor
c
(
6
)
xor
c
(
8
)
xor
c
(
15
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
22
)
xor
c
(
27
)
xor
c
(
28
)
;
147
c
(
20
)
<=
di
(
61
)
xor
di
(
60
)
xor
di
(
55
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
48
)
xor
di
(
41
)
xor
di
(
39
)
xor
di
(
36
)
xor
148
di
(
34
)
xor
di
(
33
)
xor
149
di
(
30
)
xor
di
(
28
)
xor
di
(
26
)
xor
di
(
25
)
xor
di
(
23
)
xor
di
(
21
)
xor
di
(
17
)
xor
di
(
16
)
xor
di
(
12
)
xor
di
(
9
)
xor
di
(
8
)
xor
di
(
4
)
xor
c
(
1
)
xor
c
(
2
)
xor
c
(
4
)
xor
c
(
7
)
xor
c
(
9
)
xor
c
(
16
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
23
)
xor
c
(
28
)
xor
c
(
29
)
;
150
c
(
21
)
<=
di
(
62
)
xor
di
(
61
)
xor
di
(
56
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
49
)
xor
di
(
42
)
xor
di
(
40
)
xor
di
(
37
)
xor
151
di
(
35
)
xor
di
(
34
)
xor
152
di
(
31
)
xor
di
(
29
)
xor
di
(
27
)
xor
di
(
26
)
xor
di
(
24
)
xor
di
(
22
)
xor
di
(
18
)
xor
di
(
17
)
xor
di
(
13
)
xor
di
(
10
)
xor
di
(
9
)
xor
di
(
5
)
xor
c
(
2
)
xor
c
(
3
)
xor
c
(
5
)
xor
c
(
8
)
xor
c
(
10
)
xor
c
(
17
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
24
)
xor
c
(
29
)
xor
c
(
30
)
;
153
c
(
22
)
<=
di
(
62
)
xor
di
(
61
)
xor
di
(
60
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
55
)
xor
di
(
52
)
xor
di
(
48
)
xor
di
(
47
)
xor
di
(
45
)
xor
154
di
(
44
)
xor
di
(
43
)
xor
di
(
41
)
xor
di
(
38
)
xor
di
(
37
)
xor
di
(
36
)
xor
di
(
35
)
xor
di
(
34
)
xor
155
di
(
31
)
xor
di
(
29
)
xor
di
(
27
)
xor
di
(
26
)
xor
di
(
24
)
xor
di
(
23
)
xor
di
(
19
)
xor
di
(
18
)
xor
di
(
16
)
xor
di
(
14
)
xor
di
(
12
)
xor
di
(
11
)
xor
di
(
9
)
xor
di
(
0
)
xor
c
(
2
)
xor
c
(
3
)
xor
c
(
4
)
xor
c
(
5
)
xor
c
(
6
)
xor
c
(
9
)
xor
c
(
11
)
xor
c
(
12
)
xor
c
(
13
)
xor
c
(
15
)
xor
c
(
16
)
xor
c
(
20
)
xor
c
(
23
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
28
)
xor
c
(
29
)
xor
c
(
30
)
;
156
c
(
23
)
<=
di
(
62
)
xor
di
(
60
)
xor
di
(
59
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
50
)
xor
di
(
49
)
xor
di
(
47
)
xor
di
(
46
)
xor
157
di
(
42
)
xor
di
(
39
)
xor
di
(
38
)
xor
di
(
36
)
xor
di
(
35
)
xor
di
(
34
)
xor
158
di
(
31
)
xor
di
(
29
)
xor
di
(
27
)
xor
di
(
26
)
xor
di
(
20
)
xor
di
(
19
)
xor
di
(
17
)
xor
di
(
16
)
xor
di
(
15
)
xor
di
(
13
)
xor
di
(
9
)
xor
di
(
6
)
xor
di
(
1
)
xor
di
(
0
)
xor
c
(
2
)
xor
c
(
3
)
xor
c
(
4
)
xor
c
(
6
)
xor
c
(
7
)
xor
c
(
10
)
xor
c
(
14
)
xor
c
(
15
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
27
)
xor
c
(
28
)
xor
c
(
30
)
;
159
c
(
24
)
<=
di
(
63
)
xor
di
(
61
)
xor
di
(
60
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
48
)
xor
di
(
47
)
xor
160
di
(
43
)
xor
di
(
40
)
xor
di
(
39
)
xor
di
(
37
)
xor
di
(
36
)
xor
di
(
35
)
xor
di
(
32
)
xor
161
di
(
30
)
xor
di
(
28
)
xor
di
(
27
)
xor
di
(
21
)
xor
di
(
20
)
xor
di
(
18
)
xor
di
(
17
)
xor
di
(
16
)
xor
di
(
14
)
xor
di
(
10
)
xor
di
(
7
)
xor
di
(
2
)
xor
di
(
1
)
xor
c
(
0
)
xor
c
(
3
)
xor
c
(
4
)
xor
c
(
5
)
xor
c
(
7
)
xor
c
(
8
)
xor
c
(
11
)
xor
c
(
15
)
xor
c
(
16
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
28
)
xor
c
(
29
)
xor
c
(
31
)
;
162
c
(
25
)
<=
di
(
62
)
xor
di
(
61
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
49
)
xor
di
(
48
)
xor
di
(
44
)
xor
163
di
(
41
)
xor
di
(
40
)
xor
di
(
38
)
xor
di
(
37
)
xor
di
(
36
)
xor
di
(
33
)
xor
164
di
(
31
)
xor
di
(
29
)
xor
di
(
28
)
xor
di
(
22
)
xor
di
(
21
)
xor
di
(
19
)
xor
di
(
18
)
xor
di
(
17
)
xor
di
(
15
)
xor
di
(
11
)
xor
di
(
8
)
xor
di
(
3
)
xor
di
(
2
)
xor
c
(
1
)
xor
c
(
4
)
xor
c
(
5
)
xor
c
(
6
)
xor
c
(
8
)
xor
c
(
9
)
xor
c
(
12
)
xor
c
(
16
)
xor
c
(
17
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
29
)
xor
c
(
30
)
;
165
c
(
26
)
<=
di
(
62
)
xor
di
(
61
)
xor
di
(
60
)
xor
di
(
59
)
xor
di
(
57
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
52
)
xor
di
(
49
)
xor
di
(
48
)
xor
166
di
(
47
)
xor
di
(
44
)
xor
di
(
42
)
xor
di
(
41
)
xor
di
(
39
)
xor
di
(
38
)
xor
167
di
(
31
)
xor
di
(
28
)
xor
di
(
26
)
xor
di
(
25
)
xor
di
(
24
)
xor
di
(
23
)
xor
di
(
22
)
xor
di
(
20
)
xor
di
(
19
)
xor
di
(
18
)
xor
di
(
10
)
xor
di
(
6
)
xor
di
(
4
)
xor
di
(
3
)
xor
di
(
0
)
xor
c
(
6
)
xor
c
(
7
)
xor
c
(
9
)
xor
c
(
10
)
xor
c
(
12
)
xor
c
(
15
)
xor
c
(
16
)
xor
c
(
17
)
xor
c
(
20
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
25
)
xor
c
(
27
)
xor
c
(
28
)
xor
c
(
29
)
xor
c
(
30
)
;
168
c
(
27
)
<=
di
(
63
)
xor
di
(
62
)
xor
di
(
61
)
xor
di
(
60
)
xor
di
(
58
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
53
)
xor
di
(
50
)
xor
di
(
49
)
xor
169
di
(
48
)
xor
di
(
45
)
xor
di
(
43
)
xor
di
(
42
)
xor
di
(
40
)
xor
di
(
39
)
xor
di
(
32
)
xor
170
di
(
29
)
xor
di
(
27
)
xor
di
(
26
)
xor
di
(
25
)
xor
di
(
24
)
xor
di
(
23
)
xor
di
(
21
)
xor
di
(
20
)
xor
di
(
19
)
xor
di
(
11
)
xor
di
(
7
)
xor
di
(
5
)
xor
di
(
4
)
xor
di
(
1
)
xor
c
(
0
)
xor
c
(
7
)
xor
c
(
8
)
xor
c
(
10
)
xor
c
(
11
)
xor
c
(
13
)
xor
c
(
16
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
21
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
26
)
xor
c
(
28
)
xor
c
(
29
)
xor
c
(
30
)
xor
c
(
31
)
;
171
c
(
28
)
<=
di
(
63
)
xor
di
(
62
)
xor
di
(
61
)
xor
di
(
59
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
54
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
49
)
xor
172
di
(
46
)
xor
di
(
44
)
xor
di
(
43
)
xor
di
(
41
)
xor
di
(
40
)
xor
di
(
33
)
xor
173
di
(
30
)
xor
di
(
28
)
xor
di
(
27
)
xor
di
(
26
)
xor
di
(
25
)
xor
di
(
24
)
xor
di
(
22
)
xor
di
(
21
)
xor
di
(
20
)
xor
di
(
12
)
xor
di
(
8
)
xor
di
(
6
)
xor
di
(
5
)
xor
di
(
2
)
xor
c
(
1
)
xor
c
(
8
)
xor
c
(
9
)
xor
c
(
11
)
xor
c
(
12
)
xor
c
(
14
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
22
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
27
)
xor
c
(
29
)
xor
c
(
30
)
xor
c
(
31
)
;
174
c
(
29
)
<=
di
(
63
)
xor
di
(
62
)
xor
di
(
60
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
55
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
47
)
xor
175
di
(
45
)
xor
di
(
44
)
xor
di
(
42
)
xor
di
(
41
)
xor
di
(
34
)
xor
176
di
(
31
)
xor
di
(
29
)
xor
di
(
28
)
xor
di
(
27
)
xor
di
(
26
)
xor
di
(
25
)
xor
di
(
23
)
xor
di
(
22
)
xor
di
(
21
)
xor
di
(
13
)
xor
di
(
9
)
xor
di
(
7
)
xor
di
(
6
)
xor
di
(
3
)
xor
c
(
2
)
xor
c
(
9
)
xor
c
(
10
)
xor
c
(
12
)
xor
c
(
13
)
xor
c
(
15
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
23
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
28
)
xor
c
(
30
)
xor
c
(
31
)
;
177
c
(
30
)
<=
di
(
63
)
xor
di
(
61
)
xor
di
(
59
)
xor
di
(
58
)
xor
di
(
56
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
48
)
xor
di
(
46
)
xor
178
di
(
45
)
xor
di
(
43
)
xor
di
(
42
)
xor
di
(
35
)
xor
di
(
32
)
xor
179
di
(
30
)
xor
di
(
29
)
xor
di
(
28
)
xor
di
(
27
)
xor
di
(
26
)
xor
di
(
24
)
xor
di
(
23
)
xor
di
(
22
)
xor
di
(
14
)
xor
di
(
10
)
xor
di
(
8
)
xor
di
(
7
)
xor
di
(
4
)
xor
c
(
0
)
xor
c
(
3
)
xor
c
(
10
)
xor
c
(
11
)
xor
c
(
13
)
xor
c
(
14
)
xor
c
(
16
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
24
)
xor
c
(
26
)
xor
c
(
27
)
xor
c
(
29
)
xor
c
(
31
)
;
180
c
(
31
)
<=
di
(
62
)
xor
di
(
60
)
xor
di
(
59
)
xor
di
(
57
)
xor
di
(
54
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
49
)
xor
di
(
47
)
xor
di
(
46
)
xor
181
di
(
44
)
xor
di
(
43
)
xor
di
(
36
)
xor
di
(
33
)
xor
182
di
(
31
)
xor
di
(
30
)
xor
di
(
29
)
xor
di
(
28
)
xor
di
(
27
)
xor
di
(
25
)
xor
di
(
24
)
xor
di
(
23
)
xor
di
(
15
)
xor
di
(
11
)
xor
di
(
9
)
xor
di
(
8
)
xor
di
(
5
)
xor
c
(
1
)
xor
c
(
4
)
xor
c
(
11
)
xor
c
(
12
)
xor
c
(
14
)
xor
c
(
15
)
xor
c
(
17
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
22
)
xor
c
(
25
)
xor
c
(
27
)
xor
c
(
28
)
xor
c
(
30
)
;
183
else
184
c
(
0
)
<=
di
(
63
)
xor
di
(
62
)
xor
di
(
61
)
xor
di
(
60
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
48
)
xor
di
(
44
)
xor
di
(
42
)
xor
di
(
41
)
xor
di
(
38
)
xor
di
(
32
)
xor
c
(
0
)
xor
c
(
6
)
xor
c
(
9
)
xor
c
(
10
)
xor
c
(
12
)
xor
c
(
16
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
28
)
xor
c
(
29
)
xor
c
(
30
)
xor
c
(
31
)
;
185
c
(
1
)
<=
di
(
60
)
xor
di
(
59
)
xor
di
(
56
)
xor
di
(
49
)
xor
di
(
48
)
xor
di
(
45
)
xor
di
(
44
)
xor
di
(
43
)
xor
di
(
41
)
xor
di
(
39
)
xor
di
(
38
)
xor
di
(
33
)
xor
di
(
32
)
xor
c
(
0
)
xor
c
(
1
)
xor
c
(
6
)
xor
c
(
7
)
xor
c
(
9
)
xor
c
(
11
)
xor
c
(
12
)
xor
c
(
13
)
xor
c
(
16
)
xor
c
(
17
)
xor
c
(
24
)
xor
c
(
27
)
xor
c
(
28
)
;
186
c
(
2
)
<=
di
(
63
)
xor
di
(
62
)
xor
di
(
58
)
xor
di
(
56
)
xor
di
(
50
)
xor
di
(
49
)
xor
di
(
48
)
xor
di
(
46
)
xor
di
(
45
)
xor
di
(
41
)
xor
di
(
40
)
xor
di
(
39
)
xor
di
(
38
)
xor
di
(
34
)
xor
di
(
33
)
xor
di
(
32
)
xor
c
(
0
)
xor
c
(
1
)
xor
c
(
2
)
xor
c
(
6
)
xor
c
(
7
)
xor
c
(
8
)
xor
c
(
9
)
xor
c
(
13
)
xor
c
(
14
)
xor
c
(
16
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
24
)
xor
c
(
26
)
xor
c
(
30
)
xor
c
(
31
)
;
187
c
(
3
)
<=
di
(
63
)
xor
di
(
59
)
xor
di
(
57
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
49
)
xor
di
(
47
)
xor
di
(
46
)
xor
di
(
42
)
xor
di
(
41
)
xor
di
(
40
)
xor
di
(
39
)
xor
di
(
35
)
xor
di
(
34
)
xor
di
(
33
)
xor
c
(
1
)
xor
c
(
2
)
xor
c
(
3
)
xor
c
(
7
)
xor
c
(
8
)
xor
c
(
9
)
xor
c
(
10
)
xor
c
(
14
)
xor
c
(
15
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
25
)
xor
c
(
27
)
xor
c
(
31
)
;
188
c
(
4
)
<=
di
(
63
)
xor
di
(
62
)
xor
di
(
61
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
47
)
xor
di
(
44
)
xor
di
(
43
)
xor
di
(
40
)
xor
di
(
38
)
xor
di
(
36
)
xor
di
(
35
)
xor
di
(
34
)
xor
di
(
32
)
xor
c
(
0
)
xor
c
(
2
)
xor
c
(
3
)
xor
c
(
4
)
xor
c
(
6
)
xor
c
(
8
)
xor
c
(
11
)
xor
c
(
12
)
xor
c
(
15
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
29
)
xor
c
(
30
)
xor
c
(
31
)
;
189
c
(
5
)
<=
di
(
61
)
xor
di
(
60
)
xor
di
(
56
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
45
)
xor
di
(
42
)
xor
di
(
39
)
xor
di
(
38
)
xor
di
(
37
)
xor
di
(
36
)
xor
di
(
35
)
xor
di
(
33
)
xor
di
(
32
)
xor
c
(
0
)
xor
c
(
1
)
xor
c
(
3
)
xor
c
(
4
)
xor
c
(
5
)
xor
c
(
6
)
xor
c
(
7
)
xor
c
(
10
)
xor
c
(
13
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
24
)
xor
c
(
28
)
xor
c
(
29
)
;
190
c
(
6
)
<=
di
(
62
)
xor
di
(
61
)
xor
di
(
57
)
xor
di
(
54
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
46
)
xor
di
(
43
)
xor
di
(
40
)
xor
di
(
39
)
xor
di
(
38
)
xor
di
(
37
)
xor
di
(
36
)
xor
di
(
34
)
xor
di
(
33
)
xor
c
(
1
)
xor
c
(
2
)
xor
c
(
4
)
xor
c
(
5
)
xor
c
(
6
)
xor
c
(
7
)
xor
c
(
8
)
xor
c
(
11
)
xor
c
(
14
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
22
)
xor
c
(
25
)
xor
c
(
29
)
xor
c
(
30
)
;
191
c
(
7
)
<=
di
(
61
)
xor
di
(
60
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
53
)
xor
di
(
48
)
xor
di
(
47
)
xor
di
(
42
)
xor
di
(
40
)
xor
di
(
39
)
xor
di
(
37
)
xor
di
(
35
)
xor
di
(
34
)
xor
di
(
32
)
xor
c
(
0
)
xor
c
(
2
)
xor
c
(
3
)
xor
c
(
5
)
xor
c
(
7
)
xor
c
(
8
)
xor
c
(
10
)
xor
c
(
15
)
xor
c
(
16
)
xor
c
(
21
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
28
)
xor
c
(
29
)
;
192
c
(
8
)
<=
di
(
63
)
xor
di
(
60
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
49
)
xor
di
(
44
)
xor
di
(
43
)
xor
di
(
42
)
xor
di
(
40
)
xor
di
(
36
)
xor
di
(
35
)
xor
di
(
33
)
xor
di
(
32
)
xor
c
(
0
)
xor
c
(
1
)
xor
c
(
3
)
xor
c
(
4
)
xor
c
(
8
)
xor
c
(
10
)
xor
c
(
11
)
xor
c
(
12
)
xor
c
(
17
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
28
)
xor
c
(
31
)
;
193
c
(
9
)
<=
di
(
61
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
50
)
xor
di
(
45
)
xor
di
(
44
)
xor
di
(
43
)
xor
di
(
41
)
xor
di
(
37
)
xor
di
(
36
)
xor
di
(
34
)
xor
di
(
33
)
xor
c
(
1
)
xor
c
(
2
)
xor
c
(
4
)
xor
c
(
5
)
xor
c
(
9
)
xor
c
(
11
)
xor
c
(
12
)
xor
c
(
13
)
xor
c
(
18
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
29
)
;
194
c
(
10
)
<=
di
(
63
)
xor
di
(
61
)
xor
di
(
60
)
xor
di
(
58
)
xor
di
(
51
)
xor
di
(
48
)
xor
di
(
46
)
xor
di
(
45
)
xor
di
(
41
)
xor
di
(
37
)
xor
di
(
35
)
xor
di
(
34
)
xor
di
(
32
)
xor
c
(
0
)
xor
c
(
2
)
xor
c
(
3
)
xor
c
(
5
)
xor
c
(
9
)
xor
c
(
13
)
xor
c
(
14
)
xor
c
(
16
)
xor
c
(
19
)
xor
c
(
26
)
xor
c
(
28
)
xor
c
(
29
)
xor
c
(
31
)
;
195
c
(
11
)
<=
di
(
63
)
xor
di
(
60
)
xor
di
(
59
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
52
)
xor
di
(
49
)
xor
di
(
48
)
xor
di
(
47
)
xor
di
(
46
)
xor
di
(
44
)
xor
di
(
41
)
xor
di
(
36
)
xor
di
(
35
)
xor
di
(
33
)
xor
di
(
32
)
xor
c
(
0
)
xor
c
(
1
)
xor
c
(
3
)
xor
c
(
4
)
xor
c
(
9
)
xor
c
(
12
)
xor
c
(
14
)
xor
c
(
15
)
xor
c
(
16
)
xor
c
(
17
)
xor
c
(
20
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
27
)
xor
c
(
28
)
xor
c
(
31
)
;
196
c
(
12
)
<=
di
(
63
)
xor
di
(
62
)
xor
di
(
59
)
xor
di
(
56
)
xor
di
(
53
)
xor
di
(
50
)
xor
di
(
49
)
xor
di
(
47
)
xor
di
(
45
)
xor
di
(
44
)
xor
di
(
41
)
xor
di
(
38
)
xor
di
(
37
)
xor
di
(
36
)
xor
di
(
34
)
xor
di
(
33
)
xor
di
(
32
)
xor
c
(
0
)
xor
c
(
1
)
xor
c
(
2
)
xor
c
(
4
)
xor
c
(
5
)
xor
c
(
6
)
xor
c
(
9
)
xor
c
(
12
)
xor
c
(
13
)
xor
c
(
15
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
21
)
xor
c
(
24
)
xor
c
(
27
)
xor
c
(
30
)
xor
c
(
31
)
;
197
c
(
13
)
<=
di
(
63
)
xor
di
(
60
)
xor
di
(
57
)
xor
di
(
54
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
48
)
xor
di
(
46
)
xor
di
(
45
)
xor
di
(
42
)
xor
di
(
39
)
xor
di
(
38
)
xor
di
(
37
)
xor
di
(
35
)
xor
di
(
34
)
xor
di
(
33
)
xor
c
(
1
)
xor
c
(
2
)
xor
c
(
3
)
xor
c
(
5
)
xor
c
(
6
)
xor
c
(
7
)
xor
c
(
10
)
xor
c
(
13
)
xor
c
(
14
)
xor
c
(
16
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
22
)
xor
c
(
25
)
xor
c
(
28
)
xor
c
(
31
)
;
198
c
(
14
)
<=
di
(
61
)
xor
di
(
58
)
xor
di
(
55
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
49
)
xor
di
(
47
)
xor
di
(
46
)
xor
di
(
43
)
xor
di
(
40
)
xor
di
(
39
)
xor
di
(
38
)
xor
di
(
36
)
xor
di
(
35
)
xor
di
(
34
)
xor
c
(
2
)
xor
c
(
3
)
xor
c
(
4
)
xor
c
(
6
)
xor
c
(
7
)
xor
c
(
8
)
xor
c
(
11
)
xor
c
(
14
)
xor
c
(
15
)
xor
c
(
17
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
23
)
xor
c
(
26
)
xor
c
(
29
)
;
199
c
(
15
)
<=
di
(
62
)
xor
di
(
59
)
xor
di
(
56
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
50
)
xor
di
(
48
)
xor
di
(
47
)
xor
di
(
44
)
xor
di
(
41
)
xor
di
(
40
)
xor
di
(
39
)
xor
di
(
37
)
xor
di
(
36
)
xor
di
(
35
)
xor
c
(
3
)
xor
c
(
4
)
xor
c
(
5
)
xor
c
(
7
)
xor
c
(
8
)
xor
c
(
9
)
xor
c
(
12
)
xor
c
(
15
)
xor
c
(
16
)
xor
c
(
18
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
24
)
xor
c
(
27
)
xor
c
(
30
)
;
200
c
(
16
)
<=
di
(
62
)
xor
di
(
61
)
xor
di
(
58
)
xor
di
(
56
)
xor
di
(
54
)
xor
di
(
53
)
xor
di
(
51
)
xor
di
(
49
)
xor
di
(
45
)
xor
di
(
44
)
xor
di
(
40
)
xor
di
(
37
)
xor
di
(
36
)
xor
di
(
32
)
xor
c
(
0
)
xor
c
(
4
)
xor
c
(
5
)
xor
c
(
8
)
xor
c
(
12
)
xor
c
(
13
)
xor
c
(
17
)
xor
c
(
19
)
xor
c
(
21
)
xor
c
(
22
)
xor
c
(
24
)
xor
c
(
26
)
xor
c
(
29
)
xor
c
(
30
)
;
201
c
(
17
)
<=
di
(
63
)
xor
di
(
62
)
xor
di
(
59
)
xor
di
(
57
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
52
)
xor
di
(
50
)
xor
di
(
46
)
xor
di
(
45
)
xor
di
(
41
)
xor
di
(
38
)
xor
di
(
37
)
xor
di
(
33
)
xor
c
(
1
)
xor
c
(
5
)
xor
c
(
6
)
xor
c
(
9
)
xor
c
(
13
)
xor
c
(
14
)
xor
c
(
18
)
xor
c
(
20
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
25
)
xor
c
(
27
)
xor
c
(
30
)
xor
c
(
31
)
;
202
c
(
18
)
<=
di
(
63
)
xor
di
(
60
)
xor
di
(
58
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
53
)
xor
di
(
51
)
xor
di
(
47
)
xor
di
(
46
)
xor
di
(
42
)
xor
di
(
39
)
xor
di
(
38
)
xor
di
(
34
)
xor
c
(
2
)
xor
c
(
6
)
xor
c
(
7
)
xor
c
(
10
)
xor
c
(
14
)
xor
c
(
15
)
xor
c
(
19
)
xor
c
(
21
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
26
)
xor
c
(
28
)
xor
c
(
31
)
;
203
c
(
19
)
<=
di
(
61
)
xor
di
(
59
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
54
)
xor
di
(
52
)
xor
di
(
48
)
xor
di
(
47
)
xor
di
(
43
)
xor
di
(
40
)
xor
di
(
39
)
xor
di
(
35
)
xor
c
(
3
)
xor
c
(
7
)
xor
c
(
8
)
xor
c
(
11
)
xor
c
(
15
)
xor
c
(
16
)
xor
c
(
20
)
xor
c
(
22
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
27
)
xor
c
(
29
)
;
204
c
(
20
)
<=
di
(
62
)
xor
di
(
60
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
55
)
xor
di
(
53
)
xor
di
(
49
)
xor
di
(
48
)
xor
di
(
44
)
xor
di
(
41
)
xor
di
(
40
)
xor
di
(
36
)
xor
c
(
4
)
xor
c
(
8
)
xor
c
(
9
)
xor
c
(
12
)
xor
c
(
16
)
xor
c
(
17
)
xor
c
(
21
)
xor
c
(
23
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
28
)
xor
c
(
30
)
;
205
c
(
21
)
<=
di
(
63
)
xor
di
(
61
)
xor
di
(
59
)
xor
di
(
58
)
xor
di
(
56
)
xor
di
(
54
)
xor
di
(
50
)
xor
di
(
49
)
xor
di
(
45
)
xor
di
(
42
)
xor
di
(
41
)
xor
di
(
37
)
xor
c
(
5
)
xor
c
(
9
)
xor
c
(
10
)
xor
c
(
13
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
22
)
xor
c
(
24
)
xor
c
(
26
)
xor
c
(
27
)
xor
c
(
29
)
xor
c
(
31
)
;
206
c
(
22
)
<=
di
(
63
)
xor
di
(
61
)
xor
di
(
59
)
xor
di
(
58
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
48
)
xor
di
(
46
)
xor
di
(
44
)
xor
di
(
43
)
xor
di
(
41
)
xor
di
(
32
)
xor
c
(
0
)
xor
c
(
9
)
xor
c
(
11
)
xor
c
(
12
)
xor
c
(
14
)
xor
c
(
16
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
26
)
xor
c
(
27
)
xor
c
(
29
)
xor
c
(
31
)
;
207
c
(
23
)
<=
di
(
63
)
xor
di
(
61
)
xor
di
(
59
)
xor
di
(
58
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
49
)
xor
di
(
48
)
xor
di
(
47
)
xor
di
(
45
)
xor
di
(
41
)
xor
di
(
38
)
xor
di
(
33
)
xor
di
(
32
)
xor
c
(
0
)
xor
c
(
1
)
xor
c
(
6
)
xor
c
(
9
)
xor
c
(
13
)
xor
c
(
15
)
xor
c
(
16
)
xor
c
(
17
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
26
)
xor
c
(
27
)
xor
c
(
29
)
xor
c
(
31
)
;
208
c
(
24
)
<=
di
(
62
)
xor
di
(
60
)
xor
di
(
59
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
50
)
xor
di
(
49
)
xor
di
(
48
)
xor
di
(
46
)
xor
di
(
42
)
xor
di
(
39
)
xor
di
(
34
)
xor
di
(
33
)
xor
c
(
1
)
xor
c
(
2
)
xor
c
(
7
)
xor
c
(
10
)
xor
c
(
14
)
xor
c
(
16
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
27
)
xor
c
(
28
)
xor
c
(
30
)
;
209
c
(
25
)
<=
di
(
63
)
xor
di
(
61
)
xor
di
(
60
)
xor
di
(
54
)
xor
di
(
53
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
49
)
xor
di
(
47
)
xor
di
(
43
)
xor
di
(
40
)
xor
di
(
35
)
xor
di
(
34
)
xor
c
(
2
)
xor
c
(
3
)
xor
c
(
8
)
xor
c
(
11
)
xor
c
(
15
)
xor
c
(
17
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
21
)
xor
c
(
22
)
xor
c
(
28
)
xor
c
(
29
)
xor
c
(
31
)
;
210
c
(
26
)
<=
di
(
63
)
xor
di
(
60
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
50
)
xor
di
(
42
)
xor
di
(
38
)
xor
di
(
36
)
xor
di
(
35
)
xor
di
(
32
)
xor
c
(
0
)
xor
c
(
3
)
xor
c
(
4
)
xor
c
(
6
)
xor
c
(
10
)
xor
c
(
18
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
28
)
xor
c
(
31
)
;
211
c
(
27
)
<=
di
(
61
)
xor
di
(
59
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
51
)
xor
di
(
43
)
xor
di
(
39
)
xor
di
(
37
)
xor
di
(
36
)
xor
di
(
33
)
xor
c
(
1
)
xor
c
(
4
)
xor
c
(
5
)
xor
c
(
7
)
xor
c
(
11
)
xor
c
(
19
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
27
)
xor
c
(
29
)
;
212
c
(
28
)
<=
di
(
62
)
xor
di
(
60
)
xor
di
(
59
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
54
)
xor
di
(
53
)
xor
di
(
52
)
xor
di
(
44
)
xor
di
(
40
)
xor
di
(
38
)
xor
di
(
37
)
xor
di
(
34
)
xor
c
(
2
)
xor
c
(
5
)
xor
c
(
6
)
xor
c
(
8
)
xor
c
(
12
)
xor
c
(
20
)
xor
c
(
21
)
xor
c
(
22
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
27
)
xor
c
(
28
)
xor
c
(
30
)
;
213
c
(
29
)
<=
di
(
63
)
xor
di
(
61
)
xor
di
(
60
)
xor
di
(
59
)
xor
di
(
58
)
xor
di
(
57
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
53
)
xor
di
(
45
)
xor
di
(
41
)
xor
di
(
39
)
xor
di
(
38
)
xor
di
(
35
)
xor
c
(
3
)
xor
c
(
6
)
xor
c
(
7
)
xor
c
(
9
)
xor
c
(
13
)
xor
c
(
21
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
25
)
xor
c
(
26
)
xor
c
(
27
)
xor
c
(
28
)
xor
c
(
29
)
xor
c
(
31
)
;
214
c
(
30
)
<=
di
(
62
)
xor
di
(
61
)
xor
di
(
60
)
xor
di
(
59
)
xor
di
(
58
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
54
)
xor
di
(
46
)
xor
di
(
42
)
xor
di
(
40
)
xor
di
(
39
)
xor
di
(
36
)
xor
c
(
4
)
xor
c
(
7
)
xor
c
(
8
)
xor
c
(
10
)
xor
c
(
14
)
xor
c
(
22
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
26
)
xor
c
(
27
)
xor
c
(
28
)
xor
c
(
29
)
xor
c
(
30
)
;
215
c
(
31
)
<=
di
(
63
)
xor
di
(
62
)
xor
di
(
61
)
xor
di
(
60
)
xor
di
(
59
)
xor
di
(
57
)
xor
di
(
56
)
xor
di
(
55
)
xor
di
(
47
)
xor
di
(
43
)
xor
di
(
41
)
xor
di
(
40
)
xor
di
(
37
)
xor
c
(
5
)
xor
c
(
8
)
xor
c
(
9
)
xor
c
(
11
)
xor
c
(
15
)
xor
c
(
23
)
xor
c
(
24
)
xor
c
(
25
)
xor
c
(
27
)
xor
c
(
28
)
xor
c
(
29
)
xor
c
(
30
)
xor
c
(
31
)
;
216
end
if
;
217
end
if
;
218
end
if
;
219
end
process
;
220
221
end
Behavioral
;
222
Generated on Wed Apr 18 2018 10:55:27 for AMC13 by
1.8.1