c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
e
c
c
c
c
e
c
e
c
c
c
e
c
e
c
c
c
e
c
c
c
c
c
e
c
e
c
c
c
e
c
c
c
c
c
e
c
c
e
c
c
c
c
e
c
e
c
e
c
c
c
c
e
e
e
e
e
c
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
g
e
e
e
g
e
e
g
e
e
g
e
e
g
e
e
g
e
e
g
e
e
g
e
e
e
g
e
e
g
e
e
g
e
e
g
e
e
g
e
e
g
e
e
e
g
g
e
e
e
e
e
e
g
e
e
g
e
e
e
g
e
e
g
e
g
e
e
g
e
e
g
e
e
g
e
g
e
g
e
g
e
g
g
g
g
e
g
e
g
g
g
g
e
g
e
g
g
g
e
g
e
g
g
g
e
g
e
g
g
g
g
e
g
e
g
e
g
g
g
e
g
e
g
g
g
g
g
e
g
e
g
e
g
e
g
g
g
g
e
g
e
g
g
e
g
g
g
e
e
g
g
g
e
g
e
g
g
g
g
g
e
g
e
g
g
g
g
e
g
e
g
e
g
e
g
g
g
g
e
g
e
g
g
g
g
e
g
e
g
g
g
e
g
e
g
g
g
e
g
e
g
g
g
g
e
g
e
g
e
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
g
l
g
g
l
g
g
g
l
g
g
l
g
g
l
g
g
l
g
g
l
g
g
l
g
g
g
l
g
l
l
l
g
l
g
g
l
l
l
g
l
l
l
g
l
g
l
l
l
g
l
g
l
l
l
g
l
g
l
l
l
g
l
g
l
l
l
g
l
g
l
l
l
g
l
l
l
l
l
g
l
g
l
l
l
g
l
g
l
l
l
g
l
l
g
l
g
l
l
l
l
g
l
g
l
l
l
g
l
g
l
l
l
l
g
l
g
g
l
l
l
l
l
g
g
l
g
l
l
l
l
g
l
g
l
l
l
g
l
g
l
l
l
l
g
l
g
l
l
l
g
l
g
l
l
l
l
g
l
g
l
l
l
g
l
l
g
l
g
l
l
l
l
g
l
g
l
l
l
g
l
g
l
l
l
g
l
g
l
l
l
g
l
g
l
l
l
l
g
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
m
l
l
m
m
m
m
l
m
l
m
m
m
l
m
l
l
m
m
m
m
l
m
l
l
l
m
m
m
m
m
l
m
l
m
m
m
m
l
m
l
m
m
m
l
m
l
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
n
m
m
m
m
n
m
m
n
m
m
m
n
m
m
m
n
m
m
n
m
m
n
m
m
n
m
m
m
n
m
m
n
m
m
n
m
m
n
m
m
n
m
m
n
m
m
m
n
m
m
m
n
m
m
n
m
m
n
m
m
n
m
m
n
m
n
m
m
n
m
m
n
m
m
n
m
m
n
m
m
n
m
m
n
m
m
n
m
m
m
n
m
m
m
n
m
m
m
m
m
n
m
m
n
m
m
m
n
m
m
n
m
m
n
m
m
n
m
m
n
m
m
n
m
m
n
m
m
m
n
m
m
n
n
m
n
m
n
n
n
m
n
m
n
n
n
m
n
n
n
m
n
m
n
n
n
m
n
m
n
n
n
m
n
n
n
m
n
m
n
n
n
m
n
m
n
n
n
m
n
m
m
n
n
n
n
m
n
m
n
n
n
m
n
m
n
n
n
m
n
m
n
n
n
m
n
n
n
n
n
r
n
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
x
r
r
r
r
x
r
r
x
r
r
x
r
r
r
x
r
r
x
r
r
x
r
r
x
r
r
x
r
r
x
r
r
r
r
x
r
r
x
r
r
x
r
r
r
r
x
r
r
r
r
x
r
r
x
r
r
x
r
r
x
r
r
x
r
r
x
r
r
x
r
r
x
r
r
x
r
r
x
r
r
x
r
r
r
r
r
r
x
r
r
x
r
r
r
x
r
r
r
x
r
r
x
r
r
r
x
r
x
r
x
r
x
x
r
x
r
x
x
x
x
r
x
r
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
m
