COPE-03 Functions.indd
16
4
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
6
4
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
…
…
…
m
o
v
r
0
,
#
1
a
d
d
r
0
,
#
2
m
o
v
r
3
,
r
0
…
…
…
…
…
w
e
n
e
e
d
a
n
e
xa
m
p
le
, w
h
e
re
a
c
o
m
p
il
e
r
w
il
l
n
o
t
ju
st
r
e
m
o
ve
a
ll
o
u
r
co
d
e
!
16
0
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
6
0
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
… …
… … … … … … … …
… …
… … … … …
… … … … … …
15
6
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
5
6
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
…
…
…
m
o
v
r
0
,
#
1
b
l
P
l
u
s
_
1
m
o
v
r
4
,
r
0
…
…
…
…
P
l
u
s
_
1
:
a
d
d
r
0
,
#
1
b
x
l
r
15
2
3
Fu
n
ct
io
n
s
U
w
e
R
.
Z
im
m
er
–
T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
C
o
m
p
u
te
r
O
rg
an
is
at
io
n
&
P
ro
g
ra
m
E
xe
cu
ti
o
n
2
02
1
16
5
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
6
5
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
(G
re
at
n
es
s
fr
o
m
…
)
Sm
al
l
b
eg
in
n
in
gs
f
i
b
_
f
a
c
t
:
:
(
N
u
m
a
)
=
>
a
–
>
a
f
i
b
_
f
a
c
t
x
=
(
f
i
b
x
)
+
(
f
a
c
t
x
)
u
n
s
i
g
n
e
d
i
n
t
f
i
b
F
a
c
t
(
u
n
s
i
g
n
e
d
i
n
t
x
)
{
r
e
t
u
r
n
f
i
b
(
x
)
+
f
a
c
t
(
x
)
;
} f
u
n
c
t
i
o
n
F
i
b
_
F
a
c
t
(
x
:
N
a
t
u
r
a
l
)
r
e
t
u
r
n
N
a
t
u
r
a
l
i
s
(
F
i
b
(
x
)
+
F
a
c
t
(
x
)
)
;
d
e
f
f
i
b
F
a
c
t
(
x
)
:
r
e
t
u
r
n
f
i
b
(
x
)
+
f
a
c
t
(
x
)
;
p
u
r
e
f
u
n
c
t
i
o
n
f
i
b
_
f
a
c
t
(
x
)
i
n
t
,
i
n
t
e
n
t
(
i
n
)
:
:
x
i
n
t
:
:
f
i
b
_
f
a
c
t
f
i
b
_
f
a
c
t
=
f
i
b
(
x
)
+
f
a
c
t
(
x
)
;
e
n
d
f
u
n
c
t
i
o
n
;
f
u
n
c
t
i
o
n
F
i
b
_
F
a
c
t
(
x
:
c
a
r
d
i
n
a
l
)
:
c
a
r
d
i
n
a
l
;
b
e
g
i
n
F
i
b
_
F
a
c
t
:
=
F
i
b
(
x
)
+
F
a
c
t
(
x
)
;
e
n
d
;
16
1
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
6
1
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
(G
re
at
n
es
s
fr
o
m
…
)
Sm
al
l
b
eg
in
n
in
gs
p
l
u
s
_
2
:
:
(
N
u
m
a
)
=
>
a
–
>
a
p
l
u
s
_
2
x
=
p
l
u
s
_
1
$
p
l
u
s
_
1
x
i
n
t
p
l
u
s
2
(
i
n
t
x
)
{
r
e
t
u
r
n
p
l
u
s
1
(
p
l
u
s
1
(
x
)
)
;
} f
u
n
c
t
i
o
n
P
l
u
s
_
2
(
x
:
I
n
t
e
g
e
r
)
r
e
t
u
r
n
I
n
t
e
g
e
r
i
s
(
P
l
u
s
_
1
(
P
l
u
s
_
1
(
x
)
)
)
;
d
e
f
p
l
u
s
2
(
x
)
:
r
e
t
u
r
n
p
l
u
s
1
(
p
l
u
s
1
(
x
)
)
;
p
u
r
e
f
u
n
c
t
i
o
n
p
l
u
s
_
2
(
x
)
i
n
t
,
i
n
t
e
n
t
(
i
n
)
:
:
x
i
n
t
:
:
p
l
u
s
_
2
p
l
u
s
_
2
=
p
l
u
s
_
1
(
p
l
u
s
_
1
(
x
)
)
;
e
n
d
f
u
n
c
t
i
o
n
;
f
u
n
c
t
i
o
n
P
l
u
s
_
2
(
x
:
i
n
t
e
g
e
r
)
:
i
n
t
e
g
e
r
;
b
e
g
i
n
P
l
u
s
_
2
:
=
P
l
u
s
_
1
(
P
l
u
s
_
1
(
x
)
)
;
e
n
d
;
15
7
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
5
7
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
…
…
…
m
o
v
r
0
,
#
1
b
l
P
l
u
s
_
1
m
o
v
r
4
,
r
0
…
…
…
…
P
l
u
s
_
1
:
a
d
d
r
0
,
#
1
b
x
l
r
l
r
15
3
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
5
3
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
R
ef
er
en
ce
s
fo
r
th
is
c
h
ap
te
r
[P
at
te
rs
o
n
17
]
D
av
id
A
. P
at
te
rs
o
n
&
J
o
h
n
L
. H
e
n
n
e
ss
y
C
o
m
p
u
te
r
O
rg
an
iz
at
io
n
a
n
d
D
e
si
g
n
–
T
h
e
H
ar
d
w
ar
e
/S
o
ft
w
ar
e
I
n
te
rf
ac
e
C
h
ap
te
r
2
“I
n
st
ru
ct
io
n
s:
L
an
g
u
ag
e
o
f
th
e
C
o
m
p
u
te
r”
A
R
M
e
d
it
io
n
, M
o
rg
an
K
au
fm
an
n
2
01
7
16
6
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
6
6
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
s
p
…
…
…
m
o
v
r
0
,
#
1
b
l
F
i
b
_
F
a
c
t
m
o
v
r
3
,
r
0
…
…
…
…
F
i
b
_
F
a
c
t
:
…
…
…
…
b
l
F
i
b
m
o
v
r
4
,
r
0
…
b
l
F
a
c
t
a
d
d
r
0
,
r
4
…
…
b
x
l
r
F
i
b
:
…
…
…
b
x
l
r
F
a
c
t
:
…
…
…
b
x
l
r
16
2
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
6
2
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
…
…
…
m
o
v
r
0
,
#
1
b
l
P
l
u
s
_
2
m
o
v
r
3
,
r
0
…
…
…
…
P
l
u
s
_
2
:
…
b
l
P
l
u
s
_
1
b
l
P
l
u
s
_
1
…
b
x
l
r
P
l
u
s
_
1
:
a
d
d
r
0
,
#
1
b
x
l
r
b
x
l
r is
u
se
d
t
h
re
e
t
im
e
s
W
h
at
i
s
th
e
v
al
u
e
o
f
lr
i
n
e
ac
h
c
as
e
?
15
8
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
5
8
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
…
…
…
m
o
v
r
0
,
#
1
b
l
P
l
u
s
_
1
m
o
v
r
4
,
r
0
…
…
…
…
P
l
u
s
_
1
:
a
d
d
r
0
,
#
1
b
x
l
r
l
r
H
o
w
i
s
th
e
p
ar
am
e
te
r
x
p
as
se
d
?
W
h
e
re
d
o
y
o
u
fi
n
d
t
h
e
r
e
su
lt
a
ft
e
r
th
e
f
u
n
ct
io
n
r
e
tu
rn
s?
C
o
u
ld
i
t
b
e
d
o
n
e
d
if
fe
re
n
tl
y?
D
o
e
s
it
w
o
rk
?
15
4
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
5
4
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
… …
… … … … … … … …
… …
… … … … …
16
7
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
6
7
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
s
p
…
…
…
m
o
v
r
0
,
#
1
b
l
F
i
b
_
F
a
c
t
m
o
v
r
3
,
r
0
…
…
…
…
F
i
b
_
F
a
c
t
:
…
…
…
…
b
l
F
i
b
m
o
v
r
4
,
r
0
…
b
l
F
a
c
t
a
d
d
r
0
,
r
4
…
…
b
x
l
r
F
i
b
:
…
…
…
b
x
l
r
F
a
c
t
:
…
…
…
b
x
l
r
1
6
7
f
b
x
l
r
…
w
h
e
re
d
o
e
s
th
is
l
e
ad
u
s?
16
3
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
6
3
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
…
…
…
m
o
v
r
0
,
#
1
b
l
P
l
u
s
_
2
m
o
v
r
3
,
r
0
…
…
…
…
P
l
u
s
_
2
:
s
t
r
l
r
,
[
s
p
,
#
–
4
]
!
b
l
P
l
u
s
_
1
b
l
P
l
u
s
_
1
l
d
r
l
r
,
[
s
p
]
,
#
4
b
x
l
r
P
l
u
s
_
1
:
a
d
d
r
0
,
#
1
b
x
l
r
b
x
l
r is
u
se
d
t
h
re
e
t
im
e
s
W
h
at
i
s
th
e
v
al
u
e
o
f
lr
i
n
e
ac
h
c
as
e
?
15
9
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
5
9
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
…
…
…
m
o
v
r
0
,
#
1
a
d
d
r
0
,
#
1
m
o
v
r
4
,
r
0
…
…
…
…
C
an
/s
h
o
u
ld
t
h
is
a
lw
ay
s
b
e
d
o
n
e
?
T
h
is
i
s
ca
ll
e
d
in
li
n
in
g
15
5
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
5
5
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
(G
re
at
n
es
s
fr
o
m
…
)
Sm
al
l
b
eg
in
n
in
gs
p
l
u
s
_
1
:
:
(
N
u
m
a
)
=
>
a
–
>
a
p
l
u
s
_
1
x
=
x
+
1
i
n
t
p
l
u
s
1
(
i
n
t
x
)
{
r
e
t
u
r
n
x
+
1
;
} f
u
n
c
t
i
o
n
P
l
u
s
_
1
(
x
:
I
n
t
e
g
e
r
)
r
e
t
u
r
n
I
n
t
e
g
e
r
i
s
(
x
+
1
)
;
d
e
f
p
l
u
s
1
(
x
)
:
r
e
t
u
r
n
x
+
1
;
p
u
r
e
f
u
n
c
t
i
o
n
p
l
u
s
_
1
(
x
)
i
n
t
,
i
n
t
e
n
t
(
i
n
)
:
:
x
i
n
t
:
:
p
l
u
s
_
1
p
l
u
s
_
1
=
x
+
1
;
e
n
d
f
u
n
c
t
i
o
n
;
f
u
n
c
t
i
o
n
P
l
u
s
_
1
(
x
:
i
n
t
e
g
e
r
)
:
i
n
t
e
g
e
r
;
b
e
g
i
n
P
l
u
s
_
1
:
=
x
+
1
;
e
n
d
;
18
0
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
8
0
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
F
a
c
t
:
a
d
d
s
r
3
,
r
0
,
#
0
m
o
v
r
0
,
#
1
b
e
q
E
n
d
_
F
a
c
t
F
a
c
t
_
L
o
o
p
:
m
u
l
r
0
,
r
3
s
u
b
s
r
3
,
#
1
b
n
e
F
a
c
t
_
L
o
o
p
E
n
d
_
F
a
c
t
:
b
x
l
r
F
i
b
_
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
r
4
,
f
p
,
l
r
}
a
d
d
f
p
,
s
p
,
#
8
s
u
b
s
p
,
#
4
s
t
r
r
0
,
[
f
p
,
#
–
1
2
]
b
l
F
i
b
m
o
v
r
4
,
r
0
l
d
r
r
0
,
[
f
p
,
#
–
1
2
]
b
l
F
a
c
t
a
d
d
r
0
,
r
0
,
r
4
a
d
d
s
p
,
#
4
l
d
m
i
a
s
p
!
,
{
r
4
,
f
p
,
l
r
}
b
x
l
r
}}
F
i
b
:
…
…
…
b
x
l
r
…
… b
x
l
r
W
h
y
d
o
w
e
s
av
e
r
4?
B
u
t
w
e
d
o
n
’t
s
av
e
r
3?
Fib_Fact
r
4
f
p
f
p
l
r
x
(
3
)
17
6
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
7
6
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
Fib_FactFact 1Fact 0 Fact 2 Fact 3
f
p
r
4
f
p
f
p
l
r
f
p
x
(
3
)
l
r
f
p
x
(
3
)
l
r
x
(
2
)
f
p
l
r
x
(
1
)
f
p
l
r
x
(
0
)
f
p
f
p
f
p
s
p
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
f
p
,
l
r
}
a
d
d
f
p
,
s
p
,
#
4
s
u
b
s
p
,
#
4
s
t
r
r
0
,
[
f
p
,
#
–
8
]
c
m
p
r
0
,
#
0
b
n
e
C
a
s
e
_
O
t
h
e
r
s
m
o
v
r
0
,
#
1
b
E
n
d
_
F
a
c
t
C
a
s
e
_
O
t
h
e
r
s
:
s
u
b
r
0
,
#
1
b
l
F
a
c
t
m
o
v
r
1
,
r
0
l
d
r
r
0
,
[
f
p
,
#
–
8
]
m
u
l
r
0
,
r
1
E
n
d
_
F
a
c
t
:
a
d
d
s
p
,
#
4
l
d
m
i
a
s
p
!
,
{
f
p
,
l
r
}
b
x
l
r
F
i
b
_
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
r
4
,
f
p
,
l
r
}
a
d
d
f
p
,
s
p
,
#
8
s
u
b
s
p
,
#
4
s
t
r
r
0
,
[
f
p
,
#
–
1
2
]
b
l
F
i
b
m
o
v
r
4
,
r
0
l
d
r
r
0
,
[
f
p
,
#
–
1
2
]
b
l
F
a
c
t
a
d
d
r
0
,
r
0
,
r
4
a
d
d
s
p
,
#
4
l
d
m
i
a
s
p
!
,
{
r
4
,
f
p
,
l
r
}
b
x
l
r
}}
W
h
e
re
i
s
th
e
l
as
t
lr
s
to
re
d
?
H
o
w
h
ig
h
d
o
w
e
s
ta
ck
?
F
a
c
t
I
s
F
a
c
t
r
ee
n
tr
an
t?
17
2
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
7
2
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
…
…
…
m
o
v
r
0
,
#
1
b
l
F
i
b
_
F
a
c
t
m
o
v
r
3
,
r
0
…
…
…
…
F
i
b
_
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
r
4
,
l
r
}
…
s
u
b
s
p
,
#
4
s
t
r
r
0
,
[
s
p
]
b
l
F
i
b
m
o
v
r
4
,
r
0
l
d
r
r
0
,
[
s
p
]
b
l
F
a
c
t
a
d
d
r
0
,
r
4
a
d
d
s
p
,
#
4
l
d
m
i
a
s
p
!
,
{
r
4
,
l
r
}
b
x
l
r
Fib_
Fact
r
4
s
p
l
r
x
(
3
)
F
i
b
:
…
…
…
b
x
l
r
F
a
c
t
:
…
…
…
b
x
l
r
16
8
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
6
8
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
…
…
…
m
o
v
r
0
,
#
1
b
l
F
i
b
_
F
a
c
t
m
o
v
r
3
,
r
0
…
…
…
…
F
i
b
_
F
a
c
t
:
s
t
r
l
r
,
[
s
p
,
#
–
4
]
!
…
…
…
b
l
F
i
b
m
o
v
r
4
,
r
0
…
b
l
F
a
c
t
a
d
d
r
0
,
r
4
…
l
d
r
l
r
,
[
s
p
]
,
#
4
b
x
l
r
F
i
b
:
…
…
…
b
x
l
r
F
a
c
t
:
…
…
…
b
x
l
r
l
r
s
p
18
1
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
8
1
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
F
a
c
t
:
a
d
d
s
r
3
,
r
0
,
#
0
m
o
v
r
0
,
#
1
b
e
q
E
n
d
_
F
a
c
t
F
a
c
t
_
L
o
o
p
:
m
u
l
r
0
,
r
3
s
u
b
s
r
3
,
#
1
b
n
e
F
a
c
t
_
L
o
o
p
E
n
d
_
F
a
c
t
:
b
x
l
r
F
i
b
_
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
r
4
,
f
p
,
l
r
}
a
d
d
f
p
,
s
p
,
#
8
s
u
b
s
p
,
#
4
s
t
r
r
0
,
[
f
p
,
#
–
1
2
]
b
l
F
i
b
m
o
v
r
4
,
r
0
l
d
r
r
0
,
[
f
p
,
#
–
1
2
]
b
l
F
a
c
t
a
d
d
r
0
,
r
0
,
r
4
a
d
d
s
p
,
#
4
l
d
m
i
a
s
p
!
,
{
r
4
,
f
p
,
l
r
}
b
x
l
r
}}
F
i
b
:
…
…
…
b
x
l
r
F
a
c
t
:
b
}}
b
x
l
r
W
e
k
e
e
p
a
c
o
p
y
o
f
r0
h
e
re
.
B
u
t
w
e
d
o
n
’t
k
e
e
p
a
co
p
y
o
f
r0
h
e
re
!
Fib_Fact
r
4
f
p
f
p
l
r
x
(
3
)
17
7
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
7
7
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
A
c
o
m
p
il
e
r
w
il
l
li
k
e
ly
re
p
la
ce
s
u
ch
a
r
e
cu
rs
io
n
!
1
7
7
f
4
8
7
(
h
3
“F
i
”
2
7
f
u
n
c
t
i
o
n
F
a
c
t
(
x
:
N
a
t
u
r
a
l
)
r
e
t
u
r
n
P
o
s
i
t
i
v
e
i
s
F
a
c
:
P
o
s
i
t
i
v
e
:
=
1
;
b
e
g
i
n
f
o
r
i
i
n
1
.
.
x
l
o
o
p
F
a
c
:
=
F
a
c
*
i
;
e
n
d
l
o
o
p
;
r
e
t
u
r
n
F
a
c
;
e
n
d
F
a
c
t
;
f
u
n
c
t
i
o
n
F
a
c
t
(
x
:
N
a
t
u
r
a
l
)
r
e
t
u
r
n
P
o
s
i
t
i
v
e
i
s
(
i
f
x
=
0
t
h
e
n
1
e
l
s
e
x
*
F
a
c
t
(
x
–
1
)
)
;
17
3
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
7
3
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
…
…
…
m
o
v
r
0
,
#
1
b
l
F
i
b
_
F
a
c
t
m
o
v
r
3
,
r
0
…
…
…
…
F
i
b
_
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
r
4
,
l
r
}
…
s
u
b
s
p
,
#
4
s
t
r
r
0
,
[
s
p
]
b
l
F
i
b
m
o
v
r
4
,
r
0
l
d
r
r
0
,
[
s
p
]
b
l
F
a
c
t
a
d
d
r
0
,
r
4
a
d
d
s
p
,
#
4
l
d
m
i
a
s
p
!
,
{
r
4
,
l
r
}
b
x
l
r
Fib_
Fact
r
4
s
p
l
r
x
(
3
)
F
i
b
:
…
…
…
b
x
l
r
F
a
c
t
:
…
…
…
b
x
l
r
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
y
W
h
il
e
a
d
d
re
ss
in
g
v
ia
t
h
e
s
p
i
s
p
o
ss
ib
le
, i
t
m
ay
a
ls
o
b
e
co
m
p
le
x
to
k
e
e
p
t
ra
ck
o
f,
a
s
th
e
s
p
m
ay
c
h
an
g
e
f
u
rt
h
e
r.
16
9
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
6
9
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
…
…
…
m
o
v
r
0
,
#
1
b
l
F
i
b
_
F
a
c
t
m
o
v
r
3
,
r
0
…
…
…
…
F
i
b
_
F
a
c
t
:
s
t
r
l
r
,
[
s
p
,
#
–
4
]
!
…
…
…
b
l
F
i
b
m
o
v
r
4
,
r
0
…
b
l
F
a
c
t
a
d
d
r
0
,
r
4
…
l
d
r
l
r
,
[
s
p
]
,
#
4
b
x
l
r
F
i
b
:
…
…
…
b
x
l
r
F
a
c
t
:
…
…
…
b
x
l
r
l
r
s
p
N
p
ag
e
1
6
9
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
y
r
4
…
w
h
at
i
f
th
is
w
as
h
o
ld
in
g
s
o
m
e
i
n
fo
rm
at
io
n
at
t
h
e
t
im
e
w
h
e
n
w
e
w
e
re
c
al
le
d
?
18
2
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
8
2
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
F
i
b
_
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
r
4
,
f
p
,
l
r
}
a
d
d
f
p
,
s
p
,
#
8
s
u
b
s
p
,
#
4
s
t
r
r
0
,
[
f
p
,
#
–
1
2
]
b
l
F
i
b
m
o
v
r
4
,
r
0
l
d
r
r
0
,
[
f
p
,
#
–
1
2
]
b
l
F
a
c
t
a
d
d
r
0
,
r
0
,
r
4
a
d
d
s
p
,
#
4
l
d
m
i
a
s
p
!
,
{
r
4
,
f
p
,
l
r
}
b
x
l
r
tytytytyy
F
i
b
:
s
t
m
d
b
s
p
!
,
{
r
4
,
f
p
,
l
r
}
a
d
d
f
p
,
s
p
,
#
8
s
u
b
s
p
,
#
4
s
t
r
r
0
,
[
f
p
,
#
–
1
2
]
c
m
p
r
0
,
#
0
b
e
q
E
n
d
_
F
i
b
c
m
p
r
0
,
#
1
b
e
q
E
n
d
_
F
i
b
s
u
b
r
0
,
r
0
,
#
1
b
l
F
i
b
m
o
v
r
4
,
r
0
l
d
r
r
0
,
[
f
p
,
#
–
1
2
]
s
u
b
r
0
,
r
0
,
#
2
b
l
F
i
b
a
d
d
r
0
,
r
4
,
r
0
E
n
d
_
F
i
b
:
a
d
d
s
p
,
#
4
l
d
m
i
a
s
p
!
,
{
r
4
,
f
p
,
l
r
}
b
x
l
r
Fib_Fact
r
4
f
p
f
p
l
r
x
(
3
)
17
8
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
7
8
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
A
c
o
m
p
il
e
r
w
il
l
li
k
e
ly
re
p
la
ce
s
u
ch
a
r
e
cu
rs
io
n
!
u
n
s
i
g
n
e
d
i
n
t
f
a
c
t
(
u
n
s
i
g
n
e
d
i
n
t
x
)
{
i
f
(
x
=
=
0
)
r
e
t
u
r
n
1
;
e
l
s
e
r
e
t
u
r
n
x
*
f
a
c
t
(
x
–
1
)
;
}
1
7
8
f
4
8
7
(
h
3
“F
i
”
2
7
u
n
s
i
g
n
e
d
i
n
t
f
a
c
t
(
u
n
s
i
g
n
e
d
i
n
t
x
)
{
i
n
t
f
a
c
=
1
;
f
o
r
(
i
=
1
,
i
< = x , i + + ) { f a c = f a c * i ; } r e t u r n f a c ; } 17 4 Fu n ct io n s © 2 0 2 1 U w e R . Z im m er , T h e A u st ra li an N at io n al U n iv er si ty p ag e 1 7 4 o f 4 8 7 ( ch ap te r 3 : “F u n ct io n s” u p t o p ag e 2 3 2 ) … … … m o v r 0 , # 1 b l F i b _ F a c t m o v r 3 , r 0 … … … … F i b _ F a c t : s t m d b s p ! , { r 4 , f p , l r } a d d f p , s p , # 8 s u b s p , # 4 s t r r 0 , [ f p , # - 1 2 ] b l F i b m o v r 4 , r 0 l d r r 0 , [ f p , # - 1 2 ] b l F a c t a d d r 0 , r 4 a d d s p , # 4 l d m i a s p ! , { r 4 , f p , l r } b x l r Fib_Fact r 4 f p f p l r x ( 1 ) F i b : … … … b x l r F a c t : … … … b x l r 2 0 2 1 U w e R . Z im m er , T h e A u st ra li an N at io n al U n iv er si ty p ag e 1 7 4 o f y 2 0 2 1 U w e R . Z im m er , T h e A u st ra li an N at io n al U n iv er si ty p ag e 1 7 4 y K e e p in g a r e fe re n ce t o t h e s ta rt o f th e S ta ck F ra m e fo r th is f u n ct io n ( w it h t h e f ra m e -p o in te r fp ) m ak e s th in g s n e at e r an d e n ab le s st ru ct u re d a cc e ss t o t h e d yn am ic c o n te xt . 17 0 Fu n ct io n s © 2 0 2 1 U w e R . Z im m er , T h e A u st ra li an N at io n al U n iv er si ty p ag e 1 7 0 o f 4 8 7 ( ch ap te r 3 : “F u n ct io n s” u p t o p ag e 2 3 2 ) … … … m o v r 0 , # 1 b l F i b _ F a c t m o v r 3 , r 0 … … … … F i b _ F a c t : s t m d b s p ! , { r 4 , l r } … … … b l F i b m o v r 4 , r 0 … b l F a c t a d d r 0 , r 4 … l d m i a s p ! , { r 4 , l r } b x l r F i b : … … … b x l r F a c t : … … … b x l r Fib_ Fact r 4 s p l r 18 3 Fu n ct io n s © 2 0 2 1 U w e R . Z im m er , T h e A u st ra li an N at io n al U n iv er si ty p ag e 1 8 3 o f 4 8 7 ( ch ap te r 3 : “F u n ct io n s” u p t o p ag e 2 3 2 ) F i b _ F a c t : s t m d b s p ! , { r 4 , f p , l r } a d d f p , s p , # 8 s u b s p , # 4 s t r r 0 , [ f p , # - 1 2 ] b l F i b m o v r 4 , r 0 l d r r 0 , [ f p , # - 1 2 ] b l F a c t a d d r 0 , r 0 , r 4 a d d s p , # 4 l d m i a s p ! , { r 4 , f p , l r } b x l r tytytytyy F i b : s t m d b s p ! , { r 4 , f p , l r } a d d f p , s p , # 8 s u b s p , # 4 s t r r 0 , [ f p , # - 1 2 ] c m p r 0 , # 0 b e q E n d _ F i b c m p r 0 , # 1 b e q E n d _ F i b s u b r 0 , r 0 , # 1 b l F i b m o v r 4 , r 0 l d r r 0 , [ f p , # - 1 2 ] s u b r 0 , r 0 , # 2 b l F i b a d d r 0 , r 4 , r 0 E n d _ F i b : a d d s p , # 4 l d m i a s p ! , { r 4 , f p , l r } b x l r Fib_Fact r 4 f p f p l r x ( 3 ) p p r4 , r 0 4 , r 0 0 , [ f p , # - 1 2 ] a c t 0 , r 0 , r 4 p , # 4 p ! , { r 4 , f p , l r } r T h e re c o u ld b e tw o fu rt h e r Fi b -c al ls fo r e ac h c al l to F ib … W h at w o u ld t h e st ac k l o o k l ik e ? W h at w o u ld b e th e m ax im al d e p th fo r th e s ta ck ? 17 9 Fu n ct io n s © 2 0 2 1 U w e R . Z im m er , T h e A u st ra li an N at io n al U n iv er si ty p ag e 1 7 9 o f 4 8 7 ( ch ap te r 3 : “F u n ct io n s” u p t o p ag e 2 3 2 ) F a c t : a d d s r 3 , r 0 , # 0 m o v r 0 , # 1 b e q E n d _ F a c t F a c t _ L o o p : m u l r 0 , r 3 s u b s r 3 , # 1 b n e F a c t _ L o o p E n d _ F a c t : b x l r F i b _ F a c t : s t m d b s p ! , { r 4 , f p , l r } a d d f p , s p , # 8 s u b s p , # 4 s t r r 0 , [ f p , # - 1 2 ] b l F i b m o v r 4 , r 0 l d r r 0 , [ f p , # - 1 2 ] b l F a c t a d d r 0 , r 0 , r 4 a d d s p , # 4 l d m i a s p ! , { r 4 , f p , l r } b x l r }} F i b : … … … b x l r 2 0 2 1 U w e R . Z im m er , T h e A u st ra li an N at io n al U n iv er si ty p ag e y 2 0 2 1 U w e R . Z im m er , T h e A u st ra li an N at io n al U n iv er si ty p a y B e si d e s al l th e i n li n in g , u n ro ll in g , fl a tt e n in g , e tc . : S ta ck o p e ra ti o n s ar e s ti ll v it al f o r an y n o n -t ri vi al p ro g ra m . C o m p le xi ty ? R u n ti m e s? I s F a c t r ee n tr an t? Fib_Fact r 4 f p f p l r x ( 3 ) 17 5 Fu n ct io n s © 2 0 2 1 U w e R . Z im m er , T h e A u st ra li an N at io n al U n iv er si ty p ag e 1 7 5 o f 4 8 7 ( ch ap te r 3 : “F u n ct io n s” u p t o p ag e 2 3 2 ) R ec u rs iv e u n s i g n e d i n t f i b ( u n s i g n e d i n t x ) { s w i t c h ( x ) { c a s e 0 : r e t u r n 0 ; c a s e 1 : r e t u r n 1 ; d e f a u l t : r e t u r n f i b ( x - 1 ) + f i b ( x - 2 ) ; } } f u n c t i o n F i b ( x : N a t u r a l ) r e t u r n N a t u r a l i s ( c a s e x i s w h e n 0 = >
0
,
w
h
e
n
1
=
>
1
,
w
h
e
n
o
t
h
e
r
s
=
>
F
i
b
(
x
–
1
)
+
F
i
b
(
x
–
2
)
)
;
u
n
s
i
g
n
e
d
i
n
t
f
a
c
t
(
u
n
s
i
g
n
e
d
i
n
t
x
)
{
i
f
(
x
=
=
0
)
r
e
t
u
r
n
1
;
e
l
s
e
r
e
t
u
r
n
x
*
f
a
c
t
(
x
–
1
)
;
} f
u
n
c
t
i
o
n
F
a
c
t
(
x
:
N
a
t
u
r
a
l
)
r
e
t
u
r
n
P
o
s
i
t
i
v
e
i
s
(
i
f
x
=
0
t
h
e
n
1
e
l
s
e
x
*
F
a
c
t
(
x
–
1
)
)
;
W
il
l
o
u
r
st
ac
k
h
an
d
li
n
g
w
o
rk
fo
r
re
cu
rs
iv
e
f
u
n
ct
io
n
s?
17
1
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
7
1
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
…
…
…
m
o
v
r
0
,
#
1
b
l
F
i
b
_
F
a
c
t
m
o
v
r
3
,
r
0
…
…
…
…
F
i
b
_
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
r
4
,
l
r
}
…
…
…
b
l
F
i
b
m
o
v
r
4
,
r
0
…
b
l
F
a
c
t
a
d
d
r
0
,
r
4
…
l
d
m
i
a
s
p
!
,
{
r
4
,
l
r
}
b
x
l
r
F
i
b
:
…
…
…
b
x
l
r
F
a
c
t
:
…
…
…
b
x
l
r
Fib_
Fact
r
4
s
p
l
r
n
iv
er
si
ty
p
ag
e
1
7
y
i
itW
h
at
h
ap
p
e
n
s
to
o
u
r
p
ar
am
e
te
r
x
(
1)
d
u
ri
n
g
t
h
e
f
u
n
ct
io
n
?
19
6
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
9
6
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
r
5
,
f
p
,
l
r
}
a
d
d
f
p
,
s
p
,
#
4
m
o
v
r
5
,
r
0
l
d
r
r
0
,
[
r
5
]
c
m
p
r
0
,
#
0
b
n
e
C
a
s
e
_
O
t
h
e
r
s
m
o
v
r
0
,
#
1
b
E
n
d
_
F
a
c
t
C
a
s
e
_
O
t
h
e
r
s
:
s
u
b
r
0
,
#
1
s
t
r
r
0
,
[
r
5
]
m
o
v
r
0
,
r
5
b
l
F
a
c
t
m
o
v
r
1
,
r
0
l
d
r
r
0
,
[
r
5
]
m
u
l
r
0
,
r
1
E
n
d
_
F
a
c
t
:
m
o
v
s
p
,
f
p
l
d
m
i
a
s
p
!
,
{
r
5
,
f
p
,
l
r
}
b
x
l
r
F
i
b
_
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
r
4
,
f
p
,
l
r
}
a
d
d
f
p
,
s
p
,
#
8
s
u
b
s
p
,
#
4
s
t
r
r
0
,
[
f
p
,
#
–
1
2
]
b
l
F
i
b
m
o
v
r
4
,
r
0
s
u
b
r
0
,
f
p
,
#
1
2
b
l
F
a
c
t
a
d
d
r
0
,
r
0
,
r
4
a
d
d
s
p
,
#
4
l
d
m
i
a
s
p
!
,
{
r
4
,
f
p
,
l
r
}
b
x
l
r
}}
tytyy
W
e
t
u
rn
e
d
F
a
c
t
i
n
to
th
e
c
o
n
st
an
t
0.
Fib_FactFact 1Fact 0 Fact 2 Fact 3
r
5
r
4
f
p
f
p
l
r
l
r
r
5
x
(
0
)
f
p
l
r
r
5
f
p
l
r
r
5
f
p
l
r
f
p
s
p
Fact Fact Fact FaFac
r
5
Fact Fact Fact Fact Fac Facac Fact
r
5
Fact Fact Fac Fact Fac Fac Fact Fac
r
5
Fact Fact Fact Fact Fac Fact Facac
r
5
r
5
r
4
f
p
f
p
f
p
l
r
l
r
r
5
x
(
0
f
p
l
r
r
5
f
p
l
r
r
5
f
p
l
r
f
p
f
p
f
p
f
p
f
p
f
p
f
p
ff
p
ff
p
f
p
f
p
f
p
,
s
p
,
#
4
r
5
,
r
0
r
0
,
[
r
5
]
r
0
,
#
0
C
a
s
e
_
O
t
h
e
r
s
r
0
,
#
1
E
n
d
_
F
a
t
h
e
r
s
r
000
,
##
1
#
r
0
,
[
r
5555
]
r
0
,
r
5
F
a
c
t
r
1
,
r
0
r
0
,
[
r
5
]
r
0
,
r
1
c
t
:
s
s
_
FF
a
s
5
]]
r
1
r
iiiiiii
s
_
FFFFF
_
FFFFF
_
FFFFFFF
a
c
a
c
a
c
aa
c
aaa
c
a
c
a
c
a
c
t
a
c
a
c
a
c
t
a
c
a
c
a
c
aaa
c
t
a
c
a
c
a
c
a
c
a
c
ss
:
s
:
ss
:
s
:
s
:
ss
:
ss
:
s
:
s
:
ss
:
ss
:
s
:
s
:
s
:::
0
#
1
55
]]]]]]]]]]]]]]]]
r
1
r
11
r
111111
r
11
r
111
r
1
r
1
r
11
r
11111111
f
p
s
p
s
p
ss
p
ssssss
p
s
p
s
p
ss
p
s
p
s
p
s
p
s
p
ss
p
s
p
ss
p
s
ppppp
l
rp
!
,
{
r
5
,
f
pp
,
l
r
}
ll
c
t
:
c iiiiiii
s
p
,
f
p
f
p
fff
ii
aaaa
s
p
s
p
sss
p
!
,
{
r
5
,
f
p
,
l
r
}
f
p
c
t
:
ii
s
p
ssss
i
a
ii
a
i
a
i
W
h
at
d
id
w
e
o
ve
rl
o
o
k
?
19
2
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
9
2
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
A
cc
e
ss
b
y
co
p
y
b
y
re
fe
re
n
ce
In
fo
rm
at
io
n
fl
o
w
in
b
y
va
lu
e
Pa
ra
m
e
te
r
b
e
co
m
e
s
a
co
n
st
an
t
in
si
d
e
t
h
e
f
u
n
ct
io
n
o
r
is
co
p
ie
d
i
n
to
a
l
o
ca
l
va
ri
ab
le
.
b
y
re
fe
re
n
ce
(
im
m
u
ta
b
le
)
N
o
w
ri
te
a
cc
e
ss
i
s
al
lo
w
e
d
w
h
il
e
t
h
e
f
u
n
ct
io
n
r
u
n
s
(a
ls
o
fr
o
m
o
u
ts
id
e
t
h
e
f
u
n
ct
io
n
).
o
u
t
b
y
re
su
lt
C
al
li
n
g
f
u
n
ct
io
n
e
xp
e
ct
s
th
e
p
ar
am
e
te
r
va
lu
e
t
o
a
p
p
e
ar
i
n
a
sp
e
ci
fi
c
sp
ac
e
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
,
n
o
r
ea
d
)
N
o
r
e
ad
a
cc
e
ss
f
ro
m
i
n
si
d
e
t
h
e
fu
n
ct
io
n
, w
ri
te
a
cc
e
ss
o
n
r
e
tu
rn
.
in
&
o
u
t
b
y
va
lu
e
re
su
lt
Pa
ra
m
e
te
r
is
c
o
p
ie
d
t
o
a
l
o
ca
l
va
ri
ab
le
a
n
d
c
o
p
ie
d
b
ac
k
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
)
Fu
n
ct
io
n
c
an
r
e
ad
a
n
d
w
ri
te
a
t
an
y
ti
m
e
. O
u
ts
id
e
c
o
d
e
s
h
al
l
n
o
t
w
ri
te
.
A
ss
e
m
b
ly
“B
y
re
fe
re
n
ce
”
se
m
an
ti
cs
b
y
co
n
ve
n
ti
o
n
o
n
ly
.
18
8
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
8
8
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
A
cc
e
ss
b
y
co
p
y
b
y
re
fe
re
n
ce
In
fo
rm
at
io
n
fl
o
w
in
b
y
va
lu
e
Pa
ra
m
e
te
r
b
e
co
m
e
s
a
co
n
st
an
t
in
si
d
e
t
h
e
f
u
n
ct
io
n
o
r
is
co
p
ie
d
i
n
to
a
l
o
ca
l
va
ri
ab
le
.
b
y
re
fe
re
n
ce
(
im
m
u
ta
b
le
)
N
o
w
ri
te
a
cc
e
ss
i
s
al
lo
w
e
d
w
h
il
e
t
h
e
f
u
n
ct
io
n
r
u
n
s
(a
ls
o
fr
o
m
o
u
ts
id
e
t
h
e
f
u
n
ct
io
n
).
o
u
t
b
y
re
su
lt
C
al
li
n
g
f
u
n
ct
io
n
e
xp
e
ct
s
th
e
p
ar
am
e
te
r
va
lu
e
t
o
a
p
p
e
ar
i
n
a
sp
e
ci
fi
c
sp
ac
e
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
,
n
o
r
ea
d
)
N
o
r
e
ad
a
cc
e
ss
f
ro
m
i
n
si
d
e
t
h
e
fu
n
ct
io
n
, w
ri
te
a
cc
e
ss
o
n
r
e
tu
rn
.
in
&
o
u
t
b
y
va
lu
e
re
su
lt
Pa
ra
m
e
te
r
is
c
o
p
ie
d
t
o
a
l
o
ca
l
va
ri
ab
le
a
n
d
c
o
p
ie
d
b
ac
k
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
)
Fu
n
ct
io
n
c
an
r
e
ad
a
n
d
w
ri
te
a
t
an
y
ti
m
e
. O
u
ts
id
e
c
o
d
e
s
h
al
l
n
o
t
w
ri
te
.
b
y
co
p
y
y
p
y
y
p
y
y
p
y
b
y
re
fe
re
n
ce
yyy
A
cc
e
ss
b
y
co
p
y
b
y
re
fe
re
n
ce
C
Fu
ll
c
o
n
tr
o
l
o
ve
r
th
o
se
t
h
re
e
m
o
d
e
s.
“b
y
va
lu
e
”
p
ar
am
e
te
rs
a
re
l
o
ca
l
va
ri
ab
le
s.
“i
n
&
o
u
t,
b
y
re
fe
re
n
ce
”
sy
n
ta
ct
ic
al
ly
a
s
“b
y
p
o
in
te
r
va
lu
e
”
p
ar
am
e
te
rs
.
18
4
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
8
4
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
C
o
m
p
o
n
en
ts
/
p
h
as
es
o
f
a
fu
n
ct
io
n
c
al
l:
•
V
al
u
e
s
(p
ar
am
et
er
s)
t
o
b
e
p
as
se
d
t
o
a
f
u
n
ct
io
n
.
•
Lo
ca
l
va
ri
ab
le
s
in
si
d
e
a
f
u
n
ct
io
n
.
•
V
al
u
e
s
(r
es
u
lt
s)
t
o
b
e
r
e
tu
rn
e
d
f
ro
m
a
f
u
n
ct
io
n
.
S
o
f
ar
w
e
:
…
p
as
se
d
p
ar
am
et
er
v
al
u
e
s
in
r
e
g
is
te
rs
(
r0
–
r
3)
.
…
c
al
le
d
t
h
e
fu
n
ct
io
n
(
st
o
re
t
h
e
r
e
tu
rn
a
d
d
re
ss
a
n
d
j
u
m
p
t
o
t
h
e
b
e
g
in
n
in
g
o
f
th
e
f
u
n
ct
io
n
).
…
p
u
sh
ed
t
h
e
r
e
tu
rn
a
d
d
re
ss
, t
h
e
p
re
vi
o
u
s
st
ac
k
f
ra
m
e
a
n
d
u
se
d
r
e
g
is
te
rs
(
r4
…
).
…
c
re
at
ed
a
n
ew
s
ta
ck
f
ra
m
e
(a
n
d
a
d
d
re
ss
e
d
a
ll
l
o
ca
l
va
ri
ab
le
s
re
la
ti
ve
t
o
t
h
is
).
…
g
re
w
t
h
e
st
ac
k
su
ch
t
h
at
i
t
ca
n
h
o
ld
t
h
e
l
o
ca
l
va
ri
ab
le
s.
…
d
o
n
e
th
e
ca
lc
u
la
ti
o
n
s/
o
p
er
at
io
n
s
b
as
e
d
o
n
t
h
e
l
o
ca
l
va
ri
ab
le
s
an
d
s
cr
at
ch
r
e
g
is
te
rs
.
…
p
as
se
d
r
et
u
rn
v
al
u
es
i
n
r
e
g
is
te
rs
(
r0
–
r
1)
.
…
r
es
to
re
d
t
h
e
st
ac
k
p
o
in
te
r
(a
n
d
t
h
u
s
d
e
-a
ll
o
ca
te
d
a
ll
l
o
ca
l
va
ri
ab
le
s)
.
…
p
o
p
p
ed
t
h
e
r
e
tu
rn
a
d
d
re
ss
, t
h
e
p
re
vi
o
u
s
st
ac
k
f
ra
m
e
a
n
d
u
se
d
r
e
g
is
te
rs
(
r4
…
).
…
ju
m
p
ed
b
ac
k
to
t
h
e
n
e
xt
i
n
st
ru
ct
io
n
a
ft
e
r
th
e
o
ri
g
in
al
f
u
n
ct
io
n
c
al
l.
…
u
se
d
t
h
e
re
tu
rn
v
al
u
es
f
o
u
n
d
i
n
r
0
–
r1
.
P
ro
lo
g
u
e
Ep
il
o
g
u
e
19
7
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
9
7
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
r
5
,
f
p
,
l
r
}
a
d
d
f
p
,
s
p
,
#
4
m
o
v
r
5
,
r
0
l
d
r
r
0
,
[
r
5
]
c
m
p
r
0
,
#
0
b
n
e
C
a
s
e
_
O
t
h
e
r
s
m
o
v
r
0
,
#
1
b
E
n
d
_
F
a
c
t
C
a
s
e
_
O
t
h
e
r
s
:
s
u
b
r
0
,
#
1
s
t
r
r
0
,
[
r
5
]
m
o
v
r
0
,
r
5
b
l
F
a
c
t
m
o
v
r
1
,
r
0
l
d
r
r
0
,
[
r
5
]
m
u
l
r
0
,
r
1
E
n
d
_
F
a
c
t
:
m
o
v
s
p
,
f
p
l
d
m
i
a
s
p
!
,
{
r
5
,
f
p
,
l
r
}
b
x
l
r
F
i
b
_
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
r
4
,
f
p
,
l
r
}
a
d
d
f
p
,
s
p
,
#
8
s
u
b
s
p
,
#
4
s
t
r
r
0
,
[
f
p
,
#
–
1
2
]
b
l
F
i
b
m
o
v
r
4
,
r
0
s
u
b
r
0
,
f
p
,
#
1
2
b
l
F
a
c
t
a
d
d
r
0
,
r
0
,
r
4
a
d
d
s
p
,
#
4
l
d
m
i
a
s
p
!
,
{
r
4
,
f
p
,
l
r
}
b
x
l
r
tytyy
p
,
F
i
b
d
b
!
{
4
f
m
d
b
s
p
!
,
{
r
4
,
f
p
,
l
r
d
f
p
,
s
p
,
#
8
b
s
p
,
#
4
r
r
0
,
[
f
p
,
#
–
1
2
]
}}
W
h
at
i
s
th
e
v
al
u
e
o
f
x
d
u
ri
n
g
o
n
e
e
xe
cu
ti
o
n
o
f
F
a
c
t
?
Fib_FactFact 1Fact 0 Fact 2 Fact 3
r
5
r
4
f
p
f
p
f
p
f
p
l
r
l
r
r
5
x
(
0
)
f
p
l
r
r
5
f
p
l
r
r
5
f
p
l
r
f
p
f
p
f
p
s
p
Fact Fact Fact FaFac F
r
5
Fact Fact Fact Fact Fac Facac Fact
r
5
Fact Fact Fac Fact Fac Fac Fact Fac
r
5
Fact Fact Fact Fact Fac Fact Facac
r
5
19
3
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
9
3
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
Pa
ra
m
et
er
p
as
si
n
g
C
al
l
b
y
n
am
e
…
i
s
co
n
ce
p
tu
al
ly
a
c
al
l-
b
y-
va
lu
e
, w
h
e
re
t
h
e
v
al
u
e
h
as
n
o
t
b
e
e
n
c
al
cu
la
te
d
y
e
t.
Te
ch
n
ic
al
ly
a
r
e
fe
re
n
ce
t
o
a
f
u
n
ct
io
n
i
s
p
as
se
d
a
n
d
t
h
e
e
va
lu
at
io
n
o
f
th
is
p
ar
am
e
te
r
(f
u
n
ct
io
n
)
is
l
e
ft
t
o
t
h
e
c
al
le
d
f
u
n
ct
io
n
.
Fe
at
u
re
s:
•
V
al
u
e
s
ar
e
o
n
ly
e
va
lu
at
e
d
i
f
an
d
w
h
e
n
t
h
e
y
ar
e
n
e
e
d
e
d
.
•
V
al
u
e
s
ca
n
c
h
an
g
e
d
u
ri
n
g
t
h
e
l
if
e
-t
im
e
o
f
a
fu
n
ct
io
n
(
in
c
as
e
o
f
si
d
e
-e
ff
e
ct
in
g
f
u
n
ct
io
n
s)
.
•
V
al
u
e
s
ca
n
b
e
s
to
re
d
o
n
ce
c
al
cu
la
te
d
(
in
c
as
e
o
f
si
d
e
-e
ff
e
ct
-f
re
e
f
u
n
ct
io
n
s)
.
W
h
il
e
t
h
is
i
s
p
o
ss
ib
le
t
o
a
d
e
g
re
e
i
n
m
o
st
p
ro
g
ra
m
m
in
g
l
an
g
u
ag
e
s
…
(e
ve
n
i
f
th
e
re
i
s
n
o
s
p
e
ci
fi
c
p
as
si
n
g
m
o
d
e
, y
o
u
c
an
s
ti
ll
p
as
s
a
re
fe
re
n
ce
t
o
a
f
u
n
ct
io
n
)
…
i
t
is
a
c
o
re
c
o
n
ce
p
t
fo
r
fu
n
ct
io
n
al
, l
az
y
e
va
lu
at
io
n
l
an
g
u
ag
e
s,
l
ik
e
e
.g
. H
as
k
e
ll
,
an
d
i
t
d
o
e
s
fi
n
d
i
ts
w
ay
b
ac
k
i
n
to
m
ai
n
st
re
am
l
an
g
u
ag
e
s
li
k
e
C
+
+
, .
N
ET
l
an
g
u
ag
e
s
o
r
P
yt
h
o
n
as
a
n
o
n
ym
o
u
s
fu
n
ct
io
n
s
(s
o
m
e
ti
m
e
s
re
fe
rr
e
d
t
o
a
s
m
-f
u
n
ct
io
n
s
o
r
m
-e
xp
re
ss
io
n
s)
.
Po
p
s
u
p
i
n
p
ro
g
ra
m
m
in
g
la
n
g
u
ag
e
s
si
n
ce
t
h
e
6
0’
s.
18
9
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
8
9
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
A
cc
e
ss
b
y
co
p
y
b
y
re
fe
re
n
ce
In
fo
rm
at
io
n
fl
o
w
in
b
y
va
lu
e
Pa
ra
m
e
te
r
b
e
co
m
e
s
a
co
n
st
an
t
in
si
d
e
t
h
e
f
u
n
ct
io
n
o
r
is
co
p
ie
d
i
n
to
a
l
o
ca
l
va
ri
ab
le
.
b
y
re
fe
re
n
ce
(
im
m
u
ta
b
le
)
N
o
w
ri
te
a
cc
e
ss
i
s
al
lo
w
e
d
w
h
il
e
t
h
e
f
u
n
ct
io
n
r
u
n
s
(a
ls
o
fr
o
m
o
u
ts
id
e
t
h
e
f
u
n
ct
io
n
).
o
u
t
b
y
re
su
lt
C
al
li
n
g
f
u
n
ct
io
n
e
xp
e
ct
s
th
e
p
ar
am
e
te
r
va
lu
e
t
o
a
p
p
e
ar
i
n
a
sp
e
ci
fi
c
sp
ac
e
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
,
n
o
r
ea
d
)
N
o
r
e
ad
a
cc
e
ss
f
ro
m
i
n
si
d
e
t
h
e
fu
n
ct
io
n
, w
ri
te
a
cc
e
ss
o
n
r
e
tu
rn
.
in
&
o
u
t
b
y
va
lu
e
re
su
lt
Pa
ra
m
e
te
r
is
c
o
p
ie
d
t
o
a
l
o
ca
l
va
ri
ab
le
a
n
d
c
o
p
ie
d
b
ac
k
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
)
Fu
n
ct
io
n
c
an
r
e
ad
a
n
d
w
ri
te
a
t
an
y
ti
m
e
. O
u
ts
id
e
c
o
d
e
s
h
al
l
n
o
t
w
ri
te
.
H
as
k
e
ll
O
n
ly
c
o
n
tr
o
l
o
ve
r
in
fo
rm
at
io
n
fl
o
w
–
n
o
t
o
ve
r
ac
ce
ss
.
si
ty
p
ag
e
1
8
9
o
f
y
4
8
7
(c
h
ap
te
r
3
:
“F
u
n
ct
io
n
s
7
tttetetetetetetteee n
ooooooooooo
r
is
co
p
ie
d
to
a
lo
ca
l
F
ti
r
is
c
o
p
ie
d
t
o
a
l
o
ca
l
an
d
c
o
p
ie
d
b
ac
k
a
t
re
tu
rn
.
Fu
n
ct
io
n
c
an
r
e
ad
a
n
d
w
ri
t
ti
m
e
. O
u
ts
id
e
c
o
d
e
s
h
al
l
n
“i
n
&
o
u
t”
p
ar
am
e
te
rs
a
re
s
id
e
-e
ff
e
ct
in
g
a
n
d
c
an
th
e
re
fo
re
n
o
t
e
xi
st
i
n
a
p
u
re
f
u
n
ct
io
n
al
l
an
g
u
ag
e
.
18
5
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
8
5
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
P
ro
lo
g
u
e
Ep
il
o
g
u
e
C
o
m
p
o
n
en
ts
/
p
h
as
es
o
f
a
fu
n
ct
io
n
c
al
l:
•
V
al
u
e
s
(p
ar
am
et
er
s)
t
o
b
e
p
as
se
d
t
o
a
f
u
n
ct
io
n
.
•
Lo
ca
l
va
ri
ab
le
s
in
si
d
e
a
f
u
n
ct
io
n
.
•
V
al
u
e
s
(r
es
u
lt
s)
t
o
b
e
r
e
tu
rn
e
d
f
ro
m
a
f
u
n
ct
io
n
.
S
o
f
ar
w
e
:
…
p
as
se
d
p
ar
am
et
er
v
al
u
e
s
in
r
e
g
is
te
rs
(
r0
–
r
3)
.
…
c
al
le
d
t
h
e
fu
n
ct
io
n
(
st
o
re
t
h
e
r
e
tu
rn
a
d
d
re
ss
a
n
d
j
u
m
p
t
o
t
h
e
b
e
g
in
n
in
g
o
f
th
e
f
u
n
ct
io
n
).
…
p
u
sh
ed
t
h
e
r
e
tu
rn
a
d
d
re
ss
, t
h
e
p
re
vi
o
u
s
st
ac
k
f
ra
m
e
a
n
d
u
se
d
r
e
g
is
te
rs
(
r4
…
).
…
c
re
at
ed
a
n
ew
s
ta
ck
f
ra
m
e
(a
n
d
a
d
d
re
ss
e
d
a
ll
l
o
ca
l
va
ri
ab
le
s
re
la
ti
ve
t
o
t
h
is
).
…
g
re
w
t
h
e
st
ac
k
su
ch
t
h
at
i
t
ca
n
h
o
ld
t
h
e
l
o
ca
l
va
ri
ab
le
s.
…
d
o
n
e
th
e
ca
lc
u
la
ti
o
n
s/
o
p
er
at
io
n
s
b
as
e
d
o
n
t
h
e
l
o
ca
l
va
ri
ab
le
s
an
d
s
cr
at
ch
r
e
g
is
te
rs
.
…
p
as
se
d
r
et
u
rn
v
al
u
es
i
n
r
e
g
is
te
rs
(
r0
–
r
1)
.
…
r
es
to
re
d
t
h
e
st
ac
k
p
o
in
te
r
(a
n
d
t
h
u
s
d
e
-a
ll
o
ca
te
d
a
ll
l
o
ca
l
va
ri
ab
le
s)
.
…
p
o
p
p
ed
t
h
e
r
e
tu
rn
a
d
d
re
ss
, t
h
e
p
re
vi
o
u
s
st
ac
k
f
ra
m
e
a
n
d
u
se
d
r
e
g
is
te
rs
(
r4
…
).
…
ju
m
p
ed
b
ac
k
to
t
h
e
n
e
xt
i
n
st
ru
ct
io
n
a
ft
e
r
th
e
o
ri
g
in
al
f
u
n
ct
io
n
c
al
l.
…
u
se
d
t
h
e
re
tu
rn
v
al
u
es
f
o
u
n
d
i
n
r
0
–
r1
.
W
h
at
h
ap
p
e
n
s
if
t
h
e
p
ar
am
e
te
rs
o
r
re
tu
rn
v
al
u
e
s
w
o
n
’t
fi
t
i
n
to
r
e
g
is
te
rs
?
19
8
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
9
8
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
Pa
ra
m
et
er
p
as
si
n
g
C
al
l
b
y
…
A
cc
e
ss
b
y
co
p
y
b
y
re
fe
re
n
ce
In
fo
rm
at
io
n
fl
o
w
in
b
y
va
lu
e
Pa
ra
m
e
te
r
b
e
co
m
e
s
a
co
n
st
an
t
in
si
d
e
t
h
e
f
u
n
ct
io
n
o
r
is
co
p
ie
d
i
n
to
a
l
o
ca
l
va
ri
ab
le
.
b
y
re
fe
re
n
ce
(
im
m
u
ta
b
le
)
N
o
w
ri
te
a
cc
e
ss
i
s
al
lo
w
e
d
w
h
il
e
t
h
e
f
u
n
ct
io
n
r
u
n
s
(a
ls
o
fr
o
m
o
u
ts
id
e
t
h
e
f
u
n
ct
io
n
).
o
u
t
b
y
re
su
lt
C
al
li
n
g
f
u
n
ct
io
n
e
xp
e
ct
s
th
e
p
ar
am
e
te
r
va
lu
e
t
o
a
p
p
e
ar
i
n
a
sp
e
ci
fi
c
sp
ac
e
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
,
n
o
r
ea
d
)
N
o
r
e
ad
a
cc
e
ss
f
ro
m
i
n
si
d
e
t
h
e
fu
n
ct
io
n
, w
ri
te
a
cc
e
ss
o
n
r
e
tu
rn
.
in
&
o
u
t
b
y
va
lu
e
re
su
lt
Pa
ra
m
e
te
r
is
c
o
p
ie
d
t
o
a
l
o
ca
l
va
ri
ab
le
a
n
d
c
o
p
ie
d
b
ac
k
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
)
Fu
n
ct
io
n
c
an
r
e
ad
a
n
d
w
ri
te
a
t
an
y
ti
m
e
. O
u
ts
id
e
c
o
d
e
s
h
al
l
n
o
t
w
ri
te
.
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
7
f
4
8
7
(
h
3
Y
e
t
w
e
u
se
d
t
h
is
m
o
d
e
e
N
o
r
e
ad
a
cc
e
ss
f
ro
m
i
n
si
d
e
t
h
e
))
e
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
,
n
o
r
ea
d
)
N
d
f
i
id
th
W
e
s
h
o
u
ld
h
av
e
u
se
d
e
it
h
e
r
o
f
th
o
se
m
o
d
e
s
19
4
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
9
4
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
Fib_FactFact 1Fact 0 Fact 2 Fact 3
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
f
p
,
l
r
}
a
d
d
f
p
,
s
p
,
#
4
s
u
b
s
p
,
#
4
s
t
r
r
0
,
[
f
p
,
#
–
8
]
c
m
p
r
0
,
#
0
b
n
e
C
a
s
e
_
O
t
h
e
r
s
m
o
v
r
0
,
#
1
b
E
n
d
_
F
a
c
t
C
a
s
e
_
O
t
h
e
r
s
:
s
u
b
r
0
,
#
1
b
l
F
a
c
t
m
o
v
r
1
,
r
0
l
d
r
r
0
,
[
f
p
,
#
–
8
]
m
u
l
r
0
,
r
1
E
n
d
_
F
a
c
t
:
a
d
d
s
p
,
#
4
l
d
m
i
a
s
p
!
,
{
f
p
,
l
r
}
b
x
l
r
F
i
b
_
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
r
4
,
f
p
,
l
r
}
a
d
d
f
p
,
s
p
,
#
8
s
u
b
s
p
,
#
4
s
t
r
r
0
,
[
f
p
,
#
–
1
2
]
b
l
F
i
b
m
o
v
r
4
,
r
0
l
d
r
r
0
,
[
f
p
,
#
–
1
2
]
b
l
F
a
c
t
a
d
d
r
0
,
r
0
,
r
4
a
d
d
s
p
,
#
4
l
d
m
i
a
s
p
!
,
{
r
4
,
f
p
,
l
r
}
b
x
l
r
}}
f
p
r
4
f
p
f
p
l
r
f
p
x
(
3
)
l
r
f
p
x
(
3
)
l
r
x
(
2
)
f
p
l
r
x
(
1
)
f
p
l
r
x
(
0
)
f
p
f
p
f
p
s
p
H
o
w
a
b
o
u
t
u
si
n
g
c
al
l
b
y
re
fe
re
n
ce
h
e
re
?
19
0
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
9
0
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
A
cc
e
ss
b
y
co
p
y
b
y
re
fe
re
n
ce
In
fo
rm
at
io
n
fl
o
w
in
b
y
va
lu
e
Pa
ra
m
e
te
r
b
e
co
m
e
s
a
co
n
st
an
t
in
si
d
e
t
h
e
f
u
n
ct
io
n
o
r
is
co
p
ie
d
i
n
to
a
l
o
ca
l
va
ri
ab
le
.
b
y
re
fe
re
n
ce
(
im
m
u
ta
b
le
)
N
o
w
ri
te
a
cc
e
ss
i
s
al
lo
w
e
d
w
h
il
e
t
h
e
f
u
n
ct
io
n
r
u
n
s
(a
ls
o
fr
o
m
o
u
ts
id
e
t
h
e
f
u
n
ct
io
n
).
o
u
t
b
y
re
su
lt
C
al
li
n
g
f
u
n
ct
io
n
e
xp
e
ct
s
th
e
p
ar
am
e
te
r
va
lu
e
t
o
a
p
p
e
ar
i
n
a
sp
e
ci
fi
c
sp
ac
e
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
,
n
o
r
ea
d
)
N
o
r
e
ad
a
cc
e
ss
f
ro
m
i
n
si
d
e
t
h
e
fu
n
ct
io
n
, w
ri
te
a
cc
e
ss
o
n
r
e
tu
rn
.
in
&
o
u
t
b
y
va
lu
e
re
su
lt
Pa
ra
m
e
te
r
is
c
o
p
ie
d
t
o
a
l
o
ca
l
va
ri
ab
le
a
n
d
c
o
p
ie
d
b
ac
k
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
)
Fu
n
ct
io
n
c
an
r
e
ad
a
n
d
w
ri
te
a
t
an
y
ti
m
e
. O
u
ts
id
e
c
o
d
e
s
h
al
l
n
o
t
w
ri
te
.
P
yt
h
o
n
A
ll
p
ar
am
e
te
r
ac
ce
ss
i
s
d
o
u
b
le
-i
n
d
ir
e
ct
(
h
an
d
le
s)
.
b
y
re
fe
re
n
ce
A
cc
e
ss
b
…
t
h
is
h
as
a
n
i
m
p
ac
t
o
n
p
e
rf
o
rm
an
ce
.
18
6
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
8
6
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
C
o
n
ve
n
ti
o
n
s
A
R
M
a
rc
h
it
e
ct
u
re
c
al
lin
g
p
ra
ct
ic
e
•
r0
-r
3
ar
e
u
se
d
f
o
r
p
ar
am
e
te
rs
.
•
r0
-r
1
ar
e
u
se
d
f
o
r
re
tu
rn
v
al
u
e
s.
•
r0
-r
3
ar
e
n
o
t
e
xp
e
ct
e
d
t
o
b
e
i
n
ta
ct
a
ft
e
r
a
fu
n
ct
io
n
c
al
l
…
a
ll
o
th
e
r
re
g
is
te
rs
a
re
e
xp
e
ct
e
d
t
o
b
e
i
n
ta
ct
!
I
f
th
o
se
r
e
g
is
te
rs
d
o
n
o
t
su
ffi
c
e
, a
d
d
it
io
n
al
p
ar
am
e
te
rs
an
d
r
e
su
lt
s
ar
e
p
as
se
d
v
ia
t
h
e
s
ta
ck
. C
o
n
ve
n
ti
o
n
s
a
re
d
if
fe
re
n
t
in
o
th
e
r
a
rc
h
it
e
c
tu
re
s
(e
.g
.
x
8
6
,
w
h
e
re
p
a
ra
m
e
te
rs
a
re
g
e
n
e
ra
ll
y
p
a
ss
e
d
v
ia
t
h
e
s
ta
c
k
).
f
h
W
h
y
a
re
t
h
e
se
c
o
n
ve
n
ti
o
n
s
a
rc
h
it
e
c
tu
re
r
e
la
te
d
a
t
a
ll
?
T
h
e
re
a
re
a
ls
o
m
e
m
o
ry
a
li
g
n
m
e
n
t
c
o
n
st
ra
in
ts
.
(M
o
st
ly
d
u
e
t
o
m
e
m
o
ry
b
u
s
c
o
n
st
ra
in
ts
)
19
9
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
9
9
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
A
cc
e
ss
b
y
co
p
y
b
y
re
fe
re
n
ce
In
fo
rm
at
io
n
fl
o
w
in
b
y
va
lu
e
Pa
ra
m
e
te
r
b
e
co
m
e
s
a
co
n
st
an
t
in
si
d
e
t
h
e
f
u
n
ct
io
n
o
r
is
co
p
ie
d
i
n
to
a
l
o
ca
l
va
ri
ab
le
.
b
y
re
fe
re
n
ce
(
im
m
u
ta
b
le
)
N
o
w
ri
te
a
cc
e
ss
i
s
al
lo
w
e
d
w
h
il
e
t
h
e
f
u
n
ct
io
n
r
u
n
s
(a
ls
o
fr
o
m
o
u
ts
id
e
t
h
e
f
u
n
ct
io
n
).
o
u
t
b
y
re
su
lt
C
al
li
n
g
f
u
n
ct
io
n
e
xp
e
ct
s
th
e
p
ar
am
e
te
r
va
lu
e
t
o
a
p
p
e
ar
i
n
a
sp
e
ci
fi
c
sp
ac
e
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
,
n
o
r
ea
d
)
N
o
r
e
ad
a
cc
e
ss
f
ro
m
i
n
si
d
e
t
h
e
fu
n
ct
io
n
, w
ri
te
a
cc
e
ss
o
n
r
e
tu
rn
.
in
&
o
u
t
b
y
va
lu
e
re
su
lt
Pa
ra
m
e
te
r
is
c
o
p
ie
d
t
o
a
l
o
ca
l
va
ri
ab
le
a
n
d
c
o
p
ie
d
b
ac
k
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
)
Fu
n
ct
io
n
c
an
r
e
ad
a
n
d
w
ri
te
a
t
an
y
ti
m
e
. O
u
ts
id
e
c
o
d
e
s
h
al
l
n
o
t
w
ri
te
.
A
W
h
e
n
t
o
u
se
w
h
at
?
19
5
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
9
5
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
r
5
,
f
p
,
l
r
}
a
d
d
f
p
,
s
p
,
#
4
m
o
v
r
5
,
r
0
l
d
r
r
0
,
[
r
5
]
c
m
p
r
0
,
#
0
b
n
e
C
a
s
e
_
O
t
h
e
r
s
m
o
v
r
0
,
#
1
b
E
n
d
_
F
a
c
t
C
a
s
e
_
O
t
h
e
r
s
:
s
u
b
r
0
,
#
1
s
t
r
r
0
,
[
r
5
]
m
o
v
r
0
,
r
5
b
l
F
a
c
t
m
o
v
r
1
,
r
0
l
d
r
r
0
,
[
r
5
]
m
u
l
r
0
,
r
1
E
n
d
_
F
a
c
t
:
m
o
v
s
p
,
f
p
l
d
m
i
a
s
p
!
,
{
r
5
,
f
p
,
l
r
}
b
x
l
r
F
i
b
_
F
a
c
t
:
s
t
m
d
b
s
p
!
,
{
r
4
,
f
p
,
l
r
}
a
d
d
f
p
,
s
p
,
#
8
s
u
b
s
p
,
#
4
s
t
r
r
0
,
[
f
p
,
#
–
1
2
]
b
l
F
i
b
m
o
v
r
4
,
r
0
s
u
b
r
0
,
f
p
,
#
1
2
b
l
F
a
c
t
a
d
d
r
0
,
r
0
,
r
4
a
d
d
s
p
,
#
4
l
d
m
i
a
s
p
!
,
{
r
4
,
f
p
,
l
r
}
b
x
l
r
}}
tytyy
r5
h
as
b
e
e
n
n
o
m
in
at
e
d
t
o
h
o
ld
th
e
r
e
fe
re
n
ce
t
o
x
i
n
si
d
e
F
a
c
t
Fib_FactFact 1Fact 0 Fact 2 Fact 3
r
5
r
4
f
p
f
p
f
p
f
p
l
r
l
r
r
5
x
(
0
)
f
p
l
r
r
5
f
p
l
r
r
5
f
p
l
r
f
p
f
p
f
p
s
p
Fact Fact Fact Fac FFacc
r
5
Fact Fact Fact FFacact Fact Fact
r
5
Fact Fact Fact Fact Fac Facac Fact
r
5
Fact Fact Fact FFac Fac Fact Fact
r
5
19
1
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
9
1
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
A
cc
e
ss
b
y
co
p
y
b
y
re
fe
re
n
ce
In
fo
rm
at
io
n
fl
o
w
in
b
y
va
lu
e
Pa
ra
m
e
te
r
b
e
co
m
e
s
a
co
n
st
an
t
in
si
d
e
t
h
e
f
u
n
ct
io
n
o
r
is
co
p
ie
d
i
n
to
a
l
o
ca
l
va
ri
ab
le
.
b
y
re
fe
re
n
ce
(
im
m
u
ta
b
le
)
N
o
w
ri
te
a
cc
e
ss
i
s
al
lo
w
e
d
w
h
il
e
t
h
e
f
u
n
ct
io
n
r
u
n
s
(a
ls
o
fr
o
m
o
u
ts
id
e
t
h
e
f
u
n
ct
io
n
).
o
u
t
b
y
re
su
lt
C
al
li
n
g
f
u
n
ct
io
n
e
xp
e
ct
s
th
e
p
ar
am
e
te
r
va
lu
e
t
o
a
p
p
e
ar
i
n
a
sp
e
ci
fi
c
sp
ac
e
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
,
n
o
r
ea
d
)
N
o
r
e
ad
a
cc
e
ss
f
ro
m
i
n
si
d
e
t
h
e
fu
n
ct
io
n
, w
ri
te
a
cc
e
ss
o
n
r
e
tu
rn
.
in
&
o
u
t
b
y
va
lu
e
re
su
lt
Pa
ra
m
e
te
r
is
c
o
p
ie
d
t
o
a
l
o
ca
l
va
ri
ab
le
a
n
d
c
o
p
ie
d
b
ac
k
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
)
Fu
n
ct
io
n
c
an
r
e
ad
a
n
d
w
ri
te
a
t
an
y
ti
m
e
. O
u
ts
id
e
c
o
d
e
s
h
al
l
n
o
t
w
ri
te
.
A
cc
e
ss
A
d
a
Li
m
it
e
d
c
o
n
tr
o
l
o
ve
r
“b
y
va
lu
e
r
e
su
lt
”.
“b
y
va
lu
e
”
p
ar
am
e
te
rs
a
re
c
o
n
st
an
ts
.
18
7
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
1
8
7
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
Pa
ra
m
et
er
p
as
si
n
g
C
al
l
b
y
…
A
cc
e
ss
b
y
co
p
y
b
y
re
fe
re
n
ce
In
fo
rm
at
io
n
fl
o
w
in
b
y
va
lu
e
Pa
ra
m
e
te
r
b
e
co
m
e
s
a
co
n
st
an
t
in
si
d
e
t
h
e
f
u
n
ct
io
n
o
r
is
co
p
ie
d
i
n
to
a
l
o
ca
l
va
ri
ab
le
.
b
y
re
fe
re
n
ce
(
im
m
u
ta
b
le
)
N
o
w
ri
te
a
cc
e
ss
i
s
al
lo
w
e
d
w
h
il
e
t
h
e
f
u
n
ct
io
n
r
u
n
s
(a
ls
o
fr
o
m
o
u
ts
id
e
t
h
e
f
u
n
ct
io
n
).
o
u
t
b
y
re
su
lt
C
al
li
n
g
f
u
n
ct
io
n
e
xp
e
ct
s
th
e
p
ar
am
e
te
r
va
lu
e
t
o
a
p
p
e
ar
i
n
a
sp
e
ci
fi
c
sp
ac
e
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
,
n
o
r
ea
d
)
N
o
r
e
ad
a
cc
e
ss
f
ro
m
i
n
si
d
e
t
h
e
fu
n
ct
io
n
, w
ri
te
a
cc
e
ss
o
n
r
e
tu
rn
.
in
&
o
u
t
b
y
va
lu
e
re
su
lt
Pa
ra
m
e
te
r
is
c
o
p
ie
d
t
o
a
l
o
ca
l
va
ri
ab
le
a
n
d
c
o
p
ie
d
b
ac
k
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
)
Fu
n
ct
io
n
c
an
r
e
ad
a
n
d
w
ri
te
a
t
an
y
ti
m
e
. O
u
ts
id
e
c
o
d
e
s
h
al
l
n
o
t
w
ri
te
.
21
2
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
1
2
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
St
at
ic
v
s.
d
yn
am
ic
l
in
ks
f
u
n
c
t
i
o
n
a
(
x
:
I
n
t
e
g
e
r
)
r
e
t
u
r
n
I
n
t
e
g
e
r
i
s
f
u
n
c
t
i
o
n
b
(
y
:
I
n
t
e
g
e
r
)
r
e
t
u
r
n
I
n
t
e
g
e
r
i
s
(
x
+
y
)
;
f
u
n
c
t
i
o
n
c
(
z
:
I
n
t
e
g
e
r
)
r
e
t
u
r
n
I
n
t
e
g
e
r
i
s
(
b
(
z
)
)
;
b
e
g
i
n
r
e
t
u
r
n
c
(
x
)
;
e
n
d
a
;
a
:
:
I
n
t
e
g
e
r
–
>
I
n
t
e
g
e
r
a
x
=
c
x
w
h
e
r
e
b
:
:
I
n
t
e
g
e
r
–
>
I
n
t
e
g
e
r
b
y
=
x
+
y
c
:
:
I
n
t
e
g
e
r
–
>
I
n
t
e
g
e
r
c
z
=
b
z
T
h
e
d
yn
am
ic
a
n
d
s
ta
ti
c
li
n
k
fo
r
f
u
n
c
t
i
o
n
c
a
re
b
o
th
f
u
n
c
t
i
o
n
a
.
20
8
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
0
8
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
Fu
n
ct
io
n
s
(i
n
p
ro
g
ra
m
m
in
g
l
an
g
u
ag
e
s)
h
av
e
a
c
o
n
te
xt
.
E
.g
. t
h
e
s
u
rr
o
u
n
d
in
g
f
u
n
ct
io
n
o
r
th
e
h
o
st
in
g
o
b
je
ct
.
T
h
e
c
al
le
r
k
n
o
w
s
th
is
c
o
n
te
xt
a
n
d
p
ro
vi
d
e
s
it
.
p
ag
e
2
0
8
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
20
4
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
0
4
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
A
cc
e
ss
b
y
co
p
y
b
y
re
fe
re
n
ce
In
fo
rm
at
io
n
fl
o
w
in
b
y
va
lu
e
Pa
ra
m
e
te
r
b
e
co
m
e
s
a
co
n
st
an
t
in
si
d
e
t
h
e
f
u
n
ct
io
n
o
r
is
co
p
ie
d
i
n
to
a
l
o
ca
l
va
ri
ab
le
.
b
y
re
fe
re
n
ce
(
im
m
u
ta
b
le
)
N
o
w
ri
te
a
cc
e
ss
i
s
al
lo
w
e
d
w
h
il
e
t
h
e
f
u
n
ct
io
n
r
u
n
s
(a
ls
o
fr
o
m
o
u
ts
id
e
t
h
e
f
u
n
ct
io
n
).
o
u
t
b
y
re
su
lt
C
al
li
n
g
f
u
n
ct
io
n
e
xp
e
ct
s
th
e
p
ar
am
e
te
r
va
lu
e
t
o
a
p
p
e
ar
i
n
a
sp
e
ci
fi
c
sp
ac
e
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
,
n
o
r
ea
d
)
N
o
r
e
ad
a
cc
e
ss
f
ro
m
i
n
si
d
e
t
h
e
fu
n
ct
io
n
, w
ri
te
a
cc
e
ss
o
n
r
e
tu
rn
.
in
&
o
u
t
b
y
va
lu
e
re
su
lt
Pa
ra
m
e
te
r
is
c
o
p
ie
d
t
o
a
l
o
ca
l
va
ri
ab
le
a
n
d
c
o
p
ie
d
b
ac
k
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
)
Fu
n
ct
io
n
c
an
r
e
ad
a
n
d
w
ri
te
a
t
an
y
ti
m
e
. O
u
ts
id
e
c
o
d
e
s
h
al
l
n
o
t
w
ri
te
.
A
Fu
n
ct
io
n
s
O
n
e
-w
ay
-I
n
a
n
d
b
y-
re
fe
re
n
ce
S
id
e
-e
ff
e
ct
-f
re
e
–
c
an
n
o
t
b
e
e
n
fo
rc
e
d
o
n
a
ss
e
m
b
ly
l
e
ve
l
(r
e
q
u
ir
e
s
co
m
p
il
e
r)
.
N
o
d
at
a
h
as
t
o
b
e
r
e
p
li
ca
te
d
.
V
al
u
e
s
h
av
e
t
o
b
e
p
as
se
d
i
n
m
e
m
o
ry
.
20
0
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
0
0
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
A
cc
e
ss
b
y
co
p
y
b
y
re
fe
re
n
ce
In
fo
rm
at
io
n
fl
o
w
in
b
y
va
lu
e
Pa
ra
m
e
te
r
b
e
co
m
e
s
a
co
n
st
an
t
in
si
d
e
t
h
e
f
u
n
ct
io
n
o
r
is
co
p
ie
d
i
n
to
a
l
o
ca
l
va
ri
ab
le
.
b
y
re
fe
re
n
ce
(
im
m
u
ta
b
le
)
N
o
w
ri
te
a
cc
e
ss
i
s
al
lo
w
e
d
w
h
il
e
t
h
e
f
u
n
ct
io
n
r
u
n
s
(a
ls
o
fr
o
m
o
u
ts
id
e
t
h
e
f
u
n
ct
io
n
).
o
u
t
b
y
re
su
lt
C
al
li
n
g
f
u
n
ct
io
n
e
xp
e
ct
s
th
e
p
ar
am
e
te
r
va
lu
e
t
o
a
p
p
e
ar
i
n
a
sp
e
ci
fi
c
sp
ac
e
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
,
n
o
r
ea
d
)
N
o
r
e
ad
a
cc
e
ss
f
ro
m
i
n
si
d
e
t
h
e
fu
n
ct
io
n
, w
ri
te
a
cc
e
ss
o
n
r
e
tu
rn
.
in
&
o
u
t
b
y
va
lu
e
re
su
lt
Pa
ra
m
e
te
r
is
c
o
p
ie
d
t
o
a
l
o
ca
l
va
ri
ab
le
a
n
d
c
o
p
ie
d
b
ac
k
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
)
Fu
n
ct
io
n
c
an
r
e
ad
a
n
d
w
ri
te
a
t
an
y
ti
m
e
. O
u
ts
id
e
c
o
d
e
s
h
al
l
n
o
t
w
ri
te
.
A
Fu
n
ct
io
n
s
O
n
e
-w
ay
a
n
d
b
y-
co
p
y
T
h
o
se
a
re
s
id
e
-e
ff
e
ct
-f
re
e
a
n
d
h
e
n
ce
t
h
e
r
e
su
lt
in
g
s
ce
n
ar
io
s
ar
e
e
as
y
to
a
n
al
ys
e
.
C
o
p
yi
n
g
l
ar
g
e
d
at
a
st
ru
ct
u
re
s
m
ig
h
t
b
e
t
im
e
c
o
n
su
m
in
g
o
r
in
fe
as
ib
le
.
V
al
u
e
s
ca
n
b
e
p
as
se
d
i
n
r
e
g
is
te
rs
.
21
3
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
1
3
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
St
at
ic
v
s.
d
yn
am
ic
l
in
ks
f
u
n
c
t
i
o
n
a
(
x
:
I
n
t
e
g
e
r
)
r
e
t
u
r
n
I
n
t
e
g
e
r
i
s
f
u
n
c
t
i
o
n
b
(
y
:
I
n
t
e
g
e
r
)
r
e
t
u
r
n
I
n
t
e
g
e
r
i
s
(
x
+
y
)
;
f
u
n
c
t
i
o
n
c
(
z
:
I
n
t
e
g
e
r
)
r
e
t
u
r
n
I
n
t
e
g
e
r
i
s
(
b
(
z
)
)
;
b
e
g
i
n
r
e
t
u
r
n
c
(
x
)
;
e
n
d
a
;
a
:
:
I
n
t
e
g
e
r
–
>
I
n
t
e
g
e
r
a
x
=
c
x
w
h
e
r
e
b
:
:
I
n
t
e
g
e
r
–
>
I
n
t
e
g
e
r
b
y
=
x
+
y
c
:
:
I
n
t
e
g
e
r
–
>
I
n
t
e
g
e
r
c
z
=
b
z
D
yn
am
ic
l
in
k
(p
ri
o
r
fr
am
e
)
T
h
e
c
al
le
r
o
f
f
u
n
c
t
i
o
n
b
i
s
f
u
n
c
t
i
o
n
c
.
H
e
n
ce
e
xc
e
p
ti
o
n
s
ra
is
e
d
i
n
b
a
re
h
an
d
le
d
fi
r
st
i
n
b
, t
h
e
n
i
n
c
, a
n
d
t
h
e
n
a
.
T
h
e
d
yn
am
ic
a
n
d
s
ta
ti
c
li
n
k
fo
r
f
u
n
c
t
i
o
n
c
a
re
b
o
th
f
u
n
c
t
i
o
n
a
.
20
9
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
0
9
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
Fu
n
ct
io
n
s
(i
n
p
ro
g
ra
m
m
in
g
l
an
g
u
ag
e
s)
h
av
e
a
c
o
n
te
xt
.
E
.g
. t
h
e
s
u
rr
o
u
n
d
in
g
f
u
n
ct
io
n
o
r
th
e
h
o
st
in
g
o
b
je
ct
.
T
h
e
c
al
le
r
k
n
o
w
s
th
is
c
o
n
te
xt
a
n
d
p
ro
vi
d
e
s
it
.
p
ag
e
2
0
9
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
S
o
m
e
l
an
g
u
ag
e
s
w
il
l
n
o
t
h
av
e
a
c
o
n
te
xt
b
y
d
e
fa
u
lt
, l
ik
e
C
o
r
A
ss
e
m
b
ly
.
(g
n
u
C
e
xp
an
d
s
th
e
C
s
ta
n
d
ar
d
an
d
p
ro
vi
d
e
s
it
t
h
o
u
g
h
)
20
5
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
0
5
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
Le
t
th
e
re
b
e
s
o
m
e
(
g
lo
b
al
)
d
at
a
o
n
t
h
e
s
ta
ck
.
S
ta
ck
-B
as
e
(
S
B
)
is
a
s
ta
ti
c
ad
d
re
ss
,
al
w
ay
s
p
o
in
ti
n
g
t
o
t
h
e
…
w
e
ll
.
S
ta
ck
-P
o
in
te
r
(S
P
)
p
o
in
ts
t
o
t
h
e
c
u
rr
e
n
t
to
p
o
f
th
e
s
ta
ck
.
p
ag
e
2
0
5
o
f
4
8
7
(c
h
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
G
lo
b
al
v
ar
ia
b
le
s
ca
n
a
ls
o
b
e
s
to
re
d
s
o
m
e
p
la
ce
e
ls
e
.
20
1
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
0
1
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
A
cc
e
ss
b
y
co
p
y
b
y
re
fe
re
n
ce
In
fo
rm
at
io
n
fl
o
w
in
b
y
va
lu
e
Pa
ra
m
e
te
r
b
e
co
m
e
s
a
co
n
st
an
t
in
si
d
e
t
h
e
f
u
n
ct
io
n
o
r
is
co
p
ie
d
i
n
to
a
l
o
ca
l
va
ri
ab
le
.
b
y
re
fe
re
n
ce
(
im
m
u
ta
b
le
)
N
o
w
ri
te
a
cc
e
ss
i
s
al
lo
w
e
d
w
h
il
e
t
h
e
f
u
n
ct
io
n
r
u
n
s
(a
ls
o
fr
o
m
o
u
ts
id
e
t
h
e
f
u
n
ct
io
n
).
o
u
t
b
y
re
su
lt
C
al
li
n
g
f
u
n
ct
io
n
e
xp
e
ct
s
th
e
p
ar
am
e
te
r
va
lu
e
t
o
a
p
p
e
ar
i
n
a
sp
e
ci
fi
c
sp
ac
e
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
,
n
o
r
ea
d
)
N
o
r
e
ad
a
cc
e
ss
f
ro
m
i
n
si
d
e
t
h
e
fu
n
ct
io
n
, w
ri
te
a
cc
e
ss
o
n
r
e
tu
rn
.
in
&
o
u
t
b
y
va
lu
e
re
su
lt
Pa
ra
m
e
te
r
is
c
o
p
ie
d
t
o
a
l
o
ca
l
va
ri
ab
le
a
n
d
c
o
p
ie
d
b
ac
k
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
)
Fu
n
ct
io
n
c
an
r
e
ad
a
n
d
w
ri
te
a
t
an
y
ti
m
e
. O
u
ts
id
e
c
o
d
e
s
h
al
l
n
o
t
w
ri
te
.
A
Fu
n
ct
io
n
s
Tw
o
-w
ay
a
n
d
b
y-
co
p
y
S
ti
ll
s
id
e
-e
ff
e
ct
-f
re
e
w
it
h
in
t
h
e
f
u
n
ct
io
n
(
b
u
t
n
o
t
o
n
t
h
e
o
u
ts
id
e
).
Po
te
n
ti
al
ly
m
o
re
c
o
n
ve
n
ie
n
t
as
m
e
m
o
ry
s
p
ac
e
c
an
b
e
r
e
u
se
d
.
V
al
u
e
s
ca
n
b
e
p
as
se
d
i
n
r
e
g
is
te
rs
.
21
4
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
1
4
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
St
at
ic
v
s.
d
yn
am
ic
l
in
ks
f
u
n
c
t
i
o
n
a
(
x
:
I
n
t
e
g
e
r
)
r
e
t
u
r
n
I
n
t
e
g
e
r
i
s
f
u
n
c
t
i
o
n
b
(
y
:
I
n
t
e
g
e
r
)
r
e
t
u
r
n
I
n
t
e
g
e
r
i
s
(
x
+
y
)
;
f
u
n
c
t
i
o
n
c
(
z
:
I
n
t
e
g
e
r
)
r
e
t
u
r
n
I
n
t
e
g
e
r
i
s
(
b
(
z
)
)
;
b
e
g
i
n
r
e
t
u
r
n
c
(
x
)
;
e
n
d
a
;
a
:
:
I
n
t
e
g
e
r
–
>
I
n
t
e
g
e
r
a
x
=
c
x
w
h
e
r
e
b
:
:
I
n
t
e
g
e
r
–
>
I
n
t
e
g
e
r
b
y
=
x
+
y
c
:
:
I
n
t
e
g
e
r
–
>
I
n
t
e
g
e
r
c
z
=
b
z
D
yn
am
ic
l
in
k
(p
ri
o
r
fr
am
e
)
T
h
e
c
al
le
r
o
f
f
u
n
c
t
i
o
n
b
i
s
f
u
n
c
t
i
o
n
c
.
St
at
ic
l
in
k
(c
o
n
te
xt
)
T
h
e
c
o
n
te
xt
f
o
r
f
u
n
c
t
i
o
n
b
i
s
f
u
n
c
t
i
o
n
a
.
p
ag
e
2
1
4
o
f
4
8
7
(c
h
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
7
p
ag
e
2
1
4
o
f
4
8
7
(c
h
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
to
p
ag
e
2
3
2
)
7
H
e
n
ce
b
c
an
a
cc
e
ss
x
(
b
u
t
n
o
t
z
).
H
e
n
ce
e
xc
e
p
ti
o
n
s
ra
is
e
d
i
n
b
a
re
h
an
d
le
d
fi
r
st
i
n
b
, t
h
e
n
i
n
c
, a
n
d
t
h
e
n
a
.
T
h
e
d
yn
am
ic
a
n
d
s
ta
ti
c
li
n
k
fo
r
f
u
n
c
t
i
o
n
c
a
re
b
o
th
f
u
n
c
t
i
o
n
a
.
21
0
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
1
0
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
T
h
e
c
al
le
r
al
so
p
ro
vi
d
e
s
a
re
fe
re
n
ce
t
o
i
ts
o
w
n
s
ta
ck
f
ra
m
e
.
T
h
is
b
u
il
d
s
a
li
n
e
ar
c
h
ai
n
o
f
ca
ll
s
th
ro
u
g
h
t
h
e
s
ta
ck
.
W
il
l
b
e
u
se
d
e
.g
. f
o
r
d
e
b
u
g
g
in
g
(
st
ac
k
t
ra
ce
)
an
d
e
xc
e
p
ti
o
n
p
ro
p
ag
at
io
n
.
p
ag
e
2
1
0
o
f
4
8
7
(c
h
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
T
h
e
s
ta
ti
c
an
d
d
yn
am
ic
l
in
k
m
ig
h
t
b
e
i
d
e
n
ti
ca
l
in
s
o
m
e
c
as
e
s.
20
6
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
0
6
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
T
h
e
c
u
rr
e
n
t
co
d
e
p
re
p
ar
e
d
t
o
c
al
l
a
fu
n
ct
io
n
:
P
u
sh
p
ar
am
e
te
rs
o
n
t
h
e
s
ta
ck
.
W
o
rk
s
fo
r
an
y
d
at
a
si
ze
(
u
n
le
ss
t
h
e
s
ta
ck
o
ve
rfl
o
w
s)
an
d
p
ar
am
e
te
r
p
as
si
n
g
m
o
d
e
.
p
ag
e
2
0
6
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
a
Ty
p
e
s,
s
to
ra
g
e
s
tr
u
ct
u
re
s
an
d
p
as
si
n
g
m
o
d
e
s
h
av
e
t
o
b
e
a
g
re
e
d
u
p
o
n
b
e
tw
e
e
n
c
al
le
r
an
d
c
al
le
e
.
20
2
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
0
2
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
A
cc
e
ss
b
y
co
p
y
b
y
re
fe
re
n
ce
In
fo
rm
at
io
n
fl
o
w
in
b
y
va
lu
e
Pa
ra
m
e
te
r
b
e
co
m
e
s
a
co
n
st
an
t
in
si
d
e
t
h
e
f
u
n
ct
io
n
o
r
is
co
p
ie
d
i
n
to
a
l
o
ca
l
va
ri
ab
le
.
b
y
re
fe
re
n
ce
(
im
m
u
ta
b
le
)
N
o
w
ri
te
a
cc
e
ss
i
s
al
lo
w
e
d
w
h
il
e
t
h
e
f
u
n
ct
io
n
r
u
n
s
(a
ls
o
fr
o
m
o
u
ts
id
e
t
h
e
f
u
n
ct
io
n
).
o
u
t
b
y
re
su
lt
C
al
li
n
g
f
u
n
ct
io
n
e
xp
e
ct
s
th
e
p
ar
am
e
te
r
va
lu
e
t
o
a
p
p
e
ar
i
n
a
sp
e
ci
fi
c
sp
ac
e
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
,
n
o
r
ea
d
)
N
o
r
e
ad
a
cc
e
ss
f
ro
m
i
n
si
d
e
t
h
e
fu
n
ct
io
n
, w
ri
te
a
cc
e
ss
o
n
r
e
tu
rn
.
in
&
o
u
t
b
y
va
lu
e
re
su
lt
Pa
ra
m
e
te
r
is
c
o
p
ie
d
t
o
a
l
o
ca
l
va
ri
ab
le
a
n
d
c
o
p
ie
d
b
ac
k
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
)
Fu
n
ct
io
n
c
an
r
e
ad
a
n
d
w
ri
te
a
t
an
y
ti
m
e
. O
u
ts
id
e
c
o
d
e
s
h
al
l
n
o
t
w
ri
te
.
A
Fu
n
ct
io
n
s
Tw
o
-w
ay
a
n
d
b
y-
re
fe
re
n
ce
S
id
e
-e
ff
e
ct
in
g
a
n
d
p
ar
ti
cu
la
r
ca
re
i
s
re
q
u
ir
e
d
a
s
m
u
lt
ip
le
e
n
ti
ti
e
s
co
u
ld
w
ri
te
o
n
t
h
is
.
N
o
d
at
a
h
as
t
o
b
e
r
e
p
li
ca
te
d
.
V
al
u
e
s
h
av
e
t
o
b
e
p
as
se
d
i
n
m
e
m
o
ry
.
21
5
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
1
5
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
T
h
e
c
al
le
r
al
so
p
ro
vi
d
e
s
a
re
fe
re
n
ce
t
o
i
ts
o
w
n
s
ta
ck
f
ra
m
e
.
T
h
is
b
u
il
d
s
a
li
n
e
ar
c
h
ai
n
o
f
ca
ll
s
th
ro
u
g
h
t
h
e
s
ta
ck
.
W
il
l
b
e
u
se
d
e
.g
. f
o
r
d
e
b
u
g
g
in
g
(
st
ac
k
t
ra
ce
)
an
d
e
xc
e
p
ti
o
n
p
ro
p
ag
at
io
n
.
p
ag
e
2
1
5
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
21
1
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
1
1
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
St
at
ic
v
s.
d
yn
am
ic
l
in
ks
f
u
n
c
t
i
o
n
a
(
x
:
I
n
t
e
g
e
r
)
r
e
t
u
r
n
I
n
t
e
g
e
r
i
s
f
u
n
c
t
i
o
n
b
(
y
:
I
n
t
e
g
e
r
)
r
e
t
u
r
n
I
n
t
e
g
e
r
i
s
(
x
+
y
)
;
f
u
n
c
t
i
o
n
c
(
z
:
I
n
t
e
g
e
r
)
r
e
t
u
r
n
I
n
t
e
g
e
r
i
s
(
b
(
z
)
)
;
b
e
g
i
n
r
e
t
u
r
n
c
(
x
)
;
e
n
d
a
;
a
:
:
I
n
t
e
g
e
r
–
>
I
n
t
e
g
e
r
a
x
=
c
x
w
h
e
r
e
b
:
:
I
n
t
e
g
e
r
–
>
I
n
t
e
g
e
r
b
y
=
x
+
y
c
:
:
I
n
t
e
g
e
r
–
>
I
n
t
e
g
e
r
c
z
=
b
z
20
7
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
0
7
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
T
h
e
c
u
rr
e
n
t
co
d
e
p
re
p
ar
e
d
t
o
c
al
l
a
fu
n
ct
io
n
:
P
u
sh
p
ar
am
e
te
rs
o
n
t
h
e
s
ta
ck
.
W
o
rk
s
fo
r
an
y
d
at
a
si
ze
(
u
n
le
ss
t
h
e
s
ta
ck
o
ve
rfl
o
w
s)
an
d
p
ar
am
e
te
r
p
as
si
n
g
m
o
d
e
.
p
ag
e
2
0
7
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
Ty
p
e
s,
s
to
ra
g
e
s
tr
u
ct
u
re
s
an
d
p
as
si
n
g
m
o
d
e
s
h
av
e
t
o
b
e
a
g
re
e
d
u
p
o
n
b
e
tw
e
e
n
c
al
le
r
an
d
c
al
le
e
.
S
o
lv
e
d
i
f
it
’s
t
h
e
s
am
e
la
n
g
u
ag
e
, c
o
m
p
il
e
r
an
d
p
ro
g
ra
m
.
I
f
th
e
l
an
g
u
ag
e
s
o
r
th
e
c
o
m
p
il
e
rs
a
re
d
if
fe
re
n
t,
t
h
e
n
s
ta
n
d
ar
d
s
w
il
l
b
e
r
e
q
u
ir
e
d
.
20
3
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
0
3
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
A
cc
e
ss
b
y
co
p
y
b
y
re
fe
re
n
ce
In
fo
rm
at
io
n
fl
o
w
in
b
y
va
lu
e
Pa
ra
m
e
te
r
b
e
co
m
e
s
a
co
n
st
an
t
in
si
d
e
t
h
e
f
u
n
ct
io
n
o
r
is
co
p
ie
d
i
n
to
a
l
o
ca
l
va
ri
ab
le
.
b
y
re
fe
re
n
ce
(
im
m
u
ta
b
le
)
N
o
w
ri
te
a
cc
e
ss
i
s
al
lo
w
e
d
w
h
il
e
t
h
e
f
u
n
ct
io
n
r
u
n
s
(a
ls
o
fr
o
m
o
u
ts
id
e
t
h
e
f
u
n
ct
io
n
).
o
u
t
b
y
re
su
lt
C
al
li
n
g
f
u
n
ct
io
n
e
xp
e
ct
s
th
e
p
ar
am
e
te
r
va
lu
e
t
o
a
p
p
e
ar
i
n
a
sp
e
ci
fi
c
sp
ac
e
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
,
n
o
r
ea
d
)
N
o
r
e
ad
a
cc
e
ss
f
ro
m
i
n
si
d
e
t
h
e
fu
n
ct
io
n
, w
ri
te
a
cc
e
ss
o
n
r
e
tu
rn
.
in
&
o
u
t
b
y
va
lu
e
re
su
lt
Pa
ra
m
e
te
r
is
c
o
p
ie
d
t
o
a
l
o
ca
l
va
ri
ab
le
a
n
d
c
o
p
ie
d
b
ac
k
a
t
re
tu
rn
.
b
y
re
fe
re
n
ce
(
m
u
ta
b
le
)
Fu
n
ct
io
n
c
an
r
e
ad
a
n
d
w
ri
te
a
t
an
y
ti
m
e
. O
u
ts
id
e
c
o
d
e
s
h
al
l
n
o
t
w
ri
te
.
A
Fu
n
ct
io
n
s
O
n
e
-w
ay
-O
u
t
an
d
b
y-
re
fe
re
n
ce
S
id
e
-e
ff
e
ct
-f
re
e
, i
f
n
e
w
m
e
m
o
ry
i
s
al
lo
ca
te
d
o
n
r
e
tu
rn
–
ca
n
n
o
t
b
e
e
n
fo
rc
e
d
o
n
a
ss
e
m
b
ly
l
e
ve
l
(r
e
q
u
ir
e
s
co
m
p
il
e
r)
.
V
al
u
e
s
h
av
e
t
o
b
e
p
as
se
d
i
n
m
e
m
o
ry
.
22
8
Fu
n
ct
io
n
s
p
ag
e
2
2
8
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
–
H
ea
p
(G
lo
b
al
)
va
ri
ab
le
s
Pa
ra
m
et
er
s
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
Lo
ca
l
va
ri
ab
le
s
F
P
S
P
Pa
ra
m
et
er
s
Lo
ca
l
va
ri
ab
le
s
Sa
ve
d
r
es
o
u
rc
es
C
al
le
r
C
al
le
e
C
o
n
te
xt
(
st
at
ic
)
li
n
k
S
B
H
o
w
t
o
k
e
e
p
a
n
y
m
e
m
o
ry
al
lo
ca
ti
o
n
a
ft
e
r
fu
n
ct
io
n
r
e
tu
rn
?
22
4
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
2
4
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
T
h
e
n
e
xt
f
u
n
ct
io
n
c
al
l
w
il
l
p
ro
d
u
ce
t
h
e
n
e
xt
s
ta
ck
f
ra
m
e
.
N
o
te
w
h
ic
h
v
ar
ia
b
le
s
an
d
p
ar
am
e
te
rs
a
re
v
is
ib
le
.
p
ag
e
2
2
4
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
C
al
le
r
C
al
le
e
Sa
ve
d
r
es
o
u
rc
es
F
P
S
P
Lo
ca
l
va
ri
ab
le
s
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
Pa
ra
m
et
er
s
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
Lo
ca
l
va
ri
ab
le
s
F
P
S
P
C
o
n
te
xt
(
st
at
ic
)
li
n
k
yn
am
ic
)
li
n
k
ar
ia
b
le
s
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
Lo
ca
l
va
ri
ab
le
s
Sa
ve
d
r
es
o
u
rc
es
C
al
le
r
C
al
le
e
C
o
n
te
xt
(
st
at
ic
)
li
n
k
yn
am
ic
)
li
n
k
ar
ia
b
le
s
ar
ia
b
le
s
ar
ia
b
le
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
S
B
A
cc
e
ss
in
g
t
h
e
c
o
n
te
xt
l
ik
e
th
at
c
an
b
e
i
n
e
ffi
c
ie
n
t!
C
o
m
p
il
e
rs
m
ay
c
h
o
se
o
th
e
r
m
e
ch
an
is
m
(
e
.g
. d
is
p
la
ys
,
w
h
ic
h
m
ak
e
a
ll
c
o
n
te
xt
le
ve
ls
a
cc
e
ss
ib
le
a
t
o
n
ce
).
22
0
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
2
0
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
Lo
ca
l
va
ri
ab
le
s
ar
e
a
ll
o
ca
te
d
(
b
y
m
o
vi
n
g
t
h
e
s
ta
ck
p
o
in
te
r)
.
Lo
ca
l
va
ri
ab
le
s
ca
n
b
e
o
f
an
y
si
ze
o
r
st
ru
ct
u
re
,
u
n
le
ss
t
h
e
s
ta
ck
o
ve
rfl
o
w
s.
T
h
e
c
o
m
p
le
te
s
a
n
e
w
s
ta
ck
f
ra
m
e.
p
ag
e
2
2
0
o
f
4
8
7
(c
h
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
C
al
le
r
C
al
le
e
Sa
ve
d
r
es
o
u
rc
es
F
P
S
P
Lo
ca
l
va
ri
ab
le
s
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
C
al
le
r
C
al
le
e
Sa
v
ce
s
F
P
Lo
ca
l
va
ri
ab
le
s
W
h
il
e
t
h
is
f
u
n
ct
io
n
i
s
e
xe
cu
ti
n
g
, l
o
ca
l
va
ri
ab
le
s
ca
n
s
ti
ll
b
e
a
d
d
e
d
.
H
an
d
y,
i
f
e
.g
. t
h
e
s
iz
e
o
f
a
lo
ca
l
va
ri
ab
le
i
s
n
o
t
ye
t
d
e
te
rm
in
e
d
w
h
e
n
t
h
e
f
u
n
ct
io
n
s
ta
rt
s.
21
6
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
1
6
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
T
h
e
l
as
t
it
e
m
t
o
b
e
s
to
re
d
b
e
fo
re
h
an
d
in
g
o
ve
r
co
n
tr
o
l
is
t
h
e
a
d
d
re
ss
o
f
th
e
f
o
ll
o
w
in
g
i
n
st
ru
ct
io
n
.
T
h
e
c
o
n
tr
o
l
fl
o
w
c
an
l
at
e
r
re
tu
rn
t
o
t
h
is
a
d
d
re
ss
.
p
ag
e
2
1
6
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
22
9
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
2
9
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
–
H
ea
p
B
y
u
si
n
g
a
n
o
u
t,
b
y-
re
fe
re
n
ce
p
ar
am
e
te
r,
th
e
l
in
k
t
o
t
h
e
n
e
w
ly
a
ll
o
ca
te
d
m
e
m
o
ry
a
re
a
is
k
e
p
t.
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
(G
lo
b
al
)
va
ri
ab
le
s
Pa
ra
m
et
er
s
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
Lo
ca
l
va
ri
ab
le
s
F
P
S
P
Pa
ra
m
et
er
s
Lo
ca
l
va
ri
ab
le
s
Sa
ve
d
r
es
o
u
rc
es
C
o
n
te
xt
(
st
at
ic
)
li
n
k
S
B
H
e
a
p
m
e
m
o
r
y
H
o
w
t
o
k
e
e
p
a
n
y
m
e
m
o
ry
al
lo
ca
ti
o
n
a
ft
e
r
fu
n
ct
io
n
r
e
tu
rn
?
22
5
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
2
5
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
p
ag
e
2
2
5
o
f
4
8
7
(c
h
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
C
al
le
r
C
al
le
e
Sa
ve
d
r
es
o
u
rc
es
F
P
S
P
Lo
ca
l
va
ri
ab
le
s
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
Pa
ra
m
et
er
s
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
Lo
ca
l
va
ri
ab
le
s
F
P
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
Lo
ca
l
va
ri
ab
le
s
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
Lo
ca
l
va
ri
ab
le
s
Sa
ve
d
r
es
o
u
rc
es
C
al
le
r
C
al
le
e
Pa
r
PP
am
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
Lo
ca
l
v
Lo
ca
l
v
Lo
ca
l
va
ri
ab
le
s
ar
ia
b
le
s
ar
ia
b
le
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
S
B
H
o
w
f
as
t
/
co
m
p
le
x
is
t
h
e
al
lo
ca
ti
o
n
a
n
d
d
ea
ll
o
ca
ti
o
n
o
f
lo
ca
l v
ar
ia
b
le
s
an
d
p
ar
am
e
te
rs
o
n
t
h
e
s
ta
ck
?
22
1
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
2
1
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
T
h
e
n
e
xt
f
u
n
ct
io
n
c
al
l
w
il
l
p
ro
d
u
ce
t
h
e
n
e
xt
s
ta
ck
f
ra
m
e
.
V
ar
ia
b
le
s
an
d
p
ar
am
e
te
rs
f
ro
m
t
h
e
c
o
n
te
xt
s
ta
y
vi
si
b
le
(v
ia
t
h
e
c
h
ai
n
o
f
st
at
ic
l
in
k
s)
.
p
ag
e
2
2
1
o
f
4
8
7
(c
h
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
C
al
le
r
C
al
le
e
Sa
ve
d
r
es
o
u
rc
es
F
P
S
P
Lo
ca
l
va
ri
ab
le
s
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
F
P
Lo
ca
l
va
ri
ab
le
s
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
Lo
ca
l
va
ri
ab
le
s
C
al
le
r
C
al
le
e
21
7
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
1
7
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
C
o
n
tr
o
l
is
h
an
d
e
d
o
ve
r
to
t
h
e
c
al
le
e
.
T
h
e
I
n
st
ru
ct
io
n
P
o
in
te
r
(I
P
),
s
o
m
e
ti
m
e
s
al
so
c
al
le
d
P
ro
g
ra
m
C
o
u
n
te
r
(P
C
)
is
c
h
an
g
e
d
t
o
a
n
e
w
a
d
d
re
ss
.
O
p
e
ra
ti
o
n
s
fr
o
m
h
e
re
a
re
i
n
t
h
e
c
o
n
tr
o
l
o
f
th
e
c
al
le
e
.
p
ag
e
2
1
7
o
f
4
8
7
(c
h
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
C
al
le
r
C
al
le
e
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
C
al
le
r
C
al
le
e
23
0
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
3
0
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
–
H
ea
p
B
y
u
si
n
g
a
n
o
u
t,
b
y-
re
fe
re
n
ce
p
ar
am
e
te
r,
th
e
l
in
k
t
o
t
h
e
n
e
w
ly
a
ll
o
ca
te
d
m
e
m
o
ry
a
re
a
is
k
e
p
t.
…
a
n
d
a
l
o
ca
l
va
ri
ab
le
i
n
t
h
e
c
al
li
n
g
fu
n
ct
io
n
c
an
k
e
e
p
t
h
is
l
in
k
.
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
F
P
Lo
ca
l
va
ri
ab
le
s
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
Lo
ca
l
va
ri
ab
le
s
H
e
a
p
m
e
m
o
r
y
H
o
w
t
o
k
e
e
p
a
n
y
m
e
m
o
ry
al
lo
ca
ti
o
n
a
ft
e
r
fu
n
ct
io
n
r
e
tu
rn
?
22
6
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
2
6
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
–
C
al
le
r
P
r
e
_
C
a
l
l
:
…
;
A
l
l
o
c
a
t
e
/
i
d
e
n
t
i
f
y
s
p
a
c
e
f
o
r
t
h
e
p
a
r
a
m
e
t
e
r
s
…
;
C
o
p
y
t
h
e
i
n
a
n
d
i
n
–
o
u
t
…
;
p
a
r
a
m
e
t
e
r
s
t
o
t
h
i
s
s
p
a
c
e
…
;
P
o
t
e
n
t
i
a
l
l
y
p
r
o
v
i
d
e
l
i
n
k
s
…
;
P
r
o
v
i
d
e
a
r
e
t
u
r
n
a
d
d
r
e
s
s
(
“
P
o
s
t
_
C
a
l
l
”
)
…
;
(
u
s
u
a
l
l
y
i
m
p
l
i
c
i
t
w
i
t
h
t
h
e
c
a
l
l
i
t
s
e
l
f
)
C
al
l
th
e
f
u
n
ct
io
n
P
o
s
t
_
C
a
l
l
:
…
;
C
o
p
y
t
h
e
o
u
t
a
n
d
i
n
–
o
u
t
p
a
r
a
m
e
t
e
r
s
…
;
t
o
l
o
c
a
l
v
a
r
i
a
b
l
e
s
o
r
r
e
g
i
s
t
e
r
s
…
;
P
o
t
e
n
t
i
a
l
l
y
r
e
s
t
o
r
e
t
h
e
f
r
a
m
e
p
o
i
n
t
e
r
…
;
R
e
s
t
o
r
e
t
h
e
s
t
a
c
k
t
o
i
t
s
p
r
e
v
i
o
u
s
s
t
a
t
e
…
;
(
i
f
t
h
e
s
t
a
c
k
h
a
s
b
e
e
n
u
s
e
d
)
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
Pa
ra
m
et
er
s
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
Lo
ca
l
va
ri
ab
le
s
F
P
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
Lo
ca
l
va
ri
ab
le
s
Sa
ve
d
r
es
o
u
rc
es
C
al
le
r
C
al
le
e
C
o
n
te
xt
(
st
at
ic
)
li
n
k
S
B
22
2
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
2
2
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
T
h
e
n
e
xt
f
u
n
ct
io
n
c
al
l
w
il
l
p
ro
d
u
ce
t
h
e
n
e
xt
s
ta
ck
f
ra
m
e
.
V
ar
ia
b
le
s
an
d
p
ar
am
e
te
rs
f
ro
m
t
h
e
c
o
n
te
xt
s
ta
y
vi
si
b
le
(v
ia
t
h
e
c
h
ai
n
o
f
st
at
ic
l
in
k
s)
.
p
ag
e
2
2
2
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
C
al
le
r
C
al
le
e
Sa
ve
d
r
es
o
u
rc
es
F
P
S
P
Lo
ca
l
va
ri
ab
le
s
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
F
P
Lo
ca
l
va
ri
ab
le
s
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
Lo
ca
l
va
ri
ab
le
s
C
al
le
r
C
al
le
e
Lo
ca
l
va
ri
ab
le
s
ca
n
o
n
ly
b
e
a
d
d
e
d
t
o
t
h
e
c
u
rr
e
n
tl
y
e
xe
cu
ti
n
g
f
u
n
ct
io
n
.
21
8
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
1
8
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
A
F
ra
m
e
Po
in
te
r
(F
P
)
is
e
st
ab
li
sh
e
d
a
t
th
e
b
o
u
n
d
–
ar
y
b
e
tw
e
e
n
t
h
e
c
al
le
r
an
d
t
h
e
c
al
le
e
.
U
p
w
ar
d
s
fr
o
m
t
h
e
F
P
: d
at
a
fr
o
m
t
h
is
f
u
n
ct
io
n
.
D
o
w
n
w
ar
d
s
fr
o
m
t
h
e
F
P
:
d
at
a
p
ro
vi
d
e
d
b
y
th
e
p
re
vi
o
u
s
fu
n
ct
io
n
.
p
ag
e
2
1
8
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
C
al
le
r
C
al
le
e
S
P
Sa
ve
d
r
es
o
u
rc
es
F
P
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
C
al
le
r
C
al
le
e
Sa
ve
d
r
es
o
u
rc
es
F
P
S
av
e
d
r
e
so
u
rc
e
s
ar
e
f
o
r
in
st
an
ce
r
e
g
is
te
rs
w
h
ic
h
t
h
e
c
al
le
e
i
s
p
la
n
n
in
g
t
o
u
se
.
23
1
Fu
n
ct
io
n
s
p
ag
e
2
3
1
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
–
H
ea
p
B
y
u
si
n
g
a
n
o
u
t,
b
y-
re
fe
re
n
ce
p
ar
am
e
te
r,
th
e
l
in
k
t
o
t
h
e
n
e
w
ly
a
ll
o
ca
te
d
m
e
m
o
ry
a
re
a
is
k
e
p
t.
…
a
n
d
a
l
o
ca
l
va
ri
ab
le
i
n
t
h
e
c
al
li
n
g
fu
n
ct
io
n
c
an
k
e
e
p
t
h
is
l
in
k
.
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
F
P
Lo
ca
l
va
ri
ab
le
s
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
Lo
ca
l
va
ri
ab
le
s
H
e
a
p
m
e
m
o
r
y
H
o
w
t
o
k
e
e
p
a
n
y
m
e
m
o
ry
al
lo
ca
ti
o
n
a
ft
e
r
fu
n
ct
io
n
r
e
tu
rn
?
p
ag
p
ag
e
2
3
1
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
7
W
h
e
n
t
o
d
e
al
lo
ca
te
t
h
o
u
g
h
?
•
G
ar
b
ag
e
c
o
ll
e
ct
io
n
(
Ja
va
)?
•
S
m
ar
t
p
o
in
te
rs
(
C
+
+
)?
•
R
e
fe
re
n
ce
o
w
n
e
rs
h
ip
s
(R
u
st
)?
•
S
co
p
e
d
p
o
in
te
rs
/
s
to
ra
g
e
p
o
o
ls
(
A
d
a)
?
22
7
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
2
7
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
–
C
al
le
e
P
r
o
l
o
g
u
e
:
…
;
S
a
v
e
a
l
l
r
e
g
i
s
t
e
r
s
w
h
i
c
h
a
r
e
n
e
e
d
e
d
…
;
i
n
s
i
d
e
t
h
i
s
f
u
n
c
t
i
o
n
t
o
t
h
e
s
t
a
c
k
…
;
E
s
t
a
b
l
i
s
h
a
n
e
w
f
r
a
m
e
p
o
i
n
t
e
r
…
;
w
h
i
l
e
p
o
t
e
n
t
i
a
l
l
y
s
a
v
i
n
g
t
h
e
p
r
e
v
i
o
u
s
f
p
…
;
A
l
l
o
c
a
t
e
/
i
d
e
n
t
i
f
y
s
p
a
c
e
f
o
r
l
o
c
a
l
v
a
r
i
a
b
l
e
s
…
;
P
o
t
e
n
t
i
a
l
l
y
i
n
i
t
i
a
l
i
z
e
l
o
c
a
l
v
a
r
i
a
b
l
e
s
O
p
e
ra
ti
o
n
s,
w
h
ic
h
w
il
l
u
se
lo
ca
l
an
d
c
o
n
te
xt
v
ar
ia
b
le
s
an
d
p
ar
am
e
te
rs
(v
ia
t
h
e
F
P
(s
))
E
p
i
l
o
g
u
e
:
…
;
P
o
t
e
n
t
i
a
l
l
y
r
e
s
t
o
r
e
t
h
e
p
r
i
o
r
f
r
a
m
e
p
o
i
n
t
e
r
…
;
R
e
s
t
o
r
e
t
h
e
s
t
a
c
k
t
o
i
t
s
s
t
a
t
e
a
t
e
n
t
r
y
R
e
tu
rn
f
ro
m
f
u
n
ct
io
n
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
Pa
ra
m
et
er
s
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
Lo
ca
l
va
ri
ab
le
s
F
P
S
P
am
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
ar
ia
b
le
s
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
Lo
ca
l
va
ri
ab
le
s
Sa
ve
d
r
es
o
u
rc
es
C
al
le
r
C
al
le
e
am
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
ar
ia
b
le
s
ar
ia
b
le
s
ar
ia
b
le
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
S
B
22
3
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
2
3
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
T
h
e
n
e
xt
f
u
n
ct
io
n
c
al
l
w
il
l
p
ro
d
u
ce
t
h
e
n
e
xt
s
ta
ck
f
ra
m
e
.
N
o
te
w
h
ic
h
v
ar
ia
b
le
s
an
d
p
ar
am
e
te
rs
a
re
v
is
ib
le
.
p
ag
e
2
2
3
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
C
al
le
r
C
al
le
e
Sa
ve
d
r
es
o
u
rc
es
F
P
S
P
Lo
ca
l
va
ri
ab
le
s
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
©
2
0
2
1
(G
lo
b
al
)
va
ri
ab
le
s
Pa
ra
m
et
er
s
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
Lo
ca
l
va
ri
ab
le
s
F
P
S
P
C
o
n
te
xt
(
st
at
ic
)
li
n
k
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
ar
ia
b
le
s
Pa
ra
m
et
er
s
Lo
ca
l
va
ri
ab
le
s
Sa
ve
d
r
es
o
u
rc
es
C
al
le
r
C
al
le
e
C
o
n
te
xt
(
st
at
ic
)
li
n
k
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
ar
ia
b
le
s
ar
ia
b
le
s
ar
ia
b
le
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
S
B
21
9
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
1
9
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
G
en
er
ic
S
ta
ck
-F
ra
m
e
Lo
ca
l
va
ri
ab
le
s
ar
e
a
ll
o
ca
te
d
(
b
y
m
o
vi
n
g
t
h
e
s
ta
ck
p
o
in
te
r)
.
Lo
ca
l
va
ri
ab
le
s
ca
n
b
e
o
f
an
y
si
ze
o
r
st
ru
ct
u
re
,
u
n
le
ss
t
h
e
s
ta
ck
o
ve
rfl
o
w
s.
T
h
e
c
o
m
p
le
te
s
a
n
e
w
s
ta
ck
f
ra
m
e.
p
ag
e
2
1
9
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
7
f
h
f
h
(G
lo
b
al
)
va
ri
ab
le
s
S
B
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
C
al
le
r
C
al
le
e
Sa
ve
d
r
es
o
u
rc
es
F
P
S
P
Lo
ca
l
va
ri
ab
le
s
©
2
0
2
1
U
w
e
R
Z
im
m
er
Th
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
tyy
(G
lo
b
al
)
va
ri
ab
le
s
S
B
S
P
Pa
ra
m
et
er
s
C
o
n
te
xt
(
st
at
ic
)
li
n
k
P
ri
o
r
fr
am
e
(d
yn
am
ic
)
li
n
k
R
et
u
rn
a
d
d
re
ss
C
al
le
r
C
al
le
e
Sa
ve
d
r
es
o
u
rc
es
F
P
Lo
ca
l
va
ri
ab
le
s
23
2
Fu
n
ct
io
n
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
3
2
o
f
4
8
7
(
ch
ap
te
r
3
:
“F
u
n
ct
io
n
s”
u
p
t
o
p
ag
e
2
3
2
)
Fu
n
ct
io
n
s
•
Fr
am
ew
o
rk
•
R
e
tu
rn
a
d
d
re
ss
•
R
e
la
ti
ve
a
d
d
re
ss
in
g
•
Pa
ra
m
et
er
p
as
si
n
g
m
o
d
es
a
n
d
m
ec
h
an
is
m
s
•
C
o
p
y
ve
rs
u
s
re
fe
re
n
ce
•
In
fo
rm
at
io
n
fl
o
w
d
ir
e
ct
io
n
s
•
La
te
e
va
lu
at
io
n
•
St
ac
kf
ra
m
es
•
S
ta
ti
c
an
d
d
yn
am
ic
l
in
k
s
•
Pa
ra
m
e
te
rs
•
Lo
ca
l
va
ri
ab
le
s
Su
m
m
ar
y